1bool isNotCTF(Track::TrackObject@ obj)
2{
3    // enum RaceManager::MINOR_MODE_CAPTURE_THE_FLAG is 2002
4    return Track::getMinorRaceMode() != 2002;
5}
6
7bool isCTF(Track::TrackObject@ obj)
8{
9    return !isNotCTF(obj);
10}
11
12bool hasFlooding(Track::TrackObject@ obj)
13{
14    // Disable water flooding when there's AI karts because they can't handle it
15    int karts = Track::getNumberOfKarts();
16    int players = Track::getNumLocalPlayers();
17
18    // Always on in network game if not CTF
19    return isNotCTF(obj) &&
20        (Utils::isNetworking() || !(karts > players));
21}
22
23bool hasNoFlooding(Track::TrackObject@ obj)
24{
25    return !hasFlooding(obj);
26}
27