ScreenSelect metrics cleanup
|
After Width: | Height: | Size: 4.3 KiB |
|
After Width: | Height: | Size: 3.7 KiB |
|
After Width: | Height: | Size: 4.4 KiB |
|
After Width: | Height: | Size: 4.3 KiB |
|
After Width: | Height: | Size: 5.8 KiB |
|
After Width: | Height: | Size: 5.0 KiB |
|
After Width: | Height: | Size: 4.3 KiB |
|
After Width: | Height: | Size: 4.2 KiB |
|
After Width: | Height: | Size: 29 KiB |
|
After Width: | Height: | Size: 13 KiB |
|
After Width: | Height: | Size: 22 KiB |
|
After Width: | Height: | Size: 23 KiB |
|
After Width: | Height: | Size: 25 KiB |
|
After Width: | Height: | Size: 19 KiB |
|
After Width: | Height: | Size: 19 KiB |
|
After Width: | Height: | Size: 30 KiB |
|
After Width: | Height: | Size: 2.6 KiB |
|
After Width: | Height: | Size: 2.9 KiB |
|
After Width: | Height: | Size: 2.7 KiB |
|
After Width: | Height: | Size: 2.9 KiB |
|
After Width: | Height: | Size: 2.7 KiB |
|
After Width: | Height: | Size: 9.5 KiB |
|
After Width: | Height: | Size: 11 KiB |
|
After Width: | Height: | Size: 10 KiB |
|
After Width: | Height: | Size: 20 KiB |
|
After Width: | Height: | Size: 9.6 KiB |
|
After Width: | Height: | Size: 13 KiB |
|
After Width: | Height: | Size: 26 KiB |
|
After Width: | Height: | Size: 19 KiB |
|
After Width: | Height: | Size: 26 KiB |
|
After Width: | Height: | Size: 18 KiB |
@@ -80,7 +80,12 @@ BounceJoinMessage=1
|
|||||||
FoldOnJoin=1
|
FoldOnJoin=1
|
||||||
|
|
||||||
[ScreenSelectStyle]
|
[ScreenSelectStyle]
|
||||||
Choices=single,versus,couple,double,solo
|
NumChoices=5
|
||||||
|
Choice1=Style,single
|
||||||
|
Choice2=Style,versus
|
||||||
|
Choice3=Style,couple
|
||||||
|
Choice4=Style,double
|
||||||
|
Choice5=Style,solo
|
||||||
HelpText=Use &LEFT; &RIGHT; to select, then press START
|
HelpText=Use &LEFT; &RIGHT; to select, then press START
|
||||||
TimerSeconds=40
|
TimerSeconds=40
|
||||||
NextScreen1=ScreenSelectDifficulty
|
NextScreen1=ScreenSelectDifficulty
|
||||||
@@ -221,7 +226,15 @@ NextScreen=ScreenSelectGroup
|
|||||||
HelpText=
|
HelpText=
|
||||||
|
|
||||||
[ScreenSelectDifficulty]
|
[ScreenSelectDifficulty]
|
||||||
Choices=arcade-beginner,arcade-easy,arcade-medium,arcade-hard,nonstop,oni,endless,rave
|
NumChoices=8
|
||||||
|
Choice1=PlayMode,arcade;Difficulty,beginner
|
||||||
|
Choice2=PlayMode,arcade;Difficulty,easy
|
||||||
|
Choice3=PlayMode,arcade;Difficulty,medium
|
||||||
|
Choice4=PlayMode,arcade;Difficulty,hard
|
||||||
|
Choice5=PlayMode,nonstop
|
||||||
|
Choice6=PlayMode,oni
|
||||||
|
Choice7=PlayMode,endless
|
||||||
|
Choice8=PlayMode,rave
|
||||||
NumChoicesOnPage1=4
|
NumChoicesOnPage1=4
|
||||||
HelpText=Use &LEFT; &RIGHT; to select, then press START
|
HelpText=Use &LEFT; &RIGHT; to select, then press START
|
||||||
TimerSeconds=40
|
TimerSeconds=40
|
||||||
|
|||||||
@@ -50,52 +50,67 @@ bool ModeChoice::FromString( CString sChoice, bool bIgnoreUnknown )
|
|||||||
|
|
||||||
bool bChoiceIsInvalid = false;
|
bool bChoiceIsInvalid = false;
|
||||||
|
|
||||||
CStringArray asBits;
|
CStringArray asCommands;
|
||||||
split( sChoice, "-", asBits );
|
split( sChoice, ";", asCommands );
|
||||||
for( unsigned b=0; b<asBits.size(); b++ )
|
for( unsigned i=0; i<asCommands.size(); i++ )
|
||||||
{
|
{
|
||||||
CString sBit = asBits[b];
|
CString sCommand = asCommands[i];
|
||||||
|
|
||||||
Game game = GAMEMAN->StringToGameType( sBit );
|
CStringArray asBits;
|
||||||
if( game != GAME_INVALID )
|
split( sCommand, ",", asBits );
|
||||||
|
|
||||||
|
CString sName = asBits[0];
|
||||||
|
CString sValue = (asBits.size()>1) ? asBits[1] : "";
|
||||||
|
|
||||||
|
sName.MakeLower();
|
||||||
|
sValue.MakeLower();
|
||||||
|
|
||||||
|
if( sName == "game" )
|
||||||
{
|
{
|
||||||
this->game = game;
|
Game game = GAMEMAN->StringToGameType( sValue );
|
||||||
continue;
|
if( game != GAME_INVALID )
|
||||||
|
this->game = game;
|
||||||
|
else
|
||||||
|
bChoiceIsInvalid |= true;
|
||||||
}
|
}
|
||||||
|
|
||||||
Style style = GAMEMAN->GameAndStringToStyle( GAMESTATE->m_CurGame, sBit );
|
|
||||||
if( style != STYLE_INVALID )
|
if( sName == "style" )
|
||||||
{
|
{
|
||||||
this->style = style;
|
Style style = GAMEMAN->GameAndStringToStyle( GAMESTATE->m_CurGame, sValue );
|
||||||
// There is a choices that allows players to choose a style. Allow joining.
|
if( style != STYLE_INVALID )
|
||||||
GAMESTATE->m_bPlayersCanJoin = true;
|
{
|
||||||
continue;
|
this->style = style;
|
||||||
|
// There is a choices that allows players to choose a style. Allow joining.
|
||||||
|
GAMESTATE->m_bPlayersCanJoin = true;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
bChoiceIsInvalid |= true;
|
||||||
}
|
}
|
||||||
|
|
||||||
PlayMode pm = StringToPlayMode( sBit );
|
if( sName == "playmode" )
|
||||||
if( pm != PLAY_MODE_INVALID )
|
|
||||||
{
|
{
|
||||||
this->pm = pm;
|
PlayMode pm = StringToPlayMode( sValue );
|
||||||
continue;
|
if( pm != PLAY_MODE_INVALID )
|
||||||
|
this->pm = pm;
|
||||||
|
else
|
||||||
|
bChoiceIsInvalid |= true;
|
||||||
}
|
}
|
||||||
|
|
||||||
Difficulty dc = StringToDifficulty( sBit );
|
if( sName == "difficulty" )
|
||||||
if( dc != DIFFICULTY_INVALID )
|
|
||||||
{
|
{
|
||||||
this->dc = dc;
|
Difficulty dc = StringToDifficulty( sValue );
|
||||||
continue;
|
if( dc != DIFFICULTY_INVALID )
|
||||||
|
this->dc = dc;
|
||||||
|
else
|
||||||
|
bChoiceIsInvalid |= true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if( sName == "announcer" )
|
||||||
|
{
|
||||||
|
sAnnouncer = sValue;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Never show this error to the user. It occurs all the time in
|
|
||||||
// non-dance gametypes.
|
|
||||||
// if( !bIgnoreUnknown )
|
|
||||||
// {
|
|
||||||
// CString sError = ssprintf( "The choice token '%s' is not recognized as a Game, Style, PlayMode, or Difficulty. The choice containing this token will be ignored.", sBit.c_str() );
|
|
||||||
// LOG->Warn( sError );
|
|
||||||
// if( DISPLAY->IsWindowed() )
|
|
||||||
// HOOKS->MessageBoxOK( sError );
|
|
||||||
// }
|
|
||||||
bChoiceIsInvalid |= true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if( this->style != STYLE_INVALID )
|
if( this->style != STYLE_INVALID )
|
||||||
|
|||||||
@@ -28,16 +28,12 @@
|
|||||||
#include "arch/ArchHooks/ArchHooks.h"
|
#include "arch/ArchHooks/ArchHooks.h"
|
||||||
|
|
||||||
|
|
||||||
#define CHOICES THEME->GetMetric (m_sName,"Choices")
|
#define NUM_CHOICES THEME->GetMetricI(m_sName,"NumChoices")
|
||||||
|
#define CHOICE( choice ) THEME->GetMetric (m_sName,ssprintf("Choice%d",choice+1))
|
||||||
#define HELP_TEXT THEME->GetMetric (m_sName,"HelpText")
|
#define HELP_TEXT THEME->GetMetric (m_sName,"HelpText")
|
||||||
#define TIMER_SECONDS THEME->GetMetricI(m_sName,"TimerSeconds")
|
#define TIMER_SECONDS THEME->GetMetricI(m_sName,"TimerSeconds")
|
||||||
#define NEXT_SCREEN( choice ) THEME->GetMetric (m_sName,ssprintf("NextScreen%d",choice+1))
|
#define NEXT_SCREEN( choice ) THEME->GetMetric (m_sName,ssprintf("NextScreen%d",choice+1))
|
||||||
|
|
||||||
// Temporary hack: specify announcer in selection
|
|
||||||
#define SPECIFY_ANNOUNCER THEME->HasMetric(m_sName,"Announcer1")
|
|
||||||
#define ANNOUNCER( choice ) THEME->GetMetric (m_sName,ssprintf("Announcer%d",choice+1))
|
|
||||||
|
|
||||||
|
|
||||||
ScreenSelect::ScreenSelect( CString sClassName ) : Screen(sClassName)
|
ScreenSelect::ScreenSelect( CString sClassName ) : Screen(sClassName)
|
||||||
{
|
{
|
||||||
LOG->Trace( "ScreenSelect::ScreenSelect()" );
|
LOG->Trace( "ScreenSelect::ScreenSelect()" );
|
||||||
@@ -48,19 +44,13 @@ ScreenSelect::ScreenSelect( CString sClassName ) : Screen(sClassName)
|
|||||||
// Set this true later if we discover a choice that chooses the Style
|
// Set this true later if we discover a choice that chooses the Style
|
||||||
|
|
||||||
|
|
||||||
CStringArray asChoices;
|
for( unsigned c=0; c<NUM_CHOICES; c++ )
|
||||||
split( CHOICES, ",", asChoices );
|
|
||||||
|
|
||||||
for( unsigned c=0; c<asChoices.size(); c++ )
|
|
||||||
{
|
{
|
||||||
|
CString sChoice = CHOICE(c);
|
||||||
|
|
||||||
ModeChoice mc;
|
ModeChoice mc;
|
||||||
|
mc.FromString(sChoice);
|
||||||
if( SPECIFY_ANNOUNCER )
|
m_aModeChoices.push_back( mc );
|
||||||
mc.sAnnouncer = ANNOUNCER( c );
|
|
||||||
|
|
||||||
if( mc.FromString(asChoices[c]) )
|
|
||||||
m_aModeChoices.push_back( mc );
|
|
||||||
|
|
||||||
|
|
||||||
CString sBGAnimationDir = THEME->GetPathTo(BGAnimations, ssprintf("%s %s",m_sName.c_str(),mc.name), true); // true="optional"
|
CString sBGAnimationDir = THEME->GetPathTo(BGAnimations, ssprintf("%s %s",m_sName.c_str(),mc.name), true); // true="optional"
|
||||||
if( sBGAnimationDir == "" )
|
if( sBGAnimationDir == "" )
|
||||||
|
|||||||
@@ -53,13 +53,13 @@ ScreenSelectDifficulty::ScreenSelectDifficulty() : ScreenSelect( "ScreenSelectDi
|
|||||||
m_ModeChoices[PAGE_2].push_back( m_aModeChoices[c] );
|
m_ModeChoices[PAGE_2].push_back( m_aModeChoices[c] );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
c = 0;
|
||||||
for( int page=0; page<NUM_PAGES; page++ )
|
for( int page=0; page<NUM_PAGES; page++ )
|
||||||
{
|
{
|
||||||
|
for( unsigned choice=0; choice<m_ModeChoices[page].size(); choice++, c++ )
|
||||||
for( unsigned choice=0; choice<m_ModeChoices[page].size(); choice++ )
|
|
||||||
{
|
{
|
||||||
CString sInfoFile = ssprintf( "ScreenSelectDifficulty info %s", m_ModeChoices[page][choice].name );
|
CString sInfoFile = ssprintf( "ScreenSelectDifficulty info%d", c+1 );
|
||||||
CString sPictureFile = ssprintf( "ScreenSelectDifficulty picture %s", m_ModeChoices[page][choice].name );
|
CString sPictureFile = ssprintf( "ScreenSelectDifficulty picture%d", c+1 );
|
||||||
|
|
||||||
m_sprPicture[page][choice].SetName( ssprintf("PicturePage%dChoice%d",page+1,choice+1) );
|
m_sprPicture[page][choice].SetName( ssprintf("PicturePage%dChoice%d",page+1,choice+1) );
|
||||||
m_sprPicture[page][choice].Load( THEME->GetPathToG(sPictureFile) );
|
m_sprPicture[page][choice].Load( THEME->GetPathToG(sPictureFile) );
|
||||||
|
|||||||
@@ -38,7 +38,7 @@ ScreenSelectStyle::ScreenSelectStyle() : ScreenSelect( "ScreenSelectStyle" )
|
|||||||
//
|
//
|
||||||
// Load icon
|
// Load icon
|
||||||
//
|
//
|
||||||
CString sIconElementName = ssprintf("ScreenSelectStyle icon %s", mc.name );
|
CString sIconElementName = ssprintf("ScreenSelectStyle icon%d",i+1);
|
||||||
CString sIconPath = THEME->GetPathToG(sIconElementName);
|
CString sIconPath = THEME->GetPathToG(sIconElementName);
|
||||||
|
|
||||||
m_textIcon[i].SetName( ssprintf("Icon%d",i+1) );
|
m_textIcon[i].SetName( ssprintf("Icon%d",i+1) );
|
||||||
@@ -61,7 +61,7 @@ ScreenSelectStyle::ScreenSelectStyle() : ScreenSelect( "ScreenSelectStyle" )
|
|||||||
//
|
//
|
||||||
// Load Picture
|
// Load Picture
|
||||||
//
|
//
|
||||||
CString sPictureElementName = ssprintf("ScreenSelectStyle picture %s", mc.name );
|
CString sPictureElementName = ssprintf("ScreenSelectStyle picture%d",i+1);
|
||||||
CString sPicturePath = THEME->GetPathToG(sPictureElementName);
|
CString sPicturePath = THEME->GetPathToG(sPictureElementName);
|
||||||
if( sPicturePath != "" )
|
if( sPicturePath != "" )
|
||||||
{
|
{
|
||||||
@@ -75,7 +75,7 @@ ScreenSelectStyle::ScreenSelectStyle() : ScreenSelect( "ScreenSelectStyle" )
|
|||||||
//
|
//
|
||||||
// Load info
|
// Load info
|
||||||
//
|
//
|
||||||
CString sInfoElementName = ssprintf("ScreenSelectStyle info %s", mc.name );
|
CString sInfoElementName = ssprintf("ScreenSelectStyle info%d",i+1);
|
||||||
CString sInfoPath = THEME->GetPathToG(sInfoElementName);
|
CString sInfoPath = THEME->GetPathToG(sInfoElementName);
|
||||||
if( sInfoPath != "" )
|
if( sInfoPath != "" )
|
||||||
{
|
{
|
||||||
|
|||||||