]> de.git.xonotic.org Git - xonotic/darkplaces.git/commitdiff
added parsing of rgbgen wave and alphagen wave
authorhavoc <havoc@d7cf8633-e32d-0410-b094-e92efae38249>
Thu, 24 May 2007 20:12:21 +0000 (20:12 +0000)
committerhavoc <havoc@d7cf8633-e32d-0410-b094-e92efae38249>
Thu, 24 May 2007 20:12:21 +0000 (20:12 +0000)
git-svn-id: svn://svn.icculus.org/twilight/trunk/darkplaces@7365 d7cf8633-e32d-0410-b094-e92efae38249

model_shared.c
model_shared.h

index 05432325f0899cb09351096c9d97f1ca3da15eb7..fd1726536dfb053f3f489677c1e9c3873965471e 100644 (file)
@@ -1267,7 +1267,13 @@ void Mod_LoadQ3Shaders(void)
                                                        else if (!strcasecmp(parameter[1], "oneminusentity"))   layer->rgbgen = Q3RGBGEN_ONEMINUSENTITY;
                                                        else if (!strcasecmp(parameter[1], "oneminusvertex"))   layer->rgbgen = Q3RGBGEN_ONEMINUSVERTEX;
                                                        else if (!strcasecmp(parameter[1], "vertex"))           layer->rgbgen = Q3RGBGEN_VERTEX;
-                                                       else if (!strcasecmp(parameter[1], "wave"))             layer->rgbgen = Q3RGBGEN_WAVE;
+                                                       else if (!strcasecmp(parameter[1], "wave"))
+                                                       {
+                                                               layer->rgbgen = Q3RGBGEN_WAVE;
+                                                               layer->rgbgen_wavefunc = Mod_LoadQ3Shaders_EnumerateWaveFunc(parameter[2]);
+                                                               for (i = 0;i < numparameters - 3 && i < Q3RGBGEN_MAXPARMS;i++)
+                                                                       layer->rgbgen_parms[i] = atof(parameter[i+3]);
+                                                       }
                                                        else Con_DPrintf("%s parsing warning: unknown rgbgen %s\n", search->filenames[fileindex], parameter[1]);
                                                }
                                                else if (numparameters >= 2 && !strcasecmp(parameter[0], "alphagen"))
@@ -1283,7 +1289,13 @@ void Mod_LoadQ3Shaders(void)
                                                        else if (!strcasecmp(parameter[1], "oneminusvertex"))   layer->alphagen = Q3ALPHAGEN_ONEMINUSVERTEX;
                                                        else if (!strcasecmp(parameter[1], "portal"))           layer->alphagen = Q3ALPHAGEN_PORTAL;
                                                        else if (!strcasecmp(parameter[1], "vertex"))           layer->alphagen = Q3ALPHAGEN_VERTEX;
-                                                       else if (!strcasecmp(parameter[1], "wave"))             layer->alphagen = Q3ALPHAGEN_WAVE;
+                                                       else if (!strcasecmp(parameter[1], "wave"))
+                                                       {
+                                                               layer->alphagen = Q3RGBGEN_WAVE;
+                                                               layer->alphagen_wavefunc = Mod_LoadQ3Shaders_EnumerateWaveFunc(parameter[2]);
+                                                               for (i = 0;i < numparameters - 3 && i < Q3ALPHAGEN_MAXPARMS;i++)
+                                                                       layer->alphagen_parms[i] = atof(parameter[i+3]);
+                                                       }
                                                        else Con_DPrintf("%s parsing warning: unknown alphagen %s\n", search->filenames[fileindex], parameter[1]);
                                                }
                                                else if (numparameters >= 2 && (!strcasecmp(parameter[0], "texgen") || !strcasecmp(parameter[0], "tcgen")))
@@ -1327,9 +1339,9 @@ void Mod_LoadQ3Shaders(void)
                                                                else if (!strcasecmp(parameter[1], "stretch"))
                                                                {
                                                                        layer->tcmod[tcmodindex] = Q3TCMOD_STRETCH;
+                                                                       layer->tcmod_wavefunc[tcmodindex] = Mod_LoadQ3Shaders_EnumerateWaveFunc(parameter[2]);
                                                                        for (i = 0;i < numparameters - 3 && i < Q3TCMOD_MAXPARMS;i++)
                                                                                layer->tcmod_parms[tcmodindex][i] = atof(parameter[i+3]);
-                                                                       layer->tcmod_wavefunc[tcmodindex] = Mod_LoadQ3Shaders_EnumerateWaveFunc(parameter[2]);
                                                                }
                                                                else if (!strcasecmp(parameter[1], "transform"))       layer->tcmod[tcmodindex] = Q3TCMOD_TRANSFORM;
                                                                else if (!strcasecmp(parameter[1], "turb"))            layer->tcmod[tcmodindex] = Q3TCMOD_TURBULENT;
@@ -1598,7 +1610,9 @@ nothing                GL_ZERO GL_ONE
                {
                        // copy over many shader->primarylayer parameters
                        texture->rgbgen   = shader->primarylayer->rgbgen;
+                       texture->rgbgen_wavefunc = shader->primarylayer->rgbgen_wavefunc;
                        texture->alphagen = shader->primarylayer->alphagen;
+                       texture->alphagen_wavefunc = shader->primarylayer->alphagen_wavefunc;
                        texture->tcgen    = shader->primarylayer->tcgen;
                        memcpy(texture->tcmod         , shader->primarylayer->tcmod         , sizeof(texture->tcmod));
                        memcpy(texture->rgbgen_parms  , shader->primarylayer->rgbgen_parms  , sizeof(texture->rgbgen_parms));
index 5e1e54ce8fe2b6ea38b93e96afc4b1832142eb52..59fe7424737dce92e6b80b2219c8d1d611fbfe43 100644 (file)
@@ -273,7 +273,9 @@ typedef struct q3shaderinfo_layer_s
        q3tcgen_t tcgen;
        q3tcmod_t tcmod[Q3MAXTCMODS];
        float rgbgen_parms[Q3RGBGEN_MAXPARMS];
+       q3wavefunc_t rgbgen_wavefunc;
        float alphagen_parms[Q3ALPHAGEN_MAXPARMS];
+       q3wavefunc_t alphagen_wavefunc;
        float tcgen_parms[Q3TCGEN_MAXPARMS];
        float tcmod_parms[Q3MAXTCMODS][Q3TCMOD_MAXPARMS];
        q3wavefunc_t tcmod_wavefunc[Q3MAXTCMODS];
@@ -375,7 +377,9 @@ typedef struct texture_s
        q3tcgen_t tcgen;
        q3tcmod_t tcmod[Q3MAXTCMODS];
        float rgbgen_parms[Q3RGBGEN_MAXPARMS];
+       q3wavefunc_t rgbgen_wavefunc;
        float alphagen_parms[Q3ALPHAGEN_MAXPARMS];
+       q3wavefunc_t alphagen_wavefunc;
        float tcgen_parms[Q3TCGEN_MAXPARMS];
        float tcmod_parms[Q3MAXTCMODS][Q3TCMOD_MAXPARMS];
        q3wavefunc_t tcmod_wavefunc[Q3MAXTCMODS];