19 #include "table/strings.h" 
   28 static const StringID _endgame_perf_titles[] = {
 
   29   STR_HIGHSCORE_PERFORMANCE_TITLE_BUSINESSMAN,
 
   30   STR_HIGHSCORE_PERFORMANCE_TITLE_BUSINESSMAN,
 
   31   STR_HIGHSCORE_PERFORMANCE_TITLE_BUSINESSMAN,
 
   32   STR_HIGHSCORE_PERFORMANCE_TITLE_BUSINESSMAN,
 
   33   STR_HIGHSCORE_PERFORMANCE_TITLE_BUSINESSMAN,
 
   34   STR_HIGHSCORE_PERFORMANCE_TITLE_ENTREPRENEUR,
 
   35   STR_HIGHSCORE_PERFORMANCE_TITLE_ENTREPRENEUR,
 
   36   STR_HIGHSCORE_PERFORMANCE_TITLE_INDUSTRIALIST,
 
   37   STR_HIGHSCORE_PERFORMANCE_TITLE_INDUSTRIALIST,
 
   38   STR_HIGHSCORE_PERFORMANCE_TITLE_CAPITALIST,
 
   39   STR_HIGHSCORE_PERFORMANCE_TITLE_CAPITALIST,
 
   40   STR_HIGHSCORE_PERFORMANCE_TITLE_MAGNATE,
 
   41   STR_HIGHSCORE_PERFORMANCE_TITLE_MAGNATE,
 
   42   STR_HIGHSCORE_PERFORMANCE_TITLE_MOGUL,
 
   43   STR_HIGHSCORE_PERFORMANCE_TITLE_MOGUL,
 
   44   STR_HIGHSCORE_PERFORMANCE_TITLE_TYCOON_OF_THE_CENTURY
 
   47 StringID EndGameGetPerformanceTitleFromValue(uint value)
 
   49   value = 
minu(value / 64, 
lengthof(_endgame_perf_titles) - 1);
 
   51   return _endgame_perf_titles[value];
 
   64   for (i = 0; i < 
lengthof(_highscore_table[0]); i++) {
 
   66     if (hs[i].score <= score) {
 
   68       memmove(&hs[i + 1], &hs[i], 
sizeof(
HighScore) * (
lengthof(_highscore_table[0]) - i - 1));
 
   71       GetString(hs[i].company, STR_HIGHSCORE_NAME, 
lastof(hs[i].company)); 
 
   73       hs[i].
title = EndGameGetPerformanceTitleFromValue(score);
 
   84   return (*b)->old_economy[0].performance_history - (*a)->old_economy[0].performance_history;
 
   99   FOR_ALL_COMPANIES(c) cl[count++] = c;
 
  106     memset(_highscore_table[
SP_MULTIPLAYER], 0, 
sizeof(_highscore_table[SP_MULTIPLAYER]));
 
  109     for (i = 0; i < 
lengthof(_highscore_table[SP_MULTIPLAYER]) && i < count; i++) {
 
  116       hs->
title = EndGameGetPerformanceTitleFromValue(hs->
score);
 
  137       for (hs = _highscore_table[i]; hs != 
endof(_highscore_table[i]); hs++) {
 
  141         if (fwrite(&length, 
sizeof(length), 1, fp)       != 1 || 
 
  142             fwrite(hs->
company, length, 1, fp)           >  1 || 
 
  143             fwrite(&hs->
score, 
sizeof(hs->
score), 1, fp) != 1 ||
 
  144             fwrite(
"  ", 2, 1, fp)                       != 1) { 
 
  145           DEBUG(misc, 1, 
"Could not save highscore.");
 
  160   memset(_highscore_table, 0, 
sizeof(_highscore_table));
 
  167       for (hs = _highscore_table[i]; hs != 
endof(_highscore_table[i]); hs++) {
 
  169         if (fread(&length, 
sizeof(length), 1, fp)                              !=  1 ||
 
  171             fread(&hs->
score, 
sizeof(hs->
score), 1, fp)                        !=  1 ||
 
  172             fseek(fp, 2, SEEK_CUR)                                             == -1) { 
 
  173           DEBUG(misc, 1, 
"Highscore corrupted");
 
  178         hs->
title = EndGameGetPerformanceTitleFromValue(hs->
score);