From ea1bc9587de3d3769cf1121f8d90e5e17dba4ab3 Mon Sep 17 00:00:00 2001 From: havoc Date: Wed, 17 Feb 2010 03:14:12 +0000 Subject: [PATCH] don't error out when Mod_Q3BSP_LoadTriangles is called on a map with no vertexes git-svn-id: svn://svn.icculus.org/twilight/trunk/darkplaces@9961 d7cf8633-e32d-0410-b094-e92efae38249 --- model_brush.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/model_brush.c b/model_brush.c index f86b9a5d..aea6997f 100644 --- a/model_brush.c +++ b/model_brush.c @@ -4478,8 +4478,16 @@ static void Mod_Q3BSP_LoadTriangles(lump_t *l) if (l->filelen % sizeof(int[3])) Host_Error("Mod_Q3BSP_LoadTriangles: funny lump size in %s",loadmodel->name); count = l->filelen / sizeof(*in); - out = (int *)Mem_Alloc(loadmodel->mempool, count * sizeof(*out)); + if(!loadmodel->brushq3.num_vertices) + { + if (count) + Con_Printf("Mod_Q3BSP_LoadTriangles: %s has triangles but no vertexes, broken compiler, ignoring problem\n", loadmodel->name); + loadmodel->brushq3.num_triangles = 0; + return; + } + + out = (int *)Mem_Alloc(loadmodel->mempool, count * sizeof(*out)); loadmodel->brushq3.num_triangles = count / 3; loadmodel->brushq3.data_element3i = out; @@ -4489,8 +4497,6 @@ static void Mod_Q3BSP_LoadTriangles(lump_t *l) if (*out < 0 || *out >= loadmodel->brushq3.num_vertices) { Con_Printf("Mod_Q3BSP_LoadTriangles: invalid vertexindex %i (%i vertices), setting to 0\n", *out, loadmodel->brushq3.num_vertices); - if(!loadmodel->brushq3.num_vertices) - Host_Error("Mod_Q3BSP_LoadTriangles: %s has triangles but no vertexes, cannot fix\n", loadmodel->name); *out = 0; } } -- 2.39.2