Move settings to dedicated class.
[vexed] / settings.cpp
diff --git a/settings.cpp b/settings.cpp
new file mode 100644 (file)
index 0000000..6ac4f09
--- /dev/null
@@ -0,0 +1,53 @@
+#include "settings.h"
+#include <QtCore>
+
+Settings::Settings():QSettings("paul","vexed")
+{
+}
+
+void Settings::saveHiscore(const QString &packName, const QString &levelName, int score)
+{
+    hiscore(packName, levelName, score);
+}
+
+int Settings::getHighscore(const QString &packName, const QString &levelName)
+{
+    return hiscore(packName, levelName);
+}
+
+void Settings::saveGame(const QString &packName, int levelNo)
+{
+    beginGroup("save");
+    setValue("pack",packName);
+    setValue("level",levelNo);
+}
+QString Settings::savedPackName()
+{
+        beginGroup("save");
+        QString packName=value("pack","Classic Levels").toString();
+        return packName;
+}
+int Settings::savedLevelNo()
+{
+        beginGroup("save");
+        int levelNo=value("level",0).toInt();
+        return levelNo;
+}
+int Settings::hiscore(const QString &packName, const QString &levelName,int score)
+{
+
+    beginGroup("score");
+    beginGroup(packName);
+    QString saved=value(levelName,HS::NO_SCORE).toString();
+    bool ok;
+    int savedMoves=saved.toInt(&ok);
+    if(!ok)
+        savedMoves=HS::NO_SCORE;
+    if(score == -1)
+    {
+        return savedMoves;
+    }
+    if(score<savedMoves)
+        setValue(levelName,score);
+    return score;
+}