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
+64 -111
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 sPathToFolderCurrent = GetAnnouncerDirFromName(m_sCurAnnouncerName) + "\\" + sFolderName;
CString sPathToFolderEmpty = GetAnnouncerDirFromName(EMPTY_ANNOUNCER_NAME) + "\\" + sFolderName;
#ifdef _DEBUG
if( m_sCurAnnouncerName!="" && !DoesFileExist(sPathToFolderCurrent) )
{
int iResult = AfxMessageBox(
ssprintf(
"The current announcer is missing the folder '%s'.\n"
"It may be that these sounds were never implemented in this announcer,\n"
"Or the folder may be misnamed.\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( sPathToFolderCurrent, NULL );
break;
case IDRETRY:
goto try_again;
break;
case IDIGNORE:
DebugBreak();
break;
}
}
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
return sPathToFolderCurrent;
} }
CString AnnouncerManager::GetPathTo( AnnouncerElement ae, CString sAnnouncerName )
{
if( sAnnouncerName == "" )
return ""; // hopefully there are no sound files here
CString sAssetDir;
switch( ae )
{
case ANNOUNCER_CAUTION: sAssetDir = "caution"; break;
case ANNOUNCER_GAMEPLAY_100_COMBO: sAssetDir = "gameplay 100 combo"; break;
case ANNOUNCER_GAMEPLAY_1000_COMBO: sAssetDir = "gameplay 1000 combo"; break;
case ANNOUNCER_GAMEPLAY_200_COMBO: sAssetDir = "gameplay 200 combo"; break;
case ANNOUNCER_GAMEPLAY_300_COMBO: sAssetDir = "gameplay 300 combo"; break;
case ANNOUNCER_GAMEPLAY_400_COMBO: sAssetDir = "gameplay 400 combo"; break;
case ANNOUNCER_GAMEPLAY_500_COMBO: sAssetDir = "gameplay 500 combo"; break;
case ANNOUNCER_GAMEPLAY_600_COMBO: sAssetDir = "gameplay 600 combo"; break;
case ANNOUNCER_GAMEPLAY_700_COMBO: sAssetDir = "gameplay 700 combo"; break;
case ANNOUNCER_GAMEPLAY_800_COMBO: sAssetDir = "gameplay 800 combo"; break;
case ANNOUNCER_GAMEPLAY_900_COMBO: sAssetDir = "gameplay 900 combo"; break;
case ANNOUNCER_GAMEPLAY_CLEARED: sAssetDir = "gameplay cleared"; break;
case ANNOUNCER_GAMEPLAY_COMBO_STOPPED: sAssetDir = "gameplay combo stopped"; break;
case ANNOUNCER_GAMEPLAY_COMMENT_DANGER: sAssetDir = "gameplay comment danger"; break;
case ANNOUNCER_GAMEPLAY_COMMENT_GOOD: sAssetDir = "gameplay comment good"; break;
case ANNOUNCER_GAMEPLAY_COMMENT_HOT: sAssetDir = "gameplay comment hot"; break;
case ANNOUNCER_GAMEPLAY_FAILED: sAssetDir = "gameplay failed"; break;
case ANNOUNCER_GAMEPLAY_HERE_WE_GO_EXTRA: sAssetDir = "gameplay here we go extra"; break;
case ANNOUNCER_GAMEPLAY_HERE_WE_GO_FINAL: sAssetDir = "gameplay here we go final"; 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
}
CString sFullDir = GetAnnouncerDirFromName( sAnnouncerName ) + sAssetDir;
// 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 };
+118 -131
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()
{ {
// Unjoin the players, then let them join back in on this screen
GAMESTATE->m_bPlayersCanJoin = true;
for( int p=0; p<NUM_PLAYERS; p++ )
GAMESTATE->m_bSideIsJoined[p] = false;
LOG->Trace( "ScreenEz2SelectPlayer::ScreenEz2SelectPlayer()" ); LOG->Trace( "ScreenEz2SelectPlayer::ScreenEz2SelectPlayer()" );
m_iSelectedStyle=0;
GAMESTATE->m_CurStyle = STYLE_NONE;
ez2_bounce=0.f;
// GAMESTATE->m_MasterPlayerNumber = PLAYER_INVALID;
// Load in the sprites we will be working with. for( int p=0; p<NUM_PLAYERS; p++ )
for( int i=0; i<NUM_EZ2_GRAPHICS; i++ )
{ {
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;
case 2: sOptFileName = "select difficulty medium picture"; break;
case 3: sOptFileName = "select difficulty easy picture"; break;
}
m_sprOpt[i].Load( THEME->GetPathTo("Graphics",sOptFileName) );
m_sprOpt[i].SetXY( OPT_X[i], OPT_Y[i] );
this->AddSubActor( &m_sprOpt[i] );
}
m_sprCursors[p].Load( THEME->GetPathTo("Graphics",ssprintf("select player cursor p%d",p+1)) );
m_sprCursors[p].SetXY( CURSOR_X(p), CURSOR_Y(p) );
m_sprCursors[p].SetEffectBouncing( D3DXVECTOR3(0,10,0), 0.5f );
this->AddSubActor( &m_sprCursors[p] );
}
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 bool bAtLeastOneJoined = false;
* timer didn't expire. */ for( int p=0; p<NUM_PLAYERS; p++ )
if(!m_iSelectedStyle) if( GAMESTATE->m_bSideIsJoined[p] )
bAtLeastOneJoined = true;
if( !bAtLeastOneJoined )
{
MenuStart(PLAYER_1); MenuStart(PLAYER_1);
break; m_Menu.StopTimer();
case SM_PlayersChosen:
if (m_iSelectedStyle & EZ2_PLAYER_1)
{
if (m_iSelectedStyle & EZ2_PLAYER_2)
{
// they both selected
// GAMESTATE->m_MasterPlayerNumber = PLAYER_1;
// 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();
}
} }
m_soundSelect.PlayRandom(); void ScreenEz2SelectPlayer::TweenOnScreen()
TweenOffScreen(); {
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 );
}
} }
/************************************
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();
+47 -34
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()
{ {
switch( g_StageType )
{
case STAGE_TYPE_MAX:
DISPLAY->EnableZBuffer(); DISPLAY->EnableZBuffer();
if ( STAGE_TYPE == STAGE_TYPE_MAX) // only DANCE uses the Z mask
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 );