option -border in minimap

git-svn-id: svn://svn.icculus.org/netradiant/trunk@343 61c419a2-8eb2-4b30-bcec-8cead039b335
This commit is contained in:
divverent 2009-04-27 13:54:44 +00:00 committed by Thomas Debesse
parent cf607a4986
commit e5d5b5a866
1 changed files with 14 additions and 3 deletions

View File

@ -321,7 +321,7 @@ static void MiniMapSharpen(int y)
} }
} }
void MiniMapMakeMinsMaxs(vec3_t mins_in, vec3_t maxs_in) void MiniMapMakeMinsMaxs(vec3_t mins_in, vec3_t maxs_in, float border)
{ {
vec3_t mins, maxs, extend; vec3_t mins, maxs, extend;
VectorCopy(mins_in, mins); VectorCopy(mins_in, mins);
@ -343,8 +343,11 @@ void MiniMapMakeMinsMaxs(vec3_t mins_in, vec3_t maxs_in)
maxs[1] += (extend[0] - extend[1]) * 0.5; maxs[1] += (extend[0] - extend[1]) * 0.5;
} }
/* border: amount of black area around the image */
/* input: border, 1-2*border, border but we need border/(1-2*border) */
VectorSubtract(maxs, mins, extend); VectorSubtract(maxs, mins, extend);
VectorScale(extend, 1.0 / 64.0, extend); VectorScale(extend, border / (1 - 2 * border), extend);
VectorSubtract(mins, extend, mins); VectorSubtract(mins, extend, mins);
VectorAdd(maxs, extend, maxs); VectorAdd(maxs, extend, maxs);
@ -533,6 +536,7 @@ int MiniMapBSPMain( int argc, char **argv )
char path[1024]; char path[1024];
char parentpath[1024]; char parentpath[1024];
float minimapSharpen; float minimapSharpen;
float border;
byte *data3b, *p; byte *data3b, *p;
float *q; float *q;
int x, y; int x, y;
@ -563,6 +567,7 @@ int MiniMapBSPMain( int argc, char **argv )
minimap.width = minimap.height = 512; minimap.width = minimap.height = 512;
minimap.samples = 1; minimap.samples = 1;
minimap.sample_offsets = NULL; minimap.sample_offsets = NULL;
border = 1/66.0; /* good default for Nexuiz */
/* process arguments */ /* process arguments */
for( i = 1; i < (argc - 1); i++ ) for( i = 1; i < (argc - 1); i++ )
@ -598,6 +603,12 @@ int MiniMapBSPMain( int argc, char **argv )
free(minimap.sample_offsets); free(minimap.sample_offsets);
minimap.sample_offsets = NULL; minimap.sample_offsets = NULL;
} }
else if( !strcmp( argv[ i ], "-border" ) )
{
border = atof(argv[i + 1]);
i++;
Sys_Printf( "Border set to %f\n", border );
}
else if( !strcmp( argv[ i ], "-o" ) ) else if( !strcmp( argv[ i ], "-o" ) )
{ {
strcpy(minimapFilename, argv[i + 1]); strcpy(minimapFilename, argv[i + 1]);
@ -617,7 +628,7 @@ int MiniMapBSPMain( int argc, char **argv )
} }
} }
MiniMapMakeMinsMaxs(mins, maxs); MiniMapMakeMinsMaxs(mins, maxs, border);
if(!*minimapFilename) if(!*minimapFilename)
{ {