From: Juhu <5894800-Juhu_@users.noreply.gitlab.com> Date: Mon, 24 Jan 2022 14:41:33 +0000 (+0100) Subject: make sure all g_br_* cvars are handled server side X-Git-Url: https://git.rm.cloudns.org/?a=commitdiff_plain;h=c90bb54a6cea29fccba973bce75b6508a4f8b453;p=xonotic%2Fxonotic-data.pk3dir.git make sure all g_br_* cvars are handled server side --- diff --git a/qcsrc/common/gamemodes/gamemode/br/cl_ring.qc b/qcsrc/common/gamemodes/gamemode/br/cl_ring.qc index 3a946511d..17a8791c7 100644 --- a/qcsrc/common/gamemodes/gamemode/br/cl_ring.qc +++ b/qcsrc/common/gamemodes/gamemode/br/cl_ring.qc @@ -4,8 +4,6 @@ bool ring_is_closing(entity this); -float autocvar_g_br_ring_fadedistance = 2000; - #define RING_MODEL_PATH "models/sphere/sphere.md3" #define RING_MODEL_RADIUS 64 // radius of model at 1.0 scale void ring_draw(entity this) @@ -28,7 +26,7 @@ void ring_draw(entity this) } this.scale = current_radius / RING_MODEL_RADIUS; - this.alpha = max((1 - min(max(current_radius - vlen((csqcplayer.origin + csqcplayer.view_ofs) - this.origin), 0) / max(autocvar_g_br_ring_fadedistance, 1), 1)) * this.br_ring_alpha, 0.01); + this.alpha = max((1 - min(max(current_radius - vlen((csqcplayer.origin + csqcplayer.view_ofs) - this.origin), 0) / this.br_ring_fadedistance, 1)) * this.br_ring_alpha, 0.01); if(vlen((csqcplayer.origin + csqcplayer.view_ofs) - this.origin) > current_radius) this.alpha = max(this.alpha / 4, 0.01); // let's weaken the ring visuals a bit, everything is already ring colored } @@ -89,6 +87,8 @@ NET_HANDLE(ENT_CLIENT_RING, bool isnew) this.br_ring_alpha = bound(0.01, ReadCoord(), 1); + this.br_ring_fadedistance = max(ReadCoord(), 1); + this.br_ring_stage_count = max(ReadByte(), 1); this.br_ring_stage_waittime = max(ReadCoord(), 0); for(int i = 0; i < (this.br_ring_stage_count + 1); ++i) diff --git a/qcsrc/common/gamemodes/gamemode/br/ring.qh b/qcsrc/common/gamemodes/gamemode/br/ring.qh index c15777bc0..5e76989d8 100644 --- a/qcsrc/common/gamemodes/gamemode/br/ring.qh +++ b/qcsrc/common/gamemodes/gamemode/br/ring.qh @@ -10,6 +10,7 @@ const int BR_RING_MOVE = 4; .float br_ring_start; .float br_ring_duration; .float br_ring_alpha; +.float br_ring_fadedistance; .int br_ring_stage_count; .float br_ring_stage_waittime; .float br_ring_stage_timing[BR_RING_STAGE_MAX]; diff --git a/qcsrc/common/gamemodes/gamemode/br/sv_ring.qc b/qcsrc/common/gamemodes/gamemode/br/sv_ring.qc index 69c6c7372..ef26ed82a 100644 --- a/qcsrc/common/gamemodes/gamemode/br/sv_ring.qc +++ b/qcsrc/common/gamemodes/gamemode/br/sv_ring.qc @@ -13,8 +13,9 @@ void ring_parseStrength(entity this, bool has_invalid); void ring_alignPosition(entity this); float autocvar_g_br_ring_duration = 150; -vector autocvar_g_br_ring_color = '1 0 0'; -float autocvar_g_br_ring_alpha = 0.5; +vector autocvar_g_br_ring_color = '1 0 0'; // FIXME: put visual-only cvar client side? +float autocvar_g_br_ring_alpha = 0.5; // FIXME: put visual-only cvar client side? +float autocvar_g_br_ring_fadedistance = 2000; // FIXME: put visual-only cvar client side? float autocvar_g_br_ring_radius = -1; // useful for per map settings string autocvar_g_br_ring_timing = "0.6 0.8 0.9"; string autocvar_g_br_ring_strength = "2.5 5 10 20 50"; @@ -36,6 +37,7 @@ entity ring_initialize() this.br_ring_stage = -1; this.colormod = autocvar_g_br_ring_color; // TODO: color changing ring this.alpha = this.br_ring_alpha = bound(0.01, autocvar_g_br_ring_alpha, 1); + this.br_ring_fadedistance = max(autocvar_g_br_ring_fadedistance, 1); this.br_ring_stage_waittime = max(autocvar_g_br_ring_wait, 0); bool has_invalid_timings = ring_parseTiming(this); @@ -70,6 +72,7 @@ bool ring_send(entity this, entity to, float sf) WriteCoord(MSG_ENTITY, this.radius); WriteVector(MSG_ENTITY, this.colormod); WriteCoord(MSG_ENTITY, this.br_ring_alpha); + WriteCoord(MSG_ENTITY, this.br_ring_fadedistance); WriteByte(MSG_ENTITY, this.br_ring_stage_count); WriteCoord(MSG_ENTITY, this.br_ring_stage_waittime);