move PercentScoreWeight, GradeWeight
This commit is contained in:
@@ -135,60 +135,6 @@ bool g_bAutoRestart = false;
|
|||||||
# define TRUE_IF_DEBUG false
|
# define TRUE_IF_DEBUG false
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
void PercentScoreWeightInit( size_t /*ScoreEvent*/ i, RString &sNameOut, int &defaultValueOut )
|
|
||||||
{
|
|
||||||
sNameOut = "PercentScoreWeight" + ScoreEventToString( (ScoreEvent)i );
|
|
||||||
switch( i )
|
|
||||||
{
|
|
||||||
default: ASSERT(0);
|
|
||||||
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_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: ASSERT(0);
|
|
||||||
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_Held: defaultValueOut = 6; break;
|
|
||||||
case SE_LetGo: defaultValueOut = 0; break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void SuperMeterPercentChangeInit( size_t /*ScoreEvent*/ i, RString &sNameOut, float &defaultValueOut )
|
|
||||||
{
|
|
||||||
sNameOut = "SuperMeterPercentChange" + ScoreEventToString( (ScoreEvent)i );
|
|
||||||
switch( i )
|
|
||||||
{
|
|
||||||
default: ASSERT(0);
|
|
||||||
case SE_W1: defaultValueOut = +0.05f; break;
|
|
||||||
case SE_W2: defaultValueOut = +0.04f; break;
|
|
||||||
case SE_W3: defaultValueOut = +0.02f; break;
|
|
||||||
case SE_W4: defaultValueOut = +0.00f; break;
|
|
||||||
case SE_W5: defaultValueOut = -0.00f; break;
|
|
||||||
case SE_Miss: defaultValueOut = -0.20f; break;
|
|
||||||
case SE_HitMine: defaultValueOut = -0.40f; break;
|
|
||||||
case SE_Held: defaultValueOut = +0.04f; break;
|
|
||||||
case SE_LetGo: defaultValueOut = -0.20f; break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void ValidateDisplayAspectRatio( float &val )
|
void ValidateDisplayAspectRatio( float &val )
|
||||||
{
|
{
|
||||||
if( val < 0 )
|
if( val < 0 )
|
||||||
@@ -247,12 +193,6 @@ PrefsManager::PrefsManager() :
|
|||||||
m_bFailOffInBeginner ( "FailOffInBeginner", false ),
|
m_bFailOffInBeginner ( "FailOffInBeginner", false ),
|
||||||
m_bFailOffForFirstStageEasy ( "FailOffForFirstStageEasy", false ),
|
m_bFailOffForFirstStageEasy ( "FailOffForFirstStageEasy", false ),
|
||||||
m_bMercifulBeginner ( "MercifulBeginner", false ),
|
m_bMercifulBeginner ( "MercifulBeginner", false ),
|
||||||
|
|
||||||
m_iPercentScoreWeight ( PercentScoreWeightInit, NUM_ScoreEvent ),
|
|
||||||
|
|
||||||
m_iGradeWeight ( GradeWeightInit, NUM_ScoreEvent ),
|
|
||||||
|
|
||||||
m_fSuperMeterPercentChange ( SuperMeterPercentChangeInit, NUM_ScoreEvent ),
|
|
||||||
m_bMercifulSuperMeter ( "MercifulSuperMeter", true ),
|
m_bMercifulSuperMeter ( "MercifulSuperMeter", true ),
|
||||||
|
|
||||||
m_AutoPlay ( "AutoPlay", PC_HUMAN ),
|
m_AutoPlay ( "AutoPlay", PC_HUMAN ),
|
||||||
|
|||||||
@@ -139,15 +139,6 @@ public:
|
|||||||
Preference<bool> m_bFailOffInBeginner;
|
Preference<bool> m_bFailOffInBeginner;
|
||||||
Preference<bool> m_bFailOffForFirstStageEasy;
|
Preference<bool> m_bFailOffForFirstStageEasy;
|
||||||
Preference<bool> m_bMercifulBeginner; // don't subtract from percent score or grade DP, larger W5 window
|
Preference<bool> m_bMercifulBeginner; // don't subtract from percent score or grade DP, larger W5 window
|
||||||
|
|
||||||
// percent score (the number that is shown on the screen and saved to memory card)
|
|
||||||
Preference1D<int> m_iPercentScoreWeight;
|
|
||||||
|
|
||||||
// grades are calculated based on a percentage, but might have different weights than the percent score
|
|
||||||
Preference1D<int> m_iGradeWeight;
|
|
||||||
|
|
||||||
// super meter used in rave
|
|
||||||
Preference1D<float> m_fSuperMeterPercentChange;
|
|
||||||
Preference<bool> m_bMercifulSuperMeter; // negative super deltas are scaled by the players life percentage
|
Preference<bool> m_bMercifulSuperMeter; // negative super deltas are scaled by the players life percentage
|
||||||
|
|
||||||
Preference<PlayerController> m_AutoPlay;
|
Preference<PlayerController> m_AutoPlay;
|
||||||
|
|||||||
@@ -18,6 +18,46 @@
|
|||||||
#include "song.h"
|
#include "song.h"
|
||||||
#include "NoteDataWithScoring.h"
|
#include "NoteDataWithScoring.h"
|
||||||
|
|
||||||
|
|
||||||
|
void PercentScoreWeightInit( size_t /*ScoreEvent*/ i, RString &sNameOut, int &defaultValueOut )
|
||||||
|
{
|
||||||
|
sNameOut = "PercentScoreWeight" + ScoreEventToString( (ScoreEvent)i );
|
||||||
|
switch( i )
|
||||||
|
{
|
||||||
|
default: ASSERT(0);
|
||||||
|
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_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: ASSERT(0);
|
||||||
|
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_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)
|
||||||
{
|
{
|
||||||
@@ -569,13 +609,13 @@ int ScoreKeeperNormal::TapNoteScoreToDancePoints( TapNoteScore tns, bool bBeginn
|
|||||||
{
|
{
|
||||||
DEFAULT_FAIL( tns );
|
DEFAULT_FAIL( tns );
|
||||||
case TNS_None: iWeight = 0; break;
|
case TNS_None: iWeight = 0; break;
|
||||||
case TNS_HitMine: iWeight = PREFSMAN->m_iPercentScoreWeight[SE_HitMine]; break;
|
case TNS_HitMine: iWeight = g_iPercentScoreWeight[SE_HitMine]; break;
|
||||||
case TNS_Miss: iWeight = PREFSMAN->m_iPercentScoreWeight[SE_Miss]; break;
|
case TNS_Miss: iWeight = g_iPercentScoreWeight[SE_Miss]; break;
|
||||||
case TNS_W5: iWeight = PREFSMAN->m_iPercentScoreWeight[SE_W5]; break;
|
case TNS_W5: iWeight = g_iPercentScoreWeight[SE_W5]; break;
|
||||||
case TNS_W4: iWeight = PREFSMAN->m_iPercentScoreWeight[SE_W4]; break;
|
case TNS_W4: iWeight = g_iPercentScoreWeight[SE_W4]; break;
|
||||||
case TNS_W3: iWeight = PREFSMAN->m_iPercentScoreWeight[SE_W3]; break;
|
case TNS_W3: iWeight = g_iPercentScoreWeight[SE_W3]; break;
|
||||||
case TNS_W2: iWeight = PREFSMAN->m_iPercentScoreWeight[SE_W2]; break;
|
case TNS_W2: iWeight = g_iPercentScoreWeight[SE_W2]; break;
|
||||||
case TNS_W1: iWeight = PREFSMAN->m_iPercentScoreWeight[SE_W1]; break;
|
case TNS_W1: iWeight = g_iPercentScoreWeight[SE_W1]; break;
|
||||||
}
|
}
|
||||||
if( bBeginner && PREFSMAN->m_bMercifulBeginner )
|
if( bBeginner && PREFSMAN->m_bMercifulBeginner )
|
||||||
iWeight = max( 0, iWeight );
|
iWeight = max( 0, iWeight );
|
||||||
@@ -589,8 +629,8 @@ int ScoreKeeperNormal::HoldNoteScoreToDancePoints( HoldNoteScore hns, bool bBegi
|
|||||||
{
|
{
|
||||||
DEFAULT_FAIL( hns );
|
DEFAULT_FAIL( hns );
|
||||||
case HNS_None: iWeight = 0; break;
|
case HNS_None: iWeight = 0; break;
|
||||||
case HNS_LetGo: iWeight = PREFSMAN->m_iPercentScoreWeight[SE_LetGo]; break;
|
case HNS_LetGo: iWeight = g_iPercentScoreWeight[SE_LetGo]; break;
|
||||||
case HNS_Held: iWeight = PREFSMAN->m_iPercentScoreWeight[SE_Held]; break;
|
case HNS_Held: iWeight = g_iPercentScoreWeight[SE_Held]; break;
|
||||||
}
|
}
|
||||||
if( bBeginner && PREFSMAN->m_bMercifulBeginner )
|
if( bBeginner && PREFSMAN->m_bMercifulBeginner )
|
||||||
iWeight = max( 0, iWeight );
|
iWeight = max( 0, iWeight );
|
||||||
@@ -610,13 +650,13 @@ int ScoreKeeperNormal::TapNoteScoreToGradePoints( TapNoteScore tns, bool bBeginn
|
|||||||
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 = PREFSMAN->m_iGradeWeight[SE_HitMine]; break;
|
case TNS_HitMine: iWeight = g_iGradeWeight[SE_HitMine]; break;
|
||||||
case TNS_Miss: iWeight = PREFSMAN->m_iGradeWeight[SE_Miss]; break;
|
case TNS_Miss: iWeight = g_iGradeWeight[SE_Miss]; break;
|
||||||
case TNS_W5: iWeight = PREFSMAN->m_iGradeWeight[SE_W5]; break;
|
case TNS_W5: iWeight = g_iGradeWeight[SE_W5]; break;
|
||||||
case TNS_W4: iWeight = PREFSMAN->m_iGradeWeight[SE_W4]; break;
|
case TNS_W4: iWeight = g_iGradeWeight[SE_W4]; break;
|
||||||
case TNS_W3: iWeight = PREFSMAN->m_iGradeWeight[SE_W3]; break;
|
case TNS_W3: iWeight = g_iGradeWeight[SE_W3]; break;
|
||||||
case TNS_W2: iWeight = PREFSMAN->m_iGradeWeight[SE_W2]; break;
|
case TNS_W2: iWeight = g_iGradeWeight[SE_W2]; break;
|
||||||
case TNS_W1: iWeight = PREFSMAN->m_iGradeWeight[SE_W1]; break;
|
case TNS_W1: iWeight = g_iGradeWeight[SE_W1]; break;
|
||||||
}
|
}
|
||||||
if( bBeginner && PREFSMAN->m_bMercifulBeginner )
|
if( bBeginner && PREFSMAN->m_bMercifulBeginner )
|
||||||
iWeight = max( 0, iWeight );
|
iWeight = max( 0, iWeight );
|
||||||
@@ -630,8 +670,8 @@ int ScoreKeeperNormal::HoldNoteScoreToGradePoints( HoldNoteScore hns, bool bBegi
|
|||||||
{
|
{
|
||||||
DEFAULT_FAIL( hns );
|
DEFAULT_FAIL( hns );
|
||||||
case HNS_None: iWeight = 0; break;
|
case HNS_None: iWeight = 0; break;
|
||||||
case HNS_LetGo: iWeight = PREFSMAN->m_iGradeWeight[SE_LetGo]; break;
|
case HNS_LetGo: iWeight = g_iGradeWeight[SE_LetGo]; break;
|
||||||
case HNS_Held: iWeight = PREFSMAN->m_iGradeWeight[SE_Held]; break;
|
case HNS_Held: iWeight = g_iGradeWeight[SE_Held]; break;
|
||||||
}
|
}
|
||||||
if( bBeginner && PREFSMAN->m_bMercifulBeginner )
|
if( bBeginner && PREFSMAN->m_bMercifulBeginner )
|
||||||
iWeight = max( 0, iWeight );
|
iWeight = max( 0, iWeight );
|
||||||
|
|||||||
@@ -13,6 +13,27 @@
|
|||||||
ThemeMetric<float> ATTACK_DURATION_SECONDS ("ScoreKeeperRave","AttackDurationSeconds");
|
ThemeMetric<float> ATTACK_DURATION_SECONDS ("ScoreKeeperRave","AttackDurationSeconds");
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
static void SuperMeterPercentChangeInit( size_t /*ScoreEvent*/ i, RString &sNameOut, float &defaultValueOut )
|
||||||
|
{
|
||||||
|
sNameOut = "SuperMeterPercentChange" + ScoreEventToString( (ScoreEvent)i );
|
||||||
|
switch( i )
|
||||||
|
{
|
||||||
|
default: ASSERT(0);
|
||||||
|
case SE_W1: defaultValueOut = +0.05f; break;
|
||||||
|
case SE_W2: defaultValueOut = +0.04f; break;
|
||||||
|
case SE_W3: defaultValueOut = +0.02f; break;
|
||||||
|
case SE_W4: defaultValueOut = +0.00f; break;
|
||||||
|
case SE_W5: defaultValueOut = -0.00f; break;
|
||||||
|
case SE_Miss: defaultValueOut = -0.20f; break;
|
||||||
|
case SE_HitMine: defaultValueOut = -0.40f; break;
|
||||||
|
case SE_Held: defaultValueOut = +0.04f; break;
|
||||||
|
case SE_LetGo: defaultValueOut = -0.20f; break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static Preference1D<float> g_fSuperMeterPercentChange( SuperMeterPercentChangeInit, NUM_ScoreEvent );
|
||||||
|
|
||||||
ScoreKeeperRave::ScoreKeeperRave( PlayerState *pPlayerState, PlayerStageStats *pPlayerStageStats ) :
|
ScoreKeeperRave::ScoreKeeperRave( PlayerState *pPlayerState, PlayerStageStats *pPlayerStageStats ) :
|
||||||
ScoreKeeper(pPlayerState, pPlayerStageStats)
|
ScoreKeeper(pPlayerState, pPlayerStageStats)
|
||||||
{
|
{
|
||||||
@@ -24,7 +45,7 @@ void ScoreKeeperRave::HandleTapScore( const TapNote &tn )
|
|||||||
float fPercentToMove = 0;
|
float fPercentToMove = 0;
|
||||||
|
|
||||||
if( score == TNS_HitMine )
|
if( score == TNS_HitMine )
|
||||||
fPercentToMove = PREFSMAN->m_fSuperMeterPercentChange[SE_HitMine];
|
fPercentToMove = g_fSuperMeterPercentChange[SE_HitMine];
|
||||||
|
|
||||||
AddSuperMeterDelta( fPercentToMove );
|
AddSuperMeterDelta( fPercentToMove );
|
||||||
}
|
}
|
||||||
@@ -43,12 +64,12 @@ void ScoreKeeperRave::HandleTapRowScore( const NoteData &nd, int iRow )
|
|||||||
switch( scoreOfLastTap )
|
switch( scoreOfLastTap )
|
||||||
{
|
{
|
||||||
DEFAULT_FAIL( scoreOfLastTap );
|
DEFAULT_FAIL( scoreOfLastTap );
|
||||||
case TNS_W1: fPercentToMove = PREFSMAN->m_fSuperMeterPercentChange[SE_W1]; break;
|
case TNS_W1: fPercentToMove = g_fSuperMeterPercentChange[SE_W1]; break;
|
||||||
case TNS_W2: fPercentToMove = PREFSMAN->m_fSuperMeterPercentChange[SE_W2]; break;
|
case TNS_W2: fPercentToMove = g_fSuperMeterPercentChange[SE_W2]; break;
|
||||||
case TNS_W3: fPercentToMove = PREFSMAN->m_fSuperMeterPercentChange[SE_W3]; break;
|
case TNS_W3: fPercentToMove = g_fSuperMeterPercentChange[SE_W3]; break;
|
||||||
case TNS_W4: fPercentToMove = PREFSMAN->m_fSuperMeterPercentChange[SE_W4]; break;
|
case TNS_W4: fPercentToMove = g_fSuperMeterPercentChange[SE_W4]; break;
|
||||||
case TNS_W5: fPercentToMove = PREFSMAN->m_fSuperMeterPercentChange[SE_W5]; break;
|
case TNS_W5: fPercentToMove = g_fSuperMeterPercentChange[SE_W5]; break;
|
||||||
case TNS_Miss: fPercentToMove = PREFSMAN->m_fSuperMeterPercentChange[SE_Miss]; break;
|
case TNS_Miss: fPercentToMove = g_fSuperMeterPercentChange[SE_Miss]; break;
|
||||||
}
|
}
|
||||||
AddSuperMeterDelta( fPercentToMove );
|
AddSuperMeterDelta( fPercentToMove );
|
||||||
}
|
}
|
||||||
@@ -59,7 +80,7 @@ void ScoreKeeperRave::HandleHoldScore( const TapNote &tn )
|
|||||||
float fPercentToMove = 0;
|
float fPercentToMove = 0;
|
||||||
switch( tapScore )
|
switch( tapScore )
|
||||||
{
|
{
|
||||||
case TNS_HitMine: fPercentToMove = PREFSMAN->m_fSuperMeterPercentChange[SE_HitMine]; break;
|
case TNS_HitMine: fPercentToMove = g_fSuperMeterPercentChange[SE_HitMine]; break;
|
||||||
}
|
}
|
||||||
AddSuperMeterDelta( fPercentToMove );
|
AddSuperMeterDelta( fPercentToMove );
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user