diff --git a/doomsday/Include/r_model.h b/doomsday/Include/r_model.h index de52af8c95..f8931d004e 100644 --- a/doomsday/Include/r_model.h +++ b/doomsday/Include/r_model.h @@ -53,6 +53,7 @@ typedef struct typedef struct modeldef_s { int order; + char id[33]; state_t *state; // Pointer to the states list (in dd_defns.c). int flags; @@ -87,6 +88,7 @@ void R_ShutdownModels(void); void R_ClearModelPath(void); void R_AddModelPath(char *addPath, boolean append); float R_CheckModelFor(mobj_t *mo, modeldef_t **mdef, modeldef_t **nextmdef); +modeldef_t *R_CheckIDModelFor(const char *id); void R_SetSpriteReplacement(int sprite, char *modelname); int R_FindModelFile(const char *filename, char *outfn); byte *R_LoadSkin(model_t *mdl, int skin, int *width, int *height, int *pxsize); diff --git a/doomsday/Src/dd_defns.c b/doomsday/Src/dd_defns.c index bca31ad397..951237db2d 100644 --- a/doomsday/Src/dd_defns.c +++ b/doomsday/Src/dd_defns.c @@ -198,6 +198,18 @@ int Def_GetStateNum(char *id) return -1; } +int Def_GetModelNum(const char *id) +{ + int i; + + if(!id[0]) return -1; + + for(i = 0; i < defs.count.models.num; i++) + if(!strcmp(defs.models[i].id, id)) + return i; + return -1; +} + int Def_GetSoundNum(char *id) { int i;