add Dance Maniax and Technomotion support
This commit is contained in:
@@ -13,13 +13,15 @@
|
|||||||
|
|
||||||
enum Game
|
enum Game
|
||||||
{
|
{
|
||||||
GAME_DANCE, // Dance Dance Revolution
|
GAME_DANCE, // Dance Dance Revolution
|
||||||
GAME_PUMP, // Pump It Up
|
GAME_PUMP, // Pump It Up
|
||||||
GAME_EZ2, // Ez2dancer
|
GAME_EZ2, // Ez2dancer
|
||||||
GAME_PARA, // ParaPAraParadise
|
GAME_PARA, // ParaPAraParadise
|
||||||
GAME_DS3DDX, // Dance Station 3DDX.
|
GAME_DS3DDX, // Dance Station 3DDX.
|
||||||
GAME_BM, // Beatmania
|
GAME_BM, // Beatmania
|
||||||
NUM_GAMES, // leave this at the end
|
GAME_MANIAX, // DanceManiax
|
||||||
|
GAME_TECHNO, // TechnoMotion
|
||||||
|
NUM_GAMES, // leave this at the end
|
||||||
GAME_INVALID,
|
GAME_INVALID,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -79,6 +79,9 @@ enum StepsType
|
|||||||
STEPS_TYPE_PARA_SINGLE,
|
STEPS_TYPE_PARA_SINGLE,
|
||||||
STEPS_TYPE_DS3DDX_SINGLE,
|
STEPS_TYPE_DS3DDX_SINGLE,
|
||||||
STEPS_TYPE_BM_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
|
NUM_STEPS_TYPES, // leave this at the end
|
||||||
STEPS_TYPE_INVALID,
|
STEPS_TYPE_INVALID,
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -140,6 +140,45 @@ enum // BM Buttons
|
|||||||
NUM_BM_BUTTONS, // leave this at the end.
|
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 MAX_GAME_BUTTONS = 20;
|
||||||
const GameButton GAME_BUTTON_INVALID = MAX_GAME_BUTTONS+1;
|
const GameButton GAME_BUTTON_INVALID = MAX_GAME_BUTTONS+1;
|
||||||
|
|
||||||
|
|||||||
+332
-288
@@ -26,32 +26,36 @@ GameManager* GAMEMAN = NULL; // global and accessable from anywhere in our progr
|
|||||||
|
|
||||||
|
|
||||||
const int DANCE_COL_SPACING = 64;
|
const int DANCE_COL_SPACING = 64;
|
||||||
const int DANCE_6PANEL_VERSUS_COL_SPACING = 54;
|
|
||||||
const int PUMP_COL_SPACING = 50;
|
const int PUMP_COL_SPACING = 50;
|
||||||
const int EZ2_COL_SPACING = 46;
|
const int EZ2_COL_SPACING = 46;
|
||||||
const int EZ2_REAL_COL_SPACING = 40;
|
const int EZ2_REAL_COL_SPACING = 40;
|
||||||
const int PARA_COL_SPACING = 54;
|
const int PARA_COL_SPACING = 54;
|
||||||
const int DS3DDX_COL_SPACING = 46;
|
const int DS3DDX_COL_SPACING = 46;
|
||||||
const int BM_COL_SPACING=34;
|
const int BM_COL_SPACING=34;
|
||||||
|
const int MANIAX_COL_SPACING = 36;
|
||||||
|
const int TECHNO_COL_SPACING = 64;
|
||||||
|
|
||||||
struct {
|
struct {
|
||||||
char *name;
|
char *name;
|
||||||
int NumTracks;
|
int NumTracks;
|
||||||
} const NotesTypes[NUM_STEPS_TYPES] = {
|
} const NotesTypes[NUM_STEPS_TYPES] = {
|
||||||
{ "dance-single", 4 },
|
{ "dance-single", 4 },
|
||||||
{ "dance-double", 8 },
|
{ "dance-double", 8 },
|
||||||
{ "dance-couple", 8 },
|
{ "dance-couple", 8 },
|
||||||
{ "dance-solo", 6 },
|
{ "dance-solo", 6 },
|
||||||
{ "pump-single", 5 },
|
{ "pump-single", 5 },
|
||||||
{ "pump-halfdouble", 6 },
|
{ "pump-halfdouble",6 },
|
||||||
{ "pump-double", 10 },
|
{ "pump-double", 10 },
|
||||||
{ "pump-couple", 10 },
|
{ "pump-couple", 10 },
|
||||||
{ "ez2-single", 5 }, // Single: TL,LHH,D,RHH,TR
|
{ "ez2-single", 5 }, // Single: TL,LHH,D,RHH,TR
|
||||||
{ "ez2-double", 10 }, // Double: Single x2
|
{ "ez2-double", 10 }, // Double: Single x2
|
||||||
{ "ez2-real", 7 }, // Real: TL,LHH,LHL,D,RHL,RHH,TR
|
{ "ez2-real", 7 }, // Real: TL,LHH,LHL,D,RHL,RHH,TR
|
||||||
{ "para-single", 5 },
|
{ "para-single", 5 },
|
||||||
{ "ds3ddx-single", 8 },
|
{ "ds3ddx-single", 8 },
|
||||||
{ "bm-single", 6 }
|
{ "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] =
|
StyleDef g_StyleDefs[NUM_STYLES] =
|
||||||
@@ -721,7 +911,7 @@ StyleDef g_StyleDefs[NUM_STYLES] =
|
|||||||
0,1,2,3,4,5,6,7
|
0,1,2,3,4,5,6,7
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{ // StyleDef
|
{ // STYLE_DANCE_COUPLE
|
||||||
GAME_DANCE, // m_Game
|
GAME_DANCE, // m_Game
|
||||||
true, // m_bUsedForGameplay
|
true, // m_bUsedForGameplay
|
||||||
false, // m_bUsedForEdit
|
false, // m_bUsedForEdit
|
||||||
@@ -1260,7 +1450,7 @@ StyleDef g_StyleDefs[NUM_STYLES] =
|
|||||||
0,1,2,3,4,5,6,7
|
0,1,2,3,4,5,6,7
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{ // STYLE_BM_SINGLE
|
||||||
GAME_BM, // m_Game
|
GAME_BM, // m_Game
|
||||||
true, // m_bUsedForGameplay
|
true, // m_bUsedForGameplay
|
||||||
true, // m_bUsedForEdit
|
true, // m_bUsedForEdit
|
||||||
@@ -1290,272 +1480,134 @@ StyleDef g_StyleDefs[NUM_STYLES] =
|
|||||||
{ // m_iColumnDrawOrder[MAX_COLS_PER_PLAYER];
|
{ // m_iColumnDrawOrder[MAX_COLS_PER_PLAYER];
|
||||||
0,1,2,3,4,5
|
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()
|
GameManager::GameManager()
|
||||||
{
|
{
|
||||||
@@ -1601,14 +1653,6 @@ Style GameManager::GetEditorStyleForNotesType( StepsType nt )
|
|||||||
return STYLE_INVALID;
|
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 )
|
void GameManager::GetNotesTypesForGame( Game game, vector<StepsType>& aNotesTypeAddTo )
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -85,13 +85,15 @@ bool ModeChoice::FromString( CString sChoice, bool bIgnoreUnknown )
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
if( !bIgnoreUnknown )
|
// Never show this error to the user. It occurs all the time in
|
||||||
{
|
// non-dance gametypes.
|
||||||
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() );
|
// if( !bIgnoreUnknown )
|
||||||
LOG->Warn( sError );
|
// {
|
||||||
if( DISPLAY->IsWindowed() )
|
// 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() );
|
||||||
HOOKS->MessageBoxOK( sError );
|
// LOG->Warn( sError );
|
||||||
}
|
// if( DISPLAY->IsWindowed() )
|
||||||
|
// HOOKS->MessageBoxOK( sError );
|
||||||
|
// }
|
||||||
bChoiceIsInvalid |= true;
|
bChoiceIsInvalid |= true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -20,6 +20,8 @@
|
|||||||
#include "RageUtil.h"
|
#include "RageUtil.h"
|
||||||
#include "GameManager.h"
|
#include "GameManager.h"
|
||||||
#include "arch/arch.h"
|
#include "arch/arch.h"
|
||||||
|
#include "RageDisplay.h"
|
||||||
|
#include "arch/ArchHooks/ArchHooks.h"
|
||||||
|
|
||||||
|
|
||||||
NoteSkinManager* NOTESKIN = NULL; // global object accessable from anywhere in the program
|
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;
|
CString sNoteSkinName = GAMESTATE->m_PlayerOptions[pn].m_sNoteSkin;
|
||||||
sNoteSkinName.MakeLower();
|
sNoteSkinName.MakeLower();
|
||||||
|
|
||||||
CString ret = GetPathTo( sNoteSkinName, sButtonName, sFileName );
|
CString ret = GetPathTo( GetNoteSkinDir(sNoteSkinName), sButtonName+" "+sFileName );
|
||||||
if( !ret.empty() ) // we found something
|
if( !ret.empty() ) // we found something
|
||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
// Search game default NoteSkin
|
// 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
|
if( !ret.empty() ) // we found something
|
||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
// Search global default NoteSkin
|
// 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
|
if( !ret.empty() ) // we found something
|
||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
@@ -220,22 +222,51 @@ CString NoteSkinManager::GetPathTo( PlayerNumber pn, CString sButtonName, CStrin
|
|||||||
GAME_BASE_NOTESKIN_NAME.c_str() );
|
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 );
|
if( matches.empty() )
|
||||||
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() )
|
|
||||||
return "";
|
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() );
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -30,9 +30,9 @@ public:
|
|||||||
void GetNoteSkinNames( CStringArray &AddTo ); // looks up current Game in GAMESTATE
|
void GetNoteSkinNames( CStringArray &AddTo ); // looks up current Game in GAMESTATE
|
||||||
bool DoesNoteSkinExist( CString sSkinName ); // 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, int col, CString sElement );
|
||||||
CString GetPathTo( PlayerNumber pn, CString sButtonName, CString sFileName );
|
CString GetPathTo( PlayerNumber pn, CString sButtonName, CString sElement );
|
||||||
CString GetPathTo( CString sSkinName, CString sButtonName, CString sFileName, bool bGlobalDefault = false );
|
CString GetPathTo( CString sDir, CString sFileName );
|
||||||
|
|
||||||
CString GetMetric( PlayerNumber pn, CString sButtonName, CString sValueName );
|
CString GetMetric( PlayerNumber pn, CString sButtonName, CString sValueName );
|
||||||
int GetMetricI( PlayerNumber pn, CString sButtonName, CString sValueName );
|
int GetMetricI( PlayerNumber pn, CString sButtonName, CString sValueName );
|
||||||
|
|||||||
@@ -174,6 +174,13 @@ void splitrelpath(
|
|||||||
CString& Ext
|
CString& Ext
|
||||||
);
|
);
|
||||||
|
|
||||||
|
inline CString GetExtension( CString sPath )
|
||||||
|
{
|
||||||
|
CString Dir, FName, Ext;
|
||||||
|
splitrelpath( sPath, Dir, FName, Ext );
|
||||||
|
return Ext;
|
||||||
|
};
|
||||||
|
|
||||||
typedef int longchar;
|
typedef int longchar;
|
||||||
extern const wchar_t INVALID_CHAR;
|
extern const wchar_t INVALID_CHAR;
|
||||||
|
|
||||||
|
|||||||
@@ -315,6 +315,7 @@ void FilenameDB::GetFilesSimpleMatch(const CString &dir, const CString &fn, vect
|
|||||||
if(second_pos == fn.npos)
|
if(second_pos == fn.npos)
|
||||||
{
|
{
|
||||||
/* Only one *: "A*B". */
|
/* 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);
|
GetFilesMatching(dir, fn.substr(0, first_pos), "", fn.substr(first_pos+1), out, bOnlyDirs);
|
||||||
} else {
|
} else {
|
||||||
/* Two *s: "A*B*C". */
|
/* Two *s: "A*B*C". */
|
||||||
|
|||||||
@@ -74,6 +74,7 @@ const CreditLine CREDIT_LINES[] =
|
|||||||
{0,"Dj 'AeON ExOdus' Washington"},
|
{0,"Dj 'AeON ExOdus' Washington"},
|
||||||
{0,"Xelf"},
|
{0,"Xelf"},
|
||||||
{0,"SPDS (James Sanders)"},
|
{0,"SPDS (James Sanders)"},
|
||||||
|
{0,"k0ldx"},
|
||||||
{0,""},
|
{0,""},
|
||||||
{0,""},
|
{0,""},
|
||||||
{0,""},
|
{0,""},
|
||||||
|
|||||||
@@ -38,6 +38,7 @@ bool PrepareForDemonstration() // always return true.
|
|||||||
case GAME_PARA: GAMESTATE->m_CurStyle = STYLE_PARA_SINGLE; break;
|
case GAME_PARA: GAMESTATE->m_CurStyle = STYLE_PARA_SINGLE; break;
|
||||||
case GAME_DS3DDX: GAMESTATE->m_CurStyle = STYLE_DS3DDX_SINGLE; break;
|
case GAME_DS3DDX: GAMESTATE->m_CurStyle = STYLE_DS3DDX_SINGLE; break;
|
||||||
case GAME_BM: GAMESTATE->m_CurStyle = STYLE_BM_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);
|
default: ASSERT(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -44,12 +44,13 @@ ScreenHowToPlay::ScreenHowToPlay() : ScreenAttract("ScreenHowToPlay")
|
|||||||
|
|
||||||
switch(GAMESTATE->m_CurGame) // which style should we use to demonstrate?
|
switch(GAMESTATE->m_CurGame) // which style should we use to demonstrate?
|
||||||
{
|
{
|
||||||
case GAME_DANCE: GAMESTATE->m_CurStyle = STYLE_DANCE_SINGLE; break;
|
case GAME_DANCE: GAMESTATE->m_CurStyle = STYLE_DANCE_SINGLE; break;
|
||||||
case GAME_PUMP: GAMESTATE->m_CurStyle = STYLE_PUMP_SINGLE; break;
|
case GAME_PUMP: GAMESTATE->m_CurStyle = STYLE_PUMP_SINGLE; break;
|
||||||
case GAME_EZ2: GAMESTATE->m_CurStyle = STYLE_EZ2_SINGLE; break;
|
case GAME_EZ2: GAMESTATE->m_CurStyle = STYLE_EZ2_SINGLE; break;
|
||||||
case GAME_PARA: GAMESTATE->m_CurStyle = STYLE_PARA_SINGLE; break;
|
case GAME_PARA: GAMESTATE->m_CurStyle = STYLE_PARA_SINGLE; break;
|
||||||
case GAME_DS3DDX: GAMESTATE->m_CurStyle = STYLE_DS3DDX_SINGLE; break;
|
case GAME_DS3DDX: GAMESTATE->m_CurStyle = STYLE_DS3DDX_SINGLE; break;
|
||||||
case GAME_BM: GAMESTATE->m_CurStyle = STYLE_BM_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....
|
default: ASSERT(0); // we should cover all gametypes....
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -33,6 +33,10 @@ enum Style
|
|||||||
STYLE_PARA_SINGLE,
|
STYLE_PARA_SINGLE,
|
||||||
STYLE_DS3DDX_SINGLE,
|
STYLE_DS3DDX_SINGLE,
|
||||||
STYLE_BM_SINGLE,
|
STYLE_BM_SINGLE,
|
||||||
|
STYLE_MANIAX_SINGLE,
|
||||||
|
STYLE_MANIAX_VERSUS,
|
||||||
|
STYLE_MANIAX_DOUBLE,
|
||||||
|
STYLE_TECHNO_SINGLE8,
|
||||||
NUM_STYLES, // leave this at the end
|
NUM_STYLES, // leave this at the end
|
||||||
STYLE_INVALID,
|
STYLE_INVALID,
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -230,7 +230,7 @@ try_element_again:
|
|||||||
ASSERT( asElementPaths.size() == 1 );
|
ASSERT( asElementPaths.size() == 1 );
|
||||||
|
|
||||||
CString sPath = asElementPaths[0];
|
CString sPath = asElementPaths[0];
|
||||||
bool bIsARedirect = sPath.length()>6 && sPath.Right(6).CompareNoCase(".redir")==0;
|
bool bIsARedirect = GetExtension(sPath).CompareNoCase("redir")==0;
|
||||||
|
|
||||||
if( !bIsARedirect )
|
if( !bIsARedirect )
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user