From: havoc Date: Wed, 20 Oct 2004 13:29:07 +0000 (+0000) Subject: now loads a .ent file for lights if found X-Git-Tag: xonotic-v0.1.0preview~5443 X-Git-Url: https://git.rm.cloudns.org/?a=commitdiff_plain;h=ca7648679bc8da3054db5505ccbb6443fc76fe3e;p=xonotic%2Fdarkplaces.git now loads a .ent file for lights if found git-svn-id: svn://svn.icculus.org/twilight/trunk/darkplaces@4681 d7cf8633-e32d-0410-b094-e92efae38249 --- diff --git a/r_shadow.c b/r_shadow.c index 12da8519..9402a204 100644 --- a/r_shadow.c +++ b/r_shadow.c @@ -2678,16 +2678,23 @@ typedef enum lighttype_e {LIGHTTYPE_MINUSX, LIGHTTYPE_RECIPX, LIGHTTYPE_RECIPXX, void R_Shadow_LoadWorldLightsFromMap_LightArghliteTyrlite(void) { int entnum, style, islight, skin, pflags, effects, type, n; - char key[256], value[1024]; - float origin[3], angles[3], radius, color[3], light[4], fadescale, lightscale, originhack[3], overridecolor[3], vec[4]; + char *entfiledata; const char *data; + float origin[3], angles[3], radius, color[3], light[4], fadescale, lightscale, originhack[3], overridecolor[3], vec[4]; + char key[256], value[1024]; if (cl.worldmodel == NULL) { Con_Print("No map loaded.\n"); return; } - data = cl.worldmodel->brush.entities; + // try to load a .ent file first + FS_StripExtension (cl.worldmodel->name, key, sizeof (key)); + strlcat (key, ".ent", sizeof (key)); + data = entfiledata = FS_LoadFile(key, tempmempool, true); + // and if that is not found, fall back to the bsp file entity string + if (!data) + data = cl.worldmodel->brush.entities; if (!data) return; for (entnum = 0;COM_ParseToken(&data, false) && com_token[0] == '{';entnum++) @@ -2881,6 +2888,8 @@ void R_Shadow_LoadWorldLightsFromMap_LightArghliteTyrlite(void) if (radius >= 1) R_Shadow_UpdateWorldLight(R_Shadow_NewWorldLight(), origin, angles, color, radius, (pflags & PFLAGS_CORONA) != 0, style, (pflags & PFLAGS_NOSHADOW) == 0, skin >= 16 ? va("cubemaps/%i", skin) : NULL); } + if (entfiledata) + Mem_Free(entfiledata); }