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

List:       kde-commits
Subject:    playground/games/granatier/src
From:       Mathias Kraus <k.hias () gmx ! de>
Date:       2009-10-10 18:05:42
Message-ID: 1255197942.751097.13811.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 1033666 by mkraus:

fix bug from bonus_bad_mirror

 M  +49 -40    player.cpp  
 M  +3 -0      player.h  


--- trunk/playground/games/granatier/src/player.cpp #1033665:1033666
@@ -38,7 +38,7 @@
     
     m_badBonusCountdownTimer = new QTimer;
     m_badBonusCountdownTimer->setSingleShot(true);
-    m_badBonusCountdownTimer->setInterval(15000);
+    m_badBonusCountdownTimer->setInterval(10000);
     connect(m_badBonusCountdownTimer, SIGNAL(timeout()), this, SLOT(slot_removeBadBonus()));
     
     resurrect();
@@ -382,14 +382,32 @@
             m_badBonusCountdownTimer->start();
             break;
         case Bonus::MIRROR:
-            if(m_badBonusCountdownTimer->isActive())
             {
-                m_badBonusCountdownTimer->stop();
-                slot_removeBadBonus();
+                if(m_badBonusCountdownTimer->isActive())
+                {
+                    m_badBonusCountdownTimer->stop();
+                    slot_removeBadBonus();
+                }
+                
+                int askedXSpeedTemp = m_askedXSpeed;
+                int askedYSpeedTemp = m_askedYSpeed;
+                m_askedXSpeed = -m_xSpeed;
+                m_askedYSpeed = -m_ySpeed;
+                updateDirection();
+                m_askedXSpeed = -askedXSpeedTemp;
+                m_askedYSpeed = -askedYSpeedTemp;
+                
+                QKeySequence tempKey = m_key.moveLeft;
+                m_key.moveLeft = m_key.moveRight;
+                m_key.moveRight = tempKey;
+                tempKey = m_key.moveUp;
+                m_key.moveUp = m_key.moveDown;
+                m_key.moveDown = tempKey;
+                
+                m_moveMirrored = true;
+                m_badBonusType = Bonus::MIRROR;
+                m_badBonusCountdownTimer->start();
             }
-            
-            m_badBonusType = Bonus::MIRROR;
-            m_badBonusCountdownTimer->start();
             break;
         case Bonus::SCATTY:
             if(m_badBonusCountdownTimer->isActive())
@@ -430,6 +448,8 @@
     m_death = false;
     m_maxSpeed = 10;
     m_speed = 2;
+    m_normalSpeed = 2;
+    m_moveMirrored = false;
     m_bombPower = 1;
     m_maxBombArmory = 1;
     m_bombArmory = m_maxBombArmory;
@@ -520,7 +540,24 @@
             m_speed = m_normalSpeed;
             break;
         case Bonus::MIRROR:
-            //nothing to do
+            {
+                int askedXSpeedTemp = m_askedXSpeed;
+                int askedYSpeedTemp = m_askedYSpeed;
+                m_askedXSpeed = -m_xSpeed;
+                m_askedYSpeed = -m_ySpeed;
+                updateDirection();
+                m_askedXSpeed = -askedXSpeedTemp;
+                m_askedYSpeed = -askedYSpeedTemp;
+                
+                QKeySequence tempKey = m_key.moveLeft;
+                m_key.moveLeft = m_key.moveRight;
+                m_key.moveRight = tempKey;
+                tempKey = m_key.moveUp;
+                m_key.moveUp = m_key.moveDown;
+                m_key.moveDown = tempKey;
+                
+                m_moveMirrored = false;
+            }
             break;
     }
 }
@@ -558,50 +595,22 @@
 
     if(key == m_key.moveLeft)
     {
-        if(m_badBonusCountdownTimer->isActive() && m_badBonusType == Bonus::MIRROR)
-        {
-            goRight();
-        }
-        else
-        {
-            goLeft();
-        }
+        goLeft();
         updateDirection();
     }
     else if(key == m_key.moveRight)
     {
-        if(m_badBonusCountdownTimer->isActive() && m_badBonusType == Bonus::MIRROR)
-        {
-            goLeft();
-        }
-        else
-        {
-           goRight();
-        }
+        goRight();
         updateDirection();
     }
     else if(key == m_key.moveUp)
     {
-        if(m_badBonusCountdownTimer->isActive() && m_badBonusType == Bonus::MIRROR)
-        {
-            goDown();
-        }
-        else
-        {
-           goUp();
-        }
+        goUp();
         updateDirection();
     }
     else if(key == m_key.moveDown)
     {
-        if(m_badBonusCountdownTimer->isActive() && m_badBonusType == Bonus::MIRROR)
-        {
-            goUp();
-        }
-        else
-        {
-           goDown();
-        }
+        goDown();
         updateDirection();
     }
     else if(key == m_key.dropBomb && m_bombArmory > 0)
--- trunk/playground/games/granatier/src/player.h #1033665:1033666
@@ -63,6 +63,9 @@
     /** the speed before a bad bonus was taken */
     qreal m_normalSpeed;
     
+    /** the speed before a bad bonus was taken */
+    bool m_moveMirrored;
+    
     /** timer for the bad bonus to disapear */
     QTimer* m_badBonusCountdownTimer;
     
[prev in list] [next in list] [prev in thread] [next in thread] 

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