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:
auria
2012-08-13 00:23:18 +00:00
parent d73421afbc
commit cd0ba32a65
3 changed files with 42 additions and 5 deletions

View File

@@ -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);
}
}
//-----------------------------------------------------------------------------

View File

@@ -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;

View File

@@ -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;
}