From 597e5b5eeb9528635a584f582f264d3c0df1c6ff Mon Sep 17 00:00:00 2001 From: divverent Date: Mon, 27 Apr 2009 15:03:55 +0000 Subject: [PATCH] allow not keeping aspect git-svn-id: svn://svn.icculus.org/netradiant/trunk@345 61c419a2-8eb2-4b30-bcec-8cead039b335 --- tools/quake3/q3map2/game_ef.h | 1 + tools/quake3/q3map2/game_etut.h | 1 + tools/quake3/q3map2/game_ja.h | 1 + tools/quake3/q3map2/game_jk2.h | 1 + tools/quake3/q3map2/game_nexuiz.h | 1 + tools/quake3/q3map2/game_qfusion.h | 3 ++- tools/quake3/q3map2/game_quake3.h | 1 + tools/quake3/q3map2/game_quakelive.h | 1 + tools/quake3/q3map2/game_sof2.h | 1 + tools/quake3/q3map2/game_tenebrae.h | 1 + tools/quake3/q3map2/game_tremulous.h | 1 + tools/quake3/q3map2/game_wolf.h | 1 + tools/quake3/q3map2/game_wolfet.h | 1 + tools/quake3/q3map2/main.c | 38 +++++++++++++++++++--------- tools/quake3/q3map2/q3map2.h | 1 + 15 files changed, 41 insertions(+), 13 deletions(-) diff --git a/tools/quake3/q3map2/game_ef.h b/tools/quake3/q3map2/game_ef.h index e77194d2..b37c3584 100644 --- a/tools/quake3/q3map2/game_ef.h +++ b/tools/quake3/q3map2/game_ef.h @@ -117,6 +117,7 @@ 512, /* minimap size */ 1.0f, /* minimap sharpener */ 0.0f, /* minimap border */ + qtrue, /* minimap keep aspect */ "%s.tga", /* minimap name format */ "IBSP", /* bsp file prefix */ 46, /* bsp file version */ diff --git a/tools/quake3/q3map2/game_etut.h b/tools/quake3/q3map2/game_etut.h index 7244a27b..d8609e10 100644 --- a/tools/quake3/q3map2/game_etut.h +++ b/tools/quake3/q3map2/game_etut.h @@ -152,6 +152,7 @@ 512, /* minimap size */ 1.0f, /* minimap sharpener */ 0.0f, /* minimap border */ + qtrue, /* minimap keep aspect */ "%s.tga", /* minimap name format */ "IBSP", /* bsp file prefix */ 47, /* bsp file version */ diff --git a/tools/quake3/q3map2/game_ja.h b/tools/quake3/q3map2/game_ja.h index d8450067..8069ed31 100644 --- a/tools/quake3/q3map2/game_ja.h +++ b/tools/quake3/q3map2/game_ja.h @@ -71,6 +71,7 @@ 512, /* minimap size */ 1.0f, /* minimap sharpener */ 0.0f, /* minimap border */ + qtrue, /* minimap keep aspect */ "%s.tga", /* minimap name format */ "RBSP", /* bsp file prefix */ 1, /* bsp file version */ diff --git a/tools/quake3/q3map2/game_jk2.h b/tools/quake3/q3map2/game_jk2.h index ce8c4ba8..410dc585 100644 --- a/tools/quake3/q3map2/game_jk2.h +++ b/tools/quake3/q3map2/game_jk2.h @@ -68,6 +68,7 @@ 512, /* minimap size */ 1.0f, /* minimap sharpener */ 0.0f, /* minimap border */ + qtrue, /* minimap keep aspect */ "%s.tga", /* minimap name format */ "RBSP", /* bsp file prefix */ 1, /* bsp file version */ diff --git a/tools/quake3/q3map2/game_nexuiz.h b/tools/quake3/q3map2/game_nexuiz.h index 186b47ae..8aed61d4 100644 --- a/tools/quake3/q3map2/game_nexuiz.h +++ b/tools/quake3/q3map2/game_nexuiz.h @@ -67,6 +67,7 @@ 512, /* minimap size */ 1.0f, /* minimap sharpener */ 1.0f/66.0f, /* minimap border */ + qtrue, /* minimap keep aspect */ "../gfx/%s_mini.tga", /* minimap name format */ "IBSP", /* bsp file prefix */ 46, /* bsp file version */ diff --git a/tools/quake3/q3map2/game_qfusion.h b/tools/quake3/q3map2/game_qfusion.h index a61bb521..838d87b9 100644 --- a/tools/quake3/q3map2/game_qfusion.h +++ b/tools/quake3/q3map2/game_qfusion.h @@ -114,8 +114,9 @@ 1.0f, /* lightmap gamma */ 1.0f, /* lightmap compensate */ 512, /* minimap size */ - 1.0f, /* minimap sharpener */ + 0.0f, /* minimap sharpener */ 0.0f, /* minimap border */ + qfalse, /* minimap keep aspect */ "%s.tga", /* minimap name format */ "FBSP", /* bsp file prefix */ 1, /* bsp file version */ diff --git a/tools/quake3/q3map2/game_quake3.h b/tools/quake3/q3map2/game_quake3.h index 19856df6..2065dce1 100644 --- a/tools/quake3/q3map2/game_quake3.h +++ b/tools/quake3/q3map2/game_quake3.h @@ -116,6 +116,7 @@ 512, /* minimap size */ 1.0f, /* minimap sharpener */ 0.0f, /* minimap border */ + qtrue, /* minimap keep aspect */ "%s.tga", /* minimap name format */ "IBSP", /* bsp file prefix */ 46, /* bsp file version */ diff --git a/tools/quake3/q3map2/game_quakelive.h b/tools/quake3/q3map2/game_quakelive.h index f22e28d1..ec4c5622 100644 --- a/tools/quake3/q3map2/game_quakelive.h +++ b/tools/quake3/q3map2/game_quakelive.h @@ -80,6 +80,7 @@ 512, /* minimap size */ 1.0f, /* minimap sharpener */ 0.0f, /* minimap border */ + qtrue, /* minimap keep aspect */ "%s.tga", /* minimap name format */ "IBSP", /* bsp file prefix */ 47, /* bsp file version */ diff --git a/tools/quake3/q3map2/game_sof2.h b/tools/quake3/q3map2/game_sof2.h index cb620b26..25b31975 100644 --- a/tools/quake3/q3map2/game_sof2.h +++ b/tools/quake3/q3map2/game_sof2.h @@ -143,6 +143,7 @@ 512, /* minimap size */ 1.0f, /* minimap sharpener */ 0.0f, /* minimap border */ + qtrue, /* minimap keep aspect */ "%s.tga", /* minimap name format */ "RBSP", /* bsp file prefix */ 1, /* bsp file version */ diff --git a/tools/quake3/q3map2/game_tenebrae.h b/tools/quake3/q3map2/game_tenebrae.h index 84f7d508..b2141848 100644 --- a/tools/quake3/q3map2/game_tenebrae.h +++ b/tools/quake3/q3map2/game_tenebrae.h @@ -116,6 +116,7 @@ 512, /* minimap size */ 1.0f, /* minimap sharpener */ 0.0f, /* minimap border */ + qtrue, /* minimap keep aspect */ "%s.tga", /* minimap name format */ "IBSP", /* bsp file prefix */ 46, /* bsp file version */ diff --git a/tools/quake3/q3map2/game_tremulous.h b/tools/quake3/q3map2/game_tremulous.h index f0013e56..2ff8c8ac 100644 --- a/tools/quake3/q3map2/game_tremulous.h +++ b/tools/quake3/q3map2/game_tremulous.h @@ -74,6 +74,7 @@ 512, /* minimap size */ 1.0f, /* minimap sharpener */ 0.0f, /* minimap border */ + qtrue, /* minimap keep aspect */ "%s.tga", /* minimap name format */ "IBSP", /* bsp file prefix */ 46, /* bsp file version */ diff --git a/tools/quake3/q3map2/game_wolf.h b/tools/quake3/q3map2/game_wolf.h index 9e1c7c02..21702502 100644 --- a/tools/quake3/q3map2/game_wolf.h +++ b/tools/quake3/q3map2/game_wolf.h @@ -133,6 +133,7 @@ 512, /* minimap size */ 1.0f, /* minimap sharpener */ 0.0f, /* minimap border */ + qtrue, /* minimap keep aspect */ "%s.tga", /* minimap name format */ "IBSP", /* bsp file prefix */ 47, /* bsp file version */ diff --git a/tools/quake3/q3map2/game_wolfet.h b/tools/quake3/q3map2/game_wolfet.h index 5fbd4d0e..aba6cb67 100644 --- a/tools/quake3/q3map2/game_wolfet.h +++ b/tools/quake3/q3map2/game_wolfet.h @@ -70,6 +70,7 @@ 512, /* minimap size */ 1.0f, /* minimap sharpener */ 0.0f, /* minimap border */ + qtrue, /* minimap keep aspect */ "%s.tga", /* minimap name format */ "IBSP", /* bsp file prefix */ 47, /* bsp file version */ diff --git a/tools/quake3/q3map2/main.c b/tools/quake3/q3map2/main.c index 7b910c88..8553bc44 100644 --- a/tools/quake3/q3map2/main.c +++ b/tools/quake3/q3map2/main.c @@ -321,7 +321,7 @@ static void MiniMapSharpen(int y) } } -void MiniMapMakeMinsMaxs(vec3_t mins_in, vec3_t maxs_in, float border) +void MiniMapMakeMinsMaxs(vec3_t mins_in, vec3_t maxs_in, float border, qboolean keepaspect) { vec3_t mins, maxs, extend; VectorCopy(mins_in, mins); @@ -330,17 +330,19 @@ void MiniMapMakeMinsMaxs(vec3_t mins_in, vec3_t maxs_in, float border) // line compatible to nexuiz mapinfo Sys_Printf("size %f %f %f %f %f %f\n", mins[0], mins[1], mins[2], maxs[0], maxs[1], maxs[2]); - VectorSubtract(maxs, mins, extend); - - if(extend[1] > extend[0]) + if(keepaspect) { - mins[0] -= (extend[1] - extend[0]) * 0.5; - maxs[0] += (extend[1] - extend[0]) * 0.5; - } - else - { - mins[1] -= (extend[0] - extend[1]) * 0.5; - maxs[1] += (extend[0] - extend[1]) * 0.5; + VectorSubtract(maxs, mins, extend); + if(extend[1] > extend[0]) + { + mins[0] -= (extend[1] - extend[0]) * 0.5; + maxs[0] += (extend[1] - extend[0]) * 0.5; + } + else + { + mins[1] -= (extend[0] - extend[1]) * 0.5; + maxs[1] += (extend[0] - extend[1]) * 0.5; + } } /* border: amount of black area around the image */ @@ -563,6 +565,7 @@ int MiniMapBSPMain( int argc, char **argv ) int x, y; int i; vec3_t mins, maxs; + qboolean keepaspect; /* arg checking */ if( argc < 2 ) @@ -588,6 +591,7 @@ int MiniMapBSPMain( int argc, char **argv ) minimapSharpen = game->miniMapSharpen; minimap.width = minimap.height = game->miniMapSize; border = game->miniMapBorder; + keepaspect = game->miniMapKeepAspect; minimap.samples = 1; minimap.sample_offsets = NULL; @@ -632,6 +636,16 @@ int MiniMapBSPMain( int argc, char **argv ) i++; Sys_Printf( "Border set to %f\n", border ); } + else if( !strcmp( argv[ i ], "-keepaspect" ) ) + { + keepaspect = qtrue; + Sys_Printf( "Keeping aspect ratio by letterboxing\n", border ); + } + else if( !strcmp( argv[ i ], "-nokeepaspect" ) ) + { + keepaspect = qfalse; + Sys_Printf( "Not keeping aspect ratio\n", border ); + } else if( !strcmp( argv[ i ], "-o" ) ) { strcpy(minimapFilename, argv[i + 1]); @@ -651,7 +665,7 @@ int MiniMapBSPMain( int argc, char **argv ) } } - MiniMapMakeMinsMaxs(mins, maxs, border); + MiniMapMakeMinsMaxs(mins, maxs, border, keepaspect); if(!*minimapFilename) { diff --git a/tools/quake3/q3map2/q3map2.h b/tools/quake3/q3map2/q3map2.h index 2c074443..7045c92e 100644 --- a/tools/quake3/q3map2/q3map2.h +++ b/tools/quake3/q3map2/q3map2.h @@ -569,6 +569,7 @@ typedef struct game_s int miniMapSize; /* minimap size */ float miniMapSharpen; /* minimap sharpening coefficient */ float miniMapBorder; /* minimap border amount */ + qboolean miniMapKeepAspect; /* minimap keep aspect ratio by letterboxing */ char *miniMapNameFormat; /* minimap name format */ char *bspIdent; /* 4-letter bsp file prefix */ int bspVersion; /* bsp version to use */