Merge pull request #380 from kyzentun/pref_hide_note
Preference and mod for hiding notes that are hit
This commit is contained in:
+11
-6
@@ -4,28 +4,33 @@ The StepMania 5 Changelog covers all post-sm-ssc changes. For a list of changes
|
||||
from StepMania 4 alpha 5 to sm-ssc v1.2.5, see Changelog_sm-ssc.txt.
|
||||
________________________________________________________________________________
|
||||
|
||||
2014/11/22
|
||||
----------
|
||||
* [Preferences] MinTNSToHideNotes preference added. [kyzentun]
|
||||
* [PlayerOptions] MinTNSToHideNotes mod added. [kyzentun]
|
||||
|
||||
2014/11/15
|
||||
----------
|
||||
* [Preferences] Default Fail Type preference mechanism changed internally again.
|
||||
Set your Default Fail Type preference again.
|
||||
Set your Default Fail Type preference again. [kyzentun]
|
||||
|
||||
2014/11/05
|
||||
----------
|
||||
* [ScreenPrompt] Answer OnCommand metrics fixed to actually work.
|
||||
* [ScreenPrompt] Answer OnCommand metrics fixed to actually work. [kyzentun]
|
||||
|
||||
2014/11/01
|
||||
----------
|
||||
* [RollingNumbers] Cropping and color during tweens fixed.
|
||||
* [RollingNumbers] Cropping and color during tweens fixed. [kyzentun]
|
||||
|
||||
2014/10/23
|
||||
----------
|
||||
* [Global] approach, multiapproach, lerp, and lerp_color lua functions added.
|
||||
* [Global] approach, multiapproach, lerp, and lerp_color lua functions added. [kyzentun]
|
||||
|
||||
2014/10/20
|
||||
----------
|
||||
* [StageStats] GetStepsSeconds function added.
|
||||
* [StageStats] GetStepsSeconds function added. [kyzentun]
|
||||
* [Steps] If an unrecognized step type is saved, preserve that step instead of
|
||||
deleting it. A warning will be placed in the log file during song load.
|
||||
deleting it. A warning will be placed in the log file during song load. [kyzentun]
|
||||
|
||||
================================================================================
|
||||
StepMania 5.0 beta 4a | 20141015
|
||||
|
||||
@@ -1053,6 +1053,7 @@
|
||||
<Function name='MaxScrollBPM'/>
|
||||
<Function name='Mines'/>
|
||||
<Function name='Mini'/>
|
||||
<Function name='MinTNSToHideNotes' />
|
||||
<Function name='Mirror'/>
|
||||
<Function name='MMod'/>
|
||||
<Function name='MuteOnError'/>
|
||||
|
||||
@@ -3097,6 +3097,7 @@ save yourself some time, copy this for undocumented things:
|
||||
</Function>
|
||||
<Function name='Mines' return='bool' arguments='bool value'> </Function>
|
||||
<Function name='Mini' return='float, float' arguments='float value, float approach_speed'> </Function>
|
||||
<Function name='MinTNSToHideNotes' return='TapNoteScore' arguments='TapNoteScore tns'> Sets the min TapNoteScore required for the notes to disappear after being hit. </Function>
|
||||
<Function name='Mirror' return='bool' arguments='bool value'> </Function>
|
||||
<Function name='MMod' return='float, float' arguments='float value, float approach_speed'>
|
||||
If the player has a MMod set, returns the value of that MMod and its associated approach speed. Returns nil otherwise.<br />
|
||||
|
||||
@@ -414,6 +414,7 @@ HighResolutionTextures=Choose whether high resolution textures (if supported by
|
||||
MaxTextureResolution=Choose the maximum texture resolution. Setting this to anything below 1024 will cause some textures to appear blurry, but may increase your frame rate.
|
||||
MenuTimer=When &oq;ON&cq;, menus have a time limit.
|
||||
Mines=Mines
|
||||
MinTNSToHideNotes=The judgment to achieve for a note to disappear after being hit.
|
||||
MoveRandomToEnd=Determines if courses with random songs should be placed at the end of the course select wheel.
|
||||
MovieColorDepth=Choose the color depth of movies. 32 bit textures use more memory, but look nicer.
|
||||
MusicWheelSwitchSpeed=Adjusts the speed of the music wheel.
|
||||
@@ -802,6 +803,17 @@ Three Key Menu=Three Key
|
||||
Tiny=Tiny
|
||||
Tipsy=Tipsy
|
||||
Title Only=Title Only
|
||||
TNS_None=TNS_None
|
||||
TNS_HitMine=TNS_HitMine
|
||||
TNS_AvoidMine=TNS_AvoidMine
|
||||
TNS_CheckpointMiss=TNS_CheckpointMiss
|
||||
TNS_Miss=TNS_Miss
|
||||
TNS_W5=TNS_W5
|
||||
TNS_W4=TNS_W4
|
||||
TNS_W3=TNS_W3
|
||||
TNS_W2=TNS_W2
|
||||
TNS_W1=TNS_W1
|
||||
TNS_CheckpointHit=TNS_CheckpointHit
|
||||
Tornado=Tornado
|
||||
Total Feet=Total Feet
|
||||
Twirl=Twirl
|
||||
@@ -1013,6 +1025,7 @@ MenuTimer=Menu Timer
|
||||
Meter=Meter
|
||||
Min BPM=Min Specified BPM
|
||||
Mines=Mines
|
||||
MinTNSToHideNotes=HideNote Judgment
|
||||
Mirror Player 1 to 2=Mirror P1's notes to P2 (routine only)
|
||||
Mirror Player 2 to 1=Mirror P2's notes to P1 (routine only)
|
||||
Modify Keysounds at current beat=Modify keysounds at current beat
|
||||
|
||||
@@ -3001,13 +3001,14 @@ Line20="conf,VisualDelaySeconds"
|
||||
Fallback="ScreenOptionsServiceChild"
|
||||
NextScreen="ScreenOptionsService"
|
||||
PrevScreen="ScreenOptionsService"
|
||||
LineNames="3,4,8,SI,SM,11,13,14,15,16,28,29,30,31"
|
||||
LineNames="3,4,8,SI,SM,HN,11,13,14,15,16,28,29,30,31"
|
||||
#LineScore="lua,UserPrefScoringMode()"
|
||||
Line3="conf,TimingWindowScale"
|
||||
Line4="conf,LifeDifficulty"
|
||||
Line8="conf,DefaultFailType"
|
||||
LineSI="lua,SpeedModIncSize()"
|
||||
LineSM="lua,SpeedModIncLarge()"
|
||||
LineHN="conf,MinTNSToHideNotes"
|
||||
Line11="conf,AllowW1"
|
||||
Line13="conf,HiddenSongs"
|
||||
Line14="conf,EasterEggs"
|
||||
|
||||
@@ -227,6 +227,16 @@ TapNoteScore StringToTapNoteScore( const RString &s )
|
||||
|
||||
return TapNoteScore_Invalid;
|
||||
}
|
||||
// This is necessary because the StringToX macro wasn't used, and Preference
|
||||
// relies on there being a StringConversion entry for enums used in prefs. -Kyz
|
||||
namespace StringConversion
|
||||
{
|
||||
template<> bool FromString<TapNoteScore>(const RString& value, TapNoteScore& out)
|
||||
{
|
||||
out= StringToTapNoteScore(value);
|
||||
return out != TapNoteScore_Invalid;
|
||||
}
|
||||
}
|
||||
XToLocalizedString( TapNoteScore );
|
||||
LuaFunction( TapNoteScoreToLocalizedString, TapNoteScoreToLocalizedString(Enum::Check<TapNoteScore>(L, 1)) );
|
||||
|
||||
|
||||
+2
-2
@@ -2563,7 +2563,7 @@ void Player::StepStrumHopo( int col, int row, const RageTimer &tm, bool bHeld, b
|
||||
const bool bBright = ( m_pPlayerStageStats && m_pPlayerStageStats->m_iCurCombo > int(BRIGHT_GHOST_COMBO_THRESHOLD) ) || bBlind;
|
||||
if( m_pNoteField )
|
||||
m_pNoteField->DidTapNote( col, bBlind? TNS_W1:score, bBright );
|
||||
if( score >= TNS_W3 || bBlind )
|
||||
if( score >= m_pPlayerState->m_PlayerOptions.GetCurrent().m_MinTNSToHideNotes || bBlind )
|
||||
HideNote( col, iRowOfOverlappingNoteOrRow );
|
||||
}
|
||||
}
|
||||
@@ -2909,7 +2909,7 @@ void Player::FlashGhostRow( int iRow )
|
||||
continue;
|
||||
if( m_pNoteField )
|
||||
m_pNoteField->DidTapNote( iTrack, lastTNS, bBright );
|
||||
if( lastTNS >= TNS_W3 || bBlind )
|
||||
if( lastTNS >= m_pPlayerState->m_PlayerOptions.GetCurrent().m_MinTNSToHideNotes || bBlind )
|
||||
HideNote( iTrack, iRow );
|
||||
}
|
||||
}
|
||||
|
||||
@@ -52,6 +52,7 @@ void PlayerOptions::Init()
|
||||
m_LifeType = LifeType_Bar;
|
||||
m_DrainType = DrainType_Normal;
|
||||
m_BatteryLives = 4;
|
||||
m_MinTNSToHideNotes= PREFSMAN->m_MinTNSToHideNotes;
|
||||
m_bSetScrollSpeed = false;
|
||||
m_fMaxScrollBPM = 0; m_SpeedfMaxScrollBPM = 1.0f;
|
||||
m_fTimeSpacing = 0; m_SpeedfTimeSpacing = 1.0f;
|
||||
@@ -117,6 +118,7 @@ void PlayerOptions::Approach( const PlayerOptions& other, float fDeltaSeconds )
|
||||
DO_COPY( m_bTransforms[i] );
|
||||
DO_COPY( m_bMuteOnError );
|
||||
DO_COPY( m_FailType );
|
||||
DO_COPY( m_MinTNSToHideNotes );
|
||||
DO_COPY( m_sNoteSkin );
|
||||
#undef APPROACH
|
||||
#undef DO_COPY
|
||||
@@ -755,6 +757,7 @@ bool PlayerOptions::operator==( const PlayerOptions &other ) const
|
||||
COMPARE(m_fMaxScrollBPM);
|
||||
COMPARE(m_fRandomSpeed);
|
||||
COMPARE(m_FailType);
|
||||
COMPARE(m_MinTNSToHideNotes);
|
||||
COMPARE(m_bMuteOnError);
|
||||
COMPARE(m_fDark);
|
||||
COMPARE(m_fBlind);
|
||||
@@ -953,6 +956,7 @@ void PlayerOptions::ResetPrefs( ResetPrefsType type )
|
||||
CPY(m_LifeType);
|
||||
CPY(m_DrainType);
|
||||
CPY(m_BatteryLives);
|
||||
CPY(m_MinTNSToHideNotes);
|
||||
|
||||
CPY( m_fPerspectiveTilt );
|
||||
CPY( m_bTransforms[TRANSFORM_NOHOLDS] );
|
||||
@@ -1077,6 +1081,7 @@ public:
|
||||
BOOL_INTERFACE(NoStretch, Transforms[PlayerOptions::TRANSFORM_NOSTRETCH]);
|
||||
BOOL_INTERFACE(MuteOnError, MuteOnError);
|
||||
ENUM_INTERFACE(FailSetting, FailType, FailType);
|
||||
ENUM_INTERFACE(MinTNSToHideNotes, MinTNSToHideNotes, TapNoteScore);
|
||||
|
||||
// NoteSkins
|
||||
static int NoteSkin(T* p, lua_State* L)
|
||||
@@ -1448,6 +1453,7 @@ public:
|
||||
|
||||
ADD_METHOD(NoteSkin);
|
||||
ADD_METHOD(FailSetting);
|
||||
ADD_METHOD(MinTNSToHideNotes);
|
||||
|
||||
// Speed
|
||||
ADD_METHOD( CMod );
|
||||
|
||||
+3
-1
@@ -61,7 +61,8 @@ public:
|
||||
m_fSkew(0), m_SpeedfSkew(1.0f),
|
||||
m_fPassmark(0), m_SpeedfPassmark(1.0f),
|
||||
m_fRandomSpeed(0), m_SpeedfRandomSpeed(1.0f),
|
||||
m_bMuteOnError(false), m_FailType(FailType_Immediate)
|
||||
m_bMuteOnError(false), m_FailType(FailType_Immediate),
|
||||
m_MinTNSToHideNotes(TNS_W3)
|
||||
{
|
||||
m_sNoteSkin = "";
|
||||
ZERO( m_fAccels ); ONE( m_SpeedfAccels );
|
||||
@@ -215,6 +216,7 @@ public:
|
||||
bool m_bMuteOnError;
|
||||
/** @brief The method for which a player can fail a song. */
|
||||
FailType m_FailType;
|
||||
TapNoteScore m_MinTNSToHideNotes;
|
||||
|
||||
/**
|
||||
* @brief The Noteskin to use.
|
||||
|
||||
@@ -221,6 +221,7 @@ PrefsManager::PrefsManager() :
|
||||
m_iSongsPerPlay ( "SongsPerPlay", 3, ValidateSongsPerPlay ),
|
||||
m_bDelayedCreditsReconcile ( "DelayedCreditsReconcile", false ),
|
||||
m_bComboContinuesBetweenSongs ( "ComboContinuesBetweenSongs", false ),
|
||||
m_MinTNSToHideNotes("MinTNSToHideNotes", TNS_W3),
|
||||
m_ShowSongOptions ( "ShowSongOptions", Maybe_NO ),
|
||||
m_bDancePointsForOni ( "DancePointsForOni", true ),
|
||||
m_bPercentageScoring ( "PercentageScoring", false ),
|
||||
|
||||
@@ -213,6 +213,7 @@ public:
|
||||
Preference<int> m_iSongsPerPlay;
|
||||
Preference<bool> m_bDelayedCreditsReconcile; // zuh?
|
||||
Preference<bool> m_bComboContinuesBetweenSongs;
|
||||
Preference<TapNoteScore> m_MinTNSToHideNotes;
|
||||
Preference<Maybe> m_ShowSongOptions;
|
||||
Preference<bool> m_bDancePointsForOni;
|
||||
Preference<bool> m_bPercentageScoring;
|
||||
|
||||
@@ -767,6 +767,8 @@ static void InitializeConfOptions()
|
||||
ADD( ConfOption( "ShowSongOptions", MovePref<Maybe>, "Ask", "Hide","Show" ) );
|
||||
ADD( ConfOption( "PercentageScoring", MovePref<bool>, "Off","On" ) );
|
||||
ADD( ConfOption( "GetRankingName", MovePref<GetRankingName>, "Off", "On", "Ranking Songs" ) );
|
||||
ADD( ConfOption( "MinTNSToHideNotes", MovePref<TapNoteScore>, "TNS_None", "TNS_HitMine", "TNS_AvoidMine", "TNS_CheckpointMiss", "TNS_Miss", "TNS_W5", "TNS_W4", "TNS_W3", "TNS_W2", "TNS_W1", "TNS_CheckpointHit"));
|
||||
|
||||
|
||||
// Graphic options
|
||||
ADD( ConfOption( "Windowed", MovePref<bool>, "Full Screen", "Windowed" ) );
|
||||
|
||||
Reference in New Issue
Block a user