remove game-specific scoring code. Move TapNoteScore mappings into GameDef.
This commit is contained in:
@@ -52,6 +52,12 @@ public:
|
|||||||
GameButton ButtonNameToIndex( const CString &sButtonName ) const;
|
GameButton ButtonNameToIndex( const CString &sButtonName ) const;
|
||||||
MenuInput GameInputToMenuInput( GameInput GameI ) const;
|
MenuInput GameInputToMenuInput( GameInput GameI ) const;
|
||||||
void MenuInputToGameInput( MenuInput MenuI, GameInput GameIout[4] ) const;
|
void MenuInputToGameInput( MenuInput MenuI, GameInput GameIout[4] ) const;
|
||||||
|
|
||||||
|
TapNoteScore m_mapMarvelousTo;
|
||||||
|
TapNoteScore m_mapPerfectTo;
|
||||||
|
TapNoteScore m_mapGreatTo;
|
||||||
|
TapNoteScore m_mapGoodTo;
|
||||||
|
TapNoteScore m_mapBooTo;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -160,7 +160,12 @@ GameDef g_GameDefs[NUM_GAMES] =
|
|||||||
NO_DEFAULT_KEY, // DANCE_BUTTON_COIN
|
NO_DEFAULT_KEY, // DANCE_BUTTON_COIN
|
||||||
NO_DEFAULT_KEY // DANCE_BUTTON_OPERATOR
|
NO_DEFAULT_KEY // DANCE_BUTTON_OPERATOR
|
||||||
},
|
},
|
||||||
}
|
},
|
||||||
|
TNS_MARVELOUS, // m_mapMarvelousTo
|
||||||
|
TNS_PERFECT, // m_mapPerfectTo
|
||||||
|
TNS_GREAT, // m_mapGreatTo
|
||||||
|
TNS_GOOD, // m_mapGoodTo
|
||||||
|
TNS_BOO, // m_mapBooTo
|
||||||
},
|
},
|
||||||
{ // GAME_PUMP
|
{ // GAME_PUMP
|
||||||
"pump", // m_szName
|
"pump", // m_szName
|
||||||
@@ -248,7 +253,12 @@ GameDef g_GameDefs[NUM_GAMES] =
|
|||||||
NO_DEFAULT_KEY, // PUMP_BUTTON_COIN
|
NO_DEFAULT_KEY, // PUMP_BUTTON_COIN
|
||||||
NO_DEFAULT_KEY // PUMP_BUTTON_OPERATOR
|
NO_DEFAULT_KEY // PUMP_BUTTON_OPERATOR
|
||||||
},
|
},
|
||||||
}
|
},
|
||||||
|
TNS_MARVELOUS, // m_mapMarvelousTo
|
||||||
|
TNS_PERFECT, // m_mapPerfectTo
|
||||||
|
TNS_GREAT, // m_mapGreatTo
|
||||||
|
TNS_GOOD, // m_mapGoodTo
|
||||||
|
TNS_BOO, // m_mapBooTo
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ez2", // m_szName
|
"ez2", // m_szName
|
||||||
@@ -345,6 +355,11 @@ GameDef g_GameDefs[NUM_GAMES] =
|
|||||||
NO_DEFAULT_KEY // EZ2_BUTTON_OPERATOR
|
NO_DEFAULT_KEY // EZ2_BUTTON_OPERATOR
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
TNS_PERFECT, // m_mapMarvelousTo
|
||||||
|
TNS_PERFECT, // m_mapPerfectTo
|
||||||
|
TNS_PERFECT, // m_mapGreatTo
|
||||||
|
TNS_GOOD, // m_mapGoodTo
|
||||||
|
TNS_MISS, // m_mapBooTo
|
||||||
},
|
},
|
||||||
{ // GAME_PARA
|
{ // GAME_PARA
|
||||||
"para", // m_szName
|
"para", // m_szName
|
||||||
@@ -432,7 +447,12 @@ GameDef g_GameDefs[NUM_GAMES] =
|
|||||||
NO_DEFAULT_KEY, // PARA_BUTTON_COIN
|
NO_DEFAULT_KEY, // PARA_BUTTON_COIN
|
||||||
NO_DEFAULT_KEY // PARA_BUTTON_OPERATOR
|
NO_DEFAULT_KEY // PARA_BUTTON_OPERATOR
|
||||||
},
|
},
|
||||||
}
|
},
|
||||||
|
TNS_MARVELOUS, // m_mapMarvelousTo
|
||||||
|
TNS_PERFECT, // m_mapPerfectTo
|
||||||
|
TNS_GREAT, // m_mapGreatTo
|
||||||
|
TNS_GOOD, // m_mapGoodTo
|
||||||
|
TNS_BOO, // m_mapBooTo
|
||||||
},
|
},
|
||||||
{ // GAME_DS3DDX
|
{ // GAME_DS3DDX
|
||||||
"ds3ddx", // m_szName
|
"ds3ddx", // m_szName
|
||||||
@@ -532,7 +552,12 @@ GameDef g_GameDefs[NUM_GAMES] =
|
|||||||
NO_DEFAULT_KEY, // DS3DDX_BUTTON_COIN
|
NO_DEFAULT_KEY, // DS3DDX_BUTTON_COIN
|
||||||
NO_DEFAULT_KEY // DS3DDX_BUTTON_OPERATOR
|
NO_DEFAULT_KEY // DS3DDX_BUTTON_OPERATOR
|
||||||
},
|
},
|
||||||
}
|
},
|
||||||
|
TNS_MARVELOUS, // m_mapMarvelousTo
|
||||||
|
TNS_PERFECT, // m_mapPerfectTo
|
||||||
|
TNS_GREAT, // m_mapGreatTo
|
||||||
|
TNS_GOOD, // m_mapGoodTo
|
||||||
|
TNS_BOO, // m_mapBooTo
|
||||||
},
|
},
|
||||||
{ // GAME_BM
|
{ // GAME_BM
|
||||||
"bm", // m_szName
|
"bm", // m_szName
|
||||||
@@ -629,7 +654,12 @@ GameDef g_GameDefs[NUM_GAMES] =
|
|||||||
NO_DEFAULT_KEY, // BM_BUTTON_COIN
|
NO_DEFAULT_KEY, // BM_BUTTON_COIN
|
||||||
NO_DEFAULT_KEY // BM_BUTTON_OPERATOR
|
NO_DEFAULT_KEY // BM_BUTTON_OPERATOR
|
||||||
},
|
},
|
||||||
}
|
},
|
||||||
|
TNS_MARVELOUS, // m_mapMarvelousTo
|
||||||
|
TNS_PERFECT, // m_mapPerfectTo
|
||||||
|
TNS_GREAT, // m_mapGreatTo
|
||||||
|
TNS_GOOD, // m_mapGoodTo
|
||||||
|
TNS_BOO, // m_mapBooTo
|
||||||
},
|
},
|
||||||
{ // GAME_IIDX
|
{ // GAME_IIDX
|
||||||
"iidx", // m_szName
|
"iidx", // m_szName
|
||||||
@@ -734,7 +764,12 @@ GameDef g_GameDefs[NUM_GAMES] =
|
|||||||
NO_DEFAULT_KEY, // IIDX_BUTTON_COIN
|
NO_DEFAULT_KEY, // IIDX_BUTTON_COIN
|
||||||
NO_DEFAULT_KEY // IIDX_BUTTON_OPERATOR
|
NO_DEFAULT_KEY // IIDX_BUTTON_OPERATOR
|
||||||
},
|
},
|
||||||
}
|
},
|
||||||
|
TNS_MARVELOUS, // m_mapMarvelousTo
|
||||||
|
TNS_PERFECT, // m_mapPerfectTo
|
||||||
|
TNS_GREAT, // m_mapGreatTo
|
||||||
|
TNS_GOOD, // m_mapGoodTo
|
||||||
|
TNS_BOO, // m_mapBooTo
|
||||||
},
|
},
|
||||||
{ // GAME_MANIAX
|
{ // GAME_MANIAX
|
||||||
"maniax", // m_szName
|
"maniax", // m_szName
|
||||||
@@ -818,7 +853,12 @@ GameDef g_GameDefs[NUM_GAMES] =
|
|||||||
NO_DEFAULT_KEY, // MANIAX_BUTTON_COIN
|
NO_DEFAULT_KEY, // MANIAX_BUTTON_COIN
|
||||||
NO_DEFAULT_KEY // MANIAX_BUTTON_OPERATOR
|
NO_DEFAULT_KEY // MANIAX_BUTTON_OPERATOR
|
||||||
},
|
},
|
||||||
}
|
},
|
||||||
|
TNS_MARVELOUS, // m_mapMarvelousTo
|
||||||
|
TNS_PERFECT, // m_mapPerfectTo
|
||||||
|
TNS_GREAT, // m_mapGreatTo
|
||||||
|
TNS_GOOD, // m_mapGoodTo
|
||||||
|
TNS_BOO, // m_mapBooTo
|
||||||
},
|
},
|
||||||
{ // GAME_TECHNO
|
{ // GAME_TECHNO
|
||||||
"techno", // m_szName
|
"techno", // m_szName
|
||||||
@@ -920,7 +960,12 @@ GameDef g_GameDefs[NUM_GAMES] =
|
|||||||
NO_DEFAULT_KEY, // TECHNO_BUTTON_COIN
|
NO_DEFAULT_KEY, // TECHNO_BUTTON_COIN
|
||||||
NO_DEFAULT_KEY // TECHNO_BUTTON_OPERATOR
|
NO_DEFAULT_KEY // TECHNO_BUTTON_OPERATOR
|
||||||
},
|
},
|
||||||
}
|
},
|
||||||
|
TNS_MARVELOUS, // m_mapMarvelousTo
|
||||||
|
TNS_PERFECT, // m_mapPerfectTo
|
||||||
|
TNS_GREAT, // m_mapGreatTo
|
||||||
|
TNS_GOOD, // m_mapGoodTo
|
||||||
|
TNS_BOO, // m_mapBooTo
|
||||||
},
|
},
|
||||||
{ // GAME_PNM
|
{ // GAME_PNM
|
||||||
"pnm", // m_szName
|
"pnm", // m_szName
|
||||||
@@ -1025,7 +1070,12 @@ GameDef g_GameDefs[NUM_GAMES] =
|
|||||||
NO_DEFAULT_KEY, // BM_BUTTON_COIN
|
NO_DEFAULT_KEY, // BM_BUTTON_COIN
|
||||||
NO_DEFAULT_KEY // BM_BUTTON_OPERATOR
|
NO_DEFAULT_KEY // BM_BUTTON_OPERATOR
|
||||||
},
|
},
|
||||||
}
|
},
|
||||||
|
TNS_PERFECT, // m_mapMarvelousTo
|
||||||
|
TNS_PERFECT, // m_mapPerfectTo
|
||||||
|
TNS_GREAT, // m_mapGreatTo
|
||||||
|
TNS_GREAT, // m_mapGoodTo
|
||||||
|
TNS_MISS, // m_mapBooTo
|
||||||
},
|
},
|
||||||
{ // GAME_LIGHTS
|
{ // GAME_LIGHTS
|
||||||
"lights", // m_szName
|
"lights", // m_szName
|
||||||
@@ -1125,7 +1175,12 @@ GameDef g_GameDefs[NUM_GAMES] =
|
|||||||
NO_DEFAULT_KEY // LIGHTS_BUTTON_COIN
|
NO_DEFAULT_KEY // LIGHTS_BUTTON_COIN
|
||||||
NO_DEFAULT_KEY // LIGHTS_BUTTON_OPERATOR
|
NO_DEFAULT_KEY // LIGHTS_BUTTON_OPERATOR
|
||||||
},
|
},
|
||||||
}
|
},
|
||||||
|
TNS_MARVELOUS, // m_mapMarvelousTo
|
||||||
|
TNS_PERFECT, // m_mapPerfectTo
|
||||||
|
TNS_GREAT, // m_mapGreatTo
|
||||||
|
TNS_GOOD, // m_mapGoodTo
|
||||||
|
TNS_BOO, // m_mapBooTo
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
+10
-59
@@ -675,30 +675,6 @@ void PlayerMinus::Step( int col, RageTimer tm )
|
|||||||
{
|
{
|
||||||
case PC_HUMAN: {
|
case PC_HUMAN: {
|
||||||
|
|
||||||
// TODO: move the judgments into flags in PrefsManager so we don't need logic like this per-game.
|
|
||||||
if(GAMESTATE->m_CurGame == GAME_EZ2)
|
|
||||||
{
|
|
||||||
/* 1 is normal. 2 means scoring is half as hard; .5 means it's twice as hard. */
|
|
||||||
/* Ez2 is only perfect / good / miss */
|
|
||||||
if( fSecondsFromPerfect <= ADJUSTED_WINDOW(Marvelous) ) score = TNS_PERFECT;
|
|
||||||
else if( fSecondsFromPerfect <= ADJUSTED_WINDOW(Perfect) ) score = TNS_PERFECT;
|
|
||||||
else if( fSecondsFromPerfect <= ADJUSTED_WINDOW(Great) ) score = TNS_PERFECT;
|
|
||||||
else if( fSecondsFromPerfect <= ADJUSTED_WINDOW(Good) ) score = TNS_GOOD;
|
|
||||||
else if( fSecondsFromPerfect <= ADJUSTED_WINDOW(Boo) ) score = TNS_MISS;
|
|
||||||
else score = TNS_NONE;
|
|
||||||
}
|
|
||||||
else if(GAMESTATE->m_CurGame == GAME_PNM)
|
|
||||||
{
|
|
||||||
/* PNM Goods = Great / Boo = Miss */
|
|
||||||
if( fSecondsFromPerfect <= ADJUSTED_WINDOW(Marvelous) ) score = TNS_MARVELOUS;
|
|
||||||
else if( fSecondsFromPerfect <= ADJUSTED_WINDOW(Perfect) ) score = TNS_PERFECT;
|
|
||||||
else if( fSecondsFromPerfect <= ADJUSTED_WINDOW(Great) ) score = TNS_GREAT;
|
|
||||||
else if( fSecondsFromPerfect <= ADJUSTED_WINDOW(Good) ) score = TNS_GREAT;
|
|
||||||
else if( fSecondsFromPerfect <= ADJUSTED_WINDOW(Boo) ) score = TNS_MISS;
|
|
||||||
else score = TNS_NONE;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
switch( tn )
|
switch( tn )
|
||||||
{
|
{
|
||||||
case TAP_MINE:
|
case TAP_MINE:
|
||||||
@@ -742,21 +718,6 @@ void PlayerMinus::Step( int col, RageTimer tm )
|
|||||||
}
|
}
|
||||||
else // !IsTapAttack
|
else // !IsTapAttack
|
||||||
{
|
{
|
||||||
// TODO: move the judgments into flags in PrefsManager so we don't need logic like this per-game.
|
|
||||||
if(GAMESTATE->m_CurGame == GAME_EZ2)
|
|
||||||
{
|
|
||||||
/* 1 is normal. 2 means scoring is half as hard; .5 means it's twice as hard. */
|
|
||||||
/* Ez2 is only perfect / good / miss */
|
|
||||||
if( fSecondsFromPerfect <= ADJUSTED_WINDOW(Marvelous) ) score = TNS_PERFECT;
|
|
||||||
else if( fSecondsFromPerfect <= ADJUSTED_WINDOW(Perfect) ) score = TNS_PERFECT;
|
|
||||||
else if( fSecondsFromPerfect <= ADJUSTED_WINDOW(Great) ) score = TNS_PERFECT;
|
|
||||||
else if( fSecondsFromPerfect <= ADJUSTED_WINDOW(Good) ) score = TNS_GOOD;
|
|
||||||
else if( fSecondsFromPerfect <= ADJUSTED_WINDOW(Boo) ) score = TNS_MISS;
|
|
||||||
else score = TNS_NONE;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
/* 1 is normal. 2 means scoring is half as hard; .5 means it's twice as hard. */
|
|
||||||
if( fSecondsFromPerfect <= ADJUSTED_WINDOW(Marvelous) ) score = TNS_MARVELOUS;
|
if( fSecondsFromPerfect <= ADJUSTED_WINDOW(Marvelous) ) score = TNS_MARVELOUS;
|
||||||
else if( fSecondsFromPerfect <= ADJUSTED_WINDOW(Perfect) ) score = TNS_PERFECT;
|
else if( fSecondsFromPerfect <= ADJUSTED_WINDOW(Perfect) ) score = TNS_PERFECT;
|
||||||
else if( fSecondsFromPerfect <= ADJUSTED_WINDOW(Great) ) score = TNS_GREAT;
|
else if( fSecondsFromPerfect <= ADJUSTED_WINDOW(Great) ) score = TNS_GREAT;
|
||||||
@@ -764,7 +725,6 @@ void PlayerMinus::Step( int col, RageTimer tm )
|
|||||||
else if( fSecondsFromPerfect <= ADJUSTED_WINDOW(Boo) ) score = TNS_BOO;
|
else if( fSecondsFromPerfect <= ADJUSTED_WINDOW(Boo) ) score = TNS_BOO;
|
||||||
else score = TNS_NONE;
|
else score = TNS_NONE;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@@ -781,25 +741,6 @@ void PlayerMinus::Step( int col, RageTimer tm )
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if( GAMESTATE->m_CurGame == GAME_EZ2 ) // scores are only perfect/good/miss on ez2 adjust accordingly
|
|
||||||
{
|
|
||||||
if(score == TNS_GREAT || score == TNS_MARVELOUS)
|
|
||||||
score = TNS_PERFECT;
|
|
||||||
if(score == TNS_BOO)
|
|
||||||
score = TNS_MISS;
|
|
||||||
}
|
|
||||||
if ( GAMESTATE->m_CurGame == GAME_PNM ) // a boo is really miss on pnm, a good is really a great!
|
|
||||||
{
|
|
||||||
if(score == TNS_MARVELOUS) // in demo mode PC shouldnt hit marvelous
|
|
||||||
score = TNS_PERFECT;
|
|
||||||
|
|
||||||
if(score == TNS_GOOD)
|
|
||||||
score = TNS_GREAT;
|
|
||||||
|
|
||||||
if(score == TNS_BOO)
|
|
||||||
score = TNS_MISS;
|
|
||||||
}
|
|
||||||
|
|
||||||
// TRICKY: We're asking the AI to judge mines. consider TNS_GOOD and below
|
// TRICKY: We're asking the AI to judge mines. consider TNS_GOOD and below
|
||||||
// as "mine was hit" and everything else as "mine was avoided"
|
// as "mine was hit" and everything else as "mine was avoided"
|
||||||
if( tn == TAP_MINE )
|
if( tn == TAP_MINE )
|
||||||
@@ -873,6 +814,16 @@ void PlayerMinus::Step( int col, RageTimer tm )
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// Do game-specific score mapping.
|
||||||
|
const GameDef* pGameDef = GAMESTATE->GetCurrentGameDef();
|
||||||
|
if( score == TNS_MARVELOUS ) score = pGameDef->m_mapMarvelousTo;
|
||||||
|
if( score == TNS_PERFECT ) score = pGameDef->m_mapPerfectTo;
|
||||||
|
if( score == TNS_GREAT ) score = pGameDef->m_mapGreatTo;
|
||||||
|
if( score == TNS_GOOD ) score = pGameDef->m_mapGoodTo;
|
||||||
|
if( score == TNS_BOO ) score = pGameDef->m_mapBooTo;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if( score != TNS_NONE && score != TNS_MISS )
|
if( score != TNS_NONE && score != TNS_MISS )
|
||||||
{
|
{
|
||||||
int ms_error = (int) roundf( fSecondsFromPerfect * 1000 );
|
int ms_error = (int) roundf( fSecondsFromPerfect * 1000 );
|
||||||
|
|||||||
Reference in New Issue
Block a user