syncing with sm4svn part 1.

7534867: fix SSM crashes when selecting a song with only one player enabled
cddaab5: simplify SongUtil::GetStepsTypeAndDifficultyFromSortOrder
615aab0: add Style::GetUsesCenteredArrows (doubles + routine)
17f38e7: sanity check
[all code changes by Glenn Maynard]
This commit is contained in:
AJ Kelly
2010-02-13 12:50:34 -06:00
parent 484820424b
commit a7a8b6b94d
5 changed files with 33 additions and 27 deletions
+11 -1
View File
@@ -362,7 +362,17 @@ void ScreenGameplay::Init()
ScreenWithMenuElements::Init();
this->FillPlayerInfo( m_vPlayerInfo );
ASSERT_M( !m_vPlayerInfo.empty(), "m_vPlayerInfo must be filled by FillPlayerInfo" );
{
ASSERT_M( !m_vPlayerInfo.empty(), "m_vPlayerInfo must be filled by FillPlayerInfo" );
int iNumEnabledPlayers = 0;
FOREACH_EnabledPlayerInfo( m_vPlayerInfo, pi )
++iNumEnabledPlayers;
/* If this is 0, we have no active players and havn't been initialized correctly. */
ASSERT( iNumEnabledPlayers > 0 );
}
/* Pause MEMCARDMAN. If a memory card is removed, we don't want to interrupt the
* player by making a noise until the game finishes. */
+1 -1
View File
@@ -1003,7 +1003,7 @@ void ScreenSelectMusic::MenuStart( const InputEventPlus &input )
bool bSelectedRoutineSteps[NUM_PLAYERS], bAnySelectedRoutine = false;
bool bSelectedSameSteps = GAMESTATE->m_pCurSteps[PLAYER_1] == GAMESTATE->m_pCurSteps[PLAYER_2];
FOREACH_PlayerNumber( p )
FOREACH_HumanPlayer( p )
{
const Steps *pSteps = GAMESTATE->m_pCurSteps[p];
const StepsTypeInfo &sti = GAMEMAN->GetStepsTypeInfo( pSteps->m_StepsType );
+9 -24
View File
@@ -917,18 +917,17 @@ bool SongUtil::GetStepsTypeAndDifficultyFromSortOrder( SortOrder so, StepsType &
{
switch( so )
{
case SORT_BEGINNER_METER: dcOut = Difficulty_Beginner; break;
case SORT_EASY_METER: dcOut = Difficulty_Easy; break;
case SORT_MEDIUM_METER: dcOut = Difficulty_Medium; break;
case SORT_HARD_METER: dcOut = Difficulty_Hard; break;
case SORT_CHALLENGE_METER: dcOut = Difficulty_Challenge; break;
case SORT_DOUBLE_EASY_METER: dcOut = Difficulty_Easy; break;
case SORT_DOUBLE_MEDIUM_METER: dcOut = Difficulty_Medium; break;
case SORT_DOUBLE_HARD_METER: dcOut = Difficulty_Hard; break;
case SORT_DOUBLE_CHALLENGE_METER: dcOut = Difficulty_Challenge; break;
default:
return false;
case SORT_BEGINNER_METER:
case SORT_EASY_METER:
case SORT_MEDIUM_METER:
case SORT_HARD_METER:
case SORT_CHALLENGE_METER:
case SORT_DOUBLE_EASY_METER:
case SORT_DOUBLE_MEDIUM_METER:
case SORT_DOUBLE_HARD_METER:
case SORT_DOUBLE_CHALLENGE_METER:
break; // fall through
}
switch( so )
@@ -963,20 +962,6 @@ bool SongUtil::GetStepsTypeAndDifficultyFromSortOrder( SortOrder so, StepsType &
break;
}
switch( so )
{
DEFAULT_FAIL( so );
case SORT_BEGINNER_METER: dcOut = Difficulty_Beginner; break;
case SORT_EASY_METER: dcOut = Difficulty_Easy; break;
case SORT_MEDIUM_METER: dcOut = Difficulty_Medium; break;
case SORT_HARD_METER: dcOut = Difficulty_Hard; break;
case SORT_CHALLENGE_METER: dcOut = Difficulty_Challenge; break;
case SORT_DOUBLE_EASY_METER: dcOut = Difficulty_Easy; break;
case SORT_DOUBLE_MEDIUM_METER: dcOut = Difficulty_Medium; break;
case SORT_DOUBLE_HARD_METER: dcOut = Difficulty_Hard; break;
case SORT_DOUBLE_CHALLENGE_METER: dcOut = Difficulty_Challenge; break;
}
return true;
}
+11
View File
@@ -20,6 +20,17 @@
#include "NoteData.h"
#include <float.h>
bool Style::GetUsesCenteredArrows() const
{
switch( m_StyleType )
{
case StyleType_OnePlayerTwoSides:
case StyleType_TwoPlayersSharedSides:
return true;
default:
return false;
}
}
void Style::GetTransformedNoteDataForStyle( PlayerNumber pn, const NoteData& original, NoteData& noteDataOut ) const
{
+1 -1
View File
@@ -57,8 +57,8 @@ public:
int GameInputToColumn( const GameInput &GameI ) const;
RString ColToButtonName( int iCol ) const;
bool GetUsesCenteredArrows() const;
void GetTransformedNoteDataForStyle( PlayerNumber pn, const NoteData& original, NoteData& noteDataOut ) const;
void GetMinAndMaxColX( PlayerNumber pn, float& fMixXOut, float& fMaxXOut ) const;
// Lua