diff --git a/stepmania/src/GameConstantsAndTypes.h b/stepmania/src/GameConstantsAndTypes.h index 1170c538ea..896beca526 100644 --- a/stepmania/src/GameConstantsAndTypes.h +++ b/stepmania/src/GameConstantsAndTypes.h @@ -63,8 +63,7 @@ enum NotesType { NOTES_TYPE_DANCE_SINGLE = 0, NOTES_TYPE_DANCE_DOUBLE, - NOTES_TYPE_DANCE_COUPLE_1, - NOTES_TYPE_DANCE_COUPLE_2, + NOTES_TYPE_DANCE_COUPLE, NOTES_TYPE_DANCE_SOLO, NOTES_TYPE_PUMP_SINGLE, NOTES_TYPE_PUMP_DOUBLE, diff --git a/stepmania/src/GameManager.cpp b/stepmania/src/GameManager.cpp index 53c3045037..fa97813fd0 100644 --- a/stepmania/src/GameManager.cpp +++ b/stepmania/src/GameManager.cpp @@ -36,8 +36,7 @@ struct { } const NotesTypes[NUM_NOTES_TYPES] = { { "dance-single", 4 }, { "dance-double", 8 }, - { "dance-couple-1", 4 }, - { "dance-couple-2", 4 }, + { "dance-couple", 8 }, { "dance-solo", 6 }, { "pump-single", 5 }, { "pump-double", 10 }, @@ -468,7 +467,7 @@ StyleDef g_StyleDefs[NUM_STYLES] = true, // m_bUsedForGameplay false, // m_bUsedForEdit "DDR Couples", // m_szName - { NOTES_TYPE_DANCE_COUPLE_1, NOTES_TYPE_DANCE_COUPLE_2 }, // m_NotesTypes + { NOTES_TYPE_DANCE_COUPLE, NOTES_TYPE_DANCE_COUPLE }, // m_NotesTypes StyleDef::TWO_PLAYERS_TWO_CREDITS, // m_StyleType { 160, 480 }, // m_iCenterX 4, // m_iColsPerPlayer @@ -480,10 +479,10 @@ StyleDef g_StyleDefs[NUM_STYLES] = { TRACK_4, GAME_CONTROLLER_1, DANCE_BUTTON_RIGHT, +DANCE_COL_SPACING*1.5f }, }, { // PLAYER_2 - { TRACK_1, GAME_CONTROLLER_2, DANCE_BUTTON_LEFT, -DANCE_COL_SPACING*1.5f }, - { TRACK_2, GAME_CONTROLLER_2, DANCE_BUTTON_DOWN, -DANCE_COL_SPACING*0.5f }, - { TRACK_3, GAME_CONTROLLER_2, DANCE_BUTTON_UP, +DANCE_COL_SPACING*0.5f }, - { TRACK_4, GAME_CONTROLLER_2, DANCE_BUTTON_RIGHT, +DANCE_COL_SPACING*1.5f }, + { TRACK_5, GAME_CONTROLLER_2, DANCE_BUTTON_LEFT, -DANCE_COL_SPACING*1.5f }, + { TRACK_6, GAME_CONTROLLER_2, DANCE_BUTTON_DOWN, -DANCE_COL_SPACING*0.5f }, + { TRACK_7, GAME_CONTROLLER_2, DANCE_BUTTON_UP, +DANCE_COL_SPACING*0.5f }, + { TRACK_8, GAME_CONTROLLER_2, DANCE_BUTTON_RIGHT, +DANCE_COL_SPACING*1.5f }, }, }, { // m_iColumnDrawOrder[MAX_COLS_PER_PLAYER]; @@ -521,48 +520,25 @@ StyleDef g_StyleDefs[NUM_STYLES] = 0,1,2,3,4,5 }, }, - { // STYLE_DANCE_EDIT_COUPLE_1 + { // STYLE_DANCE_EDIT_COUPLE GAME_DANCE, // m_Game false, // m_bUsedForGameplay true, // m_bUsedForEdit - "DDR Couples Player 1", // m_szName - { NOTES_TYPE_DANCE_COUPLE_1, NOTES_TYPE_DANCE_COUPLE_1 }, // m_NotesTypes - StyleDef::ONE_PLAYER_TWO_CREDITS, // m_StyleType - { 320, 320 }, // m_iCenterX - 4, // m_iColsPerPlayer + "DDR Couples", // m_szName + { NOTES_TYPE_DANCE_COUPLE, NOTES_TYPE_DANCE_COUPLE }, // m_NotesTypes + StyleDef::ONE_PLAYER_ONE_CREDIT, // m_StyleType + { 160, 480 }, // m_iCenterX + 8, // m_iColsPerPlayer { // m_ColumnInfo[NUM_PLAYERS][MAX_COLS_PER_PLAYER]; { // PLAYER_1 - { TRACK_1, GAME_CONTROLLER_1, DANCE_BUTTON_LEFT, -DANCE_COL_SPACING*1.5f }, - { TRACK_2, GAME_CONTROLLER_1, DANCE_BUTTON_DOWN, -DANCE_COL_SPACING*0.5f }, - { TRACK_3, GAME_CONTROLLER_1, DANCE_BUTTON_UP, +DANCE_COL_SPACING*0.5f }, - { TRACK_4, GAME_CONTROLLER_1, DANCE_BUTTON_RIGHT, +DANCE_COL_SPACING*1.5f }, - }, - { // PLAYER_2 - { TRACK_1, GAME_CONTROLLER_1, DANCE_BUTTON_LEFT, -DANCE_COL_SPACING*1.5f }, - { TRACK_2, GAME_CONTROLLER_1, DANCE_BUTTON_DOWN, -DANCE_COL_SPACING*0.5f }, - { TRACK_3, GAME_CONTROLLER_1, DANCE_BUTTON_UP, +DANCE_COL_SPACING*0.5f }, - { TRACK_4, GAME_CONTROLLER_1, DANCE_BUTTON_RIGHT, +DANCE_COL_SPACING*1.5f }, - }, - }, - { // m_iColumnDrawOrder[MAX_COLS_PER_PLAYER]; - 0,1,2,3,4,5,6,7 - }, - }, - { // STYLE_DANCE_EDIT_COUPLE_2 - GAME_DANCE, // m_Game - false, // m_bUsedForGameplay - true, // m_bUsedForEdit - "DDR Couples Player 2", // m_szName - { NOTES_TYPE_DANCE_COUPLE_2, NOTES_TYPE_DANCE_COUPLE_2 }, // m_NotesTypes - StyleDef::ONE_PLAYER_TWO_CREDITS, // m_StyleType - { 320, 320 }, // m_iCenterX - 4, // m_iColsPerPlayer - { // m_ColumnInfo[NUM_PLAYERS][MAX_COLS_PER_PLAYER]; - { // PLAYER_1 - { TRACK_1, GAME_CONTROLLER_1, DANCE_BUTTON_LEFT, -DANCE_COL_SPACING*1.5f }, - { TRACK_2, GAME_CONTROLLER_1, DANCE_BUTTON_DOWN, -DANCE_COL_SPACING*0.5f }, - { TRACK_3, GAME_CONTROLLER_1, DANCE_BUTTON_UP, +DANCE_COL_SPACING*0.5f }, - { TRACK_4, GAME_CONTROLLER_1, DANCE_BUTTON_RIGHT, +DANCE_COL_SPACING*1.5f }, + { TRACK_1, GAME_CONTROLLER_1, DANCE_BUTTON_LEFT, +DANCE_COL_SPACING*4.0f }, + { TRACK_2, GAME_CONTROLLER_1, DANCE_BUTTON_DOWN, +DANCE_COL_SPACING*3.0f }, + { TRACK_3, GAME_CONTROLLER_1, DANCE_BUTTON_UP, +DANCE_COL_SPACING*2.0f }, + { TRACK_4, GAME_CONTROLLER_1, DANCE_BUTTON_RIGHT, +DANCE_COL_SPACING*1.0f }, + { TRACK_5, GAME_CONTROLLER_2, DANCE_BUTTON_LEFT, -DANCE_COL_SPACING*1.0f }, + { TRACK_6, GAME_CONTROLLER_2, DANCE_BUTTON_DOWN, -DANCE_COL_SPACING*2.0f }, + { TRACK_7, GAME_CONTROLLER_2, DANCE_BUTTON_UP, -DANCE_COL_SPACING*3.0f }, + { TRACK_8, GAME_CONTROLLER_2, DANCE_BUTTON_RIGHT, -DANCE_COL_SPACING*4.0f }, }, { // PLAYER_2 { TRACK_1, GAME_CONTROLLER_1, DANCE_BUTTON_LEFT, -DANCE_COL_SPACING*1.5f }, diff --git a/stepmania/src/NoteData.cpp b/stepmania/src/NoteData.cpp index 0a133aba77..7ef6d1d9a1 100644 --- a/stepmania/src/NoteData.cpp +++ b/stepmania/src/NoteData.cpp @@ -482,8 +482,7 @@ void NoteData::Turn( PlayerOptions::TurnType tt ) { case NOTES_TYPE_DANCE_SINGLE: case NOTES_TYPE_DANCE_DOUBLE: - case NOTES_TYPE_DANCE_COUPLE_1: - case NOTES_TYPE_DANCE_COUPLE_2: + case NOTES_TYPE_DANCE_COUPLE: iTakeFromTrack[0] = 2; iTakeFromTrack[1] = 0; iTakeFromTrack[2] = 3; diff --git a/stepmania/src/NotesLoaderBMS.cpp b/stepmania/src/NotesLoaderBMS.cpp index c3ce7d54ca..9d29402ada 100644 --- a/stepmania/src/NotesLoaderBMS.cpp +++ b/stepmania/src/NotesLoaderBMS.cpp @@ -58,12 +58,11 @@ void BMSLoader::mapBMSTrackToDanceNote( int iBMSTrack, int &iDanceColOut, char & } -bool BMSLoader::LoadFromBMSFile( const CString &sPath, Notes &out, Notes &out2 ) +bool BMSLoader::LoadFromBMSFile( const CString &sPath, Notes &out ) { LOG->Trace( "Notes::LoadFromBMSFile( '%s' )", sPath ); out.m_NotesType = NOTES_TYPE_INVALID; - out2.m_NotesType = NOTES_TYPE_INVALID; NoteData* pNoteData = new NoteData; pNoteData->m_iNumTracks = MAX_NOTE_TRACKS; @@ -111,7 +110,7 @@ bool BMSLoader::LoadFromBMSFile( const CString &sPath, Notes &out, Notes &out2 ) // if the mode should be solo, then we'll update m_DanceStyle below when we read in step data break; case 2: // couple/battle - out.m_NotesType = NOTES_TYPE_DANCE_COUPLE_1; + out.m_NotesType = NOTES_TYPE_DANCE_COUPLE; break; case 3: // double out.m_NotesType = NOTES_TYPE_DANCE_DOUBLE; @@ -184,7 +183,7 @@ bool BMSLoader::LoadFromBMSFile( const CString &sPath, Notes &out, Notes &out2 ) if( out.m_NotesType == NOTES_TYPE_DANCE_SINGLE || out.m_NotesType == NOTES_TYPE_DANCE_DOUBLE || - out.m_NotesType == NOTES_TYPE_DANCE_COUPLE_1) // if there are 4 panels, then the Up+Right track really contains the notes for Up + out.m_NotesType == NOTES_TYPE_DANCE_COUPLE) // if there are 4 panels, then the Up+Right track really contains the notes for Up { for( int i=0; iLoadTransformed( pNoteData, iNumNewTracks, iTransformNewToOld ); - out2.SetNoteData(pNoteData2); - out2.TidyUpData(); - } - delete pNoteData; delete pNoteData2; @@ -291,19 +272,13 @@ bool BMSLoader::LoadFromDir( CString sDir, Song &out ) for( int i=0; im_NotesType != NOTES_TYPE_INVALID) out.m_apNotes.Add( pNewNotes ); else delete pNewNotes; - if(pNewNotes2->m_NotesType != NOTES_TYPE_INVALID) - out.m_apNotes.Add( pNewNotes2 ); - else - delete pNewNotes2; } CString sPath = out.m_sSongDir + arrayBMSFileNames[0]; diff --git a/stepmania/src/NotesLoaderBMS.h b/stepmania/src/NotesLoaderBMS.h index 0725f624c9..916aeb13dc 100644 --- a/stepmania/src/NotesLoaderBMS.h +++ b/stepmania/src/NotesLoaderBMS.h @@ -6,7 +6,7 @@ #include "NotesLoader.h" class BMSLoader: public NotesLoader { - bool LoadFromBMSFile( const CString &sPath, Notes &out1, Notes &out2 ); + bool LoadFromBMSFile( const CString &sPath, Notes &out1 ); void mapBMSTrackToDanceNote( int iBMSTrack, int &iDanceColOut, char &cNoteCharOut ); public: diff --git a/stepmania/src/NotesLoaderDWI.cpp b/stepmania/src/NotesLoaderDWI.cpp index 6534329f96..926dc69a11 100644 --- a/stepmania/src/NotesLoaderDWI.cpp +++ b/stepmania/src/NotesLoaderDWI.cpp @@ -66,12 +66,11 @@ bool DWILoader::LoadFromDWITokens( CString sNumFeet, CString sStepData1, CString sStepData2, - Notes &out, Notes &out2) + Notes &out) { LOG->Trace( "Notes::LoadFromDWITokens()" ); out.m_NotesType = NOTES_TYPE_INVALID; - out2.m_NotesType = NOTES_TYPE_INVALID; sStepData1.Replace( "\n", "" ); sStepData1.Replace( " ", "" ); @@ -80,7 +79,7 @@ bool DWILoader::LoadFromDWITokens( if( sMode == "SINGLE" ) out.m_NotesType = NOTES_TYPE_DANCE_SINGLE; else if( sMode == "DOUBLE" ) out.m_NotesType = NOTES_TYPE_DANCE_DOUBLE; - else if( sMode == "COUPLE" ) out.m_NotesType = NOTES_TYPE_DANCE_COUPLE_1; + else if( sMode == "COUPLE" ) out.m_NotesType = NOTES_TYPE_DANCE_COUPLE; else if( sMode == "SOLO" ) out.m_NotesType = NOTES_TYPE_DANCE_SOLO; else { @@ -99,7 +98,7 @@ bool DWILoader::LoadFromDWITokens( mapDanceNoteToNoteDataColumn[DANCE_NOTE_PAD1_RIGHT] = 3; break; case NOTES_TYPE_DANCE_DOUBLE: - case NOTES_TYPE_DANCE_COUPLE_1: + case NOTES_TYPE_DANCE_COUPLE: mapDanceNoteToNoteDataColumn[DANCE_NOTE_PAD1_LEFT] = 0; mapDanceNoteToNoteDataColumn[DANCE_NOTE_PAD1_DOWN] = 1; mapDanceNoteToNoteDataColumn[DANCE_NOTE_PAD1_UP] = 2; @@ -235,31 +234,6 @@ bool DWILoader::LoadFromDWITokens( ASSERT( pNoteData->m_iNumTracks > 0 ); - if(out.m_NotesType == NOTES_TYPE_DANCE_COUPLE_1) { - int iTransformNewToOld[MAX_NOTE_TRACKS]; - /* Couples. Set up a second note pattern for the 2p side. */ - out2 = out; - out2.m_NotesType = NOTES_TYPE_DANCE_COUPLE_2; - - for( int i = 0; i < MAX_NOTE_TRACKS; ++i) - iTransformNewToOld[i] = -1; - - iTransformNewToOld[0] = 4; - iTransformNewToOld[1] = 5; - iTransformNewToOld[2] = 6; - iTransformNewToOld[3] = 7; - - NoteData* pNoteData2 = new NoteData; - pNoteData2->m_iNumTracks = 4; - - pNoteData2->LoadTransformed( pNoteData, 4, iTransformNewToOld ); - out2.SetNoteData(pNoteData2); - - delete pNoteData2; - out2.TidyUpData(); - - pNoteData->m_iNumTracks = 4; - } out.SetNoteData(pNoteData); delete pNoteData; @@ -355,25 +329,18 @@ bool DWILoader::LoadFromDWIFile( CString sPath, Song &out ) 0==stricmp(sValueName,"SOLO")) { Notes* pNewNotes = new Notes; - Notes* pNewNotes2 = new Notes; LoadFromDWITokens( sParams[0], sParams[1], sParams[2], sParams[3], (iNumParams==5) ? sParams[4] : "", - *pNewNotes, - *pNewNotes2 + *pNewNotes ); - /* Add either note pattern that actually loaded. */ if(pNewNotes->m_NotesType != NOTES_TYPE_INVALID) out.m_apNotes.Add( pNewNotes ); else delete pNewNotes; - if(pNewNotes2->m_NotesType != NOTES_TYPE_INVALID) - out.m_apNotes.Add( pNewNotes2 ); - else - delete pNewNotes2; } else // do nothing. We don't care about this value name diff --git a/stepmania/src/NotesLoaderDWI.h b/stepmania/src/NotesLoaderDWI.h index 2bf69e2dda..9a70ac25da 100644 --- a/stepmania/src/NotesLoaderDWI.h +++ b/stepmania/src/NotesLoaderDWI.h @@ -20,7 +20,7 @@ class DWILoader: public NotesLoader { bool LoadFromDWITokens( CString sMode, CString sDescription, CString sNumFeet, CString sStepData1, CString sStepData2, - Notes &out, Notes &out2); + Notes &out ); bool LoadFromDWIFile( CString sPath, Song &out ); diff --git a/stepmania/src/NotesWriterDWI.cpp b/stepmania/src/NotesWriterDWI.cpp index 43134f81f3..d64c94a97d 100644 --- a/stepmania/src/NotesWriterDWI.cpp +++ b/stepmania/src/NotesWriterDWI.cpp @@ -114,8 +114,7 @@ void NotesWriterDWI::WriteDWINotesField( FILE* fp, const Notes &out, int start ) switch( out.m_NotesType ) { case NOTES_TYPE_DANCE_SINGLE: - case NOTES_TYPE_DANCE_COUPLE_1: - case NOTES_TYPE_DANCE_COUPLE_2: + case NOTES_TYPE_DANCE_COUPLE: case NOTES_TYPE_DANCE_DOUBLE: fprintf( fp, NotesToDWIString( notedata.m_TapNotes[start+0][row], @@ -182,7 +181,7 @@ bool NotesWriterDWI::WriteDWINotesTag( FILE* fp, const Notes &out ) switch( out.m_NotesType ) { case NOTES_TYPE_DANCE_SINGLE: fprintf( fp, "#SINGLE:" ); break; - case NOTES_TYPE_DANCE_COUPLE_1: fprintf( fp, "#COUPLE:" ); break; + case NOTES_TYPE_DANCE_COUPLE: fprintf( fp, "#COUPLE:" ); break; case NOTES_TYPE_DANCE_DOUBLE: fprintf( fp, "#DOUBLE:" ); break; case NOTES_TYPE_DANCE_SOLO: fprintf( fp, "#SOLO:" ); break; default: return false; // not a type supported by DWI @@ -242,41 +241,14 @@ bool NotesWriterDWI::Write( CString sPath, const Song &out ) fprintf( fp, ";\n" ); } - /* Save all Notes for this file. - * - * Hmm. We can have any number of notes for any tag; this means we can - * have any number of COUPLE_1 and COUPLE_2. We don't force them to be - * a pair; one player can play couples on normal and the other can play - * on hard. - * - * .DWIs pair up couples; we only write couples where we have a pairing - * (eg. we have both COUPLE_1 and COUPLE_2 for the same difficulty.) - * If we don't have both, write neither, since "COUPLE" in DWI without - * a second side is meaningless. (I think.) - * - * We can have any number of pairings; only write one pair for each - * difficulty. - */ - - Notes *c[NUM_DIFFICULTY_CLASSES][2]; - memset(c, 0, sizeof(c)); - for( int i=0; im_NotesType == NOTES_TYPE_DANCE_COUPLE_1) { - c[out.m_apNotes[i]->m_DifficultyClass][0] = out.m_apNotes[i]; - continue; - } - if(out.m_apNotes[i]->m_NotesType == NOTES_TYPE_DANCE_COUPLE_2) { - c[out.m_apNotes[i]->m_DifficultyClass][1] = out.m_apNotes[i]; - continue; - } - if(!WriteDWINotesTag( fp, *out.m_apNotes[i] )) continue; WriteDWINotesField( fp, *out.m_apNotes[i], 0 ); - if(out.m_apNotes[i]->m_NotesType==NOTES_TYPE_DANCE_DOUBLE) + if(out.m_apNotes[i]->m_NotesType==NOTES_TYPE_DANCE_DOUBLE || + out.m_apNotes[i]->m_NotesType==NOTES_TYPE_DANCE_COUPLE) { fprintf( fp, ":\n" ); WriteDWINotesField( fp, *out.m_apNotes[i], 4 ); @@ -284,18 +256,6 @@ bool NotesWriterDWI::Write( CString sPath, const Song &out ) fprintf( fp, ";\n" ); } - - for( i=0; i < NUM_DIFFICULTY_CLASSES; ++i ) - { - /* Skip if we don't have both sides for this couples. */ - if( !c[i][0] || !c[i][1] ) continue; - - WriteDWINotesTag( fp, *c[i][0] ); - WriteDWINotesField( fp, *c[i][0], 0 ); - fprintf( fp, ":\n" ); - WriteDWINotesField( fp, *c[i][1], 0 ); - fprintf( fp, ";\n" ); - } fclose( fp ); diff --git a/stepmania/src/Style.h b/stepmania/src/Style.h index 87d7a98cc7..e636593079 100644 --- a/stepmania/src/Style.h +++ b/stepmania/src/Style.h @@ -17,8 +17,7 @@ enum Style STYLE_DANCE_DOUBLE, STYLE_DANCE_COUPLE, STYLE_DANCE_SOLO, - STYLE_DANCE_EDIT_COUPLE_1, - STYLE_DANCE_EDIT_COUPLE_2, + STYLE_DANCE_EDIT_COUPLE, STYLE_PUMP_SINGLE, STYLE_PUMP_VERSUS, STYLE_PUMP_DOUBLE, @@ -36,7 +35,7 @@ enum Style STYLE_NONE, }; -const int NUM_DANCE_STYLES = 7; +const int NUM_DANCE_STYLES = 6; const int NUM_PUMP_STYLES = 5; const int NUM_EZ2_STYLES = 7; const int NUM_PARA_STYLES = 1;