CSQCMODEL_PROPERTY(1, float, ReadShort, WriteShort, colormap) \
CSQCMODEL_PROPERTY(2, float, ReadInt24_t, WriteInt24_t, effects) \
CSQCMODEL_PROPERTY(4, float, ReadByte, WriteByte, modelflags) \
- CSQCMODEL_PROPERTY_SCALED(8, float, ReadByte, WriteByte, alpha, 255, 0, 255) \
+ CSQCMODEL_PROPERTY_SCALED(8, float, ReadByte, WriteByte, alpha, 254, -1, 254) \
CSQCMODEL_PROPERTY(16, float, ReadByte, WriteByte, skin) \
CSQCMODEL_IF(isplayer) \
CSQCMODEL_ENDIF \
self.f = r();
#define CSQCMODEL_PROPERTY_SCALED(flag,t,r,w,f,s,mi,ma) \
if(sf & flag) \
- self.f = r() / s;
+ self.f = (r() + mi) / s;
ALLPROPERTIES
#undef CSQCMODEL_PROPERTY_SCALED
#undef CSQCMODEL_PROPERTY
}
#define CSQCMODEL_PROPERTY_SCALED(flag,t,r,w,f,s,mi,ma) \
{ \
- t tmp = bound(mi, s * self.f, ma); \
+ t tmp = bound(mi, s * self.f, ma) - mi; \
if(tmp != self.csqcmodel_##f) \
{ \
self.csqcmodel_##f = tmp; \