From 08f3dc39975904f9b6c7f34c8a90933037ccc721 Mon Sep 17 00:00:00 2001 From: divverent Date: Sat, 7 Nov 2009 13:09:06 +0000 Subject: [PATCH] more error code fixing git-svn-id: svn://svn.icculus.org/twilight/trunk/darkplaces@9453 d7cf8633-e32d-0410-b094-e92efae38249 --- cl_main.c | 2 +- csprogs.c | 12 ++++++------ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/cl_main.c b/cl_main.c index 58241741..5e6521f2 100644 --- 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 { diff --git a/csprogs.c b/csprogs.c index 5392ae07..27b82992 100644 --- 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; } -- 2.39.2