[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    KDE/kdegames/kgoldrunner/src
From:       Ian Wadham <ianw2 () optusnet ! com ! au>
Date:       2009-05-31 13:03:12
Message-ID: 1243774992.610761.5959.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 975847 by ianw:

Fix re-draw of sprite at top L corner after resizing. Fix starting frame of sprites \
so that, if they fall, they stay on the same falling-frame. Re-connect the Edit Level \
Name and Hint button in the Save Edits dialog. When selecting a game and level, \
default to the last level number played in the game currently selected.

 M  +3 -2      kgrcanvas.cpp  
 M  +1 -0      kgreditor.cpp  
 M  +2 -0      kgreditor.h  
 M  +16 -8     kgrselector.cpp  
 M  +3 -0      kgrselector.h  
 M  +2 -4      kgrsprite.cpp  


--- trunk/KDE/kdegames/kgoldrunner/src/kgrcanvas.cpp #975846:975847
@@ -242,7 +242,8 @@
                 }
 
                 // Force re-draw of both pixmap and position.
-                sprite->move (0, 0, (spriteframe > 0) ? (spriteframe - 1) : 1);
+                sprite->move ((spriteloc.x() > 0) ? 0 : 1, 0,
+                              (spriteframe > 0) ? (spriteframe - 1) : 1);
                 sprite->move (spriteloc.x(), spriteloc.y(), spriteframe);
             }
         }
@@ -544,7 +545,7 @@
         emptySprites = 0;
     }
 
-    int frame1   = FALL1;
+    int frame1   = animationStartFrames [FALL_L];
     double scale = (double) imgW / (double) bgw;
 
     switch (type) {
--- trunk/KDE/kdegames/kgoldrunner/src/kgreditor.cpp #975846:975847
@@ -623,6 +623,7 @@
     KGrSLDialog * sl = new KGrSLDialog (action, requestedLevel, requestedGame,
                                         gameList, systemDataDir, userDataDir,
                                         view);
+    connect (sl, SIGNAL (editNameAndHint()), this, SLOT (editNameAndHint()));
     bool selected = sl->selectLevel (selectedGame, selectedLevel);
     delete sl;
 
--- trunk/KDE/kdegames/kgoldrunner/src/kgreditor.h #975846:975847
@@ -149,11 +149,13 @@
      */
     bool editGame (int pGameIndex);
 
+public slots:
     /**
      * Run a dialog in which the name and hint of a level can be edited.
      */
     void editNameAndHint();
 
+public:
     /**
      * Set the next object for the editor to paint, e.g. brick, enemy, ladder.
      *
--- trunk/KDE/kdegames/kgoldrunner/src/kgrselector.cpp #975846:975847
@@ -15,6 +15,8 @@
 #include "kgrgameio.h"
 
 #include <KGlobalSettings>
+#include <KConfigGroup>
+
 #include <QTextStream>
 #include <QGridLayout>
 #include <QLabel>
@@ -170,7 +172,7 @@
     QGridLayout * grid = new QGridLayout;
     mainLayout->addLayout (grid);
 
-    number    = new QScrollBar (Qt::Vertical, dad); // IDW
+    number    = new QScrollBar (Qt::Vertical, dad);
     number->setRange (1, 150);
     number->setSingleStep (1);
     number->setPageStep (10);
@@ -288,9 +290,9 @@
     // Only enable name and hint dialog here if saving a new or edited level.
     // At other times the name and hint have not been loaded or initialised yet.
     if ((slAction == SL_CREATE) || (slAction == SL_SAVE)) {
-        // TODO - Have to re-implement connection to editNameAndHint().
-        // connect (levelNH,     SIGNAL (clicked()),
-                 // gameControl, SLOT   (editNameAndHint()));
+        // Signal editNameAndHint() relays the click to a KGrEditor connection.
+        connect (levelNH, SIGNAL (clicked()),
+                 this,    SIGNAL (editNameAndHint()));
     }
     else {
         levelNH->setEnabled (false);
@@ -395,6 +397,9 @@
         display->setMaximum (1);
     }
 
+    KConfigGroup gameGroup (KGlobal::config(), "KDEGame");
+    int lev = 1;
+
     // Set a default level number for the selected game.
     switch (slAction) {
     case SL_ANY:
@@ -404,11 +409,14 @@
     case SL_DELETE:
     case SL_UPD_GAME:
         // If selecting the current game, use the current level number.
-        if (n == N)
+        if (n == N) {
             number->setValue (defaultLevel);
-        else
-            // TODO - Use the last level played in that game (from KConfig).
-            number->setValue (1);			// Else use level 1.
+        }
+        // Else use the last level played in the selected game (from KConfig).
+        else {
+            lev = gameGroup.readEntry ("Level_" + myGameList.at (n)->prefix, 1);
+            number->setValue (lev);			// Else use level 1.
+        }
         break;
     case SL_CREATE:
     case SL_SAVE:
--- trunk/KDE/kdegames/kgoldrunner/src/kgrselector.h #975846:975847
@@ -55,6 +55,9 @@
 
     bool selectLevel (int & selectedGame, int & selectedLevel);
 
+signals:
+    void editNameAndHint();
+
 private slots:
     void slSetGames (int cIndex);
     void slGame();
--- trunk/KDE/kdegames/kgoldrunner/src/kgrsprite.cpp #975846:975847
@@ -23,8 +23,9 @@
     :
     KGameCanvasPixmap (canvas),
 
+    m_frame           (-1),	// Make move() change pixmap if first frame = 0.
     m_frameOffset     (0),	// No offset at first (e.g. carrying no gold).
-    m_loc             (-1, -1),
+    m_loc             (-1, -1),	// Make move() change pos if first pos = (0,0).
     m_type            (type),
     m_tickTime        (tickTime),
     m_stationary      (true),	// Animation is OFF at first.
@@ -37,9 +38,6 @@
     m_dy              (0),
     m_dt              (0)
 {
-    // TODO - Can we use m_frame (-1), m_frameOffset (0), m_loc (-1, -1), above?
-    m_frame   = -1;		// Makes move() work OK if first frame is 0.
-    m_loc.setX (-1);		// Makes move() work OK if first (x,y) is (0,0).
 }
 
 KGrSprite::~KGrSprite()


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic