X-Git-Url: http://vcs.maemo.org/git/?a=blobdiff_plain;f=seascene.cpp;h=09406947cb56ec48b0c3e8e2ad89d2aee7ba0816;hb=07bab3bbc5c64ca09904c81342adba382423b219;hp=eb145040d0c8e2f6444aa037b89080dc7ad256fc;hpb=5a817acc28ea04b9630c65515c1b9ed64b056b5e;p=ghostsoverboard diff --git a/seascene.cpp b/seascene.cpp index eb14504..0940694 100644 --- a/seascene.cpp +++ b/seascene.cpp @@ -1,5 +1,27 @@ +/************************************************************************** + 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 "seascene.h" -#include "timercontrolledtursas.h" +#include "octopus.h" #include "ship.h" #include #include @@ -15,6 +37,7 @@ SeaScene::SeaScene(QObject *parent) : QGraphicsScene(parent) { paused_ = false; + screenLitKeeper_.keepScreenLit(true); //set background @@ -26,6 +49,8 @@ SeaScene::SeaScene(QObject *parent) : qsrand(QTime::currentTime().msec()+2); //+2 to avoid setting it to 1 + + } void SeaScene::setupMap(int ghosts, int rocks, int octopuses) @@ -46,8 +71,8 @@ void SeaScene::setupMap(int ghosts, int rocks, int octopuses) int numberOfXTiles = width() / 40; int numberOfYTiles = height() /40; - qDebug() << numberOfXTiles << " slots in x direction"; - qDebug() << numberOfYTiles << " slots in y rirection"; +// qDebug() << numberOfXTiles << " slots in x direction"; +// qDebug() << numberOfYTiles << " slots in y rirection"; for (int i = 0; i < numberOfXTiles; i++ ) { @@ -64,8 +89,6 @@ void SeaScene::setupMap(int ghosts, int rocks, int octopuses) { QPointF * pPosition = findRandomFreeSlot(); - qDebug() << "Found a place for a rock"; - //If there was no room no point to continue if (pPosition == NULL) break; @@ -87,6 +110,7 @@ void SeaScene::setupMap(int ghosts, int rocks, int octopuses) //spread the octopuses + QList octopusList; for (int i=0; i < octopuses; i++) { @@ -97,7 +121,7 @@ void SeaScene::setupMap(int ghosts, int rocks, int octopuses) break; QPixmap octopusPixmap (":/pix/tursas.png"); - TimerControlledTursas * pOctopus = new TimerControlledTursas (octopusPixmap,100); + Octopus * pOctopus = new Octopus(octopusPixmap,100); pOctopus->setData(0,"octopus"); pOctopus->setPos(*pPosition); addItem(pOctopus); @@ -105,6 +129,7 @@ void SeaScene::setupMap(int ghosts, int rocks, int octopuses) movingItems_.append(pOctopus); connect(this,SIGNAL(pauseOn()),pOctopus,SLOT(stopMoving())); connect(this,SIGNAL(pauseOff()),pOctopus,SLOT(startMoving())); + octopusList.append(pOctopus); delete pPosition; } @@ -140,10 +165,15 @@ void SeaScene::setupMap(int ghosts, int rocks, int octopuses) addItem(pShip); 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))); pShip->startMoving(); movingItems_.append(pShip); connect(this,SIGNAL(pauseOn()),pShip,SLOT(stopMoving())); connect(this,SIGNAL(pauseOff()),pShip,SLOT(startMoving())); + foreach (Octopus* pOctopus, octopusList) + { + connect(pOctopus,SIGNAL(droppingGhosts()),pShip,SLOT(dropAllGhosts())); + } delete pPosition; } @@ -232,7 +262,7 @@ QPointF* SeaScene::findRandomFreeSlot() int index = qrand()%freeTiles_.size(); - qDebug() << index << " index"; +// qDebug() << index << " index"; return new QPointF (freeTiles_.takeAt(index)); } @@ -246,7 +276,7 @@ void SeaScene::removeGhost(QGraphicsItem *pGhost) if (ghostsLeft_ == 0) { emit allGhostsPicked(); - qDebug() << "All ghosts picked!"; + // qDebug() << "All ghosts picked!"; } } @@ -269,11 +299,18 @@ void SeaScene::pause(bool paused) { // qDebug() << "starting to move again"; emit pauseOff(); + screenLitKeeper_.keepScreenLit(true); } else { // qDebug("about to stop movement"); emit pauseOn(); + screenLitKeeper_.keepScreenLit(false); } } + +void SeaScene::vibrationActivate(bool on) +{ + emit vibrationActivated(on); +}