Fixed LifeMeterBar artifacts in MAX2 and EZ2. Fixed handling of "ez2-single-hard" NotesType.
This commit is contained in:
@@ -1333,6 +1333,11 @@ int GameManager::NotesTypeToNumTracks( NotesType nt )
|
|||||||
NotesType GameManager::StringToNotesType( CString sNotesType )
|
NotesType GameManager::StringToNotesType( CString sNotesType )
|
||||||
{
|
{
|
||||||
sNotesType.MakeLower();
|
sNotesType.MakeLower();
|
||||||
|
|
||||||
|
// HACK! We elminitated "ez2-single-hard", but we should still handle it.
|
||||||
|
if( sNotesType == "ez2-single-hard" )
|
||||||
|
sNotesType = "ez2-single";
|
||||||
|
|
||||||
for( int i=0; i<NUM_NOTES_TYPES; i++ )
|
for( int i=0; i<NUM_NOTES_TYPES; i++ )
|
||||||
if( NotesTypes[i].name == sNotesType )
|
if( NotesTypes[i].name == sNotesType )
|
||||||
return NotesType(i);
|
return NotesType(i);
|
||||||
|
|||||||
@@ -112,19 +112,18 @@ public:
|
|||||||
|
|
||||||
if( GAMESTATE->IsPlayerEnabled(m_PlayerNumber) )
|
if( GAMESTATE->IsPlayerEnabled(m_PlayerNumber) )
|
||||||
{
|
{
|
||||||
|
DrawMask( m_fPercent ); // this is the "right endcap" to the life
|
||||||
|
|
||||||
DrawMask( m_fPercent );
|
|
||||||
|
|
||||||
const float fChamberWidthInPercent = 1.0f/g_iNumChambers;
|
const float fChamberWidthInPercent = 1.0f/g_iNumChambers;
|
||||||
float fPercentBetweenStrips = 1.0f/g_iNumStrips;
|
float fPercentBetweenStrips = 1.0f/g_iNumStrips;
|
||||||
|
// round this so that the chamber overflows align
|
||||||
if( g_iNumChambers > 10 )
|
if( g_iNumChambers > 10 )
|
||||||
fPercentBetweenStrips = froundf( fPercentBetweenStrips, fChamberWidthInPercent );
|
fPercentBetweenStrips = froundf( fPercentBetweenStrips, fChamberWidthInPercent );
|
||||||
|
|
||||||
float fPercentOffset = fmodf( GAMESTATE->m_fSongBeat/4+1000, fPercentBetweenStrips );
|
float fPercentOffset = fmodf( GAMESTATE->m_fSongBeat/4+1000, fPercentBetweenStrips );
|
||||||
ASSERT( fPercentOffset >= 0 && fPercentOffset <= fPercentBetweenStrips );
|
ASSERT( fPercentOffset >= 0 && fPercentOffset <= fPercentBetweenStrips );
|
||||||
|
|
||||||
for( float f=fPercentOffset+1; f>=fPercentOffset; f-=fPercentBetweenStrips )
|
for( float f=fPercentOffset+1; f>=0; f-=fPercentBetweenStrips )
|
||||||
{
|
{
|
||||||
DrawMask( f );
|
DrawMask( f );
|
||||||
DrawStrip( f );
|
DrawStrip( f );
|
||||||
@@ -219,6 +218,7 @@ public:
|
|||||||
|
|
||||||
m_quadMask.StretchTo( &rect );
|
m_quadMask.StretchTo( &rect );
|
||||||
m_quadMask.Draw();
|
m_quadMask.Draw();
|
||||||
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -83,10 +83,10 @@ void NoteData::LoadFromSMNoteDataString( CString sSMNoteData )
|
|||||||
const float fBeat = (m + fPercentIntoMeasure) * BEATS_PER_MEASURE;
|
const float fBeat = (m + fPercentIntoMeasure) * BEATS_PER_MEASURE;
|
||||||
const int iIndex = BeatToNoteRow( fBeat );
|
const int iIndex = BeatToNoteRow( fBeat );
|
||||||
|
|
||||||
if( m_iNumTracks != sMeasureLine.GetLength() )
|
// if( m_iNumTracks != sMeasureLine.GetLength() )
|
||||||
throw RageException( "Actual number of note columns (%d) is different from the NotesType (%d).", m_iNumTracks, sMeasureLine.GetLength() );
|
// throw RageException( "Actual number of note columns (%d) is different from the NotesType (%d).", m_iNumTracks, sMeasureLine.GetLength() );
|
||||||
|
|
||||||
for( int c=0; c<sMeasureLine.GetLength(); c++ )
|
for( int c=0; c<min(sMeasureLine.GetLength(),m_iNumTracks); c++ )
|
||||||
m_TapNotes[c][iIndex] = sMeasureLine[c];
|
m_TapNotes[c][iIndex] = sMeasureLine[c];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user