RuntimeScene::RuntimeScene(sf::RenderWindow * renderWindow_, RuntimeGame * game_) : renderWindow(renderWindow_), game(game_), #if defined(GD_IDE_ONLY) debugger(NULL), #endif isFullScreen(false), inputManager(renderWindow_), codeExecutionEngine(new CodeExecutionEngine) { ChangeRenderWindow(renderWindow); }
RuntimeScene::RuntimeScene(sf::RenderWindow * renderWindow_, RuntimeGame * game_) : renderWindow(renderWindow_), game(game_), #if defined(GD_IDE_ONLY) debugger(NULL), #endif firstLoop(true), isFullScreen(false), inputManager(renderWindow_), realElapsedTime(0), elapsedTime(0), timeScale(1), timeFromStart(0), pauseTime(0), codeExecutionEngine(new CodeExecutionEngine) { ChangeRenderWindow(renderWindow); }
std::shared_ptr<RuntimeScene> SceneStack::Push(std::string newSceneName) { auto newScene = std::make_shared<RuntimeScene>(window, &game); if (!newScene->LoadFromScene(game.GetLayout(newSceneName))) { if (errorCallback) errorCallback("Unable to load scene \"" + newSceneName + "\"."); return std::shared_ptr<RuntimeScene>(); } if (!newScene->GetCodeExecutionEngine()->LoadFromDynamicLibrary(codeLibraryName, "GDSceneEvents"+gd::SceneNameMangler::GetMangledSceneName(newScene->GetName()))) { if (errorCallback) errorCallback("Unable to setup execution engine for scene \"" + newScene->GetName() + "\"."); return std::shared_ptr<RuntimeScene>(); } newScene->ChangeRenderWindow(window); stack.push_back(newScene); return newScene; }