add Dance Maniax and Technomotion support

This commit is contained in:
Chris Danford
2003-09-03 04:30:29 +00:00
parent 09cfe7f3b8
commit 0cd5766ba2
14 changed files with 465 additions and 329 deletions
+9 -7
View File
@@ -13,13 +13,15 @@
enum Game
{
GAME_DANCE, // Dance Dance Revolution
GAME_PUMP, // Pump It Up
GAME_EZ2, // Ez2dancer
GAME_PARA, // ParaPAraParadise
GAME_DS3DDX, // Dance Station 3DDX.
GAME_BM, // Beatmania
NUM_GAMES, // leave this at the end
GAME_DANCE, // Dance Dance Revolution
GAME_PUMP, // Pump It Up
GAME_EZ2, // Ez2dancer
GAME_PARA, // ParaPAraParadise
GAME_DS3DDX, // Dance Station 3DDX.
GAME_BM, // Beatmania
GAME_MANIAX, // DanceManiax
GAME_TECHNO, // TechnoMotion
NUM_GAMES, // leave this at the end
GAME_INVALID,
};
+3
View File
@@ -79,6 +79,9 @@ enum StepsType
STEPS_TYPE_PARA_SINGLE,
STEPS_TYPE_DS3DDX_SINGLE,
STEPS_TYPE_BM_SINGLE,
STEPS_TYPE_MANIAX_SINGLE,
STEPS_TYPE_MANIAX_DOUBLE,
STEPS_TYPE_TECHNO_SINGLE8,
NUM_STEPS_TYPES, // leave this at the end
STEPS_TYPE_INVALID,
};
+39
View File
@@ -140,6 +140,45 @@ enum // BM Buttons
NUM_BM_BUTTONS, // leave this at the end.
};
enum // ManiaxButtons
{
MANIAX_BUTTON_HANDUPLEFT,
MANIAX_BUTTON_HANDUPRIGHT,
MANIAX_BUTTON_HANDLRLEFT,
MANIAX_BUTTON_HANDLRRIGHT,
MANIAX_BUTTON_START,
MANIAX_BUTTON_BACK,
MANIAX_BUTTON_MENULEFT,
MANIAX_BUTTON_MENURIGHT,
MANIAX_BUTTON_MENUUP,
MANIAX_BUTTON_MENUDOWN,
MANIAX_BUTTON_COIN,
MANIAX_BUTTON_OPERATOR,
NUM_MANIAX_BUTTONS, // leave this at the end
};
enum // TechnoButtons
{
TECHNO_BUTTON_LEFT,
TECHNO_BUTTON_RIGHT,
TECHNO_BUTTON_UP,
TECHNO_BUTTON_DOWN,
TECHNO_BUTTON_UPLEFT,
TECHNO_BUTTON_UPRIGHT,
TECHNO_BUTTON_CENTER,
TECHNO_BUTTON_DOWNLEFT,
TECHNO_BUTTON_DOWNRIGHT,
TECHNO_BUTTON_START,
TECHNO_BUTTON_BACK,
TECHNO_BUTTON_MENULEFT,
TECHNO_BUTTON_MENURIGHT,
TECHNO_BUTTON_MENUUP,
TECHNO_BUTTON_MENUDOWN,
TECHNO_BUTTON_COIN,
TECHNO_BUTTON_OPERATOR,
NUM_TECHNO_BUTTONS, // leave this at the end
};
const GameButton MAX_GAME_BUTTONS = 20;
const GameButton GAME_BUTTON_INVALID = MAX_GAME_BUTTONS+1;
+332 -288
View File
@@ -26,32 +26,36 @@ GameManager* GAMEMAN = NULL; // global and accessable from anywhere in our progr
const int DANCE_COL_SPACING = 64;
const int DANCE_6PANEL_VERSUS_COL_SPACING = 54;
const int PUMP_COL_SPACING = 50;
const int EZ2_COL_SPACING = 46;
const int EZ2_REAL_COL_SPACING = 40;
const int PARA_COL_SPACING = 54;
const int DS3DDX_COL_SPACING = 46;
const int BM_COL_SPACING=34;
const int MANIAX_COL_SPACING = 36;
const int TECHNO_COL_SPACING = 64;
struct {
char *name;
int NumTracks;
} const NotesTypes[NUM_STEPS_TYPES] = {
{ "dance-single", 4 },
{ "dance-double", 8 },
{ "dance-couple", 8 },
{ "dance-solo", 6 },
{ "pump-single", 5 },
{ "pump-halfdouble", 6 },
{ "pump-double", 10 },
{ "pump-couple", 10 },
{ "ez2-single", 5 }, // Single: TL,LHH,D,RHH,TR
{ "ez2-double", 10 }, // Double: Single x2
{ "ez2-real", 7 }, // Real: TL,LHH,LHL,D,RHL,RHH,TR
{ "para-single", 5 },
{ "ds3ddx-single", 8 },
{ "bm-single", 6 }
{ "dance-single", 4 },
{ "dance-double", 8 },
{ "dance-couple", 8 },
{ "dance-solo", 6 },
{ "pump-single", 5 },
{ "pump-halfdouble",6 },
{ "pump-double", 10 },
{ "pump-couple", 10 },
{ "ez2-single", 5 }, // Single: TL,LHH,D,RHH,TR
{ "ez2-double", 10 }, // Double: Single x2
{ "ez2-real", 7 }, // Real: TL,LHH,LHL,D,RHL,RHH,TR
{ "para-single", 5 },
{ "ds3ddx-single", 8 },
{ "bm-single", 6 },
{ "maniax-single", 4 },
{ "maniax-double", 8 },
{ "techno-single8", 8 },
};
//
@@ -628,6 +632,192 @@ GameDef g_GameDefs[NUM_GAMES] =
},
}
},
{ // GAME_MANIAX
"maniax", // m_szName
"Dance Maniax", // m_szDescription
2, // m_iNumControllers
NUM_MANIAX_BUTTONS, // m_iButtonsPerController
{ // m_szButtonNames
"HandUpLeft",
"HandUpRight",
"HandLrLeft",
"HandLrRight",
"Start",
"Back",
"MenuLeft",
"MenuRight",
"MenuUp",
"MenuDown",
"Insert Coin",
"Operator",
},
{ // m_szSecondaryFunction
"(MenuLeft)",
"(MenuRight)",
"(MenuDown)",
"(MenuUp)",
"",
"",
"(dedicated)",
"(dedicated)",
"(dedicated)",
"(dedicated)",
"",
"",
},
{ // m_DedicatedMenuButton
MANIAX_BUTTON_MENULEFT, // MENU_BUTTON_LEFT
MANIAX_BUTTON_MENURIGHT, // MENU_BUTTON_RIGHT
MANIAX_BUTTON_MENUUP, // MENU_BUTTON_UP
MANIAX_BUTTON_MENUDOWN, // MENU_BUTTON_DOWN
MANIAX_BUTTON_START, // MENU_BUTTON_START
MANIAX_BUTTON_BACK, // MENU_BUTTON_BACK
MANIAX_BUTTON_COIN, // MENU_BUTTON_COIN
MANIAX_BUTTON_OPERATOR // MENU_BUTTON_OPERATOR
},
{ // m_SecondaryMenuButton
MANIAX_BUTTON_HANDUPLEFT, // MENU_BUTTON_LEFT
MANIAX_BUTTON_HANDUPRIGHT, // MENU_BUTTON_RIGHT
MANIAX_BUTTON_HANDLRRIGHT, // MENU_BUTTON_UP
MANIAX_BUTTON_HANDLRLEFT, // MENU_BUTTON_DOWN
MANIAX_BUTTON_START, // MENU_BUTTON_START
MANIAX_BUTTON_BACK, // MENU_BUTTON_BACK
MANIAX_BUTTON_COIN, // MENU_BUTTON_COIN
MANIAX_BUTTON_OPERATOR, // MENU_BUTTON_OPERATOR
},
{ // m_iDefaultKeyboardKey
{ // PLAYER_1
SDLK_a, // MANIAX_BUTTON_HANDUPLEFT,
SDLK_s, // MANIAX_BUTTON_HANDUPRIGHT,
SDLK_z, // MANIAX_BUTTON_HANDLRLEFT,
SDLK_x, // MANIAX_BUTTON_HANDLRRIGHT,
SDLK_RETURN, // MANIAX_BUTTON_START,
SDLK_ESCAPE, // MANIAX_BUTTON_BACK
SDLK_LEFT, // MANIAX_BUTTON_MENULEFT
SDLK_RIGHT, // MANIAX_BUTTON_MENURIGHT
SDLK_UP, // MANIAX_BUTTON_MENUUP
SDLK_DOWN, // MANIAX_BUTTON_MENUDOWN
SDLK_F1, // MANIAX_BUTTON_COIN
SDLK_SCROLLOCK // MANIAX_BUTTON_OPERATOR
},
{ // PLAYER_2
SDLK_KP4, // MANIAX_BUTTON_HANDUPLEFT,
SDLK_KP5, // MANIAX_BUTTON_HANDUPRIGHT,
SDLK_KP1, // MANIAX_BUTTON_HANDLRLEFT,
SDLK_KP2, // MANIAX_BUTTON_HANDLRRIGHT,
SDLK_KP_ENTER, // MANIAX_BUTTON_START,
SDLK_KP0, // MANIAX_BUTTON_BACK
SDLK_KP_DIVIDE, // MANIAX_BUTTON_MENULEFT
SDLK_KP_MULTIPLY, // MANIAX_BUTTON_MENURIGHT
SDLK_KP_MINUS, // MANIAX_BUTTON_MENUUP
SDLK_KP_PLUS, // MANIAX_BUTTON_MENUDOWN
SDLK_F2, // MANIAX_BUTTON_COIN
-1 // MANIAX_BUTTON_OPERATOR
},
}
},
{ // GAME_MANIAX
"techno", // m_szName
"TechnoMotion", // m_szDescription
2, // m_iNumControllers
NUM_TECHNO_BUTTONS, // m_iButtonsPerController
{ // m_szButtonNames
"Left",
"Right",
"Up",
"Down",
"UpLeft",
"UpRight",
"Center",
"DownLeft",
"DownRight",
"Start",
"Back",
"MenuLeft",
"MenuRight",
"MenuUp",
"MenuDown",
"Insert Coin",
"Operator",
},
{ // m_szSecondaryFunction
"(MenuLeft)",
"(MenuRight)",
"(MenuDown)",
"(MenuUp)",
"",
"",
"",
"",
"",
"(dedicated)",
"(dedicated)",
"(dedicated)",
"(dedicated)",
"",
"",
},
{ // m_DedicatedMenuButton
TECHNO_BUTTON_MENULEFT, // MENU_BUTTON_LEFT
TECHNO_BUTTON_MENURIGHT, // MENU_BUTTON_RIGHT
TECHNO_BUTTON_MENUUP, // MENU_BUTTON_UP
TECHNO_BUTTON_MENUDOWN, // MENU_BUTTON_DOWN
TECHNO_BUTTON_START, // MENU_BUTTON_START
TECHNO_BUTTON_BACK, // MENU_BUTTON_BACK
TECHNO_BUTTON_COIN, // MENU_BUTTON_COIN
TECHNO_BUTTON_OPERATOR // MENU_BUTTON_OPERATOR
},
{ // m_SecondaryMenuButton
TECHNO_BUTTON_LEFT, // MENU_BUTTON_LEFT
TECHNO_BUTTON_RIGHT, // MENU_BUTTON_RIGHT
TECHNO_BUTTON_UP, // MENU_BUTTON_UP
TECHNO_BUTTON_DOWN, // MENU_BUTTON_DOWN
TECHNO_BUTTON_START, // MENU_BUTTON_START
TECHNO_BUTTON_BACK, // MENU_BUTTON_BACK
TECHNO_BUTTON_COIN, // MENU_BUTTON_COIN
TECHNO_BUTTON_OPERATOR, // MENU_BUTTON_OPERATOR
},
{ // m_iDefaultKeyboardKey
{ // PLAYER_1
SDLK_a, // TECHNO_BUTTON_LEFT,
SDLK_d, // TECHNO_BUTTON_RIGHT,
SDLK_w, // TECHNO_BUTTON_UP,
SDLK_x, // TECHNO_BUTTON_DOWN,
SDLK_q, // TECHNO_BUTTON_UPLEFT,
SDLK_e, // TECHNO_BUTTON_UPRIGHT,
SDLK_s, // TECHNO_BUTTON_CENTER,
SDLK_z, // TECHNO_BUTTON_DOWNLEFT,
SDLK_c, // TECHNO_BUTTON_DOWNRIGHT,
SDLK_RETURN, // TECHNO_BUTTON_START,
SDLK_ESCAPE, // TECHNO_BUTTON_BACK
SDLK_LEFT, // TECHNO_BUTTON_MENULEFT
SDLK_RIGHT, // TECHNO_BUTTON_MENURIGHT
SDLK_UP, // TECHNO_BUTTON_MENUUP
SDLK_DOWN, // TECHNO_BUTTON_MENUDOWN
SDLK_F1, // TECHNO_BUTTON_COIN
SDLK_SCROLLOCK // TECHNO_BUTTON_OPERATOR
},
{ // PLAYER_2
SDLK_KP4, // TECHNO_BUTTON_LEFT,
SDLK_KP6, // TECHNO_BUTTON_RIGHT,
SDLK_KP8, // TECHNO_BUTTON_UP,
SDLK_KP2, // TECHNO_BUTTON_DOWN,
SDLK_KP7, // TECHNO_BUTTON_UPLEFT,
SDLK_KP9, // TECHNO_BUTTON_UPRIGHT,
SDLK_KP5, // TECHNO_BUTTON_CENTER,
SDLK_KP1, // TECHNO_BUTTON_DOWNLEFT,
SDLK_KP3, // TECHNO_BUTTON_DOWNRIGHT,
SDLK_KP_ENTER, // TECHNO_BUTTON_START,
SDLK_KP0, // TECHNO_BUTTON_BACK
SDLK_KP_DIVIDE, // TECHNO_BUTTON_MENULEFT
SDLK_KP_MULTIPLY, // TECHNO_BUTTON_MENURIGHT
SDLK_KP_MINUS, // TECHNO_BUTTON_MENUUP
SDLK_KP_PLUS, // TECHNO_BUTTON_MENUDOWN
SDLK_F2, // TECHNO_BUTTON_COIN
-1 // TECHNO_BUTTON_OPERATOR
},
}
},
};
StyleDef g_StyleDefs[NUM_STYLES] =
@@ -721,7 +911,7 @@ StyleDef g_StyleDefs[NUM_STYLES] =
0,1,2,3,4,5,6,7
},
},
{ // StyleDef
{ // STYLE_DANCE_COUPLE
GAME_DANCE, // m_Game
true, // m_bUsedForGameplay
false, // m_bUsedForEdit
@@ -1260,7 +1450,7 @@ StyleDef g_StyleDefs[NUM_STYLES] =
0,1,2,3,4,5,6,7
},
},
{
{ // STYLE_BM_SINGLE
GAME_BM, // m_Game
true, // m_bUsedForGameplay
true, // m_bUsedForEdit
@@ -1290,272 +1480,134 @@ StyleDef g_StyleDefs[NUM_STYLES] =
{ // m_iColumnDrawOrder[MAX_COLS_PER_PLAYER];
0,1,2,3,4,5
},
}
},
{ // STYLE_MANIAX_SINGLE
GAME_MANIAX, // m_Game
true, // m_bUsedForGameplay
true, // m_bUsedForEdit
"single", // m_szName
STEPS_TYPE_MANIAX_SINGLE, // m_StepsType
StyleDef::ONE_PLAYER_ONE_CREDIT, // m_StyleType
{ 160, 480 }, // m_iCenterX
4, // m_iColsPerPlayer
{ // m_ColumnInfo[NUM_PLAYERS][MAX_COLS_PER_PLAYER];
{ // PLAYER_1
{ TRACK_1, GAME_CONTROLLER_1, MANIAX_BUTTON_HANDLRLEFT, -MANIAX_COL_SPACING*1.5f },
{ TRACK_2, GAME_CONTROLLER_1, MANIAX_BUTTON_HANDUPLEFT, -MANIAX_COL_SPACING*0.5f },
{ TRACK_3, GAME_CONTROLLER_1, MANIAX_BUTTON_HANDUPRIGHT, +MANIAX_COL_SPACING*0.5f },
{ TRACK_4, GAME_CONTROLLER_1, MANIAX_BUTTON_HANDLRRIGHT, +MANIAX_COL_SPACING*1.5f },
},
{ // PLAYER_2
{ TRACK_1, GAME_CONTROLLER_2, MANIAX_BUTTON_HANDLRLEFT, -MANIAX_COL_SPACING*1.5f },
{ TRACK_2, GAME_CONTROLLER_2, MANIAX_BUTTON_HANDUPLEFT, -MANIAX_COL_SPACING*0.5f },
{ TRACK_3, GAME_CONTROLLER_2, MANIAX_BUTTON_HANDUPRIGHT, +MANIAX_COL_SPACING*0.5f },
{ TRACK_4, GAME_CONTROLLER_2, MANIAX_BUTTON_HANDLRRIGHT, +MANIAX_COL_SPACING*1.5f },
},
},
{ // m_iColumnDrawOrder[MAX_COLS_PER_PLAYER];
0, 1, 2, 3
},
},
{ // STYLE_MANIAX_VERSUS
GAME_MANIAX, // m_Game
true, // m_bUsedForGameplay
false, // m_bUsedForEdit
"versus", // m_szName
STEPS_TYPE_MANIAX_SINGLE, // m_StepsType
StyleDef::TWO_PLAYERS_TWO_CREDITS, // m_StyleType
{ 160, 480 }, // m_iCenterX
4, // m_iColsPerPlayer
{ // m_ColumnInfo[NUM_PLAYERS][MAX_COLS_PER_PLAYER];
{ // PLAYER_1
{ TRACK_1, GAME_CONTROLLER_1, MANIAX_BUTTON_HANDLRLEFT, -MANIAX_COL_SPACING*1.5f },
{ TRACK_2, GAME_CONTROLLER_1, MANIAX_BUTTON_HANDUPLEFT, -MANIAX_COL_SPACING*0.5f },
{ TRACK_3, GAME_CONTROLLER_1, MANIAX_BUTTON_HANDUPRIGHT, +MANIAX_COL_SPACING*0.5f },
{ TRACK_4, GAME_CONTROLLER_1, MANIAX_BUTTON_HANDLRRIGHT, +MANIAX_COL_SPACING*1.5f },
},
{ // PLAYER_2
{ TRACK_1, GAME_CONTROLLER_2, MANIAX_BUTTON_HANDLRLEFT, -MANIAX_COL_SPACING*1.5f },
{ TRACK_2, GAME_CONTROLLER_2, MANIAX_BUTTON_HANDUPLEFT, -MANIAX_COL_SPACING*0.5f },
{ TRACK_3, GAME_CONTROLLER_2, MANIAX_BUTTON_HANDUPRIGHT, +MANIAX_COL_SPACING*0.5f },
{ TRACK_4, GAME_CONTROLLER_2, MANIAX_BUTTON_HANDLRRIGHT, +MANIAX_COL_SPACING*1.5f },
},
},
{ // m_iColumnDrawOrder[MAX_COLS_PER_PLAYER];
0, 1, 2, 3
},
},
{ // STYLE_MANIAX_DOUBLE
GAME_MANIAX, // m_Game
true, // m_bUsedForGameplay
true, // m_bUsedForEdit
"double", // m_szName
STEPS_TYPE_MANIAX_DOUBLE, // m_StepsType
StyleDef::ONE_PLAYER_TWO_CREDITS, // m_StyleType
{ 320, 320 }, // m_iCenterX
8, // m_iColsPerPlayer
{ // m_ColumnInfo[NUM_PLAYERS][MAX_COLS_PER_PLAYER];
{ // PLAYER_1
{ TRACK_1, GAME_CONTROLLER_1, MANIAX_BUTTON_HANDLRLEFT, -MANIAX_COL_SPACING*3.5f },
{ TRACK_2, GAME_CONTROLLER_1, MANIAX_BUTTON_HANDUPLEFT, -MANIAX_COL_SPACING*2.5f },
{ TRACK_3, GAME_CONTROLLER_1, MANIAX_BUTTON_HANDUPRIGHT, -MANIAX_COL_SPACING*1.5f },
{ TRACK_4, GAME_CONTROLLER_1, MANIAX_BUTTON_HANDLRRIGHT, -MANIAX_COL_SPACING*0.5f },
{ TRACK_5, GAME_CONTROLLER_2, MANIAX_BUTTON_HANDLRLEFT, +MANIAX_COL_SPACING*0.5f },
{ TRACK_6, GAME_CONTROLLER_2, MANIAX_BUTTON_HANDUPLEFT, +MANIAX_COL_SPACING*1.5f },
{ TRACK_7, GAME_CONTROLLER_2, MANIAX_BUTTON_HANDUPRIGHT, +MANIAX_COL_SPACING*2.5f },
{ TRACK_8, GAME_CONTROLLER_2, MANIAX_BUTTON_HANDLRRIGHT, +MANIAX_COL_SPACING*3.5f },
},
{ // PLAYER_2
{ TRACK_1, GAME_CONTROLLER_1, MANIAX_BUTTON_HANDLRLEFT, -MANIAX_COL_SPACING*3.5f },
{ TRACK_2, GAME_CONTROLLER_1, MANIAX_BUTTON_HANDUPLEFT, -MANIAX_COL_SPACING*2.5f },
{ TRACK_3, GAME_CONTROLLER_1, MANIAX_BUTTON_HANDUPRIGHT, -MANIAX_COL_SPACING*1.5f },
{ TRACK_4, GAME_CONTROLLER_1, MANIAX_BUTTON_HANDLRRIGHT, -MANIAX_COL_SPACING*0.5f },
{ TRACK_5, GAME_CONTROLLER_2, MANIAX_BUTTON_HANDLRLEFT, +MANIAX_COL_SPACING*0.5f },
{ TRACK_6, GAME_CONTROLLER_2, MANIAX_BUTTON_HANDUPLEFT, +MANIAX_COL_SPACING*1.5f },
{ TRACK_7, GAME_CONTROLLER_2, MANIAX_BUTTON_HANDUPRIGHT, +MANIAX_COL_SPACING*2.5f },
{ TRACK_8, GAME_CONTROLLER_2, MANIAX_BUTTON_HANDLRRIGHT, +MANIAX_COL_SPACING*3.5f },
},
},
{ // m_iColumnDrawOrder[MAX_COLS_PER_PLAYER];
0,1,2,3,4,5,6,7
},
},
{ // STYLE_TECHNO_SINGLE8
GAME_TECHNO, // m_Game
true, // m_bUsedForGameplay
true, // m_bUsedForEdit
"single8", // m_szName
STEPS_TYPE_TECHNO_SINGLE8, // m_StepsType
StyleDef::ONE_PLAYER_ONE_CREDIT, // m_StyleType
{ 320, 320 }, // m_iCenterX
8, // m_iColsPerPlayer
{ // m_ColumnInfo[NUM_PLAYERS][MAX_COLS_PER_PLAYER];
{ // PLAYER_1
{ TRACK_1, GAME_CONTROLLER_1, TECHNO_BUTTON_DOWNLEFT, -TECHNO_COL_SPACING*3.5f },
{ TRACK_2, GAME_CONTROLLER_1, TECHNO_BUTTON_LEFT, -TECHNO_COL_SPACING*2.5f },
{ TRACK_3, GAME_CONTROLLER_1, TECHNO_BUTTON_UPLEFT, -TECHNO_COL_SPACING*1.5f },
{ TRACK_4, GAME_CONTROLLER_1, TECHNO_BUTTON_DOWN, -TECHNO_COL_SPACING*0.5f },
{ TRACK_5, GAME_CONTROLLER_1, TECHNO_BUTTON_UP, +TECHNO_COL_SPACING*0.5f },
{ TRACK_6, GAME_CONTROLLER_1, TECHNO_BUTTON_UPRIGHT, +TECHNO_COL_SPACING*1.5f },
{ TRACK_7, GAME_CONTROLLER_1, TECHNO_BUTTON_RIGHT, +TECHNO_COL_SPACING*2.5f },
{ TRACK_8, GAME_CONTROLLER_1, TECHNO_BUTTON_DOWNRIGHT,+TECHNO_COL_SPACING*3.5f },
},
{ // PLAYER_2
{ TRACK_1, GAME_CONTROLLER_2, TECHNO_BUTTON_DOWNLEFT, -TECHNO_COL_SPACING*3.5f },
{ TRACK_2, GAME_CONTROLLER_2, TECHNO_BUTTON_LEFT, -TECHNO_COL_SPACING*2.5f },
{ TRACK_3, GAME_CONTROLLER_2, TECHNO_BUTTON_UPLEFT, -TECHNO_COL_SPACING*1.5f },
{ TRACK_4, GAME_CONTROLLER_2, TECHNO_BUTTON_DOWN, -TECHNO_COL_SPACING*0.5f },
{ TRACK_5, GAME_CONTROLLER_2, TECHNO_BUTTON_UP, +TECHNO_COL_SPACING*0.5f },
{ TRACK_6, GAME_CONTROLLER_2, TECHNO_BUTTON_UPRIGHT, +TECHNO_COL_SPACING*1.5f },
{ TRACK_7, GAME_CONTROLLER_2, TECHNO_BUTTON_RIGHT, +TECHNO_COL_SPACING*2.5f },
{ TRACK_8, GAME_CONTROLLER_2, TECHNO_BUTTON_DOWNRIGHT,+TECHNO_COL_SPACING*3.5f },
},
},
{ // m_iColumnDrawOrder[MAX_COLS_PER_PLAYER];
0,1,2,3,4,5,6,7
},
},
};
/*
ModeChoice g_ModeChoices[] =
{
{
GAME_DANCE,
PLAY_MODE_ARCADE,
STYLE_DANCE_SINGLE,
DIFFICULTY_MEDIUM,
"single",
1
},
{
GAME_DANCE,
PLAY_MODE_ARCADE,
STYLE_DANCE_VERSUS,
DIFFICULTY_MEDIUM,
"versus",
2
},
{
GAME_DANCE,
PLAY_MODE_ARCADE,
STYLE_DANCE_DOUBLE,
DIFFICULTY_MEDIUM,
"double",
2
},
{
GAME_DANCE,
PLAY_MODE_ARCADE,
STYLE_DANCE_COUPLE,
DIFFICULTY_MEDIUM,
"couple",
2
},
{
GAME_DANCE,
PLAY_MODE_ARCADE,
STYLE_DANCE_SOLO,
DIFFICULTY_MEDIUM,
"solo",
1
},
{
GAME_PUMP,
PLAY_MODE_ARCADE,
STYLE_PUMP_SINGLE,
DIFFICULTY_EASY,
"normal",
1
},
{
GAME_PUMP,
PLAY_MODE_ARCADE,
STYLE_PUMP_SINGLE,
DIFFICULTY_MEDIUM,
"hard",
1
},
{
GAME_PUMP,
PLAY_MODE_ARCADE,
STYLE_PUMP_SINGLE,
DIFFICULTY_HARD,
"crazy",
1
},
{
GAME_PUMP,
PLAY_MODE_ARCADE,
STYLE_PUMP_VERSUS,
DIFFICULTY_EASY,
"normal",
2
},
{
GAME_PUMP,
PLAY_MODE_ARCADE,
STYLE_PUMP_VERSUS,
DIFFICULTY_MEDIUM,
"hard",
2
},
{
GAME_PUMP,
PLAY_MODE_ARCADE,
STYLE_PUMP_VERSUS,
DIFFICULTY_HARD,
"crazy",
2
},
{
GAME_PUMP,
PLAY_MODE_ARCADE,
STYLE_PUMP_COUPLE,
DIFFICULTY_MEDIUM,
"battle",
2
},
{
GAME_PUMP,
PLAY_MODE_ARCADE,
STYLE_PUMP_DOUBLE,
DIFFICULTY_MEDIUM,
"double",
1
},
{
GAME_PUMP,
PLAY_MODE_ONI,
STYLE_PUMP_SINGLE,
DIFFICULTY_MEDIUM,
"nonstop",
1
},
{
GAME_PUMP,
PLAY_MODE_ONI,
STYLE_PUMP_VERSUS,
DIFFICULTY_MEDIUM,
"nonstop",
2
},
{
GAME_EZ2,
PLAY_MODE_ARCADE,
STYLE_EZ2_SINGLE,
DIFFICULTY_EASY,
"easy",
1
},
{
GAME_EZ2,
PLAY_MODE_ARCADE,
STYLE_EZ2_SINGLE,
DIFFICULTY_HARD,
"hard",
1
},
{
GAME_EZ2,
PLAY_MODE_ARCADE,
STYLE_EZ2_REAL,
DIFFICULTY_MEDIUM,
"real",
1
},
{
GAME_EZ2,
PLAY_MODE_ARCADE,
STYLE_EZ2_DOUBLE,
DIFFICULTY_MEDIUM,
"club",
1
},
{
GAME_EZ2,
PLAY_MODE_ARCADE,
STYLE_EZ2_SINGLE_VERSUS,
DIFFICULTY_EASY,
"easy",
2
},
{
GAME_EZ2,
PLAY_MODE_ARCADE,
STYLE_EZ2_SINGLE_VERSUS,
DIFFICULTY_HARD,
"hard",
2
},
{
GAME_EZ2,
PLAY_MODE_ARCADE,
STYLE_EZ2_REAL_VERSUS,
DIFFICULTY_MEDIUM,
"real",
2
},
{
GAME_PARA,
PLAY_MODE_ARCADE,
STYLE_PARA_SINGLE,
DIFFICULTY_EASY,
"para",
1
},
{
GAME_PARA,
PLAY_MODE_ARCADE,
STYLE_PARA_SINGLE,
DIFFICULTY_EASY,
"easy",
1
},
{
GAME_PARA,
PLAY_MODE_ARCADE,
STYLE_PARA_SINGLE,
DIFFICULTY_MEDIUM,
"hard",
1
},
{
GAME_PARA,
PLAY_MODE_ARCADE,
STYLE_PARA_SINGLE,
DIFFICULTY_HARD,
"expert",
1
},
{
GAME_DS3DDX,
PLAY_MODE_ARCADE,
STYLE_DS3DDX_SINGLE,
DIFFICULTY_EASY,
"pretty",
1
},
{
GAME_DS3DDX,
PLAY_MODE_ARCADE,
STYLE_DS3DDX_SINGLE,
DIFFICULTY_MEDIUM,
"power",
1
},
{
GAME_DS3DDX,
PLAY_MODE_ARCADE,
STYLE_DS3DDX_SINGLE,
DIFFICULTY_HARD,
"power2",
1
},
{
GAME_BM,
PLAY_MODE_ARCADE,
STYLE_BM_SINGLE,
DIFFICULTY_EASY,
"beginner",
1
},
{
GAME_BM,
PLAY_MODE_ARCADE,
STYLE_BM_SINGLE,
DIFFICULTY_MEDIUM,
"normal",
1
},
{
GAME_BM,
PLAY_MODE_ARCADE,
STYLE_BM_SINGLE,
DIFFICULTY_HARD,
"expert",
1
},
};
const int NUM_MODE_CHOICES = sizeof(g_ModeChoices) / sizeof(g_ModeChoices[0]);
*/
GameManager::GameManager()
{
@@ -1601,14 +1653,6 @@ Style GameManager::GetEditorStyleForNotesType( StepsType nt )
return STYLE_INVALID;
}
/*
void GameManager::GetModesChoicesForGame( Game game, vector<ModeChoice*>& apChoicesAddTo )
{
for( int s=0; s<NUM_MODE_CHOICES; s++ )
if( g_ModeChoices[s].game == game)
apChoicesAddTo.push_back( &g_ModeChoices[s] );
}
*/
void GameManager::GetNotesTypesForGame( Game game, vector<StepsType>& aNotesTypeAddTo )
{
+9 -7
View File
@@ -85,13 +85,15 @@ bool ModeChoice::FromString( CString sChoice, bool bIgnoreUnknown )
continue;
}
if( !bIgnoreUnknown )
{
CString sError = ssprintf( "The choice token '%s' is not recognized as a Game, Style, PlayMode, or Difficulty. The choice containing this token will be ignored.", sBit.c_str() );
LOG->Warn( sError );
if( DISPLAY->IsWindowed() )
HOOKS->MessageBoxOK( sError );
}
// Never show this error to the user. It occurs all the time in
// non-dance gametypes.
// if( !bIgnoreUnknown )
// {
// CString sError = ssprintf( "The choice token '%s' is not recognized as a Game, Style, PlayMode, or Difficulty. The choice containing this token will be ignored.", sBit.c_str() );
// LOG->Warn( sError );
// if( DISPLAY->IsWindowed() )
// HOOKS->MessageBoxOK( sError );
// }
bChoiceIsInvalid |= true;
}
+48 -17
View File
@@ -20,6 +20,8 @@
#include "RageUtil.h"
#include "GameManager.h"
#include "arch/arch.h"
#include "RageDisplay.h"
#include "arch/ArchHooks/ArchHooks.h"
NoteSkinManager* NOTESKIN = NULL; // global object accessable from anywhere in the program
@@ -199,17 +201,17 @@ CString NoteSkinManager::GetPathTo( PlayerNumber pn, CString sButtonName, CStrin
CString sNoteSkinName = GAMESTATE->m_PlayerOptions[pn].m_sNoteSkin;
sNoteSkinName.MakeLower();
CString ret = GetPathTo( sNoteSkinName, sButtonName, sFileName );
CString ret = GetPathTo( GetNoteSkinDir(sNoteSkinName), sButtonName+" "+sFileName );
if( !ret.empty() ) // we found something
return ret;
// Search game default NoteSkin
ret = GetPathTo( GAME_BASE_NOTESKIN_NAME, sButtonName, sFileName);
ret = GetPathTo( GetNoteSkinDir(GAME_BASE_NOTESKIN_NAME), sButtonName+" "+sFileName);
if( !ret.empty() ) // we found something
return ret;
// Search global default NoteSkin
ret = GetPathTo( GAME_BASE_NOTESKIN_NAME, "Fallback", sFileName, true );
ret = GetPathTo( GLOBAL_BASE_NOTESKIN_DIR, "Fallback "+sFileName );
if( !ret.empty() ) // we found something
return ret;
@@ -220,22 +222,51 @@ CString NoteSkinManager::GetPathTo( PlayerNumber pn, CString sButtonName, CStrin
GAME_BASE_NOTESKIN_NAME.c_str() );
}
CString NoteSkinManager::GetPathTo( CString sSkinName, CString sButtonName, CString sElementName, bool bGlobalDefault ) // looks in GAMESTATE for the current Style
CString NoteSkinManager::GetPathTo( CString sDir, CString sFileName )
{
const CString sDir = bGlobalDefault ? GLOBAL_BASE_NOTESKIN_DIR : GetNoteSkinDir( sSkinName );
CStringArray matches; // fill this with the possible files
CStringArray arrayPossibleFileNames; // fill this with the possible files
GetDirListing( sDir+sFileName+"*.redir", matches, false, true );
GetDirListing( sDir+sFileName+"*.txt", matches, false, true );
GetDirListing( sDir+sFileName+"*.sprite", matches, false, true );
GetDirListing( sDir+sFileName+"*.png", matches, false, true );
GetDirListing( sDir+sFileName+"*.jpg", matches, false, true );
GetDirListing( sDir+sFileName+"*.bmp", matches, false, true );
GetDirListing( sDir+sFileName+"*.gif", matches, false, true );
GetDirListing( ssprintf("%s%s %s*.txt", sDir.c_str(), sButtonName.c_str(), sElementName.c_str()), arrayPossibleFileNames, false, true );
GetDirListing( ssprintf("%s%s %s*.sprite", sDir.c_str(), sButtonName.c_str(), sElementName.c_str()), arrayPossibleFileNames, false, true );
GetDirListing( ssprintf("%s%s %s*.png", sDir.c_str(), sButtonName.c_str(), sElementName.c_str()), arrayPossibleFileNames, false, true );
GetDirListing( ssprintf("%s%s %s*.jpg", sDir.c_str(), sButtonName.c_str(), sElementName.c_str()), arrayPossibleFileNames, false, true );
GetDirListing( ssprintf("%s%s %s*.bmp", sDir.c_str(), sButtonName.c_str(), sElementName.c_str()), arrayPossibleFileNames, false, true );
GetDirListing( ssprintf("%s%s %s*.gif", sDir.c_str(), sButtonName.c_str(), sElementName.c_str()), arrayPossibleFileNames, false, true );
GetDirListing( ssprintf("%s%s %s*", sDir.c_str(), sButtonName.c_str(), sElementName.c_str()), arrayPossibleFileNames, false, true );
if( arrayPossibleFileNames.empty() )
if( matches.empty() )
return "";
else
return DerefRedir(arrayPossibleFileNames[0]);
if( matches.size() > 1 )
{
CString sError = "Multiple files match '"+sDir+sFileName+"'. Please remove all but one of these files.";
if( DISPLAY->IsWindowed() )
HOOKS->MessageBoxOK( sError );
}
CString sPath = matches[0];
bool bIsARedirect = GetExtension(sPath).CompareNoCase("redir")==0;
if( !bIsARedirect )
{
return sPath;
}
else // bIsARedirect
{
CString sNewFileName = GetRedirContents(sPath);
CString sNewPath = GetPathTo(sDir, sNewFileName);
if( !sNewPath.empty() )
return sNewPath;
else
{
CString message = ssprintf(
"ThemeManager: The redirect '%s' points to the file '%s', which does not exist. "
"Verify that this redirect is correct.",
sPath.c_str(), sNewFileName.c_str());
RageException::Throw( "%s", message.c_str() );
}
}
}
+3 -3
View File
@@ -30,9 +30,9 @@ public:
void GetNoteSkinNames( CStringArray &AddTo ); // looks up current Game in GAMESTATE
bool DoesNoteSkinExist( CString sSkinName ); // looks up current Game in GAMESTATE
CString GetPathTo( PlayerNumber pn, int col, CString sFileName );
CString GetPathTo( PlayerNumber pn, CString sButtonName, CString sFileName );
CString GetPathTo( CString sSkinName, CString sButtonName, CString sFileName, bool bGlobalDefault = false );
CString GetPathTo( PlayerNumber pn, int col, CString sElement );
CString GetPathTo( PlayerNumber pn, CString sButtonName, CString sElement );
CString GetPathTo( CString sDir, CString sFileName );
CString GetMetric( PlayerNumber pn, CString sButtonName, CString sValueName );
int GetMetricI( PlayerNumber pn, CString sButtonName, CString sValueName );
+7
View File
@@ -174,6 +174,13 @@ void splitrelpath(
CString& Ext
);
inline CString GetExtension( CString sPath )
{
CString Dir, FName, Ext;
splitrelpath( sPath, Dir, FName, Ext );
return Ext;
};
typedef int longchar;
extern const wchar_t INVALID_CHAR;
+1
View File
@@ -315,6 +315,7 @@ void FilenameDB::GetFilesSimpleMatch(const CString &dir, const CString &fn, vect
if(second_pos == fn.npos)
{
/* Only one *: "A*B". */
/* XXX: "_blank.png*.png" shouldn't match the file "_blank.png". */
GetFilesMatching(dir, fn.substr(0, first_pos), "", fn.substr(first_pos+1), out, bOnlyDirs);
} else {
/* Two *s: "A*B*C". */
+1
View File
@@ -74,6 +74,7 @@ const CreditLine CREDIT_LINES[] =
{0,"Dj 'AeON ExOdus' Washington"},
{0,"Xelf"},
{0,"SPDS (James Sanders)"},
{0,"k0ldx"},
{0,""},
{0,""},
{0,""},
+1
View File
@@ -38,6 +38,7 @@ bool PrepareForDemonstration() // always return true.
case GAME_PARA: GAMESTATE->m_CurStyle = STYLE_PARA_SINGLE; break;
case GAME_DS3DDX: GAMESTATE->m_CurStyle = STYLE_DS3DDX_SINGLE; break;
case GAME_BM: GAMESTATE->m_CurStyle = STYLE_BM_SINGLE; break;
case GAME_MANIAX: GAMESTATE->m_CurStyle = STYLE_MANIAX_SINGLE; break;
default: ASSERT(0);
}
+7 -6
View File
@@ -44,12 +44,13 @@ ScreenHowToPlay::ScreenHowToPlay() : ScreenAttract("ScreenHowToPlay")
switch(GAMESTATE->m_CurGame) // which style should we use to demonstrate?
{
case GAME_DANCE: GAMESTATE->m_CurStyle = STYLE_DANCE_SINGLE; break;
case GAME_PUMP: GAMESTATE->m_CurStyle = STYLE_PUMP_SINGLE; break;
case GAME_EZ2: GAMESTATE->m_CurStyle = STYLE_EZ2_SINGLE; break;
case GAME_PARA: GAMESTATE->m_CurStyle = STYLE_PARA_SINGLE; break;
case GAME_DS3DDX: GAMESTATE->m_CurStyle = STYLE_DS3DDX_SINGLE; break;
case GAME_BM: GAMESTATE->m_CurStyle = STYLE_BM_SINGLE; break;
case GAME_DANCE: GAMESTATE->m_CurStyle = STYLE_DANCE_SINGLE; break;
case GAME_PUMP: GAMESTATE->m_CurStyle = STYLE_PUMP_SINGLE; break;
case GAME_EZ2: GAMESTATE->m_CurStyle = STYLE_EZ2_SINGLE; break;
case GAME_PARA: GAMESTATE->m_CurStyle = STYLE_PARA_SINGLE; break;
case GAME_DS3DDX: GAMESTATE->m_CurStyle = STYLE_DS3DDX_SINGLE; break;
case GAME_BM: GAMESTATE->m_CurStyle = STYLE_BM_SINGLE; break;
case GAME_MANIAX: GAMESTATE->m_CurStyle = STYLE_MANIAX_SINGLE; break;
default: ASSERT(0); // we should cover all gametypes....
}
+4
View File
@@ -33,6 +33,10 @@ enum Style
STYLE_PARA_SINGLE,
STYLE_DS3DDX_SINGLE,
STYLE_BM_SINGLE,
STYLE_MANIAX_SINGLE,
STYLE_MANIAX_VERSUS,
STYLE_MANIAX_DOUBLE,
STYLE_TECHNO_SINGLE8,
NUM_STYLES, // leave this at the end
STYLE_INVALID,
};
+1 -1
View File
@@ -230,7 +230,7 @@ try_element_again:
ASSERT( asElementPaths.size() == 1 );
CString sPath = asElementPaths[0];
bool bIsARedirect = sPath.length()>6 && sPath.Right(6).CompareNoCase(".redir")==0;
bool bIsARedirect = GetExtension(sPath).CompareNoCase("redir")==0;
if( !bIsARedirect )
{