From kde-commits Sat Oct 10 21:25:03 2009 From: Mathias Kraus Date: Sat, 10 Oct 2009 21:25:03 +0000 To: kde-commits Subject: playground/games/granatier/src Message-Id: <1255209903.386168.22781.nullmailer () svn ! kde ! org> X-MARC-Message: https://marc.info/?l=kde-commits&m=125520991210913 SVN commit 1033718 by mkraus: improve bonus_bad_slow and bonus_bad_hyperactive M +46 -17 player.cpp --- trunk/playground/games/granatier/src/player.cpp #1033717:1033718 @@ -358,28 +358,48 @@ } break; case Bonus::HYPERACTIVE: - 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_normalSpeed = m_speed; + m_speed = m_maxSpeed * 3; + m_askedXSpeed = sign(m_xSpeed) * m_speed; + m_askedYSpeed = sign(m_ySpeed) * m_speed; + updateDirection(); + m_askedXSpeed = askedXSpeedTemp; + m_askedYSpeed = askedYSpeedTemp; + + m_badBonusType = Bonus::HYPERACTIVE; + m_badBonusCountdownTimer->start(); } - - m_normalSpeed = m_speed; - m_speed = m_maxSpeed * 3; - m_badBonusType = Bonus::HYPERACTIVE; - m_badBonusCountdownTimer->start(); break; case Bonus::SLOW: - 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_normalSpeed = m_speed; + m_speed = 1; + m_askedXSpeed = sign(m_xSpeed) * m_speed; + m_askedYSpeed = sign(m_ySpeed) * m_speed; + updateDirection(); + m_askedXSpeed = askedXSpeedTemp; + m_askedYSpeed = askedYSpeedTemp; + + m_badBonusType = Bonus::SLOW; + m_badBonusCountdownTimer->start(); } - - m_normalSpeed = m_speed; - m_speed = 1; - m_badBonusType = Bonus::SLOW; - m_badBonusCountdownTimer->start(); break; case Bonus::MIRROR: { @@ -537,7 +557,16 @@ { case Bonus::HYPERACTIVE: case Bonus::SLOW: - m_speed = m_normalSpeed; + { + int askedXSpeedTemp = m_askedXSpeed; + int askedYSpeedTemp = m_askedYSpeed; + m_speed = m_normalSpeed; + m_askedXSpeed = sign(m_xSpeed) * m_speed; + m_askedYSpeed = sign(m_ySpeed) * m_speed; + updateDirection(); + m_askedXSpeed = askedXSpeedTemp; + m_askedYSpeed = askedYSpeedTemp; + } break; case Bonus::MIRROR: {