/*
- * Copyright (c) 2011 Rudolf PolzerCSQCModel_InterpolateAnimation_2To4_PreNote
+ * Copyright (c) 2011 Rudolf Polzer
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to
CSQCModel_InterpolateAnimation_Do(this);
- { CSQCMODEL_HOOK_PREDRAW }
+ CSQCModel_Hook_PreDraw(this, isplayer);
+
+ if(isplayer)
+ {
+ if(this.entnum == player_localentnum)
+ this.renderflags |= RF_EXTERNALMODEL;
+ else
+ this.renderflags &= ~RF_EXTERNALMODEL;
+ }
// inherit draw flags easily
entity root = this;
int sf = ReadInt24_t();
// some nice flags for CSQCMODEL_IF and the hooks
- bool isplayer = (this.entnum >= 1 && this.entnum <= maxclients);
+ bool isplayer = ReadByte() || (this.entnum >= 1 && this.entnum <= maxclients);
if (isnew && isplayer)
{
CSQCModel_players[this.entnum - 1] = this;
this.entremove = CSQCModel_remove;
}
bool islocalplayer = (this.entnum == player_localnum + 1);
- noref bool isnolocalplayer = (isplayer && (this.entnum != player_localnum + 1));
+ noref bool isnolocalplayer = (isplayer && !islocalplayer);
this.classname = "csqcmodel";
this.iflags |= IFLAG_ORIGIN; // interpolate origin too
this.iflags |= IFLAG_ANGLES; // interpolate angles too
this.iflags |= IFLAG_VELOCITY | IFLAG_AUTOVELOCITY; // let's calculate velocity automatically
- { CSQCMODEL_HOOK_PREUPDATE }
+ CSQCModel_Hook_PreUpdate(this, isnew, isplayer, islocalplayer);
CSQCPlayer_PreUpdate(this);
InterpolateOrigin_Undo(this);
this.csqcmodel_teleported = 1;
}
+ if(sf & BIT(14))
+ viewloc_SetTags(this);
+
CSQCModel_InterpolateAnimation_Note(this, sf);
InterpolateOrigin_Note(this);
CSQCPlayer_PostUpdate(this);
- { CSQCMODEL_HOOK_POSTUPDATE }
+ CSQCModel_Hook_PostUpdate(this, isnew, isplayer, islocalplayer);
#ifdef CSQCMODEL_SUPPORT_GETTAGINFO_BEFORE_DRAW
InterpolateOrigin_Do(this);
{
if (i < maxclients) return CSQCModel_players[i];
++i;
- LOG_DEBUGF("player out of bounds: %d\n", i);
+ LOG_DEBUGF("player out of bounds: %d", i);
return findfloat(NULL, entnum, i);
}