Example #1
0
File: Game.cpp Project: Greek6/Pong
const int Game::start(void) {
	m_window.EnableVerticalSync(true);

	// Score initialize  
	if (!m_font.LoadFromFile("data/fonts/arial.ttf")) return EXIT_FAILURE;
	m_score.SetFont(m_font);
	m_score.SetString("0 : 0");
	m_score.SetPosition(m_window.GetWidth()/2-(m_score.GetLocalBounds().Width/2),20);

	// Create all Objects
	m_player1.reset(new Player(m_window.GetWidth(), m_window.GetHeight(),1));
	m_player2.reset(new Player(m_window.GetWidth(), m_window.GetHeight(),2));
	m_ball.reset(new Ball(m_window.GetWidth(), m_window.GetHeight(), *m_soundmanager));


	m_clock.Restart();
	while (m_window.IsOpen())
	{

		if(!m_pause)
		{
			m_window.Clear();

			update();

			draw();

			m_window.Display();
		}

		while (m_window.PollEvent(m_event)) {

			if (m_event.Type == sf::Event::LostFocus)
			{
				setPause(true);
			}
			else if(m_event.Type == sf::Event::GainedFocus)
			{
				setPause(false);
			}
			else if (m_event.Type == sf::Event::Closed)
			{
				m_window.Close();
			}

		}
	}

	return 0;

}
Example #2
0
void OgreApp::activatePerformLeftMove()
{
    player->addAction(ACTION_SWIPE_LEFT);
    switch (gameState)
    {
        case STATE_PLAY:
        {
            if (pause)
            {
                setPause(false);
            }
            else
            {
                if (player->setVineDirRequest(Util::rightOf(player->getVineDest())) && !tunnel->isDone())
                {
                    float val = player->getDesireRoll();
                    player->setDesireRoll(val + 45);
                }
                globals.moveLeft = true;
            }
            break;
        }
        case STATE_PROMPT:
        {
            gameState = STATE_PLAY;
            levelMgr->repeatPreviousPhase();
            setLevel();
            break;
        }
    }
}
Example #3
0
void OgreApp::activatePerformRightMove()
{
    player->addAction(ACTION_SWIPE_RIGHT);
    switch (gameState)
    {
        case STATE_PLAY:
        {
            if (pause)
            {
                setPause(false);
            }
            else
            {
                if (player->setVineDirRequest(Util::leftOf(player->getVineDest())) && !tunnel->isDone())
                {
                    float val = player->getDesireRoll();
                    player->setDesireRoll(val - 45);
                }
                globals.moveRight = true;
            }
            break;
        }
        case STATE_PROMPT:
        {
            gameState = STATE_PLAY;
            setLevel(FAIL);
            break;
        }
    }
}
Example #4
0
void MD_Parola::begin(uint8_t numZones)
{
	_D.begin();
	// Set up the MAX72XX library
	// The MAX72XX is in power-saving mode on startup,
	// we have to do a wakeup call, set the brightness, enable updates and clear the display
	_D.control(MD_MAX72XX::INTENSITY, MAX_INTENSITY/2);
	_D.control(MD_MAX72XX::SHUTDOWN, MD_MAX72XX::OFF);
	_D.control(MD_MAX72XX::UPDATE, MD_MAX72XX::ON);
	
	// Create the zone objects
	_numZones = numZones;
	_Z = new MD_PZone[_numZones];
	if (_numZones == 1)
		setZone(0, 0, _numModules-1);

	for (uint8_t i=0; i<_numZones; i++)
		_Z[i].begin(&_D);
		
	// initialise options for all zones
	setSpeed(10);
	setPause(10*getSpeed());
	setCharSpacing(1);
	setTextAlignment(LEFT);
	setTextEffect(PRINT, NO_EFFECT);
	setTextBuffer(NULL);
	setInvert(false);
	displaySuspend(false);
	displayClear();

	// Now set the default viewing parameters for this library
	_D.setFont(NULL);
}
Example #5
0
void MD_Parola::begin(uint8_t numZones)
{
	_D.begin();
	
	// Create the zone objects
	_numZones = numZones;
	_Z = new MD_PZone[_numZones];
	if (_numZones == 1)
		setZone(0, 0, _numModules-1);

	for (uint8_t i=0; i<_numZones; i++)
		_Z[i].begin(&_D);
		
	// initialise options for all zones
	setSpeed(10);
	setPause(10*getSpeed());
	setCharSpacing(1);
	setTextAlignment(LEFT);
	setTextEffect(PRINT, NO_EFFECT);
	setTextBuffer(NULL);
	setInvert(false);
	displaySuspend(false);
	displayClear();

	// Now set the default viewing parameters for this library
	_D.setFont(NULL);
}
FrameManager::FrameManager(boost::shared_ptr<tf::TransformListener> tf)
{
  if (!tf) tf_.reset(new tf::TransformListener(ros::NodeHandle(), ros::Duration(10*60), true));
  else tf_ = tf;

  setSyncMode( SyncOff );
  setPause(false);
}
Example #7
0
void Mouth::activate() {
	if (_state != kStateDeactivated)
		return;

	_state = kStateActivated;

	setPause(false);
}
Example #8
0
User::User(QObject *parent, DatabaseManager* dbmanager) : QObject(parent) {
    mydbmanager = dbmanager;

    getUser();
    qDebug() << "calories in 60min gym workout: " << calculateBurntCalories(110);

    qDebug() << "user created";

    setPause(2);
}
Example #9
0
bool CimAcqImec::pause( bool pause, bool changed )
{
    if( pause ) {

        setPause( true );

        while( !isPauseAck() )
            usleep( 0.01 * 1e6 );

        return _pauseAcq();
    }
    else if( _resumeAcq( changed ) ) {

        setPause( false );
        setPauseAck( false );
    }

    return true;
}
Example #10
0
void MD_Parola::displayZoneText(uint8_t z, char *pText, textPosition_t align, uint16_t speed, uint16_t pause, textEffect_t effectIn, textEffect_t effectOut)
{
	setTextBuffer(z, pText);
	setTextAlignment(z, align);
	setSpeed(z, speed);
	setPause(z, pause);
	setTextEffect(z, effectIn, effectOut);

	displayReset(z);
}
Example #11
0
void CTetrisTimer::code() {
  setPause();
  laskuri = 1;
  while(m_intIsRunning) {
    Sleep(1000);
    //EnterCriticalSection(&sync);
    tick();
    //LeaveCriticalSection(&sync);
  }
}
Example #12
0
	//------------------------------------------------------------------------
	Timer::Timer(Clock& clock): _clock(clock){
		
		// unpause the timer and set default scaling
		setPause(false);
		setScale (1.0f);
		setFixFrameRate(false);
		
		// set default values
		_currentTime = 0;
		_frameTime = 0;
			
	}
