From: <au...@us...> - 2012-09-29 22:46:36
|
Revision: 11635 http://supertuxkart.svn.sourceforge.net/supertuxkart/?rev=11635&view=rev Author: auria Date: 2012-09-29 22:46:29 +0000 (Sat, 29 Sep 2012) Log Message: ----------- Add special escape-menu on overworld, and make Nolok's bubble gum swapper-proof Modified Paths: -------------- main/trunk/src/guiengine/event_handler.cpp main/trunk/src/items/item_manager.cpp main/trunk/src/modes/overworld.hpp main/trunk/src/states_screens/dialogs/race_paused_dialog.cpp main/trunk/src/tracks/track_object.cpp Modified: main/trunk/src/guiengine/event_handler.cpp =================================================================== --- main/trunk/src/guiengine/event_handler.cpp 2012-09-29 19:03:49 UTC (rev 11634) +++ main/trunk/src/guiengine/event_handler.cpp 2012-09-29 22:46:29 UTC (rev 11635) @@ -605,7 +605,8 @@ } } - getCurrentScreen()->eventCallback(widget, name, playerID); + if (getCurrentScreen() != NULL) + getCurrentScreen()->eventCallback(widget, name, playerID); } // ----------------------------------------------------------------------------- Modified: main/trunk/src/items/item_manager.cpp =================================================================== --- main/trunk/src/items/item_manager.cpp 2012-09-29 19:03:49 UTC (rev 11634) +++ main/trunk/src/items/item_manager.cpp 2012-09-29 22:46:29 UTC (rev 11635) @@ -433,6 +433,15 @@ i!=m_all_items.end(); i++) { if(!*i) continue; + + if ((*i)->getType() == Item::ITEM_BUBBLEGUM || (*i)->getType() == Item::ITEM_BUBBLEGUM_NOLOK) + { + if (race_manager->getAISuperPower() == RaceManager::SUPERPOWER_NOLOK_BOSS) + { + continue; + } + } + Item::ItemType new_type = m_switch_to[(*i)->getType()]; if(m_switch_time<0) Modified: main/trunk/src/modes/overworld.hpp =================================================================== --- main/trunk/src/modes/overworld.hpp 2012-09-29 19:03:49 UTC (rev 11634) +++ main/trunk/src/modes/overworld.hpp 2012-09-29 22:46:29 UTC (rev 11635) @@ -79,7 +79,7 @@ /** Override settings from base class */ virtual bool useChecklineRequirements() const OVERRIDE { return false; } // ------------------------------------------------------------------------ - void scheduleReturnToGarage() { m_return_to_garage = true; } + void scheduleSelectKart() { m_return_to_garage = true; } // ------------------------------------------------------------------------ virtual void moveKartAfterRescue(AbstractKart* kart) OVERRIDE; // ------------------------------------------------------------------------ Modified: main/trunk/src/states_screens/dialogs/race_paused_dialog.cpp =================================================================== --- main/trunk/src/states_screens/dialogs/race_paused_dialog.cpp 2012-09-29 19:03:49 UTC (rev 11634) +++ main/trunk/src/states_screens/dialogs/race_paused_dialog.cpp 2012-09-29 22:46:29 UTC (rev 11635) @@ -46,8 +46,15 @@ const float percentHeight) : ModalDialog(percentWidth, percentHeight) { - loadFromFile("race_paused_dialog.stkgui"); - + if (dynamic_cast<OverWorld*>(World::getWorld()) != NULL) + { + loadFromFile("overworld_dialog.stkgui"); + } + else + { + loadFromFile("race_paused_dialog.stkgui"); + } + World::getWorld()->schedulePause(WorldStatus::IN_GAME_MENU_PHASE); IconButtonWidget* back_btn = getWidget<IconButtonWidget>("backbtn"); @@ -81,8 +88,7 @@ { GUIEngine::RibbonWidget* choice_ribbon = getWidget<GUIEngine::RibbonWidget>("choiceribbon"); - const bool success = choice_ribbon->deleteChild("endrace"); - assert(success); + choice_ribbon->deleteChild("endrace"); } } @@ -160,6 +166,12 @@ World::getWorld()->endRaceEarly(); return GUIEngine::EVENT_BLOCK; } + else if (selection == "selectkart") + { + dynamic_cast<OverWorld*>(World::getWorld())->scheduleSelectKart(); + ModalDialog::dismiss(); + return GUIEngine::EVENT_BLOCK; + } } return GUIEngine::EVENT_LET; } // processEvent Modified: main/trunk/src/tracks/track_object.cpp =================================================================== --- main/trunk/src/tracks/track_object.cpp 2012-09-29 19:03:49 UTC (rev 11634) +++ main/trunk/src/tracks/track_object.cpp 2012-09-29 22:46:29 UTC (rev 11635) @@ -30,6 +30,7 @@ #include "items/item_manager.hpp" #include "modes/overworld.hpp" #include "modes/world.hpp" +#include "states_screens/dialogs/race_paused_dialog.hpp" #include "tracks/track.hpp" #include <IMeshSceneNode.h> @@ -463,7 +464,8 @@ { if (m_action == "garage") { - dynamic_cast<OverWorld*>(World::getWorld())->scheduleReturnToGarage(); + new RacePausedDialog(0.8f, 0.6f); + //dynamic_cast<OverWorld*>(World::getWorld())->scheduleSelectKart(); } else { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |