BM Gametype (no keysounds yet, its just DDR with BM keys :D) + Metricable default scrolling direction support

This commit is contained in:
Andrew Livy
2003-01-01 17:20:36 +00:00
parent 290c281cf8
commit 9941c7c3bb
12 changed files with 184 additions and 5 deletions
+1
View File
@@ -21,6 +21,7 @@ ColorHard=0.2,1,0.2,1 // light green
ColorSHard=0.8,0.2,1.0,1 // purple ColorSHard=0.8,0.2,1.0,1 // purple
ColorChallenge=0.2,0.6,1.0,1 // blue ColorChallenge=0.2,0.6,1.0,1 // blue
ColorBattle=1,0,0,1 // red ColorBattle=1,0,0,1 // red
DefaultScrollDirection=0
[ScreenTitleMenu] [ScreenTitleMenu]
ChoicesX=320 ChoicesX=320
+1
View File
@@ -18,6 +18,7 @@ enum Game
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
NUM_GAMES, // leave this at the end NUM_GAMES, // leave this at the end
GAME_INVALID, GAME_INVALID,
}; };
+1
View File
@@ -76,6 +76,7 @@ enum NotesType
NOTES_TYPE_EZ2_REAL, NOTES_TYPE_EZ2_REAL,
NOTES_TYPE_PARA_SINGLE, NOTES_TYPE_PARA_SINGLE,
NOTES_TYPE_DS3DDX_SINGLE, NOTES_TYPE_DS3DDX_SINGLE,
NOTES_TYPE_BM_SINGLE,
NUM_NOTES_TYPES, // leave this at the end NUM_NOTES_TYPES, // leave this at the end
NOTES_TYPE_INVALID, NOTES_TYPE_INVALID,
}; };
+17
View File
@@ -106,6 +106,23 @@ enum // 3DDX Buttons
NUM_DS3DDX_BUTTONS, // leave this at the end. NUM_DS3DDX_BUTTONS, // leave this at the end.
}; };
enum // BM Buttons
{
BM_BUTTON_LEFTWHITE,
BM_BUTTON_LEFTBLACK,
BM_BUTTON_CENTERWHITE,
BM_BUTTON_RIGHTBLACK,
BM_BUTTON_RIGHTWHITE,
BM_BUTTON_SCRATCH,
BM_BUTTON_START,
BM_BUTTON_BACK,
BM_BUTTON_MENULEFT,
BM_BUTTON_MENURIGHT,
BM_BUTTON_MENUUP,
BM_BUTTON_MENUDOWN,
NUM_BM_BUTTONS, // leave this at the end.
};
const GameButton MAX_GAME_BUTTONS = 14; const GameButton MAX_GAME_BUTTONS = 14;
const GameButton GAME_BUTTON_INVALID = MAX_GAME_BUTTONS+1; const GameButton GAME_BUTTON_INVALID = MAX_GAME_BUTTONS+1;
+140 -3
View File
@@ -33,7 +33,8 @@ 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 = 54; const int DS3DDX_COL_SPACING = 46;
const int BM_COL_SPACING=34;
struct { struct {
char *name; char *name;
@@ -50,7 +51,8 @@ struct {
{ "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 }
}; };
// //
@@ -462,6 +464,86 @@ GameDef g_GameDefs[NUM_GAMES] =
}, },
} }
}, },
{ // GAME_BM
"bm", // m_szName
"BeatMania", // m_szDescription
2, // m_iNumControllers
NUM_BM_BUTTONS, // m_iButtonsPerController
{ // m_szButtonNames
"LeftWhiteKey",
"LeftBlackKey",
"CenterWhiteKey",
"RightBlackKey",
"RightWhiteKey",
"Scratch",
"Start",
"Back",
"MenuLeft",
"MenuRight",
"MenuUp",
"MenuDown",
},
{ // m_szSecondaryFunction
"(MenuUp)",
"(MenuLeft)",
"(Start)",
"(MenuRight)",
"(MenuDown)",
"",
"(dedicated)",
"(dedicated)",
"(dedicated)",
"(dedicated)",
"(dedicated)",
"(dedicated)",
},
{ // m_DedicatedMenuButton
BM_BUTTON_MENULEFT, // MENU_BUTTON_LEFT
BM_BUTTON_MENURIGHT, // MENU_BUTTON_RIGHT
BM_BUTTON_MENUUP, // MENU_BUTTON_UP
BM_BUTTON_MENUDOWN, // MENU_BUTTON_DOWN
BM_BUTTON_START, // MENU_BUTTON_START
BM_BUTTON_BACK, // MENU_BUTTON_BACK
},
{ // m_SecondaryMenuButton
BM_BUTTON_LEFTBLACK, // MENU_BUTTON_LEFT
BM_BUTTON_RIGHTBLACK, // MENU_BUTTON_RIGHT
BM_BUTTON_LEFTWHITE, // MENU_BUTTON_UP
BM_BUTTON_RIGHTWHITE, // MENU_BUTTON_DOWN
BM_BUTTON_CENTERWHITE, // MENU_BUTTON_START
BM_BUTTON_BACK, // MENU_BUTTON_BACK
},
{ // m_iDefaultKeyboardKey
{ // PLAYER_1
SDLK_z, // BM_BUTTON_LEFTWHITE,
SDLK_s, // BM_BUTTON_LEFTBLACK,
SDLK_x, // BM_BUTTON_CENTERWHITE,
SDLK_d, // BM_BUTTON_RIGHTBLACK,
SDLK_c, // BM_BUTTON_RIGHTWHITE,
SDLK_b, // BM_BUTTON_SCRATCH,
SDLK_RETURN, // BM_BUTTON_START,
SDLK_ESCAPE, // BM_BUTTON_BACK,
SDLK_LEFT, // BM_BUTTON_MENULEFT
SDLK_RIGHT, // BM_BUTTON_MENURIGHT
SDLK_UP, // BM_BUTTON_MENUUP
SDLK_DOWN, // BM_BUTTON_MENUDOWN
},
{ // PLAYER_2
-1, // BM_BUTTON_LEFTWHITE,
-1, // BM_BUTTON_LEFTBLACK,
-1, // BM_BUTTON_CENTERWHITE,
-1, // BM_BUTTON_RIGHTBLACK,
-1, // BM_BUTTON_RIGHTWHITE,
-1, // BM_BUTTON_SCRATCH,
-1, // BM_BUTTON_START,
-1, // BM_BUTTON_BACK,
-1, // BM_BUTTON_MENULEFT
-1, // BM_BUTTON_MENURIGHT
-1, // BM_BUTTON_MENUUP
-1, // BM_BUTTON_MENUDOWN
},
}
},
}; };
StyleDef g_StyleDefs[NUM_STYLES] = StyleDef g_StyleDefs[NUM_STYLES] =
@@ -1035,7 +1117,7 @@ StyleDef g_StyleDefs[NUM_STYLES] =
"single", // m_szName "single", // m_szName
NOTES_TYPE_DS3DDX_SINGLE, // m_NotesType NOTES_TYPE_DS3DDX_SINGLE, // m_NotesType
StyleDef::ONE_PLAYER_ONE_CREDIT, // m_StyleType StyleDef::ONE_PLAYER_ONE_CREDIT, // m_StyleType
{ 320, 320 }, // m_iCenterX { 160, 480 }, // m_iCenterX
8, // m_iColsPerPlayer 8, // m_iColsPerPlayer
{ // m_ColumnInfo[NUM_PLAYERS][MAX_COLS_PER_PLAYER]; { // m_ColumnInfo[NUM_PLAYERS][MAX_COLS_PER_PLAYER];
{ // PLAYER_1 { // PLAYER_1
@@ -1062,6 +1144,37 @@ StyleDef g_StyleDefs[NUM_STYLES] =
{ // m_iColumnDrawOrder[MAX_COLS_PER_PLAYER]; { // m_iColumnDrawOrder[MAX_COLS_PER_PLAYER];
0,1,2,3,4,5,6,7 0,1,2,3,4,5,6,7
}, },
},
{
GAME_BM, // m_Game
true, // m_bUsedForGameplay
true, // m_bUsedForEdit
"BM-single", // m_szName
NOTES_TYPE_BM_SINGLE, // m_NotesType
StyleDef::ONE_PLAYER_ONE_CREDIT, // m_StyleType
{ 160, 480 }, // m_iCenterX
6, // m_iColsPerPlayer
{ // m_ColumnInfo[NUM_PLAYERS][MAX_COLS_PER_PLAYER];
{ // PLAYER_1
{ TRACK_1, GAME_CONTROLLER_1, BM_BUTTON_LEFTWHITE, -BM_COL_SPACING*2.5f },
{ TRACK_2, GAME_CONTROLLER_1, BM_BUTTON_LEFTBLACK, -BM_COL_SPACING*1.5f },
{ TRACK_3, GAME_CONTROLLER_1, BM_BUTTON_CENTERWHITE, -BM_COL_SPACING*0.5f },
{ TRACK_4, GAME_CONTROLLER_1, BM_BUTTON_RIGHTBLACK, +BM_COL_SPACING*0.5f },
{ TRACK_5, GAME_CONTROLLER_1, BM_BUTTON_RIGHTWHITE, +BM_COL_SPACING*1.5f },
{ TRACK_6, GAME_CONTROLLER_1, BM_BUTTON_SCRATCH, +BM_COL_SPACING*3.0f },
},
{ // PLAYER_2
{ TRACK_1, GAME_CONTROLLER_2, BM_BUTTON_LEFTWHITE, -BM_COL_SPACING*2.5f },
{ TRACK_2, GAME_CONTROLLER_2, BM_BUTTON_LEFTBLACK, -BM_COL_SPACING*1.5f },
{ TRACK_3, GAME_CONTROLLER_2, BM_BUTTON_CENTERWHITE, -BM_COL_SPACING*0.5f },
{ TRACK_4, GAME_CONTROLLER_2, BM_BUTTON_RIGHTBLACK, +BM_COL_SPACING*0.5f },
{ TRACK_5, GAME_CONTROLLER_2, BM_BUTTON_RIGHTWHITE, +BM_COL_SPACING*1.5f },
{ TRACK_6, GAME_CONTROLLER_2, BM_BUTTON_SCRATCH, +BM_COL_SPACING*3.0f },
},
},
{ // m_iColumnDrawOrder[MAX_COLS_PER_PLAYER];
0,1,2,3,4,5
},
} }
}; };
@@ -1300,6 +1413,30 @@ ModeChoice g_ModeChoices[] =
"power2", "power2",
1 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]); const int NUM_MODE_CHOICES = sizeof(g_ModeChoices) / sizeof(g_ModeChoices[0]);
+8
View File
@@ -23,6 +23,8 @@
#define MAXSONGSINBUFFER 5 #define MAXSONGSINBUFFER 5
#define BANNERTYPE 1 #define BANNERTYPE 1
#define DEFAULT_SCROLL_DIRECTION THEME->GetMetricI("Notes","DefaultScrollDirection")
MusicBannerWheel::MusicBannerWheel() MusicBannerWheel::MusicBannerWheel()
{ {
currentPos=0; currentPos=0;
@@ -30,6 +32,12 @@ MusicBannerWheel::MusicBannerWheel()
SongsExist=0; SongsExist=0;
SingleLoad=0; SingleLoad=0;
if(DEFAULT_SCROLL_DIRECTION && GAMESTATE->m_pCurSong == NULL) /* check the song is null... incase they have just come back from a song and changed their PlayerOptions */
{
for(int i=0; i<NUM_PLAYERS; i++)
GAMESTATE->m_PlayerOptions[i].m_bReverseScroll = true;
}
m_ScrollingList.UseSpriteType(BANNERTYPE); m_ScrollingList.UseSpriteType(BANNERTYPE);
m_ScrollingList.SetXY( 0, 0 ); m_ScrollingList.SetXY( 0, 0 );
m_ScrollingList.SetSpacing( BANNERSPACING ); m_ScrollingList.SetSpacing( BANNERSPACING );
+8 -1
View File
@@ -34,7 +34,7 @@
#define COURSE_X THEME->GetMetricF("WheelItemDisplay","CourseX") #define COURSE_X THEME->GetMetricF("WheelItemDisplay","CourseX")
#define COURSE_ZOOM THEME->GetMetricF("WheelItemDisplay","CourseZoom") #define COURSE_ZOOM THEME->GetMetricF("WheelItemDisplay","CourseZoom")
#define GRADE_X( p ) THEME->GetMetricF("WheelItemDisplay",ssprintf("GradeP%dX",p+1)) #define GRADE_X( p ) THEME->GetMetricF("WheelItemDisplay",ssprintf("GradeP%dX",p+1))
#define DEFAULT_SCROLL_DIRECTION THEME->GetMetricI("Notes","DefaultScrollDirection")
// MusicWheel stuff // MusicWheel stuff
#define FADE_SECONDS THEME->GetMetricF("MusicWheel","FadeSeconds") #define FADE_SECONDS THEME->GetMetricF("MusicWheel","FadeSeconds")
@@ -282,6 +282,13 @@ MusicWheel::MusicWheel()
LOG->Trace( "MusicWheel::MusicWheel()" ); LOG->Trace( "MusicWheel::MusicWheel()" );
if(DEFAULT_SCROLL_DIRECTION && GAMESTATE->m_pCurSong == NULL) /* check the song is null... incase they have just come back from a song and changed their PlayerOptions */
{
for(int i=0; i<NUM_PLAYERS; i++)
GAMESTATE->m_PlayerOptions[i].m_bReverseScroll = true;
}
// update theme metric cache // update theme metric cache
g_fItemSpacingY = ITEM_SPACING_Y; g_fItemSpacingY = ITEM_SPACING_Y;
+2
View File
@@ -50,6 +50,8 @@ ScreenEz2SelectMusic::ScreenEz2SelectMusic()
{ {
i_ErrorDetected=0; i_ErrorDetected=0;
CodeDetector::RefreshCacheItems(); CodeDetector::RefreshCacheItems();
m_Menu.Load( m_Menu.Load(
THEME->GetPathTo("BGAnimations","select music"), THEME->GetPathTo("BGAnimations","select music"),
THEME->GetPathTo("Graphics","select music top edge"), THEME->GetPathTo("Graphics","select music top edge"),
+2
View File
@@ -104,6 +104,8 @@ const CString CREDIT_LINES[] =
"BeMaNiRuler", "BeMaNiRuler",
"DDRLlama", "DDRLlama",
"DDRManiaX", "DDRManiaX",
"NMR",
"Random Hajile",
"Lagged", "Lagged",
"The Melting Pot", "The Melting Pot",
"DDRJamz Global BBS", "DDRJamz Global BBS",
-1
View File
@@ -90,7 +90,6 @@ ScreenSelectMusic::ScreenSelectMusic()
CodeDetector::RefreshCacheItems(); CodeDetector::RefreshCacheItems();
int p; int p;
m_Menu.Load( m_Menu.Load(
+1
View File
@@ -248,6 +248,7 @@ void ScreenTitleMenu::HandleScreenMessage( const ScreenMessage SM )
case GAME_EZ2: GAMESTATE->m_CurStyle = STYLE_EZ2_SINGLE_VERSUS; break; case GAME_EZ2: GAMESTATE->m_CurStyle = STYLE_EZ2_SINGLE_VERSUS; 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;
default: ASSERT(0); default: ASSERT(0);
} }
+3
View File
@@ -31,6 +31,7 @@ enum Style
STYLE_EZ2_DOUBLE, STYLE_EZ2_DOUBLE,
STYLE_PARA_SINGLE, STYLE_PARA_SINGLE,
STYLE_DS3DDX_SINGLE, STYLE_DS3DDX_SINGLE,
STYLE_BM_SINGLE,
NUM_STYLES, // leave this at the end NUM_STYLES, // leave this at the end
STYLE_NONE, STYLE_NONE,
}; };
@@ -40,6 +41,7 @@ const int NUM_PUMP_STYLES = 5;
const int NUM_EZ2_STYLES = 5; const int NUM_EZ2_STYLES = 5;
const int NUM_PARA_STYLES = 1; const int NUM_PARA_STYLES = 1;
const int NUM_DS3DDX_STYLES = 1; const int NUM_DS3DDX_STYLES = 1;
const int NUM_BM_STYLES = 1;
// Ugh. This is needed for the style icon. // Ugh. This is needed for the style icon.
// TODO: Find a more elegant way to handle this // TODO: Find a more elegant way to handle this
@@ -53,6 +55,7 @@ inline int GetStyleIndexRelativeToGame( int iGameIndex, Style style )
case 2: iStyleIndex -= NUM_DANCE_STYLES+NUM_PUMP_STYLES; break; // ez2 case 2: iStyleIndex -= NUM_DANCE_STYLES+NUM_PUMP_STYLES; break; // ez2
case 3: iStyleIndex -= NUM_DANCE_STYLES+NUM_PUMP_STYLES+NUM_EZ2_STYLES; break; // para case 3: iStyleIndex -= NUM_DANCE_STYLES+NUM_PUMP_STYLES+NUM_EZ2_STYLES; break; // para
case 4: iStyleIndex -= NUM_DANCE_STYLES+NUM_PUMP_STYLES+NUM_EZ2_STYLES+NUM_PARA_STYLES; break; // ds3ddx case 4: iStyleIndex -= NUM_DANCE_STYLES+NUM_PUMP_STYLES+NUM_EZ2_STYLES+NUM_PARA_STYLES; break; // ds3ddx
case 5: iStyleIndex -= NUM_DANCE_STYLES+NUM_PUMP_STYLES+NUM_EZ2_STYLES+NUM_PARA_STYLES+NUM_DS3DDX_STYLES; break; // bm
default: ASSERT(0); // invalid game index default: ASSERT(0); // invalid game index
} }
return iStyleIndex; return iStyleIndex;