From 19aacebeea913a3f3267dd80c83568b897103b7c Mon Sep 17 00:00:00 2001 From: div0 Date: Tue, 30 Jun 2009 13:20:00 +0000 Subject: [PATCH] change LOD code to support the models the way morphed named them. Next time, morphed, follow the existing code! To use LOD, compile your progs with: fteqcc -DALLOW_VARIABLE_LOD (note: it takes a lot of extra CPU time on servers with many players) git-svn-id: svn://svn.icculus.org/nexuiz/trunk@7129 f962a42d-fe04-0410-a3ab-8c8b0445ebaa --- data/qcsrc/server/cl_client.qc | 10 ++++------ data/qcsrc/server/miscfunctions.qc | 9 +++++++++ 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/data/qcsrc/server/cl_client.qc b/data/qcsrc/server/cl_client.qc index 4afed6333..c1845abfb 100644 --- a/data/qcsrc/server/cl_client.qc +++ b/data/qcsrc/server/cl_client.qc @@ -374,13 +374,11 @@ string CheckPlayerModel(string plyermodel) { if(substring(plyermodel,strlen(plyermodel)-4,4) != ".md3") if(substring(plyermodel,strlen(plyermodel)-4,4) != ".psk") return FallbackPlayerModel; -#ifdef ALLOW_VARIABLE_LOD // forbid the LOD models - if(substring(plyermodel, strlen(plyermodel)-6,2) == "_1") + if(substring(plyermodel, strlen(plyermodel)-6,2) == "_lod1") return FallbackPlayerModel; - if(substring(plyermodel, strlen(plyermodel)-6,2) == "_2") + if(substring(plyermodel, strlen(plyermodel)-6,2) == "_lod2") return FallbackPlayerModel; -#endif if(plyermodel != strtolower(plyermodel)) return FallbackPlayerModel; if(!fexists(plyermodel)) @@ -461,7 +459,7 @@ void setmodel_lod(entity e, string modelname) string s; // FIXME: this only supports 3-letter extensions - s = strcat(substring(modelname, 0, strlen(modelname) - 4), "_1", substring(modelname, 0, strlen(modelname) - 4)); + s = strcat(substring(modelname, 0, strlen(modelname) - 4), "_lod1", substring(modelname, 0, strlen(modelname) - 4)); if(fexists(s)) { precache_model(s); @@ -471,7 +469,7 @@ void setmodel_lod(entity e, string modelname) else self.modelindex_lod1 = -1; - s = strcat(substring(modelname, 0, strlen(modelname) - 4), "_2", substring(modelname, 0, strlen(modelname) - 4)); + s = strcat(substring(modelname, 0, strlen(modelname) - 4), "_lod2", substring(modelname, 0, strlen(modelname) - 4)); if(fexists(s)) { precache_model(s); diff --git a/data/qcsrc/server/miscfunctions.qc b/data/qcsrc/server/miscfunctions.qc index 01189416e..7523fa9a8 100644 --- a/data/qcsrc/server/miscfunctions.qc +++ b/data/qcsrc/server/miscfunctions.qc @@ -1345,7 +1345,16 @@ void precache_all_models(string pattern) { //print(search_getfilename(globhandle, i), "\n"); f = search_getfilename(globhandle, i); +#ifdef ALLOW_VARIABLE_LOD precache_model(f); +#endif + if(substring(f, strlen(f)-6,2) == "_lod1") + continue; + if(substring(f, strlen(f)-6,2) == "_lod2") + continue; +#ifndef ALLOW_VARIABLE_LOD + precache_model(f); +#endif PrecachePlayerSounds(strcat(f, ".sounds")); } search_end(globhandle); -- 2.39.2