/** \brief Function to start the race with only ghost kart(s) and watch. * \param trackIdent Internal name of the track to race on * \param num_laps Number of laps to race, or -1 if number of laps is * not relevant in current mode */ void RaceManager::startWatchingReplay(const std::string &track_ident, const int num_laps) { assert(m_watching_replay && m_has_ghost_karts && !m_is_recording_race); StateManager::get()->enterGameState(); setTrack(track_ident); setNumLaps(num_laps); setMajorMode(RaceManager::MAJOR_MODE_SINGLE); setCoinTarget(0); m_num_karts = ReplayPlay::get()->getNumGhostKart(); m_kart_status.clear(); Log::verbose("RaceManager", "%u ghost kart(s) for watching replay only\n", (unsigned int)m_num_karts); int init_gp_rank = 0; for(int i = 0; i < m_num_karts; i++) { m_kart_status.push_back(KartStatus(ReplayPlay::get()->getGhostKartName(i), i, -1, -1, init_gp_rank, KT_GHOST, PLAYER_DIFFICULTY_NORMAL)); init_gp_rank ++; } m_track_number = 0; startNextRace(); } // startSingleRace
/** \brief Higher-level method to start a GP without having to care about * the exact startup sequence */ void RaceManager::startGP(const GrandPrixData &gp, bool from_overworld, bool continue_saved_gp) { StateManager::get()->enterGameState(); setGrandPrix(gp); race_manager->setupPlayerKartInfo(); m_continue_saved_gp = continue_saved_gp; setMajorMode(RaceManager::MAJOR_MODE_GRAND_PRIX); startNew(from_overworld); }
void RaceManager::startGP(const GrandPrixData* gp, bool from_overworld, bool continue_saved_gp) { assert(gp != NULL); StateManager::get()->enterGameState(); setGrandPrix(*gp); setCoinTarget( 0 ); // Might still be set from a previous challenge race_manager->setupPlayerKartInfo(); m_continue_saved_gp = continue_saved_gp; setMajorMode(RaceManager::MAJOR_MODE_GRAND_PRIX); startNew(from_overworld); }
/** \brief Higher-level method to start a GP without having to care about * the exact startup sequence. * \param trackIdent Internal name of the track to race on * \param num_laps Number of laps to race, or -1 if number of laps is * not relevant in current mode */ void RaceManager::startSingleRace(const std::string &track_ident, const int num_laps, bool from_overworld) { StateManager::get()->enterGameState(); setTrack(track_ident.c_str()); if (num_laps != -1) setNumLaps( num_laps ); setMajorMode(RaceManager::MAJOR_MODE_SINGLE); setCoinTarget( 0 ); // Might still be set from a previous challenge if (!NetworkWorld::getInstance<NetworkWorld>()->isRunning()) // if not in a network world race_manager->setupPlayerKartInfo(); // do this setup player kart startNew(from_overworld); }
/** \brief Higher-level method to start a GP without having to care about * the exact startup sequence. * \param trackIdent Internal name of the track to race on * \param num_laps Number of laps to race, or -1 if number of laps is * not relevant in current mode */ void RaceManager::startSingleRace(const std::string &track_ident, const int num_laps, bool from_overworld) { assert(!m_watching_replay); StateManager::get()->enterGameState(); setTrack(track_ident); if (num_laps != -1) setNumLaps( num_laps ); setMajorMode(RaceManager::MAJOR_MODE_SINGLE); setCoinTarget( 0 ); // Might still be set from a previous challenge // if not in a network world, setup player karts if (!RaceEventManager::getInstance<RaceEventManager>()->isRunning()) race_manager->setupPlayerKartInfo(); // do this setup player kart startNew(from_overworld); } // startSingleRace