working on finishing checkpoint holds:

track checkpoints missed and hit
allow it to inlfuence the life meter
This commit is contained in:
Glenn Maynard
2007-04-06 23:25:32 +00:00
parent 8864c5b382
commit 8c36383c76
10 changed files with 114 additions and 71 deletions
+19 -13
View File
@@ -20,22 +20,26 @@ static ThemeMetric<int> NUM_CHAMBERS ("LifeMeterTime","NumChambers");
static ThemeMetric<int> NUM_STRIPS ("LifeMeterTime","NumStrips");
static ThemeMetric<float> INITIAL_VALUE ("LifeMeterTime","InitialValue");
static const float g_fTimeMeterSecondsChangeInit[] =
{
+0.0f, // SE_CheckpointHit
+0.1f, // SE_W1
+0.0f, // SE_W2
-0.5f, // SE_W3
-1.0f, // SE_W4
-2.0f, // SE_W5
-4.0f, // SE_Miss
-2.0f, // SE_HitMine
-0.0f, // SE_CheckpointMiss
-0.0f, // SE_Held
-4.0f, // SE_LetGo
};
COMPILE_ASSERT( ARRAYSIZE(g_fTimeMeterSecondsChangeInit) == NUM_ScoreEvent );
static void TimeMeterSecondsChangeInit( size_t /*ScoreEvent*/ i, RString &sNameOut, float &defaultValueOut )
{
sNameOut = "TimeMeterSecondsChange" + ScoreEventToString( (ScoreEvent)i );
switch( i )
{
default: ASSERT(0);
case SE_W1: defaultValueOut = +0.1f; break;
case SE_W2: defaultValueOut = +0.0f; break;
case SE_W3: defaultValueOut = -0.5f; break;
case SE_W4: defaultValueOut = -1.0f; break;
case SE_W5: defaultValueOut = -2.0f; break;
case SE_Miss: defaultValueOut = -4.0f; break;
case SE_HitMine: defaultValueOut = -2.0f; break;
case SE_Held: defaultValueOut = -0.0f; break;
case SE_LetGo: defaultValueOut = -4.0f; break;
}
defaultValueOut = g_fTimeMeterSecondsChangeInit[i];
}
static Preference1D<float> g_fTimeMeterSecondsChange( TimeMeterSecondsChangeInit, NUM_ScoreEvent );
@@ -125,6 +129,8 @@ void LifeMeterTime::ChangeLife( TapNoteScore tns )
case TNS_W5: fMeterChange = g_fTimeMeterSecondsChange[SE_W5]; break;
case TNS_Miss: fMeterChange = g_fTimeMeterSecondsChange[SE_Miss]; break;
case TNS_HitMine: fMeterChange = g_fTimeMeterSecondsChange[SE_HitMine]; break;
case TNS_CheckpointHit: fMeterChange = g_fTimeMeterSecondsChange[SE_CheckpointHit]; break;
case TNS_CheckpointMiss:fMeterChange = g_fTimeMeterSecondsChange[SE_CheckpointMiss]; break;
}
float fOldLife = m_fLifeTotalLostSeconds;