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.
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
[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
TimerSeconds=40
NextScreen=ScreenSelectGroup
@@ -384,3 +392,39 @@ TimerSeconds=40
[ScreenMapInstruments]
HelpText=Use arrow keys to navigate, ENTER to assign, and SPACE to clear.
[GhostArrow]
PopUpSeconds=0.25
ZoomStart=1.0
ZoomEnd=1.5
ColorPerfect=1.0,1.0,0.3,1 // yellow
ColorGreat=0.0,1.0,0.4,1 // green
ColorGood=0.3,0.8,1.0,1
ColorBoo=0.8,0.0,0.6,1
[GhostArrowBright]
PopUpSeconds=0.25
ZoomStart=1.0
ZoomEnd=1.5
ColorPerfect=1.0,1.0,0.3,1 // yellow
ColorGreat=0.0,1.0,0.4,1 // green
ColorGood=0.3,0.8,1.0,1
ColorBoo=0.8,0.0,0.6,1
[BitmapText]
RainbowColor1=1.0,0.0,0.4,1 // red
RainbowColor2=0.8,0.2,0.6,1 // pink
RainbowColor3=0.4,0.3,0.5,1 // purple
RainbowColor4=0.2,0.6,1.0,1 // sky blue
RainbowColor5=0.2,0.8,0.8,1 // sea green
RainbowColor6=0.2,0.8,0.4,1 // green
RainbowColor7=1.0,0.8,0.2,1 // orange
[SongManager]
GroupColor1=0.8,0.1,0.6,1 // pink
GroupColor2=0.5,0.3,0.7,1 // purple
GroupColor3=0.0,0.4,0.8,1 // sky blue
GroupColor4=0.0,0.6,0.6,1 // sea green
GroupColor5=0.1,0.7,0.3,1 // green
GroupColor6=0.8,0.6,0.0,1 // orange
GroupColor7=1.0,0.3,0.3,1 // light red
ExtraColor=1,0,0,1 // red
+60 -107
View File
@@ -17,29 +17,26 @@
AnnouncerManager* ANNOUNCER = NULL; // global object accessable from anywhere in the program
const CString ANNOUNCER_BASE_DIR = "Announcers\\";
const CString EMPTY_ANNOUNCER_NAME = "Empty";
const CString ANNOUNCERS_DIR = "Announcers\\";
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 )
{
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-- )
{
if( 0 == stricmp( AddTo[i], "cvs" ) )
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;
}
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 )
{
return ANNOUNCER_BASE_DIR + sAnnouncerName + "\\";
return ANNOUNCERS_DIR + sAnnouncerName + "\\";
}
void AnnouncerManager::SwitchAnnouncer( CString sNewAnnouncerName )
@@ -79,97 +66,63 @@ void AnnouncerManager::SwitchAnnouncer( CString sNewAnnouncerName )
m_sCurAnnouncerName = sNewAnnouncerName;
}
CString AnnouncerManager::GetPathTo( AnnouncerElement ae )
CString AnnouncerManager::GetPathTo( CString sFolderName )
{
return GetPathTo( ae, m_sCurAnnouncerName );
}
#ifdef _DEBUG
try_again:
#endif
CString AnnouncerManager::GetPathTo( AnnouncerElement ae, CString sAnnouncerName )
{
if( sAnnouncerName == "" )
return ""; // hopefully there are no sound files here
CString sPathToFolderCurrent = GetAnnouncerDirFromName(m_sCurAnnouncerName) + "\\" + sFolderName;
CString sPathToFolderEmpty = GetAnnouncerDirFromName(EMPTY_ANNOUNCER_NAME) + "\\" + sFolderName;
CString sAssetDir;
switch( ae )
#ifdef _DEBUG
if( m_sCurAnnouncerName!="" && !DoesFileExist(sPathToFolderCurrent) )
{
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
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
CString sFullDir = GetAnnouncerDirFromName( sAnnouncerName ) + sAssetDir;
// ASSERT( DoesFileExist(sFullDir) ); // the announcer directory doesn't exist. Did we type the name wrong above?
return sFullDir;
return sPathToFolderCurrent;
}
+1 -83
View File
@@ -14,84 +14,6 @@
#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
{
public:
@@ -102,14 +24,10 @@ public:
void SwitchAnnouncer( CString sNewAnnouncerName );
CString GetCurAnnouncerName() { return m_sCurAnnouncerName; };
CString GetPathTo( AnnouncerElement ae );
CString GetPathTo( CString sFolderName );
protected:
void AssertAnnouncerIsComplete( CString sAnnouncerName ); // only used in Debug
CString GetPathTo( AnnouncerElement ae, CString sAnnouncerName );
static CString GetAnnouncerDirFromName( CString sAnnouncerName );
CString GetElementDir( AnnouncerElement te );
CString m_sCurAnnouncerName;
};
+5 -5
View File
@@ -20,7 +20,7 @@
#include "NoteDisplay.h"
float ArrowGetYOffset( const PlayerNumber pn, float fNoteBeat )
float ArrowGetYOffset( PlayerNumber pn, float fNoteBeat )
{
float fSongBeat = GAMESTATE->m_fSongBeat;
float fBeatsUntilStep = fNoteBeat - fSongBeat;
@@ -37,7 +37,7 @@ float ArrowGetYOffset( const PlayerNumber pn, float fNoteBeat )
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 fPixelOffsetFromCenter = GAMESTATE->GetCurrentStyleDef()->m_ColumnInfo[PLAYER_1][iColNum].fXOffset;
@@ -51,7 +51,7 @@ float ArrowGetXPos2( const PlayerNumber pn, int iColNum, float fYPos )
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];
@@ -65,12 +65,12 @@ float ArrowGetRotation( const PlayerNumber pn, int iColNum, float fYOffset )
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 );
}
float ArrowGetAlpha( const PlayerNumber pn, float fYPos )
float ArrowGetAlpha( PlayerNumber pn, float fYPos )
{
float fAlpha;
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.
// (positive if has not yet been stepped on, negative if has already passed).
// 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
// the arrow and possibly the Arrow effect and the fYOffset (in the case of
// 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.
// (positive if has not yet been stepped on, negative if has already passed).
// 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.
// This depends on the column of the arrow and possibly the Arrow effect and
// 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
// 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"
#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[] = {
D3DXCOLOR( 1.0f, 0.2f, 0.4f, 1 ), // red
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);
const int NUM_RAINBOW_COLORS = 7;
D3DXCOLOR RAINBOW_COLORS[NUM_RAINBOW_COLORS];
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_VertAlign = align_middle;
@@ -284,10 +297,10 @@ void BitmapText::DrawPrimitives()
if( m_bRainbow )
{
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];
for( int j=i; j<i+6; j++ )
for( int j=i; j<i+4; j++ )
v[j].color = color;
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) );
D3DXCOLOR colorGroup = SONGMAN->GetGroupColor( pSong->m_sGroupName );
D3DXCOLOR colorGroup = SONGMAN->GetSongColor( pSong );
D3DXCOLOR colorDifficulty = DifficultyClassToColor( pNotes->m_DifficultyClass );
m_TextBanner.LoadFromSong( pSong );
+1 -1
View File
@@ -51,7 +51,7 @@ DifficultyClass StringToDifficultyClass( CString sDC )
return CLASS_INVALID;
}
D3DXCOLOR PlayerToColor( const PlayerNumber p )
D3DXCOLOR PlayerToColor( PlayerNumber p )
{
switch( p )
{
+1 -1
View File
@@ -98,7 +98,7 @@ enum PlayerNumber {
PLAYER_INVALID
};
D3DXCOLOR PlayerToColor( const PlayerNumber p );
D3DXCOLOR PlayerToColor( PlayerNumber p );
D3DXCOLOR PlayerToColor( int p );
+1 -1
View File
@@ -36,7 +36,7 @@ public:
//
Game m_CurGame;
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
PlayerNumber m_MasterPlayerNumber;
+42 -20
View File
@@ -1,22 +1,38 @@
#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 "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()
{
// 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) );
TurnShadowOff();
}
@@ -28,18 +44,24 @@ void GhostArrow::Update( float fDeltaTime )
void GhostArrow::Step( TapNoteScore score )
{
D3DXCOLOR color;
switch( score )
{
case TNS_PERFECT: SetDiffuseColor( D3DXCOLOR(1.0f,1.0f,0.3f,1) ); break; // yellow
case TNS_GREAT: SetDiffuseColor( D3DXCOLOR(0.0f,1.0f,0.4f,1) ); break; // green
case TNS_GOOD: SetDiffuseColor( D3DXCOLOR(0.3f,0.8f,1.0f,1) ); break;
case TNS_BOO: SetDiffuseColor( D3DXCOLOR(0.8f,0.0f,0.6f,1) ); break;
case TNS_MISS: ASSERT( false ); break;
case TNS_PERFECT: color = m_colorPerfect; break;
case TNS_GREAT: color = m_colorGreat; break;
case TNS_GOOD: color = m_colorGood; break;
case TNS_BOO: color = m_colorBoo; break;
case TNS_MISS: // miss should never be passed in here
default:
ASSERT(0);
}
SetZoom( 1.0f );
BeginTweening( 0.25f );
SetTweenZoom( 1.5f );
D3DXCOLOR colorTween = GetDiffuseColor();
colorTween.a = 0;
SetTweenDiffuseColor( colorTween );
StopTweening();
SetDiffuseColor( color );
SetState( 0 );
SetZoom( m_fZoomStart );
BeginTweening( m_fPopUpSeconds );
SetTweenZoom( m_fZoomEnd );
color.a = 0;
SetTweenDiffuseColor( color );
}
+5
View File
@@ -23,5 +23,10 @@ public:
virtual void Update( float fDeltaTime );
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"
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()
{
// 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) );
TurnShadowOff();
}
@@ -32,19 +44,24 @@ void GhostArrowBright::Update( float fDeltaTime )
void GhostArrowBright::Step( TapNoteScore score )
{
D3DXCOLOR color;
switch( score )
{
case TNS_PERFECT: SetDiffuseColor( D3DXCOLOR(1.0f,1.0f,0.3f,1) ); break; // yellow
case TNS_GREAT: SetDiffuseColor( D3DXCOLOR(0.0f,1.0f,0.4f,1) ); break; // green
case TNS_GOOD: SetDiffuseColor( D3DXCOLOR(0.3f,0.8f,1.0f,1) ); break;
case TNS_BOO: SetDiffuseColor( D3DXCOLOR(0.8f,0.0f,0.6f,1) ); break;
case TNS_MISS: ASSERT( false ); break;
case TNS_PERFECT: color = m_colorPerfect; break;
case TNS_GREAT: color = m_colorGreat; break;
case TNS_GOOD: color = m_colorGood; break;
case TNS_BOO: color = m_colorBoo; break;
case TNS_MISS: // miss should never be passed in here
default:
ASSERT(0);
}
StopTweening();
SetDiffuseColor( color );
SetState( 0 );
SetZoom( 1.0f );
BeginTweening( 0.25f );
SetTweenZoom( 1.5f );
D3DXCOLOR colorTween = GetDiffuseColor();
colorTween.a = 0;
SetTweenDiffuseColor( colorTween );
SetZoom( m_fZoomStart );
BeginTweening( m_fPopUpSeconds );
SetTweenZoom( m_fZoomEnd );
color.a = 0;
SetTweenDiffuseColor( color );
}
+3 -1
View File
@@ -24,5 +24,7 @@ public:
void Step( TapNoteScore score );
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 )
m_sprStyleIcon.SetDiffuseColor( D3DXCOLOR(1,1,1,0) );
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 );
if( !bTimerEnabled || !PREFSMAN->m_bMenuTimer )
@@ -227,16 +230,21 @@ void MenuElements::DrawBottomLayer()
EndDraw();
}
void MenuElements::StopTimer()
{
m_MenuTimer.StopTimer();
}
void MenuElements::SetTimer( int iTimerSeconds )
{
m_MenuTimer.SetTimer( iTimerSeconds );
}
void MenuElements::StartTimer()
{
m_MenuTimer.StartTimer();
}
void MenuElements::StopTimer()
{
m_MenuTimer.StopTimer();
}
void MenuElements::StallTimer()
{
m_MenuTimer.StallTimer();
+2 -1
View File
@@ -35,8 +35,9 @@ public:
virtual void DrawPrimitives();
void Load( CString sBackgroundPath, CString sTopEdgePath, CString sHelpText, bool bTimerEnabled, int iTimerSeconds );
void StallTimer();
void SetTimer( int iTimerSeconds );
void StartTimer();
void StallTimer();
void StopTimer();
void DrawTopLayer();
+6 -1
View File
@@ -65,7 +65,7 @@ void MenuTimer::Update( float fDeltaTime )
float fNewSecondsLeft = fOldSecondsLeft - fDeltaTime;
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
{
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_textDigit2.SetEffectNone();
}
void MenuTimer::StartTimer()
{
m_bTimerStopped = false;
}
+3 -1
View File
@@ -23,9 +23,11 @@ public:
MenuTimer();
virtual void Update( float fDeltaTime );
void SetTimer( int iTimerSeconds );
void StartTimer();
void StopTimer();
void StallTimer();
void SetTimer( int iTimerSeconds );
protected:
float m_fSecondsLeft;
+2 -2
View File
@@ -511,7 +511,7 @@ void MusicWheel::BuildWheelItemDatas( CArray<WheelItemData, WheelItemData&> &arr
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
@@ -521,7 +521,7 @@ void MusicWheel::BuildWheelItemDatas( CArray<WheelItemData, WheelItemData&> &arr
Song* pSong = arraySongs[i];
if( GAMESTATE->m_sPreferredGroup != "ALL MUSIC" && pSong->m_sGroupName != GAMESTATE->m_sPreferredGroup )
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++ )
{
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. */
if( sRowString == "2222222222222" )
break;
ASSERT( sRowString.GetLength() == 13 ); // why 13 notes per row. Beats me!
// the length of a note in a row depends on TICKCOUNT
float fBeatThisRow = r/(float)iTickCount;
int row = BeatToNoteRow(fBeatThisRow);
+1 -1
View File
@@ -433,7 +433,7 @@ HRESULT RageDisplay::EndFrame()
m_iDrawsSinceLastCheck = 0;
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
// 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
//-----------------------------------------------------------------------------
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)
MenuBack(p);
+12 -12
View File
@@ -50,17 +50,17 @@ protected:
public:
// let subclass override if they want
virtual void MenuUp( const 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 MenuLeft( const 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 MenuStart( const PlayerNumber p, const InputEventType type ) { if(type==IET_FIRST_PRESS) MenuStart(p); }
virtual void MenuBack( const PlayerNumber p, const InputEventType type );
virtual void MenuUp( PlayerNumber p, const InputEventType type ) { if(type==IET_FIRST_PRESS) MenuUp(p); }
virtual void MenuDown( PlayerNumber p, const InputEventType type ) { if(type==IET_FIRST_PRESS) MenuDown(p); }
virtual void MenuLeft( PlayerNumber p, const InputEventType type ) { if(type==IET_FIRST_PRESS) MenuLeft(p); }
virtual void MenuRight( PlayerNumber p, const InputEventType type ) { if(type==IET_FIRST_PRESS) MenuRight(p); }
virtual void MenuStart( PlayerNumber p, const InputEventType type ) { if(type==IET_FIRST_PRESS) MenuStart(p); }
virtual void MenuBack( PlayerNumber p, const InputEventType type );
virtual void MenuUp( const PlayerNumber p ) {};
virtual void MenuDown( const PlayerNumber p ) {};
virtual void MenuLeft( const PlayerNumber p ) {};
virtual void MenuRight( const PlayerNumber p ) {};
virtual void MenuStart( const PlayerNumber p ) {};
virtual void MenuBack( const PlayerNumber p ) {};
virtual void MenuUp( PlayerNumber p ) {};
virtual void MenuDown( PlayerNumber p ) {};
virtual void MenuLeft( PlayerNumber p ) {};
virtual void MenuRight( PlayerNumber p ) {};
virtual void MenuStart( PlayerNumber p ) {};
virtual void MenuBack( PlayerNumber p ) {};
};
+6 -6
View File
@@ -21,7 +21,7 @@
#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_StartClosing = ScreenMessage(SM_User-8);
const ScreenMessage SM_GoToNextScreen = ScreenMessage(SM_User-9);
@@ -65,9 +65,9 @@ void ScreenCaution::HandleScreenMessage( const ScreenMessage SM )
m_Wipe.CloseWipingRight( SM_GoToNextScreen );
break;
case SM_DoneOpening:
SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo(ANNOUNCER_CAUTION) );
SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo("caution") );
break;
case SM_GoToPrevState:
case SM_GoToPrevScreen:
SCREENMAN->SetNewScreen( "ScreenTitleMenu" );
break;
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] )
{
@@ -90,12 +90,12 @@ void ScreenCaution::MenuStart( const PlayerNumber p )
m_Wipe.CloseWipingRight( SM_GoToNextScreen );
}
void ScreenCaution::MenuBack( const PlayerNumber p )
void ScreenCaution::MenuBack( PlayerNumber p )
{
if(m_FadeWipe.IsClosing())
return;
this->ClearMessageQueue();
m_FadeWipe.CloseWipingLeft( SM_GoToPrevState );
m_FadeWipe.CloseWipingLeft( SM_GoToPrevScreen );
SOUND->PlayOnceStreamed( THEME->GetPathTo("Sounds","menu back") );
}
+2 -2
View File
@@ -28,8 +28,8 @@ public:
virtual void HandleScreenMessage( const ScreenMessage SM );
protected:
void MenuStart( const PlayerNumber p );
void MenuBack( const PlayerNumber p );
void MenuStart( PlayerNumber p );
void MenuBack( PlayerNumber p );
Sprite m_sprCaution;
TransitionFade m_Wipe;
TransitionFadeWipe m_FadeWipe;
+4 -4
View File
@@ -133,8 +133,8 @@ int MENU_ITEM_KEY[NUM_MENU_ITEMS] = {
DIK_Q,
};
const ScreenMessage SM_GoToPrevState = ScreenMessage(SM_User+1);
const ScreenMessage SM_GoToNextState = ScreenMessage(SM_User+2);
const ScreenMessage SM_GoToPrevScreen = ScreenMessage(SM_User+1);
const ScreenMessage SM_GoToNextScreen = ScreenMessage(SM_User+2);
ScreenEdit::ScreenEdit()
@@ -1181,10 +1181,10 @@ void ScreenEdit::HandleScreenMessage( const ScreenMessage SM )
{
switch( SM )
{
case SM_GoToPrevState:
case SM_GoToPrevScreen:
SCREENMAN->SetNewScreen( "ScreenEditMenu" );
break;
case SM_GoToNextState:
case SM_GoToNextScreen:
SCREENMAN->SetNewScreen( "ScreenEditMenu" );
break;
}
+14 -14
View File
@@ -31,8 +31,8 @@ const CString EXPLANATION_TEXT =
"In this mode, you can edit existing notes patterns,\n"
"create note patterns, or synchronize notes with the music.";
const ScreenMessage SM_GoToPrevState = ScreenMessage(SM_User+1);
const ScreenMessage SM_GoToNextState = ScreenMessage(SM_User+2);
const ScreenMessage SM_GoToPrevScreen = ScreenMessage(SM_User+1);
const ScreenMessage SM_GoToNextScreen = ScreenMessage(SM_User+2);
ScreenEditMenu::ScreenEditMenu()
@@ -44,8 +44,8 @@ ScreenEditMenu::ScreenEditMenu()
this->AddSubActor( &Selector );
m_Menu.Load(
THEME->GetPathTo("Graphics","edit background"),
THEME->GetPathTo("Graphics","edit top edge"),
THEME->GetPathTo("Graphics","edit menu background"),
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) ),
false, 99
);
@@ -92,10 +92,10 @@ void ScreenEditMenu::HandleScreenMessage( const ScreenMessage SM )
{
switch( SM )
{
case SM_GoToPrevState:
case SM_GoToPrevScreen:
SCREENMAN->SetNewScreen( "ScreenTitleMenu" );
break;
case SM_GoToNextState:
case SM_GoToNextScreen:
// set the current style based on the notes type
// 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();
}
void ScreenEditMenu::MenuDown( const PlayerNumber p )
void ScreenEditMenu::MenuDown( PlayerNumber p )
{
Selector.Down();
}
void ScreenEditMenu::MenuLeft( const PlayerNumber p, const InputEventType type )
void ScreenEditMenu::MenuLeft( PlayerNumber p, const InputEventType type )
{
Selector.Left();
}
void ScreenEditMenu::MenuRight( const PlayerNumber p, const InputEventType type )
void ScreenEditMenu::MenuRight( PlayerNumber p, const InputEventType type )
{
Selector.Right();
}
void ScreenEditMenu::MenuStart( const PlayerNumber p )
void ScreenEditMenu::MenuStart( PlayerNumber p )
{
MUSIC->Stop();
@@ -151,14 +151,14 @@ void ScreenEditMenu::MenuStart( const PlayerNumber p )
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 );
MUSIC->Stop();
m_Fade.CloseWipingLeft( SM_GoToPrevState );
m_Fade.CloseWipingLeft( SM_GoToPrevScreen );
}
+6 -6
View File
@@ -27,12 +27,12 @@ public:
private:
void MenuUp( const PlayerNumber p );
void MenuDown( const PlayerNumber p );
void MenuLeft( const PlayerNumber p, const InputEventType type );
void MenuRight( const PlayerNumber p, const InputEventType type );
void MenuBack( const PlayerNumber p );
void MenuStart( const PlayerNumber p );
void MenuUp( PlayerNumber p );
void MenuDown( PlayerNumber p );
void MenuLeft( PlayerNumber p, const InputEventType type );
void MenuRight( PlayerNumber p, const InputEventType type );
void MenuBack( PlayerNumber p );
void MenuStart( PlayerNumber p );
SongSelector Selector;
+16 -16
View File
@@ -626,13 +626,13 @@ ScreenEvaluation::ScreenEvaluation( bool bSummary )
case RM_ARCADE_STAGE:
switch( max_grade )
{
case GRADE_E: SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo(ANNOUNCER_EVALUATION_E) ); break;
case GRADE_D: SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo(ANNOUNCER_EVALUATION_D) ); break;
case GRADE_C: SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo(ANNOUNCER_EVALUATION_C) ); break;
case GRADE_B: SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo(ANNOUNCER_EVALUATION_B) ); break;
case GRADE_A: SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo(ANNOUNCER_EVALUATION_A) ); break;
case GRADE_AA: SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo(ANNOUNCER_EVALUATION_AA) ); break;
case GRADE_AAA: SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo(ANNOUNCER_EVALUATION_AAA) ); break;
case GRADE_E: SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo("evaluation e") ); break;
case GRADE_D: SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo("evaluation d") ); break;
case GRADE_C: SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo("evaluation c") ); break;
case GRADE_B: SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo("evaluation b") ); break;
case GRADE_A: SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo("evaluation a") ); break;
case GRADE_AA: SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo("evaluation aa") ); break;
case GRADE_AAA: SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo("evaluation aaa") ); break;
case GRADE_NO_DATA:
default:
ASSERT(0); // invalid grade
@@ -642,13 +642,13 @@ ScreenEvaluation::ScreenEvaluation( bool bSummary )
case RM_ARCADE_SUMMARY:
switch( max_grade )
{
case GRADE_E: SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo(ANNOUNCER_EVALUATION_FINAL_E) ); break;
case GRADE_D: SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo(ANNOUNCER_EVALUATION_FINAL_D) ); break;
case GRADE_C: SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo(ANNOUNCER_EVALUATION_FINAL_C) ); break;
case GRADE_B: SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo(ANNOUNCER_EVALUATION_FINAL_B) ); break;
case GRADE_A: SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo(ANNOUNCER_EVALUATION_FINAL_A) ); break;
case GRADE_AA: SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo(ANNOUNCER_EVALUATION_FINAL_AA) ); break;
case GRADE_AAA: SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo(ANNOUNCER_EVALUATION_FINAL_AAA) ); break;
case GRADE_E: SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo("evaluation e") ); break;
case GRADE_D: SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo("evaluation d") ); break;
case GRADE_C: SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo("evaluation c") ); break;
case GRADE_B: SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo("evaluation b") ); break;
case GRADE_A: SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo("evaluation a") ); break;
case GRADE_AA: SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo("evaluation aa") ); break;
case GRADE_AAA: SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo("evaluation aaa") ); break;
case GRADE_NO_DATA:
default:
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 );
}
void ScreenEvaluation::MenuStart( const PlayerNumber p )
void ScreenEvaluation::MenuStart( PlayerNumber p )
{
TweenOffScreen();
+2 -2
View File
@@ -37,8 +37,8 @@ public:
virtual void TweenOnScreen();
virtual void TweenOffScreen();
virtual void MenuBack( const PlayerNumber p );
virtual void MenuStart( const PlayerNumber p );
virtual void MenuBack( PlayerNumber p );
virtual void MenuStart( PlayerNumber p );
protected:
enum ResultMode { RM_ARCADE_STAGE, RM_ARCADE_SUMMARY, RM_ONI };
+121 -134
View File
@@ -23,33 +23,52 @@ Andrew Livy
/* Constants */
const ScreenMessage SM_GoToPrevState = ScreenMessage(SM_User + 1);
const ScreenMessage SM_GoToNextState = ScreenMessage(SM_User + 2);
const ScreenMessage SM_PlayersChosen = ScreenMessage(SM_User + 3);
const ScreenMessage SM_GoToPrevScreen = ScreenMessage(SM_User + 1);
const ScreenMessage SM_GoToNextScreen = ScreenMessage(SM_User + 2);
#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 TIMER_SECONDS THEME->GetMetricI("ScreenEz2SelectPlayer","TimerSeconds")
#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 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()
{
LOG->Trace( "ScreenEz2SelectPlayer::ScreenEz2SelectPlayer()" );
m_iSelectedStyle=0;
GAMESTATE->m_CurStyle = STYLE_NONE;
ez2_bounce=0.f;
// GAMESTATE->m_MasterPlayerNumber = PLAYER_INVALID;
// 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;
// Load in the sprites we will be working with.
for( int i=0; i<NUM_EZ2_GRAPHICS; i++ )
LOG->Trace( "ScreenEz2SelectPlayer::ScreenEz2SelectPlayer()" );
for( int p=0; p<NUM_PLAYERS; p++ )
{
CString sOptFileName;
switch( i )
{
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_sprControllers[p].Load( THEME->GetPathTo("Graphics","select player controller") );
m_sprControllers[p].SetXY( CONTROLLER_X(p), CONTROLLER_Y(p) );
this->AddSubActor( &m_sprControllers[p] );
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(
THEME->GetPathTo("Graphics","select style background"),
THEME->GetPathTo("Graphics","select style top edge"),
THEME->GetPathTo("Graphics","select player background"),
THEME->GetPathTo("Graphics","select player top edge"),
HELP_TEXT, true, TIMER_SECONDS
);
this->AddSubActor( &m_Menu );
m_soundChange.Load( THEME->GetPathTo("Sounds","select style change") );
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") );
// GAMESTATE->m_bPlayersCanJoin = true;
// GAMESTATE->m_bIsJoined[PLAYER_1] = false;
// GAMESTATE->m_bIsJoined[PLAYER_2] = false;
// AfterChange();
// TweenOnScreen();
TweenOnScreen();
m_Menu.TweenOnScreenFromBlack( SM_None );
}
@@ -125,15 +131,6 @@ Desc: Animates the 1p/2p selection
void ScreenEz2SelectPlayer::Update( float 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 )
{
case SM_MenuTimer:
/* If a player has already chosen, then he chose within the last second
* of the menu timer; just stop and let it come through as if the menu
* timer didn't expire. */
if(!m_iSelectedStyle)
MenuStart(PLAYER_1);
break;
case SM_PlayersChosen:
if (m_iSelectedStyle & EZ2_PLAYER_1)
{
if (m_iSelectedStyle & EZ2_PLAYER_2)
bool bAtLeastOneJoined = false;
for( int p=0; p<NUM_PLAYERS; p++ )
if( GAMESTATE->m_bSideIsJoined[p] )
bAtLeastOneJoined = true;
if( !bAtLeastOneJoined )
{
// they both selected
// 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;
MenuStart(PLAYER_1);
m_Menu.StopTimer();
}
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;
case SM_GoToPrevState:
case SM_GoToPrevScreen:
MUSIC->Stop();
SCREENMAN->SetNewScreen( "ScreenTitleMenu" );
break;
case SM_GoToNextState:
case SM_GoToNextScreen:
SCREENMAN->SetNewScreen( NEXT_SCREEN );
break;
}
@@ -226,15 +204,11 @@ Desc: Actions performed when a player
presses the button bound to back
************************************/
void ScreenEz2SelectPlayer::MenuBack( const PlayerNumber p )
void ScreenEz2SelectPlayer::MenuBack( PlayerNumber p )
{
MUSIC->Stop();
m_Menu.TweenOffScreenToBlack( SM_GoToPrevState, true );
// m_Fade.CloseWipingLeft( SM_GoToPrevState );
// TweenOffScreen();
m_Menu.TweenOffScreenToBlack( SM_GoToPrevScreen, true );
}
@@ -255,51 +229,64 @@ presses the button bound to start
************************************/
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.
if ( m_iSelectedStyle & this_player_bit )
return;
// figure out whether we should add a player into the fray or not
// if( GAMESTATE->m_MasterPlayerNumber != PLAYER_2 && GAMESTATE->m_MasterPlayerNumber != PLAYER_1 )
if (m_iSelectedStyle == 0)
GAMESTATE->m_bSideIsJoined[p] = true;
SCREENMAN->RefreshCreditsMessages();
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 );
bool bBothSidesJoined = true;
for( int p=0; p<NUM_PLAYERS; p++ )
if( !GAMESTATE->m_bSideIsJoined[p] )
bBothSidesJoined = false;
if( bBothSidesJoined )
{
// GAMESTATE->m_MasterPlayerNumber = p;
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 );
TweenOffScreen();
m_Menu.TweenOffScreenToMenu( SM_GoToNextScreen );
}
else
{
m_iSelectedStyle |= this_player_bit;
// give the other player a little time to join
m_Menu.SetTimer( 5 );
m_Menu.StartTimer();
}
}
void ScreenEz2SelectPlayer::TweenOnScreen()
{
for( int p=0; p<NUM_PLAYERS; p++ )
{
float fOffScreenOffset = float( (p==PLAYER_1) ? -SCREEN_WIDTH/2 : +SCREEN_WIDTH/2 );
float fOriginalX;
fOriginalX = m_sprCursors[p].GetX();
m_sprCursors[p].SetX( m_sprCursors[p].GetX()+fOffScreenOffset );
m_sprCursors[p].BeginTweening( 0.5f, Actor::TWEEN_BOUNCE_END );
m_sprCursors[p].SetTweenX( fOriginalX );
fOriginalX = m_sprControllers[p].GetX();
m_sprControllers[p].SetX( m_sprCursors[p].GetX()+fOffScreenOffset );
m_sprControllers[p].BeginTweening( 0.5f, Actor::TWEEN_BOUNCE_END );
m_sprControllers[p].SetTweenX( fOriginalX );
}
m_soundSelect.PlayRandom();
TweenOffScreen();
}
/************************************
TweenOffScreen
Desc: Squashes graphics before the screen
changes state.
************************************/
void ScreenEz2SelectPlayer::TweenOffScreen()
{
if (m_iSelectedStyle & EZ2_PLAYER_1)
{
m_sprOpt[1].BeginTweening( MENU_ELEMENTS_TWEEN_TIME );
m_sprOpt[1].SetTweenZoomY( 0 );
m_sprOpt[2].BeginTweening( MENU_ELEMENTS_TWEEN_TIME );
m_sprOpt[2].SetTweenZoomY( 0 );
}
if (m_iSelectedStyle & EZ2_PLAYER_2)
{
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 );
for( int p=0; p<NUM_PLAYERS; p++ )
{
float fOffScreenOffset = float( (p==PLAYER_1) ? -SCREEN_WIDTH : +SCREEN_WIDTH );
m_sprCursors[p].BeginTweening( 0.5f, Actor::TWEEN_BIAS_END );
m_sprCursors[p].SetTweenX( m_sprCursors[p].GetX()+fOffScreenOffset );
m_sprControllers[p].BeginTweening( 0.5f, Actor::TWEEN_BIAS_END );
m_sprControllers[p].SetTweenX( m_sprCursors[p].GetX()+fOffScreenOffset );
}
}
+9 -21
View File
@@ -16,9 +16,6 @@ Andrew Livy
#include "Quad.h"
#include "MenuElements.h"
/* Class Definition */
const int NUM_EZ2_GRAPHICS = 4;
class ScreenEz2SelectPlayer : public Screen
{
@@ -27,32 +24,23 @@ public:
virtual ~ScreenEz2SelectPlayer(); // Destructor
/* Public Function Prototypes */
virtual void Update( float fDeltaTime );
virtual void DrawPrimitives();
virtual void Input( const DeviceInput& DeviceI, const InputEventType type, const GameInput &GameI, const MenuInput &MenuI, const StyleInput &StyleI );
virtual void HandleScreenMessage( const ScreenMessage SM );
void MenuDown( const PlayerNumber p );
void MenuStart( const PlayerNumber p );
void MenuBack( const PlayerNumber p );
void TweenOffScreen();
virtual void MenuDown( PlayerNumber p );
virtual void MenuStart( PlayerNumber p );
virtual void MenuBack( PlayerNumber p );
private:
/* Private Function Prototypes */
void Update( float fDeltaTime );
void TweenOffScreen();
void TweenOnScreen();
/* Variable Declarations */
Sprite m_sprCursors[NUM_PLAYERS];
Sprite m_sprControllers[NUM_PLAYERS];
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_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")
const ScreenMessage SM_GoToPrevState = ScreenMessage(SM_User + 1);
const ScreenMessage SM_GoToNextState = ScreenMessage(SM_User + 2);
const ScreenMessage SM_GoToPrevScreen = ScreenMessage(SM_User + 1);
const ScreenMessage SM_GoToNextScreen = ScreenMessage(SM_User + 2);
enum DStyles {
@@ -164,13 +164,13 @@ void ScreenEz2SelectStyle::HandleScreenMessage( const ScreenMessage SM )
case SM_MenuTimer:
m_soundSelect.PlayRandom();
GAMESTATE->m_PlayMode = PLAY_MODE_ARCADE;
this->SendScreenMessage( SM_GoToNextState, 0 );
this->SendScreenMessage( SM_GoToNextScreen, 0 );
break;
case SM_GoToPrevState:
case SM_GoToPrevScreen:
MUSIC->Stop();
SCREENMAN->SetNewScreen( "ScreenTitleMenu" );
break;
case SM_GoToNextState:
case SM_GoToNextScreen:
SCREENMAN->SetNewScreen( NEXT_SCREEN );
break;
}
@@ -183,14 +183,14 @@ Desc: Actions performed when a player
presses the button bound to back
************************************/
void ScreenEz2SelectStyle::MenuBack( const PlayerNumber p )
void ScreenEz2SelectStyle::MenuBack( PlayerNumber p )
{
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...
// m_Fade.CloseWipingLeft( SM_GoToPrevState );
// m_Fade.CloseWipingLeft( SM_GoToPrevScreen );
// TweenOffScreen();
}
@@ -201,7 +201,7 @@ Desc: Actions performed when a player
presses the button bound to down
************************************/
void ScreenEz2SelectStyle::MenuDown( const PlayerNumber p )
void ScreenEz2SelectStyle::MenuDown( PlayerNumber p )
{
MenuStart(p);
}
@@ -282,7 +282,16 @@ void ScreenEz2SelectStyle::MenuStart( PlayerNumber p )
this->ClearMessageQueue();
GAMESTATE->m_PlayMode = PLAY_MODE_ARCADE;
// 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 HandleScreenMessage( const ScreenMessage SM );
void MenuLeft( const PlayerNumber p );
void MenuRight( const PlayerNumber p );
void MenuStart( const PlayerNumber p );
void MenuBack( const PlayerNumber p );
void MenuDown( const PlayerNumber p );
void MenuLeft( PlayerNumber p );
void MenuRight( PlayerNumber p );
void MenuStart( PlayerNumber p );
void MenuBack( PlayerNumber p );
void MenuDown( PlayerNumber p );
void TweenOffScreen();
void TweenPlyOffScreen();
+4 -4
View File
@@ -23,7 +23,7 @@
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);
@@ -60,15 +60,15 @@ void ScreenGameOver::HandleScreenMessage( const ScreenMessage SM )
switch( SM )
{
case SM_PlayAnnouncer:
SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo(ANNOUNCER_GAME_OVER) );
SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo("game over") );
break;
case SM_StartFadingOut:
m_bClosing = true;
m_sprGameOver.BeginTweening( 0.8f );
m_sprGameOver.SetTweenDiffuseColor( D3DXCOLOR(1,1,1,0) );
this->SendScreenMessage( SM_GoToNextState, 0.8f );
this->SendScreenMessage( SM_GoToNextScreen, 0.8f );
break;
case SM_GoToNextState:
case SM_GoToNextScreen:
SCREENMAN->SetNewScreen( "ScreenTitleMenu" );
break;
}
+1 -1
View File
@@ -20,7 +20,7 @@ public:
virtual void HandleScreenMessage( const ScreenMessage SM );
virtual void MenuStart( const PlayerNumber p );
virtual void MenuStart( PlayerNumber p );
private:
+20 -20
View File
@@ -542,28 +542,28 @@ ScreenGameplay::ScreenGameplay()
{
m_soundFail.Load( THEME->GetPathTo("Sounds","gameplay failed") );
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() )
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() )
m_announcerHereWeGo.Load( ANNOUNCER->GetPathTo(ANNOUNCER_GAMEPLAY_HERE_WE_GO_FINAL) );
m_announcerHereWeGo.Load( ANNOUNCER->GetPathTo("gameplay here we go final") );
else
m_announcerHereWeGo.Load( ANNOUNCER->GetPathTo(ANNOUNCER_GAMEPLAY_HERE_WE_GO_NORMAL) );
m_announcerDanger.Load( ANNOUNCER->GetPathTo(ANNOUNCER_GAMEPLAY_COMMENT_DANGER) );
m_announcerGood.Load( ANNOUNCER->GetPathTo(ANNOUNCER_GAMEPLAY_COMMENT_GOOD) );
m_announcerHot.Load( ANNOUNCER->GetPathTo(ANNOUNCER_GAMEPLAY_COMMENT_HOT) );
m_announcerHereWeGo.Load( ANNOUNCER->GetPathTo("gameplay here we go normal") );
m_announcerDanger.Load( ANNOUNCER->GetPathTo("gameplay comment danger") );
m_announcerGood.Load( ANNOUNCER->GetPathTo("gameplay comment goood") );
m_announcerHot.Load( ANNOUNCER->GetPathTo("gameplay comment hot") );
m_announcer100Combo.Load( ANNOUNCER->GetPathTo(ANNOUNCER_GAMEPLAY_100_COMBO) );
m_announcer200Combo.Load( ANNOUNCER->GetPathTo(ANNOUNCER_GAMEPLAY_200_COMBO) );
m_announcer300Combo.Load( ANNOUNCER->GetPathTo(ANNOUNCER_GAMEPLAY_300_COMBO) );
m_announcer400Combo.Load( ANNOUNCER->GetPathTo(ANNOUNCER_GAMEPLAY_400_COMBO) );
m_announcer500Combo.Load( ANNOUNCER->GetPathTo(ANNOUNCER_GAMEPLAY_500_COMBO) );
m_announcer600Combo.Load( ANNOUNCER->GetPathTo(ANNOUNCER_GAMEPLAY_600_COMBO) );
m_announcer700Combo.Load( ANNOUNCER->GetPathTo(ANNOUNCER_GAMEPLAY_700_COMBO) );
m_announcer800Combo.Load( ANNOUNCER->GetPathTo(ANNOUNCER_GAMEPLAY_800_COMBO) );
m_announcer900Combo.Load( ANNOUNCER->GetPathTo(ANNOUNCER_GAMEPLAY_900_COMBO) );
m_announcer1000Combo.Load( ANNOUNCER->GetPathTo(ANNOUNCER_GAMEPLAY_1000_COMBO) );
m_announcerComboStopped.Load( ANNOUNCER->GetPathTo(ANNOUNCER_GAMEPLAY_COMBO_STOPPED) );
m_announcer100Combo.Load( ANNOUNCER->GetPathTo("gameplay comment 100 combo") );
m_announcer200Combo.Load( ANNOUNCER->GetPathTo("gameplay comment 200 combo") );
m_announcer300Combo.Load( ANNOUNCER->GetPathTo("gameplay comment 300 combo") );
m_announcer400Combo.Load( ANNOUNCER->GetPathTo("gameplay comment 400 combo") );
m_announcer500Combo.Load( ANNOUNCER->GetPathTo("gameplay comment 500 combo") );
m_announcer600Combo.Load( ANNOUNCER->GetPathTo("gameplay comment 600 combo") );
m_announcer700Combo.Load( ANNOUNCER->GetPathTo("gameplay comment 700 combo") );
m_announcer800Combo.Load( ANNOUNCER->GetPathTo("gameplay comment 800 combo") );
m_announcer900Combo.Load( ANNOUNCER->GetPathTo("gameplay comment 900 combo") );
m_announcer1000Combo.Load( ANNOUNCER->GetPathTo("gameplay comment 1000 combo") );
m_announcerComboStopped.Load( ANNOUNCER->GetPathTo("gameplay comment combo stopped") );
}
m_iRowLastCrossed = -1;
@@ -1233,7 +1233,7 @@ void ScreenGameplay::HandleScreenMessage( const ScreenMessage SM )
{
m_StarWipe.CloseWipingRight( SM_None );
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 );
break;
case SM_PlayFailComment:
SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo(ANNOUNCER_GAMEPLAY_FAILED) );
SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo("gameplay failed") );
break;
case SM_HideFailed:
m_sprFailed.StopTweening();
+5 -5
View File
@@ -26,7 +26,7 @@
#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()
@@ -102,7 +102,7 @@ void ScreenHowToPlay::HandleScreenMessage( const ScreenMessage SM )
case SM_MenuTimer:
this->MenuStart(PLAYER_1);
break;
case SM_GoToNextState:
case SM_GoToNextScreen:
switch( GAMESTATE->m_PlayMode )
{
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.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 HandleScreenMessage( const ScreenMessage SM );
virtual void MenuBack( const PlayerNumber p );
virtual void MenuStart( const PlayerNumber p );
virtual void MenuBack( PlayerNumber p );
virtual void MenuStart( PlayerNumber p );
protected:
Sprite m_sprHowToPlay;
+8 -8
View File
@@ -22,7 +22,7 @@
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;
@@ -144,7 +144,7 @@ ScreenMusicScroll::ScreenMusicScroll()
Song* pSong = arraySongs[i];
m_textLines[m_iNumLines].LoadFromFont( THEME->GetPathTo("Fonts","normal") );
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++;
}
@@ -171,7 +171,7 @@ ScreenMusicScroll::ScreenMusicScroll()
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") );
@@ -221,20 +221,20 @@ void ScreenMusicScroll::HandleScreenMessage( const ScreenMessage SM )
switch( SM )
{
case SM_StartFadingOut:
m_Fade.CloseWipingRight( SM_GoToNextState );
m_Fade.CloseWipingRight( SM_GoToNextScreen );
break;
case SM_GoToNextState:
case SM_GoToNextScreen:
SCREENMAN->SetNewScreen( "ScreenTitleMenu" );
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 );
}
+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 HandleScreenMessage( const ScreenMessage SM );
void MenuStart( const PlayerNumber p );
void MenuBack( const PlayerNumber p );
void MenuStart( PlayerNumber p );
void MenuBack( PlayerNumber p );
private:
+12 -12
View File
@@ -35,8 +35,8 @@ const float LINE_GAP_Y = 34;
const float ITEMS_START_X = 160;
const ScreenMessage SM_PlaySample = ScreenMessage(SM_User-4);
const ScreenMessage SM_GoToPrevState = ScreenMessage(SM_User-5);
const ScreenMessage SM_GoToNextState = ScreenMessage(SM_User-6);
const ScreenMessage SM_GoToPrevScreen = ScreenMessage(SM_User-5);
const ScreenMessage SM_GoToNextScreen = ScreenMessage(SM_User-6);
ScreenOptions::ScreenOptions( CString sBackgroundPath, CString sPagePath, CString sTopEdgePath )
@@ -299,11 +299,11 @@ void ScreenOptions::HandleScreenMessage( const ScreenMessage SM )
case SM_MenuTimer:
this->MenuStart(PLAYER_1);
break;
case SM_GoToPrevState:
case SM_GoToPrevScreen:
this->ExportOptions();
this->GoToPrevState();
break;
case SM_GoToNextState:
case SM_GoToNextScreen:
this->ExportOptions();
this->GoToNextState();
break;
@@ -317,30 +317,30 @@ void ScreenOptions::OnChange()
}
void ScreenOptions::MenuBack( const PlayerNumber p )
void ScreenOptions::MenuBack( PlayerNumber p )
{
Screen::MenuBack( p );
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 );
m_Menu.TweenOffScreenToBlack( SM_None, false );
m_SoundNext.PlayRandom();
m_Wipe.CloseWipingRight( SM_GoToNextState );
m_Wipe.CloseWipingRight( SM_GoToNextScreen );
m_framePage.BeginTweening( 0.3f, Actor::TWEEN_BIAS_END );
m_framePage.SetTweenX( SCREEN_RIGHT );
}
void ScreenOptions::MenuLeft( const PlayerNumber pn )
void ScreenOptions::MenuLeft( PlayerNumber pn )
{
for( int p=0; p<NUM_PLAYERS; p++ )
{
@@ -365,7 +365,7 @@ void ScreenOptions::MenuLeft( const PlayerNumber pn )
OnChange();
}
void ScreenOptions::MenuRight( const PlayerNumber pn )
void ScreenOptions::MenuRight( PlayerNumber pn )
{
for( int p=0; p<NUM_PLAYERS; p++ )
{
@@ -390,7 +390,7 @@ void ScreenOptions::MenuRight( const PlayerNumber pn )
OnChange();
}
void ScreenOptions::MenuUp( const PlayerNumber pn )
void ScreenOptions::MenuUp( PlayerNumber pn )
{
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++ )
{
+6 -6
View File
@@ -60,16 +60,16 @@ protected:
void TweenHighlight( PlayerNumber player_no );
virtual void OnChange();
void MenuBack( const PlayerNumber p );
void MenuStart( const PlayerNumber p );
void MenuBack( PlayerNumber p );
void MenuStart( PlayerNumber p );
virtual void GoToNextState() = 0;
virtual void GoToPrevState() = 0;
void MenuLeft( const PlayerNumber p );
void MenuRight( const PlayerNumber p );
void MenuUp( const PlayerNumber p );
void MenuDown( const PlayerNumber p );
void MenuLeft( PlayerNumber p );
void MenuRight( PlayerNumber p );
void MenuUp( PlayerNumber p );
void MenuDown( PlayerNumber p );
InputMode m_InputMode;
+1 -1
View File
@@ -63,7 +63,7 @@ ScreenPlayerOptions::ScreenPlayerOptions() :
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 )
return;
@@ -121,7 +121,7 @@ void ScreenPrompt::MenuLeft( const PlayerNumber p )
MenuRight( p );
}
void ScreenPrompt::MenuRight( const PlayerNumber p )
void ScreenPrompt::MenuRight( PlayerNumber p )
{
if( !m_bYesNoPrompt )
return;
@@ -137,7 +137,7 @@ void ScreenPrompt::MenuRight( const PlayerNumber p )
SOUND->PlayOnceStreamed( THEME->GetPathTo("Sounds","edit change line") );
}
void ScreenPrompt::MenuStart( const PlayerNumber p )
void ScreenPrompt::MenuStart( PlayerNumber p )
{
m_Fade.OpenWipingRight( SM_DoneOpeningWipingRight );
@@ -162,7 +162,7 @@ void ScreenPrompt::MenuStart( const PlayerNumber p )
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 );
protected:
void MenuLeft( const PlayerNumber p );
void MenuRight( const PlayerNumber p );
void MenuBack( const PlayerNumber p );
void MenuStart( const PlayerNumber p );
void MenuLeft( PlayerNumber p );
void MenuRight( PlayerNumber p );
void MenuBack( PlayerNumber p );
void MenuStart( PlayerNumber p );
TransitionFade m_Fade;
+12 -12
View File
@@ -65,8 +65,8 @@ float BEST_TIME_Y( int p ) {
const float TWEEN_TIME = 0.5f;
const ScreenMessage SM_GoToPrevState = ScreenMessage(SM_User+1);
const ScreenMessage SM_GoToNextState = ScreenMessage(SM_User+2);
const ScreenMessage SM_GoToPrevScreen = ScreenMessage(SM_User+1);
const ScreenMessage SM_GoToNextScreen = ScreenMessage(SM_User+2);
@@ -137,7 +137,7 @@ ScreenSelectCourse::ScreenSelectCourse()
m_soundSelect.Load( THEME->GetPathTo("Sounds","menu start") );
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") );
@@ -251,10 +251,10 @@ void ScreenSelectCourse::HandleScreenMessage( const ScreenMessage SM )
case SM_MenuTimer:
MenuStart(PLAYER_1);
break;
case SM_GoToPrevState:
case SM_GoToPrevScreen:
SCREENMAN->SetNewScreen( "ScreenTitleMenu" );
break;
case SM_GoToNextState:
case SM_GoToNextScreen:
// find out if the Next button is being held down on any of the pads
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();
@@ -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();
AfterCourseChange();
}
void ScreenSelectCourse::MenuStart( const PlayerNumber p )
void ScreenSelectCourse::MenuStart( PlayerNumber p )
{
// this needs to check whether valid Notes are selected!
m_MusicWheel.Select();
@@ -299,7 +299,7 @@ void ScreenSelectCourse::MenuStart( const PlayerNumber p )
switch( m_MusicWheel.GetSelectedType() )
{
case TYPE_COURSE:
SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo(ANNOUNCER_SELECT_MUSIC_COMMENT_GENERAL) );
SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo("select course comment general") );
TweenOffScreen();
@@ -327,18 +327,18 @@ void ScreenSelectCourse::MenuStart( const PlayerNumber p )
m_Menu.StopTimer();
this->SendScreenMessage( SM_GoToNextState, 2.5f );
this->SendScreenMessage( SM_GoToNextScreen, 2.5f );
break;
}
}
void ScreenSelectCourse::MenuBack( const PlayerNumber p )
void ScreenSelectCourse::MenuBack( PlayerNumber p )
{
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 TweenOffScreen();
void MenuLeft( const PlayerNumber p, const InputEventType type );
void MenuRight( const PlayerNumber p, const InputEventType type );
void MenuStart( const PlayerNumber p );
void MenuBack( const PlayerNumber p );
void MenuLeft( PlayerNumber p, const InputEventType type );
void MenuRight( PlayerNumber p, const InputEventType type );
void MenuStart( PlayerNumber p );
void MenuBack( PlayerNumber p );
protected:
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_GoToNextState = ScreenMessage(SM_User + 2);
const ScreenMessage SM_GoToPrevScreen = ScreenMessage(SM_User + 1);
const ScreenMessage SM_GoToNextScreen = ScreenMessage(SM_User + 2);
const ScreenMessage SM_StartTweeningOffScreen = ScreenMessage(SM_User + 3);
const ScreenMessage SM_StartFadingOut = ScreenMessage(SM_User + 4);
@@ -214,7 +214,7 @@ ScreenSelectDifficulty::ScreenSelectDifficulty()
m_bPlayedChallengeSound = false;
SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo(ANNOUNCER_SELECT_DIFFICULTY_INTRO) );
SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo("select difficulty intro") );
m_Menu.TweenOnScreenFromMenu( SM_None );
TweenOnScreen();
@@ -269,10 +269,10 @@ void ScreenSelectDifficulty::HandleScreenMessage( const ScreenMessage SM )
MenuStart( (PlayerNumber)p );
}
break;
case SM_GoToPrevState:
case SM_GoToPrevScreen:
SCREENMAN->SetNewScreen( "ScreenTitleMenu" );
break;
case SM_GoToNextState:
case SM_GoToNextScreen:
{
for( int p=0; p<NUM_PLAYERS; p++ )
switch( m_iSelection[p] )
@@ -312,12 +312,12 @@ void ScreenSelectDifficulty::HandleScreenMessage( const ScreenMessage SM )
this->SendScreenMessage( SM_StartFadingOut, 0.8f );
break;
case SM_StartFadingOut:
m_Menu.TweenOffScreenToMenu( SM_GoToNextState );
m_Menu.TweenOffScreenToMenu( SM_GoToNextScreen );
break;
}
}
void ScreenSelectDifficulty::MenuLeft( const PlayerNumber p )
void ScreenSelectDifficulty::MenuLeft( PlayerNumber p )
{
if( m_iSelection[p] == 0 ) // can't go left any more
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
return;
@@ -355,7 +355,7 @@ bool ScreenSelectDifficulty::SelectedSomethingOnPage2()
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 bChangedPagesFrom2To1 = iSelectionWas >= 3 && iSelectionIs < 3;
@@ -385,7 +385,7 @@ void ScreenSelectDifficulty::ChangeTo( const PlayerNumber pn, int iSelectionWas,
if( !m_bPlayedChallengeSound && bChangedPagesFrom1To2 )
{
SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo(ANNOUNCER_SELECT_DIFFICULTY_CHALLENGE) );
SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo("select difficulty challenge") );
m_bPlayedChallengeSound = true;
}
@@ -423,11 +423,11 @@ void ScreenSelectDifficulty::MenuStart( PlayerNumber pn )
switch( iSelection )
{
case 0: SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo(ANNOUNCER_SELECT_DIFFICULTY_COMMENT_EASY) ); break;
case 1: SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo(ANNOUNCER_SELECT_DIFFICULTY_COMMENT_MEDIUM) ); break;
case 2: SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo(ANNOUNCER_SELECT_DIFFICULTY_COMMENT_HARD) ); break;
case 3: SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo(ANNOUNCER_SELECT_DIFFICULTY_COMMENT_ONI) ); break;
case 4: SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo(ANNOUNCER_SELECT_DIFFICULTY_COMMENT_ENDLESS) ); break;
case 0: SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo("select difficulty comment easy") ); break;
case 1: SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo("select difficulty comment medium") ); break;
case 2: SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo("select difficulty comment hard") ); break;
case 3: SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo("select difficulty comment oni") ); break;
case 4: SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo("select difficulty comment endless") ); break;
}
if( iSelection >= 3 ) // chose something on page 2
@@ -471,9 +471,9 @@ void ScreenSelectDifficulty::MenuStart( PlayerNumber pn )
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()
+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 HandleScreenMessage( const ScreenMessage SM );
void MenuLeft( const PlayerNumber p );
void MenuRight( const PlayerNumber p );
void MenuStart( const PlayerNumber p );
void MenuBack( const PlayerNumber p );
void MenuLeft( PlayerNumber p );
void MenuRight( PlayerNumber p );
void MenuStart( PlayerNumber p );
void MenuBack( PlayerNumber p );
void TweenOffScreen();
void TweenOnScreen();
private:
void ChangeTo( const PlayerNumber pn, int iSelectionWas, int iSelectionIs );
void ChangeTo( PlayerNumber pn, int iSelectionWas, int iSelectionIs );
bool IsItemOnPage2( int iItemIndex );
bool SelectedSomethingOnPage2(); // checks selection of players
+15 -15
View File
@@ -41,8 +41,8 @@
#define NEXT_SCREEN_ONI THEME->GetMetric("ScreenSelectGroup","NextScreenOni")
const ScreenMessage SM_GoToPrevState = ScreenMessage(SM_User + 1);
const ScreenMessage SM_GoToNextState = ScreenMessage(SM_User + 2);
const ScreenMessage SM_GoToPrevScreen = ScreenMessage(SM_User + 1);
const ScreenMessage SM_GoToNextScreen = ScreenMessage(SM_User + 2);
const ScreenMessage SM_StartFadingOut = ScreenMessage(SM_User + 3);
@@ -160,7 +160,7 @@ ScreenSelectGroup::ScreenSelectGroup()
m_soundChange.Load( THEME->GetPathTo("Sounds","select group change") );
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") );
@@ -202,10 +202,10 @@ void ScreenSelectGroup::HandleScreenMessage( const ScreenMessage SM )
case SM_MenuTimer:
MenuStart(PLAYER_1);
break;
case SM_GoToPrevState:
case SM_GoToPrevScreen:
SCREENMAN->SetNewScreen( "ScreenTitleMenu" );
break;
case SM_GoToNextState:
case SM_GoToNextScreen:
switch( GAMESTATE->m_PlayMode )
{
case PLAY_MODE_ARCADE:
@@ -220,7 +220,7 @@ void ScreenSelectGroup::HandleScreenMessage( const ScreenMessage SM )
}
break;
case SM_StartFadingOut:
m_Menu.TweenOffScreenToMenu( SM_GoToNextState );
m_Menu.TweenOffScreenToMenu( SM_GoToNextScreen );
break;
}
}
@@ -247,17 +247,17 @@ void ScreenSelectGroup::AfterChange()
}
void ScreenSelectGroup::MenuLeft( const PlayerNumber p )
void ScreenSelectGroup::MenuLeft( PlayerNumber p )
{
MenuUp( p );
}
void ScreenSelectGroup::MenuRight( const PlayerNumber p )
void ScreenSelectGroup::MenuRight( PlayerNumber p )
{
MenuDown( p );
}
void ScreenSelectGroup::MenuUp( const PlayerNumber p )
void ScreenSelectGroup::MenuUp( PlayerNumber p )
{
if( m_bChosen )
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 )
return;
@@ -282,7 +282,7 @@ void ScreenSelectGroup::MenuDown( const PlayerNumber p )
m_soundChange.PlayRandom();
}
void ScreenSelectGroup::MenuStart( const PlayerNumber p )
void ScreenSelectGroup::MenuStart( PlayerNumber p )
{
m_soundSelect.PlayRandom();
m_bChosen = true;
@@ -291,9 +291,9 @@ void ScreenSelectGroup::MenuStart( const PlayerNumber p )
GAMESTATE->m_sPreferredGroup = m_GroupList.GetSelectionName();
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
SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo(ANNOUNCER_SELECT_GROUP_COMMENT_GENERAL) );
SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo("select group comment general") );
TweenOffScreen();
@@ -302,9 +302,9 @@ void ScreenSelectGroup::MenuStart( const PlayerNumber p )
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()
+6 -6
View File
@@ -30,12 +30,12 @@ public:
void AfterChange();
void MenuLeft( const PlayerNumber p );
void MenuRight( const PlayerNumber p );
void MenuUp( const PlayerNumber p );
void MenuDown( const PlayerNumber p );
void MenuStart( const PlayerNumber p );
void MenuBack( const PlayerNumber p );
void MenuLeft( PlayerNumber p );
void MenuRight( PlayerNumber p );
void MenuUp( PlayerNumber p );
void MenuDown( PlayerNumber p );
void MenuStart( PlayerNumber p );
void MenuBack( PlayerNumber p );
void TweenOffScreen();
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_GoToNextState = ScreenMessage(SM_User+2);
const ScreenMessage SM_GoToPrevScreen = ScreenMessage(SM_User+1);
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_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_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 );
@@ -525,7 +525,7 @@ void ScreenSelectMusic::EasierDifficulty( const PlayerNumber p )
AfterNotesChange( p );
}
void ScreenSelectMusic::HarderDifficulty( const PlayerNumber p )
void ScreenSelectMusic::HarderDifficulty( PlayerNumber p )
{
LOG->Trace( "ScreenSelectMusic::HarderDifficulty( %d )", p );
@@ -568,10 +568,10 @@ void ScreenSelectMusic::HandleScreenMessage( const ScreenMessage SM )
MenuStart(PLAYER_INVALID);
}
break;
case SM_GoToPrevState:
case SM_GoToPrevScreen:
SCREENMAN->SetNewScreen( "ScreenTitleMenu" );
break;
case SM_GoToNextState:
case SM_GoToNextScreen:
if( m_bGoToOptions )
{
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) ) )
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) ) )
return; // ignore
@@ -617,7 +617,7 @@ void ScreenSelectMusic::MenuRight( const PlayerNumber p, const InputEventType ty
m_MusicWheel.NextMusic();
}
void ScreenSelectMusic::MenuStart( const PlayerNumber p )
void ScreenSelectMusic::MenuStart( PlayerNumber p )
{
if( p != PLAYER_INVALID &&
INPUTMAPPER->IsButtonDown( MenuInput(p, MENU_BUTTON_LEFT) ) &&
@@ -674,11 +674,11 @@ void ScreenSelectMusic::MenuStart( const PlayerNumber p )
}
if( bIsNew )
SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo(ANNOUNCER_SELECT_MUSIC_COMMENT_NEW) );
SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo("select music comment new") );
else if( bIsHard )
SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo(ANNOUNCER_SELECT_MUSIC_COMMENT_HARD) );
SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo("select music comment hard") );
else
SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo(ANNOUNCER_SELECT_MUSIC_COMMENT_GENERAL) );
SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo("select music comment general") );
TweenOffScreen();
@@ -704,7 +704,7 @@ void ScreenSelectMusic::MenuStart( const PlayerNumber p )
m_Menu.StopTimer();
this->SendScreenMessage( SM_GoToNextState, 2.5f );
this->SendScreenMessage( SM_GoToNextScreen, 2.5f );
}
break;
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();
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) )
return;
+7 -7
View File
@@ -39,16 +39,16 @@ public:
void TweenOnScreen();
void TweenOffScreen();
void MenuLeft( const PlayerNumber p, const InputEventType type );
void MenuRight( const PlayerNumber p, const InputEventType type );
void MenuStart( const PlayerNumber p );
void MenuBack( const PlayerNumber p );
void MenuLeft( PlayerNumber p, const InputEventType type );
void MenuRight( PlayerNumber p, const InputEventType type );
void MenuStart( PlayerNumber p );
void MenuBack( PlayerNumber p );
protected:
void EasierDifficulty( const PlayerNumber p );
void HarderDifficulty( const PlayerNumber p );
void EasierDifficulty( PlayerNumber p );
void HarderDifficulty( PlayerNumber p );
void AfterNotesChange( const PlayerNumber p );
void AfterNotesChange( PlayerNumber p );
void AfterMusicChange();
void PlayMusicSample();
void SortOrderChanged();
+18 -27
View File
@@ -38,8 +38,8 @@
#define NEXT_SCREEN THEME->GetMetric("ScreenSelectStyle","NextScreen")
const ScreenMessage SM_GoToPrevState = ScreenMessage(SM_User + 1);
const ScreenMessage SM_GoToNextState = ScreenMessage(SM_User + 2);
const ScreenMessage SM_GoToPrevScreen = ScreenMessage(SM_User + 1);
const ScreenMessage SM_GoToNextScreen = ScreenMessage(SM_User + 2);
ScreenSelectStyle::ScreenSelectStyle()
@@ -96,7 +96,7 @@ ScreenSelectStyle::ScreenSelectStyle()
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") );
@@ -137,11 +137,11 @@ void ScreenSelectStyle::HandleScreenMessage( const ScreenMessage SM )
case SM_MenuTimer:
MenuStart(PLAYER_INVALID);
break;
case SM_GoToPrevState:
case SM_GoToPrevScreen:
MUSIC->Stop();
SCREENMAN->SetNewScreen( "ScreenTitleMenu" );
break;
case SM_GoToNextState:
case SM_GoToNextScreen:
SCREENMAN->SetNewScreen( NEXT_SCREEN );
break;
}
@@ -185,7 +185,7 @@ void ScreenSelectStyle::AfterChange()
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
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
int iSwitchToStyleIndex = -1; // -1 means none found
@@ -230,7 +230,7 @@ void ScreenSelectStyle::MenuRight( const PlayerNumber p )
AfterChange();
}
void ScreenSelectStyle::MenuStart( const PlayerNumber p )
void ScreenSelectStyle::MenuStart( PlayerNumber p )
{
if( p!=PLAYER_INVALID && !GAMESTATE->m_bSideIsJoined[p] )
{
@@ -243,23 +243,14 @@ void ScreenSelectStyle::MenuStart( const PlayerNumber p )
GAMESTATE->m_CurStyle = GetSelectedStyle();
AnnouncerElement ae;
switch( GAMESTATE->m_CurStyle )
{
case STYLE_PUMP_SINGLE:
case STYLE_DANCE_SINGLE: ae = ANNOUNCER_SELECT_STYLE_COMMENT_SINGLE; break;
case STYLE_PUMP_VERSUS:
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) );
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_GoToNextState );
m_Menu.TweenOffScreenToMenu( SM_GoToNextScreen );
m_soundSelect.PlayRandom();
@@ -268,13 +259,13 @@ void ScreenSelectStyle::MenuStart( const PlayerNumber p )
TweenOffScreen();
}
void ScreenSelectStyle::MenuBack( const PlayerNumber p )
void ScreenSelectStyle::MenuBack( PlayerNumber p )
{
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();
}
+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 HandleScreenMessage( const ScreenMessage SM );
void MenuLeft( const PlayerNumber p );
void MenuRight( const PlayerNumber p );
void MenuStart( const PlayerNumber p );
void MenuBack( const PlayerNumber p );
void MenuLeft( PlayerNumber p );
void MenuRight( PlayerNumber p );
void MenuStart( PlayerNumber p );
void MenuBack( PlayerNumber p );
void TweenOffScreen();
void TweenOnScreen();
+18 -26
View File
@@ -26,14 +26,13 @@
#define TIMER_SECONDS THEME->GetMetricI("ScreenSelectStyle5th","TimerSeconds")
#define NEXT_SCREEN THEME->GetMetric("ScreenSelectStyle5th","NextScreen")
const CString DANCE_STYLES[] = {
const CString DANCE_STYLES[NUM_DANCE_STYLES] = {
"single",
"versus",
"double",
"couple",
"solo",
};
const int NUM_DANCE_STYLES = sizeof(DANCE_STYLES)/sizeof(CString);
const float PAD_X[NUM_STYLE_PADS] = {
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 ScreenMessage SM_GoToPrevState = ScreenMessage(SM_User + 1);
const ScreenMessage SM_GoToNextState = ScreenMessage(SM_User + 2);
const ScreenMessage SM_GoToPrevScreen = ScreenMessage(SM_User + 1);
const ScreenMessage SM_GoToNextScreen = ScreenMessage(SM_User + 2);
const ScreenMessage SM_UpdateAnimations = ScreenMessage(SM_User + 3);
const ScreenMessage SM_TweenExplanation2 = ScreenMessage(SM_User + 4);
@@ -175,7 +174,7 @@ ScreenSelectStyle5th::ScreenSelectStyle5th()
m_soundChange.Load( THEME->GetPathTo("Graphics","select style change") );
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") );
@@ -217,11 +216,11 @@ void ScreenSelectStyle5th::HandleScreenMessage( const ScreenMessage SM )
case SM_MenuTimer:
MenuStart(PLAYER_1);
break;
case SM_GoToPrevState:
case SM_GoToPrevScreen:
MUSIC->Stop();
SCREENMAN->SetNewScreen( "ScreenTitleMenu" );
break;
case SM_GoToNextState:
case SM_GoToNextScreen:
SCREENMAN->SetNewScreen( "ScreenSelectDifficulty" );
break;
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
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
return;
@@ -268,37 +267,30 @@ void ScreenSelectStyle5th::MenuRight( const PlayerNumber p )
AfterChange();
}
void ScreenSelectStyle5th::MenuStart( const PlayerNumber p )
void ScreenSelectStyle5th::MenuStart( PlayerNumber p )
{
GAMESTATE->m_CurStyle = Style( m_iSelection );
GAMESTATE->m_MasterPlayerNumber = p;
AnnouncerElement ae;
switch( GAMESTATE->m_CurStyle )
{
case STYLE_DANCE_SINGLE: ae = ANNOUNCER_SELECT_STYLE_COMMENT_SINGLE; break;
case STYLE_DANCE_VERSUS: ae = ANNOUNCER_SELECT_STYLE_COMMENT_VERSUS; break;
case STYLE_DANCE_DOUBLE: ae = ANNOUNCER_SELECT_STYLE_COMMENT_DOUBLE; break;
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) );
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") );
this->ClearMessageQueue();
TweenOffScreen();
m_Menu.TweenOffScreenToMenu( SM_GoToNextState );
m_Menu.TweenOffScreenToMenu( SM_GoToNextScreen );
m_soundSelect.PlayRandom();
}
void ScreenSelectStyle5th::MenuBack( const PlayerNumber p )
void ScreenSelectStyle5th::MenuBack( PlayerNumber p )
{
MUSIC->Stop();
m_Menu.TweenOffScreenToBlack( SM_GoToPrevState, true );
m_Menu.TweenOffScreenToBlack( SM_GoToPrevScreen, true );
}
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 HandleScreenMessage( const ScreenMessage SM );
void MenuLeft( const PlayerNumber p );
void MenuRight( const PlayerNumber p );
void MenuStart( const PlayerNumber p );
void MenuBack( const PlayerNumber p );
void MenuLeft( PlayerNumber p );
void MenuRight( PlayerNumber p );
void MenuStart( PlayerNumber p );
void MenuBack( PlayerNumber p );
void TweenOffScreen();
void TweenOnScreen();
+51 -38
View File
@@ -34,9 +34,12 @@ enum StageType // for use with the metric above
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_DoneFadingIn = ScreenMessage(SM_User + 2);
const ScreenMessage SM_GoToNextState = ScreenMessage(SM_User + 3);
const ScreenMessage SM_GoToNextScreen = ScreenMessage(SM_User + 3);
enum StageMode
@@ -51,8 +54,13 @@ enum StageMode
ScreenStage::ScreenStage()
{
g_StageType = (StageType)STAGE_TYPE;
MUSIC->Stop();
//
// Init common graphics
//
for( int i=0; i<4; i++ )
{
m_sprNumbers[i].Load( THEME->GetPathTo("Graphics","stage numbers") );
@@ -81,6 +89,9 @@ ScreenStage::ScreenStage()
else stage_mode = MODE_NORMAL;
//
// Play announcer
//
switch( stage_mode )
{
case MODE_NORMAL:
@@ -88,41 +99,37 @@ ScreenStage::ScreenStage()
const int iStageNo = GAMESTATE->GetStageIndex()+1;
switch( iStageNo )
{
case 1: SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo(ANNOUNCER_STAGE_1) ); break;
case 2: SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo(ANNOUNCER_STAGE_2) ); break;
case 3: SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo(ANNOUNCER_STAGE_3) ); break;
case 4: SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo(ANNOUNCER_STAGE_4) ); break;
case 5: SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo(ANNOUNCER_STAGE_5) ); break;
case 1: SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo("stage 1") ); break;
case 2: SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo("stage 2") ); break;
case 3: SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo("stage 3") ); break;
case 4: SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo("stage 4") ); break;
case 5: SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo("stage 5") ); break;
default: ; break; // play nothing
}
}
break;
case MODE_FINAL:
SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo(ANNOUNCER_STAGE_FINAL) );
break;
case MODE_EXTRA1:
SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo(ANNOUNCER_STAGE_EXTRA1) );
break;
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);
case MODE_FINAL: SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo("stage final") ); break;
case MODE_EXTRA1: SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo("stage extra1") ); break;
case MODE_EXTRA2: SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo("stage extra2") ); break;
case MODE_ONI: SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo("stage oni") ); break;
case MODE_ENDLESS: SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo("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.
// 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 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
// 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++ )
{
@@ -183,7 +190,7 @@ ScreenStage::ScreenStage()
// 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++ )
{
@@ -467,7 +474,6 @@ void ScreenStage::Update( float fDeltaTime )
{
Screen::Update( fDeltaTime );
m_quadMask.Update( fDeltaTime );
m_frameStage.Update( fDeltaTime );
m_Fade.Update( fDeltaTime );
@@ -476,18 +482,25 @@ void ScreenStage::Update( float fDeltaTime )
void ScreenStage::DrawPrimitives()
{
DISPLAY->EnableZBuffer();
if ( STAGE_TYPE == STAGE_TYPE_MAX) // only DANCE uses the Z mask
switch( g_StageType )
{
case STAGE_TYPE_MAX:
DISPLAY->EnableZBuffer();
m_quadMask.Draw();
m_frameStage.Draw();
DISPLAY->DisableZBuffer();
m_Fade.Draw();
if ( STAGE_TYPE == STAGE_TYPE_PUMP) // only PUMP uses the song background on the stage screen
m_frameStage.Draw();
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();
}
void ScreenStage::HandleScreenMessage( const ScreenMessage SM )
@@ -495,11 +508,11 @@ void ScreenStage::HandleScreenMessage( const ScreenMessage SM )
switch( SM )
{
case SM_StartFadingOut:
m_Fade.CloseWipingRight( SM_GoToNextState );
m_Fade.CloseWipingRight( SM_GoToNextScreen );
break;
case SM_DoneFadingIn:
break;
case SM_GoToNextState:
case SM_GoToNextScreen:
SCREENMAN->SetNewScreen( "ScreenGameplay" );
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 );
@@ -153,7 +153,7 @@ void ScreenTextEntry::MenuStart( const PlayerNumber p )
m_pOnOK( m_sAnswer );
}
void ScreenTextEntry::MenuBack( const PlayerNumber p )
void ScreenTextEntry::MenuBack( PlayerNumber p )
{
m_bCancelled = true;
MenuStart(p);
+4 -4
View File
@@ -30,10 +30,10 @@ public:
virtual void HandleScreenMessage( const ScreenMessage SM );
protected:
virtual void MenuLeft( const PlayerNumber p );
virtual void MenuRight( const PlayerNumber p );
virtual void MenuStart( const PlayerNumber p );
virtual void MenuBack( const PlayerNumber p );
virtual void MenuLeft( PlayerNumber p );
virtual void MenuRight( PlayerNumber p );
virtual void MenuStart( PlayerNumber p );
virtual void MenuBack( PlayerNumber p );
TransitionFade m_Fade;
BitmapText m_textQuestion;
+6 -6
View File
@@ -150,10 +150,10 @@ ScreenTitleMenu::ScreenTitleMenu()
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_soundSelect.Load( THEME->GetPathTo("Sounds","menu start") );
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 );
}
void ScreenTitleMenu::MenuUp( const PlayerNumber p )
void ScreenTitleMenu::MenuUp( PlayerNumber p )
{
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 );
@@ -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_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 );
}
+4 -4
View File
@@ -42,10 +42,10 @@ public:
private:
void GainFocus( int iChoiceIndex );
void LoseFocus( int iChoiceIndex );
void MenuUp( const PlayerNumber p );
void MenuDown( const PlayerNumber p );
void MenuBack( const PlayerNumber p );
void MenuStart( const PlayerNumber p );
void MenuUp( PlayerNumber p );
void MenuDown( PlayerNumber p );
void MenuBack( PlayerNumber p );
void MenuStart( PlayerNumber p );
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";
D3DXCOLOR GROUP_COLORS[] = {
// D3DXCOLOR( 0.9f, 0.0f, 0.2f, 1 ), // red
D3DXCOLOR( 0.8f, 0.1f, 0.6f, 1 ), // pink
D3DXCOLOR( 0.5f, 0.3f, 0.7f, 1 ), // purple
D3DXCOLOR( 0.0f, 0.4f, 0.8f, 1 ), // sky blue
D3DXCOLOR( 0.0f, 0.6f, 0.6f, 1 ), // sea green
D3DXCOLOR( 0.1f, 0.7f, 0.3f, 1 ), // green
D3DXCOLOR( 0.8f, 0.6f, 0.0f, 1 ), // orange
};
const int NUM_GROUP_COLORS = sizeof(GROUP_COLORS) / sizeof(D3DXCOLOR);
#define GROUP_COLOR_1 THEME->GetMetricC("SongManager","GroupColor1")
#define GROUP_COLOR_2 THEME->GetMetricC("SongManager","GroupColor2")
#define GROUP_COLOR_3 THEME->GetMetricC("SongManager","GroupColor3")
#define GROUP_COLOR_4 THEME->GetMetricC("SongManager","GroupColor4")
#define GROUP_COLOR_5 THEME->GetMetricC("SongManager","GroupColor5")
#define GROUP_COLOR_6 THEME->GetMetricC("SongManager","GroupColor6")
#define GROUP_COLOR_7 THEME->GetMetricC("SongManager","GroupColor7")
#define EXTRA_COLOR THEME->GetMetricC("SongManager","GroupColor7")
const int NUM_GROUP_COLORS = 7;
D3DXCOLOR GROUP_COLORS[NUM_GROUP_COLORS];
D3DXCOLOR g_ExtraColor;
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 );
ReadStatisticsFromDisk();
@@ -363,6 +376,20 @@ D3DXCOLOR SongManager::GetGroupColor( const CString &sGroupName )
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 )
{
for( int i=0; i<m_pSongs.GetSize(); i++ )
+1
View File
@@ -37,6 +37,7 @@ public:
CString GetGroupBannerPath( CString sGroupName );
void GetGroupNames( CStringArray &AddTo );
D3DXCOLOR GetGroupColor( const CString &sGroupName );
D3DXCOLOR GetSongColor( Song* pSong );
static CString ShortenGroupName( const CString &sOrigGroupName );
+20
View File
@@ -32,3 +32,23 @@ enum Style
STYLE_NONE,
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;
}
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 )
{
if( 0==stricmp(BASE_THEME_NAME, sThemeName) )
@@ -120,276 +113,6 @@ CString ThemeManager::GetThemeDirFromName( CString 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 )
{
#ifdef _DEBUG
-202
View File
@@ -16,205 +16,6 @@
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
{
public:
@@ -227,7 +28,6 @@ public:
void SwitchTheme( CString sThemeName );
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 GetMetric( CString sScreenName, CString sValueName );
@@ -239,8 +39,6 @@ public:
protected:
void GetAllThemeNames( CStringArray& AddTo );
CString GetPathTo( ThemeElement te, CString sThemeName );
static CString GetThemeDirFromName( CString sThemeName );
CString GetElementDir( CString sThemeName );
static CString GetMetricsPathFromName( CString sThemeName );