Pass ActorCommand structures to Actor instead of unparsed command strings.
This way, we can potentially do the parsing early and not parse inside of Actor as the command is executing.
This commit is contained in:
@@ -2,7 +2,6 @@
|
||||
#include "ActiveAttackList.h"
|
||||
#include "RageUtil.h"
|
||||
#include "GameState.h"
|
||||
#include "ThemeManager.h"
|
||||
#include "Inventory.h"
|
||||
#include "RageTimer.h"
|
||||
|
||||
|
||||
+9
-11
@@ -7,6 +7,7 @@
|
||||
#include "GameConstantsAndTypes.h"
|
||||
#include "RageLog.h"
|
||||
#include "arch/Dialog/Dialog.h"
|
||||
#include "Foreach.h"
|
||||
|
||||
float Actor::g_fCurrentBGMTime = 0, Actor::g_fCurrentBGMBeat;
|
||||
|
||||
@@ -616,13 +617,10 @@ void Actor::AddRotationR( float rot )
|
||||
RageQuatMultiply( &DestTweenState().quat, DestTweenState().quat, RageQuatFromR(rot) );
|
||||
}
|
||||
|
||||
void Actor::Command( const CString &sCommands )
|
||||
void Actor::Command( const ActorCommands &vCommands )
|
||||
{
|
||||
vector<ActorCommand> vCommands;
|
||||
ParseCommands( sCommands, vCommands );
|
||||
|
||||
for( unsigned i=0; i<vCommands.size(); i++ )
|
||||
this->HandleCommand( vCommands[i] );
|
||||
FOREACH_CONST( ActorCommand, vCommands, c )
|
||||
this->HandleCommand( *c );
|
||||
}
|
||||
|
||||
void Actor::HandleCommand( const ActorCommand &command )
|
||||
@@ -655,9 +653,9 @@ void Actor::HandleCommand( const ActorCommand &command )
|
||||
else if( sName=="x" ) SetX( fParam(1) );
|
||||
else if( sName=="y" ) SetY( fParam(1) );
|
||||
else if( sName=="z" ) SetZ( fParam(1) );
|
||||
else if( sName=="addx" ) SetX( GetDestX()+fParam(1) );
|
||||
else if( sName=="addy" ) SetY( GetDestY()+fParam(1) );
|
||||
else if( sName=="addz" ) SetZ( GetDestZ()+fParam(1) );
|
||||
else if( sName=="addx" ) AddX( fParam(1) );
|
||||
else if( sName=="addy" ) AddY( fParam(1) );
|
||||
else if( sName=="addz" ) AddZ( fParam(1) );
|
||||
else if( sName=="zoom" ) SetZoom( fParam(1) );
|
||||
else if( sName=="zoomx" ) SetZoomX( fParam(1) );
|
||||
else if( sName=="zoomy" ) SetZoomY( fParam(1) );
|
||||
@@ -765,10 +763,10 @@ void Actor::HandleCommand( const ActorCommand &command )
|
||||
EndHandleParams;
|
||||
}
|
||||
|
||||
float Actor::GetCommandLengthSeconds( const CString &sCommands )
|
||||
float Actor::GetCommandsLengthSeconds( const ActorCommands &vCommands )
|
||||
{
|
||||
Actor temp;
|
||||
temp.Command(sCommands);
|
||||
temp.Command(vCommands);
|
||||
|
||||
return temp.GetTweenTimeLeft();
|
||||
}
|
||||
|
||||
@@ -103,6 +103,9 @@ public:
|
||||
void SetY( float y ) { DestTweenState().pos.y = y; };
|
||||
void SetZ( float z ) { DestTweenState().pos.z = z; };
|
||||
void SetXY( float x, float y ) { DestTweenState().pos.x = x; DestTweenState().pos.y = y; };
|
||||
void AddX( float x ) { SetX( GetDestX()+x ); }
|
||||
void AddY( float y ) { SetY( GetDestY()+y ); }
|
||||
void AddZ( float z ) { SetZ( GetDestZ()+z ); }
|
||||
|
||||
// height and width vary depending on zoom
|
||||
float GetUnzoomedWidth() { return m_size.x; }
|
||||
@@ -302,9 +305,9 @@ public:
|
||||
//
|
||||
// Commands
|
||||
//
|
||||
void Command( const CString &sCommands );
|
||||
void Command( const ActorCommands &vCommands );
|
||||
virtual void HandleCommand( const ActorCommand &command ); // derivable
|
||||
static float GetCommandLengthSeconds( const CString &sCommands );
|
||||
static float GetCommandsLengthSeconds( const ActorCommands &vCommands );
|
||||
|
||||
//
|
||||
// Animation
|
||||
|
||||
@@ -52,7 +52,7 @@ CString ActorCommand::GetOriginalCommandString() const
|
||||
return join( ",", asTokens );
|
||||
}
|
||||
|
||||
void ParseCommands( const CString &sCommands, vector<ActorCommand> &vCommandsOut )
|
||||
void ParseActorCommands( const CString &sCommands, ActorCommands &vCommandsOut )
|
||||
{
|
||||
vCommandsOut.clear();
|
||||
CStringArray vsCommands;
|
||||
@@ -68,6 +68,13 @@ void ParseCommands( const CString &sCommands, vector<ActorCommand> &vCommandsOut
|
||||
}
|
||||
}
|
||||
|
||||
ActorCommands ParseActorCommands( const CString &sCommands )
|
||||
{
|
||||
ActorCommands vCommands;
|
||||
ParseActorCommands( sCommands, vCommands );
|
||||
return vCommands;
|
||||
}
|
||||
|
||||
/*
|
||||
* (c) 2004 Chris Danford
|
||||
* All rights reserved.
|
||||
|
||||
@@ -32,9 +32,15 @@ struct ActorCommand
|
||||
CString GetOriginalCommandString() const; // for when reporting an error in number of params
|
||||
};
|
||||
|
||||
typedef vector<ActorCommand> ActorCommands;
|
||||
|
||||
// Take a command list string and return pointers to each of the tokens in the
|
||||
// string. sCommand list is a list of commands separated by ';'.
|
||||
void ParseCommands( const CString &sCommands, vector<ActorCommand> &vCommandsOut );
|
||||
// TODO: This is expensive to do during the game. Eventually,
|
||||
// move all calls to ParseActorCommands to happen during load, then execute
|
||||
// from the parsed ActorCommand structures.
|
||||
void ParseActorCommands( const CString &sCommands, ActorCommands &vCommandsOut );
|
||||
ActorCommands ParseActorCommands( const CString &sCommands );
|
||||
|
||||
|
||||
#define BeginHandleParams int iMaxIndexAccessed = 0;
|
||||
|
||||
@@ -67,7 +67,7 @@ void ActorFrame::DrawPrimitives()
|
||||
m_SubActors[i]->Draw();
|
||||
}
|
||||
|
||||
void ActorFrame::RunCommandOnChildren( const CString &cmd )
|
||||
void ActorFrame::RunCommandOnChildren( const ActorCommands &cmd )
|
||||
{
|
||||
for( unsigned i=0; i<m_SubActors.size(); i++ )
|
||||
m_SubActors[i]->Command( cmd );
|
||||
|
||||
@@ -19,7 +19,7 @@ public:
|
||||
|
||||
void DeleteAllChildren();
|
||||
|
||||
virtual void RunCommandOnChildren( const CString &cmd ); /* but not on self */
|
||||
virtual void RunCommandOnChildren( const ActorCommands &cmds ); /* but not on self */
|
||||
virtual void RunCommandOnChildren( const ActorCommand &cmd ); /* but not on self */
|
||||
virtual void HandleCommand( const ActorCommand &command ); // derivable
|
||||
|
||||
|
||||
@@ -288,7 +288,9 @@ void UtilCommand( Actor& actor, const CString &sClassName, const CString &sComma
|
||||
// if( actor.GetHidden() )
|
||||
// return 0;
|
||||
|
||||
actor.Command( "playcommand," + sCommandName );
|
||||
ActorCommand ac;
|
||||
ac.Set("playcommand,"+sCommandName);
|
||||
actor.HandleCommand( ac );
|
||||
|
||||
// HACK: It's very often that we command things to TweenOffScreen
|
||||
// that we aren't drawing. We know that an Actor is not being
|
||||
@@ -305,7 +307,7 @@ void UtilCommand( Actor& actor, const CString &sClassName, const CString &sComma
|
||||
sClassName.c_str(), sCommandName.c_str()) );
|
||||
}
|
||||
|
||||
actor.Command( THEME->GetMetric(sClassName,actor.GetID()+sCommandName+"Command") );
|
||||
actor.Command( THEME->GetMetricA(sClassName,actor.GetID()+sCommandName+"Command") );
|
||||
}
|
||||
|
||||
void AutoActor::Load( const CString &sPath )
|
||||
|
||||
@@ -100,7 +100,7 @@ void AttackDisplay::SetAttack( const CString &sText )
|
||||
m_sprAttack.SetDiffuseAlpha( 1 );
|
||||
m_sprAttack.Load( path );
|
||||
const CString sName = ssprintf( "%sP%i", sText.c_str(), m_PlayerNumber+1 );
|
||||
m_sprAttack.Command( THEME->GetMetric("AttackDisplay", sName + "OnCommand" ) );
|
||||
m_sprAttack.Command( THEME->GetMetricA("AttackDisplay", sName + "OnCommand" ) );
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
@@ -172,13 +172,13 @@ void BGAnimation::LoadFromAniDir( CString sAniDir )
|
||||
ActorScroller::SetDestinationItem( int(m_SubActors.size()-1+fItemPaddingEnd) );
|
||||
}
|
||||
|
||||
CString InitCommand;
|
||||
if( ini.GetValue( "BGAnimation", "InitCommand", InitCommand ) )
|
||||
CString sInitCommand;
|
||||
if( ini.GetValue( "BGAnimation", "InitCommand", sInitCommand ) )
|
||||
{
|
||||
/* There's an InitCommand. Run it now. This can be used to eg. change Z to
|
||||
* modify draw order between BGAs in a Foreground. Most things should be done
|
||||
* in metrics.ini commands, not here. */
|
||||
this->Command( InitCommand );
|
||||
this->Command( ParseActorCommands(sInitCommand) );
|
||||
}
|
||||
}
|
||||
else
|
||||
|
||||
@@ -7,7 +7,6 @@
|
||||
#include "RageTimer.h"
|
||||
#include "RageLog.h"
|
||||
#include "song.h"
|
||||
#include "ThemeManager.h"
|
||||
#include "ActorCollision.h"
|
||||
#include "Sprite.h"
|
||||
#include "RageDisplay.h"
|
||||
@@ -669,13 +668,14 @@ void BGAnimationLayer::Update( float fDeltaTime )
|
||||
switch( m_Type )
|
||||
{
|
||||
case TYPE_SPRITE:
|
||||
for( unsigned i=0; i<m_SubActors.size(); i++ )
|
||||
if( m_fTexCoordVelocityX || m_fTexCoordVelocityY )
|
||||
{
|
||||
if( m_fTexCoordVelocityX || m_fTexCoordVelocityY )
|
||||
for( unsigned i=0; i<m_SubActors.size(); i++ )
|
||||
{
|
||||
m_SubActors[i]->Command( ssprintf("StretchTexCoords,%f,%f",
|
||||
Sprite *pSprite = (Sprite*)m_SubActors[i];
|
||||
pSprite->StretchTexCoords(
|
||||
fDeltaTime*m_fTexCoordVelocityX,
|
||||
fDeltaTime*m_fTexCoordVelocityY) );
|
||||
fDeltaTime*m_fTexCoordVelocityY );
|
||||
}
|
||||
}
|
||||
break;
|
||||
@@ -991,10 +991,10 @@ void BGAnimationLayer::GainFocus( float fRate, bool bRewindMovie, bool bLoop )
|
||||
// TODO: Don't special case subActor[0]. The movie layer should be set up with
|
||||
// a LoseFocusCommand that pauses, and a GainFocusCommand that plays.
|
||||
if( bRewindMovie )
|
||||
RunCommandOnChildren( "position,0" );
|
||||
RunCommandOnChildren( ssprintf("loop,%i",bLoop) );
|
||||
RunCommandOnChildren( "play" );
|
||||
RunCommandOnChildren( ssprintf("rate,%f",fRate) );
|
||||
RunCommandOnChildren( ParseActorCommands("position,0") );
|
||||
RunCommandOnChildren( ParseActorCommands(ssprintf("loop,%i",bLoop)) );
|
||||
RunCommandOnChildren( ParseActorCommands("play") );
|
||||
RunCommandOnChildren( ParseActorCommands(ssprintf("rate,%f",fRate)) );
|
||||
|
||||
if( m_fRepeatCommandEverySeconds == -1 ) // if not repeating
|
||||
{
|
||||
@@ -1003,7 +1003,7 @@ void BGAnimationLayer::GainFocus( float fRate, bool bRewindMovie, bool bLoop )
|
||||
* should run OnCommand when they're actually displayed, when GainFocus
|
||||
* gets called. We've already run OnCommand; abort it so we don't run tweens
|
||||
* twice. */
|
||||
RunCommandOnChildren( "stoptweening" );
|
||||
RunCommandOnChildren( ParseActorCommands("stoptweening") );
|
||||
PlayCommand( "On" );
|
||||
}
|
||||
|
||||
@@ -1017,7 +1017,7 @@ void BGAnimationLayer::LoseFocus()
|
||||
if( !m_SubActors.size() )
|
||||
return;
|
||||
|
||||
RunCommandOnChildren( "pause" );
|
||||
RunCommandOnChildren( ParseActorCommands("pause") );
|
||||
|
||||
PlayCommand( "LoseFocus" );
|
||||
}
|
||||
@@ -1025,7 +1025,7 @@ void BGAnimationLayer::LoseFocus()
|
||||
void BGAnimationLayer::PlayCommand( const CString &sCommandName )
|
||||
{
|
||||
for( unsigned i=0; i<m_SubActors.size(); i++ )
|
||||
m_SubActors[i]->Command( ssprintf("playcommand,%s", sCommandName.c_str()) );
|
||||
m_SubActors[i]->Command( ParseActorCommands("playcommand,"+sCommandName) );
|
||||
|
||||
CString sKey = sCommandName;
|
||||
sKey.MakeLower();
|
||||
@@ -1035,7 +1035,7 @@ void BGAnimationLayer::PlayCommand( const CString &sCommandName )
|
||||
return;
|
||||
|
||||
for( unsigned i=0; i<m_SubActors.size(); i++ )
|
||||
m_SubActors[i]->Command( it->second );
|
||||
m_SubActors[i]->Command( ParseActorCommands(it->second) );
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
@@ -4,10 +4,9 @@
|
||||
#include "GameConstantsAndTypes.h"
|
||||
#include "PrefsManager.h"
|
||||
#include "GameState.h"
|
||||
#include "ThemeManager.h"
|
||||
#include "Course.h"
|
||||
#include "Style.h"
|
||||
|
||||
#include "ThemeManager.h"
|
||||
|
||||
#define NORMAL_COLOR THEME->GetMetricC(m_sName,"NormalColor")
|
||||
#define CHANGE_COLOR THEME->GetMetricC(m_sName,"ChangeColor")
|
||||
|
||||
@@ -7,7 +7,6 @@
|
||||
#include "RageLog.h"
|
||||
#include "RageTextureManager.h"
|
||||
#include "GameState.h"
|
||||
#include "ThemeManager.h"
|
||||
#include "PrefsManager.h"
|
||||
#include "NoteTypes.h"
|
||||
#include "Steps.h"
|
||||
@@ -22,14 +21,14 @@
|
||||
|
||||
const float FADE_SECONDS = 1.0f;
|
||||
|
||||
#define LEFT_EDGE THEME->GetMetricF("Background","LeftEdge")
|
||||
#define TOP_EDGE THEME->GetMetricF("Background","TopEdge")
|
||||
#define RIGHT_EDGE THEME->GetMetricF("Background","RightEdge")
|
||||
#define BOTTOM_EDGE THEME->GetMetricF("Background","BottomEdge")
|
||||
ThemeMetric<bool> BLINK_DANGER_ALL("Background","BlinkDangerAll");
|
||||
ThemeMetric<bool> DANGER_ALL_IS_OPAQUE("Background","DangerAllIsOpaque");
|
||||
#define BRIGHTNESS_FADE_COMMAND THEME->GetMetric("Background","BrightnessFadeCommand")
|
||||
#define RECT_BACKGROUND RectF(LEFT_EDGE,TOP_EDGE,RIGHT_EDGE,BOTTOM_EDGE)
|
||||
ThemeMetric<float> LEFT_EDGE ("Background","LeftEdge");
|
||||
ThemeMetric<float> TOP_EDGE ("Background","TopEdge");
|
||||
ThemeMetric<float> RIGHT_EDGE ("Background","RightEdge");
|
||||
ThemeMetric<float> BOTTOM_EDGE ("Background","BottomEdge");
|
||||
#define RECT_BACKGROUND RectF (LEFT_EDGE,TOP_EDGE,RIGHT_EDGE,BOTTOM_EDGE)
|
||||
ThemeMetric<bool> BLINK_DANGER_ALL ("Background","BlinkDangerAll");
|
||||
ThemeMetric<bool> DANGER_ALL_IS_OPAQUE ("Background","DangerAllIsOpaque");
|
||||
ThemeMetric<ActorCommands> BRIGHTNESS_FADE_COMMAND ("Background","BrightnessFadeCommand");
|
||||
|
||||
static float g_fBackgroundCenterWidth = 40;
|
||||
const CString STATIC_BACKGROUND = "static background";
|
||||
@@ -436,9 +435,9 @@ void Background::LoadFromSong( const Song* pSong )
|
||||
* may look something like "BGAnimation, BGAnimationLayer, Sprite" or it
|
||||
* may be deeper, like "BGAnimation, BGAnimationLayer, BGAnimation,
|
||||
* BGAnimationLayer, Sprite". */
|
||||
pBGA->Command( "propagate,1" );
|
||||
pBGA->Command( "effectclock,music" );
|
||||
pBGA->Command( "propagate,0" );
|
||||
pBGA->Command( ParseActorCommands("propagate,1") );
|
||||
pBGA->Command( ParseActorCommands("effectclock,music") );
|
||||
pBGA->Command( ParseActorCommands("propagate,0") );
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -2,7 +2,6 @@
|
||||
#include "Banner.h"
|
||||
#include "PrefsManager.h"
|
||||
#include "SongManager.h"
|
||||
#include "ThemeManager.h"
|
||||
#include "RageUtil.h"
|
||||
#include "song.h"
|
||||
#include "RageTextureManager.h"
|
||||
|
||||
@@ -6,7 +6,6 @@
|
||||
#include "PrefsManager.h"
|
||||
#include "RageLog.h"
|
||||
#include "RageDisplay.h"
|
||||
#include "ThemeManager.h"
|
||||
#include "Steps.h"
|
||||
#include "Style.h"
|
||||
#include "Model.h"
|
||||
|
||||
@@ -21,10 +21,10 @@ ThemeMetric<float> NUMBER_MAX_ZOOM ("Combo","NumberMaxZoom");
|
||||
ThemeMetric<float> NUMBER_MAX_ZOOM_AT ("Combo","NumberMaxZoomAt");
|
||||
ThemeMetric<float> PULSE_ZOOM ("Combo","PulseZoom");
|
||||
ThemeMetric<float> C_TWEEN_SECONDS ("Combo","TweenSeconds");
|
||||
ThemeMetric<CString> FULL_COMBO_GREATS_COMMAND ("Combo","FullComboGreatsCommand");
|
||||
ThemeMetric<CString> FULL_COMBO_PERFECTS_COMMAND ("Combo","FullComboPerfectsCommand");
|
||||
ThemeMetric<CString> FULL_COMBO_MARVELOUSES_COMMAND ("Combo","FullComboMarvelousesCommand");
|
||||
ThemeMetric<CString> FULL_COMBO_BROKEN_COMMAND ("Combo","FullComboBrokenCommand");
|
||||
ThemeMetric<ActorCommands> FULL_COMBO_GREATS_COMMAND ("Combo","FullComboGreatsCommand");
|
||||
ThemeMetric<ActorCommands> FULL_COMBO_PERFECTS_COMMAND ("Combo","FullComboPerfectsCommand");
|
||||
ThemeMetric<ActorCommands> FULL_COMBO_MARVELOUSES_COMMAND ("Combo","FullComboMarvelousesCommand");
|
||||
ThemeMetric<ActorCommands> FULL_COMBO_BROKEN_COMMAND ("Combo","FullComboBrokenCommand");
|
||||
ThemeMetric<bool> SHOW_MISS_COMBO ("Combo","ShowMissCombo");
|
||||
|
||||
|
||||
|
||||
@@ -3,8 +3,8 @@
|
||||
#include "song.h"
|
||||
#include "ThemeMetric.h"
|
||||
|
||||
ThemeMetric<CString> ICONONCOMMAND ("DifficultyDisplay","IconOnCommand");
|
||||
ThemeMetric<CString> ICONOFFCOMMAND ("DifficultyDisplay","IconOffCommand");
|
||||
ThemeMetric<ActorCommands> ICONONCOMMAND ("DifficultyDisplay","IconOnCommand");
|
||||
ThemeMetric<ActorCommands> ICONOFFCOMMAND ("DifficultyDisplay","IconOffCommand");
|
||||
|
||||
DifficultyDisplay::DifficultyDisplay()
|
||||
{
|
||||
|
||||
@@ -233,10 +233,10 @@ void DifficultyList::PositionItems()
|
||||
if( m_bShown && m < (int)m_Rows.size() )
|
||||
bHidden = m_Rows[m].m_bHidden;
|
||||
|
||||
const CString cmd = ssprintf( "diffusealpha,%f", bHidden? 0.0f:1.0f );
|
||||
m_Lines[m].m_Description.Command( cmd );
|
||||
m_Lines[m].m_Meter.RunCommandOnChildren( cmd );
|
||||
m_Lines[m].m_Number.Command( cmd );
|
||||
const ActorCommands cmds = ParseActorCommands( ssprintf("diffusealpha,%f",bHidden?0.0f:1.0f) );
|
||||
m_Lines[m].m_Description.Command( cmds );
|
||||
m_Lines[m].m_Meter.RunCommandOnChildren( cmds );
|
||||
m_Lines[m].m_Number.Command( cmds );
|
||||
}
|
||||
|
||||
|
||||
@@ -356,9 +356,10 @@ void DifficultyList::HideRows()
|
||||
{
|
||||
for( unsigned m = 0; m < m_Rows.size(); ++m )
|
||||
{
|
||||
m_Lines[m].m_Description.Command( "finishtweening;diffusealpha,0" );
|
||||
m_Lines[m].m_Meter.RunCommandOnChildren( "finishtweening;diffusealpha,0" );
|
||||
m_Lines[m].m_Number.Command( "finishtweening;diffusealpha,0" );
|
||||
static const ActorCommands cmds = ParseActorCommands( "finishtweening;diffusealpha,0" );
|
||||
m_Lines[m].m_Description.Command( cmds );
|
||||
m_Lines[m].m_Meter.RunCommandOnChildren( cmds );
|
||||
m_Lines[m].m_Number.Command( cmds );
|
||||
}
|
||||
}
|
||||
|
||||
@@ -368,9 +369,10 @@ void DifficultyList::TweenOnScreen()
|
||||
m_bShown = true;
|
||||
for( unsigned m = 0; m < m_Rows.size(); ++m )
|
||||
{
|
||||
m_Lines[m].m_Description.Command( "finishtweening" );
|
||||
m_Lines[m].m_Meter.RunCommandOnChildren( "finishtweening" );
|
||||
m_Lines[m].m_Number.Command( "finishtweening" );
|
||||
static const ActorCommands cmds = ParseActorCommands( "finishtweening" );
|
||||
m_Lines[m].m_Description.Command( cmds );
|
||||
m_Lines[m].m_Meter.RunCommandOnChildren( cmds );
|
||||
m_Lines[m].m_Number.Command( cmds );
|
||||
}
|
||||
|
||||
// PositionItems();
|
||||
|
||||
@@ -63,7 +63,7 @@ private:
|
||||
|
||||
vector<Row> m_Rows;
|
||||
|
||||
ThemeMetric<CString> MOVE_COMMAND;
|
||||
ThemeMetric<ActorCommands> MOVE_COMMAND;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
@@ -31,7 +31,7 @@ void GhostArrow::Load( CString sNoteSkin, CString sButton, CString sElement )
|
||||
{
|
||||
CString sJudge = TapNoteScoreToString( i );
|
||||
CString sCommand = Capitalize(sJudge)+"Command";
|
||||
m_sScoreCommand[i] = NOTESKIN->GetMetric( sNoteSkin, m_sName, sCommand );
|
||||
m_acScoreCommand[i] = NOTESKIN->GetMetricA( sNoteSkin, m_sName, sCommand );
|
||||
}
|
||||
}
|
||||
|
||||
@@ -53,7 +53,7 @@ void GhostArrow::Step( TapNoteScore score )
|
||||
|
||||
m_spr[score].SetHidden( false );
|
||||
m_spr[score].StopTweening();
|
||||
m_spr[score].Command( m_sScoreCommand[score] );
|
||||
m_spr[score].Command( m_acScoreCommand[score] );
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
@@ -21,7 +21,7 @@ public:
|
||||
protected:
|
||||
PlayerNumber m_PlayerNumber;
|
||||
Sprite m_spr[NUM_TAP_NOTE_SCORES];
|
||||
CString m_sScoreCommand[NUM_TAP_NOTE_SCORES];
|
||||
ActorCommands m_acScoreCommand[NUM_TAP_NOTE_SCORES];
|
||||
};
|
||||
|
||||
|
||||
|
||||
@@ -7,13 +7,14 @@
|
||||
#include "Steps.h"
|
||||
#include "RageDisplay.h"
|
||||
#include "RageMath.h"
|
||||
#include "ThemeMetric.h"
|
||||
|
||||
#define LABEL_OFFSET_X( i ) THEME->GetMetricF("GrooveRadar",ssprintf("Label%dOffsetX",i+1))
|
||||
#define LABEL_OFFSET_Y( i ) THEME->GetMetricF("GrooveRadar",ssprintf("Label%dOffsetY",i+1))
|
||||
#define LABEL_ON_COMMAND THEME->GetMetric ("GrooveRadar","LabelOnCommand")
|
||||
#define LABEL_ON_DELAY THEME->GetMetricF("GrooveRadar","LabelOnDelay")
|
||||
#define LABEL_ON_COMMAND_POST_DELAY THEME->GetMetric ("GrooveRadar","LabelOnCommandPostDelay")
|
||||
#define DISABLE_RADAR THEME->GetMetricI("GrooveRadar","DisableRadar")
|
||||
#define LABEL_OFFSET_X( i ) THEME->GetMetricF("GrooveRadar",ssprintf("Label%dOffsetX",i+1))
|
||||
#define LABEL_OFFSET_Y( i ) THEME->GetMetricF("GrooveRadar",ssprintf("Label%dOffsetY",i+1))
|
||||
static const ThemeMetric<ActorCommands> LABEL_ON_COMMAND ("GrooveRadar","LabelOnCommand");
|
||||
static const ThemeMetric<float> LABEL_ON_DELAY ("GrooveRadar","LabelOnDelay");
|
||||
static const ThemeMetric<ActorCommands> LABEL_ON_COMMAND_POST_DELAY ("GrooveRadar","LabelOnCommandPostDelay");
|
||||
static const ThemeMetric<bool> DISABLE_RADAR ("GrooveRadar","DisableRadar");
|
||||
|
||||
float RADAR_VALUE_ROTATION( int iValueIndex ) { return PI/2 + PI*2 / 5.0f * iValueIndex; }
|
||||
|
||||
@@ -81,7 +82,7 @@ GrooveRadar::GrooveRadarValueMap::GrooveRadarValueMap()
|
||||
|
||||
void GrooveRadar::GrooveRadarValueMap::SetFromSteps( PlayerNumber pn, Steps* pSteps ) // NULL means no song
|
||||
{
|
||||
if(DISABLE_RADAR == 1) // if the theme says not to disable it
|
||||
if( (bool)DISABLE_RADAR ) // if the theme says not to disable it
|
||||
return;
|
||||
if( pSteps != NULL )
|
||||
{
|
||||
|
||||
+12
-11
@@ -3,21 +3,22 @@
|
||||
#include "ThemeManager.h"
|
||||
#include "SongManager.h"
|
||||
#include "RageLog.h"
|
||||
#include "ThemeMetric.h"
|
||||
|
||||
/* If this actor is used anywhere other than SelectGroup, we
|
||||
* can add a setting that changes which metric group we pull
|
||||
* settings out of, so it can be configured separately. */
|
||||
#define START_X THEME->GetMetricF("GroupList","StartX")
|
||||
#define START_Y THEME->GetMetricF("GroupList","StartY")
|
||||
#define SPACING_X THEME->GetMetricF("GroupList","SpacingX")
|
||||
#define SPACING_Y THEME->GetMetricF("GroupList","SpacingY")
|
||||
#define SCROLL_TWEEN_COMMAND THEME->GetMetric ("GroupList","ScrollTweenCommand")
|
||||
#define GAIN_FOCUS_ITEM_COMMAND THEME->GetMetric ("GroupList","GainFocusItemCommand")
|
||||
#define LOSE_FOCUS_ITEM_COMMAND THEME->GetMetric ("GroupList","LoseFocusItemCommand")
|
||||
#define GAIN_FOCUS_GROUP_COMMAND THEME->GetMetric ("GroupList","GainFocusGroupCommand")
|
||||
#define LOSE_FOCUS_GROUP_COMMAND THEME->GetMetric ("GroupList","LoseFocusGroupCommand")
|
||||
#define HIDE_ITEM_COMMAND THEME->GetMetric ("GroupList","HideItemCommand")
|
||||
#define SHOW_ITEM_COMMAND THEME->GetMetric ("GroupList","ShowItemCommand")
|
||||
static const ThemeMetric<float> START_X ("GroupList","StartX");
|
||||
static const ThemeMetric<float> START_Y ("GroupList","StartY");
|
||||
static const ThemeMetric<float> SPACING_X ("GroupList","SpacingX");
|
||||
static const ThemeMetric<float> SPACING_Y ("GroupList","SpacingY");
|
||||
static const ThemeMetric<ActorCommands> SCROLL_TWEEN_COMMAND ("GroupList","ScrollTweenCommand");
|
||||
static const ThemeMetric<ActorCommands> GAIN_FOCUS_ITEM_COMMAND ("GroupList","GainFocusItemCommand");
|
||||
static const ThemeMetric<ActorCommands> LOSE_FOCUS_ITEM_COMMAND ("GroupList","LoseFocusItemCommand");
|
||||
static const ThemeMetric<ActorCommands> GAIN_FOCUS_GROUP_COMMAND ("GroupList","GainFocusGroupCommand");
|
||||
static const ThemeMetric<ActorCommands> LOSE_FOCUS_GROUP_COMMAND ("GroupList","LoseFocusGroupCommand");
|
||||
static const ThemeMetric<ActorCommands> HIDE_ITEM_COMMAND ("GroupList","HideItemCommand");
|
||||
static const ThemeMetric<ActorCommands> SHOW_ITEM_COMMAND ("GroupList","ShowItemCommand");
|
||||
|
||||
const int MAX_GROUPS_ONSCREEN = 7;
|
||||
|
||||
|
||||
@@ -10,7 +10,7 @@ HoldGhostArrow::HoldGhostArrow()
|
||||
void HoldGhostArrow::Load( CString sNoteSkin, CString sButton, CString sElement )
|
||||
{
|
||||
Sprite::Load( NOTESKIN->GetPathToFromNoteSkinAndButton(sNoteSkin, sButton, sElement) ); // not optional
|
||||
this->Command( NOTESKIN->GetMetric(sNoteSkin,"HoldGhostArrow","OnCommand") );
|
||||
this->Command( NOTESKIN->GetMetricA(sNoteSkin,"HoldGhostArrow","OnCommand") );
|
||||
}
|
||||
|
||||
void HoldGhostArrow::Update( float fDeltaTime )
|
||||
|
||||
@@ -6,12 +6,12 @@
|
||||
#include "ThemeManager.h"
|
||||
#include "ThemeMetric.h"
|
||||
|
||||
ThemeMetric<CString> OK_COMMAND ("HoldJudgment","OKCommand");
|
||||
ThemeMetric<CString> NG_COMMAND ("HoldJudgment","NGCommand");
|
||||
ThemeMetric<CString> OK_ODD_COMMAND ("HoldJudgment","OKOddCommand");
|
||||
ThemeMetric<CString> NG_ODD_COMMAND ("HoldJudgment","NGOddCommand");
|
||||
ThemeMetric<CString> OK_EVEN_COMMAND ("HoldJudgment","OKEvenCommand");
|
||||
ThemeMetric<CString> NG_EVEN_COMMAND ("HoldJudgment","NGEvenCommand");
|
||||
ThemeMetric<ActorCommands> OK_COMMAND ("HoldJudgment","OKCommand");
|
||||
ThemeMetric<ActorCommands> NG_COMMAND ("HoldJudgment","NGCommand");
|
||||
ThemeMetric<ActorCommands> OK_ODD_COMMAND ("HoldJudgment","OKOddCommand");
|
||||
ThemeMetric<ActorCommands> NG_ODD_COMMAND ("HoldJudgment","NGOddCommand");
|
||||
ThemeMetric<ActorCommands> OK_EVEN_COMMAND ("HoldJudgment","OKEvenCommand");
|
||||
ThemeMetric<ActorCommands> NG_EVEN_COMMAND ("HoldJudgment","NGEvenCommand");
|
||||
|
||||
|
||||
HoldJudgment::HoldJudgment()
|
||||
|
||||
+18
-18
@@ -7,26 +7,26 @@
|
||||
#include "ThemeManager.h"
|
||||
#include "ThemeMetric.h"
|
||||
|
||||
static ThemeMetric<CString> MARVELOUS_COMMAND ("Judgment","MarvelousCommand");
|
||||
static ThemeMetric<CString> PERFECT_COMMAND ("Judgment","PerfectCommand");
|
||||
static ThemeMetric<CString> GREAT_COMMAND ("Judgment","GreatCommand");
|
||||
static ThemeMetric<CString> GOOD_COMMAND ("Judgment","GoodCommand");
|
||||
static ThemeMetric<CString> BOO_COMMAND ("Judgment","BooCommand");
|
||||
static ThemeMetric<CString> MISS_COMMAND ("Judgment","MissCommand");
|
||||
static ThemeMetric<ActorCommands> MARVELOUS_COMMAND ("Judgment","MarvelousCommand");
|
||||
static ThemeMetric<ActorCommands> PERFECT_COMMAND ("Judgment","PerfectCommand");
|
||||
static ThemeMetric<ActorCommands> GREAT_COMMAND ("Judgment","GreatCommand");
|
||||
static ThemeMetric<ActorCommands> GOOD_COMMAND ("Judgment","GoodCommand");
|
||||
static ThemeMetric<ActorCommands> BOO_COMMAND ("Judgment","BooCommand");
|
||||
static ThemeMetric<ActorCommands> MISS_COMMAND ("Judgment","MissCommand");
|
||||
|
||||
static ThemeMetric<CString> MARVELOUS_ODD_COMMAND ("Judgment","MarvelousOddCommand");
|
||||
static ThemeMetric<CString> PERFECT_ODD_COMMAND ("Judgment","PerfectOddCommand");
|
||||
static ThemeMetric<CString> GREAT_ODD_COMMAND ("Judgment","GreatOddCommand");
|
||||
static ThemeMetric<CString> GOOD_ODD_COMMAND ("Judgment","GoodOddCommand");
|
||||
static ThemeMetric<CString> BOO_ODD_COMMAND ("Judgment","BooOddCommand");
|
||||
static ThemeMetric<CString> MISS_ODD_COMMAND ("Judgment","MissOddCommand");
|
||||
static ThemeMetric<ActorCommands> MARVELOUS_ODD_COMMAND ("Judgment","MarvelousOddCommand");
|
||||
static ThemeMetric<ActorCommands> PERFECT_ODD_COMMAND ("Judgment","PerfectOddCommand");
|
||||
static ThemeMetric<ActorCommands> GREAT_ODD_COMMAND ("Judgment","GreatOddCommand");
|
||||
static ThemeMetric<ActorCommands> GOOD_ODD_COMMAND ("Judgment","GoodOddCommand");
|
||||
static ThemeMetric<ActorCommands> BOO_ODD_COMMAND ("Judgment","BooOddCommand");
|
||||
static ThemeMetric<ActorCommands> MISS_ODD_COMMAND ("Judgment","MissOddCommand");
|
||||
|
||||
static ThemeMetric<CString> MARVELOUS_EVEN_COMMAND ("Judgment","MarvelousEvenCommand");
|
||||
static ThemeMetric<CString> PERFECT_EVEN_COMMAND ("Judgment","PerfectEvenCommand");
|
||||
static ThemeMetric<CString> GREAT_EVEN_COMMAND ("Judgment","GreatEvenCommand");
|
||||
static ThemeMetric<CString> GOOD_EVEN_COMMAND ("Judgment","GoodEvenCommand");
|
||||
static ThemeMetric<CString> BOO_EVEN_COMMAND ("Judgment","BooEvenCommand");
|
||||
static ThemeMetric<CString> MISS_EVEN_COMMAND ("Judgment","MissEvenCommand");
|
||||
static ThemeMetric<ActorCommands> MARVELOUS_EVEN_COMMAND ("Judgment","MarvelousEvenCommand");
|
||||
static ThemeMetric<ActorCommands> PERFECT_EVEN_COMMAND ("Judgment","PerfectEvenCommand");
|
||||
static ThemeMetric<ActorCommands> GREAT_EVEN_COMMAND ("Judgment","GreatEvenCommand");
|
||||
static ThemeMetric<ActorCommands> GOOD_EVEN_COMMAND ("Judgment","GoodEvenCommand");
|
||||
static ThemeMetric<ActorCommands> BOO_EVEN_COMMAND ("Judgment","BooEvenCommand");
|
||||
static ThemeMetric<ActorCommands> MISS_EVEN_COMMAND ("Judgment","MissEvenCommand");
|
||||
|
||||
|
||||
Judgment::Judgment()
|
||||
|
||||
@@ -3,13 +3,13 @@
|
||||
#include "ScreenDimensions.h"
|
||||
|
||||
#include "GameState.h"
|
||||
#include "ThemeManager.h"
|
||||
#include "ThemeMetric.h"
|
||||
|
||||
#define IN_COMMAND THEME->GetMetric("LyricDisplay","InCommand")
|
||||
#define OUT_COMMAND THEME->GetMetric("LyricDisplay","OutCommand")
|
||||
#define WIPE_DIM_FACTOR THEME->GetMetricC("LyricDisplay","WipeDimFactor")
|
||||
static ThemeMetric<ActorCommands> IN_COMMAND ("LyricDisplay","InCommand");
|
||||
static ThemeMetric<ActorCommands> OUT_COMMAND ("LyricDisplay","OutCommand");
|
||||
static ThemeMetric<RageColor> WIPE_DIM_FACTOR ("LyricDisplay","WipeDimFactor");
|
||||
|
||||
float g_TweenInTime, g_TweenOutTime;
|
||||
static float g_TweenInTime, g_TweenOutTime;
|
||||
|
||||
LyricDisplay::LyricDisplay()
|
||||
{
|
||||
@@ -30,8 +30,8 @@ void LyricDisplay::Init()
|
||||
m_iCurLyricNumber = 0;
|
||||
|
||||
/* Update global cache: */
|
||||
g_TweenInTime = Actor::GetCommandLengthSeconds(IN_COMMAND);
|
||||
g_TweenOutTime = Actor::GetCommandLengthSeconds(OUT_COMMAND);
|
||||
g_TweenInTime = Actor::GetCommandsLengthSeconds(IN_COMMAND);
|
||||
g_TweenOutTime = Actor::GetCommandsLengthSeconds(OUT_COMMAND);
|
||||
m_fLastSecond = -500;
|
||||
}
|
||||
|
||||
|
||||
@@ -8,11 +8,12 @@
|
||||
#include "ThemeManager.h"
|
||||
#include "Font.h"
|
||||
#include "GameSoundManager.h"
|
||||
#include "ThemeMetric.h"
|
||||
|
||||
#define WARNING_START THEME->GetMetricI("MenuTimer","WarningStart")
|
||||
#define WARNING_BEEP_START THEME->GetMetricI("MenuTimer","WarningBeepStart")
|
||||
#define WARNING_COMMAND(i) THEME->GetMetric ("MenuTimer", ssprintf("WarningCommand%i",i))
|
||||
#define ON_COMMAND THEME->GetMetric ("MenuTimer","OnCommand")
|
||||
static const ThemeMetric<int> WARNING_START ("MenuTimer","WarningStart");
|
||||
static const ThemeMetric<int> WARNING_BEEP_START ("MenuTimer","WarningBeepStart");
|
||||
#define WARNING_COMMAND(i) THEME->GetMetricA ("MenuTimer", ssprintf("WarningCommand%i",i))
|
||||
static const ThemeMetric<ActorCommands> ON_COMMAND ("MenuTimer","OnCommand");
|
||||
|
||||
static const int TIMER_SECONDS = 99;
|
||||
static const int MAX_STALL_SECONDS = 30;
|
||||
|
||||
@@ -1,17 +1,18 @@
|
||||
#include "global.h"
|
||||
#include "MusicList.h"
|
||||
#include "ThemeManager.h"
|
||||
#include "ThemeMetric.h"
|
||||
|
||||
/* If this actor is used anywhere other than SelectGroup, we
|
||||
* can add a setting that changes which metric group we pull
|
||||
* settings out of, so it can be configured separately. */
|
||||
#define NUM_COLUMNS THEME->GetMetricI("MusicList","NumColumns")
|
||||
#define NUM_ROWS THEME->GetMetricI("MusicList","NumRows")
|
||||
#define START_X THEME->GetMetricF("MusicList","StartX")
|
||||
#define START_Y THEME->GetMetricF("MusicList","StartY")
|
||||
#define SPACING_X THEME->GetMetricF("MusicList","SpacingX")
|
||||
#define CROP_WIDTH THEME->GetMetricF("MusicList","CropWidth")
|
||||
#define INIT_COMMAND THEME->GetMetric ("MusicList","InitCommand")
|
||||
static const ThemeMetric<int> NUM_COLUMNS ("MusicList","NumColumns");
|
||||
static const ThemeMetric<int> NUM_ROWS ("MusicList","NumRows");
|
||||
static const ThemeMetric<float> START_X ("MusicList","StartX");
|
||||
static const ThemeMetric<float> START_Y ("MusicList","StartY");
|
||||
static const ThemeMetric<float> SPACING_X ("MusicList","SpacingX");
|
||||
static const ThemeMetric<float> CROP_WIDTH ("MusicList","CropWidth");
|
||||
static const ThemeMetric<ActorCommands> INIT_COMMAND ("MusicList","InitCommand");
|
||||
|
||||
MusicList::MusicList()
|
||||
{
|
||||
|
||||
@@ -1364,13 +1364,13 @@ void MusicWheel::TweenOnScreen(bool changing_sort)
|
||||
}
|
||||
|
||||
m_ScrollBar.SetX( SCROLL_BAR_X );
|
||||
m_ScrollBar.Command( "addx,+30" );
|
||||
m_ScrollBar.AddX( 30 );
|
||||
if(changing_sort)
|
||||
m_ScrollBar.BeginTweening( 0.2f ); // sleep
|
||||
else
|
||||
m_ScrollBar.BeginTweening( 0.7f ); // sleep
|
||||
m_ScrollBar.BeginTweening( 0.2f , Actor::TWEEN_ACCELERATE );
|
||||
m_ScrollBar.Command( "addx,-30" );
|
||||
m_ScrollBar.AddX( -30 );
|
||||
|
||||
for( int i=0; i<NUM_WHEEL_ITEMS; i++ )
|
||||
{
|
||||
|
||||
@@ -75,8 +75,9 @@ void NoteFieldMode::Load(IniFile &ini, CString id, int pn)
|
||||
GetValue( ini, pn, id, "PixelsDrawAheadScale", m_fFirstPixelToDrawScale );
|
||||
GetValue( ini, pn, id, "PixelsDrawBehindScale", m_fLastPixelToDrawScale );
|
||||
|
||||
GetValue( ini, pn, id, "Judgment", m_JudgmentCmd );
|
||||
GetValue( ini, pn, id, "Combo", m_ComboCmd );
|
||||
CString s;
|
||||
if( GetValue( ini, pn, id, "Judgment", s ) ) m_JudgmentCmd = ParseActorCommands(s);
|
||||
if( GetValue( ini, pn, id, "Combo", s ) ) m_ComboCmd = ParseActorCommands(s);
|
||||
|
||||
/* Load per-track data: */
|
||||
int t;
|
||||
@@ -91,8 +92,8 @@ void NoteFieldMode::Load(IniFile &ini, CString id, int pn)
|
||||
GetValue( ini, pn, id, ssprintf("GhostButton"), GhostButtonNames[t] );
|
||||
GetValue( ini, pn, id, ssprintf("GhostButton%i", t+1), GhostButtonNames[t] );
|
||||
|
||||
GetValue( ini, pn, id, ssprintf("HoldJudgment"), m_HoldJudgmentCmd[t] );
|
||||
GetValue( ini, pn, id, ssprintf("HoldJudgment%i", t+1), m_HoldJudgmentCmd[t] );
|
||||
if( GetValue( ini, pn, id, ssprintf("HoldJudgment"), s ) ) m_HoldJudgmentCmd[t] = ParseActorCommands(s);
|
||||
if( GetValue( ini, pn, id, ssprintf("HoldJudgment%i",t+1), s ) ) m_HoldJudgmentCmd[t] = ParseActorCommands(s);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
|
||||
#include "PlayerNumber.h"
|
||||
#include "Style.h"
|
||||
#include "ActorCommands.h"
|
||||
|
||||
class IniFile;
|
||||
|
||||
@@ -32,8 +33,8 @@ struct NoteFieldMode
|
||||
float m_fFirstPixelToDrawScale, m_fLastPixelToDrawScale;
|
||||
CString m_Backdrop;
|
||||
|
||||
CString m_JudgmentCmd, m_ComboCmd, m_AttackDisplayCmd;
|
||||
CString m_HoldJudgmentCmd[MAX_NOTE_TRACKS];
|
||||
ActorCommands m_JudgmentCmd, m_ComboCmd, m_AttackDisplayCmd;
|
||||
ActorCommands m_HoldJudgmentCmd[MAX_NOTE_TRACKS];
|
||||
};
|
||||
|
||||
class NoteFieldPositioning
|
||||
|
||||
@@ -191,20 +191,16 @@ bool NoteSkinManager::GetMetricB( const CString &sNoteSkinName, const CString &s
|
||||
|
||||
RageColor NoteSkinManager::GetMetricC( const CString &sNoteSkinName, const CString &sButtonName, const CString &sValueName )
|
||||
{
|
||||
float r=1,b=1,g=1,a=1; // initialize in case sscanf fails
|
||||
CString sValue = GetMetric(sNoteSkinName,sButtonName,sValueName);
|
||||
char szValue[40];
|
||||
strncpy( szValue, sValue, 39 );
|
||||
int result = sscanf( szValue, "%f,%f,%f,%f", &r, &g, &b, &a );
|
||||
if( result != 4 )
|
||||
{
|
||||
LOG->Warn( "The color value '%s' for theme metric '%s : %s' is invalid.", szValue, sButtonName.c_str(), sValueName.c_str() );
|
||||
ASSERT(0);
|
||||
}
|
||||
|
||||
return RageColor(r,g,b,a);
|
||||
RageColor c;
|
||||
if( !c.FromString( GetMetric(sNoteSkinName,sButtonName,sValueName) ) )
|
||||
LOG->Warn( "The color value for NoteSkin metric '%s : %s : %s' is invalid.", sNoteSkinName.c_str(), sButtonName.c_str(), sValueName.c_str() );
|
||||
return c;
|
||||
}
|
||||
|
||||
ActorCommands NoteSkinManager::GetMetricA( const CString &sNoteSkinName, const CString &sButtonName, const CString &sValueName )
|
||||
{
|
||||
return ParseActorCommands( GetMetric(sNoteSkinName,sButtonName,sValueName) );
|
||||
}
|
||||
|
||||
CString NoteSkinManager::GetPathToFromNoteSkinAndButton( const CString &NoteSkin, const CString &sButtonName, const CString &sElement, bool bOptional )
|
||||
{
|
||||
|
||||
@@ -322,7 +322,7 @@ done:
|
||||
continue;
|
||||
spec.erase( spec.begin(), spec.begin()+1 );
|
||||
|
||||
m_textContents[c].Command( join(";", spec) );
|
||||
m_textContents[c].Command( ParseActorCommands(join(";", spec)) );
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,14 +4,25 @@
|
||||
#include "RageUtil.h"
|
||||
#include "ThemeMetric.h"
|
||||
|
||||
static ThemeMetric<CString> MARVELOUS_COMMAND ("ProTimingDisplay","MarvelousCommand");
|
||||
static ThemeMetric<CString> PERFECT_COMMAND ("ProTimingDisplay","PerfectCommand");
|
||||
static ThemeMetric<CString> GREAT_COMMAND ("ProTimingDisplay","GreatCommand");
|
||||
static ThemeMetric<CString> GOOD_COMMAND ("ProTimingDisplay","GoodCommand");
|
||||
static ThemeMetric<CString> BOO_COMMAND ("ProTimingDisplay","BooCommand");
|
||||
static ThemeMetric<CString> MISS_COMMAND ("ProTimingDisplay","MissCommand");
|
||||
static ThemeMetric<CString> HIT_MINE_COMMAND ("ProTimingDisplay","HitMineCommand");
|
||||
static const ThemeMetric<ActorCommands> MARVELOUS_COMMAND ("ProTimingDisplay","MarvelousCommand");
|
||||
static const ThemeMetric<ActorCommands> PERFECT_COMMAND ("ProTimingDisplay","PerfectCommand");
|
||||
static const ThemeMetric<ActorCommands> GREAT_COMMAND ("ProTimingDisplay","GreatCommand");
|
||||
static const ThemeMetric<ActorCommands> GOOD_COMMAND ("ProTimingDisplay","GoodCommand");
|
||||
static const ThemeMetric<ActorCommands> BOO_COMMAND ("ProTimingDisplay","BooCommand");
|
||||
static const ThemeMetric<ActorCommands> MISS_COMMAND ("ProTimingDisplay","MissCommand");
|
||||
static const ThemeMetric<ActorCommands> HIT_MINE_COMMAND ("ProTimingDisplay","HitMineCommand");
|
||||
|
||||
static const ThemeMetric<ActorCommands> *g_Commands[NUM_TAP_NOTE_SCORES] =
|
||||
{
|
||||
NULL, /* no TNS_NONE */
|
||||
&HIT_MINE_COMMAND,
|
||||
&MISS_COMMAND,
|
||||
&BOO_COMMAND,
|
||||
&GOOD_COMMAND,
|
||||
&GREAT_COMMAND,
|
||||
&PERFECT_COMMAND,
|
||||
&MARVELOUS_COMMAND
|
||||
};
|
||||
|
||||
ProTimingDisplay::ProTimingDisplay()
|
||||
{
|
||||
@@ -36,21 +47,10 @@ void ProTimingDisplay::SetJudgment( int ms, TapNoteScore score )
|
||||
|
||||
m_Judgment.SetText( ssprintf("%i", ms) );
|
||||
|
||||
const ThemeMetric<CString> *Commands[NUM_TAP_NOTE_SCORES] =
|
||||
{
|
||||
NULL, /* no TNS_NONE */
|
||||
&HIT_MINE_COMMAND,
|
||||
&MISS_COMMAND,
|
||||
&BOO_COMMAND,
|
||||
&GOOD_COMMAND,
|
||||
&GREAT_COMMAND,
|
||||
&PERFECT_COMMAND,
|
||||
&MARVELOUS_COMMAND
|
||||
};
|
||||
ASSERT( score != TNS_NONE );
|
||||
ASSERT( score < NUM_TAP_NOTE_SCORES );
|
||||
|
||||
m_Judgment.Command( *Commands[score] );
|
||||
m_Judgment.Command( *g_Commands[score] );
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
@@ -33,14 +33,14 @@ bool ReceptorArrow::Load( CString NoteSkin, PlayerNumber pn, int iColNo )
|
||||
{
|
||||
CString sJudge = TapNoteScoreToString( i );
|
||||
CString sCommand = Capitalize(sJudge)+"Command";
|
||||
m_sScoreCommand[i] = NOTESKIN->GetMetric( NoteSkin, m_sName, sCommand );
|
||||
m_sScoreCommand[i] = NOTESKIN->GetMetricA( NoteSkin, m_sName, sCommand );
|
||||
}
|
||||
|
||||
m_pPressBlock.Load( NOTESKIN->GetPathToFromNoteSkinAndButton(NoteSkin,sButton,"KeypressBlock") );
|
||||
|
||||
m_pReceptorWaiting->Command( "effectclock,beat" );
|
||||
m_pReceptorGo->Command( "effectclock,beat" );
|
||||
m_pPressBlock->Command( "effectclock,beat" );
|
||||
m_pReceptorWaiting->Command( ParseActorCommands("effectclock,beat") );
|
||||
m_pReceptorGo->Command( ParseActorCommands("effectclock,beat") );
|
||||
m_pPressBlock->Command( ParseActorCommands("effectclock,beat") );
|
||||
|
||||
// draw pressblock before receptors
|
||||
this->AddChild( m_pPressBlock );
|
||||
|
||||
@@ -25,7 +25,7 @@ private:
|
||||
|
||||
AutoActor m_pReceptorWaiting;
|
||||
AutoActor m_pReceptorGo;
|
||||
CString m_sScoreCommand[NUM_TAP_NOTE_SCORES];
|
||||
ActorCommands m_sScoreCommand[NUM_TAP_NOTE_SCORES];
|
||||
|
||||
AutoActor m_pPressBlock;
|
||||
bool m_bIsPressed;
|
||||
|
||||
@@ -50,19 +50,22 @@ void ScoreDisplayBattle::Update( float fDelta )
|
||||
m_iLastSeenInventory[s] = sNewModifier;
|
||||
|
||||
if( sNewModifier == "" )
|
||||
m_ItemIcon[s].Command( "linear,0.25;zoom,0" );
|
||||
{
|
||||
m_ItemIcon[s].Command( ParseActorCommands("linear,0.25;zoom,0") );
|
||||
}
|
||||
else
|
||||
{
|
||||
// TODO: Cache all of the icon graphics so we don't load them dynamically from disk.
|
||||
m_ItemIcon[s].Load( THEME->GetPathToG("ScoreDisplayBattle icon "+sNewModifier) );
|
||||
m_ItemIcon[s].StopTweening();
|
||||
m_ItemIcon[s].Command( "diffuse,1,1,1,1;zoom,1;"
|
||||
m_ItemIcon[s].Command( ParseActorCommands(
|
||||
"diffuse,1,1,1,1;zoom,1;"
|
||||
"sleep,0.1;linear,0;diffusealpha,0;"
|
||||
"sleep,0.1;linear,0;diffusealpha,1;"
|
||||
"sleep,0.1;linear,0;diffusealpha,0;"
|
||||
"sleep,0.1;linear,0;diffusealpha,1;"
|
||||
"sleep,0.1;linear,0;diffusealpha,0;"
|
||||
"sleep,0.1;linear,0;diffusealpha,1;" );
|
||||
"sleep,0.1;linear,0;diffusealpha,1;" ) );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -46,7 +46,7 @@ const char* STATS_STRING[NUM_STATS_LINES] =
|
||||
|
||||
#define SPIN_GRADES THEME->GetMetricB(m_sName,"SpinGrades")
|
||||
#define CHEER_DELAY_SECONDS THEME->GetMetricF(m_sName,"CheerDelaySeconds")
|
||||
#define BAR_ACTUAL_MAX_COMMAND THEME->GetMetric (m_sName,"BarActualMaxCommand")
|
||||
#define BAR_ACTUAL_MAX_COMMAND THEME->GetMetricA(m_sName,"BarActualMaxCommand")
|
||||
|
||||
// metrics that are specific to classes derived from ScreenEvaluation
|
||||
#define FAILED_SCREEN THEME->GetMetric (m_sName, "FailedScreen")
|
||||
@@ -514,7 +514,7 @@ void ScreenEvaluation::Init()
|
||||
m_Percent[p].Load( p, &g_CurStageStats, true );
|
||||
m_Percent[p].SetXY( THEME->GetMetricF(m_sName, ssprintf("PercentP%dX",p+1)),
|
||||
THEME->GetMetricF(m_sName,ssprintf("PercentP%dY",p+1)) );
|
||||
m_Percent[p].Command( THEME->GetMetric(m_sName,ssprintf("PercentP%dOnCommand",p+1)) );
|
||||
m_Percent[p].Command( THEME->GetMetricA(m_sName,ssprintf("PercentP%dOnCommand",p+1)) );
|
||||
this->AddChild( &m_Percent[p] );
|
||||
}
|
||||
}
|
||||
@@ -1175,7 +1175,7 @@ void ScreenEvaluation::TweenOffScreen()
|
||||
FOREACH_EnabledPlayer( p )
|
||||
{
|
||||
OFF_COMMAND( m_sprPercentFrame[p] );
|
||||
m_Percent[p].Command( THEME->GetMetric(m_sName,ssprintf("PercentP%dOffCommand",p+1)) );
|
||||
m_Percent[p].Command( THEME->GetMetricA(m_sName,ssprintf("PercentP%dOffCommand",p+1)) );
|
||||
m_Percent[p].TweenOffScreen();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -411,25 +411,28 @@ void ScreenEz2SelectMusic::MenuBack( PlayerNumber pn )
|
||||
|
||||
void ScreenEz2SelectMusic::TweenOffScreen()
|
||||
{
|
||||
m_MusicBannerWheel.Command( "linear,0.5;zoomy,0" );
|
||||
m_PumpDifficultyCircle.Command( "Linear,1;DiffuseAlpha,0" );
|
||||
m_Guide.Command( "Linear,1;DiffuseAlpha,0" );
|
||||
m_PumpDifficultyRating.Command( "Linear,1;DiffuseAlpha,0" );
|
||||
m_Guide.Command( "Linear,1;DiffuseAlpha,0" );
|
||||
m_ChoiceListFrame.Command( "Linear,1;DiffuseAlpha,0" );
|
||||
m_ChoiceListHighlight.Command( "Linear,1;DiffuseAlpha,0" );
|
||||
m_CurrentGroup.Command( "Linear,1;DiffuseAlpha,0" );
|
||||
m_CurrentTitle.Command( "Linear,1;DiffuseAlpha,0" );
|
||||
m_CurrentArtist.Command( "Linear,1;DiffuseAlpha,0" );
|
||||
static const ActorCommands cmds = ParseActorCommands("linear,0.5;zoomy,0");
|
||||
m_MusicBannerWheel.Command( cmds );
|
||||
|
||||
static const ActorCommands cmds2 = ParseActorCommands("Linear,1;DiffuseAlpha,0");
|
||||
m_PumpDifficultyCircle.Command( cmds2 );
|
||||
m_Guide.Command( cmds2 );
|
||||
m_PumpDifficultyRating.Command( cmds2 );
|
||||
m_Guide.Command( cmds2 );
|
||||
m_ChoiceListFrame.Command( cmds2 );
|
||||
m_ChoiceListHighlight.Command( cmds2 );
|
||||
m_CurrentGroup.Command( cmds2 );
|
||||
m_CurrentTitle.Command( cmds2 );
|
||||
m_CurrentArtist.Command( cmds2 );
|
||||
//This should be fixed and changed to OFF_COMMAND
|
||||
|
||||
for(int i=0; i<NUM_PLAYERS; i++)
|
||||
{
|
||||
m_SpeedIcon[i].Command( "Linear,1;DiffuseAlpha,0" );
|
||||
m_MirrorIcon[i].Command( "Linear,1;DiffuseAlpha,0" );
|
||||
m_ShuffleIcon[i].Command( "Linear,1;DiffuseAlpha,0" );
|
||||
m_HiddenIcon[i].Command( "Linear,1;DiffuseAlpha,0" );
|
||||
m_VanishIcon[i].Command( "Linear,1;DiffuseAlpha,0" );
|
||||
m_SpeedIcon[i].Command( cmds2 );
|
||||
m_MirrorIcon[i].Command( cmds2 );
|
||||
m_ShuffleIcon[i].Command( cmds2 );
|
||||
m_HiddenIcon[i].Command( cmds2 );
|
||||
m_VanishIcon[i].Command( cmds2 );
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -12,23 +12,24 @@
|
||||
#include "NotesLoaderSM.h"
|
||||
#include "GameSoundManager.h"
|
||||
#include "Model.h"
|
||||
#include "ThemeMetric.h"
|
||||
|
||||
#define SECONDS_TO_SHOW THEME->GetMetricF("ScreenHowToPlay","SecondsToShow")
|
||||
#define STEPFILE THEME->GetMetric ("ScreenHowToPlay","Stepfile")
|
||||
#define NUM_PERFECTS THEME->GetMetricI("ScreenHowToPlay","NumPerfects")
|
||||
#define NUM_MISSES THEME->GetMetricI("ScreenHowToPlay","NumMisses")
|
||||
static const ThemeMetric<float> SECONDS_TO_SHOW ("ScreenHowToPlay","SecondsToShow");
|
||||
static const ThemeMetric<CString> STEPFILE ("ScreenHowToPlay","Stepfile");
|
||||
static const ThemeMetric<int> NUM_PERFECTS ("ScreenHowToPlay","NumPerfects");
|
||||
static const ThemeMetric<int> NUM_MISSES ("ScreenHowToPlay","NumMisses");
|
||||
//
|
||||
#define USELIFEBAR THEME->GetMetricB("ScreenHowToPlay","UseLifeMeterBar")
|
||||
#define LIFEBARONCOMMAND THEME->GetMetric ("ScreenHowToPlay","LifeMeterBarOnCommand")
|
||||
static const ThemeMetric<bool> USELIFEBAR ("ScreenHowToPlay","UseLifeMeterBar");
|
||||
static const ThemeMetric<ActorCommands> LIFEBARONCOMMAND ("ScreenHowToPlay","LifeMeterBarOnCommand");
|
||||
//
|
||||
#define USECHARACTER THEME->GetMetricB("ScreenHowToPlay","UseCharacter")
|
||||
#define CHARACTERONCOMMAND THEME->GetMetric ("ScreenHowToPlay","CharacterOnCommand")
|
||||
static const ThemeMetric<bool> USECHARACTER ("ScreenHowToPlay","UseCharacter");
|
||||
static const ThemeMetric<ActorCommands> CHARACTERONCOMMAND ("ScreenHowToPlay","CharacterOnCommand");
|
||||
//
|
||||
#define USEPAD THEME->GetMetricB("ScreenHowToPlay","UsePad")
|
||||
#define PADONCOMMAND THEME->GetMetric ("ScreenHowToPlay","PadOnCommand")
|
||||
static const ThemeMetric<bool> USEPAD ("ScreenHowToPlay","UsePad");
|
||||
static const ThemeMetric<ActorCommands> PADONCOMMAND ("ScreenHowToPlay","PadOnCommand");
|
||||
//
|
||||
#define USEPLAYER THEME->GetMetricB("ScreenHowToPlay","UseNotefield")
|
||||
#define PLAYERX THEME->GetMetricF("ScreenHowToPlay","PlayerX")
|
||||
static const ThemeMetric<bool> USEPLAYER ("ScreenHowToPlay","UseNotefield");
|
||||
static const ThemeMetric<float> PLAYERX ("ScreenHowToPlay","PlayerX");
|
||||
|
||||
enum Animation
|
||||
{
|
||||
@@ -42,7 +43,7 @@ enum Animation
|
||||
NUM_ANIMATIONS
|
||||
};
|
||||
|
||||
static const char *anims[NUM_ANIMATIONS] =
|
||||
static const CString anims[NUM_ANIMATIONS] =
|
||||
{
|
||||
"DancePad-DDR.txt",
|
||||
"DancePads-DDR.txt",
|
||||
@@ -86,7 +87,7 @@ ScreenHowToPlay::ScreenHowToPlay( CString sName ) : ScreenAttract( sName )
|
||||
m_Overlay.LoadFromAniDir( THEME->GetPathToB("ScreenHowToPlay overlay") );
|
||||
this->AddChild( &m_Overlay );
|
||||
|
||||
if( USEPAD && DoesFileExist( GetAnimPath(ANIM_DANCE_PAD) ) )
|
||||
if( (bool)USEPAD && DoesFileExist( GetAnimPath(ANIM_DANCE_PAD) ) )
|
||||
{
|
||||
m_pmDancePad = new Model;
|
||||
m_pmDancePad->LoadMilkshapeAscii( GetAnimPath(ANIM_DANCE_PAD) );
|
||||
@@ -97,7 +98,7 @@ ScreenHowToPlay::ScreenHowToPlay( CString sName ) : ScreenAttract( sName )
|
||||
// Display random character
|
||||
vector<Character*> apCharacters;
|
||||
GAMESTATE->GetCharacters( apCharacters );
|
||||
if( USECHARACTER && apCharacters.size() && HaveAllCharAnimations() )
|
||||
if( (bool)USECHARACTER && apCharacters.size() && HaveAllCharAnimations() )
|
||||
{
|
||||
Character* rndchar = GAMESTATE->GetRandomCharacter();
|
||||
|
||||
|
||||
@@ -155,7 +155,8 @@ void ScreenSystemLayer::ReloadCreditsText()
|
||||
void ScreenSystemLayer::SystemMessage( CString sMessage )
|
||||
{
|
||||
m_textMessage.SetText( sMessage );
|
||||
m_textMessage.Command( "finishtweening;diffusealpha,1;addx,-640;linear,0.5;addx,+640;sleep,5;linear,0.5;diffusealpha,0" );
|
||||
static const ActorCommands cmds = ParseActorCommands("finishtweening;diffusealpha,1;addx,-640;linear,0.5;addx,+640;sleep,5;linear,0.5;diffusealpha,0");
|
||||
m_textMessage.Command( cmds );
|
||||
}
|
||||
|
||||
void ScreenSystemLayer::SystemMessageNoAnimate( CString sMessage )
|
||||
|
||||
@@ -13,12 +13,12 @@
|
||||
#include "Game.h"
|
||||
#include "HelpDisplay.h"
|
||||
#include "ScreenDimensions.h"
|
||||
#include "ThemeMetric.h"
|
||||
|
||||
|
||||
#define EVEN_LINE_IN THEME->GetMetric("ScreenMapControllers","EvenLineIn")
|
||||
#define EVEN_LINE_OUT THEME->GetMetric("ScreenMapControllers","EvenLineOut")
|
||||
#define ODD_LINE_IN THEME->GetMetric("ScreenMapControllers","OddLineIn")
|
||||
#define ODD_LINE_OUT THEME->GetMetric("ScreenMapControllers","OddLineOut")
|
||||
static const ThemeMetric<ActorCommands> EVEN_LINE_IN ("ScreenMapControllers","EvenLineIn");
|
||||
static const ThemeMetric<ActorCommands> EVEN_LINE_OUT ("ScreenMapControllers","EvenLineOut");
|
||||
static const ThemeMetric<ActorCommands> ODD_LINE_IN ("ScreenMapControllers","OddLineIn");
|
||||
static const ThemeMetric<ActorCommands> ODD_LINE_OUT ("ScreenMapControllers","OddLineOut");
|
||||
|
||||
const int FramesToWaitForInput = 2;
|
||||
|
||||
@@ -78,7 +78,7 @@ ScreenMapControllers::ScreenMapControllers( CString sClassName ) : ScreenWithMen
|
||||
m_Line[b].SetY( LINE_START_Y + b*LINE_GAP_Y );
|
||||
this->AddChild( &m_Line[b] );
|
||||
|
||||
m_Line[b].Command( (b%2)? ODD_LINE_IN:EVEN_LINE_IN );
|
||||
m_Line[b].Command( (b%2)? ODD_LINE_IN : EVEN_LINE_IN );
|
||||
}
|
||||
|
||||
m_textError.LoadFromFont( THEME->GetPathToF("Common normal") );
|
||||
|
||||
@@ -83,10 +83,10 @@ void HighScoreWheelItem::LoadBlank( int iRankIndex )
|
||||
|
||||
void HighScoreWheelItem::ShowFocus()
|
||||
{
|
||||
CString sCommand = "diffuseshift;EffectColor1,1,1,0,1;EffectColor2,0,1,1,1";
|
||||
m_textRank.Command( sCommand );
|
||||
m_textName.Command( sCommand );
|
||||
m_textScore.Command( sCommand );
|
||||
ActorCommands cmds = ParseActorCommands("diffuseshift;EffectColor1,1,1,0,1;EffectColor2,0,1,1,1");
|
||||
m_textRank.Command( cmds );
|
||||
m_textName.Command( cmds );
|
||||
m_textScore.Command( cmds );
|
||||
}
|
||||
|
||||
void HighScoreWheel::Load( const HighScoreList& hsl, int iIndexToFocus )
|
||||
@@ -219,7 +219,7 @@ ScreenNameEntryTraditional::ScreenNameEntryTraditional( CString sClassName ) : S
|
||||
Letter->SetText( ssprintf("%lc", Chars[ch]) );
|
||||
m_textAlphabet[p].push_back( Letter );
|
||||
m_Keyboard[p].AddChild( Letter );
|
||||
Letter->Command( THEME->GetMetric("ScreenNameEntryTraditional","AlphabetInitCommand") );
|
||||
Letter->Command( THEME->GetMetricA("ScreenNameEntryTraditional","AlphabetInitCommand") );
|
||||
|
||||
m_AlphabetLetter[p].push_back( Chars[ch] );
|
||||
}
|
||||
@@ -236,7 +236,7 @@ ScreenNameEntryTraditional::ScreenNameEntryTraditional( CString sClassName ) : S
|
||||
m_Keyboard[p].AddChild( Letter );
|
||||
|
||||
m_AlphabetLetter[p].push_back( CHAR_BACK );
|
||||
Letter->Command( THEME->GetMetric("ScreenNameEntryTraditional","OKInitCommand") );
|
||||
Letter->Command( THEME->GetMetricA("ScreenNameEntryTraditional","OKInitCommand") );
|
||||
}
|
||||
|
||||
/* Add "OK". */
|
||||
@@ -251,7 +251,7 @@ ScreenNameEntryTraditional::ScreenNameEntryTraditional( CString sClassName ) : S
|
||||
m_Keyboard[p].AddChild( Letter );
|
||||
|
||||
m_AlphabetLetter[p].push_back( CHAR_OK );
|
||||
Letter->Command( THEME->GetMetric("ScreenNameEntryTraditional","OKInitCommand") );
|
||||
Letter->Command( THEME->GetMetricA("ScreenNameEntryTraditional","OKInitCommand") );
|
||||
}
|
||||
|
||||
m_sprCursor[p].SetName( ssprintf("CursorP%i",p+1) );
|
||||
@@ -441,7 +441,7 @@ void ScreenNameEntryTraditional::PositionCharsAndCursor( int pn )
|
||||
const bool hidden = ( Pos < First || Pos > Last );
|
||||
const int ActualPos = clamp( Pos, First-1, Last+1 );
|
||||
|
||||
bt->Command("stoptweening;decelerate,.12");
|
||||
bt->Command( ParseActorCommands("stoptweening;decelerate,.12") );
|
||||
bt->SetX( ActualPos * ALPHABET_GAP_X );
|
||||
bt->SetDiffuseAlpha( hidden? 0.0f:1.0f );
|
||||
}
|
||||
|
||||
@@ -30,10 +30,10 @@ const float ITEM_X[NUM_PLAYERS] = { 260, 420 };
|
||||
#define ITEMS_SPACING_Y THEME->GetMetricF("ScreenOptions","ItemsSpacingY")
|
||||
#define EXPLANATION_X(p) THEME->GetMetricF("ScreenOptions",ssprintf("ExplanationP%dX",p+1))
|
||||
#define EXPLANATION_Y(p) THEME->GetMetricF("ScreenOptions",ssprintf("ExplanationP%dY",p+1))
|
||||
#define EXPLANATION_ON_COMMAND(p) THEME->GetMetric ("ScreenOptions",ssprintf("ExplanationP%dOnCommand",p+1))
|
||||
#define EXPLANATION_ON_COMMAND(p) THEME->GetMetricA("ScreenOptions",ssprintf("ExplanationP%dOnCommand",p+1))
|
||||
#define EXPLANATION_TOGETHER_X THEME->GetMetricF("ScreenOptions","ExplanationTogetherX")
|
||||
#define EXPLANATION_TOGETHER_Y THEME->GetMetricF("ScreenOptions","ExplanationTogetherY")
|
||||
#define EXPLANATION_TOGETHER_ON_COMMAND THEME->GetMetric ("ScreenOptions","ExplanationTogetherOnCommand")
|
||||
#define EXPLANATION_TOGETHER_ON_COMMAND THEME->GetMetricA("ScreenOptions","ExplanationTogetherOnCommand")
|
||||
#define SHOW_SCROLL_BAR THEME->GetMetricB("ScreenOptions","ShowScrollBar")
|
||||
/* Extra parens needed to work around stupid VC6 compiler crash: */
|
||||
#define SCROLL_BAR_HEIGHT (THEME->GetMetricF("ScreenOptions","ScrollBarHeight"))
|
||||
@@ -44,8 +44,8 @@ const float ITEM_X[NUM_PLAYERS] = { 260, 420 };
|
||||
#define COLOR_NOT_SELECTED THEME->GetMetricC("ScreenOptions","ColorNotSelected")
|
||||
#define NUM_SHOWN_ITEMS THEME->GetMetricI("ScreenOptions","NumShownItems")
|
||||
#define SHOW_BPM_IN_SPEED_TITLE THEME->GetMetricB("ScreenOptions","ShowBpmInSpeedTitle")
|
||||
#define FRAME_ON_COMMAND THEME->GetMetric ("ScreenOptions","FrameOnCommand")
|
||||
#define FRAME_OFF_COMMAND THEME->GetMetric ("ScreenOptions","FrameOffCommand")
|
||||
#define FRAME_ON_COMMAND THEME->GetMetricA("ScreenOptions","FrameOnCommand")
|
||||
#define FRAME_OFF_COMMAND THEME->GetMetricA("ScreenOptions","FrameOffCommand")
|
||||
#define SEPARATE_EXIT_ROW THEME->GetMetricB("ScreenOptions","SeparateExitRow")
|
||||
#define SEPARATE_EXIT_ROW_Y THEME->GetMetricF("ScreenOptions","SeparateExitRowY")
|
||||
#define CAPITALIZE_ALL_OPTION_NAMES THEME->GetMetricB(m_sName,"CapitalizeAllOptionNames")
|
||||
|
||||
@@ -246,8 +246,8 @@ ScreenOptionsMaster::ScreenOptionsMaster( CString sClassName ):
|
||||
|
||||
CString sRowCommands = LINE(sLineName);
|
||||
|
||||
vector<ActorCommand> vCommands;
|
||||
ParseCommands( sRowCommands, vCommands );
|
||||
ActorCommands vCommands;
|
||||
ParseActorCommands( sRowCommands, vCommands );
|
||||
|
||||
if( vCommands.size() < 1 )
|
||||
RageException::Throw( "Parse error in %s::Line%i", m_sName.c_str(), i+1 );
|
||||
|
||||
@@ -12,24 +12,24 @@
|
||||
#include "RageTextureManager.h"
|
||||
|
||||
|
||||
#define TITLE_ON_COMMAND( p ) THEME->GetMetric ("ScreenSelectCharacter",ssprintf("TitleP%dOnCommand",p+1))
|
||||
#define TITLE_OFF_COMMAND( p ) THEME->GetMetric ("ScreenSelectCharacter",ssprintf("TitleP%dOffCommand",p+1))
|
||||
#define CARD_ON_COMMAND( p ) THEME->GetMetric ("ScreenSelectCharacter",ssprintf("CardP%dOnCommand",p+1))
|
||||
#define CARD_OFF_COMMAND( p ) THEME->GetMetric ("ScreenSelectCharacter",ssprintf("CardP%dOffCommand",p+1))
|
||||
#define CARD_ARROWS_ON_COMMAND( p ) THEME->GetMetric ("ScreenSelectCharacter",ssprintf("CardArrowsP%dOnCommand",p+1))
|
||||
#define CARD_ARROWS_OFF_COMMAND( p ) THEME->GetMetric ("ScreenSelectCharacter",ssprintf("CardArrowsP%dOffCommand",p+1))
|
||||
#define EXPLANATION_ON_COMMAND THEME->GetMetric ("ScreenSelectCharacter","ExplanationOnCommand")
|
||||
#define EXPLANATION_OFF_COMMAND THEME->GetMetric ("ScreenSelectCharacter","ExplanationOffCommand")
|
||||
#define ATTACK_FRAME_ON_COMMAND( p ) THEME->GetMetric ("ScreenSelectCharacter",ssprintf("AttackFrameP%dOnCommand",p+1))
|
||||
#define ATTACK_FRAME_OFF_COMMAND( p ) THEME->GetMetric ("ScreenSelectCharacter",ssprintf("AttackFrameP%dOffCommand",p+1))
|
||||
#define TITLE_ON_COMMAND( p ) THEME->GetMetricA("ScreenSelectCharacter",ssprintf("TitleP%dOnCommand",p+1))
|
||||
#define TITLE_OFF_COMMAND( p ) THEME->GetMetricA("ScreenSelectCharacter",ssprintf("TitleP%dOffCommand",p+1))
|
||||
#define CARD_ON_COMMAND( p ) THEME->GetMetricA("ScreenSelectCharacter",ssprintf("CardP%dOnCommand",p+1))
|
||||
#define CARD_OFF_COMMAND( p ) THEME->GetMetricA("ScreenSelectCharacter",ssprintf("CardP%dOffCommand",p+1))
|
||||
#define CARD_ARROWS_ON_COMMAND( p ) THEME->GetMetricA("ScreenSelectCharacter",ssprintf("CardArrowsP%dOnCommand",p+1))
|
||||
#define CARD_ARROWS_OFF_COMMAND( p ) THEME->GetMetricA("ScreenSelectCharacter",ssprintf("CardArrowsP%dOffCommand",p+1))
|
||||
#define EXPLANATION_ON_COMMAND THEME->GetMetricA("ScreenSelectCharacter","ExplanationOnCommand")
|
||||
#define EXPLANATION_OFF_COMMAND THEME->GetMetricA("ScreenSelectCharacter","ExplanationOffCommand")
|
||||
#define ATTACK_FRAME_ON_COMMAND( p ) THEME->GetMetricA("ScreenSelectCharacter",ssprintf("AttackFrameP%dOnCommand",p+1))
|
||||
#define ATTACK_FRAME_OFF_COMMAND( p ) THEME->GetMetricA("ScreenSelectCharacter",ssprintf("AttackFrameP%dOffCommand",p+1))
|
||||
#define ATTACK_ICON_WIDTH THEME->GetMetricF("ScreenSelectCharacter","AttackIconWidth")
|
||||
#define ATTACK_ICON_HEIGHT THEME->GetMetricF("ScreenSelectCharacter","AttackIconHeight")
|
||||
#define ATTACK_ICONS_START_X( p ) THEME->GetMetricF("ScreenSelectCharacter",ssprintf("AttackIconsP%dStartX",p+1))
|
||||
#define ATTACK_ICONS_START_Y( p ) THEME->GetMetricF("ScreenSelectCharacter",ssprintf("AttackIconsP%dStartY",p+1))
|
||||
#define ATTACK_ICONS_SPACING_X THEME->GetMetricF("ScreenSelectCharacter","AttackIconsSpacingX")
|
||||
#define ATTACK_ICONS_SPACING_Y THEME->GetMetricF("ScreenSelectCharacter","AttackIconsSpacingY")
|
||||
#define ATTACK_ICONS_ON_COMMAND( p ) THEME->GetMetric ("ScreenSelectCharacter",ssprintf("AttackIconsP%dOnCommand",p+1))
|
||||
#define ATTACK_ICONS_OFF_COMMAND( p ) THEME->GetMetric ("ScreenSelectCharacter",ssprintf("AttackIconsP%dOffCommand",p+1))
|
||||
#define ATTACK_ICONS_ON_COMMAND( p ) THEME->GetMetricA("ScreenSelectCharacter",ssprintf("AttackIconsP%dOnCommand",p+1))
|
||||
#define ATTACK_ICONS_OFF_COMMAND( p ) THEME->GetMetricA("ScreenSelectCharacter",ssprintf("AttackIconsP%dOffCommand",p+1))
|
||||
#define HELP_TEXT THEME->GetMetric ("ScreenSelectCharacter","HelpText")
|
||||
#define TIMER_SECONDS THEME->GetMetricI("ScreenSelectCharacter","TimerSeconds")
|
||||
#define SLEEP_AFTER_TWEEN_OFF_SECONDS THEME->GetMetricF("ScreenSelectCharacter","SleepAfterTweenOffSeconds")
|
||||
@@ -37,8 +37,8 @@
|
||||
#define NEXT_SCREEN THEME->GetMetric ("ScreenSelectCharacter","NextScreen")
|
||||
#define ICON_WIDTH THEME->GetMetricF("ScreenSelectCharacter","IconWidth")
|
||||
#define ICON_HEIGHT THEME->GetMetricF("ScreenSelectCharacter","IconHeight")
|
||||
#define ICONS_ON_COMMAND( p ) THEME->GetMetric ("ScreenSelectCharacter",ssprintf("IconsP%dOnCommand",p+1))
|
||||
#define ICONS_OFF_COMMAND( p ) THEME->GetMetric ("ScreenSelectCharacter",ssprintf("IconsP%dOffCommand",p+1))
|
||||
#define ICONS_ON_COMMAND( p ) THEME->GetMetricA("ScreenSelectCharacter",ssprintf("IconsP%dOnCommand",p+1))
|
||||
#define ICONS_OFF_COMMAND( p ) THEME->GetMetricA("ScreenSelectCharacter",ssprintf("IconsP%dOffCommand",p+1))
|
||||
|
||||
#define LEVEL_CURSOR_X( p, l ) ( ICONS_START_X(p)+ICONS_SPACING_X*((NUM_ATTACKS_PER_LEVEL-1)/2.f) )
|
||||
#define LEVEL_CURSOR_Y( p, l ) ( ICONS_START_Y(p)+ICONS_SPACING_Y*l )
|
||||
|
||||
@@ -15,16 +15,16 @@
|
||||
#define LOCK_INPUT_SECONDS THEME->GetMetricF(m_sName,"LockInputSeconds")
|
||||
#define SLEEP_AFTER_CHOICE_SECONDS THEME->GetMetricF(m_sName,"SleepAfterChoiceSeconds")
|
||||
#define SLEEP_AFTER_TWEEN_OFF_SECONDS THEME->GetMetricF(m_sName,"SleepAfterTweenOffSeconds")
|
||||
#define CURSOR_CHOOSE_COMMAND THEME->GetMetric (m_sName,"CursorChooseCommand")
|
||||
#define CURSOR_CHOOSE_COMMAND THEME->GetMetricA(m_sName,"CursorChooseCommand")
|
||||
#define CURSOR_OFFSET_X_FROM_PICTURE( p ) THEME->GetMetricF(m_sName,ssprintf("CursorP%dOffsetXFromPicture",p+1))
|
||||
#define CURSOR_OFFSET_Y_FROM_PICTURE( p ) THEME->GetMetricF(m_sName,ssprintf("CursorP%dOffsetYFromPicture",p+1))
|
||||
#define SHADOW_CHOOSE_COMMAND THEME->GetMetric (m_sName,"ShadowChooseCommand")
|
||||
#define SHADOW_CHOOSE_COMMAND THEME->GetMetricA(m_sName,"ShadowChooseCommand")
|
||||
#define SHADOW_LENGTH_X THEME->GetMetricF(m_sName,"ShadowLengthX")
|
||||
#define SHADOW_LENGTH_Y THEME->GetMetricF(m_sName,"ShadowLengthY")
|
||||
#define OK_CHOOSE_COMMAND THEME->GetMetric (m_sName,"OKChooseCommand")
|
||||
#define OK_CHOOSE_COMMAND THEME->GetMetricA(m_sName,"OKChooseCommand")
|
||||
#define DISABLED_COLOR THEME->GetMetricC(m_sName,"DisabledColor")
|
||||
|
||||
#define IGNORED_ELEMENT_COMMAND THEME->GetMetric (m_sName,"IgnoredElementOnCommand")
|
||||
#define IGNORED_ELEMENT_COMMAND THEME->GetMetricA(m_sName,"IgnoredElementOnCommand")
|
||||
|
||||
ScreenSelectDifficulty::ScreenSelectDifficulty( CString sClassName ) : ScreenSelect( sClassName )
|
||||
{
|
||||
|
||||
@@ -33,7 +33,7 @@ const int NUM_SCORE_DIGITS = 9;
|
||||
#define FOV_CENTER_Y THEME->GetMetricF(m_sName,"FOVCenterY")
|
||||
#define BANNER_WIDTH THEME->GetMetricF(m_sName,"BannerWidth")
|
||||
#define BANNER_HEIGHT THEME->GetMetricF(m_sName,"BannerHeight")
|
||||
#define SONG_OPTIONS_EXTRA_COMMAND THEME->GetMetric (m_sName,"SongOptionsExtraCommand")
|
||||
#define SONG_OPTIONS_EXTRA_COMMAND THEME->GetMetricA(m_sName,"SongOptionsExtraCommand")
|
||||
#define SAMPLE_MUSIC_DELAY THEME->GetMetricF(m_sName,"SampleMusicDelay")
|
||||
#define SHOW_RADAR THEME->GetMetricB(m_sName,"ShowRadar")
|
||||
#define SHOW_GRAPH THEME->GetMetricB(m_sName,"ShowGraph")
|
||||
@@ -42,8 +42,8 @@ const int NUM_SCORE_DIGITS = 9;
|
||||
#define PREV_SCREEN THEME->GetMetric (m_sName,"PrevScreen")
|
||||
#define NEXT_SCREEN THEME->GetMetric (m_sName,"NextScreen")
|
||||
#define NEXT_OPTIONS_SCREEN THEME->GetMetric (m_sName,"NextOptionsScreen")
|
||||
#define SCORE_SORT_CHANGE_COMMAND(i) THEME->GetMetric (m_sName,ssprintf("ScoreP%iSortChangeCommand", i+1))
|
||||
#define SCORE_FRAME_SORT_CHANGE_COMMAND(i) THEME->GetMetric (m_sName,ssprintf("ScoreFrameP%iSortChangeCommand", i+1))
|
||||
#define SCORE_SORT_CHANGE_COMMAND(i) THEME->GetMetricA(m_sName,ssprintf("ScoreP%iSortChangeCommand", i+1))
|
||||
#define SCORE_FRAME_SORT_CHANGE_COMMAND(i) THEME->GetMetricA(m_sName,ssprintf("ScoreFrameP%iSortChangeCommand", i+1))
|
||||
#define DO_ROULETTE_ON_MENU_TIMER THEME->GetMetricB(m_sName,"DoRouletteOnMenuTimer")
|
||||
#define ALIGN_MUSIC_BEATS THEME->GetMetricB(m_sName,"AlignMusicBeat")
|
||||
#define CODES THEME->GetMetric (m_sName,"Codes")
|
||||
|
||||
@@ -13,8 +13,8 @@
|
||||
#include "CommonMetrics.h"
|
||||
|
||||
|
||||
#define ICON_GAIN_FOCUS_COMMAND THEME->GetMetric (m_sName,"IconGainFocusCommand")
|
||||
#define ICON_LOSE_FOCUS_COMMAND THEME->GetMetric (m_sName,"IconLoseFocusCommand")
|
||||
#define ICON_GAIN_FOCUS_COMMAND THEME->GetMetricA(m_sName,"IconGainFocusCommand")
|
||||
#define ICON_LOSE_FOCUS_COMMAND THEME->GetMetricA(m_sName,"IconLoseFocusCommand")
|
||||
#define DISABLED_COLOR THEME->GetMetricC(m_sName,"DisabledColor")
|
||||
|
||||
|
||||
|
||||
@@ -25,13 +25,13 @@
|
||||
#include "ScreenOptionsMasterPrefs.h"
|
||||
|
||||
|
||||
#define LOGO_ON_COMMAND THEME->GetMetric("ScreenTitleMenu","LogoOnCommand")
|
||||
#define LOGO_HOME_ON_COMMAND THEME->GetMetric("ScreenTitleMenu","LogoHomeOnCommand")
|
||||
#define VERSION_ON_COMMAND THEME->GetMetric("ScreenTitleMenu","VersionOnCommand")
|
||||
#define SONGS_ON_COMMAND THEME->GetMetric("ScreenTitleMenu","SongsOnCommand")
|
||||
#define MAX_STAGES_ON_COMMAND THEME->GetMetric("ScreenTitleMenu","MaxStagesOnCommand")
|
||||
#define MAX_STAGES_TEXT THEME->GetMetric("ScreenTitleMenu","MaxStagesText")
|
||||
#define LIFE_DIFFICULTY_ON_COMMAND THEME->GetMetric("ScreenTitleMenu","LifeDifficultyOnCommand")
|
||||
#define LOGO_ON_COMMAND THEME->GetMetricA("ScreenTitleMenu","LogoOnCommand")
|
||||
#define LOGO_HOME_ON_COMMAND THEME->GetMetricA("ScreenTitleMenu","LogoHomeOnCommand")
|
||||
#define VERSION_ON_COMMAND THEME->GetMetricA("ScreenTitleMenu","VersionOnCommand")
|
||||
#define SONGS_ON_COMMAND THEME->GetMetricA("ScreenTitleMenu","SongsOnCommand")
|
||||
#define MAX_STAGES_ON_COMMAND THEME->GetMetricA("ScreenTitleMenu","MaxStagesOnCommand")
|
||||
#define MAX_STAGES_TEXT THEME->GetMetric ("ScreenTitleMenu","MaxStagesText")
|
||||
#define LIFE_DIFFICULTY_ON_COMMAND THEME->GetMetricA("ScreenTitleMenu","LifeDifficultyOnCommand")
|
||||
#define HELP_X THEME->GetMetricF("ScreenTitleMenu","HelpX")
|
||||
#define HELP_Y THEME->GetMetricF("ScreenTitleMenu","HelpY")
|
||||
#define CHOICES_X THEME->GetMetricF("ScreenTitleMenu","ChoicesX")
|
||||
@@ -45,8 +45,8 @@
|
||||
#define MENU_TEXT_ALIGN THEME->GetMetricI("ScreenTitleMenu","MenuTextAlign")
|
||||
#define SECONDS_BETWEEN_COMMENTS THEME->GetMetricF("ScreenTitleMenu","SecondsBetweenComments")
|
||||
#define SECONDS_BEFORE_ATTRACT THEME->GetMetricF("ScreenTitleMenu","SecondsBeforeAttract")
|
||||
#define HELP_TEXT( coin_mode ) THEME->GetMetric("ScreenTitleMenu","HelpText"+Capitalize(CoinModeToString(coin_mode)))
|
||||
#define MENU_ITEM_CREATE THEME->GetMetric("ScreenTitleMenu","MenuCommandOnCreate")
|
||||
#define HELP_TEXT( coin_mode ) THEME->GetMetric ("ScreenTitleMenu","HelpText"+Capitalize(CoinModeToString(coin_mode)))
|
||||
#define MENU_ITEM_CREATE THEME->GetMetricA("ScreenTitleMenu","MenuCommandOnCreate")
|
||||
#define MENU_ITEM_SELECT_DELAY THEME->GetMetricF("ScreenTitleMenu","MenuCommandSelectDelay")
|
||||
|
||||
#define NAME( sChoiceName ) THEME->GetMetric (m_sName,ssprintf("Name%s",sChoiceName.c_str()))
|
||||
|
||||
@@ -10,22 +10,22 @@
|
||||
#include "song.h"
|
||||
#include "Course.h"
|
||||
|
||||
#define NUM_UNLOCKS THEME->GetMetricI("ScreenUnlock", "NumUnlocks")
|
||||
#define UNLOCK_TEXT_SCROLL_X THEME->GetMetricF("ScreenUnlock", "UnlockTextScrollX");
|
||||
#define UNLOCK_TEXT_SCROLL_START_Y THEME->GetMetricF("ScreenUnlock", "UnlockTextScrollStartY")
|
||||
#define UNLOCK_TEXT_SCROLL_END_Y THEME->GetMetricF("ScreenUnlock", "UnlockTextScrollEndY")
|
||||
#define UNLOCK_TEXT_SCROLL_ZOOM THEME->GetMetricF("ScreenUnlock", "UnlockTextScrollZoom")
|
||||
#define UNLOCK_TEXT_SCROLL_ROWS THEME->GetMetricF("ScreenUnlock", "UnlockTextScrollRows")
|
||||
#define UNLOCK_TEXT_SCROLL_MAX_WIDTH THEME->GetMetricF("ScreenUnlock", "UnlockTextScrollMaxWidth")
|
||||
#define NUM_UNLOCKS THEME->GetMetricI("ScreenUnlock", "NumUnlocks")
|
||||
#define UNLOCK_TEXT_SCROLL_X THEME->GetMetricF("ScreenUnlock", "UnlockTextScrollX");
|
||||
#define UNLOCK_TEXT_SCROLL_START_Y THEME->GetMetricF("ScreenUnlock", "UnlockTextScrollStartY")
|
||||
#define UNLOCK_TEXT_SCROLL_END_Y THEME->GetMetricF("ScreenUnlock", "UnlockTextScrollEndY")
|
||||
#define UNLOCK_TEXT_SCROLL_ZOOM THEME->GetMetricF("ScreenUnlock", "UnlockTextScrollZoom")
|
||||
#define UNLOCK_TEXT_SCROLL_ROWS THEME->GetMetricF("ScreenUnlock", "UnlockTextScrollRows")
|
||||
#define UNLOCK_TEXT_SCROLL_MAX_WIDTH THEME->GetMetricF("ScreenUnlock", "UnlockTextScrollMaxWidth")
|
||||
#define UNLOCK_TEXT_SCROLL_ICON_X THEME->GetMetricF("ScreenUnlock", "UnlockTextScrollIconX")
|
||||
#define UNLOCK_TEXT_SCROLL_ICON_SIZE THEME->GetMetricF("ScreenUnlock", "UnlockTextScrollIconSize")
|
||||
#define DISPLAYED_SONG(i) THEME->GetMetric ("ScreenUnlock", ssprintf("Unlock%dSong", i))
|
||||
#define UNLOCK_TEXT_SCROLL THEME->GetMetricI("ScreenUnlock", "UnlockTextScroll")
|
||||
#define TYPE_TO_DISPLAY THEME->GetMetric("ScreenUnlock", "TypeOfPointsToDisplay")
|
||||
#define ICON_COMMAND THEME->GetMetric ("ScreenUnlock", "UnlockIconCommand")
|
||||
#define TIME_TO_DISPLAY THEME->GetMetricF("ScreenUnlock", "TimeToDisplay")
|
||||
#define POINTS_ZOOM THEME->GetMetricF("ScreenUnlock","PointsZoom")
|
||||
#define USE_UNLOCKS_DAT THEME->GetMetricI("ScreenUnlock","UseUnlocksDat")
|
||||
#define DISPLAYED_SONG(i) THEME->GetMetric ("ScreenUnlock", ssprintf("Unlock%dSong", i))
|
||||
#define UNLOCK_TEXT_SCROLL THEME->GetMetricI("ScreenUnlock", "UnlockTextScroll")
|
||||
#define TYPE_TO_DISPLAY THEME->GetMetric ("ScreenUnlock", "TypeOfPointsToDisplay")
|
||||
#define ICON_COMMAND THEME->GetMetricA("ScreenUnlock", "UnlockIconCommand")
|
||||
#define TIME_TO_DISPLAY THEME->GetMetricF("ScreenUnlock", "TimeToDisplay")
|
||||
#define POINTS_ZOOM THEME->GetMetricF("ScreenUnlock","PointsZoom")
|
||||
#define USE_UNLOCKS_DAT THEME->GetMetricI("ScreenUnlock","UseUnlocksDat")
|
||||
|
||||
ScreenUnlock::ScreenUnlock( CString sClassName ) : ScreenAttract( sClassName )
|
||||
{
|
||||
@@ -44,7 +44,7 @@ ScreenUnlock::ScreenUnlock( CString sClassName ) : ScreenAttract( sClassName )
|
||||
PointsUntilNextUnlock.LoadFromFont( THEME->GetPathToF("Common normal") );
|
||||
PointsUntilNextUnlock.SetHorizAlign( Actor::align_left );
|
||||
|
||||
CString IconCommand = ICON_COMMAND;
|
||||
const ActorCommands IconCommand = ICON_COMMAND;
|
||||
for( unsigned i=1; i <= NumUnlocks; i++ )
|
||||
{
|
||||
// get pertaining UnlockEntry
|
||||
@@ -133,12 +133,12 @@ ScreenUnlock::ScreenUnlock( CString sClassName ) : ScreenAttract( sClassName )
|
||||
{
|
||||
text->SetMaxWidth( MaxWidth );
|
||||
text->SetText( crs->GetFullDisplayTitle() );
|
||||
text->Command("Diffuse,0,1,0,1");
|
||||
text->SetDiffuse( RageColor(0,1,0,1) );
|
||||
}
|
||||
else // entry isn't a song or course
|
||||
{
|
||||
text->SetText( "" );
|
||||
text->Command("Diffuse,0.5,0,0,1");
|
||||
text->SetDiffuse( RageColor(0.5,0,0,1) );
|
||||
}
|
||||
}
|
||||
|
||||
@@ -164,10 +164,14 @@ ScreenUnlock::ScreenUnlock( CString sClassName ) : ScreenAttract( sClassName )
|
||||
float SecondCycleTime = (6 + TargetRow) * SECS_PER_CYCLE - FirstCycleTime;
|
||||
LOG->Trace("Target Row: %f", TargetRow);
|
||||
LOG->Trace("command for icon %d: %s", i, ssprintf("diffusealpha,0;sleep,%f;diffusealpha,1;linear,%f;y,%f;linear,%f;y,%f;linear,0.1;diffusealpha,0", SECS_PER_CYCLE * (i - 1), FirstCycleTime, StopOffPoint, SecondCycleTime * 2, ScrollingTextEndY).c_str() );
|
||||
text->Command( ssprintf("diffusealpha,0;sleep,%f;diffusealpha,1;linear,%f;y,%f;linear,%f;y,%f;linear,0.1;diffusealpha,0", SECS_PER_CYCLE * (i - 1), FirstCycleTime, StopOffPoint, SecondCycleTime, ScrollingTextEndY) );
|
||||
CString sCommand = ssprintf("diffusealpha,0;sleep,%f;diffusealpha,1;linear,%f;y,%f;linear,%f;y,%f;linear,0.1;diffusealpha,0", SECS_PER_CYCLE * (i - 1), FirstCycleTime, StopOffPoint, SecondCycleTime, ScrollingTextEndY);
|
||||
text->Command( ParseActorCommands(sCommand) );
|
||||
}
|
||||
else
|
||||
text->Command( ssprintf("diffusealpha,0;sleep,%f;diffusealpha,1;linear,%f;y,%f;linear,0.1;diffusealpha,0", SECS_PER_CYCLE * (i - 1), SECS_PER_CYCLE * (ScrollingTextRows), ScrollingTextEndY) );
|
||||
{
|
||||
CString sCommand = ssprintf("diffusealpha,0;sleep,%f;diffusealpha,1;linear,%f;y,%f;linear,0.1;diffusealpha,0", SECS_PER_CYCLE * (i - 1), SECS_PER_CYCLE * (ScrollingTextRows), ScrollingTextEndY);
|
||||
text->Command( ParseActorCommands(sCommand) );
|
||||
}
|
||||
|
||||
item.push_back(text);
|
||||
|
||||
@@ -192,10 +196,14 @@ ScreenUnlock::ScreenUnlock( CString sClassName ) : ScreenAttract( sClassName )
|
||||
float SecondCycleTime = (6 + TargetRow) * SECS_PER_CYCLE - FirstCycleTime;
|
||||
LOG->Trace("Target Row: %f", TargetRow);
|
||||
LOG->Trace("command for icon %d: %s", i, ssprintf("diffusealpha,0;sleep,%f;diffusealpha,1;linear,%f;y,%f;linear,%f;y,%f;linear,0.1;diffusealpha,0", SECS_PER_CYCLE * (i - 1), FirstCycleTime, StopOffPoint, SecondCycleTime * 2, ScrollingTextEndY).c_str() );
|
||||
IconCount->Command( ssprintf("diffusealpha,0;sleep,%f;diffusealpha,1;linear,%f;y,%f;linear,%f;y,%f;linear,0.1;diffusealpha,0", SECS_PER_CYCLE * (i - 1), FirstCycleTime, StopOffPoint, SecondCycleTime, ScrollingTextEndY) );
|
||||
CString sCommand = ssprintf("diffusealpha,0;sleep,%f;diffusealpha,1;linear,%f;y,%f;linear,%f;y,%f;linear,0.1;diffusealpha,0", SECS_PER_CYCLE * (i - 1), FirstCycleTime, StopOffPoint, SecondCycleTime, ScrollingTextEndY);
|
||||
IconCount->Command( ParseActorCommands(sCommand) );
|
||||
}
|
||||
else
|
||||
IconCount->Command( ssprintf("diffusealpha,0;sleep,%f;diffusealpha,1;linear,%f;y,%f;linear,0.1;diffusealpha,0", SECS_PER_CYCLE * (i - 1), SECS_PER_CYCLE * (ScrollingTextRows), ScrollingTextEndY) );
|
||||
{
|
||||
CString sCommand = ssprintf("diffusealpha,0;sleep,%f;diffusealpha,1;linear,%f;y,%f;linear,0.1;diffusealpha,0", SECS_PER_CYCLE * (i - 1), SECS_PER_CYCLE * (ScrollingTextRows), ScrollingTextEndY);
|
||||
IconCount->Command( ParseActorCommands(sCommand) );
|
||||
}
|
||||
|
||||
ItemIcons.push_back(IconCount);
|
||||
|
||||
@@ -258,19 +266,21 @@ ScreenUnlock::ScreenUnlock( CString sClassName ) : ScreenAttract( sClassName )
|
||||
NewText->SetGlobalDiffuseColor(color);
|
||||
|
||||
NewText->SetXY(ScrollingTextX, ScrollingTextStartY);
|
||||
NewText->Command( ssprintf("diffusealpha,0;sleep,%f;diffusealpha,1;linear,%f;y,%f;", SECS_PER_CYCLE * (NumUnlocks + 2 * i - 2), SECS_PER_CYCLE * ((ScrollingTextRows - i) * 2 + 1 ), (ScrollingTextStartY + (ScrollingTextEndY - ScrollingTextStartY) * (ScrollingTextRows - i + 0.5) / ScrollingTextRows )) );
|
||||
{
|
||||
CString sCommand = ssprintf("diffusealpha,0;sleep,%f;diffusealpha,1;linear,%f;y,%f;", SECS_PER_CYCLE * (NumUnlocks + 2 * i - 2), SECS_PER_CYCLE * ((ScrollingTextRows - i) * 2 + 1 ), (ScrollingTextStartY + (ScrollingTextEndY - ScrollingTextStartY) * (ScrollingTextRows - i + 0.5) / ScrollingTextRows ));
|
||||
NewText->Command( ParseActorCommands(sCommand) );
|
||||
}
|
||||
|
||||
// new unlock graphic
|
||||
Sprite* NewIcon = new Sprite;
|
||||
NewIcon->Load( THEME->GetPathToG(ssprintf("ScreenUnlock %d icon", NextIcon)) );
|
||||
|
||||
// set graphic location
|
||||
NewIcon->SetXY( UNLOCK_TEXT_SCROLL_ICON_X, ScrollingTextStartY);
|
||||
|
||||
NewIcon->SetHeight(UNLOCK_TEXT_SCROLL_ICON_SIZE);
|
||||
NewIcon->SetWidth(UNLOCK_TEXT_SCROLL_ICON_SIZE);
|
||||
|
||||
NewIcon->Command( ssprintf("diffusealpha,0;sleep,%f;diffusealpha,1;linear,%f;y,%f;", SECS_PER_CYCLE * (NumUnlocks + 2 * i - 2), SECS_PER_CYCLE * ((ScrollingTextRows - i) * 2 + 1 ), (ScrollingTextStartY + (ScrollingTextEndY - ScrollingTextStartY) * (ScrollingTextRows - i + 0.5) / ScrollingTextRows )) );
|
||||
{
|
||||
CString sCommand = ssprintf("diffusealpha,0;sleep,%f;diffusealpha,1;linear,%f;y,%f;", SECS_PER_CYCLE * (NumUnlocks + 2 * i - 2), SECS_PER_CYCLE * ((ScrollingTextRows - i) * 2 + 1 ), (ScrollingTextStartY + (ScrollingTextEndY - ScrollingTextStartY) * (ScrollingTextRows - i + 0.5) / ScrollingTextRows ));
|
||||
NewIcon->Command( ParseActorCommands(sCommand) );
|
||||
}
|
||||
|
||||
ItemIcons.push_back(NewIcon);
|
||||
item.push_back(NewText);
|
||||
|
||||
@@ -9,13 +9,13 @@
|
||||
#include "ActorUtil.h"
|
||||
#include "ThemeMetric.h"
|
||||
|
||||
ThemeMetric<CString> ARTIST_PREPEND_STRING ("TextBanner","ArtistPrependString");
|
||||
ThemeMetric<CString> TWO_LINES_TITLE_COMMAND ("TextBanner","TwoLinesTitleCommand");
|
||||
ThemeMetric<CString> TWO_LINES_SUBTITLE_COMMAND ("TextBanner","TwoLinesSubtitleCommand");
|
||||
ThemeMetric<CString> TWO_LINES_ARTIST_COMMAND ("TextBanner","TwoLinesArtistCommand");
|
||||
ThemeMetric<CString> THREE_LINES_TITLE_COMMAND ("TextBanner","ThreeLinesTitleCommand");
|
||||
ThemeMetric<CString> THREE_LINES_SUBTITLE_COMMAND ("TextBanner","ThreeLinesSubtitleCommand");
|
||||
ThemeMetric<CString> THREE_LINES_ARTIST_COMMAND ("TextBanner","ThreeLinesArtistCommand");
|
||||
ThemeMetric<CString> ARTIST_PREPEND_STRING ("TextBanner","ArtistPrependString");
|
||||
ThemeMetric<ActorCommands> TWO_LINES_TITLE_COMMAND ("TextBanner","TwoLinesTitleCommand");
|
||||
ThemeMetric<ActorCommands> TWO_LINES_SUBTITLE_COMMAND ("TextBanner","TwoLinesSubtitleCommand");
|
||||
ThemeMetric<ActorCommands> TWO_LINES_ARTIST_COMMAND ("TextBanner","TwoLinesArtistCommand");
|
||||
ThemeMetric<ActorCommands> THREE_LINES_TITLE_COMMAND ("TextBanner","ThreeLinesTitleCommand");
|
||||
ThemeMetric<ActorCommands> THREE_LINES_SUBTITLE_COMMAND ("TextBanner","ThreeLinesSubtitleCommand");
|
||||
ThemeMetric<ActorCommands> THREE_LINES_ARTIST_COMMAND ("TextBanner","ThreeLinesArtistCommand");
|
||||
|
||||
void TextBanner::Init()
|
||||
{
|
||||
|
||||
@@ -694,10 +694,15 @@ RageColor ThemeManager::GetMetricC( const CString &sClassName, const CString &sV
|
||||
{
|
||||
RageColor ret(1,1,1,1);
|
||||
if( !ret.FromString( GetMetricRaw(sClassName,sValueName) ) )
|
||||
LOG->Warn( "The color value '%s' for NoteSkin metric '%s : %s' is invalid.", GetMetricRaw(sClassName,sValueName).c_str(), sClassName.c_str(), sValueName.c_str() );
|
||||
LOG->Warn( "The color value '%s' for metric '%s : %s' is invalid.", GetMetricRaw(sClassName,sValueName).c_str(), sClassName.c_str(), sValueName.c_str() );
|
||||
return ret;
|
||||
}
|
||||
|
||||
ActorCommands ThemeManager::GetMetricA( const CString &sClassName, const CString &sValueName )
|
||||
{
|
||||
return ParseActorCommands( GetMetricRaw(sClassName,sValueName) );
|
||||
}
|
||||
|
||||
void ThemeManager::NextTheme()
|
||||
{
|
||||
CStringArray as;
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
|
||||
#include "RageTypes.h"
|
||||
#include "RageTimer.h"
|
||||
#include "ActorCommands.h"
|
||||
#include <set>
|
||||
#include <deque>
|
||||
|
||||
@@ -58,11 +59,13 @@ public:
|
||||
float GetMetricF( const CString &sClassName, const CString &sValueName );
|
||||
bool GetMetricB( const CString &sClassName, const CString &sValueName );
|
||||
RageColor GetMetricC( const CString &sClassName, const CString &sValueName );
|
||||
void GetMetric( const CString &sClassName, const CString &sValueName, CString &valueOut ) { valueOut = GetMetric( sClassName, sValueName ); }
|
||||
void GetMetric( const CString &sClassName, const CString &sValueName, int &valueOut ) { valueOut = GetMetricI( sClassName, sValueName ); }
|
||||
void GetMetric( const CString &sClassName, const CString &sValueName, float &valueOut ) { valueOut = GetMetricF( sClassName, sValueName ); }
|
||||
void GetMetric( const CString &sClassName, const CString &sValueName, bool &valueOut ) { valueOut = GetMetricB( sClassName, sValueName ); }
|
||||
void GetMetric( const CString &sClassName, const CString &sValueName, RageColor &valueOut ){ valueOut = GetMetricC( sClassName, sValueName ); }
|
||||
ActorCommands GetMetricA( const CString &sClassName, const CString &sValueName );
|
||||
void GetMetric( const CString &sClassName, const CString &sValueName, CString &valueOut ) { valueOut = GetMetric( sClassName, sValueName ); }
|
||||
void GetMetric( const CString &sClassName, const CString &sValueName, int &valueOut ) { valueOut = GetMetricI( sClassName, sValueName ); }
|
||||
void GetMetric( const CString &sClassName, const CString &sValueName, float &valueOut ) { valueOut = GetMetricF( sClassName, sValueName ); }
|
||||
void GetMetric( const CString &sClassName, const CString &sValueName, bool &valueOut ) { valueOut = GetMetricB( sClassName, sValueName ); }
|
||||
void GetMetric( const CString &sClassName, const CString &sValueName, RageColor &valueOut ) { valueOut = GetMetricC( sClassName, sValueName ); }
|
||||
void GetMetric( const CString &sClassName, const CString &sValueName, ActorCommands &valueOut ){ valueOut = GetMetricA( sClassName, sValueName ); }
|
||||
|
||||
//
|
||||
// For self-registering metrics
|
||||
|
||||
Reference in New Issue
Block a user