From edc8a821aa24eb25017ce88d882d985adc5f9cd6 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Heli=20Hyv=C3=A4ttinen?= Date: Sat, 15 Oct 2011 21:42:40 +0300 Subject: [PATCH] Remembers the last used levelset Conflicts: seascene.cpp --- seascene.cpp | 41 +++++++++++++++++++++++++++++++++-------- 1 file changed, 33 insertions(+), 8 deletions(-) diff --git a/seascene.cpp b/seascene.cpp index 0b8b277..d6cfa78 100644 --- a/seascene.cpp +++ b/seascene.cpp @@ -49,6 +49,8 @@ SeaScene::SeaScene(QObject *parent) : paused_ = false; screenLitKeeper_.keepScreenLit(true); + QSettings settings; + //set background QPixmap waves (":/pix/meri.png"); @@ -61,7 +63,7 @@ SeaScene::SeaScene(QObject *parent) : -//Setup the level list +//Setup level sets QList levelList; Level level1(5,10); @@ -76,14 +78,10 @@ SeaScene::SeaScene(QObject *parent) : levelList.append(level5); Levelset set ("Original",levelList); - levelset_ = set; availableLevelsets_.append(set); - currentLevel_ = 0; - totalScore_ = 0; - - //Create another set of levels and place it in the available levelsets list + //Create another set of levels and place it in the available levelsets list levelList.clear(); Level set2level1(8,15,4,50); levelList.append(set2level1); @@ -100,14 +98,37 @@ SeaScene::SeaScene(QObject *parent) : availableLevelsets_.append(set2); + //Setup starting levelset - connect(this,SIGNAL(allGhostsPicked()),this,SLOT(nextLevel())); + QString levelname = settings.value("levelset","Original").toString(); + bool found = false; + foreach (Levelset levelset, availableLevelsets_) + { + if (levelset.getName() == levelname) + { + levelset_ = levelset; + found = true; + break; + } + } + if (!found) //The last used level is not available + { + levelset_ = availableLevelsets_.value(0); + } + + currentLevel_ = 0; + + totalScore_ = 0; + + + + connect(this,SIGNAL(allGhostsPicked()),this,SLOT(nextLevel())); pVibrateAction_ = new QAction(tr("Vibration effects"),this); pVibrateAction_->setCheckable(true); connect(pVibrateAction_,SIGNAL(toggled(bool)),this,SLOT(vibrationActivate(bool))); - QSettings settings; + pVibrateAction_->setChecked(settings.value("vibration",false).toBool()); @@ -568,6 +589,10 @@ void SeaScene::handleScreenTapped() if (variant.canConvert()) { levelset_ = variant.value(); + + QSettings settings; + settings.setValue("levelset",levelset_.getName()); + restartGame(); pPauseAction_->setChecked(false); //unpause game } -- 1.7.9.5