From 3185746d8ae84e475daee046faba5cf2eeb9cccd Mon Sep 17 00:00:00 2001 From: "Ben \"root\" Anderson" Date: Thu, 19 Dec 2013 18:18:54 -0600 Subject: [PATCH] Revert "Make PercentScoreWeight* and GradeWeight* theme metrics instead of preferences" This reverts commit 77f2b67ee137c498b17c1be52163a8b8969045b7. These must be Preferences (or hardcoded) because they affect max DP. --- Themes/_fallback/metrics.ini | 24 --------- src/ScoreKeeperNormal.cpp | 102 ++++++++++++++++++++++++----------- 2 files changed, 71 insertions(+), 55 deletions(-) diff --git a/Themes/_fallback/metrics.ini b/Themes/_fallback/metrics.ini index 1f31e62707..91c0e09cfe 100644 --- a/Themes/_fallback/metrics.ini +++ b/Themes/_fallback/metrics.ini @@ -1346,30 +1346,6 @@ FrameOverP2Y= FrameOverP2OnCommand= FrameOverP2OffCommand= -[ScoreKeeperNormal] -PercentScoreWeightCheckpointHit=0 -PercentScoreWeightCheckpointMiss=0 -PercentScoreWeightHeld=3 -PercentScoreWeightHitMine=-2 -PercentScoreWeightLetGo=0 -PercentScoreWeightMiss=0 -PercentScoreWeightW1=3 -PercentScoreWeightW2=2 -PercentScoreWeightW3=1 -PercentScoreWeightW4=0 -PercentScoreWeightW5=0 -GradeWeightCheckpointHit=0 -GradeWeightCheckpointMiss=0 -GradeWeightHeld=6 -GradeWeightHitMine=-8 -GradeWeightLetGo=0 -GradeWeightMiss=-8 -GradeWeightW1=2 -GradeWeightW2=2 -GradeWeightW3=1 -GradeWeightW4=0 -GradeWeightW5=-4 - [ScoreKeeperRave] AttackDurationSeconds=3.0 diff --git a/src/ScoreKeeperNormal.cpp b/src/ScoreKeeperNormal.cpp index f4e92ac01c..2ff68dd11b 100644 --- a/src/ScoreKeeperNormal.cpp +++ b/src/ScoreKeeperNormal.cpp @@ -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 g_iPercentScoreWeight("ScoreKeeperNormal", PercentScoreWeightName, NUM_ScoreEvent ); -static ThemeMetric1D 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 g_iPercentScoreWeight( PercentScoreWeightInit, NUM_ScoreEvent ); +static Preference1D 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 );