Example #13
0
void BcmPort::program(const shared_ptr<Port>& port) {
  setIngressVlan(port);
  setSpeed(port);
  setPause(port);
  // Update FEC settings if needed. Note this is not only
  // on speed change as the port's default speed (say on a
  // cold boot) maybe what is desired by the config. But we
  // may still need to enable FEC
  setFEC(port);
  // Update Tx Setting if needed.
  setTxSetting(port);
  setSflowRates(port);
}
Example #14
0
bool		GameEngine::update()
{
  if (_deathTheme.getStatus() == sf::SoundSource::Playing and
       _menu.getGen() == mode::gen::MENU)
    {
      _deathTheme.stop();
      _menuTheme.play();
      _menuTheme.setLoop(true);
    }
  _isInit = true;
  _context.updateInputs(_input);
  _context.updateClock(_clock);
  if ((_input.getKey(SDLK_ESCAPE) and played == false) or
      _input.getInput(SDL_QUIT) or
      _menu.getMode() == mode::menu::QUIT or
      (_menu.getGen() == mode::gen::GAME_OVER and
       _menu.getMode() == mode::game_over::QUIT))
    return (false);
  if (_menu.getGen() == mode::gen::MENU and played == false)
    mainMenu();
  else if (_menu.getGen() == mode::gen::GAME)
    gameHandle();
  else if (_menu.getGen() == mode::gen::OPTION)
    optionHandle();
  else if (_menu.getGen() == mode::gen::CREDIT)
    creditHandle();
  if (_menu.getGen() == mode::gen::GAME_OVER)
    goHandle();
  if (_input.getKey(SDLK_ESCAPE) and _pause.getPause())
    {
      usleep(100000);
      _pause.stopPause();
      _pause.resetMode();
      _battleTheme.play();
      _battleTheme.setLoop(true);
    }
  else if (_pause.getPause())
    pauseHandle();
  else if (_input.getKey(SDLK_ESCAPE) and played == true)
    _pause.startPause();
  if (_pause.getPause())
    setPause();
  else if (played == true)
    affObj();
  if (_menu.getSubMode() == mode::load::SOLO and played and std::find(_objs.begin(), _objs.end(), _player) == _objs.end())
    soloEnd();
  else if (_menu.getSubMode() == mode::load::MULTI and played)
    multiEnd();
  return true;
}
Example #15
0
void OgreApp::activatePerformSingleTap(float x, float y)
{
    player->addAction(ACTION_SINGLE_TAP);
    if (x >= globals.pauseButton_posX && x <= globals.pauseButton_posX + globals.pauseButton_width &&
        y >= globals.pauseButton_posY && y <= globals.pauseButton_posY + globals.pauseButton_posY) {
        if (!pause) setPause(true);
    }
#ifdef DEBUG_MODE
    else if (y <= 100 && x <= globals.screenWidth / 2) {
        setLevel(EVEN, false);
    } else if (y <= 100 && x > globals.screenWidth / 2) {
        setLevel(EVEN);
    }
#endif
}
Example #16
0
bool Breath::setProperty(P_ID propertyId, const QVariant& v)
      {
      switch(propertyId) {
            case P_ID::PAUSE:
                  setPause(v.toDouble());
                  break;
            default:
                  if (!Element::setProperty(propertyId, v))
                        return false;
                  break;
            }
      triggerLayout();
      setGenerated(false);
      return true;
      }
