Play the 2 parts of the intro
git-svn-id: svn+ssh://svn.code.sf.net/p/supertuxkart/code/main/trunk@11502 178a84e3-b1eb-0310-8ba1-8eac791a3b58
This commit is contained in:
@@ -58,6 +58,8 @@ void CutsceneWorld::init()
|
||||
|
||||
dynamic_cast<CutsceneGUI*>(m_race_gui)->setFadeLevel(1.0f);
|
||||
|
||||
getTrack()->startMusic();
|
||||
|
||||
m_duration = -1.0f;
|
||||
|
||||
//const btTransform &s = getTrack()->getStartTransform(0);
|
||||
@@ -252,9 +254,31 @@ void CutsceneWorld::update(float dt)
|
||||
|
||||
void CutsceneWorld::enterRaceOverState()
|
||||
{
|
||||
race_manager->exitRace();
|
||||
StateManager::get()->resetAndGoToScreen(MainMenuScreen::getInstance());
|
||||
OverWorld::enterOverWorld();
|
||||
int partId = -1;
|
||||
for (int i=0; i<(int)m_parts.size(); i++)
|
||||
{
|
||||
if (m_parts[i] == race_manager->getTrackName())
|
||||
{
|
||||
partId = i;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (partId == -1 || partId == (int)m_parts.size() - 1)
|
||||
{
|
||||
race_manager->exitRace();
|
||||
StateManager::get()->resetAndGoToScreen(MainMenuScreen::getInstance());
|
||||
OverWorld::enterOverWorld();
|
||||
}
|
||||
else
|
||||
{
|
||||
// 'exitRace' will destroy this object so get the next part right now
|
||||
std::string next_part = m_parts[partId + 1];
|
||||
|
||||
race_manager->exitRace();
|
||||
race_manager->startSingleRace(next_part, 999, false);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
@@ -48,6 +48,8 @@ class CutsceneWorld : public World
|
||||
if (m_time < m_duration - 2.0f) m_duration = m_time + 2.0f;
|
||||
}
|
||||
|
||||
std::vector<std::string> m_parts;
|
||||
|
||||
public:
|
||||
|
||||
CutsceneWorld();
|
||||
@@ -59,6 +61,11 @@ public:
|
||||
virtual bool isRaceOver() OVERRIDE;
|
||||
virtual void terminateRace() OVERRIDE;
|
||||
|
||||
void setParts(std::vector<std::string> parts)
|
||||
{
|
||||
m_parts = parts;
|
||||
}
|
||||
|
||||
// overriding World methods
|
||||
virtual void restartRace() OVERRIDE;
|
||||
|
||||
|
||||
@@ -34,6 +34,7 @@
|
||||
#include "io/file_manager.hpp"
|
||||
#include "karts/kart_properties_manager.hpp"
|
||||
#include "main_loop.hpp"
|
||||
#include "modes/cutscene_world.hpp"
|
||||
#include "modes/overworld.hpp"
|
||||
#include "modes/demo_world.hpp"
|
||||
#include "network/network_manager.hpp"
|
||||
@@ -196,8 +197,13 @@ void MainMenuScreen::eventCallback(Widget* widget, const std::string& name,
|
||||
race_manager->setNumKarts( 0 );
|
||||
race_manager->setNumPlayers(0);
|
||||
race_manager->setNumLocalPlayers(0);
|
||||
//race_manager->startSingleRace("introcutscene", 999, false);
|
||||
race_manager->startSingleRace("introcutscene2", 999, false);
|
||||
race_manager->startSingleRace("introcutscene", 999, false);
|
||||
|
||||
std::vector<std::string> parts;
|
||||
parts.push_back("introcutscene");
|
||||
parts.push_back("introcutscene2");
|
||||
((CutsceneWorld*)World::getWorld())->setParts(parts);
|
||||
//race_manager->startSingleRace("introcutscene2", 999, false);
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user