more error code fixing
authordivverent <divverent@d7cf8633-e32d-0410-b094-e92efae38249>
Sat, 7 Nov 2009 13:09:06 +0000 (13:09 +0000)
committerdivverent <divverent@d7cf8633-e32d-0410-b094-e92efae38249>
Sat, 7 Nov 2009 13:09:06 +0000 (13:09 +0000)
git-svn-id: svn://svn.icculus.org/twilight/trunk/darkplaces@9453 d7cf8633-e32d-0410-b094-e92efae38249

cl_main.c
csprogs.c

index 5824174..5e6521f 100644 (file)
--- a/cl_main.c
+++ b/cl_main.c
@@ -918,7 +918,7 @@ void CL_UpdateNetworkEntity(entity_t *e, int recursionlimit, qboolean interpolat
                e->render.flags |= t->render.flags & (RENDER_EXTERIORMODEL | RENDER_VIEWMODEL);
                // if a valid tagindex is used, make it relative to that tag instead
                // FIXME: use a model function to get tag info (need to handle skeletal)
-               if (e->state_current.tagentity && e->state_current.tagindex >= 1)
+               if (e->state_current.tagentity && e->state_current.tagindex >= 1 && e->render.model)
                {
                        if(!CL_BlendTagMatrix(&t->render, e->state_current.tagindex - 1, &blendmatrix)) // i.e. no error
                        {
index 5392ae0..27b8299 100644 (file)
--- a/csprogs.c
+++ b/csprogs.c
@@ -1031,24 +1031,24 @@ void CL_LoadFrameGroupBlend(prvm_edict_t *ed, entity_render_t *entrender)
        entrender->framegroupblend[1].lerp = 1 - entrender->framegroupblend[0].lerp - entrender->framegroupblend[2].lerp - entrender->framegroupblend[3].lerp;
 }
 
-qboolean CL_BlendTagMatrix(entity_render_t *entrender, int tagindex, matrix4x4_t *blendmatrix)
+int CL_BlendTagMatrix(entity_render_t *entrender, int tagindex, matrix4x4_t *blendmatrix)
 {
        int j, l, k;
+       int ret;
        float d;
        dp_model_t *model = entrender->model;
-       if(!model)
-               return false;
        // blend the matrices
        memset(blendmatrix, 0, sizeof(*blendmatrix));
        for (j = 0;j < MAX_FRAMEBLENDS && entrender->frameblend[j].lerp > 0;j++)
        {
                matrix4x4_t tagmatrix;
-               if(Mod_Alias_GetTagMatrix(model, entrender->frameblend[j].subframe, tagindex, &tagmatrix))
-                       return false;
+               ret = Mod_Alias_GetTagMatrix(model, entrender->frameblend[j].subframe, tagindex, &tagmatrix);
+               if(ret)
+                       return ret;
                d = entrender->frameblend[j].lerp;
                for (l = 0;l < 4;l++)
                        for (k = 0;k < 4;k++)
                                blendmatrix->m[l][k] += d * tagmatrix.m[l][k];
        }
-       return true;
+       return 0;
 }