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:
parent
1bdc320742
commit
d2a7856282
@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user