Remove ThemeMetricEnum. Since all metrics are evaluated as lua, use lua integer constants.
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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) ) );
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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" );
|
||||
|
||||
|
||||
@@ -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)
|
||||
{
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
@@ -272,7 +272,7 @@ protected:
|
||||
RageSound m_soundMusic;
|
||||
RageSound m_soundAssistTick;
|
||||
|
||||
ThemeMetricEnum<EditMode> EDIT_MODE;
|
||||
ThemeMetric<int> EDIT_MODE;
|
||||
|
||||
public:
|
||||
enum MainMenuChoice
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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;
|
||||
};
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user