From a4aa69b148cc6f8200b4b76289d76afeec656992 Mon Sep 17 00:00:00 2001 From: Steve Checkoway Date: Sat, 23 Sep 2006 07:21:26 +0000 Subject: [PATCH] Remove ThemeMetricEnum. Since all metrics are evaluated as lua, use lua integer constants. --- stepmania/src/EditMenu.h | 2 +- stepmania/src/EnumHelper.h | 5 +---- stepmania/src/GameConstantsAndTypes.cpp | 7 ++----- stepmania/src/GameState.cpp | 4 ++-- stepmania/src/Grade.cpp | 1 - stepmania/src/LifeMeterBar.cpp | 2 +- stepmania/src/ScreenEdit.cpp | 2 +- stepmania/src/ScreenEdit.h | 2 +- stepmania/src/ScreenOptionsManageCourses.cpp | 2 +- stepmania/src/ScreenOptionsManageCourses.h | 2 +- stepmania/src/ThemeMetric.h | 15 --------------- 11 files changed, 11 insertions(+), 33 deletions(-) diff --git a/stepmania/src/EditMenu.h b/stepmania/src/EditMenu.h index b7f2c3dd56..782366acf0 100644 --- a/stepmania/src/EditMenu.h +++ b/stepmania/src/EditMenu.h @@ -133,7 +133,7 @@ private: ThemeMetric ROW_VALUE_ON_COMMAND; ThemeMetric1D ROW_Y; public: - ThemeMetricEnum EDIT_MODE; + ThemeMetric EDIT_MODE; }; #endif diff --git a/stepmania/src/EnumHelper.h b/stepmania/src/EnumHelper.h index 8ba9d68583..2e6b4c5f2b 100644 --- a/stepmania/src/EnumHelper.h +++ b/stepmania/src/EnumHelper.h @@ -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( 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 void StringTo( const RString& s, T &out ); + } #define LuaXToString(X) \ LuaFunction( X##ToString, X##ToString( (X) IArg(1) ) ); diff --git a/stepmania/src/GameConstantsAndTypes.cpp b/stepmania/src/GameConstantsAndTypes.cpp index 50408dd4f8..4b8a024ed7 100644 --- a/stepmania/src/GameConstantsAndTypes.cpp +++ b/stepmania/src/GameConstantsAndTypes.cpp @@ -216,10 +216,6 @@ TapNoteScore StringToTapNoteScore( const RString &s ) return TNS_INVALID; } -template<> void StringTo( 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", diff --git a/stepmania/src/GameState.cpp b/stepmania/src/GameState.cpp index c0ce85f8c2..e6a85386c5 100644 --- a/stepmania/src/GameState.cpp +++ b/stepmania/src/GameState.cpp @@ -60,8 +60,8 @@ Song* GameState::GetDefaultSong() const return sid.ToSong(); } -static const ThemeMetricEnum GRADE_TIER_FOR_EXTRA_1 ("GameState","GradeTierForExtra1"); -static const ThemeMetricEnum GRADE_TIER_FOR_EXTRA_2 ("GameState","GradeTierForExtra2"); +static const ThemeMetric GRADE_TIER_FOR_EXTRA_1 ("GameState","GradeTierForExtra1"); +static const ThemeMetric GRADE_TIER_FOR_EXTRA_2 ("GameState","GradeTierForExtra2"); static DynamicThemeMetric ARE_STAGE_MODS_FORCED( "GameState","AreStageModsForced" ); diff --git a/stepmania/src/Grade.cpp b/stepmania/src/Grade.cpp index a443a4824e..2c7799c778 100644 --- a/stepmania/src/Grade.cpp +++ b/stepmania/src/Grade.cpp @@ -52,7 +52,6 @@ Grade StringToGrade( const RString &sGrade ) LOG->Warn( "Invalid grade: %s", sGrade.c_str() ); return Grade_NoData; }; -template<> void StringTo( const RString& s, Grade &out ) { out = StringToGrade( s ); } static void LuaGrade(lua_State* L) { diff --git a/stepmania/src/LifeMeterBar.cpp b/stepmania/src/LifeMeterBar.cpp index 22dd1da5f4..4b5c447045 100644 --- a/stepmania/src/LifeMeterBar.cpp +++ b/stepmania/src/LifeMeterBar.cpp @@ -42,7 +42,7 @@ static ThemeMetric DANGER_THRESHOLD ("LifeMeterBar","DangerThreshold"); static ThemeMetric NUM_CHAMBERS ("LifeMeterBar","NumChambers"); static ThemeMetric NUM_STRIPS ("LifeMeterBar","NumStrips"); static ThemeMetric INITIAL_VALUE ("LifeMeterBar","InitialValue"); -static ThemeMetricEnum MIN_STAY_ALIVE( "LifeMeterBar","MinStayAlive" ); +static ThemeMetric MIN_STAY_ALIVE ("LifeMeterBar","MinStayAlive"); const float FAIL_THRESHOLD = 0; diff --git a/stepmania/src/ScreenEdit.cpp b/stepmania/src/ScreenEdit.cpp index 0547b74340..5b7c0acddb 100644 --- a/stepmania/src/ScreenEdit.cpp +++ b/stepmania/src/ScreenEdit.cpp @@ -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; diff --git a/stepmania/src/ScreenEdit.h b/stepmania/src/ScreenEdit.h index 09283a437a..57e309541a 100644 --- a/stepmania/src/ScreenEdit.h +++ b/stepmania/src/ScreenEdit.h @@ -272,7 +272,7 @@ protected: RageSound m_soundMusic; RageSound m_soundAssistTick; - ThemeMetricEnum EDIT_MODE; + ThemeMetric EDIT_MODE; public: enum MainMenuChoice diff --git a/stepmania/src/ScreenOptionsManageCourses.cpp b/stepmania/src/ScreenOptionsManageCourses.cpp index 327a93649c..a90cf88baa 100644 --- a/stepmania/src/ScreenOptionsManageCourses.cpp +++ b/stepmania/src/ScreenOptionsManageCourses.cpp @@ -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. diff --git a/stepmania/src/ScreenOptionsManageCourses.h b/stepmania/src/ScreenOptionsManageCourses.h index 45f3bba0ea..38af55c198 100644 --- a/stepmania/src/ScreenOptionsManageCourses.h +++ b/stepmania/src/ScreenOptionsManageCourses.h @@ -37,7 +37,7 @@ private: Course *GetCourseWithFocus() const; vector m_vpCourses; - ThemeMetricEnum EDIT_MODE; + ThemeMetric EDIT_MODE; ThemeMetric CREATE_NEW_SCREEN; }; diff --git a/stepmania/src/ThemeMetric.h b/stepmania/src/ThemeMetric.h index e01f65044f..364c2d8876 100644 --- a/stepmania/src/ThemeMetric.h +++ b/stepmania/src/ThemeMetric.h @@ -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 void StringTo( const RString& s, T &out ); -template -class ThemeMetricEnum : public ThemeMetric -{ - T m_Value; -public: - ThemeMetricEnum() : ThemeMetric() {} - ThemeMetricEnum( const RString& sGroup, const RString& sName ) : - ThemeMetric( sGroup, sName ) {} - void Read() { ThemeMetric::Read(); StringTo(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