X-Git-Url: https://vcs.maemo.org/git/?a=blobdiff_plain;f=ship.cpp;h=adcc20256790f82f1ee515b577c022b36a8c77c6;hb=27c05355f4e953f836bcd846ceb7fcf3226f154f;hp=e9541d9ac70df027ded7161ebd52d7d89d6d2bf5;hpb=1c8f72e574cf69c9f590ac50b064af716ef1bce2;p=ghostsoverboard diff --git a/ship.cpp b/ship.cpp index e9541d9..adcc202 100644 --- a/ship.cpp +++ b/ship.cpp @@ -1,12 +1,38 @@ +/************************************************************************** + Ghosts Overboard - a game for Maemo 5 + + Copyright (C) 2011 Heli Hyvättinen + + This file is part of Ghosts Overboard + + Ghosts Overboard is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +**************************************************************************/ + + #include "ship.h" #include +#include +#include + Ship::Ship(QList pixmapList, QGraphicsItem *parent) : OrientationControlledGraphicsPixmapObject(pixmapList.at(0),parent) { shipImages_ = pixmapList; ghostsAboard_ = 0; - + vibrationActive_ = false; } bool Ship::handleCollisions() @@ -21,14 +47,15 @@ bool Ship::handleCollisions() //since the game logic does not leave items to collide with each other we can take just the topmost one //and trust it is the only one QString type = collidesList.at(0)->data(0).toString(); - qDebug() << type; +// qDebug() << type; if (type == "rock" || type == "octopus") { // drop all ghosts when hitting an obstacle - emit droppingGhosts(ghostsAboard_); - ghostsAboard_ = 0; - updateShipImage(); + + dropAllGhosts(); + + //go back to old position return false; } @@ -38,7 +65,7 @@ bool Ship::handleCollisions() ghostsAboard_++; updateShipImage(); - qDebug() << ghostsAboard_ << " ghosts aboard"; +// qDebug() << ghostsAboard_ << " ghosts aboard"; emit pickingGhost(collidesList.at(0)); @@ -46,6 +73,9 @@ bool Ship::handleCollisions() } } + + + return true; //execution can never reach here, this is just to stop the compiler from complaining } void Ship::updateShipImage() @@ -53,3 +83,33 @@ void Ship::updateShipImage() int index = qBound(0,ghostsAboard_,shipImages_.length()-1); setPixmap(shipImages_.at(index)); } + +void Ship::dropAllGhosts() +{ + + emit droppingGhosts(ghostsAboard_); + ghostsAboard_ = 0; + updateShipImage(); + + //vibrate + + if (vibrationActive_) + { + QDBusMessage message = QDBusMessage::createMethodCall("com.nokia.mce","/com/nokia/mce/request","com.nokia.mce.request","req_vibrator_pattern_activate"); + + QList arguments; + + arguments.append("PatternChatAndEmail"); + + message.setArguments(arguments); + + message = QDBusConnection::systemBus().call(message); + + //qDebug() << message; + } +} + +void Ship::setVibrationActivate(bool on) +{ + vibrationActive_ = on; +}