From: divverent Date: Sat, 7 Nov 2009 13:09:06 +0000 (+0000) Subject: more error code fixing X-Git-Tag: xonotic-v0.1.0preview~1189 X-Git-Url: https://git.rm.cloudns.org/?a=commitdiff_plain;h=08f3dc39975904f9b6c7f34c8a90933037ccc721;p=xonotic%2Fdarkplaces.git more error code fixing git-svn-id: svn://svn.icculus.org/twilight/trunk/darkplaces@9453 d7cf8633-e32d-0410-b094-e92efae38249 --- 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; }