diff --git a/src/modes/capture_the_flag.cpp b/src/modes/capture_the_flag.cpp index 7df82a517..50f6be2c8 100644 --- a/src/modes/capture_the_flag.cpp +++ b/src/modes/capture_the_flag.cpp @@ -109,9 +109,14 @@ video::SColor CaptureTheFlag::getColor(unsigned int kart_id) const // ---------------------------------------------------------------------------- bool CaptureTheFlag::isRaceOver() { - if (NetworkConfig::get()->isServer() && + if (NetworkConfig::get()->isNetworking() && + NetworkConfig::get()->isClient()) + return false; + + if ((m_count_down_reached_zero && race_manager->hasTimeTarget()) || (m_red_scores >= race_manager->getHitCaptureLimit() || m_blue_scores >= race_manager->getHitCaptureLimit())) return true; - return FreeForAll::isRaceOver(); + + return false; } // isRaceOver diff --git a/src/modes/free_for_all.hpp b/src/modes/free_for_all.hpp index 3ca6e2939..116976bfc 100644 --- a/src/modes/free_for_all.hpp +++ b/src/modes/free_for_all.hpp @@ -27,9 +27,10 @@ class NetworkString; class FreeForAll : public WorldWithRank { -private: +protected: bool m_count_down_reached_zero; +private: std::vector m_scores; // ------------------------------------------------------------------------ diff --git a/src/race/race_manager.hpp b/src/race/race_manager.hpp index 06e3d0e8d..4161ff9dc 100644 --- a/src/race/race_manager.hpp +++ b/src/race/race_manager.hpp @@ -88,7 +88,7 @@ public: */ enum MajorRaceModeType { - MAJOR_MODE_GRAND_PRIX, + MAJOR_MODE_GRAND_PRIX = 0, MAJOR_MODE_SINGLE, MAJOR_MODE_FREE_FOR_ALL, MAJOR_MODE_CAPTURE_THE_FLAG,