Add special escape-menu on overworld, and make Nolok's bubble gum swapper-proof
git-svn-id: svn+ssh://svn.code.sf.net/p/supertuxkart/code/main/trunk@11635 178a84e3-b1eb-0310-8ba1-8eac791a3b58
This commit is contained in:
parent
1edbed185d
commit
5a4f767403
@ -605,7 +605,8 @@ void EventHandler::sendEventToUser(GUIEngine::Widget* widget, std::string& name,
|
||||
}
|
||||
}
|
||||
|
||||
getCurrentScreen()->eventCallback(widget, name, playerID);
|
||||
if (getCurrentScreen() != NULL)
|
||||
getCurrentScreen()->eventCallback(widget, name, playerID);
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
|
@ -433,6 +433,15 @@ void ItemManager::switchItems()
|
||||
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)
|
||||
|
@ -79,7 +79,7 @@ public:
|
||||
/** 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;
|
||||
// ------------------------------------------------------------------------
|
||||
|
@ -46,8 +46,15 @@ RacePausedDialog::RacePausedDialog(const float percentWidth,
|
||||
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 @@ void RacePausedDialog::loadedFromFile()
|
||||
{
|
||||
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 @@ GUIEngine::EventPropagation
|
||||
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
|
||||
|
@ -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 @@ void TrackObject::onTriggerItemApproached(Item* who)
|
||||
{
|
||||
if (m_action == "garage")
|
||||
{
|
||||
dynamic_cast<OverWorld*>(World::getWorld())->scheduleReturnToGarage();
|
||||
new RacePausedDialog(0.8f, 0.6f);
|
||||
//dynamic_cast<OverWorld*>(World::getWorld())->scheduleSelectKart();
|
||||
}
|
||||
else
|
||||
{
|
||||
|
Loading…
x
Reference in New Issue
Block a user