diff -Nru bomber-15.12.3/CMakeLists.txt bomber-16.04.3/CMakeLists.txt --- bomber-15.12.3/CMakeLists.txt 2016-01-14 11:35:03.000000000 +0000 +++ bomber-16.04.3/CMakeLists.txt 2016-04-25 17:48:00.000000000 +0000 @@ -2,18 +2,20 @@ cmake_minimum_required (VERSION 2.8.12 FATAL_ERROR) set (QT_MIN_VERSION "5.3.0") +set (KF5_MIN_VERSION "5.15.0") find_package(ECM 1.8.0 REQUIRED CONFIG) set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${ECM_MODULE_PATH} ${ECM_KDE_MODULE_DIR}) -find_package(Qt5 ${QT_MIN_VERSION} REQUIRED NO_MODULE COMPONENTS Widgets ) -find_package(KF5 REQUIRED COMPONENTS - CoreAddons +find_package(Qt5 ${QT_MIN_VERSION} REQUIRED NO_MODULE COMPONENTS Widgets) +find_package(KF5 ${KF5_MIN_VERSION} REQUIRED COMPONENTS Config + CoreAddons + Crash DBusAddons + DocTools I18n XmlGui - DocTools ) find_package(KF5KDEGames 4.9.0 REQUIRED) @@ -28,14 +30,20 @@ include(KDECMakeSettings) include(ECMAddAppIcon) -add_definitions(-DQT_USE_FAST_CONCATENATION -DQT_USE_FAST_OPERATOR_PLUS) -add_definitions("-DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_TO_ASCII") - +add_definitions( + -DQT_USE_FAST_CONCATENATION + -DQT_USE_FAST_OPERATOR_PLUS + -DQT_NO_CAST_FROM_ASCII + -DQT_NO_CAST_TO_ASCII + -DQT_NO_CAST_FROM_BYTEARRAY + -DQT_NO_URL_CAST_FROM_STRING + -DQT_USE_QSTRINGBUILDER +) -add_subdirectory( themes ) -add_subdirectory( sounds ) -add_subdirectory( pictures ) -add_subdirectory( src ) -add_subdirectory( doc ) +add_subdirectory(themes) +add_subdirectory(sounds) +add_subdirectory(icons) +add_subdirectory(src) +add_subdirectory(doc) feature_summary(WHAT ALL INCLUDE_QUIET_PACKAGES FATAL_ON_MISSING_REQUIRED_PACKAGES) diff -Nru bomber-15.12.3/debian/bomber.install bomber-16.04.3/debian/bomber.install --- bomber-15.12.3/debian/bomber.install 2016-04-14 21:50:41.000000000 +0000 +++ bomber-16.04.3/debian/bomber.install 2016-09-30 04:33:57.000000000 +0000 @@ -1,3 +1,2 @@ -bomber.xpm /usr/share/pixmaps/ usr/games/bomber usr/share/* diff -Nru bomber-15.12.3/debian/bomber.menu bomber-16.04.3/debian/bomber.menu --- bomber-15.12.3/debian/bomber.menu 2016-04-14 21:50:41.000000000 +0000 +++ bomber-16.04.3/debian/bomber.menu 1970-01-01 00:00:00.000000000 +0000 @@ -1,7 +0,0 @@ -?package(bomber):\ - needs="x11"\ - section="Games/Action"\ - hints="KDE"\ - title="Bomber"\ - icon32x32="/usr/share/pixmaps/bomber.xpm"\ - command="/usr/games/bomber" diff -Nru bomber-15.12.3/debian/changelog bomber-16.04.3/debian/changelog --- bomber-15.12.3/debian/changelog 2016-04-14 21:50:41.000000000 +0000 +++ bomber-16.04.3/debian/changelog 2016-09-30 04:33:57.000000000 +0000 @@ -1,3 +1,24 @@ +bomber (4:16.04.3-0ubuntu1) yakkety; urgency=medium + + [ Scarlett Clark ] + * New upstream release. + * Remove rules to generate icons, they no longer exist. + * Remove bomber.xmp from install, it no longer exists. + + [ Philip Muškovac ] + * Update the Vcs URLs now that the repositories are hosted on + Launchpad + + [ Scarlett Clark ] + * New upstream bugfix release. + + [ Clive Johnston ] + * New upstream release 16.04.2 + * New upstream release (16.04.3) + * Remove rest of bomber icon stuff which is not needed + + -- José Manuel Santamaría Lema Fri, 30 Sep 2016 06:33:57 +0200 + bomber (4:15.12.3-0ubuntu1) xenial; urgency=medium * New upstream bugfix release @@ -5,6 +26,12 @@ -- Scarlett Clark Thu, 14 Apr 2016 14:50:41 -0700 +bomber (4:15.12.2-0ubuntu1) UNRELEASED; urgency=medium + + * New upstream bugfix release + + -- Scarlett Clark Wed, 09 Mar 2016 20:43:19 -0800 + bomber (4:15.12.1-0ubuntu2) xenial; urgency=medium * No-change rebuild against libkf5kdegames7 @@ -21,6 +48,12 @@ -- Clive Johnston Wed, 09 Mar 2016 10:22:07 +0100 +bomber (4:15.12.0-1) experimental; urgency=medium + + * New upstream release (15.12.0). + + -- Maximiliano Curia Mon, 01 Feb 2016 10:22:12 +0100 + bomber (4:15.08.3-1) unstable; urgency=medium * New upstream release (15.08.3). diff -Nru bomber-15.12.3/debian/control bomber-16.04.3/debian/control --- bomber-15.12.3/debian/control 2016-04-14 21:50:41.000000000 +0000 +++ bomber-16.04.3/debian/control 2016-09-30 04:33:57.000000000 +0000 @@ -11,25 +11,25 @@ Maximiliano Curia Build-Depends: cmake (>= 2.8.12~), debhelper (>= 9), - extra-cmake-modules (>= 1.7.0~), - imagemagick, - kio-dev, - libkf5config-dev, - libkf5configwidgets-dev, - libkf5coreaddons-dev, - libkf5dbusaddons-dev, - libkf5i18n-dev, - libkf5kdegames-dev (>= 4.9.0~), - libkf5kdelibs4support-dev, - libkf5xmlgui-dev, + extra-cmake-modules (>= 5.24.0~), + kdoctools-dev (>= 5.24.0~), + kio-dev (>= 5.24.0~), + libkf5config-dev (>= 5.24.0~), + libkf5configwidgets-dev (>= 5.24.0~), + libkf5coreaddons-dev (>= 5.24.0~), + libkf5dbusaddons-dev (>= 5.24.0~), + libkf5i18n-dev (>= 5.24.0~), + libkf5kdegames-dev (>= 4:16.04.3~), + libkf5kdelibs4support-dev (>= 5.24.0~), + libkf5xmlgui-dev (>= 5.24.0~), libphonon4qt5-dev, libphonon4qt5experimental-dev, pkg-kde-tools (>> 0.15.15), - qtbase5-dev (>= 5.4) + qtbase5-dev (>= 5.6.1~) Standards-Version: 3.9.6 Homepage: http://games.kde.org/ -Vcs-Browser: http://anonscm.debian.org/cgit/pkg-kde/applications/bomber.git -Vcs-Git: git://anonscm.debian.org/pkg-kde/applications/bomber.git +Vcs-Browser: https://code.launchpad.net/~kubuntu-packagers/kubuntu-packaging/+git/bomber +Vcs-Git: git://git.launchpad.net/~kubuntu-packagers/kubuntu-packaging/+git/bomber Package: bomber Architecture: any diff -Nru bomber-15.12.3/debian/icon-list bomber-16.04.3/debian/icon-list --- bomber-15.12.3/debian/icon-list 2016-04-14 21:50:41.000000000 +0000 +++ bomber-16.04.3/debian/icon-list 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -pictures/32-apps-bomber.png bomber.xpm -crop 32x32+1+0 diff -Nru bomber-15.12.3/debian/rules bomber-16.04.3/debian/rules --- bomber-15.12.3/debian/rules 2016-04-14 21:50:41.000000000 +0000 +++ bomber-16.04.3/debian/rules 2016-09-30 04:33:57.000000000 +0000 @@ -5,19 +5,6 @@ override_dh_auto_configure: $(overridden_command) -- -DBIN_INSTALL_DIR=/usr/games -override_dh_auto_build: - $(overridden_command) - # Generate icons - while read src dest args; do \ - convert $$args $(CURDIR)/$$src $(CURDIR)/$$dest; \ - done setInterval(GAME_DELAY); connect(m_clock, &QTimer::timeout, this, &BomberBoard::tick); @@ -64,8 +63,6 @@ resetPlane(); clear(); - m_audioPlayer = Q_NULLPTR; - m_soundPath = QStandardPaths::locate(QStandardPaths::DataLocation, QLatin1Literal("sounds"), QStandardPaths::LocateDirectory); } @@ -80,7 +77,7 @@ void BomberBoard::resetPlane() { - m_plane->setState(Explodable::Moving); + m_plane->setState(Explodable::State::Moving); m_plane->resetPosition(); } @@ -98,7 +95,7 @@ } m_plane->resize(m_tileSize); - if (m_bomb != Q_NULLPTR) { + if (m_bomb != nullptr) { m_bomb->resize(m_tileSize); } @@ -111,7 +108,7 @@ void BomberBoard::redraw() { m_plane->resetPixmaps(); - if (m_bomb != Q_NULLPTR) { + if (m_bomb != nullptr) { m_bomb->resetPixmaps(); } } @@ -130,10 +127,10 @@ m_clock->stop(); clear(); - m_plane->setState(Explodable::Moving); + m_plane->setState(Explodable::State::Moving); m_buildingBlocks = 0; //Create the buildings - for (unsigned int i = 0; i < NUMBER_BUILDINGS; i++) { + for (unsigned int i = 0; i < NUMBER_BUILDINGS; ++i) { unsigned int min = level; if (min < 3) { min = 3; @@ -175,7 +172,7 @@ void BomberBoard::setSounds(bool val) { m_playSounds = val; - if (val == true && m_audioPlayer == Q_NULLPTR) { + if (val == true && m_audioPlayer == nullptr) { m_audioPlayer = Phonon::createPlayer(Phonon::GameCategory); } } @@ -186,7 +183,7 @@ m_plane->advanceItem(); - if (m_bomb != Q_NULLPTR) { + if (m_bomb != nullptr) { m_bomb->advanceItem(); } @@ -197,7 +194,7 @@ // Draw everything m_plane->update(); - if (m_bomb != Q_NULLPTR) { + if (m_bomb != nullptr) { m_bomb->update(); } @@ -208,7 +205,7 @@ void BomberBoard::dropBomb() { - if (m_bomb == Q_NULLPTR && m_plane->state() == Explodable::Moving) { + if (m_bomb == nullptr && m_plane->state() == Explodable::State::Moving) { QPointF planePos = m_plane->position(); m_bomb = new Bomb(m_renderer, this, planePos.x(), planePos.y() + 1, m_tileSize); this->addItem(m_bomb); @@ -220,30 +217,30 @@ { foreach (Building *building, m_buildings) { if (m_plane->nextBoundingRect().intersects(building->boundingRect()) && m_plane->state() - == Explodable::Moving) { + == Explodable::State::Moving) { // Plane crashed into the building building->destoryTop(); - m_buildingBlocks--; + --m_buildingBlocks; crashed(); } - if (m_bomb != Q_NULLPTR) { + if (m_bomb != nullptr) { if (m_bomb->nextBoundingRect().intersects(building->boundingRect()) && m_bomb->state() - == Explodable::Moving) { + == Explodable::State::Moving) { // Bomb hit a building building->destoryTop(); - m_buildingBlocks--; + --m_buildingBlocks; emit onBombHit(); bombHit(m_bomb, building->position().x(), Building::BUILD_BASE_LOCATION - (building->height())); - m_bomb = Q_NULLPTR; + m_bomb = nullptr; } else if (m_bomb->position().y() >= Building::BUILD_BASE_LOCATION + 1) { // Bomb hit the ground bombHit(m_bomb, (unsigned int)m_bomb->position().x(), Building::BUILD_BASE_LOCATION); - m_bomb = Q_NULLPTR; + m_bomb = nullptr; } } - if (m_plane->state() == Explodable::Moving && m_buildingBlocks == 0) { + if (m_plane->state() == Explodable::State::Moving && m_buildingBlocks == 0) { emit levelCleared(); } } @@ -251,9 +248,8 @@ void BomberBoard::bombHit(Bomb *bomb, qreal moveBombToX, qreal moveBombToY) { - // playSound(QString("explode.ogg")); bomb->setPosition(moveBombToX, moveBombToY); - bomb->setState(Bomb::Exploding); + bomb->setState(Bomb::State::Exploding); m_explodingBombs.enqueue(bomb); QTimer::singleShot(BOMB_EXPLODE_TIME, this, SLOT(bombExploded())); } @@ -274,7 +270,7 @@ void BomberBoard::planeExploded() { - m_plane->setState(Plane::Exploded); + m_plane->setState(Plane::State::Exploded); emit onPlaneCrash(); } @@ -282,7 +278,7 @@ { QPointF pos = m_plane->position(); m_plane->setPosition(pos.x() + 1, pos.y()); - m_plane->setState(Plane::Exploding); + m_plane->setState(Plane::State::Exploding); playSound(QLatin1Literal("explode.ogg")); QTimer::singleShot(PLANE_EXPLODE_TIME, this, SLOT(planeExploded())); } @@ -293,7 +289,7 @@ m_buildings.clear(); delete m_bomb; - m_bomb = Q_NULLPTR; + m_bomb = nullptr; resetPlane(); } diff -Nru bomber-15.12.3/src/board.h bomber-16.04.3/src/board.h --- bomber-15.12.3/src/board.h 2016-01-14 11:35:03.000000000 +0000 +++ bomber-16.04.3/src/board.h 2016-04-25 17:48:00.000000000 +0000 @@ -51,7 +51,7 @@ * \param view The graphics view object which this board is bound to * \param parent The widget which the board is inserted into */ - explicit BomberBoard(KGameRenderer *renderer, QGraphicsView *view, QObject *parent = Q_NULLPTR); + explicit BomberBoard(KGameRenderer *renderer, QGraphicsView *view, QObject *parent = nullptr); ~BomberBoard(); @@ -138,7 +138,9 @@ void settingsChanged(); private slots: - /** This is called once a second to update and draw all the game objects */ + /** + * This is called once a second to update and draw all the game objects + */ void tick(); /** @@ -176,10 +178,14 @@ */ void crashed(); - /** This is the renderer used to render game objects */ + /** + * This is the renderer used to render game objects + */ KGameRenderer *m_renderer; - /** This is the size of a tiling block */ + /** + * This is the size of a tiling block + */ QSize m_tileSize; QTimer *m_clock; @@ -187,22 +193,34 @@ bool m_playSounds; QDir m_soundPath; - /** If their is a bomb currently dropping then it is pointed to by this */ + /** + * If their is a bomb currently dropping then it is pointed to by this + */ Bomb *m_bomb; - /** This points to the plane object used in the level */ + /** + * This points to the plane object used in the level + */ Plane *m_plane; - /** This contains all the buildings in the current level */ + /** + * This contains all the buildings in the current level + */ QList m_buildings; - /** This contains all the bombs that are currently exploding */ + /** + * This contains all the bombs that are currently exploding + */ QQueue m_explodingBombs; - /** This is the number of blocks that make up the buildings */ + /** + * This is the number of blocks that make up the buildings + */ unsigned int m_buildingBlocks; - /** This is the graphics view object which this board is bound. */ + /** + * This is the graphics view object which this board is bound. + */ QGraphicsView *m_view; }; diff -Nru bomber-15.12.3/src/bomb.cpp bomber-16.04.3/src/bomb.cpp --- bomber-15.12.3/src/bomb.cpp 2016-01-14 11:35:03.000000000 +0000 +++ bomber-16.04.3/src/bomb.cpp 2016-04-25 17:48:00.000000000 +0000 @@ -43,7 +43,7 @@ void Bomb::advanceItem() { - if (state() == Moving) { + if (state() == State::Moving) { m_yPos += velocity(); } m_nextBoundingRect.moveTo(m_xPos, m_yPos + velocity()); diff -Nru bomber-15.12.3/src/bomber.cpp bomber-16.04.3/src/bomber.cpp --- bomber-15.12.3/src/bomber.cpp 2016-01-14 11:35:03.000000000 +0000 +++ bomber-16.04.3/src/bomber.cpp 2016-04-25 17:48:00.000000000 +0000 @@ -64,8 +64,6 @@ setFocus(); setupGUI(); - - // readSettings(); } Bomber::~Bomber() @@ -111,15 +109,15 @@ { // Check for running game closeGame(); - if (m_gameWidget->state() == BomberGameWidget::BeforeFirstGame - || m_gameWidget->state() == BomberGameWidget::GameOver) { + if (m_gameWidget->state() == BomberGameWidget::State::BeforeFirstGame + || m_gameWidget->state() == BomberGameWidget::State::GameOver) { m_gameWidget->newGame(); } } void Bomber::pauseGame() { - if (m_gameWidget->state() == BomberGameWidget::Paused) { + if (m_gameWidget->state() == BomberGameWidget::State::Paused) { m_gameWidget->setPaused(false); } else { m_gameWidget->setPaused(true); @@ -128,13 +126,13 @@ void Bomber::closeGame() { - if (m_gameWidget->state() == BomberGameWidget::BeforeFirstGame - || m_gameWidget->state() == BomberGameWidget::GameOver) { + if (m_gameWidget->state() == BomberGameWidget::State::BeforeFirstGame + || m_gameWidget->state() == BomberGameWidget::State::GameOver) { return; } BomberGameWidget::State old_state = m_gameWidget->state(); - if (old_state == BomberGameWidget::Running) { + if (old_state == BomberGameWidget::State::Running) { m_gameWidget->setPaused(true); } int ret = KMessageBox::questionYesNo(this, i18nc("Message displayed when play tries to quit a game that is currently running", @@ -142,7 +140,7 @@ KStandardGuiItem::close(), KStandardGuiItem::cancel()); if (ret == KMessageBox::Yes) { m_gameWidget->closeGame(); - } else if (old_state == BomberGameWidget::Running) { + } else if (old_state == BomberGameWidget::State::Running) { m_gameWidget->setPaused(false); } } @@ -158,14 +156,15 @@ void Bomber::highscore() { - KScoreDialog ksdialog(KScoreDialog::Name | KScoreDialog::Score | KScoreDialog::Level, this); + QPointer ksdialog = new KScoreDialog(KScoreDialog::Name | KScoreDialog::Score | KScoreDialog::Level, this); KScoreDialog::FieldInfo info; info[KScoreDialog::Score].setNum(m_gameWidget->score()); info[KScoreDialog::Level].setNum(m_gameWidget->level()); - if (ksdialog.addScore(info)) { - ksdialog.exec(); + if (ksdialog->addScore(info)) { + ksdialog->exec(); } + delete ksdialog; } void Bomber::setSounds(bool val) @@ -198,16 +197,15 @@ void Bomber::gameStateChanged(BomberGameWidget::State state) { switch (state) { - - case BomberGameWidget::Paused: + case BomberGameWidget::State::Paused: m_pauseAction->setChecked(true); m_statusBar->clearMessage(); break; - case BomberGameWidget::Running: + case BomberGameWidget::State::Running: m_pauseAction->setChecked(false); m_statusBar->clearMessage(); break; - case BomberGameWidget::GameOver: + case BomberGameWidget::State::GameOver: m_statusBar->showMessage(i18nc("Game over messaged displayed in the status bar", "Game over. Press '%1' for a new game", m_newAction->shortcuts().first().toString(QKeySequence::NativeText))); highscore(); diff -Nru bomber-15.12.3/src/bomber.h bomber-16.04.3/src/bomber.h --- bomber-15.12.3/src/bomber.h 2016-01-14 11:35:03.000000000 +0000 +++ bomber-16.04.3/src/bomber.h 2016-04-25 17:48:00.000000000 +0000 @@ -39,18 +39,11 @@ { Q_OBJECT public: - /** - * Default Constructor - */ Bomber(); + virtual ~Bomber(); void readSettings(); - /** - * Default Destructor - */ - virtual ~Bomber(); - private slots: void closeGame(); void newGame(); diff -Nru bomber-15.12.3/src/bomberui.rc bomber-16.04.3/src/bomberui.rc --- bomber-15.12.3/src/bomberui.rc 2016-01-14 11:35:03.000000000 +0000 +++ bomber-16.04.3/src/bomberui.rc 2016-04-25 17:48:00.000000000 +0000 @@ -1,24 +1,23 @@ - - - - - - - - Main Toolbar - - - - - - - - - + + + + + + + Main Toolbar + + + + + + + + diff -Nru bomber-15.12.3/src/bomberwidget.cpp bomber-16.04.3/src/bomberwidget.cpp --- bomber-15.12.3/src/bomberwidget.cpp 2016-01-14 11:35:03.000000000 +0000 +++ bomber-16.04.3/src/bomberwidget.cpp 2016-04-25 17:48:00.000000000 +0000 @@ -37,7 +37,7 @@ static const unsigned int OVERLAY_Z_VALUE = 1000; BomberGameWidget::BomberGameWidget(KgThemeProvider *provider, QWidget *parent) : - QGraphicsView(parent), m_state(BeforeFirstGame), m_level(0), m_lives(0), m_time(0), + QGraphicsView(parent), m_state(State::BeforeFirstGame), m_level(0), m_lives(0), m_time(0), m_renderer(provider) { // Gameboard @@ -69,7 +69,6 @@ BomberGameWidget::~BomberGameWidget() { delete m_board; - //delete m_overlay; // m_overlay is implicitly deleted by m_board } unsigned int BomberGameWidget::level() const @@ -84,10 +83,10 @@ void BomberGameWidget::closeGame() { - if (m_state != BeforeFirstGame && m_state != GameOver) { + if (m_state != State::BeforeFirstGame && m_state != State::GameOver) { closeLevel(); - m_state = GameOver; + m_state = State::GameOver; emit stateChanged(m_state); emit gameOver(); @@ -113,35 +112,31 @@ void BomberGameWidget::setPaused(bool val) { - if (m_state == Paused && val == false) { + if (m_state == State::Paused && val == false) { m_clock->start(); m_board->setPaused(false); - m_state = Running; - emit stateChanged(m_state); - } else if (m_state == Running && val == true) { + m_state = State::Running; + } else if (m_state == State::Running && val == true) { m_clock->stop(); m_board->setPaused(true); - m_state = Paused; - emit stateChanged(m_state); + m_state = State::Paused; } - + emit stateChanged(m_state); redraw(); } void BomberGameWidget::setSuspended(bool val) { - if (m_state == Suspended && val == false) { + if (m_state == State::Suspended && val == false) { m_clock->start(); m_board->setPaused(false); - m_state = Running; - emit stateChanged(m_state); - } - if (m_state == Running && val == true) { + m_state = State::Running; + } else if (m_state == State::Running && val == true) { m_clock->stop(); m_board->setPaused(true); - m_state = Suspended; - emit stateChanged(m_state); + m_state = State::Suspended; } + emit stateChanged(m_state); redraw(); } @@ -157,7 +152,7 @@ void BomberGameWidget::onPlaneCrashed() { - m_lives--; + --m_lives; emit livesChanged(m_lives); if (m_lives <= 0) { closeGame(); @@ -169,24 +164,23 @@ void BomberGameWidget::onBombHit() { unsigned int bonus = SCORE_INCREMENT * m_level; - m_score += bonus; emit - scoreChanged(m_score); + m_score += bonus; + emit scoreChanged(m_score); m_scoreLeftBeforeNewLife -= bonus; if (m_scoreLeftBeforeNewLife <= 0) { m_scoreLeftBeforeNewLife = NEW_LIVE_AT_SCORE; - m_lives++; + ++m_lives; emit livesChanged(m_lives); } - } void BomberGameWidget::tick() { static signed int ticks = TICKS_PER_SECOND; - ticks--; + --ticks; if (ticks <= 0) { - m_time++; emit - timeChanged(m_time); + ++m_time; + emit timeChanged(m_time); ticks = TICKS_PER_SECOND; } } @@ -206,16 +200,15 @@ void BomberGameWidget::newLevel() { - m_state = Running; emit - stateChanged(m_state); + m_state = State::Running; + emit stateChanged(m_state); m_clock->start(); m_board->newLevel(m_level); m_board->setPaused(false); - emit - livesChanged(m_lives); emit - timeChanged(m_time); + emit livesChanged(m_lives); + emit timeChanged(m_time); redraw(); } @@ -229,11 +222,11 @@ void BomberGameWidget::onDropBomb() { - if (m_state == Running) { + if (m_state == State::Running) { m_board->dropBomb(); - } else if (m_state == BetweenLevels) { + } else if (m_state == State::BetweenLevels) { newLevel(); - } else if (m_state == BeforeFirstGame) { + } else if (m_state == State::BeforeFirstGame) { newGame(); } } @@ -245,14 +238,14 @@ } QGraphicsItem *item; switch (m_state) { - case BeforeFirstGame: + case State::BeforeFirstGame: foreach (item, m_board->items()) { item->hide(); } generateOverlay(); m_overlay->show(); break; - case Running: + case State::Running: foreach (item, m_board->items()) { item->show(); } @@ -286,17 +279,17 @@ QString text; switch (m_state) { - case BeforeFirstGame: + case State::BeforeFirstGame: text = i18nc("Message show to the user when the game is loaded", "Welcome to Bomber.\nClick to start a game"); break; - case Paused: + case State::Paused: text = i18nc("Message show to the user while the game is paused", "Paused"); break; - case BetweenLevels: + case State::BetweenLevels: text = i18nc("Message telling user which level they just completed", "You have successfully cleared level %1\n", m_level - 1) + i18nc("Message telling user which level they are about to start", "On to level %1.", m_level); break; - case GameOver: + case State::GameOver: text = i18nc("Used to tell the user that the game is over", "Game over."); break; default: @@ -308,8 +301,8 @@ p.setFont(font); unsigned int textWidth = p.boundingRect(p.viewport(), Qt::AlignCenter | Qt::AlignVCenter, text).width(); unsigned int fontSize = 28; - while ((textWidth > itemWidth * 0.95)) { - fontSize--; + while (textWidth > itemWidth * 0.95) { + --fontSize; font.setPointSize(fontSize); p.setFont(font); textWidth = p.boundingRect(p.viewport(), Qt::AlignCenter | Qt::AlignVCenter, text).width(); @@ -326,17 +319,14 @@ void BomberGameWidget::onLevelCleared() { - if (m_state == Running) { - m_state = BetweenLevels; + if (m_state == State::Running) { + m_state = State::BetweenLevels; closeLevel(); - m_level++; emit - levelChanged(m_level); - - emit - stateChanged(m_state); + ++m_level; + emit levelChanged(m_level); + emit stateChanged(m_state); redraw(); } - } BomberGameWidget::State BomberGameWidget::state() const diff -Nru bomber-15.12.3/src/bomberwidget.h bomber-16.04.3/src/bomberwidget.h --- bomber-15.12.3/src/bomberwidget.h 2016-01-14 11:35:03.000000000 +0000 +++ bomber-16.04.3/src/bomberwidget.h 2016-04-25 17:48:00.000000000 +0000 @@ -35,11 +35,13 @@ Q_OBJECT public: - /** The different states that the game can be in */ - enum State + /** + * The different states that the game can be in + */ + enum class State { BeforeFirstGame, Running, BetweenLevels, Paused, Suspended, GameOver}; - explicit BomberGameWidget(KgThemeProvider *provider, QWidget *parent = Q_NULLPTR); + explicit BomberGameWidget(KgThemeProvider *provider, QWidget *parent = nullptr); ~BomberGameWidget(); /** @@ -176,15 +178,16 @@ unsigned int m_score; unsigned int m_lives; unsigned int m_time; - /** Used to store the remaining score before a new life is given */ - unsigned int m_scoreLeftBeforeNewLife; + /** + * Used to store the remaining score before a new life is given + */ + int m_scoreLeftBeforeNewLife; KGameRenderer m_renderer; QTimer *m_clock; BomberBoard *m_board; QGraphicsPixmapItem *m_overlay; - }; #endif diff -Nru bomber-15.12.3/src/building.cpp bomber-16.04.3/src/building.cpp --- bomber-15.12.3/src/building.cpp 2016-01-14 11:35:03.000000000 +0000 +++ bomber-16.04.3/src/building.cpp 2016-04-25 17:48:00.000000000 +0000 @@ -32,17 +32,14 @@ * 1.0 means it's the same size as the tile. */ const qreal BUILDING_RELATIVE_HEIGHT = 1.0; -const unsigned int MAX_STYLE = 1; /** The vertical tile number of the bottom tile in the building */ const unsigned int Building::BUILD_BASE_LOCATION = 16; Building::Building(KGameRenderer *renderer, BomberBoard *board, unsigned int position, unsigned int height) : - m_renderer(renderer), m_board(board) + m_height(0), m_renderer(renderer), m_board(board), m_xPos(position) { - m_height = 0; - m_xPos = position; setHeight(height); setupBuildingTiles(); } @@ -59,7 +56,7 @@ { if (height < m_height) { // Building getting smaller so remove the top - for (unsigned int i = 1; i <= m_height - height; i++) { + for (unsigned int i = 1; i <= m_height - height; ++i) { m_buildingTiles.at(m_height - i)->hide(); m_board->removeItem(m_buildingTiles.at(m_height - i)); delete m_buildingTiles.at(m_height - i); @@ -86,7 +83,7 @@ unsigned int style = KRandom::random() % styleCount; unsigned int maxVarient = m_renderer->frameCount(QString::fromLatin1("building_%1").arg(style)); - for (unsigned int heightIndex = 0; heightIndex < m_height - 1; heightIndex++) { + for (unsigned int heightIndex = 0; heightIndex < m_height - 1; ++heightIndex) { unsigned int varient = KRandom::random() % (maxVarient); const QString pixmap = QString::fromLatin1("building_%1_%2").arg(style).arg(varient); m_buildingTiles.append(createBuildingTile(pixmap)); @@ -118,7 +115,7 @@ { QSize tileSize(static_cast(BUILDING_RELATIVE_WIDTH * size.width()), static_cast(BUILDING_RELATIVE_HEIGHT * size.height())); - for (int i = 0; i < m_buildingTiles.size(); i++) { + for (int i = 0; i < m_buildingTiles.size(); ++i) { KGameRenderedItem *tile = m_buildingTiles.at(i); tile->setRenderSize(tileSize); tile->setPos(m_board->mapPosition(QPointF(m_xPos, BUILD_BASE_LOCATION - i))); diff -Nru bomber-15.12.3/src/building.h bomber-16.04.3/src/building.h --- bomber-15.12.3/src/building.h 2016-01-14 11:35:03.000000000 +0000 +++ bomber-16.04.3/src/building.h 2016-04-25 17:48:00.000000000 +0000 @@ -19,9 +19,9 @@ #ifndef BUILDING_H #define BUILDING_H -#include -#include -#include +#include +#include +#include class KGameRenderedItem; class KGameRenderer; @@ -61,7 +61,9 @@ */ void setFrame(unsigned int frame); - /** Show the building item on the game scene */ + /** + * Show the building item on the game scene + */ void show(); /** diff -Nru bomber-15.12.3/src/CMakeLists.txt bomber-16.04.3/src/CMakeLists.txt --- bomber-15.12.3/src/CMakeLists.txt 2016-01-14 11:35:03.000000000 +0000 +++ bomber-16.04.3/src/CMakeLists.txt 2016-04-25 17:48:00.000000000 +0000 @@ -11,19 +11,26 @@ explodable.cpp ) -kconfig_add_kcfg_files(bomber_SRCS settings.kcfgc ) -file(GLOB ICONS_SRCS "${CMAKE_CURRENT_SOURCE_DIR}/../pictures/*-apps-bomber.png") +kconfig_add_kcfg_files(bomber_SRCS settings.kcfgc) +file(GLOB ICONS_SRCS "${CMAKE_CURRENT_SOURCE_DIR}/../icons/*-apps-bomber.png") ecm_add_app_icon(bomber_SRCS ICONS ${ICONS_SRCS}) add_executable(bomber ${bomber_SRCS}) -target_link_libraries(bomber KF5KDEGames Phonon::phonon4qt5 KF5::XmlGui KF5::I18n KF5::DBusAddons) +target_link_libraries(bomber + KF5KDEGames + Phonon::phonon4qt5 + KF5::XmlGui + KF5::I18n + KF5::DBusAddons + KF5::Crash +) -install(TARGETS bomber ${KDE_INSTALL_TARGETS_DEFAULT_ARGS} ) +install(TARGETS bomber ${KDE_INSTALL_TARGETS_DEFAULT_ARGS}) ########### install files ############### -install( PROGRAMS org.kde.bomber.desktop DESTINATION ${KDE_INSTALL_APPDIR} ) -install( FILES org.kde.bomber.appdata.xml DESTINATION ${CMAKE_INSTALL_METAINFODIR} ) -install( FILES bomber.kcfg DESTINATION ${KDE_INSTALL_KCFGDIR} ) -install( FILES bomberui.rc DESTINATION ${KDE_INSTALL_KXMLGUI5DIR}/bomber ) +install(PROGRAMS org.kde.bomber.desktop DESTINATION ${KDE_INSTALL_APPDIR}) +install(FILES org.kde.bomber.appdata.xml DESTINATION ${CMAKE_INSTALL_METAINFODIR}) +install(FILES bomber.kcfg DESTINATION ${KDE_INSTALL_KCFGDIR}) +install(FILES bomberui.rc DESTINATION ${KDE_INSTALL_KXMLGUI5DIR}/bomber) diff -Nru bomber-15.12.3/src/explodable.cpp bomber-16.04.3/src/explodable.cpp --- bomber-15.12.3/src/explodable.cpp 2016-01-14 11:35:03.000000000 +0000 +++ bomber-16.04.3/src/explodable.cpp 2016-04-25 17:48:00.000000000 +0000 @@ -43,7 +43,7 @@ m_relativeWidth = relativeWidth; m_relativeHeight = relativeHeight; resetPixmaps(); - m_state = Moving; + m_state = State::Moving; m_nextBoundingRect.setSize(QSizeF(m_relativeWidth, m_relativeHeight)); setPos(m_board->mapPosition(QPointF(m_xPos, m_yPos))); } @@ -67,7 +67,7 @@ void Explodable::resize(const QSize &tileSize) { m_lastSize = tileSize; - if (m_state == Moving) { + if (m_state == State::Moving) { setRenderSize(QSize( m_relativeWidth * tileSize.width(), m_relativeHeight * tileSize.height() @@ -104,7 +104,7 @@ { m_state = state; setRandomFrame(); - if (m_state == Moving) { + if (m_state == State::Moving) { m_nextBoundingRect.setSize(QSizeF(m_relativeWidth, m_relativeHeight)); setSpriteKey(m_mainSvg); } else { diff -Nru bomber-15.12.3/src/explodable.h bomber-16.04.3/src/explodable.h --- bomber-15.12.3/src/explodable.h 2016-01-14 11:35:03.000000000 +0000 +++ bomber-16.04.3/src/explodable.h 2016-04-25 17:48:00.000000000 +0000 @@ -30,7 +30,7 @@ { public: /** The states that a bomb can be in */ - enum State { + enum class State { Moving, Exploding, Exploded }; diff -Nru bomber-15.12.3/src/main.cpp bomber-16.04.3/src/main.cpp --- bomber-15.12.3/src/main.cpp 2016-01-14 11:35:03.000000000 +0000 +++ bomber-16.04.3/src/main.cpp 2016-04-25 17:48:00.000000000 +0000 @@ -18,6 +18,7 @@ #include "bomber.h" #include +#include #include #include @@ -27,7 +28,7 @@ static const char description[] = I18N_NOOP("Arcade bombing game"); -static const char version[] = "0.2"; +static const char version[] = "0.3"; int main(int argc, char **argv) { @@ -48,6 +49,7 @@ QLatin1Literal("maemre2@gmail.com")); QCommandLineParser parser; KAboutData::setApplicationData(about); + KCrash::initialize(); parser.addVersionOption(); parser.addHelpOption(); about.setupCommandLine(&parser); diff -Nru bomber-15.12.3/src/org.kde.bomber.appdata.xml bomber-16.04.3/src/org.kde.bomber.appdata.xml --- bomber-15.12.3/src/org.kde.bomber.appdata.xml 2016-01-14 11:35:03.000000000 +0000 +++ bomber-16.04.3/src/org.kde.bomber.appdata.xml 2016-04-25 17:48:00.000000000 +0000 @@ -13,7 +13,6 @@ Bomber Bomber Bomber - Bomber Bomber Bomber Bomber @@ -50,7 +49,6 @@

Bomber ist ein Arcade-Spiel für einen Spieler, bei dem unterschiedliche und in der Höhe steigende Städte mit einem Flugzeug angegriffen werden.

Bomber is a single player arcade game. The player is invading various cities in a plane that is decreasing in height.

Bomber es un juego recreativo para un único jugador. El jugador está invadiendo diversas ciudades en un avión que cada vez vuela más bajo.

-

Bomber on üksikmängija arkaadmäng. Mängija peab ründama erinevaid linnu lennukil, mis laskub aina madalamale.

Bomber on yhden pelaajan pelihallipeli, jossa pelaaja hyökkää kaupunkeihin lentokoneella, jonka korkeus vähenee vähitellen.

Bomber est un jeu d'arcade pour un seul joueur. Le joueur doit envahir des villes depuis un avion dont l'altitude décroît.

Bomber é un xogo arcade para un único xogador, que montado nun avión invadirá varias cidades mentres o aparello vai reducindo a súa altitude.

@@ -86,7 +84,6 @@

Das Spielziel ist die Zerstörung aller Gebäude und der damit verbundene Aufstieg in die nächste Ebene. Die Ebenen werden durch die zunehmende Geschwindigkeit der Flugzeuge und Höhe der Gebäude immer schwieriger.

The goal of the game is to destroy all the buildings and advance to the next level. Each level gets a bit harder by increasing the speed of the plane and the height of the buildings.

El objetivo del juego consiste en destruir todos los edificios para avanzar hasta el siguiente nivel. Cada nivel se va haciendo más difícil al aumentarse la velocidad del avión y la altura de los edificios.

-

Mängu eesmärk on hävitada kõik ehitised ja jõuda järgmisele tasemele. Iga tase muutub aina raskemaks: suureneb lennuki kiirus ning kasvab ehitiste kõrgus.

Pelin tavoitteena on tuhota kaikki rakennukset ja edetä seuraavalle tasolle. Kukin taso on edellistä vaikeampi; lentokone on nopeampi ja rakennukset ovat korkeampia.

Le but du jeu est de détruire tous les bâtiments pour atteindre le niveau suivant. Chaque niveau devient plus difficile en augmentant la vitesse de l'avion et la hauteur des bâtiments.

O obxectivo do xogo consiste en destruír os edificios e avanzar ao seguinte nivel. Cada novo nivel resultará máis difícil, pois aumentará a velocidade do avión, así como a altura dos edificios.

@@ -129,7 +126,6 @@ Die KDE-Gemeinschaft The KDE Community La comunidad KDE - KDE kogukond KDE-yhteisö La communauté KDE A comunidade de KDE diff -Nru bomber-15.12.3/src/org.kde.bomber.desktop bomber-16.04.3/src/org.kde.bomber.desktop --- bomber-15.12.3/src/org.kde.bomber.desktop 2016-01-14 11:35:03.000000000 +0000 +++ bomber-16.04.3/src/org.kde.bomber.desktop 2016-04-25 17:48:00.000000000 +0000 @@ -1,4 +1,13 @@ [Desktop Entry] +Type=Application +Exec=bomber -qwindowtitle %c +Icon=bomber +Terminal=false +StartupNotify=true +X-DBUS-StartupType=Multi +X-DBUS-ServiceName=org.kde.bomber +X-DocPath=bomber/index.html +Categories=Qt;KDE;Game;ArcadeGame; Name=Bomber Name[ast]=Bomber Name[bs]=Bombarder @@ -53,10 +62,6 @@ Name[x-test]=xxBomberxx Name[zh_CN]=投弹者 Name[zh_TW]=戰鬥機 -Exec=bomber -qwindowtitle %c -Icon=bomber -Type=Application -Terminal=false GenericName=Arcade Bombing Game GenericName[ast]=Xuegu de bombardéu Arcade GenericName[bs]=Bombaški napad arkada igra @@ -108,7 +113,3 @@ GenericName[x-test]=xxArcade Bombing Gamexx GenericName[zh_CN]=街机上的投弹游戏 GenericName[zh_TW]=大型遊戲機的戰鬥機遊戲 -Categories=Qt;KDE;Game;ArcadeGame; -X-DocPath=bomber/index.html -X-DBUS-StartupType=Multi -X-DBUS-ServiceName=org.kde.bomber diff -Nru bomber-15.12.3/src/plane.cpp bomber-16.04.3/src/plane.cpp --- bomber-15.12.3/src/plane.cpp 2016-01-14 11:35:03.000000000 +0000 +++ bomber-16.04.3/src/plane.cpp 2016-04-25 17:48:00.000000000 +0000 @@ -49,11 +49,11 @@ void Plane::advanceItem() { - if (state() == Moving) { + if (state() == State::Moving) { m_xPos += velocity(); if (m_xPos > PLANE_MAX_POSITION_X) { m_xPos = 0; - m_yPos++; + ++m_yPos; } } m_nextBoundingRect.moveTo(m_xPos + velocity(), m_yPos); diff -Nru bomber-15.12.3/themes/CMakeLists.txt bomber-16.04.3/themes/CMakeLists.txt --- bomber-15.12.3/themes/CMakeLists.txt 2016-01-14 11:35:03.000000000 +0000 +++ bomber-16.04.3/themes/CMakeLists.txt 2016-04-25 17:48:00.000000000 +0000 @@ -1,3 +1,4 @@ install( FILES kbomber.desktop kbomber.png kbomber.svgz DESTINATION ${KDE_INSTALL_DATADIR}/bomber/themes ) install( FILES Lava-Island.desktop lava-Island.png Lava-Island.svgz DESTINATION ${KDE_INSTALL_DATADIR}/bomber/themes ) +