6 void CSQCModel_Hook_PreDraw()
8 // auto glowmod from colormap
9 self.glowmod = colormapPaletteColor(((self.colormap >= 1024) ? (self.colormap & 0xFF) : stof(getplayerkeyvalue(self.entnum - 1, "colors"))), TRUE) * 2;
11 if(self.modelindex != 0)
14 if(self.lodmodelindex0 != self.modelindex)
16 string modelname = self.model;
20 self.lodmodelindex0 = self.modelindex;
21 self.lodmodelindex1 = self.modelindex;
22 self.lodmodelindex2 = self.modelindex;
24 // FIXME: this only supports 3-letter extensions
25 s = strcat(substring(modelname, 0, strlen(modelname)-4), "_lod1", substring(modelname, -4, 4));
30 if(self.modelindex > 0)
31 self.lodmodelindex1 = self.modelindex;
34 s = strcat(substring(modelname, 0, strlen(modelname)-4), "_lod2", substring(modelname, -4, 4));
39 if(self.modelindex > 0)
40 self.lodmodelindex2 = self.modelindex;
43 setmodel(self, modelname); // make everything normal again
46 if(autocvar_cl_playerdetailreduction <= 0)
48 if(autocvar_cl_playerdetailreduction <= -2)
49 self.modelindex = self.lodmodelindex2;
50 else if(autocvar_cl_playerdetailreduction <= -1)
51 self.modelindex = self.lodmodelindex1;
53 self.modelindex = self.lodmodelindex0;
57 float distance = vlen(self.origin - other.origin);
58 float f = (distance + 100.0) * autocvar_cl_playerdetailreduction;
59 if(f > autocvar_cl_loddistance2)
60 self.modelindex = self.lodmodelindex2;
61 else if(f > autocvar_cl_loddistance1)
62 self.modelindex = self.lodmodelindex1;
64 self.modelindex = self.lodmodelindex0;