X-Git-Url: http://de.git.xonotic.org/?a=blobdiff_plain;f=model_shared.c;h=6209ace388328f1c5d0ef7b8ea6b2d2158906a88;hb=685e171914f1c0709b04ca02c97505a4055001f0;hp=9b5fc1d115e4131ab955df9db92f8146557905d8;hpb=e411cc7d14dad08cbbe27f5b3af86700f7eb5184;p=xonotic%2Fdarkplaces.git diff --git a/model_shared.c b/model_shared.c index 9b5fc1d1..6209ace3 100644 --- a/model_shared.c +++ b/model_shared.c @@ -54,13 +54,13 @@ Caches the data if needed void *Mod_Extradata (model_t *mod) { void *r; - + r = Cache_Check (&mod->cache); if (r) return r; Mod_LoadModel (mod, true); - + if (!mod->cache.data) Host_Error ("Mod_Extradata: caching failed"); return mod->cache.data; @@ -75,7 +75,7 @@ void Mod_ClearAll (void) { int i; model_t *mod; - + for (i=0 , mod=mod_known ; icachesize) mod->needload = true; @@ -91,17 +91,17 @@ model_t *Mod_FindName (char *name) { int i; model_t *mod; - + if (!name[0]) Host_Error ("Mod_ForName: NULL name"); - + // // search the currently loaded models // for (i=0 , mod=mod_known ; iname, name) ) break; - + if (i == mod_numknown) { if (mod_numknown == MAX_MOD_KNOWN) @@ -123,9 +123,9 @@ Mod_TouchModel void Mod_TouchModel (char *name) { model_t *mod; - + mod = Mod_FindName (name); - + if (!mod->needload) if (mod->cachesize) Cache_Check (&mod->cache); @@ -165,16 +165,20 @@ model_t *Mod_LoadModel (model_t *mod, qboolean crash) Host_Error ("Mod_NumForName: %s not found", mod->name); // LordHavoc: Sys_Error was *ANNOYING* return NULL; } - + // allocate a new model // COM_FileBase (mod->name, loadname); strcpy(loadname, mod->name); - + loadmodel = mod; // call the apropriate loader mod->needload = false; - + + // LordHavoc: clear some important stuff in the model_t structure + mod->flags = 0; + mod->flags2 = 0; + switch (LittleLong(*(unsigned *)buf)) { case IDPOLYHEADER: @@ -188,7 +192,7 @@ model_t *Mod_LoadModel (model_t *mod, qboolean crash) case (('O'<<24)+('M'<<16)+('Y'<<8)+'Z'): Mod_LoadZymoticModel(mod, buf); break; - + case IDSPRITEHEADER: Mod_LoadSpriteModel (mod, buf); break;