Remove separation of Dance couples.

This commit is contained in:
Glenn Maynard
2002-09-12 08:37:12 +00:00
parent 0b264d276d
commit bd78e3499a
9 changed files with 39 additions and 164 deletions
+1 -2
View File
@@ -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,
+20 -44
View File
@@ -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 },
+1 -2
View File
@@ -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;
+5 -30
View File
@@ -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];
+1 -1
View File
@@ -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:
+4 -37
View File
@@ -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
+1 -1
View File
@@ -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 );
+4 -44
View File
@@ -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 );
+2 -3
View File
@@ -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;