]> de.git.xonotic.org Git - xonotic/netradiant.git/blobdiff - tools/quake3/q3map2/main.c
q3map2: Smokin'Guns 1.2.1 flavour
[xonotic/netradiant.git] / tools / quake3 / q3map2 / main.c
index e5bc03371f42ac11b58a125fcc1ec997ff4e22c1..0eec34429c6bf5b7404a9b7365a7c7d984a29984 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,81 +92,6 @@ static void ExitQ3Map( void ){
        }
 }
 
-/*
-   MD4BlockChecksum()
-   calculates an md4 checksum for a block of data
- */
-
-static int MD4BlockChecksum( void *buffer, int length ){
-       return Com_BlockChecksum( buffer, length );
-}
-
-/*
-   FixAAS()
-   resets an aas checksum to match the given BSP
- */
-
-int FixAAS( int argc, char **argv ){
-       int length, checksum;
-       void        *buffer;
-       FILE        *file;
-       char aas[ 1024 ], **ext;
-       char        *exts[] =
-       {
-               ".aas",
-               "_b0.aas",
-               "_b1.aas",
-               NULL
-       };
-
-
-       /* arg checking */
-       if ( argc < 2 ) {
-               Sys_Printf( "Usage: q3map -fixaas [-v] <mapname>\n" );
-               return 0;
-       }
-
-       /* do some path mangling */
-       strcpy( source, ExpandArg( argv[ argc - 1 ] ) );
-       StripExtension( source );
-       DefaultExtension( source, ".bsp" );
-
-       /* note it */
-       Sys_Printf( "--- FixAAS ---\n" );
-
-       /* load the bsp */
-       Sys_Printf( "Loading %s\n", source );
-       length = LoadFile( source, &buffer );
-
-       /* create bsp checksum */
-       Sys_Printf( "Creating checksum...\n" );
-       checksum = LittleLong( MD4BlockChecksum( buffer, length ) );
-
-       /* write checksum to aas */
-       ext = exts;
-       while ( *ext )
-       {
-               /* mangle name */
-               strcpy( aas, source );
-               StripExtension( aas );
-               strcat( aas, *ext );
-               Sys_Printf( "Trying %s\n", aas );
-               ext++;
-
-               /* fix it */
-               file = fopen( aas, "r+b" );
-               if ( !file ) {
-                       continue;
-               }
-               if ( fwrite( &checksum, 4, 1, file ) != 1 ) {
-                       Error( "Error writing checksum to %s", aas );
-               }
-               fclose( file );
-       }
-
-       /* return to sender */
-       return 0;
-}
 
 /*
    main()
@@ -176,6 +101,7 @@ int FixAAS( int argc, char **argv ){
 int main( int argc, char **argv ){
        int i, r;
        double start, end;
+       extern qboolean werror;
 
 
        /* we want consistent 'randomness' */
@@ -222,6 +148,12 @@ 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;
@@ -283,17 +215,17 @@ int main( int argc, char **argv ){
 
        /* fixaas */
        if ( !strcmp( argv[ 1 ], "-fixaas" ) ) {
-               r = FixAAS( argc - 1, argv + 1 );
+               r = FixAASMain( argc - 1, argv + 1 );
        }
 
        /* analyze */
        else if ( !strcmp( argv[ 1 ], "-analyze" ) ) {
-               r = AnalyzeBSP( argc - 1, argv + 1 );
+               r = AnalyzeBSPMain( argc - 1, argv + 1 );
        }
 
        /* info */
        else if ( !strcmp( argv[ 1 ], "-info" ) ) {
-               r = BSPInfo( argc - 2, argv + 2 );
+               r = BSPInfoMain( argc - 2, argv + 2 );
        }
 
        /* vis */
@@ -308,11 +240,16 @@ 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 );
        }
 
+       /* QBall: export entities */
+       else if ( !strcmp( argv[ 1 ], "-exportents" ) ) {
+               r = ExportEntitiesMain( argc - 1, argv + 1 );
+       }
+
        /* ydnar: lightmap export */
        else if ( !strcmp( argv[ 1 ], "-export" ) ) {
                r = ExportLightmapsMain( argc - 1, argv + 1 );
@@ -340,6 +277,9 @@ int main( int argc, char **argv ){
 
        /* ydnar: otherwise create a bsp */
        else{
+#ifdef SMOKINGUNS
+               compile_map = qtrue;
+#endif
                r = BSPMain( argc, argv );
        }