#define DOMPOINTFRAGS frags
-float g_domination_point_amt;
-float g_domination_point_rate;
-
.float enemy_playerid;
.entity sprite;
.float captime;
float pps_blue;
float pps_yellow;
float pps_pink;
-void set_dom_state(entity e, float connecting)
+void set_dom_state(entity e)
{
- if(connecting) e.dom_total_pps = total_pps;
- e.dom_pps_red = pps_red;
- e.dom_pps_blue = pps_blue;
- if(c3 >= 0) e.dom_pps_yellow = pps_yellow;
- if(c4 >= 0) e.dom_pps_pink = pps_pink;
+ // BIG ugly hack to make stat sending work
+ e.dom_total_pps = total_pps;
+ e.dom_pps_red = pps_red;
+ e.dom_pps_blue = pps_blue;
+ if(c3 >= 0)
+ e.dom_pps_yellow = pps_yellow;
+ if(c4 >= 0)
+ e.dom_pps_pink = pps_pink;
}
void() dom_controlpoint_setup;
void LogDom(string mode, float team_before, entity actor)
{
string s;
- if(!cvar("sv_eventlog"))
+ if(!autocvar_sv_eventlog)
return;
s = strcat(":dom:", mode);
s = strcat(s, ":", ftos(team_before));
//bprint("\n");
float points, wait_time;
- if (g_domination_point_amt)
- points = g_domination_point_amt;
+ if (autocvar_g_domination_point_amt)
+ points = autocvar_g_domination_point_amt;
else
points = self.frags;
- if (g_domination_point_rate)
- wait_time = g_domination_point_rate;
+ if (autocvar_g_domination_point_rate)
+ wait_time = autocvar_g_domination_point_rate;
else
wait_time = self.wait;
bprint("^3", head.netname, "^3", self.message);
- bprint(" ^7(", ftos(points), " points every ", ftos(wait_time), " seconds)\n");
+ if (points != 1)
+ bprint(" ^7(", ftos(points), " points every ", ftos(wait_time), " seconds)\n");
+ else
+ bprint(" ^7(", ftos(points), " point every ", ftos(wait_time), " seconds)\n");
if(self.enemy.playerid == self.enemy_playerid)
PlayerScore_Add(self.enemy, SP_DOM_TAKES, 1);
if (head.noise1 != "")
play2all(head.noise1);
- //self.nextthink = time + cvar("g_domination_point_rate");
+ //self.nextthink = time + autocvar_g_domination_point_rate;
//self.think = dompointthink;
self.delay = time + wait_time;
WaypointSprite_UpdateSprites(self.sprite, "dom-pink", "", "");
}
- FOR_EACH_CLIENT(head)
- set_dom_state(head, FALSE);
-
WaypointSprite_UpdateTeamRadar(self.sprite, RADARICON_DOMPOINT, colormapPaletteColor(self.goalentity.team - 1, 0));
WaypointSprite_Ping(self.sprite);
self.captime = time;
+
+ FOR_EACH_REALCLIENT(head)
+ set_dom_state(head);
};
void AnimateDomPoint()
if (gameover || self.delay > time || time < game_starttime) // game has ended, don't keep giving points
return;
- if(g_domination_point_rate)
- self.delay = time + g_domination_point_rate;
+ if(autocvar_g_domination_point_rate)
+ self.delay = time + autocvar_g_domination_point_rate;
else
self.delay = time + self.wait;
// NOTE: this defaults to 0
if (self.goalentity.netname != "")
{
- if(g_domination_point_amt)
- fragamt = g_domination_point_amt;
+ if(autocvar_g_domination_point_amt)
+ fragamt = autocvar_g_domination_point_amt;
else
fragamt = self.DOMPOINTFRAGS;
TeamScore_AddToTeam(self.goalentity.team, ST_SCORE, fragamt);
void spawnfunc_dom_team()
{
- if(!g_domination || cvar("g_domination_teams_override") >= 2)
+ if(!g_domination || autocvar_g_domination_teams_override >= 2)
{
remove(self);
return;
if(!self.message)
self.message = " has captured a control point";
- if(!self.DOMPOINTFRAGS)
+ if(self.DOMPOINTFRAGS <= 0)
self.DOMPOINTFRAGS = 1;
- if(!self.wait)
+ if(self.wait <= 0)
self.wait = 5;
+ float points, waittime;
+ if (autocvar_g_domination_point_rate)
+ points = autocvar_g_domination_point_rate;
+ else
+ points = self.frags;
+ if (autocvar_g_domination_point_amt)
+ waittime = autocvar_g_domination_point_amt;
+ else
+ waittime = self.wait;
+
+ total_pps += points/waittime;
+
if(!self.t_width)
self.t_width = 0.02; // frame animation rate
if(!self.t_length)
float c1, c2, c3, c4, totalteams, smallestteam, smallestteam_count, selectedteam;
float balance_teams, force_balance, balance_type;
- balance_teams = cvar("g_balance_teams");
- balance_teams = cvar("g_balance_teams_force");
+ balance_teams = autocvar_g_balance_teams;
+ balance_teams = autocvar_g_balance_teams_force;
c1 = c2 = c3 = c4 = -1;
totalteams = 0;
//if(!self.glow_size)
// self.glow_size = cvar("g_domination_point_glow");
self.effects = self.effects | EF_LOWPRECISION;
- if (cvar("g_domination_point_fullbright"))
+ if (autocvar_g_domination_point_fullbright)
self.effects |= EF_FULLBRIGHT;
-
- float points, waittime;
- if (g_domination_point_rate)
- points += g_domination_point_rate;
- else
- points += self.frags;
- if (g_domination_point_amt)
- waittime += g_domination_point_amt;
- else
- waittime += self.wait;
- total_pps += points/waittime;
};
// code from here on is just to support maps that don't have control point and team entities
void dom_spawnteams()
{
float numteams;
- if(cvar("g_domination_teams_override") < 2)
- numteams = cvar("g_domination_default_teams");
+ if(autocvar_g_domination_teams_override < 2)
+ numteams = autocvar_g_domination_default_teams;
else
- numteams = cvar("g_domination_teams_override");
+ numteams = autocvar_g_domination_teams_override;
// LordHavoc: edit this if you want to change defaults
dom_spawnteam("Red", COLOR_TEAM1-1, "models/domination/dom_red.md3", 0, "domination/claim.wav", "", "Red team has captured a control point");
dom_spawnteam("Blue", COLOR_TEAM2-1, "models/domination/dom_blue.md3", 0, "domination/claim.wav", "", "Blue team has captured a control point");
local entity head;
// if no teams are found, spawn defaults, if custom teams are set, use them
- if (find(world, classname, "dom_team") == world || cvar("g_domination_teams_override") >= 2)
+ if (find(world, classname, "dom_team") == world || autocvar_g_domination_teams_override >= 2)
dom_spawnteams();
// if no control points are found, spawn defaults
if (find(world, classname, "dom_controlpoint") == world)
{
- // here follow default domination points for each map
- /*
- if (world.model == "maps/e1m1.bsp")
- {
- dom_spawnpoint('0 0 0');
- }
- else
- */
+ // TODO in a few months (maybe 2011/08): change this into error() and remove this very poor dom point selection
+ backtrace("This map contains no dom_controlpoint entities. A very poor dom point placement will be chosen. Please fix the map.");
+
+ // if no supported map was found, make every deathmatch spawn a point
+ head = find(world, classname, "info_player_deathmatch");
+ while (head)
{
- // if no supported map was found, make every deathmatch spawn a point
- head = find(world, classname, "info_player_deathmatch");
- while (head)
- {
- dom_spawnpoint(head.origin);
- head = find(head, classname, "info_player_deathmatch");
- }
+ dom_spawnpoint(head.origin);
+ head = find(head, classname, "info_player_deathmatch");
}
}
addstat(STAT_DOM_PPS_BLUE, AS_FLOAT, dom_pps_blue);
if(c3 >= 0) addstat(STAT_DOM_PPS_YELLOW, AS_FLOAT, dom_pps_yellow);
if(c4 >= 0) addstat(STAT_DOM_PPS_PINK, AS_FLOAT, dom_pps_pink);
-
- g_domination_point_rate = cvar("g_domination_point_rate");
- g_domination_point_amt = cvar("g_domination_point_amt");
-
- // teamplay is always on in domination, defaults to hurt self but not teammates
- //if(!teams_matter)
- // cvar_set("teamplay", "3");
};