const fixes

This commit is contained in:
Chris Danford
2004-11-06 03:00:10 +00:00
parent 639afd0bfd
commit 40e692a32c
6 changed files with 68 additions and 72 deletions
+33 -37
View File
@@ -444,31 +444,28 @@ void Actor::ScaleTo( const RectF &rect, StretchType st )
SetZoom( fNewZoom ); SetZoom( fNewZoom );
} }
void Actor::SetHorizAlign( CString s ) void Actor::SetHorizAlign( const CString &s )
{ {
s.MakeLower(); if (s.CompareNoCase("left")==0) SetHorizAlign( align_left ); /* call derived */
if (s=="left") SetHorizAlign( align_left ); /* call derived */ else if(s.CompareNoCase("center")==0) SetHorizAlign( align_center );
else if(s=="center") SetHorizAlign( align_center ); else if(s.CompareNoCase("right")==0) SetHorizAlign( align_right );
else if(s=="right") SetHorizAlign( align_right );
else ASSERT(0); else ASSERT(0);
} }
void Actor::SetVertAlign( CString s ) void Actor::SetVertAlign( const CString &s )
{ {
s.MakeLower(); if (s.CompareNoCase("top")==0) SetVertAlign( align_top ); /* call derived */
if (s=="top") SetVertAlign( align_top ); /* call derived */ else if(s.CompareNoCase("middle")==0) SetVertAlign( align_middle );
else if(s=="middle") SetVertAlign( align_middle ); else if(s.CompareNoCase("bottom")==0) SetVertAlign( align_bottom );
else if(s=="bottom") SetVertAlign( align_bottom );
else ASSERT(0); else ASSERT(0);
} }
void Actor::SetEffectClock( CString s ) void Actor::SetEffectClock( const CString &s )
{ {
s.MakeLower(); if (s.CompareNoCase("timer")==0) SetEffectClock( CLOCK_TIMER );
if (s=="timer") SetEffectClock( CLOCK_TIMER ); else if(s.CompareNoCase("beat")==0) SetEffectClock( CLOCK_BGM_BEAT );
else if(s=="beat") SetEffectClock( CLOCK_BGM_BEAT ); else if(s.CompareNoCase("music")==0) SetEffectClock( CLOCK_BGM_TIME );
else if(s=="music") SetEffectClock( CLOCK_BGM_TIME ); else if(s.CompareNoCase("bgm")==0) SetEffectClock( CLOCK_BGM_BEAT ); // compat, deprecated
else if(s=="bgm") SetEffectClock( CLOCK_BGM_BEAT ); // compat, deprecated
else ASSERT(0); else ASSERT(0);
} }
@@ -619,12 +616,15 @@ void Actor::AddRotationR( float rot )
RageQuatMultiply( &DestTweenState().quat, DestTweenState().quat, RageQuatFromR(rot) ); RageQuatMultiply( &DestTweenState().quat, DestTweenState().quat, RageQuatFromR(rot) );
} }
void Actor::Command( CString sCommands ) void Actor::Command( const CString &sCommands )
{ {
sCommands.MakeLower(); // Convert to lower so we can do case insensitive compared later.
// TODO: Is this the best place to convert?
CString sCommandsLower = sCommands;
sCommandsLower.MakeLower();
vector<ParsedCommand> vCommands; vector<ParsedCommand> vCommands;
ParseCommands( sCommands, vCommands ); ParseCommands( sCommandsLower, vCommands );
for( unsigned i=0; i<vCommands.size(); i++ ) for( unsigned i=0; i<vCommands.size(); i++ )
this->HandleCommand( vCommands[i] ); this->HandleCommand( vCommands[i] );
@@ -760,10 +760,10 @@ void Actor::HandleCommand( const ParsedCommand &command )
CheckHandledParams; CheckHandledParams;
} }
float Actor::GetCommandLength( CString command ) float Actor::GetCommandLengthSeconds( const CString &sCommands )
{ {
Actor temp; Actor temp;
temp.Command(command); temp.Command(sCommands);
return temp.GetTweenTimeLeft(); return temp.GetTweenTimeLeft();
} }
@@ -862,32 +862,28 @@ void Actor::TweenState::MakeWeightedAverage( TweenState& average_out, const Twee
average_out.glow = ts1.glow + (ts2.glow - ts1.glow )*fPercentBetween; average_out.glow = ts1.glow + (ts2.glow - ts1.glow )*fPercentBetween;
} }
void Actor::SetBlendMode( CString s ) void Actor::SetBlendMode( const CString &s )
{ {
s.MakeLower(); if (s.CompareNoCase("normal")==0) SetBlendMode( BLEND_NORMAL );
if (s=="normal") SetBlendMode( BLEND_NORMAL ); else if(s.CompareNoCase("add")==0) SetBlendMode( BLEND_ADD );
else if(s=="add") SetBlendMode( BLEND_ADD ); else if(s.CompareNoCase("noeffect")==0) SetBlendMode( BLEND_NO_EFFECT );
else if(s=="noeffect") SetBlendMode( BLEND_NO_EFFECT );
else ASSERT(0); else ASSERT(0);
} }
void Actor::SetCullMode( CString s ) void Actor::SetCullMode( const CString &s )
{ {
s.MakeLower(); if (s.CompareNoCase("back")==0) SetCullMode( CULL_BACK );
if (s=="back") SetCullMode( CULL_BACK ); else if(s.CompareNoCase("front")==0) SetCullMode( CULL_FRONT );
else if(s=="front") SetCullMode( CULL_FRONT ); else if(s.CompareNoCase("none")==0) SetCullMode( CULL_NONE );
else if(s=="none") SetCullMode( CULL_NONE );
else ASSERT(0); else ASSERT(0);
} }
void Actor::SetZTestMode( CString s ) void Actor::SetZTestMode( const CString &s )
{ {
s.MakeLower();
// for metrics backward compatibility // for metrics backward compatibility
if(s=="off") SetZTestMode( ZTEST_OFF ); if(s.CompareNoCase("off")==0) SetZTestMode( ZTEST_OFF );
else if(s=="writeonpass") SetZTestMode( ZTEST_WRITE_ON_PASS ); else if(s.CompareNoCase("writeonpass")==0) SetZTestMode( ZTEST_WRITE_ON_PASS );
else if(s=="writeonfail") SetZTestMode( ZTEST_WRITE_ON_FAIL ); else if(s.CompareNoCase("writeonfail")==0) SetZTestMode( ZTEST_WRITE_ON_FAIL );
else ASSERT(0); else ASSERT(0);
} }
+11 -11
View File
@@ -72,13 +72,13 @@ public:
CString m_sName, m_sID; CString m_sName, m_sID;
CString GetName() const { return m_sName; };
CString GetID() const { return m_sID; };
/* m_sName is the name actors use to look up internal metrics for themselves, and for /* m_sName is the name actors use to look up internal metrics for themselves, and for
* filenames. m_sID is the name parents use to look up their own metrics for an actor * filenames. m_sID is the name parents use to look up their own metrics for an actor
* (usually via ActorUtil). (This is experimental; see DifficultyMeter.cpp for more * (usually via ActorUtil). (This is experimental; see DifficultyMeter.cpp for more
* information.) */ * information.) */
void SetName( const CString &sName, const CString &sID = "" ) { m_sName = sName; m_sID = (sID.size()? sID:sName); }; const CString &GetName() const { return m_sName; }
const CString &GetID() const { return m_sID.empty() ? m_sName : m_sID; }
void SetName( const CString &sName, const CString &sID = "" ) { m_sName = sName; m_sID = sID; }
@@ -212,11 +212,11 @@ public:
// //
enum HorizAlign { align_left, align_center, align_right }; enum HorizAlign { align_left, align_center, align_right };
virtual void SetHorizAlign( HorizAlign ha ) { m_HorizAlign = ha; } virtual void SetHorizAlign( HorizAlign ha ) { m_HorizAlign = ha; }
virtual void SetHorizAlign( CString s ); virtual void SetHorizAlign( const CString &s );
enum VertAlign { align_top, align_middle, align_bottom }; enum VertAlign { align_top, align_middle, align_bottom };
virtual void SetVertAlign( VertAlign va ) { m_VertAlign = va; } virtual void SetVertAlign( VertAlign va ) { m_VertAlign = va; }
virtual void SetVertAlign( CString s ); virtual void SetVertAlign( const CString &s );
// //
@@ -230,7 +230,7 @@ public:
void SetEffectDelay( float fTime ) { m_fEffectDelay = fTime; } void SetEffectDelay( float fTime ) { m_fEffectDelay = fTime; }
void SetEffectOffset( float fPercent ) { m_fEffectOffset = fPercent; } void SetEffectOffset( float fPercent ) { m_fEffectOffset = fPercent; }
void SetEffectClock( EffectClock c ) { m_EffectClock = c; } void SetEffectClock( EffectClock c ) { m_EffectClock = c; }
void SetEffectClock( CString s ); void SetEffectClock( const CString &s );
void SetEffectMagnitude( RageVector3 vec ) { m_vEffectMagnitude = vec; } void SetEffectMagnitude( RageVector3 vec ) { m_vEffectMagnitude = vec; }
@@ -289,22 +289,22 @@ public:
// render states // render states
// //
void SetBlendMode( BlendMode mode ) { m_BlendMode = mode; } void SetBlendMode( BlendMode mode ) { m_BlendMode = mode; }
void SetBlendMode( CString ); void SetBlendMode( const CString &s );
void SetTextureWrapping( bool b ) { m_bTextureWrapping = b; } void SetTextureWrapping( bool b ) { m_bTextureWrapping = b; }
void SetClearZBuffer( bool b ) { m_bClearZBuffer = b; } void SetClearZBuffer( bool b ) { m_bClearZBuffer = b; }
void SetUseZBuffer( bool b ) { SetZTestMode(b?ZTEST_WRITE_ON_PASS:ZTEST_OFF); SetZWrite(b); } void SetUseZBuffer( bool b ) { SetZTestMode(b?ZTEST_WRITE_ON_PASS:ZTEST_OFF); SetZWrite(b); }
virtual void SetZTestMode( ZTestMode mode ) { m_ZTestMode = mode; } virtual void SetZTestMode( ZTestMode mode ) { m_ZTestMode = mode; }
virtual void SetZTestMode( CString ); virtual void SetZTestMode( const CString &s );
virtual void SetZWrite( bool b ) { m_bZWrite = b; } virtual void SetZWrite( bool b ) { m_bZWrite = b; }
virtual void SetCullMode( CullMode mode ) { m_CullMode = mode; } virtual void SetCullMode( CullMode mode ) { m_CullMode = mode; }
virtual void SetCullMode( CString ); virtual void SetCullMode( const CString &s );
// //
// Commands // Commands
// //
void Command( CString sCommands ); // return length in seconds to execute command void Command( const CString &sCommands );
virtual void HandleCommand( const ParsedCommand &command ); // derivable virtual void HandleCommand( const ParsedCommand &command ); // derivable
static float GetCommandLength( CString command ); static float GetCommandLengthSeconds( const CString &sCommands );
// //
// Animation // Animation
+2 -2
View File
@@ -16,11 +16,11 @@ struct ParsedCommandToken
// and the next 3 params are the other components. // and the next 3 params are the other components.
bool bColorIsValid; bool bColorIsValid;
operator const CString () const { return s; }; operator const CString &() const { return s; };
operator const float () const { return f; }; operator const float () const { return f; };
operator const int () const { return (int)f; }; operator const int () const { return (int)f; };
operator const bool () const { return ((int)f)!=0; }; operator const bool () const { return ((int)f)!=0; };
operator const RageColor () const { return c; }; operator const RageColor &() const { return c; };
}; };
struct ParsedCommand struct ParsedCommand
+6 -6
View File
@@ -20,7 +20,7 @@
#include "arch/Dialog/Dialog.h" #include "arch/Dialog/Dialog.h"
Actor* LoadFromActorFile( CString sIniPath, CString sLayer ) Actor* LoadFromActorFile( const CString &sIniPath, const CString &sLayer )
{ {
// TODO: Check for recursive loading // TODO: Check for recursive loading
IniFile ini; IniFile ini;
@@ -234,7 +234,7 @@ retry:
return pActor; return pActor;
} }
Actor* MakeActor( RageTextureID ID ) Actor* MakeActor( const RageTextureID &ID )
{ {
CString sExt = GetExtension( ID.filename ); CString sExt = GetExtension( ID.filename );
sExt.MakeLower(); sExt.MakeLower();
@@ -275,13 +275,13 @@ Actor* MakeActor( RageTextureID ID )
ID.filename.c_str(), sExt.c_str() ); ID.filename.c_str(), sExt.c_str() );
} }
void UtilSetXY( Actor& actor, CString sClassName ) void UtilSetXY( Actor& actor, const CString &sClassName )
{ {
ASSERT( !actor.GetID().empty() ); ASSERT( !actor.GetID().empty() );
actor.SetXY( THEME->GetMetricF(sClassName,actor.GetID()+"X"), THEME->GetMetricF(sClassName,actor.GetID()+"Y") ); actor.SetXY( THEME->GetMetricF(sClassName,actor.GetID()+"X"), THEME->GetMetricF(sClassName,actor.GetID()+"Y") );
} }
void UtilCommand( Actor& actor, CString sClassName, CString sCommandName ) void UtilCommand( Actor& actor, const CString &sClassName, const CString &sCommandName )
{ {
// If Actor is hidden, it won't get updated or drawn, so don't bother tweening. // If Actor is hidden, it won't get updated or drawn, so don't bother tweening.
/* ... but we might be unhiding it, or setting state for when we unhide it later */ /* ... but we might be unhiding it, or setting state for when we unhide it later */
@@ -305,13 +305,13 @@ void UtilCommand( Actor& actor, CString sClassName, CString sCommandName )
actor.Command( THEME->GetMetric(sClassName,actor.GetID()+sCommandName+"Command") ); actor.Command( THEME->GetMetric(sClassName,actor.GetID()+sCommandName+"Command") );
} }
void AutoActor::Load( CString sPath ) void AutoActor::Load( const CString &sPath )
{ {
Unload(); Unload();
m_pActor = MakeActor( sPath ); m_pActor = MakeActor( sPath );
} }
void AutoActor::LoadAndSetName( CString sScreenName, CString sActorName ) void AutoActor::LoadAndSetName( const CString &sScreenName, const CString &sActorName )
{ {
Load( THEME->GetPathG(sScreenName,sActorName) ); Load( THEME->GetPathG(sScreenName,sActorName) );
m_pActor->SetName( sActorName ); m_pActor->SetName( sActorName );
+14 -14
View File
@@ -12,29 +12,29 @@
#define COMMAND( actor, command_name ) UtilCommand( actor, m_sName, command_name ) #define COMMAND( actor, command_name ) UtilCommand( actor, m_sName, command_name )
void UtilSetXY( Actor& actor, CString sClassName ); void UtilSetXY( Actor& actor, const CString &sClassName );
inline void UtilSetXY( Actor* pActor, CString sClassName ) { UtilSetXY( *pActor, sClassName ); } inline void UtilSetXY( Actor* pActor, const CString &sClassName ) { UtilSetXY( *pActor, sClassName ); }
void UtilCommand( Actor& actor, CString sClassName, CString sCommandName ); void UtilCommand( Actor& actor, const CString &sClassName, const CString &sCommandName );
inline void UtilOnCommand( Actor& actor, CString sClassName ) { UtilCommand( actor, sClassName, "On" ); } inline void UtilOnCommand( Actor& actor, const CString &sClassName ) { UtilCommand( actor, sClassName, "On" ); }
inline void UtilOffCommand( Actor& actor, CString sClassName ) { UtilCommand( actor, sClassName, "Off" ); } inline void UtilOffCommand( Actor& actor, const CString &sClassName ) { UtilCommand( actor, sClassName, "Off" ); }
inline void UtilSetXYAndOnCommand( Actor& actor, CString sClassName ) inline void UtilSetXYAndOnCommand( Actor& actor, const CString &sClassName )
{ {
UtilSetXY( actor, sClassName ); UtilSetXY( actor, sClassName );
UtilOnCommand( actor, sClassName ); UtilOnCommand( actor, sClassName );
} }
/* convenience */ /* convenience */
inline void UtilCommand( Actor* pActor, CString sClassName, CString sCommandName ) { if(pActor) UtilCommand( *pActor, sClassName, sCommandName ); } inline void UtilCommand( Actor* pActor, const CString &sClassName, const CString &sCommandName ) { if(pActor) UtilCommand( *pActor, sClassName, sCommandName ); }
inline void UtilOnCommand( Actor* pActor, CString sClassName ) { if(pActor) UtilOnCommand( *pActor, sClassName ); } inline void UtilOnCommand( Actor* pActor, const CString &sClassName ) { if(pActor) UtilOnCommand( *pActor, sClassName ); }
inline void UtilOffCommand( Actor* pActor, CString sClassName ) { if(pActor) UtilOffCommand( *pActor, sClassName ); } inline void UtilOffCommand( Actor* pActor, const CString &sClassName ) { if(pActor) UtilOffCommand( *pActor, sClassName ); }
inline void UtilSetXYAndOnCommand( Actor* pActor, CString sClassName ) { if(pActor) UtilSetXYAndOnCommand( *pActor, sClassName ); } inline void UtilSetXYAndOnCommand( Actor* pActor, const CString &sClassName ) { if(pActor) UtilSetXYAndOnCommand( *pActor, sClassName ); }
// Return a Sprite, BitmapText, or Model depending on the file type // Return a Sprite, BitmapText, or Model depending on the file type
Actor* LoadFromActorFile( CString sIniPath, CString sLayer = "Actor" ); Actor* LoadFromActorFile( const CString &sIniPath, const CString &sLayer = "Actor" );
Actor* MakeActor( RageTextureID ID ); Actor* MakeActor( const RageTextureID &ID );
// creates the appropriate Actor derivitive on load and // creates the appropriate Actor derivitive on load and
@@ -50,8 +50,8 @@ public:
Actor *operator->() { return m_pActor; } Actor *operator->() { return m_pActor; }
void Unload() { if(m_pActor) { delete m_pActor; m_pActor=NULL; } } void Unload() { if(m_pActor) { delete m_pActor; m_pActor=NULL; } }
bool IsLoaded() const { return m_pActor != NULL; } bool IsLoaded() const { return m_pActor != NULL; }
void Load( CString sPath ); void Load( const CString &sPath );
void LoadAndSetName( CString sScreenName, CString sActorName ); void LoadAndSetName( const CString &sScreenName, const CString &sActorName );
protected: protected:
Actor* m_pActor; Actor* m_pActor;
+2 -2
View File
@@ -30,8 +30,8 @@ void LyricDisplay::Init()
m_iCurLyricNumber = 0; m_iCurLyricNumber = 0;
/* Update global cache: */ /* Update global cache: */
g_TweenInTime = Actor::GetCommandLength(IN_COMMAND); g_TweenInTime = Actor::GetCommandLengthSeconds(IN_COMMAND);
g_TweenOutTime = Actor::GetCommandLength(OUT_COMMAND); g_TweenOutTime = Actor::GetCommandLengthSeconds(OUT_COMMAND);
m_fLastSecond = -500; m_fLastSecond = -500;
} }