| 794 | } |
| 795 | |
| 796 | void PlayerObject::setGamemode(PlayerGamemode mode) |
| 797 | { |
| 798 | if (_currentGamemode != mode) |
| 799 | { |
| 800 | _ufoSprite->setVisible(false); |
| 801 | m_pShipSprite->setVisible(false); |
| 802 | m_pMainSprite->setVisible(false); |
| 803 | _ballSprite->setVisible(false); |
| 804 | stopActionByTag(3); |
| 805 | stopActionByTag(2); |
| 806 | stopActionByTag(1); |
| 807 | stopActionByTag(0); |
| 808 | dragEffect1->pauseEmissions(); |
| 809 | dragEffect2->pauseEmissions(); |
| 810 | dragEffect3->pauseEmissions(); |
| 811 | switch (mode) |
| 812 | { |
| 813 | case PlayerGamemodeCube: |
| 814 | setIsOnGround(false); |
| 815 | m_pMainSprite->setVisible(true); |
| 816 | m_pMainSprite->setScale(1.f); |
| 817 | m_pMainSprite->setPositionY(0); |
| 818 | deactivateStreak(); |
| 819 | break; |
| 820 | case PlayerGamemodeShip: |
| 821 | m_pShipSprite->setVisible(true); |
| 822 | m_pMainSprite->setVisible(true); |
| 823 | m_pMainSprite->setScale(0.55f); |
| 824 | m_pMainSprite->setPositionY(5); |
| 825 | setRotation(0.f); |
| 826 | m_dYVel /= 2.f; |
| 827 | setIsOnGround(false); |
| 828 | activateStreak(); |
| 829 | runRotateAction(); |
| 830 | break; |
| 831 | case PlayerGamemodeBall: |
| 832 | _ballSprite->setVisible(true); |
| 833 | deactivateStreak(); |
| 834 | runBallRotation(); |
| 835 | break; |
| 836 | case PlayerGamemodeUFO: |
| 837 | m_pMainSprite->setVisible(true); |
| 838 | m_pMainSprite->setScale(0.55f); |
| 839 | m_pMainSprite->setPositionY(5); |
| 840 | _ufoSprite->setVisible(true); |
| 841 | deactivateStreak(); |
| 842 | break; |
| 843 | default: |
| 844 | break; |
| 845 | } |
| 846 | |
| 847 | _currentGamemode = mode; |
| 848 | } |
| 849 | } |
| 850 | |
| 851 | void PlayerObject::checkSnapJumpToObject(GameObject* obj) |
| 852 | { |
no test coverage detected