static void initialise(){ PicoInit(); PicoSetMallocFunc( malloc ); PicoSetFreeFunc( free ); PicoSetPrintFunc( PicoPrintFunc ); PicoSetLoadFileFunc( PicoLoadFileFunc ); PicoSetFreeFileFunc( PicoFreeFileFunc ); }
int main( int argc, char **argv ) { int i, r; double start, end; /* we want consistent 'randomness' */ srand( 0 ); /* start timer */ start = I_FloatTime(); /* this was changed to emit version number over the network */ printf( Q3MAP_VERSION "\n" ); /* set exit call */ atexit( ExitQ3Map ); /* read general options first */ for( i = 1; i < argc; i++ ) { /* -connect */ if( !strcmp( argv[ i ], "-connect" ) ) { argv[ i ] = NULL; i++; Broadcast_Setup( argv[ i ] ); argv[ i ] = NULL; } /* verbose */ else if( !strcmp( argv[ i ], "-v" ) ) { verbose = qtrue; argv[ i ] = NULL; } /* force */ else if( !strcmp( argv[ i ], "-force" ) ) { force = qtrue; argv[ i ] = NULL; } /* patch subdivisions */ else if( !strcmp( argv[ i ], "-subdivisions" ) ) { argv[ i ] = NULL; i++; patchSubdivisions = atoi( argv[ i ] ); argv[ i ] = NULL; if( patchSubdivisions <= 0 ) patchSubdivisions = 1; } /* threads */ else if( !strcmp( argv[ i ], "-threads" ) ) { argv[ i ] = NULL; i++; numthreads = atoi( argv[ i ] ); argv[ i ] = NULL; } } /* init model library */ PicoInit(); PicoSetMallocFunc( safe_malloc ); PicoSetFreeFunc( free ); PicoSetPrintFunc( PicoPrintFunc ); PicoSetLoadFileFunc( PicoLoadFileFunc ); PicoSetFreeFileFunc( free ); /* set number of threads */ ThreadSetDefault(); /* generate sinusoid jitter table */ for( i = 0; i < MAX_JITTERS; i++ ) { jitters[ i ] = sin( i * 139.54152147 ); //% Sys_Printf( "Jitter %4d: %f\n", i, jitters[ i ] ); } /* we print out two versions, q3map's main version (since it evolves a bit out of GtkRadiant) and we put the GtkRadiant version to make it easy to track with what version of Radiant it was built with */ Sys_Printf( "Q3Map - v1.0r (c) 1999 Id Software Inc.\n" ); Sys_Printf( "Q3Map (ydnar) - v" Q3MAP_VERSION "\n" ); Sys_Printf( "GtkRadiant - v" RADIANT_VERSION " " __DATE__ " " __TIME__ "\n" ); Sys_Printf( "%s\n", Q3MAP_MOTD ); /* ydnar: new path initialization */ InitPaths( &argc, argv ); /* check if we have enough options left to attempt something */ if( argc < 2 ) Error( "Usage: %s [general options] [options] mapfile", argv[ 0 ] ); /* fixaas */ if( !strcmp( argv[ 1 ], "-fixaas" ) ) r = FixAAS( argc - 1, argv + 1 ); /* analyze */ else if( !strcmp( argv[ 1 ], "-analyze" ) ) r = AnalyzeBSP( argc - 1, argv + 1 ); /* info */ else if( !strcmp( argv[ 1 ], "-info" ) ) r = BSPInfo( argc - 2, argv + 2 ); /* vis */ else if( !strcmp( argv[ 1 ], "-vis" ) ) r = VisMain( argc - 1, argv + 1 ); /* light */ else if( !strcmp( argv[ 1 ], "-light" ) ) r = LightMain( argc - 1, argv + 1 ); /* vlight */ else if( !strcmp( argv[ 1 ], "-vlight" ) ) { Sys_Printf( "WARNING: VLight is no longer supported, defaulting to -light -fast instead\n\n" ); argv[ 1 ] = "-fast"; /* eek a hack */ r = LightMain( argc, argv ); } /* ydnar: lightmap export */ else if( !strcmp( argv[ 1 ], "-export" ) ) r = ExportLightmapsMain( argc - 1, argv + 1 ); /* ydnar: lightmap import */ else if( !strcmp( argv[ 1 ], "-import" ) ) r = ImportLightmapsMain( argc - 1, argv + 1 ); /* ydnar: bsp scaling */ else if( !strcmp( argv[ 1 ], "-scale" ) ) r = ScaleBSPMain( argc - 1, argv + 1 ); /* ydnar: bsp conversion */ else if( !strcmp( argv[ 1 ], "-convert" ) ) r = ConvertBSPMain( argc - 1, argv + 1 ); /* ydnar: otherwise create a bsp */ else r = BSPMain( argc, argv ); /* emit time */ end = I_FloatTime(); Sys_Printf( "%9.0f seconds elapsed\n", end - start ); /* shut down connection */ Broadcast_Shutdown(); /* return any error code */ return r; }