#include <QSettings>
#include <QPixmap>
+
const QString ghostImageFilename_ = ":/pix/aave.png";
const QString rockImageFilename_ =":/pix/kari.png";
const QString octopusImageFilename_= ":/pix/tursas.png";
connect(this,SIGNAL(allGhostsPicked()),this,SLOT(nextLevel()),Qt::QueuedConnection);
+
+
pVibrateAction_ = new QAction(tr("Vibration effects"),this);
pVibrateAction_->setCheckable(true);
connect(pVibrateAction_,SIGNAL(toggled(bool)),this,SLOT(vibrationActivate(bool)));
autopauseTimer.setInterval(15*60*1000);
connect(&autopauseTimer,SIGNAL(timeout()),this,SLOT(turnPauseOn()));
+ vibrationAllowed_ = false;
+ pResourceSet_ = new ResourcePolicy::ResourceSet("game",this);
+ ResourcePolicy::VibraResource * pVibraResource = new ResourcePolicy::VibraResource();
+ pVibraResource->setOptional(false); //The only resource of the set, so no sense for it to be optional
+ pResourceSet_->addResourceObject(pVibraResource);
+
+ connect(pResourceSet_,SIGNAL(resourcesGranted(const QList< ResourcePolicy::ResourceType >)),this,SLOT(resourcesAvailable()));
+ connect(pResourceSet_,SIGNAL(lostResources()),this,SLOT(resourcesLost()));
+
+ //To test whether resources were succesfully asked but not given
+ connect(pResourceSet_,SIGNAL(resourcesDenied()),this,SLOT(resourcesLost()));
+ pResourceSet_->setAlwaysReply();
+
+ pResourceSet_->acquire();
}
connect(pShip,SIGNAL(pickingGhost(QGraphicsItem*)),this, SLOT(removeGhost(QGraphicsItem*)) );
connect(pShip,SIGNAL(droppingGhosts(int)),this,SLOT(ghostsDropped(int)));
connect(this,SIGNAL(vibrationActivated(bool)),pShip,SLOT(setVibrationActivate(bool)));
+ if (vibrationAllowed_)
+ pShip->allowVibration(); //Vibration is disallowed by default so only allowing needs to be done explicitly
+ connect(pResourceSet_,SIGNAL(resourcesGranted(const QList< ResourcePolicy::ResourceType >)),pShip,SLOT(allowVibration()));
+ connect(pResourceSet_,SIGNAL(lostResources()),pShip,SLOT(disallowVibration()));
pShip->startMoving();
movingItems_.append(pShip);
connect(this,SIGNAL(pauseOn()),pShip,SLOT(stopMoving()));
vibrationActivate(pVibrateAction_->isChecked()); //Vibration effects are lost without this
// qDebug() << pVibrateAction_->isChecked();
+
autopauseTimer.start(); //reset counting towards autopause
void SeaScene::createSelectLevelsetFromListItems()
{
+
if (availableLevelsets_.isEmpty()) //Something is badly wrong in code if this is true...
return;
pSelectLevelsetFromListItem_->setZValue(1000);
pSelectLevelsetFromListItem_->hide();
+
QString fontstring ("<font color = darkorange size = \"7\">");
pSelectLevelsetFromListItem_->setHtml(tr("Choose a levelset").prepend(fontstring));
}
}
+
+
+ void SeaScene::resourcesAvailable()
+ {
+ qDebug() << "Resources available";
+ vibrationAllowed_ = true;
+ }
+
+
+ void SeaScene::resourcesLost()
+ {
+ qDebug() << "Resources lost";
+ vibrationAllowed_ = false;
+ }
#include <QDebug>
#include <QDBusMessage>
#include <QDBusConnection>
-#include <QFeedbackHapticsEffect>
+
shipImages_ = pixmapList;
ghostsAboard_ = 0;
vibrationActive_ = false;
+ vibrationAllowed_ = false;
+
+ pVibrationEffect_ = new QFeedbackHapticsEffect();
+ pVibrationEffect_->setDuration(500);
+ pVibrationEffect_->setIntensity(1.0);
+
}
+Ship::~Ship()
+{
+ if (pVibrationEffect_)
+ delete pVibrationEffect_;
+}
+
+
bool Ship::handleCollisions()
{
QList<QGraphicsItem*> collidesList = collidingItems();
//vibrate
- if (vibrationActive_)
+ if (vibrationActive_ && vibrationAllowed_)
{
// This is for fremantle
//This is for Harmattan
- QFeedbackHapticsEffect vibrationEffect;
- vibrationEffect.setDuration(1000);
- vibrationEffect.setIntensity(1.0);
- vibrationEffect.start();
+ pVibrationEffect_->start();
+
}
}
{
vibrationActive_ = on;
}
+
+void Ship::allowVibration()
+{
+ vibrationAllowed_ = true;
+}
+
+void Ship::disallowVibration()
+{
+ vibrationAllowed_ = false;
+}