From 9604fa2b8cbb09d8afb9ced9d6a25206f2eb1aea Mon Sep 17 00:00:00 2001 From: auria Date: Tue, 20 Oct 2009 18:29:51 +0000 Subject: [PATCH] 'Setup new race' button in paused dialog now works git-svn-id: svn+ssh://svn.code.sf.net/p/supertuxkart/code/main/branches/irrlicht@4140 178a84e3-b1eb-0310-8ba1-8eac791a3b58 --- src/guiengine/event_handler.cpp | 2 +- src/states_screens/dialogs/race_paused_dialog.cpp | 12 +++++++++++- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/src/guiengine/event_handler.cpp b/src/guiengine/event_handler.cpp index 777f76bf5..02dd2dad7 100644 --- a/src/guiengine/event_handler.cpp +++ b/src/guiengine/event_handler.cpp @@ -183,7 +183,7 @@ EventPropagation EventHandler::onWidgetActivated(GUIEngine::Widget* w, const int // notify modal dialog too if (ModalDialog::isADialogActive()) { - if (ModalDialog::getCurrent()->processEvent(parent->m_properties[PROP_ID])) return EVENT_LET; + if (ModalDialog::getCurrent()->processEvent(parent->m_properties[PROP_ID]) == EVENT_BLOCK) return EVENT_BLOCK; } transmitEvent(parent, parent->m_properties[PROP_ID]); diff --git a/src/states_screens/dialogs/race_paused_dialog.cpp b/src/states_screens/dialogs/race_paused_dialog.cpp index 44a43ad48..178177b90 100644 --- a/src/states_screens/dialogs/race_paused_dialog.cpp +++ b/src/states_screens/dialogs/race_paused_dialog.cpp @@ -25,8 +25,9 @@ #include "network/network_manager.hpp" #include "race/race_manager.hpp" #include "states_screens/help_screen_1.hpp" -#include "states_screens/options_screen_av.hpp" +#include "states_screens/kart_selection.hpp" #include "states_screens/main_menu_screen.hpp" +#include "states_screens/options_screen_av.hpp" #include "states_screens/state_manager.hpp" #include "utils/translation.hpp" @@ -229,6 +230,10 @@ GUIEngine::EventPropagation RacePausedDialog::processEvent(std::string& eventSou // FIXME : don't hardcode player 0 const int playerId = 0; const std::string& selection = m_choice_ribbon->getSelectionIDString(playerId); + + std::cout << "RacePausedDialog::processEvent(" << eventSource.c_str() << " : " << selection << ")\n"; + + if (selection == "exit") { ModalDialog::dismiss(); @@ -259,6 +264,11 @@ GUIEngine::EventPropagation RacePausedDialog::processEvent(std::string& eventSou } else if (selection == "newrace") { + ModalDialog::dismiss(); + RaceManager::getWorld()->unpause(); + race_manager->exitRace(); + StateManager::get()->resetAndGoToScreen(MainMenuScreen::getInstance()); + StateManager::get()->pushScreen(KartSelectionScreen::getInstance()); return GUIEngine::EVENT_BLOCK; } }