Merge branch 'master' of https://github.com/Fighter19/stepmania
This commit is contained in:
@@ -16,6 +16,11 @@ Example:
|
|||||||
This means that three strings were added to the "ScreenDebugOverlay" section,
|
This means that three strings were added to the "ScreenDebugOverlay" section,
|
||||||
"Mute actions", "Mute actions on", and "Mute actions off".
|
"Mute actions", "Mute actions on", and "Mute actions off".
|
||||||
|
|
||||||
|
2015/05/05
|
||||||
|
----------
|
||||||
|
* [ScreenGameplay] SkipSongText
|
||||||
|
|
||||||
|
|
||||||
2015/04/23
|
2015/04/23
|
||||||
----------
|
----------
|
||||||
* [OptionExplanations] Display Options
|
* [OptionExplanations] Display Options
|
||||||
|
|||||||
@@ -4,6 +4,24 @@ 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.
|
from StepMania 4 alpha 5 to sm-ssc v1.2.5, see Changelog_sm-ssc.txt.
|
||||||
________________________________________________________________________________
|
________________________________________________________________________________
|
||||||
|
|
||||||
|
2015/05/05
|
||||||
|
----------
|
||||||
|
* [Gameplay] Holding Select on gameplay now skips the current song in course
|
||||||
|
or endless mode. [kyzentun]
|
||||||
|
|
||||||
|
2015/04/30
|
||||||
|
----------
|
||||||
|
* [beat] Default key configuration slightly tweaked, space is now the
|
||||||
|
default scratch key, key7 is now mapped to right instead of key3.
|
||||||
|
Backwards and shuffle chart mods now ignore the scratch column. [jobn]
|
||||||
|
|
||||||
|
2015/04/27
|
||||||
|
----------
|
||||||
|
* [general] "Do not show again" button on missing texture dialog works now.
|
||||||
|
If the background or banner file for a song doesn't exist when the song is
|
||||||
|
cached, the cache file will have a blank path so Stepmania won't try to
|
||||||
|
load the nonexistent banner or background.
|
||||||
|
|
||||||
2015/04/25
|
2015/04/25
|
||||||
----------
|
----------
|
||||||
* [General] Screenshot key now checks whether there is a current song, and
|
* [General] Screenshot key now checks whether there is a current song, and
|
||||||
|
|||||||
@@ -1661,6 +1661,7 @@ HeaderText=Final Results
|
|||||||
GiveUpAbortedText=Don't give up!
|
GiveUpAbortedText=Don't give up!
|
||||||
GiveUpStartText=Continue holding &START; to give up
|
GiveUpStartText=Continue holding &START; to give up
|
||||||
GiveUpBackText=Continue holding &BACK; to give up
|
GiveUpBackText=Continue holding &BACK; to give up
|
||||||
|
SkipSongText=Continue holding &SELECT; to skip song
|
||||||
|
|
||||||
[ScreenGameplaySyncMachine]
|
[ScreenGameplaySyncMachine]
|
||||||
Standard deviation=Standard deviation
|
Standard deviation=Standard deviation
|
||||||
|
|||||||
@@ -3452,6 +3452,7 @@ AllowCenter1Player=true
|
|||||||
FailOnMissCombo=FailCombo()
|
FailOnMissCombo=FailCombo()
|
||||||
GivingUpGoesToPrevScreen=false
|
GivingUpGoesToPrevScreen=false
|
||||||
GivingUpGoesToNextScreen=false
|
GivingUpGoesToNextScreen=false
|
||||||
|
SelectSkipsSong=true
|
||||||
#
|
#
|
||||||
MinSecondsToStep=6.0
|
MinSecondsToStep=6.0
|
||||||
MinSecondsToMusic=2.0
|
MinSecondsToMusic=2.0
|
||||||
|
|||||||
+70
-19
@@ -337,6 +337,7 @@ void ScreenGameplay::Init()
|
|||||||
GIVE_UP_START_TEXT.Load( m_sName, "GiveUpStartText" );
|
GIVE_UP_START_TEXT.Load( m_sName, "GiveUpStartText" );
|
||||||
GIVE_UP_BACK_TEXT.Load( m_sName, "GiveUpBackText" );
|
GIVE_UP_BACK_TEXT.Load( m_sName, "GiveUpBackText" );
|
||||||
GIVE_UP_ABORTED_TEXT.Load( m_sName, "GiveUpAbortedText" );
|
GIVE_UP_ABORTED_TEXT.Load( m_sName, "GiveUpAbortedText" );
|
||||||
|
SKIP_SONG_TEXT.Load(m_sName, "SkipSongText");
|
||||||
GIVE_UP_SECONDS.Load( m_sName, "GiveUpSeconds" );
|
GIVE_UP_SECONDS.Load( m_sName, "GiveUpSeconds" );
|
||||||
MUSIC_FADE_OUT_SECONDS.Load( m_sName, "MusicFadeOutSeconds" );
|
MUSIC_FADE_OUT_SECONDS.Load( m_sName, "MusicFadeOutSeconds" );
|
||||||
OUT_TRANSITION_LENGTH.Load( m_sName, "OutTransitionLength" );
|
OUT_TRANSITION_LENGTH.Load( m_sName, "OutTransitionLength" );
|
||||||
@@ -347,6 +348,7 @@ void ScreenGameplay::Init()
|
|||||||
MIN_SECONDS_TO_STEP_NEXT_SONG.Load( m_sName, "MinSecondsToStepNextSong" );
|
MIN_SECONDS_TO_STEP_NEXT_SONG.Load( m_sName, "MinSecondsToStepNextSong" );
|
||||||
START_GIVES_UP.Load( m_sName, "StartGivesUp" );
|
START_GIVES_UP.Load( m_sName, "StartGivesUp" );
|
||||||
BACK_GIVES_UP.Load( m_sName, "BackGivesUp" );
|
BACK_GIVES_UP.Load( m_sName, "BackGivesUp" );
|
||||||
|
SELECT_SKIPS_SONG.Load(m_sName, "SelectSkipsSong");
|
||||||
GIVING_UP_GOES_TO_PREV_SCREEN.Load( m_sName, "GivingUpGoesToPrevScreen" );
|
GIVING_UP_GOES_TO_PREV_SCREEN.Load( m_sName, "GivingUpGoesToPrevScreen" );
|
||||||
FAIL_ON_MISS_COMBO.Load( m_sName, "FailOnMissCombo" );
|
FAIL_ON_MISS_COMBO.Load( m_sName, "FailOnMissCombo" );
|
||||||
ALLOW_CENTER_1_PLAYER.Load( m_sName, "AllowCenter1Player" );
|
ALLOW_CENTER_1_PLAYER.Load( m_sName, "AllowCenter1Player" );
|
||||||
@@ -900,6 +902,7 @@ void ScreenGameplay::Init()
|
|||||||
LoadNextSong();
|
LoadNextSong();
|
||||||
|
|
||||||
m_GiveUpTimer.SetZero();
|
m_GiveUpTimer.SetZero();
|
||||||
|
m_SkipSongTimer.SetZero();
|
||||||
}
|
}
|
||||||
|
|
||||||
bool ScreenGameplay::Center1Player() const
|
bool ScreenGameplay::Center1Player() const
|
||||||
@@ -1509,7 +1512,7 @@ void ScreenGameplay::PauseGame( bool bPause, GameController gc )
|
|||||||
if( bPause && m_DancingState == STATE_OUTRO )
|
if( bPause && m_DancingState == STATE_OUTRO )
|
||||||
return;
|
return;
|
||||||
|
|
||||||
AbortGiveUp( false );
|
ResetGiveUpTimers(false);
|
||||||
|
|
||||||
m_bPaused = bPause;
|
m_bPaused = bPause;
|
||||||
m_PauseController = gc;
|
m_PauseController = gc;
|
||||||
@@ -1926,6 +1929,7 @@ void ScreenGameplay::Update( float fDeltaTime )
|
|||||||
// update give up
|
// update give up
|
||||||
bool bGiveUpTimerFired = !m_GiveUpTimer.IsZero() && m_GiveUpTimer.Ago() > GIVE_UP_SECONDS;
|
bool bGiveUpTimerFired = !m_GiveUpTimer.IsZero() && m_GiveUpTimer.Ago() > GIVE_UP_SECONDS;
|
||||||
m_gave_up= bGiveUpTimerFired;
|
m_gave_up= bGiveUpTimerFired;
|
||||||
|
m_skipped_song= !m_SkipSongTimer.IsZero() && m_SkipSongTimer.Ago() > GIVE_UP_SECONDS;
|
||||||
|
|
||||||
|
|
||||||
bool bAllHumanHaveBigMissCombo = true;
|
bool bAllHumanHaveBigMissCombo = true;
|
||||||
@@ -1942,7 +1946,7 @@ void ScreenGameplay::Update( float fDeltaTime )
|
|||||||
{
|
{
|
||||||
bAllHumanHaveBigMissCombo = FAIL_ON_MISS_COMBO.GetValue() != -1 && STATSMAN->m_CurStageStats.GetMinimumMissCombo() >= (unsigned int)FAIL_ON_MISS_COMBO;
|
bAllHumanHaveBigMissCombo = FAIL_ON_MISS_COMBO.GetValue() != -1 && STATSMAN->m_CurStageStats.GetMinimumMissCombo() >= (unsigned int)FAIL_ON_MISS_COMBO;
|
||||||
}
|
}
|
||||||
if( bGiveUpTimerFired || bAllHumanHaveBigMissCombo )
|
if(bGiveUpTimerFired || bAllHumanHaveBigMissCombo || m_skipped_song)
|
||||||
{
|
{
|
||||||
STATSMAN->m_CurStageStats.m_bGaveUp = true;
|
STATSMAN->m_CurStageStats.m_bGaveUp = true;
|
||||||
FOREACH_EnabledPlayerNumberInfo( m_vPlayerInfo, pi )
|
FOREACH_EnabledPlayerNumberInfo( m_vPlayerInfo, pi )
|
||||||
@@ -1951,9 +1955,9 @@ void ScreenGameplay::Update( float fDeltaTime )
|
|||||||
pi->GetPlayerStageStats()->m_bDisqualified |= bGiveUpTimerFired; // Don't disqualify if failing for miss combo. The player should still be eligable for a high score on courses.
|
pi->GetPlayerStageStats()->m_bDisqualified |= bGiveUpTimerFired; // Don't disqualify if failing for miss combo. The player should still be eligable for a high score on courses.
|
||||||
}
|
}
|
||||||
|
|
||||||
AbortGiveUp( false );
|
ResetGiveUpTimers(false);
|
||||||
|
|
||||||
if( GIVING_UP_GOES_TO_PREV_SCREEN )
|
if(GIVING_UP_GOES_TO_PREV_SCREEN && !m_skipped_song)
|
||||||
{
|
{
|
||||||
BeginBackingOutFromGameplay();
|
BeginBackingOutFromGameplay();
|
||||||
}
|
}
|
||||||
@@ -2353,7 +2357,7 @@ void ScreenGameplay::SendCrossedMessages()
|
|||||||
void ScreenGameplay::BeginBackingOutFromGameplay()
|
void ScreenGameplay::BeginBackingOutFromGameplay()
|
||||||
{
|
{
|
||||||
m_DancingState = STATE_OUTRO;
|
m_DancingState = STATE_OUTRO;
|
||||||
AbortGiveUp( false );
|
ResetGiveUpTimers(false);
|
||||||
|
|
||||||
m_pSoundMusic->StopPlaying();
|
m_pSoundMusic->StopPlaying();
|
||||||
m_GameplayAssist.StopPlaying(); // Stop any queued assist ticks.
|
m_GameplayAssist.StopPlaying(); // Stop any queued assist ticks.
|
||||||
@@ -2370,21 +2374,45 @@ void ScreenGameplay::BeginBackingOutFromGameplay()
|
|||||||
m_Cancel.StartTransitioning( SM_DoPrevScreen );
|
m_Cancel.StartTransitioning( SM_DoPrevScreen );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void ScreenGameplay::AbortGiveUpText(bool show_abort_text)
|
||||||
|
{
|
||||||
|
m_textDebug.StopTweening();
|
||||||
|
if(show_abort_text)
|
||||||
|
{
|
||||||
|
m_textDebug.SetText(GIVE_UP_ABORTED_TEXT);
|
||||||
|
}
|
||||||
|
// otherwise tween out the text that's there
|
||||||
|
|
||||||
|
m_textDebug.BeginTweening(1/2.f);
|
||||||
|
m_textDebug.SetDiffuse(RageColor(1,1,1,0));
|
||||||
|
}
|
||||||
|
|
||||||
|
void ScreenGameplay::AbortSkipSong(bool show_text)
|
||||||
|
{
|
||||||
|
if(m_SkipSongTimer.IsZero())
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
AbortGiveUpText(show_text);
|
||||||
|
m_SkipSongTimer.SetZero();
|
||||||
|
}
|
||||||
|
|
||||||
void ScreenGameplay::AbortGiveUp( bool bShowText )
|
void ScreenGameplay::AbortGiveUp( bool bShowText )
|
||||||
{
|
{
|
||||||
if( m_GiveUpTimer.IsZero() )
|
if( m_GiveUpTimer.IsZero() )
|
||||||
|
{
|
||||||
return;
|
return;
|
||||||
|
}
|
||||||
m_textDebug.StopTweening();
|
AbortGiveUpText(bShowText);
|
||||||
if( bShowText )
|
|
||||||
m_textDebug.SetText( GIVE_UP_ABORTED_TEXT );
|
|
||||||
// otherwise tween out the text that's there
|
|
||||||
|
|
||||||
m_textDebug.BeginTweening( 1/2.f );
|
|
||||||
m_textDebug.SetDiffuse( RageColor(1,1,1,0) );
|
|
||||||
m_GiveUpTimer.SetZero();
|
m_GiveUpTimer.SetZero();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void ScreenGameplay::ResetGiveUpTimers(bool show_text)
|
||||||
|
{
|
||||||
|
AbortSkipSong(show_text);
|
||||||
|
AbortGiveUp(show_text);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
bool ScreenGameplay::Input( const InputEventPlus &input )
|
bool ScreenGameplay::Input( const InputEventPlus &input )
|
||||||
{
|
{
|
||||||
@@ -2426,6 +2454,22 @@ bool ScreenGameplay::Input( const InputEventPlus &input )
|
|||||||
bHoldingGiveUp |= ( START_GIVES_UP && input.MenuI == GAME_BUTTON_START );
|
bHoldingGiveUp |= ( START_GIVES_UP && input.MenuI == GAME_BUTTON_START );
|
||||||
bHoldingGiveUp |= ( BACK_GIVES_UP && input.MenuI == GAME_BUTTON_BACK );
|
bHoldingGiveUp |= ( BACK_GIVES_UP && input.MenuI == GAME_BUTTON_BACK );
|
||||||
}
|
}
|
||||||
|
// Allow holding SELECT to skip the current song in course mode. -Kyz
|
||||||
|
if(GAMESTATE->IsCourseMode() && SELECT_SKIPS_SONG &&
|
||||||
|
input.MenuI == GAME_BUTTON_SELECT)
|
||||||
|
{
|
||||||
|
if(input.type == IET_RELEASE)
|
||||||
|
{
|
||||||
|
AbortSkipSong(true);
|
||||||
|
}
|
||||||
|
else if(input.type == IET_FIRST_PRESS && m_SkipSongTimer.IsZero())
|
||||||
|
{
|
||||||
|
m_textDebug.SetText(SKIP_SONG_TEXT);
|
||||||
|
m_textDebug.PlayCommand("StartOn");
|
||||||
|
m_SkipSongTimer.Touch();
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
if( bHoldingGiveUp )
|
if( bHoldingGiveUp )
|
||||||
{
|
{
|
||||||
@@ -2508,7 +2552,7 @@ bool ScreenGameplay::Input( const InputEventPlus &input )
|
|||||||
// handle a step or battle item activate
|
// handle a step or battle item activate
|
||||||
if( GAMESTATE->IsHumanPlayer( input.pn ) )
|
if( GAMESTATE->IsHumanPlayer( input.pn ) )
|
||||||
{
|
{
|
||||||
AbortGiveUp( true );
|
ResetGiveUpTimers(true);
|
||||||
|
|
||||||
if( GamePreferences::m_AutoPlay == PC_HUMAN && GAMESTATE->m_pPlayerState[input.pn]->m_PlayerOptions.GetCurrent().m_fPlayerAutoPlay == 0 )
|
if( GamePreferences::m_AutoPlay == PC_HUMAN && GAMESTATE->m_pPlayerState[input.pn]->m_PlayerOptions.GetCurrent().m_fPlayerAutoPlay == 0 )
|
||||||
{
|
{
|
||||||
@@ -2665,7 +2709,7 @@ void ScreenGameplay::HandleScreenMessage( const ScreenMessage SM )
|
|||||||
}
|
}
|
||||||
else if( SM == SM_NotesEnded ) // received while STATE_DANCING
|
else if( SM == SM_NotesEnded ) // received while STATE_DANCING
|
||||||
{
|
{
|
||||||
AbortGiveUp( false ); // don't allow giveup while the next song is loading
|
ResetGiveUpTimers(false); // don't allow giveup while the next song is loading
|
||||||
|
|
||||||
/* Do this in LoadNextSong, so we don't tween off old attacks until
|
/* Do this in LoadNextSong, so we don't tween off old attacks until
|
||||||
* m_NextSong finishes. */
|
* m_NextSong finishes. */
|
||||||
@@ -2700,9 +2744,16 @@ void ScreenGameplay::HandleScreenMessage( const ScreenMessage SM )
|
|||||||
const bool bIsLastSong = IsLastSong();
|
const bool bIsLastSong = IsLastSong();
|
||||||
|
|
||||||
LOG->Trace( "bAllReallyFailed = %d, bStopCourseEarly = %d, "
|
LOG->Trace( "bAllReallyFailed = %d, bStopCourseEarly = %d, "
|
||||||
"bIsLastSong = %d, m_gave_up = %d", bAllReallyFailed, bStopCourseEarly,
|
"bIsLastSong = %d, m_gave_up = %d, m_skipped_song = %d",
|
||||||
bIsLastSong, m_gave_up );
|
bAllReallyFailed, bStopCourseEarly, bIsLastSong, m_gave_up,
|
||||||
|
m_skipped_song);
|
||||||
|
|
||||||
|
if(!bIsLastSong && m_skipped_song)
|
||||||
|
{
|
||||||
|
// Load the next song in the course.
|
||||||
|
HandleScreenMessage( SM_StartLoadingNextSong );
|
||||||
|
return;
|
||||||
|
}
|
||||||
if( bStopCourseEarly || bAllReallyFailed || bIsLastSong || m_gave_up )
|
if( bStopCourseEarly || bAllReallyFailed || bIsLastSong || m_gave_up )
|
||||||
{
|
{
|
||||||
// Time to leave from ScreenGameplay
|
// Time to leave from ScreenGameplay
|
||||||
@@ -2740,7 +2791,7 @@ void ScreenGameplay::HandleScreenMessage( const ScreenMessage SM )
|
|||||||
if( m_DancingState == STATE_OUTRO ) // ScreenGameplay already ended
|
if( m_DancingState == STATE_OUTRO ) // ScreenGameplay already ended
|
||||||
return; // ignore
|
return; // ignore
|
||||||
m_DancingState = STATE_OUTRO;
|
m_DancingState = STATE_OUTRO;
|
||||||
AbortGiveUp( false );
|
ResetGiveUpTimers(false);
|
||||||
|
|
||||||
GAMESTATE->RemoveAllActiveAttacks();
|
GAMESTATE->RemoveAllActiveAttacks();
|
||||||
FOREACH_EnabledPlayerInfo( m_vPlayerInfo, pi )
|
FOREACH_EnabledPlayerInfo( m_vPlayerInfo, pi )
|
||||||
@@ -2947,7 +2998,7 @@ void ScreenGameplay::HandleScreenMessage( const ScreenMessage SM )
|
|||||||
else if( SM == SM_BeginFailed )
|
else if( SM == SM_BeginFailed )
|
||||||
{
|
{
|
||||||
m_DancingState = STATE_OUTRO;
|
m_DancingState = STATE_OUTRO;
|
||||||
AbortGiveUp( false );
|
ResetGiveUpTimers(false);
|
||||||
m_GameplayAssist.StopPlaying(); // Stop any queued assist ticks.
|
m_GameplayAssist.StopPlaying(); // Stop any queued assist ticks.
|
||||||
TweenOffScreen();
|
TweenOffScreen();
|
||||||
m_Failed.StartTransitioning( SM_DoNextScreen );
|
m_Failed.StartTransitioning( SM_DoNextScreen );
|
||||||
|
|||||||
@@ -193,6 +193,7 @@ protected:
|
|||||||
LocalizedString GIVE_UP_START_TEXT;
|
LocalizedString GIVE_UP_START_TEXT;
|
||||||
LocalizedString GIVE_UP_BACK_TEXT;
|
LocalizedString GIVE_UP_BACK_TEXT;
|
||||||
LocalizedString GIVE_UP_ABORTED_TEXT;
|
LocalizedString GIVE_UP_ABORTED_TEXT;
|
||||||
|
LocalizedString SKIP_SONG_TEXT;
|
||||||
ThemeMetric<float> GIVE_UP_SECONDS;
|
ThemeMetric<float> GIVE_UP_SECONDS;
|
||||||
ThemeMetric<float> MUSIC_FADE_OUT_SECONDS;
|
ThemeMetric<float> MUSIC_FADE_OUT_SECONDS;
|
||||||
ThemeMetric<float> OUT_TRANSITION_LENGTH;
|
ThemeMetric<float> OUT_TRANSITION_LENGTH;
|
||||||
@@ -203,6 +204,7 @@ protected:
|
|||||||
ThemeMetric<float> MIN_SECONDS_TO_STEP_NEXT_SONG;
|
ThemeMetric<float> MIN_SECONDS_TO_STEP_NEXT_SONG;
|
||||||
ThemeMetric<bool> START_GIVES_UP;
|
ThemeMetric<bool> START_GIVES_UP;
|
||||||
ThemeMetric<bool> BACK_GIVES_UP;
|
ThemeMetric<bool> BACK_GIVES_UP;
|
||||||
|
ThemeMetric<bool> SELECT_SKIPS_SONG;
|
||||||
ThemeMetric<bool> GIVING_UP_GOES_TO_PREV_SCREEN;
|
ThemeMetric<bool> GIVING_UP_GOES_TO_PREV_SCREEN;
|
||||||
/** @brief The miss combo a player needs to fail out of a song. */
|
/** @brief The miss combo a player needs to fail out of a song. */
|
||||||
ThemeMetric<int> FAIL_ON_MISS_COMBO;
|
ThemeMetric<int> FAIL_ON_MISS_COMBO;
|
||||||
@@ -279,7 +281,12 @@ protected:
|
|||||||
|
|
||||||
RageTimer m_GiveUpTimer;
|
RageTimer m_GiveUpTimer;
|
||||||
bool m_gave_up;
|
bool m_gave_up;
|
||||||
|
RageTimer m_SkipSongTimer;
|
||||||
|
bool m_skipped_song;
|
||||||
|
void AbortGiveUpText(bool show_abort_text);
|
||||||
|
void AbortSkipSong(bool show_text);
|
||||||
void AbortGiveUp( bool bShowText );
|
void AbortGiveUp( bool bShowText );
|
||||||
|
void ResetGiveUpTimers(bool show_text);
|
||||||
|
|
||||||
Transition m_Ready;
|
Transition m_Ready;
|
||||||
Transition m_Go;
|
Transition m_Go;
|
||||||
|
|||||||
Reference in New Issue
Block a user