Copyright 2011 Heli Hyvättinen" + "
License: General Public License v2" + "
Bug Reports: https://bugs.maemo.org/ " + "enter_bug.cgi?product=Ghosts%20Overboard" + ).arg(QApplication::applicationVersion())); + + + +} + + +void SeaScene::restartLevel() +{ + setupMap(levelList_.value(currentLevel_)); //value() returns default constructor Level if index is invalid, so no risk of crash + vibrationActivate(pVibrateAction_->isChecked()); //Vibration effects are lost without this + // qDebug() << pVibrateAction_->isChecked(); +} + + + +void SeaScene::nextLevel() +{ + + currentLevel_++; + + if (levelList_.empty()) + setupMap(Level()); + + + if ( currentLevel_ < levelList_.size() ) + { + restartLevel(); + } + + else //Victory! + { + + QDialog* pVictoryDialog = new QDialog(); + pVictoryDialog->setWindowTitle(tr("You won!")); + + + QPushButton* pPlayAgainButton = new QPushButton(tr("Play again")); +// QPushButton* pQuitButton = new QPushButton(tr("Quit game")); + + QPixmap victoryIcon (":/pix/aavesaari.png"); + QLabel* pVictoryLabel = new QLabel(); + pVictoryLabel->setPixmap(victoryIcon); + + QLabel* pTextLabel = new QLabel(tr("Congratulations!
You have saved all the ghosts.")); + + + QVBoxLayout* pMainLayout = new QVBoxLayout; + + QHBoxLayout* pTopLayout = new QHBoxLayout; + pMainLayout->addLayout(pTopLayout); + + pTopLayout->addWidget(pVictoryLabel); + pTopLayout->addWidget(pTextLabel); + + + + QHBoxLayout* pButtonLayout = new QHBoxLayout(); + pMainLayout->addLayout(pButtonLayout); + + // pButtonLayout->addWidget(pQuitButton); + pButtonLayout->addWidget(pPlayAgainButton); + + + + pVictoryDialog->setLayout(pMainLayout); + + connect(pPlayAgainButton, SIGNAL(clicked()),pVictoryDialog,SLOT(accept())); + + pVictoryDialog->exec(); + + //Never mind if the user cancels the dialog: restart the game anyway + + restartGame(); + } +} + + +void SeaScene::restartGame() +{ + currentLevel_ = 0; + restartLevel(); +} + + +void SeaScene::forcePause() +{ + //Pause without setting the pause action state + pause(true); +} + +void::SeaScene::softContinue() +{ + //Continue if not being paused by the user + // Reverts forcePause() + + pause(pPauseAction_->isChecked()); +}