* IN THE SOFTWARE.
*/
+#if defined(CSQC)
+#elif defined(MENUQC)
+#elif defined(SVQC)
+ #include "../dpdefs/progsdefs.qh"
+ #include "../dpdefs/dpextensions.qh"
+ #include "../common/constants.qh"
+ #include "../common/util.qh"
+ #include "../common/animdecide.qh"
+ #include "../server/constants.qh"
+ #include "../server/defs.qh"
+ #include "common.qh"
+ #include "sv_model.qh"
+#endif
+
// generic CSQC model code
-float CSQCModel_Send(entity to, float sf)
+float CSQCModel_Send(entity to, int sf)
{
// some nice flags for CSQCMODEL_IF
- float isplayer = (self.flags & FL_CLIENT);
+ float isplayer = (IS_CLIENT(self));
float islocalplayer = (self == to);
float isnolocalplayer = (isplayer && (self != to));
unused_float = isnolocalplayer;
WriteByte(MSG_ENTITY, ENT_CLIENT_MODEL);
- WriteShort(MSG_ENTITY, sf);
+ WriteInt24_t(MSG_ENTITY, sf);
#define CSQCMODEL_IF(cond) if(cond) {
#define CSQCMODEL_ENDIF }
#undef CSQCMODEL_ENDIF
#undef CSQCMODEL_IF
- return TRUE;
+ return true;
}
#ifdef CSQCPLAYER_FORCE_UPDATES
void CSQCModel_CheckUpdate()
{
// some nice flags for CSQCMODEL_IF
- float isplayer = (self.flags & FL_CLIENT);
+ float isplayer = (IS_CLIENT(self));
float islocalplayer = isplayer; // we set BOTH to 1 here as we need the sendflags
float isnolocalplayer = isplayer; // we set BOTH to 1 here as we need the sendflags
if(self.effects & EF_RESTARTANIM_BIT)
{
self.SendFlags |= CSQCMODEL_PROPERTY_FRAME | CSQCMODEL_PROPERTY_FRAME2; // full anim resend please
- self.effects &~= EF_RESTARTANIM_BIT;
+ self.effects &= ~EF_RESTARTANIM_BIT;
}
if(self.effects & EF_TELEPORT_BIT)
{
self.SendFlags |= CSQCMODEL_PROPERTY_TELEPORTED; // no interpolation please
- self.effects &~= EF_TELEPORT_BIT;
+ self.effects &= ~EF_TELEPORT_BIT;
}
#define CSQCMODEL_IF(cond) if(cond) {
}
#define CSQCMODEL_PROPERTY_SCALED(flag,t,r,w,f,s,mi,ma) \
{ \
- t tmp = bound(mi, s * self.f, ma) - mi; \
+ t tmp = rint(bound(mi, s * self.f, ma) - mi); \
if(tmp != self.csqcmodel_##f) \
{ \
self.csqcmodel_##f = tmp; \