From 87930231058825dc3bfe0a757199b55cfafba437 Mon Sep 17 00:00:00 2001 From: Rudolf Polzer Date: Mon, 9 Mar 2015 13:28:55 +0100 Subject: [PATCH] Make sure the number of lightning beam segments is bounded. Otherwise, beam list overflow and infinite loops. --- qcsrc/client/effects.qc | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/qcsrc/client/effects.qc b/qcsrc/client/effects.qc index df6884657..7e0f1c6c5 100644 --- a/qcsrc/client/effects.qc +++ b/qcsrc/client/effects.qc @@ -46,7 +46,9 @@ void cl_effects_lightningarc(vector from, vector to,float seglength,float drifts if(length < 1) return; - steps = floor(length / seglength); + // Use at most 16 te_lightning1 segments, as these eat up beam list segments. + // TODO: Change this to R_BeginPolygon code, then we no longer have this limit. + steps = min(16, floor(length / seglength)); if(steps < 1) { te_lightning1(world,from,to); -- 2.39.2