Removed m_local_player_karts vector from world.
git-svn-id: svn+ssh://svn.code.sf.net/p/supertuxkart/code/main/trunk@4678 178a84e3-b1eb-0310-8ba1-8eac791a3b58
This commit is contained in:
@@ -51,12 +51,14 @@ void ActivePlayer::setDevice(InputDevice* device)
|
||||
// ----------------------------------------------------------------------------
|
||||
PlayerKart* ActivePlayer::getKart()
|
||||
{
|
||||
const int amount = RaceManager::getWorld()->getCurrentNumLocalPlayers();
|
||||
for (int p=0; p<amount; p++)
|
||||
World *world = RaceManager::getWorld();
|
||||
const int num_karts = world->getNumKarts();
|
||||
for (int p=0; p<num_karts; p++)
|
||||
{
|
||||
if (RaceManager::getWorld()->getLocalPlayerKart(p)->getPlayer() == this)
|
||||
Kart *kart = world->getKart(p);
|
||||
if(kart->isPlayerKart() && ((PlayerKart*)kart)->getPlayer() == this)
|
||||
{
|
||||
return RaceManager::getWorld()->getLocalPlayerKart(p);
|
||||
return (PlayerKart*)kart;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -853,20 +853,22 @@ void IrrDriver::update(float dt)
|
||||
}
|
||||
else
|
||||
{
|
||||
RaceGUI *rg = RaceManager::getWorld()->getRaceGUI();
|
||||
for(unsigned int i=0; i<race_manager->getNumLocalPlayers(); i++)
|
||||
World *world = RaceManager::getWorld();
|
||||
RaceGUI *rg = world->getRaceGUI();
|
||||
for(unsigned int i=0; i<world->getNumKarts(); i++)
|
||||
{
|
||||
PlayerKart *pk=RaceManager::getWorld()->getLocalPlayerKart(i);
|
||||
pk->activateCamera();
|
||||
m_scene_manager->drawAll();
|
||||
|
||||
}
|
||||
Kart *kart=world->getKart(i);
|
||||
if(kart->getCamera())
|
||||
{
|
||||
kart->activateCamera();
|
||||
m_scene_manager->drawAll();
|
||||
} // if kart->Camera
|
||||
} // for i<world->getNumKarts()
|
||||
// To draw the race gui we set the viewport back to the full
|
||||
// screen.
|
||||
m_video_driver->setViewPort(core::recti(0, 0,
|
||||
UserConfigParams::m_width,
|
||||
UserConfigParams::m_height));
|
||||
World *world = RaceManager::getWorld();
|
||||
for(unsigned int i=0; i<world->getNumKarts(); i++)
|
||||
{
|
||||
Kart *kart = world->getKart(i);
|
||||
|
||||
@@ -90,7 +90,7 @@ void InputManager::handleStaticAction(int key, int value)
|
||||
#ifdef DEBUG
|
||||
static bool control_is_pressed=false;
|
||||
#endif
|
||||
|
||||
World *world=RaceManager::getWorld();
|
||||
switch (key)
|
||||
{
|
||||
#ifdef DEBUG
|
||||
@@ -102,7 +102,7 @@ void InputManager::handleStaticAction(int key, int value)
|
||||
case KEY_F1:
|
||||
if (race_manager->getNumPlayers() ==1 )
|
||||
{
|
||||
Kart* kart = RaceManager::getWorld()->getLocalPlayerKart(0);
|
||||
Kart* kart = world->getLocalPlayerKart(0);
|
||||
kart->setPowerup(POWERUP_BUBBLEGUM, 10000);
|
||||
projectile_manager->newExplosion(Vec3(0, 8, 0.5));
|
||||
}
|
||||
@@ -110,21 +110,21 @@ void InputManager::handleStaticAction(int key, int value)
|
||||
case KEY_F2:
|
||||
if (race_manager->getNumPlayers() ==1 )
|
||||
{
|
||||
Kart* kart = RaceManager::getPlayerKart(0);
|
||||
Kart* kart = world->getLocalPlayerKart(0);
|
||||
kart->setPowerup(POWERUP_PLUNGER, 10000);
|
||||
}
|
||||
break;
|
||||
case KEY_F3:
|
||||
if (race_manager->getNumPlayers() ==1 )
|
||||
{
|
||||
Kart* kart = RaceManager::getPlayerKart(0);
|
||||
Kart* kart = world->getLocalPlayerKart(0);
|
||||
kart->setPowerup(POWERUP_CAKE, 10000);
|
||||
}
|
||||
break;
|
||||
case KEY_F4:
|
||||
if (race_manager->getNumPlayers() ==1 )
|
||||
{
|
||||
Kart* kart = RaceManager::getPlayerKart(0);
|
||||
Kart* kart = world->getLocalPlayerKart(0);
|
||||
kart->setPowerup(POWERUP_SWITCH, 10000);
|
||||
}
|
||||
break;
|
||||
@@ -138,7 +138,7 @@ void InputManager::handleStaticAction(int key, int value)
|
||||
case KEY_F5:
|
||||
if (race_manager->getNumPlayers() ==1 )
|
||||
{
|
||||
Kart* kart = RaceManager::getPlayerKart(0);
|
||||
Kart* kart = world->getLocalPlayerKart(0);
|
||||
kart->setPowerup(POWERUP_BUBBLEGUM, 10000);
|
||||
}
|
||||
break;
|
||||
|
||||
@@ -95,7 +95,6 @@ Kart *ProfileWorld::createKart(const std::string &kart_ident, int index,
|
||||
}
|
||||
//m_local_player_karts[index] = static_cast<PlayerKart*>(newkart);
|
||||
//m_player_karts[index] = static_cast<PlayerKart*>(newkart);
|
||||
m_local_player_karts.clear();
|
||||
m_player_karts.clear();
|
||||
return newkart;
|
||||
} // createKart
|
||||
|
||||
@@ -112,7 +112,6 @@ void World::init()
|
||||
|
||||
m_player_karts.resize(race_manager->getNumPlayers());
|
||||
m_network_karts.resize(race_manager->getNumPlayers());
|
||||
m_local_player_karts.resize(race_manager->getNumLocalPlayers());
|
||||
|
||||
for(unsigned int i=0; i<num_karts; i++)
|
||||
{
|
||||
@@ -162,7 +161,6 @@ Kart *World::createKart(const std::string &kart_ident, int index,
|
||||
StateManager::get()->getActivePlayer(local_player_id),
|
||||
init_pos, local_player_id);
|
||||
m_player_karts[global_player_id] = (PlayerKart*)newkart;
|
||||
m_local_player_karts[local_player_id] = static_cast<PlayerKart*>(newkart);
|
||||
break;
|
||||
case RaceManager::KT_NETWORK_PLAYER:
|
||||
newkart = new NetworkKart(kart_ident, position, init_pos,
|
||||
@@ -464,14 +462,39 @@ void World::updateHighscores()
|
||||
//-----------------------------------------------------------------------------
|
||||
/** Returns the n-th player kart. Note that this function is O(N), not O(1),
|
||||
* so it shouldn't be called inside of loops.
|
||||
* \param n Index of player kart to return.
|
||||
*/
|
||||
PlayerKart *World::getPlayerKart(int player) const
|
||||
PlayerKart *World::getPlayerKart(int n) const
|
||||
{
|
||||
unsigned int count=-1;
|
||||
|
||||
for(unsigned int i=0; i<m_kart.size(); i++)
|
||||
if(m_kart[i]->isPlayerKart()) return (PlayerKart*)m_kart[i];
|
||||
if(m_kart[i]->isPlayerKart())
|
||||
{
|
||||
count++;
|
||||
if(count==n) return (PlayerKart*)m_kart[i];
|
||||
}
|
||||
return NULL;
|
||||
} // getPlayerKart
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
/** Returns the nth local player kart, i.e. a player kart that has a camera.
|
||||
* \param n Index of player kart to return.
|
||||
*/
|
||||
PlayerKart *World::getLocalPlayerKart(int n) const
|
||||
{
|
||||
unsigned int count=-1;
|
||||
for(unsigned int i=0; i<m_kart.size(); i++)
|
||||
{
|
||||
if(m_kart[i]->getCamera() && m_kart[i]->isPlayerKart())
|
||||
{
|
||||
count++;
|
||||
if(count==n) return (PlayerKart*)m_kart[i];
|
||||
}
|
||||
}
|
||||
return NULL;
|
||||
} // getLocalPlayerKart
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
/** Called in follow-leader-mode to remove the last kart
|
||||
*/
|
||||
|
||||
@@ -82,7 +82,6 @@ public:
|
||||
protected:
|
||||
|
||||
std::vector<PlayerKart*> m_player_karts;
|
||||
std::vector<PlayerKart*> m_local_player_karts;
|
||||
std::vector<NetworkKart*> m_network_karts;
|
||||
RandomGenerator m_random;
|
||||
|
||||
@@ -136,8 +135,7 @@ public:
|
||||
/** Returns a pointer to the race gui. */
|
||||
RaceGUI *getRaceGUI() const { return m_race_gui; }
|
||||
PlayerKart *getPlayerKart(int player) const;
|
||||
unsigned int getCurrentNumLocalPlayers() const { return m_local_player_karts.size(); }
|
||||
PlayerKart *getLocalPlayerKart(int n) const { return m_local_player_karts[n]; }
|
||||
PlayerKart *getLocalPlayerKart(int n) const;
|
||||
NetworkKart *getNetworkKart(int n) const { return m_network_karts[n]; }
|
||||
unsigned int getNumKarts() const { return m_kart.size(); }
|
||||
Kart *getKart(int kartId) const { assert(kartId >= 0 &&
|
||||
|
||||
@@ -26,12 +26,13 @@
|
||||
KartControlMessage::KartControlMessage()
|
||||
: Message(Message::MT_KART_CONTROL)
|
||||
{
|
||||
unsigned int num_local_players = RaceManager::getWorld()->getCurrentNumLocalPlayers();
|
||||
World *world=RaceManager::getWorld();
|
||||
unsigned int num_local_players = race_manager->getNumLocalPlayers();
|
||||
unsigned int control_size = KartControl::getLength();
|
||||
allocate(control_size*num_local_players);
|
||||
for(unsigned int i=0; i<num_local_players; i++)
|
||||
{
|
||||
const Kart *kart = RaceManager::getWorld()->getLocalPlayerKart(i);
|
||||
const Kart *kart = world->getLocalPlayerKart(i);
|
||||
const KartControl& controls = kart->getControls();
|
||||
controls.serialise(this);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user