Updated the web page to reflect release of v.0.2.1
[ghostsoverboard] / mainwindow.cpp
index 054c6c5..f30d851 100644 (file)
@@ -59,30 +59,39 @@ MainWindow::MainWindow(QWidget *parent)
     connect(pRestartLevelAction,SIGNAL(triggered()),this,SLOT(restartLevel()));
     menuBar()->addAction(pRestartLevelAction);
 
+    QAction * pRestartGameAction = new QAction(tr("Restart game"),this);
+    addAction(pRestartGameAction);
+    connect(pRestartGameAction,SIGNAL(triggered()),this,SLOT(restartGame()));
+    menuBar()->addAction(pRestartGameAction);
+
+    pVibrateAction_ = new QAction(tr("Vibration effects"),this);
+    pVibrateAction_->setCheckable(true);
+    addAction(pVibrateAction_);
+    connect(pVibrateAction_,SIGNAL(triggered(bool)),pScene_,SLOT(vibrationActivate(bool)));
+    menuBar()->addAction(pVibrateAction_);
+
 
     QAction * pAboutAction = new QAction(tr("About"),this);
     addAction(pAboutAction);
     connect(pAboutAction,SIGNAL(triggered()),this,SLOT(about()));
     menuBar()->addAction(pAboutAction);
 
-    QAction * pRestartGameAction = new QAction(tr("Restart game"),this);
-    addAction(pRestartGameAction);
-    connect(pRestartGameAction,SIGNAL(triggered()),this,SLOT(restartGame()));
-    menuBar()->addAction(pRestartGameAction);
+
 
     Level level1(5,10);
     levelList_.append(level1);
     Level level2(5,10,2,50);
     levelList_.append(level2);
-    Level level3(5,15,3,100);
+    Level level3(5,15,2,50);
     levelList_.append(level3);
-    Level level4(10,15,5,50);
+    Level level4(5,15,4,50);
     levelList_.append(level4);
-    Level level5(10,15,5,100);
+    Level level5(5,15,5,100);
     levelList_.append(level5);
 
     currentLevel_ = 0;
 
+
     //the boundaries of the scene are set to match the size of the view window, which is not
     //available in the constructor --> timer needed
     QTimer::singleShot(100,this,SLOT(initializeBoundaries()));
@@ -117,7 +126,9 @@ void MainWindow::initializeBoundaries()
 
 void MainWindow::restartLevel()
 {
-    pScene_->setupMap(levelList_.at(currentLevel_));
+    pScene_->setupMap(levelList_.value(currentLevel_));  //value() returns default constructor Level if index is invalid, so no risk of crash
+    pScene_->vibrationActivate(pVibrateAction_->isChecked());  //Vibration effects are lost without this
+   // qDebug() << pVibrateAction_->isChecked();
 }
 
 void MainWindow::about()
@@ -145,7 +156,7 @@ void MainWindow::nextLevel()
 
     if ( currentLevel_ < levelList_.size() )
     {
-        pScene_->setupMap(levelList_.at(currentLevel_));
+       restartLevel();
     }
 
     else //Victory!
@@ -234,6 +245,5 @@ bool MainWindow::event(QEvent *event)
 void MainWindow::restartGame()
 {
     currentLevel_ = 0;
-    pScene_->setupMap(levelList_.value(currentLevel_)); //value() returns default constructor Level, so no need to check if list empty
-
+    restartLevel();
 }