]> de.git.xonotic.org Git - xonotic/darkplaces.git/blobdiff - model_shared.c
a little cleanup, and eliminated a lightstyle buffer overflow
[xonotic/darkplaces.git] / model_shared.c
index 80ca54b59dd8f59514bd54f620212352c0de55be..d9d0efbcc665a81f6049fad450e50704f65f1927 100644 (file)
@@ -27,10 +27,11 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 model_t        *loadmodel;
 char   loadname[32];   // for hunk tags
 
-void Mod_LoadSpriteModel (model_t *mod, void *buffer);
-void Mod_LoadBrushModel (model_t *mod, void *buffer);
-void Mod_LoadAliasModel (model_t *mod, void *buffer);
-void Mod_LoadQ2AliasModel (model_t *mod, void *buffer);
+extern void Mod_LoadSpriteModel (model_t *mod, void *buffer);
+extern void Mod_LoadBrushModel (model_t *mod, void *buffer);
+extern void Mod_LoadAliasModel (model_t *mod, void *buffer);
+extern void Mod_LoadQ2AliasModel (model_t *mod, void *buffer);
+extern void Mod_LoadZymoticModel (model_t *mod, void *buffer);
 model_t *Mod_LoadModel (model_t *mod, qboolean crash);
 
 #define        MAX_MOD_KNOWN   512
@@ -153,7 +154,6 @@ model_t *Mod_LoadModel (model_t *mod, qboolean crash)
 {
        void    *d;
        unsigned *buf;
-//     byte    stackbuf[1024];         // avoid dirtying the cache heap
 
        if (!mod->needload)
        {
@@ -171,7 +171,6 @@ model_t *Mod_LoadModel (model_t *mod, qboolean crash)
 
 // load the file
        buf = (unsigned *)COM_LoadMallocFile (mod->name, false);
-//     buf = (unsigned *)COM_LoadStackFile (mod->name, stackbuf, sizeof(stackbuf), false);
        if (!buf)
        {
                if (crash)
@@ -180,7 +179,8 @@ model_t *Mod_LoadModel (model_t *mod, qboolean crash)
        }
        
 // allocate a new model
-       COM_FileBase (mod->name, loadname);
+//     COM_FileBase (mod->name, loadname);
+       strcpy(loadname, mod->name);
        
        loadmodel = mod;
 
@@ -196,6 +196,10 @@ model_t *Mod_LoadModel (model_t *mod, qboolean crash)
        case MD2IDALIASHEADER: // LordHavoc: added Quake2 model support
                Mod_LoadQ2AliasModel (mod, buf);
                break;
+
+       case (('O'<<24)+('M'<<16)+('Y'<<8)+'Z'):
+               Mod_LoadZymoticModel(mod, buf);
+               break;
                
        case IDSPRITEHEADER:
                Mod_LoadSpriteModel (mod, buf);
@@ -205,7 +209,7 @@ model_t *Mod_LoadModel (model_t *mod, qboolean crash)
                Mod_LoadBrushModel (mod, buf);
                break;
        }
-       free(buf);
+       qfree(buf);
 
        return mod;
 }