lua_pop( L, 1 );
}
-#define READFROM_AND_WRITETO( type, cast ) \
+#define READFROM_AND_WRITETO( type, rawtype ) \
template<> void Preference<type>::FromString( const CString &s ) \
{ \
- ::FromString( s, (cast)m_currentValue ); \
+ rawtype value; \
+ ::FromString( s, value ); \
+ m_currentValue = static_cast<type>(value); \
} \
template<> CString Preference<type>::ToString() const \
{ \
- return ::ToString( (cast)m_currentValue ); \
+ return ::ToString( static_cast<rawtype>(m_currentValue) ); \
} \
template<> void Preference<type>::PushValue( lua_State *L ) const \
{ \
- LuaHelpers::PushStack( (cast)m_currentValue, L ); \
+ LuaHelpers::PushStack( static_cast<rawtype>(m_currentValue), L ); \
} \
template<> void Preference<type>::SetFromStack( lua_State *L ) \
{ \
- LuaHelpers::PopStack( (cast)m_currentValue, L ); \
+ rawtype value; \
+ LuaHelpers::PopStack( value, L ); \
+ m_currentValue = static_cast<type>(value); \
}
-READFROM_AND_WRITETO( int, int& )
-READFROM_AND_WRITETO( float, float& )
-READFROM_AND_WRITETO( bool, bool& )
-READFROM_AND_WRITETO( CString, CString& )
-READFROM_AND_WRITETO( PrefsManager::BackgroundMode, int& )
-READFROM_AND_WRITETO( PrefsManager::BannerCache, int& )
-READFROM_AND_WRITETO( PrefsManager::MusicWheelUsesSections, int& )
-READFROM_AND_WRITETO( PrefsManager::MarvelousTiming, int& )
-READFROM_AND_WRITETO( CoinMode, int& )
-READFROM_AND_WRITETO( Premium, int& )
-READFROM_AND_WRITETO( PrefsManager::Maybe, int& )
-READFROM_AND_WRITETO( PrefsManager::CharacterOption, int& )
-READFROM_AND_WRITETO( PrefsManager::CourseSortOrders, int& )
-READFROM_AND_WRITETO( PrefsManager::GetRankingName, int& )
-READFROM_AND_WRITETO( PrefsManager::ScoringTypes, int& )
-READFROM_AND_WRITETO( PrefsManager::BoostAppPriority, int& )
-READFROM_AND_WRITETO( PrefsManager::AttractSoundFrequency, int& )
-READFROM_AND_WRITETO( PlayerController, int& )
-READFROM_AND_WRITETO( RageSoundReader_Resample::ResampleQuality, int& )
+READFROM_AND_WRITETO( int, int )
+READFROM_AND_WRITETO( float, float )
+READFROM_AND_WRITETO( bool, bool )
+READFROM_AND_WRITETO( CString, CString )
+READFROM_AND_WRITETO( PrefsManager::BackgroundMode, int )
+READFROM_AND_WRITETO( PrefsManager::BannerCache, int )
+READFROM_AND_WRITETO( PrefsManager::MusicWheelUsesSections, int )
+READFROM_AND_WRITETO( PrefsManager::MarvelousTiming, int )
+READFROM_AND_WRITETO( CoinMode, int )
+READFROM_AND_WRITETO( Premium, int )
+READFROM_AND_WRITETO( PrefsManager::Maybe, int )
+READFROM_AND_WRITETO( PrefsManager::CharacterOption, int )
+READFROM_AND_WRITETO( PrefsManager::CourseSortOrders, int )
+READFROM_AND_WRITETO( PrefsManager::GetRankingName, int )
+READFROM_AND_WRITETO( PrefsManager::ScoringTypes, int )
+READFROM_AND_WRITETO( PrefsManager::BoostAppPriority, int )
+READFROM_AND_WRITETO( PrefsManager::AttractSoundFrequency, int )
+READFROM_AND_WRITETO( PlayerController, int )
+READFROM_AND_WRITETO( RageSoundReader_Resample::ResampleQuality, int )
void IPreference::ReadFrom( const IniFile &ini )
{