Mod_FreeModel(mod);
strcpy(mod->name, name);
mod->isworldmodel = isworldmodel;
- mod->needload = true;
+ mod->loaded = false;
}
/*
crc = 0;
buf = NULL;
if (mod->isworldmodel != isworldmodel)
- mod->needload = true;
- if (mod->needload || checkdisk)
+ mod->loaded = false;
+ if (!mod->loaded || checkdisk)
{
- if (checkdisk && !mod->needload)
+ if (checkdisk && mod->loaded)
Con_DPrintf("checking model %s\n", mod->name);
buf = FS_LoadFile (mod->name, tempmempool, false);
if (buf)
{
crc = CRC_Block(buf, fs_filesize);
if (mod->crc != crc)
- mod->needload = true;
+ mod->loaded = false;
}
}
- if (!mod->needload)
+ if (mod->loaded)
return mod; // already loaded
Con_DPrintf("loading model %s\n", mod->name);
// LordHavoc: unload the existing model in this slot (if there is one)
Mod_UnloadModel(mod);
+
// load the model
mod->isworldmodel = isworldmodel;
mod->used = true;
mod->crc = crc;
- // errors can prevent the corresponding mod->needload = false;
- mod->needload = true;
+ // errors can prevent the corresponding mod->loaded = true;
+ mod->loaded = false;
// default model radius and bounding box (mainly for missing models)
mod->radius = 16;
}
// no errors occurred
- mod->needload = false;
+ mod->loaded = true;
return mod;
}
{
if (mod)
{
- if (mod->needload)
+ if (!mod->loaded)
Mod_LoadModel(mod, true, true, mod->isworldmodel);
else
{
{
mod = freemod;
strcpy (mod->name, name);
- mod->needload = true;
+ mod->loaded = false;
mod->used = true;
return mod;
}
return NULL;
}
-/*
-==================
-Mod_TouchModel
-
-==================
-*/
-void Mod_TouchModel(const char *name)
-{
- model_t *mod;
-
- mod = Mod_FindName(name);
- mod->used = true;
-}
-
/*
==================
Mod_ForName
{
// name and path of model, for example "progs/player.mdl"
char name[MAX_QPATH];
- // model needs to be loaded if this is true
- qboolean needload;
+ // model needs to be loaded if this is false
+ qboolean loaded;
// set if the model is used in current map, models which are not, are purged
qboolean used;
// true if this is the world model (I.E. defines what sky to use, and may contain submodels)
void Mod_ClearAll (void);
model_t *Mod_FindName (const char *name);
model_t *Mod_ForName (const char *name, qboolean crash, qboolean checkdisk, qboolean isworldmodel);
-void Mod_TouchModel (const char *name);
void Mod_UnloadModel (model_t *mod);
void Mod_ClearUsed(void);