Skip to content

Commit 523a749

Browse files
committed
server: fixed studiomodel animation events double activations
This fix was obtained from Diffusion and it wasn't formally approved to be correct.
1 parent 52ba780 commit 523a749

2 files changed

Lines changed: 6 additions & 12 deletions

File tree

server/animating.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -303,7 +303,7 @@ void CBaseAnimating :: DispatchAnimEvents ( float flInterval )
303303
m_flLastEventCheck = pev->animtime + flInterval;
304304

305305
m_fSequenceFinished = FALSE;
306-
if (flEnd >= 256 || flEnd <= 0.0)
306+
if (flEnd >= 256.f || flEnd <= 0.0f)
307307
m_fSequenceFinished = TRUE;
308308

309309
int index = 0;

server/animation.cpp

Lines changed: 5 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -442,28 +442,22 @@ int GetSequenceFlags( void *pmodel, int sequence )
442442

443443
int GetAnimationEvent( void *pmodel, int sequence, MonsterEvent_t *pMonsterEvent, float flStart, float flEnd, int index )
444444
{
445-
studiohdr_t *pstudiohdr;
446-
447-
pstudiohdr = (studiohdr_t *)pmodel;
445+
studiohdr_t *pstudiohdr = (studiohdr_t *)pmodel;
448446

449447
if( !pstudiohdr || sequence >= pstudiohdr->numseq || !pMonsterEvent )
450448
return 0;
451449

452450
int events = 0;
453-
454-
mstudioseqdesc_t *pseqdesc;
455-
mstudioevent_t *pevent;
456-
457-
pseqdesc = (mstudioseqdesc_t *)((byte *)pstudiohdr + pstudiohdr->seqindex) + sequence;
458-
pevent = (mstudioevent_t *)((byte *)pstudiohdr + pseqdesc->eventindex);
451+
mstudioseqdesc_t *pseqdesc = (mstudioseqdesc_t *)((byte *)pstudiohdr + pstudiohdr->seqindex) + sequence;
452+
mstudioevent_t *pevent = (mstudioevent_t *)((byte *)pstudiohdr + pseqdesc->eventindex);
459453

460454
if( pseqdesc->numevents == 0 || index > pseqdesc->numevents )
461455
return 0;
462456

463457
if( pseqdesc->numframes > 1 )
464458
{
465-
flStart *= (pseqdesc->numframes - 1) / 256.0f;
466-
flEnd *= (pseqdesc->numframes - 1) / 256.0f;
459+
flStart *= (pseqdesc->numframes - 1) / 255.0f;
460+
flEnd *= (pseqdesc->numframes - 1) / 255.0f;
467461
}
468462
else
469463
{

0 commit comments

Comments
 (0)