Un-revert. This reversion was made on a wrong assumption and it should actually be this way anyway. PercentScoreWeight* and GradeWeight* are metrics once again.
This commit is contained in:
@@ -656,8 +656,8 @@ LifePercentChangeW4=0.000
|
|||||||
LifePercentChangeW5=-0.040
|
LifePercentChangeW5=-0.040
|
||||||
LifePercentChangeMiss=-0.080
|
LifePercentChangeMiss=-0.080
|
||||||
LifePercentChangeHitMine=-0.160
|
LifePercentChangeHitMine=-0.160
|
||||||
LifePercentChangeHeld=0.008
|
LifePercentChangeHeld=IsGame("Pump") and 0.000 or 0.008
|
||||||
LifePercentChangeLetGo=-0.080
|
LifePercentChangeLetGo=IsGame("Pump") and 0.000 or -0.080
|
||||||
LifePercentChangeCheckpointMiss=-0.080
|
LifePercentChangeCheckpointMiss=-0.080
|
||||||
LifePercentChangeCheckpointHit=0.008
|
LifePercentChangeCheckpointHit=0.008
|
||||||
|
|
||||||
@@ -1346,6 +1346,30 @@ FrameOverP2Y=
|
|||||||
FrameOverP2OnCommand=
|
FrameOverP2OnCommand=
|
||||||
FrameOverP2OffCommand=
|
FrameOverP2OffCommand=
|
||||||
|
|
||||||
|
[ScoreKeeperNormal]
|
||||||
|
PercentScoreWeightCheckpointHit=3
|
||||||
|
PercentScoreWeightCheckpointMiss=0
|
||||||
|
PercentScoreWeightHeld=IsGame("Pump") and 0 or 3
|
||||||
|
PercentScoreWeightHitMine=-2
|
||||||
|
PercentScoreWeightLetGo=0
|
||||||
|
PercentScoreWeightMiss=0
|
||||||
|
PercentScoreWeightW1=3
|
||||||
|
PercentScoreWeightW2=2
|
||||||
|
PercentScoreWeightW3=1
|
||||||
|
PercentScoreWeightW4=0
|
||||||
|
PercentScoreWeightW5=0
|
||||||
|
GradeWeightCheckpointHit=2
|
||||||
|
GradeWeightCheckpointMiss=-8
|
||||||
|
GradeWeightHeld=IsGame("Pump") and 0 or 6
|
||||||
|
GradeWeightHitMine=-8
|
||||||
|
GradeWeightLetGo=0
|
||||||
|
GradeWeightMiss=-8
|
||||||
|
GradeWeightW1=2
|
||||||
|
GradeWeightW2=2
|
||||||
|
GradeWeightW3=1
|
||||||
|
GradeWeightW4=0
|
||||||
|
GradeWeightW5=-4
|
||||||
|
|
||||||
[ScoreKeeperRave]
|
[ScoreKeeperRave]
|
||||||
AttackDurationSeconds=3.0
|
AttackDurationSeconds=3.0
|
||||||
|
|
||||||
|
|||||||
+33
-73
@@ -21,51 +21,11 @@
|
|||||||
#include "TimingData.h"
|
#include "TimingData.h"
|
||||||
#include "NoteDataWithScoring.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 ); }
|
||||||
|
|
||||||
void PercentScoreWeightInit( size_t /*ScoreEvent*/ i, RString &sNameOut, int &defaultValueOut )
|
static ThemeMetric1D<int> g_iPercentScoreWeight("ScoreKeeperNormal", PercentScoreWeightName, NUM_ScoreEvent );
|
||||||
{
|
static ThemeMetric1D<int> g_iGradeWeight("ScoreKeeperNormal", GradeWeightName, NUM_ScoreEvent );
|
||||||
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 = 3; 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 = 2; break;
|
|
||||||
case SE_CheckpointMiss: defaultValueOut = -8; 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 ):
|
ScoreKeeperNormal::ScoreKeeperNormal( PlayerState *pPlayerState, PlayerStageStats *pPlayerStageStats ):
|
||||||
ScoreKeeper(pPlayerState, pPlayerStageStats)
|
ScoreKeeper(pPlayerState, pPlayerStageStats)
|
||||||
@@ -661,7 +621,7 @@ int ScoreKeeperNormal::GetPossibleDancePoints( NoteData* nd, const TimingData* t
|
|||||||
int ret = 0;
|
int ret = 0;
|
||||||
|
|
||||||
ret += int(radars[RadarCategory_TapsAndHolds]) * TapNoteScoreToDancePoints(TNS_W1, false);
|
ret += int(radars[RadarCategory_TapsAndHolds]) * TapNoteScoreToDancePoints(TNS_W1, false);
|
||||||
if( GAMESTATE->GetCurrentGame()->m_bTickHolds ) ret += NoteDataUtil::GetTotalHoldTicks( nd, td ) * g_iPercentScoreWeight[SE_CheckpointHit];
|
if( GAMESTATE->GetCurrentGame()->m_bTickHolds ) ret += NoteDataUtil::GetTotalHoldTicks( nd, td ) * g_iPercentScoreWeight.GetValue(SE_CheckpointHit);
|
||||||
ret += int(radars[RadarCategory_Holds]) * HoldNoteScoreToDancePoints(HNS_Held, false);
|
ret += int(radars[RadarCategory_Holds]) * HoldNoteScoreToDancePoints(HNS_Held, false);
|
||||||
ret += int(radars[RadarCategory_Rolls]) * HoldNoteScoreToDancePoints(HNS_Held, false);
|
ret += int(radars[RadarCategory_Rolls]) * HoldNoteScoreToDancePoints(HNS_Held, false);
|
||||||
|
|
||||||
@@ -689,7 +649,7 @@ int ScoreKeeperNormal::GetPossibleGradePoints( NoteData* nd, const TimingData* t
|
|||||||
int ret = 0;
|
int ret = 0;
|
||||||
|
|
||||||
ret += int(radars[RadarCategory_TapsAndHolds]) * TapNoteScoreToGradePoints(TNS_W1, false);
|
ret += int(radars[RadarCategory_TapsAndHolds]) * TapNoteScoreToGradePoints(TNS_W1, false);
|
||||||
if( GAMESTATE->GetCurrentGame()->m_bTickHolds ) ret += NoteDataUtil::GetTotalHoldTicks( nd, td ) * g_iGradeWeight[SE_CheckpointHit];
|
if( GAMESTATE->GetCurrentGame()->m_bTickHolds ) ret += NoteDataUtil::GetTotalHoldTicks( nd, td ) * g_iGradeWeight.GetValue(SE_CheckpointHit);
|
||||||
ret += int(radars[RadarCategory_Holds]) * HoldNoteScoreToGradePoints(HNS_Held, false);
|
ret += int(radars[RadarCategory_Holds]) * HoldNoteScoreToGradePoints(HNS_Held, false);
|
||||||
ret += int(radars[RadarCategory_Rolls]) * HoldNoteScoreToGradePoints(HNS_Held, false);
|
ret += int(radars[RadarCategory_Rolls]) * HoldNoteScoreToGradePoints(HNS_Held, false);
|
||||||
|
|
||||||
@@ -736,16 +696,16 @@ int ScoreKeeperNormal::TapNoteScoreToDancePoints( TapNoteScore tns, bool bBeginn
|
|||||||
switch( tns )
|
switch( tns )
|
||||||
{
|
{
|
||||||
DEFAULT_FAIL( tns );
|
DEFAULT_FAIL( tns );
|
||||||
case TNS_None: iWeight = 0; break;
|
case TNS_None: iWeight = 0; break;
|
||||||
case TNS_HitMine: iWeight = g_iPercentScoreWeight[SE_HitMine]; break;
|
case TNS_HitMine: iWeight = g_iPercentScoreWeight.GetValue(SE_HitMine); break;
|
||||||
case TNS_Miss: iWeight = g_iPercentScoreWeight[SE_Miss]; break;
|
case TNS_Miss: iWeight = g_iPercentScoreWeight.GetValue(SE_Miss); break;
|
||||||
case TNS_W5: iWeight = g_iPercentScoreWeight[SE_W5]; break;
|
case TNS_W5: iWeight = g_iPercentScoreWeight.GetValue(SE_W5); break;
|
||||||
case TNS_W4: iWeight = g_iPercentScoreWeight[SE_W4]; break;
|
case TNS_W4: iWeight = g_iPercentScoreWeight.GetValue(SE_W4); break;
|
||||||
case TNS_W3: iWeight = g_iPercentScoreWeight[SE_W3]; break;
|
case TNS_W3: iWeight = g_iPercentScoreWeight.GetValue(SE_W3); break;
|
||||||
case TNS_W2: iWeight = g_iPercentScoreWeight[SE_W2]; break;
|
case TNS_W2: iWeight = g_iPercentScoreWeight.GetValue(SE_W2); break;
|
||||||
case TNS_W1: iWeight = g_iPercentScoreWeight[SE_W1]; break;
|
case TNS_W1: iWeight = g_iPercentScoreWeight.GetValue(SE_W1); break;
|
||||||
case TNS_CheckpointHit: iWeight = g_iPercentScoreWeight[SE_CheckpointHit]; break;
|
case TNS_CheckpointHit: iWeight = g_iPercentScoreWeight.GetValue(SE_CheckpointHit); break;
|
||||||
case TNS_CheckpointMiss:iWeight = g_iPercentScoreWeight[SE_CheckpointMiss]; break;
|
case TNS_CheckpointMiss:iWeight = g_iPercentScoreWeight.GetValue(SE_CheckpointMiss); break;
|
||||||
}
|
}
|
||||||
if( bBeginner && PREFSMAN->m_bMercifulBeginner )
|
if( bBeginner && PREFSMAN->m_bMercifulBeginner )
|
||||||
iWeight = max( 0, iWeight );
|
iWeight = max( 0, iWeight );
|
||||||
@@ -758,9 +718,9 @@ int ScoreKeeperNormal::HoldNoteScoreToDancePoints( HoldNoteScore hns, bool bBegi
|
|||||||
switch( hns )
|
switch( hns )
|
||||||
{
|
{
|
||||||
DEFAULT_FAIL( hns );
|
DEFAULT_FAIL( hns );
|
||||||
case HNS_None: iWeight = 0; break;
|
case HNS_None: iWeight = 0; break;
|
||||||
case HNS_LetGo: iWeight = g_iPercentScoreWeight[SE_LetGo]; break;
|
case HNS_LetGo: iWeight = g_iPercentScoreWeight.GetValue(SE_LetGo); break;
|
||||||
case HNS_Held: iWeight = g_iPercentScoreWeight[SE_Held]; break;
|
case HNS_Held: iWeight = g_iPercentScoreWeight.GetValue(SE_Held); break;
|
||||||
}
|
}
|
||||||
if( bBeginner && PREFSMAN->m_bMercifulBeginner )
|
if( bBeginner && PREFSMAN->m_bMercifulBeginner )
|
||||||
iWeight = max( 0, iWeight );
|
iWeight = max( 0, iWeight );
|
||||||
@@ -778,17 +738,17 @@ int ScoreKeeperNormal::TapNoteScoreToGradePoints( TapNoteScore tns, bool bBeginn
|
|||||||
switch( tns )
|
switch( tns )
|
||||||
{
|
{
|
||||||
DEFAULT_FAIL( tns );
|
DEFAULT_FAIL( tns );
|
||||||
case TNS_None: iWeight = 0; break;
|
case TNS_None: iWeight = 0; break;
|
||||||
case TNS_AvoidMine: iWeight = 0; break;
|
case TNS_AvoidMine: iWeight = 0; break;
|
||||||
case TNS_HitMine: iWeight = g_iGradeWeight[SE_HitMine]; break;
|
case TNS_HitMine: iWeight = g_iGradeWeight.GetValue(SE_HitMine); break;
|
||||||
case TNS_Miss: iWeight = g_iGradeWeight[SE_Miss]; break;
|
case TNS_Miss: iWeight = g_iGradeWeight.GetValue(SE_Miss); break;
|
||||||
case TNS_W5: iWeight = g_iGradeWeight[SE_W5]; break;
|
case TNS_W5: iWeight = g_iGradeWeight.GetValue(SE_W5); break;
|
||||||
case TNS_W4: iWeight = g_iGradeWeight[SE_W4]; break;
|
case TNS_W4: iWeight = g_iGradeWeight.GetValue(SE_W4); break;
|
||||||
case TNS_W3: iWeight = g_iGradeWeight[SE_W3]; break;
|
case TNS_W3: iWeight = g_iGradeWeight.GetValue(SE_W3); break;
|
||||||
case TNS_W2: iWeight = g_iGradeWeight[SE_W2]; break;
|
case TNS_W2: iWeight = g_iGradeWeight.GetValue(SE_W2); break;
|
||||||
case TNS_W1: iWeight = g_iGradeWeight[SE_W1]; break;
|
case TNS_W1: iWeight = g_iGradeWeight.GetValue(SE_W1); break;
|
||||||
case TNS_CheckpointHit: iWeight = g_iGradeWeight[SE_CheckpointHit]; break;
|
case TNS_CheckpointHit: iWeight = g_iGradeWeight.GetValue(SE_CheckpointHit); break;
|
||||||
case TNS_CheckpointMiss:iWeight = g_iGradeWeight[SE_CheckpointMiss]; break;
|
case TNS_CheckpointMiss:iWeight = g_iGradeWeight.GetValue(SE_CheckpointMiss); break;
|
||||||
}
|
}
|
||||||
if( bBeginner && PREFSMAN->m_bMercifulBeginner )
|
if( bBeginner && PREFSMAN->m_bMercifulBeginner )
|
||||||
iWeight = max( 0, iWeight );
|
iWeight = max( 0, iWeight );
|
||||||
@@ -801,9 +761,9 @@ int ScoreKeeperNormal::HoldNoteScoreToGradePoints( HoldNoteScore hns, bool bBegi
|
|||||||
switch( hns )
|
switch( hns )
|
||||||
{
|
{
|
||||||
DEFAULT_FAIL( hns );
|
DEFAULT_FAIL( hns );
|
||||||
case HNS_None: iWeight = 0; break;
|
case HNS_None: iWeight = 0; break;
|
||||||
case HNS_LetGo: iWeight = g_iGradeWeight[SE_LetGo]; break;
|
case HNS_LetGo: iWeight = g_iGradeWeight.GetValue(SE_LetGo); break;
|
||||||
case HNS_Held: iWeight = g_iGradeWeight[SE_Held]; break;
|
case HNS_Held: iWeight = g_iGradeWeight.GetValue(SE_Held); break;
|
||||||
}
|
}
|
||||||
if( bBeginner && PREFSMAN->m_bMercifulBeginner )
|
if( bBeginner && PREFSMAN->m_bMercifulBeginner )
|
||||||
iWeight = max( 0, iWeight );
|
iWeight = max( 0, iWeight );
|
||||||
|
|||||||
Reference in New Issue
Block a user