X-Git-Url: http://de.git.xonotic.org/?p=xonotic%2Fdarkplaces.git;a=blobdiff_plain;f=model_shared.c;h=7dd2e45fab19e444a5a2ceab93389cde7fdd49d2;hp=b0de85635ea7cfca72ec6d62e7775f2c2e52264c;hb=3c626a98c5ea3971a9a3a06d133c72f63c1386eb;hpb=c404212b669f0c14d57f76b0f58220e0e257927b diff --git a/model_shared.c b/model_shared.c index b0de8563..7dd2e45f 100644 --- a/model_shared.c +++ b/model_shared.c @@ -189,19 +189,20 @@ model_t *Mod_LoadModel(model_t *mod, qboolean crash, qboolean checkdisk, qboolea if (buf) { + char *bufend = buf + fs_filesize; num = LittleLong(*((int *)buf)); // call the apropriate loader loadmodel = mod; - if (!memcmp(buf, "IDPO", 4)) Mod_IDP0_Load(mod, buf); - else if (!memcmp(buf, "IDP2", 4)) Mod_IDP2_Load(mod, buf); - else if (!memcmp(buf, "IDP3", 4)) Mod_IDP3_Load(mod, buf); - else if (!memcmp(buf, "IDSP", 4)) Mod_IDSP_Load(mod, buf); - else if (!memcmp(buf, "IDS2", 4)) Mod_IDS2_Load(mod, buf); - else if (!memcmp(buf, "IBSP", 4)) Mod_IBSP_Load(mod, buf); - else if (!memcmp(buf, "ZYMOTICMODEL", 12)) Mod_ZYMOTICMODEL_Load(mod, buf); - else if (!memcmp(buf, "DARKPLACESMODEL", 16)) Mod_DARKPLACESMODEL_Load(mod, buf); - else if (strlen(mod->name) >= 4 && !strcmp(mod->name - 4, ".map")) Mod_MAP_Load(mod, buf); - else if (num == BSPVERSION || num == 30) Mod_Q1BSP_Load(mod, buf); + if (!memcmp(buf, "IDPO", 4)) Mod_IDP0_Load(mod, buf, bufend); + else if (!memcmp(buf, "IDP2", 4)) Mod_IDP2_Load(mod, buf, bufend); + else if (!memcmp(buf, "IDP3", 4)) Mod_IDP3_Load(mod, buf, bufend); + else if (!memcmp(buf, "IDSP", 4)) Mod_IDSP_Load(mod, buf, bufend); + else if (!memcmp(buf, "IDS2", 4)) Mod_IDS2_Load(mod, buf, bufend); + else if (!memcmp(buf, "IBSP", 4)) Mod_IBSP_Load(mod, buf, bufend); + else if (!memcmp(buf, "ZYMOTICMODEL", 12)) Mod_ZYMOTICMODEL_Load(mod, buf, bufend); + else if (!memcmp(buf, "DARKPLACESMODEL", 16)) Mod_DARKPLACESMODEL_Load(mod, buf, bufend); + else if (strlen(mod->name) >= 4 && !strcmp(mod->name - 4, ".map")) Mod_MAP_Load(mod, buf, bufend); + else if (num == BSPVERSION || num == 30) Mod_Q1BSP_Load(mod, buf, bufend); else Con_Printf("Mod_LoadModel: model \"%s\" is of unknown/unsupported type\n", mod->name); Mem_Free(buf); }