diff --git a/docs/Complete_list_of_command_line_parameters.htm b/docs/Complete_list_of_command_line_parameters.htm
index a8984fb9..2ddd134b 100644
--- a/docs/Complete_list_of_command_line_parameters.htm
+++ b/docs/Complete_list_of_command_line_parameters.htm
@@ -104,7 +104,7 @@ td.formatted_questions ol { margin-top: 0px; margin-bottom: 0px; }
Common options¶
-connect address: Talk to a NetRadiant instance using a specific XML based protocol
- -force: Allow reading some broken/unsupported BSP files e.g. when decompiling, may crash. Also enables decompilation of model autoclip brushes.
+ -force: Allow reading some broken/unsupported BSP files e.g. when decompiling, may crash
-fs_basepath path: Sets the given path as main directory of the game (can be used more than once to look in multiple paths)
-fs_forbiddenpath pattern: Pattern to ignore directories, pk3, and pk3dir; example pak?.pk3 (can be used more than once to look for multiple patterns)
-fs_game gamename: Sets extra game directory name to additionally load mod's resources from at higher priority (by default for Q3A 'baseq3' is loaded, -fs_game cpma will also load 'cpma'; can be used more than once)
@@ -325,6 +325,7 @@ td.formatted_questions ol { margin-top: 0px; margin-bottom: 0px; }
-format converter: Select the converter, default ase (available: map, map_bp, ase, obj, or game names)
-lightmapsastexcoord: Save lightmap names and texcoords instead of textures (only when writing ase and obj)
-meta: Combine adjacent triangles of the same texture to surfaces (only when reading map)
+ -modelclip: Decompile model autoclip brushes during bsp to map conversion (they are skipped by default)
-ne F: Normal epsilon for the conversion (only when reading map)
-patchmeta: Turn patches into triangle meshes for display (only when reading map)
-readbsp: Force converting bsp to selected format
diff --git a/docs/changelog-custom.txt b/docs/changelog-custom.txt
index 8eb06881..a4abd63c 100644
--- a/docs/changelog-custom.txt
+++ b/docs/changelog-custom.txt
@@ -186,6 +186,7 @@ Q3map2:
* fix and simplify FloodAreas
* support distinct lighting from different sky shaders in one map (by Tom Arrow)
* -onesky: fallback to old behavior: any sky emits total of all suns/skylights in the map
+ * -modelclip: Decompile model autoclip brushes during bsp to map conversion (they are skipped by default)
diff --git a/tools/quake3/q3map2/convert_bsp.cpp b/tools/quake3/q3map2/convert_bsp.cpp
index 38b576f0..23b59da0 100644
--- a/tools/quake3/q3map2/convert_bsp.cpp
+++ b/tools/quake3/q3map2/convert_bsp.cpp
@@ -1107,6 +1107,9 @@ int ConvertBSPMain( Args& args ){
while ( args.takeArg( "-fast" ) ) {
fast = true;
}
+ while ( args.takeArg( "-modelclip" ) ) {
+ g_decompile_modelClip = true;
+ }
}
LoadShaderInfo();
diff --git a/tools/quake3/q3map2/convert_map.cpp b/tools/quake3/q3map2/convert_map.cpp
index c9cf52f2..d949ed6f 100644
--- a/tools/quake3/q3map2/convert_map.cpp
+++ b/tools/quake3/q3map2/convert_map.cpp
@@ -195,8 +195,8 @@ static void bspBrush_to_buildBrush( const bspBrush_t& brush ){
buildBrush.sides.clear();
bool modelclip = false;
- /* try to guess if thats model clip */
- if ( force ){
+ /* try to guess if this is model clip */
+ if ( g_decompile_modelClip ){
int notNoShader = 0;
modelclip = true;
for ( const bspBrushSide_t& side : Span( &bspBrushSides[ brush.firstSide ], brush.numSides ) )
diff --git a/tools/quake3/q3map2/help.cpp b/tools/quake3/q3map2/help.cpp
index 25fb0646..c4b445c7 100644
--- a/tools/quake3/q3map2/help.cpp
+++ b/tools/quake3/q3map2/help.cpp
@@ -317,6 +317,7 @@ static void HelpConvert()
{ "-format ", "Select the converter, default ase (available: map, map_bp, ase, obj, or game names)" },
{ "-lightmapsastexcoord", "Save lightmap names and texcoords instead of textures (only when writing ase and obj)" },
{ "-meta", "Combine adjacent triangles of the same texture to surfaces (only when reading map)" },
+ { "-modelclip", "Decompile model autoclip brushes during bsp to map conversion (they are skipped by default)" },
{ "-ne ", "Normal epsilon for the conversion (only when reading map)" },
{ "-patchmeta", "Turn patches into triangle meshes for display (only when reading map)" },
{ "-readbsp", "Force converting bsp to selected format" },
@@ -450,7 +451,7 @@ static void HelpCommon()
{
const std::vector options = {
{ "-connect ", "Talk to a NetRadiant instance using a specific XML based protocol" },
- { "-force", "Allow reading some broken/unsupported BSP files e.g. when decompiling, may crash. Also enables decompilation of model autoclip brushes." },
+ { "-force", "Allow reading some broken/unsupported BSP files e.g. when decompiling, may crash" },
{ "-fs_basepath ", "Sets the given path as main directory of the game (can be used more than once to look in multiple paths)" },
{ "-fs_forbiddenpath ", "Pattern to ignore directories, pk3, and pk3dir; example pak?.pk3 (can be used more than once to look for multiple patterns)" },
{ "-fs_game ", "Sets extra game directory name to additionally load mod's resources from at higher priority (by default for Q3A 'baseq3' is loaded, -fs_game cpma will also load 'cpma'; can be used more than once)" },
diff --git a/tools/quake3/q3map2/q3map2.h b/tools/quake3/q3map2/q3map2.h
index a81d8300..8d684c2c 100644
--- a/tools/quake3/q3map2/q3map2.h
+++ b/tools/quake3/q3map2/q3map2.h
@@ -1776,6 +1776,8 @@ inline bool doingBSP;
// for .ase conversion
inline bool shadersAsBitmap;
inline bool lightmapsAsTexcoord;
+// bsp to map conversion
+inline bool g_decompile_modelClip;
/* general commandline arguments */
inline bool force;