more high score cleanup

This commit is contained in:
Chris Danford
2003-10-20 01:06:26 +00:00
parent c474b18afe
commit 25d2b954a7
14 changed files with 99 additions and 89 deletions
+26 -19
View File
@@ -1359,14 +1359,22 @@ TimeNumberP2X=480
TimeNumberP2Y=380
TimeNumberP2OnCommand=addx,320;sleep,0.8;decelerate,0.3;addx,-320
TimeNumberP2OffCommand=sleep,0.0;accelerate,0.3;addx,320
NewRecordP1X=150
NewRecordP1Y=398
NewRecordP1OnCommand=diffusealpha,0;linear,0.7;diffusealpha,1;glowshift
NewRecordP1OffCommand=linear,0.7;diffusealpha,0
NewRecordP2X=490
NewRecordP2Y=398
NewRecordP2OnCommand=diffusealpha,0;linear,0.7;diffusealpha,1;glowshift
NewRecordP2OffCommand=linear,0.7;diffusealpha,0
MachineRecordP1X=70
MachineRecordP1Y=398
MachineRecordP1OnCommand=diffusealpha,0;linear,0.7;diffusealpha,1;glowshift
MachineRecordP1OffCommand=linear,0.7;diffusealpha,0
MachineRecordP2X=440
MachineRecordP2Y=398
MachineRecordP2OnCommand=diffusealpha,0;linear,0.7;diffusealpha,1;glowshift
MachineRecordP2OffCommand=linear,0.7;diffusealpha,0
PersonalRecordP1X=200
PersonalRecordP1Y=398
PersonalRecordP1OnCommand=diffusealpha,0;linear,0.7;diffusealpha,1;glowshift
PersonalRecordP1OffCommand=linear,0.7;diffusealpha,0
PersonalRecordP2X=570
PersonalRecordP2Y=398
PersonalRecordP2OnCommand=diffusealpha,0;linear,0.7;diffusealpha,1;glowshift
PersonalRecordP2OffCommand=linear,0.7;diffusealpha,0
TryExtraStageX=320
TryExtraStageY=428
TryExtraStageOnCommand=diffusealpha,0;linear,0.7;diffusealpha,1;glowshift
@@ -2384,6 +2392,8 @@ NextScreen=ScreenUnlock
CategoryX=517
CategoryY=32
CategoryWidth=222
BannerX=517
BannerY=32
TypeX=520
TypeY=60
LineSpacingX=0
@@ -2391,7 +2401,7 @@ LineSpacingY=60
BulletsStartX=100
BulletsStartY=140
TextZoom=1.0
TextSongZoom=0.5
TextSongZoom=0.7
TextColor=0.8,0.8,1,1
NamesStartX=180
NamesStartY=140
@@ -2401,24 +2411,20 @@ PointsStartX=380
PointsStartY=140
TimeStartX=560
TimeStartY=140
PercentStartX=560
PercentStartX=210
PercentStartY=140
PercentColSpacingX=100
PercentColSpacingX=110
PercentColSpacingY=0
SecondsPerPage=5
ShowCategories=1
ShowAllSongs=0
ShowAllSongs=1
CoursesToShow=Courses/DDRMAX/NaokiStandard.crs,Courses/DDRMAX/ParanoiaBrothers.crs,Courses/Samples/PlayersBest1-4.crs
NotesTypesToHide=dance-couple,dance-solo,pump-halfdouble
TextColor1=0.6,0.6,1,1
TextColor2=1,0.3,0.3,1
TextColor3=0.3,1,0.3,1
EmptyScoreName=STEP
EmptyCategoryScore=53700
EmptyCourseScore=537
EmptyCourseTime=60
EmptySongPercent=0
ShowDiffCol=beginner,easy,medium,hard,challenge
EmptyScoreName=STEP
ShowSongDifficulties=easy,medium,hard,challenge
# Not all game types have NotesTypesToHide set, so add a few dummy colors
@@ -2488,7 +2494,8 @@ NextScreen=ScreenRanking
[ScreenNameEntry]
TimerX=320
TimerY=30
CategoryY=444
CategoryY=430
CategoryZoom=0.7
CharsZoomSmall=1.0
CharsZoomLarge=1.5
CharsSpacingY=40
+1 -1
View File
@@ -388,7 +388,7 @@ void Course::MemCardData::AddHighScore( HighScore hs, int &iIndexOut )
int i;
for( i=0; i<(int)vHighScores.size(); i++ )
{
if( hs > vHighScores[i] )
if( hs >= vHighScores[i] )
break;
}
if( i < NUM_RANKING_LINES )
+2 -2
View File
@@ -152,9 +152,9 @@ public:
fSurviveTime = 0;
}
bool operator>( const HighScore& other ) const
bool operator>=( const HighScore& other ) const
{
return iScore > other.iScore;
return iScore >= other.iScore;
}
};
vector<HighScore> vHighScores;
+2 -2
View File
@@ -820,7 +820,7 @@ void GameState::GetRankingFeats( PlayerNumber pn, vector<RankingFeats> &asFeatsO
feat.Feat = ssprintf("MR #%d in %s %s", j+1, pSong->GetTranslitMainTitle().c_str(), DifficultyToString(pSteps->GetDifficulty()).c_str() );
feat.pStringToFill = &vMachineHighScores[j].sName;
feat.g = vMachineHighScores[j].grade;
feat.Score = vMachineHighScores[j].fScore;
feat.Score = vMachineHighScores[j].iScore;
// XXX: temporary hack
if( pSong->HasBackground() )
@@ -843,7 +843,7 @@ void GameState::GetRankingFeats( PlayerNumber pn, vector<RankingFeats> &asFeatsO
feat.Feat = ssprintf("PR #%d in %s %s", j+1, pSong->GetTranslitMainTitle().c_str(), DifficultyToString(pSteps->GetDifficulty()).c_str() );
feat.pStringToFill = &vPersonalHighScores[j].sName;
feat.g = vPersonalHighScores[j].grade;
feat.Score = vPersonalHighScores[j].fScore;
feat.Score = vPersonalHighScores[j].iScore;
// XXX: temporary hack
if( pSong->HasBackground() )
+2 -1
View File
@@ -192,7 +192,8 @@ ScreenEvaluation::ScreenEvaluation( CString sClassName ) : Screen(sClassName)
score = float(stageStats.iScore[p] + stageStats.iBonus[p]);
Steps::MemCardData::HighScore hs;
hs.grade = grade[p];
hs.fScore = score;
hs.iScore = score;
hs.fPercentDP = stageStats.GetPercentDancePoints( (PlayerNumber)p );
GAMESTATE->m_pCurNotes[p]->AddHighScore( (PlayerNumber)p, hs, iPersonalHighScoreIndex[p], iMachineHighScoreIndex[p] );
// update unlock data if unlocks are on
+1 -1
View File
@@ -79,7 +79,7 @@ ScreenNameEntryTraditional::ScreenNameEntryTraditional( CString sClassName ) : S
Steps::MemCardData::HighScore hs;
hs.grade = GRADE_A;
hs.fScore = 42;
hs.iScore = 42;
int a, b;
GAMESTATE->m_pCurNotes[i]->AddHighScore( (PlayerNumber)i, hs, a,b );
+28 -36
View File
@@ -18,10 +18,16 @@
#include "Course.h"
#include "song.h"
#include "PrefsManager.h"
#include "NoteData.h"
#include "NoteDataUtil.h"
#include "ScoreKeeperMAX2.h"
#include "ScoreKeeper5th.h"
#define CATEGORY_X THEME->GetMetricF("ScreenRanking","CategoryX")
#define CATEGORY_Y THEME->GetMetricF("ScreenRanking","CategoryY")
#define CATEGORY_WIDTH THEME->GetMetricF("ScreenRanking","CategoryWidth")
#define BANNER_X THEME->GetMetricF("ScreenRanking","BannerX")
#define BANNER_Y THEME->GetMetricF("ScreenRanking","BannerY")
#define TYPE_X THEME->GetMetricF("ScreenRanking","TypeX")
#define TYPE_Y THEME->GetMetricF("ScreenRanking","TypeY")
#define LINE_SPACING_X THEME->GetMetricF("ScreenRanking","LineSpacingX")
@@ -48,11 +54,7 @@
#define SHOW_ALL_SONGS THEME->GetMetricB("ScreenRanking","ShowAllSongs")
#define NOTES_TYPES_TO_HIDE THEME->GetMetric ("ScreenRanking","NotesTypesToHide")
#define EMPTY_SCORE_NAME THEME->GetMetric ("ScreenRanking","EmptyScoreName")
#define EMPTY_CATEGORY_SCORE THEME->GetMetricI("ScreenRanking","EmptyCategoryScore")
#define EMPTY_COURSE_SCORE THEME->GetMetricI("ScreenRanking","EmptyCourseScore")
#define EMPTY_COURSE_TIME THEME->GetMetricF("ScreenRanking","EmptyCourseTime")
#define EMPTY_SONG_PERCENT THEME->GetMetricF("ScreenRanking","EmptySongPercent")
#define SHOW_DIFF_COLS THEME->GetMetric ("ScreenRanking","ShowDiffCol")
#define SHOW_SONG_DIFFICULTIES THEME->GetMetric ("ScreenRanking","ShowSongDifficulties")
#define COURSES_TO_SHOW PREFSMAN->m_sCoursesToShowRanking
@@ -65,6 +67,9 @@ ScreenRanking::ScreenRanking( CString sClassName ) : ScreenAttract( sClassName )
m_sprCategory.SetXY( CATEGORY_X, CATEGORY_Y );
this->AddChild( &m_sprCategory );
m_banner.SetXY( BANNER_X, BANNER_Y );
this->AddChild( &m_banner );
m_textCategory.LoadFromFont( THEME->GetPathToF("ScreenRanking title") );
m_textCategory.EnableShadow( false );
m_textCategory.SetXY( CATEGORY_X, CATEGORY_Y );
@@ -76,7 +81,7 @@ ScreenRanking::ScreenRanking( CString sClassName ) : ScreenAttract( sClassName )
// make the list of difficulties to show
vector<CString> sShowDiffs;
split( SHOW_DIFF_COLS, ",", sShowDiffs, true );
split( SHOW_SONG_DIFFICULTIES, ",", sShowDiffs, true );
for( vector<CString>::const_iterator iter = sShowDiffs.begin(); iter != sShowDiffs.end(); iter++ )
{
@@ -135,14 +140,12 @@ ScreenRanking::ScreenRanking( CString sClassName ) : ScreenAttract( sClassName )
m_sprDiffHeaders[d].SetDiffuse( RageColor(1,1,1,0) );
m_sprDiffHeaders[d].StopAnimating();
m_sprDiffHeaders[d].SetState(d);
m_sprDiffHeaders[d].SetHorizAlign( Actor::align_right );
for( int i=0; i<NUM_RANKING_LINES; i++ )
{
m_textPercent[i][d].LoadFromFont( THEME->GetPathToF("ScreenRanking letters") );
m_textPercent[i][d].EnableShadow( false );
m_textPercent[i][d].SetZoom( TEXT_SONGZOOM );
m_textPercent[i][d].SetHorizAlign( Actor::align_right );
}
}
@@ -287,6 +290,7 @@ void ScreenRanking::SetPage( PageToShow pts )
m_textTime[l].SetText( "" );
for( DiffVectorCIter j=m_vDiffsToShow.begin(); j<m_vDiffsToShow.end(); j++ )
m_textPercent[l][*j].SetText( "" );
m_banner.UnloadTexture();
}
for( int d=0; d<NUM_DIFFICULTIES; d++ )
{
@@ -306,14 +310,9 @@ void ScreenRanking::SetPage( PageToShow pts )
{
SongManager::CategoryData::HighScore hs;
if( l < (int)SONGMAN->m_CategoryDatas[pts.nt][pts.category].vHighScores.size() )
{
hs = SONGMAN->m_CategoryDatas[pts.nt][pts.category].vHighScores[l];
}
else
{
if( hs.sName.empty() )
hs.sName = EMPTY_SCORE_NAME;
hs.iScore = EMPTY_CATEGORY_SCORE;
}
m_sprBullets[l].SetDiffuse( RageColor(1,1,1,1) );
m_textNames[l].SetText( hs.sName );
@@ -365,16 +364,10 @@ void ScreenRanking::SetPage( PageToShow pts )
{
Course::MemCardData::HighScore hs;
if( l < (int)pts.pCourse->m_MemCardDatas[pts.nt][MEMORY_CARD_MACHINE].vHighScores.size() )
{
hs = pts.pCourse->m_MemCardDatas[pts.nt][MEMORY_CARD_MACHINE].vHighScores[l];
}
else
{
if( hs.sName.empty() )
hs.sName = EMPTY_SCORE_NAME;
hs.iScore = EMPTY_COURSE_SCORE;
hs.fSurviveTime = EMPTY_COURSE_TIME;
}
m_sprBullets[l].SetDiffuse( RageColor(1,1,1,1) );
m_textNames[l].SetText( hs.sName );
if( pts.pCourse->IsOni() )
@@ -417,8 +410,9 @@ void ScreenRanking::SetPage( PageToShow pts )
m_textCategory.SetDiffuseAlpha(0);
m_sprCategory.SetDiffuseAlpha(0);
m_sprCategory.Load( pts.pSong->GetBannerPath() );
m_sprCategory.SetDiffuseAlpha(1);
m_banner.LoadFromSong( pts.pSong );
m_banner.SetDiffuseAlpha(1);
m_textCategory.SetZoom(1);
m_textCategory.SetTextMaxWidth( CATEGORY_WIDTH, pts.pSong->GetFullTranslitTitle() );
m_textCategory.SetDiffuseAlpha(1);
@@ -449,18 +443,13 @@ void ScreenRanking::SetPage( PageToShow pts )
m_sprBullets[l].SetDiffuse( RageColor(1,1,1,1) );
Steps::MemCardData::HighScore hs;
if( l < (int)pSteps->m_MemCardDatas[MEMORY_CARD_MACHINE].vHighScores.size() )
{
hs = pSteps->m_MemCardDatas[MEMORY_CARD_MACHINE].vHighScores[l];
if( hs.sName.empty() )
hs.sName = EMPTY_SCORE_NAME;
m_textPercent[l][d].SetText( ssprintf("%s %f%", hs.sName.c_str(), hs.fScore) );
}
else
{
m_textPercent[l][d].SetText( ssprintf("%s", EMPTY_SCORE_NAME.c_str()) );
}
m_textPercent[l][d].SetText( ssprintf("%s\n%0.3f%%", hs.sName.c_str(), hs.fPercentDP*100) );
m_textPercent[l][d].SetDiffuse( TEXT_COLOR(pts.colorIndex) );
}
}
}
@@ -483,9 +472,11 @@ void ScreenRanking::TweenPageOnScreen()
m_textScores[l].FadeOn(0.2f+l*0.1f,"bounce right far",1.f);
m_textPoints[l].FadeOn(0.2f+l*0.1f,"bounce right far",1.f);
m_textTime[l].FadeOn(0.2f+l*0.1f,"bounce right far",1.f);
for( int d=0; d<NUM_DIFFICULTIES; d++ )
m_textPercent[l][d].FadeOn(0.2f+l*0.1f,"bounce right far",1.f);
}
for( int d=0; d<NUM_DIFFICULTIES; d++ )
m_sprDiffHeaders[d].FadeOn(0.2f,"bounce right far",1.f);
m_sprDiffHeaders[d].FadeOn(0,"bounce right far",1.f);
}
@@ -502,8 +493,9 @@ void ScreenRanking::TweenPageOffScreen()
m_textScores[l].FadeOff(0.2f+l*0.1f,"fade",0.25f);
m_textPoints[l].FadeOff(0.2f+l*0.1f,"fade",0.25f);
m_textTime[l].FadeOff(0.2f+l*0.1f,"fade",0.25f);
for( int d=0; d<NUM_DIFFICULTIES; d++ )
m_textPercent[l][d].FadeOff(0.2f+l*0.1f,"fade",0.25f);
}
for( int d=0; d<NUM_DIFFICULTIES; d++ )
m_sprDiffHeaders[d].FadeOff(0.2f+d*0.1f,"fade",0.25f);
m_sprDiffHeaders[d].FadeOff(0,"fade",0.25f);
}
+2
View File
@@ -14,6 +14,7 @@
#include "Style.h"
#include "Sprite.h"
#include "BitmapText.h"
#include "Banner.h"
class Course;
class Song;
@@ -42,6 +43,7 @@ protected:
Sprite m_sprCategory;
Banner m_banner;
BitmapText m_textCategory;
Sprite m_sprType;
Sprite m_sprBullets[NUM_RANKING_LINES];
+4 -4
View File
@@ -900,18 +900,18 @@ void ScreenSelectMusic::AfterNotesChange( PlayerNumber pn )
if( pNotes )
{
float fScore = 0;
int iScore = 0;
if( PROFILEMAN->IsUsingProfile(pn) )
{
if( !pNotes->m_MemCardDatas[pn].vHighScores.empty() )
fScore = pNotes->m_MemCardDatas[pn].vHighScores[0].fScore;
iScore = pNotes->m_MemCardDatas[pn].vHighScores[0].iScore;
}
else
{
if( !pNotes->m_MemCardDatas[MEMORY_CARD_MACHINE].vHighScores.empty() )
fScore = pNotes->m_MemCardDatas[MEMORY_CARD_MACHINE].vHighScores[0].fScore;
iScore = pNotes->m_MemCardDatas[MEMORY_CARD_MACHINE].vHighScores[0].iScore;
}
m_textHighScore[pn].SetText( ssprintf("%*i", NUM_SCORE_DIGITS, (int) fScore) );
m_textHighScore[pn].SetText( ssprintf("%*i", NUM_SCORE_DIGITS, iScore) );
}
else
{
+16 -10
View File
@@ -40,7 +40,7 @@ const CString CATEGORY_RANKING_FILE = BASE_PATH "Data" SLASH "CategoryRanking.
const CString MACHINE_STEPS_MEM_CARD_DATA = BASE_PATH "Data" SLASH "MachineStepsMemCardData.dat";
const CString MACHINE_COURSE_MEM_CARD_DATA = BASE_PATH "Data" SLASH "MachineCourseMemCardData.dat";
const int CATEGORY_RANKING_VERSION = 2;
const int STEPS_MEM_CARD_DATA_VERSION = 4;
const int STEPS_MEM_CARD_DATA_VERSION = 5;
const int COURSE_MEM_CARD_DATA_VERSION = 3;
@@ -102,7 +102,7 @@ void SongManager::CategoryData::AddHighScore( HighScore hs, int &iIndexOut )
int i;
for( i=0; i<(int)vHighScores.size(); i++ )
{
if( hs > vHighScores[i] )
if( hs >= vHighScores[i] )
break;
}
if( i < NUM_RANKING_LINES )
@@ -435,19 +435,24 @@ void SongManager::ReadStepsMemCardDataFromFile( CString fn, int mc )
WARN_AND_RETURN;
CLAMP( grade, (Grade)0, (Grade)(NUM_GRADES-1) );
float fScore;
if( !FileRead(f, fScore) )
float iScore;
if( !FileRead(f, iScore) )
WARN_AND_RETURN;
CString sName;
if( !FileRead(f, sName) )
WARN_AND_RETURN;
float fPercentDP;
if( !FileRead(f, fPercentDP) )
WARN_AND_RETURN;
if( pNotes )
{
pNotes->m_MemCardDatas[mc].vHighScores[l].grade = grade;
pNotes->m_MemCardDatas[mc].vHighScores[l].fScore = fScore;
pNotes->m_MemCardDatas[mc].vHighScores[l].sName = sName;
pNotes->m_MemCardDatas[mc].vHighScores[l].grade = grade;
pNotes->m_MemCardDatas[mc].vHighScores[l].iScore = iScore;
pNotes->m_MemCardDatas[mc].vHighScores[l].fPercentDP = fPercentDP;
}
}
}
@@ -617,10 +622,10 @@ void SongManager::ReadSM300NoteScores()
iRetVal = sscanf(
value,
"%d::%[^:]::%f::%d",
"%d::%[^:]::%d::%d",
&pNotes->m_MemCardDatas[MEMORY_CARD_MACHINE].iNumTimesPlayed,
szGradeLetters,
&pNotes->m_MemCardDatas[MEMORY_CARD_MACHINE].vHighScores[0].fScore,
&pNotes->m_MemCardDatas[MEMORY_CARD_MACHINE].vHighScores[0].iScore,
&iMaxCombo
);
if( iRetVal != 4 )
@@ -729,9 +734,10 @@ void SongManager::SaveStepsMemCardDataToFile( CString fn, int mc )
pNotes->m_MemCardDatas[mc].vHighScores.resize(NUM_RANKING_LINES);
for( int l=0; l<NUM_RANKING_LINES; l++ )
{
FileWrite( f, pNotes->m_MemCardDatas[mc].vHighScores[l].grade );
FileWrite( f, pNotes->m_MemCardDatas[mc].vHighScores[l].fScore );
FileWrite( f, pNotes->m_MemCardDatas[mc].vHighScores[l].sName );
FileWrite( f, pNotes->m_MemCardDatas[mc].vHighScores[l].grade );
FileWrite( f, pNotes->m_MemCardDatas[mc].vHighScores[l].iScore );
FileWrite( f, pNotes->m_MemCardDatas[mc].vHighScores[l].fPercentDP );
}
}
}
+2 -2
View File
@@ -101,9 +101,9 @@ public:
iScore = 0;
}
bool operator>( const HighScore& other ) const
bool operator>=( const HighScore& other ) const
{
return iScore > other.iScore;
return iScore >= other.iScore;
}
};
vector<HighScore> vHighScores;
+8 -8
View File
@@ -65,8 +65,8 @@ IntDir=.\../Debug6
TargetDir=\stepmania\stepmania
TargetName=StepMania-debug
SOURCE="$(InputPath)"
PreLink_Cmds=disasm\verinc cl /Zl /nologo /c verstub.cpp \
/Fo$(IntDir)\
PreLink_Cmds=disasm\verinc cl /Zl /nologo /c verstub.cpp \
/Fo$(IntDir)\
PostBuild_Cmds=disasm\mapconv $(IntDir)\$(TargetName).map $(TargetDir)\StepMania.vdi
# End Special Build Tool
@@ -103,8 +103,8 @@ IntDir=.\Debug
TargetDir=\stepmania\stepmania
TargetName=default
SOURCE="$(InputPath)"
PreLink_Cmds=disasm\verinc cl /Zl /nologo /c verstub.cpp \
/Fo$(IntDir)\
PreLink_Cmds=disasm\verinc cl /Zl /nologo /c verstub.cpp \
/Fo$(IntDir)\
PostBuild_Cmds=disasm\mapconv $(IntDir)\$(TargetName).map $(TargetDir)\StepMania.vdi ia32.vdi
# End Special Build Tool
@@ -144,8 +144,8 @@ IntDir=.\../Release6
TargetDir=\stepmania\stepmania
TargetName=StepMania
SOURCE="$(InputPath)"
PreLink_Cmds=disasm\verinc cl /Zl /nologo /c verstub.cpp \
/Fo$(IntDir)\
PreLink_Cmds=disasm\verinc cl /Zl /nologo /c verstub.cpp \
/Fo$(IntDir)\
PostBuild_Cmds=disasm\mapconv $(IntDir)\$(TargetName).map $(TargetDir)\StepMania.vdi
# End Special Build Tool
@@ -186,8 +186,8 @@ IntDir=.\StepMania___Xbox_Release
TargetDir=\stepmania\stepmania
TargetName=default
SOURCE="$(InputPath)"
PreLink_Cmds=disasm\verinc cl /Zl /nologo /c verstub.cpp \
/Fo$(IntDir)\
PreLink_Cmds=disasm\verinc cl /Zl /nologo /c verstub.cpp \
/Fo$(IntDir)\
PostBuild_Cmds=disasm\mapconv $(IntDir)\$(TargetName).map $(TargetDir)\StepMania.vdi ia32.vdi
# End Special Build Tool
+1 -1
View File
@@ -325,7 +325,7 @@ void SortNotesArrayByDifficulty( vector<Steps*> &arraySteps )
bool Steps::MemCardData::HighScore::operator>=( const Steps::MemCardData::HighScore& other ) const
{
return fScore >= other.fScore;
return iScore >= other.iScore;
/* Make sure we treat AAAA as higher than AAA, even though the score
* is the same.
*
+4 -2
View File
@@ -66,12 +66,14 @@ public:
{
CString sName;
Grade grade;
float fScore;
int iScore;
float fPercentDP;
HighScore()
{
grade = GRADE_NO_DATA;
fScore = 0;
iScore = 0;
fPercentDP = 0;
}
bool operator>=( const HighScore& other ) const;