]> de.git.xonotic.org Git - xonotic/netradiant.git/blobdiff - tools/quake3/q3map2/light.c
properly support -keeplights option. Current implementation never worked.
[xonotic/netradiant.git] / tools / quake3 / q3map2 / light.c
index 5d5dfc5e9aa4cdb77bbd646fb4ec1d6cf4a2c7a8..f4a735ca9dab7911ff064621e8d6295e16d7c8fe 100644 (file)
@@ -400,7 +400,6 @@ void CreateEntityLights( void )
                if(light->extraDist == 0.0f)
                        light->extraDist = extraDist;
                
-               intensity = intensity * pointScale;
                light->photons = intensity;
 
                light->type = EMIT_POINT;
@@ -424,6 +423,7 @@ void CreateEntityLights( void )
                        {
                                Sys_Printf( "WARNING: light at (%i %i %i) has missing target\n",
                                        (int) light->origin[ 0 ], (int) light->origin[ 1 ], (int) light->origin[ 2 ] );
+                               light->photons *= pointScale;
                        }
                        else
                        {
@@ -461,7 +461,7 @@ void CreateEntityLights( void )
                                        /* make a sun */
                                        VectorScale( light->normal, -1.0f, sun.direction );
                                        VectorCopy( light->color, sun.color );
-                                       sun.photons = (intensity / pointScale);
+                                       sun.photons = intensity;
                                        sun.deviance = deviance / 180.0f * Q_PI;
                                        sun.numSamples = numSamples;
                                        sun.style = noStyles ? LS_NORMAL : light->style;
@@ -477,8 +477,14 @@ void CreateEntityLights( void )
                                        /* skip the rest of this love story */
                                        continue;
                                }
+                               else
+                               {
+                                       light->photons *= spotScale;
+                               }
                        }
                }
+               else
+                       light->photons *= pointScale;
                
                /* jitter the light */
                for( j = 1; j < numSamples; j++ )
@@ -2065,6 +2071,18 @@ int LightMain( int argc, char **argv )
        lightmapGamma = game->lightmapGamma;
        Sys_Printf( " lightning gamma: %f\n", lightmapGamma );
 
+       lightmapsRGB = game->lightmapsRGB;
+       if(lightmapsRGB)
+               Sys_Printf( " lightmap colorspace: sRGB\n" );
+       else
+               Sys_Printf( " lightmap colorspace: linear\n" );
+
+       texturesRGB = game->texturesRGB;
+       if(texturesRGB)
+               Sys_Printf( " texture colorspace: sRGB\n" );
+       else
+               Sys_Printf( " texture colorspace: linear\n" );
+
        lightmapCompensate = game->lightmapCompensate;
        Sys_Printf( " lightning compensation: %f\n", lightmapCompensate );
 
@@ -2087,12 +2105,6 @@ int LightMain( int argc, char **argv )
        else
                Sys_Printf( " shader lightstyles hack: enabled\n" );
 
-       keepLights = game->keepLights;
-       if (keepLights == qtrue)
-               Sys_Printf( " keep lights: enabled\n" );
-       else
-               Sys_Printf( " keep lights: disabled\n" );
-
        patchShadows = game->patchShadows;
        if (patchShadows == qtrue)
                Sys_Printf( " patch shadows: enabled\n" );
@@ -2121,7 +2133,25 @@ int LightMain( int argc, char **argv )
                {
                        f = atof( argv[ i + 1 ] );
                        pointScale *= f;
-                       Sys_Printf( "Point (entity) light scaled by %f to %f\n", f, pointScale );
+                       spotScale *= f;
+                       Sys_Printf( "Spherical point (entity) light scaled by %f to %f\n", f, pointScale );
+                       Sys_Printf( "Spot point (entity) light scaled by %f to %f\n", f, spotScale );
+                       i++;
+               }
+               
+               else if( !strcmp( argv[ i ], "-spherical" ) || !strcmp( argv[ i ], "-sphericalscale" ) )
+               {
+                       f = atof( argv[ i + 1 ] );
+                       pointScale *= f;
+                       Sys_Printf( "Spherical point (entity) light scaled by %f to %f\n", f, pointScale );
+                       i++;
+               }
+               
+               else if( !strcmp( argv[ i ], "-spot" ) || !strcmp( argv[ i ], "-spotscale" ) )
+               {
+                       f = atof( argv[ i + 1 ] );
+                       spotScale *= f;
+                       Sys_Printf( "Spot point (entity) light scaled by %f to %f\n", f, spotScale );
                        i++;
                }
                
@@ -2153,6 +2183,7 @@ int LightMain( int argc, char **argv )
                {
                        f = atof( argv[ i + 1 ] );
                        pointScale *= f;
+                       spotScale *= f;
                        areaScale *= f;
                        skyScale *= f;
                        bounceScale *= f;
@@ -2204,6 +2235,30 @@ int LightMain( int argc, char **argv )
                        i++;
                }
                
+               else if( !strcmp( argv[ i ], "-sRGBlight" ) )
+               {
+                       lightmapsRGB = qtrue;
+                       Sys_Printf( "Lighting is in sRGB\n" );
+               }
+
+               else if( !strcmp( argv[ i ], "-nosRGBlight" ) )
+               {
+                       lightmapsRGB = qfalse;
+                       Sys_Printf( "Lighting is linear\n" );
+               }
+
+               else if( !strcmp( argv[ i ], "-sRGBtex" ) )
+               {
+                       texturesRGB = qtrue;
+                       Sys_Printf( "Textures are in sRGB\n" );
+               }
+
+               else if( !strcmp( argv[ i ], "-nosRGBtex" ) )
+               {
+                       texturesRGB = qfalse;
+                       Sys_Printf( "Textures are linear\n" );
+               }
+
                else if( !strcmp( argv[ i ], "-exposure" ) )
                {
                        f = atof( argv[ i + 1 ] );
@@ -2669,11 +2724,6 @@ int LightMain( int argc, char **argv )
                        noStyles = qfalse;
                        Sys_Printf( "Enabling lightstyles\n" );
                }
-               else if( !strcmp( argv[ i ], "-keeplights" ))
-               {
-                       keepLights = qtrue;
-                       Sys_Printf( "Leaving light entities on map after compile\n" );
-               }
                else if( !strcmp( argv[ i ], "-cpma" ) )
                {
                        cpmaHack = qtrue;