Example #17
0
void Plugin::Handle (Entity e)
{
    auto player = PlayerTab_->GetPlayer ();

    if (e.Mime_ == "x-leechcraft/power-state-changed")
    {
        if (e.Entity_ == "Sleeping")
        {
            player->SavePlayState (true);
            player->setPause ();
        }
        else if (e.Entity_ == "WokeUp")
        {
            player->RestorePlayState ();
            Core::Instance ().GetRadioManager ()->HandleWokeUp ();
        }

        return;
    }

    QString path = e.Entity_.toString ();
    const QUrl& url = e.Entity_.toUrl ();
    if (path.isEmpty () &&
            url.isValid () &&
            url.scheme () == "file")
        path = url.toLocalFile ();

    if (e.Parameters_ & Internal)
    {
        /* TODO
        auto obj = Phonon::createPlayer (Phonon::NotificationCategory, path);
        obj->play ();
        connect (obj,
        		SIGNAL (finished ()),
        		obj,
        		SLOT (deleteLater ()));
        		*/
        return;
    }

    if (!(e.Parameters_ & FromUserInitiated))
        return;

    player->Enqueue ({ AudioSource (url) }, false);

    if (e.Additional_ ["Action"] == "AudioEnqueuePlay")
        player->AddToOneShotQueue (url);
}
Example #18
0
void QSFcanvas::keyReleaseEvent(QKeyEvent * e){
    if(e->key() == Qt::Key_Q){
        leftPressed = false;
        emit takeContr(false);
    }
    if(e->key() == Qt::Key_D){
        rightPressed = false;
        emit takeContr(false);
    }
    if(e->key() == Qt::Key_Space){
        pause();
        emit setPause();
    }
    if(e->key() == Qt::Key_Shift){
        emit activBoost(false);
    }
}
Example #19
0
	void Soloud::schedulePause(handle aVoiceHandle, time aTime)
	{
		if (aTime <= 0)
		{
			setPause(aVoiceHandle, 1);
			return;
		}
		if (mLockMutexFunc) mLockMutexFunc(mMutex);
		int ch = getVoiceFromHandle(aVoiceHandle);
		if (ch == -1) 
		{
			if (mUnlockMutexFunc) mUnlockMutexFunc(mMutex);
			return;
		}
		mVoice[ch]->mPauseScheduler.set(1, 0, aTime, mVoice[ch]->mStreamTime);
		if (mUnlockMutexFunc) mUnlockMutexFunc(mMutex);
	}
