diff --git a/Quake/gl_model.c b/Quake/gl_model.c index 4a2f0575..c77d274b 100644 --- a/Quake/gl_model.c +++ b/Quake/gl_model.c @@ -3256,16 +3256,16 @@ static void Mod_LoadAliasModel (qmodel_t *mod, void *buffer) if (pheader->numverts <= 0) Sys_Error ("model %s has no vertices", mod->name); - - if (pheader->numverts > MAXALIASVERTS_QS && (developer.value || map_checks.value)) + else if (pheader->numverts > MAXALIASVERTS) + Sys_Error ("model %s has too many vertices (%d; max = %d)", mod->name, pheader->numverts, MAXALIASVERTS); + else if (pheader->numverts > MAXALIASVERTS_QS && (developer.value || map_checks.value)) Con_Warning ("model %s vertex count of %d exceeds QS limit of %d\n", mod->name, pheader->numverts, MAXALIASVERTS_QS); pheader->numtris = LittleLong (pinmodel->numtris); if (pheader->numtris <= 0) Sys_Error ("model %s has no triangles", mod->name); - - if (pheader->numtris > MAXALIASTRIS_QS && (developer.value || map_checks.value)) + else if (pheader->numtris > MAXALIASTRIS_QS && (developer.value || map_checks.value)) Con_Warning ("model %s triangle count of %d exceeds QS limit of %d\n", mod->name, pheader->numtris, MAXALIASTRIS_QS); pheader->numframes = LittleLong (pinmodel->numframes); diff --git a/Quake/gl_model.h b/Quake/gl_model.h index 30848ed4..99cb6fd1 100644 --- a/Quake/gl_model.h +++ b/Quake/gl_model.h @@ -363,6 +363,7 @@ typedef struct bonepose_t inverse; } boneinfo_t; +#define MAXALIASVERTS 0x7fff //16-bit index buffer + onseam duplication #define MAXALIASVERTS_QS 2000 //johnfitz -- was 1024 #define MAXALIASFRAMES 1024 //spike -- was 256 #define MAXALIASTRIS_QS 4096 //ericw -- was 2048