add ClearStageModifiersIllegalForCourse

This commit is contained in:
Chris Danford
2008-05-20 21:42:08 +00:00
parent dad398f571
commit f1a92b173b
4 changed files with 33 additions and 5 deletions
+12
View File
@@ -1293,6 +1293,12 @@ void GameState::ApplyStageModifiers( PlayerNumber pn, RString sModifiers )
m_SongOptions.FromString( ModsLevel_Stage, sModifiers );
}
void GameState::ClearStageModifiersIllegalForCourse()
{
FOREACH_EnabledPlayer( pn )
PO_GROUP_CALL( m_pPlayerState[pn]->m_PlayerOptions, ModsLevel_Stage, ResetSavedPrefsInvalidForCourse );
}
bool GameState::CurrentOptionsDisqualifyPlayer( PlayerNumber pn )
{
if( !PREFSMAN->m_bDisqualification )
@@ -2160,6 +2166,11 @@ public:
lua_pushstring(L, so.GetString());
return 1;
}
static int ClearStageModifiersIllegalForCourse( T* p, lua_State *L )
{
p->ClearStageModifiersIllegalForCourse();
return 0;
}
static int SetSongOptions( T* p, lua_State *L )
{
ModsLevel m = Enum::Check<ModsLevel>( L, 1 );
@@ -2329,6 +2340,7 @@ public:
ADD_METHOD( GetSongOptionsString );
ADD_METHOD( GetSongOptions );
ADD_METHOD( GetDefaultSongOptions );
ADD_METHOD( ClearStageModifiersIllegalForCourse );
ADD_METHOD( SetSongOptions );
ADD_METHOD( IsWinner );
ADD_METHOD( IsDraw );
+1
View File
@@ -241,6 +241,7 @@ public:
void ResetToDefaultSongOptions( ModsLevel l );
void ApplyPreferredModifiers( PlayerNumber pn, RString sModifiers );
void ApplyStageModifiers( PlayerNumber pn, RString sModifiers );
void ClearStageModifiersIllegalForCourse();
void ResetOptions();
bool CurrentOptionsDisqualifyPlayer( PlayerNumber pn );
+12 -4
View File
@@ -755,13 +755,21 @@ RString PlayerOptions::GetSavedPrefsString() const
return po_prefs.GetString();
}
void PlayerOptions::ResetSavedPrefs()
void PlayerOptions::ResetPrefs( ResetPrefsType type )
{
PlayerOptions defaults;
#define CPY(x) this->x = defaults.x;
CPY( m_fTimeSpacing );
CPY( m_fScrollSpeed );
CPY( m_fScrollBPM );
switch( type )
{
DEFAULT_FAIL( type );
case saved_prefs:
CPY( m_fTimeSpacing );
CPY( m_fScrollSpeed );
CPY( m_fScrollBPM );
break;
case saved_prefs_invalid_for_course:
break;
}
CPY( m_fScrolls[SCROLL_REVERSE] );
CPY( m_fPerspectiveTilt );
CPY( m_bTransforms[TRANSFORM_NOHOLDS] );
+8 -1
View File
@@ -19,7 +19,14 @@ public:
void Approach( const PlayerOptions& other, float fDeltaSeconds );
RString GetString( bool bForceNoteSkin = false ) const;
RString GetSavedPrefsString() const; // only the basic options that players would want for every song
void ResetSavedPrefs();
enum ResetPrefsType
{
saved_prefs,
saved_prefs_invalid_for_course
};
void ResetPrefs( ResetPrefsType type );
void ResetSavedPrefs() { ResetPrefs(saved_prefs); };
void ResetSavedPrefsInvalidForCourse() { ResetPrefs(saved_prefs_invalid_for_course); }
void GetMods( vector<RString> &AddTo, bool bForceNoteSkin = false ) const;
void GetLocalizedMods( vector<RString> &AddTo ) const;
void FromString( const RString &sMultipleMods );