add Dance Maniax and Technomotion support
This commit is contained in:
@@ -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,
|
||||
};
|
||||
|
||||
|
||||
@@ -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,
|
||||
};
|
||||
|
||||
@@ -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
@@ -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 )
|
||||
{
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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() );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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 );
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
@@ -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". */
|
||||
|
||||
@@ -74,6 +74,7 @@ const CreditLine CREDIT_LINES[] =
|
||||
{0,"Dj 'AeON ExOdus' Washington"},
|
||||
{0,"Xelf"},
|
||||
{0,"SPDS (James Sanders)"},
|
||||
{0,"k0ldx"},
|
||||
{0,""},
|
||||
{0,""},
|
||||
{0,""},
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
@@ -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....
|
||||
}
|
||||
|
||||
|
||||
@@ -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,
|
||||
};
|
||||
|
||||
@@ -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 )
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user