void SceneManager::EnqueueScene(Scene* scene) { if (scene == NULL) { NCLERROR("Attempting to enqueue NULL scene"); return; } m_vpAllScenes.push_back(scene); //If this was the first scene, activate it immediately if (m_vpAllScenes.size() == 1) JumpToScene(0); else Window::GetWindow().SetWindowTitle("NCLTech - [%d/%d] %s", m_SceneIdx + 1, m_vpAllScenes.size(), m_pScene->GetSceneName().c_str()); }
void SceneManager::JumpToScene(const std::string& friendly_name) { bool found = false; uint idx = 0; for (uint i = 0; found == false && i < m_vpAllScenes.size(); ++i) { if (m_vpAllScenes[i]->GetSceneName() == friendly_name) { found = true; idx = i; break; } } if (found) { JumpToScene(idx); } else { NCLERROR("Unknown Scene Alias: \"%s\"", friendly_name.c_str()); } }
void SceneManager::JumpToScene() { JumpToScene((m_SceneIdx + 1) % m_vpAllScenes.size()); }
/************************************************************************ * 自己玩家停止了游戏 ************************************************************************/ void GameLogic::StopGame() { JumpToScene(RESULT_SCENE); Clean(); }