3 #include <server/spawnpoints.qh>
4 #include <server/teamplay.qh>
6 void GameRules_teams(bool value)
9 serverflags |= SERVERFLAG_TEAMPLAY;
11 cvar_set("teamplay", "2"); // DP needs this for sending proper getstatus replies.
12 GameRules_spawning_teams(true);
14 serverflags &= ~SERVERFLAG_TEAMPLAY;
16 cvar_set("teamplay", "0"); // DP needs this for sending proper getstatus replies.
17 GameRules_spawning_teams(false);
21 void GameRules_spawning_teams(bool value)
23 have_team_spawns = value ? -1 : 0;
26 bool _GameRules_score_enabled = true;
27 void GameRules_score_enabled(bool value)
29 _GameRules_score_enabled = value;
32 bool GameRules_limit_score_initialized;
33 void GameRules_limit_score(int limit)
35 if (GameRules_limit_score_initialized) return;
36 if (autocvar_g_campaign) return;
37 if (limit < 0) return;
38 cvar_set("fraglimit", ftos(limit));
39 GameRules_limit_score_initialized = true;
42 bool GameRules_limit_lead_initialized;
43 void GameRules_limit_lead(int limit)
45 if (GameRules_limit_lead_initialized) return;
46 if (autocvar_g_campaign) return;
47 if (limit < 0) return;
48 cvar_set("leadlimit", ftos(limit));
49 GameRules_limit_lead_initialized = true;
52 bool GameRules_limit_time_initialized;
53 void GameRules_limit_time(int limit)
55 if (GameRules_limit_time_initialized) return;
56 if (autocvar_g_campaign) return;
57 if (limit < 0) return;
58 cvar_set("timelimit", ftos(limit));
59 GameRules_limit_time_initialized = true;
62 bool GameRules_limit_time_qualifying_initialized;
63 void GameRules_limit_time_qualifying(int limit)
65 if (GameRules_limit_time_qualifying_initialized) return;
66 if (autocvar_g_campaign) return;
67 if (limit < 0) return;
68 cvar_set("g_race_qualifying_timelimit", ftos(limit));
69 GameRules_limit_time_qualifying_initialized = true;
72 void GameRules_limit_fallbacks()
74 GameRules_limit_score(autocvar_fraglimit_override);
75 GameRules_limit_lead(autocvar_leadlimit_override);
76 GameRules_limit_time(autocvar_timelimit_override);
79 void _GameRules_scoring_begin(int teams, float spprio, float stprio)
81 ScoreRules_basics(teams, spprio, stprio, _GameRules_score_enabled);
83 void _GameRules_scoring_field(entity i, string label, int scoreflags)
85 ScoreInfo_SetLabel_PlayerScore(i, label, scoreflags);
87 void _GameRules_scoring_field_team(float i, string label, int scoreflags)
89 ScoreInfo_SetLabel_TeamScore(i, label, scoreflags);
91 void _GameRules_scoring_end()
93 ScoreRules_basics_end();
96 .bool m_GameRules_scoring_vip;
97 void GameRules_scoring_vip(entity player, bool value)
99 player.m_GameRules_scoring_vip = value;
101 bool GameRules_scoring_is_vip(entity player)
103 return player.m_GameRules_scoring_vip;
106 float _GameRules_scoring_add(entity client, entity sp, float value)
108 return PlayerScore_Add(client, sp, value);
110 float _GameRules_scoring_add_team(entity client, entity sp, int st, float value)
112 return PlayerTeamScore_Add(client, sp, st, value);