Xonotic QuakeC
The free, fast arena FPS with crisp movement and a wide array of weapons
sv_freezetag.qh File Reference
Include dependency graph for sv_freezetag.qh:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Functions

void freezetag_Initialize ()
void freezetag_Unfreeze (entity targ, bool reset_health)
 REGISTER_MUTATOR (ft, false)

Variables

int autocvar_g_freezetag_point_leadlimit
int autocvar_g_freezetag_point_limit
bool autocvar_g_freezetag_revive_auto = 1
int autocvar_g_freezetag_revive_auto_progress = 1
int autocvar_g_freezetag_revive_auto_reducible
float autocvar_g_freezetag_revive_auto_reducible_forcefactor = 0.01
float autocvar_g_freezetag_revive_auto_reducible_maxforce
float autocvar_g_freezetag_revive_extra_size
bool autocvar_g_freezetag_revive_nade
float autocvar_g_freezetag_revive_nade_health
float autocvar_g_freezetag_revive_spawnshield = 1
float autocvar_g_freezetag_revive_speed
float autocvar_g_freezetag_revive_speed_t2s = 0.25
float autocvar_g_freezetag_revive_time_to_score = 1.5
bool autocvar_g_freezetag_team_spawns
string autocvar_g_freezetag_weaponarena = "most_available"
bool autocvar_g_frozen_damage_trigger
float autocvar_g_frozen_force
float autocvar_g_frozen_revive_falldamage
int autocvar_g_frozen_revive_falldamage_health
float freeze_time
float freezetag_frozen_armor
float freezetag_frozen_force
float freezetag_frozen_time
float freezetag_frozen_timeout
float freezetag_revive_time
float freezetag_teams
entity frozen_by
const float ICE_MAX_ALPHA = 1
const float ICE_MIN_ALPHA = 0.1
entity iceblock
float revival_time
float revive_speed
const int ST_FT_ROUNDS = 1

Function Documentation

◆ freezetag_Initialize()

void freezetag_Initialize ( )

Definition at line 1022 of file sv_freezetag.qc.

1023{
1025 if(freezetag_teams < 2)
1026 freezetag_teams = cvar("g_freezetag_teams"); // read the cvar directly as it gets written earlier in the same frame
1027
1030 field_team(ST_FT_ROUNDS, "rounds", SFL_SORT_PRIO_PRIMARY);
1031 field(SP_FREEZETAG_REVIVALS, "revivals", 0);
1032 });
1033
1036
1038}
#define BITS(n)
Definition bits.qh:9
const int SFL_SORT_PRIO_PRIMARY
Definition scores.qh:134
void EliminatedPlayers_Init(float(entity) isEliminated_func)
float bound(float min, float value, float max)
float cvar(string name)
var void func_null()
void round_handler_Init(float the_delay, float the_count, float the_round_timelimit)
void round_handler_Spawn(bool() canRoundStart_func, bool() canRoundEnd_func, void() roundStart_func)
int autocvar_g_freezetag_teams_override
float autocvar_g_freezetag_warmup
bool freezetag_isEliminated(entity e)
bool freezetag_CheckTeams()
bool freezetag_CheckWinner()
float autocvar_g_freezetag_round_timelimit
const int ST_FT_ROUNDS
float freezetag_teams
#define GameRules_scoring(teams, spprio, stprio, fields)
Definition sv_rules.qh:58

References autocvar_g_freezetag_round_timelimit, autocvar_g_freezetag_teams_override, autocvar_g_freezetag_warmup, BITS, bound(), cvar(), EliminatedPlayers_Init(), freezetag_CheckTeams(), freezetag_CheckWinner(), freezetag_isEliminated(), freezetag_teams, func_null(), GameRules_scoring, round_handler_Init(), round_handler_Spawn(), SFL_SORT_PRIO_PRIMARY, and ST_FT_ROUNDS.

Referenced by REGISTER_MUTATOR().

◆ freezetag_Unfreeze()

void freezetag_Unfreeze ( entity targ,
bool reset_health )

Definition at line 250 of file sv_freezetag.qc.

