Remove ThemeMetricEnum. Since all metrics are evaluated as lua, use lua integer constants.

This commit is contained in:
Steve Checkoway
2006-09-23 07:21:26 +00:00
parent 0f2707fe9c
commit a4aa69b148
11 changed files with 11 additions and 33 deletions
+1 -1
View File
@@ -133,7 +133,7 @@ private:
ThemeMetric<apActorCommands> ROW_VALUE_ON_COMMAND;
ThemeMetric1D<float> ROW_Y;
public:
ThemeMetricEnum<EditMode> EDIT_MODE;
ThemeMetric<int> EDIT_MODE;
};
#endif
+1 -4
View File
@@ -92,10 +92,7 @@ static const RString EMPTY_STRING;
if( !s2.CompareNoCase(X##Names[i]) ) \
return (X)i; \
return (X)(i+1); /*invalid*/ \
} \
template<> void StringTo<X>( const RString& s, X &out ) { out = StringTo##X( s ); }
// VC6 hack: even templated functions can't differ by only return value. Move return value to a reference parameter.
template<class T> void StringTo( const RString& s, T &out );
}
#define LuaXToString(X) \
LuaFunction( X##ToString, X##ToString( (X) IArg(1) ) );
+2 -5
View File
@@ -216,10 +216,6 @@ TapNoteScore StringToTapNoteScore( const RString &s )
return TNS_INVALID;
}
template<> void StringTo<TapNoteScore>( const RString &s, TapNoteScore &out )
{
out = StringToTapNoteScore( s );
}
XToLocalizedString( TapNoteScore );
LuaFunction( TapNoteScoreToLocalizedString, TapNoteScoreToLocalizedString((TapNoteScore) IArg(1)) );
static void LuaTapNoteScores( lua_State* L )
@@ -408,8 +404,9 @@ static const char *EditModeNames[] = {
"Home",
"Full"
};
XToString( EditMode, EditMode_INVALID );
XToString( EditMode, NUM_EditMode );
StringToX( EditMode );
LuaXType( EditMode, NUM_EditMode, "EditMode_", false );
static const char *StageNames[] = {
"1",
+2 -2
View File
@@ -60,8 +60,8 @@ Song* GameState::GetDefaultSong() const
return sid.ToSong();
}
static const ThemeMetricEnum<Grade> GRADE_TIER_FOR_EXTRA_1 ("GameState","GradeTierForExtra1");
static const ThemeMetricEnum<Grade> GRADE_TIER_FOR_EXTRA_2 ("GameState","GradeTierForExtra2");
static const ThemeMetric<int> GRADE_TIER_FOR_EXTRA_1 ("GameState","GradeTierForExtra1");
static const ThemeMetric<int> GRADE_TIER_FOR_EXTRA_2 ("GameState","GradeTierForExtra2");
static DynamicThemeMetric<bool> ARE_STAGE_MODS_FORCED( "GameState","AreStageModsForced" );
-1
View File
@@ -52,7 +52,6 @@ Grade StringToGrade( const RString &sGrade )
LOG->Warn( "Invalid grade: %s", sGrade.c_str() );
return Grade_NoData;
};
template<> void StringTo<Grade>( const RString& s, Grade &out ) { out = StringToGrade( s ); }
static void LuaGrade(lua_State* L)
{
+1 -1
View File
@@ -42,7 +42,7 @@ static ThemeMetric<float> DANGER_THRESHOLD ("LifeMeterBar","DangerThreshold");
static ThemeMetric<int> NUM_CHAMBERS ("LifeMeterBar","NumChambers");
static ThemeMetric<int> NUM_STRIPS ("LifeMeterBar","NumStrips");
static ThemeMetric<float> INITIAL_VALUE ("LifeMeterBar","InitialValue");
static ThemeMetricEnum<TapNoteScore> MIN_STAY_ALIVE( "LifeMeterBar","MinStayAlive" );
static ThemeMetric<int> MIN_STAY_ALIVE ("LifeMeterBar","MinStayAlive");
const float FAIL_THRESHOLD = 0;
+1 -1
View File
@@ -669,7 +669,7 @@ void ScreenEdit::Init()
m_fBeatToReturnTo = 0;
GAMESTATE->m_bGameplayLeadIn.Set( true );
GAMESTATE->m_EditMode = EDIT_MODE.GetValue();
GAMESTATE->m_EditMode = (EditMode)EDIT_MODE.GetValue();
GAMESTATE->m_fSongBeat = 0;
m_fTrailingBeat = GAMESTATE->m_fSongBeat;
+1 -1
View File
@@ -272,7 +272,7 @@ protected:
RageSound m_soundMusic;
RageSound m_soundAssistTick;
ThemeMetricEnum<EditMode> EDIT_MODE;
ThemeMetric<int> EDIT_MODE;
public:
enum MainMenuChoice
+1 -1
View File
@@ -196,7 +196,7 @@ void ScreenOptionsManageCourses::BeginScreen()
{
default:
RageException::Throw( "ScreenOptionsManageCourses: Invalid edit mode: %s.",
EditModeToString(EDIT_MODE.GetValue()).c_str() );
EditModeToString((EditMode)EDIT_MODE.GetValue()).c_str() );
case EditMode_Practice:
case EditMode_Home:
// Strip out non-edits.
+1 -1
View File
@@ -37,7 +37,7 @@ private:
Course *GetCourseWithFocus() const;
vector<Course*> m_vpCourses;
ThemeMetricEnum<EditMode> EDIT_MODE;
ThemeMetric<int> EDIT_MODE;
ThemeMetric<RString> CREATE_NEW_SCREEN;
};
-15
View File
@@ -235,21 +235,6 @@ public:
}
};
// VC 6 hack: even templated functions can't differ by only return value. Move return value to a reference parameter.
template<class T> void StringTo( const RString& s, T &out );
template<class T>
class ThemeMetricEnum : public ThemeMetric<RString>
{
T m_Value;
public:
ThemeMetricEnum() : ThemeMetric<RString>() {}
ThemeMetricEnum( const RString& sGroup, const RString& sName ) :
ThemeMetric<RString>( sGroup, sName ) {}
void Read() { ThemeMetric<RString>::Read(); StringTo<T>(m_currentValue,m_Value); }
const T &GetValue() const { ASSERT( !m_sName.empty() && m_bIsLoaded ); return m_Value; }
operator const T& () const { return GetValue(); }
};
/*
* Like ThemeMetric, but allows evaluating Lua expressions each time. This is