From a6b33d25f2e1ffa8c69c655085e42574494ca447 Mon Sep 17 00:00:00 2001 From: Eukara Date: Tue, 6 Jul 2021 16:32:59 +0000 Subject: [PATCH] Fix a crash/oversight with CSQCs getlight() and fix GLQ3_LightGrid from using a global that may not even be set. git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5957 fc73d0e0-1445-4013-8a0c-d673dee63da5 --- engine/client/pr_csqc.c | 6 ++++++ engine/gl/gl_rlight.c | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/engine/client/pr_csqc.c b/engine/client/pr_csqc.c index eaada4c7e..a6c25262c 100644 --- a/engine/client/pr_csqc.c +++ b/engine/client/pr_csqc.c @@ -5417,6 +5417,12 @@ static void QCBUILTIN PF_cs_droptofloor (pubprogfuncs_t *prinst, struct globalva static void QCBUILTIN PF_cl_getlight (pubprogfuncs_t *prinst, struct globalvars_s *pr_globals) { vec3_t ambient, diffuse, dir; + + if (cl_max_lightstyles < csqc_world.worldmodel->lightmaps.maxstyle) { + VectorSet(G_VECTOR(OFS_RETURN), 0, 0, 0); + return; + } + if (!csqc_world.worldmodel || csqc_world.worldmodel->loadstate != MLS_LOADED || !csqc_world.worldmodel->funcs.LightPointValues) VectorSet(G_VECTOR(OFS_RETURN), 0, 0, 0); else diff --git a/engine/gl/gl_rlight.c b/engine/gl/gl_rlight.c index 819e248e5..1e0881d94 100644 --- a/engine/gl/gl_rlight.c +++ b/engine/gl/gl_rlight.c @@ -2348,7 +2348,7 @@ static void GLQ3_AddLatLong(const qbyte latlong[2], vec3_t dir, float mag) void GLQ3_LightGrid(model_t *mod, const vec3_t point, vec3_t res_diffuse, vec3_t res_ambient, vec3_t res_dir) { - q3lightgridinfo_t *lg = (q3lightgridinfo_t *)cl.worldmodel->lightgrid; + q3lightgridinfo_t *lg = (q3lightgridinfo_t *)mod->lightgrid; int index[8]; int vi[3]; int i, j;