Fixed preferred difficulty on select music screen and fixed transforms for TurnTypes
This commit is contained in:
@@ -25,6 +25,22 @@ BannerWithFrame::BannerWithFrame()
|
||||
|
||||
this->AddSubActor( &m_Banner );
|
||||
this->AddSubActor( &m_sprBannerFrame );
|
||||
for( int p=0; p<NUM_PLAYERS; p++ )
|
||||
{
|
||||
float fX = (m_sprBannerFrame.GetUnzoomedWidth()/2-26) * (p==PLAYER_1 ? -1 : 1 );
|
||||
float fY = m_sprBannerFrame.GetUnzoomedHeight()/2-26;
|
||||
m_Icon[p].SetX( fX );
|
||||
m_Icon[p].SetY( fY );
|
||||
this->AddSubActor( &m_Icon[p] );
|
||||
}
|
||||
}
|
||||
|
||||
void BannerWithFrame::LoadFromSongAndNotes( Song* pSong, Notes* pNotes[NUM_PLAYERS] )
|
||||
{
|
||||
LoadFromSong( pSong );
|
||||
|
||||
for( int p=0; p<NUM_PLAYERS; p++ )
|
||||
m_Icon[p].SetFromNotes( pNotes[p] ); // NULL pNotes menas icon is hidden
|
||||
}
|
||||
|
||||
void BannerWithFrame::LoadFromSong( Song* pSong )
|
||||
|
||||
@@ -13,6 +13,7 @@
|
||||
#include "ActorFrame.h"
|
||||
#include "Sprite.h"
|
||||
#include "Banner.h"
|
||||
#include "DifficultyIcon.h"
|
||||
class Song;
|
||||
class Course;
|
||||
|
||||
@@ -21,6 +22,7 @@ class BannerWithFrame : public ActorFrame
|
||||
public:
|
||||
BannerWithFrame();
|
||||
|
||||
void LoadFromSongAndNotes( Song* pSong, Notes* pNotes[NUM_PLAYERS] );
|
||||
void LoadFromSong( Song* pSong );
|
||||
void LoadFromGroup( CString sGroupName );
|
||||
void LoadFromCourse( Course* pCourse );
|
||||
@@ -29,4 +31,5 @@ protected:
|
||||
|
||||
Sprite m_sprBannerFrame;
|
||||
Banner m_Banner;
|
||||
DifficultyIcon m_Icon[NUM_PLAYERS];
|
||||
};
|
||||
|
||||
@@ -98,6 +98,15 @@ void Course::CreateEndlessCourseFromGroupAndDifficultyClass( CString sGroupName,
|
||||
m_bRepeat = true;
|
||||
m_bRandomize = true;
|
||||
m_iLives = -1;
|
||||
|
||||
CStringArray asPossibleBannerPaths;
|
||||
GetDirListing( "Songs\\" + sGroupName + "\\banner.png", asPossibleBannerPaths, false, true );
|
||||
GetDirListing( "Songs\\" + sGroupName + "\\banner.jpg", asPossibleBannerPaths, false, true );
|
||||
GetDirListing( "Songs\\" + sGroupName + "\\banner.gif", asPossibleBannerPaths, false, true );
|
||||
GetDirListing( "Songs\\" + sGroupName + "\\banner.bmp", asPossibleBannerPaths, false, true );
|
||||
if( asPossibleBannerPaths.GetSize() > 0 )
|
||||
m_sBannerPath = asPossibleBannerPaths[0];
|
||||
|
||||
CString sShortGroupName = SONGMAN->ShortenGroupName( sGroupName );
|
||||
|
||||
m_sName = sShortGroupName + " ";
|
||||
@@ -136,7 +145,7 @@ Notes* Course::GetNotesForStage( int iStage )
|
||||
for( i=0; i<pSong->m_apNotes.GetSize(); i++ )
|
||||
{
|
||||
Notes* pNotes = pSong->m_apNotes[i];
|
||||
if( pNotes->m_DifficultyClass == dc )
|
||||
if( pNotes->m_DifficultyClass == dc && pNotes->m_NotesType == GAMESTATE->GetCurrentStyleDef()->m_NotesType )
|
||||
return pNotes;
|
||||
}
|
||||
|
||||
|
||||
@@ -197,7 +197,9 @@ void GameDef::MenuInputToGameInput( MenuInput MenuI, GameInput GameIout[4] )
|
||||
for( int i=0; i<iNumSidesUsing; i++ )
|
||||
{
|
||||
for( int j=0; j<iNumButtonsUsing; j++ )
|
||||
GameIout[i*2+j].controller = controller[i];
|
||||
GameIout[i*2+j].button = button[j];
|
||||
{
|
||||
GameIout[i*2+j].controller = controller[i];
|
||||
GameIout[i*2+j].button = button[j];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -37,8 +37,6 @@ LifeMeterBattery::LifeMeterBattery()
|
||||
|
||||
m_soundGainLife.Load( THEME->GetPathTo(SOUND_GAMEPLAY_ONI_GAIN_LIFE) );
|
||||
m_soundLoseLife.Load( THEME->GetPathTo(SOUND_GAMEPLAY_ONI_LOSE_LIFE) );
|
||||
|
||||
Refresh();
|
||||
}
|
||||
|
||||
void LifeMeterBattery::Load( PlayerNumber pn )
|
||||
@@ -81,6 +79,7 @@ void LifeMeterBattery::Load( PlayerNumber pn )
|
||||
|
||||
m_textPercent.SetDiffuseColor( PlayerToColor(pn) ); // light blue
|
||||
|
||||
Refresh();
|
||||
}
|
||||
|
||||
void LifeMeterBattery::SongEnded()
|
||||
|
||||
@@ -565,30 +565,34 @@ void MusicWheel::BuildWheelItemDatas( CArray<WheelItemData, WheelItemData&> &arr
|
||||
}
|
||||
break;
|
||||
case PLAY_MODE_ONI:
|
||||
{
|
||||
CArray<Course*,Course*> apCourses;
|
||||
for( int i=0; i<SONGMAN->m_aOniCourses.GetSize(); i++ )
|
||||
apCourses.Add( &SONGMAN->m_aOniCourses[i] );
|
||||
|
||||
SortCoursePointerArrayByDifficulty( apCourses );
|
||||
|
||||
for( int c=0; c<apCourses.GetSize(); c++ ) // foreach course
|
||||
{
|
||||
Course* pCourse = apCourses[c];
|
||||
arrayWheelItemDatas.Add( WheelItemData(TYPE_COURSE, NULL, "", pCourse, pCourse->GetColor()) );
|
||||
}
|
||||
}
|
||||
break;
|
||||
case PLAY_MODE_ENDLESS:
|
||||
{
|
||||
CArray<Course*,Course*> apCourses;
|
||||
for( int i=0; i<SONGMAN->m_aEndlessCourses.GetSize(); i++ )
|
||||
apCourses.Add( &SONGMAN->m_aEndlessCourses[i] );
|
||||
switch( GAMESTATE->m_PlayMode )
|
||||
{
|
||||
case PLAY_MODE_ONI:
|
||||
for( int i=0; i<SONGMAN->m_aOniCourses.GetSize(); i++ )
|
||||
apCourses.Add( &SONGMAN->m_aOniCourses[i] );
|
||||
SortCoursePointerArrayByDifficulty( apCourses );
|
||||
break;
|
||||
case PLAY_MODE_ENDLESS:
|
||||
for( int i=0; i<SONGMAN->m_aEndlessCourses.GetSize(); i++ )
|
||||
apCourses.Add( &SONGMAN->m_aEndlessCourses[i] );
|
||||
break;
|
||||
}
|
||||
|
||||
for( int c=0; c<apCourses.GetSize(); c++ ) // foreach course
|
||||
{
|
||||
Course* pCourse = apCourses[c];
|
||||
arrayWheelItemDatas.Add( WheelItemData(TYPE_COURSE, NULL, "", pCourse, pCourse->GetColor()) );
|
||||
|
||||
// check that this course has at least one song playable in the current style
|
||||
CArray<Song*,Song*> apSongs;
|
||||
CArray<Notes*,Notes*> apNotes;
|
||||
CStringArray asModifiers;
|
||||
pCourse->GetSongAndNotesForCurrentStyle( apSongs, apNotes, asModifiers );
|
||||
|
||||
if( apNotes.GetSize() > 0 )
|
||||
arrayWheelItemDatas.Add( WheelItemData(TYPE_COURSE, NULL, "", pCourse, pCourse->GetColor()) );
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
+79
-108
@@ -18,6 +18,7 @@
|
||||
#include "PrefsManager.h"
|
||||
#include "GameConstantsAndTypes.h"
|
||||
#include "RageException.h"
|
||||
#include "GameState.h"
|
||||
|
||||
|
||||
|
||||
@@ -507,93 +508,88 @@ void NoteData::RemoveHoldNotes()
|
||||
|
||||
void NoteData::Turn( PlayerOptions::TurnType tt )
|
||||
{
|
||||
// transform the NoteData
|
||||
int oldColToNewCol[12][2]; // 0 is old Step, 1 is new Step mapping
|
||||
oldColToNewCol[0][0] = 0; oldColToNewCol[0][1] = 0;
|
||||
oldColToNewCol[1][0] = 1; oldColToNewCol[1][1] = 1;
|
||||
oldColToNewCol[2][0] = 2; oldColToNewCol[2][1] = 2;
|
||||
oldColToNewCol[3][0] = 3; oldColToNewCol[3][1] = 3;
|
||||
oldColToNewCol[4][0] = 4; oldColToNewCol[4][1] = 4;
|
||||
oldColToNewCol[5][0] = 5; oldColToNewCol[5][1] = 5;
|
||||
oldColToNewCol[6][0] = 6; oldColToNewCol[6][1] = 6;
|
||||
oldColToNewCol[7][0] = 7; oldColToNewCol[7][1] = 7;
|
||||
oldColToNewCol[8][0] = 8; oldColToNewCol[8][1] = 8;
|
||||
oldColToNewCol[9][0] = 9; oldColToNewCol[9][1] = 9;
|
||||
oldColToNewCol[10][0]= 10; oldColToNewCol[10][1]= 10;
|
||||
oldColToNewCol[11][0]= 11; oldColToNewCol[11][1]= 11;
|
||||
int iTakeFromTrack[MAX_NOTE_TRACKS]; // New track "t" will take from old track iTakeFromTrack[t]
|
||||
|
||||
switch( tt )
|
||||
{
|
||||
case PlayerOptions::TURN_NONE:
|
||||
break;
|
||||
return; // nothing to do
|
||||
case PlayerOptions::TURN_MIRROR:
|
||||
oldColToNewCol[0][1] = 3;
|
||||
oldColToNewCol[2][1] = 2;
|
||||
oldColToNewCol[3][1] = 1;
|
||||
oldColToNewCol[5][1] = 0;
|
||||
oldColToNewCol[6][1] = 7;
|
||||
oldColToNewCol[8][1] = 6;
|
||||
oldColToNewCol[9][1] = 5;
|
||||
oldColToNewCol[11][1]= 4;
|
||||
for( int t=0; t<m_iNumTracks; t++ )
|
||||
iTakeFromTrack[t] = m_iNumTracks-t-1;
|
||||
break;
|
||||
case PlayerOptions::TURN_LEFT:
|
||||
oldColToNewCol[0][1] = 1;
|
||||
oldColToNewCol[2][1] = 3;
|
||||
oldColToNewCol[3][1] = 0;
|
||||
oldColToNewCol[5][1] = 2;
|
||||
oldColToNewCol[6][1] = 5;
|
||||
oldColToNewCol[8][1] = 7;
|
||||
oldColToNewCol[9][1] = 4;
|
||||
oldColToNewCol[11][1]= 6;
|
||||
break;
|
||||
case PlayerOptions::TURN_RIGHT:
|
||||
oldColToNewCol[0][1] = 3;
|
||||
oldColToNewCol[2][1] = 0;
|
||||
oldColToNewCol[3][1] = 4;
|
||||
oldColToNewCol[5][1] = 1;
|
||||
oldColToNewCol[6][1] = 6;
|
||||
oldColToNewCol[8][1] = 4;
|
||||
oldColToNewCol[9][1] = 7;
|
||||
oldColToNewCol[11][1]= 5;
|
||||
case PlayerOptions::TURN_RIGHT: // HACK: TurnRight does the same thing as TurnLeft. I'll fix this later...
|
||||
// Chris: Handling each NotesType case is a terrible way to do this, but oh well...
|
||||
switch( GAMESTATE->GetCurrentStyleDef()->m_NotesType )
|
||||
{
|
||||
case NOTES_TYPE_DANCE_SINGLE:
|
||||
case NOTES_TYPE_DANCE_DOUBLE:
|
||||
case NOTES_TYPE_DANCE_COUPLE:
|
||||
iTakeFromTrack[0] = 2;
|
||||
iTakeFromTrack[1] = 0;
|
||||
iTakeFromTrack[2] = 3;
|
||||
iTakeFromTrack[3] = 1;
|
||||
iTakeFromTrack[4] = 6;
|
||||
iTakeFromTrack[5] = 4;
|
||||
iTakeFromTrack[6] = 7;
|
||||
iTakeFromTrack[7] = 5;
|
||||
break;
|
||||
case NOTES_TYPE_DANCE_SOLO:
|
||||
iTakeFromTrack[0] = 5;
|
||||
iTakeFromTrack[1] = 4;
|
||||
iTakeFromTrack[2] = 0;
|
||||
iTakeFromTrack[3] = 3;
|
||||
iTakeFromTrack[4] = 1;
|
||||
iTakeFromTrack[5] = 2;
|
||||
break;
|
||||
case NOTES_TYPE_PUMP_SINGLE:
|
||||
case NOTES_TYPE_PUMP_DOUBLE:
|
||||
iTakeFromTrack[0] = 1;
|
||||
iTakeFromTrack[1] = 3;
|
||||
iTakeFromTrack[2] = 2;
|
||||
iTakeFromTrack[3] = 4;
|
||||
iTakeFromTrack[4] = 0;
|
||||
iTakeFromTrack[5] = 6;
|
||||
iTakeFromTrack[6] = 8;
|
||||
iTakeFromTrack[7] = 7;
|
||||
iTakeFromTrack[8] = 9;
|
||||
iTakeFromTrack[9] = 5;
|
||||
break;
|
||||
case NOTES_TYPE_EZ2_SINGLE:
|
||||
case NOTES_TYPE_EZ2_SINGLE_HARD:
|
||||
case NOTES_TYPE_EZ2_DOUBLE:
|
||||
case NOTES_TYPE_EZ2_REAL:
|
||||
case NOTES_TYPE_EZ2_SINGLE_VERSUS:
|
||||
case NOTES_TYPE_EZ2_SINGLE_HARD_VERSUS:
|
||||
case NOTES_TYPE_EZ2_REAL_VERSUS:
|
||||
// identity transform. What should we do here?
|
||||
iTakeFromTrack[0] = 0;
|
||||
iTakeFromTrack[1] = 1;
|
||||
iTakeFromTrack[2] = 2;
|
||||
iTakeFromTrack[3] = 3;
|
||||
iTakeFromTrack[4] = 4;
|
||||
iTakeFromTrack[5] = 5;
|
||||
iTakeFromTrack[6] = 6;
|
||||
iTakeFromTrack[7] = 7;
|
||||
iTakeFromTrack[8] = 8;
|
||||
iTakeFromTrack[9] = 9;
|
||||
iTakeFromTrack[10]= 10;
|
||||
iTakeFromTrack[11]= 11;
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case PlayerOptions::TURN_SHUFFLE:
|
||||
bool bAlreadyMapped[12];
|
||||
for( int i=0; i<12; i++ )
|
||||
bAlreadyMapped[i] = false;
|
||||
CArray<int,int> aiTracksLeftToMap;
|
||||
for( int t=0; t<m_iNumTracks; t++ )
|
||||
aiTracksLeftToMap.Add( t );
|
||||
|
||||
// hack: don't shuffle the Up+... NoteData
|
||||
bAlreadyMapped[1] = true;
|
||||
bAlreadyMapped[4] = true;
|
||||
bAlreadyMapped[7] = true;
|
||||
bAlreadyMapped[10] = true;
|
||||
|
||||
// shuffle left side
|
||||
for( i=0; i<6; i++ )
|
||||
for( int t=0; t<m_iNumTracks; t++ )
|
||||
{
|
||||
if( i == 1 || i == 4 )
|
||||
continue;
|
||||
|
||||
int iMapsTo;
|
||||
do {
|
||||
iMapsTo = rand()%6;
|
||||
} while( bAlreadyMapped[iMapsTo] );
|
||||
bAlreadyMapped[iMapsTo] = true;
|
||||
|
||||
oldColToNewCol[i][1] = oldColToNewCol[iMapsTo][0];
|
||||
}
|
||||
// shuffle right side
|
||||
for( i=6; i<12; i++ )
|
||||
{
|
||||
if( i == 7 || i == 10 )
|
||||
continue;
|
||||
|
||||
int iMapsTo;
|
||||
do {
|
||||
iMapsTo = rand()%6+6;
|
||||
} while( bAlreadyMapped[iMapsTo] );
|
||||
bAlreadyMapped[iMapsTo] = true;
|
||||
|
||||
oldColToNewCol[i][1] = oldColToNewCol[iMapsTo][0];
|
||||
int iRandTrackIndex = rand()%aiTracksLeftToMap.GetSize();
|
||||
int iRandTrack = aiTracksLeftToMap[iRandTrackIndex];
|
||||
aiTracksLeftToMap.RemoveAt( iRandTrackIndex );
|
||||
iTakeFromTrack[t] = iRandTrack;
|
||||
}
|
||||
break;
|
||||
}
|
||||
@@ -601,40 +597,15 @@ void NoteData::Turn( PlayerOptions::TurnType tt )
|
||||
NoteData tempNoteData; // write into here as we tranform
|
||||
tempNoteData.m_iNumTracks = m_iNumTracks;
|
||||
|
||||
// transform m_TapNotes
|
||||
for( int i=0; i<MAX_TAP_NOTE_ROWS; i++ )
|
||||
{
|
||||
for( int j=0; j<12; j++ )
|
||||
{
|
||||
int iOldCol = oldColToNewCol[j][0];
|
||||
int iNewCol = oldColToNewCol[j][1];
|
||||
|
||||
tempNoteData.m_TapNotes[iNewCol][i] = m_TapNotes[iOldCol][i];
|
||||
}
|
||||
}
|
||||
this->ConvertHoldNotesTo2sAnd3s();
|
||||
|
||||
// transform m_HoldNotes
|
||||
for( i=0; i<m_iNumHoldNotes; i++ )
|
||||
{
|
||||
for( int j=0; j<12; j++ )
|
||||
{
|
||||
HoldNote &hn = m_HoldNotes[i];
|
||||
// transform notes
|
||||
for( int t=0; t<m_iNumTracks; t++ )
|
||||
for( int r=0; r<MAX_TAP_NOTE_ROWS; r++ )
|
||||
tempNoteData.m_TapNotes[t][r] = m_TapNotes[iTakeFromTrack[t]][r];
|
||||
|
||||
int iOldCol = oldColToNewCol[j][0];
|
||||
int iNewCol = oldColToNewCol[j][1];
|
||||
|
||||
if( hn.m_iTrack == iOldCol )
|
||||
{
|
||||
HoldNote newHN = { iNewCol, hn.m_iStartIndex, hn.m_iEndIndex };
|
||||
tempNoteData.AddHoldNote( newHN );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
// copy note data from newData back into this
|
||||
//
|
||||
(*this) = tempNoteData;
|
||||
this->CopyAll( &tempNoteData ); // copy note data from newData back into this
|
||||
this->Convert2sAnd3sToHoldNotes();
|
||||
}
|
||||
|
||||
void NoteData::MakeLittle()
|
||||
|
||||
@@ -29,10 +29,14 @@ ScoreDisplayNormal::ScoreDisplayNormal()
|
||||
Load( THEME->GetPathTo(FONT_SCORE_NUMBERS) );
|
||||
TurnShadowOff();
|
||||
|
||||
m_fScore = 0;
|
||||
m_fTrailingScore = 0;
|
||||
m_fScoreVelocity = 0;
|
||||
|
||||
SetScore( 0 );
|
||||
Update(0);
|
||||
CString s;
|
||||
for( int i=0; i<NUM_SCORE_DIGITS; i++ )
|
||||
s += '0';
|
||||
SetText( s );
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -123,10 +123,10 @@ ScreenEdit::ScreenEdit()
|
||||
|
||||
GAMESTATE->m_bEditing = true;
|
||||
|
||||
m_fBeat = 0.0f;
|
||||
GAMESTATE->m_fSongBeat = m_fBeat;
|
||||
GAMESTATE->m_fSongBeat = 0;
|
||||
m_fTrailingBeat = GAMESTATE->m_fSongBeat;
|
||||
|
||||
m_fMusicRate = 1;
|
||||
GAMESTATE->m_SongOptions.m_fMusicRate = 1;
|
||||
|
||||
GAMESTATE->m_PlayerOptions[PLAYER_1].m_fArrowScrollSpeed = 1;
|
||||
GAMESTATE->m_PlayerOptions[PLAYER_1].m_ColorType = PlayerOptions::COLOR_NOTE;
|
||||
@@ -208,11 +208,19 @@ void ScreenEdit::Update( float fDeltaTime )
|
||||
bool bFreeze;
|
||||
m_pSong->GetBeatAndBPSFromElapsedTime( fPositionSeconds, fSongBeat, fBPS, bFreeze );
|
||||
|
||||
|
||||
// update the global music statistics for other classes to access
|
||||
GAMESTATE->m_fMusicSeconds = fPositionSeconds;
|
||||
// GAMESTATE->m_fSongBeat = fSongBeat;
|
||||
GAMESTATE->m_fCurBPS = fBPS;
|
||||
GAMESTATE->m_bFreeze = bFreeze;
|
||||
|
||||
|
||||
if( m_EditMode == MODE_RECORDING || m_EditMode == MODE_PLAYING )
|
||||
{
|
||||
m_fBeat = fSongBeat;
|
||||
GAMESTATE->m_fSongBeat = fSongBeat;
|
||||
|
||||
if( m_fBeat > m_NoteFieldEdit.m_fEndMarker )
|
||||
if( GAMESTATE->m_fSongBeat > m_NoteFieldEdit.m_fEndMarker )
|
||||
{
|
||||
if( m_EditMode == MODE_RECORDING )
|
||||
{
|
||||
@@ -255,12 +263,11 @@ void ScreenEdit::Update( float fDeltaTime )
|
||||
|
||||
|
||||
// Update trailing beat
|
||||
float fDelta = m_fBeat - GAMESTATE->m_fSongBeat;
|
||||
|
||||
float fDelta = GAMESTATE->m_fSongBeat - m_fTrailingBeat;
|
||||
|
||||
if( fabsf(fDelta) < 0.01 )
|
||||
{
|
||||
GAMESTATE->m_fSongBeat = m_fBeat; // snap
|
||||
m_fTrailingBeat = GAMESTATE->m_fSongBeat; // snap
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -268,10 +275,10 @@ void ScreenEdit::Update( float fDeltaTime )
|
||||
float fMoveDelta = fSign*fDeltaTime*40;
|
||||
if( fabsf(fMoveDelta) > fabsf(fDelta) )
|
||||
fMoveDelta = fDelta;
|
||||
GAMESTATE->m_fSongBeat += fMoveDelta;
|
||||
m_fTrailingBeat += fMoveDelta;
|
||||
|
||||
if( fabsf(fDelta) > 10 )
|
||||
GAMESTATE->m_fSongBeat += fDelta * fDeltaTime*5;
|
||||
m_fTrailingBeat += fDelta * fDeltaTime*5;
|
||||
}
|
||||
|
||||
|
||||
@@ -285,7 +292,7 @@ void ScreenEdit::Update( float fDeltaTime )
|
||||
|
||||
m_NoteFieldEdit.Update( fDeltaTime );
|
||||
|
||||
int iIndexNow = BeatToNoteRowNotRounded( m_fBeat );
|
||||
int iIndexNow = BeatToNoteRowNotRounded( GAMESTATE->m_fSongBeat );
|
||||
|
||||
|
||||
CString sNoteType;
|
||||
@@ -319,9 +326,9 @@ void ScreenEdit::Update( float fDeltaTime )
|
||||
"MusicOffsetSeconds: %.2f\n"
|
||||
"Preview start: %.2f, length = %.2f\n",
|
||||
sNoteType,
|
||||
m_fBeat,
|
||||
GAMESTATE->m_fSongBeat,
|
||||
m_NoteFieldEdit.m_fBeginMarker, m_NoteFieldEdit.m_fEndMarker,
|
||||
m_fMusicRate,
|
||||
GAMESTATE->m_SongOptions.m_fMusicRate,
|
||||
DifficultyClassToString( m_pNotes->m_DifficultyClass ),
|
||||
GAMESTATE->m_pCurNotes[PLAYER_1] ? GAMESTATE->m_pCurNotes[PLAYER_1]->m_sDescription : "no description",
|
||||
iNumTapNotes, iNumHoldNotes,
|
||||
@@ -337,7 +344,13 @@ void ScreenEdit::DrawPrimitives()
|
||||
m_GranularityIndicator.Draw();
|
||||
m_GrayArrowRowEdit.Draw();
|
||||
m_textHelp.Draw();
|
||||
|
||||
// HACK: Make NoteFieldEdit draw using the trailing beat
|
||||
float fSongBeat = GAMESTATE->m_fSongBeat; // save song beat
|
||||
GAMESTATE->m_fSongBeat = m_fTrailingBeat; // put trailing beat in effect
|
||||
m_NoteFieldEdit.Draw();
|
||||
GAMESTATE->m_fSongBeat = fSongBeat; // restore real song beat
|
||||
|
||||
m_textInfo.Draw();
|
||||
m_Fade.Draw();
|
||||
|
||||
@@ -397,7 +410,7 @@ void ScreenEdit::InputEdit( const DeviceInput& DeviceI, const InputEventType typ
|
||||
break; // We only care about first presses
|
||||
|
||||
int iCol = DeviceI.button - DIK_1;
|
||||
const int iNoteIndex = BeatToNoteRow( m_fBeat );
|
||||
const int iNoteIndex = BeatToNoteRow( GAMESTATE->m_fSongBeat );
|
||||
|
||||
if( iCol >= m_NoteFieldEdit.m_iNumTracks ) // this button is not in the range of columns for this StyleDef
|
||||
break;
|
||||
@@ -471,8 +484,8 @@ void ScreenEdit::InputEdit( const DeviceInput& DeviceI, const InputEventType typ
|
||||
fBeatsToMove *= -1;
|
||||
}
|
||||
|
||||
const int iStartIndex = BeatToNoteRow(m_fBeat);
|
||||
const int iEndIndex = BeatToNoteRow(m_fBeat + fBeatsToMove);
|
||||
const int iStartIndex = BeatToNoteRow(GAMESTATE->m_fSongBeat);
|
||||
const int iEndIndex = BeatToNoteRow(GAMESTATE->m_fSongBeat + fBeatsToMove);
|
||||
|
||||
// check to see if they're holding a button
|
||||
for( int col=0; col<m_NoteFieldEdit.m_iNumTracks && col<=10; col++ )
|
||||
@@ -491,18 +504,18 @@ void ScreenEdit::InputEdit( const DeviceInput& DeviceI, const InputEventType typ
|
||||
}
|
||||
}
|
||||
|
||||
m_fBeat += fBeatsToMove;
|
||||
m_fBeat = clamp( m_fBeat, 0, MAX_BEATS-1 );
|
||||
m_fBeat = froundf( m_fBeat, NoteTypeToBeat(m_GranularityIndicator.GetSnapMode()) );
|
||||
GAMESTATE->m_fSongBeat += fBeatsToMove;
|
||||
GAMESTATE->m_fSongBeat = clamp( GAMESTATE->m_fSongBeat, 0, MAX_BEATS-1 );
|
||||
GAMESTATE->m_fSongBeat = froundf( GAMESTATE->m_fSongBeat, NoteTypeToBeat(m_GranularityIndicator.GetSnapMode()) );
|
||||
m_soundChangeLine.Play();
|
||||
}
|
||||
break;
|
||||
case DIK_HOME:
|
||||
m_fBeat = 0;
|
||||
GAMESTATE->m_fSongBeat = 0;
|
||||
m_soundChangeLine.Play();
|
||||
break;
|
||||
case DIK_END:
|
||||
m_fBeat = m_NoteFieldEdit.GetLastBeat();
|
||||
GAMESTATE->m_fSongBeat = m_NoteFieldEdit.GetLastBeat();
|
||||
m_soundChangeLine.Play();
|
||||
break;
|
||||
case DIK_RIGHT:
|
||||
@@ -514,26 +527,26 @@ void ScreenEdit::InputEdit( const DeviceInput& DeviceI, const InputEventType typ
|
||||
OnSnapModeChange();
|
||||
break;
|
||||
case DIK_RETURN:
|
||||
if( m_NoteFieldEdit.m_fEndMarker != -1 && m_fBeat > m_NoteFieldEdit.m_fEndMarker )
|
||||
if( m_NoteFieldEdit.m_fEndMarker != -1 && GAMESTATE->m_fSongBeat > m_NoteFieldEdit.m_fEndMarker )
|
||||
{
|
||||
// invalid! The begin maker must be placed before the end marker
|
||||
m_soundInvalid.Play();
|
||||
}
|
||||
else
|
||||
{
|
||||
m_NoteFieldEdit.m_fBeginMarker = m_fBeat;
|
||||
m_NoteFieldEdit.m_fBeginMarker = GAMESTATE->m_fSongBeat;
|
||||
m_soundMarker.Play();
|
||||
}
|
||||
break;
|
||||
case DIK_SPACE:
|
||||
if( m_NoteFieldEdit.m_fBeginMarker != -1 && m_fBeat < m_NoteFieldEdit.m_fBeginMarker )
|
||||
if( m_NoteFieldEdit.m_fBeginMarker != -1 && GAMESTATE->m_fSongBeat < m_NoteFieldEdit.m_fBeginMarker )
|
||||
{
|
||||
// invalid! The end maker must be placed after the begin marker
|
||||
m_soundInvalid.Play();
|
||||
}
|
||||
else
|
||||
{
|
||||
m_NoteFieldEdit.m_fEndMarker = m_fBeat;
|
||||
m_NoteFieldEdit.m_fEndMarker = GAMESTATE->m_fSongBeat;
|
||||
m_soundMarker.Play();
|
||||
}
|
||||
break;
|
||||
@@ -573,8 +586,6 @@ void ScreenEdit::InputEdit( const DeviceInput& DeviceI, const InputEventType typ
|
||||
break;
|
||||
}
|
||||
|
||||
m_fBeat = m_NoteFieldEdit.m_fBeginMarker;
|
||||
|
||||
m_EditMode = MODE_PLAYING;
|
||||
|
||||
m_Player.Load( PLAYER_1, (NoteData*)&m_NoteFieldEdit, NULL, NULL );
|
||||
@@ -582,10 +593,11 @@ void ScreenEdit::InputEdit( const DeviceInput& DeviceI, const InputEventType typ
|
||||
m_rectRecordBack.BeginTweening( 0.5f );
|
||||
m_rectRecordBack.SetTweenDiffuseColor( D3DXCOLOR(0,0,0,0.5f) );
|
||||
|
||||
float fElapsedSeconds = max( 0, m_pSong->GetElapsedTimeFromBeat(m_fBeat) );
|
||||
GAMESTATE->m_fSongBeat = m_NoteFieldEdit.m_fBeginMarker;
|
||||
float fElapsedSeconds = max( 0, m_pSong->GetElapsedTimeFromBeat(GAMESTATE->m_fSongBeat) );
|
||||
m_soundMusic.SetPositionSeconds( fElapsedSeconds );
|
||||
m_soundMusic.Play();
|
||||
m_soundMusic.SetPlaybackRate( m_fMusicRate );
|
||||
m_soundMusic.SetPlaybackRate( GAMESTATE->m_SongOptions.m_fMusicRate );
|
||||
}
|
||||
break;
|
||||
case DIK_R:
|
||||
@@ -596,8 +608,6 @@ void ScreenEdit::InputEdit( const DeviceInput& DeviceI, const InputEventType typ
|
||||
break;
|
||||
}
|
||||
|
||||
m_fBeat = m_NoteFieldEdit.m_fBeginMarker;
|
||||
|
||||
// initialize m_NoteFieldRecord
|
||||
m_NoteFieldRecord.ClearAll();
|
||||
m_NoteFieldRecord.m_iNumTracks = m_NoteFieldEdit.m_iNumTracks;
|
||||
@@ -609,22 +619,23 @@ void ScreenEdit::InputEdit( const DeviceInput& DeviceI, const InputEventType typ
|
||||
m_rectRecordBack.BeginTweening( 0.5f );
|
||||
m_rectRecordBack.SetTweenDiffuseColor( D3DXCOLOR(0,0,0,0.5f) );
|
||||
|
||||
float fElapsedSeconds = max( 0, m_pSong->GetElapsedTimeFromBeat(m_fBeat) );
|
||||
GAMESTATE->m_fSongBeat = m_NoteFieldEdit.m_fBeginMarker;
|
||||
float fElapsedSeconds = max( 0, m_pSong->GetElapsedTimeFromBeat(GAMESTATE->m_fSongBeat) );
|
||||
m_soundMusic.SetPositionSeconds( fElapsedSeconds );
|
||||
m_soundMusic.Play();
|
||||
m_soundMusic.SetPlaybackRate( m_fMusicRate );
|
||||
m_soundMusic.SetPlaybackRate( GAMESTATE->m_SongOptions.m_fMusicRate );
|
||||
}
|
||||
break;
|
||||
case DIK_T:
|
||||
if( m_fMusicRate == 1.0f ) m_fMusicRate = 0.9f;
|
||||
else if( m_fMusicRate == 0.9f ) m_fMusicRate = 0.8f;
|
||||
else if( m_fMusicRate == 0.8f ) m_fMusicRate = 0.7f;
|
||||
else if( m_fMusicRate == 0.7f ) m_fMusicRate = 1.5f;
|
||||
else if( m_fMusicRate == 1.5f ) m_fMusicRate = 1.4f;
|
||||
else if( m_fMusicRate == 1.4f ) m_fMusicRate = 1.3f;
|
||||
else if( m_fMusicRate == 1.3f ) m_fMusicRate = 1.2f;
|
||||
else if( m_fMusicRate == 1.2f ) m_fMusicRate = 1.1f;
|
||||
else if( m_fMusicRate == 1.1f ) m_fMusicRate = 1.0f;
|
||||
if( GAMESTATE->m_SongOptions.m_fMusicRate == 1.0f ) GAMESTATE->m_SongOptions.m_fMusicRate = 0.9f;
|
||||
else if( GAMESTATE->m_SongOptions.m_fMusicRate == 0.9f ) GAMESTATE->m_SongOptions.m_fMusicRate = 0.8f;
|
||||
else if( GAMESTATE->m_SongOptions.m_fMusicRate == 0.8f ) GAMESTATE->m_SongOptions.m_fMusicRate = 0.7f;
|
||||
else if( GAMESTATE->m_SongOptions.m_fMusicRate == 0.7f ) GAMESTATE->m_SongOptions.m_fMusicRate = 1.5f;
|
||||
else if( GAMESTATE->m_SongOptions.m_fMusicRate == 1.5f ) GAMESTATE->m_SongOptions.m_fMusicRate = 1.4f;
|
||||
else if( GAMESTATE->m_SongOptions.m_fMusicRate == 1.4f ) GAMESTATE->m_SongOptions.m_fMusicRate = 1.3f;
|
||||
else if( GAMESTATE->m_SongOptions.m_fMusicRate == 1.3f ) GAMESTATE->m_SongOptions.m_fMusicRate = 1.2f;
|
||||
else if( GAMESTATE->m_SongOptions.m_fMusicRate == 1.2f ) GAMESTATE->m_SongOptions.m_fMusicRate = 1.1f;
|
||||
else if( GAMESTATE->m_SongOptions.m_fMusicRate == 1.1f ) GAMESTATE->m_SongOptions.m_fMusicRate = 1.0f;
|
||||
break;
|
||||
case DIK_INSERT:
|
||||
case DIK_DELETE:
|
||||
@@ -636,12 +647,12 @@ void ScreenEdit::InputEdit( const DeviceInput& DeviceI, const InputEventType typ
|
||||
switch( DeviceI.button )
|
||||
{
|
||||
case DIK_INSERT:
|
||||
iTakeFromRow = BeatToNoteRow( m_fBeat );
|
||||
iPasteAtRow = BeatToNoteRow( m_fBeat+1 );
|
||||
iTakeFromRow = BeatToNoteRow( GAMESTATE->m_fSongBeat );
|
||||
iPasteAtRow = BeatToNoteRow( GAMESTATE->m_fSongBeat+1 );
|
||||
break;
|
||||
case DIK_DELETE:
|
||||
iTakeFromRow = BeatToNoteRow( m_fBeat+1 );
|
||||
iPasteAtRow = BeatToNoteRow( m_fBeat );
|
||||
iTakeFromRow = BeatToNoteRow( GAMESTATE->m_fSongBeat+1 );
|
||||
iPasteAtRow = BeatToNoteRow( GAMESTATE->m_fSongBeat );
|
||||
break;
|
||||
}
|
||||
temp.CopyRange( &m_NoteFieldEdit, iTakeFromRow, MAX_TAP_NOTE_ROWS );
|
||||
@@ -680,7 +691,7 @@ void ScreenEdit::InputEdit( const DeviceInput& DeviceI, const InputEventType typ
|
||||
{
|
||||
int iSrcFirstRow = 0;
|
||||
int iSrcLastRow = BeatToNoteRow( m_Clipboard.GetLastBeat() );
|
||||
int iDestFirstRow = BeatToNoteRow( m_fBeat );
|
||||
int iDestFirstRow = BeatToNoteRow( GAMESTATE->m_fSongBeat );
|
||||
|
||||
m_NoteFieldEdit.CopyRange( &m_Clipboard, iSrcFirstRow, iSrcLastRow, iDestFirstRow );
|
||||
}
|
||||
@@ -696,7 +707,7 @@ void ScreenEdit::InputEdit( const DeviceInput& DeviceI, const InputEventType typ
|
||||
case DIK_F7:
|
||||
case DIK_F8:
|
||||
{
|
||||
float fBPM = m_pSong->GetBPMAtBeat( m_fBeat );
|
||||
float fBPM = m_pSong->GetBPMAtBeat( GAMESTATE->m_fSongBeat );
|
||||
float fDeltaBPM;
|
||||
switch( DeviceI.button )
|
||||
{
|
||||
@@ -712,13 +723,13 @@ void ScreenEdit::InputEdit( const DeviceInput& DeviceI, const InputEventType typ
|
||||
float fNewBPM = fBPM + fDeltaBPM;
|
||||
|
||||
for( int i=0; i<m_pSong->m_BPMSegments.GetSize(); i++ )
|
||||
if( m_pSong->m_BPMSegments[i].m_fStartBeat == m_fBeat )
|
||||
if( m_pSong->m_BPMSegments[i].m_fStartBeat == GAMESTATE->m_fSongBeat )
|
||||
break;
|
||||
|
||||
if( i == m_pSong->m_BPMSegments.GetSize() ) // there is no BPMSegment at the current beat
|
||||
{
|
||||
// create a new BPMSegment
|
||||
m_pSong->AddBPMSegment( BPMSegment(m_fBeat, fNewBPM) );
|
||||
m_pSong->AddBPMSegment( BPMSegment(GAMESTATE->m_fSongBeat, fNewBPM) );
|
||||
}
|
||||
else // BPMSegment being modified is m_BPMSegments[i]
|
||||
{
|
||||
@@ -747,7 +758,7 @@ void ScreenEdit::InputEdit( const DeviceInput& DeviceI, const InputEventType typ
|
||||
|
||||
for( int i=0; i<m_pSong->m_StopSegments.GetSize(); i++ )
|
||||
{
|
||||
if( m_pSong->m_StopSegments[i].m_fStartBeat == m_fBeat )
|
||||
if( m_pSong->m_StopSegments[i].m_fStartBeat == GAMESTATE->m_fSongBeat )
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -755,7 +766,7 @@ void ScreenEdit::InputEdit( const DeviceInput& DeviceI, const InputEventType typ
|
||||
{
|
||||
// create a new StopSegment
|
||||
if( fFreezeDelta > 0 )
|
||||
m_pSong->AddStopSegment( StopSegment(m_fBeat, fFreezeDelta) );
|
||||
m_pSong->AddStopSegment( StopSegment(GAMESTATE->m_fSongBeat, fFreezeDelta) );
|
||||
}
|
||||
else // StopSegment being modified is m_StopSegments[i]
|
||||
{
|
||||
@@ -848,12 +859,12 @@ void ScreenEdit::InputRecord( const DeviceInput& DeviceI, const InputEventType t
|
||||
iCol = StyleI.col;
|
||||
|
||||
int iNoteIndex;
|
||||
iNoteIndex = BeatToNoteRow( m_fBeat );
|
||||
iNoteIndex = BeatToNoteRow( GAMESTATE->m_fSongBeat );
|
||||
|
||||
if( type == IET_FIRST_PRESS )
|
||||
{
|
||||
m_NoteFieldRecord.m_TapNotes[iCol][iNoteIndex] = '1';
|
||||
m_NoteFieldRecord.SnapToNearestNoteType( NOTE_12TH, NOTE_16TH, max(0,m_fBeat-1), m_fBeat+1);
|
||||
m_NoteFieldRecord.SnapToNearestNoteType( NOTE_12TH, NOTE_16TH, max(0,GAMESTATE->m_fSongBeat-1), GAMESTATE->m_fSongBeat+1);
|
||||
m_GrayArrowRowRecord.Step( iCol );
|
||||
}
|
||||
else
|
||||
@@ -876,7 +887,7 @@ void ScreenEdit::InputRecord( const DeviceInput& DeviceI, const InputEventType t
|
||||
newHN.m_iEndIndex = iEndIndex;
|
||||
|
||||
m_NoteFieldRecord.AddHoldNote( newHN );
|
||||
m_NoteFieldRecord.SnapToNearestNoteType( NOTE_12TH, NOTE_16TH, max(0,m_fBeat-2), m_fBeat+2);
|
||||
m_NoteFieldRecord.SnapToNearestNoteType( NOTE_12TH, NOTE_16TH, max(0,GAMESTATE->m_fSongBeat-2), GAMESTATE->m_fSongBeat+2);
|
||||
}
|
||||
break;
|
||||
}
|
||||
@@ -895,16 +906,11 @@ void ScreenEdit::InputPlay( const DeviceInput& DeviceI, const InputEventType typ
|
||||
m_EditMode = MODE_EDITING;
|
||||
m_soundMusic.Stop();
|
||||
|
||||
m_fBeat = froundf( m_fBeat, NoteTypeToBeat(m_GranularityIndicator.GetSnapMode()) );
|
||||
GAMESTATE->m_fSongBeat = froundf( GAMESTATE->m_fSongBeat, NoteTypeToBeat(m_GranularityIndicator.GetSnapMode()) );
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
float fSongBeat, fBPS;
|
||||
bool bFreeze;
|
||||
m_pSong->GetBeatAndBPSFromElapsedTime( m_soundMusic.GetPositionSeconds(), fSongBeat, fBPS, bFreeze );
|
||||
const float fMaxBeatDifference = fBPS * PREFSMAN->m_fJudgeWindow / GAMESTATE->m_SongOptions.m_fMusicRate;
|
||||
|
||||
switch( StyleI.player )
|
||||
{
|
||||
case PLAYER_1:
|
||||
@@ -928,7 +934,7 @@ void ScreenEdit::TransitionToEditFromRecord()
|
||||
|
||||
m_NoteFieldEdit.CopyRange( (NoteData*)&m_NoteFieldRecord, iNoteIndexBegin, iNoteIndexEnd );
|
||||
|
||||
m_fBeat = froundf( m_fBeat, NoteTypeToBeat(m_GranularityIndicator.GetSnapMode()) );
|
||||
GAMESTATE->m_fSongBeat = froundf( GAMESTATE->m_fSongBeat, NoteTypeToBeat(m_GranularityIndicator.GetSnapMode()) );
|
||||
}
|
||||
|
||||
|
||||
@@ -952,8 +958,8 @@ void ScreenEdit::OnSnapModeChange()
|
||||
m_soundChangeSnap.Play();
|
||||
|
||||
NoteType nt = m_GranularityIndicator.GetSnapMode();
|
||||
int iStepIndex = BeatToNoteRow( m_fBeat );
|
||||
int iStepIndex = BeatToNoteRow( GAMESTATE->m_fSongBeat );
|
||||
int iElementsPerNoteType = BeatToNoteRow( NoteTypeToBeat(nt) );
|
||||
int iStepIndexHangover = iStepIndex % iElementsPerNoteType;
|
||||
m_fBeat -= NoteRowToBeat( iStepIndexHangover );
|
||||
GAMESTATE->m_fSongBeat -= NoteRowToBeat( iStepIndexHangover );
|
||||
}
|
||||
|
||||
@@ -57,12 +57,10 @@ protected:
|
||||
BitmapText m_textHelp;
|
||||
|
||||
// keep track of where we are and what we're doing
|
||||
float m_fBeat; // make GAMESTATE->m_fSongBeat approach this
|
||||
float m_fTrailingBeat; // this approaches GAMESTATE->m_fSongBeat, which is the actual beat
|
||||
|
||||
NoteData m_Clipboard;
|
||||
|
||||
float m_fMusicRate;
|
||||
|
||||
RageSoundSample m_soundChangeLine;
|
||||
RageSoundSample m_soundChangeSnap;
|
||||
RageSoundSample m_soundMarker;
|
||||
|
||||
@@ -29,6 +29,9 @@
|
||||
const float BANNER_X = CENTER_X;
|
||||
const float BANNER_Y = SCREEN_TOP + 100;
|
||||
|
||||
const float STAGE_X = BANNER_X;
|
||||
const float STAGE_Y = BANNER_Y-40;
|
||||
|
||||
const float GRADE_X[NUM_PLAYERS] = { CENTER_X-226, CENTER_X+226 };
|
||||
const float GRADE_Y = BANNER_Y;
|
||||
|
||||
@@ -143,9 +146,17 @@ ScreenEvaluation::ScreenEvaluation( bool bSummary )
|
||||
switch( m_ResultMode )
|
||||
{
|
||||
case RM_ARCADE_STAGE:
|
||||
m_BannerWithFrame[0].LoadFromSong( GAMESTATE->m_pCurSong );
|
||||
m_BannerWithFrame[0].LoadFromSongAndNotes( GAMESTATE->m_pCurSong, GAMESTATE->m_pCurNotes );
|
||||
m_BannerWithFrame[0].SetXY( BANNER_X, BANNER_Y );
|
||||
this->AddSubActor( &m_BannerWithFrame[0] );
|
||||
|
||||
m_textStage.Load( THEME->GetPathTo(FONT_HEADER1) );
|
||||
m_textStage.TurnShadowOff();
|
||||
m_textStage.SetXY( STAGE_X, STAGE_Y );
|
||||
m_textStage.SetZoom( 0.5f );
|
||||
m_textStage.SetText( GAMESTATE->GetStageText() + " Stage" );
|
||||
this->AddSubActor( &m_textStage );
|
||||
|
||||
break;
|
||||
case RM_ARCADE_SUMMARY:
|
||||
{
|
||||
@@ -560,6 +571,10 @@ void ScreenEvaluation::TweenOnScreen()
|
||||
m_BannerWithFrame[i].BeginTweeningQueued( MENU_ELEMENTS_TWEEN_TIME, Actor::TWEEN_BIAS_BEGIN );
|
||||
m_BannerWithFrame[i].SetTweenY( fOriginalY );
|
||||
}
|
||||
|
||||
fOriginalY = m_textStage.GetY();
|
||||
m_textStage.BeginTweeningQueued( MENU_ELEMENTS_TWEEN_TIME, Actor::TWEEN_BIAS_BEGIN );
|
||||
m_textStage.SetTweenY( fOriginalY );
|
||||
|
||||
for( i=0; i<NUM_JUDGE_LINES; i++ )
|
||||
{
|
||||
@@ -642,6 +657,9 @@ void ScreenEvaluation::TweenOffScreen()
|
||||
m_BannerWithFrame[i].SetTweenZoomY( 0 );
|
||||
}
|
||||
|
||||
m_textStage.BeginTweeningQueued( MENU_ELEMENTS_TWEEN_TIME, Actor::TWEEN_BIAS_END );
|
||||
m_textStage.SetTweenZoomY( 0 );
|
||||
|
||||
for( i=0; i<NUM_JUDGE_LINES; i++ )
|
||||
{
|
||||
if (GAMESTATE->m_CurGame != GAME_EZ2)
|
||||
|
||||
@@ -47,6 +47,7 @@ protected:
|
||||
MenuElements m_Menu;
|
||||
|
||||
BannerWithFrame m_BannerWithFrame[STAGES_TO_SHOW_IN_SUMMARY];
|
||||
BitmapText m_textStage;
|
||||
|
||||
Sprite m_sprGradeFrame[NUM_PLAYERS];
|
||||
GradeDisplay m_Grades[NUM_PLAYERS];
|
||||
|
||||
@@ -1198,6 +1198,8 @@ void ScreenGameplay::HandleScreenMessage( const ScreenMessage SM )
|
||||
this->SendScreenMessage( SM_GoToScreenAfterBack, 0 );
|
||||
else if( GAMESTATE->IsExtraStage() || GAMESTATE->IsExtraStage2() )
|
||||
SCREENMAN->SetNewScreen( new ScreenEvaluation(true) );
|
||||
else if( GAMESTATE->m_PlayMode == PLAY_MODE_ONI || GAMESTATE->m_PlayMode == PLAY_MODE_ENDLESS )
|
||||
SCREENMAN->SetNewScreen( new ScreenEvaluation(false) );
|
||||
else
|
||||
SCREENMAN->SetNewScreen( new ScreenGameOver );
|
||||
break;
|
||||
|
||||
@@ -62,13 +62,15 @@ const CString CREDIT_LINES[] =
|
||||
"PROGRAMMING:",
|
||||
"Chris Danford",
|
||||
"Lord Frieza (Andrew Livy)",
|
||||
"Dro Kulix",
|
||||
"Ben Nordstrom",
|
||||
"Dro Kulix (Peter S. May)",
|
||||
"Bruno Figueiredo",
|
||||
"Mantis (Ben Nordstrom)",
|
||||
"Parasyte (Chris Gomez)",
|
||||
"dirkthedaring (Michael Patterson)",
|
||||
"angedelamort (Sauleil Lamarre)",
|
||||
"Edwin Evans",
|
||||
"Brian 'Bork' Bugh",
|
||||
"Jared Roberts",
|
||||
"nmspaz (Jared Roberts)",
|
||||
"Elvis314 (Joel Maher)",
|
||||
"Kefabi (Garth Smith)",
|
||||
"Pkillah (Playah Killah)",
|
||||
@@ -83,21 +85,21 @@ const CString CREDIT_LINES[] =
|
||||
"",
|
||||
"",
|
||||
"SPECIAL THANKS TO:",
|
||||
"DDRLlama",
|
||||
"DDRManiaX",
|
||||
"SimWolf",
|
||||
"DJ DraftHorse",
|
||||
"Dance With Intensity",
|
||||
"BeMaNiRuler",
|
||||
"DDRLlama",
|
||||
"DDRManiaX",
|
||||
"Lagged",
|
||||
"The Melting Pot",
|
||||
"DDRJamz Global BBS",
|
||||
"BemaniRuler",
|
||||
"Brendan Walker",
|
||||
"Eric 'WaffleKing' Webster",
|
||||
"Mark 'Foobly' Verrey",
|
||||
"Mandarin Blue",
|
||||
"Anne Kiel",
|
||||
"BeMaNiFiNiNaTiC",
|
||||
"BeMaNiFiNiNaTiC (Jeremy)",
|
||||
"Garett Sakamoto",
|
||||
"Illusionz - Issaquah, WA",
|
||||
"Quarters - Kirkland, WA",
|
||||
|
||||
@@ -1,11 +1,12 @@
|
||||
#include "stdafx.h"
|
||||
/*
|
||||
-----------------------------------------------------------------------------
|
||||
File: ScreenSongOptions.h
|
||||
Class: ScreenSongOptions
|
||||
|
||||
Desc: Select a song.
|
||||
Desc: See header.
|
||||
|
||||
Copyright (c) 2001-2002 by the person(s) listed below. All rights reserved.
|
||||
Chris Danford
|
||||
-----------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
@@ -21,6 +22,7 @@
|
||||
#include "ScreenPlayerOptions.h"
|
||||
#include "RageLog.h"
|
||||
#include "GameState.h"
|
||||
#include "ScreenStage.h"
|
||||
|
||||
|
||||
enum {
|
||||
@@ -112,7 +114,7 @@ void ScreenSongOptions::GoToNextState()
|
||||
{
|
||||
MUSIC->Stop();
|
||||
|
||||
SCREENMAN->SetNewScreen( new ScreenGameplay );
|
||||
SCREENMAN->SetNewScreen( new ScreenStage );
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
#pragma once
|
||||
/*
|
||||
-----------------------------------------------------------------------------
|
||||
Course: SongOptions
|
||||
Class: SongOptions
|
||||
|
||||
Desc: Per-song options that are not saved between sessions. These are options
|
||||
that should probably be disabled in a coin-operated machine.
|
||||
|
||||
Reference in New Issue
Block a user