251{
252 if(!STAT(FROZEN, targ))
253 return;
254
255 if (reset_health)
256 SetResource(targ, RES_HEALTH, ((IS_PLAYER(targ)) ? start_health : targ.max_health));
257
258 targ.pauseregen_finished = time + autocvar_g_balance_pause_health_regen;
259
260 STAT(FROZEN, targ) = false;
261 STAT(REVIVE_PROGRESS, targ) = 0;
262 targ.revival_time = time;
263 if(!targ.bot_attack)
264 IL_PUSH(g_bot_targets, targ);
265 targ.bot_attack = true;
266
267 WaypointSprite_Kill(targ.waypointsprite_attached);
268
270 {
271 for(int slot = 0; slot < MAX_WEAPONSLOTS; ++slot)
272 {
273 .entity weaponentity = weaponentities[slot];
274 if(it.(weaponentity).hook.aiment == targ)
275 RemoveHook(it.(weaponentity).hook);
276 }
277 });
278
279 // remove the ice block
280 if(targ.iceblock)
281 delete(targ.iceblock);
282 targ.iceblock = NULL;
283
284 targ.freezetag_frozen_time = 0;
285 targ.freezetag_frozen_timeout = 0;
286}
IntrusiveList g_bot_targets
Definition api.qh:149
void SetResource(entity e, Resource res_type, float amount)
Sets the current amount of resource the given entity will have.
#define IS_PLAYER(s)
Definition player.qh:243
float time
ERASEABLE entity IL_PUSH(IntrusiveList this, entity it)
Push to tail.
#define STAT(...)
Definition stats.qh:82
#define NULL
Definition post.qh:14
void RemoveHook(entity this)
Definition hook.qc:48
float autocvar_g_balance_pause_health_regen
#define FOREACH_CLIENT(cond, body)
Definition utils.qh:50
void WaypointSprite_Kill(entity wp)
const int MAX_WEAPONSLOTS
Definition weapon.qh:16
entity weaponentities[MAX_WEAPONSLOTS]
Definition weapon.qh:17
float start_health
Definition world.qh:96

References autocvar_g_balance_pause_health_regen, entity(), FOREACH_CLIENT, g_bot_targets, IL_PUSH(), IS_PLAYER, MAX_WEAPONSLOTS, NULL, RemoveHook(), SetResource(), start_health, STAT, time, WaypointSprite_Kill(), and weaponentities.

Referenced by ft_RemovePlayer(), MUTATOR_HOOKFUNCTION(), MUTATOR_HOOKFUNCTION(), MUTATOR_HOOKFUNCTION(), MUTATOR_HOOKFUNCTION(), MUTATOR_HOOKFUNCTION(), MUTATOR_HOOKFUNCTION(), and MUTATOR_HOOKFUNCTION().

◆ REGISTER_MUTATOR()

REGISTER_MUTATOR ( ft ,
false  )

Definition at line 15 of file sv_freezetag.qh.

16{
19 {
20 GameRules_teams(true);
24
26 }
27 return 0;
28}
#define MUTATOR_ONADD
Definition base.qh:309
#define MUTATOR_STATIC()
Definition base.qh:313
int autocvar_g_freezetag_point_leadlimit
int autocvar_g_freezetag_point_limit
void freezetag_Initialize()
bool autocvar_g_freezetag_team_spawns
void GameRules_limit_score(int limit)
Definition sv_rules.qc:23
void GameRules_teams(bool value)
Definition sv_rules.qc:3
void GameRules_limit_lead(int limit)
Definition sv_rules.qc:33
#define GameRules_spawning_teams(value)
Used to disable team spawns in team modes.
Definition sv_rules.qh:35

References autocvar_g_freezetag_point_leadlimit, autocvar_g_freezetag_point_limit, autocvar_g_freezetag_team_spawns, freezetag_Initialize(), GameRules_limit_lead(), GameRules_limit_score(), GameRules_spawning_teams, GameRules_teams(), MUTATOR_ONADD, and MUTATOR_STATIC.

Variable Documentation

◆ autocvar_g_freezetag_point_leadlimit

int autocvar_g_freezetag_point_leadlimit

Definition at line 7 of file sv_freezetag.qh.

Referenced by REGISTER_MUTATOR().

◆ autocvar_g_freezetag_point_limit

int autocvar_g_freezetag_point_limit

Definition at line 6 of file sv_freezetag.qh.

Referenced by REGISTER_MUTATOR().

◆ autocvar_g_freezetag_revive_auto

bool autocvar_g_freezetag_revive_auto = 1

Definition at line 39 of file sv_freezetag.qh.

Referenced by freezetag_Freeze(), MUTATOR_HOOKFUNCTION(), and MUTATOR_HOOKFUNCTION().

◆ autocvar_g_freezetag_revive_auto_progress

int autocvar_g_freezetag_revive_auto_progress = 1

Definition at line 40 of file sv_freezetag.qh.

Referenced by MUTATOR_HOOKFUNCTION().

◆ autocvar_g_freezetag_revive_auto_reducible

int autocvar_g_freezetag_revive_auto_reducible

Definition at line 41 of file sv_freezetag.qh.

Referenced by MUTATOR_HOOKFUNCTION().

◆ autocvar_g_freezetag_revive_auto_reducible_forcefactor

float autocvar_g_freezetag_revive_auto_reducible_forcefactor = 0.01

Definition at line 42 of file sv_freezetag.qh.

Referenced by MUTATOR_HOOKFUNCTION().

◆ autocvar_g_freezetag_revive_auto_reducible_maxforce

