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
ColorChallenge=0.2,0.6,1.0,1 // blue
ColorBattle=1,0,0,1 // red
DefaultScrollDirection=0
[ScreenTitleMenu]
ChoicesX=320
+1
View File
@@ -18,6 +18,7 @@ enum Game
GAME_EZ2, // Ez2dancer
GAME_PARA, // ParaPAraParadise
GAME_DS3DDX, // Dance Station 3DDX.
GAME_BM, // Beatmania
NUM_GAMES, // leave this at the end
GAME_INVALID,
};
+1
View File
@@ -76,6 +76,7 @@ enum NotesType
NOTES_TYPE_EZ2_REAL,
NOTES_TYPE_PARA_SINGLE,
NOTES_TYPE_DS3DDX_SINGLE,
NOTES_TYPE_BM_SINGLE,
NUM_NOTES_TYPES, // leave this at the end
NOTES_TYPE_INVALID,
};
+17
View File
@@ -106,6 +106,23 @@ enum // 3DDX Buttons
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 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_REAL_COL_SPACING = 40;
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 {
char *name;
@@ -50,7 +51,8 @@ struct {
{ "ez2-double", 10 }, // Double: Single x2
{ "ez2-real", 7 }, // Real: TL,LHH,LHL,D,RHL,RHH,TR
{ "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] =
@@ -1035,7 +1117,7 @@ StyleDef g_StyleDefs[NUM_STYLES] =
"single", // m_szName
NOTES_TYPE_DS3DDX_SINGLE, // m_NotesType
StyleDef::ONE_PLAYER_ONE_CREDIT, // m_StyleType
{ 320, 320 }, // m_iCenterX
{ 160, 480 }, // m_iCenterX
8, // m_iColsPerPlayer
{ // m_ColumnInfo[NUM_PLAYERS][MAX_COLS_PER_PLAYER];
{ // PLAYER_1
@@ -1062,6 +1144,37 @@ StyleDef g_StyleDefs[NUM_STYLES] =
{ // m_iColumnDrawOrder[MAX_COLS_PER_PLAYER];
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",
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]);
+8
View File
@@ -23,6 +23,8 @@
#define MAXSONGSINBUFFER 5
#define BANNERTYPE 1
#define DEFAULT_SCROLL_DIRECTION THEME->GetMetricI("Notes","DefaultScrollDirection")
MusicBannerWheel::MusicBannerWheel()
{
currentPos=0;
@@ -30,6 +32,12 @@ MusicBannerWheel::MusicBannerWheel()
SongsExist=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.SetXY( 0, 0 );
m_ScrollingList.SetSpacing( BANNERSPACING );
+8 -1
View File
@@ -34,7 +34,7 @@
#define COURSE_X THEME->GetMetricF("WheelItemDisplay","CourseX")
#define COURSE_ZOOM THEME->GetMetricF("WheelItemDisplay","CourseZoom")
#define GRADE_X( p ) THEME->GetMetricF("WheelItemDisplay",ssprintf("GradeP%dX",p+1))
#define DEFAULT_SCROLL_DIRECTION THEME->GetMetricI("Notes","DefaultScrollDirection")
// MusicWheel stuff
#define FADE_SECONDS THEME->GetMetricF("MusicWheel","FadeSeconds")
@@ -282,6 +282,13 @@ 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
g_fItemSpacingY = ITEM_SPACING_Y;
+2
View File
@@ -50,6 +50,8 @@ ScreenEz2SelectMusic::ScreenEz2SelectMusic()
{
i_ErrorDetected=0;
CodeDetector::RefreshCacheItems();
m_Menu.Load(
THEME->GetPathTo("BGAnimations","select music"),
THEME->GetPathTo("Graphics","select music top edge"),
+2
View File
@@ -104,6 +104,8 @@ const CString CREDIT_LINES[] =
"BeMaNiRuler",
"DDRLlama",
"DDRManiaX",
"NMR",
"Random Hajile",
"Lagged",
"The Melting Pot",
"DDRJamz Global BBS",
-1
View File
@@ -90,7 +90,6 @@ ScreenSelectMusic::ScreenSelectMusic()
CodeDetector::RefreshCacheItems();
int p;
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_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;
default: ASSERT(0);
}
+3
View File
@@ -31,6 +31,7 @@ enum Style
STYLE_EZ2_DOUBLE,
STYLE_PARA_SINGLE,
STYLE_DS3DDX_SINGLE,
STYLE_BM_SINGLE,
NUM_STYLES, // leave this at the end
STYLE_NONE,
};
@@ -40,6 +41,7 @@ const int NUM_PUMP_STYLES = 5;
const int NUM_EZ2_STYLES = 5;
const int NUM_PARA_STYLES = 1;
const int NUM_DS3DDX_STYLES = 1;
const int NUM_BM_STYLES = 1;
// Ugh. This is needed for the style icon.
// 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 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 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
}
return iStyleIndex;