Updated AnnoucerManager::GetPathTo to act like ThemeManager. More theme and Ez2 cleanup.

This commit is contained in:
Chris Danford
2002-08-27 23:31:41 +00:00
parent 307b50179a
commit 7922f5bbc7
70 changed files with 801 additions and 1256 deletions
+2
View File
@@ -1 +1,3 @@
Place announcer folders in this directory. See the readme for more details. Place announcer folders in this directory. See the readme for more details.
If you want to make a new announcer, copy the announcer "Empty", rename the
copy, and add your own sounds.
+44
View File
@@ -38,6 +38,14 @@ NextScreen=ScreenCaution
NextScreen=ScreenSelectStyle NextScreen=ScreenSelectStyle
[ScreenEz2SelectPlayer] [ScreenEz2SelectPlayer]
CursorP1X=120
CursorP1Y=280
CursorP2X=520
CursorP2Y=280
ControllerP1X=120
ControllerP1Y=280
ControllerP2X=520
ControllerP2Y=280
HelpText=Press $ on the pad you wish to play on HelpText=Press $ on the pad you wish to play on
TimerSeconds=40 TimerSeconds=40
NextScreen=ScreenSelectGroup NextScreen=ScreenSelectGroup
@@ -384,3 +392,39 @@ TimerSeconds=40
[ScreenMapInstruments] [ScreenMapInstruments]
HelpText=Use arrow keys to navigate, ENTER to assign, and SPACE to clear. HelpText=Use arrow keys to navigate, ENTER to assign, and SPACE to clear.
[GhostArrow]
PopUpSeconds=0.25
ZoomStart=1.0
ZoomEnd=1.5
ColorPerfect=1.0,1.0,0.3,1 // yellow
ColorGreat=0.0,1.0,0.4,1 // green
ColorGood=0.3,0.8,1.0,1
ColorBoo=0.8,0.0,0.6,1
[GhostArrowBright]
PopUpSeconds=0.25
ZoomStart=1.0
ZoomEnd=1.5
ColorPerfect=1.0,1.0,0.3,1 // yellow
ColorGreat=0.0,1.0,0.4,1 // green
ColorGood=0.3,0.8,1.0,1
ColorBoo=0.8,0.0,0.6,1
[BitmapText]
RainbowColor1=1.0,0.0,0.4,1 // red
RainbowColor2=0.8,0.2,0.6,1 // pink
RainbowColor3=0.4,0.3,0.5,1 // purple
RainbowColor4=0.2,0.6,1.0,1 // sky blue
RainbowColor5=0.2,0.8,0.8,1 // sea green
RainbowColor6=0.2,0.8,0.4,1 // green
RainbowColor7=1.0,0.8,0.2,1 // orange
[SongManager]
GroupColor1=0.8,0.1,0.6,1 // pink
GroupColor2=0.5,0.3,0.7,1 // purple
GroupColor3=0.0,0.4,0.8,1 // sky blue
GroupColor4=0.0,0.6,0.6,1 // sea green
GroupColor5=0.1,0.7,0.3,1 // green
GroupColor6=0.8,0.6,0.0,1 // orange
GroupColor7=1.0,0.3,0.3,1 // light red
ExtraColor=1,0,0,1 // red
+60 -107
View File
@@ -17,29 +17,26 @@
AnnouncerManager* ANNOUNCER = NULL; // global object accessable from anywhere in the program AnnouncerManager* ANNOUNCER = NULL; // global object accessable from anywhere in the program
const CString ANNOUNCER_BASE_DIR = "Announcers\\"; const CString EMPTY_ANNOUNCER_NAME = "Empty";
const CString ANNOUNCERS_DIR = "Announcers\\";
AnnouncerManager::AnnouncerManager() AnnouncerManager::AnnouncerManager()
{ {
LOG->Trace("AnnouncerManager::AnnouncerManager()"); LOG->Trace("AnnouncerManager::AnnouncerManager()");
CStringArray arrayAnnouncerNames;
GetAnnouncerNames( arrayAnnouncerNames );
for( int i=0; i<arrayAnnouncerNames.GetSize(); i++ )
AssertAnnouncerIsComplete( arrayAnnouncerNames[i] );
} }
void AnnouncerManager::GetAnnouncerNames( CStringArray& AddTo ) void AnnouncerManager::GetAnnouncerNames( CStringArray& AddTo )
{ {
GetDirListing( ANNOUNCER_BASE_DIR+"*", AddTo, true ); GetDirListing( ANNOUNCERS_DIR+"*", AddTo, true );
// strip out the folder called "CVS" // strip out the folder called "CVS" and EMPTY_ANNOUNCER_NAME
for( int i=AddTo.GetSize()-1; i>=0; i-- ) for( int i=AddTo.GetSize()-1; i>=0; i-- )
{ {
if( 0 == stricmp( AddTo[i], "cvs" ) ) if( 0 == stricmp( AddTo[i], "cvs" ) )
AddTo.RemoveAt(i); AddTo.RemoveAt(i);
if( 0 == stricmp( AddTo[i], EMPTY_ANNOUNCER_NAME ) )
AddTo.RemoveAt(i);
} }
} }
@@ -56,19 +53,9 @@ bool AnnouncerManager::DoesAnnouncerExist( CString sAnnouncerName )
return false; return false;
} }
void AnnouncerManager::AssertAnnouncerIsComplete( CString sAnnouncerName )
{
for( int i=0; i<NUM_ANNOUNCER_ELEMENTS; i++ )
{
CString sPath = GetPathTo( (AnnouncerElement)i, sAnnouncerName );
// if( !DoesFileExist(sPath) )
// throw RageException( "The Announcer element '%s' is missing.", sPath );
}
}
CString AnnouncerManager::GetAnnouncerDirFromName( CString sAnnouncerName ) CString AnnouncerManager::GetAnnouncerDirFromName( CString sAnnouncerName )
{ {
return ANNOUNCER_BASE_DIR + sAnnouncerName + "\\"; return ANNOUNCERS_DIR + sAnnouncerName + "\\";
} }
void AnnouncerManager::SwitchAnnouncer( CString sNewAnnouncerName ) void AnnouncerManager::SwitchAnnouncer( CString sNewAnnouncerName )
@@ -79,97 +66,63 @@ void AnnouncerManager::SwitchAnnouncer( CString sNewAnnouncerName )
m_sCurAnnouncerName = sNewAnnouncerName; m_sCurAnnouncerName = sNewAnnouncerName;
} }
CString AnnouncerManager::GetPathTo( AnnouncerElement ae ) CString AnnouncerManager::GetPathTo( CString sFolderName )
{ {
return GetPathTo( ae, m_sCurAnnouncerName ); #ifdef _DEBUG
} try_again:
#endif
CString AnnouncerManager::GetPathTo( AnnouncerElement ae, CString sAnnouncerName ) CString sPathToFolderCurrent = GetAnnouncerDirFromName(m_sCurAnnouncerName) + "\\" + sFolderName;
{ CString sPathToFolderEmpty = GetAnnouncerDirFromName(EMPTY_ANNOUNCER_NAME) + "\\" + sFolderName;
if( sAnnouncerName == "" )
return ""; // hopefully there are no sound files here
CString sAssetDir; #ifdef _DEBUG
if( m_sCurAnnouncerName!="" && !DoesFileExist(sPathToFolderCurrent) )
switch( ae )
{ {
case ANNOUNCER_CAUTION: sAssetDir = "caution"; break; int iResult = AfxMessageBox(
case ANNOUNCER_GAMEPLAY_100_COMBO: sAssetDir = "gameplay 100 combo"; break; ssprintf(
case ANNOUNCER_GAMEPLAY_1000_COMBO: sAssetDir = "gameplay 1000 combo"; break; "The current announcer is missing the folder '%s'.\n"
case ANNOUNCER_GAMEPLAY_200_COMBO: sAssetDir = "gameplay 200 combo"; break; "It may be that these sounds were never implemented in this announcer,\n"
case ANNOUNCER_GAMEPLAY_300_COMBO: sAssetDir = "gameplay 300 combo"; break; "Or the folder may be misnamed.\n\n"
case ANNOUNCER_GAMEPLAY_400_COMBO: sAssetDir = "gameplay 400 combo"; break; "Click Abort to automatically create the folder.\n"
case ANNOUNCER_GAMEPLAY_500_COMBO: sAssetDir = "gameplay 500 combo"; break; "Click Retry after adding the folder menually.\n"
case ANNOUNCER_GAMEPLAY_600_COMBO: sAssetDir = "gameplay 600 combo"; break; "Click to break.", sFolderName), MB_ABORTRETRYIGNORE );
case ANNOUNCER_GAMEPLAY_700_COMBO: sAssetDir = "gameplay 700 combo"; break; switch( iResult )
case ANNOUNCER_GAMEPLAY_800_COMBO: sAssetDir = "gameplay 800 combo"; break; {
case ANNOUNCER_GAMEPLAY_900_COMBO: sAssetDir = "gameplay 900 combo"; break; case IDABORT:
case ANNOUNCER_GAMEPLAY_CLEARED: sAssetDir = "gameplay cleared"; break; CreateDirectory( sPathToFolderCurrent, NULL );
case ANNOUNCER_GAMEPLAY_COMBO_STOPPED: sAssetDir = "gameplay combo stopped"; break; break;
case ANNOUNCER_GAMEPLAY_COMMENT_DANGER: sAssetDir = "gameplay comment danger"; break; case IDRETRY:
case ANNOUNCER_GAMEPLAY_COMMENT_GOOD: sAssetDir = "gameplay comment good"; break; goto try_again;
case ANNOUNCER_GAMEPLAY_COMMENT_HOT: sAssetDir = "gameplay comment hot"; break; break;
case ANNOUNCER_GAMEPLAY_FAILED: sAssetDir = "gameplay failed"; break; case IDIGNORE:
case ANNOUNCER_GAMEPLAY_HERE_WE_GO_EXTRA: sAssetDir = "gameplay here we go extra"; break; DebugBreak();
case ANNOUNCER_GAMEPLAY_HERE_WE_GO_FINAL: sAssetDir = "gameplay here we go final"; break; break;
case ANNOUNCER_GAMEPLAY_HERE_WE_GO_NORMAL: sAssetDir = "gameplay here we go normal"; break; }
case ANNOUNCER_GAMEPLAY_READY: sAssetDir = "gameplay ready"; break;
case ANNOUNCER_EVALUATION_FINAL_A: sAssetDir = "evaluation final a"; break;
case ANNOUNCER_EVALUATION_FINAL_AA: sAssetDir = "evaluation final aa"; break;
case ANNOUNCER_EVALUATION_FINAL_AAA: sAssetDir = "evaluation final aaa"; break;
case ANNOUNCER_EVALUATION_FINAL_B: sAssetDir = "evaluation final b"; break;
case ANNOUNCER_EVALUATION_FINAL_C: sAssetDir = "evaluation final c"; break;
case ANNOUNCER_EVALUATION_FINAL_D: sAssetDir = "evaluation final d"; break;
case ANNOUNCER_EVALUATION_FINAL_E: sAssetDir = "evaluation final e"; break;
case ANNOUNCER_GAME_OVER: sAssetDir = "game over"; break;
case ANNOUNCER_MENU_HURRY_UP: sAssetDir = "menu hurry up"; break;
case ANNOUNCER_MUSIC_SCROLL: sAssetDir = "music scroll"; break;
case ANNOUNCER_EVALUATION_A: sAssetDir = "evaluation a"; break;
case ANNOUNCER_EVALUATION_AA: sAssetDir = "evaluation aa"; break;
case ANNOUNCER_EVALUATION_AAA: sAssetDir = "evaluation aaa"; break;
case ANNOUNCER_EVALUATION_B: sAssetDir = "evaluation b"; break;
case ANNOUNCER_EVALUATION_C: sAssetDir = "evaluation c"; break;
case ANNOUNCER_EVALUATION_D: sAssetDir = "evaluation d"; break;
case ANNOUNCER_EVALUATION_E: sAssetDir = "evaluation e"; break;
case ANNOUNCER_PLAYER_OPTIONS_INTRO: sAssetDir = "player options intro"; break;
case ANNOUNCER_SELECT_COURSE_INTRO: sAssetDir = "select course intro"; break;
case ANNOUNCER_SELECT_DIFFICULTY_COMMENT_EASY: sAssetDir = "select difficulty comment easy"; break;
case ANNOUNCER_SELECT_DIFFICULTY_COMMENT_HARD: sAssetDir = "select difficulty comment hard"; break;
case ANNOUNCER_SELECT_DIFFICULTY_COMMENT_MEDIUM:sAssetDir = "select difficulty comment medium"; break;
case ANNOUNCER_SELECT_DIFFICULTY_COMMENT_ONI: sAssetDir = "select difficulty comment oni"; break;
case ANNOUNCER_SELECT_DIFFICULTY_COMMENT_ENDLESS:sAssetDir = "select difficulty comment endless"; break;
case ANNOUNCER_SELECT_DIFFICULTY_CHALLENGE: sAssetDir = "select difficulty challenge"; break;
case ANNOUNCER_SELECT_DIFFICULTY_INTRO: sAssetDir = "select difficulty intro"; break;
case ANNOUNCER_SELECT_GROUP_COMMENT_ALL_MUSIC: sAssetDir = "select group comment all music"; break;
case ANNOUNCER_SELECT_GROUP_COMMENT_GENERAL: sAssetDir = "select group comment general"; break;
case ANNOUNCER_SELECT_GROUP_INTRO: sAssetDir = "select group intro"; break;
case ANNOUNCER_SELECT_MUSIC_COMMENT_GENERAL: sAssetDir = "select music comment general"; break;
case ANNOUNCER_SELECT_MUSIC_COMMENT_HARD: sAssetDir = "select music comment hard"; break;
case ANNOUNCER_SELECT_MUSIC_COMMENT_NEW: sAssetDir = "select music comment new"; break;
case ANNOUNCER_SELECT_MUSIC_INTRO: sAssetDir = "select music intro"; break;
case ANNOUNCER_SELECT_STYLE_COMMENT_COUPLE: sAssetDir = "select style comment couple"; break;
case ANNOUNCER_SELECT_STYLE_COMMENT_DOUBLE: sAssetDir = "select style comment double"; break;
case ANNOUNCER_SELECT_STYLE_COMMENT_SINGLE: sAssetDir = "select style comment single"; break;
case ANNOUNCER_SELECT_STYLE_COMMENT_SOLO: sAssetDir = "select style comment solo"; break;
case ANNOUNCER_SELECT_STYLE_COMMENT_VERSUS: sAssetDir = "select style comment versus"; break;
case ANNOUNCER_SELECT_STYLE_INTRO: sAssetDir = "select style intro"; break;
case ANNOUNCER_STAGE_1: sAssetDir = "stage 1"; break;
case ANNOUNCER_STAGE_2: sAssetDir = "stage 2"; break;
case ANNOUNCER_STAGE_3: sAssetDir = "stage 3"; break;
case ANNOUNCER_STAGE_4: sAssetDir = "stage 4"; break;
case ANNOUNCER_STAGE_5: sAssetDir = "stage 5"; break;
case ANNOUNCER_STAGE_FINAL: sAssetDir = "stage final"; break;
case ANNOUNCER_STAGE_EXTRA1: sAssetDir = "stage extra1"; break;
case ANNOUNCER_STAGE_EXTRA2: sAssetDir = "stage extra2"; break;
case ANNOUNCER_STAGE_ONI: sAssetDir = "stage oni"; break;
case ANNOUNCER_STAGE_ENDLESS: sAssetDir = "stage endless"; break;
case ANNOUNCER_TITLE_MENU_ATTRACT: sAssetDir = "title menu attract"; break;
case ANNOUNCER_TITLE_MENU_GAME_NAME: sAssetDir = "title menu game name"; break;
default: ASSERT(0); // Unhandled Announcer element
} }
if( !DoesFileExist(sPathToFolderEmpty) )
{
int iResult = AfxMessageBox(
ssprintf(
"The empty announcer is missing the folder '%s'.\n"
"This announcer should have empty folders for every saying.\n\n"
"Click Abort to automatically create the folder.\n"
"Click Retry after adding the folder menually.\n"
"Click to break.", sFolderName), MB_ABORTRETRYIGNORE );
switch( iResult )
{
case IDABORT:
CreateDirectory( sPathToFolderEmpty, NULL );
break;
case IDRETRY:
goto try_again;
break;
case IDIGNORE:
DebugBreak();
break;
}
}
#endif
CString sFullDir = GetAnnouncerDirFromName( sAnnouncerName ) + sAssetDir; return sPathToFolderCurrent;
// ASSERT( DoesFileExist(sFullDir) ); // the announcer directory doesn't exist. Did we type the name wrong above?
return sFullDir;
} }
+1 -83
View File
@@ -14,84 +14,6 @@
#include "RageUtil.h" #include "RageUtil.h"
enum AnnouncerElement {
ANNOUNCER_CAUTION,
ANNOUNCER_GAMEPLAY_100_COMBO,
ANNOUNCER_GAMEPLAY_1000_COMBO,
ANNOUNCER_GAMEPLAY_200_COMBO,
ANNOUNCER_GAMEPLAY_300_COMBO,
ANNOUNCER_GAMEPLAY_400_COMBO,
ANNOUNCER_GAMEPLAY_500_COMBO,
ANNOUNCER_GAMEPLAY_600_COMBO,
ANNOUNCER_GAMEPLAY_700_COMBO,
ANNOUNCER_GAMEPLAY_800_COMBO,
ANNOUNCER_GAMEPLAY_900_COMBO,
ANNOUNCER_GAMEPLAY_CLEARED,
ANNOUNCER_GAMEPLAY_COMBO_STOPPED,
ANNOUNCER_GAMEPLAY_COMMENT_DANGER,
ANNOUNCER_GAMEPLAY_COMMENT_GOOD,
ANNOUNCER_GAMEPLAY_COMMENT_HOT,
ANNOUNCER_GAMEPLAY_FAILED,
ANNOUNCER_GAMEPLAY_HERE_WE_GO_EXTRA,
ANNOUNCER_GAMEPLAY_HERE_WE_GO_FINAL,
ANNOUNCER_GAMEPLAY_HERE_WE_GO_NORMAL,
ANNOUNCER_GAMEPLAY_READY,
ANNOUNCER_EVALUATION_FINAL_A,
ANNOUNCER_EVALUATION_FINAL_AA,
ANNOUNCER_EVALUATION_FINAL_AAA,
ANNOUNCER_EVALUATION_FINAL_B,
ANNOUNCER_EVALUATION_FINAL_C,
ANNOUNCER_EVALUATION_FINAL_D,
ANNOUNCER_EVALUATION_FINAL_E,
ANNOUNCER_GAME_OVER,
ANNOUNCER_MENU_HURRY_UP,
ANNOUNCER_MUSIC_SCROLL,
ANNOUNCER_EVALUATION_A,
ANNOUNCER_EVALUATION_AA,
ANNOUNCER_EVALUATION_AAA,
ANNOUNCER_EVALUATION_B,
ANNOUNCER_EVALUATION_C,
ANNOUNCER_EVALUATION_D,
ANNOUNCER_EVALUATION_E,
ANNOUNCER_PLAYER_OPTIONS_INTRO,
ANNOUNCER_SELECT_COURSE_INTRO,
ANNOUNCER_SELECT_DIFFICULTY_COMMENT_EASY,
ANNOUNCER_SELECT_DIFFICULTY_COMMENT_HARD,
ANNOUNCER_SELECT_DIFFICULTY_COMMENT_MEDIUM,
ANNOUNCER_SELECT_DIFFICULTY_COMMENT_ONI,
ANNOUNCER_SELECT_DIFFICULTY_COMMENT_ENDLESS,
ANNOUNCER_SELECT_DIFFICULTY_CHALLENGE,
ANNOUNCER_SELECT_DIFFICULTY_INTRO,
ANNOUNCER_SELECT_GROUP_COMMENT_ALL_MUSIC,
ANNOUNCER_SELECT_GROUP_COMMENT_GENERAL,
ANNOUNCER_SELECT_GROUP_INTRO,
ANNOUNCER_SELECT_MUSIC_COMMENT_GENERAL,
ANNOUNCER_SELECT_MUSIC_COMMENT_HARD,
ANNOUNCER_SELECT_MUSIC_COMMENT_NEW,
ANNOUNCER_SELECT_MUSIC_INTRO,
ANNOUNCER_SELECT_STYLE_COMMENT_COUPLE,
ANNOUNCER_SELECT_STYLE_COMMENT_DOUBLE,
ANNOUNCER_SELECT_STYLE_COMMENT_SINGLE,
ANNOUNCER_SELECT_STYLE_COMMENT_SOLO,
ANNOUNCER_SELECT_STYLE_COMMENT_VERSUS,
ANNOUNCER_SELECT_STYLE_INTRO,
ANNOUNCER_STAGE_1,
ANNOUNCER_STAGE_2,
ANNOUNCER_STAGE_3,
ANNOUNCER_STAGE_4,
ANNOUNCER_STAGE_5,
ANNOUNCER_STAGE_FINAL,
ANNOUNCER_STAGE_EXTRA1,
ANNOUNCER_STAGE_EXTRA2,
ANNOUNCER_STAGE_ONI,
ANNOUNCER_STAGE_ENDLESS,
ANNOUNCER_TITLE_MENU_ATTRACT,
ANNOUNCER_TITLE_MENU_GAME_NAME,
NUM_ANNOUNCER_ELEMENTS // leave this at the end
};
class AnnouncerManager class AnnouncerManager
{ {
public: public:
@@ -102,14 +24,10 @@ public:
void SwitchAnnouncer( CString sNewAnnouncerName ); void SwitchAnnouncer( CString sNewAnnouncerName );
CString GetCurAnnouncerName() { return m_sCurAnnouncerName; }; CString GetCurAnnouncerName() { return m_sCurAnnouncerName; };
CString GetPathTo( AnnouncerElement ae ); CString GetPathTo( CString sFolderName );
protected: protected:
void AssertAnnouncerIsComplete( CString sAnnouncerName ); // only used in Debug
CString GetPathTo( AnnouncerElement ae, CString sAnnouncerName );
static CString GetAnnouncerDirFromName( CString sAnnouncerName ); static CString GetAnnouncerDirFromName( CString sAnnouncerName );
CString GetElementDir( AnnouncerElement te );
CString m_sCurAnnouncerName; CString m_sCurAnnouncerName;
}; };
+5 -5
View File
@@ -20,7 +20,7 @@
#include "NoteDisplay.h" #include "NoteDisplay.h"
float ArrowGetYOffset( const PlayerNumber pn, float fNoteBeat ) float ArrowGetYOffset( PlayerNumber pn, float fNoteBeat )
{ {
float fSongBeat = GAMESTATE->m_fSongBeat; float fSongBeat = GAMESTATE->m_fSongBeat;
float fBeatsUntilStep = fNoteBeat - fSongBeat; float fBeatsUntilStep = fNoteBeat - fSongBeat;
@@ -37,7 +37,7 @@ float ArrowGetYOffset( const PlayerNumber pn, float fNoteBeat )
return fYOffset; return fYOffset;
} }
float ArrowGetXPos2( const PlayerNumber pn, int iColNum, float fYPos ) float ArrowGetXPos2( PlayerNumber pn, int iColNum, float fYPos )
{ {
float fSongBeat = GAMESTATE->m_fSongBeat; float fSongBeat = GAMESTATE->m_fSongBeat;
float fPixelOffsetFromCenter = GAMESTATE->GetCurrentStyleDef()->m_ColumnInfo[PLAYER_1][iColNum].fXOffset; float fPixelOffsetFromCenter = GAMESTATE->GetCurrentStyleDef()->m_ColumnInfo[PLAYER_1][iColNum].fXOffset;
@@ -51,7 +51,7 @@ float ArrowGetXPos2( const PlayerNumber pn, int iColNum, float fYPos )
return fPixelOffsetFromCenter; return fPixelOffsetFromCenter;
} }
float ArrowGetRotation( const PlayerNumber pn, int iColNum, float fYOffset ) float ArrowGetRotation( PlayerNumber pn, int iColNum, float fYOffset )
{ {
float fRotation = 0; //StyleDef.m_ColumnToRotation[iColNum]; float fRotation = 0; //StyleDef.m_ColumnToRotation[iColNum];
@@ -65,12 +65,12 @@ float ArrowGetRotation( const PlayerNumber pn, int iColNum, float fYOffset )
return fRotation; return fRotation;
} }
float ArrowGetYPos( const PlayerNumber pn, float fYOffset ) float ArrowGetYPos( PlayerNumber pn, float fYOffset )
{ {
return fYOffset * GAMESTATE->m_PlayerOptions[pn].m_fArrowScrollSpeed * (GAMESTATE->m_PlayerOptions[pn].m_bReverseScroll ? -1 : 1 ); return fYOffset * GAMESTATE->m_PlayerOptions[pn].m_fArrowScrollSpeed * (GAMESTATE->m_PlayerOptions[pn].m_bReverseScroll ? -1 : 1 );
} }
float ArrowGetAlpha( const PlayerNumber pn, float fYPos ) float ArrowGetAlpha( PlayerNumber pn, float fYPos )
{ {
float fAlpha; float fAlpha;
static float blinktimer=0; static float blinktimer=0;
+5 -5
View File
@@ -21,28 +21,28 @@ const float ARROW_GAP = ARROW_SIZE;// + 2;
// fYOffset is a vertical position in pixels relative to the center. // fYOffset is a vertical position in pixels relative to the center.
// (positive if has not yet been stepped on, negative if has already passed). // (positive if has not yet been stepped on, negative if has already passed).
// The ArrowEffect is applied in this stage. // The ArrowEffect is applied in this stage.
float ArrowGetYOffset( const PlayerNumber pn, float fNoteBeat ); float ArrowGetYOffset( PlayerNumber pn, float fNoteBeat );
// fRotation is Z rotation of an arrow. This will depend on the column of // fRotation is Z rotation of an arrow. This will depend on the column of
// the arrow and possibly the Arrow effect and the fYOffset (in the case of // the arrow and possibly the Arrow effect and the fYOffset (in the case of
// EFFECT_DIZZY). // EFFECT_DIZZY).
float ArrowGetRotation( const PlayerNumber pn, int iCol, float fYOffset ); float ArrowGetRotation( PlayerNumber pn, int iCol, float fYOffset );
// fYPos is the position of the note in pixels relative to the center. // fYPos is the position of the note in pixels relative to the center.
// (positive if has not yet been stepped on, negative if has already passed). // (positive if has not yet been stepped on, negative if has already passed).
// This value is fYOffset with bReverseScroll and fScrollSpeed factored in. // This value is fYOffset with bReverseScroll and fScrollSpeed factored in.
float ArrowGetYPos( const PlayerNumber pn, float fYOffset ); float ArrowGetYPos( PlayerNumber pn, float fYOffset );
// fXPos is a horizontal position in pixels relative to the center of the field. // fXPos is a horizontal position in pixels relative to the center of the field.
// This depends on the column of the arrow and possibly the Arrow effect and // This depends on the column of the arrow and possibly the Arrow effect and
// fYPos (in the case of EFFECT_DRUNK). // fYPos (in the case of EFFECT_DRUNK).
float ArrowGetXPos2( const PlayerNumber pn, int iCol, float fYPos ); float ArrowGetXPos2( PlayerNumber pn, int iCol, float fYPos );
// fAlpha is the transparency of the arrow. It depends on fYPos and the // fAlpha is the transparency of the arrow. It depends on fYPos and the
// ArrowAppearance. // ArrowAppearance.
float ArrowGetAlpha( const PlayerNumber pn, float fYPos ); float ArrowGetAlpha( PlayerNumber pn, float fYPos );
+25 -12
View File
@@ -19,21 +19,34 @@
#include "PrefsManager.h" #include "PrefsManager.h"
#define RAINBOW_COLOR_1 THEME->GetMetricC("BitmapText","RainbowColor1")
#define RAINBOW_COLOR_2 THEME->GetMetricC("BitmapText","RainbowColor2")
#define RAINBOW_COLOR_3 THEME->GetMetricC("BitmapText","RainbowColor3")
#define RAINBOW_COLOR_4 THEME->GetMetricC("BitmapText","RainbowColor4")
#define RAINBOW_COLOR_5 THEME->GetMetricC("BitmapText","RainbowColor5")
#define RAINBOW_COLOR_6 THEME->GetMetricC("BitmapText","RainbowColor6")
#define RAINBOW_COLOR_7 THEME->GetMetricC("BitmapText","RainbowColor7")
D3DXCOLOR RAINBOW_COLORS[] = { const int NUM_RAINBOW_COLORS = 7;
D3DXCOLOR( 1.0f, 0.2f, 0.4f, 1 ), // red D3DXCOLOR RAINBOW_COLORS[NUM_RAINBOW_COLORS];
D3DXCOLOR( 0.8f, 0.2f, 0.6f, 1 ), // pink
D3DXCOLOR( 0.4f, 0.3f, 0.5f, 1 ), // purple
D3DXCOLOR( 0.2f, 0.6f, 1.0f, 1 ), // sky blue
D3DXCOLOR( 0.2f, 0.8f, 0.8f, 1 ), // sea green
D3DXCOLOR( 0.2f, 0.8f, 0.4f, 1 ), // green
D3DXCOLOR( 1.0f, 0.8f, 0.2f, 1 ), // orange
};
const int NUM_RAINBOW_COLORS = sizeof(RAINBOW_COLORS) / sizeof(D3DXCOLOR);
BitmapText::BitmapText() BitmapText::BitmapText()
{ {
// Loading these theme metrics is slow, so only do it ever 20th time.
static int iReloadCounter = 0;
if( iReloadCounter%20==0 )
{
RAINBOW_COLORS[0] = RAINBOW_COLOR_1;
RAINBOW_COLORS[1] = RAINBOW_COLOR_2;
RAINBOW_COLORS[2] = RAINBOW_COLOR_3;
RAINBOW_COLORS[3] = RAINBOW_COLOR_4;
RAINBOW_COLORS[4] = RAINBOW_COLOR_5;
RAINBOW_COLORS[5] = RAINBOW_COLOR_6;
RAINBOW_COLORS[6] = RAINBOW_COLOR_7;
}
iReloadCounter++;
m_HorizAlign = align_center; m_HorizAlign = align_center;
m_VertAlign = align_middle; m_VertAlign = align_middle;
@@ -284,10 +297,10 @@ void BitmapText::DrawPrimitives()
if( m_bRainbow ) if( m_bRainbow )
{ {
int color_index = int(TIMER->GetTimeSinceStart() / 0.200) % NUM_RAINBOW_COLORS; int color_index = int(TIMER->GetTimeSinceStart() / 0.200) % NUM_RAINBOW_COLORS;
for( int i=0; i<iNumV; i+=6 ) for( int i=0; i<iNumV; i+=4 )
{ {
const D3DXCOLOR color = RAINBOW_COLORS[color_index]; const D3DXCOLOR color = RAINBOW_COLORS[color_index];
for( int j=i; j<i+6; j++ ) for( int j=i; j<i+4; j++ )
v[j].color = color; v[j].color = color;
color_index = (color_index+1)%NUM_RAINBOW_COLORS; color_index = (color_index+1)%NUM_RAINBOW_COLORS;
+1 -1
View File
@@ -65,7 +65,7 @@ void CourseContentDisplay::Load( int iNum, Song* pSong, Notes* pNotes )
{ {
m_textNumber.SetText( ssprintf("%d", iNum) ); m_textNumber.SetText( ssprintf("%d", iNum) );
D3DXCOLOR colorGroup = SONGMAN->GetGroupColor( pSong->m_sGroupName ); D3DXCOLOR colorGroup = SONGMAN->GetSongColor( pSong );
D3DXCOLOR colorDifficulty = DifficultyClassToColor( pNotes->m_DifficultyClass ); D3DXCOLOR colorDifficulty = DifficultyClassToColor( pNotes->m_DifficultyClass );
m_TextBanner.LoadFromSong( pSong ); m_TextBanner.LoadFromSong( pSong );
+1 -1
View File
@@ -51,7 +51,7 @@ DifficultyClass StringToDifficultyClass( CString sDC )
return CLASS_INVALID; return CLASS_INVALID;
} }
D3DXCOLOR PlayerToColor( const PlayerNumber p ) D3DXCOLOR PlayerToColor( PlayerNumber p )
{ {
switch( p ) switch( p )
{ {
+1 -1
View File
@@ -98,7 +98,7 @@ enum PlayerNumber {
PLAYER_INVALID PLAYER_INVALID
}; };
D3DXCOLOR PlayerToColor( const PlayerNumber p ); D3DXCOLOR PlayerToColor( PlayerNumber p );
D3DXCOLOR PlayerToColor( int p ); D3DXCOLOR PlayerToColor( int p );
+1 -1
View File
@@ -36,7 +36,7 @@ public:
// //
Game m_CurGame; Game m_CurGame;
Style m_CurStyle; Style m_CurStyle;
bool m_bPlayersCanJoin; // true if it's not too late for a player to join bool m_bPlayersCanJoin; // true if it's not too late for a player to join - this only has an effect on the credits message
bool m_bSideIsJoined[2]; // left side, right side bool m_bSideIsJoined[2]; // left side, right side
PlayerNumber m_MasterPlayerNumber; PlayerNumber m_MasterPlayerNumber;
+42 -20
View File
@@ -1,22 +1,38 @@
#include "stdafx.h" #include "stdafx.h"
// /*
// GhostArrow.cpp: implementation of the GhostArrow class. -----------------------------------------------------------------------------
// Class: GhostArrow
//////////////////////////////////////////////////////////////////////
Desc: See header.
Copyright (c) 2001-2002 by the person(s) listed below. All rights reserved.
Ben Nordstrom
Chris Danford
-----------------------------------------------------------------------------
*/
#include "GhostArrow.h" #include "GhostArrow.h"
#include "PrefsManager.h" #include "PrefsManager.h"
const float GRAY_ARROW_TWEEN_TIME = 0.5f;
#define POP_UP_SECONDS THEME->GetMetricF("GhostArrow","PopUpSeconds")
#define ZOOM_START THEME->GetMetricF("GhostArrow","ZoomStart")
#define ZOOM_END THEME->GetMetricF("GhostArrow","ZoomEnd")
#define COLOR_PERFECT THEME->GetMetricC("GhostArrow","ColorPerfect")
#define COLOR_GREAT THEME->GetMetricC("GhostArrow","ColorGreat")
#define COLOR_GOOD THEME->GetMetricC("GhostArrow","ColorGood")
#define COLOR_BOO THEME->GetMetricC("GhostArrow","ColorBoo")
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
GhostArrow::GhostArrow() GhostArrow::GhostArrow()
{ {
// Load( THEME->GetPathTo(GRAPHIC_GHOST_ARROW) ); m_fPopUpSeconds = POP_UP_SECONDS;
m_fZoomStart = ZOOM_START;
m_fZoomEnd = ZOOM_END;
m_colorPerfect = COLOR_PERFECT;
m_colorGreat = COLOR_GREAT;
m_colorGood = COLOR_GOOD;
m_colorBoo = COLOR_BOO;
SetDiffuseColor( D3DXCOLOR(1,1,1,0) ); SetDiffuseColor( D3DXCOLOR(1,1,1,0) );
TurnShadowOff(); TurnShadowOff();
} }
@@ -28,18 +44,24 @@ void GhostArrow::Update( float fDeltaTime )
void GhostArrow::Step( TapNoteScore score ) void GhostArrow::Step( TapNoteScore score )
{ {
D3DXCOLOR color;
switch( score ) switch( score )
{ {
case TNS_PERFECT: SetDiffuseColor( D3DXCOLOR(1.0f,1.0f,0.3f,1) ); break; // yellow case TNS_PERFECT: color = m_colorPerfect; break;
case TNS_GREAT: SetDiffuseColor( D3DXCOLOR(0.0f,1.0f,0.4f,1) ); break; // green case TNS_GREAT: color = m_colorGreat; break;
case TNS_GOOD: SetDiffuseColor( D3DXCOLOR(0.3f,0.8f,1.0f,1) ); break; case TNS_GOOD: color = m_colorGood; break;
case TNS_BOO: SetDiffuseColor( D3DXCOLOR(0.8f,0.0f,0.6f,1) ); break; case TNS_BOO: color = m_colorBoo; break;
case TNS_MISS: ASSERT( false ); break; case TNS_MISS: // miss should never be passed in here
default:
ASSERT(0);
} }
SetZoom( 1.0f );
BeginTweening( 0.25f ); StopTweening();
SetTweenZoom( 1.5f ); SetDiffuseColor( color );
D3DXCOLOR colorTween = GetDiffuseColor(); SetState( 0 );
colorTween.a = 0; SetZoom( m_fZoomStart );
SetTweenDiffuseColor( colorTween ); BeginTweening( m_fPopUpSeconds );
SetTweenZoom( m_fZoomEnd );
color.a = 0;
SetTweenDiffuseColor( color );
} }
+5
View File
@@ -23,5 +23,10 @@ public:
virtual void Update( float fDeltaTime ); virtual void Update( float fDeltaTime );
void Step( TapNoteScore score ); void Step( TapNoteScore score );
protected:
float m_fPopUpSeconds;
float m_fZoomStart, m_fZoomEnd;
D3DXCOLOR m_colorPerfect, m_colorGreat, m_colorGood, m_colorBoo;
}; };
+30 -13
View File
@@ -15,12 +15,24 @@
#include "PrefsManager.h" #include "PrefsManager.h"
const float GRAY_ARROW_TWEEN_TIME = 0.5f; #define POP_UP_SECONDS THEME->GetMetricF("GhostArrowBright","PopUpSeconds")
#define ZOOM_START THEME->GetMetricF("GhostArrowBright","ZoomStart")
#define ZOOM_END THEME->GetMetricF("GhostArrowBright","ZoomEnd")
#define COLOR_PERFECT THEME->GetMetricC("GhostArrowBright","ColorPerfect")
#define COLOR_GREAT THEME->GetMetricC("GhostArrowBright","ColorGreat")
#define COLOR_GOOD THEME->GetMetricC("GhostArrowBright","ColorGood")
#define COLOR_BOO THEME->GetMetricC("GhostArrowBright","ColorBoo")
GhostArrowBright::GhostArrowBright() GhostArrowBright::GhostArrowBright()
{ {
// Load( THEME->GetPathTo(GRAPHIC_BRIGHT_GHOST_ARROW) ); m_fPopUpSeconds = POP_UP_SECONDS;
m_fZoomStart = ZOOM_START;
m_fZoomEnd = ZOOM_END;
m_colorPerfect = COLOR_PERFECT;
m_colorGreat = COLOR_GREAT;
m_colorGood = COLOR_GOOD;
m_colorBoo = COLOR_BOO;
SetDiffuseColor( D3DXCOLOR(1,1,1,0) ); SetDiffuseColor( D3DXCOLOR(1,1,1,0) );
TurnShadowOff(); TurnShadowOff();
} }
@@ -32,19 +44,24 @@ void GhostArrowBright::Update( float fDeltaTime )
void GhostArrowBright::Step( TapNoteScore score ) void GhostArrowBright::Step( TapNoteScore score )
{ {
D3DXCOLOR color;
switch( score ) switch( score )
{ {
case TNS_PERFECT: SetDiffuseColor( D3DXCOLOR(1.0f,1.0f,0.3f,1) ); break; // yellow case TNS_PERFECT: color = m_colorPerfect; break;
case TNS_GREAT: SetDiffuseColor( D3DXCOLOR(0.0f,1.0f,0.4f,1) ); break; // green case TNS_GREAT: color = m_colorGreat; break;
case TNS_GOOD: SetDiffuseColor( D3DXCOLOR(0.3f,0.8f,1.0f,1) ); break; case TNS_GOOD: color = m_colorGood; break;
case TNS_BOO: SetDiffuseColor( D3DXCOLOR(0.8f,0.0f,0.6f,1) ); break; case TNS_BOO: color = m_colorBoo; break;
case TNS_MISS: ASSERT( false ); break; case TNS_MISS: // miss should never be passed in here
default:
ASSERT(0);
} }
StopTweening();
SetDiffuseColor( color );
SetState( 0 ); SetState( 0 );
SetZoom( 1.0f ); SetZoom( m_fZoomStart );
BeginTweening( 0.25f ); BeginTweening( m_fPopUpSeconds );
SetTweenZoom( 1.5f ); SetTweenZoom( m_fZoomEnd );
D3DXCOLOR colorTween = GetDiffuseColor(); color.a = 0;
colorTween.a = 0; SetTweenDiffuseColor( color );
SetTweenDiffuseColor( colorTween );
} }
+3 -1
View File
@@ -24,5 +24,7 @@ public:
void Step( TapNoteScore score ); void Step( TapNoteScore score );
protected: protected:
float m_fPopUpSeconds;
float m_fZoomStart, m_fZoomEnd;
D3DXCOLOR m_colorPerfect, m_colorGreat, m_colorGood, m_colorBoo;
}; };
+14 -6
View File
@@ -71,7 +71,10 @@ void MenuElements::Load( CString sBackgroundPath, CString sTopEdgePath, CString
if( GAMESTATE->m_CurStyle == STYLE_NONE ) if( GAMESTATE->m_CurStyle == STYLE_NONE )
m_sprStyleIcon.SetDiffuseColor( D3DXCOLOR(1,1,1,0) ); m_sprStyleIcon.SetDiffuseColor( D3DXCOLOR(1,1,1,0) );
else else
m_sprStyleIcon.SetState( GAMESTATE->m_CurStyle*2+GAMESTATE->m_MasterPlayerNumber ); {
int iRowNum = GetStyleIndexRelativeToGame( GAMESTATE->m_CurGame, GAMESTATE->m_CurStyle );
m_sprStyleIcon.SetState( iRowNum*2+GAMESTATE->m_MasterPlayerNumber );
}
m_MenuTimer.SetXY( TIMER_X, TIMER_Y ); m_MenuTimer.SetXY( TIMER_X, TIMER_Y );
if( !bTimerEnabled || !PREFSMAN->m_bMenuTimer ) if( !bTimerEnabled || !PREFSMAN->m_bMenuTimer )
@@ -227,16 +230,21 @@ void MenuElements::DrawBottomLayer()
EndDraw(); EndDraw();
} }
void MenuElements::StopTimer()
{
m_MenuTimer.StopTimer();
}
void MenuElements::SetTimer( int iTimerSeconds ) void MenuElements::SetTimer( int iTimerSeconds )
{ {
m_MenuTimer.SetTimer( iTimerSeconds ); m_MenuTimer.SetTimer( iTimerSeconds );
} }
void MenuElements::StartTimer()
{
m_MenuTimer.StartTimer();
}
void MenuElements::StopTimer()
{
m_MenuTimer.StopTimer();
}
void MenuElements::StallTimer() void MenuElements::StallTimer()
{ {
m_MenuTimer.StallTimer(); m_MenuTimer.StallTimer();
+2 -1
View File
@@ -35,8 +35,9 @@ public:
virtual void DrawPrimitives(); virtual void DrawPrimitives();
void Load( CString sBackgroundPath, CString sTopEdgePath, CString sHelpText, bool bTimerEnabled, int iTimerSeconds ); void Load( CString sBackgroundPath, CString sTopEdgePath, CString sHelpText, bool bTimerEnabled, int iTimerSeconds );
void StallTimer();
void SetTimer( int iTimerSeconds ); void SetTimer( int iTimerSeconds );
void StartTimer();
void StallTimer();
void StopTimer(); void StopTimer();
void DrawTopLayer(); void DrawTopLayer();
+6 -1
View File
@@ -65,7 +65,7 @@ void MenuTimer::Update( float fDeltaTime )
float fNewSecondsLeft = fOldSecondsLeft - fDeltaTime; float fNewSecondsLeft = fOldSecondsLeft - fDeltaTime;
if( fOldSecondsLeft > 5.5 && fNewSecondsLeft < 5.5 ) // transition to below 5.5 if( fOldSecondsLeft > 5.5 && fNewSecondsLeft < 5.5 ) // transition to below 5.5
SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo(ANNOUNCER_MENU_HURRY_UP) ); SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo("hurry up") );
else if( fOldSecondsLeft > 5 && fNewSecondsLeft < 5 ) // transition to below 5 else if( fOldSecondsLeft > 5 && fNewSecondsLeft < 5 ) // transition to below 5
{ {
m_textDigit1.SetEffectGlowing( 10, D3DXCOLOR(1,0,0,0), D3DXCOLOR(1,0,0,1) ); m_textDigit1.SetEffectGlowing( 10, D3DXCOLOR(1,0,0,0), D3DXCOLOR(1,0,0,1) );
@@ -121,3 +121,8 @@ void MenuTimer::SetTimer( int iSeconds )
m_textDigit1.SetEffectNone(); m_textDigit1.SetEffectNone();
m_textDigit2.SetEffectNone(); m_textDigit2.SetEffectNone();
} }
void MenuTimer::StartTimer()
{
m_bTimerStopped = false;
}
+3 -1
View File
@@ -23,9 +23,11 @@ public:
MenuTimer(); MenuTimer();
virtual void Update( float fDeltaTime ); virtual void Update( float fDeltaTime );
void SetTimer( int iTimerSeconds );
void StartTimer();
void StopTimer(); void StopTimer();
void StallTimer(); void StallTimer();
void SetTimer( int iTimerSeconds );
protected: protected:
float m_fSecondsLeft; float m_fSecondsLeft;
+2 -2
View File
@@ -511,7 +511,7 @@ void MusicWheel::BuildWheelItemDatas( CArray<WheelItemData, WheelItemData&> &arr
sLastSection = sThisSection; sLastSection = sThisSection;
} }
arrayWheelItemDatas.Add( WheelItemData( TYPE_SONG, pSong, sThisSection, NULL, SONGMAN->GetGroupColor(pSong->m_sGroupName)) ); arrayWheelItemDatas.Add( WheelItemData( TYPE_SONG, pSong, sThisSection, NULL, SONGMAN->GetSongColor(pSong)) );
} }
} }
else else
@@ -521,7 +521,7 @@ void MusicWheel::BuildWheelItemDatas( CArray<WheelItemData, WheelItemData&> &arr
Song* pSong = arraySongs[i]; Song* pSong = arraySongs[i];
if( GAMESTATE->m_sPreferredGroup != "ALL MUSIC" && pSong->m_sGroupName != GAMESTATE->m_sPreferredGroup ) if( GAMESTATE->m_sPreferredGroup != "ALL MUSIC" && pSong->m_sGroupName != GAMESTATE->m_sPreferredGroup )
continue; // skip continue; // skip
arrayWheelItemDatas.Add( WheelItemData(TYPE_SONG, pSong, "", NULL, SONGMAN->GetGroupColor(pSong->m_sGroupName)) ); arrayWheelItemDatas.Add( WheelItemData(TYPE_SONG, pSong, "", NULL, SONGMAN->GetSongColor(pSong)) );
} }
} }
} }
+5 -1
View File
@@ -840,12 +840,16 @@ bool Notes::LoadFromKSFFile( const CString &sPath )
for( int r=0; r<asRows.GetSize(); r++ ) for( int r=0; r<asRows.GetSize(); r++ )
{ {
CString& sRowString = asRows[r]; CString& sRowString = asRows[r];
ASSERT( sRowString.GetLength() == 13 ); // why 13 notes per row. Beats me!
if( sRowString == "" )
continue; // skip
/* All 2s indicates the end of the song. */ /* All 2s indicates the end of the song. */
if( sRowString == "2222222222222" ) if( sRowString == "2222222222222" )
break; break;
ASSERT( sRowString.GetLength() == 13 ); // why 13 notes per row. Beats me!
// the length of a note in a row depends on TICKCOUNT // the length of a note in a row depends on TICKCOUNT
float fBeatThisRow = r/(float)iTickCount; float fBeatThisRow = r/(float)iTickCount;
int row = BeatToNoteRow(fBeatThisRow); int row = BeatToNoteRow(fBeatThisRow);
+1 -1
View File
@@ -433,7 +433,7 @@ HRESULT RageDisplay::EndFrame()
m_iDrawsSinceLastCheck = 0; m_iDrawsSinceLastCheck = 0;
m_fLastCheckTime = fTimeNow; m_fLastCheckTime = fTimeNow;
LOG->Trace( "FPS: %d, TPF: %d, DPF: %d", m_iFPS, m_iTPF, m_iDPF ); //LOG->Trace( "FPS: %d, TPF: %d, DPF: %d", m_iFPS, m_iTPF, m_iDPF );
} }
+2 -2
View File
@@ -301,7 +301,7 @@ char DeviceInput::ToChar() const
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// Name: EnumJoysticksCallMenuBack( const PlayerNumber p ) // Name: EnumJoysticksCallMenuBack( PlayerNumber p )
// Desc: Called once for each enumerated joystick. If we find one, create a // Desc: Called once for each enumerated joystick. If we find one, create a
// device interface on it so we can play with it. // device interface on it so we can play with it.
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
@@ -331,7 +331,7 @@ BOOL CALLBACK RageInput::EnumJoysticksCallback( const DIDEVICEINSTANCE* pdidInst
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// Name: EnumAxesCallMenuBack( const PlayerNumber p ) // Name: EnumAxesCallMenuBack( PlayerNumber p )
// Desc: Callback function for enumerating the axes on a joystick // Desc: Callback function for enumerating the axes on a joystick
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
BOOL CALLBACK RageInput::EnumAxesCallback( const DIDEVICEOBJECTINSTANCE* pdidoi, BOOL CALLBACK RageInput::EnumAxesCallback( const DIDEVICEOBJECTINSTANCE* pdidoi,
+1 -1
View File
@@ -46,7 +46,7 @@ void Screen::Update( float fDeltaTime )
} }
} }
void Screen::MenuBack( const PlayerNumber p, const InputEventType type ) void Screen::MenuBack( PlayerNumber p, const InputEventType type )
{ {
if(!PREFSMAN->m_bDelayedEscape || type==IET_SLOW_REPEAT || type==IET_FAST_REPEAT) if(!PREFSMAN->m_bDelayedEscape || type==IET_SLOW_REPEAT || type==IET_FAST_REPEAT)
MenuBack(p); MenuBack(p);
+12 -12
View File
@@ -50,17 +50,17 @@ protected:
public: public:
// let subclass override if they want // let subclass override if they want
virtual void MenuUp( const PlayerNumber p, const InputEventType type ) { if(type==IET_FIRST_PRESS) MenuUp(p); } virtual void MenuUp( PlayerNumber p, const InputEventType type ) { if(type==IET_FIRST_PRESS) MenuUp(p); }
virtual void MenuDown( const PlayerNumber p, const InputEventType type ) { if(type==IET_FIRST_PRESS) MenuDown(p); } virtual void MenuDown( PlayerNumber p, const InputEventType type ) { if(type==IET_FIRST_PRESS) MenuDown(p); }
virtual void MenuLeft( const PlayerNumber p, const InputEventType type ) { if(type==IET_FIRST_PRESS) MenuLeft(p); } virtual void MenuLeft( PlayerNumber p, const InputEventType type ) { if(type==IET_FIRST_PRESS) MenuLeft(p); }
virtual void MenuRight( const PlayerNumber p, const InputEventType type ) { if(type==IET_FIRST_PRESS) MenuRight(p); } virtual void MenuRight( PlayerNumber p, const InputEventType type ) { if(type==IET_FIRST_PRESS) MenuRight(p); }
virtual void MenuStart( const PlayerNumber p, const InputEventType type ) { if(type==IET_FIRST_PRESS) MenuStart(p); } virtual void MenuStart( PlayerNumber p, const InputEventType type ) { if(type==IET_FIRST_PRESS) MenuStart(p); }
virtual void MenuBack( const PlayerNumber p, const InputEventType type ); virtual void MenuBack( PlayerNumber p, const InputEventType type );
virtual void MenuUp( const PlayerNumber p ) {}; virtual void MenuUp( PlayerNumber p ) {};
virtual void MenuDown( const PlayerNumber p ) {}; virtual void MenuDown( PlayerNumber p ) {};
virtual void MenuLeft( const PlayerNumber p ) {}; virtual void MenuLeft( PlayerNumber p ) {};
virtual void MenuRight( const PlayerNumber p ) {}; virtual void MenuRight( PlayerNumber p ) {};
virtual void MenuStart( const PlayerNumber p ) {}; virtual void MenuStart( PlayerNumber p ) {};
virtual void MenuBack( const PlayerNumber p ) {}; virtual void MenuBack( PlayerNumber p ) {};
}; };
+6 -6
View File
@@ -21,7 +21,7 @@
#define NEXT_SCREEN THEME->GetMetric("ScreenCaution","NextScreen") #define NEXT_SCREEN THEME->GetMetric("ScreenCaution","NextScreen")
const ScreenMessage SM_GoToPrevState = ScreenMessage(SM_User-6); const ScreenMessage SM_GoToPrevScreen = ScreenMessage(SM_User-6);
const ScreenMessage SM_DoneOpening = ScreenMessage(SM_User-7); const ScreenMessage SM_DoneOpening = ScreenMessage(SM_User-7);
const ScreenMessage SM_StartClosing = ScreenMessage(SM_User-8); const ScreenMessage SM_StartClosing = ScreenMessage(SM_User-8);
const ScreenMessage SM_GoToNextScreen = ScreenMessage(SM_User-9); const ScreenMessage SM_GoToNextScreen = ScreenMessage(SM_User-9);
@@ -65,9 +65,9 @@ void ScreenCaution::HandleScreenMessage( const ScreenMessage SM )
m_Wipe.CloseWipingRight( SM_GoToNextScreen ); m_Wipe.CloseWipingRight( SM_GoToNextScreen );
break; break;
case SM_DoneOpening: case SM_DoneOpening:
SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo(ANNOUNCER_CAUTION) ); SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo("caution") );
break; break;
case SM_GoToPrevState: case SM_GoToPrevScreen:
SCREENMAN->SetNewScreen( "ScreenTitleMenu" ); SCREENMAN->SetNewScreen( "ScreenTitleMenu" );
break; break;
case SM_GoToNextScreen: case SM_GoToNextScreen:
@@ -76,7 +76,7 @@ void ScreenCaution::HandleScreenMessage( const ScreenMessage SM )
} }
} }
void ScreenCaution::MenuStart( const PlayerNumber p ) void ScreenCaution::MenuStart( PlayerNumber p )
{ {
if( p != PLAYER_INVALID && !GAMESTATE->m_bSideIsJoined[p] ) if( p != PLAYER_INVALID && !GAMESTATE->m_bSideIsJoined[p] )
{ {
@@ -90,12 +90,12 @@ void ScreenCaution::MenuStart( const PlayerNumber p )
m_Wipe.CloseWipingRight( SM_GoToNextScreen ); m_Wipe.CloseWipingRight( SM_GoToNextScreen );
} }
void ScreenCaution::MenuBack( const PlayerNumber p ) void ScreenCaution::MenuBack( PlayerNumber p )
{ {
if(m_FadeWipe.IsClosing()) if(m_FadeWipe.IsClosing())
return; return;
this->ClearMessageQueue(); this->ClearMessageQueue();
m_FadeWipe.CloseWipingLeft( SM_GoToPrevState ); m_FadeWipe.CloseWipingLeft( SM_GoToPrevScreen );
SOUND->PlayOnceStreamed( THEME->GetPathTo("Sounds","menu back") ); SOUND->PlayOnceStreamed( THEME->GetPathTo("Sounds","menu back") );
} }
+2 -2
View File
@@ -28,8 +28,8 @@ public:
virtual void HandleScreenMessage( const ScreenMessage SM ); virtual void HandleScreenMessage( const ScreenMessage SM );
protected: protected:
void MenuStart( const PlayerNumber p ); void MenuStart( PlayerNumber p );
void MenuBack( const PlayerNumber p ); void MenuBack( PlayerNumber p );
Sprite m_sprCaution; Sprite m_sprCaution;
TransitionFade m_Wipe; TransitionFade m_Wipe;
TransitionFadeWipe m_FadeWipe; TransitionFadeWipe m_FadeWipe;
+4 -4
View File
@@ -133,8 +133,8 @@ int MENU_ITEM_KEY[NUM_MENU_ITEMS] = {
DIK_Q, DIK_Q,
}; };
const ScreenMessage SM_GoToPrevState = ScreenMessage(SM_User+1); const ScreenMessage SM_GoToPrevScreen = ScreenMessage(SM_User+1);
const ScreenMessage SM_GoToNextState = ScreenMessage(SM_User+2); const ScreenMessage SM_GoToNextScreen = ScreenMessage(SM_User+2);
ScreenEdit::ScreenEdit() ScreenEdit::ScreenEdit()
@@ -1181,10 +1181,10 @@ void ScreenEdit::HandleScreenMessage( const ScreenMessage SM )
{ {
switch( SM ) switch( SM )
{ {
case SM_GoToPrevState: case SM_GoToPrevScreen:
SCREENMAN->SetNewScreen( "ScreenEditMenu" ); SCREENMAN->SetNewScreen( "ScreenEditMenu" );
break; break;
case SM_GoToNextState: case SM_GoToNextScreen:
SCREENMAN->SetNewScreen( "ScreenEditMenu" ); SCREENMAN->SetNewScreen( "ScreenEditMenu" );
break; break;
} }
+14 -14
View File
@@ -31,8 +31,8 @@ const CString EXPLANATION_TEXT =
"In this mode, you can edit existing notes patterns,\n" "In this mode, you can edit existing notes patterns,\n"
"create note patterns, or synchronize notes with the music."; "create note patterns, or synchronize notes with the music.";
const ScreenMessage SM_GoToPrevState = ScreenMessage(SM_User+1); const ScreenMessage SM_GoToPrevScreen = ScreenMessage(SM_User+1);
const ScreenMessage SM_GoToNextState = ScreenMessage(SM_User+2); const ScreenMessage SM_GoToNextScreen = ScreenMessage(SM_User+2);
ScreenEditMenu::ScreenEditMenu() ScreenEditMenu::ScreenEditMenu()
@@ -44,8 +44,8 @@ ScreenEditMenu::ScreenEditMenu()
this->AddSubActor( &Selector ); this->AddSubActor( &Selector );
m_Menu.Load( m_Menu.Load(
THEME->GetPathTo("Graphics","edit background"), THEME->GetPathTo("Graphics","edit menu background"),
THEME->GetPathTo("Graphics","edit top edge"), THEME->GetPathTo("Graphics","edit menu top edge"),
ssprintf("%c %c change line %c %c change value START to continue", char(3), char(4), char(1), char(2) ), ssprintf("%c %c change line %c %c change value START to continue", char(3), char(4), char(1), char(2) ),
false, 99 false, 99
); );
@@ -92,10 +92,10 @@ void ScreenEditMenu::HandleScreenMessage( const ScreenMessage SM )
{ {
switch( SM ) switch( SM )
{ {
case SM_GoToPrevState: case SM_GoToPrevScreen:
SCREENMAN->SetNewScreen( "ScreenTitleMenu" ); SCREENMAN->SetNewScreen( "ScreenTitleMenu" );
break; break;
case SM_GoToNextState: case SM_GoToNextScreen:
// set the current style based on the notes type // set the current style based on the notes type
// Dro Kulix: // Dro Kulix:
@@ -116,27 +116,27 @@ void ScreenEditMenu::HandleScreenMessage( const ScreenMessage SM )
} }
} }
void ScreenEditMenu::MenuUp( const PlayerNumber p ) void ScreenEditMenu::MenuUp( PlayerNumber p )
{ {
Selector.Up(); Selector.Up();
} }
void ScreenEditMenu::MenuDown( const PlayerNumber p ) void ScreenEditMenu::MenuDown( PlayerNumber p )
{ {
Selector.Down(); Selector.Down();
} }
void ScreenEditMenu::MenuLeft( const PlayerNumber p, const InputEventType type ) void ScreenEditMenu::MenuLeft( PlayerNumber p, const InputEventType type )
{ {
Selector.Left(); Selector.Left();
} }
void ScreenEditMenu::MenuRight( const PlayerNumber p, const InputEventType type ) void ScreenEditMenu::MenuRight( PlayerNumber p, const InputEventType type )
{ {
Selector.Right(); Selector.Right();
} }
void ScreenEditMenu::MenuStart( const PlayerNumber p ) void ScreenEditMenu::MenuStart( PlayerNumber p )
{ {
MUSIC->Stop(); MUSIC->Stop();
@@ -151,14 +151,14 @@ void ScreenEditMenu::MenuStart( const PlayerNumber p )
m_Menu.TweenOffScreenToBlack( SM_None, false ); m_Menu.TweenOffScreenToBlack( SM_None, false );
m_Fade.CloseWipingRight( SM_GoToNextState ); m_Fade.CloseWipingRight( SM_GoToNextScreen );
} }
void ScreenEditMenu::MenuBack( const PlayerNumber p ) void ScreenEditMenu::MenuBack( PlayerNumber p )
{ {
m_Menu.TweenOffScreenToBlack( SM_None, true ); m_Menu.TweenOffScreenToBlack( SM_None, true );
MUSIC->Stop(); MUSIC->Stop();
m_Fade.CloseWipingLeft( SM_GoToPrevState ); m_Fade.CloseWipingLeft( SM_GoToPrevScreen );
} }
+6 -6
View File
@@ -27,12 +27,12 @@ public:
private: private:
void MenuUp( const PlayerNumber p ); void MenuUp( PlayerNumber p );
void MenuDown( const PlayerNumber p ); void MenuDown( PlayerNumber p );
void MenuLeft( const PlayerNumber p, const InputEventType type ); void MenuLeft( PlayerNumber p, const InputEventType type );
void MenuRight( const PlayerNumber p, const InputEventType type ); void MenuRight( PlayerNumber p, const InputEventType type );
void MenuBack( const PlayerNumber p ); void MenuBack( PlayerNumber p );
void MenuStart( const PlayerNumber p ); void MenuStart( PlayerNumber p );
SongSelector Selector; SongSelector Selector;
+16 -16
View File
@@ -626,13 +626,13 @@ ScreenEvaluation::ScreenEvaluation( bool bSummary )
case RM_ARCADE_STAGE: case RM_ARCADE_STAGE:
switch( max_grade ) switch( max_grade )
{ {
case GRADE_E: SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo(ANNOUNCER_EVALUATION_E) ); break; case GRADE_E: SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo("evaluation e") ); break;
case GRADE_D: SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo(ANNOUNCER_EVALUATION_D) ); break; case GRADE_D: SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo("evaluation d") ); break;
case GRADE_C: SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo(ANNOUNCER_EVALUATION_C) ); break; case GRADE_C: SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo("evaluation c") ); break;
case GRADE_B: SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo(ANNOUNCER_EVALUATION_B) ); break; case GRADE_B: SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo("evaluation b") ); break;
case GRADE_A: SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo(ANNOUNCER_EVALUATION_A) ); break; case GRADE_A: SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo("evaluation a") ); break;
case GRADE_AA: SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo(ANNOUNCER_EVALUATION_AA) ); break; case GRADE_AA: SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo("evaluation aa") ); break;
case GRADE_AAA: SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo(ANNOUNCER_EVALUATION_AAA) ); break; case GRADE_AAA: SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo("evaluation aaa") ); break;
case GRADE_NO_DATA: case GRADE_NO_DATA:
default: default:
ASSERT(0); // invalid grade ASSERT(0); // invalid grade
@@ -642,13 +642,13 @@ ScreenEvaluation::ScreenEvaluation( bool bSummary )
case RM_ARCADE_SUMMARY: case RM_ARCADE_SUMMARY:
switch( max_grade ) switch( max_grade )
{ {
case GRADE_E: SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo(ANNOUNCER_EVALUATION_FINAL_E) ); break; case GRADE_E: SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo("evaluation e") ); break;
case GRADE_D: SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo(ANNOUNCER_EVALUATION_FINAL_D) ); break; case GRADE_D: SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo("evaluation d") ); break;
case GRADE_C: SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo(ANNOUNCER_EVALUATION_FINAL_C) ); break; case GRADE_C: SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo("evaluation c") ); break;
case GRADE_B: SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo(ANNOUNCER_EVALUATION_FINAL_B) ); break; case GRADE_B: SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo("evaluation b") ); break;
case GRADE_A: SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo(ANNOUNCER_EVALUATION_FINAL_A) ); break; case GRADE_A: SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo("evaluation a") ); break;
case GRADE_AA: SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo(ANNOUNCER_EVALUATION_FINAL_AA) ); break; case GRADE_AA: SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo("evaluation aa") ); break;
case GRADE_AAA: SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo(ANNOUNCER_EVALUATION_FINAL_AAA) ); break; case GRADE_AAA: SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo("evaluation aaa") ); break;
case GRADE_NO_DATA: case GRADE_NO_DATA:
default: default:
ASSERT(0); // invalid grade ASSERT(0); // invalid grade
@@ -886,12 +886,12 @@ void ScreenEvaluation::HandleScreenMessage( const ScreenMessage SM )
} }
} }
void ScreenEvaluation::MenuBack( const PlayerNumber p ) void ScreenEvaluation::MenuBack( PlayerNumber p )
{ {
MenuStart( p ); MenuStart( p );
} }
void ScreenEvaluation::MenuStart( const PlayerNumber p ) void ScreenEvaluation::MenuStart( PlayerNumber p )
{ {
TweenOffScreen(); TweenOffScreen();
+2 -2
View File
@@ -37,8 +37,8 @@ public:
virtual void TweenOnScreen(); virtual void TweenOnScreen();
virtual void TweenOffScreen(); virtual void TweenOffScreen();
virtual void MenuBack( const PlayerNumber p ); virtual void MenuBack( PlayerNumber p );
virtual void MenuStart( const PlayerNumber p ); virtual void MenuStart( PlayerNumber p );
protected: protected:
enum ResultMode { RM_ARCADE_STAGE, RM_ARCADE_SUMMARY, RM_ONI }; enum ResultMode { RM_ARCADE_STAGE, RM_ARCADE_SUMMARY, RM_ONI };
+119 -132
View File
@@ -23,33 +23,52 @@ Andrew Livy
/* Constants */ /* Constants */
const ScreenMessage SM_GoToPrevState = ScreenMessage(SM_User + 1); const ScreenMessage SM_GoToPrevScreen = ScreenMessage(SM_User + 1);
const ScreenMessage SM_GoToNextState = ScreenMessage(SM_User + 2); const ScreenMessage SM_GoToNextScreen = ScreenMessage(SM_User + 2);
const ScreenMessage SM_PlayersChosen = ScreenMessage(SM_User + 3);
#define CURSOR_P1_X THEME->GetMetricF("ScreenEz2SelectPlayer","CursorP1X")
#define CURSOR_P1_Y THEME->GetMetricF("ScreenEz2SelectPlayer","CursorP1Y")
#define CURSOR_P2_X THEME->GetMetricF("ScreenEz2SelectPlayer","CursorP2X")
#define CURSOR_P2_Y THEME->GetMetricF("ScreenEz2SelectPlayer","CursorP2Y")
#define CONTROLLER_P1_X THEME->GetMetricF("ScreenEz2SelectPlayer","ControllerP1X")
#define CONTROLLER_P1_Y THEME->GetMetricF("ScreenEz2SelectPlayer","ControllerP1Y")
#define CONTROLLER_P2_X THEME->GetMetricF("ScreenEz2SelectPlayer","ControllerP2X")
#define CONTROLLER_P2_Y THEME->GetMetricF("ScreenEz2SelectPlayer","ControllerP2Y")
#define HELP_TEXT THEME->GetMetric("ScreenEz2SelectPlayer","HelpText") #define HELP_TEXT THEME->GetMetric("ScreenEz2SelectPlayer","HelpText")
#define TIMER_SECONDS THEME->GetMetricI("ScreenEz2SelectPlayer","TimerSeconds") #define TIMER_SECONDS THEME->GetMetricI("ScreenEz2SelectPlayer","TimerSeconds")
#define NEXT_SCREEN THEME->GetMetric("ScreenEz2SelectPlayer","NextScreen") #define NEXT_SCREEN THEME->GetMetric("ScreenEz2SelectPlayer","NextScreen")
float CURSOR_X( int p ) {
switch( p ) {
case PLAYER_1: return CURSOR_P1_X;
case PLAYER_2: return CURSOR_P2_X;
default: ASSERT(0); return 0;
}
}
float CURSOR_Y( int p ) {
switch( p ) {
case PLAYER_1: return CURSOR_P1_Y;
case PLAYER_2: return CURSOR_P2_Y;
default: ASSERT(0); return 0;
}
}
float CONTROLLER_X( int p ) {
switch( p ) {
case PLAYER_1: return CONTROLLER_P1_X;
case PLAYER_2: return CONTROLLER_P2_X;
default: ASSERT(0); return 0;
}
}
float CONTROLLER_Y( int p ) {
switch( p ) {
case PLAYER_1: return CONTROLLER_P1_Y;
case PLAYER_2: return CONTROLLER_P2_Y;
default: ASSERT(0); return 0;
}
}
const float TWEEN_TIME = 0.35f; const float TWEEN_TIME = 0.35f;
const D3DXCOLOR OPT_NOT_SELECTED = D3DXCOLOR(0.3f,0.3f,0.3f,1);
const D3DXCOLOR OPT_SELECTED = D3DXCOLOR(1.0f,1.0f,1.0f,1);
const float OPT_X[NUM_EZ2_GRAPHICS] = {
CENTER_X+200, // This is the pad X
CENTER_X-200, // This is the pad X
CENTER_X-198, // This is the 1p X
CENTER_X+195, // This is the 2p X
}; // tells us the default X position
const float OPT_Y[NUM_EZ2_GRAPHICS] = {
CENTER_Y+130,
CENTER_Y+130,
CENTER_Y+115,
CENTER_Y+115,
}; // tells us the default Y position
/************************************ /************************************
@@ -59,52 +78,39 @@ Desc: Sets up the screen display
ScreenEz2SelectPlayer::ScreenEz2SelectPlayer() ScreenEz2SelectPlayer::ScreenEz2SelectPlayer()
{ {
LOG->Trace( "ScreenEz2SelectPlayer::ScreenEz2SelectPlayer()" ); // Unjoin the players, then let them join back in on this screen
m_iSelectedStyle=0; GAMESTATE->m_bPlayersCanJoin = true;
GAMESTATE->m_CurStyle = STYLE_NONE; for( int p=0; p<NUM_PLAYERS; p++ )
ez2_bounce=0.f; GAMESTATE->m_bSideIsJoined[p] = false;
// GAMESTATE->m_MasterPlayerNumber = PLAYER_INVALID;
// Load in the sprites we will be working with. LOG->Trace( "ScreenEz2SelectPlayer::ScreenEz2SelectPlayer()" );
for( int i=0; i<NUM_EZ2_GRAPHICS; i++ )
for( int p=0; p<NUM_PLAYERS; p++ )
{ {
CString sOptFileName; m_sprControllers[p].Load( THEME->GetPathTo("Graphics","select player controller") );
switch( i ) m_sprControllers[p].SetXY( CONTROLLER_X(p), CONTROLLER_Y(p) );
{ this->AddSubActor( &m_sprControllers[p] );
case 0: sOptFileName = "select difficulty hard picture"; break;
case 1: sOptFileName = "select difficulty hard picture"; break; m_sprCursors[p].Load( THEME->GetPathTo("Graphics",ssprintf("select player cursor p%d",p+1)) );
case 2: sOptFileName = "select difficulty medium picture"; break; m_sprCursors[p].SetXY( CURSOR_X(p), CURSOR_Y(p) );
case 3: sOptFileName = "select difficulty easy picture"; break; m_sprCursors[p].SetEffectBouncing( D3DXVECTOR3(0,10,0), 0.5f );
} this->AddSubActor( &m_sprCursors[p] );
m_sprOpt[i].Load( THEME->GetPathTo("Graphics",sOptFileName) );
m_sprOpt[i].SetXY( OPT_X[i], OPT_Y[i] );
this->AddSubActor( &m_sprOpt[i] );
} }
m_Menu.Load( m_Menu.Load(
THEME->GetPathTo("Graphics","select style background"), THEME->GetPathTo("Graphics","select player background"),
THEME->GetPathTo("Graphics","select style top edge"), THEME->GetPathTo("Graphics","select player top edge"),
HELP_TEXT, true, TIMER_SECONDS HELP_TEXT, true, TIMER_SECONDS
); );
this->AddSubActor( &m_Menu ); this->AddSubActor( &m_Menu );
m_soundChange.Load( THEME->GetPathTo("Sounds","select style change") );
m_soundSelect.Load( THEME->GetPathTo("Sounds","menu start") ); m_soundSelect.Load( THEME->GetPathTo("Sounds","menu start") );
m_soundInvalid.Load( THEME->GetPathTo("Sounds","menu invalid") );
/* Chris: If EZ2 doesn't use this sound, make a theme that overrides is with a silent sound file */
SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo(ANNOUNCER_SELECT_STYLE_INTRO) );
SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo("select player intro") );
MUSIC->LoadAndPlayIfNotAlready( THEME->GetPathTo("Sounds","select player music") ); MUSIC->LoadAndPlayIfNotAlready( THEME->GetPathTo("Sounds","select player music") );
// GAMESTATE->m_bPlayersCanJoin = true; TweenOnScreen();
// GAMESTATE->m_bIsJoined[PLAYER_1] = false;
// GAMESTATE->m_bIsJoined[PLAYER_2] = false;
// AfterChange();
// TweenOnScreen();
m_Menu.TweenOnScreenFromBlack( SM_None ); m_Menu.TweenOnScreenFromBlack( SM_None );
} }
@@ -125,15 +131,6 @@ Desc: Animates the 1p/2p selection
void ScreenEz2SelectPlayer::Update( float fDeltaTime ) void ScreenEz2SelectPlayer::Update( float fDeltaTime )
{ {
Screen::Update( fDeltaTime ); Screen::Update( fDeltaTime );
fDeltaTime /= .01f;
ez2_bounce = fmodf((ez2_bounce+fDeltaTime), 20);
/* 0..10..19 -> 10..0..9 */
int offset = roundf( fabsf(10-ez2_bounce) );
m_sprOpt[2].SetXY( OPT_X[2], OPT_Y[2] - offset);
m_sprOpt[3].SetXY( OPT_X[3], OPT_Y[3] - offset);
} }
/************************************ /************************************
@@ -174,46 +171,27 @@ void ScreenEz2SelectPlayer::HandleScreenMessage( const ScreenMessage SM )
switch( SM ) switch( SM )
{ {
case SM_MenuTimer: case SM_MenuTimer:
/* If a player has already chosen, then he chose within the last second
* of the menu timer; just stop and let it come through as if the menu
* timer didn't expire. */
if(!m_iSelectedStyle)
MenuStart(PLAYER_1);
break;
case SM_PlayersChosen:
if (m_iSelectedStyle & EZ2_PLAYER_1)
{ {
if (m_iSelectedStyle & EZ2_PLAYER_2) bool bAtLeastOneJoined = false;
for( int p=0; p<NUM_PLAYERS; p++ )
if( GAMESTATE->m_bSideIsJoined[p] )
bAtLeastOneJoined = true;
if( !bAtLeastOneJoined )
{ {
// they both selected MenuStart(PLAYER_1);
// GAMESTATE->m_MasterPlayerNumber = PLAYER_1; m_Menu.StopTimer();
// GAMESTATE->m_bIsJoined[PLAYER_1] = true;
GAMESTATE->m_CurStyle = STYLE_EZ2_SINGLE_VERSUS;
} else {
// only the left pad was selected
// GAMESTATE->m_MasterPlayerNumber = PLAYER_1;
GAMESTATE->m_CurStyle = STYLE_EZ2_SINGLE;
// GAMESTATE->m_bIsJoined[PLAYER_2] = true;
} }
TweenOffScreen();
m_Menu.TweenOffScreenToMenu( SM_GoToNextScreen );
} }
else if (m_iSelectedStyle & EZ2_PLAYER_2) {
// only the right pad was selected
// GAMESTATE->m_MasterPlayerNumber = PLAYER_2;
GAMESTATE->m_CurStyle = STYLE_EZ2_SINGLE;
// GAMESTATE->m_bIsJoined[PLAYER_2] = true;
} else ASSERT(0);
MUSIC->Stop();
m_Menu.TweenOffScreenToMenu( SM_GoToNextState );
break; break;
case SM_GoToPrevScreen:
case SM_GoToPrevState:
MUSIC->Stop(); MUSIC->Stop();
SCREENMAN->SetNewScreen( "ScreenTitleMenu" ); SCREENMAN->SetNewScreen( "ScreenTitleMenu" );
break; break;
case SM_GoToNextState: case SM_GoToNextScreen:
SCREENMAN->SetNewScreen( NEXT_SCREEN ); SCREENMAN->SetNewScreen( NEXT_SCREEN );
break; break;
} }
@@ -226,15 +204,11 @@ Desc: Actions performed when a player
presses the button bound to back presses the button bound to back
************************************/ ************************************/
void ScreenEz2SelectPlayer::MenuBack( const PlayerNumber p ) void ScreenEz2SelectPlayer::MenuBack( PlayerNumber p )
{ {
MUSIC->Stop(); MUSIC->Stop();
m_Menu.TweenOffScreenToBlack( SM_GoToPrevState, true ); m_Menu.TweenOffScreenToBlack( SM_GoToPrevScreen, true );
// m_Fade.CloseWipingLeft( SM_GoToPrevState );
// TweenOffScreen();
} }
@@ -255,51 +229,64 @@ presses the button bound to start
************************************/ ************************************/
void ScreenEz2SelectPlayer::MenuStart( PlayerNumber p ) void ScreenEz2SelectPlayer::MenuStart( PlayerNumber p )
{ {
int this_player_bit = (p == PLAYER_1)? EZ2_PLAYER_1:EZ2_PLAYER_2; if( GAMESTATE->m_bSideIsJoined[p] ) // already joined
return; // ignore
// disallow multiple presses of the menu start. GAMESTATE->m_bSideIsJoined[p] = true;
if ( m_iSelectedStyle & this_player_bit ) SCREENMAN->RefreshCreditsMessages();
return; m_soundSelect.PlayRandom();
m_sprCursors[p].BeginTweening( 0.25f );
m_sprCursors[p].SetTweenZoomY( 0 );
m_sprControllers[p].BeginTweening( 0.25f );
m_sprControllers[p].SetTweenZoomY( 0 );
// figure out whether we should add a player into the fray or not bool bBothSidesJoined = true;
// if( GAMESTATE->m_MasterPlayerNumber != PLAYER_2 && GAMESTATE->m_MasterPlayerNumber != PLAYER_1 ) for( int p=0; p<NUM_PLAYERS; p++ )
if (m_iSelectedStyle == 0) if( !GAMESTATE->m_bSideIsJoined[p] )
bBothSidesJoined = false;
if( bBothSidesJoined )
{ {
// GAMESTATE->m_MasterPlayerNumber = p; TweenOffScreen();
m_Menu.TweenOffScreenToMenu( SM_GoToNextScreen );
m_iSelectedStyle |= this_player_bit;
// wait for a bit in case another player wants to join before moving on.
SCREENMAN->SendMessageToTopScreen( SM_PlayersChosen, 1.f );
} }
else else
{ {
m_iSelectedStyle |= this_player_bit; // give the other player a little time to join
m_Menu.SetTimer( 5 );
m_Menu.StartTimer();
}
}
void ScreenEz2SelectPlayer::TweenOnScreen()
{
for( int p=0; p<NUM_PLAYERS; p++ )
{
float fOffScreenOffset = float( (p==PLAYER_1) ? -SCREEN_WIDTH/2 : +SCREEN_WIDTH/2 );
float fOriginalX;
fOriginalX = m_sprCursors[p].GetX();
m_sprCursors[p].SetX( m_sprCursors[p].GetX()+fOffScreenOffset );
m_sprCursors[p].BeginTweening( 0.5f, Actor::TWEEN_BOUNCE_END );
m_sprCursors[p].SetTweenX( fOriginalX );
fOriginalX = m_sprControllers[p].GetX();
m_sprControllers[p].SetX( m_sprCursors[p].GetX()+fOffScreenOffset );
m_sprControllers[p].BeginTweening( 0.5f, Actor::TWEEN_BOUNCE_END );
m_sprControllers[p].SetTweenX( fOriginalX );
} }
m_soundSelect.PlayRandom();
TweenOffScreen();
} }
/************************************
TweenOffScreen
Desc: Squashes graphics before the screen
changes state.
************************************/
void ScreenEz2SelectPlayer::TweenOffScreen() void ScreenEz2SelectPlayer::TweenOffScreen()
{ {
if (m_iSelectedStyle & EZ2_PLAYER_1) for( int p=0; p<NUM_PLAYERS; p++ )
{ {
m_sprOpt[1].BeginTweening( MENU_ELEMENTS_TWEEN_TIME ); float fOffScreenOffset = float( (p==PLAYER_1) ? -SCREEN_WIDTH : +SCREEN_WIDTH );
m_sprOpt[1].SetTweenZoomY( 0 );
m_sprOpt[2].BeginTweening( MENU_ELEMENTS_TWEEN_TIME ); m_sprCursors[p].BeginTweening( 0.5f, Actor::TWEEN_BIAS_END );
m_sprOpt[2].SetTweenZoomY( 0 ); m_sprCursors[p].SetTweenX( m_sprCursors[p].GetX()+fOffScreenOffset );
} m_sprControllers[p].BeginTweening( 0.5f, Actor::TWEEN_BIAS_END );
if (m_iSelectedStyle & EZ2_PLAYER_2) m_sprControllers[p].SetTweenX( m_sprCursors[p].GetX()+fOffScreenOffset );
{
m_sprOpt[0].BeginTweening( MENU_ELEMENTS_TWEEN_TIME );
m_sprOpt[0].SetTweenZoomY( 0 );
m_sprOpt[3].BeginTweening( MENU_ELEMENTS_TWEEN_TIME );
m_sprOpt[3].SetTweenZoomY( 0 );
} }
} }
+9 -21
View File
@@ -16,9 +16,6 @@ Andrew Livy
#include "Quad.h" #include "Quad.h"
#include "MenuElements.h" #include "MenuElements.h"
/* Class Definition */
const int NUM_EZ2_GRAPHICS = 4;
class ScreenEz2SelectPlayer : public Screen class ScreenEz2SelectPlayer : public Screen
{ {
@@ -27,32 +24,23 @@ public:
virtual ~ScreenEz2SelectPlayer(); // Destructor virtual ~ScreenEz2SelectPlayer(); // Destructor
/* Public Function Prototypes */ /* Public Function Prototypes */
virtual void Update( float fDeltaTime );
virtual void DrawPrimitives(); virtual void DrawPrimitives();
virtual void Input( const DeviceInput& DeviceI, const InputEventType type, const GameInput &GameI, const MenuInput &MenuI, const StyleInput &StyleI ); 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 HandleScreenMessage( const ScreenMessage SM );
void MenuDown( const PlayerNumber p ); virtual void MenuDown( PlayerNumber p );
void MenuStart( const PlayerNumber p ); virtual void MenuStart( PlayerNumber p );
void MenuBack( const PlayerNumber p ); virtual void MenuBack( PlayerNumber p );
void TweenOffScreen();
private: private:
/* Private Function Prototypes */ void TweenOffScreen();
void Update( float fDeltaTime ); void TweenOnScreen();
/* Variable Declarations */
Sprite m_sprCursors[NUM_PLAYERS];
Sprite m_sprControllers[NUM_PLAYERS];
MenuElements m_Menu; MenuElements m_Menu;
Sprite m_sprOpt[NUM_EZ2_GRAPHICS];
/* Bitflags for m_iSelectedStyle. */
enum { EZ2_PLAYER_1 = 0x01,
EZ2_PLAYER_2 = 0x02 };
int m_iSelectedStyle;
RandomSample m_soundChange;
RandomSample m_soundSelect; RandomSample m_soundSelect;
RandomSample m_soundInvalid;
// used for the bouncing of the '1p' and '2p' images
float ez2_bounce;
}; };
+19 -10
View File
@@ -33,8 +33,8 @@ a polish :)
#define NEXT_SCREEN THEME->GetMetric("ScreenEz2SelectStyle","NextScreen") #define NEXT_SCREEN THEME->GetMetric("ScreenEz2SelectStyle","NextScreen")
const ScreenMessage SM_GoToPrevState = ScreenMessage(SM_User + 1); const ScreenMessage SM_GoToPrevScreen = ScreenMessage(SM_User + 1);
const ScreenMessage SM_GoToNextState = ScreenMessage(SM_User + 2); const ScreenMessage SM_GoToNextScreen = ScreenMessage(SM_User + 2);
enum DStyles { enum DStyles {
@@ -164,13 +164,13 @@ void ScreenEz2SelectStyle::HandleScreenMessage( const ScreenMessage SM )
case SM_MenuTimer: case SM_MenuTimer:
m_soundSelect.PlayRandom(); m_soundSelect.PlayRandom();
GAMESTATE->m_PlayMode = PLAY_MODE_ARCADE; GAMESTATE->m_PlayMode = PLAY_MODE_ARCADE;
this->SendScreenMessage( SM_GoToNextState, 0 ); this->SendScreenMessage( SM_GoToNextScreen, 0 );
break; break;
case SM_GoToPrevState: case SM_GoToPrevScreen:
MUSIC->Stop(); MUSIC->Stop();
SCREENMAN->SetNewScreen( "ScreenTitleMenu" ); SCREENMAN->SetNewScreen( "ScreenTitleMenu" );
break; break;
case SM_GoToNextState: case SM_GoToNextScreen:
SCREENMAN->SetNewScreen( NEXT_SCREEN ); SCREENMAN->SetNewScreen( NEXT_SCREEN );
break; break;
} }
@@ -183,14 +183,14 @@ Desc: Actions performed when a player
presses the button bound to back presses the button bound to back
************************************/ ************************************/
void ScreenEz2SelectStyle::MenuBack( const PlayerNumber p ) void ScreenEz2SelectStyle::MenuBack( PlayerNumber p )
{ {
MUSIC->Stop(); MUSIC->Stop();
m_Menu.TweenOffScreenToBlack( SM_GoToPrevState, true ); m_Menu.TweenOffScreenToBlack( SM_GoToPrevScreen, true );
GAMESTATE->m_CurStyle = STYLE_NONE; // Make sure that both players can scroll around title menu... GAMESTATE->m_CurStyle = STYLE_NONE; // Make sure that both players can scroll around title menu...
// m_Fade.CloseWipingLeft( SM_GoToPrevState ); // m_Fade.CloseWipingLeft( SM_GoToPrevScreen );
// TweenOffScreen(); // TweenOffScreen();
} }
@@ -201,7 +201,7 @@ Desc: Actions performed when a player
presses the button bound to down presses the button bound to down
************************************/ ************************************/
void ScreenEz2SelectStyle::MenuDown( const PlayerNumber p ) void ScreenEz2SelectStyle::MenuDown( PlayerNumber p )
{ {
MenuStart(p); MenuStart(p);
} }
@@ -282,7 +282,16 @@ void ScreenEz2SelectStyle::MenuStart( PlayerNumber p )
this->ClearMessageQueue(); this->ClearMessageQueue();
GAMESTATE->m_PlayMode = PLAY_MODE_ARCADE; GAMESTATE->m_PlayMode = PLAY_MODE_ARCADE;
// GAMESTATE->m_bPlayersCanJoin = false; // GAMESTATE->m_bPlayersCanJoin = false;
m_Menu.TweenOffScreenToMenu( SM_GoToNextState );
CString sCurStyleName = GAMESTATE->GetCurrentStyleDef()->m_szName;
if( 0==stricmp(sCurStyleName,"single") ) SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo("select style comment single") );
else if( 0==stricmp(sCurStyleName,"versus") ) SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo("select style comment versus") );
else if( 0==stricmp(sCurStyleName,"double") ) SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo("select style comment double") );
else if( 0==stricmp(sCurStyleName,"couple") ) SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo("select style comment couple") );
else if( 0==stricmp(sCurStyleName,"solo") ) SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo("select style comment solo") );
m_Menu.TweenOffScreenToMenu( SM_GoToNextScreen );
} }
/************************************ /************************************
+5 -5
View File
@@ -34,11 +34,11 @@ public:
virtual void Input( const DeviceInput& DeviceI, const InputEventType type, const GameInput &GameI, const MenuInput &MenuI, const StyleInput &StyleI ); 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 HandleScreenMessage( const ScreenMessage SM );
void MenuLeft( const PlayerNumber p ); void MenuLeft( PlayerNumber p );
void MenuRight( const PlayerNumber p ); void MenuRight( PlayerNumber p );
void MenuStart( const PlayerNumber p ); void MenuStart( PlayerNumber p );
void MenuBack( const PlayerNumber p ); void MenuBack( PlayerNumber p );
void MenuDown( const PlayerNumber p ); void MenuDown( PlayerNumber p );
void TweenOffScreen(); void TweenOffScreen();
void TweenPlyOffScreen(); void TweenPlyOffScreen();
+4 -4
View File
@@ -23,7 +23,7 @@
const ScreenMessage SM_StartFadingOut = ScreenMessage(SM_User + 1); const ScreenMessage SM_StartFadingOut = ScreenMessage(SM_User + 1);
const ScreenMessage SM_GoToNextState = ScreenMessage(SM_User + 2); const ScreenMessage SM_GoToNextScreen = ScreenMessage(SM_User + 2);
const ScreenMessage SM_PlayAnnouncer = ScreenMessage(SM_User + 3); const ScreenMessage SM_PlayAnnouncer = ScreenMessage(SM_User + 3);
@@ -60,15 +60,15 @@ void ScreenGameOver::HandleScreenMessage( const ScreenMessage SM )
switch( SM ) switch( SM )
{ {
case SM_PlayAnnouncer: case SM_PlayAnnouncer:
SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo(ANNOUNCER_GAME_OVER) ); SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo("game over") );
break; break;
case SM_StartFadingOut: case SM_StartFadingOut:
m_bClosing = true; m_bClosing = true;
m_sprGameOver.BeginTweening( 0.8f ); m_sprGameOver.BeginTweening( 0.8f );
m_sprGameOver.SetTweenDiffuseColor( D3DXCOLOR(1,1,1,0) ); m_sprGameOver.SetTweenDiffuseColor( D3DXCOLOR(1,1,1,0) );
this->SendScreenMessage( SM_GoToNextState, 0.8f ); this->SendScreenMessage( SM_GoToNextScreen, 0.8f );
break; break;
case SM_GoToNextState: case SM_GoToNextScreen:
SCREENMAN->SetNewScreen( "ScreenTitleMenu" ); SCREENMAN->SetNewScreen( "ScreenTitleMenu" );
break; break;
} }
+1 -1
View File
@@ -20,7 +20,7 @@ public:
virtual void HandleScreenMessage( const ScreenMessage SM ); virtual void HandleScreenMessage( const ScreenMessage SM );
virtual void MenuStart( const PlayerNumber p ); virtual void MenuStart( PlayerNumber p );
private: private:
+20 -20
View File
@@ -542,28 +542,28 @@ ScreenGameplay::ScreenGameplay()
{ {
m_soundFail.Load( THEME->GetPathTo("Sounds","gameplay failed") ); m_soundFail.Load( THEME->GetPathTo("Sounds","gameplay failed") );
m_soundOniDie.Load( THEME->GetPathTo("Sounds","gameplay oni die") ); m_soundOniDie.Load( THEME->GetPathTo("Sounds","gameplay oni die") );
m_announcerReady.Load( ANNOUNCER->GetPathTo(ANNOUNCER_GAMEPLAY_READY) ); m_announcerReady.Load( ANNOUNCER->GetPathTo("gameplay ready") );
if( GAMESTATE->IsExtraStage() || GAMESTATE->IsExtraStage2() ) if( GAMESTATE->IsExtraStage() || GAMESTATE->IsExtraStage2() )
m_announcerHereWeGo.Load( ANNOUNCER->GetPathTo(ANNOUNCER_GAMEPLAY_HERE_WE_GO_EXTRA) ); m_announcerHereWeGo.Load( ANNOUNCER->GetPathTo("gameplay here we go extra") );
else if( GAMESTATE->IsFinalStage() ) else if( GAMESTATE->IsFinalStage() )
m_announcerHereWeGo.Load( ANNOUNCER->GetPathTo(ANNOUNCER_GAMEPLAY_HERE_WE_GO_FINAL) ); m_announcerHereWeGo.Load( ANNOUNCER->GetPathTo("gameplay here we go final") );
else else
m_announcerHereWeGo.Load( ANNOUNCER->GetPathTo(ANNOUNCER_GAMEPLAY_HERE_WE_GO_NORMAL) ); m_announcerHereWeGo.Load( ANNOUNCER->GetPathTo("gameplay here we go normal") );
m_announcerDanger.Load( ANNOUNCER->GetPathTo(ANNOUNCER_GAMEPLAY_COMMENT_DANGER) ); m_announcerDanger.Load( ANNOUNCER->GetPathTo("gameplay comment danger") );
m_announcerGood.Load( ANNOUNCER->GetPathTo(ANNOUNCER_GAMEPLAY_COMMENT_GOOD) ); m_announcerGood.Load( ANNOUNCER->GetPathTo("gameplay comment goood") );
m_announcerHot.Load( ANNOUNCER->GetPathTo(ANNOUNCER_GAMEPLAY_COMMENT_HOT) ); m_announcerHot.Load( ANNOUNCER->GetPathTo("gameplay comment hot") );
m_announcer100Combo.Load( ANNOUNCER->GetPathTo(ANNOUNCER_GAMEPLAY_100_COMBO) ); m_announcer100Combo.Load( ANNOUNCER->GetPathTo("gameplay comment 100 combo") );
m_announcer200Combo.Load( ANNOUNCER->GetPathTo(ANNOUNCER_GAMEPLAY_200_COMBO) ); m_announcer200Combo.Load( ANNOUNCER->GetPathTo("gameplay comment 200 combo") );
m_announcer300Combo.Load( ANNOUNCER->GetPathTo(ANNOUNCER_GAMEPLAY_300_COMBO) ); m_announcer300Combo.Load( ANNOUNCER->GetPathTo("gameplay comment 300 combo") );
m_announcer400Combo.Load( ANNOUNCER->GetPathTo(ANNOUNCER_GAMEPLAY_400_COMBO) ); m_announcer400Combo.Load( ANNOUNCER->GetPathTo("gameplay comment 400 combo") );
m_announcer500Combo.Load( ANNOUNCER->GetPathTo(ANNOUNCER_GAMEPLAY_500_COMBO) ); m_announcer500Combo.Load( ANNOUNCER->GetPathTo("gameplay comment 500 combo") );
m_announcer600Combo.Load( ANNOUNCER->GetPathTo(ANNOUNCER_GAMEPLAY_600_COMBO) ); m_announcer600Combo.Load( ANNOUNCER->GetPathTo("gameplay comment 600 combo") );
m_announcer700Combo.Load( ANNOUNCER->GetPathTo(ANNOUNCER_GAMEPLAY_700_COMBO) ); m_announcer700Combo.Load( ANNOUNCER->GetPathTo("gameplay comment 700 combo") );
m_announcer800Combo.Load( ANNOUNCER->GetPathTo(ANNOUNCER_GAMEPLAY_800_COMBO) ); m_announcer800Combo.Load( ANNOUNCER->GetPathTo("gameplay comment 800 combo") );
m_announcer900Combo.Load( ANNOUNCER->GetPathTo(ANNOUNCER_GAMEPLAY_900_COMBO) ); m_announcer900Combo.Load( ANNOUNCER->GetPathTo("gameplay comment 900 combo") );
m_announcer1000Combo.Load( ANNOUNCER->GetPathTo(ANNOUNCER_GAMEPLAY_1000_COMBO) ); m_announcer1000Combo.Load( ANNOUNCER->GetPathTo("gameplay comment 1000 combo") );
m_announcerComboStopped.Load( ANNOUNCER->GetPathTo(ANNOUNCER_GAMEPLAY_COMBO_STOPPED) ); m_announcerComboStopped.Load( ANNOUNCER->GetPathTo("gameplay comment combo stopped") );
} }
m_iRowLastCrossed = -1; m_iRowLastCrossed = -1;
@@ -1233,7 +1233,7 @@ void ScreenGameplay::HandleScreenMessage( const ScreenMessage SM )
{ {
m_StarWipe.CloseWipingRight( SM_None ); m_StarWipe.CloseWipingRight( SM_None );
this->SendScreenMessage( SM_ShowCleared, 1 ); this->SendScreenMessage( SM_ShowCleared, 1 );
SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo(ANNOUNCER_GAMEPLAY_CLEARED) ); SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo("gameplay cleared") );
} }
} }
} }
@@ -1440,7 +1440,7 @@ void ScreenGameplay::HandleScreenMessage( const ScreenMessage SM )
SCREENMAN->SendMessageToTopScreen( SM_HideFailed, 3.0f ); SCREENMAN->SendMessageToTopScreen( SM_HideFailed, 3.0f );
break; break;
case SM_PlayFailComment: case SM_PlayFailComment:
SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo(ANNOUNCER_GAMEPLAY_FAILED) ); SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo("gameplay failed") );
break; break;
case SM_HideFailed: case SM_HideFailed:
m_sprFailed.StopTweening(); m_sprFailed.StopTweening();
+5 -5
View File
@@ -26,7 +26,7 @@
#define NEXT_SCREEN_ONI THEME->GetMetric("ScreenHowToPlay","NextScreenOni") #define NEXT_SCREEN_ONI THEME->GetMetric("ScreenHowToPlay","NextScreenOni")
const ScreenMessage SM_GoToNextState = ScreenMessage(SM_User + 1); const ScreenMessage SM_GoToNextScreen = ScreenMessage(SM_User + 1);
ScreenHowToPlay::ScreenHowToPlay() ScreenHowToPlay::ScreenHowToPlay()
@@ -102,7 +102,7 @@ void ScreenHowToPlay::HandleScreenMessage( const ScreenMessage SM )
case SM_MenuTimer: case SM_MenuTimer:
this->MenuStart(PLAYER_1); this->MenuStart(PLAYER_1);
break; break;
case SM_GoToNextState: case SM_GoToNextScreen:
switch( GAMESTATE->m_PlayMode ) switch( GAMESTATE->m_PlayMode )
{ {
case PLAY_MODE_ARCADE: case PLAY_MODE_ARCADE:
@@ -119,13 +119,13 @@ void ScreenHowToPlay::HandleScreenMessage( const ScreenMessage SM )
} }
} }
void ScreenHowToPlay::MenuBack( const PlayerNumber p ) void ScreenHowToPlay::MenuBack( PlayerNumber p )
{ {
} }
void ScreenHowToPlay::MenuStart( const PlayerNumber p ) void ScreenHowToPlay::MenuStart( PlayerNumber p )
{ {
m_Menu.TweenOffScreenToMenu( SM_GoToNextState ); m_Menu.TweenOffScreenToMenu( SM_GoToNextScreen );
m_sprHowToPlay.BeginTweening( 0.3f, Actor::TWEEN_BIAS_END ); m_sprHowToPlay.BeginTweening( 0.3f, Actor::TWEEN_BIAS_END );
m_sprHowToPlay.SetTweenX( SCREEN_RIGHT+m_sprHowToPlay.GetUnzoomedWidth()/2 ); m_sprHowToPlay.SetTweenX( SCREEN_RIGHT+m_sprHowToPlay.GetUnzoomedWidth()/2 );
+2 -2
View File
@@ -29,8 +29,8 @@ public:
virtual void Input( const DeviceInput& DeviceI, const InputEventType type, const GameInput &GameI, const MenuInput &MenuI, const StyleInput &StyleI ); 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 HandleScreenMessage( const ScreenMessage SM );
virtual void MenuBack( const PlayerNumber p ); virtual void MenuBack( PlayerNumber p );
virtual void MenuStart( const PlayerNumber p ); virtual void MenuStart( PlayerNumber p );
protected: protected:
Sprite m_sprHowToPlay; Sprite m_sprHowToPlay;
+8 -8
View File
@@ -22,7 +22,7 @@
const ScreenMessage SM_StartFadingOut = ScreenMessage(SM_User + 1); const ScreenMessage SM_StartFadingOut = ScreenMessage(SM_User + 1);
const ScreenMessage SM_GoToNextState = ScreenMessage(SM_User + 2); const ScreenMessage SM_GoToNextScreen = ScreenMessage(SM_User + 2);
const int LINE_GAP = 40; const int LINE_GAP = 40;
@@ -144,7 +144,7 @@ ScreenMusicScroll::ScreenMusicScroll()
Song* pSong = arraySongs[i]; Song* pSong = arraySongs[i];
m_textLines[m_iNumLines].LoadFromFont( THEME->GetPathTo("Fonts","normal") ); m_textLines[m_iNumLines].LoadFromFont( THEME->GetPathTo("Fonts","normal") );
m_textLines[m_iNumLines].SetText( pSong->GetFullTitle() ); m_textLines[m_iNumLines].SetText( pSong->GetFullTitle() );
m_textLines[m_iNumLines].SetDiffuseColor( SONGMAN->GetGroupColor(pSong->m_sGroupName) ); m_textLines[m_iNumLines].SetDiffuseColor( SONGMAN->GetSongColor(pSong) );
m_iNumLines++; m_iNumLines++;
} }
@@ -171,7 +171,7 @@ ScreenMusicScroll::ScreenMusicScroll()
this->AddSubActor( &m_Fade ); this->AddSubActor( &m_Fade );
SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo(ANNOUNCER_MUSIC_SCROLL) ); SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo("music scroll") );
MUSIC->LoadAndPlayIfNotAlready( THEME->GetPathTo("Sounds","music scroll music") ); MUSIC->LoadAndPlayIfNotAlready( THEME->GetPathTo("Sounds","music scroll music") );
@@ -221,20 +221,20 @@ void ScreenMusicScroll::HandleScreenMessage( const ScreenMessage SM )
switch( SM ) switch( SM )
{ {
case SM_StartFadingOut: case SM_StartFadingOut:
m_Fade.CloseWipingRight( SM_GoToNextState ); m_Fade.CloseWipingRight( SM_GoToNextScreen );
break; break;
case SM_GoToNextState: case SM_GoToNextScreen:
SCREENMAN->SetNewScreen( "ScreenTitleMenu" ); SCREENMAN->SetNewScreen( "ScreenTitleMenu" );
break; break;
} }
} }
void ScreenMusicScroll::MenuStart( const PlayerNumber p ) void ScreenMusicScroll::MenuStart( PlayerNumber p )
{ {
m_Fade.CloseWipingRight( SM_GoToNextState ); m_Fade.CloseWipingRight( SM_GoToNextScreen );
} }
void ScreenMusicScroll::MenuBack( const PlayerNumber p ) void ScreenMusicScroll::MenuBack( PlayerNumber p )
{ {
MenuStart( p ); MenuStart( p );
} }
+2 -2
View File
@@ -33,8 +33,8 @@ public:
virtual void Input( const DeviceInput& DeviceI, const InputEventType type, const GameInput &GameI, const MenuInput &MenuI, const StyleInput &StyleI ); 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 HandleScreenMessage( const ScreenMessage SM );
void MenuStart( const PlayerNumber p ); void MenuStart( PlayerNumber p );
void MenuBack( const PlayerNumber p ); void MenuBack( PlayerNumber p );
private: private:
+12 -12
View File
@@ -35,8 +35,8 @@ const float LINE_GAP_Y = 34;
const float ITEMS_START_X = 160; const float ITEMS_START_X = 160;
const ScreenMessage SM_PlaySample = ScreenMessage(SM_User-4); const ScreenMessage SM_PlaySample = ScreenMessage(SM_User-4);
const ScreenMessage SM_GoToPrevState = ScreenMessage(SM_User-5); const ScreenMessage SM_GoToPrevScreen = ScreenMessage(SM_User-5);
const ScreenMessage SM_GoToNextState = ScreenMessage(SM_User-6); const ScreenMessage SM_GoToNextScreen = ScreenMessage(SM_User-6);
ScreenOptions::ScreenOptions( CString sBackgroundPath, CString sPagePath, CString sTopEdgePath ) ScreenOptions::ScreenOptions( CString sBackgroundPath, CString sPagePath, CString sTopEdgePath )
@@ -299,11 +299,11 @@ void ScreenOptions::HandleScreenMessage( const ScreenMessage SM )
case SM_MenuTimer: case SM_MenuTimer:
this->MenuStart(PLAYER_1); this->MenuStart(PLAYER_1);
break; break;
case SM_GoToPrevState: case SM_GoToPrevScreen:
this->ExportOptions(); this->ExportOptions();
this->GoToPrevState(); this->GoToPrevState();
break; break;
case SM_GoToNextState: case SM_GoToNextScreen:
this->ExportOptions(); this->ExportOptions();
this->GoToNextState(); this->GoToNextState();
break; break;
@@ -317,30 +317,30 @@ void ScreenOptions::OnChange()
} }
void ScreenOptions::MenuBack( const PlayerNumber p ) void ScreenOptions::MenuBack( PlayerNumber p )
{ {
Screen::MenuBack( p ); Screen::MenuBack( p );
m_Menu.TweenOffScreenToBlack( SM_None, true ); m_Menu.TweenOffScreenToBlack( SM_None, true );
m_Wipe.CloseWipingLeft( SM_GoToPrevState ); m_Wipe.CloseWipingLeft( SM_GoToPrevScreen );
} }
void ScreenOptions::MenuStart( const PlayerNumber p ) void ScreenOptions::MenuStart( PlayerNumber p )
{ {
Screen::MenuStart( p ); Screen::MenuStart( p );
m_Menu.TweenOffScreenToBlack( SM_None, false ); m_Menu.TweenOffScreenToBlack( SM_None, false );
m_SoundNext.PlayRandom(); m_SoundNext.PlayRandom();
m_Wipe.CloseWipingRight( SM_GoToNextState ); m_Wipe.CloseWipingRight( SM_GoToNextScreen );
m_framePage.BeginTweening( 0.3f, Actor::TWEEN_BIAS_END ); m_framePage.BeginTweening( 0.3f, Actor::TWEEN_BIAS_END );
m_framePage.SetTweenX( SCREEN_RIGHT ); m_framePage.SetTweenX( SCREEN_RIGHT );
} }
void ScreenOptions::MenuLeft( const PlayerNumber pn ) void ScreenOptions::MenuLeft( PlayerNumber pn )
{ {
for( int p=0; p<NUM_PLAYERS; p++ ) for( int p=0; p<NUM_PLAYERS; p++ )
{ {
@@ -365,7 +365,7 @@ void ScreenOptions::MenuLeft( const PlayerNumber pn )
OnChange(); OnChange();
} }
void ScreenOptions::MenuRight( const PlayerNumber pn ) void ScreenOptions::MenuRight( PlayerNumber pn )
{ {
for( int p=0; p<NUM_PLAYERS; p++ ) for( int p=0; p<NUM_PLAYERS; p++ )
{ {
@@ -390,7 +390,7 @@ void ScreenOptions::MenuRight( const PlayerNumber pn )
OnChange(); OnChange();
} }
void ScreenOptions::MenuUp( const PlayerNumber pn ) void ScreenOptions::MenuUp( PlayerNumber pn )
{ {
for( int p=0; p<NUM_PLAYERS; p++ ) for( int p=0; p<NUM_PLAYERS; p++ )
{ {
@@ -413,7 +413,7 @@ void ScreenOptions::MenuUp( const PlayerNumber pn )
} }
void ScreenOptions::MenuDown( const PlayerNumber pn ) void ScreenOptions::MenuDown( PlayerNumber pn )
{ {
for( int p=0; p<NUM_PLAYERS; p++ ) for( int p=0; p<NUM_PLAYERS; p++ )
{ {
+6 -6
View File
@@ -60,16 +60,16 @@ protected:
void TweenHighlight( PlayerNumber player_no ); void TweenHighlight( PlayerNumber player_no );
virtual void OnChange(); virtual void OnChange();
void MenuBack( const PlayerNumber p ); void MenuBack( PlayerNumber p );
void MenuStart( const PlayerNumber p ); void MenuStart( PlayerNumber p );
virtual void GoToNextState() = 0; virtual void GoToNextState() = 0;
virtual void GoToPrevState() = 0; virtual void GoToPrevState() = 0;
void MenuLeft( const PlayerNumber p ); void MenuLeft( PlayerNumber p );
void MenuRight( const PlayerNumber p ); void MenuRight( PlayerNumber p );
void MenuUp( const PlayerNumber p ); void MenuUp( PlayerNumber p );
void MenuDown( const PlayerNumber p ); void MenuDown( PlayerNumber p );
InputMode m_InputMode; InputMode m_InputMode;
+1 -1
View File
@@ -63,7 +63,7 @@ ScreenPlayerOptions::ScreenPlayerOptions() :
NUM_PLAYER_OPTIONS_LINES NUM_PLAYER_OPTIONS_LINES
); );
SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo(ANNOUNCER_PLAYER_OPTIONS_INTRO) ); SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo("player options intro") );
} }
+4 -4
View File
@@ -113,7 +113,7 @@ void ScreenPrompt::HandleScreenMessage( const ScreenMessage SM )
} }
} }
void ScreenPrompt::MenuLeft( const PlayerNumber p ) void ScreenPrompt::MenuLeft( PlayerNumber p )
{ {
if( !m_bYesNoPrompt ) if( !m_bYesNoPrompt )
return; return;
@@ -121,7 +121,7 @@ void ScreenPrompt::MenuLeft( const PlayerNumber p )
MenuRight( p ); MenuRight( p );
} }
void ScreenPrompt::MenuRight( const PlayerNumber p ) void ScreenPrompt::MenuRight( PlayerNumber p )
{ {
if( !m_bYesNoPrompt ) if( !m_bYesNoPrompt )
return; return;
@@ -137,7 +137,7 @@ void ScreenPrompt::MenuRight( const PlayerNumber p )
SOUND->PlayOnceStreamed( THEME->GetPathTo("Sounds","edit change line") ); SOUND->PlayOnceStreamed( THEME->GetPathTo("Sounds","edit change line") );
} }
void ScreenPrompt::MenuStart( const PlayerNumber p ) void ScreenPrompt::MenuStart( PlayerNumber p )
{ {
m_Fade.OpenWipingRight( SM_DoneOpeningWipingRight ); m_Fade.OpenWipingRight( SM_DoneOpeningWipingRight );
@@ -162,7 +162,7 @@ void ScreenPrompt::MenuStart( const PlayerNumber p )
m_pOnNo(); m_pOnNo();
} }
void ScreenPrompt::MenuBack( const PlayerNumber p ) void ScreenPrompt::MenuBack( PlayerNumber p )
{ {
} }
+4 -4
View File
@@ -29,10 +29,10 @@ public:
virtual void HandleScreenMessage( const ScreenMessage SM ); virtual void HandleScreenMessage( const ScreenMessage SM );
protected: protected:
void MenuLeft( const PlayerNumber p ); void MenuLeft( PlayerNumber p );
void MenuRight( const PlayerNumber p ); void MenuRight( PlayerNumber p );
void MenuBack( const PlayerNumber p ); void MenuBack( PlayerNumber p );
void MenuStart( const PlayerNumber p ); void MenuStart( PlayerNumber p );
TransitionFade m_Fade; TransitionFade m_Fade;
+12 -12
View File
@@ -65,8 +65,8 @@ float BEST_TIME_Y( int p ) {
const float TWEEN_TIME = 0.5f; const float TWEEN_TIME = 0.5f;
const ScreenMessage SM_GoToPrevState = ScreenMessage(SM_User+1); const ScreenMessage SM_GoToPrevScreen = ScreenMessage(SM_User+1);
const ScreenMessage SM_GoToNextState = ScreenMessage(SM_User+2); const ScreenMessage SM_GoToNextScreen = ScreenMessage(SM_User+2);
@@ -137,7 +137,7 @@ ScreenSelectCourse::ScreenSelectCourse()
m_soundSelect.Load( THEME->GetPathTo("Sounds","menu start") ); m_soundSelect.Load( THEME->GetPathTo("Sounds","menu start") );
m_soundChangeNotes.Load( THEME->GetPathTo("Sounds","select music change notes") ); m_soundChangeNotes.Load( THEME->GetPathTo("Sounds","select music change notes") );
SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo(ANNOUNCER_SELECT_COURSE_INTRO) ); SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo("select course intro") );
MUSIC->LoadAndPlayIfNotAlready( THEME->GetPathTo("Sounds","select course music") ); MUSIC->LoadAndPlayIfNotAlready( THEME->GetPathTo("Sounds","select course music") );
@@ -251,10 +251,10 @@ void ScreenSelectCourse::HandleScreenMessage( const ScreenMessage SM )
case SM_MenuTimer: case SM_MenuTimer:
MenuStart(PLAYER_1); MenuStart(PLAYER_1);
break; break;
case SM_GoToPrevState: case SM_GoToPrevScreen:
SCREENMAN->SetNewScreen( "ScreenTitleMenu" ); SCREENMAN->SetNewScreen( "ScreenTitleMenu" );
break; break;
case SM_GoToNextState: case SM_GoToNextScreen:
// find out if the Next button is being held down on any of the pads // find out if the Next button is being held down on any of the pads
bool bIsHoldingNext; bool bIsHoldingNext;
@@ -276,7 +276,7 @@ void ScreenSelectCourse::HandleScreenMessage( const ScreenMessage SM )
} }
} }
void ScreenSelectCourse::MenuLeft( const PlayerNumber p, const InputEventType type ) void ScreenSelectCourse::MenuLeft( PlayerNumber p, const InputEventType type )
{ {
m_MusicWheel.PrevMusic(); m_MusicWheel.PrevMusic();
@@ -284,14 +284,14 @@ void ScreenSelectCourse::MenuLeft( const PlayerNumber p, const InputEventType ty
} }
void ScreenSelectCourse::MenuRight( const PlayerNumber p, const InputEventType type ) void ScreenSelectCourse::MenuRight( PlayerNumber p, const InputEventType type )
{ {
m_MusicWheel.NextMusic(); m_MusicWheel.NextMusic();
AfterCourseChange(); AfterCourseChange();
} }
void ScreenSelectCourse::MenuStart( const PlayerNumber p ) void ScreenSelectCourse::MenuStart( PlayerNumber p )
{ {
// this needs to check whether valid Notes are selected! // this needs to check whether valid Notes are selected!
m_MusicWheel.Select(); m_MusicWheel.Select();
@@ -299,7 +299,7 @@ void ScreenSelectCourse::MenuStart( const PlayerNumber p )
switch( m_MusicWheel.GetSelectedType() ) switch( m_MusicWheel.GetSelectedType() )
{ {
case TYPE_COURSE: case TYPE_COURSE:
SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo(ANNOUNCER_SELECT_MUSIC_COMMENT_GENERAL) ); SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo("select course comment general") );
TweenOffScreen(); TweenOffScreen();
@@ -327,18 +327,18 @@ void ScreenSelectCourse::MenuStart( const PlayerNumber p )
m_Menu.StopTimer(); m_Menu.StopTimer();
this->SendScreenMessage( SM_GoToNextState, 2.5f ); this->SendScreenMessage( SM_GoToNextScreen, 2.5f );
break; break;
} }
} }
void ScreenSelectCourse::MenuBack( const PlayerNumber p ) void ScreenSelectCourse::MenuBack( PlayerNumber p )
{ {
MUSIC->Stop(); MUSIC->Stop();
m_Menu.TweenOffScreenToBlack( SM_GoToPrevState, true ); m_Menu.TweenOffScreenToBlack( SM_GoToPrevScreen, true );
} }
+4 -4
View File
@@ -34,10 +34,10 @@ public:
void TweenOnScreen(); void TweenOnScreen();
void TweenOffScreen(); void TweenOffScreen();
void MenuLeft( const PlayerNumber p, const InputEventType type ); void MenuLeft( PlayerNumber p, const InputEventType type );
void MenuRight( const PlayerNumber p, const InputEventType type ); void MenuRight( PlayerNumber p, const InputEventType type );
void MenuStart( const PlayerNumber p ); void MenuStart( PlayerNumber p );
void MenuBack( const PlayerNumber p ); void MenuBack( PlayerNumber p );
protected: protected:
void AfterCourseChange(); void AfterCourseChange();
+17 -17
View File
@@ -117,8 +117,8 @@ float CURSOR_Y( int iItemIndex, int p ) {
} }
const ScreenMessage SM_GoToPrevState = ScreenMessage(SM_User + 1); const ScreenMessage SM_GoToPrevScreen = ScreenMessage(SM_User + 1);
const ScreenMessage SM_GoToNextState = ScreenMessage(SM_User + 2); const ScreenMessage SM_GoToNextScreen = ScreenMessage(SM_User + 2);
const ScreenMessage SM_StartTweeningOffScreen = ScreenMessage(SM_User + 3); const ScreenMessage SM_StartTweeningOffScreen = ScreenMessage(SM_User + 3);
const ScreenMessage SM_StartFadingOut = ScreenMessage(SM_User + 4); const ScreenMessage SM_StartFadingOut = ScreenMessage(SM_User + 4);
@@ -214,7 +214,7 @@ ScreenSelectDifficulty::ScreenSelectDifficulty()
m_bPlayedChallengeSound = false; m_bPlayedChallengeSound = false;
SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo(ANNOUNCER_SELECT_DIFFICULTY_INTRO) ); SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo("select difficulty intro") );
m_Menu.TweenOnScreenFromMenu( SM_None ); m_Menu.TweenOnScreenFromMenu( SM_None );
TweenOnScreen(); TweenOnScreen();
@@ -269,10 +269,10 @@ void ScreenSelectDifficulty::HandleScreenMessage( const ScreenMessage SM )
MenuStart( (PlayerNumber)p ); MenuStart( (PlayerNumber)p );
} }
break; break;
case SM_GoToPrevState: case SM_GoToPrevScreen:
SCREENMAN->SetNewScreen( "ScreenTitleMenu" ); SCREENMAN->SetNewScreen( "ScreenTitleMenu" );
break; break;
case SM_GoToNextState: case SM_GoToNextScreen:
{ {
for( int p=0; p<NUM_PLAYERS; p++ ) for( int p=0; p<NUM_PLAYERS; p++ )
switch( m_iSelection[p] ) switch( m_iSelection[p] )
@@ -312,12 +312,12 @@ void ScreenSelectDifficulty::HandleScreenMessage( const ScreenMessage SM )
this->SendScreenMessage( SM_StartFadingOut, 0.8f ); this->SendScreenMessage( SM_StartFadingOut, 0.8f );
break; break;
case SM_StartFadingOut: case SM_StartFadingOut:
m_Menu.TweenOffScreenToMenu( SM_GoToNextState ); m_Menu.TweenOffScreenToMenu( SM_GoToNextScreen );
break; break;
} }
} }
void ScreenSelectDifficulty::MenuLeft( const PlayerNumber p ) void ScreenSelectDifficulty::MenuLeft( PlayerNumber p )
{ {
if( m_iSelection[p] == 0 ) // can't go left any more if( m_iSelection[p] == 0 ) // can't go left any more
return; return;
@@ -328,7 +328,7 @@ void ScreenSelectDifficulty::MenuLeft( const PlayerNumber p )
} }
void ScreenSelectDifficulty::MenuRight( const PlayerNumber p ) void ScreenSelectDifficulty::MenuRight( PlayerNumber p )
{ {
if( m_iSelection[p] == NUM_DIFFICULTY_ITEMS-1 ) // can't go right any more if( m_iSelection[p] == NUM_DIFFICULTY_ITEMS-1 ) // can't go right any more
return; return;
@@ -355,7 +355,7 @@ bool ScreenSelectDifficulty::SelectedSomethingOnPage2()
return false; return false;
} }
void ScreenSelectDifficulty::ChangeTo( const PlayerNumber pn, int iSelectionWas, int iSelectionIs ) void ScreenSelectDifficulty::ChangeTo( PlayerNumber pn, int iSelectionWas, int iSelectionIs )
{ {
bool bChangedPagesFrom1To2 = iSelectionWas < 3 && iSelectionIs >= 3; bool bChangedPagesFrom1To2 = iSelectionWas < 3 && iSelectionIs >= 3;
bool bChangedPagesFrom2To1 = iSelectionWas >= 3 && iSelectionIs < 3; bool bChangedPagesFrom2To1 = iSelectionWas >= 3 && iSelectionIs < 3;
@@ -385,7 +385,7 @@ void ScreenSelectDifficulty::ChangeTo( const PlayerNumber pn, int iSelectionWas,
if( !m_bPlayedChallengeSound && bChangedPagesFrom1To2 ) if( !m_bPlayedChallengeSound && bChangedPagesFrom1To2 )
{ {
SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo(ANNOUNCER_SELECT_DIFFICULTY_CHALLENGE) ); SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo("select difficulty challenge") );
m_bPlayedChallengeSound = true; m_bPlayedChallengeSound = true;
} }
@@ -423,11 +423,11 @@ void ScreenSelectDifficulty::MenuStart( PlayerNumber pn )
switch( iSelection ) switch( iSelection )
{ {
case 0: SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo(ANNOUNCER_SELECT_DIFFICULTY_COMMENT_EASY) ); break; case 0: SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo("select difficulty comment easy") ); break;
case 1: SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo(ANNOUNCER_SELECT_DIFFICULTY_COMMENT_MEDIUM) ); break; case 1: SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo("select difficulty comment medium") ); break;
case 2: SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo(ANNOUNCER_SELECT_DIFFICULTY_COMMENT_HARD) ); break; case 2: SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo("select difficulty comment hard") ); break;
case 3: SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo(ANNOUNCER_SELECT_DIFFICULTY_COMMENT_ONI) ); break; case 3: SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo("select difficulty comment oni") ); break;
case 4: SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo(ANNOUNCER_SELECT_DIFFICULTY_COMMENT_ENDLESS) ); break; case 4: SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo("select difficulty comment endless") ); break;
} }
if( iSelection >= 3 ) // chose something on page 2 if( iSelection >= 3 ) // chose something on page 2
@@ -471,9 +471,9 @@ void ScreenSelectDifficulty::MenuStart( PlayerNumber pn )
this->SendScreenMessage( SM_StartTweeningOffScreen, 0.7f ); this->SendScreenMessage( SM_StartTweeningOffScreen, 0.7f );
} }
void ScreenSelectDifficulty::MenuBack( const PlayerNumber p ) void ScreenSelectDifficulty::MenuBack( PlayerNumber p )
{ {
m_Menu.TweenOffScreenToBlack( SM_GoToPrevState, true ); m_Menu.TweenOffScreenToBlack( SM_GoToPrevScreen, true );
} }
void ScreenSelectDifficulty::TweenOffScreen() void ScreenSelectDifficulty::TweenOffScreen()
+5 -5
View File
@@ -31,16 +31,16 @@ public:
virtual void Input( const DeviceInput& DeviceI, const InputEventType type, const GameInput &GameI, const MenuInput &MenuI, const StyleInput &StyleI ); 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 HandleScreenMessage( const ScreenMessage SM );
void MenuLeft( const PlayerNumber p ); void MenuLeft( PlayerNumber p );
void MenuRight( const PlayerNumber p ); void MenuRight( PlayerNumber p );
void MenuStart( const PlayerNumber p ); void MenuStart( PlayerNumber p );
void MenuBack( const PlayerNumber p ); void MenuBack( PlayerNumber p );
void TweenOffScreen(); void TweenOffScreen();
void TweenOnScreen(); void TweenOnScreen();
private: private:
void ChangeTo( const PlayerNumber pn, int iSelectionWas, int iSelectionIs ); void ChangeTo( PlayerNumber pn, int iSelectionWas, int iSelectionIs );
bool IsItemOnPage2( int iItemIndex ); bool IsItemOnPage2( int iItemIndex );
bool SelectedSomethingOnPage2(); // checks selection of players bool SelectedSomethingOnPage2(); // checks selection of players
+15 -15
View File
@@ -41,8 +41,8 @@
#define NEXT_SCREEN_ONI THEME->GetMetric("ScreenSelectGroup","NextScreenOni") #define NEXT_SCREEN_ONI THEME->GetMetric("ScreenSelectGroup","NextScreenOni")
const ScreenMessage SM_GoToPrevState = ScreenMessage(SM_User + 1); const ScreenMessage SM_GoToPrevScreen = ScreenMessage(SM_User + 1);
const ScreenMessage SM_GoToNextState = ScreenMessage(SM_User + 2); const ScreenMessage SM_GoToNextScreen = ScreenMessage(SM_User + 2);
const ScreenMessage SM_StartFadingOut = ScreenMessage(SM_User + 3); const ScreenMessage SM_StartFadingOut = ScreenMessage(SM_User + 3);
@@ -160,7 +160,7 @@ ScreenSelectGroup::ScreenSelectGroup()
m_soundChange.Load( THEME->GetPathTo("Sounds","select group change") ); m_soundChange.Load( THEME->GetPathTo("Sounds","select group change") );
m_soundSelect.Load( THEME->GetPathTo("Sounds","menu start") ); m_soundSelect.Load( THEME->GetPathTo("Sounds","menu start") );
SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo(ANNOUNCER_SELECT_GROUP_INTRO) ); SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo("select group intro") );
MUSIC->LoadAndPlayIfNotAlready( THEME->GetPathTo("Sounds","select group music") ); MUSIC->LoadAndPlayIfNotAlready( THEME->GetPathTo("Sounds","select group music") );
@@ -202,10 +202,10 @@ void ScreenSelectGroup::HandleScreenMessage( const ScreenMessage SM )
case SM_MenuTimer: case SM_MenuTimer:
MenuStart(PLAYER_1); MenuStart(PLAYER_1);
break; break;
case SM_GoToPrevState: case SM_GoToPrevScreen:
SCREENMAN->SetNewScreen( "ScreenTitleMenu" ); SCREENMAN->SetNewScreen( "ScreenTitleMenu" );
break; break;
case SM_GoToNextState: case SM_GoToNextScreen:
switch( GAMESTATE->m_PlayMode ) switch( GAMESTATE->m_PlayMode )
{ {
case PLAY_MODE_ARCADE: case PLAY_MODE_ARCADE:
@@ -220,7 +220,7 @@ void ScreenSelectGroup::HandleScreenMessage( const ScreenMessage SM )
} }
break; break;
case SM_StartFadingOut: case SM_StartFadingOut:
m_Menu.TweenOffScreenToMenu( SM_GoToNextState ); m_Menu.TweenOffScreenToMenu( SM_GoToNextScreen );
break; break;
} }
} }
@@ -247,17 +247,17 @@ void ScreenSelectGroup::AfterChange()
} }
void ScreenSelectGroup::MenuLeft( const PlayerNumber p ) void ScreenSelectGroup::MenuLeft( PlayerNumber p )
{ {
MenuUp( p ); MenuUp( p );
} }
void ScreenSelectGroup::MenuRight( const PlayerNumber p ) void ScreenSelectGroup::MenuRight( PlayerNumber p )
{ {
MenuDown( p ); MenuDown( p );
} }
void ScreenSelectGroup::MenuUp( const PlayerNumber p ) void ScreenSelectGroup::MenuUp( PlayerNumber p )
{ {
if( m_bChosen ) if( m_bChosen )
return; return;
@@ -270,7 +270,7 @@ void ScreenSelectGroup::MenuUp( const PlayerNumber p )
} }
void ScreenSelectGroup::MenuDown( const PlayerNumber p ) void ScreenSelectGroup::MenuDown( PlayerNumber p )
{ {
if( m_bChosen ) if( m_bChosen )
return; return;
@@ -282,7 +282,7 @@ void ScreenSelectGroup::MenuDown( const PlayerNumber p )
m_soundChange.PlayRandom(); m_soundChange.PlayRandom();
} }
void ScreenSelectGroup::MenuStart( const PlayerNumber p ) void ScreenSelectGroup::MenuStart( PlayerNumber p )
{ {
m_soundSelect.PlayRandom(); m_soundSelect.PlayRandom();
m_bChosen = true; m_bChosen = true;
@@ -291,9 +291,9 @@ void ScreenSelectGroup::MenuStart( const PlayerNumber p )
GAMESTATE->m_sPreferredGroup = m_GroupList.GetSelectionName(); GAMESTATE->m_sPreferredGroup = m_GroupList.GetSelectionName();
if( 0 == stricmp(GAMESTATE->m_sPreferredGroup, "All Music") ) if( 0 == stricmp(GAMESTATE->m_sPreferredGroup, "All Music") )
SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo(ANNOUNCER_SELECT_GROUP_COMMENT_ALL_MUSIC) ); SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo("select group comment all music") );
else else
SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo(ANNOUNCER_SELECT_GROUP_COMMENT_GENERAL) ); SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo("select group comment general") );
TweenOffScreen(); TweenOffScreen();
@@ -302,9 +302,9 @@ void ScreenSelectGroup::MenuStart( const PlayerNumber p )
this->SendScreenMessage( SM_StartFadingOut, 0.8f ); this->SendScreenMessage( SM_StartFadingOut, 0.8f );
} }
void ScreenSelectGroup::MenuBack( const PlayerNumber p ) void ScreenSelectGroup::MenuBack( PlayerNumber p )
{ {
m_Menu.TweenOffScreenToBlack( SM_GoToPrevState, true ); m_Menu.TweenOffScreenToBlack( SM_GoToPrevScreen, true );
} }
void ScreenSelectGroup::TweenOffScreen() void ScreenSelectGroup::TweenOffScreen()
+6 -6
View File
@@ -30,12 +30,12 @@ public:
void AfterChange(); void AfterChange();
void MenuLeft( const PlayerNumber p ); void MenuLeft( PlayerNumber p );
void MenuRight( const PlayerNumber p ); void MenuRight( PlayerNumber p );
void MenuUp( const PlayerNumber p ); void MenuUp( PlayerNumber p );
void MenuDown( const PlayerNumber p ); void MenuDown( PlayerNumber p );
void MenuStart( const PlayerNumber p ); void MenuStart( PlayerNumber p );
void MenuBack( const PlayerNumber p ); void MenuBack( PlayerNumber p );
void TweenOffScreen(); void TweenOffScreen();
void TweenOnScreen(); void TweenOnScreen();
+17 -17
View File
@@ -124,8 +124,8 @@ float PLAYER_OPTIONS_Y( int p ) {
} }
} }
const ScreenMessage SM_GoToPrevState = ScreenMessage(SM_User+1); const ScreenMessage SM_GoToPrevScreen = ScreenMessage(SM_User+1);
const ScreenMessage SM_GoToNextState = ScreenMessage(SM_User+2); const ScreenMessage SM_GoToNextScreen = ScreenMessage(SM_User+2);
@@ -261,7 +261,7 @@ ScreenSelectMusic::ScreenSelectMusic()
m_soundChangeNotes.Load( THEME->GetPathTo("Sounds","select music change notes") ); m_soundChangeNotes.Load( THEME->GetPathTo("Sounds","select music change notes") );
m_soundLocked.Load( THEME->GetPathTo("Sounds","select music wheel locked") ); m_soundLocked.Load( THEME->GetPathTo("Sounds","select music wheel locked") );
SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo(ANNOUNCER_SELECT_MUSIC_INTRO) ); SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo("select music intro") );
m_bMadeChoice = false; m_bMadeChoice = false;
m_bGoToOptions = false; m_bGoToOptions = false;
@@ -505,7 +505,7 @@ void ScreenSelectMusic::Input( const DeviceInput& DeviceI, const InputEventType
} }
void ScreenSelectMusic::EasierDifficulty( const PlayerNumber p ) void ScreenSelectMusic::EasierDifficulty( PlayerNumber p )
{ {
LOG->Trace( "ScreenSelectMusic::EasierDifficulty( %d )", p ); LOG->Trace( "ScreenSelectMusic::EasierDifficulty( %d )", p );
@@ -525,7 +525,7 @@ void ScreenSelectMusic::EasierDifficulty( const PlayerNumber p )
AfterNotesChange( p ); AfterNotesChange( p );
} }
void ScreenSelectMusic::HarderDifficulty( const PlayerNumber p ) void ScreenSelectMusic::HarderDifficulty( PlayerNumber p )
{ {
LOG->Trace( "ScreenSelectMusic::HarderDifficulty( %d )", p ); LOG->Trace( "ScreenSelectMusic::HarderDifficulty( %d )", p );
@@ -568,10 +568,10 @@ void ScreenSelectMusic::HandleScreenMessage( const ScreenMessage SM )
MenuStart(PLAYER_INVALID); MenuStart(PLAYER_INVALID);
} }
break; break;
case SM_GoToPrevState: case SM_GoToPrevScreen:
SCREENMAN->SetNewScreen( "ScreenTitleMenu" ); SCREENMAN->SetNewScreen( "ScreenTitleMenu" );
break; break;
case SM_GoToNextState: case SM_GoToNextScreen:
if( m_bGoToOptions ) if( m_bGoToOptions )
{ {
SCREENMAN->SetNewScreen( "ScreenPlayerOptions" ); SCREENMAN->SetNewScreen( "ScreenPlayerOptions" );
@@ -594,7 +594,7 @@ void ScreenSelectMusic::HandleScreenMessage( const ScreenMessage SM )
} }
} }
void ScreenSelectMusic::MenuLeft( const PlayerNumber p, const InputEventType type ) void ScreenSelectMusic::MenuLeft( PlayerNumber p, const InputEventType type )
{ {
if( type >= IET_SLOW_REPEAT && INPUTMAPPER->IsButtonDown( MenuInput(p, MENU_BUTTON_RIGHT) ) ) if( type >= IET_SLOW_REPEAT && INPUTMAPPER->IsButtonDown( MenuInput(p, MENU_BUTTON_RIGHT) ) )
return; // ignore return; // ignore
@@ -606,7 +606,7 @@ void ScreenSelectMusic::MenuLeft( const PlayerNumber p, const InputEventType typ
} }
void ScreenSelectMusic::MenuRight( const PlayerNumber p, const InputEventType type ) void ScreenSelectMusic::MenuRight( PlayerNumber p, const InputEventType type )
{ {
if( type >= IET_SLOW_REPEAT && INPUTMAPPER->IsButtonDown( MenuInput(p, MENU_BUTTON_LEFT) ) ) if( type >= IET_SLOW_REPEAT && INPUTMAPPER->IsButtonDown( MenuInput(p, MENU_BUTTON_LEFT) ) )
return; // ignore return; // ignore
@@ -617,7 +617,7 @@ void ScreenSelectMusic::MenuRight( const PlayerNumber p, const InputEventType ty
m_MusicWheel.NextMusic(); m_MusicWheel.NextMusic();
} }
void ScreenSelectMusic::MenuStart( const PlayerNumber p ) void ScreenSelectMusic::MenuStart( PlayerNumber p )
{ {
if( p != PLAYER_INVALID && if( p != PLAYER_INVALID &&
INPUTMAPPER->IsButtonDown( MenuInput(p, MENU_BUTTON_LEFT) ) && INPUTMAPPER->IsButtonDown( MenuInput(p, MENU_BUTTON_LEFT) ) &&
@@ -674,11 +674,11 @@ void ScreenSelectMusic::MenuStart( const PlayerNumber p )
} }
if( bIsNew ) if( bIsNew )
SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo(ANNOUNCER_SELECT_MUSIC_COMMENT_NEW) ); SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo("select music comment new") );
else if( bIsHard ) else if( bIsHard )
SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo(ANNOUNCER_SELECT_MUSIC_COMMENT_HARD) ); SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo("select music comment hard") );
else else
SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo(ANNOUNCER_SELECT_MUSIC_COMMENT_GENERAL) ); SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo("select music comment general") );
TweenOffScreen(); TweenOffScreen();
@@ -704,7 +704,7 @@ void ScreenSelectMusic::MenuStart( const PlayerNumber p )
m_Menu.StopTimer(); m_Menu.StopTimer();
this->SendScreenMessage( SM_GoToNextState, 2.5f ); this->SendScreenMessage( SM_GoToNextScreen, 2.5f );
} }
break; break;
case TYPE_SECTION: case TYPE_SECTION:
@@ -719,14 +719,14 @@ void ScreenSelectMusic::MenuStart( const PlayerNumber p )
} }
void ScreenSelectMusic::MenuBack( const PlayerNumber p ) void ScreenSelectMusic::MenuBack( PlayerNumber p )
{ {
MUSIC->Stop(); MUSIC->Stop();
m_Menu.TweenOffScreenToBlack( SM_GoToPrevState, true ); m_Menu.TweenOffScreenToBlack( SM_GoToPrevScreen, true );
} }
void ScreenSelectMusic::AfterNotesChange( const PlayerNumber p ) void ScreenSelectMusic::AfterNotesChange( PlayerNumber p )
{ {
if( !GAMESTATE->IsPlayerEnabled(p) ) if( !GAMESTATE->IsPlayerEnabled(p) )
return; return;
+7 -7
View File
@@ -39,16 +39,16 @@ public:
void TweenOnScreen(); void TweenOnScreen();
void TweenOffScreen(); void TweenOffScreen();
void MenuLeft( const PlayerNumber p, const InputEventType type ); void MenuLeft( PlayerNumber p, const InputEventType type );
void MenuRight( const PlayerNumber p, const InputEventType type ); void MenuRight( PlayerNumber p, const InputEventType type );
void MenuStart( const PlayerNumber p ); void MenuStart( PlayerNumber p );
void MenuBack( const PlayerNumber p ); void MenuBack( PlayerNumber p );
protected: protected:
void EasierDifficulty( const PlayerNumber p ); void EasierDifficulty( PlayerNumber p );
void HarderDifficulty( const PlayerNumber p ); void HarderDifficulty( PlayerNumber p );
void AfterNotesChange( const PlayerNumber p ); void AfterNotesChange( PlayerNumber p );
void AfterMusicChange(); void AfterMusicChange();
void PlayMusicSample(); void PlayMusicSample();
void SortOrderChanged(); void SortOrderChanged();
+18 -27
View File
@@ -38,8 +38,8 @@
#define NEXT_SCREEN THEME->GetMetric("ScreenSelectStyle","NextScreen") #define NEXT_SCREEN THEME->GetMetric("ScreenSelectStyle","NextScreen")
const ScreenMessage SM_GoToPrevState = ScreenMessage(SM_User + 1); const ScreenMessage SM_GoToPrevScreen = ScreenMessage(SM_User + 1);
const ScreenMessage SM_GoToNextState = ScreenMessage(SM_User + 2); const ScreenMessage SM_GoToNextScreen = ScreenMessage(SM_User + 2);
ScreenSelectStyle::ScreenSelectStyle() ScreenSelectStyle::ScreenSelectStyle()
@@ -96,7 +96,7 @@ ScreenSelectStyle::ScreenSelectStyle()
m_soundSelect.Load( THEME->GetPathTo("Sounds","menu start") ); m_soundSelect.Load( THEME->GetPathTo("Sounds","menu start") );
SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo(ANNOUNCER_SELECT_STYLE_INTRO) ); SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo("select style intro") );
MUSIC->LoadAndPlayIfNotAlready( THEME->GetPathTo("Sounds","select style music") ); MUSIC->LoadAndPlayIfNotAlready( THEME->GetPathTo("Sounds","select style music") );
@@ -137,11 +137,11 @@ void ScreenSelectStyle::HandleScreenMessage( const ScreenMessage SM )
case SM_MenuTimer: case SM_MenuTimer:
MenuStart(PLAYER_INVALID); MenuStart(PLAYER_INVALID);
break; break;
case SM_GoToPrevState: case SM_GoToPrevScreen:
MUSIC->Stop(); MUSIC->Stop();
SCREENMAN->SetNewScreen( "ScreenTitleMenu" ); SCREENMAN->SetNewScreen( "ScreenTitleMenu" );
break; break;
case SM_GoToNextState: case SM_GoToNextScreen:
SCREENMAN->SetNewScreen( NEXT_SCREEN ); SCREENMAN->SetNewScreen( NEXT_SCREEN );
break; break;
} }
@@ -185,7 +185,7 @@ void ScreenSelectStyle::AfterChange()
m_sprInfo.SetTweenZoomY( 1 ); m_sprInfo.SetTweenZoomY( 1 );
} }
void ScreenSelectStyle::MenuLeft( const PlayerNumber p ) void ScreenSelectStyle::MenuLeft( PlayerNumber p )
{ {
// search for a style to the left of the current selection that is enabled // search for a style to the left of the current selection that is enabled
int iSwitchToStyleIndex = -1; // -1 means none found int iSwitchToStyleIndex = -1; // -1 means none found
@@ -208,7 +208,7 @@ void ScreenSelectStyle::MenuLeft( const PlayerNumber p )
} }
void ScreenSelectStyle::MenuRight( const PlayerNumber p ) void ScreenSelectStyle::MenuRight( PlayerNumber p )
{ {
// search for a style to the right of the current selection that is enabled // search for a style to the right of the current selection that is enabled
int iSwitchToStyleIndex = -1; // -1 means none found int iSwitchToStyleIndex = -1; // -1 means none found
@@ -230,7 +230,7 @@ void ScreenSelectStyle::MenuRight( const PlayerNumber p )
AfterChange(); AfterChange();
} }
void ScreenSelectStyle::MenuStart( const PlayerNumber p ) void ScreenSelectStyle::MenuStart( PlayerNumber p )
{ {
if( p!=PLAYER_INVALID && !GAMESTATE->m_bSideIsJoined[p] ) if( p!=PLAYER_INVALID && !GAMESTATE->m_bSideIsJoined[p] )
{ {
@@ -243,23 +243,14 @@ void ScreenSelectStyle::MenuStart( const PlayerNumber p )
GAMESTATE->m_CurStyle = GetSelectedStyle(); GAMESTATE->m_CurStyle = GetSelectedStyle();
AnnouncerElement ae; CString sCurStyleName = GAMESTATE->GetCurrentStyleDef()->m_szName;
switch( GAMESTATE->m_CurStyle ) if( 0==stricmp(sCurStyleName,"single") ) SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo("select style comment single") );
{ else if( 0==stricmp(sCurStyleName,"versus") ) SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo("select style comment versus") );
case STYLE_PUMP_SINGLE: else if( 0==stricmp(sCurStyleName,"double") ) SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo("select style comment double") );
case STYLE_DANCE_SINGLE: ae = ANNOUNCER_SELECT_STYLE_COMMENT_SINGLE; break; else if( 0==stricmp(sCurStyleName,"couple") ) SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo("select style comment couple") );
case STYLE_PUMP_VERSUS: else if( 0==stricmp(sCurStyleName,"solo") ) SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo("select style comment solo") );
case STYLE_DANCE_VERSUS: ae = ANNOUNCER_SELECT_STYLE_COMMENT_VERSUS; break;
case STYLE_PUMP_DOUBLE:
case STYLE_DANCE_DOUBLE: ae = ANNOUNCER_SELECT_STYLE_COMMENT_DOUBLE; break;
case STYLE_PUMP_COUPLE:
case STYLE_DANCE_COUPLE: ae = ANNOUNCER_SELECT_STYLE_COMMENT_COUPLE; break;
case STYLE_DANCE_SOLO: ae = ANNOUNCER_SELECT_STYLE_COMMENT_SOLO; break;
default: ASSERT(0); break; // invalid Style
}
SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo(ae) );
m_Menu.TweenOffScreenToMenu( SM_GoToNextState ); m_Menu.TweenOffScreenToMenu( SM_GoToNextScreen );
m_soundSelect.PlayRandom(); m_soundSelect.PlayRandom();
@@ -268,13 +259,13 @@ void ScreenSelectStyle::MenuStart( const PlayerNumber p )
TweenOffScreen(); TweenOffScreen();
} }
void ScreenSelectStyle::MenuBack( const PlayerNumber p ) void ScreenSelectStyle::MenuBack( PlayerNumber p )
{ {
MUSIC->Stop(); MUSIC->Stop();
m_Menu.TweenOffScreenToBlack( SM_GoToPrevState, true ); m_Menu.TweenOffScreenToBlack( SM_GoToPrevScreen, true );
// m_Fade.CloseWipingLeft( SM_GoToPrevState ); // m_Fade.CloseWipingLeft( SM_GoToPrevScreen );
// TweenOffScreen(); // TweenOffScreen();
} }
+4 -4
View File
@@ -29,10 +29,10 @@ public:
virtual void Input( const DeviceInput& DeviceI, const InputEventType type, const GameInput &GameI, const MenuInput &MenuI, const StyleInput &StyleI ); 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 HandleScreenMessage( const ScreenMessage SM );
void MenuLeft( const PlayerNumber p ); void MenuLeft( PlayerNumber p );
void MenuRight( const PlayerNumber p ); void MenuRight( PlayerNumber p );
void MenuStart( const PlayerNumber p ); void MenuStart( PlayerNumber p );
void MenuBack( const PlayerNumber p ); void MenuBack( PlayerNumber p );
void TweenOffScreen(); void TweenOffScreen();
void TweenOnScreen(); void TweenOnScreen();
+18 -26
View File
@@ -26,14 +26,13 @@
#define TIMER_SECONDS THEME->GetMetricI("ScreenSelectStyle5th","TimerSeconds") #define TIMER_SECONDS THEME->GetMetricI("ScreenSelectStyle5th","TimerSeconds")
#define NEXT_SCREEN THEME->GetMetric("ScreenSelectStyle5th","NextScreen") #define NEXT_SCREEN THEME->GetMetric("ScreenSelectStyle5th","NextScreen")
const CString DANCE_STYLES[] = { const CString DANCE_STYLES[NUM_DANCE_STYLES] = {
"single", "single",
"versus", "versus",
"double", "double",
"couple", "couple",
"solo", "solo",
}; };
const int NUM_DANCE_STYLES = sizeof(DANCE_STYLES)/sizeof(CString);
const float PAD_X[NUM_STYLE_PADS] = { const float PAD_X[NUM_STYLE_PADS] = {
CENTER_X-250, CENTER_X-250,
@@ -107,8 +106,8 @@ const D3DXCOLOR COLOR_P1_NOT_SELECTED = COLOR_P1_SELECTED*0.5f + D3DXCOLOR(0,0,0
const D3DXCOLOR COLOR_P2_NOT_SELECTED = COLOR_P2_SELECTED*0.5f + D3DXCOLOR(0,0,0,0.5f); const D3DXCOLOR COLOR_P2_NOT_SELECTED = COLOR_P2_SELECTED*0.5f + D3DXCOLOR(0,0,0,0.5f);
const ScreenMessage SM_GoToPrevState = ScreenMessage(SM_User + 1); const ScreenMessage SM_GoToPrevScreen = ScreenMessage(SM_User + 1);
const ScreenMessage SM_GoToNextState = ScreenMessage(SM_User + 2); const ScreenMessage SM_GoToNextScreen = ScreenMessage(SM_User + 2);
const ScreenMessage SM_UpdateAnimations = ScreenMessage(SM_User + 3); const ScreenMessage SM_UpdateAnimations = ScreenMessage(SM_User + 3);
const ScreenMessage SM_TweenExplanation2 = ScreenMessage(SM_User + 4); const ScreenMessage SM_TweenExplanation2 = ScreenMessage(SM_User + 4);
@@ -175,7 +174,7 @@ ScreenSelectStyle5th::ScreenSelectStyle5th()
m_soundChange.Load( THEME->GetPathTo("Graphics","select style change") ); m_soundChange.Load( THEME->GetPathTo("Graphics","select style change") );
m_soundSelect.Load( THEME->GetPathTo("Sounds","menu start") ); m_soundSelect.Load( THEME->GetPathTo("Sounds","menu start") );
SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo(ANNOUNCER_SELECT_STYLE_INTRO) ); SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo("select style intro") );
MUSIC->LoadAndPlayIfNotAlready( THEME->GetPathTo("Sounds","select style music") ); MUSIC->LoadAndPlayIfNotAlready( THEME->GetPathTo("Sounds","select style music") );
@@ -217,11 +216,11 @@ void ScreenSelectStyle5th::HandleScreenMessage( const ScreenMessage SM )
case SM_MenuTimer: case SM_MenuTimer:
MenuStart(PLAYER_1); MenuStart(PLAYER_1);
break; break;
case SM_GoToPrevState: case SM_GoToPrevScreen:
MUSIC->Stop(); MUSIC->Stop();
SCREENMAN->SetNewScreen( "ScreenTitleMenu" ); SCREENMAN->SetNewScreen( "ScreenTitleMenu" );
break; break;
case SM_GoToNextState: case SM_GoToNextScreen:
SCREENMAN->SetNewScreen( "ScreenSelectDifficulty" ); SCREENMAN->SetNewScreen( "ScreenSelectDifficulty" );
break; break;
case SM_TweenExplanation2: case SM_TweenExplanation2:
@@ -243,7 +242,7 @@ void ScreenSelectStyle5th::HandleScreenMessage( const ScreenMessage SM )
} }
} }
void ScreenSelectStyle5th::MenuLeft( const PlayerNumber p ) void ScreenSelectStyle5th::MenuLeft( PlayerNumber p )
{ {
if( m_iSelection == 0 ) // can't go left any further if( m_iSelection == 0 ) // can't go left any further
return; return;
@@ -256,7 +255,7 @@ void ScreenSelectStyle5th::MenuLeft( const PlayerNumber p )
} }
void ScreenSelectStyle5th::MenuRight( const PlayerNumber p ) void ScreenSelectStyle5th::MenuRight( PlayerNumber p )
{ {
if( m_iSelection == NUM_DANCE_STYLES-1 ) // can't go right any further if( m_iSelection == NUM_DANCE_STYLES-1 ) // can't go right any further
return; return;
@@ -268,37 +267,30 @@ void ScreenSelectStyle5th::MenuRight( const PlayerNumber p )
AfterChange(); AfterChange();
} }
void ScreenSelectStyle5th::MenuStart( const PlayerNumber p ) void ScreenSelectStyle5th::MenuStart( PlayerNumber p )
{ {
GAMESTATE->m_CurStyle = Style( m_iSelection ); GAMESTATE->m_CurStyle = Style( m_iSelection );
GAMESTATE->m_MasterPlayerNumber = p; GAMESTATE->m_MasterPlayerNumber = p;
AnnouncerElement ae; CString sCurStyleName = GAMESTATE->GetCurrentStyleDef()->m_szName;
switch( GAMESTATE->m_CurStyle ) if( 0==stricmp(sCurStyleName,"single") ) SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo("select style comment single") );
{ else if( 0==stricmp(sCurStyleName,"versus") ) SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo("select style comment versus") );
case STYLE_DANCE_SINGLE: ae = ANNOUNCER_SELECT_STYLE_COMMENT_SINGLE; break; else if( 0==stricmp(sCurStyleName,"double") ) SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo("select style comment double") );
case STYLE_DANCE_VERSUS: ae = ANNOUNCER_SELECT_STYLE_COMMENT_VERSUS; break; else if( 0==stricmp(sCurStyleName,"couple") ) SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo("select style comment couple") );
case STYLE_DANCE_DOUBLE: ae = ANNOUNCER_SELECT_STYLE_COMMENT_DOUBLE; break; else if( 0==stricmp(sCurStyleName,"solo") ) SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo("select style comment solo") );
case STYLE_DANCE_COUPLE: ae = ANNOUNCER_SELECT_STYLE_COMMENT_COUPLE; break;
case STYLE_DANCE_SOLO: ae = ANNOUNCER_SELECT_STYLE_COMMENT_SOLO; break;
case STYLE_PUMP_SINGLE: ae = ANNOUNCER_SELECT_STYLE_COMMENT_SINGLE; break;
case STYLE_PUMP_VERSUS: ae = ANNOUNCER_SELECT_STYLE_COMMENT_VERSUS; break;
default: ASSERT(0); break; // invalid Style
}
SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo(ae) );
this->ClearMessageQueue(); this->ClearMessageQueue();
TweenOffScreen(); TweenOffScreen();
m_Menu.TweenOffScreenToMenu( SM_GoToNextState ); m_Menu.TweenOffScreenToMenu( SM_GoToNextScreen );
m_soundSelect.PlayRandom(); m_soundSelect.PlayRandom();
} }
void ScreenSelectStyle5th::MenuBack( const PlayerNumber p ) void ScreenSelectStyle5th::MenuBack( PlayerNumber p )
{ {
MUSIC->Stop(); MUSIC->Stop();
m_Menu.TweenOffScreenToBlack( SM_GoToPrevState, true ); m_Menu.TweenOffScreenToBlack( SM_GoToPrevScreen, true );
} }
void ScreenSelectStyle5th::BeforeChange() void ScreenSelectStyle5th::BeforeChange()
+4 -4
View File
@@ -37,10 +37,10 @@ public:
virtual void Input( const DeviceInput& DeviceI, const InputEventType type, const GameInput &GameI, const MenuInput &MenuI, const StyleInput &StyleI ); 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 HandleScreenMessage( const ScreenMessage SM );
void MenuLeft( const PlayerNumber p ); void MenuLeft( PlayerNumber p );
void MenuRight( const PlayerNumber p ); void MenuRight( PlayerNumber p );
void MenuStart( const PlayerNumber p ); void MenuStart( PlayerNumber p );
void MenuBack( const PlayerNumber p ); void MenuBack( PlayerNumber p );
void TweenOffScreen(); void TweenOffScreen();
void TweenOnScreen(); void TweenOnScreen();
+50 -37
View File
@@ -34,9 +34,12 @@ enum StageType // for use with the metric above
STAGE_TYPE_EZ2 STAGE_TYPE_EZ2
}; };
StageType g_StageType; // cache for STAGE_TYPE because it's slow to look up
const ScreenMessage SM_StartFadingOut = ScreenMessage(SM_User + 1); const ScreenMessage SM_StartFadingOut = ScreenMessage(SM_User + 1);
const ScreenMessage SM_DoneFadingIn = ScreenMessage(SM_User + 2); const ScreenMessage SM_DoneFadingIn = ScreenMessage(SM_User + 2);
const ScreenMessage SM_GoToNextState = ScreenMessage(SM_User + 3); const ScreenMessage SM_GoToNextScreen = ScreenMessage(SM_User + 3);
enum StageMode enum StageMode
@@ -51,8 +54,13 @@ enum StageMode
ScreenStage::ScreenStage() ScreenStage::ScreenStage()
{ {
g_StageType = (StageType)STAGE_TYPE;
MUSIC->Stop(); MUSIC->Stop();
//
// Init common graphics
//
for( int i=0; i<4; i++ ) for( int i=0; i<4; i++ )
{ {
m_sprNumbers[i].Load( THEME->GetPathTo("Graphics","stage numbers") ); m_sprNumbers[i].Load( THEME->GetPathTo("Graphics","stage numbers") );
@@ -81,6 +89,9 @@ ScreenStage::ScreenStage()
else stage_mode = MODE_NORMAL; else stage_mode = MODE_NORMAL;
//
// Play announcer
//
switch( stage_mode ) switch( stage_mode )
{ {
case MODE_NORMAL: case MODE_NORMAL:
@@ -88,41 +99,37 @@ ScreenStage::ScreenStage()
const int iStageNo = GAMESTATE->GetStageIndex()+1; const int iStageNo = GAMESTATE->GetStageIndex()+1;
switch( iStageNo ) switch( iStageNo )
{ {
case 1: SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo(ANNOUNCER_STAGE_1) ); break; case 1: SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo("stage 1") ); break;
case 2: SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo(ANNOUNCER_STAGE_2) ); break; case 2: SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo("stage 2") ); break;
case 3: SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo(ANNOUNCER_STAGE_3) ); break; case 3: SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo("stage 3") ); break;
case 4: SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo(ANNOUNCER_STAGE_4) ); break; case 4: SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo("stage 4") ); break;
case 5: SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo(ANNOUNCER_STAGE_5) ); break; case 5: SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo("stage 5") ); break;
default: ; break; // play nothing default: ; break; // play nothing
} }
} }
break; break;
case MODE_FINAL: case MODE_FINAL: SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo("stage final") ); break;
SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo(ANNOUNCER_STAGE_FINAL) ); case MODE_EXTRA1: SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo("stage extra1") ); break;
break; case MODE_EXTRA2: SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo("stage extra2") ); break;
case MODE_EXTRA1: case MODE_ONI: SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo("stage oni") ); break;
SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo(ANNOUNCER_STAGE_EXTRA1) ); case MODE_ENDLESS: SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo("stage endless") ); break;
break; default: ASSERT(0);
case MODE_EXTRA2:
SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo(ANNOUNCER_STAGE_EXTRA2) );
break;
case MODE_ONI:
SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo(ANNOUNCER_STAGE_ONI) );
break;
case MODE_ENDLESS:
SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo(ANNOUNCER_STAGE_ENDLESS) );
break;
default:
ASSERT(0);
} }
// Andy -
// Is all this stuff only supposed to be initializing in MODE_NORMAL?
// The final stage screens look goofy in TYPE_PUMP and TYPE_EZ2 because of this.
// I'm going to make changes, but feel free to correct anything I good up.
// - Chris
int ez2Final=0; // if we're 0 it's not a final stage. if we're 1 it is. int ez2Final=0; // if we're 0 it's not a final stage. if we're 1 it is.
// why do this? Ez2dancer uses NORMAL for it's final stage but just re-arranges // why do this? Ez2dancer uses NORMAL for it's final stage but just re-arranges
// the elements. so the following takes us into NORMAL and just re-arranges stuff // the elements. so the following takes us into NORMAL and just re-arranges stuff
// the ez2Final is so that when we're in normal we can go and see if we're really // the ez2Final is so that when we're in normal we can go and see if we're really
// FINAL or not. at the end of normal, if we WERE FINAL, we set it back to final // FINAL or not. at the end of normal, if we WERE FINAL, we set it back to final
// hacky or what? =) // hacky or what? =)
if( STAGE_TYPE == STAGE_TYPE_EZ2 && stage_mode == MODE_FINAL ) if( g_StageType == STAGE_TYPE_EZ2 && stage_mode == MODE_FINAL )
{ {
for( int i=0; i<4; i++ ) for( int i=0; i<4; i++ )
{ {
@@ -183,7 +190,7 @@ ScreenStage::ScreenStage()
// EZ2 TYPE DEFINITION // // EZ2 TYPE DEFINITION //
///////////////////////// /////////////////////////
if ( STAGE_TYPE == STAGE_TYPE_EZ2) // Initialize and manipulate existing graphics for Ez2dancer Screen Type if ( g_StageType == STAGE_TYPE_EZ2) // Initialize and manipulate existing graphics for Ez2dancer Screen Type
{ {
for( i=0; i<iNumChars; i++ ) for( i=0; i<iNumChars; i++ )
{ {
@@ -467,7 +474,6 @@ void ScreenStage::Update( float fDeltaTime )
{ {
Screen::Update( fDeltaTime ); Screen::Update( fDeltaTime );
m_quadMask.Update( fDeltaTime ); m_quadMask.Update( fDeltaTime );
m_frameStage.Update( fDeltaTime ); m_frameStage.Update( fDeltaTime );
m_Fade.Update( fDeltaTime ); m_Fade.Update( fDeltaTime );
@@ -476,18 +482,25 @@ void ScreenStage::Update( float fDeltaTime )
void ScreenStage::DrawPrimitives() void ScreenStage::DrawPrimitives()
{ {
DISPLAY->EnableZBuffer(); switch( g_StageType )
{
if ( STAGE_TYPE == STAGE_TYPE_MAX) // only DANCE uses the Z mask case STAGE_TYPE_MAX:
DISPLAY->EnableZBuffer();
m_quadMask.Draw(); m_quadMask.Draw();
m_frameStage.Draw(); m_frameStage.Draw();
DISPLAY->DisableZBuffer();
DISPLAY->DisableZBuffer(); break;
case STAGE_TYPE_PUMP:
m_sprSongBackground.Draw();
break;
case STAGE_TYPE_EZ2:
m_sprSongBackground.Draw();
break;
default:
ASSERT(0);
}
m_Fade.Draw(); m_Fade.Draw();
if ( STAGE_TYPE == STAGE_TYPE_PUMP) // only PUMP uses the song background on the stage screen
m_sprSongBackground.Draw();
} }
void ScreenStage::HandleScreenMessage( const ScreenMessage SM ) void ScreenStage::HandleScreenMessage( const ScreenMessage SM )
@@ -495,11 +508,11 @@ void ScreenStage::HandleScreenMessage( const ScreenMessage SM )
switch( SM ) switch( SM )
{ {
case SM_StartFadingOut: case SM_StartFadingOut:
m_Fade.CloseWipingRight( SM_GoToNextState ); m_Fade.CloseWipingRight( SM_GoToNextScreen );
break; break;
case SM_DoneFadingIn: case SM_DoneFadingIn:
break; break;
case SM_GoToNextState: case SM_GoToNextScreen:
SCREENMAN->SetNewScreen( "ScreenGameplay" ); SCREENMAN->SetNewScreen( "ScreenGameplay" );
break; break;
} }
+4 -4
View File
@@ -120,15 +120,15 @@ void ScreenTextEntry::HandleScreenMessage( const ScreenMessage SM )
} }
} }
void ScreenTextEntry::MenuLeft( const PlayerNumber p ) void ScreenTextEntry::MenuLeft( PlayerNumber p )
{ {
} }
void ScreenTextEntry::MenuRight( const PlayerNumber p ) void ScreenTextEntry::MenuRight( PlayerNumber p )
{ {
} }
void ScreenTextEntry::MenuStart( const PlayerNumber p ) void ScreenTextEntry::MenuStart( PlayerNumber p )
{ {
m_Fade.OpenWipingRight( SM_DoneOpeningWipingRight ); m_Fade.OpenWipingRight( SM_DoneOpeningWipingRight );
@@ -153,7 +153,7 @@ void ScreenTextEntry::MenuStart( const PlayerNumber p )
m_pOnOK( m_sAnswer ); m_pOnOK( m_sAnswer );
} }
void ScreenTextEntry::MenuBack( const PlayerNumber p ) void ScreenTextEntry::MenuBack( PlayerNumber p )
{ {
m_bCancelled = true; m_bCancelled = true;
MenuStart(p); MenuStart(p);
+4 -4
View File
@@ -30,10 +30,10 @@ public:
virtual void HandleScreenMessage( const ScreenMessage SM ); virtual void HandleScreenMessage( const ScreenMessage SM );
protected: protected:
virtual void MenuLeft( const PlayerNumber p ); virtual void MenuLeft( PlayerNumber p );
virtual void MenuRight( const PlayerNumber p ); virtual void MenuRight( PlayerNumber p );
virtual void MenuStart( const PlayerNumber p ); virtual void MenuStart( PlayerNumber p );
virtual void MenuBack( const PlayerNumber p ); virtual void MenuBack( PlayerNumber p );
TransitionFade m_Fade; TransitionFade m_Fade;
BitmapText m_textQuestion; BitmapText m_textQuestion;
+6 -6
View File
@@ -150,10 +150,10 @@ ScreenTitleMenu::ScreenTitleMenu()
this->AddSubActor( &m_Fade ); this->AddSubActor( &m_Fade );
SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo(ANNOUNCER_TITLE_MENU_GAME_NAME) ); SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo("title menu game name") );
m_soundAttract.Load( ANNOUNCER->GetPathTo(ANNOUNCER_TITLE_MENU_ATTRACT) ); m_soundAttract.Load( ANNOUNCER->GetPathTo("title menu attract") );
m_soundChange.Load( THEME->GetPathTo("Sounds","title menu change") ); m_soundChange.Load( THEME->GetPathTo("Sounds","title menu change") );
m_soundSelect.Load( THEME->GetPathTo("Sounds","menu start") ); m_soundSelect.Load( THEME->GetPathTo("Sounds","menu start") );
m_soundInvalid.Load( THEME->GetPathTo("Sounds","menu invalid") ); m_soundInvalid.Load( THEME->GetPathTo("Sounds","menu invalid") );
@@ -302,7 +302,7 @@ void ScreenTitleMenu::GainFocus( int iChoiceIndex )
m_textChoice[iChoiceIndex].SetEffectCamelion( 2.5f, color1, color2 ); m_textChoice[iChoiceIndex].SetEffectCamelion( 2.5f, color1, color2 );
} }
void ScreenTitleMenu::MenuUp( const PlayerNumber p ) void ScreenTitleMenu::MenuUp( PlayerNumber p )
{ {
LoseFocus( m_TitleMenuChoice ); LoseFocus( m_TitleMenuChoice );
@@ -315,7 +315,7 @@ void ScreenTitleMenu::MenuUp( const PlayerNumber p )
} }
void ScreenTitleMenu::MenuDown( const PlayerNumber p ) void ScreenTitleMenu::MenuDown( PlayerNumber p )
{ {
LoseFocus( m_TitleMenuChoice ); LoseFocus( m_TitleMenuChoice );
@@ -328,7 +328,7 @@ void ScreenTitleMenu::MenuDown( const PlayerNumber p )
} }
void ScreenTitleMenu::MenuStart( const PlayerNumber p ) void ScreenTitleMenu::MenuStart( PlayerNumber p )
{ {
GAMESTATE->m_bSideIsJoined[p] = true; GAMESTATE->m_bSideIsJoined[p] = true;
GAMESTATE->m_MasterPlayerNumber = p; GAMESTATE->m_MasterPlayerNumber = p;
@@ -380,7 +380,7 @@ void ScreenTitleMenu::MenuStart( const PlayerNumber p )
} }
} }
void ScreenTitleMenu::MenuBack( const PlayerNumber p ) void ScreenTitleMenu::MenuBack( PlayerNumber p )
{ {
this->SendScreenMessage( SM_FadeToDemonstration, 0 ); this->SendScreenMessage( SM_FadeToDemonstration, 0 );
} }
+4 -4
View File
@@ -42,10 +42,10 @@ public:
private: private:
void GainFocus( int iChoiceIndex ); void GainFocus( int iChoiceIndex );
void LoseFocus( int iChoiceIndex ); void LoseFocus( int iChoiceIndex );
void MenuUp( const PlayerNumber p ); void MenuUp( PlayerNumber p );
void MenuDown( const PlayerNumber p ); void MenuDown( PlayerNumber p );
void MenuBack( const PlayerNumber p ); void MenuBack( PlayerNumber p );
void MenuStart( const PlayerNumber p ); void MenuStart( PlayerNumber p );
TitleMenuChoice m_TitleMenuChoice; TitleMenuChoice m_TitleMenuChoice;
+37 -10
View File
@@ -25,20 +25,33 @@ SongManager* SONGMAN = NULL; // global and accessable from anywhere in our progr
const CString g_sStatisticsFileName = "statistics.ini"; const CString g_sStatisticsFileName = "statistics.ini";
D3DXCOLOR GROUP_COLORS[] = { #define GROUP_COLOR_1 THEME->GetMetricC("SongManager","GroupColor1")
// D3DXCOLOR( 0.9f, 0.0f, 0.2f, 1 ), // red #define GROUP_COLOR_2 THEME->GetMetricC("SongManager","GroupColor2")
D3DXCOLOR( 0.8f, 0.1f, 0.6f, 1 ), // pink #define GROUP_COLOR_3 THEME->GetMetricC("SongManager","GroupColor3")
D3DXCOLOR( 0.5f, 0.3f, 0.7f, 1 ), // purple #define GROUP_COLOR_4 THEME->GetMetricC("SongManager","GroupColor4")
D3DXCOLOR( 0.0f, 0.4f, 0.8f, 1 ), // sky blue #define GROUP_COLOR_5 THEME->GetMetricC("SongManager","GroupColor5")
D3DXCOLOR( 0.0f, 0.6f, 0.6f, 1 ), // sea green #define GROUP_COLOR_6 THEME->GetMetricC("SongManager","GroupColor6")
D3DXCOLOR( 0.1f, 0.7f, 0.3f, 1 ), // green #define GROUP_COLOR_7 THEME->GetMetricC("SongManager","GroupColor7")
D3DXCOLOR( 0.8f, 0.6f, 0.0f, 1 ), // orange #define EXTRA_COLOR THEME->GetMetricC("SongManager","GroupColor7")
};
const int NUM_GROUP_COLORS = sizeof(GROUP_COLORS) / sizeof(D3DXCOLOR); const int NUM_GROUP_COLORS = 7;
D3DXCOLOR GROUP_COLORS[NUM_GROUP_COLORS];
D3DXCOLOR g_ExtraColor;
SongManager::SongManager( void(*callback)() ) SongManager::SongManager( void(*callback)() )
{ {
// Loading these theme metrics is slow, so only do it ever 20th time.
GROUP_COLORS[0] = GROUP_COLOR_1;
GROUP_COLORS[1] = GROUP_COLOR_2;
GROUP_COLORS[2] = GROUP_COLOR_3;
GROUP_COLORS[3] = GROUP_COLOR_4;
GROUP_COLORS[4] = GROUP_COLOR_5;
GROUP_COLORS[5] = GROUP_COLOR_6;
GROUP_COLORS[6] = GROUP_COLOR_7;
g_ExtraColor = EXTRA_COLOR;
InitSongArrayFromDisk( callback ); InitSongArrayFromDisk( callback );
ReadStatisticsFromDisk(); ReadStatisticsFromDisk();
@@ -363,6 +376,20 @@ D3DXCOLOR SongManager::GetGroupColor( const CString &sGroupName )
return GROUP_COLORS[i%NUM_GROUP_COLORS]; return GROUP_COLORS[i%NUM_GROUP_COLORS];
} }
D3DXCOLOR SongManager::GetSongColor( Song* pSong )
{
ASSERT( pSong );
for( int i=0; i<pSong->m_apNotes.GetSize(); i++ )
{
Notes* pNotes = pSong->m_apNotes[i];
if( pNotes->m_iMeter == 10 )
return EXTRA_COLOR;
}
return GetGroupColor( pSong->m_sGroupName );
}
void SongManager::GetSongsInGroup( const CString sGroupName, CArray<Song*, Song*> &AddTo ) void SongManager::GetSongsInGroup( const CString sGroupName, CArray<Song*, Song*> &AddTo )
{ {
for( int i=0; i<m_pSongs.GetSize(); i++ ) for( int i=0; i<m_pSongs.GetSize(); i++ )
+1
View File
@@ -37,6 +37,7 @@ public:
CString GetGroupBannerPath( CString sGroupName ); CString GetGroupBannerPath( CString sGroupName );
void GetGroupNames( CStringArray &AddTo ); void GetGroupNames( CStringArray &AddTo );
D3DXCOLOR GetGroupColor( const CString &sGroupName ); D3DXCOLOR GetGroupColor( const CString &sGroupName );
D3DXCOLOR GetSongColor( Song* pSong );
static CString ShortenGroupName( const CString &sOrigGroupName ); static CString ShortenGroupName( const CString &sOrigGroupName );
+20
View File
@@ -32,3 +32,23 @@ enum Style
STYLE_NONE, STYLE_NONE,
STYLE_PUMP_COUPLE, STYLE_PUMP_COUPLE,
}; };
const int NUM_DANCE_STYLES = 6;
const int NUM_PUMP_STYLES = 3;
const int NUM_EZ2_STYLES = 7;
// Ugh. This is needed for the style icon.
// TODO: Find a more elegant way to handle this
inline int GetStyleIndexRelativeToGame( int iGameIndex, Style style )
{
int iStyleIndex = style;
switch( iGameIndex )
{
case 0: break; // dance
case 1: iStyleIndex -= NUM_DANCE_STYLES; break; // pump
case 2: iStyleIndex -= NUM_DANCE_STYLES+NUM_PUMP_STYLES; break; // ez2
default: ASSERT(0); // invalid game index
}
return iStyleIndex;
}
-277
View File
@@ -87,13 +87,6 @@ bool ThemeManager::DoesThemeExist( CString sThemeName )
return false; return false;
} }
void ThemeManager::AssertThemeIsComplete( CString sThemeName )
{
// GetPathTo will assert if it can't find the file in the current theme dir or in the default dir.
for( int e=0; e<NUM_THEME_ELEMENTS; e++ )
GetPathTo( (ThemeElement)e, sThemeName );
}
void ThemeManager::SwitchTheme( CString sThemeName ) void ThemeManager::SwitchTheme( CString sThemeName )
{ {
if( 0==stricmp(BASE_THEME_NAME, sThemeName) ) if( 0==stricmp(BASE_THEME_NAME, sThemeName) )
@@ -120,276 +113,6 @@ CString ThemeManager::GetThemeDirFromName( CString sThemeName )
return THEMES_DIR + sThemeName + "\\"; return THEMES_DIR + sThemeName + "\\";
} }
CString ThemeManager::GetPathTo( ThemeElement te )
{
return GetPathTo( te, m_sCurThemeName );
}
CString ThemeManager::GetPathTo( ThemeElement te, CString sThemeName ) // deprecated
{
return "";
}
/*
CString ThemeManager::GetPathTo( ThemeElement te, CString sThemeName )
{
CString sAssetCategory+"\\"+sFileName; // fill this in below
switch( te )
{
case GRAPHIC_ALL_MUSIC_BANNER: sAssetCategory+"\\"+sFileName = "Graphics\\all music banner"; break;
case GRAPHIC_ARROWS_LEFT: sAssetCategory+"\\"+sFileName = "Graphics\\arrows left 1x4"; break;
case GRAPHIC_ARROWS_RIGHT: sAssetCategory+"\\"+sFileName = "Graphics\\arrows right 1x4"; break;
case GRAPHIC_CAUTION: sAssetCategory+"\\"+sFileName = "Graphics\\Caution"; break;
case GRAPHIC_EDIT_BACKGROUND: sAssetCategory+"\\"+sFileName = "Graphics\\edit background"; break;
case GRAPHIC_EDIT_TOP_EDGE: sAssetCategory+"\\"+sFileName = "Graphics\\edit top edge"; break;
case GRAPHIC_EDIT_SNAP_INDICATOR: sAssetCategory+"\\"+sFileName = "Graphics\\edit snap indicator"; break;
case GRAPHIC_FALLBACK_BACKGROUND: sAssetCategory+"\\"+sFileName = "Graphics\\Fallback Background"; break;
case "Graphics","fallback banner": sAssetCategory+"\\"+sFileName = "Graphics\\Fallback Banner"; break;
case "Graphics","fallback cd title": sAssetCategory+"\\"+sFileName = "Graphics\\Fallback CD Title"; break;
case GRAPHIC_OPTIONS_CURSOR: sAssetCategory+"\\"+sFileName = "Graphics\\options cursor"; break;
case GRAPHIC_OPTIONS_UNDERLINE: sAssetCategory+"\\"+sFileName = "Graphics\\options underline"; break;
case GRAPHIC_GAME_OPTIONS_BACKGROUND: sAssetCategory+"\\"+sFileName = "Graphics\\game options background"; break;
case GRAPHIC_GAME_OPTIONS_TOP_EDGE: sAssetCategory+"\\"+sFileName = "Graphics\\game options top edge"; break;
case GRAPHIC_GAME_OVER: sAssetCategory+"\\"+sFileName = "Graphics\\game over"; break;
case GRAPHIC_GAMEPLAY_BOTTOM_FRAME: sAssetCategory+"\\"+sFileName = "Graphics\\gameplay bottom frame"; break;
case GRAPHIC_GAMEPLAY_CLEARED: sAssetCategory+"\\"+sFileName = "Graphics\\gameplay cleared"; break;
case GRAPHIC_GAMEPLAY_CLOSING_STAR: sAssetCategory+"\\"+sFileName = "Graphics\\gameplay closing star"; break;
case GRAPHIC_GAMEPLAY_COMBO: sAssetCategory+"\\"+sFileName = "Graphics\\gameplay combo"; break;
case GRAPHIC_GAMEPLAY_DANGER_BACKGROUND: sAssetCategory+"\\"+sFileName = "Graphics\\gameplay danger background"; break;
case GRAPHIC_GAMEPLAY_DANGER_TEXT: sAssetCategory+"\\"+sFileName = "Graphics\\gameplay danger text"; break;
case GRAPHIC_GAMEPLAY_DIFFICULTY_BANNERS: sAssetCategory+"\\"+sFileName = "Graphics\\gameplay difficulty banners"; break;
case GRAPHIC_GAMEPLAY_DEMONSTRATION: sAssetCategory+"\\"+sFileName = "Graphics\\gameplay demonstration"; break;
case GRAPHIC_GAMEPLAY_FAILED: sAssetCategory+"\\"+sFileName = "Graphics\\gameplay failed"; break;
case GRAPHIC_GAMEPLAY_HERE_WE_GO: sAssetCategory+"\\"+sFileName = "Graphics\\gameplay here we go"; break;
case GRAPHIC_GAMEPLAY_HOLD_JUDGEMENT: sAssetCategory+"\\"+sFileName = "Graphics\\gameplay hold judgement 1x2"; break;
case GRAPHIC_GAMEPLAY_JUDGEMENT: sAssetCategory+"\\"+sFileName = "Graphics\\gameplay judgement 1x5"; break;
case GRAPHIC_GAMEPLAY_OPENING_STAR: sAssetCategory+"\\"+sFileName = "Graphics\\gameplay opening star"; break;
case GRAPHIC_GAMEPLAY_READY: sAssetCategory+"\\"+sFileName = "Graphics\\gameplay Ready"; break;
case GRAPHIC_GAMEPLAY_MIDDLE_FRAME: sAssetCategory+"\\"+sFileName = "Graphics\\gameplay middle frame"; break;
case GRAPHIC_GAMEPLAY_TOP_FRAME: sAssetCategory+"\\"+sFileName = "Graphics\\gameplay top frame"; break;
case GRAPHIC_GAMEPLAY_LIFEMETER_BAR: sAssetCategory+"\\"+sFileName = "Graphics\\gameplay lifemeter bar"; break;
case GRAPHIC_GAMEPLAY_LIFEMETER_ONI: sAssetCategory+"\\"+sFileName = "Graphics\\gameplay lifemeter oni"; break;
case GRAPHIC_GAMEPLAY_LIFEMETER_BATTERY: sAssetCategory+"\\"+sFileName = "Graphics\\gameplay lifemeter battery 1x4"; break;
case GRAPHIC_GAMEPLAY_LIFEMETER_STREAM_NORMAL: sAssetCategory+"\\"+sFileName = "Graphics\\gameplay lifemeter stream normal";break;
case GRAPHIC_GAMEPLAY_LIFEMETER_STREAM_HOT: sAssetCategory+"\\"+sFileName = "Graphics\\gameplay lifemeter stream hot"; break;
case GRAPHIC_GAMEPLAY_ONI_GAMEOVER: sAssetCategory+"\\"+sFileName = "Graphics\\gameplay oni gameover"; break;
case GRAPHIC_GRAPHIC_OPTIONS_BACKGROUND: sAssetCategory+"\\"+sFileName = "Graphics\\graphic options background"; break;
case GRAPHIC_GRAPHIC_OPTIONS_TOP_EDGE: sAssetCategory+"\\"+sFileName = "Graphics\\graphic options top edge"; break;
case GRAPHIC_KEEP_ALIVE: sAssetCategory+"\\"+sFileName = "Graphics\\keep alive"; break;
case GRAPHIC_MAP_CONTROLLERS_BACKGROUND: sAssetCategory+"\\"+sFileName = "Graphics\\map controllers background"; break;
case GRAPHIC_MAP_CONTROLLERS_TOP_EDGE: sAssetCategory+"\\"+sFileName = "Graphics\\map controllers top edge"; break;
case GRAPHIC_MENU_BOTTOM_EDGE: sAssetCategory+"\\"+sFileName = "Graphics\\menu bottom edge"; break;
case GRAPHIC_MENU_STYLE_ICONS: sAssetCategory+"\\"+sFileName = "Graphics\\menu style icons"; break;
case GRAPHIC_MUSIC_SCROLL_BACKGROUND: sAssetCategory+"\\"+sFileName = "Graphics\\music scroll background"; break;
case GRAPHIC_MUSIC_SORT_ICONS: sAssetCategory+"\\"+sFileName = "Graphics\\music sort icons 1x4"; break;
case GRAPHIC_MUSIC_STATUS_ICONS: sAssetCategory+"\\"+sFileName = "Graphics\\music status icons 1x4"; break;
case GRAPHIC_PLAYER_OPTIONS_BACKGROUND: sAssetCategory+"\\"+sFileName = "Graphics\\player options background"; break;
case GRAPHIC_PLAYER_OPTIONS_TOP_EDGE: sAssetCategory+"\\"+sFileName = "Graphics\\player options top edge"; break;
case GRAPHIC_EVALUATION_BACKGROUND: sAssetCategory+"\\"+sFileName = "Graphics\\evaluation background"; break;
case GRAPHIC_EVALUATION_BANNER_FRAME: sAssetCategory+"\\"+sFileName = "Graphics\\evaluation banner frame"; break;
case GRAPHIC_EVALUATION_BONUS_FRAME_P1: sAssetCategory+"\\"+sFileName = "Graphics\\evaluation bonus frame p1"; break;
case GRAPHIC_EVALUATION_BONUS_FRAME_P2: sAssetCategory+"\\"+sFileName = "Graphics\\evaluation bonus frame p2"; break;
case GRAPHIC_EVALUATION_STAGE_FRAME_P1: sAssetCategory+"\\"+sFileName = "Graphics\\evaluation stage frame p1"; break;
case GRAPHIC_EVALUATION_STAGE_FRAME_P2: sAssetCategory+"\\"+sFileName = "Graphics\\evaluation stage frame p2"; break;
case GRAPHIC_EVALUATION_GRADE_FRAME: sAssetCategory+"\\"+sFileName = "Graphics\\evaluation grade frame 1x2"; break;
case GRAPHIC_EVALUATION_GRADES: sAssetCategory+"\\"+sFileName = "Graphics\\evaluation grades 1x7"; break;
case GRAPHIC_EVALUATION_JUDGE_LABELS: sAssetCategory+"\\"+sFileName = "Graphics\\evaluation judge labels 1x6"; break;
case GRAPHIC_EVALUATION_SCORE_LABELS: sAssetCategory+"\\"+sFileName = "Graphics\\evaluation score labels 1x2"; break;
case GRAPHIC_EVALUATION_SUMMARY_TOP_EDGE: sAssetCategory+"\\"+sFileName = "Graphics\\evaluation summary top edge"; break;
case GRAPHIC_EVALUATION_TOP_EDGE: sAssetCategory+"\\"+sFileName = "Graphics\\evaluation top edge"; break;
case GRAPHIC_SELECT_COURSE_INFO_FRAME: sAssetCategory+"\\"+sFileName = "Graphics\\select course info frame"; break;
case GRAPHIC_SELECT_COURSE_TOP_EDGE: sAssetCategory+"\\"+sFileName = "Graphics\\select course top edge"; break;
case GRAPHIC_SELECT_COURSE_BACKGROUND: sAssetCategory+"\\"+sFileName = "Graphics\\select course background"; break;
case GRAPHIC_SELECT_COURSE_CONTENT_BAR: sAssetCategory+"\\"+sFileName = "Graphics\\select course content bar"; break;
case GRAPHIC_SELECT_DIFFICULTY_ARROWS: sAssetCategory+"\\"+sFileName = "Graphics\\select difficulty arrows 1x2"; break;
case GRAPHIC_SELECT_DIFFICULTY_BACKGROUND: sAssetCategory+"\\"+sFileName = "Graphics\\select difficulty background"; break;
case GRAPHIC_SELECT_DIFFICULTY_EASY_HEADER: sAssetCategory+"\\"+sFileName = "Graphics\\select difficulty easy header"; break;
case GRAPHIC_SELECT_DIFFICULTY_EASY_PICTURE: sAssetCategory+"\\"+sFileName = "Graphics\\select difficulty easy picture"; break;
case GRAPHIC_SELECT_DIFFICULTY_EXPLANATION: sAssetCategory+"\\"+sFileName = "Graphics\\select difficulty explanation"; break;
case GRAPHIC_SELECT_DIFFICULTY_HARD_HEADER: sAssetCategory+"\\"+sFileName = "Graphics\\select difficulty hard header"; break;
case GRAPHIC_SELECT_DIFFICULTY_HARD_PICTURE: sAssetCategory+"\\"+sFileName = "Graphics\\select difficulty hard picture"; break;
case GRAPHIC_SELECT_DIFFICULTY_MEDIUM_HEADER: sAssetCategory+"\\"+sFileName = "Graphics\\select difficulty medium header"; break;
case GRAPHIC_SELECT_DIFFICULTY_MEDIUM_PICTURE: sAssetCategory+"\\"+sFileName = "Graphics\\select difficulty medium picture";break;
case GRAPHIC_SELECT_DIFFICULTY_ONI_HEADER: sAssetCategory+"\\"+sFileName = "Graphics\\select difficulty oni header"; break;
case GRAPHIC_SELECT_DIFFICULTY_ONI_PICTURE: sAssetCategory+"\\"+sFileName = "Graphics\\select difficulty oni picture"; break;
case GRAPHIC_SELECT_DIFFICULTY_ENDLESS_HEADER: sAssetCategory+"\\"+sFileName = "Graphics\\select difficulty endless header"; break;
case GRAPHIC_SELECT_DIFFICULTY_ENDLESS_PICTURE: sAssetCategory+"\\"+sFileName = "Graphics\\select difficulty endless picture"; break;
case GRAPHIC_SELECT_DIFFICULTY_OK: sAssetCategory+"\\"+sFileName = "Graphics\\select difficulty ok"; break;
case GRAPHIC_SELECT_DIFFICULTY_TOP_EDGE: sAssetCategory+"\\"+sFileName = "Graphics\\select difficulty top edge"; break;
case GRAPHIC_SELECT_GAME_BACKGROUND: sAssetCategory+"\\"+sFileName = "Graphics\\select game background"; break;
case GRAPHIC_SELECT_GAME_TOP_EDGE: sAssetCategory+"\\"+sFileName = "Graphics\\select game top edge"; break;
case GRAPHIC_SELECT_GROUP_BACKGROUND: sAssetCategory+"\\"+sFileName = "Graphics\\select group background"; break;
case GRAPHIC_SELECT_GROUP_BUTTON: sAssetCategory+"\\"+sFileName = "Graphics\\select group button"; break;
case GRAPHIC_SELECT_GROUP_CONTENTS_HEADER: sAssetCategory+"\\"+sFileName = "Graphics\\select group contents header"; break;
case GRAPHIC_SELECT_GROUP_EXPLANATION: sAssetCategory+"\\"+sFileName = "Graphics\\select group explanation"; break;
case GRAPHIC_SELECT_GROUP_INFO_FRAME: sAssetCategory+"\\"+sFileName = "Graphics\\select group info frame"; break;
case GRAPHIC_SELECT_GROUP_TOP_EDGE: sAssetCategory+"\\"+sFileName = "Graphics\\select group top edge"; break;
case GRAPHIC_SELECT_MUSIC_BACKGROUND: sAssetCategory+"\\"+sFileName = "Graphics\\select music background"; break;
case GRAPHIC_SELECT_MUSIC_DIFFICULTY_ICONS: sAssetCategory+"\\"+sFileName = "Graphics\\select music difficulty icons"; break;
case GRAPHIC_SELECT_MUSIC_DIFFICULTY_FRAME: sAssetCategory+"\\"+sFileName = "Graphics\\select music difficulty frame"; break;
case GRAPHIC_SELECT_MUSIC_INFO_FRAME: sAssetCategory+"\\"+sFileName = "Graphics\\select music info frame"; break;
case GRAPHIC_SELECT_MUSIC_METER_FRAME: sAssetCategory+"\\"+sFileName = "Graphics\\select music meter frame"; break;
case GRAPHIC_SELECT_MUSIC_RADAR_BASE: sAssetCategory+"\\"+sFileName = "Graphics\\select music radar base"; break;
case GRAPHIC_SELECT_MUSIC_RADAR_WORDS: sAssetCategory+"\\"+sFileName = "Graphics\\select music radar words 1x5"; break;
case GRAPHIC_SELECT_MUSIC_ROULETTE_BANNER: sAssetCategory+"\\"+sFileName = "Graphics\\select music roulette banner"; break;
case GRAPHIC_SELECT_MUSIC_SCROLLBAR: sAssetCategory+"\\"+sFileName = "Graphics\\select music scrollbar"; break;
case GRAPHIC_SELECT_MUSIC_SCORE_FRAME: sAssetCategory+"\\"+sFileName = "Graphics\\select music score frame"; break;
case GRAPHIC_SELECT_MUSIC_SECTION_BANNER: sAssetCategory+"\\"+sFileName = "Graphics\\select music section banner"; break;
case GRAPHIC_SELECT_MUSIC_SECTION_BAR: sAssetCategory+"\\"+sFileName = "Graphics\\select music section bar"; break;
case GRAPHIC_SELECT_MUSIC_SMALL_GRADES: sAssetCategory+"\\"+sFileName = "Graphics\\select music small grades 1x7"; break;
case GRAPHIC_SELECT_MUSIC_SONG_BAR: sAssetCategory+"\\"+sFileName = "Graphics\\select music song bar"; break;
case GRAPHIC_SELECT_MUSIC_SONG_HIGHLIGHT: sAssetCategory+"\\"+sFileName = "Graphics\\select music song highlight"; break;
case GRAPHIC_SELECT_MUSIC_TOP_EDGE: sAssetCategory+"\\"+sFileName = "Graphics\\select music top edge"; break;
case GRAPHIC_SELECT_MUSIC_LONG_BALLOON: sAssetCategory+"\\"+sFileName = "Graphics\\select music long balloon"; break;
case GRAPHIC_SELECT_MUSIC_MARATHON_BALLOON: sAssetCategory+"\\"+sFileName = "Graphics\\select music marathon balloon"; break;
case GRAPHIC_SELECT_STYLE_BACKGROUND: sAssetCategory+"\\"+sFileName = "Graphics\\select Style background"; break;
case GRAPHIC_SELECT_STYLE_EXPLANATION: sAssetCategory+"\\"+sFileName = "Graphics\\select Style explanation"; break;
case GRAPHIC_SELECT_STYLE_TOP_EDGE: sAssetCategory+"\\"+sFileName = "Graphics\\select Style top edge"; break;
case GRAPHIC_SELECT_STYLE_ICONS: sAssetCategory+"\\"+sFileName = "Graphics\\select Style icons"; break;
case GRAPHIC_SELECT_STYLE_INFO_GAME_0_STYLE_0: sAssetCategory+"\\"+sFileName = "Graphics\\select style info game 0 style 0"; break;
case GRAPHIC_SELECT_STYLE_INFO_GAME_0_STYLE_1: sAssetCategory+"\\"+sFileName = "Graphics\\select style info game 0 style 1"; break;
case GRAPHIC_SELECT_STYLE_INFO_GAME_0_STYLE_2: sAssetCategory+"\\"+sFileName = "Graphics\\select style info game 0 style 2"; break;
case GRAPHIC_SELECT_STYLE_INFO_GAME_0_STYLE_3: sAssetCategory+"\\"+sFileName = "Graphics\\select style info game 0 style 3"; break;
case GRAPHIC_SELECT_STYLE_INFO_GAME_0_STYLE_4: sAssetCategory+"\\"+sFileName = "Graphics\\select style info game 0 style 4"; break;
case GRAPHIC_SELECT_STYLE_INFO_GAME_1_STYLE_0: sAssetCategory+"\\"+sFileName = "Graphics\\select style info game 1 style 0"; break;
case GRAPHIC_SELECT_STYLE_INFO_GAME_1_STYLE_1: sAssetCategory+"\\"+sFileName = "Graphics\\select style info game 1 style 1"; break;
case GRAPHIC_SELECT_STYLE_INFO_GAME_1_STYLE_2: sAssetCategory+"\\"+sFileName = "Graphics\\select style info game 1 style 2"; break;
case GRAPHIC_SELECT_STYLE_INFO_GAME_2_STYLE_0: sAssetCategory+"\\"+sFileName = "Graphics\\select style info game 2 style 0"; break;
case GRAPHIC_SELECT_STYLE_INFO_GAME_2_STYLE_1: sAssetCategory+"\\"+sFileName = "Graphics\\select style info game 2 style 1"; break;
case GRAPHIC_SELECT_STYLE_INFO_GAME_2_STYLE_2: sAssetCategory+"\\"+sFileName = "Graphics\\select style info game 2 style 2"; break;
case GRAPHIC_SELECT_STYLE_INFO_GAME_2_STYLE_3: sAssetCategory+"\\"+sFileName = "Graphics\\select style info game 2 style 3"; break;
case GRAPHIC_SELECT_STYLE_PREVIEW_GAME_0_STYLE_0: sAssetCategory+"\\"+sFileName = "Graphics\\select style preview game 0 style 0"; break;
case GRAPHIC_SELECT_STYLE_PREVIEW_GAME_0_STYLE_1: sAssetCategory+"\\"+sFileName = "Graphics\\select style preview game 0 style 1"; break;
case GRAPHIC_SELECT_STYLE_PREVIEW_GAME_0_STYLE_2: sAssetCategory+"\\"+sFileName = "Graphics\\select style preview game 0 style 2"; break;
case GRAPHIC_SELECT_STYLE_PREVIEW_GAME_0_STYLE_3: sAssetCategory+"\\"+sFileName = "Graphics\\select style preview game 0 style 3"; break;
case GRAPHIC_SELECT_STYLE_PREVIEW_GAME_0_STYLE_4: sAssetCategory+"\\"+sFileName = "Graphics\\select style preview game 0 style 4"; break;
case GRAPHIC_SELECT_STYLE_PREVIEW_GAME_1_STYLE_0: sAssetCategory+"\\"+sFileName = "Graphics\\select style preview game 1 style 0"; break;
case GRAPHIC_SELECT_STYLE_PREVIEW_GAME_1_STYLE_1: sAssetCategory+"\\"+sFileName = "Graphics\\select style preview game 1 style 1"; break;
case GRAPHIC_SELECT_STYLE_PREVIEW_GAME_1_STYLE_2: sAssetCategory+"\\"+sFileName = "Graphics\\select style preview game 1 style 2"; break;
case GRAPHIC_SELECT_STYLE_PREVIEW_GAME_2_STYLE_0: sAssetCategory+"\\"+sFileName = "Graphics\\select style preview game 2 style 0"; break;
case GRAPHIC_SELECT_STYLE_PREVIEW_GAME_2_STYLE_1: sAssetCategory+"\\"+sFileName = "Graphics\\select style preview game 2 style 1"; break;
case GRAPHIC_SELECT_STYLE_PREVIEW_GAME_2_STYLE_2: sAssetCategory+"\\"+sFileName = "Graphics\\select style preview game 2 style 2"; break;
case GRAPHIC_SELECT_STYLE_PREVIEW_GAME_2_STYLE_3: sAssetCategory+"\\"+sFileName = "Graphics\\select style preview game 2 style 3"; break;
case GRAPHIC_SONG_OPTIONS_BACKGROUND: sAssetCategory+"\\"+sFileName = "Graphics\\song options background"; break;
case GRAPHIC_SONG_OPTIONS_TOP_EDGE: sAssetCategory+"\\"+sFileName = "Graphics\\song options top edge"; break;
case GRAPHIC_STAGE_ENDLESS: sAssetCategory+"\\"+sFileName = "Graphics\\stage endless"; break;
case GRAPHIC_STAGE_EXTRA1: sAssetCategory+"\\"+sFileName = "Graphics\\stage extra1"; break;
case GRAPHIC_STAGE_EXTRA2: sAssetCategory+"\\"+sFileName = "Graphics\\stage extra2"; break;
case GRAPHIC_STAGE_FINAL: sAssetCategory+"\\"+sFileName = "Graphics\\stage final"; break;
case GRAPHIC_STAGE_NUMBERS: sAssetCategory+"\\"+sFileName = "Graphics\\stage numbers"; break;
case GRAPHIC_STAGE_ONI: sAssetCategory+"\\"+sFileName = "Graphics\\stage oni"; break;
case GRAPHIC_STAGE_STAGE: sAssetCategory+"\\"+sFileName = "Graphics\\stage stage"; break;
case GRAPHIC_TITLE_MENU_BACKGROUND: sAssetCategory+"\\"+sFileName = "Graphics\\title menu background"; break;
case GRAPHIC_TITLE_MENU_LOGO_GAME_0: sAssetCategory+"\\"+sFileName = "Graphics\\title menu logo game 0"; break;
case GRAPHIC_TITLE_MENU_LOGO_GAME_1: sAssetCategory+"\\"+sFileName = "Graphics\\title menu logo game 1"; break;
case GRAPHIC_TITLE_MENU_LOGO_GAME_2: sAssetCategory+"\\"+sFileName = "Graphics\\title menu logo game 2"; break;
case SOUND_ATTRACT_INSERT_COIN: sAssetCategory+"\\"+sFileName = "Sounds\\attract insert coin"; break;
case SOUND_EDIT_CHANGE_BPM: sAssetCategory+"\\"+sFileName = "Sounds\\edit change bpm"; break;
case SOUND_EDIT_CHANGE_FREEZE: sAssetCategory+"\\"+sFileName = "Sounds\\edit change freeze"; break;
case SOUND_EDIT_CHANGE_LINE: sAssetCategory+"\\"+sFileName = "Sounds\\edit change line"; break;
case SOUND_EDIT_CHANGE_SNAP: sAssetCategory+"\\"+sFileName = "Sounds\\edit change snap"; break;
case SOUND_EDIT_SAVE: sAssetCategory+"\\"+sFileName = "Sounds\\edit save"; break;
case SOUND_EVALUATION_EXTRA_STAGE: sAssetCategory+"\\"+sFileName = "Sounds\\evaluation extra stage"; break;
case SOUND_GAMEPLAY_ASSIST_TICK: sAssetCategory+"\\"+sFileName = "Sounds\\gameplay assist tick"; break;
case SOUND_GAMEPLAY_FAILED: sAssetCategory+"\\"+sFileName = "Sounds\\gameplay failed"; break;
case SOUND_GAMEPLAY_ONI_GAIN_LIFE: sAssetCategory+"\\"+sFileName = "Sounds\\gameplay oni gain life"; break;
case SOUND_GAMEPLAY_ONI_LOSE_LIFE: sAssetCategory+"\\"+sFileName = "Sounds\\gameplay oni lose life"; break;
case SOUND_GAMEPLAY_ONI_DIE: sAssetCategory+"\\"+sFileName = "Sounds\\gameplay oni die"; break;
case SOUND_INSERT_COIN: sAssetCategory+"\\"+sFileName = "Sounds\\insert coin"; break;
case "Sounds","menu back": sAssetCategory+"\\"+sFileName = "Sounds\\menu back"; break;
case SOUND_MENU_INVALID: sAssetCategory+"\\"+sFileName = "Sounds\\menu invalid"; break;
case SOUND_MENU_MUSIC: sAssetCategory+"\\"+sFileName = "Sounds\\menu music"; break;
case SOUND_MENU_PROMPT: sAssetCategory+"\\"+sFileName = "Sounds\\menu prompt"; break;
case "Sounds","menu start": sAssetCategory+"\\"+sFileName = "Sounds\\menu start"; break;
case SOUND_MENU_SWOOSH: sAssetCategory+"\\"+sFileName = "Sounds\\menu swoosh"; break;
case SOUND_MENU_TIMER: sAssetCategory+"\\"+sFileName = "Sounds\\menu timer"; break;
case SOUND_MUSIC_SCROLL_MUSIC: sAssetCategory+"\\"+sFileName = "Sounds\\music scroll music"; break;
case SOUND_OPTION_CHANGE_COL: sAssetCategory+"\\"+sFileName = "Sounds\\option change col"; break;
case SOUND_OPTION_CHANGE_ROW: sAssetCategory+"\\"+sFileName = "Sounds\\option change row"; break;
case SOUND_SELECT_DIFFICULTY_CHANGE: sAssetCategory+"\\"+sFileName = "Sounds\\select difficulty change"; break;
case SOUND_SELECT_GROUP_CHANGE: sAssetCategory+"\\"+sFileName = "Sounds\\select group change"; break;
case SOUND_SELECT_MUSIC_SECTION_EXPAND: sAssetCategory+"\\"+sFileName = "Sounds\\select music section expand"; break;
case SOUND_SELECT_MUSIC_CHANGE_MUSIC: sAssetCategory+"\\"+sFileName = "Sounds\\select music change music"; break;
case SOUND_SELECT_MUSIC_CHANGE_OPTIONS: sAssetCategory+"\\"+sFileName = "Sounds\\select music change options"; break;
case SOUND_SELECT_MUSIC_CHANGE_SORT: sAssetCategory+"\\"+sFileName = "Sounds\\select music change sort"; break;
case SOUND_SELECT_MUSIC_CHANGE_NOTES: sAssetCategory+"\\"+sFileName = "Sounds\\select music change notes"; break;
case SOUND_SELECT_MUSIC_WHEEL_LOCKED: sAssetCategory+"\\"+sFileName = "Sounds\\select music wheel locked"; break;
case SOUND_SELECT_STYLE_CHANGE: sAssetCategory+"\\"+sFileName = "Sounds\\select style change"; break;
case SOUND_TITLE_MENU_CHANGE: sAssetCategory+"\\"+sFileName = "Sounds\\title menu change"; break;
case "Fonts","header1": sAssetCategory+"\\"+sFileName = "Fonts\\Header1"; break;
case "Fonts","Header2": sAssetCategory+"\\"+sFileName = "Fonts\\Header2"; break;
case "Fonts","normal": sAssetCategory+"\\"+sFileName = "Fonts\\Normal"; break;
case FONT_ITALIC: sAssetCategory+"\\"+sFileName = "Fonts\\Italic"; break;
case FONT_COMBO_NUMBERS: sAssetCategory+"\\"+sFileName = "Fonts\\Combo Numbers"; break;
case "Fonts","meter": sAssetCategory+"\\"+sFileName = "Fonts\\Meter"; break;
case "Fonts","score numbers": sAssetCategory+"\\"+sFileName = "Fonts\\Score Numbers"; break;
case "Fonts","timer numbers": sAssetCategory+"\\"+sFileName = "Fonts\\Timer Numbers"; break;
case "Fonts","text banner": sAssetCategory+"\\"+sFileName = "Fonts\\Text Banner"; break;
case FONT_STAGE: sAssetCategory+"\\"+sFileName = "Fonts\\stage"; break;
default: ASSERT(0); // Unhandled theme element
}
CStringArray asPossibleElementFilePaths;
CString sCurrentThemeDir = GetThemeDirFromName( sThemeName );
CString sDefaultThemeDir = GetThemeDirFromName( BASE_THEME_NAME );
///////////////////////////////////////
// Search both the current theme and the default theme dirs for this element
///////////////////////////////////////
if( -1 != sAssetCategory+"\\"+sFileName.Find("Graphics\\") )
{
GetDirListing( sCurrentThemeDir + sAssetCategory+"\\"+sFileName + "*.sprite", asPossibleElementFilePaths, false, true );
GetDirListing( sCurrentThemeDir + sAssetCategory+"\\"+sFileName + "*.png", asPossibleElementFilePaths, false, true );
GetDirListing( sCurrentThemeDir + sAssetCategory+"\\"+sFileName + "*.jpg", asPossibleElementFilePaths, false, true );
GetDirListing( sCurrentThemeDir + sAssetCategory+"\\"+sFileName + "*.bmp", asPossibleElementFilePaths, false, true );
GetDirListing( sCurrentThemeDir + sAssetCategory+"\\"+sFileName + "*.gif", asPossibleElementFilePaths, false, true );
GetDirListing( sDefaultThemeDir + sAssetCategory+"\\"+sFileName + "*.sprite", asPossibleElementFilePaths, false, true );
GetDirListing( sDefaultThemeDir + sAssetCategory+"\\"+sFileName + "*.png", asPossibleElementFilePaths, false, true );
GetDirListing( sDefaultThemeDir + sAssetCategory+"\\"+sFileName + "*.jpg", asPossibleElementFilePaths, false, true );
GetDirListing( sDefaultThemeDir + sAssetCategory+"\\"+sFileName + "*.bmp", asPossibleElementFilePaths, false, true );
GetDirListing( sDefaultThemeDir + sAssetCategory+"\\"+sFileName + "*.gif", asPossibleElementFilePaths, false, true );
}
else if( -1 != sAssetCategory+"\\"+sFileName.Find("Sounds\\") )
{
GetDirListing( sCurrentThemeDir + sAssetCategory+"\\"+sFileName + ".set", asPossibleElementFilePaths, false, true );
GetDirListing( sCurrentThemeDir + sAssetCategory+"\\"+sFileName + ".mp3", asPossibleElementFilePaths, false, true );
GetDirListing( sCurrentThemeDir + sAssetCategory+"\\"+sFileName + ".ogg", asPossibleElementFilePaths, false, true );
GetDirListing( sCurrentThemeDir + sAssetCategory+"\\"+sFileName + ".wav", asPossibleElementFilePaths, false, true );
GetDirListing( sDefaultThemeDir + sAssetCategory+"\\"+sFileName + ".set", asPossibleElementFilePaths, false, true );
GetDirListing( sDefaultThemeDir + sAssetCategory+"\\"+sFileName + ".mp3", asPossibleElementFilePaths, false, true );
GetDirListing( sDefaultThemeDir + sAssetCategory+"\\"+sFileName + ".ogg", asPossibleElementFilePaths, false, true );
GetDirListing( sDefaultThemeDir + sAssetCategory+"\\"+sFileName + ".wav", asPossibleElementFilePaths, false, true );
}
else if( -1 != sAssetCategory+"\\"+sFileName.Find("Fonts\\") )
{
GetDirListing( sCurrentThemeDir + sAssetCategory+"\\"+sFileName + ".font", asPossibleElementFilePaths, false, true );
GetDirListing( sDefaultThemeDir + sAssetCategory+"\\"+sFileName + ".font", asPossibleElementFilePaths, false, true );
}
else
{
ASSERT(0); // Unknown theme asset dir;
}
if( asPossibleElementFilePaths.GetSize() > 0 )
return asPossibleElementFilePaths[0];
else
{
ASSERT(0);
throw RageException( "Theme element '%s' could not be found in '%s' or '%s'.",
sAssetCategory+"\\"+sFileName,
GetThemeDirFromName(m_sCurThemeName),
GetThemeDirFromName(BASE_THEME_NAME) );
}
return "";
}
*/
CString ThemeManager::GetPathTo( CString sAssetCategory, CString sFileName ) CString ThemeManager::GetPathTo( CString sAssetCategory, CString sFileName )
{ {
#ifdef _DEBUG #ifdef _DEBUG
-202
View File
@@ -16,205 +16,6 @@
class IniFile; class IniFile;
enum ThemeElement {
/*
GRAPHIC_ALL_MUSIC_BANNER,
GRAPHIC_ARROWS_LEFT,
GRAPHIC_ARROWS_RIGHT,
GRAPHIC_CAUTION,
GRAPHIC_GAMEPLAY_CLOSING_STAR,
GRAPHIC_EDIT_BACKGROUND,
GRAPHIC_EDIT_TOP_EDGE,
GRAPHIC_EDIT_SNAP_INDICATOR,
GRAPHIC_MUSIC_SCROLL_BACKGROUND,
GRAPHIC_FALLBACK_BACKGROUND,
"Graphics","fallback banner",
"Graphics","fallback cd title",
GRAPHIC_OPTIONS_CURSOR,
GRAPHIC_OPTIONS_UNDERLINE,
GRAPHIC_GAME_OPTIONS_BACKGROUND,
GRAPHIC_GAME_OPTIONS_TOP_EDGE,
GRAPHIC_GAME_OVER,
GRAPHIC_GAMEPLAY_CLEARED,
GRAPHIC_GAMEPLAY_COMBO,
GRAPHIC_GAMEPLAY_DANGER_BACKGROUND,
GRAPHIC_GAMEPLAY_DANGER_TEXT,
GRAPHIC_GAMEPLAY_DEMONSTRATION,
GRAPHIC_GAMEPLAY_FAILED,
GRAPHIC_GAMEPLAY_HOLD_JUDGEMENT,
GRAPHIC_GAMEPLAY_JUDGEMENT,
GRAPHIC_GAMEPLAY_READY,
GRAPHIC_GAMEPLAY_HERE_WE_GO,
GRAPHIC_GAMEPLAY_BOTTOM_FRAME,
GRAPHIC_GAMEPLAY_DIFFICULTY_BANNERS,
GRAPHIC_GAMEPLAY_TOP_FRAME,
GRAPHIC_GAMEPLAY_MIDDLE_FRAME,
GRAPHIC_GAMEPLAY_LIFEMETER_BAR,
GRAPHIC_GAMEPLAY_LIFEMETER_ONI,
GRAPHIC_GAMEPLAY_LIFEMETER_BATTERY,
GRAPHIC_GAMEPLAY_LIFEMETER_STREAM_NORMAL,
GRAPHIC_GAMEPLAY_LIFEMETER_STREAM_HOT,
GRAPHIC_GAMEPLAY_ONI_GAMEOVER,
GRAPHIC_GAMEPLAY_OPENING_STAR,
GRAPHIC_GRAPHIC_OPTIONS_BACKGROUND,
GRAPHIC_GRAPHIC_OPTIONS_TOP_EDGE,
GRAPHIC_KEEP_ALIVE,
GRAPHIC_MAP_CONTROLLERS_BACKGROUND,
GRAPHIC_MAP_CONTROLLERS_TOP_EDGE,
GRAPHIC_MENU_BOTTOM_EDGE,
GRAPHIC_MENU_STYLE_ICONS,
GRAPHIC_MUSIC_SORT_ICONS,
GRAPHIC_MUSIC_STATUS_ICONS,
GRAPHIC_PLAYER_OPTIONS_BACKGROUND,
GRAPHIC_PLAYER_OPTIONS_TOP_EDGE,
GRAPHIC_EVALUATION_BACKGROUND,
GRAPHIC_EVALUATION_BANNER_FRAME,
GRAPHIC_EVALUATION_BONUS_FRAME_P1,
GRAPHIC_EVALUATION_BONUS_FRAME_P2,
GRAPHIC_EVALUATION_STAGE_FRAME_P1,
GRAPHIC_EVALUATION_STAGE_FRAME_P2,
GRAPHIC_EVALUATION_GRADE_FRAME,
GRAPHIC_EVALUATION_GRADES,
GRAPHIC_EVALUATION_JUDGE_LABELS,
GRAPHIC_EVALUATION_SCORE_LABELS,
GRAPHIC_EVALUATION_SUMMARY_TOP_EDGE,
GRAPHIC_EVALUATION_TOP_EDGE,
GRAPHIC_SELECT_COURSE_INFO_FRAME,
GRAPHIC_SELECT_COURSE_TOP_EDGE,
GRAPHIC_SELECT_COURSE_BACKGROUND,
GRAPHIC_SELECT_COURSE_CONTENT_BAR,
GRAPHIC_SELECT_DIFFICULTY_ARROWS,
GRAPHIC_SELECT_DIFFICULTY_BACKGROUND,
GRAPHIC_SELECT_DIFFICULTY_EASY_HEADER,
GRAPHIC_SELECT_DIFFICULTY_EASY_PICTURE,
GRAPHIC_SELECT_DIFFICULTY_EXPLANATION,
GRAPHIC_SELECT_DIFFICULTY_HARD_HEADER,
GRAPHIC_SELECT_DIFFICULTY_HARD_PICTURE,
GRAPHIC_SELECT_DIFFICULTY_MEDIUM_HEADER,
GRAPHIC_SELECT_DIFFICULTY_MEDIUM_PICTURE,
GRAPHIC_SELECT_DIFFICULTY_ONI_HEADER,
GRAPHIC_SELECT_DIFFICULTY_ONI_PICTURE,
GRAPHIC_SELECT_DIFFICULTY_ENDLESS_HEADER,
GRAPHIC_SELECT_DIFFICULTY_ENDLESS_PICTURE,
GRAPHIC_SELECT_DIFFICULTY_OK,
GRAPHIC_SELECT_DIFFICULTY_TOP_EDGE,
GRAPHIC_SELECT_GAME_BACKGROUND,
GRAPHIC_SELECT_GAME_TOP_EDGE,
GRAPHIC_SELECT_GROUP_BACKGROUND,
GRAPHIC_SELECT_GROUP_BUTTON,
GRAPHIC_SELECT_GROUP_CONTENTS_HEADER,
GRAPHIC_SELECT_GROUP_EXPLANATION,
GRAPHIC_SELECT_GROUP_INFO_FRAME,
GRAPHIC_SELECT_GROUP_TOP_EDGE,
GRAPHIC_SELECT_MUSIC_BACKGROUND,
GRAPHIC_SELECT_MUSIC_DIFFICULTY_FRAME,
GRAPHIC_SELECT_MUSIC_DIFFICULTY_ICONS,
GRAPHIC_SELECT_MUSIC_INFO_FRAME,
GRAPHIC_SELECT_MUSIC_METER_FRAME,
GRAPHIC_SELECT_MUSIC_RADAR_BASE,
GRAPHIC_SELECT_MUSIC_RADAR_WORDS,
GRAPHIC_SELECT_MUSIC_ROULETTE_BANNER,
GRAPHIC_SELECT_MUSIC_SCORE_FRAME,
GRAPHIC_SELECT_MUSIC_SECTION_BAR,
GRAPHIC_SELECT_MUSIC_SCROLLBAR,
GRAPHIC_SELECT_MUSIC_SECTION_BANNER,
GRAPHIC_SELECT_MUSIC_SMALL_GRADES,
GRAPHIC_SELECT_MUSIC_SONG_BAR,
GRAPHIC_SELECT_MUSIC_SONG_HIGHLIGHT,
GRAPHIC_SELECT_MUSIC_TOP_EDGE,
GRAPHIC_SELECT_MUSIC_LONG_BALLOON,
GRAPHIC_SELECT_MUSIC_MARATHON_BALLOON,
GRAPHIC_SELECT_STYLE_BACKGROUND,
GRAPHIC_SELECT_STYLE_TOP_EDGE,
GRAPHIC_SELECT_STYLE_EXPLANATION,
GRAPHIC_SELECT_STYLE_ICONS,
GRAPHIC_SELECT_STYLE_INFO_GAME_0_STYLE_0,
GRAPHIC_SELECT_STYLE_INFO_GAME_0_STYLE_1,
GRAPHIC_SELECT_STYLE_INFO_GAME_0_STYLE_2,
GRAPHIC_SELECT_STYLE_INFO_GAME_0_STYLE_3,
GRAPHIC_SELECT_STYLE_INFO_GAME_0_STYLE_4,
GRAPHIC_SELECT_STYLE_INFO_GAME_1_STYLE_0,
GRAPHIC_SELECT_STYLE_INFO_GAME_1_STYLE_1,
GRAPHIC_SELECT_STYLE_INFO_GAME_1_STYLE_2,
GRAPHIC_SELECT_STYLE_INFO_GAME_2_STYLE_0,
GRAPHIC_SELECT_STYLE_INFO_GAME_2_STYLE_1,
GRAPHIC_SELECT_STYLE_INFO_GAME_2_STYLE_2,
GRAPHIC_SELECT_STYLE_INFO_GAME_2_STYLE_3,
GRAPHIC_SELECT_STYLE_PREVIEW_GAME_0_STYLE_0,
GRAPHIC_SELECT_STYLE_PREVIEW_GAME_0_STYLE_1,
GRAPHIC_SELECT_STYLE_PREVIEW_GAME_0_STYLE_2,
GRAPHIC_SELECT_STYLE_PREVIEW_GAME_0_STYLE_3,
GRAPHIC_SELECT_STYLE_PREVIEW_GAME_0_STYLE_4,
GRAPHIC_SELECT_STYLE_PREVIEW_GAME_1_STYLE_0,
GRAPHIC_SELECT_STYLE_PREVIEW_GAME_1_STYLE_1,
GRAPHIC_SELECT_STYLE_PREVIEW_GAME_1_STYLE_2,
GRAPHIC_SELECT_STYLE_PREVIEW_GAME_2_STYLE_0,
GRAPHIC_SELECT_STYLE_PREVIEW_GAME_2_STYLE_1,
GRAPHIC_SELECT_STYLE_PREVIEW_GAME_2_STYLE_2,
GRAPHIC_SELECT_STYLE_PREVIEW_GAME_2_STYLE_3,
GRAPHIC_SONG_OPTIONS_BACKGROUND,
GRAPHIC_SONG_OPTIONS_TOP_EDGE,
GRAPHIC_STAGE_ENDLESS,
GRAPHIC_STAGE_EXTRA1,
GRAPHIC_STAGE_EXTRA2,
GRAPHIC_STAGE_FINAL,
GRAPHIC_STAGE_NUMBERS,
GRAPHIC_STAGE_ONI,
GRAPHIC_STAGE_STAGE,
GRAPHIC_TITLE_MENU_BACKGROUND,
GRAPHIC_TITLE_MENU_LOGO_GAME_0,
GRAPHIC_TITLE_MENU_LOGO_GAME_1,
GRAPHIC_TITLE_MENU_LOGO_GAME_2,
SOUND_ATTRACT_INSERT_COIN,
SOUND_EDIT_CHANGE_BPM,
SOUND_EDIT_CHANGE_FREEZE,
SOUND_EDIT_CHANGE_LINE,
SOUND_EDIT_CHANGE_SNAP,
SOUND_EDIT_SAVE,
SOUND_EVALUATION_EXTRA_STAGE,
SOUND_INSERT_COIN,
SOUND_GAMEPLAY_ASSIST_TICK,
SOUND_GAMEPLAY_FAILED,
SOUND_GAMEPLAY_ONI_GAIN_LIFE,
SOUND_GAMEPLAY_ONI_LOSE_LIFE,
SOUND_GAMEPLAY_ONI_DIE,
"Sounds","menu back",
SOUND_MENU_INVALID,
SOUND_MENU_MUSIC,
SOUND_MENU_PROMPT,
"Sounds","menu start",
SOUND_MENU_SWOOSH,
SOUND_MENU_TIMER,
SOUND_MUSIC_SCROLL_MUSIC,
SOUND_OPTION_CHANGE_COL,
SOUND_OPTION_CHANGE_ROW,
SOUND_SELECT_DIFFICULTY_CHANGE,
SOUND_SELECT_GROUP_CHANGE,
SOUND_SELECT_MUSIC_CHANGE_MUSIC,
SOUND_SELECT_MUSIC_CHANGE_SORT,
SOUND_SELECT_MUSIC_CHANGE_NOTES,
SOUND_SELECT_MUSIC_CHANGE_OPTIONS,
SOUND_SELECT_MUSIC_WHEEL_LOCKED,
SOUND_SELECT_MUSIC_SECTION_EXPAND,
SOUND_SELECT_STYLE_CHANGE,
SOUND_TITLE_MENU_CHANGE,
"Fonts","header1",
"Fonts","Header2",
"Fonts","normal",
FONT_ITALIC,
FONT_COMBO_NUMBERS,
"Fonts","meter",
"Fonts","score numbers",
"Fonts","timer numbers",
"Fonts","text banner",
FONT_STAGE,
*/
NUM_THEME_ELEMENTS // leave this at the end
};
class ThemeManager class ThemeManager
{ {
public: public:
@@ -227,7 +28,6 @@ public:
void SwitchTheme( CString sThemeName ); void SwitchTheme( CString sThemeName );
CString GetCurThemeName() { return m_sCurThemeName; }; CString GetCurThemeName() { return m_sCurThemeName; };
CString GetPathTo( ThemeElement te ); // looks up the current theme in PREFSMAN
CString GetPathTo( CString sAssetCategory, CString sFileName ); // looks up the current theme in PREFSMAN CString GetPathTo( CString sAssetCategory, CString sFileName ); // looks up the current theme in PREFSMAN
CString GetMetric( CString sScreenName, CString sValueName ); CString GetMetric( CString sScreenName, CString sValueName );
@@ -239,8 +39,6 @@ public:
protected: protected:
void GetAllThemeNames( CStringArray& AddTo ); void GetAllThemeNames( CStringArray& AddTo );
CString GetPathTo( ThemeElement te, CString sThemeName );
static CString GetThemeDirFromName( CString sThemeName ); static CString GetThemeDirFromName( CString sThemeName );
CString GetElementDir( CString sThemeName ); CString GetElementDir( CString sThemeName );
static CString GetMetricsPathFromName( CString sThemeName ); static CString GetMetricsPathFromName( CString sThemeName );