]> de.git.xonotic.org Git - xonotic/darkplaces.git/blobdiff - model_alias.c
no longer sends moves if time is not moving forward, except when paused (this fixes...
[xonotic/darkplaces.git] / model_alias.c
index ee3084106c4176db04bade334c33f7eb308911f1..c2bd4a8c3863e4c22d1eb8b5e6017d7c6fd3cb8e 100644 (file)
@@ -80,7 +80,7 @@ void Mod_Alias_GetMesh_Vertices(const model_t *model, const frameblend_t *frameb
                        R_ConcatTransforms(bonepose[i], model->data_baseboneposeinverse + i * 12, boneposerelative[i]);
                }
                // blend the vertex bone weights
-               // special case for the extremely common wf[0] == 1 because it saves 12 adds and multiplies (w[0] is always 1 if only one bone controls this vertex, artists only use multiple bones for certain special cases)
+               // special case for the extremely common wf[0] == 1 because it saves 3 multiplies per array when compared to the other case (w[0] is always 1 if only one bone controls this vertex, artists only use multiple bones for certain special cases)
                // special case for the first bone because it avoids the need to memset the arrays before filling
                {
                        const float *v = model->surfmesh.data_vertex3f;
@@ -685,7 +685,7 @@ static void Mod_BuildAliasSkinFromSkinFrame(texture_t *texture, skinframe_t *ski
 
        texture->basematerialflags = MATERIALFLAG_WALL;
        if (texture->currentskinframe->fog)
-               texture->basematerialflags |= MATERIALFLAG_ALPHA | MATERIALFLAG_BLENDED | MATERIALFLAG_TRANSPARENT;
+               texture->basematerialflags |= MATERIALFLAG_ALPHA | MATERIALFLAG_BLENDED | MATERIALFLAG_TRANSPARENT | MATERIALFLAG_NOSHADOW;
        texture->currentmaterialflags = texture->basematerialflags;
 }
 
@@ -1452,7 +1452,7 @@ void Mod_ZYMOTICMODEL_Load(model_t *mod, void *buffer, void *bufferend)
        pinmodel = (zymtype1header_t *)buffer;
        pbase = (unsigned char *)buffer;
        if (memcmp(pinmodel->id, "ZYMOTICMODEL", 12))
-               Host_Error ("Mod_ZYMOTICMODEL_Load: %s is not a zymotic model");
+               Host_Error ("Mod_ZYMOTICMODEL_Load: %s is not a zymotic model", loadmodel->name);
        if (BigLong(pinmodel->type) != 1)
                Host_Error ("Mod_ZYMOTICMODEL_Load: only type 1 (skeletal pose) models are currently supported (name = %s)", loadmodel->name);
 
@@ -1497,12 +1497,12 @@ void Mod_ZYMOTICMODEL_Load(model_t *mod, void *buffer, void *bufferend)
 
        if (pheader->numtris < 1 || pheader->numverts < 3 || pheader->numshaders < 1)
        {
-               Con_Printf("%s has no geometry\n");
+               Con_Printf("%s has no geometry\n", loadmodel->name);
                return;
        }
        if (pheader->numscenes < 1 || pheader->lump_poses.length < (int)sizeof(float[3][4]))
        {
-               Con_Printf("%s has no animations\n");
+               Con_Printf("%s has no animations\n", loadmodel->name);
                return;
        }
 
@@ -1762,7 +1762,7 @@ void Mod_DARKPLACESMODEL_Load(model_t *mod, void *buffer, void *bufferend)
        pheader = (dpmheader_t *)buffer;
        pbase = (unsigned char *)buffer;
        if (memcmp(pheader->id, "DARKPLACESMODEL\0", 16))
-               Host_Error ("Mod_DARKPLACESMODEL_Load: %s is not a darkplaces model");
+               Host_Error ("Mod_DARKPLACESMODEL_Load: %s is not a darkplaces model", loadmodel->name);
        if (BigLong(pheader->type) != 2)
                Host_Error ("Mod_DARKPLACESMODEL_Load: only type 2 (hierarchical skeletal pose) models are currently supported (name = %s)", loadmodel->name);
 
@@ -1790,12 +1790,12 @@ void Mod_DARKPLACESMODEL_Load(model_t *mod, void *buffer, void *bufferend)
 
        if (pheader->num_bones < 1 || pheader->num_meshs < 1)
        {
-               Con_Printf("%s has no geometry\n");
+               Con_Printf("%s has no geometry\n", loadmodel->name);
                return;
        }
        if (pheader->num_frames < 1)
        {
-               Con_Printf("%s has no frames\n");
+               Con_Printf("%s has no frames\n", loadmodel->name);
                return;
        }
 
@@ -2063,7 +2063,7 @@ void Mod_PSKMODEL_Load(model_t *mod, void *buffer, void *bufferend)
 
        pchunk = (pskchunk_t *)buffer;
        if (strcmp(pchunk->id, "ACTRHEAD"))
-               Host_Error ("Mod_PSKMODEL_Load: %s is not an Unreal Engine ActorX (.psk + .psa) model");
+               Host_Error ("Mod_PSKMODEL_Load: %s is not an Unreal Engine ActorX (.psk + .psa) model", loadmodel->name);
 
        loadmodel->type = mod_alias;
        loadmodel->DrawSky = NULL;
@@ -2298,7 +2298,7 @@ void Mod_PSKMODEL_Load(model_t *mod, void *buffer, void *bufferend)
                        // positions from the psk, but this is hard for me to implement
                        // and people can easily make animations that match.
                        if (numanimbones != numbones)
-                               Host_Error("%s: this loader only supports animations with the same bones as the mesh");
+                               Host_Error("%s: this loader only supports animations with the same bones as the mesh", loadmodel->name);
                        for (index = 0, p = (pskboneinfo_t *)animbuffer;index < numrecords;index++, p++)
                        {
                                p->numchildren = LittleLong(p->numchildren);