Started performing API changes to support multiple GP losers eventually

git-svn-id: svn+ssh://svn.code.sf.net/p/supertuxkart/code/main/trunk@5690 178a84e3-b1eb-0310-8ba1-8eac791a3b58
This commit is contained in:
auria 2010-07-17 18:17:15 +00:00
parent b636214371
commit 992115a9d9
4 changed files with 18 additions and 12 deletions

View File

@ -441,19 +441,16 @@ void RaceManager::exitRace()
{
StateManager::get()->pushScreen( GrandPrixLose::getInstance() );
if (humanLosers.size() > 1)
if (humanLosers.size() >= 1)
{
// TODO: support multiplayer GPs!!
GrandPrixLose::getInstance()->setKart( humanLosers[0] );
}
else if (humanLosers.size() == 1)
{
GrandPrixLose::getInstance()->setKart( humanLosers[0] );
GrandPrixLose::getInstance()->setKarts( humanLosers );
}
else
{
std::cerr << "RaceManager::exitRace() : what's going on?? no winners and no losers??\n";
GrandPrixLose::getInstance()->setKart( "nolok" );
std::vector<std::string> karts;
karts.push_back(UserConfigParams::m_default_kart);
GrandPrixLose::getInstance()->setKarts( karts );
}
}
}

View File

@ -220,11 +220,14 @@ void GrandPrixLose::eventCallback(GUIEngine::Widget* widget,
// -------------------------------------------------------------------------------------
void GrandPrixLose::setKart(const std::string ident_arg)
void GrandPrixLose::setKarts(const std::vector<std::string> ident_arg)
{
scene::ISceneNode* kart_main_node = NULL;
const KartProperties* kart = kart_properties_manager->getKart(ident_arg);
assert(ident_arg.size() > 0);
// TODO: allow displaying more than one losers
const KartProperties* kart = kart_properties_manager->getKart(ident_arg[0]);
if (kart != NULL)
{
KartModel* kartModel = kart->getKartModel();

View File

@ -3,6 +3,9 @@
#include "guiengine/screen.hpp"
#include <vector>
#include <string>
namespace irr { namespace scene { class ISceneNode; class ICameraSceneNode; class ILightSceneNode; } }
class KartProperties;
@ -59,7 +62,8 @@ public:
/** \brief implement callback from parent class GUIEngine::Screen */
void eventCallback(GUIEngine::Widget* widget, const std::string& name, const int playerID);
void setKart(const std::string ident);
/** \brief set which karts lost this GP */
void setKarts(const std::vector<std::string> ident);
virtual MusicInformation* getMusic() const { return m_music; }

View File

@ -171,7 +171,9 @@ void MainMenuScreen::eventCallback(Widget* widget, const std::string& name, cons
{
GrandPrixLose* scene = GrandPrixLose::getInstance();
StateManager::get()->pushScreen(scene);
scene->setKart( "nolok" );
std::vector<std::string> losers;
losers.push_back("nolok");
scene->setKarts( losers );
}
}