add ClearStageModifiersIllegalForCourse
This commit is contained in:
@@ -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 );
|
||||
|
||||
@@ -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 );
|
||||
|
||||
@@ -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] );
|
||||
|
||||
@@ -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 );
|
||||
|
||||
Reference in New Issue
Block a user