void CCEngine::updateLoop() { #if defined PROFILEON CCProfiler profile( "CCEngine::updateGame()" ); #endif // Remove any redundant scenes for( int i=0; i<scenes.length; ++i ) { CCSceneBase *scene = scenes.list[i]; if( scene->shouldDelete() ) { removeScene( scene ); i--; } } CCNativeThreadLock(); for( int i=0; i<cameras.length; ++i ) { CCCameraBase *camera = cameras.list[i]; camera->updateControls(); } controls->update( time ); CCNativeThreadUnlock(); // Allow scene to handle the controls first for( int i=0; i<scenes.length; ++i ) { if( scenes.list[i]->updateControls( time ) ) { // If we're not releasing our touch if( controls->getScreenTouches()[0].usingTouch != NULL ) { break; } } } // Run through our controllers first for( int i=0; i<updaters.length; ++i ) { // Delete on finish update CCUpdater *updater = updaters.list[i]; if( updater->update( time.delta ) == false ) { updaters.remove( updater ); DELETE_OBJECT( updater ); } } // Update scene logic for( int i=0; i<scenes.length; ++i ) { CCSceneBase *scene = scenes.list[i]; scene->update( time ); } }
void CCEngine::restart() { urlManager->flushPendingRequests(); for( int i=scenes.length-1; i>=0; --i ) { removeScene( scenes.list[i] ); } start(); }
StudySceneEditor::StudySceneEditor(Study *study, QSqlDatabase *database, QWidget *parent) : QDialog(parent) { m_ui.setupUi(this); m_ui.removeSceneButton->setEnabled(false); m_model = new StudySceneModel(this, *database); m_delegate = new StudySceneDelegate(this); m_study = study; m_studyIndex = -1; QString title = windowTitle(); setWindowTitle(m_study->name() + " - " + title); QSqlQuery query(*database); query.prepare("select id from studies where name = ?"); query.addBindValue(m_study->name()); // if there is already a study with that name, show the scenes for it if (query.exec() && query.next()) { m_studyIndex = query.value(0).toInt(); } m_model->setTable("scenes"); //m_model->setEditStrategy(QSqlTableModel::OnFieldChange); QString filter = QString("study = %1").arg(m_studyIndex); m_model->setFilter(filter); m_model->setHeaderData(1, Qt::Horizontal, "Name", Qt::DisplayRole); m_model->setHeaderData(2, Qt::Horizontal, "Length \n (in seconds)", Qt::DisplayRole); m_model->setHeaderData(3, Qt::Horizontal, "Type", Qt::DisplayRole); m_model->select(); // Set up the view m_ui.sceneView->setModel(m_model); m_ui.sceneView->setColumnHidden(0, true); m_ui.sceneView->setColumnHidden(4, true); m_ui.sceneView->horizontalHeader()->setResizeMode(QHeaderView::Stretch); m_ui.sceneView->setItemDelegate(m_delegate); m_ui.sceneView->update(); m_signalMapper = new QSignalMapper(this); connect(m_ui.addSceneButton, SIGNAL(clicked()), m_signalMapper, SLOT(map())); m_signalMapper->setMapping(m_ui.addSceneButton, m_ui.addSceneButton->text()); connect(m_ui.addBreakSceneButton, SIGNAL(clicked()), m_signalMapper, SLOT(map())); m_signalMapper->setMapping(m_ui.addBreakSceneButton, m_ui.addBreakSceneButton->text()); connect(m_signalMapper, SIGNAL(mapped(QString)), this, SIGNAL(clicked(const QString &))); connect(this, SIGNAL(clicked(QString)), this, SLOT(addNewScene(QString))); connect(m_ui.closeButton, SIGNAL(clicked()), this, SLOT(submitAndClose())); connect(m_ui.removeSceneButton, SIGNAL(clicked()), this, SLOT(removeScene())); connect(m_ui.sceneView, SIGNAL(clicked(QModelIndex)), this, SLOT(changeRemoveButtonState(QModelIndex))); connect(m_model, SIGNAL(primeInsert(int, QSqlRecord&)), this, SLOT(populateNewRowValues(int, QSqlRecord&))); }
void TupTimeLine::sceneResponse(TupSceneResponse *response) { Q_UNUSED(response); #ifdef K_DEBUG #ifdef Q_OS_WIN32 qDebug() << "[TupTimeLine::sceneResponse()]"; #else T_FUNCINFO; #endif #endif switch (response->action()) { case TupProjectRequest::Add: { insertScene(response->sceneIndex(), response->arg().toString()); } break; case TupProjectRequest::Remove: { removeScene(response->sceneIndex()); } break; case TupProjectRequest::Move: { } break; case TupProjectRequest::Lock: { } break; case TupProjectRequest::Rename: { } break; case TupProjectRequest::Select: { k->container->setCurrentIndex(response->sceneIndex()); } break; default: #ifdef K_DEBUG QString msg = "TupTimeLine::sceneResponse : Unknown action :/"; #ifdef Q_OS_WIN32 qDebug() << msg; #else tFatal() << msg; #endif #endif break; } }
void GrimEngine::setScene(Scene *scene) { Scene *lastScene = _currScene; _currScene = scene; _currScene->setSoundParameters(20, 127); // should delete the old scene after setting the new one if (lastScene && !lastScene->_locked) { removeScene(lastScene); delete lastScene; } }
void SceneManager::Update(){ if (Game->MANAGER.load){ if (Game->MANAGER.scene){ addScene(Game->MANAGER.loadName, Game->MANAGER.scene); } Game->MANAGER.load = false; } if (Game->MANAGER.unload){ removeScene(Game->MANAGER.unloadName); Game->MANAGER.unload = false; } if (Game->MANAGER.change){ changeScene(Game->MANAGER.changeName); Game->MANAGER.change = false; } }
void GrimEngine::setScene(const char *name) { Scene *scene = findScene(name); Scene *lastScene = _currScene; // If the scene already exists then use the existing data if (scene) { setScene(scene); return; } Block *b = g_resourceloader->getFileBlock(name); if (!b) warning("Could not find scene file %s", name); _currScene = new Scene(name, b->data(), b->len()); registerScene(_currScene); _currScene->setSoundParameters(20, 127); // should delete the old scene after creating the new one if (lastScene && !lastScene->_locked) { removeScene(lastScene); delete lastScene; } delete b; }