Example #20
0
void dialogs::help()
{
     emit setPause(true);
     dial=new QWidget(0);
     QVBoxLayout *vblayout=new QVBoxLayout();
     QPushButton *okb=new QPushButton("OK");
     QLabel *lbl=new QLabel(QString::fromUtf8(
                            "<H4><CENTER>Помощь</CENTER></H4>"
                            "<b>Влево,Вправо</b>       Переместить фигуру<br>"
                            "<b>Вниз</b>   Сбросить фигуру<br>"
                            "<b>Pause</b>   Пауза<br>"
                            "<b>CTRL+N</b>  Новая игра<br>"));
     vblayout->addWidget(lbl);
     vblayout->addWidget(okb);
     connect(okb,SIGNAL(clicked()),this,SLOT(quit()));
     dial->setLayout(vblayout);
     dial->show();
}
Example #21
0
bool LayoutBreak::setProperty(P_ID propertyId, const QVariant& v)
      {
      switch(propertyId) {
            case P_LAYOUT_BREAK:
                  setLayoutBreakType(LayoutBreakType(v.toInt()));
                  break;
            case P_PAUSE:
                  setPause(v.toDouble());
                  break;
            default:
                  if (!Element::setProperty(propertyId, v))
                        return false;
                  break;
            }
      score()->setLayoutAll(true);
      setGenerated(false);
      return true;
      }
