Remove separation of Dance couples.
This commit is contained in:
@@ -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,
|
||||
|
||||
@@ -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 },
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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; i<MAX_TAP_NOTE_ROWS; i++ ) // for each TapNote
|
||||
{
|
||||
@@ -212,13 +211,13 @@ bool BMSLoader::LoadFromBMSFile( const CString &sPath, Notes &out, Notes &out2 )
|
||||
switch( out.m_NotesType )
|
||||
{
|
||||
case NOTES_TYPE_DANCE_SINGLE:
|
||||
case NOTES_TYPE_DANCE_COUPLE_1:
|
||||
iTransformNewToOld[0] = DANCE_NOTE_PAD1_LEFT;
|
||||
iTransformNewToOld[1] = DANCE_NOTE_PAD1_DOWN;
|
||||
iTransformNewToOld[2] = DANCE_NOTE_PAD1_UP;
|
||||
iTransformNewToOld[3] = DANCE_NOTE_PAD1_RIGHT;
|
||||
break;
|
||||
case NOTES_TYPE_DANCE_DOUBLE:
|
||||
case NOTES_TYPE_DANCE_COUPLE:
|
||||
iTransformNewToOld[0] = DANCE_NOTE_PAD1_LEFT;
|
||||
iTransformNewToOld[1] = DANCE_NOTE_PAD1_DOWN;
|
||||
iTransformNewToOld[2] = DANCE_NOTE_PAD1_UP;
|
||||
@@ -246,24 +245,6 @@ bool BMSLoader::LoadFromBMSFile( const CString &sPath, Notes &out, Notes &out2 )
|
||||
|
||||
out.SetNoteData(pNoteData2);
|
||||
|
||||
if(out.m_NotesType == NOTES_TYPE_DANCE_COUPLE_1) {
|
||||
/* Couples. Set up a second note pattern for the 2p side. */
|
||||
out2 = out;
|
||||
out2.m_NotesType = NOTES_TYPE_DANCE_COUPLE_2;
|
||||
|
||||
for( i = 0; i < MAX_NOTE_TRACKS; ++i)
|
||||
iTransformNewToOld[i] = -1;
|
||||
|
||||
iTransformNewToOld[0] = DANCE_NOTE_PAD2_LEFT;
|
||||
iTransformNewToOld[1] = DANCE_NOTE_PAD2_DOWN;
|
||||
iTransformNewToOld[2] = DANCE_NOTE_PAD2_UP;
|
||||
iTransformNewToOld[3] = DANCE_NOTE_PAD2_RIGHT;
|
||||
|
||||
pNoteData2->LoadTransformed( 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; i<arrayBMSFileNames.GetSize(); i++ )
|
||||
{
|
||||
Notes* pNewNotes = new Notes;
|
||||
Notes* pNewNotes2 = new Notes;
|
||||
|
||||
LoadFromBMSFile( out.m_sSongDir + arrayBMSFileNames[i],
|
||||
*pNewNotes, *pNewNotes2 );
|
||||
/* Add either note pattern that actually loaded. */
|
||||
*pNewNotes );
|
||||
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;
|
||||
}
|
||||
|
||||
CString sPath = out.m_sSongDir + arrayBMSFileNames[0];
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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 );
|
||||
|
||||
|
||||
@@ -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; i<out.m_apNotes.GetSize(); i++ )
|
||||
{
|
||||
if(out.m_apNotes[i]->m_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 );
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user