File indexing completed on 2024-04-14 03:59:17
0001 /* 0002 SPDX-FileCopyrightText: 2007 Dmitry Suzdalev <dimsuz@gmail.com> 0003 0004 SPDX-License-Identifier: GPL-2.0-or-later 0005 */ 0006 0007 #ifndef KATOMIC_HIGHSCORES_H 0008 #define KATOMIC_HIGHSCORES_H 0009 0010 #include <KSharedConfig> 0011 0012 #include <QString> 0013 0014 /** 0015 * This class is used to manage katomic's highscores. 0016 * There's one highscore for each level per each player - it's 0017 * the number of moves it took to complete level. 0018 */ 0019 class KAtomicHighscores 0020 { 0021 public: 0022 /** 0023 * Constructor. 0024 * By default sets player name to current user login name 0025 * @see setCurrentPlayerName 0026 */ 0027 KAtomicHighscores(); 0028 /** 0029 * Changes current player name to playerName 0030 */ 0031 void setCurrentPlayerName( const QString& playerName ) { m_playerName = playerName; } 0032 /** 0033 * @return current player name 0034 */ 0035 QString currentPlayerName() const { return m_playerName; } 0036 /** 0037 * Tries to add new result to highscores. 0038 * If numMoves is lesser than current highscore for this level, 0039 * this result will become a new highscore of currentPlayerName for this level 0040 * @return whether numMoves was set as a new highscore 0041 */ 0042 bool addScore( int numMoves, const QString& levelSetName, int level ); 0043 /** 0044 * @return highscore of current player for level 0045 */ 0046 int levelHighscore( const QString& levelSetName, int level ) const; 0047 private: 0048 /** 0049 * Current player name 0050 */ 0051 QString m_playerName; 0052 0053 KSharedConfigPtr m_hsFile; 0054 }; 0055 0056 #endif