correcting the ai kart bug due to the former networking removal
git-svn-id: svn+ssh://svn.code.sf.net/p/supertuxkart/code/main/branches/networking@13088 178a84e3-b1eb-0310-8ba1-8eac791a3b58
This commit is contained in:
parent
6b35cbb8fd
commit
ed6e4ebfb4
@ -33,7 +33,6 @@
|
||||
#include "karts/kart_properties.hpp"
|
||||
#include "modes/three_strikes_battle.hpp"
|
||||
#include "modes/world.hpp"
|
||||
#include "network/network_manager.hpp"
|
||||
#include "utils/constants.hpp"
|
||||
|
||||
/** Initialises the attachment each kart has.
|
||||
@ -257,17 +256,6 @@ void Attachment::hitBanana(Item *item, int new_attachment)
|
||||
new_attachment = m_random.get(3);
|
||||
} // switch
|
||||
|
||||
// Save the information about the attachment in the race state
|
||||
// so that the clients can be updated.
|
||||
if(NetworkManager::getInstance()->isPlayingOnline()) // if we're online
|
||||
{
|
||||
/*
|
||||
race_state->itemCollected(m_kart->getWorldKartId(),
|
||||
item->getItemId(),
|
||||
new_attachment);*/
|
||||
//NETWORK_UPDATE_PLZ
|
||||
}
|
||||
|
||||
if (add_a_new_item)
|
||||
{
|
||||
switch (new_attachment)
|
||||
|
@ -409,21 +409,6 @@ bool Flyable::updateAndDelete(float dt)
|
||||
return false;
|
||||
} // updateAndDelete
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
/** Updates the position of a projectile based on information received frmo the
|
||||
* server.
|
||||
*/
|
||||
void Flyable::updateFromServer(const FlyableInfo &f, float dt)
|
||||
{
|
||||
/*
|
||||
setXYZ(f.m_xyz);
|
||||
setRotation(f.m_rotation);
|
||||
*/
|
||||
// Update the graphical position
|
||||
Moveable::update(dt);
|
||||
|
||||
} // updateFromServer
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
/** Returns true if the item hit the kart who shot it (to avoid that an item
|
||||
* that's too close to the shoter hits the shoter).
|
||||
|
@ -19,7 +19,6 @@
|
||||
// along with this program; if not, write to the Free Software
|
||||
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
|
||||
//NETWORK_UPDATE_PLZ
|
||||
#ifndef HEADER_FLYABLE_HPP
|
||||
#define HEADER_FLYABLE_HPP
|
||||
|
||||
@ -35,7 +34,6 @@ using namespace irr;
|
||||
#include "tracks/terrain_info.hpp"
|
||||
|
||||
class AbstractKart;
|
||||
class FlyableInfo;
|
||||
class HitEffect;
|
||||
class PhysicalObject;
|
||||
class XMLNode;
|
||||
@ -170,7 +168,6 @@ public:
|
||||
virtual bool updateAndDelete(float);
|
||||
virtual const core::stringw getHitString(const AbstractKart *kart) const = 0;
|
||||
virtual HitEffect* getHitEffect() const;
|
||||
void updateFromServer(const FlyableInfo &f, float dt);
|
||||
bool isOwnerImmunity(const AbstractKart *kart_hit) const;
|
||||
virtual bool hit(AbstractKart* kart, PhysicalObject* obj=NULL);
|
||||
void explode(AbstractKart* kart, PhysicalObject* obj=NULL,
|
||||
|
@ -29,7 +29,6 @@
|
||||
#include "io/file_manager.hpp"
|
||||
#include "karts/abstract_kart.hpp"
|
||||
#include "modes/linear_world.hpp"
|
||||
#include "network/network_manager.hpp"
|
||||
#include "tracks/quad_graph.hpp"
|
||||
#include "tracks/track.hpp"
|
||||
#include "utils/string_utils.hpp"
|
||||
@ -289,9 +288,6 @@ void ItemManager::collectedItem(Item *item, AbstractKart *kart, int add_info)
|
||||
*/
|
||||
void ItemManager::checkItemHit(AbstractKart* kart)
|
||||
{
|
||||
// Only do this on the server
|
||||
if(NetworkManager::getInstance()->isServer()) return;
|
||||
|
||||
// We could use m_items_in_quads to to check for item hits: take the quad
|
||||
// of the graph node of the kart, and only check items in that quad. But
|
||||
// then we also need to check for any adjacent quads (since an item just
|
||||
|
@ -16,7 +16,6 @@
|
||||
// along with this program; if not, write to the Free Software
|
||||
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
|
||||
//NETWORK_UPDATE_PLZ
|
||||
#include "items/powerup.hpp"
|
||||
|
||||
#include "audio/sfx_base.hpp"
|
||||
|
@ -16,8 +16,6 @@
|
||||
// along with this program; if not, write to the Free Software
|
||||
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
|
||||
//NETWORK_UPDATE_PLZ
|
||||
|
||||
#include "items/projectile_manager.hpp"
|
||||
|
||||
#include "graphics/explosion.hpp"
|
||||
@ -28,7 +26,6 @@
|
||||
#include "items/powerup_manager.hpp"
|
||||
#include "items/powerup.hpp"
|
||||
#include "items/rubber_ball.hpp"
|
||||
#include "network/network_manager.hpp"
|
||||
|
||||
ProjectileManager *projectile_manager=0;
|
||||
|
||||
@ -67,15 +64,7 @@ void ProjectileManager::cleanup()
|
||||
/** General projectile update call. */
|
||||
void ProjectileManager::update(float dt)
|
||||
{
|
||||
|
||||
if(NetworkManager::getInstance()->isClient())
|
||||
{
|
||||
updateClient(dt);
|
||||
}
|
||||
else
|
||||
{
|
||||
updateServer(dt);
|
||||
}
|
||||
updateServer(dt);
|
||||
|
||||
HitEffects::iterator he = m_active_hit_effects.begin();
|
||||
while(he!=m_active_hit_effects.end())
|
||||
@ -102,25 +91,10 @@ void ProjectileManager::update(float dt)
|
||||
/** Updates all rockets on the server (or no networking). */
|
||||
void ProjectileManager::updateServer(float dt)
|
||||
{
|
||||
// First update all projectiles on the track
|
||||
|
||||
if(NetworkManager::getInstance()->isPlayingOnline()) //network_manager->getMode()!=NetworkManager::NW_NONE)
|
||||
{
|
||||
//race_state->setNumFlyables(m_active_projectiles.size());
|
||||
}
|
||||
|
||||
|
||||
Projectiles::iterator p = m_active_projectiles.begin();
|
||||
while(p!=m_active_projectiles.end())
|
||||
{
|
||||
bool can_be_deleted = (*p)->updateAndDelete(dt);
|
||||
if(NetworkManager::getInstance()->isPlayingOnline()) //network_manager->getMode()!=NetworkManager::NW_NONE)
|
||||
{
|
||||
/*race_state->setFlyableInfo(p-m_active_projectiles.begin(),
|
||||
FlyableInfo((*p)->getXYZ(),
|
||||
(*p)->getRotation(),
|
||||
can_be_deleted) );*/
|
||||
}
|
||||
if(can_be_deleted)
|
||||
{
|
||||
HitEffect *he = (*p)->getHitEffect();
|
||||
@ -137,31 +111,6 @@ void ProjectileManager::updateServer(float dt)
|
||||
|
||||
} // updateServer
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
/** Updates all rockets and hit effects on the client.
|
||||
* updateClient takes the information in race_state and updates all rockets
|
||||
* (i.e. position, hit effects etc) */
|
||||
void ProjectileManager::updateClient(float dt)
|
||||
{
|
||||
/*
|
||||
unsigned int num_projectiles = race_state->getNumFlyables();
|
||||
if(num_projectiles != m_active_projectiles.size())
|
||||
fprintf(stderr, "Warning: num_projectiles %d active %d\n",
|
||||
num_projectiles, (int)m_active_projectiles.size());
|
||||
|
||||
unsigned int indx=0;
|
||||
for(Projectiles::iterator i = m_active_projectiles.begin();
|
||||
i != m_active_projectiles.end(); ++i, ++indx)
|
||||
{
|
||||
const FlyableInfo &f = race_state->getFlyable(indx);
|
||||
(*i)->updateFromServer(f, dt);
|
||||
if(f.m_exploded)
|
||||
{
|
||||
(*i)->hit(NULL);
|
||||
}
|
||||
} // for i in m_active_projectiles
|
||||
*/
|
||||
} // updateClient
|
||||
// -----------------------------------------------------------------------------
|
||||
Flyable *ProjectileManager::newProjectile(AbstractKart *kart, Track* track,
|
||||
PowerupManager::PowerupType type)
|
||||
|
@ -53,7 +53,6 @@ private:
|
||||
* being shown or have a sfx playing. */
|
||||
HitEffects m_active_hit_effects;
|
||||
|
||||
void updateClient(float dt);
|
||||
void updateServer(float dt);
|
||||
public:
|
||||
ProjectileManager() {}
|
||||
|
@ -43,7 +43,6 @@
|
||||
#include "karts/max_speed.hpp"
|
||||
#include "karts/rescue_animation.hpp"
|
||||
#include "modes/linear_world.hpp"
|
||||
#include "network/network_manager.hpp"
|
||||
#include "race/race_manager.hpp"
|
||||
#include "states_screens/race_result_gui.hpp"
|
||||
#include "tracks/quad_graph.hpp"
|
||||
|
@ -19,7 +19,6 @@
|
||||
#ifndef HEADER_KART_CONTROL_HPP
|
||||
#define HEADER_KART_CONTROL_HPP
|
||||
|
||||
//NETWORK_UPDATE_PLZ
|
||||
|
||||
/**
|
||||
* \ingroup controller
|
||||
|
@ -54,7 +54,6 @@
|
||||
#include "items/powerup.hpp"
|
||||
#include "modes/linear_world.hpp"
|
||||
#include "modes/profile_world.hpp"
|
||||
#include "network/network_manager.hpp"
|
||||
#include "race/race_manager.hpp"
|
||||
#include "tracks/quad_graph.hpp"
|
||||
#include "tracks/track.hpp"
|
||||
@ -297,13 +296,6 @@ void SkiddingAI::update(float dt)
|
||||
return;
|
||||
#endif
|
||||
|
||||
// The client does not do any AI computations.
|
||||
if(NetworkManager::getInstance()->isClient())
|
||||
{
|
||||
AIBaseController::update(dt);
|
||||
return;
|
||||
}
|
||||
|
||||
// If the kart needs to be rescued, do it now (and nothing else)
|
||||
if(isStuck() && !m_kart->getKartAnimation())
|
||||
{
|
||||
|
@ -57,7 +57,6 @@
|
||||
#include "karts/max_speed.hpp"
|
||||
#include "karts/skidding.hpp"
|
||||
#include "modes/linear_world.hpp"
|
||||
#include "network/network_manager.hpp"
|
||||
#include "physics/btKart.hpp"
|
||||
#include "physics/btKartRaycast.hpp"
|
||||
#include "physics/btUprightConstraint.hpp"
|
||||
@ -80,8 +79,6 @@
|
||||
# include <math.h>
|
||||
#endif
|
||||
|
||||
//NETWORK_UPDATE_PLZ
|
||||
|
||||
/** The kart constructor.
|
||||
* \param ident The identifier for the kart model to use.
|
||||
* \param position The position (or rank) for this kart (between 1 and
|
||||
@ -875,15 +872,6 @@ void Kart::collectedItem(Item *item, int add_info)
|
||||
default : break;
|
||||
} // switch TYPE
|
||||
|
||||
// Attachments and powerups are stored in the corresponding
|
||||
// functions (hit{Red,Green}Item), so only coins need to be
|
||||
// stored here.
|
||||
/*if(NetworkManager::getInstance()->isServer() &&
|
||||
(type==Item::ITEM_NITRO_BIG || type==Item::ITEM_NITRO_SMALL) )
|
||||
{
|
||||
race_state->itemCollected(getWorldKartId(), item->getItemId());
|
||||
}*/
|
||||
|
||||
if ( m_collected_energy > m_kart_properties->getNitroMax())
|
||||
m_collected_energy = m_kart_properties->getNitroMax();
|
||||
m_controller->collectedItem(*item, add_info, old_energy);
|
||||
@ -1015,14 +1003,6 @@ void Kart::update(float dt)
|
||||
|
||||
m_slipstream->update(dt);
|
||||
|
||||
// Store the actual kart controls at the start of update in the server
|
||||
// state. This makes it easier to reset some fields when they are not used
|
||||
// anymore (e.g. controls.fire).
|
||||
if(NetworkManager::getInstance()->isServer())
|
||||
{
|
||||
//race_state->storeKartControls(*this);
|
||||
}
|
||||
|
||||
if (!m_flying)
|
||||
{
|
||||
// When really on air, free fly, when near ground, try to glide / adjust for landing
|
||||
|
@ -1476,7 +1476,7 @@ int main(int argc, char *argv[] )
|
||||
{
|
||||
// This will setup the race manager etc.
|
||||
history->Load();
|
||||
// network_manager->setupPlayerKartInfo();
|
||||
race_manager->setupPlayerKartInfo();
|
||||
race_manager->startNew(false);
|
||||
main_loop->run();
|
||||
// well, actually run() will never return, since
|
||||
@ -1494,7 +1494,7 @@ int main(int argc, char *argv[] )
|
||||
// Quickstart (-N)
|
||||
// ===============
|
||||
// all defaults are set in InitTuxkart()
|
||||
// network_manager->setupPlayerKartInfo();
|
||||
race_manager->setupPlayerKartInfo();
|
||||
race_manager->startNew(false);
|
||||
}
|
||||
}
|
||||
@ -1504,7 +1504,7 @@ int main(int argc, char *argv[] )
|
||||
// =========
|
||||
race_manager->setMajorMode (RaceManager::MAJOR_MODE_SINGLE);
|
||||
race_manager->setDifficulty(RaceManager::DIFFICULTY_HARD);
|
||||
// network_manager->setupPlayerKartInfo();
|
||||
race_manager->setupPlayerKartInfo();
|
||||
race_manager->startNew(false);
|
||||
}
|
||||
main_loop->run();
|
||||
|
@ -29,7 +29,6 @@
|
||||
#include "input/wiimote_manager.hpp"
|
||||
#include "modes/profile_world.hpp"
|
||||
#include "modes/world.hpp"
|
||||
#include "network/network_manager.hpp"
|
||||
#include "race/race_manager.hpp"
|
||||
#include "states_screens/state_manager.hpp"
|
||||
#include "utils/profiler.hpp"
|
||||
@ -94,21 +93,8 @@ float MainLoop::getLimitedDt()
|
||||
*/
|
||||
void MainLoop::updateRace(float dt)
|
||||
{
|
||||
// Server: Send the current position and previous controls to all clients
|
||||
// Client: send current controls to server
|
||||
// But don't do this if the race is in finish phase (otherwise
|
||||
// messages can be mixed up in the race manager)
|
||||
/*if(!World::getWorld()->isFinishPhase())
|
||||
network_manager->sendUpdates();*/
|
||||
if(ProfileWorld::isProfileMode()) dt=1.0f/60.0f;
|
||||
|
||||
// Again, only receive updates if the race isn't over - once the
|
||||
// race results are displayed (i.e. game is in finish phase)
|
||||
// messages must be handled by the normal update of the network
|
||||
// manager
|
||||
/*if(!World::getWorld()->isFinishPhase())
|
||||
network_manager->receiveUpdates();*/
|
||||
|
||||
World::getWorld()->updateWorld(dt);
|
||||
} // updateRace
|
||||
|
||||
@ -127,13 +113,8 @@ void MainLoop::run()
|
||||
m_prev_time = m_curr_time;
|
||||
float dt = getLimitedDt();
|
||||
|
||||
// network_manager->update(dt);
|
||||
|
||||
if (World::getWorld()) // race is active if world exists
|
||||
{
|
||||
// Busy wait if race_manager is active (i.e. creating of world is done)
|
||||
// till all clients have reached this state.
|
||||
//if (network_manager->getState()==NetworkManager::NS_READY_SET_GO_BARRIER) continue;
|
||||
updateRace(dt);
|
||||
} // if race is active
|
||||
|
||||
|
@ -21,7 +21,6 @@
|
||||
#include "guiengine/modaldialog.hpp"
|
||||
#include "input/device_manager.hpp"
|
||||
#include "input/input_manager.hpp"
|
||||
#include "network/network_manager.hpp"
|
||||
#include "race/race_manager.hpp"
|
||||
#include "tracks/track.hpp"
|
||||
#include "tracks/track_manager.hpp"
|
||||
@ -149,7 +148,7 @@ bool DemoWorld::updateIdleTimeAndStartDemo(float dt)
|
||||
m_do_demo = true;
|
||||
race_manager->setNumKarts(m_num_karts);
|
||||
race_manager->setLocalKartInfo(0, "tux");
|
||||
// network_manager->setupPlayerKartInfo();
|
||||
race_manager->setupPlayerKartInfo();
|
||||
race_manager->startSingleRace(m_demo_tracks[0], m_num_laps, false);
|
||||
m_demo_tracks.push_back(m_demo_tracks[0]);
|
||||
m_demo_tracks.erase(m_demo_tracks.begin());
|
||||
|
@ -25,7 +25,6 @@
|
||||
#include "karts/abstract_kart.hpp"
|
||||
#include "karts/controller/controller.hpp"
|
||||
#include "karts/kart_properties.hpp"
|
||||
#include "network/network_manager.hpp"
|
||||
#include "physics/physics.hpp"
|
||||
#include "race/history.hpp"
|
||||
#include "states_screens/race_gui_base.hpp"
|
||||
@ -319,13 +318,7 @@ void LinearWorld::newLap(unsigned int kart_index)
|
||||
// Race finished
|
||||
if(kart_info.m_race_lap >= race_manager->getNumLaps() && raceHasLaps())
|
||||
{
|
||||
// A client does not detect race finished by itself, it will
|
||||
// receive a message from the server. So a client does not do
|
||||
// anything here.
|
||||
/*if(network_manager->getMode()!=NetworkManager::NW_CLIENT)
|
||||
{
|
||||
kart->finishedRace(getTime());
|
||||
}*/
|
||||
kart->finishedRace(getTime());
|
||||
}
|
||||
float time_per_lap;
|
||||
if (kart_info.m_race_lap == 1) // just completed first lap
|
||||
|
@ -27,7 +27,6 @@
|
||||
#include "karts/rescue_animation.hpp"
|
||||
#include "modes/overworld.hpp"
|
||||
#include "physics/physics.hpp"
|
||||
#include "network/network_manager.hpp"
|
||||
#include "states_screens/dialogs/select_challenge.hpp"
|
||||
#include "states_screens/kart_selection.hpp"
|
||||
#include "states_screens/race_gui_overworld.hpp"
|
||||
@ -83,7 +82,7 @@ void OverWorld::enterOverWorld()
|
||||
->setSinglePlayer( StateManager::get()->getActivePlayer(0) );
|
||||
|
||||
StateManager::get()->enterGameState();
|
||||
// network_manager->setupPlayerKartInfo();
|
||||
race_manager->setupPlayerKartInfo();
|
||||
race_manager->startNew(false);
|
||||
if(race_manager->haveKartLastPositionOnOverworld()){
|
||||
OverWorld *ow = (OverWorld*)World::getWorld();
|
||||
|
@ -117,7 +117,6 @@ World::World() : WorldStatus(), m_clear_color(255,100,101,140)
|
||||
*/
|
||||
void World::init()
|
||||
{
|
||||
// race_state = new RaceState();
|
||||
m_faster_music_active = false;
|
||||
m_fastest_kart = 0;
|
||||
m_eliminated_karts = 0;
|
||||
@ -173,8 +172,6 @@ void World::init()
|
||||
if(ReplayPlay::get())
|
||||
ReplayPlay::get()->Load();
|
||||
|
||||
// network_manager->worldLoaded();
|
||||
|
||||
powerup_manager->updateWeightsForRace(num_karts);
|
||||
} // init
|
||||
|
||||
@ -359,7 +356,6 @@ World::~World()
|
||||
// gui and this must be deleted.
|
||||
delete m_race_gui;
|
||||
}
|
||||
// delete race_state;
|
||||
|
||||
for ( unsigned int i = 0 ; i < m_karts.size() ; i++ )
|
||||
delete m_karts[i];
|
||||
@ -747,7 +743,7 @@ void World::updateWorld(float dt)
|
||||
->setSinglePlayer( StateManager::get()->getActivePlayer(0) );
|
||||
|
||||
StateManager::get()->enterGameState();
|
||||
// network_manager->setupPlayerKartInfo();
|
||||
race_manager->setupPlayerKartInfo();
|
||||
race_manager->startNew(false);
|
||||
}
|
||||
else
|
||||
@ -800,11 +796,8 @@ void World::update(float dt)
|
||||
if(ReplayPlay::get()) ReplayPlay::get()->update(dt);
|
||||
if(history->replayHistory()) dt=history->getNextDelta();
|
||||
WorldStatus::update(dt);
|
||||
// Clear race state so that new information can be stored
|
||||
// race_state->clear();
|
||||
|
||||
// if(network_manager->getMode()!=NetworkManager::NW_CLIENT &&
|
||||
// !history->dontDoPhysics())
|
||||
if (!history->dontDoPhysics())
|
||||
{
|
||||
m_physics->update(dt);
|
||||
}
|
||||
|
@ -26,7 +26,6 @@
|
||||
#include "karts/abstract_kart.hpp"
|
||||
#include "modes/world.hpp"
|
||||
#include "tracks/track.hpp"
|
||||
#include "network/network_manager.hpp"
|
||||
|
||||
#include <irrlicht.h>
|
||||
|
||||
@ -112,8 +111,6 @@ void WorldStatus::enterRaceOverState()
|
||||
*/
|
||||
void WorldStatus::terminateRace()
|
||||
{
|
||||
// if(network_manager->getMode()==NetworkManager::NW_SERVER)
|
||||
// network_manager->sendRaceResults();
|
||||
} // terminateRace
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
|
@ -23,7 +23,6 @@
|
||||
#include "karts/kart_properties.hpp"
|
||||
#include "karts/rescue_animation.hpp"
|
||||
#include "items/flyable.hpp"
|
||||
#include "items/item.hpp"
|
||||
#include "modes/world.hpp"
|
||||
#include "graphics/stars.hpp"
|
||||
#include "karts/explosion_animation.hpp"
|
||||
@ -159,8 +158,6 @@ void Physics::update(float dt)
|
||||
{
|
||||
AbstractKart *a=p->getUserPointer(0)->getPointerKart();
|
||||
AbstractKart *b=p->getUserPointer(1)->getPointerKart();
|
||||
// race_state->addCollision(a->getWorldKartId(),
|
||||
// b->getWorldKartId());
|
||||
KartKartCollision(p->getUserPointer(0)->getPointerKart(),
|
||||
p->getContactPointCS(0),
|
||||
p->getUserPointer(1)->getPointerKart(),
|
||||
@ -446,7 +443,6 @@ btScalar Physics::solveGroup(btCollisionObject** bodies, int numBodies,
|
||||
else if(upB->is(UserPointer::UP_KART))
|
||||
{
|
||||
AbstractKart *kart=upB->getPointerKart();
|
||||
// race_state->addCollision(kart->getWorldKartId());
|
||||
int n = contact_manifold->getContactPoint(0).m_index0;
|
||||
const Material *m
|
||||
= n>=0 ? upA->getPointerTriangleMesh()->getMaterial(n)
|
||||
@ -466,7 +462,6 @@ btScalar Physics::solveGroup(btCollisionObject** bodies, int numBodies,
|
||||
if(upB->is(UserPointer::UP_TRACK))
|
||||
{
|
||||
AbstractKart *kart = upA->getPointerKart();
|
||||
// race_state->addCollision(kart->getWorldKartId());
|
||||
int n = contact_manifold->getContactPoint(0).m_index1;
|
||||
const Material *m
|
||||
= n>=0 ? upB->getPointerTriangleMesh()->getMaterial(n)
|
||||
|
@ -42,7 +42,6 @@
|
||||
#include "modes/world.hpp"
|
||||
#include "modes/three_strikes_battle.hpp"
|
||||
#include "modes/soccer_world.hpp"
|
||||
#include "network/network_manager.hpp"
|
||||
#include "states_screens/grand_prix_lose.hpp"
|
||||
#include "states_screens/grand_prix_win.hpp"
|
||||
#include "states_screens/kart_selection.hpp"
|
||||
@ -143,9 +142,9 @@ void RaceManager::setLocalKartInfo(unsigned int player_id,
|
||||
assert(0<=player_id && player_id <m_local_player_karts.size());
|
||||
assert(kart_properties_manager->getKart(kart) != NULL);
|
||||
|
||||
/* m_local_player_karts[player_id] = RemoteKartInfo(player_id, kart,
|
||||
m_local_player_karts[player_id] = RemoteKartInfo(player_id, kart,
|
||||
StateManager::get()->getActivePlayerProfile(player_id)->getName(),
|
||||
network_manager->getMyHostId());*/
|
||||
0);
|
||||
} // setLocalKartInfo
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
@ -293,7 +292,7 @@ void RaceManager::startNew(bool from_overworld)
|
||||
// Create the kart status data structure to keep track of scores, times, ...
|
||||
// ==========================================================================
|
||||
m_kart_status.clear();
|
||||
printf("%u %lu %lu\n", (unsigned int)m_num_karts, m_ai_kart_list.size(), m_player_karts.size());
|
||||
Log::verbose("RaceManager", "Nb of karts=%u, ai:%lu players:%lu\n", (unsigned int)m_num_karts, m_ai_kart_list.size(), m_player_karts.size());
|
||||
|
||||
assert((unsigned int)m_num_karts == m_ai_kart_list.size()+m_player_karts.size());
|
||||
// First add the AI karts (randomly chosen)
|
||||
@ -321,8 +320,7 @@ void RaceManager::startNew(bool from_overworld)
|
||||
// -------------------------------------------------
|
||||
for(int i=m_player_karts.size()-1; i>=0; i--)
|
||||
{
|
||||
KartType kt= KT_PLAYER; //(m_player_karts[i].getHostId()==network_manager->getMyHostId())
|
||||
//? KT_PLAYER : KT_NETWORK_PLAYER;
|
||||
KartType kt= KT_PLAYER;
|
||||
m_kart_status.push_back(KartStatus(m_player_karts[i].getKartName(), i,
|
||||
m_player_karts[i].getLocalPlayerId(),
|
||||
m_player_karts[i].getGlobalPlayerId(),
|
||||
@ -509,21 +507,10 @@ void RaceManager::next()
|
||||
}
|
||||
user_config->saveConfig();
|
||||
}
|
||||
|
||||
// if(network_manager->getMode()==NetworkManager::NW_SERVER)
|
||||
// network_manager->beginReadySetGoBarrier();
|
||||
// else
|
||||
// network_manager->setState(NetworkManager::NS_WAIT_FOR_RACE_DATA);
|
||||
startNextRace();
|
||||
}
|
||||
else
|
||||
{
|
||||
// Back to main menu. Change the state of the state of the
|
||||
// network manager.
|
||||
// if(network_manager->getMode()==NetworkManager::NW_SERVER)
|
||||
// network_manager->setState(NetworkManager::NS_MAIN_MENU);
|
||||
// else
|
||||
// network_manager->setState(NetworkManager::NS_WAIT_FOR_AVAILABLE_CHARACTERS);
|
||||
exitRace();
|
||||
}
|
||||
} // next
|
||||
@ -753,7 +740,7 @@ void RaceManager::startGP(const GrandPrixData* gp, bool from_overworld)
|
||||
StateManager::get()->enterGameState();
|
||||
setGrandPrix(*gp);
|
||||
setCoinTarget( 0 ); // Might still be set from a previous challenge
|
||||
// network_manager->setupPlayerKartInfo();
|
||||
race_manager->setupPlayerKartInfo();
|
||||
|
||||
setMajorMode(RaceManager::MAJOR_MODE_GRAND_PRIX);
|
||||
startNew(from_overworld);
|
||||
@ -778,9 +765,36 @@ void RaceManager::startSingleRace(const std::string &track_ident,
|
||||
setMajorMode(RaceManager::MAJOR_MODE_SINGLE);
|
||||
|
||||
setCoinTarget( 0 ); // Might still be set from a previous challenge
|
||||
// network_manager->setupPlayerKartInfo();
|
||||
race_manager->setupPlayerKartInfo();
|
||||
|
||||
startNew(from_overworld);
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
/** Receive and store the information from sendKartsInformation()
|
||||
*/
|
||||
void RaceManager::setupPlayerKartInfo()
|
||||
{
|
||||
std::vector<RemoteKartInfo> m_kart_info;
|
||||
|
||||
// Get the local kart info
|
||||
for(unsigned int i=0; i<getNumLocalPlayers(); i++)
|
||||
m_kart_info.push_back(getLocalKartInfo(i));
|
||||
|
||||
// Now sort by (hostid, playerid)
|
||||
std::sort(m_kart_info.begin(), m_kart_info.end());
|
||||
|
||||
// Set the player kart information
|
||||
setNumPlayers(m_kart_info.size());
|
||||
|
||||
// Set the global player ID for each player
|
||||
for(unsigned int i=0; i<m_kart_info.size(); i++)
|
||||
{
|
||||
m_kart_info[i].setGlobalPlayerId(i);
|
||||
setPlayerKart(i, m_kart_info[i]);
|
||||
}
|
||||
|
||||
computeRandomKartList();
|
||||
} // setupPlayerKartInfo
|
||||
|
||||
/* EOF */
|
||||
|
@ -674,6 +674,9 @@ public:
|
||||
*/
|
||||
void startSingleRace(const std::string &track_ident, const int num_laps,
|
||||
bool from_overworld);
|
||||
/** Receive and store the information from sendKartsInformation()
|
||||
*/
|
||||
void setupPlayerKartInfo();
|
||||
|
||||
bool raceWasStartedFromOverworld() const
|
||||
{
|
||||
|
@ -228,7 +228,7 @@ GUIEngine::EventPropagation SelectChallengeDialog::processEvent(const std::strin
|
||||
}
|
||||
|
||||
// Sets up kart info, including random list of kart for AI
|
||||
// network_manager->setupPlayerKartInfo();
|
||||
race_manager->setupPlayerKartInfo();
|
||||
race_manager->startNew(true);
|
||||
|
||||
irr_driver->hidePointer();
|
||||
|
@ -28,7 +28,6 @@
|
||||
#include "io/file_manager.hpp"
|
||||
#include "karts/kart_properties.hpp"
|
||||
#include "karts/kart_properties_manager.hpp"
|
||||
#include "network/network_manager.hpp"
|
||||
#include "race/highscores.hpp"
|
||||
#include "race/highscore_manager.hpp"
|
||||
#include "race/race_manager.hpp"
|
||||
|
@ -24,7 +24,6 @@
|
||||
#include "input/device_manager.hpp"
|
||||
#include "input/input_manager.hpp"
|
||||
#include "karts/kart_properties_manager.hpp"
|
||||
#include "network/network_manager.hpp"
|
||||
#include "race/race_manager.hpp"
|
||||
#include "states_screens/help_screen_2.hpp"
|
||||
#include "states_screens/help_screen_3.hpp"
|
||||
@ -82,7 +81,7 @@ void HelpScreen1::eventCallback(Widget* widget, const std::string& name, const i
|
||||
->setSinglePlayer( StateManager::get()->getActivePlayer(0) );
|
||||
|
||||
StateManager::get()->enterGameState();
|
||||
// network_manager->setupPlayerKartInfo();
|
||||
race_manager->setupPlayerKartInfo();
|
||||
race_manager->startNew(false);
|
||||
}
|
||||
else if (name == "category")
|
||||
|
@ -37,7 +37,6 @@
|
||||
#include "modes/cutscene_world.hpp"
|
||||
#include "modes/overworld.hpp"
|
||||
#include "modes/demo_world.hpp"
|
||||
#include "network/network_manager.hpp"
|
||||
#include "states_screens/online_screen.hpp"
|
||||
#include "states_screens/addons_screen.hpp"
|
||||
#include "states_screens/credits.hpp"
|
||||
@ -332,7 +331,7 @@ void MainMenuScreen::eventCallback(Widget* widget, const std::string& name,
|
||||
->setSinglePlayer( StateManager::get()->getActivePlayer(0) );
|
||||
|
||||
StateManager::get()->enterGameState();
|
||||
// network_manager->setupPlayerKartInfo();
|
||||
race_manager->setupPlayerKartInfo();
|
||||
race_manager->startNew(false);
|
||||
}
|
||||
else if (selection == "story")
|
||||
|
Loading…
Reference in New Issue
Block a user