Revert "Make PercentScoreWeight* and GradeWeight* theme metrics instead of preferences"
This reverts commit 77f2b67ee1.
These must be Preferences (or hardcoded) because they affect max DP.
This commit is contained in:
+71
-31
@@ -21,11 +21,51 @@
|
||||
#include "TimingData.h"
|
||||
#include "NoteDataWithScoring.h"
|
||||
|
||||
static RString PercentScoreWeightName( size_t i ) { return "PercentScoreWeight" + ScoreEventToString( (ScoreEvent)i ); }
|
||||
static RString GradeWeightName( size_t i ) { return "GradeWeight" + ScoreEventToString( (ScoreEvent)i ); }
|
||||
|
||||
static ThemeMetric1D<int> g_iPercentScoreWeight("ScoreKeeperNormal", PercentScoreWeightName, NUM_ScoreEvent );
|
||||
static ThemeMetric1D<int> g_iGradeWeight("ScoreKeeperNormal", GradeWeightName, NUM_ScoreEvent );
|
||||
void PercentScoreWeightInit( size_t /*ScoreEvent*/ i, RString &sNameOut, int &defaultValueOut )
|
||||
{
|
||||
sNameOut = "PercentScoreWeight" + ScoreEventToString( (ScoreEvent)i );
|
||||
switch( i )
|
||||
{
|
||||
default:
|
||||
FAIL_M(ssprintf("Invalid ScoreEvent: %i", i));
|
||||
case SE_W1: defaultValueOut = 3; break;
|
||||
case SE_W2: defaultValueOut = 2; break;
|
||||
case SE_W3: defaultValueOut = 1; break;
|
||||
case SE_W4: defaultValueOut = 0; break;
|
||||
case SE_W5: defaultValueOut = 0; break;
|
||||
case SE_Miss: defaultValueOut = 0; break;
|
||||
case SE_HitMine: defaultValueOut = -2; break;
|
||||
case SE_CheckpointHit: defaultValueOut = 0; break;
|
||||
case SE_CheckpointMiss: defaultValueOut = 0; break;
|
||||
case SE_Held: defaultValueOut = 3; break;
|
||||
case SE_LetGo: defaultValueOut = 0; break;
|
||||
}
|
||||
}
|
||||
|
||||
void GradeWeightInit( size_t /*ScoreEvent*/ i, RString &sNameOut, int &defaultValueOut )
|
||||
{
|
||||
sNameOut = "GradeWeight" + ScoreEventToString( (ScoreEvent)i );
|
||||
switch( i )
|
||||
{
|
||||
default:
|
||||
FAIL_M(ssprintf("Invalid ScoreEvent: %i", i));
|
||||
case SE_W1: defaultValueOut = 2; break;
|
||||
case SE_W2: defaultValueOut = 2; break;
|
||||
case SE_W3: defaultValueOut = 1; break;
|
||||
case SE_W4: defaultValueOut = 0; break;
|
||||
case SE_W5: defaultValueOut = -4; break;
|
||||
case SE_Miss: defaultValueOut = -8; break;
|
||||
case SE_HitMine: defaultValueOut = -8; break;
|
||||
case SE_CheckpointHit: defaultValueOut = 0; break;
|
||||
case SE_CheckpointMiss: defaultValueOut = 0; break;
|
||||
case SE_Held: defaultValueOut = 6; break;
|
||||
case SE_LetGo: defaultValueOut = 0; break;
|
||||
}
|
||||
}
|
||||
|
||||
static Preference1D<int> g_iPercentScoreWeight( PercentScoreWeightInit, NUM_ScoreEvent );
|
||||
static Preference1D<int> g_iGradeWeight( GradeWeightInit, NUM_ScoreEvent );
|
||||
|
||||
ScoreKeeperNormal::ScoreKeeperNormal( PlayerState *pPlayerState, PlayerStageStats *pPlayerStageStats ):
|
||||
ScoreKeeper(pPlayerState, pPlayerStageStats)
|
||||
@@ -691,16 +731,16 @@ int ScoreKeeperNormal::TapNoteScoreToDancePoints( TapNoteScore tns, bool bBeginn
|
||||
switch( tns )
|
||||
{
|
||||
DEFAULT_FAIL( tns );
|
||||
case TNS_None: iWeight = 0; break;
|
||||
case TNS_HitMine: iWeight = g_iPercentScoreWeight.GetValue(SE_HitMine); break;
|
||||
case TNS_Miss: iWeight = g_iPercentScoreWeight.GetValue(SE_Miss); break;
|
||||
case TNS_W5: iWeight = g_iPercentScoreWeight.GetValue(SE_W5); break;
|
||||
case TNS_W4: iWeight = g_iPercentScoreWeight.GetValue(SE_W4); break;
|
||||
case TNS_W3: iWeight = g_iPercentScoreWeight.GetValue(SE_W3); break;
|
||||
case TNS_W2: iWeight = g_iPercentScoreWeight.GetValue(SE_W2); break;
|
||||
case TNS_W1: iWeight = g_iPercentScoreWeight.GetValue(SE_W1); break;
|
||||
case TNS_CheckpointHit: iWeight = g_iPercentScoreWeight.GetValue(SE_CheckpointHit); break;
|
||||
case TNS_CheckpointMiss:iWeight = g_iPercentScoreWeight.GetValue(SE_CheckpointMiss); break;
|
||||
case TNS_None: iWeight = 0; break;
|
||||
case TNS_HitMine: iWeight = g_iPercentScoreWeight[SE_HitMine]; break;
|
||||
case TNS_Miss: iWeight = g_iPercentScoreWeight[SE_Miss]; break;
|
||||
case TNS_W5: iWeight = g_iPercentScoreWeight[SE_W5]; break;
|
||||
case TNS_W4: iWeight = g_iPercentScoreWeight[SE_W4]; break;
|
||||
case TNS_W3: iWeight = g_iPercentScoreWeight[SE_W3]; break;
|
||||
case TNS_W2: iWeight = g_iPercentScoreWeight[SE_W2]; break;
|
||||
case TNS_W1: iWeight = g_iPercentScoreWeight[SE_W1]; break;
|
||||
case TNS_CheckpointHit: iWeight = g_iPercentScoreWeight[SE_CheckpointHit]; break;
|
||||
case TNS_CheckpointMiss:iWeight = g_iPercentScoreWeight[SE_CheckpointMiss]; break;
|
||||
}
|
||||
if( bBeginner && PREFSMAN->m_bMercifulBeginner )
|
||||
iWeight = max( 0, iWeight );
|
||||
@@ -713,9 +753,9 @@ int ScoreKeeperNormal::HoldNoteScoreToDancePoints( HoldNoteScore hns, bool bBegi
|
||||
switch( hns )
|
||||
{
|
||||
DEFAULT_FAIL( hns );
|
||||
case HNS_None: iWeight = 0; break;
|
||||
case HNS_LetGo: iWeight = g_iPercentScoreWeight.GetValue(SE_LetGo); break;
|
||||
case HNS_Held: iWeight = g_iPercentScoreWeight.GetValue(SE_Held); break;
|
||||
case HNS_None: iWeight = 0; break;
|
||||
case HNS_LetGo: iWeight = g_iPercentScoreWeight[SE_LetGo]; break;
|
||||
case HNS_Held: iWeight = g_iPercentScoreWeight[SE_Held]; break;
|
||||
}
|
||||
if( bBeginner && PREFSMAN->m_bMercifulBeginner )
|
||||
iWeight = max( 0, iWeight );
|
||||
@@ -733,17 +773,17 @@ int ScoreKeeperNormal::TapNoteScoreToGradePoints( TapNoteScore tns, bool bBeginn
|
||||
switch( tns )
|
||||
{
|
||||
DEFAULT_FAIL( tns );
|
||||
case TNS_None: iWeight = 0; break;
|
||||
case TNS_AvoidMine: iWeight = 0; break;
|
||||
case TNS_HitMine: iWeight = g_iGradeWeight.GetValue(SE_HitMine); break;
|
||||
case TNS_Miss: iWeight = g_iGradeWeight.GetValue(SE_Miss); break;
|
||||
case TNS_W5: iWeight = g_iGradeWeight.GetValue(SE_W5); break;
|
||||
case TNS_W4: iWeight = g_iGradeWeight.GetValue(SE_W4); break;
|
||||
case TNS_W3: iWeight = g_iGradeWeight.GetValue(SE_W3); break;
|
||||
case TNS_W2: iWeight = g_iGradeWeight.GetValue(SE_W2); break;
|
||||
case TNS_W1: iWeight = g_iGradeWeight.GetValue(SE_W1); break;
|
||||
case TNS_CheckpointHit: iWeight = g_iGradeWeight.GetValue(SE_CheckpointHit); break;
|
||||
case TNS_CheckpointMiss:iWeight = g_iGradeWeight.GetValue(SE_CheckpointMiss); break;
|
||||
case TNS_None: iWeight = 0; break;
|
||||
case TNS_AvoidMine: iWeight = 0; break;
|
||||
case TNS_HitMine: iWeight = g_iGradeWeight[SE_HitMine]; break;
|
||||
case TNS_Miss: iWeight = g_iGradeWeight[SE_Miss]; break;
|
||||
case TNS_W5: iWeight = g_iGradeWeight[SE_W5]; break;
|
||||
case TNS_W4: iWeight = g_iGradeWeight[SE_W4]; break;
|
||||
case TNS_W3: iWeight = g_iGradeWeight[SE_W3]; break;
|
||||
case TNS_W2: iWeight = g_iGradeWeight[SE_W2]; break;
|
||||
case TNS_W1: iWeight = g_iGradeWeight[SE_W1]; break;
|
||||
case TNS_CheckpointHit: iWeight = g_iGradeWeight[SE_CheckpointHit]; break;
|
||||
case TNS_CheckpointMiss:iWeight = g_iGradeWeight[SE_CheckpointMiss]; break;
|
||||
}
|
||||
if( bBeginner && PREFSMAN->m_bMercifulBeginner )
|
||||
iWeight = max( 0, iWeight );
|
||||
@@ -756,9 +796,9 @@ int ScoreKeeperNormal::HoldNoteScoreToGradePoints( HoldNoteScore hns, bool bBegi
|
||||
switch( hns )
|
||||
{
|
||||
DEFAULT_FAIL( hns );
|
||||
case HNS_None: iWeight = 0; break;
|
||||
case HNS_LetGo: iWeight = g_iGradeWeight.GetValue(SE_LetGo); break;
|
||||
case HNS_Held: iWeight = g_iGradeWeight.GetValue(SE_Held); break;
|
||||
case HNS_None: iWeight = 0; break;
|
||||
case HNS_LetGo: iWeight = g_iGradeWeight[SE_LetGo]; break;
|
||||
case HNS_Held: iWeight = g_iGradeWeight[SE_Held]; break;
|
||||
}
|
||||
if( bBeginner && PREFSMAN->m_bMercifulBeginner )
|
||||
iWeight = max( 0, iWeight );
|
||||
|
||||
Reference in New Issue
Block a user