2011-03-17 01:47:30 -04:00
|
|
|
#include "global.h"
|
|
|
|
|
#include "GameManager.h"
|
|
|
|
|
#include "GameConstantsAndTypes.h"
|
|
|
|
|
#include "GameInput.h" // for GameButton constants
|
|
|
|
|
#include "RageLog.h"
|
|
|
|
|
#include "RageUtil.h"
|
|
|
|
|
#include "NoteSkinManager.h"
|
|
|
|
|
#include "RageInputDevice.h"
|
|
|
|
|
#include "ThemeManager.h"
|
|
|
|
|
#include "LightsManager.h" // for NUM_CabinetLight
|
|
|
|
|
#include "Game.h"
|
|
|
|
|
#include "Style.h"
|
|
|
|
|
#include "Foreach.h"
|
|
|
|
|
|
|
|
|
|
GameManager* GAMEMAN = NULL; // global and accessable from anywhere in our program
|
|
|
|
|
|
|
|
|
|
enum
|
|
|
|
|
{
|
|
|
|
|
TRACK_1 = 0,
|
|
|
|
|
TRACK_2,
|
|
|
|
|
TRACK_3,
|
|
|
|
|
TRACK_4,
|
|
|
|
|
TRACK_5,
|
|
|
|
|
TRACK_6,
|
|
|
|
|
TRACK_7,
|
|
|
|
|
TRACK_8,
|
|
|
|
|
TRACK_9,
|
|
|
|
|
TRACK_10,
|
|
|
|
|
TRACK_11,
|
|
|
|
|
TRACK_12,
|
|
|
|
|
TRACK_13,
|
|
|
|
|
TRACK_14,
|
|
|
|
|
TRACK_15,
|
|
|
|
|
TRACK_16,
|
|
|
|
|
// 16 tracks needed for beat-double7 and techno-double8
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
RString StepsTypeInfo::GetLocalizedString() const
|
|
|
|
|
{
|
|
|
|
|
if( THEME->HasString( "StepsType", szName ) )
|
|
|
|
|
return THEME->GetString( "StepsType", szName );
|
|
|
|
|
return szName;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
static const StepsTypeInfo g_StepsTypeInfos[] = {
|
|
|
|
|
// dance
|
|
|
|
|
{ "dance-single", 4, true, StepsTypeCategory_Single },
|
|
|
|
|
{ "dance-double", 8, true, StepsTypeCategory_Double },
|
|
|
|
|
{ "dance-couple", 8, true, StepsTypeCategory_Couple },
|
|
|
|
|
{ "dance-solo", 6, true, StepsTypeCategory_Single },
|
|
|
|
|
{ "dance-threepanel", 3, true, StepsTypeCategory_Single }, // thanks to kurisu
|
|
|
|
|
{ "dance-routine", 8, false, StepsTypeCategory_Routine },
|
|
|
|
|
// pump
|
|
|
|
|
{ "pump-single", 5, true, StepsTypeCategory_Single },
|
|
|
|
|
{ "pump-halfdouble", 6, true, StepsTypeCategory_Double },
|
|
|
|
|
{ "pump-double", 10, true, StepsTypeCategory_Double },
|
|
|
|
|
{ "pump-couple", 10, true, StepsTypeCategory_Couple },
|
|
|
|
|
// uh, dance-routine has that one bool as false... wtf? -aj
|
|
|
|
|
{ "pump-routine", 10, true, StepsTypeCategory_Routine },
|
|
|
|
|
// kb7
|
|
|
|
|
{ "kb7-single", 7, true, StepsTypeCategory_Single },
|
|
|
|
|
// ez2dancer
|
|
|
|
|
{ "ez2-single", 5, true, StepsTypeCategory_Single }, // Single: TL,LHH,D,RHH,TR
|
|
|
|
|
{ "ez2-double", 10, true, StepsTypeCategory_Double }, // Double: Single x2
|
|
|
|
|
{ "ez2-real", 7, true, StepsTypeCategory_Single }, // Real: TL,LHH,LHL,D,RHL,RHH,TR
|
|
|
|
|
// parapara paradise
|
|
|
|
|
{ "para-single", 5, true, StepsTypeCategory_Single },
|
|
|
|
|
// ds3ddx
|
|
|
|
|
{ "ds3ddx-single", 8, true, StepsTypeCategory_Single },
|
|
|
|
|
// beatmania
|
|
|
|
|
{ "bm-single5", 6, true, StepsTypeCategory_Single }, // called "bm" for backward compat
|
2011-05-12 00:57:16 -05:00
|
|
|
{ "bm-versus5", 6, true, StepsTypeCategory_Single }, // called "bm" for backward compat
|
2011-03-17 01:47:30 -04:00
|
|
|
{ "bm-double5", 12, true, StepsTypeCategory_Double }, // called "bm" for backward compat
|
|
|
|
|
{ "bm-single7", 8, true, StepsTypeCategory_Single }, // called "bm" for backward compat
|
2011-05-12 00:57:16 -05:00
|
|
|
{ "bm-versus7", 8, true, StepsTypeCategory_Single }, // called "bm" for backward compat
|
2011-03-17 01:47:30 -04:00
|
|
|
{ "bm-double7", 16, true, StepsTypeCategory_Double }, // called "bm" for backward compat
|
|
|
|
|
// dance maniax
|
|
|
|
|
{ "maniax-single", 4, true, StepsTypeCategory_Single },
|
|
|
|
|
{ "maniax-double", 8, true, StepsTypeCategory_Double },
|
|
|
|
|
// technomotion
|
|
|
|
|
{ "techno-single4", 4, true, StepsTypeCategory_Single },
|
|
|
|
|
{ "techno-single5", 5, true, StepsTypeCategory_Single },
|
|
|
|
|
{ "techno-single8", 8, true, StepsTypeCategory_Single },
|
|
|
|
|
{ "techno-double4", 8, true, StepsTypeCategory_Double },
|
|
|
|
|
{ "techno-double5", 10, true, StepsTypeCategory_Double },
|
|
|
|
|
{ "techno-double8", 16, true, StepsTypeCategory_Double },
|
|
|
|
|
// pop'n music
|
|
|
|
|
{ "pnm-five", 5, true, StepsTypeCategory_Single }, // called "pnm" for backward compat
|
|
|
|
|
{ "pnm-nine", 9, true, StepsTypeCategory_Single }, // called "pnm" for backward compat
|
|
|
|
|
// guitar hero
|
|
|
|
|
{ "guitar-five", 5, true, StepsTypeCategory_Single }, // 5 frets, no wail
|
|
|
|
|
// cabinet lights and other fine StepsTypes that don't exist lol
|
|
|
|
|
{ "lights-cabinet", NUM_CabinetLight, false, StepsTypeCategory_Single }, // XXX disable lights autogen for now
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// Important: Every game must define the buttons: "Start", "Back", "MenuLeft", "Operator" and "MenuRight"
|
|
|
|
|
static const AutoMappings g_AutoKeyMappings_Dance = AutoMappings (
|
|
|
|
|
"",
|
|
|
|
|
"",
|
|
|
|
|
"",
|
|
|
|
|
AutoMappingEntry( 0, KEY_DEL, GAME_BUTTON_MENULEFT, false ),
|
|
|
|
|
AutoMappingEntry( 0, KEY_PGDN, GAME_BUTTON_MENURIGHT, false ),
|
|
|
|
|
AutoMappingEntry( 0, KEY_HOME, GAME_BUTTON_MENUUP, false ),
|
|
|
|
|
AutoMappingEntry( 0, KEY_END, GAME_BUTTON_MENUDOWN, false ),
|
|
|
|
|
AutoMappingEntry( 0, KEY_LEFT, DANCE_BUTTON_LEFT, false ),
|
|
|
|
|
AutoMappingEntry( 0, KEY_RIGHT, DANCE_BUTTON_RIGHT, false ),
|
|
|
|
|
AutoMappingEntry( 0, KEY_UP, DANCE_BUTTON_UP, false ),
|
|
|
|
|
AutoMappingEntry( 0, KEY_DOWN, DANCE_BUTTON_DOWN, false ),
|
|
|
|
|
AutoMappingEntry( 0, KEY_KP_SLASH, GAME_BUTTON_MENULEFT, true ),
|
|
|
|
|
AutoMappingEntry( 0, KEY_KP_ASTERISK, GAME_BUTTON_MENURIGHT, true ),
|
|
|
|
|
AutoMappingEntry( 0, KEY_KP_HYPHEN, GAME_BUTTON_MENUUP, true ),
|
|
|
|
|
AutoMappingEntry( 0, KEY_KP_PLUS, GAME_BUTTON_MENUDOWN, true ),
|
|
|
|
|
AutoMappingEntry( 0, KEY_KP_C4, DANCE_BUTTON_LEFT, true ),
|
|
|
|
|
AutoMappingEntry( 0, KEY_KP_C6, DANCE_BUTTON_RIGHT, true ),
|
|
|
|
|
AutoMappingEntry( 0, KEY_KP_C8, DANCE_BUTTON_UP, true ),
|
|
|
|
|
AutoMappingEntry( 0, KEY_KP_C2, DANCE_BUTTON_DOWN, true ),
|
|
|
|
|
AutoMappingEntry( 0, KEY_KP_C7, DANCE_BUTTON_UPLEFT, true ),
|
|
|
|
|
AutoMappingEntry( 0, KEY_KP_C9, DANCE_BUTTON_UPRIGHT, true )
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
// xxx: get this from the theme? (see others)
|
|
|
|
|
// the problem with getting it from the noteskin is that this is meant to be
|
|
|
|
|
// static const; if we switch to anything we likely won't get const anymore
|
|
|
|
|
// but i may be talking out of my ass -aj
|
|
|
|
|
static const int DANCE_COL_SPACING = 64;
|
|
|
|
|
|
|
|
|
|
//static ThemeMetric<int> DANCE_COL_SPACING("ColumnSpacing","Dance");
|
|
|
|
|
// named after a similar metric in Aldo_MX's build for compatibility/familiarity:
|
|
|
|
|
//float DANCE_COL_SPACING NOTESKIN->GetMetricF("NoteDisplay","ArrowColSpacing");
|
|
|
|
|
/* looking for ARROW_SIZE should be enough (ArrowSize)
|
|
|
|
|
* just arroweffects.cpp for rowspacing (ArrowRowSpacing)
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
static const Style g_Style_Dance_Single =
|
|
|
|
|
{ // STYLE_DANCE_SINGLE
|
|
|
|
|
true, // m_bUsedForGameplay
|
|
|
|
|
true, // m_bUsedForEdit
|
|
|
|
|
true, // m_bUsedForDemonstration
|
|
|
|
|
true, // m_bUsedForHowToPlay
|
|
|
|
|
"single", // m_szName
|
|
|
|
|
StepsType_dance_single, // m_StepsType
|
|
|
|
|
StyleType_OnePlayerOneSide, // m_StyleType
|
|
|
|
|
4, // m_iColsPerPlayer
|
|
|
|
|
{ // m_ColumnInfo[NUM_PLAYERS][MAX_COLS_PER_PLAYER];
|
|
|
|
|
{ // PLAYER_1
|
|
|
|
|
{ TRACK_1, -DANCE_COL_SPACING*1.5f, NULL },
|
|
|
|
|
{ TRACK_2, -DANCE_COL_SPACING*0.5f, NULL },
|
|
|
|
|
{ TRACK_3, +DANCE_COL_SPACING*0.5f, NULL },
|
|
|
|
|
{ TRACK_4, +DANCE_COL_SPACING*1.5f, NULL },
|
|
|
|
|
},
|
|
|
|
|
{ // PLAYER_2
|
|
|
|
|
{ TRACK_1, -DANCE_COL_SPACING*1.5f, NULL },
|
|
|
|
|
{ TRACK_2, -DANCE_COL_SPACING*0.5f, NULL },
|
|
|
|
|
{ TRACK_3, +DANCE_COL_SPACING*0.5f, NULL },
|
|
|
|
|
{ TRACK_4, +DANCE_COL_SPACING*1.5f, NULL },
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
{ // m_iInputColumn[NUM_GameController][NUM_GameButton]
|
|
|
|
|
{ 0, 3, 2, 1, Style::END_MAPPING },
|
|
|
|
|
{ 0, 3, 2, 1, Style::END_MAPPING }
|
|
|
|
|
},
|
|
|
|
|
{ // m_iColumnDrawOrder[MAX_COLS_PER_PLAYER];
|
|
|
|
|
0, 1, 2, 3
|
|
|
|
|
},
|
|
|
|
|
false, // m_bNeedsZoomOutWith2Players
|
|
|
|
|
true, // m_bCanUseBeginnerHelper
|
|
|
|
|
false, // m_bLockDifficulties
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
static const Style g_Style_Dance_Versus =
|
|
|
|
|
{ // STYLE_DANCE_VERSUS
|
|
|
|
|
true, // m_bUsedForGameplay
|
|
|
|
|
false, // m_bUsedForEdit
|
|
|
|
|
true, // m_bUsedForDemonstration
|
|
|
|
|
false, // m_bUsedForHowToPlay
|
|
|
|
|
"versus", // m_szName
|
|
|
|
|
StepsType_dance_single, // m_StepsType
|
|
|
|
|
StyleType_TwoPlayersTwoSides, // m_StyleType
|
|
|
|
|
4, // m_iColsPerPlayer
|
|
|
|
|
{ // m_ColumnInfo[NUM_PLAYERS][MAX_COLS_PER_PLAYER];
|
|
|
|
|
{ // PLAYER_1
|
|
|
|
|
{ TRACK_1, -DANCE_COL_SPACING*1.5f, NULL },
|
|
|
|
|
{ TRACK_2, -DANCE_COL_SPACING*0.5f, NULL },
|
|
|
|
|
{ TRACK_3, +DANCE_COL_SPACING*0.5f, NULL },
|
|
|
|
|
{ TRACK_4, +DANCE_COL_SPACING*1.5f, NULL },
|
|
|
|
|
},
|
|
|
|
|
{ // PLAYER_2
|
|
|
|
|
{ TRACK_1, -DANCE_COL_SPACING*1.5f, NULL },
|
|
|
|
|
{ TRACK_2, -DANCE_COL_SPACING*0.5f, NULL },
|
|
|
|
|
{ TRACK_3, +DANCE_COL_SPACING*0.5f, NULL },
|
|
|
|
|
{ TRACK_4, +DANCE_COL_SPACING*1.5f, NULL },
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
{ 0, 3, 2, 1, Style::END_MAPPING },
|
|
|
|
|
{ 0, 3, 2, 1, Style::END_MAPPING }
|
|
|
|
|
},
|
|
|
|
|
{ // m_iColumnDrawOrder[MAX_COLS_PER_PLAYER];
|
|
|
|
|
0, 1, 2, 3
|
|
|
|
|
},
|
|
|
|
|
false, // m_bNeedsZoomOutWith2Players
|
|
|
|
|
true, // m_bCanUseBeginnerHelper
|
|
|
|
|
false, // m_bLockDifficulties
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
static const Style g_Style_Dance_Double =
|
|
|
|
|
{ // STYLE_DANCE_DOUBLE
|
|
|
|
|
true, // m_bUsedForGameplay
|
|
|
|
|
true, // m_bUsedForEdit
|
|
|
|
|
true, // m_bUsedForDemonstration
|
|
|
|
|
false, // m_bUsedForHowToPlay
|
|
|
|
|
"double", // m_szName
|
|
|
|
|
StepsType_dance_double, // m_StepsType
|
|
|
|
|
StyleType_OnePlayerTwoSides, // m_StyleType
|
|
|
|
|
8, // m_iColsPerPlayer
|
|
|
|
|
{ // m_ColumnInfo[NUM_PLAYERS][MAX_COLS_PER_PLAYER];
|
|
|
|
|
{ // PLAYER_1
|
|
|
|
|
{ TRACK_1, -DANCE_COL_SPACING*3.5f, NULL },
|
|
|
|
|
{ TRACK_2, -DANCE_COL_SPACING*2.5f, NULL },
|
|
|
|
|
{ TRACK_3, -DANCE_COL_SPACING*1.5f, NULL },
|
|
|
|
|
{ TRACK_4, -DANCE_COL_SPACING*0.5f, NULL },
|
|
|
|
|
{ TRACK_5, +DANCE_COL_SPACING*0.5f, NULL },
|
|
|
|
|
{ TRACK_6, +DANCE_COL_SPACING*1.5f, NULL },
|
|
|
|
|
{ TRACK_7, +DANCE_COL_SPACING*2.5f, NULL },
|
|
|
|
|
{ TRACK_8, +DANCE_COL_SPACING*3.5f, NULL },
|
|
|
|
|
},
|
|
|
|
|
{ // PLAYER_2
|
|
|
|
|
{ TRACK_1, -DANCE_COL_SPACING*3.5f, NULL },
|
|
|
|
|
{ TRACK_2, -DANCE_COL_SPACING*2.5f, NULL },
|
|
|
|
|
{ TRACK_3, -DANCE_COL_SPACING*1.5f, NULL },
|
|
|
|
|
{ TRACK_4, -DANCE_COL_SPACING*0.5f, NULL },
|
|
|
|
|
{ TRACK_5, +DANCE_COL_SPACING*0.5f, NULL },
|
|
|
|
|
{ TRACK_6, +DANCE_COL_SPACING*1.5f, NULL },
|
|
|
|
|
{ TRACK_7, +DANCE_COL_SPACING*2.5f, NULL },
|
|
|
|
|
{ TRACK_8, +DANCE_COL_SPACING*3.5f, NULL },
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
{ // m_iInputColumn[NUM_GameController][NUM_GameButton]
|
|
|
|
|
{ 0, 3, 2, 1, Style::END_MAPPING },
|
|
|
|
|
{ 4, 7, 6, 5, Style::END_MAPPING }
|
|
|
|
|
},
|
|
|
|
|
{ // m_iColumnDrawOrder[MAX_COLS_PER_PLAYER];
|
|
|
|
|
0,1,2,3,4,5,6,7
|
|
|
|
|
},
|
|
|
|
|
false, // m_bNeedsZoomOutWith2Players
|
|
|
|
|
false, // m_bCanUseBeginnerHelper
|
|
|
|
|
false, // m_bLockDifficulties
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
static const Style g_Style_Dance_Couple =
|
|
|
|
|
{ // STYLE_DANCE_COUPLE
|
|
|
|
|
true, // m_bUsedForGameplay
|
|
|
|
|
false, // m_bUsedForEdit
|
|
|
|
|
false, // m_bUsedForDemonstration
|
|
|
|
|
false, // m_bUsedForHowToPlay
|
|
|
|
|
"couple", // m_szName
|
|
|
|
|
StepsType_dance_couple, // m_StepsType
|
|
|
|
|
StyleType_TwoPlayersTwoSides, // m_StyleType
|
|
|
|
|
4, // m_iColsPerPlayer
|
|
|
|
|
{ // m_ColumnInfo[NUM_PLAYERS][MAX_COLS_PER_PLAYER];
|
|
|
|
|
{ // PLAYER_1
|
|
|
|
|
{ TRACK_1, -DANCE_COL_SPACING*1.5f, NULL },
|
|
|
|
|
{ TRACK_2, -DANCE_COL_SPACING*0.5f, NULL },
|
|
|
|
|
{ TRACK_3, +DANCE_COL_SPACING*0.5f, NULL },
|
|
|
|
|
{ TRACK_4, +DANCE_COL_SPACING*1.5f, NULL },
|
|
|
|
|
},
|
|
|
|
|
{ // PLAYER_2
|
|
|
|
|
{ TRACK_5, -DANCE_COL_SPACING*1.5f, NULL },
|
|
|
|
|
{ TRACK_6, -DANCE_COL_SPACING*0.5f, NULL },
|
|
|
|
|
{ TRACK_7, +DANCE_COL_SPACING*0.5f, NULL },
|
|
|
|
|
{ TRACK_8, +DANCE_COL_SPACING*1.5f, NULL },
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
{ // m_iInputColumn[NUM_GameController][NUM_GameButton]
|
|
|
|
|
{ 0, 3, 2, 1, Style::END_MAPPING },
|
|
|
|
|
{ 0, 3, 2, 1, Style::END_MAPPING }
|
|
|
|
|
},
|
|
|
|
|
{ // m_iColumnDrawOrder[MAX_COLS_PER_PLAYER];
|
|
|
|
|
0,1,2,3
|
|
|
|
|
},
|
|
|
|
|
false, // m_bNeedsZoomOutWith2Players
|
|
|
|
|
true, // m_bCanUseBeginnerHelper
|
|
|
|
|
true, // m_bLockDifficulties
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
static const Style g_Style_Dance_Solo =
|
|
|
|
|
{ // STYLE_DANCE_SOLO
|
|
|
|
|
true, // m_bUsedForGameplay
|
|
|
|
|
true, // m_bUsedForEdit
|
|
|
|
|
false, // m_bUsedForDemonstration
|
|
|
|
|
false, // m_bUsedForHowToPlay
|
|
|
|
|
"solo", // m_szName
|
|
|
|
|
StepsType_dance_solo, // m_StepsType
|
|
|
|
|
StyleType_OnePlayerOneSide, // m_StyleType
|
|
|
|
|
6, // m_iColsPerPlayer
|
|
|
|
|
{ // m_ColumnInfo[NUM_PLAYERS][MAX_COLS_PER_PLAYER];
|
|
|
|
|
{ // PLAYER_1
|
|
|
|
|
{ TRACK_1, -DANCE_COL_SPACING*2.5f, NULL },
|
|
|
|
|
{ TRACK_2, -DANCE_COL_SPACING*1.5f, NULL },
|
|
|
|
|
{ TRACK_3, -DANCE_COL_SPACING*0.5f, NULL },
|
|
|
|
|
{ TRACK_4, +DANCE_COL_SPACING*0.5f, NULL },
|
|
|
|
|
{ TRACK_5, +DANCE_COL_SPACING*1.5f, NULL },
|
|
|
|
|
{ TRACK_6, +DANCE_COL_SPACING*2.5f, NULL },
|
|
|
|
|
},
|
|
|
|
|
{ // PLAYER_2
|
|
|
|
|
{ TRACK_1, -DANCE_COL_SPACING*2.5f, NULL },
|
|
|
|
|
{ TRACK_2, -DANCE_COL_SPACING*1.5f, NULL },
|
|
|
|
|
{ TRACK_3, -DANCE_COL_SPACING*0.5f, NULL },
|
|
|
|
|
{ TRACK_4, +DANCE_COL_SPACING*0.5f, NULL },
|
|
|
|
|
{ TRACK_5, +DANCE_COL_SPACING*1.5f, NULL },
|
|
|
|
|
{ TRACK_6, +DANCE_COL_SPACING*2.5f, NULL },
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
{ // m_iInputColumn[NUM_GameController][NUM_GameButton]
|
|
|
|
|
{ 0, 5, 3, 2, 1, 4, Style::END_MAPPING },
|
|
|
|
|
{ 0, 5, 3, 2, 1, 4, Style::END_MAPPING }
|
|
|
|
|
},
|
|
|
|
|
{ // m_iColumnDrawOrder[MAX_COLS_PER_PLAYER];
|
|
|
|
|
0,1,2,3,4,5
|
|
|
|
|
},
|
|
|
|
|
false, // m_bNeedsZoomOutWith2Players
|
|
|
|
|
false, // m_bCanUseBeginnerHelper
|
|
|
|
|
false, // m_bLockDifficulties
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
static const Style g_Style_Dance_ThreePanel =
|
|
|
|
|
{ // STYLE_DANCE_THREEPANEL
|
|
|
|
|
true, // m_bUsedForGameplay
|
|
|
|
|
true, // m_bUsedForEdit
|
|
|
|
|
false, // m_bUsedForDemonstration
|
|
|
|
|
false, // m_bUsedForHowToPlay
|
|
|
|
|
"threepanel", // m_szName
|
|
|
|
|
StepsType_dance_threepanel, // m_StepsType
|
|
|
|
|
StyleType_OnePlayerOneSide, // m_StyleType
|
|
|
|
|
3, // m_iColsPerPlayer
|
|
|
|
|
{ // m_ColumnInfo[NUM_PLAYERS][MAX_COLS_PER_PLAYER];
|
|
|
|
|
{ // PLAYER_1
|
|
|
|
|
{ TRACK_1, -DANCE_COL_SPACING*1.0f, NULL },
|
|
|
|
|
{ TRACK_2, +DANCE_COL_SPACING*0.0f, NULL },
|
|
|
|
|
{ TRACK_3, +DANCE_COL_SPACING*1.0f, NULL },
|
|
|
|
|
},
|
|
|
|
|
{ // PLAYER_2
|
|
|
|
|
{ TRACK_1, -DANCE_COL_SPACING*1.0f, NULL },
|
|
|
|
|
{ TRACK_2, +DANCE_COL_SPACING*0.0f, NULL },
|
|
|
|
|
{ TRACK_3, +DANCE_COL_SPACING*1.0f, NULL },
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
{ // m_iInputColumn[NUM_GameController][NUM_GameButton]
|
|
|
|
|
// 4 3 5
|
|
|
|
|
{ Style::NO_MAPPING, Style::NO_MAPPING, Style::NO_MAPPING, 1, 0, 2, Style::END_MAPPING },
|
|
|
|
|
{ Style::NO_MAPPING, Style::NO_MAPPING, Style::NO_MAPPING, 1, 0, 2, Style::END_MAPPING }
|
|
|
|
|
},
|
|
|
|
|
{ // m_iColumnDrawOrder[MAX_COLS_PER_PLAYER];
|
|
|
|
|
0,1,2
|
|
|
|
|
},
|
|
|
|
|
false, // m_bNeedsZoomOutWith2Players
|
|
|
|
|
false, // m_bCanUseBeginnerHelper
|
|
|
|
|
false, // m_bLockDifficulties
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
static const Style g_Style_Dance_Couple_Edit =
|
|
|
|
|
{ // STYLE_DANCE_EDIT_COUPLE
|
|
|
|
|
false, // m_bUsedForGameplay
|
|
|
|
|
true, // m_bUsedForEdit
|
|
|
|
|
false, // m_bUsedForDemonstration
|
|
|
|
|
false, // m_bUsedForHowToPlay
|
|
|
|
|
"couple-edit", // m_szName
|
|
|
|
|
StepsType_dance_couple, // m_StepsType
|
|
|
|
|
StyleType_OnePlayerOneSide, // m_StyleType
|
|
|
|
|
8, // m_iColsPerPlayer
|
|
|
|
|
{ // m_ColumnInfo[NUM_PLAYERS][MAX_COLS_PER_PLAYER];
|
|
|
|
|
{ // PLAYER_1
|
|
|
|
|
{ TRACK_1, -DANCE_COL_SPACING*4.0f, NULL },
|
|
|
|
|
{ TRACK_2, -DANCE_COL_SPACING*3.0f, NULL },
|
|
|
|
|
{ TRACK_3, -DANCE_COL_SPACING*2.0f, NULL },
|
|
|
|
|
{ TRACK_4, -DANCE_COL_SPACING*1.0f, NULL },
|
|
|
|
|
{ TRACK_5, +DANCE_COL_SPACING*1.0f, NULL },
|
|
|
|
|
{ TRACK_6, +DANCE_COL_SPACING*2.0f, NULL },
|
|
|
|
|
{ TRACK_7, +DANCE_COL_SPACING*3.0f, NULL },
|
|
|
|
|
{ TRACK_8, +DANCE_COL_SPACING*4.0f, NULL },
|
|
|
|
|
},
|
|
|
|
|
{ // PLAYER_2
|
|
|
|
|
{ TRACK_1, -DANCE_COL_SPACING*4.0f, NULL },
|
|
|
|
|
{ TRACK_2, -DANCE_COL_SPACING*3.0f, NULL },
|
|
|
|
|
{ TRACK_3, -DANCE_COL_SPACING*2.0f, NULL },
|
|
|
|
|
{ TRACK_4, -DANCE_COL_SPACING*1.0f, NULL },
|
|
|
|
|
{ TRACK_5, +DANCE_COL_SPACING*1.0f, NULL },
|
|
|
|
|
{ TRACK_6, +DANCE_COL_SPACING*2.0f, NULL },
|
|
|
|
|
{ TRACK_7, +DANCE_COL_SPACING*3.0f, NULL },
|
|
|
|
|
{ TRACK_8, +DANCE_COL_SPACING*4.0f, NULL },
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
{ // m_iInputColumn[NUM_GameController][NUM_GameButton]
|
|
|
|
|
{ 0, 1, 2, 3, Style::END_MAPPING },
|
|
|
|
|
{ 4, 5, 6, 7, Style::END_MAPPING },
|
|
|
|
|
},
|
|
|
|
|
{ // m_iColumnDrawOrder[MAX_COLS_PER_PLAYER];
|
|
|
|
|
0,1,2,3,4,5,6,7
|
|
|
|
|
},
|
|
|
|
|
false, // m_bNeedsZoomOutWith2Players
|
|
|
|
|
false, // m_bCanUseBeginnerHelper
|
|
|
|
|
false, // m_bLockDifficulties
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
// todo: re-enable? (lol)
|
|
|
|
|
/*
|
|
|
|
|
static const Style g_Style_Dance_Solo_Versus =
|
|
|
|
|
{ // STYLE_DANCE_SOLO_VERSUS
|
|
|
|
|
"dance-solo-versus", // m_szName
|
|
|
|
|
StepsType_dance_solo, // m_StepsType
|
|
|
|
|
ONE_PLAYER_ONE_CREDIT, // m_StyleType
|
|
|
|
|
6, // m_iColsPerPlayer
|
|
|
|
|
{ // m_ColumnInfo[NUM_PLAYERS][MAX_COLS_PER_PLAYER];
|
|
|
|
|
{ // PLAYER_1
|
|
|
|
|
{ TRACK_1, -DANCE_6PANEL_VERSUS_COL_SPACING*2.5f },
|
|
|
|
|
{ TRACK_2, -DANCE_6PANEL_VERSUS_COL_SPACING*1.5f },
|
|
|
|
|
{ TRACK_3, -DANCE_6PANEL_VERSUS_COL_SPACING*0.5f },
|
|
|
|
|
{ TRACK_4, +DANCE_6PANEL_VERSUS_COL_SPACING*0.5f },
|
|
|
|
|
{ TRACK_5, +DANCE_6PANEL_VERSUS_COL_SPACING*1.5f },
|
|
|
|
|
{ TRACK_6, +DANCE_6PANEL_VERSUS_COL_SPACING*2.5f },
|
|
|
|
|
},
|
|
|
|
|
{ // PLAYER_2
|
|
|
|
|
{ TRACK_1, -DANCE_6PANEL_VERSUS_COL_SPACING*2.5f },
|
|
|
|
|
{ TRACK_2, -DANCE_6PANEL_VERSUS_COL_SPACING*1.5f },
|
|
|
|
|
{ TRACK_3, -DANCE_6PANEL_VERSUS_COL_SPACING*0.5f },
|
|
|
|
|
{ TRACK_4, +DANCE_6PANEL_VERSUS_COL_SPACING*0.5f },
|
|
|
|
|
{ TRACK_5, +DANCE_6PANEL_VERSUS_COL_SPACING*1.5f },
|
|
|
|
|
{ TRACK_6, +DANCE_6PANEL_VERSUS_COL_SPACING*2.5f },
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
{ // m_iInputColumn[NUM_GameController][NUM_GameButton]
|
|
|
|
|
{ 0, 5, 3, 2, 1, 4, Style::END_MAPPING },
|
|
|
|
|
{ 0, 5, 3, 2, 1, 4, Style::END_MAPPING }
|
|
|
|
|
},
|
|
|
|
|
{ // m_iColumnDrawOrder[MAX_COLS_PER_PLAYER];
|
|
|
|
|
0,5,1,4,2,3 // outside in
|
|
|
|
|
},
|
|
|
|
|
false, // m_bNeedsZoomOutWith2Players
|
|
|
|
|
false, // m_bCanUseBeginnerHelper
|
|
|
|
|
false, // m_bLockDifficulties
|
|
|
|
|
}; */
|
|
|
|
|
|
|
|
|
|
static const Style g_Style_Dance_Routine =
|
|
|
|
|
{ // STYLE_DANCE_ROUTINE
|
|
|
|
|
true, // m_bUsedForGameplay
|
|
|
|
|
true, // m_bUsedForEdit
|
|
|
|
|
false, // m_bUsedForDemonstration
|
|
|
|
|
false, // m_bUsedForHowToPlay
|
|
|
|
|
"routine", // m_szName
|
|
|
|
|
StepsType_dance_routine, // m_StepsType
|
|
|
|
|
StyleType_TwoPlayersSharedSides, // m_StyleType
|
|
|
|
|
8, // m_iColsPerPlayer
|
|
|
|
|
{ // m_ColumnInfo[NUM_PLAYERS][MAX_COLS_PER_PLAYER];
|
|
|
|
|
{ // PLAYER_1
|
|
|
|
|
{ TRACK_1, -DANCE_COL_SPACING*3.5f, NULL },
|
|
|
|
|
{ TRACK_2, -DANCE_COL_SPACING*2.5f, NULL },
|
|
|
|
|
{ TRACK_3, -DANCE_COL_SPACING*1.5f, NULL },
|
|
|
|
|
{ TRACK_4, -DANCE_COL_SPACING*0.5f, NULL },
|
|
|
|
|
{ TRACK_5, +DANCE_COL_SPACING*0.5f, NULL },
|
|
|
|
|
{ TRACK_6, +DANCE_COL_SPACING*1.5f, NULL },
|
|
|
|
|
{ TRACK_7, +DANCE_COL_SPACING*2.5f, NULL },
|
|
|
|
|
{ TRACK_8, +DANCE_COL_SPACING*3.5f, NULL },
|
|
|
|
|
},
|
|
|
|
|
{ // PLAYER_2
|
|
|
|
|
{ TRACK_1, -DANCE_COL_SPACING*3.5f, NULL },
|
|
|
|
|
{ TRACK_2, -DANCE_COL_SPACING*2.5f, NULL },
|
|
|
|
|
{ TRACK_3, -DANCE_COL_SPACING*1.5f, NULL },
|
|
|
|
|
{ TRACK_4, -DANCE_COL_SPACING*0.5f, NULL },
|
|
|
|
|
{ TRACK_5, +DANCE_COL_SPACING*0.5f, NULL },
|
|
|
|
|
{ TRACK_6, +DANCE_COL_SPACING*1.5f, NULL },
|
|
|
|
|
{ TRACK_7, +DANCE_COL_SPACING*2.5f, NULL },
|
|
|
|
|
{ TRACK_8, +DANCE_COL_SPACING*3.5f, NULL },
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
{ // m_iInputColumn[NUM_GameController][NUM_GameButton]
|
|
|
|
|
{ 0, 3, 2, 1, Style::END_MAPPING },
|
|
|
|
|
{ 4, 7, 6, 5, Style::END_MAPPING }
|
|
|
|
|
},
|
|
|
|
|
{ // m_iColumnDrawOrder[MAX_COLS_PER_PLAYER];
|
|
|
|
|
0,1,2,3,4,5,6,7
|
|
|
|
|
},
|
|
|
|
|
false, // m_bNeedsZoomOutWith2Players
|
|
|
|
|
false, // m_bCanUseBeginnerHelper
|
|
|
|
|
true, // m_bLockDifficulties
|
|
|
|
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
static const Style *g_apGame_Dance_Styles[] =
|
|
|
|
|
{
|
|
|
|
|
&g_Style_Dance_Single,
|
|
|
|
|
&g_Style_Dance_Versus,
|
|
|
|
|
&g_Style_Dance_Double,
|
|
|
|
|
&g_Style_Dance_Couple,
|
|
|
|
|
&g_Style_Dance_Solo,
|
|
|
|
|
&g_Style_Dance_Couple_Edit,
|
|
|
|
|
&g_Style_Dance_Routine,
|
|
|
|
|
&g_Style_Dance_ThreePanel,
|
|
|
|
|
NULL
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
static const Game g_Game_Dance =
|
|
|
|
|
{
|
|
|
|
|
"dance", // m_szName
|
|
|
|
|
g_apGame_Dance_Styles, // m_apStyles
|
|
|
|
|
false, // m_bCountNotesSeparately
|
|
|
|
|
false, // m_bAllowHopos
|
|
|
|
|
{ // m_InputScheme
|
|
|
|
|
"dance", // m_szName
|
|
|
|
|
NUM_DANCE_BUTTONS, // m_iButtonsPerController
|
|
|
|
|
{ // m_szButtonNames
|
|
|
|
|
{ "Left", GAME_BUTTON_LEFT },
|
|
|
|
|
{ "Right", GAME_BUTTON_RIGHT },
|
|
|
|
|
{ "Up", GAME_BUTTON_UP },
|
|
|
|
|
{ "Down", GAME_BUTTON_DOWN },
|
|
|
|
|
{ "UpLeft", GameButton_Invalid },
|
|
|
|
|
{ "UpRight", GameButton_Invalid },
|
|
|
|
|
},
|
|
|
|
|
&g_AutoKeyMappings_Dance
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
{ GameButtonType_Step },
|
|
|
|
|
{ GameButtonType_Step },
|
|
|
|
|
{ GameButtonType_Step },
|
|
|
|
|
{ GameButtonType_Step },
|
|
|
|
|
{ GameButtonType_Step },
|
|
|
|
|
{ GameButtonType_Step },
|
|
|
|
|
},
|
|
|
|
|
TNS_W1, // m_mapW1To
|
|
|
|
|
TNS_W2, // m_mapW2To
|
|
|
|
|
TNS_W3, // m_mapW3To
|
|
|
|
|
TNS_W4, // m_mapW4To
|
|
|
|
|
TNS_W5, // m_mapW5To
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
static const AutoMappings g_AutoKeyMappings_Pump = AutoMappings (
|
|
|
|
|
"",
|
|
|
|
|
"",
|
|
|
|
|
"",
|
|
|
|
|
AutoMappingEntry( 0, KEY_Cq, PUMP_BUTTON_UPLEFT, false ),
|
|
|
|
|
AutoMappingEntry( 0, KEY_Ce, PUMP_BUTTON_UPRIGHT, false ),
|
|
|
|
|
AutoMappingEntry( 0, KEY_Cs, PUMP_BUTTON_CENTER, false ),
|
|
|
|
|
AutoMappingEntry( 0, KEY_Cz, PUMP_BUTTON_DOWNLEFT, false ),
|
|
|
|
|
AutoMappingEntry( 0, KEY_Cc, PUMP_BUTTON_DOWNRIGHT, false ),
|
|
|
|
|
AutoMappingEntry( 0, KEY_KP_C7, PUMP_BUTTON_UPLEFT, true ),
|
|
|
|
|
AutoMappingEntry( 0, KEY_KP_C9, PUMP_BUTTON_UPRIGHT, true ),
|
|
|
|
|
AutoMappingEntry( 0, KEY_KP_C5, PUMP_BUTTON_CENTER, true ),
|
|
|
|
|
AutoMappingEntry( 0, KEY_KP_C1, PUMP_BUTTON_DOWNLEFT, true ),
|
|
|
|
|
AutoMappingEntry( 0, KEY_KP_C3, PUMP_BUTTON_DOWNRIGHT, true ),
|
|
|
|
|
|
|
|
|
|
// unmap confusing default MenuButtons
|
|
|
|
|
AutoMappingEntry( 0, KEY_KP_C8, GameButton_Invalid, false ),
|
|
|
|
|
AutoMappingEntry( 0, KEY_KP_C2, GameButton_Invalid, false ),
|
|
|
|
|
AutoMappingEntry( 0, KEY_KP_C4, GameButton_Invalid, false ),
|
|
|
|
|
AutoMappingEntry( 0, KEY_KP_C6, GameButton_Invalid, false )
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
// PIU Defaults: RowSpacing = 60; ColSpacing = 52; ArrowSize = 54;
|
|
|
|
|
// apparently column spacing is 48px
|
|
|
|
|
//static ThemeMetric<int> PUMP_COL_SPACING ("ColumnSpacing","Pump");
|
|
|
|
|
static const int PUMP_COL_SPACING = 48;
|
|
|
|
|
|
|
|
|
|
static const Style g_Style_Pump_Single =
|
|
|
|
|
{ // STYLE_PUMP_SINGLE
|
|
|
|
|
true, // m_bUsedForGameplay
|
|
|
|
|
true, // m_bUsedForEdit
|
|
|
|
|
false, // m_bUsedForDemonstration
|
|
|
|
|
true, // m_bUsedForHowToPlay
|
|
|
|
|
"single", // m_szName
|
|
|
|
|
StepsType_pump_single, // m_StepsType
|
|
|
|
|
StyleType_OnePlayerOneSide, // m_StyleType
|
|
|
|
|
5, // m_iColsPerPlayer
|
|
|
|
|
{ // m_ColumnInfo[NUM_PLAYERS][MAX_COLS_PER_PLAYER];
|
|
|
|
|
{ // PLAYER_1
|
|
|
|
|
{ TRACK_1, -PUMP_COL_SPACING*2.0f, NULL },
|
|
|
|
|
{ TRACK_2, -PUMP_COL_SPACING*1.0f, NULL },
|
|
|
|
|
{ TRACK_3, +PUMP_COL_SPACING*0.0f, NULL },
|
|
|
|
|
{ TRACK_4, +PUMP_COL_SPACING*1.0f, NULL },
|
|
|
|
|
{ TRACK_5, +PUMP_COL_SPACING*2.0f, NULL },
|
|
|
|
|
},
|
|
|
|
|
{ // PLAYER_2
|
|
|
|
|
{ TRACK_1, -PUMP_COL_SPACING*2.0f, NULL },
|
|
|
|
|
{ TRACK_2, -PUMP_COL_SPACING*1.0f, NULL },
|
|
|
|
|
{ TRACK_3, +PUMP_COL_SPACING*0.0f, NULL },
|
|
|
|
|
{ TRACK_4, +PUMP_COL_SPACING*1.0f, NULL },
|
|
|
|
|
{ TRACK_5, +PUMP_COL_SPACING*2.0f, NULL },
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
{ // m_iInputColumn[NUM_GameController][NUM_GameButton]
|
|
|
|
|
{ 1, 3, 2, 0, 4, Style::END_MAPPING },
|
|
|
|
|
{ 1, 3, 2, 0, 4, Style::END_MAPPING },
|
|
|
|
|
},
|
|
|
|
|
{ // m_iColumnDrawOrder[MAX_COLS_PER_PLAYER];
|
|
|
|
|
2,1,3,0,4
|
|
|
|
|
},
|
|
|
|
|
false, // m_bNeedsZoomOutWith2Players
|
|
|
|
|
false, // m_bCanUseBeginnerHelper
|
|
|
|
|
false, // m_bLockDifficulties
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
static const Style g_Style_Pump_Versus =
|
|
|
|
|
{ // STYLE_PUMP_VERSUS
|
|
|
|
|
true, // m_bUsedForGameplay
|
|
|
|
|
false, // m_bUsedForEdit
|
|
|
|
|
true, // m_bUsedForDemonstration
|
|
|
|
|
false, // m_bUsedForHowToPlay
|
|
|
|
|
"versus", // m_szName
|
|
|
|
|
StepsType_pump_single, // m_StepsType
|
|
|
|
|
StyleType_TwoPlayersTwoSides, // m_StyleType
|
|
|
|
|
5, // m_iColsPerPlayer
|
|
|
|
|
{ // m_ColumnInfo[NUM_PLAYERS][MAX_COLS_PER_PLAYER];
|
|
|
|
|
{ // PLAYER_1
|
|
|
|
|
{ TRACK_1, -PUMP_COL_SPACING*2.0f, NULL },
|
|
|
|
|
{ TRACK_2, -PUMP_COL_SPACING*1.0f, NULL },
|
|
|
|
|
{ TRACK_3, +PUMP_COL_SPACING*0.0f, NULL },
|
|
|
|
|
{ TRACK_4, +PUMP_COL_SPACING*1.0f, NULL },
|
|
|
|
|
{ TRACK_5, +PUMP_COL_SPACING*2.0f, NULL },
|
|
|
|
|
},
|
|
|
|
|
{ // PLAYER_2
|
|
|
|
|
{ TRACK_1, -PUMP_COL_SPACING*2.0f, NULL },
|
|
|
|
|
{ TRACK_2, -PUMP_COL_SPACING*1.0f, NULL },
|
|
|
|
|
{ TRACK_3, +PUMP_COL_SPACING*0.0f, NULL },
|
|
|
|
|
{ TRACK_4, +PUMP_COL_SPACING*1.0f, NULL },
|
|
|
|
|
{ TRACK_5, +PUMP_COL_SPACING*2.0f, NULL },
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
{ // m_iInputColumn[NUM_GameController][NUM_GameButton]
|
|
|
|
|
{ 1, 3, 2, 0, 4, Style::END_MAPPING },
|
|
|
|
|
{ 1, 3, 2, 0, 4, Style::END_MAPPING },
|
|
|
|
|
},
|
|
|
|
|
{ // m_iColumnDrawOrder[MAX_COLS_PER_PLAYER];
|
|
|
|
|
2,1,3,0,4
|
|
|
|
|
},
|
|
|
|
|
false, // m_bNeedsZoomOutWith2Players
|
|
|
|
|
false, // m_bCanUseBeginnerHelper
|
|
|
|
|
false, // m_bLockDifficulties
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
static const Style g_Style_Pump_HalfDouble =
|
|
|
|
|
{ // STYLE_PUMP_HALFDOUBLE
|
|
|
|
|
true, // m_bUsedForGameplay
|
|
|
|
|
true, // m_bUsedForEdit
|
|
|
|
|
false, // m_bUsedForDemonstration
|
|
|
|
|
false, // m_bUsedForHowToPlay
|
|
|
|
|
"halfdouble", // m_szName
|
|
|
|
|
StepsType_pump_halfdouble, // m_StepsType
|
|
|
|
|
StyleType_OnePlayerTwoSides, // m_StyleType
|
|
|
|
|
6, // m_iColsPerPlayer
|
|
|
|
|
{ // m_ColumnInfo[NUM_PLAYERS][MAX_COLS_PER_PLAYER];
|
|
|
|
|
{ // PLAYER_1
|
|
|
|
|
{ TRACK_1, -PUMP_COL_SPACING*2.5f-4, NULL },
|
|
|
|
|
{ TRACK_2, -PUMP_COL_SPACING*1.5f-4, NULL },
|
|
|
|
|
{ TRACK_3, -PUMP_COL_SPACING*0.5f-4, NULL },
|
|
|
|
|
{ TRACK_4, +PUMP_COL_SPACING*0.5f+4, NULL },
|
|
|
|
|
{ TRACK_5, +PUMP_COL_SPACING*1.5f+4, NULL },
|
|
|
|
|
{ TRACK_6, +PUMP_COL_SPACING*2.5f+4, NULL },
|
|
|
|
|
},
|
|
|
|
|
{ // PLAYER_2
|
|
|
|
|
{ TRACK_1, -PUMP_COL_SPACING*2.5f-4, NULL },
|
|
|
|
|
{ TRACK_2, -PUMP_COL_SPACING*1.5f-4, NULL },
|
|
|
|
|
{ TRACK_3, -PUMP_COL_SPACING*0.5f-4, NULL },
|
|
|
|
|
{ TRACK_4, +PUMP_COL_SPACING*0.5f+4, NULL },
|
|
|
|
|
{ TRACK_5, +PUMP_COL_SPACING*1.5f+4, NULL },
|
|
|
|
|
{ TRACK_6, +PUMP_COL_SPACING*2.5f+4, NULL },
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
{ // m_iInputColumn[NUM_GameController][NUM_GameButton]
|
|
|
|
|
{ Style::NO_MAPPING, 1, 0, Style::NO_MAPPING, 2, Style::END_MAPPING },
|
|
|
|
|
{ 4, Style::NO_MAPPING, 5, 3, Style::NO_MAPPING, Style::END_MAPPING }
|
|
|
|
|
},
|
|
|
|
|
{ // m_iColumnDrawOrder[MAX_COLS_PER_PLAYER];
|
|
|
|
|
2,3,1,4,0,5
|
|
|
|
|
},
|
|
|
|
|
false, // m_bNeedsZoomOutWith2Players
|
|
|
|
|
false, // m_bCanUseBeginnerHelper
|
|
|
|
|
false, // m_bLockDifficulties
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
static const Style g_Style_Pump_Double =
|
|
|
|
|
{ // STYLE_PUMP_DOUBLE
|
|
|
|
|
true, // m_bUsedForGameplay
|
|
|
|
|
true, // m_bUsedForEdit
|
|
|
|
|
false, // m_bUsedForDemonstration
|
|
|
|
|
false, // m_bUsedForHowToPlay
|
|
|
|
|
"double", // m_szName
|
|
|
|
|
StepsType_pump_double, // m_StepsType
|
|
|
|
|
StyleType_OnePlayerTwoSides, // m_StyleType
|
|
|
|
|
10, // m_iColsPerPlayer
|
|
|
|
|
{ // m_ColumnInfo[NUM_PLAYERS][MAX_COLS_PER_PLAYER];
|
|
|
|
|
{ // PLAYER_1
|
|
|
|
|
{ TRACK_1, -PUMP_COL_SPACING*4.5f-4, NULL },
|
|
|
|
|
{ TRACK_2, -PUMP_COL_SPACING*3.5f-4, NULL },
|
|
|
|
|
{ TRACK_3, -PUMP_COL_SPACING*2.5f-4, NULL },
|
|
|
|
|
{ TRACK_4, -PUMP_COL_SPACING*1.5f-4, NULL },
|
|
|
|
|
{ TRACK_5, -PUMP_COL_SPACING*0.5f-4, NULL },
|
|
|
|
|
{ TRACK_6, +PUMP_COL_SPACING*0.5f+4, NULL },
|
|
|
|
|
{ TRACK_7, +PUMP_COL_SPACING*1.5f+4, NULL },
|
|
|
|
|
{ TRACK_8, +PUMP_COL_SPACING*2.5f+4, NULL },
|
|
|
|
|
{ TRACK_9, +PUMP_COL_SPACING*3.5f+4, NULL },
|
|
|
|
|
{ TRACK_10, +PUMP_COL_SPACING*4.5f+4, NULL },
|
|
|
|
|
},
|
|
|
|
|
{ // PLAYER_2
|
|
|
|
|
{ TRACK_1, -PUMP_COL_SPACING*4.5f-4, NULL },
|
|
|
|
|
{ TRACK_2, -PUMP_COL_SPACING*3.5f-4, NULL },
|
|
|
|
|
{ TRACK_3, -PUMP_COL_SPACING*2.5f-4, NULL },
|
|
|
|
|
{ TRACK_4, -PUMP_COL_SPACING*1.5f-4, NULL },
|
|
|
|
|
{ TRACK_5, -PUMP_COL_SPACING*0.5f-4, NULL },
|
|
|
|
|
{ TRACK_6, +PUMP_COL_SPACING*0.5f+4, NULL },
|
|
|
|
|
{ TRACK_7, +PUMP_COL_SPACING*1.5f+4, NULL },
|
|
|
|
|
{ TRACK_8, +PUMP_COL_SPACING*2.5f+4, NULL },
|
|
|
|
|
{ TRACK_9, +PUMP_COL_SPACING*3.5f+4, NULL },
|
|
|
|
|
{ TRACK_10, +PUMP_COL_SPACING*4.5f+4, NULL },
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
{ // m_iInputColumn[NUM_GameController][NUM_GameButton]
|
|
|
|
|
{ 1, 3, 2, 0, 4, Style::END_MAPPING },
|
|
|
|
|
{ 6, 8, 7, 5, 9, Style::END_MAPPING },
|
|
|
|
|
},
|
|
|
|
|
{ // m_iColumnDrawOrder[MAX_COLS_PER_PLAYER];
|
|
|
|
|
2,1,3,0,4, 2+5,1+5,3+5,0+5,4+5
|
|
|
|
|
},
|
|
|
|
|
false, // m_bNeedsZoomOutWith2Players
|
|
|
|
|
false, // m_bCanUseBeginnerHelper
|
|
|
|
|
false, // m_bLockDifficulties
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
static const Style g_Style_Pump_Couple =
|
|
|
|
|
{ // STYLE_PUMP_COUPLE
|
|
|
|
|
true, // m_bUsedForGameplay
|
|
|
|
|
false, // m_bUsedForEdit
|
|
|
|
|
false, // m_bUsedForDemonstration
|
|
|
|
|
false, // m_bUsedForHowToPlay
|
|
|
|
|
"couple", // m_szName
|
|
|
|
|
StepsType_pump_couple, // m_StepsType
|
|
|
|
|
StyleType_TwoPlayersTwoSides, // m_StyleType
|
|
|
|
|
5, // m_iColsPerPlayer
|
|
|
|
|
{ // m_ColumnInfo[NUM_PLAYERS][MAX_COLS_PER_PLAYER];
|
|
|
|
|
{ // PLAYER_1
|
|
|
|
|
{ TRACK_1, -PUMP_COL_SPACING*2.0f, NULL },
|
|
|
|
|
{ TRACK_2, -PUMP_COL_SPACING*1.0f, NULL },
|
|
|
|
|
{ TRACK_3, +PUMP_COL_SPACING*0.0f, NULL },
|
|
|
|
|
{ TRACK_4, +PUMP_COL_SPACING*1.0f, NULL },
|
|
|
|
|
{ TRACK_5, +PUMP_COL_SPACING*2.0f, NULL },
|
|
|
|
|
},
|
|
|
|
|
{ // PLAYER_2
|
|
|
|
|
{ TRACK_1, -PUMP_COL_SPACING*2.0f, NULL },
|
|
|
|
|
{ TRACK_2, -PUMP_COL_SPACING*1.0f, NULL },
|
|
|
|
|
{ TRACK_3, +PUMP_COL_SPACING*0.0f, NULL },
|
|
|
|
|
{ TRACK_4, +PUMP_COL_SPACING*1.0f, NULL },
|
|
|
|
|
{ TRACK_5, +PUMP_COL_SPACING*2.0f, NULL },
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
{ // m_iInputColumn[NUM_GameController][NUM_GameButton]
|
|
|
|
|
{ 1, 3, 2, 0, 4, Style::END_MAPPING },
|
|
|
|
|
{ 1, 3, 2, 0, 4, Style::END_MAPPING },
|
|
|
|
|
},
|
|
|
|
|
{ // m_iColumnDrawOrder[MAX_COLS_PER_PLAYER];
|
|
|
|
|
2,1,3,0,4
|
|
|
|
|
},
|
|
|
|
|
false, // m_bNeedsZoomOutWith2Players
|
|
|
|
|
false, // m_bCanUseBeginnerHelper
|
|
|
|
|
true, // m_bLockDifficulties
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
static const Style g_Style_Pump_Couple_Edit =
|
|
|
|
|
{ // STYLE_PUMP_EDIT_COUPLE
|
|
|
|
|
false, // m_bUsedForGameplay
|
|
|
|
|
true, // m_bUsedForEdit
|
|
|
|
|
false, // m_bUsedForDemonstration
|
|
|
|
|
false, // m_bUsedForHowToPlay
|
|
|
|
|
"couple-edit", // m_szName
|
|
|
|
|
StepsType_pump_couple, // m_StepsType
|
|
|
|
|
StyleType_OnePlayerOneSide, // m_StyleType
|
|
|
|
|
10, // m_iColsPerPlayer
|
|
|
|
|
{ // m_ColumnInfo[NUM_PLAYERS][MAX_COLS_PER_PLAYER];
|
|
|
|
|
{ // PLAYER_1
|
|
|
|
|
{ TRACK_1, -PUMP_COL_SPACING*5.0f-4, NULL },
|
|
|
|
|
{ TRACK_2, -PUMP_COL_SPACING*4.0f-4, NULL },
|
|
|
|
|
{ TRACK_3, -PUMP_COL_SPACING*3.0f-4, NULL },
|
|
|
|
|
{ TRACK_4, -PUMP_COL_SPACING*2.0f-4, NULL },
|
|
|
|
|
{ TRACK_5, -PUMP_COL_SPACING*1.0f-4, NULL },
|
|
|
|
|
{ TRACK_6, +PUMP_COL_SPACING*1.0f+4, NULL },
|
|
|
|
|
{ TRACK_7, +PUMP_COL_SPACING*2.0f+4, NULL },
|
|
|
|
|
{ TRACK_8, +PUMP_COL_SPACING*3.0f+4, NULL },
|
|
|
|
|
{ TRACK_9, +PUMP_COL_SPACING*4.0f+4, NULL },
|
|
|
|
|
{ TRACK_10, +PUMP_COL_SPACING*5.0f+4, NULL },
|
|
|
|
|
},
|
|
|
|
|
{ // PLAYER_2
|
|
|
|
|
{ TRACK_1, -PUMP_COL_SPACING*2.0f, NULL },
|
|
|
|
|
{ TRACK_2, -PUMP_COL_SPACING*1.0f, NULL },
|
|
|
|
|
{ TRACK_3, +PUMP_COL_SPACING*0.0f, NULL },
|
|
|
|
|
{ TRACK_4, +PUMP_COL_SPACING*1.0f, NULL },
|
|
|
|
|
{ TRACK_5, +PUMP_COL_SPACING*2.0f, NULL },
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
{ // m_iInputColumn[NUM_GameController][NUM_GameButton]
|
|
|
|
|
{ 1, 3, 2, 0, 4, 6, 8, 7, 5, 9, Style::END_MAPPING },
|
|
|
|
|
{ 1, 3, 2, 0, 4, 6, 8, 7, 5, 9, Style::END_MAPPING },
|
|
|
|
|
},
|
|
|
|
|
{ // m_iColumnDrawOrder[MAX_COLS_PER_PLAYER];
|
|
|
|
|
2,1,3,0,4
|
|
|
|
|
},
|
|
|
|
|
false, // m_bNeedsZoomOutWith2Players
|
|
|
|
|
false, // m_bCanUseBeginnerHelper
|
|
|
|
|
false, // m_bLockDifficulties
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
static const Style g_Style_Pump_Routine =
|
|
|
|
|
{ // STYLE_PUMP_ROUTINE
|
|
|
|
|
true, // m_bUsedForGameplay
|
|
|
|
|
true, // m_bUsedForEdit
|
|
|
|
|
false, // m_bUsedForDemonstration
|
|
|
|
|
false, // m_bUsedForHowToPlay
|
|
|
|
|
"routine", // m_szName
|
|
|
|
|
StepsType_pump_routine, // m_StepsType
|
|
|
|
|
StyleType_TwoPlayersSharedSides, // m_StyleType
|
|
|
|
|
10, // m_iColsPerPlayer
|
|
|
|
|
{ // m_ColumnInfo[NUM_PLAYERS][MAX_COLS_PER_PLAYER];
|
|
|
|
|
{ // PLAYER_1
|
|
|
|
|
{ TRACK_1, -PUMP_COL_SPACING*4.5f-4, NULL },
|
|
|
|
|
{ TRACK_2, -PUMP_COL_SPACING*3.5f-4, NULL },
|
|
|
|
|
{ TRACK_3, -PUMP_COL_SPACING*2.5f-4, NULL },
|
|
|
|
|
{ TRACK_4, -PUMP_COL_SPACING*1.5f-4, NULL },
|
|
|
|
|
{ TRACK_5, -PUMP_COL_SPACING*0.5f-4, NULL },
|
|
|
|
|
{ TRACK_6, +PUMP_COL_SPACING*0.5f+4, NULL },
|
|
|
|
|
{ TRACK_7, +PUMP_COL_SPACING*1.5f+4, NULL },
|
|
|
|
|
{ TRACK_8, +PUMP_COL_SPACING*2.5f+4, NULL },
|
|
|
|
|
{ TRACK_9, +PUMP_COL_SPACING*3.5f+4, NULL },
|
|
|
|
|
{ TRACK_10, +PUMP_COL_SPACING*4.5f+4, NULL },
|
|
|
|
|
},
|
|
|
|
|
{ // PLAYER_2
|
|
|
|
|
{ TRACK_1, -PUMP_COL_SPACING*4.5f-4, NULL },
|
|
|
|
|
{ TRACK_2, -PUMP_COL_SPACING*3.5f-4, NULL },
|
|
|
|
|
{ TRACK_3, -PUMP_COL_SPACING*2.5f-4, NULL },
|
|
|
|
|
{ TRACK_4, -PUMP_COL_SPACING*1.5f-4, NULL },
|
|
|
|
|
{ TRACK_5, -PUMP_COL_SPACING*0.5f-4, NULL },
|
|
|
|
|
{ TRACK_6, +PUMP_COL_SPACING*0.5f+4, NULL },
|
|
|
|
|
{ TRACK_7, +PUMP_COL_SPACING*1.5f+4, NULL },
|
|
|
|
|
{ TRACK_8, +PUMP_COL_SPACING*2.5f+4, NULL },
|
|
|
|
|
{ TRACK_9, +PUMP_COL_SPACING*3.5f+4, NULL },
|
|
|
|
|
{ TRACK_10, +PUMP_COL_SPACING*4.5f+4, NULL },
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
{ // m_iInputColumn[NUM_GameController][NUM_GameButton]
|
|
|
|
|
{ 1, 3, 2, 0, 4, Style::END_MAPPING },
|
|
|
|
|
{ 6, 8, 7, 5, 9, Style::END_MAPPING },
|
|
|
|
|
},
|
|
|
|
|
{ // m_iColumnDrawOrder[MAX_COLS_PER_PLAYER];
|
|
|
|
|
2,1,3,0,4,7,6,8,5,9
|
|
|
|
|
},
|
|
|
|
|
false, // m_bNeedsZoomOutWith2Players
|
|
|
|
|
false, // m_bCanUseBeginnerHelper
|
|
|
|
|
true, // m_bLockDifficulties
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
static const Style *g_apGame_Pump_Styles[] =
|
|
|
|
|
{
|
|
|
|
|
&g_Style_Pump_Single,
|
|
|
|
|
&g_Style_Pump_Versus,
|
|
|
|
|
&g_Style_Pump_HalfDouble,
|
|
|
|
|
&g_Style_Pump_Double,
|
|
|
|
|
&g_Style_Pump_Couple,
|
|
|
|
|
&g_Style_Pump_Couple_Edit,
|
|
|
|
|
&g_Style_Pump_Routine,
|
|
|
|
|
NULL
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
static const Game g_Game_Pump =
|
|
|
|
|
{
|
|
|
|
|
"pump", // m_szName
|
|
|
|
|
g_apGame_Pump_Styles, // m_apStyles
|
|
|
|
|
false, // m_bCountNotesSeparately
|
|
|
|
|
false, // m_bAllowHopos
|
|
|
|
|
{ // m_InputScheme
|
|
|
|
|
"pump", // m_szName
|
|
|
|
|
NUM_PUMP_BUTTONS, // m_iButtonsPerController
|
|
|
|
|
{ // m_szButtonNames
|
|
|
|
|
{ "UpLeft", GAME_BUTTON_UP },
|
|
|
|
|
{ "UpRight", GAME_BUTTON_DOWN },
|
|
|
|
|
{ "Center", GAME_BUTTON_START },
|
|
|
|
|
{ "DownLeft", GAME_BUTTON_LEFT },
|
|
|
|
|
{ "DownRight", GAME_BUTTON_RIGHT },
|
|
|
|
|
},
|
|
|
|
|
&g_AutoKeyMappings_Pump
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
{ GameButtonType_Step },
|
|
|
|
|
{ GameButtonType_Step },
|
|
|
|
|
{ GameButtonType_Step },
|
|
|
|
|
{ GameButtonType_Step },
|
|
|
|
|
{ GameButtonType_Step },
|
|
|
|
|
},
|
|
|
|
|
TNS_W1, // m_mapW1To
|
|
|
|
|
TNS_W2, // m_mapW2To
|
|
|
|
|
TNS_W3, // m_mapW3To
|
|
|
|
|
TNS_W4, // m_mapW4To
|
|
|
|
|
TNS_W5, // m_mapW5To
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
static const AutoMappings g_AutoKeyMappings_KB7 = AutoMappings (
|
|
|
|
|
"",
|
|
|
|
|
"",
|
|
|
|
|
"",
|
|
|
|
|
AutoMappingEntry( 0, KEY_Cs, KB7_BUTTON_KEY1, false ),
|
|
|
|
|
AutoMappingEntry( 0, KEY_Cd, KB7_BUTTON_KEY2, false ),
|
|
|
|
|
AutoMappingEntry( 0, KEY_Cf, KB7_BUTTON_KEY3, false ),
|
|
|
|
|
AutoMappingEntry( 0, KEY_SPACE, KB7_BUTTON_KEY4, false ),
|
|
|
|
|
AutoMappingEntry( 0, KEY_Cj, KB7_BUTTON_KEY5, false ),
|
|
|
|
|
AutoMappingEntry( 0, KEY_Ck, KB7_BUTTON_KEY6, false ),
|
|
|
|
|
AutoMappingEntry( 0, KEY_Cl, KB7_BUTTON_KEY7, false )
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
//ThemeMetric<int> KB7_COL_SPACING ("ColumnSpacing","KB7");
|
|
|
|
|
static const int KB7_COL_SPACING = 64;
|
|
|
|
|
static const Style g_Style_KB7_Single =
|
|
|
|
|
{ // STYLE_KB7_SINGLE
|
|
|
|
|
true, // m_bUsedForGameplay
|
|
|
|
|
true, // m_bUsedForEdit
|
|
|
|
|
false, // m_bUsedForDemonstration
|
|
|
|
|
true, // m_bUsedForHowToPlay
|
|
|
|
|
"single", // m_szName
|
|
|
|
|
StepsType_kb7_single, // m_StepsType
|
|
|
|
|
StyleType_OnePlayerOneSide, // m_StyleType
|
|
|
|
|
7, // m_iColsPerPlayer
|
|
|
|
|
{ // m_ColumnInfo[NUM_PLAYERS][MAX_COLS_PER_PLAYER];
|
|
|
|
|
{ // PLAYER_1
|
|
|
|
|
{ TRACK_1, -KB7_COL_SPACING*3.25f, NULL },
|
|
|
|
|
{ TRACK_2, -KB7_COL_SPACING*2.25f, NULL },
|
|
|
|
|
{ TRACK_3, -KB7_COL_SPACING*1.25f, NULL },
|
|
|
|
|
{ TRACK_4, +KB7_COL_SPACING*0.0f, NULL },
|
|
|
|
|
{ TRACK_5, +KB7_COL_SPACING*1.25f, NULL },
|
|
|
|
|
{ TRACK_6, +KB7_COL_SPACING*2.25f, NULL },
|
|
|
|
|
{ TRACK_7, +KB7_COL_SPACING*3.25f, NULL },
|
|
|
|
|
},
|
|
|
|
|
{ // PLAYER_2
|
|
|
|
|
{ TRACK_1, -KB7_COL_SPACING*3.25f, NULL },
|
|
|
|
|
{ TRACK_2, -KB7_COL_SPACING*2.25f, NULL },
|
|
|
|
|
{ TRACK_3, -KB7_COL_SPACING*1.25f, NULL },
|
|
|
|
|
{ TRACK_4, +KB7_COL_SPACING*0.0f, NULL },
|
|
|
|
|
{ TRACK_5, +KB7_COL_SPACING*1.25f, NULL },
|
|
|
|
|
{ TRACK_6, +KB7_COL_SPACING*2.25f, NULL },
|
|
|
|
|
{ TRACK_7, +KB7_COL_SPACING*3.25f, NULL },
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
{ // m_iInputColumn[NUM_GameController][NUM_GameButton]
|
|
|
|
|
{ 0, 1, 2, 3, 4, 5, 6, Style::END_MAPPING },
|
|
|
|
|
{ 0, 1, 2, 3, 4, 5, 6, Style::END_MAPPING },
|
|
|
|
|
},
|
|
|
|
|
{ // m_iColumnDrawOrder[MAX_COLS_PER_PLAYER];
|
|
|
|
|
0,1,2,3,4,5,6 // doesn't work?
|
|
|
|
|
},
|
|
|
|
|
false, // m_bNeedsZoomOutWith2Players
|
|
|
|
|
false, // m_bCanUseBeginnerHelper
|
|
|
|
|
false, // m_bLockDifficulties
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
static const Style g_Style_KB7_Versus =
|
|
|
|
|
{ // STYLE_KB7_VERSUS
|
|
|
|
|
true, // m_bUsedForGameplay
|
|
|
|
|
false, // m_bUsedForEdit
|
|
|
|
|
true, // m_bUsedForDemonstration
|
|
|
|
|
false, // m_bUsedForHowToPlay
|
|
|
|
|
"versus", // m_szName
|
|
|
|
|
StepsType_kb7_single, // m_StepsType
|
|
|
|
|
StyleType_TwoPlayersTwoSides, // m_StyleType
|
|
|
|
|
7, // m_iColsPerPlayer
|
|
|
|
|
{ // m_ColumnInfo[NUM_PLAYERS][MAX_COLS_PER_PLAYER];
|
|
|
|
|
{ // PLAYER_1
|
|
|
|
|
{ TRACK_1, -KB7_COL_SPACING*3.0f, NULL },
|
|
|
|
|
{ TRACK_2, -KB7_COL_SPACING*2.0f, NULL },
|
|
|
|
|
{ TRACK_3, -KB7_COL_SPACING*1.0f, NULL },
|
|
|
|
|
{ TRACK_4, +KB7_COL_SPACING*0.0f, NULL },
|
|
|
|
|
{ TRACK_5, +KB7_COL_SPACING*1.0f, NULL },
|
|
|
|
|
{ TRACK_6, +KB7_COL_SPACING*2.0f, NULL },
|
|
|
|
|
{ TRACK_7, +KB7_COL_SPACING*3.0f, NULL },
|
|
|
|
|
},
|
|
|
|
|
{ // PLAYER_2
|
|
|
|
|
{ TRACK_1, -KB7_COL_SPACING*3.0f, NULL },
|
|
|
|
|
{ TRACK_2, -KB7_COL_SPACING*2.0f, NULL },
|
|
|
|
|
{ TRACK_3, -KB7_COL_SPACING*1.0f, NULL },
|
|
|
|
|
{ TRACK_4, +KB7_COL_SPACING*0.0f, NULL },
|
|
|
|
|
{ TRACK_5, +KB7_COL_SPACING*1.0f, NULL },
|
|
|
|
|
{ TRACK_6, +KB7_COL_SPACING*2.0f, NULL },
|
|
|
|
|
{ TRACK_7, +KB7_COL_SPACING*3.0f, NULL },
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
{ // m_iInputColumn[NUM_GameController][NUM_GameButton]
|
|
|
|
|
{ 0, 1, 2, 3, 4, 5, 6, Style::END_MAPPING },
|
|
|
|
|
{ 0, 1, 2, 3, 4, 5, 6, Style::END_MAPPING },
|
|
|
|
|
},
|
|
|
|
|
{ // m_iColumnDrawOrder[MAX_COLS_PER_PLAYER];
|
|
|
|
|
0,1,2,3,4,5,6
|
|
|
|
|
},
|
|
|
|
|
true, // m_bNeedsZoomOutWith2Players
|
|
|
|
|
false, // m_bCanUseBeginnerHelper
|
|
|
|
|
false, // m_bLockDifficulties
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
static const Style *g_apGame_KB7_Styles[] =
|
|
|
|
|
{
|
|
|
|
|
&g_Style_KB7_Single,
|
|
|
|
|
&g_Style_KB7_Versus,
|
|
|
|
|
NULL
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
static const Game g_Game_KB7 =
|
|
|
|
|
{
|
|
|
|
|
"kb7", // m_szName
|
|
|
|
|
g_apGame_KB7_Styles, // m_apStyles
|
|
|
|
|
true, // m_bCountNotesSeparately
|
|
|
|
|
false, // m_bAllowHopos
|
|
|
|
|
{ // m_InputScheme
|
|
|
|
|
"kb7", // m_szName
|
|
|
|
|
NUM_KB7_BUTTONS, // m_iButtonsPerController
|
|
|
|
|
{ // m_szButtonNames
|
|
|
|
|
{ "Key1", GameButton_Invalid },
|
|
|
|
|
{ "Key2", GAME_BUTTON_LEFT },
|
|
|
|
|
{ "Key3", GAME_BUTTON_DOWN },
|
|
|
|
|
{ "Key4", GameButton_Invalid },
|
|
|
|
|
{ "Key5", GAME_BUTTON_UP },
|
|
|
|
|
{ "Key6", GAME_BUTTON_RIGHT },
|
|
|
|
|
{ "Key7", GameButton_Invalid },
|
|
|
|
|
},
|
|
|
|
|
&g_AutoKeyMappings_KB7
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
{ GameButtonType_Step },
|
|
|
|
|
{ GameButtonType_Step },
|
|
|
|
|
{ GameButtonType_Step },
|
|
|
|
|
{ GameButtonType_Step },
|
|
|
|
|
{ GameButtonType_Step },
|
|
|
|
|
{ GameButtonType_Step },
|
|
|
|
|
{ GameButtonType_Step },
|
|
|
|
|
},
|
|
|
|
|
TNS_W1, // m_mapW1To
|
|
|
|
|
TNS_W2, // m_mapW2To
|
|
|
|
|
TNS_W3, // m_mapW3To
|
|
|
|
|
TNS_W4, // m_mapW4To
|
|
|
|
|
TNS_W5, // m_mapW5To
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
//ThemeMetric<int> EZ2_COL_SPACING ("ColumnSpacing","EZ2");
|
|
|
|
|
static const int EZ2_COL_SPACING = 46;
|
|
|
|
|
// do you even need this if they're the same now -aj
|
|
|
|
|
//ThemeMetric<int> EZ2__REAL_COL_SPACING ("ColumnSpacing","EZ2Real");
|
|
|
|
|
static const int EZ2_REAL_COL_SPACING = 46;
|
|
|
|
|
static const Style g_Style_Ez2_Single =
|
|
|
|
|
{ // STYLE_EZ2_SINGLE
|
|
|
|
|
true, // m_bUsedForGameplay
|
|
|
|
|
true, // m_bUsedForEdit
|
|
|
|
|
false, // m_bUsedForDemonstration
|
|
|
|
|
true, // m_bUsedForHowToPlay
|
|
|
|
|
"single", // m_szName
|
|
|
|
|
StepsType_ez2_single, // m_StepsType
|
|
|
|
|
StyleType_OnePlayerOneSide, // m_StyleType
|
|
|
|
|
5, // m_iColsPerPlayer
|
|
|
|
|
{ // m_ColumnInfo[NUM_PLAYERS][MAX_COLS_PER_PLAYER];
|
|
|
|
|
{ // PLAYER_1
|
|
|
|
|
{ TRACK_1, -EZ2_COL_SPACING*2.0f, NULL },
|
|
|
|
|
{ TRACK_2, -EZ2_COL_SPACING*1.0f, NULL },
|
|
|
|
|
{ TRACK_3, +EZ2_COL_SPACING*0.0f, NULL },
|
|
|
|
|
{ TRACK_4, +EZ2_COL_SPACING*1.0f, NULL },
|
|
|
|
|
{ TRACK_5, +EZ2_COL_SPACING*2.0f, NULL },
|
|
|
|
|
},
|
|
|
|
|
{ // PLAYER_2
|
|
|
|
|
{ TRACK_1, -EZ2_COL_SPACING*2.0f, NULL },
|
|
|
|
|
{ TRACK_2, -EZ2_COL_SPACING*1.0f, NULL },
|
|
|
|
|
{ TRACK_3, +EZ2_COL_SPACING*0.0f, NULL },
|
|
|
|
|
{ TRACK_4, +EZ2_COL_SPACING*1.0f, NULL },
|
|
|
|
|
{ TRACK_5, +EZ2_COL_SPACING*2.0f, NULL },
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
{ // m_iInputColumn[NUM_GameController][NUM_GameButton]
|
|
|
|
|
{ 0, 4, 2, 1, 3, Style::END_MAPPING },
|
|
|
|
|
{ 0, 4, 2, 1, 3, Style::END_MAPPING },
|
|
|
|
|
},
|
|
|
|
|
{ // m_iColumnDrawOrder[MAX_COLS_PER_PLAYER];
|
|
|
|
|
2,0,4,1,3 // This should be from back to front: Down, UpLeft, UpRight, Upper Left Hand, Upper Right Hand
|
|
|
|
|
},
|
|
|
|
|
false, // m_bNeedsZoomOutWith2Players
|
|
|
|
|
false, // m_bCanUseBeginnerHelper
|
|
|
|
|
false, // m_bLockDifficulties
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
static const Style g_Style_Ez2_Real =
|
|
|
|
|
{ // STYLE_EZ2_REAL
|
|
|
|
|
true, // m_bUsedForGameplay
|
|
|
|
|
true, // m_bUsedForEdit
|
|
|
|
|
false, // m_bUsedForDemonstration
|
|
|
|
|
false, // m_bUsedForHowToPlay
|
|
|
|
|
"real", // m_szName
|
|
|
|
|
StepsType_ez2_real, // m_StepsType
|
|
|
|
|
StyleType_OnePlayerOneSide, // m_StyleType
|
|
|
|
|
7, // m_iColsPerPlayer
|
|
|
|
|
{ // m_ColumnInfo[NUM_PLAYERS][MAX_COLS_PER_PLAYER];
|
|
|
|
|
{ // PLAYER_1
|
|
|
|
|
{ TRACK_1, -EZ2_REAL_COL_SPACING*2.3f, NULL },
|
|
|
|
|
{ TRACK_2, -EZ2_REAL_COL_SPACING*1.6f, NULL },
|
|
|
|
|
{ TRACK_3, -EZ2_REAL_COL_SPACING*0.9f, NULL },
|
|
|
|
|
{ TRACK_4, +EZ2_REAL_COL_SPACING*0.0f, NULL },
|
|
|
|
|
{ TRACK_5, +EZ2_REAL_COL_SPACING*0.9f, NULL },
|
|
|
|
|
{ TRACK_6, +EZ2_REAL_COL_SPACING*1.6f, NULL },
|
|
|
|
|
{ TRACK_7, +EZ2_REAL_COL_SPACING*2.3f, NULL },
|
|
|
|
|
},
|
|
|
|
|
{ // PLAYER_2
|
|
|
|
|
{ TRACK_1, -EZ2_REAL_COL_SPACING*2.3f, NULL },
|
|
|
|
|
{ TRACK_2, -EZ2_REAL_COL_SPACING*1.6f, NULL },
|
|
|
|
|
{ TRACK_3, -EZ2_REAL_COL_SPACING*0.9f, NULL },
|
|
|
|
|
{ TRACK_4, +EZ2_REAL_COL_SPACING*0.0f, NULL },
|
|
|
|
|
{ TRACK_5, +EZ2_REAL_COL_SPACING*0.9f, NULL },
|
|
|
|
|
{ TRACK_6, +EZ2_REAL_COL_SPACING*1.6f, NULL },
|
|
|
|
|
{ TRACK_7, +EZ2_REAL_COL_SPACING*2.3f, NULL },
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
{ // m_iInputColumn[NUM_GameController][NUM_GameButton]
|
|
|
|
|
{ 0, 6, 3, 2, 4, 1, 5, Style::END_MAPPING },
|
|
|
|
|
{ 0, 6, 3, 2, 4, 1, 5, Style::END_MAPPING },
|
|
|
|
|
},
|
|
|
|
|
{ // m_iColumnDrawOrder[MAX_COLS_PER_PLAYER];
|
|
|
|
|
3,0,6,1,5,2,4 // This should be from back to front: Down, UpLeft, UpRight, Lower Left Hand, Lower Right Hand, Upper Left Hand, Upper Right Hand
|
|
|
|
|
},
|
|
|
|
|
false, // m_bNeedsZoomOutWith2Players
|
|
|
|
|
false, // m_bCanUseBeginnerHelper
|
|
|
|
|
false, // m_bLockDifficulties
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
static const Style g_Style_Ez2_Single_Versus =
|
|
|
|
|
{ // STYLE_EZ2_SINGLE_VERSUS
|
|
|
|
|
true, // m_bUsedForGameplay
|
|
|
|
|
true, // m_bUsedForEdit
|
|
|
|
|
true, // m_bUsedForDemonstration
|
|
|
|
|
false, // m_bUsedForHowToPlay
|
|
|
|
|
"versus", // m_szName
|
|
|
|
|
StepsType_ez2_single, // m_StepsType
|
|
|
|
|
StyleType_TwoPlayersTwoSides, // m_StyleType
|
|
|
|
|
5, // m_iColsPerPlayer
|
|
|
|
|
{ // m_ColumnInfo[NUM_PLAYERS][MAX_COLS_PER_PLAYER];
|
|
|
|
|
{ // PLAYER_1
|
|
|
|
|
{ TRACK_1, -EZ2_COL_SPACING*2.0f, NULL },
|
|
|
|
|
{ TRACK_2, -EZ2_COL_SPACING*1.0f, NULL },
|
|
|
|
|
{ TRACK_3, +EZ2_COL_SPACING*0.0f, NULL },
|
|
|
|
|
{ TRACK_4, +EZ2_COL_SPACING*1.0f, NULL },
|
|
|
|
|
{ TRACK_5, +EZ2_COL_SPACING*2.0f, NULL },
|
|
|
|
|
},
|
|
|
|
|
{ // PLAYER_2
|
|
|
|
|
{ TRACK_1, -EZ2_COL_SPACING*2.0f, NULL },
|
|
|
|
|
{ TRACK_2, -EZ2_COL_SPACING*1.0f, NULL },
|
|
|
|
|
{ TRACK_3, +EZ2_COL_SPACING*0.0f, NULL },
|
|
|
|
|
{ TRACK_4, +EZ2_COL_SPACING*1.0f, NULL },
|
|
|
|
|
{ TRACK_5, +EZ2_COL_SPACING*2.0f, NULL },
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
{ // m_iInputColumn[NUM_GameController][NUM_GameButton]
|
|
|
|
|
{ 0, 4, 2, 1, 3, Style::END_MAPPING },
|
|
|
|
|
{ 0, 4, 2, 1, 3, Style::END_MAPPING },
|
|
|
|
|
},
|
|
|
|
|
{ // m_iColumnDrawOrder[MAX_COLS_PER_PLAYER];
|
|
|
|
|
2,0,4,1,3 // This should be from back to front: Down, UpLeft, UpRight, Upper Left Hand, Upper Right Hand
|
|
|
|
|
},
|
|
|
|
|
false, // m_bNeedsZoomOutWith2Players
|
|
|
|
|
false, // m_bCanUseBeginnerHelper
|
|
|
|
|
false, // m_bLockDifficulties
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
static const Style g_Style_Ez2_Real_Versus =
|
|
|
|
|
{ // STYLE_EZ2_REAL_VERSUS
|
|
|
|
|
true, // m_bUsedForGameplay
|
|
|
|
|
true, // m_bUsedForEdit
|
|
|
|
|
false, // m_bUsedForDemonstration
|
|
|
|
|
false, // m_bUsedForHowToPlay
|
|
|
|
|
"versusReal", // m_szName
|
|
|
|
|
StepsType_ez2_real, // m_StepsType
|
|
|
|
|
StyleType_TwoPlayersTwoSides, // m_StyleType
|
|
|
|
|
7, // m_iColsPerPlayer
|
|
|
|
|
{ // m_ColumnInfo[NUM_PLAYERS][MAX_COLS_PER_PLAYER];
|
|
|
|
|
{ // PLAYER_1
|
|
|
|
|
{ TRACK_1, -EZ2_REAL_COL_SPACING*2.3f, NULL },
|
|
|
|
|
{ TRACK_2, -EZ2_REAL_COL_SPACING*1.6f, NULL },
|
|
|
|
|
{ TRACK_3, -EZ2_REAL_COL_SPACING*0.9f, NULL },
|
|
|
|
|
{ TRACK_4, +EZ2_REAL_COL_SPACING*0.0f, NULL },
|
|
|
|
|
{ TRACK_5, +EZ2_REAL_COL_SPACING*0.9f, NULL },
|
|
|
|
|
{ TRACK_6, +EZ2_REAL_COL_SPACING*1.6f, NULL },
|
|
|
|
|
{ TRACK_7, +EZ2_REAL_COL_SPACING*2.3f, NULL },
|
|
|
|
|
},
|
|
|
|
|
{ // PLAYER_2
|
|
|
|
|
{ TRACK_1, -EZ2_REAL_COL_SPACING*2.3f, NULL },
|
|
|
|
|
{ TRACK_2, -EZ2_REAL_COL_SPACING*1.6f, NULL },
|
|
|
|
|
{ TRACK_3, -EZ2_REAL_COL_SPACING*0.9f, NULL },
|
|
|
|
|
{ TRACK_4, +EZ2_REAL_COL_SPACING*0.0f, NULL },
|
|
|
|
|
{ TRACK_5, +EZ2_REAL_COL_SPACING*0.9f, NULL },
|
|
|
|
|
{ TRACK_6, +EZ2_REAL_COL_SPACING*1.6f, NULL },
|
|
|
|
|
{ TRACK_7, +EZ2_REAL_COL_SPACING*2.3f, NULL },
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
{ // m_iInputColumn[NUM_GameController][NUM_GameButton]
|
|
|
|
|
{ 0, 6, 3, 2, 4, 1, 5, Style::END_MAPPING },
|
|
|
|
|
{ 0, 6, 3, 2, 4, 1, 5, Style::END_MAPPING },
|
|
|
|
|
},
|
|
|
|
|
{ // m_iColumnDrawOrder[MAX_COLS_PER_PLAYER];
|
|
|
|
|
3,0,6,2,4,1,5 // This should be from back to front: Down, UpLeft, UpRight, Lower Left Hand, Lower Right Hand, Upper Left Hand, Upper Right Hand
|
|
|
|
|
},
|
|
|
|
|
false, // m_bNeedsZoomOutWith2Players
|
|
|
|
|
false, // m_bCanUseBeginnerHelper
|
|
|
|
|
false, // m_bLockDifficulties
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
static const Style g_Style_Ez2_Double =
|
|
|
|
|
{ // STYLE_EZ2_DOUBLE
|
|
|
|
|
true, // m_bUsedForGameplay
|
|
|
|
|
true, // m_bUsedForEdit
|
|
|
|
|
false, // m_bUsedForDemonstration
|
|
|
|
|
false, // m_bUsedForHowToPlay
|
|
|
|
|
"double", // m_szName
|
|
|
|
|
StepsType_ez2_double, // m_StepsType
|
|
|
|
|
StyleType_OnePlayerTwoSides, // m_StyleType
|
|
|
|
|
10, // m_iColsPerPlayer
|
|
|
|
|
{ // m_ColumnInfo[NUM_PLAYERS][MAX_COLS_PER_PLAYER];
|
|
|
|
|
{ // PLAYER_1
|
|
|
|
|
{ TRACK_1, -EZ2_COL_SPACING*4.5f, NULL },
|
|
|
|
|
{ TRACK_2, -EZ2_COL_SPACING*3.5f, NULL },
|
|
|
|
|
{ TRACK_3, -EZ2_COL_SPACING*2.5f, NULL },
|
|
|
|
|
{ TRACK_4, -EZ2_COL_SPACING*1.5f, NULL },
|
|
|
|
|
{ TRACK_5, -EZ2_COL_SPACING*0.5f, NULL },
|
|
|
|
|
{ TRACK_6, +EZ2_COL_SPACING*0.5f, NULL },
|
|
|
|
|
{ TRACK_7, +EZ2_COL_SPACING*1.5f, NULL },
|
|
|
|
|
{ TRACK_8, +EZ2_COL_SPACING*2.5f, NULL },
|
|
|
|
|
{ TRACK_9, +EZ2_COL_SPACING*3.5f, NULL },
|
|
|
|
|
{ TRACK_10, +EZ2_COL_SPACING*4.5f, NULL },
|
|
|
|
|
},
|
|
|
|
|
{ // PLAYER_2
|
|
|
|
|
{ TRACK_1, -EZ2_COL_SPACING*4.5f, NULL },
|
|
|
|
|
{ TRACK_2, -EZ2_COL_SPACING*3.5f, NULL },
|
|
|
|
|
{ TRACK_3, -EZ2_COL_SPACING*2.5f, NULL },
|
|
|
|
|
{ TRACK_4, -EZ2_COL_SPACING*1.5f, NULL },
|
|
|
|
|
{ TRACK_5, -EZ2_COL_SPACING*0.5f, NULL },
|
|
|
|
|
{ TRACK_6, +EZ2_COL_SPACING*0.5f, NULL },
|
|
|
|
|
{ TRACK_7, +EZ2_COL_SPACING*1.5f, NULL },
|
|
|
|
|
{ TRACK_8, +EZ2_COL_SPACING*2.5f, NULL },
|
|
|
|
|
{ TRACK_9, +EZ2_COL_SPACING*3.5f, NULL },
|
|
|
|
|
{ TRACK_10, +EZ2_COL_SPACING*4.5f, NULL },
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
{ // m_iInputColumn[NUM_GameController][NUM_GameButton]
|
|
|
|
|
{ 0, 4, 2, 1, 3, Style::END_MAPPING },
|
|
|
|
|
{ 5, 9, 7, 6, 8, Style::END_MAPPING },
|
|
|
|
|
},
|
|
|
|
|
{ // m_iColumnDrawOrder[MAX_COLS_PER_PLAYER];
|
|
|
|
|
2,0,4,1,3,7,5,9,6,8 // This should be from back to front: Down, UpLeft, UpRight, Upper Left Hand, Upper Right Hand
|
|
|
|
|
},
|
|
|
|
|
false, // m_bNeedsZoomOutWith2Players
|
|
|
|
|
false, // m_bCanUseBeginnerHelper
|
|
|
|
|
false, // m_bLockDifficulties
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
static const Style *g_apGame_Ez2_Styles[] =
|
|
|
|
|
{
|
|
|
|
|
&g_Style_Ez2_Single,
|
|
|
|
|
&g_Style_Ez2_Real,
|
|
|
|
|
&g_Style_Ez2_Single_Versus,
|
|
|
|
|
&g_Style_Ez2_Real_Versus,
|
|
|
|
|
&g_Style_Ez2_Double,
|
|
|
|
|
NULL
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
static const AutoMappings g_AutoKeyMappings_Ez2 = AutoMappings (
|
|
|
|
|
"",
|
|
|
|
|
"",
|
|
|
|
|
"",
|
|
|
|
|
AutoMappingEntry( 0, KEY_Cz, EZ2_BUTTON_FOOTUPLEFT, false ),
|
|
|
|
|
AutoMappingEntry( 0, KEY_Cb, EZ2_BUTTON_FOOTUPRIGHT, false ),
|
|
|
|
|
AutoMappingEntry( 0, KEY_Cc, EZ2_BUTTON_FOOTDOWN, false ),
|
|
|
|
|
AutoMappingEntry( 0, KEY_Cx, EZ2_BUTTON_HANDUPLEFT, false ),
|
|
|
|
|
AutoMappingEntry( 0, KEY_Cv, EZ2_BUTTON_HANDUPRIGHT, false ),
|
|
|
|
|
AutoMappingEntry( 0, KEY_Cs, EZ2_BUTTON_HANDLRLEFT, false ),
|
|
|
|
|
AutoMappingEntry( 0, KEY_Cf, EZ2_BUTTON_HANDLRRIGHT, false )
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
static const Game g_Game_Ez2 =
|
|
|
|
|
{
|
|
|
|
|
"ez2", // m_szName
|
|
|
|
|
g_apGame_Ez2_Styles, // m_apStyles
|
|
|
|
|
true, // m_bCountNotesSeparately
|
|
|
|
|
false, // m_bAllowHopos
|
|
|
|
|
{ // m_InputScheme
|
|
|
|
|
"ez2", // m_szName
|
|
|
|
|
NUM_EZ2_BUTTONS, // m_iButtonsPerController
|
|
|
|
|
{ // m_szButtonNames
|
|
|
|
|
{ "FootUpLeft", GAME_BUTTON_UP },
|
|
|
|
|
{ "FootUpRight", GAME_BUTTON_DOWN },
|
|
|
|
|
{ "FootDown", GAME_BUTTON_START },
|
|
|
|
|
{ "HandUpLeft", GAME_BUTTON_LEFT },
|
|
|
|
|
{ "HandUpRight", GAME_BUTTON_RIGHT },
|
|
|
|
|
{ "HandLrLeft", GameButton_Invalid },
|
|
|
|
|
{ "HandLrRight", GameButton_Invalid },
|
|
|
|
|
},
|
|
|
|
|
&g_AutoKeyMappings_Ez2
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
{ GameButtonType_Step },
|
|
|
|
|
{ GameButtonType_Step },
|
|
|
|
|
{ GameButtonType_Step },
|
|
|
|
|
{ GameButtonType_Step },
|
|
|
|
|
{ GameButtonType_Step },
|
|
|
|
|
{ GameButtonType_Step },
|
|
|
|
|
{ GameButtonType_Step },
|
|
|
|
|
},
|
|
|
|
|
TNS_W2, // m_mapW1To
|
|
|
|
|
TNS_W2, // m_mapW2To
|
|
|
|
|
TNS_W2, // m_mapW3To
|
|
|
|
|
TNS_W4, // m_mapW4To
|
|
|
|
|
TNS_Miss, // m_mapW5To
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
//ThemeMetric<int> PARA_COL_SPACING ("ColumnSpacing","Para");
|
|
|
|
|
static const int PARA_COL_SPACING = 54;
|
|
|
|
|
|
|
|
|
|
static const Style g_Style_Para_Single =
|
|
|
|
|
{ // STYLE_PARA_SINGLE
|
|
|
|
|
true, // m_bUsedForGameplay
|
|
|
|
|
true, // m_bUsedForEdit
|
|
|
|
|
true, // m_bUsedForDemonstration
|
|
|
|
|
true, // m_bUsedForHowToPlay
|
|
|
|
|
"single", // m_szName
|
|
|
|
|
StepsType_para_single, // m_StepsType
|
|
|
|
|
StyleType_OnePlayerOneSide, // m_StyleType
|
|
|
|
|
5, // m_iColsPerPlayer
|
|
|
|
|
{ // m_ColumnInfo[NUM_PLAYERS][MAX_COLS_PER_PLAYER];
|
|
|
|
|
{ // PLAYER_1
|
|
|
|
|
{ TRACK_1, -PARA_COL_SPACING*2.0f, NULL },
|
|
|
|
|
{ TRACK_2, -PARA_COL_SPACING*1.0f, NULL },
|
|
|
|
|
{ TRACK_3, +PARA_COL_SPACING*0.0f, NULL },
|
|
|
|
|
{ TRACK_4, +PARA_COL_SPACING*1.0f, NULL },
|
|
|
|
|
{ TRACK_5, +PARA_COL_SPACING*2.0f, NULL },
|
|
|
|
|
},
|
|
|
|
|
{ // PLAYER_2
|
|
|
|
|
{ TRACK_1, -PARA_COL_SPACING*2.0f, NULL },
|
|
|
|
|
{ TRACK_2, -PARA_COL_SPACING*1.0f, NULL },
|
|
|
|
|
{ TRACK_3, +PARA_COL_SPACING*0.0f, NULL },
|
|
|
|
|
{ TRACK_4, +PARA_COL_SPACING*1.0f, NULL },
|
|
|
|
|
{ TRACK_5, +PARA_COL_SPACING*2.0f, NULL },
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
{ // m_iInputColumn[NUM_GameController][NUM_GameButton]
|
|
|
|
|
{ 0, 1, 2, 3, 4, Style::END_MAPPING },
|
|
|
|
|
{ 0, 1, 2, 3, 4, Style::END_MAPPING },
|
|
|
|
|
},
|
|
|
|
|
{ // m_iColumnDrawOrder[MAX_COLS_PER_PLAYER];
|
|
|
|
|
2,0,4,1,3
|
|
|
|
|
},
|
|
|
|
|
false, // m_bNeedsZoomOutWith2Players
|
|
|
|
|
false, // m_bCanUseBeginnerHelper
|
|
|
|
|
false, // m_bLockDifficulties
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
static const Style g_Style_Para_Versus =
|
|
|
|
|
{ // STYLE_PARA_VERSUS
|
|
|
|
|
true, // m_bUsedForGameplay
|
|
|
|
|
true, // m_bUsedForEdit
|
|
|
|
|
true, // m_bUsedForDemonstration
|
|
|
|
|
true, // m_bUsedForHowToPlay
|
|
|
|
|
"versus", // m_szName
|
|
|
|
|
StepsType_para_single, // m_StepsType
|
|
|
|
|
StyleType_TwoPlayersTwoSides, // m_StyleType
|
|
|
|
|
5, // m_iColsPerPlayer
|
|
|
|
|
{ // m_ColumnInfo[NUM_PLAYERS][MAX_COLS_PER_PLAYER];
|
|
|
|
|
{ // PLAYER_1
|
|
|
|
|
{ TRACK_1, -PARA_COL_SPACING*2.0f, NULL },
|
|
|
|
|
{ TRACK_2, -PARA_COL_SPACING*1.0f, NULL },
|
|
|
|
|
{ TRACK_3, +PARA_COL_SPACING*0.0f, NULL },
|
|
|
|
|
{ TRACK_4, +PARA_COL_SPACING*1.0f, NULL },
|
|
|
|
|
{ TRACK_5, +PARA_COL_SPACING*2.0f, NULL },
|
|
|
|
|
},
|
|
|
|
|
{ // PLAYER_2
|
|
|
|
|
{ TRACK_1, -PARA_COL_SPACING*2.0f, NULL },
|
|
|
|
|
{ TRACK_2, -PARA_COL_SPACING*1.0f, NULL },
|
|
|
|
|
{ TRACK_3, +PARA_COL_SPACING*0.0f, NULL },
|
|
|
|
|
{ TRACK_4, +PARA_COL_SPACING*1.0f, NULL },
|
|
|
|
|
{ TRACK_5, +PARA_COL_SPACING*2.0f, NULL },
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
{ // m_iInputColumn[NUM_GameController][NUM_GameButton]
|
|
|
|
|
{ 0, 1, 2, 3, 4, Style::END_MAPPING },
|
|
|
|
|
{ 0, 1, 2, 3, 4, Style::END_MAPPING },
|
|
|
|
|
},
|
|
|
|
|
{ // m_iColumnDrawOrder[MAX_COLS_PER_PLAYER];
|
|
|
|
|
2,0,4,1,3
|
|
|
|
|
},
|
|
|
|
|
false, // m_bNeedsZoomOutWith2Players
|
|
|
|
|
false, // m_bCanUseBeginnerHelper
|
|
|
|
|
false, // m_bLockDifficulties
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
static const Style *g_apGame_Para_Styles[] =
|
|
|
|
|
{
|
|
|
|
|
&g_Style_Para_Single,
|
|
|
|
|
&g_Style_Para_Versus,
|
|
|
|
|
NULL
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
static const AutoMappings g_AutoKeyMappings_Para = AutoMappings (
|
|
|
|
|
"",
|
|
|
|
|
"",
|
|
|
|
|
"",
|
|
|
|
|
AutoMappingEntry( 0, KEY_Cz, PARA_BUTTON_LEFT, false ),
|
|
|
|
|
AutoMappingEntry( 0, KEY_Cx, PARA_BUTTON_UPLEFT, false ),
|
|
|
|
|
AutoMappingEntry( 0, KEY_Cc, PARA_BUTTON_UP, false ),
|
|
|
|
|
AutoMappingEntry( 0, KEY_Cv, PARA_BUTTON_UPRIGHT, false ),
|
|
|
|
|
AutoMappingEntry( 0, KEY_Cb, PARA_BUTTON_RIGHT, false )
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
static const Game g_Game_Para =
|
|
|
|
|
{
|
|
|
|
|
"para", // m_szName
|
|
|
|
|
g_apGame_Para_Styles, // m_apStyles
|
|
|
|
|
false, // m_bCountNotesSeparately
|
|
|
|
|
false, // m_bAllowHopos
|
|
|
|
|
{ // m_InputScheme
|
|
|
|
|
"para", // m_szName
|
|
|
|
|
NUM_PARA_BUTTONS, // m_iButtonsPerController
|
|
|
|
|
{ // m_szButtonNames
|
|
|
|
|
{ "Left", GAME_BUTTON_LEFT },
|
|
|
|
|
{ "UpLeft", GAME_BUTTON_DOWN },
|
|
|
|
|
{ "Up", GameButton_Invalid },
|
|
|
|
|
{ "UpRight", GAME_BUTTON_UP },
|
|
|
|
|
{ "Right", GAME_BUTTON_RIGHT },
|
|
|
|
|
},
|
|
|
|
|
&g_AutoKeyMappings_Para
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
{ GameButtonType_Step },
|
|
|
|
|
{ GameButtonType_Step },
|
|
|
|
|
{ GameButtonType_Step },
|
|
|
|
|
{ GameButtonType_Step },
|
|
|
|
|
{ GameButtonType_Step },
|
|
|
|
|
},
|
|
|
|
|
TNS_W1, // m_mapW1To
|
|
|
|
|
TNS_W2, // m_mapW2To
|
|
|
|
|
TNS_W3, // m_mapW3To
|
|
|
|
|
TNS_W4, // m_mapW4To
|
|
|
|
|
TNS_W5, // m_mapW5To
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
//ThemeMetric<int> DS3DDX_COL_SPACING ("ColumnSpacing","DS3DDX");
|
|
|
|
|
static const int DS3DDX_COL_SPACING = 46;
|
|
|
|
|
static const Style g_Style_DS3DDX_Single =
|
|
|
|
|
{ // STYLE_DS3DDX_SINGLE
|
|
|
|
|
true, // m_bUsedForGameplay
|
|
|
|
|
true, // m_bUsedForEdit
|
|
|
|
|
true, // m_bUsedForDemonstration
|
|
|
|
|
true, // m_bUsedForHowToPlay
|
|
|
|
|
"single", // m_szName
|
|
|
|
|
StepsType_ds3ddx_single, // m_StepsType
|
|
|
|
|
StyleType_OnePlayerOneSide, // m_StyleType
|
|
|
|
|
8, // m_iColsPerPlayer
|
|
|
|
|
{ // m_ColumnInfo[NUM_PLAYERS][MAX_COLS_PER_PLAYER];
|
|
|
|
|
{ // PLAYER_1
|
|
|
|
|
{ TRACK_1, -DS3DDX_COL_SPACING*3.0f, NULL },
|
|
|
|
|
{ TRACK_2, -DS3DDX_COL_SPACING*2.0f, NULL },
|
|
|
|
|
{ TRACK_3, -DS3DDX_COL_SPACING*1.0f, NULL },
|
|
|
|
|
{ TRACK_4, -DS3DDX_COL_SPACING*0.0f, NULL },
|
|
|
|
|
{ TRACK_5, +DS3DDX_COL_SPACING*0.0f, NULL },
|
|
|
|
|
{ TRACK_6, +DS3DDX_COL_SPACING*1.0f, NULL },
|
|
|
|
|
{ TRACK_7, +DS3DDX_COL_SPACING*2.0f, NULL },
|
|
|
|
|
{ TRACK_8, +DS3DDX_COL_SPACING*3.0f , NULL},
|
|
|
|
|
},
|
|
|
|
|
{ // PLAYER_2
|
|
|
|
|
{ TRACK_1, -DS3DDX_COL_SPACING*3.0f, NULL },
|
|
|
|
|
{ TRACK_2, -DS3DDX_COL_SPACING*2.0f, NULL },
|
|
|
|
|
{ TRACK_3, -DS3DDX_COL_SPACING*1.0f, NULL },
|
|
|
|
|
{ TRACK_4, -DS3DDX_COL_SPACING*0.0f, NULL },
|
|
|
|
|
{ TRACK_5, +DS3DDX_COL_SPACING*0.0f, NULL },
|
|
|
|
|
{ TRACK_6, +DS3DDX_COL_SPACING*1.0f, NULL },
|
|
|
|
|
{ TRACK_7, +DS3DDX_COL_SPACING*2.0f, NULL },
|
|
|
|
|
{ TRACK_8, +DS3DDX_COL_SPACING*3.0f, NULL },
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
{ // m_iInputColumn[NUM_GameController][NUM_GameButton]
|
|
|
|
|
{ 0, 1, 2, 3, 4, 5, 6, 7, Style::END_MAPPING },
|
|
|
|
|
{ 0, 1, 2, 3, 4, 5, 6, 7, Style::END_MAPPING },
|
|
|
|
|
},
|
|
|
|
|
{ // m_iColumnDrawOrder[MAX_COLS_PER_PLAYER];
|
|
|
|
|
0,1,2,3,4,5,6,7
|
|
|
|
|
},
|
|
|
|
|
false, // m_bNeedsZoomOutWith2Players
|
|
|
|
|
false, // m_bCanUseBeginnerHelper
|
|
|
|
|
false, // m_bLockDifficulties
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
static const Style *g_apGame_DS3DDX_Styles[] =
|
|
|
|
|
{
|
|
|
|
|
&g_Style_DS3DDX_Single,
|
|
|
|
|
NULL
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
static const AutoMappings g_AutoKeyMappings_DS3DDX = AutoMappings (
|
|
|
|
|
"",
|
|
|
|
|
"",
|
|
|
|
|
"",
|
|
|
|
|
AutoMappingEntry( 0, KEY_Ca, DS3DDX_BUTTON_HANDLEFT, false ),
|
|
|
|
|
AutoMappingEntry( 0, KEY_Cz, DS3DDX_BUTTON_FOOTDOWNLEFT, false ),
|
|
|
|
|
AutoMappingEntry( 0, KEY_Cq, DS3DDX_BUTTON_FOOTUPLEFT, false ),
|
|
|
|
|
AutoMappingEntry( 0, KEY_Cw, DS3DDX_BUTTON_HANDUP, false ),
|
|
|
|
|
AutoMappingEntry( 0, KEY_Cx, DS3DDX_BUTTON_HANDDOWN, false ),
|
|
|
|
|
AutoMappingEntry( 0, KEY_Ce, DS3DDX_BUTTON_FOOTUPRIGHT, false ),
|
|
|
|
|
AutoMappingEntry( 0, KEY_Cc, DS3DDX_BUTTON_FOOTDOWNRIGHT, false ),
|
|
|
|
|
AutoMappingEntry( 0, KEY_Cd, DS3DDX_BUTTON_HANDRIGHT, false )
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
static const Game g_Game_DS3DDX =
|
|
|
|
|
{
|
|
|
|
|
"ds3ddx", // m_szName
|
|
|
|
|
g_apGame_DS3DDX_Styles, // m_apStyles
|
|
|
|
|
false, // m_bCountNotesSeparately
|
|
|
|
|
false, // m_bAllowHopos
|
|
|
|
|
{ // m_InputScheme
|
|
|
|
|
"ds3ddx", // m_szName
|
|
|
|
|
NUM_DS3DDX_BUTTONS, // m_iButtonsPerController
|
|
|
|
|
{ // m_szButtonNames
|
|
|
|
|
{ "HandLeft", GAME_BUTTON_LEFT },
|
|
|
|
|
{ "FootDownLeft", GameButton_Invalid },
|
|
|
|
|
{ "FootUpLeft", GameButton_Invalid },
|
|
|
|
|
{ "HandUp", GAME_BUTTON_UP },
|
|
|
|
|
{ "HandDown", GAME_BUTTON_DOWN },
|
|
|
|
|
{ "FootUpRight", GameButton_Invalid },
|
|
|
|
|
{ "FootDownRight", GameButton_Invalid },
|
|
|
|
|
{ "HandRight", GAME_BUTTON_RIGHT },
|
|
|
|
|
},
|
|
|
|
|
&g_AutoKeyMappings_DS3DDX
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
{ GameButtonType_Step },
|
|
|
|
|
{ GameButtonType_Step },
|
|
|
|
|
{ GameButtonType_Step },
|
|
|
|
|
{ GameButtonType_Step },
|
|
|
|
|
{ GameButtonType_Step },
|
|
|
|
|
{ GameButtonType_Step },
|
|
|
|
|
{ GameButtonType_Step },
|
|
|
|
|
{ GameButtonType_Step },
|
|
|
|
|
},
|
|
|
|
|
TNS_W1, // m_mapW1To
|
|
|
|
|
TNS_W2, // m_mapW2To
|
|
|
|
|
TNS_W3, // m_mapW3To
|
|
|
|
|
TNS_W4, // m_mapW4To
|
|
|
|
|
TNS_W5, // m_mapW5To
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
//ThemeMetric<int> BEAT_COL_SPACING ("ColumnSpacing","Beat");
|
|
|
|
|
static const int BEAT_COL_SPACING = 34;
|
|
|
|
|
static const Style g_Style_Beat_Single5 =
|
|
|
|
|
{ // STYLE_BEAT_SINGLE5
|
|
|
|
|
true, // m_bUsedForGameplay
|
|
|
|
|
true, // m_bUsedForEdit
|
|
|
|
|
true, // m_bUsedForDemonstration
|
|
|
|
|
true, // m_bUsedForHowToPlay
|
|
|
|
|
"single5", // m_szName
|
|
|
|
|
StepsType_beat_single5, // m_StepsType
|
|
|
|
|
StyleType_OnePlayerOneSide, // m_StyleType
|
|
|
|
|
6, // m_iColsPerPlayer
|
|
|
|
|
{ // m_ColumnInfo[NUM_PLAYERS][MAX_COLS_PER_PLAYER];
|
|
|
|
|
{ // PLAYER_1
|
|
|
|
|
{ TRACK_1, -BEAT_COL_SPACING*2.5f, NULL },
|
|
|
|
|
{ TRACK_2, -BEAT_COL_SPACING*1.5f, NULL },
|
|
|
|
|
{ TRACK_3, -BEAT_COL_SPACING*0.5f, NULL },
|
|
|
|
|
{ TRACK_4, +BEAT_COL_SPACING*0.5f, NULL },
|
|
|
|
|
{ TRACK_5, +BEAT_COL_SPACING*1.5f, NULL },
|
|
|
|
|
{ TRACK_6, +BEAT_COL_SPACING*3.0f, "scratch" },
|
|
|
|
|
},
|
|
|
|
|
{ // PLAYER_2
|
|
|
|
|
{ TRACK_1, -BEAT_COL_SPACING*2.5f, NULL },
|
|
|
|
|
{ TRACK_2, -BEAT_COL_SPACING*1.5f, NULL },
|
|
|
|
|
{ TRACK_3, -BEAT_COL_SPACING*0.5f, NULL },
|
|
|
|
|
{ TRACK_4, +BEAT_COL_SPACING*0.5f, NULL },
|
|
|
|
|
{ TRACK_5, +BEAT_COL_SPACING*1.5f, NULL },
|
|
|
|
|
{ TRACK_6, +BEAT_COL_SPACING*3.0f, "scratch" },
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
{ // m_iInputColumn[NUM_GameController][NUM_GameButton]
|
|
|
|
|
{ 0, 1, 2, 3, 4, Style::NO_MAPPING, Style::NO_MAPPING, 5, 5, Style::END_MAPPING },
|
|
|
|
|
{ 0, 1, 2, 3, 4, Style::NO_MAPPING, Style::NO_MAPPING, 5, 5, Style::END_MAPPING }
|
|
|
|
|
},
|
|
|
|
|
{ // m_iColumnDrawOrder[MAX_COLS_PER_PLAYER];
|
|
|
|
|
0,1,2,3,4,5
|
|
|
|
|
},
|
|
|
|
|
false, // m_bNeedsZoomOutWith2Players
|
|
|
|
|
false, // m_bCanUseBeginnerHelper
|
|
|
|
|
false, // m_bLockDifficulties
|
|
|
|
|
};
|
|
|
|
|
|
2011-05-11 14:33:04 -04:00
|
|
|
static const Style g_Style_Beat_Versus5 =
|
|
|
|
|
{ // STYLE_BEAT_VERSUS
|
|
|
|
|
true, // m_bUsedForGameplay
|
|
|
|
|
false, // m_bUsedForEdit
|
|
|
|
|
true, // m_bUsedForDemonstration
|
|
|
|
|
false, // m_bUsedForHowToPlay
|
|
|
|
|
"versus", // m_szName
|
|
|
|
|
StepsType_beat_versus5, // m_StepsType
|
|
|
|
|
StyleType_TwoPlayersTwoSides, // m_StyleType
|
|
|
|
|
6, // m_iColsPerPlayer
|
|
|
|
|
{ // m_ColumnInfo[NUM_PLAYERS][MAX_COLS_PER_PLAYER];
|
|
|
|
|
{ // PLAYER_1
|
|
|
|
|
{ TRACK_1, -BEAT_COL_SPACING*2.5f, NULL },
|
|
|
|
|
{ TRACK_2, -BEAT_COL_SPACING*1.5f, NULL },
|
|
|
|
|
{ TRACK_3, -BEAT_COL_SPACING*0.5f, NULL },
|
|
|
|
|
{ TRACK_4, +BEAT_COL_SPACING*0.5f, NULL },
|
|
|
|
|
{ TRACK_5, +BEAT_COL_SPACING*1.5f, NULL },
|
|
|
|
|
{ TRACK_6, +BEAT_COL_SPACING*3.0f, "scratch" },
|
|
|
|
|
},
|
|
|
|
|
{ // PLAYER_2
|
|
|
|
|
{ TRACK_1, -BEAT_COL_SPACING*2.5f, NULL },
|
|
|
|
|
{ TRACK_2, -BEAT_COL_SPACING*1.5f, NULL },
|
|
|
|
|
{ TRACK_3, -BEAT_COL_SPACING*0.5f, NULL },
|
|
|
|
|
{ TRACK_4, +BEAT_COL_SPACING*0.5f, NULL },
|
|
|
|
|
{ TRACK_5, +BEAT_COL_SPACING*1.5f, NULL },
|
|
|
|
|
{ TRACK_6, +BEAT_COL_SPACING*3.0f, "scratch" },
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
{ // m_iInputColumn[NUM_GameController][NUM_GameButton]
|
|
|
|
|
{ 0, 1, 2, 3, 4, Style::NO_MAPPING, Style::NO_MAPPING, 5, 5, Style::END_MAPPING },
|
|
|
|
|
{ 0, 1, 2, 3, 4, Style::NO_MAPPING, Style::NO_MAPPING, 5, 5, Style::END_MAPPING }
|
|
|
|
|
},
|
|
|
|
|
{ // m_iColumnDrawOrder[MAX_COLS_PER_PLAYER];
|
|
|
|
|
0,1,2,3,4,5
|
|
|
|
|
},
|
|
|
|
|
false, // m_bNeedsZoomOutWith2Players
|
|
|
|
|
false, // m_bCanUseBeginnerHelper
|
|
|
|
|
false, // m_bLockDifficulties
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
static const Style g_Style_Beat_Double5 =
|
2011-03-17 01:47:30 -04:00
|
|
|
{ // STYLE_BEAT_DOUBLE
|
|
|
|
|
true, // m_bUsedForGameplay
|
|
|
|
|
true, // m_bUsedForEdit
|
|
|
|
|
false, // m_bUsedForDemonstration
|
|
|
|
|
false, // m_bUsedForHowToPlay
|
|
|
|
|
"double5", // m_szName
|
|
|
|
|
StepsType_beat_double5, // m_StepsType
|
|
|
|
|
StyleType_OnePlayerTwoSides, // m_StyleType
|
|
|
|
|
12, // m_iColsPerPlayer
|
|
|
|
|
{ // m_ColumnInfo[NUM_PLAYERS][MAX_COLS_PER_PLAYER];
|
|
|
|
|
{ // PLAYER_1
|
|
|
|
|
{ TRACK_1, -BEAT_COL_SPACING*6.0f, NULL },
|
|
|
|
|
{ TRACK_2, -BEAT_COL_SPACING*5.0f, NULL },
|
|
|
|
|
{ TRACK_3, -BEAT_COL_SPACING*4.0f, NULL },
|
|
|
|
|
{ TRACK_4, -BEAT_COL_SPACING*3.0f, NULL },
|
|
|
|
|
{ TRACK_5, -BEAT_COL_SPACING*2.0f, NULL },
|
|
|
|
|
{ TRACK_6, -BEAT_COL_SPACING*1.5f, "scratch" },
|
|
|
|
|
{ TRACK_7, +BEAT_COL_SPACING*0.5f, NULL },
|
|
|
|
|
{ TRACK_8, +BEAT_COL_SPACING*1.5f, NULL },
|
|
|
|
|
{ TRACK_9, +BEAT_COL_SPACING*2.5f, NULL },
|
|
|
|
|
{ TRACK_10, +BEAT_COL_SPACING*3.5f, NULL },
|
|
|
|
|
{ TRACK_11, +BEAT_COL_SPACING*4.5f, NULL },
|
|
|
|
|
{ TRACK_12, +BEAT_COL_SPACING*6.0f, "scratch" },
|
|
|
|
|
},
|
|
|
|
|
{ // PLAYER_2
|
|
|
|
|
{ TRACK_1, -BEAT_COL_SPACING*6.0f, NULL },
|
|
|
|
|
{ TRACK_2, -BEAT_COL_SPACING*5.0f, NULL },
|
|
|
|
|
{ TRACK_3, -BEAT_COL_SPACING*4.0f, NULL },
|
|
|
|
|
{ TRACK_4, -BEAT_COL_SPACING*3.0f, NULL },
|
|
|
|
|
{ TRACK_5, -BEAT_COL_SPACING*2.0f, NULL },
|
|
|
|
|
{ TRACK_6, -BEAT_COL_SPACING*1.5f, "scratch" },
|
|
|
|
|
{ TRACK_7, +BEAT_COL_SPACING*0.5f, NULL },
|
|
|
|
|
{ TRACK_8, +BEAT_COL_SPACING*1.5f, NULL },
|
|
|
|
|
{ TRACK_9, +BEAT_COL_SPACING*2.5f, NULL },
|
|
|
|
|
{ TRACK_10, +BEAT_COL_SPACING*3.5f, NULL },
|
|
|
|
|
{ TRACK_11, +BEAT_COL_SPACING*4.5f, NULL },
|
|
|
|
|
{ TRACK_12, +BEAT_COL_SPACING*6.0f, "scratch" },
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
{ // m_iInputColumn[NUM_GameController][NUM_GameButton]
|
|
|
|
|
{ 0, 1, 2, 3, 4, Style::NO_MAPPING, Style::NO_MAPPING, 5, 5, Style::END_MAPPING },
|
|
|
|
|
{ 5, 6, 7, 8, 9, Style::NO_MAPPING, Style::NO_MAPPING, 10, 10, Style::END_MAPPING }
|
|
|
|
|
},
|
|
|
|
|
{ // m_iColumnDrawOrder[MAX_COLS_PER_PLAYER];
|
|
|
|
|
0,1,2,3,4,5,6,7,8,9,10,11
|
|
|
|
|
},
|
|
|
|
|
false, // m_bNeedsZoomOutWith2Players
|
|
|
|
|
false, // m_bCanUseBeginnerHelper
|
|
|
|
|
false, // m_bLockDifficulties
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
static const Style g_Style_Beat_Single7 =
|
|
|
|
|
{ // STYLE_BEAT_SINGLE7
|
|
|
|
|
true, // m_bUsedForGameplay
|
|
|
|
|
true, // m_bUsedForEdit
|
|
|
|
|
false, // m_bUsedForDemonstration
|
|
|
|
|
false, // m_bUsedForHowToPlay
|
|
|
|
|
"single7", // m_szName
|
|
|
|
|
StepsType_beat_single7, // m_StepsType
|
|
|
|
|
StyleType_OnePlayerOneSide, // m_StyleType
|
|
|
|
|
8, // m_iColsPerPlayer
|
|
|
|
|
{ // m_ColumnInfo[NUM_PLAYERS][MAX_COLS_PER_PLAYER];
|
|
|
|
|
{ // PLAYER_1
|
|
|
|
|
{ TRACK_8, -BEAT_COL_SPACING*3.5f, "scratch" },
|
|
|
|
|
{ TRACK_1, -BEAT_COL_SPACING*2.0f, NULL },
|
|
|
|
|
{ TRACK_2, -BEAT_COL_SPACING*1.0f, NULL },
|
|
|
|
|
{ TRACK_3, -BEAT_COL_SPACING*0.0f, NULL },
|
|
|
|
|
{ TRACK_4, +BEAT_COL_SPACING*1.0f, NULL },
|
|
|
|
|
{ TRACK_5, +BEAT_COL_SPACING*2.0f, NULL },
|
|
|
|
|
{ TRACK_6, +BEAT_COL_SPACING*3.0f, NULL },
|
|
|
|
|
{ TRACK_7, +BEAT_COL_SPACING*4.0f, NULL },
|
|
|
|
|
},
|
|
|
|
|
{ // PLAYER_2
|
|
|
|
|
{ TRACK_1, -BEAT_COL_SPACING*3.5f, NULL },
|
|
|
|
|
{ TRACK_2, -BEAT_COL_SPACING*2.5f, NULL },
|
|
|
|
|
{ TRACK_3, -BEAT_COL_SPACING*1.5f, NULL },
|
|
|
|
|
{ TRACK_4, -BEAT_COL_SPACING*0.5f, NULL },
|
|
|
|
|
{ TRACK_5, +BEAT_COL_SPACING*0.5f, NULL },
|
|
|
|
|
{ TRACK_6, +BEAT_COL_SPACING*1.5f, NULL },
|
|
|
|
|
{ TRACK_7, +BEAT_COL_SPACING*2.5f, NULL },
|
|
|
|
|
{ TRACK_8, +BEAT_COL_SPACING*4.0f, "scratch" },
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
{ // m_iInputColumn[NUM_GameController][NUM_GameButton]
|
|
|
|
|
{ 1, 2, 3, 4, 5, 6, 7, 0, 0, Style::END_MAPPING },
|
|
|
|
|
{ 0, 1, 2, 3, 4, 5, 6, 7, 7, Style::END_MAPPING },
|
|
|
|
|
},
|
|
|
|
|
{ // m_iColumnDrawOrder[MAX_COLS_PER_PLAYER];
|
|
|
|
|
0,1,2,3,4,5,6,7
|
|
|
|
|
},
|
|
|
|
|
false, // m_bNeedsZoomOutWith2Players
|
|
|
|
|
false, // m_bCanUseBeginnerHelper
|
|
|
|
|
false, // m_bLockDifficulties
|
|
|
|
|
};
|
|
|
|
|
|
2011-05-11 14:33:04 -04:00
|
|
|
static const Style g_Style_Beat_Versus7 =
|
|
|
|
|
{ // STYLE_BEAT_VERSUS7
|
|
|
|
|
true, // m_bUsedForGameplay
|
|
|
|
|
true, // m_bUsedForEdit
|
|
|
|
|
false, // m_bUsedForDemonstration
|
|
|
|
|
false, // m_bUsedForHowToPlay
|
|
|
|
|
"single7", // m_szName
|
|
|
|
|
StepsType_beat_versus7, // m_StepsType
|
|
|
|
|
StyleType_TwoPlayersTwoSides, // m_StyleType
|
|
|
|
|
8, // m_iColsPerPlayer
|
|
|
|
|
{ // m_ColumnInfo[NUM_PLAYERS][MAX_COLS_PER_PLAYER];
|
|
|
|
|
{ // PLAYER_1
|
|
|
|
|
{ TRACK_8, -BEAT_COL_SPACING*3.5f, "scratch" },
|
|
|
|
|
{ TRACK_1, -BEAT_COL_SPACING*2.0f, NULL },
|
|
|
|
|
{ TRACK_2, -BEAT_COL_SPACING*1.0f, NULL },
|
|
|
|
|
{ TRACK_3, -BEAT_COL_SPACING*0.0f, NULL },
|
|
|
|
|
{ TRACK_4, +BEAT_COL_SPACING*1.0f, NULL },
|
|
|
|
|
{ TRACK_5, +BEAT_COL_SPACING*2.0f, NULL },
|
|
|
|
|
{ TRACK_6, +BEAT_COL_SPACING*3.0f, NULL },
|
|
|
|
|
{ TRACK_7, +BEAT_COL_SPACING*4.0f, NULL },
|
|
|
|
|
},
|
|
|
|
|
{ // PLAYER_2
|
|
|
|
|
{ TRACK_1, -BEAT_COL_SPACING*3.5f, NULL },
|
|
|
|
|
{ TRACK_2, -BEAT_COL_SPACING*2.5f, NULL },
|
|
|
|
|
{ TRACK_3, -BEAT_COL_SPACING*1.5f, NULL },
|
|
|
|
|
{ TRACK_4, -BEAT_COL_SPACING*0.5f, NULL },
|
|
|
|
|
{ TRACK_5, +BEAT_COL_SPACING*0.5f, NULL },
|
|
|
|
|
{ TRACK_6, +BEAT_COL_SPACING*1.5f, NULL },
|
|
|
|
|
{ TRACK_7, +BEAT_COL_SPACING*2.5f, NULL },
|
|
|
|
|
{ TRACK_8, +BEAT_COL_SPACING*4.0f, "scratch" },
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
{ // m_iInputColumn[NUM_GameController][NUM_GameButton]
|
|
|
|
|
{ 1, 2, 3, 4, 5, 6, 7, 0, 0, Style::END_MAPPING },
|
|
|
|
|
{ 0, 1, 2, 3, 4, 5, 6, 7, 7, Style::END_MAPPING },
|
|
|
|
|
},
|
|
|
|
|
{ // m_iColumnDrawOrder[MAX_COLS_PER_PLAYER];
|
|
|
|
|
0,1,2,3,4,5,6,7
|
|
|
|
|
},
|
|
|
|
|
false, // m_bNeedsZoomOutWith2Players
|
|
|
|
|
false, // m_bCanUseBeginnerHelper
|
|
|
|
|
false, // m_bLockDifficulties
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
2011-03-17 01:47:30 -04:00
|
|
|
static const Style g_Style_Beat_Double7 =
|
|
|
|
|
{ // STYLE_BEAT_DOUBLE7
|
|
|
|
|
true, // m_bUsedForGameplay
|
|
|
|
|
true, // m_bUsedForEdit
|
|
|
|
|
false, // m_bUsedForDemonstration
|
|
|
|
|
false, // m_bUsedForHowToPlay
|
|
|
|
|
"double7", // m_szName
|
|
|
|
|
StepsType_beat_double7, // m_StepsType
|
|
|
|
|
StyleType_OnePlayerTwoSides, // m_StyleType
|
|
|
|
|
16, // m_iColsPerPlayer
|
|
|
|
|
{ // m_ColumnInfo[NUM_PLAYERS][MAX_COLS_PER_PLAYER];
|
|
|
|
|
{ // PLAYER_1
|
|
|
|
|
{ TRACK_8, -BEAT_COL_SPACING*8.0f, "scratch" },
|
|
|
|
|
{ TRACK_1, -BEAT_COL_SPACING*6.5f, NULL },
|
|
|
|
|
{ TRACK_2, -BEAT_COL_SPACING*5.5f, NULL },
|
|
|
|
|
{ TRACK_3, -BEAT_COL_SPACING*4.5f, NULL },
|
|
|
|
|
{ TRACK_4, -BEAT_COL_SPACING*3.5f, NULL },
|
|
|
|
|
{ TRACK_5, -BEAT_COL_SPACING*2.5f, NULL },
|
|
|
|
|
{ TRACK_6, -BEAT_COL_SPACING*1.5f, NULL },
|
|
|
|
|
{ TRACK_7, -BEAT_COL_SPACING*0.5f, NULL },
|
|
|
|
|
{ TRACK_9, +BEAT_COL_SPACING*0.5f, NULL },
|
|
|
|
|
{ TRACK_10, +BEAT_COL_SPACING*1.5f, NULL },
|
|
|
|
|
{ TRACK_11, +BEAT_COL_SPACING*2.5f, NULL },
|
|
|
|
|
{ TRACK_12, +BEAT_COL_SPACING*3.5f, NULL },
|
|
|
|
|
{ TRACK_13, +BEAT_COL_SPACING*4.5f, NULL },
|
|
|
|
|
{ TRACK_14, +BEAT_COL_SPACING*5.5f, NULL },
|
|
|
|
|
{ TRACK_15, +BEAT_COL_SPACING*6.5f, NULL },
|
|
|
|
|
{ TRACK_16, +BEAT_COL_SPACING*8.0f, "scratch" },
|
|
|
|
|
},
|
|
|
|
|
{ // PLAYER_2
|
|
|
|
|
{ TRACK_8, -BEAT_COL_SPACING*8.0f, "scratch" },
|
|
|
|
|
{ TRACK_1, -BEAT_COL_SPACING*6.5f, NULL },
|
|
|
|
|
{ TRACK_2, -BEAT_COL_SPACING*5.5f, NULL },
|
|
|
|
|
{ TRACK_3, -BEAT_COL_SPACING*4.5f, NULL },
|
|
|
|
|
{ TRACK_4, -BEAT_COL_SPACING*3.5f, NULL },
|
|
|
|
|
{ TRACK_5, -BEAT_COL_SPACING*2.5f, NULL },
|
|
|
|
|
{ TRACK_6, -BEAT_COL_SPACING*1.5f, NULL },
|
|
|
|
|
{ TRACK_7, -BEAT_COL_SPACING*0.5f, NULL },
|
|
|
|
|
{ TRACK_9, +BEAT_COL_SPACING*0.5f, NULL },
|
|
|
|
|
{ TRACK_10, +BEAT_COL_SPACING*1.5f, NULL },
|
|
|
|
|
{ TRACK_11, +BEAT_COL_SPACING*2.5f, NULL },
|
|
|
|
|
{ TRACK_12, +BEAT_COL_SPACING*3.5f, NULL },
|
|
|
|
|
{ TRACK_13, +BEAT_COL_SPACING*4.5f, NULL },
|
|
|
|
|
{ TRACK_14, +BEAT_COL_SPACING*5.5f, NULL },
|
|
|
|
|
{ TRACK_15, +BEAT_COL_SPACING*6.5f, NULL },
|
|
|
|
|
{ TRACK_16, +BEAT_COL_SPACING*8.0f, "scratch" },
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
{ // m_iInputColumn[NUM_GameController][NUM_GameButton]
|
|
|
|
|
{ 1, 2, 3, 4, 5, 6, 7, 0, 0, Style::END_MAPPING },
|
|
|
|
|
{ 8, 9, 10, 11, 12, 13, 14, 15, 15, Style::END_MAPPING },
|
|
|
|
|
},
|
|
|
|
|
{ // m_iColumnDrawOrder[MAX_COLS_PER_PLAYER];
|
|
|
|
|
0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15
|
|
|
|
|
},
|
|
|
|
|
false, // m_bNeedsZoomOutWith2Players
|
|
|
|
|
false, // m_bCanUseBeginnerHelper
|
|
|
|
|
false, // m_bLockDifficulties
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
static const Style *g_apGame_Beat_Styles[] =
|
|
|
|
|
{
|
|
|
|
|
&g_Style_Beat_Single5,
|
2011-05-11 14:33:04 -04:00
|
|
|
&g_Style_Beat_Versus5,
|
|
|
|
|
&g_Style_Beat_Double5,
|
2011-03-17 01:47:30 -04:00
|
|
|
&g_Style_Beat_Single7,
|
2011-05-11 14:33:04 -04:00
|
|
|
&g_Style_Beat_Versus7,
|
2011-03-17 01:47:30 -04:00
|
|
|
&g_Style_Beat_Double7,
|
|
|
|
|
NULL
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
static const AutoMappings g_AutoKeyMappings_Beat = AutoMappings (
|
|
|
|
|
"",
|
|
|
|
|
"",
|
|
|
|
|
"",
|
|
|
|
|
AutoMappingEntry( 0, KEY_Cm, BEAT_BUTTON_KEY1, false ),
|
|
|
|
|
AutoMappingEntry( 0, KEY_Ck, BEAT_BUTTON_KEY2, false ),
|
|
|
|
|
AutoMappingEntry( 0, KEY_COMMA, BEAT_BUTTON_KEY3, false ),
|
|
|
|
|
AutoMappingEntry( 0, KEY_Cl, BEAT_BUTTON_KEY4, false ),
|
|
|
|
|
AutoMappingEntry( 0, KEY_PERIOD, BEAT_BUTTON_KEY5, false ),
|
|
|
|
|
AutoMappingEntry( 0, KEY_SEMICOLON, BEAT_BUTTON_KEY6, false ),
|
|
|
|
|
AutoMappingEntry( 0, KEY_SLASH, BEAT_BUTTON_KEY7, false ),
|
|
|
|
|
AutoMappingEntry( 0, KEY_LSHIFT, BEAT_BUTTON_SCRATCHUP, false )
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
static const Game g_Game_Beat =
|
|
|
|
|
{
|
|
|
|
|
"beat", // m_szName
|
|
|
|
|
g_apGame_Beat_Styles, // m_apStyles
|
|
|
|
|
true, // m_bCountNotesSeparately
|
|
|
|
|
false, // m_bAllowHopos
|
|
|
|
|
{ // m_InputScheme
|
|
|
|
|
"beat", // m_szName
|
|
|
|
|
NUM_BEAT_BUTTONS, // m_iButtonsPerController
|
|
|
|
|
{ // m_szButtonNames
|
|
|
|
|
{ "Key1", GAME_BUTTON_LEFT },
|
|
|
|
|
{ "Key2", GameButton_Invalid },
|
|
|
|
|
{ "Key3", GAME_BUTTON_RIGHT },
|
|
|
|
|
{ "Key4", GameButton_Invalid },
|
|
|
|
|
{ "Key5", GameButton_Invalid },
|
|
|
|
|
{ "Key6", GameButton_Invalid },
|
|
|
|
|
{ "Key7", GameButton_Invalid },
|
|
|
|
|
{ "Scratch up", GAME_BUTTON_UP },
|
|
|
|
|
{ "Scratch down", GAME_BUTTON_DOWN },
|
|
|
|
|
},
|
|
|
|
|
&g_AutoKeyMappings_Beat
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
{ GameButtonType_Step },
|
|
|
|
|
{ GameButtonType_Step },
|
|
|
|
|
{ GameButtonType_Step },
|
|
|
|
|
{ GameButtonType_Step },
|
|
|
|
|
{ GameButtonType_Step },
|
|
|
|
|
{ GameButtonType_Step },
|
|
|
|
|
{ GameButtonType_Step },
|
|
|
|
|
{ GameButtonType_Step },
|
|
|
|
|
{ GameButtonType_Step },
|
|
|
|
|
},
|
|
|
|
|
TNS_W1, // m_mapW1To
|
|
|
|
|
TNS_W2, // m_mapW2To
|
|
|
|
|
TNS_W3, // m_mapW3To
|
|
|
|
|
TNS_W4, // m_mapW4To
|
|
|
|
|
TNS_W5, // m_mapW5To
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
//ThemeMetric<int> MANIAX_COL_SPACING ("ColumnSpacing","Maniax");
|
|
|
|
|
static const int MANIAX_COL_SPACING = 36;
|
|
|
|
|
static const Style g_Style_Maniax_Single =
|
|
|
|
|
{ // STYLE_MANIAX_SINGLE
|
|
|
|
|
true, // m_bUsedForGameplay
|
|
|
|
|
true, // m_bUsedForEdit
|
|
|
|
|
true, // m_bUsedForDemonstration
|
|
|
|
|
true, // m_bUsedForHowToPlay
|
|
|
|
|
"single", // m_szName
|
|
|
|
|
StepsType_maniax_single, // m_StepsType
|
|
|
|
|
StyleType_OnePlayerOneSide, // m_StyleType
|
|
|
|
|
4, // m_iColsPerPlayer
|
|
|
|
|
{ // m_ColumnInfo[NUM_PLAYERS][MAX_COLS_PER_PLAYER];
|
|
|
|
|
{ // PLAYER_1
|
|
|
|
|
{ TRACK_1, -MANIAX_COL_SPACING*1.5f, NULL },
|
|
|
|
|
{ TRACK_2, -MANIAX_COL_SPACING*0.5f, NULL },
|
|
|
|
|
{ TRACK_3, +MANIAX_COL_SPACING*0.5f, NULL },
|
|
|
|
|
{ TRACK_4, +MANIAX_COL_SPACING*1.5f, NULL },
|
|
|
|
|
},
|
|
|
|
|
{ // PLAYER_2
|
|
|
|
|
{ TRACK_1, -MANIAX_COL_SPACING*1.5f, NULL },
|
|
|
|
|
{ TRACK_2, -MANIAX_COL_SPACING*0.5f, NULL },
|
|
|
|
|
{ TRACK_3, +MANIAX_COL_SPACING*0.5f, NULL },
|
|
|
|
|
{ TRACK_4, +MANIAX_COL_SPACING*1.5f, NULL },
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
{ // m_iInputColumn[NUM_GameController][NUM_GameButton]
|
|
|
|
|
{ 1, 2, 0, 3, Style::END_MAPPING },
|
|
|
|
|
{ 1, 2, 0, 3, Style::END_MAPPING },
|
|
|
|
|
},
|
|
|
|
|
{ // m_iColumnDrawOrder[MAX_COLS_PER_PLAYER];
|
|
|
|
|
0, 1, 2, 3
|
|
|
|
|
},
|
|
|
|
|
false, // m_bNeedsZoomOutWith2Players
|
|
|
|
|
false, // m_bCanUseBeginnerHelper
|
|
|
|
|
false, // m_bLockDifficulties
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
static const Style g_Style_Maniax_Versus =
|
|
|
|
|
{ // STYLE_MANIAX_VERSUS
|
|
|
|
|
true, // m_bUsedForGameplay
|
|
|
|
|
false, // m_bUsedForEdit
|
|
|
|
|
false, // m_bUsedForDemonstration
|
|
|
|
|
false, // m_bUsedForHowToPlay
|
|
|
|
|
"versus", // m_szName
|
|
|
|
|
StepsType_maniax_single, // m_StepsType
|
|
|
|
|
StyleType_TwoPlayersTwoSides, // m_StyleType
|
|
|
|
|
4, // m_iColsPerPlayer
|
|
|
|
|
{ // m_ColumnInfo[NUM_PLAYERS][MAX_COLS_PER_PLAYER];
|
|
|
|
|
{ // PLAYER_1
|
|
|
|
|
{ TRACK_1, -MANIAX_COL_SPACING*1.5f, NULL },
|
|
|
|
|
{ TRACK_2, -MANIAX_COL_SPACING*0.5f, NULL },
|
|
|
|
|
{ TRACK_3, +MANIAX_COL_SPACING*0.5f, NULL },
|
|
|
|
|
{ TRACK_4, +MANIAX_COL_SPACING*1.5f, NULL },
|
|
|
|
|
},
|
|
|
|
|
{ // PLAYER_2
|
|
|
|
|
{ TRACK_1, -MANIAX_COL_SPACING*1.5f, NULL },
|
|
|
|
|
{ TRACK_2, -MANIAX_COL_SPACING*0.5f, NULL },
|
|
|
|
|
{ TRACK_3, +MANIAX_COL_SPACING*0.5f, NULL },
|
|
|
|
|
{ TRACK_4, +MANIAX_COL_SPACING*1.5f, NULL },
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
{ // m_iInputColumn[NUM_GameController][NUM_GameButton]
|
|
|
|
|
{ 1, 2, 0, 3, Style::END_MAPPING },
|
|
|
|
|
{ 1, 2, 0, 3, Style::END_MAPPING },
|
|
|
|
|
},
|
|
|
|
|
{ // m_iColumnDrawOrder[MAX_COLS_PER_PLAYER];
|
|
|
|
|
0, 1, 2, 3
|
|
|
|
|
},
|
|
|
|
|
false, // m_bNeedsZoomOutWith2Players
|
|
|
|
|
false, // m_bCanUseBeginnerHelper
|
|
|
|
|
false, // m_bLockDifficulties
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
static const Style g_Style_Maniax_Double =
|
|
|
|
|
{ // STYLE_MANIAX_DOUBLE
|
|
|
|
|
true, // m_bUsedForGameplay
|
|
|
|
|
true, // m_bUsedForEdit
|
|
|
|
|
false, // m_bUsedForDemonstration
|
|
|
|
|
false, // m_bUsedForHowToPlay
|
|
|
|
|
"double", // m_szName
|
|
|
|
|
StepsType_maniax_double, // m_StepsType
|
|
|
|
|
StyleType_OnePlayerTwoSides, // m_StyleType
|
|
|
|
|
8, // m_iColsPerPlayer
|
|
|
|
|
{ // m_ColumnInfo[NUM_PLAYERS][MAX_COLS_PER_PLAYER];
|
|
|
|
|
{ // PLAYER_1
|
|
|
|
|
{ TRACK_1, -MANIAX_COL_SPACING*3.5f, NULL },
|
|
|
|
|
{ TRACK_2, -MANIAX_COL_SPACING*2.5f, NULL },
|
|
|
|
|
{ TRACK_3, -MANIAX_COL_SPACING*1.5f, NULL },
|
|
|
|
|
{ TRACK_4, -MANIAX_COL_SPACING*0.5f, NULL },
|
|
|
|
|
{ TRACK_5, +MANIAX_COL_SPACING*0.5f, NULL },
|
|
|
|
|
{ TRACK_6, +MANIAX_COL_SPACING*1.5f, NULL },
|
|
|
|
|
{ TRACK_7, +MANIAX_COL_SPACING*2.5f, NULL },
|
|
|
|
|
{ TRACK_8, +MANIAX_COL_SPACING*3.5f, NULL },
|
|
|
|
|
},
|
|
|
|
|
{ // PLAYER_2
|
|
|
|
|
{ TRACK_1, -MANIAX_COL_SPACING*3.5f, NULL },
|
|
|
|
|
{ TRACK_2, -MANIAX_COL_SPACING*2.5f, NULL },
|
|
|
|
|
{ TRACK_3, -MANIAX_COL_SPACING*1.5f, NULL },
|
|
|
|
|
{ TRACK_4, -MANIAX_COL_SPACING*0.5f, NULL },
|
|
|
|
|
{ TRACK_5, +MANIAX_COL_SPACING*0.5f, NULL },
|
|
|
|
|
{ TRACK_6, +MANIAX_COL_SPACING*1.5f, NULL },
|
|
|
|
|
{ TRACK_7, +MANIAX_COL_SPACING*2.5f, NULL },
|
|
|
|
|
{ TRACK_8, +MANIAX_COL_SPACING*3.5f, NULL },
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
{ // m_iInputColumn[NUM_GameController][NUM_GameButton]
|
|
|
|
|
{ 1, 2, 0, 3, Style::END_MAPPING },
|
|
|
|
|
{ 5, 6, 4, 7, Style::END_MAPPING },
|
|
|
|
|
},
|
|
|
|
|
{ // m_iColumnDrawOrder[MAX_COLS_PER_PLAYER];
|
|
|
|
|
0,1,2,3,4,5,6,7
|
|
|
|
|
},
|
|
|
|
|
false, // m_bNeedsZoomOutWith2Players
|
|
|
|
|
false, // m_bCanUseBeginnerHelper
|
|
|
|
|
false, // m_bLockDifficulties
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
static const Style *g_apGame_Maniax_Styles[] =
|
|
|
|
|
{
|
|
|
|
|
&g_Style_Maniax_Single,
|
|
|
|
|
&g_Style_Maniax_Versus,
|
|
|
|
|
&g_Style_Maniax_Double,
|
|
|
|
|
NULL
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
static const AutoMappings g_AutoKeyMappings_Maniax = AutoMappings (
|
|
|
|
|
"",
|
|
|
|
|
"",
|
|
|
|
|
"",
|
|
|
|
|
AutoMappingEntry( 0, KEY_Ca, MANIAX_BUTTON_HANDUPLEFT, false ),
|
|
|
|
|
AutoMappingEntry( 0, KEY_Cs, MANIAX_BUTTON_HANDUPRIGHT, false ),
|
|
|
|
|
AutoMappingEntry( 0, KEY_Cz, MANIAX_BUTTON_HANDLRLEFT, false ),
|
|
|
|
|
AutoMappingEntry( 0, KEY_Cx, MANIAX_BUTTON_HANDLRRIGHT, false ),
|
|
|
|
|
AutoMappingEntry( 0, KEY_KP_C4, MANIAX_BUTTON_HANDUPLEFT, true ),
|
|
|
|
|
AutoMappingEntry( 0, KEY_KP_C5, MANIAX_BUTTON_HANDUPRIGHT, true ),
|
|
|
|
|
AutoMappingEntry( 0, KEY_KP_C1, MANIAX_BUTTON_HANDLRLEFT, true ),
|
|
|
|
|
AutoMappingEntry( 0, KEY_KP_C2, MANIAX_BUTTON_HANDLRRIGHT, true )
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
static const Game g_Game_Maniax =
|
|
|
|
|
{
|
|
|
|
|
"maniax", // m_szName
|
|
|
|
|
g_apGame_Maniax_Styles, // m_apStyles
|
|
|
|
|
false, // m_bCountNotesSeparately
|
|
|
|
|
false, // m_bAllowHopos
|
|
|
|
|
{ // m_InputScheme
|
|
|
|
|
"maniax", // m_szName
|
|
|
|
|
NUM_MANIAX_BUTTONS, // m_iButtonsPerController
|
|
|
|
|
{ // m_szButtonNames
|
|
|
|
|
{ "HandUpLeft", GAME_BUTTON_LEFT },
|
|
|
|
|
{ "HandUpRight", GAME_BUTTON_RIGHT },
|
|
|
|
|
{ "HandLrLeft", GAME_BUTTON_DOWN },
|
|
|
|
|
{ "HandLrRight", GAME_BUTTON_UP },
|
|
|
|
|
},
|
|
|
|
|
&g_AutoKeyMappings_Maniax
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
{ GameButtonType_Step },
|
|
|
|
|
{ GameButtonType_Step },
|
|
|
|
|
{ GameButtonType_Step },
|
|
|
|
|
{ GameButtonType_Step },
|
|
|
|
|
},
|
|
|
|
|
TNS_W1, // m_mapW1To
|
|
|
|
|
TNS_W2, // m_mapW2To
|
|
|
|
|
TNS_W3, // m_mapW3To
|
|
|
|
|
TNS_W4, // m_mapW4To
|
|
|
|
|
TNS_W5, // m_mapW5To
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
/** Techno *******************************************************************/
|
|
|
|
|
|
|
|
|
|
//ThemeMetric<int> TECHNO_COL_SPACING ("ColumnSpacing","Techno");
|
|
|
|
|
static const int TECHNO_COL_SPACING = 56;
|
|
|
|
|
//ThemeMetric<int> TECHNO_VERSUS_COL_SPACING ("ColumnSpacing","TechnoVersus");
|
|
|
|
|
static const int TECHNO_VERSUS_COL_SPACING = 33;
|
|
|
|
|
static const Style g_Style_Techno_Single4 =
|
|
|
|
|
{ // STYLE_TECHNO_SINGLE4
|
|
|
|
|
true, // m_bUsedForGameplay
|
|
|
|
|
true, // m_bUsedForEdit
|
|
|
|
|
false, // m_bUsedForDemonstration
|
|
|
|
|
false, // m_bUsedForHowToPlay
|
|
|
|
|
"single4", // m_szName
|
|
|
|
|
StepsType_techno_single4, // m_StepsType
|
|
|
|
|
StyleType_OnePlayerOneSide, // m_StyleType
|
|
|
|
|
4, // m_iColsPerPlayer
|
|
|
|
|
{ // m_ColumnInfo[NUM_PLAYERS][MAX_COLS_PER_PLAYER];
|
|
|
|
|
{ // PLAYER_1
|
|
|
|
|
{ TRACK_1, -TECHNO_COL_SPACING*1.5f, NULL },
|
|
|
|
|
{ TRACK_2, -TECHNO_COL_SPACING*0.5f, NULL },
|
|
|
|
|
{ TRACK_3, +TECHNO_COL_SPACING*0.5f, NULL },
|
|
|
|
|
{ TRACK_4, +TECHNO_COL_SPACING*1.5f, NULL },
|
|
|
|
|
},
|
|
|
|
|
{ // PLAYER_2
|
|
|
|
|
{ TRACK_1, -TECHNO_COL_SPACING*1.5f, NULL },
|
|
|
|
|
{ TRACK_2, -TECHNO_COL_SPACING*0.5f, NULL },
|
|
|
|
|
{ TRACK_3, +TECHNO_COL_SPACING*0.5f, NULL },
|
|
|
|
|
{ TRACK_4, +TECHNO_COL_SPACING*1.5f, NULL },
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
{ // m_iInputColumn[NUM_GameController][NUM_GameButton]
|
|
|
|
|
{ 0, 3, 2, 1, Style::END_MAPPING },
|
|
|
|
|
{ 0, 3, 2, 1, Style::END_MAPPING },
|
|
|
|
|
},
|
|
|
|
|
{ // m_iColumnDrawOrder[MAX_COLS_PER_PLAYER];
|
|
|
|
|
0,1,2,3
|
|
|
|
|
},
|
|
|
|
|
false, // m_bNeedsZoomOutWith2Players
|
|
|
|
|
false, // m_bCanUseBeginnerHelper
|
|
|
|
|
false, // m_bLockDifficulties
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
static const Style g_Style_Techno_Single5 =
|
|
|
|
|
{ // STYLE_TECHNO_SINGLE5
|
|
|
|
|
true, // m_bUsedForGameplay
|
|
|
|
|
true, // m_bUsedForEdit
|
|
|
|
|
false, // m_bUsedForDemonstration
|
|
|
|
|
false, // m_bUsedForHowToPlay
|
|
|
|
|
"single5", // m_szName
|
|
|
|
|
StepsType_techno_single5, // m_StepsType
|
|
|
|
|
StyleType_OnePlayerOneSide, // m_StyleType
|
|
|
|
|
5, // m_iColsPerPlayer
|
|
|
|
|
{ // m_ColumnInfo[NUM_PLAYERS][MAX_COLS_PER_PLAYER];
|
|
|
|
|
{ // PLAYER_1
|
|
|
|
|
{ TRACK_1, -TECHNO_COL_SPACING*2.0f, NULL },
|
|
|
|
|
{ TRACK_2, -TECHNO_COL_SPACING*1.0f, NULL },
|
|
|
|
|
{ TRACK_3, +TECHNO_COL_SPACING*0.0f, NULL },
|
|
|
|
|
{ TRACK_4, +TECHNO_COL_SPACING*1.0f, NULL },
|
|
|
|
|
{ TRACK_5, +TECHNO_COL_SPACING*2.0f, NULL },
|
|
|
|
|
},
|
|
|
|
|
{ // PLAYER_2
|
|
|
|
|
{ TRACK_1, -TECHNO_COL_SPACING*2.0f, NULL },
|
|
|
|
|
{ TRACK_2, -TECHNO_COL_SPACING*1.0f, NULL },
|
|
|
|
|
{ TRACK_3, +TECHNO_COL_SPACING*0.0f, NULL },
|
|
|
|
|
{ TRACK_4, +TECHNO_COL_SPACING*1.0f, NULL },
|
|
|
|
|
{ TRACK_5, +TECHNO_COL_SPACING*2.0f, NULL },
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
{ // m_iInputColumn[NUM_GameController][NUM_GameButton]
|
|
|
|
|
{ Style::NO_MAPPING, Style::NO_MAPPING, Style::NO_MAPPING, Style::NO_MAPPING,
|
|
|
|
|
1, 3, 2, 0, 4, Style::END_MAPPING },
|
|
|
|
|
{ Style::NO_MAPPING, Style::NO_MAPPING, Style::NO_MAPPING, Style::NO_MAPPING,
|
|
|
|
|
1, 3, 2, 0, 4, Style::END_MAPPING },
|
|
|
|
|
},
|
|
|
|
|
{ // m_iColumnDrawOrder[MAX_COLS_PER_PLAYER];
|
|
|
|
|
0,1,2,3,4
|
|
|
|
|
},
|
|
|
|
|
false, // m_bNeedsZoomOutWith2Players
|
|
|
|
|
false, // m_bCanUseBeginnerHelper
|
|
|
|
|
false, // m_bLockDifficulties
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
static const Style g_Style_Techno_Single8 =
|
|
|
|
|
{ // STYLE_TECHNO_SINGLE8
|
|
|
|
|
true, // m_bUsedForGameplay
|
|
|
|
|
true, // m_bUsedForEdit
|
|
|
|
|
false, // m_bUsedForDemonstration
|
|
|
|
|
true, // m_bUsedForHowToPlay
|
|
|
|
|
"single8", // m_szName
|
|
|
|
|
StepsType_techno_single8, // m_StepsType
|
|
|
|
|
StyleType_OnePlayerOneSide, // m_StyleType
|
|
|
|
|
8, // m_iColsPerPlayer
|
|
|
|
|
{ // m_ColumnInfo[NUM_PLAYERS][MAX_COLS_PER_PLAYER];
|
|
|
|
|
{ // PLAYER_1
|
|
|
|
|
{ TRACK_1, -TECHNO_COL_SPACING*2.5f, NULL },
|
|
|
|
|
{ TRACK_2, -TECHNO_COL_SPACING*1.5f, NULL },
|
|
|
|
|
{ TRACK_3, -TECHNO_COL_SPACING*0.5f, NULL },
|
|
|
|
|
{ TRACK_4, +TECHNO_COL_SPACING*0.5f, NULL },
|
|
|
|
|
{ TRACK_5, +TECHNO_COL_SPACING*1.5f, NULL },
|
|
|
|
|
{ TRACK_6, +TECHNO_COL_SPACING*2.5f, NULL },
|
|
|
|
|
{ TRACK_7, +TECHNO_COL_SPACING*3.5f, NULL },
|
|
|
|
|
{ TRACK_8, +TECHNO_COL_SPACING*4.5f, NULL },
|
|
|
|
|
},
|
|
|
|
|
{ // PLAYER_2
|
|
|
|
|
{ TRACK_1, -TECHNO_COL_SPACING*4.5f, NULL },
|
|
|
|
|
{ TRACK_2, -TECHNO_COL_SPACING*3.5f, NULL },
|
|
|
|
|
{ TRACK_3, -TECHNO_COL_SPACING*2.5f, NULL },
|
|
|
|
|
{ TRACK_4, -TECHNO_COL_SPACING*1.5f, NULL },
|
|
|
|
|
{ TRACK_5, -TECHNO_COL_SPACING*0.5f, NULL },
|
|
|
|
|
{ TRACK_6, +TECHNO_COL_SPACING*0.5f, NULL },
|
|
|
|
|
{ TRACK_7, +TECHNO_COL_SPACING*1.5f, NULL },
|
|
|
|
|
{ TRACK_8, +TECHNO_COL_SPACING*2.5f, NULL },
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
{ // m_iInputColumn[NUM_GameController][NUM_GameButton]
|
|
|
|
|
{ 1, 6, 4, 3, 2, 5, Style::NO_MAPPING, 0, 7, Style::END_MAPPING },
|
|
|
|
|
{ 1, 6, 4, 3, 2, 5, Style::NO_MAPPING, 0, 7, Style::END_MAPPING },
|
|
|
|
|
},
|
|
|
|
|
{ // m_iColumnDrawOrder[MAX_COLS_PER_PLAYER];
|
|
|
|
|
0,1,2,3,4,5,6,7
|
|
|
|
|
},
|
|
|
|
|
true, // m_bNeedsZoomOutWith2Players
|
|
|
|
|
false, // m_bCanUseBeginnerHelper
|
|
|
|
|
false, // m_bLockDifficulties
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
static const Style g_Style_Techno_Versus4 =
|
|
|
|
|
{ // STYLE_TECHNO_VERSUS4
|
|
|
|
|
true, // m_bUsedForGameplay
|
|
|
|
|
false, // m_bUsedForEdit
|
|
|
|
|
false, // m_bUsedForDemonstration
|
|
|
|
|
false, // m_bUsedForHowToPlay
|
|
|
|
|
"versus4", // m_szName
|
|
|
|
|
StepsType_techno_single4, // m_StepsType
|
|
|
|
|
StyleType_TwoPlayersTwoSides, // m_StyleType
|
|
|
|
|
4, // m_iColsPerPlayer
|
|
|
|
|
{ // m_ColumnInfo[NUM_PLAYERS][MAX_COLS_PER_PLAYER];
|
|
|
|
|
{ // PLAYER_1
|
|
|
|
|
{ TRACK_1, -TECHNO_COL_SPACING*1.5f, NULL },
|
|
|
|
|
{ TRACK_2, -TECHNO_COL_SPACING*0.5f, NULL },
|
|
|
|
|
{ TRACK_3, +TECHNO_COL_SPACING*0.5f, NULL },
|
|
|
|
|
{ TRACK_4, +TECHNO_COL_SPACING*1.5f, NULL },
|
|
|
|
|
},
|
|
|
|
|
{ // PLAYER_2
|
|
|
|
|
{ TRACK_1, -TECHNO_COL_SPACING*1.5f, NULL },
|
|
|
|
|
{ TRACK_2, -TECHNO_COL_SPACING*0.5f, NULL },
|
|
|
|
|
{ TRACK_3, +TECHNO_COL_SPACING*0.5f, NULL },
|
|
|
|
|
{ TRACK_4, +TECHNO_COL_SPACING*1.5f, NULL },
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
{ // m_iInputColumn[NUM_GameController][NUM_GameButton]
|
|
|
|
|
{ 0, 3, 2, 1, Style::END_MAPPING },
|
|
|
|
|
{ 0, 3, 2, 1, Style::END_MAPPING },
|
|
|
|
|
},
|
|
|
|
|
{ // m_iColumnDrawOrder[MAX_COLS_PER_PLAYER];
|
|
|
|
|
0,1,2,3
|
|
|
|
|
},
|
|
|
|
|
false, // m_bNeedsZoomOutWith2Players
|
|
|
|
|
false, // m_bCanUseBeginnerHelper
|
|
|
|
|
false, // m_bLockDifficulties
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
static const Style g_Style_Techno_Versus5 =
|
|
|
|
|
{ // STYLE_TECHNO_VERSUS5
|
|
|
|
|
true, // m_bUsedForGameplay
|
|
|
|
|
false, // m_bUsedForEdit
|
|
|
|
|
false, // m_bUsedForDemonstration
|
|
|
|
|
false, // m_bUsedForHowToPlay
|
|
|
|
|
"versus5", // m_szName
|
|
|
|
|
StepsType_techno_single5, // m_StepsType
|
|
|
|
|
StyleType_TwoPlayersTwoSides, // m_StyleType
|
|
|
|
|
5, // m_iColsPerPlayer
|
|
|
|
|
{ // m_ColumnInfo[NUM_PLAYERS][MAX_COLS_PER_PLAYER];
|
|
|
|
|
{ // PLAYER_1
|
|
|
|
|
{ TRACK_1, -TECHNO_COL_SPACING*2.0f, NULL },
|
|
|
|
|
{ TRACK_2, -TECHNO_COL_SPACING*1.0f, NULL },
|
|
|
|
|
{ TRACK_3, +TECHNO_COL_SPACING*0.0f, NULL },
|
|
|
|
|
{ TRACK_4, +TECHNO_COL_SPACING*1.0f, NULL },
|
|
|
|
|
{ TRACK_5, +TECHNO_COL_SPACING*2.0f, NULL },
|
|
|
|
|
},
|
|
|
|
|
{ // PLAYER_2
|
|
|
|
|
{ TRACK_1, -TECHNO_COL_SPACING*2.0f, NULL },
|
|
|
|
|
{ TRACK_2, -TECHNO_COL_SPACING*1.0f, NULL },
|
|
|
|
|
{ TRACK_3, +TECHNO_COL_SPACING*0.0f, NULL },
|
|
|
|
|
{ TRACK_4, +TECHNO_COL_SPACING*1.0f, NULL },
|
|
|
|
|
{ TRACK_5, +TECHNO_COL_SPACING*2.0f, NULL },
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
{ // m_iInputColumn[NUM_GameController][NUM_GameButton]
|
|
|
|
|
{ Style::NO_MAPPING, Style::NO_MAPPING, Style::NO_MAPPING, Style::NO_MAPPING,
|
|
|
|
|
1, 3, 2, 0, 4, Style::END_MAPPING },
|
|
|
|
|
{ Style::NO_MAPPING, Style::NO_MAPPING, Style::NO_MAPPING, Style::NO_MAPPING,
|
|
|
|
|
1, 3, 2, 0, 4, Style::END_MAPPING },
|
|
|
|
|
},
|
|
|
|
|
{ // m_iColumnDrawOrder[MAX_COLS_PER_PLAYER];
|
|
|
|
|
0,1,2,3,4
|
|
|
|
|
},
|
|
|
|
|
false, // m_bNeedsZoomOutWith2Players
|
|
|
|
|
false, // m_bCanUseBeginnerHelper
|
|
|
|
|
false, // m_bLockDifficulties
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
static const Style g_Style_Techno_Versus8 =
|
|
|
|
|
{ // STYLE_TECHNO_VERSUS8
|
|
|
|
|
true, // m_bUsedForGameplay
|
|
|
|
|
false, // m_bUsedForEdit
|
|
|
|
|
true, // m_bUsedForDemonstration
|
|
|
|
|
false, // m_bUsedForHowToPlay
|
|
|
|
|
"versus8", // m_szName
|
|
|
|
|
StepsType_techno_single8, // m_StepsType
|
|
|
|
|
StyleType_TwoPlayersTwoSides, // m_StyleType
|
|
|
|
|
8, // m_iColsPerPlayer
|
|
|
|
|
{ // m_ColumnInfo[NUM_PLAYERS][MAX_COLS_PER_PLAYER];
|
|
|
|
|
{ // PLAYER_1
|
|
|
|
|
{ TRACK_1, -TECHNO_VERSUS_COL_SPACING*3.5f, NULL },
|
|
|
|
|
{ TRACK_2, -TECHNO_VERSUS_COL_SPACING*2.5f, NULL },
|
|
|
|
|
{ TRACK_3, -TECHNO_VERSUS_COL_SPACING*1.5f, NULL },
|
|
|
|
|
{ TRACK_4, -TECHNO_VERSUS_COL_SPACING*0.5f, NULL },
|
|
|
|
|
{ TRACK_5, +TECHNO_VERSUS_COL_SPACING*0.5f, NULL },
|
|
|
|
|
{ TRACK_6, +TECHNO_VERSUS_COL_SPACING*1.5f, NULL },
|
|
|
|
|
{ TRACK_7, +TECHNO_VERSUS_COL_SPACING*2.5f, NULL },
|
|
|
|
|
{ TRACK_8, +TECHNO_VERSUS_COL_SPACING*3.5f, NULL },
|
|
|
|
|
},
|
|
|
|
|
{ // PLAYER_2
|
|
|
|
|
{ TRACK_1, -TECHNO_VERSUS_COL_SPACING*3.5f, NULL },
|
|
|
|
|
{ TRACK_2, -TECHNO_VERSUS_COL_SPACING*2.5f, NULL },
|
|
|
|
|
{ TRACK_3, -TECHNO_VERSUS_COL_SPACING*1.5f, NULL },
|
|
|
|
|
{ TRACK_4, -TECHNO_VERSUS_COL_SPACING*0.5f, NULL },
|
|
|
|
|
{ TRACK_5, +TECHNO_VERSUS_COL_SPACING*0.5f, NULL },
|
|
|
|
|
{ TRACK_6, +TECHNO_VERSUS_COL_SPACING*1.5f, NULL },
|
|
|
|
|
{ TRACK_7, +TECHNO_VERSUS_COL_SPACING*2.5f, NULL },
|
|
|
|
|
{ TRACK_8, +TECHNO_VERSUS_COL_SPACING*3.5f, NULL },
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
{ // m_iInputColumn[NUM_GameController][NUM_GameButton]
|
|
|
|
|
{ 1, 6, 4, 3, 2, 5, Style::NO_MAPPING, 0, 7, Style::END_MAPPING },
|
|
|
|
|
{ 1, 6, 4, 3, 2, 5, Style::NO_MAPPING, 0, 7, Style::END_MAPPING },
|
|
|
|
|
// { 1, 6, 4, Style::NO_MAPPING, 2, 5, Style::NO_MAPPING, 0, 7, Style::END_MAPPING },
|
|
|
|
|
// { 1, 6, 4, Style::NO_MAPPING, 2, 5, Style::NO_MAPPING, 0, 7, Style::END_MAPPING },
|
|
|
|
|
},
|
|
|
|
|
{ // m_iColumnDrawOrder[MAX_COLS_PER_PLAYER];
|
|
|
|
|
0,1,2,3,4,5,6,7
|
|
|
|
|
},
|
|
|
|
|
true, // m_bNeedsZoomOutWith2Players
|
|
|
|
|
false, // m_bCanUseBeginnerHelper
|
|
|
|
|
false, // m_bLockDifficulties
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
static const Style g_Style_Techno_Double4 =
|
|
|
|
|
{ // STYLE_TECHNO_DOUBLE4
|
|
|
|
|
true, // m_bUsedForGameplay
|
|
|
|
|
true, // m_bUsedForEdit
|
|
|
|
|
false, // m_bUsedForDemonstration
|
|
|
|
|
false, // m_bUsedForHowToPlay
|
|
|
|
|
"double4", // m_szName
|
|
|
|
|
StepsType_techno_double4, // m_StepsType
|
|
|
|
|
StyleType_OnePlayerTwoSides, // m_StyleType
|
|
|
|
|
8, // m_iColsPerPlayer
|
|
|
|
|
{ // m_ColumnInfo[NUM_PLAYERS][MAX_COLS_PER_PLAYER];
|
|
|
|
|
{ // PLAYER_1
|
|
|
|
|
{ TRACK_1, -TECHNO_COL_SPACING*3.5f, NULL },
|
|
|
|
|
{ TRACK_2, -TECHNO_COL_SPACING*2.5f, NULL },
|
|
|
|
|
{ TRACK_3, -TECHNO_COL_SPACING*1.5f, NULL },
|
|
|
|
|
{ TRACK_4, -TECHNO_COL_SPACING*0.5f, NULL },
|
|
|
|
|
{ TRACK_5, +TECHNO_COL_SPACING*0.5f, NULL },
|
|
|
|
|
{ TRACK_6, +TECHNO_COL_SPACING*1.5f, NULL },
|
|
|
|
|
{ TRACK_7, +TECHNO_COL_SPACING*2.5f, NULL },
|
|
|
|
|
{ TRACK_8, +TECHNO_COL_SPACING*3.5f, NULL },
|
|
|
|
|
},
|
|
|
|
|
{ // PLAYER_2
|
|
|
|
|
{ TRACK_1, -TECHNO_COL_SPACING*3.5f, NULL },
|
|
|
|
|
{ TRACK_2, -TECHNO_COL_SPACING*2.5f, NULL },
|
|
|
|
|
{ TRACK_3, -TECHNO_COL_SPACING*1.5f, NULL },
|
|
|
|
|
{ TRACK_4, -TECHNO_COL_SPACING*0.5f, NULL },
|
|
|
|
|
{ TRACK_5, +TECHNO_COL_SPACING*0.5f, NULL },
|
|
|
|
|
{ TRACK_6, +TECHNO_COL_SPACING*1.5f, NULL },
|
|
|
|
|
{ TRACK_7, +TECHNO_COL_SPACING*2.5f, NULL },
|
|
|
|
|
{ TRACK_8, +TECHNO_COL_SPACING*3.5f, NULL },
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
{ // m_iInputColumn[NUM_GameController][NUM_GameButton]
|
|
|
|
|
{ 0, 3, 2, 1, Style::END_MAPPING },
|
|
|
|
|
{ 4, 7, 6, 5, Style::END_MAPPING },
|
|
|
|
|
},
|
|
|
|
|
{ // m_iColumnDrawOrder[MAX_COLS_PER_PLAYER];
|
|
|
|
|
0,1,2,3,4,5,6,7
|
|
|
|
|
},
|
|
|
|
|
false, // m_bNeedsZoomOutWith2Players
|
|
|
|
|
false, // m_bCanUseBeginnerHelper
|
|
|
|
|
false, // m_bLockDifficulties
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
static const Style g_Style_Techno_Double5 =
|
|
|
|
|
{ // STYLE_TECHNO_DOUBLE5
|
|
|
|
|
true, // m_bUsedForGameplay
|
|
|
|
|
true, // m_bUsedForEdit
|
|
|
|
|
false, // m_bUsedForDemonstration
|
|
|
|
|
false, // m_bUsedForHowToPlay
|
|
|
|
|
"double5", // m_szName
|
|
|
|
|
StepsType_techno_double5, // m_StepsType
|
|
|
|
|
StyleType_OnePlayerTwoSides, // m_StyleType
|
|
|
|
|
10, // m_iColsPerPlayer
|
|
|
|
|
{ // m_ColumnInfo[NUM_PLAYERS][MAX_COLS_PER_PLAYER];
|
|
|
|
|
{ // PLAYER_1
|
|
|
|
|
{ TRACK_1, -TECHNO_COL_SPACING*4.5f, NULL },
|
|
|
|
|
{ TRACK_2, -TECHNO_COL_SPACING*3.5f, NULL },
|
|
|
|
|
{ TRACK_3, -TECHNO_COL_SPACING*2.5f, NULL },
|
|
|
|
|
{ TRACK_4, -TECHNO_COL_SPACING*1.5f, NULL },
|
|
|
|
|
{ TRACK_5, -TECHNO_COL_SPACING*0.5f, NULL },
|
|
|
|
|
{ TRACK_6, +TECHNO_COL_SPACING*0.5f, NULL },
|
|
|
|
|
{ TRACK_7, +TECHNO_COL_SPACING*1.5f, NULL },
|
|
|
|
|
{ TRACK_8, +TECHNO_COL_SPACING*2.5f, NULL },
|
|
|
|
|
{ TRACK_9, +TECHNO_COL_SPACING*3.5f, NULL },
|
|
|
|
|
{ TRACK_10, +TECHNO_COL_SPACING*4.5f, NULL },
|
|
|
|
|
},
|
|
|
|
|
{ // PLAYER_2
|
|
|
|
|
{ TRACK_1, -TECHNO_COL_SPACING*4.5f, NULL },
|
|
|
|
|
{ TRACK_2, -TECHNO_COL_SPACING*3.5f, NULL },
|
|
|
|
|
{ TRACK_3, -TECHNO_COL_SPACING*2.5f, NULL },
|
|
|
|
|
{ TRACK_4, -TECHNO_COL_SPACING*1.5f, NULL },
|
|
|
|
|
{ TRACK_5, -TECHNO_COL_SPACING*0.5f, NULL },
|
|
|
|
|
{ TRACK_6, +TECHNO_COL_SPACING*0.5f, NULL },
|
|
|
|
|
{ TRACK_7, +TECHNO_COL_SPACING*1.5f, NULL },
|
|
|
|
|
{ TRACK_8, +TECHNO_COL_SPACING*2.5f, NULL },
|
|
|
|
|
{ TRACK_9, +TECHNO_COL_SPACING*3.5f, NULL },
|
|
|
|
|
{ TRACK_10, +TECHNO_COL_SPACING*4.5f, NULL },
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
{ // m_iInputColumn[NUM_GameController][NUM_GameButton]
|
|
|
|
|
{ 1, 6, 4, 3, 2, 5, Style::NO_MAPPING, 0, 7, Style::END_MAPPING },
|
|
|
|
|
{ 1, 6, 4, 3, 2, 5, Style::NO_MAPPING, 0, 7, Style::END_MAPPING },
|
|
|
|
|
},
|
|
|
|
|
{ // m_iColumnDrawOrder[MAX_COLS_PER_PLAYER];
|
|
|
|
|
0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15
|
|
|
|
|
},
|
|
|
|
|
false, // m_bNeedsZoomOutWith2Players
|
|
|
|
|
false, // m_bCanUseBeginnerHelper
|
|
|
|
|
false, // m_bLockDifficulties
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
static const Style g_Style_Techno_Double8 =
|
|
|
|
|
{ // STYLE_TECHNO_DOUBLE8
|
|
|
|
|
true, // m_bUsedForGameplay
|
|
|
|
|
true, // m_bUsedForEdit
|
|
|
|
|
false, // m_bUsedForDemonstration
|
|
|
|
|
false, // m_bUsedForHowToPlay
|
|
|
|
|
"double8", // m_szName
|
|
|
|
|
StepsType_techno_double8, // m_StepsType
|
|
|
|
|
StyleType_OnePlayerTwoSides, // m_StyleType
|
|
|
|
|
16, // m_iColsPerPlayer
|
|
|
|
|
{ // m_ColumnInfo[NUM_PLAYERS][MAX_COLS_PER_PLAYER];
|
|
|
|
|
{ // PLAYER_1
|
|
|
|
|
{ TRACK_1, -TECHNO_VERSUS_COL_SPACING*7.5f, NULL },
|
|
|
|
|
{ TRACK_2, -TECHNO_VERSUS_COL_SPACING*6.5f, NULL },
|
|
|
|
|
{ TRACK_3, -TECHNO_VERSUS_COL_SPACING*5.5f, NULL },
|
|
|
|
|
{ TRACK_4, -TECHNO_VERSUS_COL_SPACING*4.5f, NULL },
|
|
|
|
|
{ TRACK_5, -TECHNO_VERSUS_COL_SPACING*3.5f, NULL },
|
|
|
|
|
{ TRACK_6, -TECHNO_VERSUS_COL_SPACING*2.5f, NULL },
|
|
|
|
|
{ TRACK_7, -TECHNO_VERSUS_COL_SPACING*1.5f, NULL },
|
|
|
|
|
{ TRACK_8, -TECHNO_VERSUS_COL_SPACING*0.5f, NULL },
|
|
|
|
|
{ TRACK_9, +TECHNO_VERSUS_COL_SPACING*0.5f, NULL },
|
|
|
|
|
{ TRACK_10, +TECHNO_VERSUS_COL_SPACING*1.5f, NULL },
|
|
|
|
|
{ TRACK_11, +TECHNO_VERSUS_COL_SPACING*2.5f, NULL },
|
|
|
|
|
{ TRACK_12, +TECHNO_VERSUS_COL_SPACING*3.5f, NULL },
|
|
|
|
|
{ TRACK_13, +TECHNO_VERSUS_COL_SPACING*4.5f, NULL },
|
|
|
|
|
{ TRACK_14, +TECHNO_VERSUS_COL_SPACING*5.5f, NULL },
|
|
|
|
|
{ TRACK_15, +TECHNO_VERSUS_COL_SPACING*6.5f, NULL },
|
|
|
|
|
{ TRACK_16, +TECHNO_VERSUS_COL_SPACING*7.5f, NULL },
|
|
|
|
|
},
|
|
|
|
|
{ // PLAYER_2
|
|
|
|
|
{ TRACK_1, -TECHNO_VERSUS_COL_SPACING*7.5f, NULL },
|
|
|
|
|
{ TRACK_2, -TECHNO_VERSUS_COL_SPACING*6.5f, NULL },
|
|
|
|
|
{ TRACK_3, -TECHNO_VERSUS_COL_SPACING*5.5f, NULL },
|
|
|
|
|
{ TRACK_4, -TECHNO_VERSUS_COL_SPACING*4.5f, NULL },
|
|
|
|
|
{ TRACK_5, -TECHNO_VERSUS_COL_SPACING*3.5f, NULL },
|
|
|
|
|
{ TRACK_6, -TECHNO_VERSUS_COL_SPACING*2.5f, NULL },
|
|
|
|
|
{ TRACK_7, -TECHNO_VERSUS_COL_SPACING*1.5f, NULL },
|
|
|
|
|
{ TRACK_8, -TECHNO_VERSUS_COL_SPACING*0.5f, NULL },
|
|
|
|
|
{ TRACK_9, +TECHNO_VERSUS_COL_SPACING*0.5f, NULL },
|
|
|
|
|
{ TRACK_10, +TECHNO_VERSUS_COL_SPACING*1.5f, NULL },
|
|
|
|
|
{ TRACK_11, +TECHNO_VERSUS_COL_SPACING*2.5f, NULL },
|
|
|
|
|
{ TRACK_12, +TECHNO_VERSUS_COL_SPACING*3.5f, NULL },
|
|
|
|
|
{ TRACK_13, +TECHNO_VERSUS_COL_SPACING*4.5f, NULL },
|
|
|
|
|
{ TRACK_14, +TECHNO_VERSUS_COL_SPACING*5.5f, NULL },
|
|
|
|
|
{ TRACK_15, +TECHNO_VERSUS_COL_SPACING*6.5f, NULL },
|
|
|
|
|
{ TRACK_16, +TECHNO_VERSUS_COL_SPACING*7.5f, NULL },
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
{ // m_iInputColumn[NUM_GameController][NUM_GameButton]
|
|
|
|
|
{ Style::NO_MAPPING, Style::NO_MAPPING, Style::NO_MAPPING, Style::NO_MAPPING,
|
|
|
|
|
1, 3, 2, 0, 4, Style::END_MAPPING },
|
|
|
|
|
{ Style::NO_MAPPING, Style::NO_MAPPING, Style::NO_MAPPING, Style::NO_MAPPING,
|
|
|
|
|
6, 8, 7, 5, 9, Style::END_MAPPING },
|
|
|
|
|
},
|
|
|
|
|
{ // m_iColumnDrawOrder[MAX_COLS_PER_PLAYER];
|
|
|
|
|
0,1,2,3,4,5,6,7,8,9
|
|
|
|
|
},
|
|
|
|
|
false, // m_bNeedsZoomOutWith2Players
|
|
|
|
|
false, // m_bCanUseBeginnerHelper
|
|
|
|
|
false, // m_bLockDifficulties
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
static const Style *g_apGame_Techno_Styles[] =
|
|
|
|
|
{
|
|
|
|
|
&g_Style_Techno_Single4,
|
|
|
|
|
&g_Style_Techno_Single5,
|
|
|
|
|
&g_Style_Techno_Single8,
|
|
|
|
|
&g_Style_Techno_Versus4,
|
|
|
|
|
&g_Style_Techno_Versus5,
|
|
|
|
|
&g_Style_Techno_Versus8,
|
|
|
|
|
&g_Style_Techno_Double4,
|
|
|
|
|
&g_Style_Techno_Double5,
|
|
|
|
|
&g_Style_Techno_Double8,
|
|
|
|
|
NULL
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
static const AutoMappings g_AutoKeyMappings_Techno = AutoMappings (
|
|
|
|
|
"",
|
|
|
|
|
"",
|
|
|
|
|
"",
|
|
|
|
|
AutoMappingEntry( 0, KEY_Ca, TECHNO_BUTTON_LEFT, false ),
|
|
|
|
|
AutoMappingEntry( 0, KEY_Cd, TECHNO_BUTTON_RIGHT, false ),
|
|
|
|
|
AutoMappingEntry( 0, KEY_Cw, TECHNO_BUTTON_UP, false ),
|
|
|
|
|
AutoMappingEntry( 0, KEY_Cx, TECHNO_BUTTON_DOWN, false ),
|
|
|
|
|
AutoMappingEntry( 0, KEY_Cq, TECHNO_BUTTON_UPLEFT, false ),
|
|
|
|
|
AutoMappingEntry( 0, KEY_Ce, TECHNO_BUTTON_UPRIGHT, false ),
|
|
|
|
|
AutoMappingEntry( 0, KEY_Cs, TECHNO_BUTTON_CENTER, false ),
|
|
|
|
|
AutoMappingEntry( 0, KEY_Cz, TECHNO_BUTTON_DOWNLEFT, false ),
|
|
|
|
|
AutoMappingEntry( 0, KEY_Cc, TECHNO_BUTTON_DOWNRIGHT,false ),
|
|
|
|
|
AutoMappingEntry( 0, KEY_KP_C4, TECHNO_BUTTON_LEFT, true ),
|
|
|
|
|
AutoMappingEntry( 0, KEY_KP_C6, TECHNO_BUTTON_RIGHT, true ),
|
|
|
|
|
AutoMappingEntry( 0, KEY_KP_C8, TECHNO_BUTTON_UP, true ),
|
|
|
|
|
AutoMappingEntry( 0, KEY_KP_C2, TECHNO_BUTTON_DOWN, true ),
|
|
|
|
|
AutoMappingEntry( 0, KEY_KP_C7, TECHNO_BUTTON_UPLEFT, true ),
|
|
|
|
|
AutoMappingEntry( 0, KEY_KP_C9, TECHNO_BUTTON_UPRIGHT, true ),
|
|
|
|
|
AutoMappingEntry( 0, KEY_KP_C5, TECHNO_BUTTON_CENTER, true ),
|
|
|
|
|
AutoMappingEntry( 0, KEY_KP_C1, TECHNO_BUTTON_DOWNLEFT, true ),
|
|
|
|
|
AutoMappingEntry( 0, KEY_KP_C3, TECHNO_BUTTON_DOWNRIGHT,true )
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
static const Game g_Game_Techno =
|
|
|
|
|
{
|
|
|
|
|
"techno", // m_szName
|
|
|
|
|
g_apGame_Techno_Styles, // m_apStyles
|
|
|
|
|
false, // m_bCountNotesSeparately
|
|
|
|
|
false, // m_bAllowHopos
|
|
|
|
|
{ // m_InputScheme
|
|
|
|
|
"techno", // m_szName
|
|
|
|
|
NUM_TECHNO_BUTTONS, // m_iButtonsPerController
|
|
|
|
|
{ // m_szButtonNames
|
|
|
|
|
{ "Left", GAME_BUTTON_LEFT },
|
|
|
|
|
{ "Right", GAME_BUTTON_RIGHT },
|
|
|
|
|
{ "Up", GAME_BUTTON_UP },
|
|
|
|
|
{ "Down", GAME_BUTTON_DOWN },
|
|
|
|
|
{ "UpLeft", GameButton_Invalid },
|
|
|
|
|
{ "UpRight", GameButton_Invalid },
|
|
|
|
|
{ "Center", GameButton_Invalid },
|
|
|
|
|
{ "DownLeft", GameButton_Invalid },
|
|
|
|
|
{ "DownRight", GameButton_Invalid },
|
|
|
|
|
},
|
|
|
|
|
&g_AutoKeyMappings_Techno
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
{ GameButtonType_Step },
|
|
|
|
|
{ GameButtonType_Step },
|
|
|
|
|
{ GameButtonType_Step },
|
|
|
|
|
{ GameButtonType_Step },
|
|
|
|
|
{ GameButtonType_Step },
|
|
|
|
|
{ GameButtonType_Step },
|
|
|
|
|
{ GameButtonType_Step },
|
|
|
|
|
{ GameButtonType_Step },
|
|
|
|
|
{ GameButtonType_Step },
|
|
|
|
|
},
|
|
|
|
|
TNS_W1, // m_mapW1To
|
|
|
|
|
TNS_W2, // m_mapW2To
|
|
|
|
|
TNS_W3, // m_mapW3To
|
|
|
|
|
TNS_W4, // m_mapW4To
|
|
|
|
|
TNS_W5, // m_mapW5To
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
/** popn *********************************************************************/
|
|
|
|
|
//ThemeMetric<int> POPN5_COL_SPACING ("ColumnSpacing","Popn5");
|
|
|
|
|
static const int POPN5_COL_SPACING = 32;
|
|
|
|
|
//ThemeMetric<int> POPN9_COL_SPACING ("ColumnSpacing","Popn9");
|
|
|
|
|
static const int POPN9_COL_SPACING = 32;
|
|
|
|
|
static const Style g_Style_Popn_Five =
|
|
|
|
|
{ // STYLE_POPN_FIVE
|
|
|
|
|
true, // m_bUsedForGameplay
|
|
|
|
|
true, // m_bUsedForEdit
|
|
|
|
|
false, // m_bUsedForDemonstration
|
|
|
|
|
false, // m_bUsedForHowToPlay
|
|
|
|
|
"popn-five", // m_szName
|
|
|
|
|
StepsType_popn_five, // m_StepsType
|
|
|
|
|
StyleType_OnePlayerOneSide, // m_StyleType
|
|
|
|
|
5, // m_iColsPerPlayer
|
|
|
|
|
{ // m_ColumnInfo[NUM_PLAYERS][MAX_COLS_PER_PLAYER];
|
|
|
|
|
{ // PLAYER_1
|
|
|
|
|
{ TRACK_1, -POPN5_COL_SPACING*2.0f, NULL },
|
|
|
|
|
{ TRACK_2, -POPN5_COL_SPACING*1.0f, NULL },
|
|
|
|
|
{ TRACK_3, +POPN5_COL_SPACING*0.0f, NULL },
|
|
|
|
|
{ TRACK_4, +POPN5_COL_SPACING*1.0f, NULL },
|
|
|
|
|
{ TRACK_5, +POPN5_COL_SPACING*2.0f, NULL },
|
|
|
|
|
},
|
|
|
|
|
{ // PLAYER_2
|
|
|
|
|
{ TRACK_1, -POPN5_COL_SPACING*2.0f, NULL },
|
|
|
|
|
{ TRACK_2, -POPN5_COL_SPACING*1.0f, NULL },
|
|
|
|
|
{ TRACK_3, +POPN5_COL_SPACING*0.0f, NULL },
|
|
|
|
|
{ TRACK_4, +POPN5_COL_SPACING*1.0f, NULL },
|
|
|
|
|
{ TRACK_5, +POPN5_COL_SPACING*2.0f, NULL },
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
{ // m_iInputColumn[NUM_GameController][NUM_GameButton]
|
|
|
|
|
{ Style::NO_MAPPING, Style::NO_MAPPING, 0, 1, 2, 3, 4, Style::END_MAPPING },
|
|
|
|
|
{ Style::NO_MAPPING, Style::NO_MAPPING, 0, 1, 2, 3, 4, Style::END_MAPPING },
|
|
|
|
|
},
|
|
|
|
|
{ // m_iColumnDrawOrder[MAX_COLS_PER_PLAYER];
|
|
|
|
|
0,1,2,3,4
|
|
|
|
|
},
|
|
|
|
|
false, // m_bNeedsZoomOutWith2Players
|
|
|
|
|
false, // m_bCanUseBeginnerHelper
|
|
|
|
|
false, // m_bLockDifficulties
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
static const Style g_Style_Popn_Nine =
|
|
|
|
|
{ // STYLE_POPN_NINE
|
|
|
|
|
true, // m_bUsedForGameplay
|
|
|
|
|
true, // m_bUsedForEdit
|
|
|
|
|
true, // m_bUsedForDemonstration
|
|
|
|
|
true, // m_bUsedForHowToPlay
|
|
|
|
|
"popn-nine", // m_szName
|
|
|
|
|
StepsType_popn_nine, // m_StepsType
|
|
|
|
|
StyleType_OnePlayerOneSide, // m_StyleType
|
|
|
|
|
9, // m_iColsPerPlayer
|
|
|
|
|
{ // m_ColumnInfo[NUM_PLAYERS][MAX_COLS_PER_PLAYER];
|
|
|
|
|
{ // PLAYER_1
|
|
|
|
|
{ TRACK_1, -POPN9_COL_SPACING*4.0f, NULL },
|
|
|
|
|
{ TRACK_2, -POPN9_COL_SPACING*3.0f, NULL },
|
|
|
|
|
{ TRACK_3, -POPN9_COL_SPACING*2.0f, NULL },
|
|
|
|
|
{ TRACK_4, -POPN9_COL_SPACING*1.0f, NULL },
|
|
|
|
|
{ TRACK_5, +POPN9_COL_SPACING*0.0f, NULL },
|
|
|
|
|
{ TRACK_6, +POPN9_COL_SPACING*1.0f, NULL },
|
|
|
|
|
{ TRACK_7, +POPN9_COL_SPACING*2.0f, NULL },
|
|
|
|
|
{ TRACK_8, +POPN9_COL_SPACING*3.0f, NULL },
|
|
|
|
|
{ TRACK_9, +POPN9_COL_SPACING*4.0f, NULL },
|
|
|
|
|
},
|
|
|
|
|
{ // PLAYER_2
|
|
|
|
|
{ TRACK_1, -POPN9_COL_SPACING*4.0f, NULL },
|
|
|
|
|
{ TRACK_2, -POPN9_COL_SPACING*3.0f, NULL },
|
|
|
|
|
{ TRACK_3, -POPN9_COL_SPACING*2.0f, NULL },
|
|
|
|
|
{ TRACK_4, -POPN9_COL_SPACING*1.0f, NULL },
|
|
|
|
|
{ TRACK_5, +POPN9_COL_SPACING*0.0f, NULL },
|
|
|
|
|
{ TRACK_6, +POPN9_COL_SPACING*1.0f, NULL },
|
|
|
|
|
{ TRACK_7, +POPN9_COL_SPACING*2.0f, NULL },
|
|
|
|
|
{ TRACK_8, +POPN9_COL_SPACING*3.0f, NULL },
|
|
|
|
|
{ TRACK_9, +POPN9_COL_SPACING*4.0f, NULL },
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
{ // m_iInputColumn[NUM_GameController][NUM_GameButton]
|
|
|
|
|
{ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, Style::END_MAPPING },
|
|
|
|
|
{ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, Style::END_MAPPING },
|
|
|
|
|
},
|
|
|
|
|
{ // m_iColumnDrawOrder[MAX_COLS_PER_PLAYER];
|
|
|
|
|
0,1,2,3,4,5,6,7,8
|
|
|
|
|
},
|
|
|
|
|
false, // m_bNeedsZoomOutWith2Players
|
|
|
|
|
false, // m_bCanUseBeginnerHelper
|
|
|
|
|
false, // m_bLockDifficulties
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
static const Style *g_apGame_Popn_Styles[] =
|
|
|
|
|
{
|
|
|
|
|
&g_Style_Popn_Five,
|
|
|
|
|
&g_Style_Popn_Nine,
|
|
|
|
|
NULL
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
static const AutoMappings g_AutoKeyMappings_Popn = AutoMappings (
|
|
|
|
|
"",
|
|
|
|
|
"",
|
|
|
|
|
"",
|
|
|
|
|
AutoMappingEntry( 0, KEY_Cz, POPN_BUTTON_LEFT_WHITE, false ),
|
|
|
|
|
AutoMappingEntry( 0, KEY_Cs, POPN_BUTTON_LEFT_YELLOW,false ),
|
|
|
|
|
AutoMappingEntry( 0, KEY_Cx, POPN_BUTTON_LEFT_GREEN, false ),
|
|
|
|
|
AutoMappingEntry( 0, KEY_Cd, POPN_BUTTON_LEFT_BLUE, false ),
|
|
|
|
|
AutoMappingEntry( 0, KEY_Cc, POPN_BUTTON_RED, false ),
|
|
|
|
|
AutoMappingEntry( 0, KEY_Cf, POPN_BUTTON_RIGHT_BLUE, false ),
|
|
|
|
|
AutoMappingEntry( 0, KEY_Cv, POPN_BUTTON_RIGHT_GREEN,false ),
|
|
|
|
|
AutoMappingEntry( 0, KEY_Cg, POPN_BUTTON_RIGHT_YELLOW,false ),
|
|
|
|
|
AutoMappingEntry( 0, KEY_Cb, POPN_BUTTON_RIGHT_WHITE,false )
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
static const Game g_Game_Popn =
|
|
|
|
|
{
|
|
|
|
|
"popn", // m_szName
|
|
|
|
|
g_apGame_Popn_Styles, // m_apStyles
|
|
|
|
|
true, // m_bCountNotesSeparately
|
|
|
|
|
false, // m_bAllowHopos
|
|
|
|
|
{ // m_InputScheme
|
|
|
|
|
"popn", // m_szName
|
|
|
|
|
NUM_POPN_BUTTONS, // m_iButtonsPerController
|
|
|
|
|
{ // m_szButtonNames
|
|
|
|
|
{ "Left White", GameButton_Invalid },
|
|
|
|
|
{ "Left Yellow", GAME_BUTTON_UP },
|
|
|
|
|
{ "Left Green", GameButton_Invalid },
|
|
|
|
|
{ "Left Blue", GAME_BUTTON_LEFT },
|
|
|
|
|
{ "Red", GAME_BUTTON_START },
|
|
|
|
|
{ "Right Blue", GAME_BUTTON_RIGHT },
|
|
|
|
|
{ "Right Green", GameButton_Invalid },
|
|
|
|
|
{ "Right Yellow", GAME_BUTTON_DOWN },
|
|
|
|
|
{ "Right White", GameButton_Invalid },
|
|
|
|
|
},
|
|
|
|
|
&g_AutoKeyMappings_Popn
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
{ GameButtonType_Step },
|
|
|
|
|
{ GameButtonType_Step },
|
|
|
|
|
{ GameButtonType_Step },
|
|
|
|
|
{ GameButtonType_Step },
|
|
|
|
|
{ GameButtonType_Step },
|
|
|
|
|
{ GameButtonType_Step },
|
|
|
|
|
{ GameButtonType_Step },
|
|
|
|
|
{ GameButtonType_Step },
|
|
|
|
|
{ GameButtonType_Step },
|
|
|
|
|
},
|
|
|
|
|
TNS_W2, // m_mapW1To
|
|
|
|
|
TNS_W2, // m_mapW2To
|
|
|
|
|
TNS_W3, // m_mapW3To
|
|
|
|
|
TNS_W3, // m_mapW4To
|
|
|
|
|
TNS_Miss, // m_mapW5To
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
/** Guitar5 ******************************************************************/
|
|
|
|
|
//ThemeMetric<int> GUITAR5_COL_SPACING ("ColumnSpacing","Guitar5");
|
|
|
|
|
static const int GUITAR5_COL_SPACING = 48;
|
|
|
|
|
|
|
|
|
|
static const Style g_Style_Guitar_Five =
|
|
|
|
|
{ // STYLE_GUITAR_FIVE
|
|
|
|
|
true, // m_bUsedForGameplay
|
|
|
|
|
true, // m_bUsedForEdit
|
|
|
|
|
true, // m_bUsedForDemonstration
|
|
|
|
|
true, // m_bUsedForHowToPlay
|
|
|
|
|
"guitar-five", // m_szName
|
|
|
|
|
StepsType_guitar_five, // m_StepsType
|
|
|
|
|
StyleType_OnePlayerOneSide, // m_StyleType
|
|
|
|
|
5, // m_iColsPerPlayer
|
|
|
|
|
{ // m_ColumnInfo[NUM_PLAYERS][MAX_COLS_PER_PLAYER];
|
|
|
|
|
{ // PLAYER_1
|
|
|
|
|
{ TRACK_1, -GUITAR5_COL_SPACING*2.0f, NULL },
|
|
|
|
|
{ TRACK_2, -GUITAR5_COL_SPACING*1.0f, NULL },
|
|
|
|
|
{ TRACK_3, +GUITAR5_COL_SPACING*0.0f, NULL },
|
|
|
|
|
{ TRACK_4, +GUITAR5_COL_SPACING*1.0f, NULL },
|
|
|
|
|
{ TRACK_5, +GUITAR5_COL_SPACING*2.0f, NULL },
|
|
|
|
|
},
|
|
|
|
|
{ // PLAYER_2
|
|
|
|
|
{ TRACK_1, -GUITAR5_COL_SPACING*2.0f, NULL },
|
|
|
|
|
{ TRACK_2, -GUITAR5_COL_SPACING*1.0f, NULL },
|
|
|
|
|
{ TRACK_3, +GUITAR5_COL_SPACING*0.0f, NULL },
|
|
|
|
|
{ TRACK_4, +GUITAR5_COL_SPACING*1.0f, NULL },
|
|
|
|
|
{ TRACK_5, +GUITAR5_COL_SPACING*2.0f, NULL },
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
{ // m_iInputColumn[NUM_GameController][NUM_GameButton]
|
|
|
|
|
{ 0, 1, 2, 3, 4, Style::END_MAPPING },
|
|
|
|
|
{ 0, 1, 2, 3, 4, Style::END_MAPPING },
|
|
|
|
|
},
|
|
|
|
|
{ // m_iColumnDrawOrder[MAX_COLS_PER_PLAYER];
|
|
|
|
|
0,1,2,3,4
|
|
|
|
|
},
|
|
|
|
|
false, // m_bNeedsZoomOutWith2Players
|
|
|
|
|
false, // m_bCanUseBeginnerHelper
|
|
|
|
|
false, // m_bLockDifficulties
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
static const Style *g_apGame_Guitar_Styles[] =
|
|
|
|
|
{
|
|
|
|
|
&g_Style_Guitar_Five,
|
|
|
|
|
NULL
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
// auto keymappings
|
|
|
|
|
static const AutoMappings g_AutoKeyMappings_Guitar = AutoMappings (
|
|
|
|
|
"",
|
|
|
|
|
"",
|
|
|
|
|
"",
|
|
|
|
|
// p1
|
|
|
|
|
AutoMappingEntry( 0, KEY_Cz, GUITAR_BUTTON_FRET1, false ),
|
|
|
|
|
AutoMappingEntry( 0, KEY_Cx, GUITAR_BUTTON_FRET2, false ),
|
|
|
|
|
AutoMappingEntry( 0, KEY_Cc, GUITAR_BUTTON_FRET3, false ),
|
|
|
|
|
AutoMappingEntry( 0, KEY_Cv, GUITAR_BUTTON_FRET4, false ),
|
|
|
|
|
AutoMappingEntry( 0, KEY_Cb, GUITAR_BUTTON_FRET5, false ),
|
|
|
|
|
AutoMappingEntry( 0, KEY_UP, GUITAR_BUTTON_STRUM_UP, false ),
|
|
|
|
|
AutoMappingEntry( 0, KEY_DOWN, GUITAR_BUTTON_STRUM_DOWN,false ),
|
|
|
|
|
// p2
|
|
|
|
|
AutoMappingEntry( 0, KEY_Cy, GUITAR_BUTTON_FRET1, true ),
|
|
|
|
|
AutoMappingEntry( 0, KEY_Cu, GUITAR_BUTTON_FRET2, true ),
|
|
|
|
|
AutoMappingEntry( 0, KEY_Ci, GUITAR_BUTTON_FRET3, true ),
|
|
|
|
|
AutoMappingEntry( 0, KEY_Co, GUITAR_BUTTON_FRET4, true ),
|
|
|
|
|
AutoMappingEntry( 0, KEY_Cp, GUITAR_BUTTON_FRET5, true ),
|
|
|
|
|
AutoMappingEntry( 0, KEY_KP_C8, GUITAR_BUTTON_STRUM_UP, true ),
|
|
|
|
|
AutoMappingEntry( 0, KEY_KP_C5, GUITAR_BUTTON_STRUM_DOWN,true )
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
static const Game g_Game_Guitar =
|
|
|
|
|
{
|
|
|
|
|
"guitar", // m_szName
|
|
|
|
|
g_apGame_Guitar_Styles, // m_apStyles
|
|
|
|
|
false, // m_bCountNotesSeparately (false stops crashes and failing)
|
|
|
|
|
true, // m_bAllowHopos
|
|
|
|
|
{ // m_InputScheme
|
|
|
|
|
"guitar", // m_szName
|
|
|
|
|
NUM_GUITAR_BUTTONS, // m_iButtonsPerController
|
|
|
|
|
{ // m_szButtonNames
|
|
|
|
|
{ "Fret1", GAME_BUTTON_START },
|
|
|
|
|
{ "Fret2", GAME_BUTTON_BACK },
|
|
|
|
|
{ "Fret3", GameButton_Invalid },
|
|
|
|
|
{ "Fret4", GameButton_Invalid },
|
|
|
|
|
{ "Fret5", GameButton_Invalid },
|
|
|
|
|
{ "StrumUp", GAME_BUTTON_UP },
|
|
|
|
|
{ "StrumDown", GAME_BUTTON_DOWN },
|
|
|
|
|
},
|
|
|
|
|
&g_AutoKeyMappings_Guitar
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
{ GameButtonType_Fret }, // Green
|
|
|
|
|
{ GameButtonType_Fret }, // Red
|
|
|
|
|
{ GameButtonType_Fret }, // Yellow
|
|
|
|
|
{ GameButtonType_Fret }, // Blue
|
|
|
|
|
{ GameButtonType_Fret }, // Orange
|
|
|
|
|
{ GameButtonType_Strum },
|
|
|
|
|
{ GameButtonType_Strum },
|
|
|
|
|
},
|
|
|
|
|
TNS_W1, // m_mapW1To
|
|
|
|
|
TNS_W2, // m_mapW2To
|
|
|
|
|
TNS_W3, // m_mapW3To
|
|
|
|
|
TNS_W4, // m_mapW4To
|
|
|
|
|
TNS_W5, // m_mapW5To
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
/** Lights *******************************************************************/
|
|
|
|
|
|
|
|
|
|
static const AutoMappings g_AutoKeyMappings_Lights = AutoMappings (
|
|
|
|
|
"",
|
|
|
|
|
"",
|
|
|
|
|
"",
|
|
|
|
|
AutoMappingEntry( 0, KEY_Cq, LIGHTS_BUTTON_MARQUEE_UP_LEFT, false ),
|
|
|
|
|
AutoMappingEntry( 0, KEY_Cw, LIGHTS_BUTTON_MARQUEE_UP_RIGHT, false ),
|
|
|
|
|
AutoMappingEntry( 0, KEY_Ce, LIGHTS_BUTTON_MARQUEE_LR_LEFT, false ),
|
|
|
|
|
AutoMappingEntry( 0, KEY_Cr, LIGHTS_BUTTON_MARQUEE_LR_RIGHT, false ),
|
|
|
|
|
AutoMappingEntry( 0, KEY_Ct, LIGHTS_BUTTON_BUTTONS_LEFT, false ),
|
|
|
|
|
AutoMappingEntry( 0, KEY_Cy, LIGHTS_BUTTON_BUTTONS_RIGHT, false ),
|
|
|
|
|
AutoMappingEntry( 0, KEY_Cu, LIGHTS_BUTTON_BASS_LEFT, false ),
|
|
|
|
|
AutoMappingEntry( 0, KEY_Ci, LIGHTS_BUTTON_BASS_RIGHT, false )
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
static const Style g_Style_Lights_Cabinet =
|
|
|
|
|
{ // STYLE_LIGHTS_CABINET
|
|
|
|
|
true, // m_bUsedForGameplay
|
|
|
|
|
true, // m_bUsedForEdit
|
|
|
|
|
false, // m_bUsedForDemonstration
|
|
|
|
|
false, // m_bUsedForHowToPlay
|
|
|
|
|
"cabinet", // m_szName
|
|
|
|
|
StepsType_lights_cabinet, // m_StepsType
|
|
|
|
|
StyleType_OnePlayerOneSide, // m_StyleType
|
|
|
|
|
NUM_CabinetLight, // m_iColsPerPlayer
|
|
|
|
|
{ // m_ColumnInfo[NUM_PLAYERS][MAX_COLS_PER_PLAYER];
|
|
|
|
|
{ // PLAYER_1
|
|
|
|
|
{ TRACK_1, -DANCE_COL_SPACING*3.5f, NULL },
|
|
|
|
|
{ TRACK_2, -DANCE_COL_SPACING*2.5f, NULL },
|
|
|
|
|
{ TRACK_3, -DANCE_COL_SPACING*1.5f, NULL },
|
|
|
|
|
{ TRACK_4, -DANCE_COL_SPACING*0.5f, NULL },
|
|
|
|
|
{ TRACK_5, +DANCE_COL_SPACING*0.5f, NULL },
|
|
|
|
|
{ TRACK_6, +DANCE_COL_SPACING*1.5f, NULL },
|
|
|
|
|
{ TRACK_7, +DANCE_COL_SPACING*2.5f, NULL },
|
|
|
|
|
{ TRACK_8, +DANCE_COL_SPACING*3.5f, NULL },
|
|
|
|
|
},
|
|
|
|
|
{ // PLAYER_2
|
|
|
|
|
{ TRACK_1, -DANCE_COL_SPACING*3.5f, NULL },
|
|
|
|
|
{ TRACK_2, -DANCE_COL_SPACING*2.5f, NULL },
|
|
|
|
|
{ TRACK_3, -DANCE_COL_SPACING*1.5f, NULL },
|
|
|
|
|
{ TRACK_4, -DANCE_COL_SPACING*0.5f, NULL },
|
|
|
|
|
{ TRACK_5, +DANCE_COL_SPACING*0.5f, NULL },
|
|
|
|
|
{ TRACK_6, +DANCE_COL_SPACING*1.5f, NULL },
|
|
|
|
|
{ TRACK_7, +DANCE_COL_SPACING*2.5f, NULL },
|
|
|
|
|
{ TRACK_8, +DANCE_COL_SPACING*3.5f, NULL },
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
{ // m_iInputColumn[NUM_GameController][NUM_GameButton]
|
|
|
|
|
{ 0, 1, 2, 3, 4, 5, 6, 7, 8, Style::END_MAPPING },
|
|
|
|
|
{ 0, 1, 2, 3, 4, 5, 6, 7, 8, Style::END_MAPPING },
|
|
|
|
|
},
|
|
|
|
|
{ // m_iColumnDrawOrder[MAX_COLS_PER_PLAYER];
|
|
|
|
|
0,1,2,3,4,5,6,7
|
|
|
|
|
},
|
|
|
|
|
false, // m_bNeedsZoomOutWith2Players
|
|
|
|
|
false, // m_bCanUseBeginnerHelper
|
|
|
|
|
false, // m_bLockDifficulties
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
static const Style *g_apGame_Lights_Styles[] =
|
|
|
|
|
{
|
|
|
|
|
&g_Style_Lights_Cabinet,
|
|
|
|
|
NULL
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
static const Game g_Game_Lights =
|
|
|
|
|
{
|
|
|
|
|
"lights", // m_szName
|
|
|
|
|
g_apGame_Lights_Styles, // m_apStyles
|
|
|
|
|
false, // m_bCountNotesSeparately
|
|
|
|
|
false, // m_bAllowHopos
|
|
|
|
|
{ // m_InputScheme
|
|
|
|
|
"lights", // m_szName
|
|
|
|
|
NUM_LIGHTS_BUTTONS, // m_iButtonsPerController
|
|
|
|
|
{ // m_szButtonNames
|
|
|
|
|
{ "MarqueeUpLeft", GAME_BUTTON_LEFT },
|
|
|
|
|
{ "MarqueeUpRight", GAME_BUTTON_RIGHT },
|
|
|
|
|
{ "MarqueeLrLeft", GAME_BUTTON_UP },
|
|
|
|
|
{ "MarqueeLrRight", GAME_BUTTON_DOWN },
|
|
|
|
|
{ "ButtonsLeft", GameButton_Invalid },
|
|
|
|
|
{ "ButtonsRight", GameButton_Invalid },
|
|
|
|
|
{ "BassLeft", GameButton_Invalid },
|
|
|
|
|
{ "BassRight", GameButton_Invalid },
|
|
|
|
|
},
|
|
|
|
|
&g_AutoKeyMappings_Lights
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
{ GameButtonType_Step },
|
|
|
|
|
{ GameButtonType_Step },
|
|
|
|
|
{ GameButtonType_Step },
|
|
|
|
|
{ GameButtonType_Step },
|
|
|
|
|
{ GameButtonType_Step },
|
|
|
|
|
{ GameButtonType_Step },
|
|
|
|
|
{ GameButtonType_Step },
|
|
|
|
|
{ GameButtonType_Step },
|
|
|
|
|
},
|
|
|
|
|
TNS_W1, // m_mapW1To
|
|
|
|
|
TNS_W2, // m_mapW2To
|
|
|
|
|
TNS_W3, // m_mapW3To
|
|
|
|
|
TNS_W4, // m_mapW4To
|
|
|
|
|
TNS_W5, // m_mapW5To
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
static const Game *g_Games[] =
|
|
|
|
|
{
|
|
|
|
|
&g_Game_Dance,
|
|
|
|
|
&g_Game_Pump,
|
|
|
|
|
&g_Game_KB7,
|
|
|
|
|
&g_Game_Ez2,
|
|
|
|
|
&g_Game_Para,
|
|
|
|
|
&g_Game_DS3DDX,
|
|
|
|
|
&g_Game_Beat,
|
|
|
|
|
&g_Game_Maniax,
|
|
|
|
|
&g_Game_Techno,
|
|
|
|
|
&g_Game_Popn,
|
|
|
|
|
//&g_Game_Guitar, // nope, still broken. -aj
|
|
|
|
|
&g_Game_Lights,
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
GameManager::GameManager()
|
|
|
|
|
{
|
|
|
|
|
// Register with Lua.
|
|
|
|
|
{
|
|
|
|
|
Lua *L = LUA->Get();
|
|
|
|
|
lua_pushstring( L, "GAMEMAN" );
|
|
|
|
|
this->PushSelf( L );
|
|
|
|
|
lua_settable( L, LUA_GLOBALSINDEX );
|
|
|
|
|
LUA->Release( L );
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
GameManager::~GameManager()
|
|
|
|
|
{
|
|
|
|
|
// Unregister with Lua.
|
|
|
|
|
LUA->UnsetGlobal( "GAMEMAN" );
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void GameManager::GetStylesForGame( const Game *pGame, vector<const Style*>& aStylesAddTo, bool editor )
|
|
|
|
|
{
|
|
|
|
|
for( int s=0; pGame->m_apStyles[s]; ++s )
|
|
|
|
|
{
|
|
|
|
|
const Style *style = pGame->m_apStyles[s];
|
|
|
|
|
if( !editor && !style->m_bUsedForGameplay )
|
|
|
|
|
continue;
|
|
|
|
|
if( editor && !style->m_bUsedForEdit )
|
|
|
|
|
continue;
|
|
|
|
|
|
|
|
|
|
aStylesAddTo.push_back( style );
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
const Game *GameManager::GetGameForStyle( const Style *pStyle )
|
|
|
|
|
{
|
|
|
|
|
for( size_t g=0; g<ARRAYLEN(g_Games); ++g )
|
|
|
|
|
{
|
|
|
|
|
const Game *pGame = g_Games[g];
|
|
|
|
|
for( int s=0; pGame->m_apStyles[s]; ++s )
|
|
|
|
|
{
|
|
|
|
|
if( pGame->m_apStyles[s] == pStyle )
|
|
|
|
|
return pGame;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
FAIL_M(pStyle->m_szName);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
const Style* GameManager::GetEditorStyleForStepsType( StepsType st )
|
|
|
|
|
{
|
|
|
|
|
for( size_t g=0; g<ARRAYLEN(g_Games); ++g )
|
|
|
|
|
{
|
|
|
|
|
const Game *pGame = g_Games[g];
|
|
|
|
|
for( int s=0; pGame->m_apStyles[s]; ++s )
|
|
|
|
|
{
|
|
|
|
|
const Style *style = pGame->m_apStyles[s];
|
|
|
|
|
if( style->m_StepsType == st && style->m_bUsedForEdit )
|
|
|
|
|
return style;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
ASSERT(0); // this Game is missing a Style that can be used with the editor
|
|
|
|
|
return NULL;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void GameManager::GetStepsTypesForGame( const Game *pGame, vector<StepsType>& aStepsTypeAddTo )
|
|
|
|
|
{
|
|
|
|
|
FOREACH_ENUM( StepsType, st )
|
|
|
|
|
{
|
|
|
|
|
bool found = false;
|
|
|
|
|
for( int s=0; pGame->m_apStyles[s]; ++s )
|
|
|
|
|
{
|
|
|
|
|
const Style *style = pGame->m_apStyles[s];
|
|
|
|
|
if( style->m_StepsType != st )
|
|
|
|
|
continue;
|
|
|
|
|
|
|
|
|
|
found = true;
|
|
|
|
|
}
|
|
|
|
|
if( found )
|
|
|
|
|
aStepsTypeAddTo.push_back( st );
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void GameManager::GetDemonstrationStylesForGame( const Game *pGame, vector<const Style*> &vpStylesOut )
|
|
|
|
|
{
|
|
|
|
|
vpStylesOut.clear();
|
|
|
|
|
|
|
|
|
|
for( int s=0; pGame->m_apStyles[s]; ++s )
|
|
|
|
|
{
|
|
|
|
|
const Style *style = pGame->m_apStyles[s];
|
|
|
|
|
if( style->m_bUsedForDemonstration )
|
|
|
|
|
vpStylesOut.push_back( style );
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
ASSERT( vpStylesOut.size()>0 ); // this Game is missing a Style that can be used with the demonstration
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
const Style* GameManager::GetHowToPlayStyleForGame( const Game *pGame )
|
|
|
|
|
{
|
|
|
|
|
for( int s=0; pGame->m_apStyles[s]; ++s )
|
|
|
|
|
{
|
|
|
|
|
const Style *style = pGame->m_apStyles[s];
|
|
|
|
|
if( style->m_bUsedForHowToPlay )
|
|
|
|
|
return style;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
ASSERT(0); // this Game is missing a Style that can be used with HowToPlay
|
|
|
|
|
return NULL;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void GameManager::GetCompatibleStyles( const Game *pGame, int iNumPlayers, vector<const Style*> &vpStylesOut )
|
|
|
|
|
{
|
|
|
|
|
FOREACH_ENUM( StyleType, styleType )
|
|
|
|
|
{
|
|
|
|
|
int iNumPlayersRequired;
|
|
|
|
|
switch( styleType )
|
|
|
|
|
{
|
|
|
|
|
DEFAULT_FAIL( styleType );
|
|
|
|
|
case StyleType_OnePlayerOneSide:
|
|
|
|
|
case StyleType_OnePlayerTwoSides:
|
|
|
|
|
iNumPlayersRequired = 1;
|
|
|
|
|
break;
|
|
|
|
|
case StyleType_TwoPlayersTwoSides:
|
|
|
|
|
case StyleType_TwoPlayersSharedSides:
|
|
|
|
|
iNumPlayersRequired = 2;
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if( iNumPlayers != iNumPlayersRequired )
|
|
|
|
|
continue;
|
|
|
|
|
|
|
|
|
|
for( int s=0; pGame->m_apStyles[s]; ++s )
|
|
|
|
|
{
|
|
|
|
|
const Style *style = pGame->m_apStyles[s];
|
|
|
|
|
if( style->m_StyleType != styleType )
|
|
|
|
|
continue;
|
|
|
|
|
if( !style->m_bUsedForGameplay )
|
|
|
|
|
continue;
|
|
|
|
|
|
|
|
|
|
vpStylesOut.push_back( style );
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
const Style *GameManager::GetFirstCompatibleStyle( const Game *pGame, int iNumPlayers, StepsType st )
|
|
|
|
|
{
|
|
|
|
|
vector<const Style*> vpStyles;
|
|
|
|
|
GetCompatibleStyles( pGame, iNumPlayers, vpStyles );
|
|
|
|
|
FOREACH_CONST( const Style*, vpStyles, s )
|
|
|
|
|
if( (*s)->m_StepsType == st )
|
|
|
|
|
return *s;
|
|
|
|
|
FAIL_M( ssprintf("No compatible styles for %s - %s with %d player%s.", pGame->m_szName,
|
|
|
|
|
GetStepsTypeInfo(st).szName, iNumPlayers, iNumPlayers==1?"":"s") );
|
|
|
|
|
return NULL;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void GameManager::GetEnabledGames( vector<const Game*>& aGamesOut )
|
|
|
|
|
{
|
|
|
|
|
for( size_t g=0; g<ARRAYLEN(g_Games); ++g )
|
|
|
|
|
{
|
|
|
|
|
const Game *pGame = g_Games[g];
|
|
|
|
|
if( IsGameEnabled( pGame ) )
|
|
|
|
|
aGamesOut.push_back( pGame );
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
const Game* GameManager::GetDefaultGame()
|
|
|
|
|
{
|
|
|
|
|
const Game *pDefault = NULL;
|
|
|
|
|
if( pDefault == NULL )
|
|
|
|
|
{
|
|
|
|
|
for( size_t i=0; pDefault == NULL && i < ARRAYLEN(g_Games); ++i )
|
|
|
|
|
{
|
|
|
|
|
if( IsGameEnabled(g_Games[i]) )
|
|
|
|
|
pDefault = g_Games[i];
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if( pDefault == NULL )
|
|
|
|
|
RageException::Throw( "No NoteSkins found" );
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return pDefault;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
int GameManager::GetIndexFromGame( const Game* pGame )
|
|
|
|
|
{
|
|
|
|
|
for( size_t g=0; g<ARRAYLEN(g_Games); ++g )
|
|
|
|
|
{
|
|
|
|
|
if( g_Games[g] == pGame )
|
|
|
|
|
return g;
|
|
|
|
|
}
|
|
|
|
|
ASSERT(0);
|
|
|
|
|
return 0;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
const Game* GameManager::GetGameFromIndex( int index )
|
|
|
|
|
{
|
|
|
|
|
ASSERT( index >= 0 );
|
|
|
|
|
ASSERT( index < (int) ARRAYLEN(g_Games) );
|
|
|
|
|
return g_Games[index];
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
bool GameManager::IsGameEnabled( const Game *pGame )
|
|
|
|
|
{
|
|
|
|
|
return NOTESKIN->DoNoteSkinsExistForGame( pGame );
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
const StepsTypeInfo &GameManager::GetStepsTypeInfo( StepsType st )
|
|
|
|
|
{
|
|
|
|
|
ASSERT( ARRAYLEN(g_StepsTypeInfos) == NUM_StepsType );
|
|
|
|
|
ASSERT_M( st < NUM_StepsType, ssprintf("StepsType %d < NUM_StepsType (%d)", st, NUM_StepsType) );
|
|
|
|
|
return g_StepsTypeInfos[st];
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
StepsType GameManager::StringToStepsType( RString sStepsType )
|
|
|
|
|
{
|
|
|
|
|
sStepsType.MakeLower();
|
|
|
|
|
|
|
|
|
|
// TODO: Format specific hacks should be moved into the file loader for that format.
|
|
|
|
|
// If i'm assuming this correctly, these two only apply to .sm files: -aj
|
|
|
|
|
|
|
|
|
|
// HACK: We eliminated "ez2-single-hard", but we should still handle it.
|
|
|
|
|
if( sStepsType == "ez2-single-hard" )
|
|
|
|
|
sStepsType = "ez2-single";
|
|
|
|
|
|
|
|
|
|
// HACK: "para-single" used to be called just "para"
|
|
|
|
|
if( sStepsType == "para" )
|
|
|
|
|
sStepsType = "para-single";
|
|
|
|
|
|
|
|
|
|
for( int i=0; i<NUM_StepsType; i++ )
|
|
|
|
|
if( g_StepsTypeInfos[i].szName == sStepsType )
|
|
|
|
|
return StepsType(i);
|
|
|
|
|
|
|
|
|
|
return StepsType_Invalid;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
RString GameManager::StyleToLocalizedString( const Style* style )
|
|
|
|
|
{
|
|
|
|
|
RString s = style->m_szName;
|
|
|
|
|
s = Capitalize( s );
|
|
|
|
|
if( THEME->HasString( "Style", s ) )
|
|
|
|
|
return THEME->GetString( "Style", s );
|
|
|
|
|
else
|
|
|
|
|
return s;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
const Game* GameManager::StringToGame( RString sGame )
|
|
|
|
|
{
|
|
|
|
|
for( size_t i=0; i<ARRAYLEN(g_Games); ++i )
|
|
|
|
|
if( !sGame.CompareNoCase(g_Games[i]->m_szName) )
|
|
|
|
|
return g_Games[i];
|
|
|
|
|
|
|
|
|
|
return NULL;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
const Style* GameManager::GameAndStringToStyle( const Game *game, RString sStyle )
|
|
|
|
|
{
|
|
|
|
|
for( int s=0; game->m_apStyles[s]; ++s )
|
|
|
|
|
{
|
|
|
|
|
const Style* style = game->m_apStyles[s];
|
|
|
|
|
if( sStyle.CompareNoCase(style->m_szName) == 0 )
|
|
|
|
|
return style;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return NULL;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// lua start
|
|
|
|
|
#include "LuaBinding.h"
|
|
|
|
|
|
|
|
|
|
/** @brief Allow Lua to have access to the GameManager. */
|
|
|
|
|
class LunaGameManager: public Luna<GameManager>
|
|
|
|
|
{
|
|
|
|
|
public:
|
|
|
|
|
static int StepsTypeToLocalizedString( T* p, lua_State *L ) { lua_pushstring(L, p->GetStepsTypeInfo(Enum::Check<StepsType>(L, 1)).GetLocalizedString() ); return 1; }
|
|
|
|
|
static int GetFirstStepsTypeForGame( T* p, lua_State *L )
|
|
|
|
|
{
|
|
|
|
|
Game *pGame = Luna<Game>::check( L, 1 );
|
|
|
|
|
|
|
|
|
|
vector<StepsType> vstAddTo;
|
|
|
|
|
p->GetStepsTypesForGame( pGame, vstAddTo );
|
|
|
|
|
ASSERT( !vstAddTo.empty() );
|
|
|
|
|
StepsType st = vstAddTo[0];
|
|
|
|
|
LuaHelpers::Push( L, st );
|
|
|
|
|
return 1;
|
|
|
|
|
}
|
|
|
|
|
static int IsGameEnabled( T* p, lua_State *L )
|
|
|
|
|
{
|
|
|
|
|
const Game *pGame = p->StringToGame(SArg(1));
|
|
|
|
|
if(pGame)
|
|
|
|
|
lua_pushboolean(L, p->IsGameEnabled( pGame ) );
|
|
|
|
|
else
|
|
|
|
|
lua_pushnil(L);
|
|
|
|
|
|
|
|
|
|
return 1;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
LunaGameManager()
|
|
|
|
|
{
|
|
|
|
|
ADD_METHOD( StepsTypeToLocalizedString );
|
|
|
|
|
ADD_METHOD( GetFirstStepsTypeForGame );
|
|
|
|
|
ADD_METHOD( IsGameEnabled );
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
LUA_REGISTER_CLASS( GameManager )
|
|
|
|
|
// lua end
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
* (c) 2001-2006 Chris Danford, Glenn Maynard
|
|
|
|
|
* All rights reserved.
|
|
|
|
|
*
|
|
|
|
|
* Permission is hereby granted, free of charge, to any person obtaining a
|
|
|
|
|
* copy of this software and associated documentation files (the
|
|
|
|
|
* "Software"), to deal in the Software without restriction, including
|
|
|
|
|
* without limitation the rights to use, copy, modify, merge, publish,
|
|
|
|
|
* distribute, and/or sell copies of the Software, and to permit persons to
|
|
|
|
|
* whom the Software is furnished to do so, provided that the above
|
|
|
|
|
* copyright notice(s) and this permission notice appear in all copies of
|
|
|
|
|
* the Software and that both the above copyright notice(s) and this
|
|
|
|
|
* permission notice appear in supporting documentation.
|
|
|
|
|
*
|
|
|
|
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
|
|
|
|
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
|
|
|
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF
|
|
|
|
|
* THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS
|
|
|
|
|
* INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT
|
|
|
|
|
* OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
|
|
|
|
|
* OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
|
|
|
|
* OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
|
|
|
|
* PERFORMANCE OF THIS SOFTWARE.
|
|
|
|
|
*/
|