//Setup the level list
+ QList<Level> levelList;
Level level1(5,10);
- levelList_.append(level1);
+ levelList.append(level1);
Level level2(5,10,2,50);
- levelList_.append(level2);
+ levelList.append(level2);
Level level3(5,15,2,50);
- levelList_.append(level3);
+ levelList.append(level3);
Level level4(5,15,4,50);
- levelList_.append(level4);
+ levelList.append(level4);
Level level5(5,15,5,100);
- levelList_.append(level5);
+ levelList.append(level5);
+
+ Levelset set ("Original",levelList);
+ levelset_ = set;
currentLevel_ = 0;
connect(pPauseAction_,SIGNAL(toggled(bool)),this,SLOT(pause(bool)));
+ deviceLockPollTimer_.setInterval(20*60);
+ connect(&deviceLockPollTimer_,SIGNAL(timeout()),this,SLOT(pollDeviceLocked()));
+ deviceLockPollTimer_.start();
+
+
autopauseTimer.setSingleShot(true);
autopauseTimer.setInterval(15*60*1000);
- connect(&autopauseTimer,SIGNAL(timeout()),this,SLOT(forcePause()));
+ connect(&autopauseTimer,SIGNAL(timeout()),this,SLOT(turnPauseOn()));
}
pPausetextItem_->hide();
autopauseTimer.start(); //Start counting towards autopause
+ deviceLockPollTimer_.start(); //Start polling whether device is locked
}
else
{
- qDebug("about to stop movement");
+// qDebug("about to stop movement");
emit pauseOn();
screenLitKeeper_.keepScreenLit(false);
if (pPausetextItem_ != NULL)
{
- qDebug() << "about to show the pause text";
+// qDebug() << "about to show the pause text";
pPausetextItem_->show();
- qDebug() << "showing pause text";
+// qDebug() << "showing pause text";
}
- else qDebug() << "No pause text available";
+// else qDebug() << "No pause text available";
autopauseTimer.stop(); //No need to count toward autopause when already paused
+ deviceLockPollTimer_.stop(); //No need to check for unlock as no unpause anyway
}
}
if (pItem == pRestartGameItem_)
{
- qDebug() << "game restart requested";
+// qDebug() << "game restart requested";
restartGame();
pPauseAction_->setChecked(false); //unpause game
else if (pItem == pRestartLevelItem_)
{
- qDebug() << "Level restart requested";
+// qDebug() << "Level restart requested";
restartLevel();
pPauseAction_->setChecked(false); //unpause game
prepareForMenu(pRestartLevelItem_);
pSettingsItem_ = new QGraphicsTextItem;
- QString vibraText(tr("Vibration <br> effects "));
+ QString vibraText(tr("Turn vibration <br> effects "));
QString statusText;
if (pVibrateAction_->isChecked())
{
void SeaScene::restartLevel()
{
- setupMap(levelList_.value(currentLevel_)); //value() returns default constructor Level if index is invalid, so no risk of crash
+ setupMap(levelset_.getLevel(currentLevel_)); //getLevel() 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();
autopauseTimer.start(); //reset counting towards autopause
currentLevel_++;
- if (levelList_.empty())
+ if (!levelset_.isValid())
setupMap(Level());
- if ( currentLevel_ < levelList_.size() )
+ if ( currentLevel_ < levelset_.numberOfLevels() )
{
restartLevel();
}
pVictoryCongratulationsItem_ = new QGraphicsTextItem;
pVictoryCongratulationsItem_->setHtml("<font size=\"6\" color = darkorange> Victory!");
pVictoryCongratulationsItem_->hide();
- pVictoryCongratulationsItem_->setPos(300,50);
+ pVictoryCongratulationsItem_->setPos(355,50);
pVictoryCongratulationsItem_->setZValue(1000);
addItem(pVictoryCongratulationsItem_);
pVictoryCongratulationsItem_ = NULL;
}
+
+void SeaScene::turnPauseOn()
+{
+ pPauseAction_->setChecked(true);
+}
+
+void SeaScene::handleDeviceLocked(bool isLocked)
+{
+ //pauses if locked but does not unpause if unlocked
+ if(isLocked)
+ {
+ pPauseAction_->setChecked(true);
+ }
+}
+
+void SeaScene::pollDeviceLocked()
+{
+
+ bool locked = deviceInfo_.isDeviceLocked();
+
+ if (locked)
+ {
+ if (!alreadyLocked_)
+ {
+ pPauseAction_->setChecked(true);
+ alreadyLocked_ = true;
+ }
+
+ else
+ {
+ alreadyLocked_ = false;
+ }
+ }
+}