]> de.git.xonotic.org Git - xonotic/netradiant.git/blobdiff - tools/quake3/q3map2/main.c
q3map2: dds/ prefix, print log at the right time, when image is found
[xonotic/netradiant.git] / tools / quake3 / q3map2 / main.c
index 146ced8e767c2313871c69d5dc978ed188b8b143..e6b4a5c96e25e8507c4f7f0895eaf32d788fec58 100644 (file)
@@ -35,8 +35,7 @@
 
 /* dependencies */
 #include "q3map2.h"
-
-
+#include <glib.h>
 
 /*
    Random()
@@ -80,6 +79,7 @@ char *Q_strncat( char *dst, size_t dlen, const char *src, size_t slen ) {
        return Q_strncpyz( dst + n, src, MIN( slen, dlen - n ) );
 }
 
+
 /*
    ExitQ3Map()
    cleanup routine
@@ -92,6 +92,7 @@ static void ExitQ3Map( void ){
        }
 }
 
+
 /*
    main()
    q3map mojo...
@@ -100,6 +101,7 @@ static void ExitQ3Map( void ){
 int main( int argc, char **argv ){
        int i, r;
        double start, end;
+       extern qboolean werror;
 
 
        /* we want consistent 'randomness' */
@@ -120,14 +122,16 @@ int main( int argc, char **argv ){
                /* -help */
                if ( !strcmp( argv[ i ], "-h" ) || !strcmp( argv[ i ], "--help" )
                        || !strcmp( argv[ i ], "-help" ) ) {
-                       HelpMain(argv[i+1]);
+                       HelpMain( ( i + 1 < argc ) ? argv[ i + 1 ] : NULL );
                        return 0;
                }
 
                /* -connect */
                if ( !strcmp( argv[ i ], "-connect" ) ) {
-                       argv[ i ] = NULL;
-                       i++;
+                       if ( ++i >= argc || !argv[ i ] ) {
+                               Error( "Out of arguments: No address specified after %s", argv[ i - 1 ] );
+                       }
+                       argv[ i - 1 ] = NULL;
                        Broadcast_Setup( argv[ i ] );
                        argv[ i ] = NULL;
                }
@@ -146,10 +150,18 @@ int main( int argc, char **argv ){
                        argv[ i ] = NULL;
                }
 
+               /* make all warnings into errors */
+               else if ( !strcmp( argv[ i ], "-werror" ) ) {
+                       werror = qtrue;
+                       argv[ i ] = NULL;
+               }
+
                /* patch subdivisions */
                else if ( !strcmp( argv[ i ], "-subdivisions" ) ) {
-                       argv[ i ] = NULL;
-                       i++;
+                       if ( ++i >= argc || !argv[ i ] ) {
+                               Error( "Out of arguments: No value specified after %s", argv[ i - 1 ] );
+                       }
+                       argv[ i - 1 ] = NULL;
                        patchSubdivisions = atoi( argv[ i ] );
                        argv[ i ] = NULL;
                        if ( patchSubdivisions <= 0 ) {
@@ -159,8 +171,10 @@ int main( int argc, char **argv ){
 
                /* threads */
                else if ( !strcmp( argv[ i ], "-threads" ) ) {
-                       argv[ i ] = NULL;
-                       i++;
+                       if ( ++i >= argc || !argv[ i ] ) {
+                               Error( "Out of arguments: No value specified after %s", argv[ i - 1 ] );
+                       }
+                       argv[ i - 1 ] = NULL;
                        numthreads = atoi( argv[ i ] );
                        argv[ i ] = NULL;
                }
@@ -189,7 +203,7 @@ int main( int argc, char **argv ){
 
        Sys_Printf( "Q3Map         - v1.0r (c) 1999 Id Software Inc.\n" );
        Sys_Printf( "Q3Map (ydnar) - v" Q3MAP_VERSION "\n" );
-       Sys_Printf( "NetRadiant    - v" RADIANT_VERSION " " __DATE__ " " __TIME__ "\n" );
+       Sys_Printf( RADIANT_NAME "    - v" RADIANT_VERSION " " __DATE__ " " __TIME__ "\n" );
        Sys_Printf( "%s\n", Q3MAP_MOTD );
 
        /* ydnar: new path initialization */
@@ -232,7 +246,7 @@ int main( int argc, char **argv ){
 
        /* vlight */
        else if ( !strcmp( argv[ 1 ], "-vlight" ) ) {
-               Sys_Printf( "WARNING: VLight is no longer supported, defaulting to -light -fast instead\n\n" );
+               Sys_FPrintf( SYS_WRN, "WARNING: VLight is no longer supported, defaulting to -light -fast instead\n\n" );
                argv[ 1 ] = "-fast";    /* eek a hack */
                r = LightMain( argc, argv );
        }
@@ -268,7 +282,10 @@ int main( int argc, char **argv ){
        }
 
        /* ydnar: otherwise create a bsp */
-       else{
+       else {
+               /* used to write Smokin'Guns like tex file */
+               compile_map = qtrue;
+
                r = BSPMain( argc, argv );
        }