show per-diffculty award on Eval screen every time it's received (not just the first time)
clean up ScreenEval PR and MR graphics clean up Actor shadow parameters
This commit is contained in:
@@ -52,8 +52,7 @@ void Actor::Reset()
|
||||
m_effectColor2 = RageColor(1,1,1,1);
|
||||
|
||||
m_bHidden = false;
|
||||
m_bShadow = false;
|
||||
m_fShadowLength = 4;
|
||||
m_fShadowLength = 0;
|
||||
m_bIsAnimating = true;
|
||||
m_fHibernateSecondsLeft = 0;
|
||||
|
||||
@@ -601,13 +600,7 @@ void Actor::SetEffectPulse( float fPeriod, float fMinZoom, float fMaxZoom )
|
||||
|
||||
void Actor::SetShadowLength( float fLength )
|
||||
{
|
||||
if( fLength==0 )
|
||||
m_bShadow = false;
|
||||
else
|
||||
{
|
||||
m_fShadowLength = fLength;
|
||||
m_bShadow = true;
|
||||
}
|
||||
m_fShadowLength = fLength;
|
||||
}
|
||||
|
||||
void Actor::AddRotationH( float rot )
|
||||
|
||||
@@ -273,7 +273,6 @@ public:
|
||||
bool GetHidden() const { return m_bHidden; }
|
||||
void SetHidden( bool b ) { m_bHidden = b; }
|
||||
void SetShadowLength( float fLength );
|
||||
void EnableShadow( bool b ) { m_bShadow = b; }
|
||||
// TODO: Implement hibernate as a tween type?
|
||||
void SetHibernate( float fSecs ) { m_fHibernateSecondsLeft = fSecs; }
|
||||
|
||||
@@ -372,8 +371,7 @@ protected:
|
||||
//
|
||||
bool m_bHidden;
|
||||
float m_fHibernateSecondsLeft;
|
||||
bool m_bShadow;
|
||||
float m_fShadowLength;
|
||||
float m_fShadowLength; // 0 == no shadow
|
||||
bool m_bIsAnimating;
|
||||
|
||||
//
|
||||
|
||||
@@ -68,17 +68,14 @@ BitmapText::BitmapText()
|
||||
}
|
||||
iReloadCounter++;
|
||||
|
||||
m_HorizAlign = align_center;
|
||||
m_VertAlign = align_middle;
|
||||
|
||||
m_pFont = NULL;
|
||||
|
||||
m_bShadow = true;
|
||||
|
||||
m_bRainbow = false;
|
||||
|
||||
m_iWrapWidthPixels = -1;
|
||||
m_fMaxWidth = 0;
|
||||
|
||||
SetShadowLength( 4 );
|
||||
}
|
||||
|
||||
BitmapText::~BitmapText()
|
||||
@@ -458,7 +455,7 @@ void BitmapText::DrawPrimitives()
|
||||
//////////////////////
|
||||
// render the shadow
|
||||
//////////////////////
|
||||
if( m_bShadow )
|
||||
if( m_fShadowLength != 0 )
|
||||
{
|
||||
DISPLAY->PushMatrix();
|
||||
DISPLAY->TranslateWorld( m_fShadowLength, m_fShadowLength, 0 ); // shift by 5 units
|
||||
|
||||
@@ -59,7 +59,7 @@ Combo::Combo()
|
||||
FULL_COMBO_BROKEN_COMMAND.Refresh();
|
||||
|
||||
m_sprCombo.Load( THEME->GetPathToG( "Combo label") );
|
||||
m_sprCombo.EnableShadow( true );
|
||||
m_sprCombo.SetShadowLength( 4 );
|
||||
m_sprCombo.StopAnimating();
|
||||
m_sprCombo.SetXY( LABEL_X, LABEL_Y );
|
||||
m_sprCombo.SetHorizAlign( (Actor::HorizAlign)(int)LABEL_HORIZ_ALIGN );
|
||||
@@ -68,7 +68,7 @@ Combo::Combo()
|
||||
this->AddChild( &m_sprCombo );
|
||||
|
||||
m_textComboNumber.LoadFromNumbers( THEME->GetPathToN("Combo") );
|
||||
m_textComboNumber.EnableShadow( true );
|
||||
m_textComboNumber.SetShadowLength( 4 );
|
||||
m_textComboNumber.SetXY( NUMBER_X, NUMBER_Y );
|
||||
m_textComboNumber.SetHorizAlign( (Actor::HorizAlign)(int)NUMBER_HORIZ_ALIGN );
|
||||
m_textComboNumber.SetVertAlign( (Actor::VertAlign)(int)NUMBER_VERT_ALIGN );
|
||||
|
||||
@@ -53,7 +53,7 @@ void LifeMeterBattery::Load( PlayerNumber pn )
|
||||
|
||||
m_textNumLives.LoadFromNumbers( THEME->GetPathToN("LifeMeterBattery lives") );
|
||||
m_textNumLives.SetDiffuse( RageColor(1,1,1,1) );
|
||||
m_textNumLives.EnableShadow( false );
|
||||
m_textNumLives.SetShadowLength( 0 );
|
||||
if( bPlayerEnabled )
|
||||
this->AddChild( &m_textNumLives );
|
||||
|
||||
|
||||
@@ -146,6 +146,8 @@ void MenuTimer::SetSeconds( int iSeconds )
|
||||
|
||||
m_textDigit1.Command( ON_COMMAND );
|
||||
m_textDigit2.Command( ON_COMMAND );
|
||||
m_textDigit1.SetShadowLength( 4 );
|
||||
m_textDigit2.SetShadowLength( 4 );
|
||||
|
||||
SetText( iSeconds );
|
||||
}
|
||||
|
||||
@@ -77,7 +77,7 @@ MusicWheelItem::MusicWheelItem()
|
||||
m_All.AddChild( &m_sprSectionBar );
|
||||
|
||||
m_textSectionName.LoadFromFont( THEME->GetPathToF("MusicWheelItem section") );
|
||||
m_textSectionName.EnableShadow( false );
|
||||
m_textSectionName.SetShadowLength( 0 );
|
||||
m_textSectionName.SetVertAlign( align_middle );
|
||||
m_textSectionName.SetXY( SECTION_NAME_X, 0 );
|
||||
m_textSectionName.SetZoom( SECTION_ZOOM );
|
||||
@@ -85,7 +85,7 @@ MusicWheelItem::MusicWheelItem()
|
||||
|
||||
|
||||
m_textRoulette.LoadFromFont( THEME->GetPathToF("MusicWheelItem roulette") );
|
||||
m_textRoulette.EnableShadow( false );
|
||||
m_textRoulette.SetShadowLength( 0 );
|
||||
m_textRoulette.TurnRainbowOn();
|
||||
m_textRoulette.SetZoom( ROULETTE_ZOOM );
|
||||
m_textRoulette.SetXY( ROULETTE_X, 0 );
|
||||
|
||||
@@ -32,7 +32,7 @@ NoteField::NoteField()
|
||||
m_textMeasureNumber.LoadFromFont( THEME->GetPathToF("Common normal") );
|
||||
m_textMeasureNumber.SetZoom( 1.0f );
|
||||
|
||||
m_rectMarkerBar.EnableShadow( false );
|
||||
m_rectMarkerBar.SetShadowLength( 0 );
|
||||
m_rectMarkerBar.SetEffectDiffuseShift( 2, RageColor(1,1,1,0.5f), RageColor(0.5f,0.5f,0.5f,0.5f) );
|
||||
|
||||
m_sprBars.Load( THEME->GetPathToG("NoteField bars") );
|
||||
|
||||
@@ -30,7 +30,7 @@ OptionIcon::OptionIcon()
|
||||
this->AddChild( &m_spr );
|
||||
|
||||
m_text.LoadFromFont( THEME->GetPathToF("OptionIcon") );
|
||||
m_text.EnableShadow( false );
|
||||
m_text.SetShadowLength( 0 );
|
||||
m_text.SetZoom( TEXT_ZOOM );
|
||||
m_text.SetXY( TEXT_OFFSET_X, TEXT_OFFSET_Y );
|
||||
m_text.SetHorizAlign( (Actor::HorizAlign)TEXT_H_ALIGN );
|
||||
|
||||
@@ -78,13 +78,13 @@ void PercentageDisplay::Refresh()
|
||||
{
|
||||
int iPercentWhole = int(fPercentDancePoints*100);
|
||||
int iPercentRemainder = int( (fPercentDancePoints*100 - int(fPercentDancePoints*100)) * 10 );
|
||||
sNumToDisplay = ssprintf( "%02d", iPercentWhole );
|
||||
sNumToDisplay = ssprintf( "%2d", iPercentWhole );
|
||||
m_textPercentRemainder.SetText( ssprintf(".%01d%%", iPercentRemainder) );
|
||||
}
|
||||
else
|
||||
{
|
||||
float fNumToDisplay = fPercentDancePoints*100;
|
||||
sNumToDisplay = ssprintf( "%0*.*f%%", PERCENT_TOTAL_SIZE, PERCENT_DECIMAL_PLACES, fNumToDisplay );
|
||||
sNumToDisplay = ssprintf( "%*.*f%%", PERCENT_TOTAL_SIZE, PERCENT_DECIMAL_PLACES, fNumToDisplay );
|
||||
|
||||
// HACK: Use the last frame in the numbers texture as '-'
|
||||
sNumToDisplay.Replace('-','x');
|
||||
|
||||
@@ -31,7 +31,7 @@ ScoreDisplayNormal::ScoreDisplayNormal()
|
||||
|
||||
// init the text
|
||||
m_text.LoadFromNumbers( THEME->GetPathToN("ScoreDisplayNormal") );
|
||||
m_text.EnableShadow( false );
|
||||
m_text.SetShadowLength( 0 );
|
||||
|
||||
m_iScore = 0;
|
||||
m_iTrailingScore = 0;
|
||||
|
||||
@@ -29,7 +29,7 @@ ScoreDisplayOni::ScoreDisplayOni()
|
||||
|
||||
// init the text
|
||||
m_text.LoadFromNumbers( THEME->GetPathToN("ScoreDisplayOni") );
|
||||
m_text.EnableShadow( false );
|
||||
m_text.SetShadowLength( 0 );
|
||||
this->AddChild( &m_text );
|
||||
}
|
||||
|
||||
|
||||
@@ -354,7 +354,7 @@ ScreenEdit::ScreenEdit( CString sName ) : Screen( sName )
|
||||
m_textHelp.SetVertAlign( Actor::align_top );
|
||||
m_textHelp.SetZoom( 0.5f );
|
||||
m_textHelp.SetText( HELP_TEXT );
|
||||
m_textHelp.EnableShadow( false );
|
||||
m_textHelp.SetShadowLength( 0 );
|
||||
|
||||
m_sprInfo.Load( THEME->GetPathToG("ScreenEdit Info") );
|
||||
m_sprInfo.SetHorizAlign( Actor::align_right );
|
||||
@@ -365,7 +365,7 @@ ScreenEdit::ScreenEdit( CString sName ) : Screen( sName )
|
||||
m_textInfo.SetHorizAlign( Actor::align_left );
|
||||
m_textInfo.SetVertAlign( Actor::align_top );
|
||||
m_textInfo.SetZoom( 0.5f );
|
||||
m_textInfo.EnableShadow( false );
|
||||
m_textInfo.SetShadowLength( 0 );
|
||||
//m_textInfo.SetText(); // set this below every frame
|
||||
|
||||
m_soundChangeLine.Load( THEME->GetPathToS("ScreenEdit line") );
|
||||
|
||||
+227
-219
@@ -84,6 +84,8 @@ const char* STATS_STRING[NUM_STATS_LINES] =
|
||||
#define SOUNDSEQ_TIME( i ) THEME->GetMetricF(m_sName,ssprintf("SoundSeqTime%d", i+1))
|
||||
#define SOUNDSEQ_NAME( i ) THEME->GetMetric (m_sName,ssprintf("SoundSeqName%d", i+1))
|
||||
#define PEAK_COMBO_AWARD_COMMAND THEME->GetMetric (m_sName,"PeakComboAwardCommand")
|
||||
#define MAX_COMBO_NUM_DIGITS THEME->GetMetricI(m_sName,"MaxComboNumDigits")
|
||||
#define PLAYER_OPTIONS_SEPARATOR THEME->GetMetric (m_sName,"PlayerOptionsSeparator")
|
||||
|
||||
|
||||
static const int NUM_SHOWN_RADAR_CATEGORIES = 5;
|
||||
@@ -106,22 +108,25 @@ void ScreenEvaluation::Init()
|
||||
|
||||
if( PREFSMAN->m_bScreenTestMode )
|
||||
{
|
||||
PROFILEMAN->LoadProfileFromMemoryCard(PLAYER_1);
|
||||
PROFILEMAN->LoadFirstAvailableProfile(PLAYER_1);
|
||||
PROFILEMAN->LoadFirstAvailableProfile(PLAYER_2);
|
||||
|
||||
GAMESTATE->m_PlayMode = PLAY_MODE_ARCADE;
|
||||
GAMESTATE->m_CurStyle = STYLE_DANCE_VERSUS;
|
||||
GAMESTATE->m_bSideIsJoined[PLAYER_1] = true;
|
||||
GAMESTATE->m_bSideIsJoined[PLAYER_2] = true;
|
||||
GAMESTATE->m_MasterPlayerNumber = PLAYER_1;
|
||||
GAMESTATE->m_pCurSong = SONGMAN->GetAllSongs()[0];
|
||||
// GAMESTATE->m_pCurCourse = SONGMAN->m_pCourses[0];
|
||||
GAMESTATE->m_pCurSong = SONGMAN->GetRandomSong();
|
||||
GAMESTATE->m_pCurCourse = SONGMAN->GetRandomCourse();
|
||||
GAMESTATE->m_pCurNotes[PLAYER_1] = GAMESTATE->m_pCurSong->m_apNotes[0];
|
||||
GAMESTATE->m_pCurNotes[PLAYER_2] = GAMESTATE->m_pCurSong->m_apNotes[0];
|
||||
g_CurStageStats.pSteps[PLAYER_1] = GAMESTATE->m_pCurNotes[PLAYER_1];
|
||||
g_CurStageStats.pSteps[PLAYER_2] = GAMESTATE->m_pCurNotes[PLAYER_2];
|
||||
GAMESTATE->m_PlayerOptions[PLAYER_1].m_fScrollSpeed = 2;
|
||||
GAMESTATE->m_PlayerOptions[PLAYER_2].m_fScrollSpeed = 2;
|
||||
GAMESTATE->m_iCurrentStageIndex = 2;
|
||||
GAMESTATE->m_iCurrentStageIndex = 0;
|
||||
GAMESTATE->m_PlayerOptions[PLAYER_1].ChooseRandomMofifiers();
|
||||
GAMESTATE->m_PlayerOptions[PLAYER_2].ChooseRandomMofifiers();
|
||||
|
||||
for( float f = 0; f < 100.0f; f += 1.0f )
|
||||
{
|
||||
@@ -130,6 +135,10 @@ void ScreenEvaluation::Init()
|
||||
g_CurStageStats.SetLifeRecord( PLAYER_2, 1-fP1, f );
|
||||
}
|
||||
|
||||
g_CurStageStats.iActualDancePoints[PLAYER_1] = rand()%3;
|
||||
g_CurStageStats.iPossibleDancePoints[PLAYER_1] = 2;
|
||||
g_CurStageStats.iActualDancePoints[PLAYER_2] = rand()%2;
|
||||
g_CurStageStats.iPossibleDancePoints[PLAYER_2] = 1;
|
||||
g_CurStageStats.iCurCombo[PLAYER_1] = 0;
|
||||
g_CurStageStats.UpdateComboList( PLAYER_1, 0, false );
|
||||
g_CurStageStats.iCurCombo[PLAYER_1] = 1;
|
||||
@@ -139,8 +148,12 @@ void ScreenEvaluation::Init()
|
||||
g_CurStageStats.iCurCombo[PLAYER_1] = 250;
|
||||
g_CurStageStats.UpdateComboList( PLAYER_1, 100, false );
|
||||
|
||||
g_CurStageStats.iTapNoteScores[PLAYER_1][TNS_MARVELOUS] = 1;
|
||||
g_CurStageStats.iTapNoteScores[PLAYER_2][TNS_PERFECT] = 1;
|
||||
g_CurStageStats.iTapNoteScores[PLAYER_1][TNS_MARVELOUS] = rand()%2;
|
||||
g_CurStageStats.iTapNoteScores[PLAYER_1][TNS_PERFECT] = rand()%2;
|
||||
g_CurStageStats.iTapNoteScores[PLAYER_1][TNS_GREAT] = rand()%2;
|
||||
g_CurStageStats.iTapNoteScores[PLAYER_2][TNS_MARVELOUS] = rand()%2;
|
||||
g_CurStageStats.iTapNoteScores[PLAYER_2][TNS_PERFECT] = rand()%2;
|
||||
g_CurStageStats.iTapNoteScores[PLAYER_2][TNS_GREAT] = rand()%2;
|
||||
|
||||
g_vPlayedStageStats.clear();
|
||||
}
|
||||
@@ -318,7 +331,7 @@ void ScreenEvaluation::Init()
|
||||
|
||||
m_textPlayerOptions[p].LoadFromFont( THEME->GetPathToF("Common normal") );
|
||||
CString sPO = GAMESTATE->m_PlayerOptions[p].GetString();
|
||||
sPO.Replace( ", ", "\n" );
|
||||
sPO.Replace( ", ", PLAYER_OPTIONS_SEPARATOR );
|
||||
m_textPlayerOptions[p].SetName( ssprintf("PlayerOptionsP%d",p+1) );
|
||||
SET_XY_AND_ON_COMMAND( m_textPlayerOptions[p] );
|
||||
m_textPlayerOptions[p].SetText( sPO );
|
||||
@@ -525,7 +538,7 @@ void ScreenEvaluation::Init()
|
||||
this->AddChild( &m_sprSurvivedFrame[p] );
|
||||
|
||||
m_textSurvivedNumber[p].LoadFromNumbers( THEME->GetPathToN("ScreenEvaluation stage") );
|
||||
m_textSurvivedNumber[p].EnableShadow( false );
|
||||
m_textSurvivedNumber[p].SetShadowLength( 0 );
|
||||
// curewater: edited the "# stages cleared" text so it deducts one if you failed.
|
||||
// Should be accurate, but I'm not sure if its "standard" that (bool)true = 1. (assumption)
|
||||
m_textSurvivedNumber[p].SetText( ssprintf("%02d", stageStats.iSongsPlayed[p] - (int)stageStats.bFailed[p]) );
|
||||
@@ -584,7 +597,7 @@ void ScreenEvaluation::Init()
|
||||
continue; // skip
|
||||
|
||||
m_textJudgeNumbers[l][p].LoadFromNumbers( THEME->GetPathToN("ScreenEvaluation judge") );
|
||||
m_textJudgeNumbers[l][p].EnableShadow( false );
|
||||
m_textJudgeNumbers[l][p].SetShadowLength( 0 );
|
||||
m_textJudgeNumbers[l][p].SetDiffuse( PlayerToColor(p) );
|
||||
m_textJudgeNumbers[l][p].SetName( ssprintf("%sNumberP%d",JUDGE_STRING[l],p+1) );
|
||||
SET_XY_AND_ON_COMMAND( m_textJudgeNumbers[l][p] );
|
||||
@@ -593,18 +606,21 @@ void ScreenEvaluation::Init()
|
||||
int iValue;
|
||||
switch( l )
|
||||
{
|
||||
case 0: iValue = stageStats.iTapNoteScores[p][TNS_MARVELOUS]; break;
|
||||
case 1: iValue = stageStats.iTapNoteScores[p][TNS_PERFECT]; break;
|
||||
case 2: iValue = stageStats.iTapNoteScores[p][TNS_GREAT]; break;
|
||||
case 3: iValue = stageStats.iTapNoteScores[p][TNS_GOOD]; break;
|
||||
case 4: iValue = stageStats.iTapNoteScores[p][TNS_BOO]; break;
|
||||
case 5: iValue = stageStats.iTapNoteScores[p][TNS_MISS]; break;
|
||||
case 6: iValue = stageStats.iHoldNoteScores[p][HNS_OK]; break;
|
||||
case 7: iValue = stageStats.iMaxCombo[p]; break;
|
||||
case 8: iValue = stageStats.iTotalError[p]; break;
|
||||
case marvelous: iValue = stageStats.iTapNoteScores[p][TNS_MARVELOUS]; break;
|
||||
case perfect: iValue = stageStats.iTapNoteScores[p][TNS_PERFECT]; break;
|
||||
case great: iValue = stageStats.iTapNoteScores[p][TNS_GREAT]; break;
|
||||
case good: iValue = stageStats.iTapNoteScores[p][TNS_GOOD]; break;
|
||||
case boo: iValue = stageStats.iTapNoteScores[p][TNS_BOO]; break;
|
||||
case miss: iValue = stageStats.iTapNoteScores[p][TNS_MISS]; break;
|
||||
case ok: iValue = stageStats.iHoldNoteScores[p][HNS_OK]; break;
|
||||
case max_combo: iValue = stageStats.iMaxCombo[p]; break;
|
||||
case error: iValue = stageStats.iTotalError[p]; break;
|
||||
default: iValue = 0; ASSERT(0);
|
||||
}
|
||||
m_textJudgeNumbers[l][p].SetText( ssprintf("%4d",iValue) );
|
||||
|
||||
// UGLY... generalize this
|
||||
int iNumDigits = (l==max_combo) ? MAX_COMBO_NUM_DIGITS : 4;
|
||||
m_textJudgeNumbers[l][p].SetText( ssprintf("%*d",iNumDigits,iValue) );
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -645,7 +661,7 @@ void ScreenEvaluation::Init()
|
||||
const int iActual = (int) roundf(stageStats.fRadarActual[p][ind]);
|
||||
const int iPossible = (int) roundf(stageStats.fRadarPossible[p][ind]);
|
||||
|
||||
m_textStatsText[l][p].SetText( ssprintf("%i/%i",iActual, iPossible) );
|
||||
m_textStatsText[l][p].SetText( ssprintf("%3d/%3d",iActual,iPossible) );
|
||||
}
|
||||
}
|
||||
|
||||
@@ -665,7 +681,7 @@ void ScreenEvaluation::Init()
|
||||
continue; // skip
|
||||
|
||||
m_textScore[p].LoadFromNumbers( THEME->GetPathToN("ScreenEvaluation score") );
|
||||
m_textScore[p].EnableShadow( false );
|
||||
m_textScore[p].SetShadowLength( 0 );
|
||||
m_textScore[p].SetDiffuse( PlayerToColor(p) );
|
||||
m_textScore[p].SetName( ssprintf("ScoreNumberP%d",p+1) );
|
||||
SET_XY_AND_ON_COMMAND( m_textScore[p] );
|
||||
@@ -693,7 +709,7 @@ void ScreenEvaluation::Init()
|
||||
//iTotalScore += stageStats.iScore[p];
|
||||
|
||||
m_textTotalScore[p].LoadFromNumbers( THEME->GetPathToN("ScreenEvaluation totalscore") );
|
||||
m_textTotalScore[p].EnableShadow( false );
|
||||
m_textTotalScore[p].SetShadowLength( 0 );
|
||||
m_textTotalScore[p].SetDiffuse( PlayerToColor(p) );
|
||||
m_textTotalScore[p].SetName( ssprintf("TotalScoreNumberP%d",p+1) );
|
||||
m_textTotalScore[p].SetText( ssprintf("%*.0i", NUM_SCORE_DIGITS+2, iTotalScore) );
|
||||
@@ -719,7 +735,7 @@ void ScreenEvaluation::Init()
|
||||
continue; // skip
|
||||
|
||||
m_textTime[p].LoadFromNumbers( THEME->GetPathToN("ScreenEvaluation time") );
|
||||
m_textTime[p].EnableShadow( false );
|
||||
m_textTime[p].SetShadowLength( 0 );
|
||||
m_textTime[p].SetDiffuse( PlayerToColor(p) );
|
||||
m_textTime[p].SetName( ssprintf("TimeNumberP%d",p+1) );
|
||||
SET_XY_AND_ON_COMMAND( m_textTime[p] );
|
||||
@@ -736,27 +752,19 @@ void ScreenEvaluation::Init()
|
||||
{
|
||||
if( iMachineHighScoreIndex[p] != -1 )
|
||||
{
|
||||
m_sprMachineRecord[p].Load( THEME->GetPathToG("ScreenEvaluation machine record") );
|
||||
m_sprMachineRecord[p].SetName( ssprintf("MachineRecordP%d",p+1) );
|
||||
m_sprMachineRecord[p].StopAnimating();
|
||||
m_sprMachineRecord[p].Load( THEME->GetPathG( "ScreenEvaluation", ssprintf("MachineRecord %02d",iMachineHighScoreIndex[p]+1) ) );
|
||||
m_sprMachineRecord[p]->SetName( ssprintf("MachineRecordP%d",p+1) );
|
||||
m_sprMachineRecord[p]->StopAnimating();
|
||||
SET_XY_AND_ON_COMMAND( m_sprMachineRecord[p] );
|
||||
if( iMachineHighScoreIndex[p] < m_sprMachineRecord[p].GetNumStates() )
|
||||
m_sprMachineRecord[p].SetState( iMachineHighScoreIndex[p] );
|
||||
else
|
||||
m_sprMachineRecord[p].SetHidden( true );
|
||||
this->AddChild( &m_sprMachineRecord[p] );
|
||||
this->AddChild( m_sprMachineRecord[p] );
|
||||
}
|
||||
if( iPersonalHighScoreIndex[p] != -1 )
|
||||
{
|
||||
m_sprPersonalRecord[p].Load( THEME->GetPathToG("ScreenEvaluation personal record") );
|
||||
m_sprPersonalRecord[p].SetName( ssprintf("PersonalRecordP%d",p+1) );
|
||||
m_sprPersonalRecord[p].StopAnimating();
|
||||
m_sprPersonalRecord[p].Load( THEME->GetPathG( "ScreenEvaluation", ssprintf("PersonalRecord %02d",iMachineHighScoreIndex[p]+1) ) );
|
||||
m_sprPersonalRecord[p]->SetName( ssprintf("PersonalRecordP%d",p+1) );
|
||||
m_sprPersonalRecord[p]->StopAnimating();
|
||||
SET_XY_AND_ON_COMMAND( m_sprPersonalRecord[p] );
|
||||
if( iPersonalHighScoreIndex[p] < m_sprPersonalRecord[p].GetNumStates() )
|
||||
m_sprPersonalRecord[p].SetState( iPersonalHighScoreIndex[p] );
|
||||
else
|
||||
m_sprPersonalRecord[p].SetHidden( true );
|
||||
this->AddChild( &m_sprPersonalRecord[p] );
|
||||
this->AddChild( m_sprPersonalRecord[p] );
|
||||
}
|
||||
|
||||
if( SHOW_PER_DIFFICULTY_AWARD && pdaToShow[p]!=PER_DIFFICULTY_AWARD_INVALID )
|
||||
@@ -854,8 +862,13 @@ void ScreenEvaluation::CommitScores(
|
||||
{
|
||||
FOREACH_PlayerNumber( pn )
|
||||
{
|
||||
iPersonalHighScoreIndexOut[pn] = -1;
|
||||
iPersonalHighScoreIndexOut[pn] = -1;
|
||||
iMachineHighScoreIndexOut[pn] = -1;
|
||||
if( PREFSMAN->m_bScreenTestMode )
|
||||
{
|
||||
iPersonalHighScoreIndexOut[pn] = 0;
|
||||
iMachineHighScoreIndexOut[pn] = 0;
|
||||
}
|
||||
rcOut[pn] = RANKING_INVALID;
|
||||
pdaToShowOut[pn] = PER_DIFFICULTY_AWARD_INVALID;
|
||||
pcaToShowOut[pn] = PEAK_COMBO_AWARD_INVALID;
|
||||
@@ -872,222 +885,217 @@ void ScreenEvaluation::CommitScores(
|
||||
if( !GAMESTATE->m_SongOptions.m_bSaveScore )
|
||||
return;
|
||||
|
||||
int p;
|
||||
for( p=0; p<NUM_PLAYERS; p++ )
|
||||
{
|
||||
if( !GAMESTATE->IsHumanPlayer(p) )
|
||||
continue;
|
||||
|
||||
// don't save scores if the player is disqualified
|
||||
if( GAMESTATE->IsDisqualified((PlayerNumber)p) )
|
||||
continue;
|
||||
|
||||
//
|
||||
// Add step totals
|
||||
//
|
||||
int iNumTapsAndHolds = (int) stageStats.fRadarPossible[p][RADAR_NUM_TAPS_AND_HOLDS];
|
||||
int iNumJumps = (int) stageStats.fRadarPossible[p][RADAR_NUM_JUMPS];
|
||||
int iNumHolds = (int) stageStats.fRadarPossible[p][RADAR_NUM_HOLDS];
|
||||
int iNumMines = (int) stageStats.fRadarPossible[p][RADAR_NUM_MINES];
|
||||
int iNumHands = (int) stageStats.fRadarPossible[p][RADAR_NUM_HANDS];
|
||||
|
||||
PROFILEMAN->AddStepTotals( (PlayerNumber)p, iNumTapsAndHolds, iNumJumps, iNumHolds, iNumMines, iNumHands );
|
||||
|
||||
|
||||
// whether or not to save scores when the stage was failed
|
||||
// depends on if this is a course or not ... it's handled
|
||||
// below in the switch
|
||||
|
||||
HighScore &hs = m_HighScore[p];
|
||||
hs.grade = stageStats.GetGrade( (PlayerNumber)p );
|
||||
hs.iScore = stageStats.iScore[p];
|
||||
hs.fPercentDP = stageStats.GetPercentDancePoints( (PlayerNumber)p );
|
||||
hs.fSurviveSeconds = stageStats.fAliveSeconds[p];
|
||||
hs.sModifiers = GAMESTATE->m_PlayerOptions[p].GetString();
|
||||
|
||||
StepsType nt = GAMESTATE->GetCurrentStyleDef()->m_StepsType;
|
||||
|
||||
switch( m_Type )
|
||||
FOREACH_HumanPlayer( p )
|
||||
{
|
||||
case stage:
|
||||
// don't save scores if the player is disqualified
|
||||
if( GAMESTATE->IsDisqualified((PlayerNumber)p) )
|
||||
continue;
|
||||
|
||||
//
|
||||
// Add step totals
|
||||
//
|
||||
int iNumTapsAndHolds = (int) stageStats.fRadarPossible[p][RADAR_NUM_TAPS_AND_HOLDS];
|
||||
int iNumJumps = (int) stageStats.fRadarPossible[p][RADAR_NUM_JUMPS];
|
||||
int iNumHolds = (int) stageStats.fRadarPossible[p][RADAR_NUM_HOLDS];
|
||||
int iNumMines = (int) stageStats.fRadarPossible[p][RADAR_NUM_MINES];
|
||||
int iNumHands = (int) stageStats.fRadarPossible[p][RADAR_NUM_HANDS];
|
||||
|
||||
PROFILEMAN->AddStepTotals( (PlayerNumber)p, iNumTapsAndHolds, iNumJumps, iNumHolds, iNumMines, iNumHands );
|
||||
|
||||
|
||||
// whether or not to save scores when the stage was failed
|
||||
// depends on if this is a course or not ... it's handled
|
||||
// below in the switch
|
||||
|
||||
HighScore &hs = m_HighScore[p];
|
||||
hs.grade = stageStats.GetGrade( (PlayerNumber)p );
|
||||
hs.iScore = stageStats.iScore[p];
|
||||
hs.fPercentDP = stageStats.GetPercentDancePoints( (PlayerNumber)p );
|
||||
hs.fSurviveSeconds = stageStats.fAliveSeconds[p];
|
||||
hs.sModifiers = GAMESTATE->m_PlayerOptions[p].GetString();
|
||||
|
||||
StepsType nt = GAMESTATE->GetCurrentStyleDef()->m_StepsType;
|
||||
|
||||
switch( m_Type )
|
||||
{
|
||||
// don't save scores for a failed song
|
||||
if( stageStats.bFailed[p] )
|
||||
continue;
|
||||
case stage:
|
||||
{
|
||||
// don't save scores for a failed song
|
||||
if( stageStats.bFailed[p] )
|
||||
continue;
|
||||
|
||||
ASSERT( GAMESTATE->m_pCurNotes[p] );
|
||||
ASSERT( GAMESTATE->m_pCurNotes[p] );
|
||||
|
||||
if( hs.fPercentDP >= PREFSMAN->m_fMinPercentageForHighScore )
|
||||
PROFILEMAN->AddStepsHighScore( GAMESTATE->m_pCurNotes[p], (PlayerNumber)p, hs, iPersonalHighScoreIndexOut[p], iMachineHighScoreIndexOut[p] );
|
||||
if( hs.fPercentDP >= PREFSMAN->m_fMinPercentageForHighScore )
|
||||
PROFILEMAN->AddStepsHighScore( GAMESTATE->m_pCurNotes[p], (PlayerNumber)p, hs, iPersonalHighScoreIndexOut[p], iMachineHighScoreIndexOut[p] );
|
||||
}
|
||||
break;
|
||||
|
||||
case summary:
|
||||
{
|
||||
// don't save scores if any stage was failed
|
||||
if( stageStats.bFailed[p] )
|
||||
continue;
|
||||
|
||||
float fAverageMeter = stageStats.iMeter[p] / (float)PREFSMAN->m_iNumArcadeStages;
|
||||
rcOut[p] = AverageMeterToRankingCategory( fAverageMeter );
|
||||
|
||||
if( hs.fPercentDP > PREFSMAN->m_fMinPercentageForHighScore )
|
||||
PROFILEMAN->AddCategoryHighScore( nt, rcOut[p], (PlayerNumber)p, hs, iPersonalHighScoreIndexOut[p], iMachineHighScoreIndexOut[p] );
|
||||
|
||||
// TRICKY: Increment play count here, and not on ScreenGameplay like the others.
|
||||
PROFILEMAN->IncrementCategoryPlayCount( nt, rcOut[p], (PlayerNumber)p );
|
||||
}
|
||||
break;
|
||||
|
||||
case course:
|
||||
{
|
||||
Course* pCourse = GAMESTATE->m_pCurCourse;
|
||||
CourseDifficulty cd = GAMESTATE->m_PreferredCourseDifficulty[p];
|
||||
ASSERT( pCourse );
|
||||
|
||||
// don't save scores for a failed Nonstop
|
||||
// DO save scores for a failed Oni/Endless
|
||||
if( stageStats.bFailed[p] && pCourse->IsNonstop() )
|
||||
continue;
|
||||
|
||||
if( hs.fPercentDP > PREFSMAN->m_fMinPercentageForHighScore )
|
||||
PROFILEMAN->AddCourseHighScore( pCourse, nt, cd, (PlayerNumber)p, hs, iPersonalHighScoreIndexOut[p], iMachineHighScoreIndexOut[p] );
|
||||
}
|
||||
break;
|
||||
default:
|
||||
ASSERT(0);
|
||||
}
|
||||
break;
|
||||
|
||||
case summary:
|
||||
{
|
||||
// don't save scores if any stage was failed
|
||||
if( stageStats.bFailed[p] )
|
||||
continue;
|
||||
|
||||
float fAverageMeter = stageStats.iMeter[p] / (float)PREFSMAN->m_iNumArcadeStages;
|
||||
rcOut[p] = AverageMeterToRankingCategory( fAverageMeter );
|
||||
|
||||
if( hs.fPercentDP > PREFSMAN->m_fMinPercentageForHighScore )
|
||||
PROFILEMAN->AddCategoryHighScore( nt, rcOut[p], (PlayerNumber)p, hs, iPersonalHighScoreIndexOut[p], iMachineHighScoreIndexOut[p] );
|
||||
|
||||
// TRICKY: Increment play count here, and not on ScreenGameplay like the others.
|
||||
PROFILEMAN->IncrementCategoryPlayCount( nt, rcOut[p], (PlayerNumber)p );
|
||||
}
|
||||
break;
|
||||
|
||||
case course:
|
||||
{
|
||||
Course* pCourse = GAMESTATE->m_pCurCourse;
|
||||
CourseDifficulty cd = GAMESTATE->m_PreferredCourseDifficulty[p];
|
||||
ASSERT( pCourse );
|
||||
|
||||
// don't save scores for a failed Nonstop
|
||||
// DO save scores for a failed Oni/Endless
|
||||
if( stageStats.bFailed[p] && pCourse->IsNonstop() )
|
||||
continue;
|
||||
|
||||
if( hs.fPercentDP > PREFSMAN->m_fMinPercentageForHighScore )
|
||||
PROFILEMAN->AddCourseHighScore( pCourse, nt, cd, (PlayerNumber)p, hs, iPersonalHighScoreIndexOut[p], iMachineHighScoreIndexOut[p] );
|
||||
}
|
||||
break;
|
||||
default:
|
||||
ASSERT(0);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// If both players get a machine high score, a player whose score is added later
|
||||
// may bump the players who were added earlier. Adjust for this.
|
||||
// FIXME: Reports are that this logic is wrong.
|
||||
for( p=0; p<NUM_PLAYERS; p++ )
|
||||
{
|
||||
if( !GAMESTATE->IsHumanPlayer(p) )
|
||||
continue; // skip
|
||||
if( iMachineHighScoreIndexOut[p] == -1 ) // no record
|
||||
continue; // skip
|
||||
/* If we aren't saving scores on fail, it'll be handled above; m_bFailed is only
|
||||
* meaningful in stage and course eval. */
|
||||
// if( m_bFailed ) // both players failed
|
||||
// continue; // skip
|
||||
|
||||
for( int p2=0; p2<p; p2++ )
|
||||
FOREACH_HumanPlayer( p )
|
||||
{
|
||||
if( !GAMESTATE->IsHumanPlayer(p2) )
|
||||
if( iMachineHighScoreIndexOut[p] == -1 ) // no record
|
||||
continue; // skip
|
||||
if( iMachineHighScoreIndexOut[p2] == -1 ) // no record
|
||||
continue; // skip
|
||||
bool bPlayedSameSteps;
|
||||
switch( m_Type )
|
||||
/* If we aren't saving scores on fail, it'll be handled above; m_bFailed is only
|
||||
* meaningful in stage and course eval. */
|
||||
// if( m_bFailed ) // both players failed
|
||||
// continue; // skip
|
||||
|
||||
for( int p2=0; p2<p; p2++ )
|
||||
{
|
||||
case stage:
|
||||
bPlayedSameSteps = GAMESTATE->m_pCurNotes[p]==GAMESTATE->m_pCurNotes[p2];
|
||||
break;
|
||||
case summary:
|
||||
bPlayedSameSteps = rcOut[p] == rcOut[p2];
|
||||
break;
|
||||
case course:
|
||||
bPlayedSameSteps = true;
|
||||
break;
|
||||
}
|
||||
if( iMachineHighScoreIndexOut[p] >= iMachineHighScoreIndexOut[p2] )
|
||||
{
|
||||
iMachineHighScoreIndexOut[p2]++;
|
||||
if( iMachineHighScoreIndexOut[p2] >= NUM_RANKING_LINES )
|
||||
iMachineHighScoreIndexOut[p2] = -1;
|
||||
if( !GAMESTATE->IsHumanPlayer(p2) )
|
||||
continue; // skip
|
||||
if( iMachineHighScoreIndexOut[p2] == -1 ) // no record
|
||||
continue; // skip
|
||||
bool bPlayedSameSteps;
|
||||
switch( m_Type )
|
||||
{
|
||||
case stage:
|
||||
bPlayedSameSteps = GAMESTATE->m_pCurNotes[p]==GAMESTATE->m_pCurNotes[p2];
|
||||
break;
|
||||
case summary:
|
||||
bPlayedSameSteps = rcOut[p] == rcOut[p2];
|
||||
break;
|
||||
case course:
|
||||
bPlayedSameSteps = true;
|
||||
break;
|
||||
}
|
||||
if( iMachineHighScoreIndexOut[p] >= iMachineHighScoreIndexOut[p2] )
|
||||
{
|
||||
iMachineHighScoreIndexOut[p2]++;
|
||||
if( iMachineHighScoreIndexOut[p2] >= NUM_RANKING_LINES )
|
||||
iMachineHighScoreIndexOut[p2] = -1;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//
|
||||
// hand out awards
|
||||
//
|
||||
for( p=0; p<NUM_PLAYERS; p++ )
|
||||
{
|
||||
if( !GAMESTATE->IsHumanPlayer(p) )
|
||||
continue;
|
||||
|
||||
// must be using a profile to receive awards
|
||||
if( !PROFILEMAN->IsUsingProfile((PlayerNumber)p) )
|
||||
continue;
|
||||
|
||||
Profile* pProfile = PROFILEMAN->GetProfile((PlayerNumber)p);
|
||||
|
||||
deque<PerDifficultyAward> &vPdas = GAMESTATE->m_vLastPerDifficultyAwards[p];
|
||||
|
||||
// per-difficulty awards
|
||||
switch( m_Type )
|
||||
FOREACH_HumanPlayer( p )
|
||||
{
|
||||
case stage:
|
||||
// don't give per-difficutly awards if using easy mods
|
||||
if( !GAMESTATE->IsDisqualified((PlayerNumber)p) )
|
||||
{
|
||||
if( stageStats.FullComboOfScore( (PlayerNumber)p, TNS_GREAT ) )
|
||||
vPdas.push_back( AWARD_FULL_COMBO_GREATS );
|
||||
if( stageStats.SingleDigitsOfScore( (PlayerNumber)p, TNS_GREAT ) )
|
||||
vPdas.push_back( AWARD_SINGLE_DIGIT_GREATS );
|
||||
if( stageStats.FullComboOfScore( (PlayerNumber)p, TNS_PERFECT ) )
|
||||
vPdas.push_back( AWARD_FULL_COMBO_PERFECTS );
|
||||
if( stageStats.SingleDigitsOfScore( (PlayerNumber)p, TNS_PERFECT ) )
|
||||
vPdas.push_back( AWARD_SINGLE_DIGIT_PERFECTS );
|
||||
if( stageStats.FullComboOfScore( (PlayerNumber)p, TNS_MARVELOUS ) )
|
||||
vPdas.push_back( AWARD_FULL_COMBO_MARVELOUSES );
|
||||
// must be using a profile to receive awards
|
||||
if( !PROFILEMAN->IsUsingProfile((PlayerNumber)p) )
|
||||
continue;
|
||||
|
||||
float fPercentGreats = stageStats.GetPercentageOfTaps((PlayerNumber)p, TNS_GREAT);
|
||||
if( fPercentGreats >= 0.8f )
|
||||
vPdas.push_back( AWARD_GREATS_80_PERCENT );
|
||||
if( fPercentGreats >= 0.9f )
|
||||
vPdas.push_back( AWARD_GREATS_90_PERCENT );
|
||||
if( fPercentGreats >= 1.f )
|
||||
vPdas.push_back( AWARD_GREATS_100_PERCENT );
|
||||
Profile* pProfile = PROFILEMAN->GetProfile((PlayerNumber)p);
|
||||
|
||||
deque<PerDifficultyAward> &vPdas = GAMESTATE->m_vLastPerDifficultyAwards[p];
|
||||
|
||||
// per-difficulty awards
|
||||
switch( m_Type )
|
||||
{
|
||||
case stage:
|
||||
// don't give per-difficutly awards if using easy mods
|
||||
if( !GAMESTATE->IsDisqualified((PlayerNumber)p) )
|
||||
{
|
||||
if( stageStats.FullComboOfScore( (PlayerNumber)p, TNS_GREAT ) )
|
||||
vPdas.push_back( AWARD_FULL_COMBO_GREATS );
|
||||
if( stageStats.SingleDigitsOfScore( (PlayerNumber)p, TNS_GREAT ) )
|
||||
vPdas.push_back( AWARD_SINGLE_DIGIT_GREATS );
|
||||
if( stageStats.FullComboOfScore( (PlayerNumber)p, TNS_PERFECT ) )
|
||||
vPdas.push_back( AWARD_FULL_COMBO_PERFECTS );
|
||||
if( stageStats.SingleDigitsOfScore( (PlayerNumber)p, TNS_PERFECT ) )
|
||||
vPdas.push_back( AWARD_SINGLE_DIGIT_PERFECTS );
|
||||
if( stageStats.FullComboOfScore( (PlayerNumber)p, TNS_MARVELOUS ) )
|
||||
vPdas.push_back( AWARD_FULL_COMBO_MARVELOUSES );
|
||||
|
||||
float fPercentGreats = stageStats.GetPercentageOfTaps((PlayerNumber)p, TNS_GREAT);
|
||||
if( fPercentGreats >= 0.8f )
|
||||
vPdas.push_back( AWARD_GREATS_80_PERCENT );
|
||||
if( fPercentGreats >= 0.9f )
|
||||
vPdas.push_back( AWARD_GREATS_90_PERCENT );
|
||||
if( fPercentGreats >= 1.f )
|
||||
vPdas.push_back( AWARD_GREATS_100_PERCENT );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if( !vPdas.empty() )
|
||||
pdaToShowOut[p] = vPdas.back();
|
||||
if( !vPdas.empty() )
|
||||
pdaToShowOut[p] = vPdas.back();
|
||||
|
||||
// DO give peak combo awards if using easy mods
|
||||
int iComboAtStartOfStage = stageStats.GetComboAtStartOfStage( (PlayerNumber)p );
|
||||
int iPeakCombo = stageStats.GetMaxCombo((PlayerNumber)p).cnt;
|
||||
// DO give peak combo awards if using easy mods
|
||||
int iComboAtStartOfStage = stageStats.GetComboAtStartOfStage( (PlayerNumber)p );
|
||||
int iPeakCombo = stageStats.GetMaxCombo((PlayerNumber)p).cnt;
|
||||
|
||||
FOREACH_PeakComboAward( pca )
|
||||
{
|
||||
int iLevel = 100/*0*/ * (pca+1);
|
||||
bool bCrossedLevel = iComboAtStartOfStage < iLevel && iPeakCombo >= iLevel;
|
||||
if( bCrossedLevel )
|
||||
FOREACH_PeakComboAward( pca )
|
||||
{
|
||||
GAMESTATE->m_vLastPeakComboAwards[p].push_back( pca );
|
||||
int iLevel = 100/*0*/ * (pca+1);
|
||||
bool bCrossedLevel = iComboAtStartOfStage < iLevel && iPeakCombo >= iLevel;
|
||||
if( bCrossedLevel )
|
||||
{
|
||||
GAMESTATE->m_vLastPeakComboAwards[p].push_back( pca );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if( !GAMESTATE->m_vLastPeakComboAwards[p].empty() )
|
||||
pcaToShowOut[p] = GAMESTATE->m_vLastPeakComboAwards[p].back();
|
||||
if( !GAMESTATE->m_vLastPeakComboAwards[p].empty() )
|
||||
pcaToShowOut[p] = GAMESTATE->m_vLastPeakComboAwards[p].back();
|
||||
|
||||
// erase awards from the Last list that have been received so that we
|
||||
// won't show them again.
|
||||
{
|
||||
for( int i=GAMESTATE->m_vLastPerDifficultyAwards[p].size()-1; i>=0; i-- )
|
||||
// erase awards from the Last list that have been received so that we
|
||||
// won't show them again.
|
||||
{
|
||||
PerDifficultyAward pda = GAMESTATE->m_vLastPerDifficultyAwards[p][i];
|
||||
Steps* pSteps = stageStats.pSteps[p];
|
||||
bool bAlreadyHad = pProfile->HasPerDifficultyAward( pSteps->m_StepsType, pSteps->GetDifficulty(), pda );
|
||||
pProfile->AddPerDifficultyAward( pSteps->m_StepsType, pSteps->GetDifficulty(), pda );
|
||||
if( bAlreadyHad )
|
||||
GAMESTATE->m_vLastPerDifficultyAwards[p].erase( GAMESTATE->m_vLastPerDifficultyAwards[p].begin()+i );
|
||||
for( int i=GAMESTATE->m_vLastPerDifficultyAwards[p].size()-1; i>=0; i-- )
|
||||
{
|
||||
PerDifficultyAward pda = GAMESTATE->m_vLastPerDifficultyAwards[p][i];
|
||||
Steps* pSteps = stageStats.pSteps[p];
|
||||
bool bAlreadyHad = pProfile->HasPerDifficultyAward( pSteps->m_StepsType, pSteps->GetDifficulty(), pda );
|
||||
pProfile->AddPerDifficultyAward( pSteps->m_StepsType, pSteps->GetDifficulty(), pda );
|
||||
if( bAlreadyHad )
|
||||
GAMESTATE->m_vLastPerDifficultyAwards[p].erase( GAMESTATE->m_vLastPerDifficultyAwards[p].begin()+i );
|
||||
}
|
||||
}
|
||||
}
|
||||
{
|
||||
for( int i=GAMESTATE->m_vLastPeakComboAwards[p].size()-1; i>=0; i-- )
|
||||
{
|
||||
PeakComboAward pca = GAMESTATE->m_vLastPeakComboAwards[p][i];
|
||||
bool bAlreadyHad = pProfile->HasPeakComboAward( pca );
|
||||
pProfile->AddPeakComboAward( pca );
|
||||
if( bAlreadyHad )
|
||||
GAMESTATE->m_vLastPeakComboAwards[p].erase( GAMESTATE->m_vLastPeakComboAwards[p].begin()+i );
|
||||
for( int i=GAMESTATE->m_vLastPeakComboAwards[p].size()-1; i>=0; i-- )
|
||||
{
|
||||
PeakComboAward pca = GAMESTATE->m_vLastPeakComboAwards[p][i];
|
||||
bool bAlreadyHad = pProfile->HasPeakComboAward( pca );
|
||||
pProfile->AddPeakComboAward( pca );
|
||||
if( bAlreadyHad )
|
||||
GAMESTATE->m_vLastPeakComboAwards[p].erase( GAMESTATE->m_vLastPeakComboAwards[p].begin()+i );
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -139,8 +139,8 @@ protected:
|
||||
BitmapText m_textTime[NUM_PLAYERS];
|
||||
|
||||
// extra area
|
||||
Sprite m_sprMachineRecord[NUM_PLAYERS];
|
||||
Sprite m_sprPersonalRecord[NUM_PLAYERS];
|
||||
AutoActor m_sprMachineRecord[NUM_PLAYERS];
|
||||
AutoActor m_sprPersonalRecord[NUM_PLAYERS];
|
||||
bool m_bTryExtraStage;
|
||||
Sprite m_sprTryExtraStage;
|
||||
AutoActor m_PerDifficultyAward[NUM_PLAYERS];
|
||||
|
||||
@@ -432,7 +432,7 @@ void ScreenGameplay::Init()
|
||||
|
||||
|
||||
m_textSongTitle.LoadFromFont( THEME->GetPathToF("ScreenGameplay song title") );
|
||||
m_textSongTitle.EnableShadow( false );
|
||||
m_textSongTitle.SetShadowLength( 0 );
|
||||
m_textSongTitle.SetName( "SongTitle" );
|
||||
SET_XY( m_textSongTitle );
|
||||
this->AddChild( &m_textSongTitle );
|
||||
@@ -515,7 +515,7 @@ void ScreenGameplay::Init()
|
||||
for( p=0; p<NUM_PLAYERS; p++ )
|
||||
{
|
||||
m_textCourseSongNumber[p].LoadFromNumbers( THEME->GetPathToN("ScreenGameplay song num") );
|
||||
m_textCourseSongNumber[p].EnableShadow( false );
|
||||
m_textCourseSongNumber[p].SetShadowLength( 0 );
|
||||
m_textCourseSongNumber[p].SetName( ssprintf("SongNumberP%d%s",p+1,bExtra?"Extra":"") );
|
||||
SET_XY( m_textCourseSongNumber[p] );
|
||||
m_textCourseSongNumber[p].SetText( "" );
|
||||
@@ -580,14 +580,14 @@ void ScreenGameplay::Init()
|
||||
continue;
|
||||
|
||||
m_textPlayerOptions[p].LoadFromFont( THEME->GetPathToF("ScreenGameplay player options") );
|
||||
m_textPlayerOptions[p].EnableShadow( false );
|
||||
m_textPlayerOptions[p].SetShadowLength( 0 );
|
||||
m_textPlayerOptions[p].SetName( ssprintf("PlayerOptionsP%d%s",p+1,bExtra?"Extra":"") );
|
||||
SET_XY( m_textPlayerOptions[p] );
|
||||
this->AddChild( &m_textPlayerOptions[p] );
|
||||
}
|
||||
|
||||
m_textSongOptions.LoadFromFont( THEME->GetPathToF("ScreenGameplay song options") );
|
||||
m_textSongOptions.EnableShadow( false );
|
||||
m_textSongOptions.SetShadowLength( 0 );
|
||||
m_textSongOptions.SetName( ssprintf("SongOptions%s",bExtra?"Extra":"") );
|
||||
SET_XY( m_textSongOptions );
|
||||
m_textSongOptions.SetText( GAMESTATE->m_SongOptions.GetString() );
|
||||
@@ -710,7 +710,7 @@ void ScreenGameplay::Init()
|
||||
if( GAMESTATE->IsExtraStage() || GAMESTATE->IsExtraStage2() ) // only load if we're going to use it
|
||||
{
|
||||
m_textSurviveTime.LoadFromFont( THEME->GetPathToF("ScreenGameplay survive time") );
|
||||
m_textSurviveTime.EnableShadow( false );
|
||||
m_textSurviveTime.SetShadowLength( 0 );
|
||||
m_textSurviveTime.SetName( "SurviveTime" );
|
||||
SET_XY( m_textSurviveTime );
|
||||
m_textSurviveTime.SetDiffuse( RageColor(1,1,1,0) );
|
||||
|
||||
@@ -105,7 +105,7 @@ ScreenSystemLayer::ScreenSystemLayer() : Screen("ScreenSystemLayer")
|
||||
m_textSkips[i].SetVertAlign( Actor::align_top );
|
||||
m_textSkips[i].SetZoom( 0.5f );
|
||||
m_textSkips[i].SetDiffuse( RageColor(1,1,1,0) );
|
||||
m_textSkips[i].EnableShadow(false);
|
||||
m_textSkips[i].SetShadowLength( 0 );
|
||||
this->AddChild(&m_textSkips[i]);
|
||||
}
|
||||
|
||||
|
||||
@@ -263,7 +263,7 @@ void ScreenOptions::Init( InputMode im, OptionRowData OptionRows[], int iNumOpti
|
||||
bt->LoadFromFont( THEME->GetPathToF("ScreenOptions item") );
|
||||
bt->SetText( optline.choices[c] );
|
||||
bt->SetZoom( ITEMS_ZOOM );
|
||||
bt->EnableShadow( false );
|
||||
bt->SetShadowLength( 0 );
|
||||
|
||||
// set the X position of each item in the line
|
||||
float fItemWidth = bt->GetZoomedWidth();
|
||||
@@ -318,7 +318,7 @@ void ScreenOptions::Init( InputMode im, OptionRowData OptionRows[], int iNumOpti
|
||||
bt->LoadFromFont( THEME->GetPathToF("ScreenOptions item") );
|
||||
bt->SetText( optline.choices[iChoiceWithFocus] );
|
||||
bt->SetZoom( ITEMS_ZOOM );
|
||||
bt->EnableShadow( false );
|
||||
bt->SetShadowLength( 0 );
|
||||
|
||||
if( optline.bOneChoiceForAllPlayers )
|
||||
{
|
||||
@@ -373,7 +373,7 @@ void ScreenOptions::Init( InputMode im, OptionRowData OptionRows[], int iNumOpti
|
||||
bt->LoadFromFont( THEME->GetPathToF("ScreenOptions item") );
|
||||
bt->SetText( THEME->GetMetric("OptionNames","Exit") );
|
||||
bt->SetZoom( ITEMS_ZOOM );
|
||||
bt->EnableShadow( false );
|
||||
bt->SetShadowLength( 0 );
|
||||
bt->SetX( CENTER_X );
|
||||
|
||||
m_framePage.AddChild( bt );
|
||||
@@ -646,7 +646,7 @@ void ScreenOptions::InitOptionsText()
|
||||
title.SetZoom( LABELS_ZOOM );
|
||||
title.SetHorizAlign( (Actor::HorizAlign)LABELS_H_ALIGN );
|
||||
title.SetVertAlign( Actor::align_middle );
|
||||
title.EnableShadow( false );
|
||||
title.SetShadowLength( 0 );
|
||||
|
||||
Sprite &bullet = row.m_sprBullet;
|
||||
bullet.Load( THEME->GetPathToG("ScreenOptions bullet") );
|
||||
|
||||
@@ -105,19 +105,19 @@ ScreenRanking::ScreenRanking( CString sClassName ) : ScreenAttract( sClassName )
|
||||
|
||||
m_textCategory.SetName( "Category" );
|
||||
m_textCategory.LoadFromFont( THEME->GetPathToF("ScreenRanking category") );
|
||||
m_textCategory.EnableShadow( false );
|
||||
m_textCategory.SetShadowLength( 0 );
|
||||
m_textCategory.SetHidden( true );
|
||||
this->AddChild( &m_textCategory );
|
||||
|
||||
m_textCourseTitle.SetName( "CourseTitle" );
|
||||
m_textCourseTitle.LoadFromFont( THEME->GetPathToF("ScreenRanking course title") );
|
||||
m_textCourseTitle.EnableShadow( false );
|
||||
m_textCourseTitle.SetShadowLength( 0 );
|
||||
m_textCourseTitle.SetHidden( true );
|
||||
this->AddChild( &m_textCourseTitle );
|
||||
|
||||
m_textStepsType.SetName( "StepsType" );
|
||||
m_textStepsType.LoadFromFont( THEME->GetPathToF("ScreenRanking steps type") );
|
||||
m_textStepsType.EnableShadow( false );
|
||||
m_textStepsType.SetShadowLength( 0 );
|
||||
m_textStepsType.SetHidden( true );
|
||||
this->AddChild( &m_textStepsType );
|
||||
|
||||
|
||||
@@ -87,12 +87,12 @@ ScreenSelectCourse::ScreenSelectCourse( CString sClassName ) : Screen( sClassNam
|
||||
this->AddChild( &m_sprBannerFrame );
|
||||
|
||||
m_textNumSongs.LoadFromNumbers( THEME->GetPathToN("ScreenSelectCourse num songs") );
|
||||
m_textNumSongs.EnableShadow( false );
|
||||
m_textNumSongs.SetShadowLength( 0 );
|
||||
m_textNumSongs.SetXY( STAGES_X, STAGES_Y );
|
||||
this->AddChild( &m_textNumSongs );
|
||||
|
||||
m_textTime.LoadFromNumbers( THEME->GetPathToN("ScreenSelectCourse total time") );
|
||||
m_textTime.EnableShadow( false );
|
||||
m_textTime.SetShadowLength( 0 );
|
||||
m_textTime.SetXY( TIME_X, TIME_Y );
|
||||
this->AddChild( &m_textTime );
|
||||
|
||||
|
||||
@@ -152,7 +152,7 @@ ScreenSelectMusic::ScreenSelectMusic( CString sClassName ) : Screen( sClassName
|
||||
this->AddChild( &m_BPMDisplay );
|
||||
|
||||
m_DifficultyDisplay.SetName( "DifficultyDisplay" );
|
||||
m_DifficultyDisplay.EnableShadow( false );
|
||||
m_DifficultyDisplay.SetShadowLength( 0 );
|
||||
SET_XY( m_DifficultyDisplay );
|
||||
this->AddChild( &m_DifficultyDisplay );
|
||||
|
||||
@@ -281,7 +281,7 @@ ScreenSelectMusic::ScreenSelectMusic( CString sClassName ) : Screen( sClassName
|
||||
|
||||
m_textHighScore[p].SetName( ssprintf("ScoreP%d",p+1) );
|
||||
m_textHighScore[p].LoadFromNumbers( THEME->GetPathToN("ScreenSelectMusic score") );
|
||||
m_textHighScore[p].EnableShadow( false );
|
||||
m_textHighScore[p].SetShadowLength( 0 );
|
||||
m_textHighScore[p].SetDiffuse( PlayerToColor(p) );
|
||||
SET_XY( m_textHighScore[p] );
|
||||
this->AddChild( &m_textHighScore[p] );
|
||||
|
||||
@@ -439,9 +439,9 @@ ScreenStage::ScreenStage( CString sClassName ) : Screen( sClassName )
|
||||
// for (i=0; i<2; i++) // specify the font file.
|
||||
// {
|
||||
// m_ez2ukm[i].LoadFromFont( THEME->GetPathToF("Stage ez2") );
|
||||
// m_ez2ukm[i].EnableShadow( false );
|
||||
// m_ez2ukm[i].SetShadowLength( 0 );
|
||||
// m_stagedesc[i].LoadFromFont( THEME->GetPathToF("Stage ez2") );
|
||||
// m_stagedesc[i].EnableShadow( false );
|
||||
// m_stagedesc[i].SetShadowLength( 0 );
|
||||
// }
|
||||
//
|
||||
// m_ez2ukm[0].SetXY( CENTER_X-400, CENTER_Y-220 ); // set the intiial UKMOVE positions
|
||||
@@ -555,7 +555,7 @@ ScreenStage::ScreenStage( CString sClassName ) : Screen( sClassName )
|
||||
//
|
||||
// // write the stage name
|
||||
// m_stagename.LoadFromFont( THEME->GetPathToF("Stage ez2") );
|
||||
// m_stagename.EnableShadow( false );
|
||||
// m_stagename.SetShadowLength( 0 );
|
||||
//
|
||||
// m_stagename.SetXY( CENTER_X+400, CENTER_Y-30+element_y_offsets ); // set initial position
|
||||
//
|
||||
|
||||
@@ -49,7 +49,7 @@ ScreenTestFonts::ScreenTestFonts( CString sClassName ) : Screen( sClassName )
|
||||
|
||||
void ScreenTestFonts::SetText(CString text)
|
||||
{
|
||||
txt.EnableShadow( false );
|
||||
txt.SetShadowLength( 0 );
|
||||
txt.SetText(""); /* force it */
|
||||
txt.SetText(text);
|
||||
curtext = text;
|
||||
|
||||
@@ -123,7 +123,6 @@ ScreenTitleMenu::ScreenTitleMenu( CString sClassName ) : ScreenSelect( sClassNam
|
||||
m_textHelp.SetXY( HELP_X, HELP_Y );
|
||||
m_textHelp.SetZoom( 0.5f );
|
||||
m_textHelp.SetEffectDiffuseBlink();
|
||||
m_textHelp.EnableShadow( true );
|
||||
m_textHelp.SetShadowLength( 2 );
|
||||
this->AddChild( &m_textHelp );
|
||||
|
||||
@@ -140,7 +139,7 @@ ScreenTitleMenu::ScreenTitleMenu( CString sClassName ) : ScreenSelect( sClassNam
|
||||
m_textChoice[i].SetText( NAME(mc.m_sName) );
|
||||
m_textChoice[i].SetXY( CHOICES_X, CHOICES_START_Y + i*CHOICES_SPACING_Y );
|
||||
m_textChoice[i].SetShadowLength( CHOICES_SHADOW_LENGTH );
|
||||
m_textChoice[i].EnableShadow( true );
|
||||
m_textChoice[i].SetShadowLength( 4 );
|
||||
this->AddChild( &m_textChoice[i] );
|
||||
}
|
||||
}
|
||||
|
||||
@@ -396,7 +396,7 @@ void Sprite::DrawTexture( const TweenState *state )
|
||||
//////////////////////
|
||||
// render the shadow
|
||||
//////////////////////
|
||||
if( m_bShadow )
|
||||
if( m_fShadowLength != 0 )
|
||||
{
|
||||
DISPLAY->PushMatrix();
|
||||
DISPLAY->TranslateWorld( m_fShadowLength, m_fShadowLength, 0 ); // shift by 5 units
|
||||
|
||||
Reference in New Issue
Block a user