/* Copyright (c) 2002-2012 Croteam Ltd. This program is free software; you can redistribute it and/or modify it under the terms of version 2 of the GNU General Public License as published by the Free Software Foundation This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #include "SeriousSam/StdH.h" #include #include #include #include "SeriousSam/GUI/Components/MGHighScore.h" #define HSCOLUMNS 6 CTString strHighScores[HIGHSCORE_COUNT + 1][HSCOLUMNS]; FLOAT afI[HSCOLUMNS] = { 0.12f, 0.15f, 0.6f, 0.7f, 0.78f, 0.9f }; void CMGHighScore::Render(CDrawPort *pdp) { SetFontMedium(pdp); COLOR colHeader = _pGame->LCDGetColor(C_GREEN | 255, "hiscore header"); COLOR colData = _pGame->LCDGetColor(C_mdGREEN | 255, "hiscore data"); COLOR colLastSet = _pGame->LCDGetColor(C_mlGREEN | 255, "hiscore last set"); INDEX iLastSet = _pGame->gm_iLastSetHighScore; CTString strText; strHighScores[0][0] = TRANS("No."); strHighScores[0][1] = TRANS("Player Name"); strHighScores[0][2] = TRANS("Difficulty"); strHighScores[0][3] = TRANS("Time"); strHighScores[0][4] = TRANS("Kills"); strHighScores[0][5] = TRANS("Score"); {for (INDEX i = 0; igm_ahseHighScores[i].hse_gdDifficulty) { default: ASSERT(FALSE); case (CSessionProperties::GameDifficulty) - 100: strHighScores[i + 1][1] = "---"; continue; break; case CSessionProperties::GD_TOURIST: strHighScores[i + 1][2] = TRANS("Tourist"); break; case CSessionProperties::GD_EASY: strHighScores[i + 1][2] = TRANS("Easy"); break; case CSessionProperties::GD_NORMAL: strHighScores[i + 1][2] = TRANS("Normal"); break; case CSessionProperties::GD_HARD: strHighScores[i + 1][2] = TRANS("Hard"); break; case CSessionProperties::GD_EXTREME: strHighScores[i + 1][2] = TRANS("Serious"); break; case CSessionProperties::GD_EXTREME + 1: strHighScores[i + 1][2] = TRANS("Mental"); break; } strHighScores[i + 1][0].PrintF("%d", i + 1); strHighScores[i + 1][1] = _pGame->gm_ahseHighScores[i].hse_strPlayer; strHighScores[i + 1][3] = TimeToString(_pGame->gm_ahseHighScores[i].hse_tmTime); strHighScores[i + 1][4].PrintF("%03d", _pGame->gm_ahseHighScores[i].hse_ctKills); strHighScores[i + 1][5].PrintF("%9d", _pGame->gm_ahseHighScores[i].hse_ctScore); }} PIX pixJ = pdp->GetHeight()*0.25f; {for (INDEX iRow = 0; iRowGetWidth()*afI[iColumn]; if (iColumn == 1) { pdp->PutText(strHighScores[iRow][iColumn], pixI, pixJ, col); } else { pdp->PutTextR(strHighScores[iRow][iColumn], pixI, pixJ, col); } }} if (iRow == 0) { pixJ += pdp->GetHeight()*0.06f; } else { pixJ += pdp->GetHeight()*0.04f; } }} }