From 08cf9d4edaeccd3fbdbfd5c7ab02c0a422be769c Mon Sep 17 00:00:00 2001
From: lordhavoc <lordhavoc@d7cf8633-e32d-0410-b094-e92efae38249>
Date: Sun, 10 Mar 2002 05:04:22 +0000
Subject: [PATCH] check for empty submodels (lacrima.bsp for example)

git-svn-id: svn://svn.icculus.org/twilight/trunk/darkplaces@1614 d7cf8633-e32d-0410-b094-e92efae38249
---
 model_brush.c | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

diff --git a/model_brush.c b/model_brush.c
index 9b0a3454..1760cb75 100644
--- a/model_brush.c
+++ b/model_brush.c
@@ -2379,6 +2379,7 @@ void Mod_LoadBrushModel (model_t *mod, void *buffer)
 	dheader_t	*header;
 	dmodel_t 	*bm;
 	mempool_t	*mainmempool;
+	char		*loadname;
 
 	mod->type = mod_brush;
 
@@ -2444,6 +2445,7 @@ void Mod_LoadBrushModel (model_t *mod, void *buffer)
 	mod->numframes = 2;		// regular and alternate animation
 
 	mainmempool = mod->mempool;
+	loadname = mod->name;
 
 //
 // set up the submodels (FIXME: this is confusing)
@@ -2507,6 +2509,18 @@ void Mod_LoadBrushModel (model_t *mod, void *buffer)
 		mod->rotatedmins[0] = mod->rotatedmins[1] = mod->rotatedmins[2] = -modelradius;
 		mod->rotatedmaxs[0] = mod->rotatedmaxs[1] = mod->rotatedmaxs[2] = modelradius;
 //		mod->modelradius = modelradius;
+		// LordHavoc: check for empty submodels (lacrima.bsp has such a glitch)
+		if (mod->normalmins[0] > mod->normalmaxs[0] || mod->normalmins[1] > mod->normalmaxs[1] || mod->normalmins[2] > mod->normalmaxs[2])
+		{
+			Con_Printf("warning: empty submodel *%i in %s\n", i+1, loadname);
+			VectorClear(mod->normalmins);
+			VectorClear(mod->normalmaxs);
+			VectorClear(mod->yawmins);
+			VectorClear(mod->yawmaxs);
+			VectorClear(mod->rotatedmins);
+			VectorClear(mod->rotatedmaxs);
+			//mod->modelradius = 0;
+		}
 
 //		VectorCopy (bm->maxs, mod->maxs);
 //		VectorCopy (bm->mins, mod->mins);
-- 
2.39.5