]> git.xonotic.org Git - xonotic/darkplaces.git/blobdiff - model_shared.c
curl: longer URLs
[xonotic/darkplaces.git] / model_shared.c
index 7de6009601f20c4a33a8645710077781f141b976..12bcad7b6f5ad6c1246aba6f9c0acd62877c3144 100644 (file)
@@ -1447,6 +1447,7 @@ void Mod_LoadQ3Shaders(void)
                                                                else if (!strcasecmp(parameter[1], "rotate"))          layer->tcmods[tcmodindex].tcmod = Q3TCMOD_ROTATE;
                                                                else if (!strcasecmp(parameter[1], "scale"))           layer->tcmods[tcmodindex].tcmod = Q3TCMOD_SCALE;
                                                                else if (!strcasecmp(parameter[1], "scroll"))          layer->tcmods[tcmodindex].tcmod = Q3TCMOD_SCROLL;
+                                                               else if (!strcasecmp(parameter[1], "page"))            layer->tcmods[tcmodindex].tcmod = Q3TCMOD_PAGE;
                                                                else if (!strcasecmp(parameter[1], "stretch"))
                                                                {
                                                                        layer->tcmods[tcmodindex].tcmod = Q3TCMOD_STRETCH;
@@ -1483,7 +1484,7 @@ void Mod_LoadQ3Shaders(void)
                                        layer->texflags = TEXF_ALPHA | TEXF_PRECACHE;
                                        if (!(shader.surfaceparms & Q3SURFACEPARM_NOMIPMAPS))
                                                layer->texflags |= TEXF_MIPMAP;
-                                       if (!(shader.textureflags & Q3TEXTUREFLAG_NOPICMIP) && (r_picmipworld.integer || (layer->texturename && layer->texturename[0] && strncmp(layer->texturename[0], "textures/", 9))))
+                                       if (!(shader.textureflags & Q3TEXTUREFLAG_NOPICMIP))
                                                layer->texflags |= TEXF_PICMIP | TEXF_COMPRESS;
                                        if (layer->clampmap)
                                                layer->texflags |= TEXF_CLAMP;
@@ -1735,6 +1736,13 @@ qboolean Mod_LoadTextureFromQ3Shader(texture_t *texture, const char *name, qbool
                        Con_Printf("%s: loaded shader for %s\n", loadmodel->name, name);
                texture->surfaceparms = shader->surfaceparms;
                texture->textureflags = shader->textureflags;
+
+               // allow disabling of picmip or compression by defaulttexflags
+               if(!(defaulttexflags & TEXF_PICMIP))
+                       texture->textureflags &= ~TEXF_PICMIP;
+               if(!(defaulttexflags & TEXF_COMPRESS))
+                       texture->textureflags &= ~TEXF_COMPRESS;
+
                texture->basematerialflags = 0;
                if (shader->surfaceparms & Q3SURFACEPARM_SKY)
                {
@@ -1815,7 +1823,11 @@ nothing                GL_ZERO GL_ONE
                        texture->skinframerate = primarylayer->framerate;
                        for (j = 0;j < primarylayer->numframes;j++)
                        {
-                               if (!(texture->skinframes[j] = R_SkinFrame_LoadExternal(primarylayer->texturename[j], primarylayer->texflags, false)))
+                               if(cls.state == ca_dedicated)
+                               {
+                                       texture->skinframes[j] = NULL;
+                               }
+                               else if (!(texture->skinframes[j] = R_SkinFrame_LoadExternal(primarylayer->texturename[j], primarylayer->texflags, false)))
                                {
                                        Con_Printf("^1%s:^7 could not load texture ^3\"%s\"^7 (frame %i) for shader ^2\"%s\"\n", loadmodel->name, primarylayer->texturename[j], j, texture->name);
                                        texture->skinframes[j] = R_SkinFrame_LoadMissing();
@@ -1829,7 +1841,11 @@ nothing                GL_ZERO GL_ONE
                        texture->backgroundskinframerate = backgroundlayer->framerate;
                        for (j = 0;j < backgroundlayer->numframes;j++)
                        {
-                               if (!(texture->backgroundskinframes[j] = R_SkinFrame_LoadExternal(backgroundlayer->texturename[j], backgroundlayer->texflags, false)))
+                               if(cls.state == ca_dedicated)
+                               {
+                                       texture->skinframes[j] = NULL;
+                               }
+                               else if (!(texture->backgroundskinframes[j] = R_SkinFrame_LoadExternal(backgroundlayer->texturename[j], backgroundlayer->texflags, false)))
                                {
                                        Con_Printf("^1%s:^7 could not load texture ^3\"%s\"^7 (background frame %i) for shader ^2\"%s\"\n", loadmodel->name, backgroundlayer->texturename[j], j, texture->name);
                                        texture->backgroundskinframes[j] = R_SkinFrame_LoadMissing();
@@ -1874,21 +1890,28 @@ nothing                GL_ZERO GL_ONE
                else
                        texture->basematerialflags |= MATERIALFLAG_WALL;
                texture->numskinframes = 1;
-               if (fallback)
+               if(cls.state == ca_dedicated)
+               {
+                       texture->skinframes[0] = NULL;
+               }
+               else
                {
-                       qboolean has_alpha;
-                       if ((texture->skinframes[0] = R_SkinFrame_LoadExternal_CheckAlpha(texture->name, defaulttexflags, false, &has_alpha)))
+                       if (fallback)
                        {
-                               if(has_alpha && (defaulttexflags & TEXF_ALPHA))
-                                       texture->basematerialflags |= MATERIALFLAG_ALPHA | MATERIALFLAG_BLENDED | MATERIALFLAG_NOSHADOW;
+                               qboolean has_alpha;
+                               if ((texture->skinframes[0] = R_SkinFrame_LoadExternal_CheckAlpha(texture->name, defaulttexflags, false, &has_alpha)))
+                               {
+                                       if(has_alpha && (defaulttexflags & TEXF_ALPHA))
+                                               texture->basematerialflags |= MATERIALFLAG_ALPHA | MATERIALFLAG_BLENDED | MATERIALFLAG_NOSHADOW;
+                               }
+                               else
+                                       success = false;
                        }
                        else
                                success = false;
+                       if (!success && warnmissing)
+                               Con_Printf("^1%s:^7 could not load texture ^3\"%s\"\n", loadmodel->name, texture->name);
                }
-               else
-                       success = false;
-               if (!success && warnmissing)
-                       Con_Printf("^1%s:^7 could not load texture ^3\"%s\"\n", loadmodel->name, texture->name);
        }
        // init the animation variables
        texture->currentframe = texture;