summaryrefslogtreecommitdiff
path: root/src/highscore.cpp
diff options
context:
space:
mode:
authorfrosch <frosch@openttd.org>2012-12-05 19:34:45 +0000
committerfrosch <frosch@openttd.org>2012-12-05 19:34:45 +0000
commita499435351fcb7b25e1e49e1366ebeac91636c35 (patch)
tree0941b7701eb2e7c88add8330fecb78b4720c8061 /src/highscore.cpp
parent5b2da98ca312f91c93012e7a92fb1120d2b9d1fa (diff)
downloadopenttd-a499435351fcb7b25e1e49e1366ebeac91636c35.tar.xz
(svn r24786) -Codechange: Add SettingsProfile enum for difficulty profiles and highscore tables.
Diffstat (limited to 'src/highscore.cpp')
-rw-r--r--src/highscore.cpp22
1 files changed, 12 insertions, 10 deletions
diff --git a/src/highscore.cpp b/src/highscore.cpp
index 86460f97d..582b13865 100644
--- a/src/highscore.cpp
+++ b/src/highscore.cpp
@@ -20,7 +20,7 @@
#include "core/sort_func.hpp"
#include "debug.h"
-HighScore _highscore_table[5][5]; // 4 difficulty-settings (+ network); top 5
+HighScore _highscore_table[SP_HIGHSCORE_END][5]; ///< various difficulty-settings; top 5
char *_highscore_file; ///< The file to store the highscore data in.
static const StringID _endgame_perf_titles[] = {
@@ -82,8 +82,10 @@ static int CDECL HighScoreSorter(const Company * const *a, const Company * const
return (*b)->old_economy[0].performance_history - (*a)->old_economy[0].performance_history;
}
-/* Save the highscores in a network game when it has ended */
-#define LAST_HS_ITEM lengthof(_highscore_table) - 1
+/**
+ * Save the highscores in a network game when it has ended
+ * @return Position of the local company in the highscore list.
+ */
int8 SaveHighScoreValueNetwork()
{
const Company *c;
@@ -99,11 +101,11 @@ int8 SaveHighScoreValueNetwork()
{
uint i;
- memset(_highscore_table[LAST_HS_ITEM], 0, sizeof(_highscore_table[0]));
+ memset(_highscore_table[SP_MULTIPLAYER], 0, sizeof(_highscore_table[SP_MULTIPLAYER]));
/* Copy over Top5 companies */
- for (i = 0; i < lengthof(_highscore_table[LAST_HS_ITEM]) && i < count; i++) {
- HighScore *hs = &_highscore_table[LAST_HS_ITEM][i];
+ for (i = 0; i < lengthof(_highscore_table[SP_MULTIPLAYER]) && i < count; i++) {
+ HighScore *hs = &_highscore_table[SP_MULTIPLAYER][i];
SetDParam(0, cl[i]->index);
SetDParam(1, cl[i]->index);
@@ -129,7 +131,7 @@ void SaveToHighScore()
uint i;
HighScore *hs;
- for (i = 0; i < LAST_HS_ITEM; i++) { // don't save network highscores
+ for (i = 0; i < SP_SAVED_HIGHSCORE_END; i++) {
for (hs = _highscore_table[i]; hs != endof(_highscore_table[i]); hs++) {
/* First character is a command character, so strlen will fail on that */
byte length = min(sizeof(hs->company), StrEmpty(hs->company) ? 0 : (int)strlen(&hs->company[1]) + 1);
@@ -139,7 +141,7 @@ void SaveToHighScore()
fwrite(&hs->score, sizeof(hs->score), 1, fp) != 1 ||
fwrite(" ", 2, 1, fp) != 1) { // XXX - placeholder for hs->title, not saved anymore; compatibility
DEBUG(misc, 1, "Could not save highscore.");
- i = LAST_HS_ITEM;
+ i = SP_SAVED_HIGHSCORE_END;
break;
}
}
@@ -159,7 +161,7 @@ void LoadFromHighScore()
uint i;
HighScore *hs;
- for (i = 0; i < LAST_HS_ITEM; i++) { // don't load network highscores
+ for (i = 0; i < SP_SAVED_HIGHSCORE_END; i++) {
for (hs = _highscore_table[i]; hs != endof(_highscore_table[i]); hs++) {
byte length;
if (fread(&length, sizeof(length), 1, fp) != 1 ||
@@ -167,7 +169,7 @@ void LoadFromHighScore()
fread(&hs->score, sizeof(hs->score), 1, fp) != 1 ||
fseek(fp, 2, SEEK_CUR) == -1) { // XXX - placeholder for hs->title, not saved anymore; compatibility
DEBUG(misc, 1, "Highscore corrupted");
- i = LAST_HS_ITEM;
+ i = SP_SAVED_HIGHSCORE_END;
break;
}
*lastof(hs->company) = '\0';