Ez2 changes
This commit is contained in:
@@ -28,7 +28,6 @@ SongsX=20
|
|||||||
SongsY=20
|
SongsY=20
|
||||||
ColorNotSelected=1,1,1,1
|
ColorNotSelected=1,1,1,1
|
||||||
ColorSelected=0.5,1,0.5,1
|
ColorSelected=0.5,1,0.5,1
|
||||||
GoToCautionOrSelectPlayer=0
|
|
||||||
SecondsBeforeDemonstration=30
|
SecondsBeforeDemonstration=30
|
||||||
SecondsBetweenAttract=12
|
SecondsBetweenAttract=12
|
||||||
HelpText=Use # $ to select, then press START
|
HelpText=Use # $ to select, then press START
|
||||||
@@ -46,7 +45,7 @@ ControllerP1X=120
|
|||||||
ControllerP1Y=280
|
ControllerP1Y=280
|
||||||
ControllerP2X=520
|
ControllerP2X=520
|
||||||
ControllerP2Y=280
|
ControllerP2Y=280
|
||||||
HelpText=Press $ on the pad you wish to play on
|
HelpText=Press $ on the pad to join
|
||||||
TimerSeconds=40
|
TimerSeconds=40
|
||||||
NextScreen=ScreenSelectGroup
|
NextScreen=ScreenSelectGroup
|
||||||
|
|
||||||
@@ -71,7 +70,15 @@ TimerSeconds=40
|
|||||||
NextScreen=ScreenSelectDifficulty
|
NextScreen=ScreenSelectDifficulty
|
||||||
|
|
||||||
[ScreenEz2SelectStyle]
|
[ScreenEz2SelectStyle]
|
||||||
HelpText=Press ! " to change, then press START
|
CursorP1X=120
|
||||||
|
CursorP1Y=280
|
||||||
|
CursorP2X=520
|
||||||
|
CursorP2Y=280
|
||||||
|
ControllerP1X=120
|
||||||
|
ControllerP1Y=280
|
||||||
|
ControllerP2X=520
|
||||||
|
ControllerP2Y=280
|
||||||
|
HelpText=Press $ on the pad to join. Press ! " to change styles, then press START
|
||||||
TimerSeconds=40
|
TimerSeconds=40
|
||||||
NextScreen=ScreenSelectGroup
|
NextScreen=ScreenSelectGroup
|
||||||
|
|
||||||
@@ -324,6 +331,8 @@ TryExtraStageY=424
|
|||||||
HelpText=Press START to continue
|
HelpText=Press START to continue
|
||||||
TimerSeconds=40
|
TimerSeconds=40
|
||||||
SpinGrades=1
|
SpinGrades=1
|
||||||
|
GradesGlowColor1=1,1,1,0.2
|
||||||
|
GradesGlowColor2=1,1,1,0.8
|
||||||
|
|
||||||
[ScreenManager]
|
[ScreenManager]
|
||||||
StatsX=632
|
StatsX=632
|
||||||
@@ -391,7 +400,7 @@ HelpText=# $ to change line ! " to select between options then press STAR
|
|||||||
TimerSeconds=40
|
TimerSeconds=40
|
||||||
|
|
||||||
[ScreenMapInstruments]
|
[ScreenMapInstruments]
|
||||||
HelpText=Use arrow keys to navigate, ENTER to assign, and SPACE to clear.
|
HelpText=Use arrow keys to navigate, ENTER to assign, SPACE to clear, ESCAPE when done.
|
||||||
|
|
||||||
[GhostArrow]
|
[GhostArrow]
|
||||||
ShowSeconds=0.25
|
ShowSeconds=0.25
|
||||||
|
|||||||
@@ -78,48 +78,15 @@ try_again:
|
|||||||
#ifdef _DEBUG
|
#ifdef _DEBUG
|
||||||
if( m_sCurAnnouncerName!="" && !DoesFileExist(sPathToFolderCurrent) )
|
if( m_sCurAnnouncerName!="" && !DoesFileExist(sPathToFolderCurrent) )
|
||||||
{
|
{
|
||||||
int iResult = AfxMessageBox(
|
LOG->Trace( "The current announcer is missing the folder '%s'.", sFolderName );
|
||||||
ssprintf(
|
MessageBeep( MB_OK );
|
||||||
"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 break.\n"
|
|
||||||
"Click Retry after adding the folder menually.\n"
|
|
||||||
"Click Ignore to to automatically create the folder.\n\n", sFolderName), MB_ABORTRETRYIGNORE );
|
|
||||||
switch( iResult )
|
|
||||||
{
|
|
||||||
case IDABORT:
|
|
||||||
DebugBreak();
|
|
||||||
break;
|
|
||||||
case IDRETRY:
|
|
||||||
goto try_again;
|
|
||||||
break;
|
|
||||||
case IDIGNORE:
|
|
||||||
CreateDirectory( sPathToFolderCurrent, NULL );
|
CreateDirectory( sPathToFolderCurrent, NULL );
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
if( !DoesFileExist(sPathToFolderEmpty) )
|
if( !DoesFileExist(sPathToFolderEmpty) )
|
||||||
{
|
{
|
||||||
int iResult = AfxMessageBox(
|
LOG->Trace( "The empty announcer is missing the folder '%s'.", sFolderName );
|
||||||
ssprintf(
|
MessageBeep( MB_OK );
|
||||||
"The empty announcer is missing the folder '%s'.\n"
|
|
||||||
"This announcer should have empty folders for every saying.\n\n"
|
|
||||||
"Click Abort to break.\n"
|
|
||||||
"Click Retry after adding the folder menually.\n"
|
|
||||||
"Click Ignore to to automatically create the folder.\n\n", sFolderName), MB_ABORTRETRYIGNORE );
|
|
||||||
switch( iResult )
|
|
||||||
{
|
|
||||||
case IDABORT:
|
|
||||||
DebugBreak();
|
|
||||||
break;
|
|
||||||
case IDRETRY:
|
|
||||||
goto try_again;
|
|
||||||
break;
|
|
||||||
case IDIGNORE:
|
|
||||||
CreateDirectory( sPathToFolderEmpty, NULL );
|
CreateDirectory( sPathToFolderEmpty, NULL );
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|||||||
@@ -298,7 +298,7 @@ StyleDef g_StyleDefs[NUM_STYLES] =
|
|||||||
GAME_DANCE, // m_Game
|
GAME_DANCE, // m_Game
|
||||||
true, // m_bUsedForGameplay
|
true, // m_bUsedForGameplay
|
||||||
true, // m_bUsedForEdit
|
true, // m_bUsedForEdit
|
||||||
"dance-single", // m_szName
|
"Single", // m_szName
|
||||||
NOTES_TYPE_DANCE_SINGLE, // m_NotesType
|
NOTES_TYPE_DANCE_SINGLE, // m_NotesType
|
||||||
StyleDef::ONE_PLAYER_ONE_CREDIT, // m_StyleType
|
StyleDef::ONE_PLAYER_ONE_CREDIT, // m_StyleType
|
||||||
{ 160, 480 }, // m_iCenterX
|
{ 160, 480 }, // m_iCenterX
|
||||||
@@ -325,7 +325,7 @@ StyleDef g_StyleDefs[NUM_STYLES] =
|
|||||||
GAME_DANCE, // m_Game
|
GAME_DANCE, // m_Game
|
||||||
true, // m_bUsedForGameplay
|
true, // m_bUsedForGameplay
|
||||||
false, // m_bUsedForEdit
|
false, // m_bUsedForEdit
|
||||||
"dance-versus", // m_szName
|
"Versus", // m_szName
|
||||||
NOTES_TYPE_DANCE_SINGLE, // m_NotesType
|
NOTES_TYPE_DANCE_SINGLE, // m_NotesType
|
||||||
StyleDef::TWO_PLAYERS_TWO_CREDITS, // m_StyleType
|
StyleDef::TWO_PLAYERS_TWO_CREDITS, // m_StyleType
|
||||||
{ 160, 480 }, // m_iCenterX
|
{ 160, 480 }, // m_iCenterX
|
||||||
@@ -352,7 +352,7 @@ StyleDef g_StyleDefs[NUM_STYLES] =
|
|||||||
GAME_DANCE, // m_Game
|
GAME_DANCE, // m_Game
|
||||||
true, // m_bUsedForGameplay
|
true, // m_bUsedForGameplay
|
||||||
true, // m_bUsedForEdit
|
true, // m_bUsedForEdit
|
||||||
"dance-double", // m_szName
|
"Double", // m_szName
|
||||||
NOTES_TYPE_DANCE_DOUBLE, // m_NotesType
|
NOTES_TYPE_DANCE_DOUBLE, // m_NotesType
|
||||||
StyleDef::ONE_PLAYER_TWO_CREDITS, // m_StyleType
|
StyleDef::ONE_PLAYER_TWO_CREDITS, // m_StyleType
|
||||||
{ 320, 320 }, // m_iCenterX
|
{ 320, 320 }, // m_iCenterX
|
||||||
@@ -387,7 +387,7 @@ StyleDef g_StyleDefs[NUM_STYLES] =
|
|||||||
GAME_DANCE, // m_Game
|
GAME_DANCE, // m_Game
|
||||||
true, // m_bUsedForGameplay
|
true, // m_bUsedForGameplay
|
||||||
false, // m_bUsedForEdit
|
false, // m_bUsedForEdit
|
||||||
"dance-couple", // m_szName
|
"Couple", // m_szName
|
||||||
NOTES_TYPE_DANCE_COUPLE, // m_NotesType
|
NOTES_TYPE_DANCE_COUPLE, // m_NotesType
|
||||||
StyleDef::TWO_PLAYERS_TWO_CREDITS, // m_StyleType
|
StyleDef::TWO_PLAYERS_TWO_CREDITS, // m_StyleType
|
||||||
{ 160, 480 }, // m_iCenterX
|
{ 160, 480 }, // m_iCenterX
|
||||||
@@ -414,7 +414,7 @@ StyleDef g_StyleDefs[NUM_STYLES] =
|
|||||||
GAME_DANCE, // m_Game
|
GAME_DANCE, // m_Game
|
||||||
true, // m_bUsedForGameplay
|
true, // m_bUsedForGameplay
|
||||||
true, // m_bUsedForEdit
|
true, // m_bUsedForEdit
|
||||||
"dance-solo", // m_szName
|
"Solo", // m_szName
|
||||||
NOTES_TYPE_DANCE_SOLO, // m_NotesType
|
NOTES_TYPE_DANCE_SOLO, // m_NotesType
|
||||||
StyleDef::ONE_PLAYER_ONE_CREDIT, // m_StyleType
|
StyleDef::ONE_PLAYER_ONE_CREDIT, // m_StyleType
|
||||||
{ 320, 320 }, // m_iCenterX
|
{ 320, 320 }, // m_iCenterX
|
||||||
@@ -445,7 +445,7 @@ StyleDef g_StyleDefs[NUM_STYLES] =
|
|||||||
GAME_DANCE, // m_Game
|
GAME_DANCE, // m_Game
|
||||||
false, // m_bUsedForGameplay
|
false, // m_bUsedForGameplay
|
||||||
true, // m_bUsedForEdit
|
true, // m_bUsedForEdit
|
||||||
"dance-edit-couple", // m_szName
|
"EditCouple", // m_szName
|
||||||
NOTES_TYPE_DANCE_COUPLE, // m_NotesType
|
NOTES_TYPE_DANCE_COUPLE, // m_NotesType
|
||||||
StyleDef::ONE_PLAYER_TWO_CREDITS, // m_StyleType
|
StyleDef::ONE_PLAYER_TWO_CREDITS, // m_StyleType
|
||||||
{ 320, 320 }, // m_iCenterX
|
{ 320, 320 }, // m_iCenterX
|
||||||
@@ -508,7 +508,7 @@ StyleDef g_StyleDefs[NUM_STYLES] =
|
|||||||
GAME_PUMP, // m_Game
|
GAME_PUMP, // m_Game
|
||||||
true, // m_bUsedForGameplay
|
true, // m_bUsedForGameplay
|
||||||
true, // m_bUsedForEdit
|
true, // m_bUsedForEdit
|
||||||
"pump-single", // m_szName
|
"Single", // m_szName
|
||||||
NOTES_TYPE_PUMP_SINGLE, // m_NotesType
|
NOTES_TYPE_PUMP_SINGLE, // m_NotesType
|
||||||
StyleDef::ONE_PLAYER_ONE_CREDIT, // m_StyleType
|
StyleDef::ONE_PLAYER_ONE_CREDIT, // m_StyleType
|
||||||
{ 160, 480 }, // m_iCenterX
|
{ 160, 480 }, // m_iCenterX
|
||||||
@@ -537,7 +537,7 @@ StyleDef g_StyleDefs[NUM_STYLES] =
|
|||||||
GAME_PUMP, // m_Game
|
GAME_PUMP, // m_Game
|
||||||
true, // m_bUsedForGameplay
|
true, // m_bUsedForGameplay
|
||||||
false, // m_bUsedForEdit
|
false, // m_bUsedForEdit
|
||||||
"pump-versus", // m_szName
|
"Versus", // m_szName
|
||||||
NOTES_TYPE_PUMP_SINGLE, // m_NotesType
|
NOTES_TYPE_PUMP_SINGLE, // m_NotesType
|
||||||
StyleDef::TWO_PLAYERS_TWO_CREDITS, // m_StyleType
|
StyleDef::TWO_PLAYERS_TWO_CREDITS, // m_StyleType
|
||||||
{ 160, 480 }, // m_iCenterX
|
{ 160, 480 }, // m_iCenterX
|
||||||
@@ -566,7 +566,7 @@ StyleDef g_StyleDefs[NUM_STYLES] =
|
|||||||
GAME_PUMP, // m_Game
|
GAME_PUMP, // m_Game
|
||||||
true, // m_bUsedForGameplay
|
true, // m_bUsedForGameplay
|
||||||
true, // m_bUsedForEdit
|
true, // m_bUsedForEdit
|
||||||
"pump-double", // m_szName
|
"Double", // m_szName
|
||||||
NOTES_TYPE_PUMP_DOUBLE, // m_NotesType
|
NOTES_TYPE_PUMP_DOUBLE, // m_NotesType
|
||||||
StyleDef::ONE_PLAYER_TWO_CREDITS, // m_StyleType
|
StyleDef::ONE_PLAYER_TWO_CREDITS, // m_StyleType
|
||||||
{ 320, 480 }, // m_iCenterX
|
{ 320, 480 }, // m_iCenterX
|
||||||
@@ -636,7 +636,7 @@ StyleDef g_StyleDefs[NUM_STYLES] =
|
|||||||
GAME_EZ2, // m_Game
|
GAME_EZ2, // m_Game
|
||||||
true, // m_bUsedForGameplay
|
true, // m_bUsedForGameplay
|
||||||
true, // m_bUsedForEdit
|
true, // m_bUsedForEdit
|
||||||
"ez2-single", // m_szName
|
"Single", // m_szName
|
||||||
NOTES_TYPE_EZ2_SINGLE, // m_NotesType
|
NOTES_TYPE_EZ2_SINGLE, // m_NotesType
|
||||||
StyleDef::ONE_PLAYER_ONE_CREDIT, // m_StyleType
|
StyleDef::ONE_PLAYER_ONE_CREDIT, // m_StyleType
|
||||||
{ 160, 480 }, // m_iCenterX
|
{ 160, 480 }, // m_iCenterX
|
||||||
@@ -665,7 +665,7 @@ StyleDef g_StyleDefs[NUM_STYLES] =
|
|||||||
GAME_EZ2, // m_Game
|
GAME_EZ2, // m_Game
|
||||||
true, // m_bUsedForGameplay
|
true, // m_bUsedForGameplay
|
||||||
true, // m_bUsedForEdit
|
true, // m_bUsedForEdit
|
||||||
"ez2-single-hard", // m_szName
|
"SingleHard", // m_szName
|
||||||
NOTES_TYPE_EZ2_SINGLE_HARD, // m_NotesType
|
NOTES_TYPE_EZ2_SINGLE_HARD, // m_NotesType
|
||||||
StyleDef::ONE_PLAYER_ONE_CREDIT, // m_StyleType
|
StyleDef::ONE_PLAYER_ONE_CREDIT, // m_StyleType
|
||||||
{ 160, 480 }, // m_iCenterX
|
{ 160, 480 }, // m_iCenterX
|
||||||
@@ -694,7 +694,7 @@ StyleDef g_StyleDefs[NUM_STYLES] =
|
|||||||
GAME_EZ2, // m_Game
|
GAME_EZ2, // m_Game
|
||||||
true, // m_bUsedForGameplay
|
true, // m_bUsedForGameplay
|
||||||
true, // m_bUsedForEdit
|
true, // m_bUsedForEdit
|
||||||
"ez2-double", // m_szName
|
"Double", // m_szName
|
||||||
NOTES_TYPE_EZ2_DOUBLE, // m_NotesType
|
NOTES_TYPE_EZ2_DOUBLE, // m_NotesType
|
||||||
StyleDef::ONE_PLAYER_TWO_CREDITS, // m_StyleType
|
StyleDef::ONE_PLAYER_TWO_CREDITS, // m_StyleType
|
||||||
{ 160, 480 }, // m_iCenterX
|
{ 160, 480 }, // m_iCenterX
|
||||||
@@ -733,7 +733,7 @@ StyleDef g_StyleDefs[NUM_STYLES] =
|
|||||||
GAME_EZ2, // m_Game
|
GAME_EZ2, // m_Game
|
||||||
true, // m_bUsedForGameplay
|
true, // m_bUsedForGameplay
|
||||||
true, // m_bUsedForEdit
|
true, // m_bUsedForEdit
|
||||||
"ez2-real", // m_szName
|
"Real", // m_szName
|
||||||
NOTES_TYPE_EZ2_REAL, // m_NotesType
|
NOTES_TYPE_EZ2_REAL, // m_NotesType
|
||||||
StyleDef::ONE_PLAYER_ONE_CREDIT, // m_StyleType
|
StyleDef::ONE_PLAYER_ONE_CREDIT, // m_StyleType
|
||||||
{ 160, 480 }, // m_iCenterX
|
{ 160, 480 }, // m_iCenterX
|
||||||
@@ -766,7 +766,7 @@ StyleDef g_StyleDefs[NUM_STYLES] =
|
|||||||
GAME_EZ2, // m_Game
|
GAME_EZ2, // m_Game
|
||||||
true, // m_bUsedForGameplay
|
true, // m_bUsedForGameplay
|
||||||
true, // m_bUsedForEdit
|
true, // m_bUsedForEdit
|
||||||
"ez2-single-versus", // m_szName
|
"Versus", // m_szName
|
||||||
NOTES_TYPE_EZ2_SINGLE, // m_NotesType
|
NOTES_TYPE_EZ2_SINGLE, // m_NotesType
|
||||||
StyleDef::TWO_PLAYERS_TWO_CREDITS, // m_StyleType
|
StyleDef::TWO_PLAYERS_TWO_CREDITS, // m_StyleType
|
||||||
{ 160, 480 }, // m_iCenterX
|
{ 160, 480 }, // m_iCenterX
|
||||||
@@ -795,7 +795,7 @@ StyleDef g_StyleDefs[NUM_STYLES] =
|
|||||||
GAME_EZ2, // m_Game
|
GAME_EZ2, // m_Game
|
||||||
true, // m_bUsedForGameplay
|
true, // m_bUsedForGameplay
|
||||||
true, // m_bUsedForEdit
|
true, // m_bUsedForEdit
|
||||||
"ez2-single-hard-versus", // m_szName
|
"VersusHard", // m_szName
|
||||||
NOTES_TYPE_EZ2_SINGLE_HARD, // m_NotesType
|
NOTES_TYPE_EZ2_SINGLE_HARD, // m_NotesType
|
||||||
StyleDef::TWO_PLAYERS_TWO_CREDITS, // m_StyleType
|
StyleDef::TWO_PLAYERS_TWO_CREDITS, // m_StyleType
|
||||||
{ 160, 480 }, // m_iCenterX
|
{ 160, 480 }, // m_iCenterX
|
||||||
@@ -824,7 +824,7 @@ StyleDef g_StyleDefs[NUM_STYLES] =
|
|||||||
GAME_EZ2, // m_Game
|
GAME_EZ2, // m_Game
|
||||||
true, // m_bUsedForGameplay
|
true, // m_bUsedForGameplay
|
||||||
true, // m_bUsedForEdit
|
true, // m_bUsedForEdit
|
||||||
"ez2-real-versus", // m_szName
|
"VersusReal", // m_szName
|
||||||
NOTES_TYPE_EZ2_REAL, // m_NotesType
|
NOTES_TYPE_EZ2_REAL, // m_NotesType
|
||||||
StyleDef::TWO_PLAYERS_TWO_CREDITS, // m_StyleType
|
StyleDef::TWO_PLAYERS_TWO_CREDITS, // m_StyleType
|
||||||
{ 160, 480 }, // m_iCenterX
|
{ 160, 480 }, // m_iCenterX
|
||||||
|
|||||||
@@ -56,8 +56,6 @@ GhostArrow::GhostArrow()
|
|||||||
void GhostArrow::Update( float fDeltaTime )
|
void GhostArrow::Update( float fDeltaTime )
|
||||||
{
|
{
|
||||||
Sprite::Update( fDeltaTime );
|
Sprite::Update( fDeltaTime );
|
||||||
|
|
||||||
printf( "cur state is %d\n", Sprite::m_iCurState );
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void GhostArrow::Step( TapNoteScore score )
|
void GhostArrow::Step( TapNoteScore score )
|
||||||
|
|||||||
@@ -146,6 +146,7 @@ void MenuElements::TweenTopLayerOffScreen()
|
|||||||
|
|
||||||
void MenuElements::TweenOffScreenToMenu( ScreenMessage smSendWhenDone )
|
void MenuElements::TweenOffScreenToMenu( ScreenMessage smSendWhenDone )
|
||||||
{
|
{
|
||||||
|
m_MenuTimer.StopTimer();
|
||||||
TweenTopLayerOffScreen();
|
TweenTopLayerOffScreen();
|
||||||
m_KeepAlive.CloseWipingRight( smSendWhenDone );
|
m_KeepAlive.CloseWipingRight( smSendWhenDone );
|
||||||
m_soundSwoosh.Play();
|
m_soundSwoosh.Play();
|
||||||
@@ -187,6 +188,8 @@ void MenuElements::TweenOnScreenFromBlack( ScreenMessage smSendWhenDone )
|
|||||||
|
|
||||||
void MenuElements::TweenOffScreenToBlack( ScreenMessage smSendWhenDone, bool bPlayBackSound )
|
void MenuElements::TweenOffScreenToBlack( ScreenMessage smSendWhenDone, bool bPlayBackSound )
|
||||||
{
|
{
|
||||||
|
m_MenuTimer.StopTimer();
|
||||||
|
|
||||||
if( !bPlayBackSound )
|
if( !bPlayBackSound )
|
||||||
{
|
{
|
||||||
TweenTopLayerOffScreen();
|
TweenTopLayerOffScreen();
|
||||||
|
|||||||
@@ -28,84 +28,57 @@
|
|||||||
#define BANNER_Y THEME->GetMetricF("ScreenEvaluation","BannerY")
|
#define BANNER_Y THEME->GetMetricF("ScreenEvaluation","BannerY")
|
||||||
#define STAGE_X THEME->GetMetricF("ScreenEvaluation","StageX")
|
#define STAGE_X THEME->GetMetricF("ScreenEvaluation","StageX")
|
||||||
#define STAGE_Y THEME->GetMetricF("ScreenEvaluation","StageY")
|
#define STAGE_Y THEME->GetMetricF("ScreenEvaluation","StageY")
|
||||||
#define GRADE_P1_X THEME->GetMetricF("ScreenEvaluation","GradeP1X")
|
#define GRADE_X( p ) THEME->GetMetricF("ScreenEvaluation",ssprintf("GradeP%dX",p+1))
|
||||||
#define GRADE_P2_X THEME->GetMetricF("ScreenEvaluation","GradeP2X")
|
|
||||||
#define GRADE_Y THEME->GetMetricF("ScreenEvaluation","GradeY")
|
#define GRADE_Y THEME->GetMetricF("ScreenEvaluation","GradeY")
|
||||||
#define PERCENT_BASE_P1_X THEME->GetMetricF("ScreenEvaluation","PercentBaseP1X")
|
#define PERCENT_BASE_X( p ) THEME->GetMetricF("ScreenEvaluation",ssprintf("PercentBaseP%dX",p+1))
|
||||||
#define PERCENT_BASE_P2_X THEME->GetMetricF("ScreenEvaluation","PercentBaseP2X")
|
|
||||||
#define PERCENT_BASE_Y THEME->GetMetricF("ScreenEvaluation","PercentBaseY")
|
#define PERCENT_BASE_Y THEME->GetMetricF("ScreenEvaluation","PercentBaseY")
|
||||||
#define JUDGE_LABELS_X THEME->GetMetricF("ScreenEvaluation","JudgeLabelsX")
|
#define JUDGE_LABELS_X THEME->GetMetricF("ScreenEvaluation","JudgeLabelsX")
|
||||||
#define PERFECT_P1_X THEME->GetMetricF("ScreenEvaluation","PerfectP1X")
|
#define PERFECT_X( p ) THEME->GetMetricF("ScreenEvaluation",ssprintf("PerfectP%dX",p+1))
|
||||||
#define PERFECT_P2_X THEME->GetMetricF("ScreenEvaluation","PerfectP2X")
|
|
||||||
#define PERFECT_Y THEME->GetMetricF("ScreenEvaluation","PerfectY")
|
#define PERFECT_Y THEME->GetMetricF("ScreenEvaluation","PerfectY")
|
||||||
#define GREAT_P1_X THEME->GetMetricF("ScreenEvaluation","GreatP1X")
|
#define GREAT_X( p ) THEME->GetMetricF("ScreenEvaluation",ssprintf("GreatP%dX",p+1))
|
||||||
#define GREAT_P2_X THEME->GetMetricF("ScreenEvaluation","GreatP2X")
|
|
||||||
#define GREAT_Y THEME->GetMetricF("ScreenEvaluation","GreatY")
|
#define GREAT_Y THEME->GetMetricF("ScreenEvaluation","GreatY")
|
||||||
#define GOOD_P1_X THEME->GetMetricF("ScreenEvaluation","GoodP1X")
|
#define GOOD_X( p ) THEME->GetMetricF("ScreenEvaluation",ssprintf("GoodP%dX",p+1))
|
||||||
#define GOOD_P2_X THEME->GetMetricF("ScreenEvaluation","GoodP2X")
|
|
||||||
#define GOOD_Y THEME->GetMetricF("ScreenEvaluation","GoodY")
|
#define GOOD_Y THEME->GetMetricF("ScreenEvaluation","GoodY")
|
||||||
#define BOO_P1_X THEME->GetMetricF("ScreenEvaluation","BooP1X")
|
#define BOO_X( p ) THEME->GetMetricF("ScreenEvaluation",ssprintf("BooP%dX",p+1))
|
||||||
#define BOO_P2_X THEME->GetMetricF("ScreenEvaluation","BooP2X")
|
|
||||||
#define BOO_Y THEME->GetMetricF("ScreenEvaluation","BooY")
|
#define BOO_Y THEME->GetMetricF("ScreenEvaluation","BooY")
|
||||||
#define MISS_P1_X THEME->GetMetricF("ScreenEvaluation","MissP1X")
|
#define MISS_X( p ) THEME->GetMetricF("ScreenEvaluation",ssprintf("MissP%dX",p+1))
|
||||||
#define MISS_P2_X THEME->GetMetricF("ScreenEvaluation","MissP2X")
|
|
||||||
#define MISS_Y THEME->GetMetricF("ScreenEvaluation","MissY")
|
#define MISS_Y THEME->GetMetricF("ScreenEvaluation","MissY")
|
||||||
#define OK_P1_X THEME->GetMetricF("ScreenEvaluation","OKP1X")
|
#define OK_X( p ) THEME->GetMetricF("ScreenEvaluation",ssprintf("OKP%dX",p+1))
|
||||||
#define OK_P2_X THEME->GetMetricF("ScreenEvaluation","OKP2X")
|
|
||||||
#define OK_Y THEME->GetMetricF("ScreenEvaluation","OKY")
|
#define OK_Y THEME->GetMetricF("ScreenEvaluation","OKY")
|
||||||
#define MAX_COMBO_P1_X THEME->GetMetricF("ScreenEvaluation","MaxComboP1X")
|
#define MAX_COMBO_X( p ) THEME->GetMetricF("ScreenEvaluation",ssprintf("MaxComboP%dX",p+1))
|
||||||
#define MAX_COMBO_P2_X THEME->GetMetricF("ScreenEvaluation","MaxComboP2X")
|
|
||||||
#define MAX_COMBO_Y THEME->GetMetricF("ScreenEvaluation","MaxComboY")
|
#define MAX_COMBO_Y THEME->GetMetricF("ScreenEvaluation","MaxComboY")
|
||||||
#define SCORE_LABELS_X THEME->GetMetricF("ScreenEvaluation","ScoreLabelsX")
|
#define SCORE_LABELS_X THEME->GetMetricF("ScreenEvaluation","ScoreLabelsX")
|
||||||
#define SCORE_NUMBERS_P1_X THEME->GetMetricF("ScreenEvaluation","ScoreNumbersP1X")
|
#define SCORE_NUMBERS_X( p ) THEME->GetMetricF("ScreenEvaluation",ssprintf("ScoreNumbersP%dX",p+1))
|
||||||
#define SCORE_NUMBERS_P2_X THEME->GetMetricF("ScreenEvaluation","ScoreNumbersP2X")
|
|
||||||
#define SCORE_Y THEME->GetMetricF("ScreenEvaluation","ScoreY")
|
#define SCORE_Y THEME->GetMetricF("ScreenEvaluation","ScoreY")
|
||||||
#define BONUS_P1_X THEME->GetMetricF("ScreenEvaluation","BonusP1X")
|
#define BONUS_X( p ) THEME->GetMetricF("ScreenEvaluation",ssprintf("BonusP%dX",p+1))
|
||||||
#define BONUS_P2_X THEME->GetMetricF("ScreenEvaluation","BonusP2X")
|
|
||||||
#define BONUS_Y THEME->GetMetricF("ScreenEvaluation","BonusY")
|
#define BONUS_Y THEME->GetMetricF("ScreenEvaluation","BonusY")
|
||||||
#define BAR_P1_BASE_X THEME->GetMetricF("ScreenEvaluation","BarP1BaseX")
|
#define BAR_BASE_X( p ) THEME->GetMetricF("ScreenEvaluation",ssprintf("BarP%dBaseX",p+1))
|
||||||
#define BAR_P2_BASE_X THEME->GetMetricF("ScreenEvaluation","BarP2BaseX")
|
#define BAR_ROTATION( p ) THEME->GetMetricF("ScreenEvaluation",ssprintf("BarP%dRotation",p+1))
|
||||||
#define BAR_P1_ROTATION THEME->GetMetricF("ScreenEvaluation","BarP1Rotation")
|
|
||||||
#define BAR_P2_ROTATION THEME->GetMetricF("ScreenEvaluation","BarP2Rotation")
|
|
||||||
#define BAR_START_Y THEME->GetMetricF("ScreenEvaluation","BarStartY")
|
#define BAR_START_Y THEME->GetMetricF("ScreenEvaluation","BarStartY")
|
||||||
#define BAR_SPACING_Y THEME->GetMetricF("ScreenEvaluation","BarSpacingY")
|
#define BAR_SPACING_Y THEME->GetMetricF("ScreenEvaluation","BarSpacingY")
|
||||||
#define BAR_WIDTH THEME->GetMetricF("ScreenEvaluation","BarWidth")
|
#define BAR_WIDTH THEME->GetMetricF("ScreenEvaluation","BarWidth")
|
||||||
#define BAR_HEIGHT THEME->GetMetricF("ScreenEvaluation","BarHeight")
|
#define BAR_HEIGHT THEME->GetMetricF("ScreenEvaluation","BarHeight")
|
||||||
#define SONGS_SURVIVED_P1_X THEME->GetMetricF("ScreenEvaluation","SongsSurvivedP1X")
|
#define SONGS_SURVIVED_X( p ) THEME->GetMetricF("ScreenEvaluation",ssprintf("SongsSurvivedP%dX",p+1))
|
||||||
#define SONGS_SURVIVED_P2_X THEME->GetMetricF("ScreenEvaluation","SongsSurvivedP2X")
|
|
||||||
#define SONGS_SURVIVED_Y THEME->GetMetricF("ScreenEvaluation","SongsSurvivedY")
|
#define SONGS_SURVIVED_Y THEME->GetMetricF("ScreenEvaluation","SongsSurvivedY")
|
||||||
#define NEW_RECORD_P1_X THEME->GetMetricF("ScreenEvaluation","NewRecordP1X")
|
#define NEW_RECORD_X( p ) THEME->GetMetricF("ScreenEvaluation",ssprintf("NewRecordP%dX",p+1))
|
||||||
#define NEW_RECORD_P2_X THEME->GetMetricF("ScreenEvaluation","NewRecordP2X")
|
|
||||||
#define NEW_RECORD_Y THEME->GetMetricF("ScreenEvaluation","NewRecordY")
|
#define NEW_RECORD_Y THEME->GetMetricF("ScreenEvaluation","NewRecordY")
|
||||||
#define TRY_EXTRA_STAGE_X THEME->GetMetricF("ScreenEvaluation","TryExtraStageX")
|
#define TRY_EXTRA_STAGE_X THEME->GetMetricF("ScreenEvaluation","TryExtraStageX")
|
||||||
#define TRY_EXTRA_STAGE_Y THEME->GetMetricF("ScreenEvaluation","TryExtraStageY")
|
#define TRY_EXTRA_STAGE_Y THEME->GetMetricF("ScreenEvaluation","TryExtraStageY")
|
||||||
#define HELP_TEXT THEME->GetMetric("ScreenEvaluation","HelpText")
|
#define HELP_TEXT THEME->GetMetric("ScreenEvaluation","HelpText")
|
||||||
#define TIMER_SECONDS THEME->GetMetricI("ScreenEvaluation","TimerSeconds")
|
#define TIMER_SECONDS THEME->GetMetricI("ScreenEvaluation","TimerSeconds")
|
||||||
#define SPIN_GRADES THEME->GetMetricB("ScreenEvaluation","SpinGrades")
|
#define SPIN_GRADES THEME->GetMetricB("ScreenEvaluation","SpinGrades")
|
||||||
|
#define GRADES_GLOW_COLOR_1 THEME->GetMetricC("ScreenEvaluation","GradesGlowColor1")
|
||||||
|
#define GRADES_GLOW_COLOR_2 THEME->GetMetricC("ScreenEvaluation","GradesGlowColor2")
|
||||||
|
|
||||||
float GRADE_X( int p ) {
|
|
||||||
switch( p ) {
|
|
||||||
case PLAYER_1: return GRADE_P1_X;
|
|
||||||
case PLAYER_2: return GRADE_P2_X;
|
|
||||||
default: ASSERT(0); return 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
float PERCENT_BASE_X( int p ) {
|
|
||||||
switch( p ) {
|
|
||||||
case PLAYER_1: return PERCENT_BASE_P1_X;
|
|
||||||
case PLAYER_2: return PERCENT_BASE_P2_X;
|
|
||||||
default: ASSERT(0); return 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
float JUDGE_X( int p, int l ) {
|
float JUDGE_X( int p, int l ) {
|
||||||
switch( l ) {
|
switch( l ) {
|
||||||
case 0: return p==PLAYER_1 ? PERFECT_P1_X : PERFECT_P2_X;
|
case 0: return PERFECT_X(p);
|
||||||
case 1: return p==PLAYER_1 ? GREAT_P1_X : GREAT_P2_X;
|
case 1: return GREAT_X(p);
|
||||||
case 2: return p==PLAYER_1 ? GOOD_P1_X : GOOD_P2_X;
|
case 2: return GOOD_X(p);
|
||||||
case 3: return p==PLAYER_1 ? BOO_P1_X : BOO_P2_X;
|
case 3: return BOO_X(p);
|
||||||
case 4: return p==PLAYER_1 ? MISS_P1_X : MISS_P2_X;
|
case 4: return MISS_X(p);
|
||||||
case 5: return p==PLAYER_1 ? OK_P1_X : OK_P2_X;
|
case 5: return OK_X(p);
|
||||||
case 6: return p==PLAYER_1 ? MAX_COMBO_P1_X : MAX_COMBO_P2_X;
|
case 6: return MAX_COMBO_X(p);
|
||||||
default: ASSERT(0); return 0;
|
default: ASSERT(0); return 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -121,48 +94,6 @@ float JUDGE_Y( int l ) {
|
|||||||
default: ASSERT(0); return 0;
|
default: ASSERT(0); return 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
float SCORE_NUMBERS_X( int p ) {
|
|
||||||
switch( p ) {
|
|
||||||
case PLAYER_1: return SCORE_NUMBERS_P1_X;
|
|
||||||
case PLAYER_2: return SCORE_NUMBERS_P2_X;
|
|
||||||
default: ASSERT(0); return 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
float BONUS_X( int p ) {
|
|
||||||
switch( p ) {
|
|
||||||
case PLAYER_1: return BONUS_P1_X;
|
|
||||||
case PLAYER_2: return BONUS_P2_X;
|
|
||||||
default: ASSERT(0); return 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
float BAR_BASE_X( int p ) {
|
|
||||||
switch( p ) {
|
|
||||||
case PLAYER_1: return BAR_P1_BASE_X;
|
|
||||||
case PLAYER_2: return BAR_P2_BASE_X;
|
|
||||||
default: ASSERT(0); return 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
float BAR_ROTATION( int p ) {
|
|
||||||
switch( p ) {
|
|
||||||
case PLAYER_1: return BAR_P1_ROTATION;
|
|
||||||
case PLAYER_2: return BAR_P2_ROTATION;
|
|
||||||
default: ASSERT(0); return 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
float SONGS_SURVIVED_X( int p ) {
|
|
||||||
switch( p ) {
|
|
||||||
case PLAYER_1: return SONGS_SURVIVED_P1_X;
|
|
||||||
case PLAYER_2: return SONGS_SURVIVED_P2_X;
|
|
||||||
default: ASSERT(0); return 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
float NEW_RECORD_X( int p ) {
|
|
||||||
switch( p ) {
|
|
||||||
case PLAYER_1: return NEW_RECORD_P1_X;
|
|
||||||
case PLAYER_2: return NEW_RECORD_P2_X;
|
|
||||||
default: ASSERT(0); return 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
const ScreenMessage SM_GoToSelectMusic = ScreenMessage(SM_User+1);
|
const ScreenMessage SM_GoToSelectMusic = ScreenMessage(SM_User+1);
|
||||||
const ScreenMessage SM_GoToSelectCourse = ScreenMessage(SM_User+2);
|
const ScreenMessage SM_GoToSelectCourse = ScreenMessage(SM_User+2);
|
||||||
@@ -539,7 +470,7 @@ ScreenEvaluation::ScreenEvaluation( bool bSummary )
|
|||||||
m_Grades[p].SetXY( GRADE_X(p), GRADE_Y );
|
m_Grades[p].SetXY( GRADE_X(p), GRADE_Y );
|
||||||
m_Grades[p].SetZ( -2 );
|
m_Grades[p].SetZ( -2 );
|
||||||
m_Grades[p].SetZoom( 1.0f );
|
m_Grades[p].SetZoom( 1.0f );
|
||||||
m_Grades[p].SetEffectGlowing( 1.0f );
|
m_Grades[p].SetEffectGlowing( 1.0f, GRADES_GLOW_COLOR_1, GRADES_GLOW_COLOR_2 );
|
||||||
if( SPIN_GRADES )
|
if( SPIN_GRADES )
|
||||||
m_Grades[p].SpinAndSettleOn( grade[p] );
|
m_Grades[p].SpinAndSettleOn( grade[p] );
|
||||||
else
|
else
|
||||||
|
|||||||
@@ -27,46 +27,14 @@ const ScreenMessage SM_GoToPrevScreen = ScreenMessage(SM_User + 1);
|
|||||||
const ScreenMessage SM_GoToNextScreen = ScreenMessage(SM_User + 2);
|
const ScreenMessage SM_GoToNextScreen = ScreenMessage(SM_User + 2);
|
||||||
|
|
||||||
|
|
||||||
#define CURSOR_P1_X THEME->GetMetricF("ScreenEz2SelectPlayer","CursorP1X")
|
#define CURSOR_X( p ) THEME->GetMetricF("ScreenEz2SelectPlayer",ssprintf("CursorP%dX",p+1))
|
||||||
#define CURSOR_P1_Y THEME->GetMetricF("ScreenEz2SelectPlayer","CursorP1Y")
|
#define CURSOR_Y( i ) THEME->GetMetricF("ScreenEz2SelectPlayer",ssprintf("CursorP%dY",i+1))
|
||||||
#define CURSOR_P2_X THEME->GetMetricF("ScreenEz2SelectPlayer","CursorP2X")
|
#define CONTROLLER_X( p ) THEME->GetMetricF("ScreenEz2SelectPlayer",ssprintf("ControllerP%dX",p+1))
|
||||||
#define CURSOR_P2_Y THEME->GetMetricF("ScreenEz2SelectPlayer","CursorP2Y")
|
#define CONTROLLER_Y( i ) THEME->GetMetricF("ScreenEz2SelectPlayer",ssprintf("ControllerP%dY",i+1))
|
||||||
#define CONTROLLER_P1_X THEME->GetMetricF("ScreenEz2SelectPlayer","ControllerP1X")
|
|
||||||
#define CONTROLLER_P1_Y THEME->GetMetricF("ScreenEz2SelectPlayer","ControllerP1Y")
|
|
||||||
#define CONTROLLER_P2_X THEME->GetMetricF("ScreenEz2SelectPlayer","ControllerP2X")
|
|
||||||
#define CONTROLLER_P2_Y THEME->GetMetricF("ScreenEz2SelectPlayer","ControllerP2Y")
|
|
||||||
#define HELP_TEXT THEME->GetMetric("ScreenEz2SelectPlayer","HelpText")
|
#define HELP_TEXT THEME->GetMetric("ScreenEz2SelectPlayer","HelpText")
|
||||||
#define TIMER_SECONDS THEME->GetMetricI("ScreenEz2SelectPlayer","TimerSeconds")
|
#define TIMER_SECONDS THEME->GetMetricI("ScreenEz2SelectPlayer","TimerSeconds")
|
||||||
#define NEXT_SCREEN THEME->GetMetric("ScreenEz2SelectPlayer","NextScreen")
|
#define NEXT_SCREEN THEME->GetMetric("ScreenEz2SelectPlayer","NextScreen")
|
||||||
|
|
||||||
float CURSOR_X( int p ) {
|
|
||||||
switch( p ) {
|
|
||||||
case PLAYER_1: return CURSOR_P1_X;
|
|
||||||
case PLAYER_2: return CURSOR_P2_X;
|
|
||||||
default: ASSERT(0); return 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
float CURSOR_Y( int p ) {
|
|
||||||
switch( p ) {
|
|
||||||
case PLAYER_1: return CURSOR_P1_Y;
|
|
||||||
case PLAYER_2: return CURSOR_P2_Y;
|
|
||||||
default: ASSERT(0); return 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
float CONTROLLER_X( int p ) {
|
|
||||||
switch( p ) {
|
|
||||||
case PLAYER_1: return CONTROLLER_P1_X;
|
|
||||||
case PLAYER_2: return CONTROLLER_P2_X;
|
|
||||||
default: ASSERT(0); return 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
float CONTROLLER_Y( int p ) {
|
|
||||||
switch( p ) {
|
|
||||||
case PLAYER_1: return CONTROLLER_P1_Y;
|
|
||||||
case PLAYER_2: return CONTROLLER_P2_Y;
|
|
||||||
default: ASSERT(0); return 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
const float TWEEN_TIME = 0.35f;
|
const float TWEEN_TIME = 0.35f;
|
||||||
|
|
||||||
@@ -235,7 +203,7 @@ void ScreenEz2SelectPlayer::MenuStart( PlayerNumber p )
|
|||||||
|
|
||||||
GAMESTATE->m_bSideIsJoined[p] = true;
|
GAMESTATE->m_bSideIsJoined[p] = true;
|
||||||
SCREENMAN->RefreshCreditsMessages();
|
SCREENMAN->RefreshCreditsMessages();
|
||||||
m_soundSelect.PlayRandom();
|
m_soundSelect.Play();
|
||||||
m_sprCursors[p].BeginTweening( 0.25f );
|
m_sprCursors[p].BeginTweening( 0.25f );
|
||||||
m_sprCursors[p].SetTweenZoomY( 0 );
|
m_sprCursors[p].SetTweenZoomY( 0 );
|
||||||
m_sprControllers[p].BeginTweening( 0.25f );
|
m_sprControllers[p].BeginTweening( 0.25f );
|
||||||
@@ -254,7 +222,7 @@ void ScreenEz2SelectPlayer::MenuStart( PlayerNumber p )
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
// give the other player a little time to join
|
// give the other player a little time to join
|
||||||
m_Menu.SetTimer( 5 );
|
m_Menu.SetTimer( 3 );
|
||||||
m_Menu.StartTimer();
|
m_Menu.StartTimer();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,11 +9,7 @@ Andrew Livy
|
|||||||
|
|
||||||
#include "Screen.h"
|
#include "Screen.h"
|
||||||
#include "Sprite.h"
|
#include "Sprite.h"
|
||||||
#include "BitmapText.h"
|
#include "RageSoundSample.h"
|
||||||
#include "TransitionFade.h"
|
|
||||||
#include "Quad.h"
|
|
||||||
#include "RandomSample.h"
|
|
||||||
#include "Quad.h"
|
|
||||||
#include "MenuElements.h"
|
#include "MenuElements.h"
|
||||||
|
|
||||||
|
|
||||||
@@ -42,5 +38,5 @@ private:
|
|||||||
|
|
||||||
MenuElements m_Menu;
|
MenuElements m_Menu;
|
||||||
|
|
||||||
RandomSample m_soundSelect;
|
RageSoundSample m_soundSelect;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -4,9 +4,6 @@ ScreenEzSelectPlayer,cpp
|
|||||||
Desc: See Header
|
Desc: See Header
|
||||||
Copyright (C):
|
Copyright (C):
|
||||||
Andrew Livy
|
Andrew Livy
|
||||||
|
|
||||||
NOTES: Although cleaner, can still do with
|
|
||||||
a polish :)
|
|
||||||
*****************************************/
|
*****************************************/
|
||||||
|
|
||||||
/* Includes */
|
/* Includes */
|
||||||
@@ -20,51 +17,29 @@ a polish :)
|
|||||||
#include "GameManager.h"
|
#include "GameManager.h"
|
||||||
#include "RageLog.h"
|
#include "RageLog.h"
|
||||||
#include "AnnouncerManager.h"
|
#include "AnnouncerManager.h"
|
||||||
#include "GameConstantsAndTypes.h"
|
|
||||||
#include "Background.h"
|
|
||||||
#include "GameState.h"
|
#include "GameState.h"
|
||||||
#include "RageException.h"
|
#include "RageException.h"
|
||||||
#include "RageTimer.h"
|
#include "RageTimer.h"
|
||||||
|
#include "GameState.h"
|
||||||
|
|
||||||
/* Constants */
|
/* Constants */
|
||||||
|
|
||||||
#define HELP_TEXT THEME->GetMetric("ScreenEz2SelectStyle","HelpText")
|
|
||||||
#define TIMER_SECONDS THEME->GetMetricI("ScreenEz2SelectStyle","TimerSeconds")
|
|
||||||
#define NEXT_SCREEN THEME->GetMetric("ScreenEz2SelectStyle","NextScreen")
|
|
||||||
|
|
||||||
|
|
||||||
const ScreenMessage SM_GoToPrevScreen = ScreenMessage(SM_User + 1);
|
const ScreenMessage SM_GoToPrevScreen = ScreenMessage(SM_User + 1);
|
||||||
const ScreenMessage SM_GoToNextScreen = ScreenMessage(SM_User + 2);
|
const ScreenMessage SM_GoToNextScreen = ScreenMessage(SM_User + 2);
|
||||||
|
|
||||||
|
|
||||||
enum DStyles {
|
#define CURSOR_X( p ) THEME->GetMetricF("ScreenEz2SelectStyle",ssprintf("CursorP%dX",p+1))
|
||||||
DS_EASY,
|
#define CURSOR_Y( i ) THEME->GetMetricF("ScreenEz2SelectStyle",ssprintf("CursorP%dY",i+1))
|
||||||
DS_HARD,
|
#define CONTROLLER_X( p ) THEME->GetMetricF("ScreenEz2SelectStyle",ssprintf("ControllerP%dX",p+1))
|
||||||
DS_REAL,
|
#define CONTROLLER_Y( i ) THEME->GetMetricF("ScreenEz2SelectStyle",ssprintf("ControllerP%dY",i+1))
|
||||||
DS_CLUB
|
#define HELP_TEXT THEME->GetMetric("ScreenEz2SelectStyle","HelpText")
|
||||||
};
|
#define TIMER_SECONDS THEME->GetMetricI("ScreenEz2SelectStyle","TimerSeconds")
|
||||||
|
#define NEXT_SCREEN THEME->GetMetric("ScreenEz2SelectStyle","NextScreen")
|
||||||
const float OPT_X[NUM_EZ2STYLE_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_EZ2STYLE_GRAPHICS] = {
|
|
||||||
CENTER_Y+130,
|
|
||||||
CENTER_Y+130,
|
|
||||||
CENTER_Y+115,
|
|
||||||
CENTER_Y+115,
|
|
||||||
}; // tells us the default Y position
|
|
||||||
|
|
||||||
|
|
||||||
const float TWEEN_TIME = 0.35f;
|
const float TWEEN_TIME = 0.35f;
|
||||||
|
|
||||||
|
|
||||||
float ez2p_lasttimercheck[2];
|
|
||||||
int ez2p_bounce=0; // used for the bouncing of the '1p' and '2p' images
|
|
||||||
int ez2p_direct=0; // direction of the bouncing of the '1p' and '2p' images
|
|
||||||
|
|
||||||
/************************************
|
/************************************
|
||||||
ScreenEz2SelectStyle (Constructor)
|
ScreenEz2SelectStyle (Constructor)
|
||||||
Desc: Sets up the screen display
|
Desc: Sets up the screen display
|
||||||
@@ -74,76 +49,30 @@ ScreenEz2SelectStyle::ScreenEz2SelectStyle()
|
|||||||
{
|
{
|
||||||
LOG->Trace( "ScreenEz2SelectStyle::ScreenEz2SelectStyle()" );
|
LOG->Trace( "ScreenEz2SelectStyle::ScreenEz2SelectStyle()" );
|
||||||
|
|
||||||
m_iSelectedStyle=DS_EASY; // start on EASY
|
|
||||||
|
|
||||||
// Load in the sprites we will be working with.
|
GAMESTATE->m_PlayMode = PLAY_MODE_ARCADE; // the only mode you can select on this screen
|
||||||
for( int i=0; i<NUM_EZ2STYLE_GRAPHICS; i++ )
|
|
||||||
|
|
||||||
|
m_ScrollingList.SetXY( CENTER_X, CENTER_Y );
|
||||||
|
m_ScrollingList.SetSpacing( 400 );
|
||||||
|
m_ScrollingList.SetNumberVisible( 5 );
|
||||||
|
this->AddSubActor( &m_ScrollingList );
|
||||||
|
|
||||||
|
for( int p=0; p<NUM_PLAYERS; p++ )
|
||||||
{
|
{
|
||||||
m_sprBackground[i].Load( THEME->GetPathTo("Graphics",ssprintf("select style preview game %d style %d",GAMESTATE->m_CurGame,i)) );
|
if( GAMESTATE->m_bSideIsJoined[p] ) // if side is already joined
|
||||||
m_sprBackground[i].SetXY( CENTER_X, CENTER_Y );
|
continue; // don't show bobbing join and blob
|
||||||
m_sprBackground[i].SetZoom( 1 );
|
|
||||||
this->AddSubActor( &m_sprBackground[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] );
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Setup The 1Player Scrolling List */
|
|
||||||
m_ScrList.SetNumberVisibleElements( 3 );
|
|
||||||
m_ScrList.CreateNewElement( "select style info game 2 style 1" );
|
|
||||||
m_ScrList.CreateNewElement( "select style info game 2 style 2" );
|
|
||||||
m_ScrList.CreateNewElement( "select style info game 2 style 3" );
|
|
||||||
m_ScrList.CreateNewElement( "select style info game 2 style 0" ); // Excess so that the user is tricked into thinking
|
|
||||||
m_ScrList.CreateNewElement( "select style info game 2 style 1" ); // the list is infinite
|
|
||||||
m_ScrList.CreateNewElement( "select style info game 2 style 2" );
|
|
||||||
m_ScrList.CreateNewElement( "select style info game 2 style 3" );
|
|
||||||
m_ScrList.CreateNewElement( "select style info game 2 style 0" );
|
|
||||||
m_ScrList.CreateNewElement( "select style info game 2 style 1" );
|
|
||||||
m_ScrList.CreateNewElement( "select style info game 2 style 2" );
|
|
||||||
m_ScrList.CreateNewElement( "select style info game 2 style 3" );
|
|
||||||
m_ScrList.CreateNewElement( "select style info game 2 style 0" );
|
|
||||||
m_ScrList.SetXY(CENTER_X, CENTER_Y);
|
|
||||||
m_ScrList.SetCurrentPosition( DS_EASY );
|
|
||||||
|
|
||||||
/* Setup the 2Player Scrolling List */
|
|
||||||
m_ScrList_2ply.SetNumberVisibleElements( 3 );
|
|
||||||
m_ScrList_2ply.CreateNewElement( "select style info game 2 style 1" );
|
|
||||||
m_ScrList_2ply.CreateNewElement( "select style info game 2 style 2" );
|
|
||||||
m_ScrList_2ply.CreateNewElement( "select style info game 2 style 3" ); // Excess so that the user is tricked into thinking
|
|
||||||
m_ScrList_2ply.CreateNewElement( "select style info game 2 style 1" ); // the list is infinite
|
|
||||||
m_ScrList_2ply.CreateNewElement( "select style info game 2 style 2" );
|
|
||||||
m_ScrList_2ply.CreateNewElement( "select style info game 2 style 3" );
|
|
||||||
m_ScrList_2ply.CreateNewElement( "select style info game 2 style 1" );
|
|
||||||
m_ScrList_2ply.CreateNewElement( "select style info game 2 style 2" );
|
|
||||||
m_ScrList_2ply.CreateNewElement( "select style info game 2 style 3" );
|
|
||||||
m_ScrList_2ply.SetXY(CENTER_X, CENTER_Y);
|
|
||||||
m_ScrList_2ply.SetCurrentPosition( DS_EASY );
|
|
||||||
|
|
||||||
this->AddSubActor( &m_ScrList );
|
|
||||||
this->AddSubActor( &m_ScrList_2ply );
|
|
||||||
|
|
||||||
// figure out on load which list we should put up.
|
|
||||||
if (GAMESTATE->m_CurStyle == STYLE_EZ2_SINGLE_VERSUS) // if we are using two players
|
|
||||||
{
|
|
||||||
m_ScrList.SetZoom( 0 ); // Hide the list for just 1 player
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
m_ScrList_2ply.SetZoom( 0 ); // Otherwise hide the 2 player list.
|
|
||||||
}
|
|
||||||
|
|
||||||
// Load in the sprites we will be working with.
|
|
||||||
for( i=0; i<NUM_EZ2STYLE_GRAPHICS; i++ )
|
|
||||||
{
|
|
||||||
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_Menu.Load(
|
m_Menu.Load(
|
||||||
THEME->GetPathTo("Graphics","select style background"),
|
THEME->GetPathTo("Graphics","select style background"),
|
||||||
@@ -153,11 +82,15 @@ ScreenEz2SelectStyle::ScreenEz2SelectStyle()
|
|||||||
this->AddSubActor( &m_Menu );
|
this->AddSubActor( &m_Menu );
|
||||||
|
|
||||||
m_soundSelect.Load( THEME->GetPathTo("Sounds","menu start") );
|
m_soundSelect.Load( THEME->GetPathTo("Sounds","menu start") );
|
||||||
|
m_soundChange.Load( THEME->GetPathTo("Sounds","select style change") );
|
||||||
|
|
||||||
GAMESTATE->m_bPlayersCanJoin = true;
|
SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo("select style intro") );
|
||||||
|
|
||||||
MUSIC->LoadAndPlayIfNotAlready( THEME->GetPathTo("Sounds","select style music") );
|
MUSIC->LoadAndPlayIfNotAlready( THEME->GetPathTo("Sounds","select style music") );
|
||||||
|
|
||||||
|
RefreshStylesAndList();
|
||||||
|
|
||||||
|
TweenOnScreen();
|
||||||
m_Menu.TweenOnScreenFromBlack( SM_None );
|
m_Menu.TweenOnScreenFromBlack( SM_None );
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -171,6 +104,14 @@ ScreenEz2SelectStyle::~ScreenEz2SelectStyle()
|
|||||||
LOG->Trace( "ScreenEz2SelectStyle::~ScreenEz2SelectStyle()" );
|
LOG->Trace( "ScreenEz2SelectStyle::~ScreenEz2SelectStyle()" );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/************************************
|
||||||
|
Update
|
||||||
|
Desc: Animates the 1p/2p selection
|
||||||
|
************************************/
|
||||||
|
void ScreenEz2SelectStyle::Update( float fDeltaTime )
|
||||||
|
{
|
||||||
|
Screen::Update( fDeltaTime );
|
||||||
|
}
|
||||||
|
|
||||||
/************************************
|
/************************************
|
||||||
DrawPrimitives
|
DrawPrimitives
|
||||||
@@ -179,17 +120,9 @@ Desc: Draws the screen =P
|
|||||||
|
|
||||||
void ScreenEz2SelectStyle::DrawPrimitives()
|
void ScreenEz2SelectStyle::DrawPrimitives()
|
||||||
{
|
{
|
||||||
/* if (m_iSelectedPlayer != 2) // no need to animate graphics if we have no graphics to animate ;)
|
|
||||||
{
|
|
||||||
AnimateGraphics();
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
AnimateBackground();
|
|
||||||
|
|
||||||
m_Menu.DrawBottomLayer();
|
m_Menu.DrawBottomLayer();
|
||||||
Screen::DrawPrimitives();
|
Screen::DrawPrimitives();
|
||||||
m_Menu.DrawTopLayer();
|
m_Menu.DrawTopLayer();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/************************************
|
/************************************
|
||||||
@@ -218,9 +151,21 @@ void ScreenEz2SelectStyle::HandleScreenMessage( const ScreenMessage SM )
|
|||||||
switch( SM )
|
switch( SM )
|
||||||
{
|
{
|
||||||
case SM_MenuTimer:
|
case SM_MenuTimer:
|
||||||
m_soundSelect.PlayRandom();
|
{
|
||||||
GAMESTATE->m_PlayMode = PLAY_MODE_ARCADE;
|
bool bAtLeastOneJoined = false;
|
||||||
this->SendScreenMessage( SM_GoToNextScreen, 0 );
|
for( int p=0; p<NUM_PLAYERS; p++ )
|
||||||
|
if( GAMESTATE->m_bSideIsJoined[p] )
|
||||||
|
bAtLeastOneJoined = true;
|
||||||
|
|
||||||
|
if( !bAtLeastOneJoined )
|
||||||
|
{
|
||||||
|
MenuStart(PLAYER_1);
|
||||||
|
m_Menu.StopTimer();
|
||||||
|
}
|
||||||
|
|
||||||
|
TweenOffScreen();
|
||||||
|
m_Menu.TweenOffScreenToMenu( SM_GoToNextScreen );
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case SM_GoToPrevScreen:
|
case SM_GoToPrevScreen:
|
||||||
MUSIC->Stop();
|
MUSIC->Stop();
|
||||||
@@ -232,23 +177,72 @@ void ScreenEz2SelectStyle::HandleScreenMessage( const ScreenMessage SM )
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void ScreenEz2SelectStyle::RefreshStylesAndList()
|
||||||
|
{
|
||||||
|
GAMEMAN->GetGameplayStylesForGame( GAMESTATE->m_CurGame, m_aPossibleStyles );
|
||||||
|
ASSERT( m_aPossibleStyles.GetSize() > 0 ); // every game should have at least one Style, or else why have the Game? :-)
|
||||||
|
|
||||||
|
// strip out Styles that don't work for the current number of players
|
||||||
|
int iNumSidesJoined = 0;
|
||||||
|
for( int c=0; c<2; c++ )
|
||||||
|
if( GAMESTATE->m_bSideIsJoined[c] )
|
||||||
|
iNumSidesJoined++; // left side, and right side
|
||||||
|
|
||||||
|
for( int i=m_aPossibleStyles.GetSize()-1; i>=0; i-- )
|
||||||
|
{
|
||||||
|
Style style = m_aPossibleStyles[i];
|
||||||
|
|
||||||
|
switch( GAMEMAN->GetStyleDefForStyle(style)->m_StyleType )
|
||||||
|
{
|
||||||
|
case StyleDef::ONE_PLAYER_ONE_CREDIT:
|
||||||
|
if( iNumSidesJoined!=1 )
|
||||||
|
m_aPossibleStyles.RemoveAt( i );
|
||||||
|
break;
|
||||||
|
case StyleDef::ONE_PLAYER_TWO_CREDITS:
|
||||||
|
case StyleDef::TWO_PLAYERS_TWO_CREDITS:
|
||||||
|
if( iNumSidesJoined!=2 )
|
||||||
|
m_aPossibleStyles.RemoveAt( i );
|
||||||
|
break;
|
||||||
|
default: ASSERT(0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
CStringArray asGraphicPaths;
|
||||||
|
for( int i=0; i<m_aPossibleStyles.GetSize(); i++ )
|
||||||
|
{
|
||||||
|
Style style = m_aPossibleStyles[i];
|
||||||
|
CString sGameName = GAMESTATE->GetCurrentGameDef()->m_szName;
|
||||||
|
CString sStyleName = GAMEMAN->GetStyleDefForStyle(style)->m_szName;
|
||||||
|
|
||||||
|
asGraphicPaths.Add( THEME->GetPathTo("Graphics",ssprintf("select style info %s %s",sGameName,sStyleName)) );
|
||||||
|
}
|
||||||
|
m_ScrollingList.Load( asGraphicPaths );
|
||||||
|
}
|
||||||
|
|
||||||
/************************************
|
/************************************
|
||||||
MenuBack
|
MenuBack
|
||||||
Desc: Actions performed when a player
|
Desc: Actions performed when a player
|
||||||
presses the button bound to back
|
presses the button bound to back
|
||||||
************************************/
|
************************************/
|
||||||
|
|
||||||
void ScreenEz2SelectStyle::MenuBack( PlayerNumber p )
|
void ScreenEz2SelectStyle::MenuBack( PlayerNumber p )
|
||||||
{
|
{
|
||||||
MUSIC->Stop();
|
MUSIC->Stop();
|
||||||
|
|
||||||
m_Menu.TweenOffScreenToBlack( SM_GoToPrevScreen, 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_GoToPrevScreen );
|
|
||||||
|
|
||||||
// TweenOffScreen();
|
|
||||||
|
void ScreenEz2SelectStyle::MenuLeft( PlayerNumber p )
|
||||||
|
{
|
||||||
|
m_ScrollingList.Left();
|
||||||
|
m_soundChange.Play();
|
||||||
|
}
|
||||||
|
|
||||||
|
void ScreenEz2SelectStyle::MenuRight( PlayerNumber p )
|
||||||
|
{
|
||||||
|
m_ScrollingList.Right();
|
||||||
|
m_soundChange.Play();
|
||||||
}
|
}
|
||||||
|
|
||||||
/************************************
|
/************************************
|
||||||
@@ -256,67 +250,14 @@ MenuDown
|
|||||||
Desc: Actions performed when a player
|
Desc: Actions performed when a player
|
||||||
presses the button bound to down
|
presses the button bound to down
|
||||||
************************************/
|
************************************/
|
||||||
|
|
||||||
void ScreenEz2SelectStyle::MenuDown( PlayerNumber p )
|
void ScreenEz2SelectStyle::MenuDown( PlayerNumber p )
|
||||||
{
|
{
|
||||||
|
if( GAMESTATE->m_bSideIsJoined[p] ) // already joined
|
||||||
|
return; // ignore
|
||||||
|
|
||||||
MenuStart( p );
|
MenuStart( p );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/************************************
|
|
||||||
SetFadedStyles
|
|
||||||
Desc: Fades out non-highlighted items
|
|
||||||
depending on the users choice.
|
|
||||||
************************************/
|
|
||||||
void ScreenEz2SelectStyle::SetFadedStyles()
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
/************************************
|
|
||||||
MenuRight
|
|
||||||
Desc: Actions performed when a player
|
|
||||||
presses the button bound to right
|
|
||||||
************************************/
|
|
||||||
void ScreenEz2SelectStyle::MenuRight( PlayerNumber p )
|
|
||||||
{
|
|
||||||
m_ScrList.ShiftRight();
|
|
||||||
if (m_iSelectedStyle == 3) // wrap around
|
|
||||||
m_iSelectedStyle = 0;
|
|
||||||
else
|
|
||||||
m_iSelectedStyle++;
|
|
||||||
|
|
||||||
switch (m_iSelectedStyle)
|
|
||||||
{
|
|
||||||
case DS_EASY: GAMESTATE->m_CurStyle = STYLE_EZ2_SINGLE; break;
|
|
||||||
case DS_HARD: GAMESTATE->m_CurStyle = STYLE_EZ2_SINGLE_HARD; break;
|
|
||||||
case DS_REAL: GAMESTATE->m_CurStyle = STYLE_EZ2_REAL; break;
|
|
||||||
case DS_CLUB: GAMESTATE->m_CurStyle = STYLE_EZ2_DOUBLE; break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/************************************
|
|
||||||
MenuLeft
|
|
||||||
Desc: Actions performed when a player
|
|
||||||
presses the button bound to left
|
|
||||||
************************************/
|
|
||||||
void ScreenEz2SelectStyle::MenuLeft( PlayerNumber p )
|
|
||||||
{
|
|
||||||
m_ScrList.ShiftLeft();
|
|
||||||
if (m_iSelectedStyle == 0) // wrap around
|
|
||||||
m_iSelectedStyle = 3;
|
|
||||||
else
|
|
||||||
m_iSelectedStyle--;
|
|
||||||
|
|
||||||
switch (m_iSelectedStyle)
|
|
||||||
{
|
|
||||||
case DS_EASY: GAMESTATE->m_CurStyle = STYLE_EZ2_SINGLE; break;
|
|
||||||
case DS_HARD: GAMESTATE->m_CurStyle = STYLE_EZ2_SINGLE_HARD; break;
|
|
||||||
case DS_REAL: GAMESTATE->m_CurStyle = STYLE_EZ2_REAL; break;
|
|
||||||
case DS_CLUB: GAMESTATE->m_CurStyle = STYLE_EZ2_DOUBLE; break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/************************************
|
/************************************
|
||||||
MenuStart
|
MenuStart
|
||||||
Desc: Actions performed when a player
|
Desc: Actions performed when a player
|
||||||
@@ -324,157 +265,66 @@ presses the button bound to start
|
|||||||
************************************/
|
************************************/
|
||||||
void ScreenEz2SelectStyle::MenuStart( PlayerNumber p )
|
void ScreenEz2SelectStyle::MenuStart( PlayerNumber p )
|
||||||
{
|
{
|
||||||
|
if( !GAMESTATE->m_bSideIsJoined[p] )
|
||||||
|
{
|
||||||
|
// join them
|
||||||
|
GAMESTATE->m_bSideIsJoined[p] = true;
|
||||||
|
SCREENMAN->RefreshCreditsMessages();
|
||||||
|
m_soundSelect.Play();
|
||||||
|
m_sprCursors[p].BeginTweening( 0.25f );
|
||||||
|
m_sprCursors[p].SetTweenZoomY( 0 );
|
||||||
|
m_sprControllers[p].BeginTweening( 0.25f );
|
||||||
|
m_sprControllers[p].SetTweenZoomY( 0 );
|
||||||
|
|
||||||
// if( p!=PLAYER_INVALID && !GAMESTATE->m_bIsJoined[p] )
|
RefreshStylesAndList();
|
||||||
// {
|
m_ScrollingList.SetSelection( 0 );
|
||||||
// SOUND->PlayOnceStreamed( THEME->GetPathTo("Sounds","menu start") );
|
}
|
||||||
// GAMESTATE->m_bIsJoined[p] = true;
|
else
|
||||||
// SCREENMAN->RefreshCreditsMessages();
|
{
|
||||||
// m_soundSelect.PlayRandom();
|
// made a selection
|
||||||
// return; // don't fall through
|
m_soundSelect.Play();
|
||||||
// }
|
GAMESTATE->m_CurStyle = m_aPossibleStyles[m_ScrollingList.GetSelection()];
|
||||||
|
TweenOffScreen();
|
||||||
m_soundSelect.PlayRandom();
|
|
||||||
this->ClearMessageQueue();
|
|
||||||
GAMESTATE->m_PlayMode = PLAY_MODE_ARCADE;
|
|
||||||
// GAMESTATE->m_bPlayersCanJoin = false;
|
|
||||||
|
|
||||||
CString sCurStyleName = GAMESTATE->GetCurrentStyleDef()->m_szName;
|
|
||||||
sCurStyleName.MakeLower();
|
|
||||||
if( -1!=sCurStyleName.Find("single") ) SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo("select style comment single") );
|
|
||||||
else if( -1!=sCurStyleName.Find("versus") ) SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo("select style comment versus") );
|
|
||||||
else if( -1!=sCurStyleName.Find("double") ) SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo("select style comment double") );
|
|
||||||
else if( -1!=sCurStyleName.Find("couple") ) SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo("select style comment couple") );
|
|
||||||
else if( -1!=sCurStyleName.Find("solo") ) SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo("select style comment solo") );
|
|
||||||
|
|
||||||
|
|
||||||
m_Menu.TweenOffScreenToMenu( SM_GoToNextScreen );
|
m_Menu.TweenOffScreenToMenu( SM_GoToNextScreen );
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void ScreenEz2SelectStyle::TweenOnScreen()
|
||||||
|
{
|
||||||
|
float fOriginalZoomY = m_ScrollingList.GetZoomY();
|
||||||
|
m_ScrollingList.BeginTweening( 0.5f );
|
||||||
|
m_ScrollingList.SetTweenZoomY( fOriginalZoomY );
|
||||||
|
|
||||||
|
for( int p=0; p<NUM_PLAYERS; p++ )
|
||||||
|
{
|
||||||
|
float fOffScreenOffset = float( (p==PLAYER_1) ? -SCREEN_WIDTH/2 : +SCREEN_WIDTH/2 );
|
||||||
|
|
||||||
|
float fOriginalX;
|
||||||
|
|
||||||
|
fOriginalX = m_sprCursors[p].GetX();
|
||||||
|
m_sprCursors[p].SetX( m_sprCursors[p].GetX()+fOffScreenOffset );
|
||||||
|
m_sprCursors[p].BeginTweening( 0.5f, Actor::TWEEN_BOUNCE_END );
|
||||||
|
m_sprCursors[p].SetTweenX( fOriginalX );
|
||||||
|
|
||||||
|
fOriginalX = m_sprControllers[p].GetX();
|
||||||
|
m_sprControllers[p].SetX( m_sprCursors[p].GetX()+fOffScreenOffset );
|
||||||
|
m_sprControllers[p].BeginTweening( 0.5f, Actor::TWEEN_BOUNCE_END );
|
||||||
|
m_sprControllers[p].SetTweenX( fOriginalX );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/************************************
|
|
||||||
TweenOffScreen
|
|
||||||
Desc: Squashes graphics before the screen
|
|
||||||
changes state.
|
|
||||||
************************************/
|
|
||||||
void ScreenEz2SelectStyle::TweenOffScreen()
|
void ScreenEz2SelectStyle::TweenOffScreen()
|
||||||
{
|
{
|
||||||
|
m_ScrollingList.BeginTweening( 0.5f );
|
||||||
|
m_ScrollingList.SetTweenZoomY( 0 );
|
||||||
|
|
||||||
}
|
for( int p=0; p<NUM_PLAYERS; p++ )
|
||||||
|
|
||||||
/************************************
|
|
||||||
AnimateGraphics
|
|
||||||
Desc: Animates the 1p/2p selection
|
|
||||||
************************************/
|
|
||||||
void ScreenEz2SelectStyle::AnimateGraphics()
|
|
||||||
{
|
{
|
||||||
|
float fOffScreenOffset = float( (p==PLAYER_1) ? -SCREEN_WIDTH : +SCREEN_WIDTH );
|
||||||
|
|
||||||
//if (bounce < 10 && direct == 0 && wait == 2) // Bounce 1p/2p up
|
m_sprCursors[p].BeginTweening( 0.5f, Actor::TWEEN_BIAS_END );
|
||||||
/* if (TIMER->GetTimeSinceStart() > ez2p_lasttimercheck[0] + 0.01f && ez2p_direct == 0)
|
m_sprCursors[p].SetTweenX( m_sprCursors[p].GetX()+fOffScreenOffset );
|
||||||
{
|
m_sprControllers[p].BeginTweening( 0.5f, Actor::TWEEN_BIAS_END );
|
||||||
ez2p_lasttimercheck[0] = TIMER->GetTimeSinceStart();
|
m_sprControllers[p].SetTweenX( m_sprCursors[p].GetX()+fOffScreenOffset );
|
||||||
ez2p_bounce+=1;
|
|
||||||
|
|
||||||
m_sprPly[2].SetXY( OPT_XP[2], OPT_YP[2] - ez2p_bounce);
|
|
||||||
m_sprPly[3].SetXY( OPT_XP[3], OPT_YP[3] - ez2p_bounce);
|
|
||||||
|
|
||||||
|
|
||||||
if (ez2p_bounce == 10)
|
|
||||||
{
|
|
||||||
ez2p_direct = 1;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (TIMER->GetTimeSinceStart() > ez2p_lasttimercheck[0] + 0.01f && ez2p_direct == 1) // bounce 1p/2p down
|
|
||||||
{
|
|
||||||
ez2p_lasttimercheck[0] = TIMER->GetTimeSinceStart();
|
|
||||||
ez2p_bounce-=1;
|
|
||||||
|
|
||||||
m_sprPly[2].SetXY( OPT_XP[2], OPT_YP[2] - ez2p_bounce);
|
|
||||||
m_sprPly[3].SetXY( OPT_XP[3], OPT_YP[3] - ez2p_bounce);
|
|
||||||
|
|
||||||
if (ez2p_bounce == 0)
|
|
||||||
{
|
|
||||||
ez2p_direct = 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
}
|
|
||||||
|
|
||||||
/************************************
|
|
||||||
AnimateBackground
|
|
||||||
Desc: Animates the Background
|
|
||||||
************************************/
|
|
||||||
void ScreenEz2SelectStyle::AnimateBackground()
|
|
||||||
{
|
|
||||||
if ((m_iSelectedStyle == 0) || (m_iSelectedPlayer == 2 && m_iSelectedStyle == 3)) // EASY background
|
|
||||||
{
|
|
||||||
m_sprBackground[3].SetHeight(SCREEN_HEIGHT * 1.7f);
|
|
||||||
m_sprBackground[3].SetWidth(SCREEN_WIDTH * 1.7f);
|
|
||||||
m_sprBackground[3].SetEffectSpinning(1.0f);
|
|
||||||
}
|
|
||||||
else if (m_iSelectedStyle == 3 && m_iSelectedPlayer != 2) // CLUB background
|
|
||||||
{
|
|
||||||
m_sprBackground[3].SetHeight(0);
|
|
||||||
m_sprBackground[3].SetWidth(0);
|
|
||||||
m_sprBackground[3].SetEffectNone();
|
|
||||||
m_sprBackground[2].SetHeight(SCREEN_HEIGHT * 3.3f);
|
|
||||||
m_sprBackground[2].SetWidth(SCREEN_WIDTH * 3.3f);
|
|
||||||
m_sprBackground[2].SetEffectSpinning(0.5f);
|
|
||||||
m_sprBackground[2].SetXY( CENTER_X, -250 );
|
|
||||||
}
|
|
||||||
else if (m_iSelectedStyle == 2) // REAL background
|
|
||||||
{
|
|
||||||
m_sprBackground[3].SetHeight(0);
|
|
||||||
m_sprBackground[3].SetWidth(0);
|
|
||||||
m_sprBackground[3].SetEffectNone();
|
|
||||||
m_sprBackground[2].SetHeight(0);
|
|
||||||
m_sprBackground[2].SetWidth(0);
|
|
||||||
m_sprBackground[2].SetEffectNone();
|
|
||||||
m_sprBackground[1].SetHeight(SCREEN_HEIGHT * 1.7f);
|
|
||||||
m_sprBackground[1].SetWidth(SCREEN_WIDTH * 1.7f);
|
|
||||||
m_sprBackground[1].SetEffectSpinning(2.1f);
|
|
||||||
}
|
|
||||||
else if (m_iSelectedStyle == 1) // HARD background
|
|
||||||
{
|
|
||||||
m_sprBackground[3].SetHeight(0);
|
|
||||||
m_sprBackground[3].SetWidth(0);
|
|
||||||
m_sprBackground[3].SetEffectNone();
|
|
||||||
m_sprBackground[2].SetHeight(0);
|
|
||||||
m_sprBackground[2].SetWidth(0);
|
|
||||||
m_sprBackground[2].SetEffectNone();
|
|
||||||
m_sprBackground[1].SetHeight(0);
|
|
||||||
m_sprBackground[1].SetWidth(0);
|
|
||||||
m_sprBackground[1].SetEffectNone();
|
|
||||||
m_sprBackground[0].SetHeight(SCREEN_HEIGHT * 1.7f);
|
|
||||||
m_sprBackground[0].SetWidth(SCREEN_WIDTH * 1.7f);
|
|
||||||
m_sprBackground[0].SetEffectSpinning(1.0f);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
/************************************
|
|
||||||
Update
|
|
||||||
Desc: Animates the 1p/2p selection
|
|
||||||
************************************/
|
|
||||||
void ScreenEz2SelectStyle::Update( float fDeltaTime )
|
|
||||||
{
|
|
||||||
Screen::Update( fDeltaTime );
|
|
||||||
|
|
||||||
fDeltaTime /= .01f;
|
|
||||||
|
|
||||||
ez2_bounce = fmodf((ez2_bounce+fDeltaTime), 20);
|
|
||||||
|
|
||||||
/* 0..10..19 -> 10..0..9 */
|
|
||||||
int offset = abs(10-int(ez2_bounce));
|
|
||||||
m_sprOpt[2].SetXY( OPT_X[2], OPT_Y[2] - offset);
|
|
||||||
m_sprOpt[3].SetXY( OPT_X[3], OPT_Y[3] - offset);
|
|
||||||
}
|
|
||||||
|
|
||||||
/************************************
|
|
||||||
TweenPlyOffScreen
|
|
||||||
Desc: Squashes Player Graphics off screen
|
|
||||||
When selected.
|
|
||||||
************************************/
|
|
||||||
void ScreenEz2SelectStyle::TweenPlyOffScreen()
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -20,8 +20,6 @@ Andrew Livy
|
|||||||
|
|
||||||
/* Class Definition */
|
/* Class Definition */
|
||||||
|
|
||||||
const int NUM_EZ2STYLE_GRAPHICS = 4;
|
|
||||||
// const int NUM_EZ2P_GRAPHICS = 4;
|
|
||||||
|
|
||||||
class ScreenEz2SelectStyle : public Screen
|
class ScreenEz2SelectStyle : public Screen
|
||||||
{
|
{
|
||||||
@@ -30,6 +28,7 @@ public:
|
|||||||
virtual ~ScreenEz2SelectStyle(); // Destructor
|
virtual ~ScreenEz2SelectStyle(); // Destructor
|
||||||
|
|
||||||
/* Public Function Prototypes */
|
/* Public Function Prototypes */
|
||||||
|
virtual void Update( float fDeltaTime );
|
||||||
virtual void DrawPrimitives();
|
virtual void DrawPrimitives();
|
||||||
virtual void Input( const DeviceInput& DeviceI, const InputEventType type, const GameInput &GameI, const MenuInput &MenuI, const StyleInput &StyleI );
|
virtual void Input( const DeviceInput& DeviceI, const InputEventType type, const GameInput &GameI, const MenuInput &MenuI, const StyleInput &StyleI );
|
||||||
virtual void HandleScreenMessage( const ScreenMessage SM );
|
virtual void HandleScreenMessage( const ScreenMessage SM );
|
||||||
@@ -39,35 +38,22 @@ public:
|
|||||||
void MenuStart( PlayerNumber p );
|
void MenuStart( PlayerNumber p );
|
||||||
void MenuBack( PlayerNumber p );
|
void MenuBack( PlayerNumber p );
|
||||||
void MenuDown( PlayerNumber p );
|
void MenuDown( PlayerNumber p );
|
||||||
|
|
||||||
|
protected:
|
||||||
void TweenOffScreen();
|
void TweenOffScreen();
|
||||||
void TweenPlyOffScreen();
|
void TweenOnScreen();
|
||||||
|
|
||||||
private:
|
Sprite m_sprCursors[NUM_PLAYERS];
|
||||||
/* Private Function Prototypes */
|
Sprite m_sprControllers[NUM_PLAYERS];
|
||||||
|
|
||||||
void Update( float fDeltaTime );
|
CArray<Style,Style> m_aPossibleStyles;
|
||||||
void AnimateGraphics();
|
ScrollingList m_ScrollingList;
|
||||||
void AnimateBackground();
|
void RefreshStylesAndList();
|
||||||
// void BeforeChange();
|
|
||||||
void SetFadedStyles();
|
Sprite m_sprBackgrounds[NUM_STYLES];
|
||||||
// void AnimateGraphics();
|
|
||||||
/* Variable Declarations */
|
|
||||||
|
|
||||||
MenuElements m_Menu;
|
MenuElements m_Menu;
|
||||||
Sprite m_sprOpt[NUM_EZ2STYLE_GRAPHICS];
|
|
||||||
// Sprite m_sprPly[NUM_EZ2P_GRAPHICS];
|
|
||||||
Sprite m_sprBackground[NUM_EZ2STYLE_GRAPHICS];
|
|
||||||
|
|
||||||
// used for the bouncing of the '1p' and '2p' images
|
RageSoundSample m_soundSelect;
|
||||||
float ez2_bounce;
|
RageSoundSample m_soundChange;
|
||||||
|
|
||||||
ScrollingList m_ScrList;
|
|
||||||
ScrollingList m_ScrList_2ply;
|
|
||||||
|
|
||||||
int m_iSelectedStyle;
|
|
||||||
int m_iSelectedPlayer;
|
|
||||||
RandomSample m_soundChange;
|
|
||||||
RandomSample m_soundSelect;
|
|
||||||
RandomSample m_soundInvalid;
|
|
||||||
protected:
|
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -32,53 +32,25 @@
|
|||||||
//
|
//
|
||||||
|
|
||||||
#define TOP_FRAME_X THEME->GetMetricF("ScreenGameplay","TopFrameX")
|
#define TOP_FRAME_X THEME->GetMetricF("ScreenGameplay","TopFrameX")
|
||||||
#define TOP_FRAME_Y THEME->GetMetricF("ScreenGameplay","TopFrameY")
|
#define TOP_FRAME_Y( e ) THEME->GetMetricF("ScreenGameplay",ssprintf("TopFrame%sY",e?"Extra":""))
|
||||||
#define TOP_FRAME_EXTRA_Y THEME->GetMetricF("ScreenGameplay","TopFrameExtraY")
|
|
||||||
#define BOTTOM_FRAME_X THEME->GetMetricF("ScreenGameplay","BottomFrameX")
|
#define BOTTOM_FRAME_X THEME->GetMetricF("ScreenGameplay","BottomFrameX")
|
||||||
#define BOTTOM_FRAME_Y THEME->GetMetricF("ScreenGameplay","BottomFrameY")
|
#define BOTTOM_FRAME_Y( e ) THEME->GetMetricF("ScreenGameplay",ssprintf("BottomFrame%sY",e?"Extra":""))
|
||||||
#define BOTTOM_FRAME_EXTRA_Y THEME->GetMetricF("ScreenGameplay","BottomFrameExtraY")
|
|
||||||
#define MIDDLE_FRAME_X THEME->GetMetricF("ScreenGameplay","MiddleFrameX")
|
#define MIDDLE_FRAME_X THEME->GetMetricF("ScreenGameplay","MiddleFrameX")
|
||||||
#define MIDDLE_FRAME_Y THEME->GetMetricF("ScreenGameplay","MiddleFrameY")
|
#define MIDDLE_FRAME_Y THEME->GetMetricF("ScreenGameplay","MiddleFrameY")
|
||||||
#define LIFE_P1_X THEME->GetMetricF("ScreenGameplay","LifeP1X")
|
#define LIFE_X( p ) THEME->GetMetricF("ScreenGameplay",ssprintf("LifeP%dX",p+1))
|
||||||
#define LIFE_P1_Y THEME->GetMetricF("ScreenGameplay","LifeP1Y")
|
#define LIFE_Y( p, e ) THEME->GetMetricF("ScreenGameplay",ssprintf("LifeP%d%sY",p+1,e?"Extra":""))
|
||||||
#define LIFE_P1_EXTRA_Y THEME->GetMetricF("ScreenGameplay","LifeP1ExtraY")
|
|
||||||
#define LIFE_P2_X THEME->GetMetricF("ScreenGameplay","LifeP2X")
|
|
||||||
#define LIFE_P2_Y THEME->GetMetricF("ScreenGameplay","LifeP2Y")
|
|
||||||
#define LIFE_P2_EXTRA_Y THEME->GetMetricF("ScreenGameplay","LifeP2ExtraY")
|
|
||||||
#define STAGE_X THEME->GetMetricF("ScreenGameplay","StageX")
|
#define STAGE_X THEME->GetMetricF("ScreenGameplay","StageX")
|
||||||
#define STAGE_Y THEME->GetMetricF("ScreenGameplay","StageY")
|
#define STAGE_Y( e ) THEME->GetMetricF("ScreenGameplay",ssprintf("Stage%sY",e?"Extra":""))
|
||||||
#define STAGE_EXTRA_Y THEME->GetMetricF("ScreenGameplay","StageExtraY")
|
#define SONG_NUMBER_X( p ) THEME->GetMetricF("ScreenGameplay",ssprintf("SongNumberP%dX",p+1))
|
||||||
#define SONG_NUMBER_P1_X THEME->GetMetricF("ScreenGameplay","SongNumberP1X")
|
#define SONG_NUMBER_Y( p, e ) THEME->GetMetricF("ScreenGameplay",ssprintf("SongNumberP%d%sY",p+1,e?"Extra":""))
|
||||||
#define SONG_NUMBER_P1_Y THEME->GetMetricF("ScreenGameplay","SongNumberP1Y")
|
#define SCORE_X( p ) THEME->GetMetricF("ScreenGameplay",ssprintf("ScoreP%dX",p+1))
|
||||||
#define SONG_NUMBER_P1_EXTRA_Y THEME->GetMetricF("ScreenGameplay","SongNumberP1ExtraY")
|
#define SCORE_Y( p, e ) THEME->GetMetricF("ScreenGameplay",ssprintf("ScoreP%d%sY",p+1,e?"Extra":""))
|
||||||
#define SONG_NUMBER_P2_X THEME->GetMetricF("ScreenGameplay","SongNumberP2X")
|
#define PLAYER_OPTIONS_X( p ) THEME->GetMetricF("ScreenGameplay",ssprintf("PlayerOptionsP%dX",p+1))
|
||||||
#define SONG_NUMBER_P2_Y THEME->GetMetricF("ScreenGameplay","SongNumberP2Y")
|
#define PLAYER_OPTIONS_Y( p, e ) THEME->GetMetricF("ScreenGameplay",ssprintf("PlayerOptionsP%d%sY",p+1,e?"Extra":""))
|
||||||
#define SONG_NUMBER_P2_EXTRA_Y THEME->GetMetricF("ScreenGameplay","SongNumberP2ExtraY")
|
|
||||||
#define SCORE_P1_X THEME->GetMetricF("ScreenGameplay","ScoreP1X")
|
|
||||||
#define SCORE_P1_Y THEME->GetMetricF("ScreenGameplay","ScoreP1Y")
|
|
||||||
#define SCORE_P1_EXTRA_Y THEME->GetMetricF("ScreenGameplay","ScoreP1ExtraY")
|
|
||||||
#define SCORE_P2_X THEME->GetMetricF("ScreenGameplay","ScoreP2X")
|
|
||||||
#define SCORE_P2_Y THEME->GetMetricF("ScreenGameplay","ScoreP2Y")
|
|
||||||
#define SCORE_P2_EXTRA_Y THEME->GetMetricF("ScreenGameplay","ScoreP2ExtraY")
|
|
||||||
#define PLAYER_OPTIONS_P1_X THEME->GetMetricF("ScreenGameplay","PlayerOptionsP1X")
|
|
||||||
#define PLAYER_OPTIONS_P1_Y THEME->GetMetricF("ScreenGameplay","PlayerOptionsP1Y")
|
|
||||||
#define PLAYER_OPTIONS_P1_EXTRA_Y THEME->GetMetricF("ScreenGameplay","PlayerOptionsP1ExtraY")
|
|
||||||
#define PLAYER_OPTIONS_P2_X THEME->GetMetricF("ScreenGameplay","PlayerOptionsP2X")
|
|
||||||
#define PLAYER_OPTIONS_P2_Y THEME->GetMetricF("ScreenGameplay","PlayerOptionsP2Y")
|
|
||||||
#define PLAYER_OPTIONS_P2_EXTRA_Y THEME->GetMetricF("ScreenGameplay","PlayerOptionsP2ExtraY")
|
|
||||||
#define SONG_OPTIONS_X THEME->GetMetricF("ScreenGameplay","SongOptionsX")
|
#define SONG_OPTIONS_X THEME->GetMetricF("ScreenGameplay","SongOptionsX")
|
||||||
#define SONG_OPTIONS_Y THEME->GetMetricF("ScreenGameplay","SongOptionsY")
|
#define SONG_OPTIONS_Y( e ) THEME->GetMetricF("ScreenGameplay",ssprintf("SongOptions%sY",e?"Extra":""))
|
||||||
#define SONG_OPTIONS_EXTRA_Y THEME->GetMetricF("ScreenGameplay","SongOptionsExtraY")
|
#define DIFFICULTY_X( p ) THEME->GetMetricF("ScreenGameplay",ssprintf("DifficultyP%dX",p+1))
|
||||||
#define DIFFICULTY_P1_X THEME->GetMetricF("ScreenGameplay","DifficultyP1X")
|
#define DIFFICULTY_Y( p, e, r ) THEME->GetMetricF("ScreenGameplay",ssprintf("DifficultyP%d%s%sY",p+1,e?"Extra":"",r?"Reverse":""))
|
||||||
#define DIFFICULTY_P1_Y THEME->GetMetricF("ScreenGameplay","DifficultyP1Y")
|
|
||||||
#define DIFFICULTY_P1_REVERSE_Y THEME->GetMetricF("ScreenGameplay","DifficultyP1ReverseY")
|
|
||||||
#define DIFFICULTY_P1_EXTRA_Y THEME->GetMetricF("ScreenGameplay","DifficultyP1ExtraY")
|
|
||||||
#define DIFFICULTY_P1_EXTRA_REVERSE_Y THEME->GetMetricF("ScreenGameplay","DifficultyP1ExtraReverseY")
|
|
||||||
#define DIFFICULTY_P2_X THEME->GetMetricF("ScreenGameplay","DifficultyP2X")
|
|
||||||
#define DIFFICULTY_P2_Y THEME->GetMetricF("ScreenGameplay","DifficultyP2Y")
|
|
||||||
#define DIFFICULTY_P2_REVERSE_Y THEME->GetMetricF("ScreenGameplay","DifficultyP2ReverseY")
|
|
||||||
#define DIFFICULTY_P2_EXTRA_Y THEME->GetMetricF("ScreenGameplay","DifficultyP2ExtraY")
|
|
||||||
#define DIFFICULTY_P2_EXTRA_REVERSE_Y THEME->GetMetricF("ScreenGameplay","DifficultyP2ExtraReverseY")
|
|
||||||
#define DEBUG_X THEME->GetMetricF("ScreenGameplay","DebugX")
|
#define DEBUG_X THEME->GetMetricF("ScreenGameplay","DebugX")
|
||||||
#define DEBUG_Y THEME->GetMetricF("ScreenGameplay","DebugY")
|
#define DEBUG_Y THEME->GetMetricF("ScreenGameplay","DebugY")
|
||||||
#define AUTOPLAY_X THEME->GetMetricF("ScreenGameplay","AutoPlayX")
|
#define AUTOPLAY_X THEME->GetMetricF("ScreenGameplay","AutoPlayX")
|
||||||
@@ -88,87 +60,6 @@
|
|||||||
#define SECONDS_BETWEEN_COMMENTS THEME->GetMetricF("ScreenGameplay","SecondsBetweenComments")
|
#define SECONDS_BETWEEN_COMMENTS THEME->GetMetricF("ScreenGameplay","SecondsBetweenComments")
|
||||||
#define DEMONSTRATION_SECONDS THEME->GetMetricF("ScreenGameplay","DemonstrationSeconds")
|
#define DEMONSTRATION_SECONDS THEME->GetMetricF("ScreenGameplay","DemonstrationSeconds")
|
||||||
|
|
||||||
float LIFE_X( int p ) {
|
|
||||||
switch( p ) {
|
|
||||||
case PLAYER_1: return LIFE_P1_X;
|
|
||||||
case PLAYER_2: return LIFE_P2_X;
|
|
||||||
default: ASSERT(0); return 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
float LIFE_Y( int p, bool bExtra ) {
|
|
||||||
switch( p ) {
|
|
||||||
case PLAYER_1: return bExtra ? LIFE_P1_EXTRA_Y : LIFE_P1_Y;
|
|
||||||
case PLAYER_2: return bExtra ? LIFE_P2_EXTRA_Y : LIFE_P2_Y;
|
|
||||||
default: ASSERT(0); return 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
float SONG_NUMBER_X( int p ) {
|
|
||||||
switch( p ) {
|
|
||||||
case PLAYER_1: return SONG_NUMBER_P1_X;
|
|
||||||
case PLAYER_2: return SONG_NUMBER_P2_X;
|
|
||||||
default: ASSERT(0); return 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
float SONG_NUMBER_Y( int p, bool bExtra ) {
|
|
||||||
switch( p ) {
|
|
||||||
case PLAYER_1: return bExtra ? SONG_NUMBER_P1_EXTRA_Y : SONG_NUMBER_P1_Y;
|
|
||||||
case PLAYER_2: return bExtra ? SONG_NUMBER_P2_EXTRA_Y : SONG_NUMBER_P2_Y;
|
|
||||||
default: ASSERT(0); return 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
float SCORE_X( int p ) {
|
|
||||||
switch( p ) {
|
|
||||||
case PLAYER_1: return SCORE_P1_X;
|
|
||||||
case PLAYER_2: return SCORE_P2_X;
|
|
||||||
default: ASSERT(0); return 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
float SCORE_Y( int p, bool bExtra ) {
|
|
||||||
switch( p ) {
|
|
||||||
case PLAYER_1: return bExtra ? SCORE_P1_EXTRA_Y : SCORE_P1_Y;
|
|
||||||
case PLAYER_2: return bExtra ? SCORE_P2_EXTRA_Y : SCORE_P2_Y;
|
|
||||||
default: ASSERT(0); return 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
float DIFFICULTY_X( int p ) {
|
|
||||||
switch( p ) {
|
|
||||||
case PLAYER_1: return DIFFICULTY_P1_X;
|
|
||||||
case PLAYER_2: return DIFFICULTY_P2_X;
|
|
||||||
default: ASSERT(0); return 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
float DIFFICULTY_Y( int p, bool bReverse, bool bExtra ) {
|
|
||||||
switch( p ) {
|
|
||||||
case PLAYER_1:
|
|
||||||
if( bExtra && bReverse ) return DIFFICULTY_P1_EXTRA_REVERSE_Y;
|
|
||||||
if( !bExtra && bReverse ) return DIFFICULTY_P1_REVERSE_Y;
|
|
||||||
if( bExtra && !bReverse ) return DIFFICULTY_P1_EXTRA_Y;
|
|
||||||
if( !bExtra && !bReverse ) return DIFFICULTY_P1_Y;
|
|
||||||
else ASSERT(0);
|
|
||||||
case PLAYER_2:
|
|
||||||
if( bExtra && bReverse ) return DIFFICULTY_P2_EXTRA_REVERSE_Y;
|
|
||||||
if( !bExtra && bReverse ) return DIFFICULTY_P2_REVERSE_Y;
|
|
||||||
if( bExtra && !bReverse ) return DIFFICULTY_P2_EXTRA_Y;
|
|
||||||
if( !bExtra && !bReverse ) return DIFFICULTY_P2_Y;
|
|
||||||
else ASSERT(0);
|
|
||||||
}
|
|
||||||
ASSERT(0); return 0;
|
|
||||||
}
|
|
||||||
float PLAYER_OPTIONS_X( int p ) {
|
|
||||||
switch( p ) {
|
|
||||||
case PLAYER_1: return PLAYER_OPTIONS_P1_X;
|
|
||||||
case PLAYER_2: return PLAYER_OPTIONS_P2_X;
|
|
||||||
default: ASSERT(0); return 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
float PLAYER_OPTIONS_Y( int p, bool bExtra ) {
|
|
||||||
switch( p ) {
|
|
||||||
case PLAYER_1: return bExtra ? PLAYER_OPTIONS_P1_EXTRA_Y : PLAYER_OPTIONS_P1_Y;
|
|
||||||
case PLAYER_2: return bExtra ? PLAYER_OPTIONS_P2_EXTRA_Y : PLAYER_OPTIONS_P2_Y;
|
|
||||||
default: ASSERT(0); return 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// received while STATE_DANCING
|
// received while STATE_DANCING
|
||||||
const ScreenMessage SM_NotesEnded = ScreenMessage(SM_User+101);
|
const ScreenMessage SM_NotesEnded = ScreenMessage(SM_User+101);
|
||||||
@@ -307,13 +198,13 @@ ScreenGameplay::ScreenGameplay()
|
|||||||
|
|
||||||
// TopFrame goes above LifeMeter
|
// TopFrame goes above LifeMeter
|
||||||
m_sprTopFrame.Load( THEME->GetPathTo("Graphics",bExtra?"gameplay extra top frame":"gameplay top frame") );
|
m_sprTopFrame.Load( THEME->GetPathTo("Graphics",bExtra?"gameplay extra top frame":"gameplay top frame") );
|
||||||
m_sprTopFrame.SetXY( TOP_FRAME_X, bExtra ? TOP_FRAME_EXTRA_Y : TOP_FRAME_Y );
|
m_sprTopFrame.SetXY( TOP_FRAME_X, TOP_FRAME_Y(bExtra) );
|
||||||
this->AddSubActor( &m_sprTopFrame );
|
this->AddSubActor( &m_sprTopFrame );
|
||||||
|
|
||||||
|
|
||||||
m_textStageNumber.LoadFromFont( THEME->GetPathTo("Fonts","Header2") );
|
m_textStageNumber.LoadFromFont( THEME->GetPathTo("Fonts","Header2") );
|
||||||
m_textStageNumber.TurnShadowOff();
|
m_textStageNumber.TurnShadowOff();
|
||||||
m_textStageNumber.SetXY( STAGE_X, bExtra ? STAGE_EXTRA_Y : STAGE_Y );
|
m_textStageNumber.SetXY( STAGE_X, STAGE_Y(bExtra) );
|
||||||
m_textStageNumber.SetText( GAMESTATE->GetStageText() );
|
m_textStageNumber.SetText( GAMESTATE->GetStageText() );
|
||||||
m_textStageNumber.SetDiffuseColor( GAMESTATE->GetStageColor() );
|
m_textStageNumber.SetDiffuseColor( GAMESTATE->GetStageColor() );
|
||||||
|
|
||||||
@@ -346,7 +237,7 @@ ScreenGameplay::ScreenGameplay()
|
|||||||
// Add all Actors in bottom frame
|
// Add all Actors in bottom frame
|
||||||
//
|
//
|
||||||
m_sprBottomFrame.Load( THEME->GetPathTo("Graphics",bExtra?"gameplay extra bottom frame":"gameplay bottom frame") );
|
m_sprBottomFrame.Load( THEME->GetPathTo("Graphics",bExtra?"gameplay extra bottom frame":"gameplay bottom frame") );
|
||||||
m_sprBottomFrame.SetXY( BOTTOM_FRAME_X, bExtra ? BOTTOM_FRAME_EXTRA_Y : BOTTOM_FRAME_Y );
|
m_sprBottomFrame.SetXY( BOTTOM_FRAME_X, BOTTOM_FRAME_Y(bExtra) );
|
||||||
this->AddSubActor( &m_sprBottomFrame );
|
this->AddSubActor( &m_sprBottomFrame );
|
||||||
|
|
||||||
for( p=0; p<NUM_PLAYERS; p++ )
|
for( p=0; p<NUM_PLAYERS; p++ )
|
||||||
@@ -384,7 +275,7 @@ ScreenGameplay::ScreenGameplay()
|
|||||||
|
|
||||||
m_textSongOptions.LoadFromFont( THEME->GetPathTo("Fonts","normal") );
|
m_textSongOptions.LoadFromFont( THEME->GetPathTo("Fonts","normal") );
|
||||||
m_textSongOptions.TurnShadowOff();
|
m_textSongOptions.TurnShadowOff();
|
||||||
m_textSongOptions.SetXY( SONG_OPTIONS_X, bExtra?SONG_OPTIONS_EXTRA_Y:SONG_OPTIONS_Y );
|
m_textSongOptions.SetXY( SONG_OPTIONS_X, SONG_OPTIONS_Y(bExtra) );
|
||||||
m_textSongOptions.SetZoom( 0.5f );
|
m_textSongOptions.SetZoom( 0.5f );
|
||||||
m_textSongOptions.SetDiffuseColor( D3DXCOLOR(1,1,1,1) );
|
m_textSongOptions.SetDiffuseColor( D3DXCOLOR(1,1,1,1) );
|
||||||
m_textSongOptions.SetText( GAMESTATE->m_SongOptions.GetString() );
|
m_textSongOptions.SetText( GAMESTATE->m_SongOptions.GetString() );
|
||||||
|
|||||||
@@ -169,7 +169,6 @@ void ScreenOptions::InitOptionsText()
|
|||||||
title.SetZoom( 0.7f );
|
title.SetZoom( 0.7f );
|
||||||
title.SetVertAlign( Actor::align_middle );
|
title.SetVertAlign( Actor::align_middle );
|
||||||
title.TurnShadowOff();
|
title.TurnShadowOff();
|
||||||
m_framePage.AddSubActor( &title );
|
|
||||||
|
|
||||||
// init all text in this line and count the width of the line
|
// init all text in this line and count the width of the line
|
||||||
float fX = ITEMS_START_X; // indent 70 pixels
|
float fX = ITEMS_START_X; // indent 70 pixels
|
||||||
@@ -182,7 +181,6 @@ void ScreenOptions::InitOptionsText()
|
|||||||
option.SetText( optline.szOptionsText[j] );
|
option.SetText( optline.szOptionsText[j] );
|
||||||
option.SetZoom( 0.5f );
|
option.SetZoom( 0.5f );
|
||||||
option.SetShadowLength( 2 );
|
option.SetShadowLength( 2 );
|
||||||
m_framePage.AddSubActor( &option );
|
|
||||||
|
|
||||||
// set the XY position of each item in the line
|
// set the XY position of each item in the line
|
||||||
float fItemWidth = option.GetWidestLineWidthInSourcePixels() * option.GetZoomX();
|
float fItemWidth = option.GetWidestLineWidthInSourcePixels() * option.GetZoomX();
|
||||||
|
|||||||
@@ -41,27 +41,11 @@
|
|||||||
#define CONTENTS_Y THEME->GetMetricF("ScreenSelectCourse","ContentsY")
|
#define CONTENTS_Y THEME->GetMetricF("ScreenSelectCourse","ContentsY")
|
||||||
#define WHEEL_X THEME->GetMetricF("ScreenSelectCourse","WheelX")
|
#define WHEEL_X THEME->GetMetricF("ScreenSelectCourse","WheelX")
|
||||||
#define WHEEL_Y THEME->GetMetricF("ScreenSelectCourse","WheelY")
|
#define WHEEL_Y THEME->GetMetricF("ScreenSelectCourse","WheelY")
|
||||||
#define SCORE_P1_X THEME->GetMetricF("ScreenSelectCourse","ScoreP1X")
|
#define SCORE_X( p ) THEME->GetMetricF("ScreenSelectCourse",ssprintf("ScoreP%dX",p+1))
|
||||||
#define SCORE_P1_Y THEME->GetMetricF("ScreenSelectCourse","ScoreP1Y")
|
#define SCORE_Y( i ) THEME->GetMetricF("ScreenSelectCourse",ssprintf("ScoreP%dY",i+1))
|
||||||
#define SCORE_P2_X THEME->GetMetricF("ScreenSelectCourse","ScoreP2X")
|
|
||||||
#define SCORE_P2_Y THEME->GetMetricF("ScreenSelectCourse","ScoreP2Y")
|
|
||||||
#define HELP_TEXT THEME->GetMetric("ScreenSelectCourse","HelpText")
|
#define HELP_TEXT THEME->GetMetric("ScreenSelectCourse","HelpText")
|
||||||
#define TIMER_SECONDS THEME->GetMetricI("ScreenSelectCourse","TimerSeconds")
|
#define TIMER_SECONDS THEME->GetMetricI("ScreenSelectCourse","TimerSeconds")
|
||||||
|
|
||||||
float BEST_TIME_X( int p ) {
|
|
||||||
switch( p ) {
|
|
||||||
case PLAYER_1: return SCORE_P1_X;
|
|
||||||
case PLAYER_2: return SCORE_P2_X;
|
|
||||||
default: ASSERT(0); return 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
float BEST_TIME_Y( int p ) {
|
|
||||||
switch( p ) {
|
|
||||||
case PLAYER_1: return SCORE_P1_Y;
|
|
||||||
case PLAYER_2: return SCORE_P2_Y;
|
|
||||||
default: ASSERT(0); return 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
const float TWEEN_TIME = 0.5f;
|
const float TWEEN_TIME = 0.5f;
|
||||||
|
|
||||||
@@ -118,10 +102,10 @@ ScreenSelectCourse::ScreenSelectCourse()
|
|||||||
m_sprHighScoreFrame[p].Load( THEME->GetPathTo("Graphics","select music score frame") );
|
m_sprHighScoreFrame[p].Load( THEME->GetPathTo("Graphics","select music score frame") );
|
||||||
m_sprHighScoreFrame[p].StopAnimating();
|
m_sprHighScoreFrame[p].StopAnimating();
|
||||||
m_sprHighScoreFrame[p].SetState( p );
|
m_sprHighScoreFrame[p].SetState( p );
|
||||||
m_sprHighScoreFrame[p].SetXY( BEST_TIME_X(p), BEST_TIME_Y(p) );
|
m_sprHighScoreFrame[p].SetXY( SCORE_X(p), SCORE_Y(p) );
|
||||||
this->AddSubActor( &m_sprHighScoreFrame[p] );
|
this->AddSubActor( &m_sprHighScoreFrame[p] );
|
||||||
|
|
||||||
m_HighScore[p].SetXY( BEST_TIME_X(p), BEST_TIME_Y(p) );
|
m_HighScore[p].SetXY( SCORE_X(p), SCORE_Y(p) );
|
||||||
m_HighScore[p].SetZoom( 0.6f );
|
m_HighScore[p].SetZoom( 0.6f );
|
||||||
m_HighScore[p].SetDiffuseColor( PlayerToColor(p) );
|
m_HighScore[p].SetDiffuseColor( PlayerToColor(p) );
|
||||||
this->AddSubActor( &m_HighScore[p] );
|
this->AddSubActor( &m_HighScore[p] );
|
||||||
|
|||||||
@@ -23,15 +23,10 @@
|
|||||||
|
|
||||||
const float LOCK_INPUT_TIME = 0.30f; // lock input while waiting for tweening to complete
|
const float LOCK_INPUT_TIME = 0.30f; // lock input while waiting for tweening to complete
|
||||||
|
|
||||||
|
#define MORE_X( p ) THEME->GetMetricF("ScreenSelectDifficulty",ssprintf("MorePage%dX",p+1))
|
||||||
#define MORE_PAGE1_X THEME->GetMetricF("ScreenSelectDifficulty","MorePage1X")
|
#define MORE_Y( i ) THEME->GetMetricF("ScreenSelectDifficulty",ssprintf("MorePage%dY",i+1))
|
||||||
#define MORE_PAGE1_Y THEME->GetMetricF("ScreenSelectDifficulty","MorePage1Y")
|
#define EXPLANATION_X( p ) THEME->GetMetricF("ScreenSelectDifficulty",ssprintf("ExplanationPage%dX",p+1))
|
||||||
#define MORE_PAGE2_X THEME->GetMetricF("ScreenSelectDifficulty","MorePage2X")
|
#define EXPLANATION_Y( i ) THEME->GetMetricF("ScreenSelectDifficulty",ssprintf("ExplanationPage%dY",i+1))
|
||||||
#define MORE_PAGE2_Y THEME->GetMetricF("ScreenSelectDifficulty","MorePage2Y")
|
|
||||||
#define EXPLANATION_PAGE1_X THEME->GetMetricF("ScreenSelectDifficulty","ExplanationPage1X")
|
|
||||||
#define EXPLANATION_PAGE1_Y THEME->GetMetricF("ScreenSelectDifficulty","ExplanationPage1Y")
|
|
||||||
#define EXPLANATION_PAGE2_X THEME->GetMetricF("ScreenSelectDifficulty","ExplanationPage2X")
|
|
||||||
#define EXPLANATION_PAGE2_Y THEME->GetMetricF("ScreenSelectDifficulty","ExplanationPage2Y")
|
|
||||||
#define EASY_X THEME->GetMetricF("ScreenSelectDifficulty","EasyX")
|
#define EASY_X THEME->GetMetricF("ScreenSelectDifficulty","EasyX")
|
||||||
#define EASY_Y THEME->GetMetricF("ScreenSelectDifficulty","EasyY")
|
#define EASY_Y THEME->GetMetricF("ScreenSelectDifficulty","EasyY")
|
||||||
#define MEDIUM_X THEME->GetMetricF("ScreenSelectDifficulty","MediumX")
|
#define MEDIUM_X THEME->GetMetricF("ScreenSelectDifficulty","MediumX")
|
||||||
@@ -42,10 +37,8 @@ const float LOCK_INPUT_TIME = 0.30f; // lock input while waiting for tweening to
|
|||||||
#define ONI_Y THEME->GetMetricF("ScreenSelectDifficulty","OniY")
|
#define ONI_Y THEME->GetMetricF("ScreenSelectDifficulty","OniY")
|
||||||
#define ENDLESS_X THEME->GetMetricF("ScreenSelectDifficulty","EndlessX")
|
#define ENDLESS_X THEME->GetMetricF("ScreenSelectDifficulty","EndlessX")
|
||||||
#define ENDLESS_Y THEME->GetMetricF("ScreenSelectDifficulty","EndlessY")
|
#define ENDLESS_Y THEME->GetMetricF("ScreenSelectDifficulty","EndlessY")
|
||||||
#define CURSOR_OFFSET_P1_X THEME->GetMetricF("ScreenSelectDifficulty","CursorOffsetP1X")
|
#define CURSOR_OFFSET_X( p ) THEME->GetMetricF("ScreenSelectDifficulty",ssprintf("CursorOffsetP%dX",p+1))
|
||||||
#define CURSOR_OFFSET_P1_Y THEME->GetMetricF("ScreenSelectDifficulty","CursorOffsetP1Y")
|
#define CURSOR_OFFSET_Y( i ) THEME->GetMetricF("ScreenSelectDifficulty",ssprintf("CursorOffsetP%dY",i+1))
|
||||||
#define CURSOR_OFFSET_P2_X THEME->GetMetricF("ScreenSelectDifficulty","CursorOffsetP2X")
|
|
||||||
#define CURSOR_OFFSET_P2_Y THEME->GetMetricF("ScreenSelectDifficulty","CursorOffsetP2Y")
|
|
||||||
#define CURSOR_SHADOW_LENGTH_X THEME->GetMetricF("ScreenSelectDifficulty","CursorShadowLengthX")
|
#define CURSOR_SHADOW_LENGTH_X THEME->GetMetricF("ScreenSelectDifficulty","CursorShadowLengthX")
|
||||||
#define CURSOR_SHADOW_LENGTH_Y THEME->GetMetricF("ScreenSelectDifficulty","CursorShadowLengthY")
|
#define CURSOR_SHADOW_LENGTH_Y THEME->GetMetricF("ScreenSelectDifficulty","CursorShadowLengthY")
|
||||||
#define HELP_TEXT THEME->GetMetric("ScreenSelectDifficulty","HelpText")
|
#define HELP_TEXT THEME->GetMetric("ScreenSelectDifficulty","HelpText")
|
||||||
@@ -54,34 +47,6 @@ const float LOCK_INPUT_TIME = 0.30f; // lock input while waiting for tweening to
|
|||||||
#define NEXT_SCREEN_ONI THEME->GetMetric("ScreenSelectDifficulty","NextScreenOni")
|
#define NEXT_SCREEN_ONI THEME->GetMetric("ScreenSelectDifficulty","NextScreenOni")
|
||||||
|
|
||||||
|
|
||||||
float MORE_X( int iIndex ) {
|
|
||||||
switch( iIndex ) {
|
|
||||||
case 0: return MORE_PAGE1_X;
|
|
||||||
case 1: return MORE_PAGE2_X;
|
|
||||||
default: ASSERT(0); return 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
float MORE_Y( int iIndex ) {
|
|
||||||
switch( iIndex ) {
|
|
||||||
case 0: return MORE_PAGE1_Y;
|
|
||||||
case 1: return MORE_PAGE2_Y;
|
|
||||||
default: ASSERT(0); return 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
float EXPLANATION_X( int iIndex ) {
|
|
||||||
switch( iIndex ) {
|
|
||||||
case 0: return EXPLANATION_PAGE1_X;
|
|
||||||
case 1: return EXPLANATION_PAGE2_X;
|
|
||||||
default: ASSERT(0); return 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
float EXPLANATION_Y( int iIndex ) {
|
|
||||||
switch( iIndex ) {
|
|
||||||
case 0: return EXPLANATION_PAGE1_Y;
|
|
||||||
case 1: return EXPLANATION_PAGE2_Y;
|
|
||||||
default: ASSERT(0); return 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
float ITEM_X( int iItemIndex ) {
|
float ITEM_X( int iItemIndex ) {
|
||||||
switch( iItemIndex ) {
|
switch( iItemIndex ) {
|
||||||
case 0: return EASY_X;
|
case 0: return EASY_X;
|
||||||
@@ -102,20 +67,8 @@ float ITEM_Y( int iItemIndex ) {
|
|||||||
default: ASSERT(0); return 0;
|
default: ASSERT(0); return 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
float CURSOR_X( int iItemIndex, int p ) {
|
float CURSOR_X( int iItemIndex, int p ) { return ITEM_X(iItemIndex) + CURSOR_OFFSET_X(p); }
|
||||||
switch( p ) {
|
float CURSOR_Y( int iItemIndex, int p ) { return ITEM_Y(iItemIndex) + CURSOR_OFFSET_Y(p); }
|
||||||
case PLAYER_1: return ITEM_X(iItemIndex) + CURSOR_OFFSET_P1_X;
|
|
||||||
case PLAYER_2: return ITEM_X(iItemIndex) + CURSOR_OFFSET_P2_X;
|
|
||||||
default: ASSERT(0); return 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
float CURSOR_Y( int iItemIndex, int p ) {
|
|
||||||
switch( p ) {
|
|
||||||
case PLAYER_1: return ITEM_Y(iItemIndex) + CURSOR_OFFSET_P1_Y;
|
|
||||||
case PLAYER_2: return ITEM_Y(iItemIndex) + CURSOR_OFFSET_P2_Y;
|
|
||||||
default: ASSERT(0); return 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
const ScreenMessage SM_GoToPrevScreen = ScreenMessage(SM_User + 1);
|
const ScreenMessage SM_GoToPrevScreen = ScreenMessage(SM_User + 1);
|
||||||
|
|||||||
@@ -41,30 +41,22 @@
|
|||||||
#define CD_TITLE_Y THEME->GetMetricF("ScreenSelectMusic","CDTitleY")
|
#define CD_TITLE_Y THEME->GetMetricF("ScreenSelectMusic","CDTitleY")
|
||||||
#define DIFFICULTY_X THEME->GetMetricF("ScreenSelectMusic","DifficultyX")
|
#define DIFFICULTY_X THEME->GetMetricF("ScreenSelectMusic","DifficultyX")
|
||||||
#define DIFFICULTY_Y THEME->GetMetricF("ScreenSelectMusic","DifficultyY")
|
#define DIFFICULTY_Y THEME->GetMetricF("ScreenSelectMusic","DifficultyY")
|
||||||
#define ICON_P1_X THEME->GetMetricF("ScreenSelectMusic","IconP1X")
|
#define ICON_X( p ) THEME->GetMetricF("ScreenSelectMusic",ssprintf("IconP%dX",p+1))
|
||||||
#define ICON_P1_Y THEME->GetMetricF("ScreenSelectMusic","IconP1Y")
|
#define ICON_Y( i ) THEME->GetMetricF("ScreenSelectMusic",ssprintf("IconP%dY",i+1))
|
||||||
#define ICON_P2_X THEME->GetMetricF("ScreenSelectMusic","IconP2X")
|
|
||||||
#define ICON_P2_Y THEME->GetMetricF("ScreenSelectMusic","IconP2Y")
|
|
||||||
#define RADAR_X THEME->GetMetricF("ScreenSelectMusic","RadarX")
|
#define RADAR_X THEME->GetMetricF("ScreenSelectMusic","RadarX")
|
||||||
#define RADAR_Y THEME->GetMetricF("ScreenSelectMusic","RadarY")
|
#define RADAR_Y THEME->GetMetricF("ScreenSelectMusic","RadarY")
|
||||||
#define SORT_ICON_X THEME->GetMetricF("ScreenSelectMusic","SortIconX")
|
#define SORT_ICON_X THEME->GetMetricF("ScreenSelectMusic","SortIconX")
|
||||||
#define SORT_ICON_Y THEME->GetMetricF("ScreenSelectMusic","SortIconY")
|
#define SORT_ICON_Y THEME->GetMetricF("ScreenSelectMusic","SortIconY")
|
||||||
#define SCORE_P1_X THEME->GetMetricF("ScreenSelectMusic","ScoreP1X")
|
#define SCORE_X( p ) THEME->GetMetricF("ScreenSelectMusic",ssprintf("ScoreP%dX",p+1))
|
||||||
#define SCORE_P1_Y THEME->GetMetricF("ScreenSelectMusic","ScoreP1Y")
|
#define SCORE_Y( i ) THEME->GetMetricF("ScreenSelectMusic",ssprintf("ScoreP%dY",i+1))
|
||||||
#define SCORE_P2_X THEME->GetMetricF("ScreenSelectMusic","ScoreP2X")
|
|
||||||
#define SCORE_P2_Y THEME->GetMetricF("ScreenSelectMusic","ScoreP2Y")
|
|
||||||
#define METER_FRAME_X THEME->GetMetricF("ScreenSelectMusic","MeterFrameX")
|
#define METER_FRAME_X THEME->GetMetricF("ScreenSelectMusic","MeterFrameX")
|
||||||
#define METER_FRAME_Y THEME->GetMetricF("ScreenSelectMusic","MeterFrameY")
|
#define METER_FRAME_Y THEME->GetMetricF("ScreenSelectMusic","MeterFrameY")
|
||||||
#define METER_P1_X THEME->GetMetricF("ScreenSelectMusic","MeterP1X")
|
#define METER_X( p ) THEME->GetMetricF("ScreenSelectMusic",ssprintf("MeterP%dX",p+1))
|
||||||
#define METER_P1_Y THEME->GetMetricF("ScreenSelectMusic","MeterP1Y")
|
#define METER_Y( i ) THEME->GetMetricF("ScreenSelectMusic",ssprintf("MeterP%dY",i+1))
|
||||||
#define METER_P2_X THEME->GetMetricF("ScreenSelectMusic","MeterP2X")
|
|
||||||
#define METER_P2_Y THEME->GetMetricF("ScreenSelectMusic","MeterP2Y")
|
|
||||||
#define WHEEL_X THEME->GetMetricF("ScreenSelectMusic","WheelX")
|
#define WHEEL_X THEME->GetMetricF("ScreenSelectMusic","WheelX")
|
||||||
#define WHEEL_Y THEME->GetMetricF("ScreenSelectMusic","WheelY")
|
#define WHEEL_Y THEME->GetMetricF("ScreenSelectMusic","WheelY")
|
||||||
#define PLAYER_OPTIONS_P1_X THEME->GetMetricF("ScreenSelectMusic","PlayerOptionsP1X")
|
#define PLAYER_OPTIONS_X( p )THEME->GetMetricF("ScreenSelectMusic",ssprintf("PlayerOptionsP%dX",p+1))
|
||||||
#define PLAYER_OPTIONS_P1_Y THEME->GetMetricF("ScreenSelectMusic","PlayerOptionsP1Y")
|
#define PLAYER_OPTIONS_Y( i )THEME->GetMetricF("ScreenSelectMusic",ssprintf("PlayerOptionsP%dY",i+1))
|
||||||
#define PLAYER_OPTIONS_P2_X THEME->GetMetricF("ScreenSelectMusic","PlayerOptionsP2X")
|
|
||||||
#define PLAYER_OPTIONS_P2_Y THEME->GetMetricF("ScreenSelectMusic","PlayerOptionsP2Y")
|
|
||||||
#define SONG_OPTIONS_X THEME->GetMetricF("ScreenSelectMusic","SongOptionsX")
|
#define SONG_OPTIONS_X THEME->GetMetricF("ScreenSelectMusic","SongOptionsX")
|
||||||
#define SONG_OPTIONS_Y THEME->GetMetricF("ScreenSelectMusic","SongOptionsY")
|
#define SONG_OPTIONS_Y THEME->GetMetricF("ScreenSelectMusic","SongOptionsY")
|
||||||
#define HELP_TEXT THEME->GetMetric("ScreenSelectMusic","HelpText")
|
#define HELP_TEXT THEME->GetMetric("ScreenSelectMusic","HelpText")
|
||||||
@@ -73,57 +65,6 @@
|
|||||||
|
|
||||||
const float TWEEN_TIME = 0.5f;
|
const float TWEEN_TIME = 0.5f;
|
||||||
|
|
||||||
float ICON_X( int p ) {
|
|
||||||
switch( p ) {
|
|
||||||
case PLAYER_1: return ICON_P1_X;
|
|
||||||
case PLAYER_2: return ICON_P2_X;
|
|
||||||
default: ASSERT(0); return 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
float ICON_Y( int p ) {
|
|
||||||
switch( p ) {
|
|
||||||
case PLAYER_1: return ICON_P1_Y;
|
|
||||||
case PLAYER_2: return ICON_P2_Y;
|
|
||||||
default: ASSERT(0); return 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
float HIGH_SCORE_X( int p ) {
|
|
||||||
switch( p ) {
|
|
||||||
case PLAYER_1: return SCORE_P1_X;
|
|
||||||
case PLAYER_2: return SCORE_P2_X;
|
|
||||||
default: ASSERT(0); return 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
float HIGH_SCORE_Y( int p ) {
|
|
||||||
switch( p ) {
|
|
||||||
case PLAYER_1: return SCORE_P1_Y;
|
|
||||||
case PLAYER_2: return SCORE_P2_Y;
|
|
||||||
default: ASSERT(0); return 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
float METER_X( int p ) {
|
|
||||||
switch( p ) {
|
|
||||||
case PLAYER_1: return METER_P1_X;
|
|
||||||
case PLAYER_2: return METER_P2_X;
|
|
||||||
default: ASSERT(0); return 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
float METER_Y( int p ) {
|
|
||||||
switch( p ) {
|
|
||||||
case PLAYER_1: return METER_P1_Y;
|
|
||||||
case PLAYER_2: return METER_P2_Y;
|
|
||||||
default: ASSERT(0); return 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#define PLAYER_OPTIONS_X(p) ( p==PLAYER_1 ? PLAYER_OPTIONS_P1_X : PLAYER_OPTIONS_P2_X )
|
|
||||||
|
|
||||||
float PLAYER_OPTIONS_Y( int p ) {
|
|
||||||
switch( p ) {
|
|
||||||
case PLAYER_1: return PLAYER_OPTIONS_P1_Y;
|
|
||||||
case PLAYER_2: return PLAYER_OPTIONS_P2_Y;
|
|
||||||
default: ASSERT(0); return 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
const ScreenMessage SM_GoToPrevScreen = ScreenMessage(SM_User+1);
|
const ScreenMessage SM_GoToPrevScreen = ScreenMessage(SM_User+1);
|
||||||
const ScreenMessage SM_GoToNextScreen = ScreenMessage(SM_User+2);
|
const ScreenMessage SM_GoToNextScreen = ScreenMessage(SM_User+2);
|
||||||
@@ -233,10 +174,10 @@ ScreenSelectMusic::ScreenSelectMusic()
|
|||||||
m_sprHighScoreFrame[p].Load( THEME->GetPathTo("Graphics","select music score frame") );
|
m_sprHighScoreFrame[p].Load( THEME->GetPathTo("Graphics","select music score frame") );
|
||||||
m_sprHighScoreFrame[p].StopAnimating();
|
m_sprHighScoreFrame[p].StopAnimating();
|
||||||
m_sprHighScoreFrame[p].SetState( p );
|
m_sprHighScoreFrame[p].SetState( p );
|
||||||
m_sprHighScoreFrame[p].SetXY( HIGH_SCORE_X(p), HIGH_SCORE_Y(p) );
|
m_sprHighScoreFrame[p].SetXY( SCORE_X(p), SCORE_Y(p) );
|
||||||
this->AddSubActor( &m_sprHighScoreFrame[p] );
|
this->AddSubActor( &m_sprHighScoreFrame[p] );
|
||||||
|
|
||||||
m_HighScore[p].SetXY( HIGH_SCORE_X(p), HIGH_SCORE_Y(p) );
|
m_HighScore[p].SetXY( SCORE_X(p), SCORE_Y(p) );
|
||||||
m_HighScore[p].SetZoom( 0.6f );
|
m_HighScore[p].SetZoom( 0.6f );
|
||||||
m_HighScore[p].SetDiffuseColor( PlayerToColor(p) );
|
m_HighScore[p].SetDiffuseColor( PlayerToColor(p) );
|
||||||
this->AddSubActor( &m_HighScore[p] );
|
this->AddSubActor( &m_HighScore[p] );
|
||||||
@@ -428,11 +369,11 @@ void ScreenSelectMusic::TweenScoreOnAndOffAfterChangeSort()
|
|||||||
}
|
}
|
||||||
for( int i=0; i<apActorsInScore.GetSize(); i++ )
|
for( int i=0; i<apActorsInScore.GetSize(); i++ )
|
||||||
{
|
{
|
||||||
float fOriginalX = HIGH_SCORE_X(p);
|
float fOriginalX = apActorsInScore[i]->GetX();
|
||||||
apActorsInScore[i]->BeginTweening( TWEEN_TIME, TWEEN_BIAS_END ); // tween off screen
|
apActorsInScore[i]->BeginTweening( TWEEN_TIME, TWEEN_BIAS_END ); // tween off screen
|
||||||
apActorsInScore[i]->SetTweenX( fOriginalX+400 );
|
apActorsInScore[i]->SetTweenX( fOriginalX+400 );
|
||||||
|
|
||||||
apActorsInScore[i]->BeginTweeningQueued( 0.6f ); // sleep
|
apActorsInScore[i]->BeginTweeningQueued( 0.5f ); // sleep
|
||||||
|
|
||||||
apActorsInScore[i]->BeginTweeningQueued( 1, TWEEN_BIAS_BEGIN ); // tween back on screen
|
apActorsInScore[i]->BeginTweeningQueued( 1, TWEEN_BIAS_BEGIN ); // tween back on screen
|
||||||
apActorsInScore[i]->SetTweenX( fOriginalX );
|
apActorsInScore[i]->SetTweenX( fOriginalX );
|
||||||
|
|||||||
+85
-296
@@ -20,97 +20,49 @@
|
|||||||
#include "SongManager.h"
|
#include "SongManager.h"
|
||||||
|
|
||||||
const int DEFAULT_VISIBLE_ELEMENTS = 3;
|
const int DEFAULT_VISIBLE_ELEMENTS = 3;
|
||||||
|
const int DEFAULT_SPACING = 300;
|
||||||
|
|
||||||
const float SPACING3ELEMENTS = 310.0f;
|
const D3DXCOLOR COLOR_SELECTED = D3DXCOLOR(1.0f,1.0f,1.0f,1);
|
||||||
const float SPACING4ELEMENTS = 225.0f;
|
const D3DXCOLOR COLOR_NOT_SELECTED = D3DXCOLOR(0.4f,0.4f,0.4f,1);
|
||||||
const float SPACING5ELEMENTS = 150.0f;
|
|
||||||
|
|
||||||
|
|
||||||
ScrollingListDisplay::ScrollingListDisplay()
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
/************************************
|
|
||||||
Allows us to create a graphic element
|
|
||||||
in the scrolling list
|
|
||||||
*************************************/
|
|
||||||
|
|
||||||
void ScrollingListDisplay::Load( CString graphiclocation )
|
|
||||||
{
|
|
||||||
m_gLocation = graphiclocation;
|
|
||||||
m_sprListElement.Load( THEME->GetPathTo("Graphics",m_gLocation) );
|
|
||||||
this->AddSubActor( &m_sprListElement );
|
|
||||||
}
|
|
||||||
|
|
||||||
/***********************************
|
|
||||||
RedefineGraphic
|
|
||||||
|
|
||||||
Allows us to change a graphic
|
|
||||||
element in the scrolling list
|
|
||||||
************************************/
|
|
||||||
|
|
||||||
void ScrollingListDisplay::RedefineGraphic( CString graphiclocation )
|
|
||||||
{
|
|
||||||
m_gLocation = graphiclocation;
|
|
||||||
m_sprListElement.Load( THEME->GetPathTo("Graphics",m_gLocation) );
|
|
||||||
}
|
|
||||||
|
|
||||||
/*************************************
|
|
||||||
GetGraphicLocation
|
|
||||||
|
|
||||||
Returns the graphic filename from a
|
|
||||||
scrollinglist element
|
|
||||||
**************************************/
|
|
||||||
|
|
||||||
CString ScrollingListDisplay::GetGraphicLocation()
|
|
||||||
{
|
|
||||||
return m_gLocation;
|
|
||||||
}
|
|
||||||
|
|
||||||
/***************************************
|
/***************************************
|
||||||
ScrollingList
|
ScrollingList
|
||||||
|
|
||||||
Initializes Variables for the ScrollingList
|
Initializes Variables for the ScrollingList
|
||||||
****************************************/
|
****************************************/
|
||||||
|
|
||||||
ScrollingList::ScrollingList()
|
ScrollingList::ScrollingList()
|
||||||
{
|
{
|
||||||
m_iNumContents = 0;
|
m_iSelection = 0;
|
||||||
m_iNumVisElements = DEFAULT_VISIBLE_ELEMENTS;
|
m_fSelectionLag = 0;
|
||||||
m_iCurrentPos = 0;
|
m_iSpacing = DEFAULT_SPACING;
|
||||||
|
m_iNumVisible = DEFAULT_VISIBLE_ELEMENTS;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**************************************
|
ScrollingList::~ScrollingList()
|
||||||
CreateNewElement
|
|
||||||
|
|
||||||
Adds a new graphic element to the end of
|
|
||||||
the scrolling element
|
|
||||||
***************************************/
|
|
||||||
|
|
||||||
void ScrollingList::CreateNewElement( CString graphiclocation )
|
|
||||||
{
|
{
|
||||||
float CurrentSpacing;
|
Unload();
|
||||||
if (m_iNumVisElements <= 3)
|
|
||||||
{
|
|
||||||
CurrentSpacing = SPACING3ELEMENTS;
|
|
||||||
}
|
|
||||||
else if (m_iNumVisElements == 4)
|
|
||||||
{
|
|
||||||
CurrentSpacing = SPACING4ELEMENTS;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
CurrentSpacing = SPACING5ELEMENTS;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
m_ScrollingListDisplays[m_iNumContents].Load( graphiclocation );
|
void ScrollingList::Unload()
|
||||||
this->AddSubActor( &m_ScrollingListDisplays[m_iNumContents] );
|
{
|
||||||
|
for( int i=0; i<m_apSprites.GetSize(); i++ )
|
||||||
|
delete m_apSprites[i];
|
||||||
|
m_apSprites.RemoveAll();
|
||||||
|
}
|
||||||
|
|
||||||
m_ScrollingListDisplays[m_iNumContents].SetX( 0 - (CurrentSpacing * m_iNumContents) );
|
/************************************
|
||||||
|
Allows us to create a graphic element
|
||||||
if (m_iNumContents != SCRLIST_MAX_TOTAL_CONTENTS) // make sure that we cannot 'over create' menus
|
in the scrolling list
|
||||||
m_iNumContents = m_iNumContents + 1;
|
*************************************/
|
||||||
|
void ScrollingList::Load( const CStringArray& asGraphicPaths )
|
||||||
|
{
|
||||||
|
Unload();
|
||||||
|
for( int i=0; i<asGraphicPaths.GetSize(); i++ )
|
||||||
|
{
|
||||||
|
Sprite* pNewSprite = new Sprite;
|
||||||
|
pNewSprite->Load( asGraphicPaths[i] );
|
||||||
|
m_apSprites.Add( pNewSprite );
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -119,67 +71,12 @@ ShiftLeft
|
|||||||
|
|
||||||
Make the entire list shuffle left
|
Make the entire list shuffle left
|
||||||
**************************************/
|
**************************************/
|
||||||
|
void ScrollingList::Left()
|
||||||
|
{
|
||||||
|
ASSERT( m_apSprites.GetSize() > 0 ); // nothing loaded!
|
||||||
|
|
||||||
void ScrollingList::ShiftLeft()
|
m_iSelection = (m_iSelection + m_apSprites.GetSize() - 1) % m_apSprites.GetSize(); // decrement with wrapping
|
||||||
{
|
m_fSelectionLag -= 1;
|
||||||
if ( m_iCurrentPos == 0 ) // if we're at the start of the list wrap to the end
|
|
||||||
{
|
|
||||||
m_iCurrentPos = m_iNumContents - 1;
|
|
||||||
}
|
|
||||||
else // just decrease our position
|
|
||||||
{
|
|
||||||
m_iCurrentPos--;
|
|
||||||
}
|
|
||||||
|
|
||||||
float CurrentSpacing;
|
|
||||||
if (m_iNumVisElements <= 3)
|
|
||||||
{
|
|
||||||
CurrentSpacing = SPACING3ELEMENTS;
|
|
||||||
}
|
|
||||||
else if (m_iNumVisElements == 4)
|
|
||||||
{
|
|
||||||
CurrentSpacing = SPACING4ELEMENTS;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
CurrentSpacing = SPACING5ELEMENTS;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
SetCurrentPosition( m_iCurrentPos );
|
|
||||||
|
|
||||||
for (int i=10; i > 0; i-- ) // 21 elements (10 going in both directions plus a 0)
|
|
||||||
{
|
|
||||||
if (m_iCurrentPos - i >= 0) // set -ve -tweening
|
|
||||||
{
|
|
||||||
m_ScrollingListDisplays[m_iCurrentPos - i].SetX( 0 - ((i-1) * CurrentSpacing) - (CurrentSpacing * 2) );
|
|
||||||
m_ScrollingListDisplays[m_iCurrentPos - i].BeginTweening( 0.3f, TWEEN_BIAS_BEGIN );
|
|
||||||
m_ScrollingListDisplays[m_iCurrentPos - i].SetTweenX( 0 - (CurrentSpacing * i) );
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
m_ScrollingListDisplays[m_iNumContents - i].SetX( 0 - ((i-1) * CurrentSpacing) - (CurrentSpacing * 2));
|
|
||||||
m_ScrollingListDisplays[m_iNumContents - i].BeginTweening( 0.3f, TWEEN_BIAS_BEGIN );
|
|
||||||
m_ScrollingListDisplays[m_iNumContents - i].SetTweenX( 0 - (CurrentSpacing * i) );
|
|
||||||
}
|
|
||||||
|
|
||||||
if (m_iCurrentPos + i <= m_iNumContents - 1) // set +ve tweening
|
|
||||||
{
|
|
||||||
m_ScrollingListDisplays[m_iCurrentPos + i].SetX( 0 + (CurrentSpacing * i) + CurrentSpacing - (CurrentSpacing * 2));
|
|
||||||
m_ScrollingListDisplays[m_iCurrentPos + i].BeginTweening( 0.3f, TWEEN_BIAS_BEGIN );
|
|
||||||
m_ScrollingListDisplays[m_iCurrentPos + i].SetTweenX( 0 + (CurrentSpacing * i) );
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
m_ScrollingListDisplays[i-1].SetX( 0 + (CurrentSpacing * i) + CurrentSpacing - (CurrentSpacing * 2));
|
|
||||||
m_ScrollingListDisplays[i-1].BeginTweening( 0.3f, TWEEN_BIAS_BEGIN );
|
|
||||||
m_ScrollingListDisplays[i-1].SetTweenX( 0 + (CurrentSpacing * i) );
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
m_ScrollingListDisplays[m_iCurrentPos].SetX( 0 + CurrentSpacing - (CurrentSpacing * 2));
|
|
||||||
m_ScrollingListDisplays[m_iCurrentPos].BeginTweening( 0.3f, TWEEN_BIAS_BEGIN );
|
|
||||||
m_ScrollingListDisplays[m_iCurrentPos].SetTweenX( 0 );
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**************************************
|
/**************************************
|
||||||
@@ -187,67 +84,12 @@ ShiftRight
|
|||||||
|
|
||||||
Make the entire list shuffle right
|
Make the entire list shuffle right
|
||||||
**************************************/
|
**************************************/
|
||||||
|
void ScrollingList::Right()
|
||||||
|
{
|
||||||
|
ASSERT( m_apSprites.GetSize() > 0 ); // nothing loaded!
|
||||||
|
|
||||||
void ScrollingList::ShiftRight()
|
m_iSelection = (m_iSelection + 1) % m_apSprites.GetSize(); // increment with wrapping
|
||||||
{
|
m_fSelectionLag += 1;
|
||||||
if ( m_iCurrentPos == m_iNumContents - 1 ) // if we're at the end of the list wrap to the start
|
|
||||||
{
|
|
||||||
m_iCurrentPos = 0;
|
|
||||||
}
|
|
||||||
else // just decrease our position
|
|
||||||
{
|
|
||||||
m_iCurrentPos++;
|
|
||||||
}
|
|
||||||
|
|
||||||
float CurrentSpacing;
|
|
||||||
if (m_iNumVisElements <= 3)
|
|
||||||
{
|
|
||||||
CurrentSpacing = SPACING3ELEMENTS;
|
|
||||||
}
|
|
||||||
else if (m_iNumVisElements == 4)
|
|
||||||
{
|
|
||||||
CurrentSpacing = SPACING4ELEMENTS;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
CurrentSpacing = SPACING5ELEMENTS;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
SetCurrentPosition( m_iCurrentPos );
|
|
||||||
|
|
||||||
for (int i=10; i > 0; i-- ) // 21 elements (10 going in both directions plus a 0)
|
|
||||||
{
|
|
||||||
if (m_iCurrentPos - i >= 0) // set -ve -tweening
|
|
||||||
{
|
|
||||||
m_ScrollingListDisplays[m_iCurrentPos - i].SetX( 0 - ((i-1) * CurrentSpacing) );
|
|
||||||
m_ScrollingListDisplays[m_iCurrentPos - i].BeginTweening( 0.3f, TWEEN_BIAS_BEGIN );
|
|
||||||
m_ScrollingListDisplays[m_iCurrentPos - i].SetTweenX( 0 - (CurrentSpacing * i) );
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
m_ScrollingListDisplays[m_iNumContents - i].SetX( 0 - ((i-1) * CurrentSpacing) );
|
|
||||||
m_ScrollingListDisplays[m_iNumContents - i].BeginTweening( 0.3f, TWEEN_BIAS_BEGIN );
|
|
||||||
m_ScrollingListDisplays[m_iNumContents - i].SetTweenX( 0 - (CurrentSpacing * i) );
|
|
||||||
}
|
|
||||||
|
|
||||||
if (m_iCurrentPos + i <= m_iNumContents - 1) // set +ve tweening
|
|
||||||
{
|
|
||||||
m_ScrollingListDisplays[m_iCurrentPos + i].SetX( 0 + (CurrentSpacing * i) + CurrentSpacing );
|
|
||||||
m_ScrollingListDisplays[m_iCurrentPos + i].BeginTweening( 0.3f, TWEEN_BIAS_BEGIN );
|
|
||||||
m_ScrollingListDisplays[m_iCurrentPos + i].SetTweenX( 0 + (CurrentSpacing * i) );
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
m_ScrollingListDisplays[i-1].SetX( 0 + (CurrentSpacing * i) + CurrentSpacing );
|
|
||||||
m_ScrollingListDisplays[i-1].BeginTweening( 0.3f, TWEEN_BIAS_BEGIN );
|
|
||||||
m_ScrollingListDisplays[i-1].SetTweenX( 0 + (CurrentSpacing * i) );
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
m_ScrollingListDisplays[m_iCurrentPos].SetX( 0 + CurrentSpacing );
|
|
||||||
m_ScrollingListDisplays[m_iCurrentPos].BeginTweening( 0.3f, TWEEN_BIAS_BEGIN );
|
|
||||||
m_ScrollingListDisplays[m_iCurrentPos].SetTweenX( 0 );
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/***********************************
|
/***********************************
|
||||||
@@ -256,55 +98,19 @@ SetCurrentPostion
|
|||||||
From the current postion in the array, add graphic elements
|
From the current postion in the array, add graphic elements
|
||||||
in either direction to make the list seem infinite.
|
in either direction to make the list seem infinite.
|
||||||
***********************************/
|
***********************************/
|
||||||
|
void ScrollingList::SetSelection( int iIndex )
|
||||||
void ScrollingList::SetCurrentPosition( int CurrentPos )
|
|
||||||
{
|
{
|
||||||
m_iCurrentPos = CurrentPos;
|
m_iSelection = iIndex;
|
||||||
// Setup Spacing
|
|
||||||
float CurrentSpacing;
|
|
||||||
if (m_iNumVisElements <= 3)
|
|
||||||
{
|
|
||||||
CurrentSpacing = SPACING3ELEMENTS;
|
|
||||||
}
|
|
||||||
else if (m_iNumVisElements == 4)
|
|
||||||
{
|
|
||||||
CurrentSpacing = SPACING4ELEMENTS;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
CurrentSpacing = SPACING5ELEMENTS;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// ORDER SPECIFICALLY!
|
int ScrollingList::GetSelection()
|
||||||
// Central Element at front, then the next two behind, then the outer two behind them e.t.c.
|
|
||||||
// 21012 << Central element is 0, 1's are either side, 2's either side of those 3's come off-screen (regardless of spacing)
|
|
||||||
// we need 3's incase the user suddenly scrolls!!
|
|
||||||
|
|
||||||
for( int i=3; i > 0; i--)
|
|
||||||
{
|
{
|
||||||
// Find the -ve Element
|
return m_iSelection;
|
||||||
if ((CurrentPos - i) >= 0) // Bounds Checking: If we aren't under the first element
|
|
||||||
{
|
|
||||||
m_ScrollingListDisplays[CurrentPos-i].SetX( 0 - (i * CurrentSpacing ));
|
|
||||||
}
|
|
||||||
else // if we are under the final limit (by i)
|
|
||||||
{
|
|
||||||
m_ScrollingListDisplays[m_iNumContents+(CurrentPos - i)].SetX( 0 - (i * CurrentSpacing ));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Find the +ve Element
|
void ScrollingList::SetSpacing( int iSpacingInPixels )
|
||||||
if ((CurrentPos + i) <= m_iNumContents-1) // Bounds Checking: If we aren't over the final element
|
|
||||||
{
|
{
|
||||||
m_ScrollingListDisplays[CurrentPos+i].SetX( 0 + (i * CurrentSpacing ));
|
m_iSpacing = iSpacingInPixels;
|
||||||
}
|
|
||||||
else // if we are over the final limit (by i)
|
|
||||||
{
|
|
||||||
m_ScrollingListDisplays[i-1].SetX( 0 + (i * CurrentSpacing ));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Set The MIDDLE element
|
|
||||||
m_ScrollingListDisplays[CurrentPos].SetX( 0 );
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/******************************
|
/******************************
|
||||||
@@ -313,10 +119,9 @@ SetNumberVisibleElements
|
|||||||
Allows us to set whether 3,4 or 5
|
Allows us to set whether 3,4 or 5
|
||||||
elements are visible on screen at once
|
elements are visible on screen at once
|
||||||
*******************************/
|
*******************************/
|
||||||
|
void ScrollingList::SetNumberVisible( int iNumVisibleElements )
|
||||||
void ScrollingList::SetNumberVisibleElements( int VisibleElements )
|
|
||||||
{
|
{
|
||||||
m_iNumVisElements = VisibleElements;
|
m_iNumVisible = iNumVisibleElements;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*******************************
|
/*******************************
|
||||||
@@ -324,13 +129,28 @@ Update
|
|||||||
|
|
||||||
Updates the actorframe
|
Updates the actorframe
|
||||||
********************************/
|
********************************/
|
||||||
|
|
||||||
void ScrollingList::Update( float fDeltaTime )
|
void ScrollingList::Update( float fDeltaTime )
|
||||||
{
|
{
|
||||||
ActorFrame::Update( fDeltaTime );
|
ActorFrame::Update( fDeltaTime );
|
||||||
|
|
||||||
for( int i=0; i<m_iNumContents; i++ )
|
if( m_apSprites.GetSize() == 0 )
|
||||||
m_ScrollingListDisplays[i].Update( fDeltaTime );
|
return;
|
||||||
|
|
||||||
|
// update m_fLaggingSelection
|
||||||
|
if( m_fSelectionLag != 0 )
|
||||||
|
{
|
||||||
|
const float fSign = m_fSelectionLag<0 ? -1.0f : +1.0f;
|
||||||
|
const float fVelocity = -fSign + -m_fSelectionLag*10;
|
||||||
|
m_fSelectionLag += fVelocity * fDeltaTime;
|
||||||
|
|
||||||
|
// check to see if m_fLaggingSelection passed its destination
|
||||||
|
const float fNewSign = m_fSelectionLag<0 ? -1.0f : +1.0f;
|
||||||
|
if( (fSign<0) ^ (fNewSign<0) ) // they have different signs
|
||||||
|
m_fSelectionLag = 0; // snap
|
||||||
|
}
|
||||||
|
|
||||||
|
for( int i=0; i<m_apSprites.GetSize(); i++ )
|
||||||
|
m_apSprites[i]->Update( fDeltaTime );
|
||||||
}
|
}
|
||||||
|
|
||||||
/********************************
|
/********************************
|
||||||
@@ -338,66 +158,35 @@ DrawPrimitives
|
|||||||
|
|
||||||
Draws the elements onto the screen
|
Draws the elements onto the screen
|
||||||
*********************************/
|
*********************************/
|
||||||
|
|
||||||
void ScrollingList::DrawPrimitives()
|
void ScrollingList::DrawPrimitives()
|
||||||
{
|
{
|
||||||
const D3DXCOLOR OPT_NOT_SELECTED = D3DXCOLOR(0.4f,0.4f,0.4f,1);
|
ASSERT( m_apSprites.GetSize() > 0 );
|
||||||
const D3DXCOLOR OPT_SELECTED = D3DXCOLOR(1.0f,1.0f,1.0f,1);
|
|
||||||
|
|
||||||
for (int i=m_iNumContents; i>=0; i--)
|
for( int i=(m_iNumVisible)/2; i>= 0; i-- ) // draw outside to inside
|
||||||
{
|
{
|
||||||
if (i != m_iCurrentPos)
|
int iIndexToDraw1 = m_iSelection - i;
|
||||||
|
int iIndexToDraw2 = m_iSelection + i;
|
||||||
|
|
||||||
|
// wrap IndexToDraw*
|
||||||
|
iIndexToDraw1 = (iIndexToDraw1 + m_apSprites.GetSize()*300) % m_apSprites.GetSize(); // make sure this is positive
|
||||||
|
iIndexToDraw2 = iIndexToDraw2 % m_apSprites.GetSize();
|
||||||
|
|
||||||
|
ASSERT( iIndexToDraw1 >= 0 );
|
||||||
|
|
||||||
|
m_apSprites[iIndexToDraw1]->SetX( (-i+m_fSelectionLag) * m_iSpacing );
|
||||||
|
m_apSprites[iIndexToDraw2]->SetX( (+i+m_fSelectionLag) * m_iSpacing );
|
||||||
|
|
||||||
|
if( i==0 ) // so we don't draw 0 twice
|
||||||
{
|
{
|
||||||
m_ScrollingListDisplays[i].SetDiffuseColor( OPT_NOT_SELECTED );
|
m_apSprites[iIndexToDraw1]->SetDiffuseColor( COLOR_SELECTED );
|
||||||
|
m_apSprites[iIndexToDraw1]->Draw();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
m_ScrollingListDisplays[i].SetDiffuseColor( OPT_SELECTED );
|
m_apSprites[iIndexToDraw1]->SetDiffuseColor( COLOR_NOT_SELECTED );
|
||||||
|
m_apSprites[iIndexToDraw2]->SetDiffuseColor( COLOR_NOT_SELECTED );
|
||||||
|
m_apSprites[iIndexToDraw1]->Draw();
|
||||||
|
m_apSprites[iIndexToDraw2]->Draw();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// Start Drawing in a Specific Order For the elements around the current element
|
|
||||||
if (m_iCurrentPos == 0) // start of list?
|
|
||||||
{
|
|
||||||
m_ScrollingListDisplays[m_iNumContents - 2].Draw();
|
|
||||||
m_ScrollingListDisplays[2].Draw();
|
|
||||||
|
|
||||||
m_ScrollingListDisplays[m_iNumContents - 1].Draw();
|
|
||||||
m_ScrollingListDisplays[1].Draw();
|
|
||||||
}
|
|
||||||
else if (m_iCurrentPos == m_iNumContents - 1) // end of list
|
|
||||||
{
|
|
||||||
m_ScrollingListDisplays[1].Draw();
|
|
||||||
m_ScrollingListDisplays[m_iNumContents - 3].Draw();
|
|
||||||
|
|
||||||
m_ScrollingListDisplays[0].Draw();
|
|
||||||
m_ScrollingListDisplays[m_iNumContents - 2].Draw();
|
|
||||||
}
|
|
||||||
else if (m_iCurrentPos == 1) // near start
|
|
||||||
{
|
|
||||||
m_ScrollingListDisplays[m_iNumContents - 2].Draw();
|
|
||||||
m_ScrollingListDisplays[3].Draw();
|
|
||||||
|
|
||||||
m_ScrollingListDisplays[2].Draw();
|
|
||||||
m_ScrollingListDisplays[0].Draw();
|
|
||||||
}
|
|
||||||
else if (m_iCurrentPos == m_iNumContents - 2) // near end
|
|
||||||
{
|
|
||||||
m_ScrollingListDisplays[0].Draw();
|
|
||||||
m_ScrollingListDisplays[m_iNumContents - 4].Draw();
|
|
||||||
|
|
||||||
m_ScrollingListDisplays[m_iNumContents - 1].Draw();
|
|
||||||
m_ScrollingListDisplays[m_iNumContents - 3].Draw();
|
|
||||||
}
|
|
||||||
else // we're somewhere in the middle
|
|
||||||
{
|
|
||||||
m_ScrollingListDisplays[m_iCurrentPos + 2].Draw();
|
|
||||||
m_ScrollingListDisplays[m_iCurrentPos - 2].Draw();
|
|
||||||
m_ScrollingListDisplays[m_iCurrentPos - 1].Draw();
|
|
||||||
m_ScrollingListDisplays[m_iCurrentPos + 1].Draw();
|
|
||||||
}
|
|
||||||
|
|
||||||
m_ScrollingListDisplays[m_iCurrentPos].Draw();
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,8 @@
|
|||||||
|
#ifndef SCROLLINGLIST_H
|
||||||
|
#define SCROLLINGLIST_H
|
||||||
/*
|
/*
|
||||||
-----------------------------------------------------------------------------
|
-----------------------------------------------------------------------------
|
||||||
Class: ScrollingList.h
|
Class: ScrollingList
|
||||||
|
|
||||||
Desc: Creates an array of graphics which can scroll left and right.
|
Desc: Creates an array of graphics which can scroll left and right.
|
||||||
|
|
||||||
@@ -9,57 +11,37 @@
|
|||||||
-----------------------------------------------------------------------------
|
-----------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#pragma once
|
#include "ActorFrame.h"
|
||||||
#include "Screen.h"
|
|
||||||
#include "Sprite.h"
|
#include "Sprite.h"
|
||||||
#include "BitmapText.h"
|
|
||||||
#include "TransitionFade.h"
|
|
||||||
#include "RandomSample.h"
|
|
||||||
#include "RandomStream.h"
|
|
||||||
|
|
||||||
|
|
||||||
// const int SCRLIST_MAX_VISIBLE_CONTENTS = 5;
|
|
||||||
const int SCRLIST_MAX_TOTAL_CONTENTS = 20; // this is only meant for menu systems, not song lists
|
|
||||||
|
|
||||||
|
|
||||||
class ScrollingListDisplay : public ActorFrame
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
ScrollingListDisplay();
|
|
||||||
|
|
||||||
void Load( CString graphiclocation );
|
|
||||||
void RedefineGraphic( CString graphiclocation );
|
|
||||||
CString GetGraphicLocation();
|
|
||||||
|
|
||||||
CString m_gLocation;
|
|
||||||
Sprite m_sprListElement;
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
class ScrollingList : public ActorFrame
|
class ScrollingList : public ActorFrame
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
ScrollingList();
|
ScrollingList();
|
||||||
|
~ScrollingList();
|
||||||
|
|
||||||
|
void Load( const CStringArray& asGraphicPaths );
|
||||||
|
void Unload(); // delete all items. Called automatically on Load()
|
||||||
|
|
||||||
void SetCurrentPosition( int CurrentPos );
|
|
||||||
void SetNumberVisibleElements( int VisibleElements );
|
|
||||||
void CreateNewElement( CString graphiclocation);
|
|
||||||
virtual void Update( float fDeltaTime );
|
virtual void Update( float fDeltaTime );
|
||||||
virtual void DrawPrimitives();
|
virtual void DrawPrimitives();
|
||||||
void ShiftLeft();
|
|
||||||
void ShiftRight();
|
|
||||||
|
|
||||||
// void SetFromCourse( Course* pCourse );
|
void SetSelection( int iIndex );
|
||||||
|
int GetSelection();
|
||||||
|
void SetNumberVisible( int iNumVisibleElements );
|
||||||
|
void SetSpacing( int iSpacingInPixels );
|
||||||
|
|
||||||
|
void Left();
|
||||||
|
void Right();
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
|
||||||
// Quad m_quad;
|
int m_iSelection;
|
||||||
|
float m_fSelectionLag;
|
||||||
int m_iCurrentPos;
|
int m_iSpacing;
|
||||||
int m_iNumVisElements;
|
int m_iNumVisible;
|
||||||
int m_iNumContents;
|
CArray<Sprite*,Sprite*> m_apSprites; // stores the list of elements (left to right)
|
||||||
ScrollingListDisplay m_ScrollingListDisplays[SCRLIST_MAX_TOTAL_CONTENTS]; // stores the list of elements (from start to finish)
|
|
||||||
|
|
||||||
// float m_fTimeUntilScroll;
|
|
||||||
// float m_fItemAtTopOfList; // between 0 and m_iNumContents
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
#endif
|
||||||
@@ -56,7 +56,7 @@ LINK32=link.exe
|
|||||||
# ADD LINK32 $(intdir)\verstub.obj /nologo /subsystem:windows /map /debug /machine:I386
|
# ADD LINK32 $(intdir)\verstub.obj /nologo /subsystem:windows /map /debug /machine:I386
|
||||||
# Begin Special Build Tool
|
# Begin Special Build Tool
|
||||||
IntDir=.\../Release
|
IntDir=.\../Release
|
||||||
TargetDir=\temp\stepmania
|
TargetDir=\stepmania\stepmania
|
||||||
TargetName=StepMania
|
TargetName=StepMania
|
||||||
SOURCE="$(InputPath)"
|
SOURCE="$(InputPath)"
|
||||||
PreLink_Cmds=verinc cl /Zl /nologo /c verstub.cpp /Fo$(IntDir)\
|
PreLink_Cmds=verinc cl /Zl /nologo /c verstub.cpp /Fo$(IntDir)\
|
||||||
@@ -92,7 +92,7 @@ LINK32=link.exe
|
|||||||
# SUBTRACT LINK32 /profile /incremental:no /nodefaultlib
|
# SUBTRACT LINK32 /profile /incremental:no /nodefaultlib
|
||||||
# Begin Special Build Tool
|
# Begin Special Build Tool
|
||||||
IntDir=.\../Debug
|
IntDir=.\../Debug
|
||||||
TargetDir=\temp\stepmania
|
TargetDir=\stepmania\stepmania
|
||||||
TargetName=StepMania-debug
|
TargetName=StepMania-debug
|
||||||
SOURCE="$(InputPath)"
|
SOURCE="$(InputPath)"
|
||||||
PreLink_Cmds=verinc cl /Zl /nologo /c verstub.cpp /Fo$(IntDir)\
|
PreLink_Cmds=verinc cl /Zl /nologo /c verstub.cpp /Fo$(IntDir)\
|
||||||
@@ -1356,6 +1356,10 @@ SOURCE=.\Tls.cpp
|
|||||||
SOURCE=.\Tls.h
|
SOURCE=.\Tls.h
|
||||||
# End Source File
|
# End Source File
|
||||||
# End Group
|
# End Group
|
||||||
|
# Begin Group "Utils"
|
||||||
|
|
||||||
|
# PROP Default_Filter ""
|
||||||
|
# End Group
|
||||||
# Begin Source File
|
# Begin Source File
|
||||||
|
|
||||||
SOURCE=.\error.bmp
|
SOURCE=.\error.bmp
|
||||||
|
|||||||
Reference in New Issue
Block a user