From 4640fb10adc222ffd1a4d745cbc884a357200ccd Mon Sep 17 00:00:00 2001 From: Chris Danford Date: Fri, 2 Jan 2004 01:39:14 +0000 Subject: [PATCH] move percent score and and grading constants to prefs --- stepmania/src/PrefsManager.cpp | 69 +++++++++++++++++++++++++++++++ stepmania/src/PrefsManager.h | 21 ++++++++++ stepmania/src/ScoreKeeperMAX2.cpp | 19 ++++++++- stepmania/src/StageStats.cpp | 19 ++++++++- 4 files changed, 124 insertions(+), 4 deletions(-) diff --git a/stepmania/src/PrefsManager.cpp b/stepmania/src/PrefsManager.cpp index a535df73d0..4ed6bacf89 100644 --- a/stepmania/src/PrefsManager.cpp +++ b/stepmania/src/PrefsManager.cpp @@ -84,6 +84,29 @@ PrefsManager::PrefsManager() m_iMaxRegenComboAfterFail = 10; m_iMaxRegenComboAfterMiss = 10; m_bTwoPlayerRecovery = true; + + m_iPercentScoreMarvelousWeight = 3; + m_iPercentScorePerfectWeight = 2; + m_iPercentScoreGreatWeight = 1; + m_iPercentScoreGoodWeight = 0; + m_iPercentScoreBooWeight = 0; + m_iPercentScoreMissWeight = 0; + m_iPercentScoreOKWeight = 3; + m_iPercentScoreNGWeight = 0; + m_iGradeMarvelousWeight = 2; + m_iGradePerfectWeight = 2; + m_iGradeGreatWeight = 1; + m_iGradeGoodWeight = 0; + m_iGradeBooWeight = -4; + m_iGradeMissWeight = -8; + m_iGradeOKWeight = 6; + m_iGradeNGWeight = 0; + m_fGradePercentAA = 0.93f; + m_fGradePercentA = 0.80f; + m_fGradePercentB = 0.65f; + m_fGradePercentC = 0.45f; + m_fGradePercentD = 0; + m_bDelayedEscape = true; m_bInstructions = true; m_bShowDontDie = true; @@ -286,6 +309,29 @@ void PrefsManager::ReadGlobalPrefsFromDisk() ini.GetValue( "Options", "MaxRegenComboAfterFail", m_iMaxRegenComboAfterFail ); ini.GetValue( "Options", "MaxRegenComboAfterMiss", m_iMaxRegenComboAfterMiss ); ini.GetValue( "Options", "TwoPlayerRecovery", m_bTwoPlayerRecovery ); + + ini.GetValue( "Options", "PercentScoreMarvelousWeight", m_iPercentScoreMarvelousWeight ); + ini.GetValue( "Options", "PercentScorePerfectWeight", m_iPercentScorePerfectWeight ); + ini.GetValue( "Options", "PercentScoreGreatWeight", m_iPercentScoreGreatWeight ); + ini.GetValue( "Options", "PercentScoreGoodWeight", m_iPercentScoreGoodWeight ); + ini.GetValue( "Options", "PercentScoreBooWeight", m_iPercentScoreBooWeight ); + ini.GetValue( "Options", "PercentScoreMissWeight", m_iPercentScoreMissWeight ); + ini.GetValue( "Options", "PercentScoreOKWeight", m_iPercentScoreOKWeight ); + ini.GetValue( "Options", "PercentScoreNGWeight", m_iPercentScoreNGWeight ); + ini.GetValue( "Options", "GradeMarvelousWeight", m_iGradeMarvelousWeight ); + ini.GetValue( "Options", "GradePerfectWeight", m_iGradePerfectWeight ); + ini.GetValue( "Options", "GradeGreatWeight", m_iGradeGreatWeight ); + ini.GetValue( "Options", "GradeGoodWeight", m_iGradeGoodWeight ); + ini.GetValue( "Options", "GradeBooWeight", m_iGradeBooWeight ); + ini.GetValue( "Options", "GradeMissWeight", m_iGradeMissWeight ); + ini.GetValue( "Options", "GradeOKWeight", m_iGradeOKWeight ); + ini.GetValue( "Options", "GradeNGWeight", m_iGradeNGWeight ); + ini.GetValue( "Options", "GradePercentAA", m_fGradePercentAA ); + ini.GetValue( "Options", "GradePercentA", m_fGradePercentA ); + ini.GetValue( "Options", "GradePercentB", m_fGradePercentB ); + ini.GetValue( "Options", "GradePercentC", m_fGradePercentC ); + ini.GetValue( "Options", "GradePercentD", m_fGradePercentD ); + ini.GetValue( "Options", "DelayedEscape", m_bDelayedEscape ); ini.GetValue( "Options", "HiddenSongs", m_bHiddenSongs ); ini.GetValue( "Options", "Vsync", m_bVsync ); @@ -444,6 +490,29 @@ void PrefsManager::SaveGlobalPrefsToDisk() const ini.SetValue( "Options", "MaxRegenComboAfterFail", m_iMaxRegenComboAfterFail ); ini.SetValue( "Options", "MaxRegenComboAfterMiss", m_iMaxRegenComboAfterMiss ); ini.SetValue( "Options", "TwoPlayerRecovery", m_bTwoPlayerRecovery ); + + ini.SetValue( "Options", "PercentScoreMarvelousWeight", m_iPercentScoreMarvelousWeight ); + ini.SetValue( "Options", "PercentScorePerfectWeight", m_iPercentScorePerfectWeight ); + ini.SetValue( "Options", "PercentScoreGreatWeight", m_iPercentScoreGreatWeight ); + ini.SetValue( "Options", "PercentScoreGoodWeight", m_iPercentScoreGoodWeight ); + ini.SetValue( "Options", "PercentScoreBooWeight", m_iPercentScoreBooWeight ); + ini.SetValue( "Options", "PercentScoreMissWeight", m_iPercentScoreMissWeight ); + ini.SetValue( "Options", "PercentScoreOKWeight", m_iPercentScoreOKWeight ); + ini.SetValue( "Options", "PercentScoreNGWeight", m_iPercentScoreNGWeight ); + ini.SetValue( "Options", "GradeMarvelousWeight", m_iGradeMarvelousWeight ); + ini.SetValue( "Options", "GradePerfectWeight", m_iGradePerfectWeight ); + ini.SetValue( "Options", "GradeGreatWeight", m_iGradeGreatWeight ); + ini.SetValue( "Options", "GradeGoodWeight", m_iGradeGoodWeight ); + ini.SetValue( "Options", "GradeBooWeight", m_iGradeBooWeight ); + ini.SetValue( "Options", "GradeMissWeight", m_iGradeMissWeight ); + ini.SetValue( "Options", "GradeOKWeight", m_iGradeOKWeight ); + ini.SetValue( "Options", "GradeNGWeight", m_iGradeNGWeight ); + ini.SetValue( "Options", "GradePercentAA", m_fGradePercentAA ); + ini.SetValue( "Options", "GradePercentA", m_fGradePercentA ); + ini.SetValue( "Options", "GradePercentB", m_fGradePercentB ); + ini.SetValue( "Options", "GradePercentC", m_fGradePercentC ); + ini.SetValue( "Options", "GradePercentD", m_fGradePercentD ); + ini.SetValue( "Options", "DelayedEscape", m_bDelayedEscape ); ini.SetValue( "Options", "HiddenSongs", m_bHiddenSongs ); ini.SetValue( "Options", "Vsync", m_bVsync ); diff --git a/stepmania/src/PrefsManager.h b/stepmania/src/PrefsManager.h index e82d189f39..c97cf31882 100644 --- a/stepmania/src/PrefsManager.h +++ b/stepmania/src/PrefsManager.h @@ -79,6 +79,27 @@ public: int m_iMaxRegenComboAfterFail; int m_iMaxRegenComboAfterMiss; bool m_bTwoPlayerRecovery; + int m_iPercentScoreMarvelousWeight; + int m_iPercentScorePerfectWeight; + int m_iPercentScoreGreatWeight; + int m_iPercentScoreGoodWeight; + int m_iPercentScoreBooWeight; + int m_iPercentScoreMissWeight; + int m_iPercentScoreOKWeight; + int m_iPercentScoreNGWeight; + int m_iGradeMarvelousWeight; + int m_iGradePerfectWeight; + int m_iGradeGreatWeight; + int m_iGradeGoodWeight; + int m_iGradeBooWeight; + int m_iGradeMissWeight; + int m_iGradeOKWeight; + int m_iGradeNGWeight; + float m_fGradePercentAA; + float m_fGradePercentA; + float m_fGradePercentB; + float m_fGradePercentC; + float m_fGradePercentD; bool m_bAutoPlay; bool m_bDelayedEscape; bool m_bInstructions, m_bShowDontDie, m_bShowSelectGroup; diff --git a/stepmania/src/ScoreKeeperMAX2.cpp b/stepmania/src/ScoreKeeperMAX2.cpp index fe61807e32..c7038336eb 100644 --- a/stepmania/src/ScoreKeeperMAX2.cpp +++ b/stepmania/src/ScoreKeeperMAX2.cpp @@ -449,11 +449,26 @@ int ScoreKeeperMAX2::TapNoteScoreToDancePoints( TapNoteScore tns ) /* This is used for Oni percentage displays. Grading values are currently in * StageStats::GetGrade. */ - const int TapScoreValues[NUM_TAP_NOTE_SCORES] = { 0, 0, 0, 0, +1, +2, +3 }; + int TapScoreValues[NUM_TAP_NOTE_SCORES] = + { + 0, + PREFSMAN->m_iPercentScoreMissWeight, + PREFSMAN->m_iPercentScoreBooWeight, + PREFSMAN->m_iPercentScoreGoodWeight, + PREFSMAN->m_iPercentScoreGreatWeight, + PREFSMAN->m_iPercentScorePerfectWeight, + PREFSMAN->m_iPercentScoreMarvelousWeight, + }; return TapScoreValues[tns]; } int ScoreKeeperMAX2::HoldNoteScoreToDancePoints( HoldNoteScore hns ) { - return TapNoteScoreToDancePoints(TNS_MARVELOUS); + int HoldScoreValues[NUM_TAP_NOTE_SCORES] = + { + 0, + PREFSMAN->m_iPercentScoreNGWeight, + PREFSMAN->m_iPercentScoreOKWeight, + }; + return HoldScoreValues[hns]; } diff --git a/stepmania/src/StageStats.cpp b/stepmania/src/StageStats.cpp index a79848ed64..9228e0fb5a 100644 --- a/stepmania/src/StageStats.cpp +++ b/stepmania/src/StageStats.cpp @@ -16,6 +16,7 @@ #include "RageLog.h" #include "SongManager.h" #include "RageUtil.h" +#include "PrefsManager.h" StageStats g_CurStageStats; vector g_vPlayedStageStats; @@ -145,8 +146,22 @@ Grade StageStats::GetGrade( PlayerNumber pn ) const * is tricky since at that point the ScoreKeepers no longer exist. * * See http://www.aaroninjapan.com/ddr2.html ("Regular play scoring") */ - const float TapScoreValues[NUM_TAP_NOTE_SCORES] = { 0, -8, -4, 0, +1, +2, +2 }; - const float HoldScoreValues[NUM_HOLD_NOTE_SCORES] = { 0, 0, +6 }; + const float TapScoreValues[NUM_TAP_NOTE_SCORES] = + { + 0, + PREFSMAN->m_iGradeMissWeight, + PREFSMAN->m_iGradeBooWeight, + PREFSMAN->m_iGradeGoodWeight, + PREFSMAN->m_iGradeGreatWeight, + PREFSMAN->m_iGradePerfectWeight, + PREFSMAN->m_iGradeMarvelousWeight, + }; + const float HoldScoreValues[NUM_HOLD_NOTE_SCORES] = + { + 0, + PREFSMAN->m_iGradeNGWeight, + PREFSMAN->m_iGradeOKWeight, + }; float Possible = 0, Actual = 0; int i;