X-Git-Url: http://vcs.maemo.org/git/?a=blobdiff_plain;f=seascene.h;h=963f3d11a7abdf99239f554575c71add5339cb94;hb=00f6534719b46dd5479cff4d73339c3ce2c36664;hp=1d0c1fc9d35f95c1c2cff9b73d51c093f9a13490;hpb=0fbb8077e72fd28bd5d89fbac989fd0e0d2c45b8;p=ghostsoverboard diff --git a/seascene.h b/seascene.h index 1d0c1fc..963f3d1 100644 --- a/seascene.h +++ b/seascene.h @@ -1,7 +1,40 @@ +/************************************************************************** + 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 . + +**************************************************************************/ + + #ifndef SEASCENE_H #define SEASCENE_H #include +#include +#include "screenlitkeeper.h" +#include "level.h" +#include "levelset.h" +#include +#include +#include +#include + +using namespace QtMobility; class SeaScene : public QGraphicsScene { @@ -11,6 +44,14 @@ public: signals: + void allGhostsPicked(); + void pauseOn(); + void pauseOff(); + void vibrationActivated(bool on); + void minimizeRequested(); + void fullscreenRequested(); + void deviceJustLocked(); + public slots: /*! Places all needed items for a level to (re)start. @@ -19,12 +60,46 @@ public slots: @param rocks the number of rocks to be placed on the map @param octopuses number of octopuses to be placed on the map */ - void setupMap(int ghosts, int rocks, int octopuses); + void setupMap(int ghosts, int rocks, int octopuses, int octopusSpeed); + + void setupMap(Level level); void spreadGhosts(int ghosts); void removeGhost(QGraphicsItem * pGhost); + void ghostsDropped(int ghosts); + + void pause (bool paused); + + void vibrationActivate(bool); + + void handleScreenTapped(); + + void about(); + + void restartLevel(); + + void nextLevel(); + + void restartGame(); + + void forcePause(); + + void softContinue(); + + void setItemPointersNull(); + + void turnPauseOn(); + + void handleDeviceLocked(bool isLocked); + + void pollDeviceLocked(); + + + + + protected: /*! Gives a pointer to a random position if a free one is found. Otherwise returns NULL. @@ -33,6 +108,13 @@ protected: QPointF* findRandomFreeSlot(); + void createMenuItems(); + void prepareForMenu(QGraphicsItem * pItem); + void createAboutBoxItems(); + void createVictoryItems(); + void createLevelCompletedItems(); + void createSelectLevelsetFromListItems(); + const QString ghostImageFilename_; const QString rockImageFilename_; const QString octopusImageFilename_; @@ -40,8 +122,58 @@ protected: QList freeTiles_; + int ghostsLeft_; + + QList movingItems_; + + bool paused_; + + ScreenLitKeeper screenLitKeeper_; + + int menuItemCount_; + + QGraphicsTextItem * pPausetextItem_; + + QGraphicsTextItem * pRestartLevelItem_; + QGraphicsTextItem * pRestartGameItem_; + QGraphicsTextItem * pSettingsItem_; + QGraphicsTextItem * pAboutItem_; + QGraphicsTextItem * pQuitItem_; + QGraphicsTextItem * pMinimizeItem_; + QGraphicsTextItem * pChooseLevelsetItem_; + + QGraphicsTextItem * pVictoryCongratulationsItem_; + QGraphicsTextItem * pVictoryScoreItem_; + QGraphicsTextItem * pAboutBoxItem_; + + QGraphicsTextItem * pLevelCompletedItem_; + + QGraphicsTextItem * pSelectLevelsetFromListItem_; + + QList levelsetItems_; + + QList availableLevelsets_; + + Levelset levelset_; + + int currentLevel_; + + + QAction* pVibrateAction_; + + QAction* pPauseAction_; + + QTimer autopauseTimer; + + QSystemDeviceInfo deviceInfo_; + + bool alreadyLocked_; + QTimer deviceLockPollTimer_; + QTime scoreCounter_; + int totalScore_; + int levelScore_; };