From cb883558009bc5cc34d95b8ef3b305ba055b4b3d Mon Sep 17 00:00:00 2001 From: Eukara Date: Thu, 17 Jan 2019 09:27:09 +0000 Subject: [PATCH] hlmdl: fix framestate related crashes when tracing wrongly against hlmdl. hlmdl: fix that looping animations wrongly get their last frame removed, presumably which will fix most crashes git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5386 fc73d0e0-1445-4013-8a0c-d673dee63da5 --- engine/gl/gl_hlmdl.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/engine/gl/gl_hlmdl.c b/engine/gl/gl_hlmdl.c index b6678cef4..b6cefd7ac 100644 --- a/engine/gl/gl_hlmdl.c +++ b/engine/gl/gl_hlmdl.c @@ -595,14 +595,14 @@ void HL_SetupBones(hlmodel_t *model, int seqnum, int firstbone, int lastbone, fl if(frame1 >= sequence->numframes) { if (sequence->loop) - frame1 %= sequence->numframes-1; + frame1 %= sequence->numframes; else frame1 = sequence->numframes-1; } if(frame2 >= sequence->numframes) { if (sequence->loop) - frame2 %= sequence->numframes-1; + frame2 %= sequence->numframes; else frame2 = sequence->numframes-1; } @@ -962,7 +962,7 @@ qboolean HLMDL_Trace (model_t *model, int hulloverride, framestate_t *framestat memset (trace, 0, sizeof(trace_t)); trace->fraction = trace->truefraction = 1; - if (!(against & FTECONTENTS_BODY)) + if (!(against & FTECONTENTS_BODY) || !framestate) return false; if (framestate->bonestate && framestate->skeltype == SKEL_ABSOLUTE)