Use generic names for TapNoteScore values since they are treated genericly by the code.
Theme changes coming...
This commit is contained in:
@@ -64,8 +64,8 @@ void CombinedLifeMeterTug::ChangeLife( PlayerNumber pn, HoldNoteScore score, Tap
|
||||
{
|
||||
/* The initial tap note score (which we happen to have in have in
|
||||
* tscore) has already been reported to the above function. If the
|
||||
* hold end result was an NG, count it as a miss; if the end result
|
||||
* was an OK, count a perfect. (Remember, this is just life meter
|
||||
* hold end result was an LetGo, count it as a miss; if the end result
|
||||
* was a Held, count a tier2. (Remember, this is just life meter
|
||||
* computation, not scoring.) */
|
||||
float fPercentToMove = 0;
|
||||
switch( score )
|
||||
|
||||
@@ -268,9 +268,9 @@ static const CString PerDifficultyAwardNames[] = {
|
||||
"SingleDigitTier2",
|
||||
"OneTier2",
|
||||
"FullComboTier1",
|
||||
"Tier3s80Percent",
|
||||
"Tier3s90Percent",
|
||||
"Tier3s100Percent",
|
||||
"Percent80Tier3",
|
||||
"Percent90Tier3",
|
||||
"Percent100Tier3",
|
||||
};
|
||||
XToString( PerDifficultyAward, NUM_PER_DIFFICULTY_AWARDS );
|
||||
XToThemedString( PerDifficultyAward, NUM_PER_DIFFICULTY_AWARDS );
|
||||
|
||||
@@ -293,16 +293,16 @@ const CString& PremiumToString( Premium p );
|
||||
|
||||
enum PerDifficultyAward
|
||||
{
|
||||
AWARD_FULL_COMBO_GREATS,
|
||||
AWARD_SINGLE_DIGIT_GREATS,
|
||||
AWARD_ONE_GREAT,
|
||||
AWARD_FULL_COMBO_PERFECTS,
|
||||
AWARD_SINGLE_DIGIT_PERFECTS,
|
||||
AWARD_ONE_PERFECT,
|
||||
AWARD_FULL_COMBO_MARVELOUSES,
|
||||
AWARD_GREATS_80_PERCENT,
|
||||
AWARD_GREATS_90_PERCENT,
|
||||
AWARD_GREATS_100_PERCENT,
|
||||
AWARD_FULL_COMBO_TIER3,
|
||||
AWARD_SINGLE_DIGIT_TIER3,
|
||||
AWARD_ONE_TIER3,
|
||||
AWARD_FULL_COMBO_TIER2,
|
||||
AWARD_SINGLE_DIGIT_TIER2,
|
||||
AWARD_ONE_TIER2,
|
||||
AWARD_FULL_COMBO_TIER1,
|
||||
AWARD_PERCENT_80_TIER3,
|
||||
AWARD_PERCENT_90_TIER3,
|
||||
AWARD_PERCENT_100_TIER3,
|
||||
NUM_PER_DIFFICULTY_AWARDS,
|
||||
PER_DIFFICULTY_AWARD_INVALID,
|
||||
};
|
||||
|
||||
@@ -138,7 +138,7 @@ void LifeMeterBar::ChangeLife( TapNoteScore score )
|
||||
ASSERT(0);
|
||||
}
|
||||
if( IsHot() && score < TNS_Tier4 )
|
||||
fDeltaLife = -0.10f; // make it take a while to get back to "doing great"
|
||||
fDeltaLife = -0.10f; // make it take a while to get back to "hot"
|
||||
break;
|
||||
case SongOptions::DRAIN_NO_RECOVER:
|
||||
switch( score )
|
||||
@@ -179,8 +179,8 @@ void LifeMeterBar::ChangeLife( HoldNoteScore score, TapNoteScore tscore )
|
||||
{
|
||||
/* The initial tap note score (which we happen to have in have in
|
||||
* tscore) has already been reported to the above function. If the
|
||||
* hold end result was an NG, count it as a miss; if the end result
|
||||
* was an OK, count a perfect. (Remember, this is just life meter
|
||||
* hold end result was an LetGo, count it as a miss; if the end result
|
||||
* was an OK, count a tier2. (Remember, this is just life meter
|
||||
* computation, not scoring.) */
|
||||
float fDeltaLife=0.f;
|
||||
switch( GAMESTATE->m_SongOptions.m_DrainType )
|
||||
@@ -194,7 +194,7 @@ void LifeMeterBar::ChangeLife( HoldNoteScore score, TapNoteScore tscore )
|
||||
ASSERT(0);
|
||||
}
|
||||
if( IsHot() && score == HNS_LetGo )
|
||||
fDeltaLife = -0.10f; // make it take a while to get back to "doing great"
|
||||
fDeltaLife = -0.10f; // make it take a while to get back to "hot"
|
||||
break;
|
||||
case SongOptions::DRAIN_NO_RECOVER:
|
||||
switch( score )
|
||||
@@ -237,7 +237,7 @@ void LifeMeterBar::ChangeLife( float fDeltaLife )
|
||||
else
|
||||
{
|
||||
fDeltaLife *= 1 + (float)m_iProgressiveLifebar/8 * m_iMissCombo;
|
||||
// do this after; only successive boo/miss will
|
||||
// do this after; only successive tier5/miss will
|
||||
// increase the amount of life lost.
|
||||
m_iMissCombo++;
|
||||
/* Increase by m_iRegenComboAfterMiss; never push it beyond m_iMaxRegenComboAfterMiss
|
||||
@@ -392,7 +392,7 @@ void LifeMeterBar::UpdateNonstopLifebar(const int cleared,
|
||||
* Life 16+: 200 %
|
||||
*
|
||||
* Note there is 200%, because boos take off 1/2 as much as
|
||||
* a miss, and a boo would suck up half of your lifebar.
|
||||
* a miss, and a tier5 would suck up half of your lifebar.
|
||||
*
|
||||
* Everything past 7 is intended mainly for nonstop mode.
|
||||
*/
|
||||
|
||||
@@ -51,7 +51,7 @@ private:
|
||||
float m_fLifeDifficulty; // essentially same as pref
|
||||
|
||||
int m_iProgressiveLifebar; // cached from prefs
|
||||
int m_iMissCombo; // current number of progressive boo/miss
|
||||
int m_iMissCombo; // current number of progressive tier5/miss
|
||||
|
||||
int m_iComboToRegainLife; // combo needed before lifebar starts filling up after fail
|
||||
};
|
||||
|
||||
@@ -954,8 +954,8 @@ bool BMSLoader::LoadFromDir( CString sDir, Song &out )
|
||||
ReadGlobalTags( aBMSData[iMainDataIndex], out );
|
||||
|
||||
// Override what that global tag said about the title if we have a good substring.
|
||||
// Prevents clobbering and catches "D2R (7keys)" / "D2R (Another) (7keys)"
|
||||
// Also catches "D2R (7keys)" / "D2R (14keys)"
|
||||
// Prevents clobbering and catches "MySong (7keys)" / "MySong (Another) (7keys)"
|
||||
// Also catches "MySong (7keys)" / "MySong (14keys)"
|
||||
if( commonSubstring != "" )
|
||||
GetMainAndSubTitlesFromFullTitle( commonSubstring, out.m_sMainTitle, out.m_sSubTitle );
|
||||
|
||||
|
||||
@@ -1396,7 +1396,7 @@ void Player::DisplayJudgedRow( int iIndexThatWasSteppedOn, TapNoteScore score, i
|
||||
{
|
||||
TapNote tn = m_NoteData.GetTapNote(iTrack, iIndexThatWasSteppedOn);
|
||||
|
||||
// If the score is great or better, remove the note from the screen to
|
||||
// If the score is tier3 or better, remove the note from the screen to
|
||||
// indicate success. (Or always if blind is on.)
|
||||
if( score >= TNS_Tier3 || m_pPlayerState->m_PlayerOptions.m_fBlind )
|
||||
{
|
||||
@@ -1426,8 +1426,8 @@ void Player::OnRowCompletelyJudged( int iIndexThatWasSteppedOn )
|
||||
/* Find the minimum score of the row. This will never be TNS_None, since this
|
||||
* function is only called when a row is completed. */
|
||||
/* Instead, use the last tap score.
|
||||
/* I'm not sure this is right, either. Can you really jump a boo and a perfect
|
||||
* and get scored for a perfect? (That's so loose, you can gallop jumps.) -glenn */
|
||||
/* I'm not sure this is right, either. Can you really jump a tier5 and a tier2
|
||||
* and get scored for a tier2? (That's so loose, you can gallop jumps.) -glenn */
|
||||
/* Instead of grading individual columns, maybe set a "was pressed recently"
|
||||
* countdown every time you step on a column. When you step on the first note of
|
||||
* the jump, it sets the first "was pressed recently" timer. Then, when you do
|
||||
|
||||
@@ -527,28 +527,28 @@ void PlayerStageStats::CalcAwards( PlayerNumber p, bool bGaveUp, bool bUsedAutop
|
||||
if( !GAMESTATE->IsDisqualified(p) )
|
||||
{
|
||||
if( FullComboOfScore( TNS_Tier3 ) )
|
||||
vPdas.push_back( AWARD_FULL_COMBO_GREATS );
|
||||
vPdas.push_back( AWARD_FULL_COMBO_TIER3 );
|
||||
if( SingleDigitsOfScore( TNS_Tier3 ) )
|
||||
vPdas.push_back( AWARD_SINGLE_DIGIT_GREATS );
|
||||
vPdas.push_back( AWARD_SINGLE_DIGIT_TIER3 );
|
||||
if( FullComboOfScore( TNS_Tier2 ) )
|
||||
vPdas.push_back( AWARD_FULL_COMBO_PERFECTS );
|
||||
vPdas.push_back( AWARD_FULL_COMBO_TIER2 );
|
||||
if( SingleDigitsOfScore( TNS_Tier2 ) )
|
||||
vPdas.push_back( AWARD_SINGLE_DIGIT_PERFECTS );
|
||||
vPdas.push_back( AWARD_SINGLE_DIGIT_TIER2 );
|
||||
if( FullComboOfScore( TNS_Tier1 ) )
|
||||
vPdas.push_back( AWARD_FULL_COMBO_MARVELOUSES );
|
||||
vPdas.push_back( AWARD_FULL_COMBO_TIER1 );
|
||||
|
||||
if( OneOfScore( TNS_Tier3 ) )
|
||||
vPdas.push_back( AWARD_ONE_GREAT );
|
||||
vPdas.push_back( AWARD_ONE_TIER3 );
|
||||
if( OneOfScore( TNS_Tier2 ) )
|
||||
vPdas.push_back( AWARD_ONE_PERFECT );
|
||||
vPdas.push_back( AWARD_ONE_TIER2 );
|
||||
|
||||
float fPercentTier3s = GetPercentageOfTaps( TNS_Tier3 );
|
||||
if( fPercentTier3s >= 0.8f )
|
||||
vPdas.push_back( AWARD_GREATS_80_PERCENT );
|
||||
vPdas.push_back( AWARD_PERCENT_80_TIER3 );
|
||||
if( fPercentTier3s >= 0.9f )
|
||||
vPdas.push_back( AWARD_GREATS_90_PERCENT );
|
||||
vPdas.push_back( AWARD_PERCENT_90_TIER3 );
|
||||
if( fPercentTier3s >= 1.f )
|
||||
vPdas.push_back( AWARD_GREATS_100_PERCENT );
|
||||
vPdas.push_back( AWARD_PERCENT_100_TIER3 );
|
||||
}
|
||||
|
||||
// Max one PDA per stage
|
||||
|
||||
@@ -103,7 +103,7 @@ public:
|
||||
Preference<bool> m_bMinimum1FullSongInCourses; // FEoS for 1st song, FailImmediate thereafter
|
||||
Preference<bool> m_bFailOffInBeginner;
|
||||
Preference<bool> m_bFailOffForFirstStageEasy;
|
||||
Preference<bool> m_bMercifulBeginner; // don't subtract from percent score or grade DP, larger boo window
|
||||
Preference<bool> m_bMercifulBeginner; // don't subtract from percent score or grade DP, larger tier5 window
|
||||
|
||||
// percent score (the number that is shown on the screen and saved to memory card)
|
||||
Preference<int> m_iPercentScoreWeightTier1;
|
||||
|
||||
@@ -129,7 +129,7 @@ ProfileLoadResult ProfileManager::LoadProfile( PlayerNumber pn, CString sProfile
|
||||
|
||||
if( lr == ProfileLoadResult_Success )
|
||||
{
|
||||
/* Next time the profile is written, move this good profile into LastGood. */
|
||||
/* Next time the profile is written, move this tier4 profile into LastGood. */
|
||||
m_bNeedToBackUpLastLoad[pn] = true;
|
||||
}
|
||||
|
||||
@@ -299,8 +299,8 @@ bool ProfileManager::SaveProfile( PlayerNumber pn ) const
|
||||
|
||||
/*
|
||||
* If the profile we're writing was loaded from the primary (non-backup)
|
||||
* data, then we've validated it and know it's good. Before writing our
|
||||
* new data, move the old, good data to the backup. (Only do this once;
|
||||
* data, then we've validated it and know it's tier4. Before writing our
|
||||
* new data, move the old, tier4 data to the backup. (Only do this once;
|
||||
* if we save the profile more than once, we havn't re-validated the
|
||||
* newly written data.)
|
||||
*/
|
||||
|
||||
@@ -500,11 +500,11 @@ void ScreenEvaluation::Init()
|
||||
int iValue;
|
||||
switch( l )
|
||||
{
|
||||
case marvelous: iValue = STATSMAN->m_CurStageStats.m_player[p].iTapNoteScores[TNS_Tier1]; break;
|
||||
case perfect: iValue = STATSMAN->m_CurStageStats.m_player[p].iTapNoteScores[TNS_Tier2]; break;
|
||||
case great: iValue = STATSMAN->m_CurStageStats.m_player[p].iTapNoteScores[TNS_Tier3]; break;
|
||||
case good: iValue = STATSMAN->m_CurStageStats.m_player[p].iTapNoteScores[TNS_Tier4]; break;
|
||||
case boo: iValue = STATSMAN->m_CurStageStats.m_player[p].iTapNoteScores[TNS_Tier5]; break;
|
||||
case tier1: iValue = STATSMAN->m_CurStageStats.m_player[p].iTapNoteScores[TNS_Tier1]; break;
|
||||
case tier2: iValue = STATSMAN->m_CurStageStats.m_player[p].iTapNoteScores[TNS_Tier2]; break;
|
||||
case tier3: iValue = STATSMAN->m_CurStageStats.m_player[p].iTapNoteScores[TNS_Tier3]; break;
|
||||
case tier4: iValue = STATSMAN->m_CurStageStats.m_player[p].iTapNoteScores[TNS_Tier4]; break;
|
||||
case tier5: iValue = STATSMAN->m_CurStageStats.m_player[p].iTapNoteScores[TNS_Tier5]; break;
|
||||
case miss: iValue = STATSMAN->m_CurStageStats.m_player[p].iTapNoteScores[TNS_Miss]; break;
|
||||
case ok: iValue = STATSMAN->m_CurStageStats.m_player[p].iHoldNoteScores[HNS_Held]; break;
|
||||
case max_combo: iValue = STATSMAN->m_CurStageStats.m_player[p].GetMaxCombo().cnt; break;
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
#include "ThemeMetric.h"
|
||||
|
||||
const int MAX_SONGS_TO_SHOW = 5; // In summary, we show last 3 stages, plus extra stages if passed
|
||||
enum JudgeLine { marvelous, perfect, great, good, boo, miss, ok, max_combo, error, NUM_JUDGE_LINES };
|
||||
enum JudgeLine { tier1, tier2, tier3, tier4, tier5, miss, ok, max_combo, error, NUM_JUDGE_LINES };
|
||||
enum StatsLine { jumps, holds, mines, hands, rolls, NUM_STATS_LINES };
|
||||
|
||||
class ScreenEvaluation : public ScreenWithMenuElements
|
||||
|
||||
Reference in New Issue
Block a user