Minor changes to state manager for consistency (I don't think we need those features but better support my design correctly, even corner cases we don't correctly use, otherwise code is ahrd to understand)

git-svn-id: svn+ssh://svn.code.sf.net/p/supertuxkart/code/main/trunk@5334 178a84e3-b1eb-0310-8ba1-8eac791a3b58
This commit is contained in:
auria 2010-05-01 19:20:16 +00:00
parent 1bdc320742
commit d2a7856282

View File

@ -114,7 +114,8 @@ void AbstractStateManager::pushScreen(Screen* screen)
void AbstractStateManager::replaceTopMostScreen(Screen* screen)
{
assert(m_game_mode != GAME);
if (!screen->isLoaded()) screen->loadFromFile();
std::string name = screen->getName();
// Send tear-down event to previous menu
@ -143,7 +144,9 @@ void AbstractStateManager::reshowTopMostMenu()
switchToScreen( m_menu_stack[m_menu_stack.size()-1].c_str() );
// Send init event to new menu
getCurrentScreen()->init();
Screen* screen = getCurrentScreen();
if (!screen->isLoaded()) screen->loadFromFile();
screen->init();
}
// -----------------------------------------------------------------------------
@ -173,7 +176,10 @@ void AbstractStateManager::popMenu()
{
setGameState(MENU);
switchToScreen(m_menu_stack[m_menu_stack.size()-1].c_str());
getCurrentScreen()->init();
Screen* screen = getCurrentScreen();
if (!screen->isLoaded()) screen->loadFromFile();
screen->init();
}
}