float autocvar_g_freezetag_revive_auto_reducible_maxforce

Definition at line 43 of file sv_freezetag.qh.

Referenced by MUTATOR_HOOKFUNCTION().

◆ autocvar_g_freezetag_revive_extra_size

float autocvar_g_freezetag_revive_extra_size

Definition at line 44 of file sv_freezetag.qh.

Referenced by MUTATOR_HOOKFUNCTION().

◆ autocvar_g_freezetag_revive_nade

bool autocvar_g_freezetag_revive_nade

Definition at line 48 of file sv_freezetag.qh.

Referenced by MUTATOR_HOOKFUNCTION(), and MUTATOR_HOOKFUNCTION().

◆ autocvar_g_freezetag_revive_nade_health

float autocvar_g_freezetag_revive_nade_health

Definition at line 49 of file sv_freezetag.qh.

Referenced by MUTATOR_HOOKFUNCTION().

◆ autocvar_g_freezetag_revive_spawnshield

float autocvar_g_freezetag_revive_spawnshield = 1

Definition at line 50 of file sv_freezetag.qh.

Referenced by MUTATOR_HOOKFUNCTION().

◆ autocvar_g_freezetag_revive_speed

float autocvar_g_freezetag_revive_speed

Definition at line 45 of file sv_freezetag.qh.

Referenced by MUTATOR_HOOKFUNCTION().

◆ autocvar_g_freezetag_revive_speed_t2s

float autocvar_g_freezetag_revive_speed_t2s = 0.25

Definition at line 46 of file sv_freezetag.qh.

Referenced by MUTATOR_HOOKFUNCTION().

◆ autocvar_g_freezetag_revive_time_to_score

float autocvar_g_freezetag_revive_time_to_score = 1.5

Definition at line 47 of file sv_freezetag.qh.

Referenced by MUTATOR_HOOKFUNCTION().

◆ autocvar_g_freezetag_team_spawns

bool autocvar_g_freezetag_team_spawns

Definition at line 8 of file sv_freezetag.qh.

Referenced by REGISTER_MUTATOR().

◆ autocvar_g_freezetag_weaponarena

string autocvar_g_freezetag_weaponarena = "most_available"

Definition at line 9 of file sv_freezetag.qh.

Referenced by MUTATOR_HOOKFUNCTION().

◆ autocvar_g_frozen_damage_trigger

bool autocvar_g_frozen_damage_trigger

Definition at line 53 of file sv_freezetag.qh.

Referenced by MUTATOR_HOOKFUNCTION().

◆ autocvar_g_frozen_force

float autocvar_g_frozen_force

Definition at line 54 of file sv_freezetag.qh.

Referenced by MUTATOR_HOOKFUNCTION().

◆ autocvar_g_frozen_revive_falldamage

float autocvar_g_frozen_revive_falldamage

Definition at line 51 of file sv_freezetag.qh.

Referenced by MUTATOR_HOOKFUNCTION().

◆ autocvar_g_frozen_revive_falldamage_health

int autocvar_g_frozen_revive_falldamage_health

Definition at line 52 of file sv_freezetag.qh.

Referenced by MUTATOR_HOOKFUNCTION().

◆ freeze_time

float freeze_time

Definition at line 59 of file sv_freezetag.qh.

Referenced by PlayerDamage().

◆ freezetag_frozen_armor

float freezetag_frozen_armor

Definition at line 34 of file sv_freezetag.qh.

◆ freezetag_frozen_force

float freezetag_frozen_force

Definition at line 33 of file sv_freezetag.qh.

◆ freezetag_frozen_time

float freezetag_frozen_time

Definition at line 31 of file sv_freezetag.qh.

◆ freezetag_frozen_timeout

float freezetag_frozen_timeout

Definition at line 32 of file sv_freezetag.qh.

◆ freezetag_revive_time

float freezetag_revive_time

Definition at line 30 of file sv_freezetag.qh.

◆ freezetag_teams

float freezetag_teams

◆ frozen_by

entity frozen_by

Definition at line 61 of file sv_freezetag.qh.

◆ ICE_MAX_ALPHA

const float ICE_MAX_ALPHA = 1

Definition at line 35 of file sv_freezetag.qh.

◆ ICE_MIN_ALPHA

const float ICE_MIN_ALPHA = 0.1

Definition at line 36 of file sv_freezetag.qh.

◆ iceblock

entity iceblock

Definition at line 60 of file sv_freezetag.qh.

◆ revival_time

float revival_time

Definition at line 57 of file sv_freezetag.qh.

◆ revive_speed

float revive_speed

Definition at line 58 of file sv_freezetag.qh.

◆ ST_FT_ROUNDS

const int ST_FT_ROUNDS = 1

Definition at line 11 of file sv_freezetag.qh.

Referenced by freezetag_CheckWinner(), and freezetag_Initialize().