File indexing completed on 2024-03-24 04:04:41
0001 /* 0002 SPDX-FileCopyrightText: 2007-2009 Dmitry Suzdalev <dimsuz@gmail.com> 0003 0004 SPDX-License-Identifier: GPL-2.0-or-later 0005 */ 0006 0007 #include "highscores.h" 0008 0009 #include <KUser> 0010 #include <KConfigGroup> 0011 0012 #include <QStandardPaths> 0013 0014 KAtomicHighscores::KAtomicHighscores() 0015 { 0016 KUser user; 0017 m_playerName = user.property(KUser::FullName).toString().isEmpty() ? user.loginName() : user.property(KUser::FullName).toString(); 0018 0019 m_hsFile = KSharedConfig::openConfig( QStandardPaths::writableLocation(QStandardPaths::AppDataLocation) + QLatin1Char('/') + QStringLiteral("highscores"), KConfig::SimpleConfig); 0020 } 0021 0022 bool KAtomicHighscores::addScore( int numMoves, const QString& levelSetName, int level ) 0023 { 0024 KConfigGroup userHsGroup( m_hsFile, QStringLiteral("Highscores_")+m_playerName ); 0025 KConfigGroup levelSetGroup( &userHsGroup, levelSetName ); 0026 0027 QString keyStr = QStringLiteral("Level")+QString::number(level); 0028 int curHighScore = levelSetGroup.readEntry( keyStr, -1 ); 0029 if( numMoves < curHighScore || curHighScore == -1 ) // new highscore! 0030 { 0031 levelSetGroup.writeEntry( keyStr, numMoves ); 0032 return true; 0033 } 0034 return false; 0035 } 0036 0037 int KAtomicHighscores::levelHighscore( const QString& levelSetName, int level ) const 0038 { 0039 KConfigGroup userHsGroup( m_hsFile, QStringLiteral("Highscores_")+m_playerName ); 0040 KConfigGroup levelSetGroup( &userHsGroup, levelSetName ); 0041 0042 QString keyStr = QStringLiteral("Level")+QString::number(level); 0043 return levelSetGroup.readEntry( keyStr, 0 ); 0044 }