]> git.rm.cloudns.org Git - xonotic/xonotic-data.pk3dir.git/commitdiff
make sure all g_br_* cvars are handled server side
authorJuhu <5894800-Juhu_@users.noreply.gitlab.com>
Mon, 24 Jan 2022 14:41:33 +0000 (15:41 +0100)
committerJuhu <5894800-Juhu_@users.noreply.gitlab.com>
Mon, 24 Jan 2022 14:42:05 +0000 (15:42 +0100)
qcsrc/common/gamemodes/gamemode/br/cl_ring.qc
qcsrc/common/gamemodes/gamemode/br/ring.qh
qcsrc/common/gamemodes/gamemode/br/sv_ring.qc

index 3a946511d82d5ecec06270a751a33d8206732570..17a8791c7a65298781b6cdb619cd297d4bb51b11 100644 (file)
@@ -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)
index c15777bc0ac369db3373ee991ac6fc5b90833994..5e76989d88fcba58daf6fd50d2aae0e601cc5821 100644 (file)
@@ -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];
index 69c6c73725cd121427947b412338f9630290b869..ef26ed82a4af9c6331689a55af2df5a3ef16f29f 100644 (file)
@@ -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);