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++)
|
i!=m_all_items.end(); i++)
|
||||||
{
|
{
|
||||||
if(!*i) continue;
|
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()];
|
Item::ItemType new_type = m_switch_to[(*i)->getType()];
|
||||||
|
|
||||||
if(m_switch_time<0)
|
if(m_switch_time<0)
|
||||||
|
@ -79,7 +79,7 @@ public:
|
|||||||
/** Override settings from base class */
|
/** Override settings from base class */
|
||||||
virtual bool useChecklineRequirements() const OVERRIDE { return false; }
|
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;
|
virtual void moveKartAfterRescue(AbstractKart* kart) OVERRIDE;
|
||||||
// ------------------------------------------------------------------------
|
// ------------------------------------------------------------------------
|
||||||
|
@ -46,8 +46,15 @@ RacePausedDialog::RacePausedDialog(const float percentWidth,
|
|||||||
const float percentHeight) :
|
const float percentHeight) :
|
||||||
ModalDialog(percentWidth, 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);
|
World::getWorld()->schedulePause(WorldStatus::IN_GAME_MENU_PHASE);
|
||||||
|
|
||||||
IconButtonWidget* back_btn = getWidget<IconButtonWidget>("backbtn");
|
IconButtonWidget* back_btn = getWidget<IconButtonWidget>("backbtn");
|
||||||
@ -81,8 +88,7 @@ void RacePausedDialog::loadedFromFile()
|
|||||||
{
|
{
|
||||||
GUIEngine::RibbonWidget* choice_ribbon =
|
GUIEngine::RibbonWidget* choice_ribbon =
|
||||||
getWidget<GUIEngine::RibbonWidget>("choiceribbon");
|
getWidget<GUIEngine::RibbonWidget>("choiceribbon");
|
||||||
const bool success = choice_ribbon->deleteChild("endrace");
|
choice_ribbon->deleteChild("endrace");
|
||||||
assert(success);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -160,6 +166,12 @@ GUIEngine::EventPropagation
|
|||||||
World::getWorld()->endRaceEarly();
|
World::getWorld()->endRaceEarly();
|
||||||
return GUIEngine::EVENT_BLOCK;
|
return GUIEngine::EVENT_BLOCK;
|
||||||
}
|
}
|
||||||
|
else if (selection == "selectkart")
|
||||||
|
{
|
||||||
|
dynamic_cast<OverWorld*>(World::getWorld())->scheduleSelectKart();
|
||||||
|
ModalDialog::dismiss();
|
||||||
|
return GUIEngine::EVENT_BLOCK;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return GUIEngine::EVENT_LET;
|
return GUIEngine::EVENT_LET;
|
||||||
} // processEvent
|
} // processEvent
|
||||||
|
@ -30,6 +30,7 @@
|
|||||||
#include "items/item_manager.hpp"
|
#include "items/item_manager.hpp"
|
||||||
#include "modes/overworld.hpp"
|
#include "modes/overworld.hpp"
|
||||||
#include "modes/world.hpp"
|
#include "modes/world.hpp"
|
||||||
|
#include "states_screens/dialogs/race_paused_dialog.hpp"
|
||||||
#include "tracks/track.hpp"
|
#include "tracks/track.hpp"
|
||||||
|
|
||||||
#include <IMeshSceneNode.h>
|
#include <IMeshSceneNode.h>
|
||||||
@ -463,7 +464,8 @@ void TrackObject::onTriggerItemApproached(Item* who)
|
|||||||
{
|
{
|
||||||
if (m_action == "garage")
|
if (m_action == "garage")
|
||||||
{
|
{
|
||||||
dynamic_cast<OverWorld*>(World::getWorld())->scheduleReturnToGarage();
|
new RacePausedDialog(0.8f, 0.6f);
|
||||||
|
//dynamic_cast<OverWorld*>(World::getWorld())->scheduleSelectKart();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user