Example #22
0
void dialogs::setSize()
{
    emit setPause(true);
    QVBoxLayout *vblayout=new QVBoxLayout();
    QHBoxLayout *hblayout=new QHBoxLayout();
    dial=new QWidget(0);

    QLabel h(QString::fromUtf8("Высота:"));
    QLabel w(QString::fromUtf8("Ширина:"));


    spbHeight=new QSpinBox();
    spbWidth =new QSpinBox();

    QPushButton *okb=new QPushButton("OK");
    QPushButton *chb=new QPushButton(QString::fromUtf8("Отмена"));

    connect(chb,SIGNAL(clicked()),this,SLOT(quit()));
    connect(okb,SIGNAL(clicked()),this,SLOT(getSize()));

    spbHeight->setRange(10,40);
    spbHeight->setSuffix(QString::fromUtf8(" клеток"));
    spbHeight->setWrapping(true);
    spbHeight->setValue(10);

    spbWidth->setRange(10,40);
    spbWidth ->setSuffix(QString::fromUtf8(" клеток"));
    spbWidth->setWrapping(true);
    spbWidth->setValue(20);

    hblayout->addWidget(okb);
    hblayout->addWidget(chb);
    vblayout->addWidget(&h);
    vblayout->addWidget(spbHeight);
    vblayout->addWidget(&w);
    vblayout->addWidget(spbWidth);
    vblayout->addLayout(hblayout);

    dial->setFixedSize(200,200);
    dial->setWindowTitle(QString::fromUtf8("Настройки"));
    dial->setLayout(vblayout);
    dial->show();
}
Example #23
0
Mouth::Mouth(const ANIFile &ani, const CMPFile &cmp,
             uint16 mouthAnim, uint16 mouthSprite, uint16 floorSprite) : ANIObject(ani) {

	_sprite = new ANIObject(cmp);
	_sprite->setAnimation(mouthSprite);
	_sprite->setVisible(true);

	for (int i = 0; i < kFloorCount; i++) {
		_floor[i] = new ANIObject(cmp);
		_floor[i]->setAnimation(floorSprite);
		_floor[i]->setVisible(true);
	}

	_state = kStateDeactivated;

	setAnimation(mouthAnim);
	setMode(kModeOnce);
	setPause(true);
	setVisible(true);
}
int MainWindow::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
{
    _id = QWidget::qt_metacall(_c, _id, _a);
    if (_id < 0)
        return _id;
    if (_c == QMetaObject::InvokeMetaMethod) {
        switch (_id) {
        case 0: setPlay(); break;
        case 1: setPause(); break;
        case 2: changeSide(); break;
        case 3: setPenalty(); break;
        case 4: setFreekick(); break;
        case 5: setGoalkick(); break;
        case 6: setFreeball(); break;
        case 7: setInicialPosition(); break;
        case 8: cleanFutRobot(); break;
        default: ;
        }
        _id -= 9;
    }
    return _id;
}
Example #25
0
bool Game2D::event(QEvent *event){
     //qDebug () << event->type();

     if (event->type() == QEvent::KeyPress) {
         QKeyEvent *ke = static_cast<QKeyEvent *>(event);

         if (!state_) state_=1;
         else{
             if (state_==2) start ();
         }

         switch (ke->key()){
             case Qt::Key_Up:
             case Qt::Key_W: direction_=UP; break;

             case Qt::Key_Right:
             case Qt::Key_D: direction_=RIGHT; break;

             case Qt::Key_Down:
             case Qt::Key_S: direction_=DOWN; break;

             case Qt::Key_Left:
             case Qt::Key_A: direction_=LEFT; break;

             case Qt::Key_Shift: ship_.setFire(1); break;

             case Qt::Key_Tab: nextLevel (); break;

             case Qt::Key_Backspace: prevLevel (); break;

             case Qt::Key_Pause: setPause (); break;
         }

         return true;
     }

     return QWidget::event(event);
}
Example #26
0
void dialogs::quit()
{
    emit setPause(false);
    dial->close();
}
Example #27
0
void dialogs::getSize()
{
    emit changeSize(dialogs::spbWidth->value(),dialogs::spbHeight->value());
    emit setPause(false);
    quit();
}
Example #28
0
bool OgreApp::keyPressed(const OIS::KeyEvent &keyEventRef)
{
#if !defined(OGRE_IS_IOS)
	OgreFramework::getSingletonPtr()->keyPressed(keyEventRef);
	
    switch (keyEventRef.key)
    {
        case OIS::KC_LEFT:
        {
            player->setKeyLeft(true);
            if (player->checkPerformLeftMove(true))
                activatePerformLeftMove();
            break;
        }
        case OIS::KC_RIGHT:
        {
            player->setKeyRight(true);
            player->resetCursorMoved();
            if (player->checkPerformRightMove(true))
                activatePerformRightMove();
            break;
        }
        case OIS::KC_UP:
        {
            player->setKeyUp(true);
            if (player->getSpeedControl() == SPEED_CONTROL_FLEXIBLE)
            {
                int s = player->getBaseSpeed();
                if (s + 1 <= globals.maxCamSpeed)
                    s++;
                player->setBaseSpeed(s);
            }
            break;
        }
        case OIS::KC_DOWN:
        {
            player->setKeyDown(true);
            if (player->getSpeedControl() == SPEED_CONTROL_FLEXIBLE)
            {
                int s = player->getBaseSpeed();
                if (s - 1 >= globals.minCamSpeed)
                    s--;
                player->setBaseSpeed(s);
            }
            break;
        }
        case OIS::KC_P:
        {
            setPause(!pause);
            break;
        }
        case OIS::KC_MINUS:
        {
            endLevel(FAIL);
            setLevel(FAIL);
            break;
        }
        case OIS::KC_EQUALS:
        {
            endLevel(PASS);
            setLevel(PASS);
            break;
        }
        case OIS::KC_X:
        {
            player->changeMovementMode();
            break;
        }
        case OIS::KC_C:
        {
            player->setShowCombo(player->getShowCombo() ? 0 : 1);
            break;
        }
        case OIS::KC_SPACE:
        {
            player->setKeySpace(true);
            activatePerformDoubleTap(0, 0);
            break;
        }
        case OIS::KC_Z:
        {
            activatePerformBeginLongPress();
            break;
        }
        default:
            break;
    }
#endif
	return true;
}
Example #29
0
void OgreApp::setLevel(Evaluation forced, bool forward)
{
    globals.clearMessage();
    
    std::vector<NavigationLevel> navLevels;
    if (tunnel)
    {
        levelMgr->updatePlayerSkill(tunnel, forced);
        if (forward)
            levelMgr->incrementSchedIndex();
        else
            levelMgr->decrementSchedIndex();
        navLevels = tunnel->getNavLevels();
        player->unlink();
        tunnel->unlink();
        hud->unlink();
    }
    
    // Don't gen a new tunnel if our schedule is over
    if (!predictSessionOver())
    {
        tunnel = levelMgr->getNextLevel(tunnel);
        if (navLevels.size() <= 0) // First stage
        {
            globals.appendMessage("\n\nSession No: " + Util::toStringInt(player->getSkillLevel().sessionID), MESSAGE_NORMAL);
        }
    }
    // Link/Relink Pointers
    tunnel->link(player, hud);
    player->link(tunnel, hud);
    hud->init(tunnel, player);
    
    if (!predictSessionOver())
    {
        // If repeated, repeat the same navigation level
        if (levelMgr->isRepeatingPhase())
            tunnel->setNavigationLevels(navLevels);
        else
            tunnel->setNavigationLevels();
        tunnel->constructTunnel(globals.tunnelSections);
        // If nback is same then panels are changing, keep speed same
        player->setCamPos(tunnel->getStart() + tunnel->getCurrent()->getForward() * globals.tunnelSegmentDepth);
        player->setCamRot(tunnel->getCurrent()->getQuaternion());
        player->setDesireRot(player->getCamRot());
        player->newTunnel(musicMode == MUSIC_ENABLED);
        
        Plane plane;
        switch (globals.setSkyBox)
        {
            case 0:
                plane.d = 3000;
                plane.normal = Ogre::Vector3(0, 0, 1);
                OgreFramework::getSingletonPtr()->m_pSceneMgrMain->setSkyPlane(true, plane, "General/SpaceSkyPlane", 80, 4, true);
                OgreFramework::getSingletonPtr()->m_pSceneMgrMain->setFog(Ogre::FOG_LINEAR, Ogre::ColourValue::ZERO, 0.0, 300.0, 600.0);
                OgreFramework::getSingletonPtr()->m_pViewportMain->setBackgroundColour(ColourValue(0.0f, 0.0f, 0.0f, 1.0f));
                OgreFramework::getSingletonPtr()->m_pSceneMgrMain->getSkyPlaneNode()->resetToInitialState();
                break;
            case 1:
                plane.d = 160;
                plane.normal = Ogre::Vector3(0, 0, 1);
                OgreFramework::getSingletonPtr()->m_pSceneMgrMain->setSkyPlane(true, plane, "General/TestSkyPlane0", 1.9, 1, true);
                OgreFramework::getSingletonPtr()->m_pSceneMgrMain->setFog(Ogre::FOG_LINEAR, Ogre::ColourValue(1.0, 0.95, 0.3, 0.0), 0.0, 500.0,  800.0);
                OgreFramework::getSingletonPtr()->m_pViewportMain->setBackgroundColour(ColourValue(0.0f, 0.0f, 0.0f, 1.0f));
                OgreFramework::getSingletonPtr()->m_pSceneMgrMain->getSkyPlaneNode()->resetToInitialState();
                break;
            default:
                plane.d = 3000;
                plane.normal = Ogre::Vector3(0, 0, 1);
                OgreFramework::getSingletonPtr()->m_pSceneMgrMain->setSkyPlane(true, plane, "General/SpaceSkyPlane", 80, 4, true);
                OgreFramework::getSingletonPtr()->m_pSceneMgrMain->setFog(Ogre::FOG_LINEAR, Ogre::ColourValue::ZERO, 0.0, 300.0, 600.0);
                OgreFramework::getSingletonPtr()->m_pViewportMain->setBackgroundColour(ColourValue(0.0f, 0.0f, 0.0f, 1.0f));
                OgreFramework::getSingletonPtr()->m_pSceneMgrMain->getSkyPlaneNode()->resetToInitialState();
                break;
        }
    }
    
    // Stop the game
    setPause(true);
}
Example #30
0
void EngineStage::keyPressed(const OIS::KeyEvent &keyEventRef)
{
    switch (keyEventRef.key)
    {
        case OIS::KC_W:
        {
            player->setKeyUp(true);
            break;
        }
        case OIS::KC_A:
        {
            player->setKeyLeft(true);
            break;
        }
        case OIS::KC_S:
        {
            player->setKeyDown(true);
            break;
        }
        case OIS::KC_D:
        {
            player->setKeyRight(true);
            break;
        }
        case OIS::KC_SPACE:
        {
            player->setKeySpace(true);
            break;
        }
        case OIS::KC_LEFT:
        {
            activatePerformLeftMove();
            break;
        }
        case OIS::KC_RIGHT:
        {
            activatePerformRightMove();
            break;
        }
        case OIS::KC_UP:
        {
            activatePerformSwipeUp();
            break;
        }
        case OIS::KC_DOWN:
        {
            activatePerformSwipeDown();
            break;
        }
        case OIS::KC_1:
        {
            if (tunnel && tunnel->isMultiCollectionTask())
            {
                player->setToggleBack(3);
                tunnel->respondToToggleCheat();
            }
            break;
        }
        case OIS::KC_2:
        {
            if (tunnel && tunnel->isMultiCollectionTask())
            {
                player->setToggleBack(2);
                tunnel->respondToToggleCheat();
            }
            break;
        }
        case OIS::KC_3:
        {
            if (tunnel && tunnel->isMultiCollectionTask())
            {
                player->setToggleBack(1);
                tunnel->respondToToggleCheat();
            }
            break;
        }
        case OIS::KC_4:
        {
            if (tunnel && tunnel->isMultiCollectionTask())
            {
                // Bad hack but
                // Don't show 3-Back for multi-collection tasks of 1 or less.
                if (player->getLevelRequestRow() > 0)
                    player->setToggleBack(0);
                tunnel->respondToToggleCheat();
            }
            break;
        }
        case OIS::KC_P:
        {
            if (stageState == STAGE_STATE_RUNNING)
            {
                setPause(true);
                globals.appendMessage("\n\nPaused", MESSAGE_NORMAL);
                stageState = STAGE_STATE_PAUSE;
            }
            else
            {
                setPause(false);
                stageState = STAGE_STATE_RUNNING;
            }
            break;
        }
        case OIS::KC_Z:
        {
            activatePerformBeginLongPress();
            break;
        }
        case OIS::KC_X:
        {
            if (stageState == STAGE_STATE_RUNNING) player->performPowerUp("TractorBeam");
            break;
        }
        case OIS::KC_C:
        {
            player->setPowerUp("TimeWarp", true);
            if (stageState == STAGE_STATE_RUNNING) player->performPowerUp("TimeWarp");
            break;
        }
        case OIS::KC_V:
        {
            if (stageState == STAGE_STATE_RUNNING) player->performPowerUp("Shields");
            break;
        }
#ifdef DEBUG_MODE
        case OIS::KC_K:
        {
            if (stageState == STAGE_STATE_RUNNING) tunnel->setDone(FAIL);
            break;
        }
        case OIS::KC_L:
        {
            if (stageState == STAGE_STATE_RUNNING) tunnel->setDone(PASS);
            break;
        }
        case OIS::KC_G:
        {
            player->setGodMode(!player->getGodMode());
            std::cout << "God Mode: " << player->getGodMode() << std::endl;
            break;
        }
#endif
        default:
            break;
    }
}