GameScene::GameScene(QWidget *parent) : QGraphicsScene(parent), myLock(false) { inputDisabled = true; dconfirm = new ConfirmDialog(); addWidget(dconfirm, Qt::FramelessWindowHint); dconfirm->hide(); menu = new MenuWidget(); addWidget(menu); menu->activate(); connect(menu, SIGNAL(menuNew()), this, SLOT(on_menuNew())); connect(menu, SIGNAL(menuContinue()), this, SLOT(on_menuContinue())); connect(menu, SIGNAL(menuExit()), this, SLOT(on_menuExit())); connect(menu, SIGNAL(menuPauseBack()), this, SLOT(on_menuPauseBack())); connect(menu, SIGNAL(menuRestartLevel()), this, SLOT(on_menuRestartLevel())); connect(menu, SIGNAL(menuAbandonGame()), this, SLOT(on_menuAbandonGame())); connect(menu, SIGNAL(menuThemeChanged()), this, SLOT(on_menuThemeChanged())); connect(menu, SIGNAL(menuGameStart()), this, SLOT(on_menuGameStart())); connect(menu, SIGNAL(menuLevelPack()), this, SLOT(on_menuLevelPack())); stat = new StatInfo(); connect(gameProfile, SIGNAL(profileChanged()), this, SLOT(initProfile())); rows = cols = 0; xoff = 20; yoff = 10; advanceTimer = new QTimer(this); advanceTimer->setInterval(30); connect(advanceTimer, SIGNAL(timeout()), this, SLOT(nextCycle())); timeTimer = new QTimer(this); timeTimer->setInterval(1000); connect(timeTimer, SIGNAL(timeout()), this, SLOT(countTime())); bonusTimer = new QTimer(this); bonusTimer->setInterval(500); connect(bonusTimer, SIGNAL(timeout()), this, SLOT(countBonusTime())); hintTimer = new QTimer(this); hintTimer->setInterval(10000); connect(hintTimer, SIGNAL(timeout()), this, SLOT(hintAvailableMoves())); // init components GameStock::init(); toolset = new ToolSet(); gameBonus = new GameBonus(); setSceneRect(0,0, WIDTH, HEIGHT); // set background gameBackground = new GameBackground(); setBackgroundBrush(Qt::black); setDefaultGameCursor(); // update max level for current pack max_level = gameProfile->levelPackCount(gameProfile->currentLevelPack()); // very first initialization initGame(); }
void MainMenu::CursorEvent( OguiButtonEvent* eve ) { if( abortGame ) { MenuBaseImpl::CursorEvent( eve ); if( eve->eventType == OGUI_EMASK_CLICK ) { switch( eve->triggerButton->GetId() ) { case COMMANDS_YES: menuCollection->newMission(); break; case COMMANDS_NO: closeAbortMenu(); break; } } } else { MenuBaseImpl::CursorEvent( eve ); if( eve->eventType == OGUI_EMASK_CLICK ) { if( currentActive && eve->triggerButton->GetId() != COMMANDS_CONTINUE ) { currentActive->SetFont( fonts->medium.normal ); if( currentActive == eve->triggerButton ) { menuCollection->closeMenu(); return; } else { menuCollection->closeMenu(); } } currentActive = eve->triggerButton; if( currentActive ) currentActive->SetFont( fonts->medium.highlighted ); switch( eve->triggerButton->GetId() ) { case COMMANDS_RESUME: menuResume(); break; case COMMANDS_CONTINUE: menuContinue(); break; case COMMANDS_NEW_GAME: menuNewGame(); break; case COMMANDS_LOAD_GAME: menuLoadGame(); break; #ifdef PROJECT_SURVIVOR case COMMANDS_SURVIVAL: menuSurvival(); break; case COMMANDS_COOP: menuCoop(); break; #endif case COMMANDS_PROFILES: menuProfiles(); break; case COMMANDS_OPTIONS: menuOptions(); break; case COMMANDS_CREDITS: menuCredits(); break; case COMMANDS_QUIT: menuQuit(); break; case COMMANDS_EASY: case COMMANDS_NORMAL: case COMMANDS_HARD: selectDifficultButton( eve->triggerButton->GetId() ); break; default: // This should not happen assert( false ); break; }; } } }
void MenuWidget::on_bContinue_clicked() { emit menuContinue(); }