|
|
|
@ -103,300 +103,6 @@ NSSurfacePropEntity::CanBleed(void)
|
|
|
|
|
return iBleeds;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#if 0
|
|
|
|
|
typedef enum
|
|
|
|
|
{
|
|
|
|
|
NETFIELD_BYTE,
|
|
|
|
|
NETFIELD_SHORT,
|
|
|
|
|
NETFIELD_FLOAT,
|
|
|
|
|
NETFIELD_INT,
|
|
|
|
|
NETFIELD_COORD,
|
|
|
|
|
NETFIELD_ANGLE,
|
|
|
|
|
NETFIELD_ENTITY,
|
|
|
|
|
NETFIELD_STRING
|
|
|
|
|
} nettype_t;
|
|
|
|
|
|
|
|
|
|
typedef struct
|
|
|
|
|
{
|
|
|
|
|
.variant field;
|
|
|
|
|
.variant field_net;
|
|
|
|
|
int changedflag;
|
|
|
|
|
__variant defaultvalue;
|
|
|
|
|
nettype_e type;
|
|
|
|
|
} netinfo_t;
|
|
|
|
|
|
|
|
|
|
netinfo_t n_NSSurfacePropEntity[] =
|
|
|
|
|
{
|
|
|
|
|
{origin[0], NSEntity::origin_net[0], SRFENT_CHANGED_ORIGIN_X, 0, NETFIELD_COORD},
|
|
|
|
|
{origin[1], NSEntity::origin_net[1], SRFENT_CHANGED_ORIGIN_Y, 0, NETFIELD_COORD},
|
|
|
|
|
{origin[2], NSEntity::origin_net[2], SRFENT_CHANGED_ORIGIN_Z, 0, NETFIELD_COORD},
|
|
|
|
|
{angles[0], NSEntity::angles_net[0], SRFENT_CHANGED_ANGLES_X, 0, NETFIELD_ANGLE},
|
|
|
|
|
{angles[1], NSEntity::angles_net[1], SRFENT_CHANGED_ANGLES_Y, 0, NETFIELD_ANGLE},
|
|
|
|
|
{angles[2], NSEntity::angles_net[2], SRFENT_CHANGED_ANGLES_Z, 0, NETFIELD_ANGLE},
|
|
|
|
|
{modelindex, NSEntity::modelindex_net, SRFENT_CHANGED_MODELINDEX, 0, NETFIELD_SHORT},
|
|
|
|
|
{solid, NSEntity::solid_net, SRFENT_CHANGED_SOLID, 0, NETFIELD_BYTE},
|
|
|
|
|
{movetype, NSEntity::movetype_net, SRFENT_CHANGED_MOVETYPE, 0, NETFIELD_BYTE},
|
|
|
|
|
{flags, NSEntity::flags_net, SRFENT_CHANGED_FLAGS, 0, NETFIELD_FLOAT},
|
|
|
|
|
{mins[0], NSEntity::mins_net[0], SRFENT_CHANGED_SIZE, 0, NETFIELD_SHORT},
|
|
|
|
|
{mins[1], NSEntity::mins_net[1], SRFENT_CHANGED_SIZE, 0, NETFIELD_SHORT},
|
|
|
|
|
{mins[2], NSEntity::mins_net[2], SRFENT_CHANGED_SIZE, 0, NETFIELD_SHORT},
|
|
|
|
|
{maxs[0], NSEntity::maxs_net[0], SRFENT_CHANGED_SIZE, 0, NETFIELD_SHORT},
|
|
|
|
|
{maxs[1], NSEntity::maxs_net[1], SRFENT_CHANGED_SIZE, 0, NETFIELD_SHORT},
|
|
|
|
|
{maxs[2], NSEntity::maxs_net[2], SRFENT_CHANGED_SIZE, 0, NETFIELD_SHORT},
|
|
|
|
|
{frame, NSRenderableEntity::frame_net, SRFENT_CHANGED_FRAME, 0, NETFIELD_SHORT},
|
|
|
|
|
{skin, NSRenderableEntity::skin_net, SRFENT_CHANGED_SKIN, 0, NETFIELD_BYTE},
|
|
|
|
|
{effects, NSRenderableEntity::effects_net, SRFENT_CHANGED_EFFECTS, 0, NETFIELD_SHORT},
|
|
|
|
|
{NSRenderableEntity::m_iBody, NSRenderableEntity::m_iBody_net, SRFENT_CHANGED_BODY, 0, NETFIELD_BYTE},
|
|
|
|
|
{scale, NSEntity::scale_net, SRFENT_CHANGED_SCALE, 0, NETFIELD_FLOAT},
|
|
|
|
|
{velocity[0], NSEntity::velocity_net[0], SRFENT_CHANGED_VELOCITY, 0, NETFIELD_ANGLE},
|
|
|
|
|
{velocity[1], NSEntity::velocity_net[1], SRFENT_CHANGED_VELOCITY, 0, NETFIELD_ANGLE},
|
|
|
|
|
{velocity[2], NSEntity::velocity_net[2], SRFENT_CHANGED_VELOCITY, 0, NETFIELD_ANGLE},
|
|
|
|
|
{NSRenderableEntity::m_iRenderMode, NSRenderableEntity::m_iRenderMode_net, SRFENT_CHANGED_RENDERMODE, 0, NETFIELD_BYTE},
|
|
|
|
|
{NSRenderableEntity::m_iRenderFX, NSRenderableEntity::m_iRenderFX_net, SRFENT_CHANGED_RENDERMODE, 0, NETFIELD_BYTE},
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
void
|
|
|
|
|
NSSurfacePropEntity::EvaluateEntity(void)
|
|
|
|
|
{
|
|
|
|
|
for (int i = 0; i < n_NSSurfacePropEntity.length; i++) {
|
|
|
|
|
if (this.(n_NSSurfacePropEntity[i].field) != this.(n_NSSurfacePropEntity[i].field_net)) {
|
|
|
|
|
SetSendFlags(n_NSSurfacePropEntity[i].changedflag);
|
|
|
|
|
print(sprintf("uhh %i\n", i));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
this.(n_NSSurfacePropEntity[i].field_net) = this.(n_NSSurfacePropEntity[i].field);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* Make sure StartFrame calls this */
|
|
|
|
|
float
|
|
|
|
|
NSSurfacePropEntity::SendEntity(entity ePEnt, float fChanged)
|
|
|
|
|
{
|
|
|
|
|
if (!modelindex)
|
|
|
|
|
return (0);
|
|
|
|
|
|
|
|
|
|
if (clienttype(ePEnt) != CLIENTTYPE_REAL)
|
|
|
|
|
return (0);
|
|
|
|
|
|
|
|
|
|
WriteByte(MSG_ENTITY, ENT_SURFPROP);
|
|
|
|
|
|
|
|
|
|
#if 0
|
|
|
|
|
if (fChanged == 0xFFFFFF) {
|
|
|
|
|
for (int i = 0; i < n_NSSurfacePropEntity.length; i++) {
|
|
|
|
|
/* unflag everything that's the default value */
|
|
|
|
|
if (this.(n_NSSurfacePropEntity[i].field) == this.(n_NSSurfacePropEntity[i].defaultvalue))
|
|
|
|
|
fChanged &= ~n_NSSurfacePropEntity[i].changedflag;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
/* broadcast how much data is expected to be read */
|
|
|
|
|
WriteFloat(MSG_ENTITY, fChanged);
|
|
|
|
|
|
|
|
|
|
for (int i = 0; i < n_NSSurfacePropEntity.length; i++) {
|
|
|
|
|
if (fChanged & n_NSSurfacePropEntity[i].changedflag) {
|
|
|
|
|
switch (n_NSSurfacePropEntity[i].type) {
|
|
|
|
|
case NETFIELD_BYTE:
|
|
|
|
|
WriteByte(MSG_ENTITY, this.(n_NSSurfacePropEntity[i].field));
|
|
|
|
|
break;
|
|
|
|
|
case NETFIELD_SHORT:
|
|
|
|
|
WriteShort(MSG_ENTITY, this.(n_NSSurfacePropEntity[i].field));
|
|
|
|
|
break;
|
|
|
|
|
case NETFIELD_FLOAT:
|
|
|
|
|
WriteFloat(MSG_ENTITY, this.(n_NSSurfacePropEntity[i].field));
|
|
|
|
|
break;
|
|
|
|
|
case NETFIELD_INT:
|
|
|
|
|
WriteInt(MSG_ENTITY, this.(n_NSSurfacePropEntity[i].field));
|
|
|
|
|
break;
|
|
|
|
|
case NETFIELD_COORD:
|
|
|
|
|
WriteCoord(MSG_ENTITY, this.(n_NSSurfacePropEntity[i].field));
|
|
|
|
|
break;
|
|
|
|
|
case NETFIELD_ANGLE:
|
|
|
|
|
WriteShort(MSG_ENTITY, this.(n_NSSurfacePropEntity[i].field) * 32767 / 360);
|
|
|
|
|
break;
|
|
|
|
|
case NETFIELD_ENTITY:
|
|
|
|
|
WriteEntity(MSG_ENTITY, this.(n_NSSurfacePropEntity[i].field));
|
|
|
|
|
break;
|
|
|
|
|
case NETFIELD_STRING:
|
|
|
|
|
WriteString(MSG_ENTITY, this.(n_NSSurfacePropEntity[i].field));
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return (1);
|
|
|
|
|
}
|
|
|
|
|
#else
|
|
|
|
|
|
|
|
|
|
void
|
|
|
|
|
NSSurfacePropEntity::EvaluateEntity(void)
|
|
|
|
|
{
|
|
|
|
|
EVALUATE_VECTOR(origin, 0, SRFENT_CHANGED_ORIGIN_X)
|
|
|
|
|
EVALUATE_VECTOR(origin, 1, SRFENT_CHANGED_ORIGIN_Y)
|
|
|
|
|
EVALUATE_VECTOR(origin, 2, SRFENT_CHANGED_ORIGIN_Z)
|
|
|
|
|
EVALUATE_VECTOR(angles, 0, SRFENT_CHANGED_ANGLES_X)
|
|
|
|
|
EVALUATE_VECTOR(angles, 1, SRFENT_CHANGED_ANGLES_Y)
|
|
|
|
|
EVALUATE_VECTOR(angles, 2, SRFENT_CHANGED_ANGLES_Z)
|
|
|
|
|
EVALUATE_FIELD(modelindex, SRFENT_CHANGED_MODELINDEX)
|
|
|
|
|
EVALUATE_FIELD(solid, SRFENT_CHANGED_SOLIDMOVETYPE)
|
|
|
|
|
EVALUATE_FIELD(movetype, SRFENT_CHANGED_SOLIDMOVETYPE)
|
|
|
|
|
EVALUATE_FIELD(flags, SRFENT_CHANGED_FLAGS)
|
|
|
|
|
EVALUATE_VECTOR(mins, 0, SRFENT_CHANGED_SIZE)
|
|
|
|
|
EVALUATE_VECTOR(mins, 1, SRFENT_CHANGED_SIZE)
|
|
|
|
|
EVALUATE_VECTOR(mins, 2, SRFENT_CHANGED_SIZE)
|
|
|
|
|
EVALUATE_VECTOR(maxs, 0, SRFENT_CHANGED_SIZE)
|
|
|
|
|
EVALUATE_VECTOR(maxs, 1, SRFENT_CHANGED_SIZE)
|
|
|
|
|
EVALUATE_VECTOR(maxs, 2, SRFENT_CHANGED_SIZE)
|
|
|
|
|
EVALUATE_FIELD(frame, SRFENT_CHANGED_FRAME)
|
|
|
|
|
EVALUATE_FIELD(skin, SRFENT_CHANGED_SKIN)
|
|
|
|
|
EVALUATE_FIELD(effects, SRFENT_CHANGED_EFFECTS)
|
|
|
|
|
EVALUATE_FIELD(m_iBody, SRFENT_CHANGED_BODY)
|
|
|
|
|
EVALUATE_FIELD(scale, SRFENT_CHANGED_SCALE)
|
|
|
|
|
EVALUATE_VECTOR(m_vecAxialScale, 0, SRFENT_CHANGED_SCALE)
|
|
|
|
|
EVALUATE_VECTOR(m_vecAxialScale, 1, SRFENT_CHANGED_SCALE)
|
|
|
|
|
EVALUATE_VECTOR(m_vecAxialScale, 2, SRFENT_CHANGED_SCALE)
|
|
|
|
|
EVALUATE_VECTOR(velocity, 0, SRFENT_CHANGED_VELOCITY)
|
|
|
|
|
EVALUATE_VECTOR(velocity, 1, SRFENT_CHANGED_VELOCITY)
|
|
|
|
|
EVALUATE_VECTOR(velocity, 2, SRFENT_CHANGED_VELOCITY)
|
|
|
|
|
EVALUATE_VECTOR(avelocity, 0, SRFENT_CHANGED_ANGULARVELOCITY)
|
|
|
|
|
EVALUATE_VECTOR(avelocity, 1, SRFENT_CHANGED_ANGULARVELOCITY)
|
|
|
|
|
EVALUATE_VECTOR(avelocity, 2, SRFENT_CHANGED_ANGULARVELOCITY)
|
|
|
|
|
EVALUATE_FIELD(m_iRenderMode, SRFENT_CHANGED_RENDERMODE)
|
|
|
|
|
EVALUATE_FIELD(m_iRenderFX, SRFENT_CHANGED_RENDERMODE)
|
|
|
|
|
EVALUATE_VECTOR(m_vecRenderColor, 0, SRFENT_CHANGED_RENDERCOLOR)
|
|
|
|
|
EVALUATE_VECTOR(m_vecRenderColor, 1, SRFENT_CHANGED_RENDERCOLOR)
|
|
|
|
|
EVALUATE_VECTOR(m_vecRenderColor, 2, SRFENT_CHANGED_RENDERCOLOR)
|
|
|
|
|
EVALUATE_FIELD(m_flRenderAmt, SRFENT_CHANGED_RENDERAMT)
|
|
|
|
|
EVALUATE_FIELD(m_flBoneControl1, SRFENT_CHANGED_CONTROLLER)
|
|
|
|
|
EVALUATE_FIELD(m_flBoneControl2, SRFENT_CHANGED_CONTROLLER)
|
|
|
|
|
EVALUATE_FIELD(m_flBoneControl3, SRFENT_CHANGED_CONTROLLER)
|
|
|
|
|
EVALUATE_FIELD(m_flBoneControl4, SRFENT_CHANGED_CONTROLLER)
|
|
|
|
|
EVALUATE_FIELD(m_flBoneControl5, SRFENT_CHANGED_CONTROLLER)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* Make sure StartFrame calls this */
|
|
|
|
|
float
|
|
|
|
|
NSSurfacePropEntity::SendEntity(entity ePEnt, float flChanged)
|
|
|
|
|
{
|
|
|
|
|
if (!modelindex)
|
|
|
|
|
return (0);
|
|
|
|
|
|
|
|
|
|
if (clienttype(ePEnt) != CLIENTTYPE_REAL)
|
|
|
|
|
return (0);
|
|
|
|
|
|
|
|
|
|
WriteByte(MSG_ENTITY, ENT_SURFPROP);
|
|
|
|
|
|
|
|
|
|
/* broadcast how much data is expected to be read */
|
|
|
|
|
WriteFloat(MSG_ENTITY, flChanged);
|
|
|
|
|
SENDENTITY_COORD(origin[0], SRFENT_CHANGED_ORIGIN_X)
|
|
|
|
|
SENDENTITY_COORD(origin[1], SRFENT_CHANGED_ORIGIN_Y)
|
|
|
|
|
SENDENTITY_COORD(origin[2], SRFENT_CHANGED_ORIGIN_Z)
|
|
|
|
|
SENDENTITY_ANGLE(angles[0], SRFENT_CHANGED_ANGLES_X)
|
|
|
|
|
SENDENTITY_ANGLE(angles[1], SRFENT_CHANGED_ANGLES_Y)
|
|
|
|
|
SENDENTITY_ANGLE(angles[2], SRFENT_CHANGED_ANGLES_Z)
|
|
|
|
|
SENDENTITY_SHORT(modelindex, SRFENT_CHANGED_MODELINDEX)
|
|
|
|
|
SENDENTITY_BYTE(solid, SRFENT_CHANGED_SOLIDMOVETYPE)
|
|
|
|
|
SENDENTITY_BYTE(movetype, SRFENT_CHANGED_SOLIDMOVETYPE)
|
|
|
|
|
SENDENTITY_INT(flags, SRFENT_CHANGED_FLAGS)
|
|
|
|
|
SENDENTITY_COORD(mins[0], SRFENT_CHANGED_SIZE)
|
|
|
|
|
SENDENTITY_COORD(mins[1], SRFENT_CHANGED_SIZE)
|
|
|
|
|
SENDENTITY_COORD(mins[2], SRFENT_CHANGED_SIZE)
|
|
|
|
|
SENDENTITY_COORD(maxs[0], SRFENT_CHANGED_SIZE)
|
|
|
|
|
SENDENTITY_COORD(maxs[1], SRFENT_CHANGED_SIZE)
|
|
|
|
|
SENDENTITY_COORD(maxs[2], SRFENT_CHANGED_SIZE)
|
|
|
|
|
SENDENTITY_BYTE(frame, SRFENT_CHANGED_FRAME)
|
|
|
|
|
SENDENTITY_FLOAT(skin, SRFENT_CHANGED_SKIN)
|
|
|
|
|
SENDENTITY_FLOAT(effects, SRFENT_CHANGED_EFFECTS)
|
|
|
|
|
SENDENTITY_SHORT(m_iBody, SRFENT_CHANGED_BODY)
|
|
|
|
|
SENDENTITY_FLOAT(scale, SRFENT_CHANGED_SCALE)
|
|
|
|
|
SENDENTITY_FLOAT(m_vecAxialScale[0], SRFENT_CHANGED_SCALE)
|
|
|
|
|
SENDENTITY_FLOAT(m_vecAxialScale[1], SRFENT_CHANGED_SCALE)
|
|
|
|
|
SENDENTITY_FLOAT(m_vecAxialScale[2], SRFENT_CHANGED_SCALE)
|
|
|
|
|
SENDENTITY_COORD(velocity[0], SRFENT_CHANGED_VELOCITY)
|
|
|
|
|
SENDENTITY_COORD(velocity[1], SRFENT_CHANGED_VELOCITY)
|
|
|
|
|
SENDENTITY_COORD(velocity[2], SRFENT_CHANGED_VELOCITY)
|
|
|
|
|
SENDENTITY_COORD(avelocity[0], SRFENT_CHANGED_ANGULARVELOCITY)
|
|
|
|
|
SENDENTITY_COORD(avelocity[1], SRFENT_CHANGED_ANGULARVELOCITY)
|
|
|
|
|
SENDENTITY_COORD(avelocity[2], SRFENT_CHANGED_ANGULARVELOCITY)
|
|
|
|
|
SENDENTITY_BYTE(m_iRenderMode, SRFENT_CHANGED_RENDERMODE)
|
|
|
|
|
SENDENTITY_BYTE(m_iRenderFX, SRFENT_CHANGED_RENDERMODE)
|
|
|
|
|
SENDENTITY_COLOR(m_vecRenderColor[0], SRFENT_CHANGED_RENDERCOLOR)
|
|
|
|
|
SENDENTITY_COLOR(m_vecRenderColor[1], SRFENT_CHANGED_RENDERCOLOR)
|
|
|
|
|
SENDENTITY_COLOR(m_vecRenderColor[2], SRFENT_CHANGED_RENDERCOLOR)
|
|
|
|
|
SENDENTITY_COLOR(m_flRenderAmt, SRFENT_CHANGED_RENDERAMT)
|
|
|
|
|
SENDENTITY_ANGLE(m_flBoneControl1, SRFENT_CHANGED_CONTROLLER)
|
|
|
|
|
SENDENTITY_ANGLE(m_flBoneControl2, SRFENT_CHANGED_CONTROLLER)
|
|
|
|
|
SENDENTITY_ANGLE(m_flBoneControl3, SRFENT_CHANGED_CONTROLLER)
|
|
|
|
|
SENDENTITY_ANGLE(m_flBoneControl4, SRFENT_CHANGED_CONTROLLER)
|
|
|
|
|
SENDENTITY_ANGLE(m_flBoneControl5, SRFENT_CHANGED_CONTROLLER)
|
|
|
|
|
|
|
|
|
|
return (1);
|
|
|
|
|
}
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
#else
|
|
|
|
|
/*
|
|
|
|
|
============
|
|
|
|
|
NSSurfacePropEntity::ReceiveEntity
|
|
|
|
|
============
|
|
|
|
|
*/
|
|
|
|
|
void
|
|
|
|
|
NSSurfacePropEntity::ReceiveEntity(float flNew, float flChanged)
|
|
|
|
|
{
|
|
|
|
|
READENTITY_COORD(origin[0], SRFENT_CHANGED_ORIGIN_X)
|
|
|
|
|
READENTITY_COORD(origin[1], SRFENT_CHANGED_ORIGIN_Y)
|
|
|
|
|
READENTITY_COORD(origin[2], SRFENT_CHANGED_ORIGIN_Z)
|
|
|
|
|
READENTITY_ANGLE(angles[0], SRFENT_CHANGED_ANGLES_X)
|
|
|
|
|
READENTITY_ANGLE(angles[1], SRFENT_CHANGED_ANGLES_Y)
|
|
|
|
|
READENTITY_ANGLE(angles[2], SRFENT_CHANGED_ANGLES_Z)
|
|
|
|
|
READENTITY_SHORT(modelindex, SRFENT_CHANGED_MODELINDEX)
|
|
|
|
|
READENTITY_BYTE(solid, SRFENT_CHANGED_SOLIDMOVETYPE)
|
|
|
|
|
READENTITY_BYTE(movetype, SRFENT_CHANGED_SOLIDMOVETYPE)
|
|
|
|
|
READENTITY_INT(flags, SRFENT_CHANGED_FLAGS)
|
|
|
|
|
READENTITY_COORD(mins[0], SRFENT_CHANGED_SIZE)
|
|
|
|
|
READENTITY_COORD(mins[1], SRFENT_CHANGED_SIZE)
|
|
|
|
|
READENTITY_COORD(mins[2], SRFENT_CHANGED_SIZE)
|
|
|
|
|
READENTITY_COORD(maxs[0], SRFENT_CHANGED_SIZE)
|
|
|
|
|
READENTITY_COORD(maxs[1], SRFENT_CHANGED_SIZE)
|
|
|
|
|
READENTITY_COORD(maxs[2], SRFENT_CHANGED_SIZE)
|
|
|
|
|
READENTITY_BYTE(frame, SRFENT_CHANGED_FRAME)
|
|
|
|
|
READENTITY_FLOAT(skin, SRFENT_CHANGED_SKIN)
|
|
|
|
|
READENTITY_FLOAT(effects, SRFENT_CHANGED_EFFECTS)
|
|
|
|
|
READENTITY_SHORT(m_iBody, SRFENT_CHANGED_BODY)
|
|
|
|
|
READENTITY_FLOAT(scale, SRFENT_CHANGED_SCALE)
|
|
|
|
|
READENTITY_FLOAT(m_vecAxialScale[0], SRFENT_CHANGED_SCALE)
|
|
|
|
|
READENTITY_FLOAT(m_vecAxialScale[1], SRFENT_CHANGED_SCALE)
|
|
|
|
|
READENTITY_FLOAT(m_vecAxialScale[2], SRFENT_CHANGED_SCALE)
|
|
|
|
|
READENTITY_COORD(velocity[0], SRFENT_CHANGED_VELOCITY)
|
|
|
|
|
READENTITY_COORD(velocity[1], SRFENT_CHANGED_VELOCITY)
|
|
|
|
|
READENTITY_COORD(velocity[2], SRFENT_CHANGED_VELOCITY)
|
|
|
|
|
READENTITY_COORD(avelocity[0], SRFENT_CHANGED_ANGULARVELOCITY)
|
|
|
|
|
READENTITY_COORD(avelocity[1], SRFENT_CHANGED_ANGULARVELOCITY)
|
|
|
|
|
READENTITY_COORD(avelocity[2], SRFENT_CHANGED_ANGULARVELOCITY)
|
|
|
|
|
READENTITY_BYTE(m_iRenderMode, SRFENT_CHANGED_RENDERMODE)
|
|
|
|
|
READENTITY_BYTE(m_iRenderFX, SRFENT_CHANGED_RENDERMODE)
|
|
|
|
|
READENTITY_COLOR(m_vecRenderColor[0], SRFENT_CHANGED_RENDERCOLOR)
|
|
|
|
|
READENTITY_COLOR(m_vecRenderColor[1], SRFENT_CHANGED_RENDERCOLOR)
|
|
|
|
|
READENTITY_COLOR(m_vecRenderColor[2], SRFENT_CHANGED_RENDERCOLOR)
|
|
|
|
|
READENTITY_COLOR(m_flRenderAmt, SRFENT_CHANGED_RENDERAMT)
|
|
|
|
|
READENTITY_ANGLE(m_flBoneControl1, SRFENT_CHANGED_CONTROLLER)
|
|
|
|
|
READENTITY_ANGLE(m_flBoneControl2, SRFENT_CHANGED_CONTROLLER)
|
|
|
|
|
READENTITY_ANGLE(m_flBoneControl3, SRFENT_CHANGED_CONTROLLER)
|
|
|
|
|
READENTITY_ANGLE(m_flBoneControl4, SRFENT_CHANGED_CONTROLLER)
|
|
|
|
|
READENTITY_ANGLE(m_flBoneControl5, SRFENT_CHANGED_CONTROLLER)
|
|
|
|
|
|
|
|
|
|
if (scale == 0.0)
|
|
|
|
|
scale = 1.0f;
|
|
|
|
|
|
|
|
|
|
if (flChanged & SRFENT_CHANGED_SIZE)
|
|
|
|
|
setsize(this, mins * scale, maxs * scale);
|
|
|
|
|
if (flChanged & SRFENT_CHANGED_BODY)
|
|
|
|
|
setcustomskin(this, "", sprintf("geomset 0 %i\ngeomset 1 %i\n", m_iBody, m_iBody));
|
|
|
|
|
}
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
#ifdef SERVER
|
|
|
|
|
void
|
|
|
|
|
NSSurfacePropEntity::SetTakedamage(float type)
|
|
|
|
|
{
|
|
|
|
@ -643,11 +349,9 @@ NSSurfacePropEntity::SpawnKey(string strKey, string strValue)
|
|
|
|
|
m_vecBloodColor = ReadVector(strValue);
|
|
|
|
|
break;
|
|
|
|
|
/* Input/Output system */
|
|
|
|
|
#ifdef SERVER
|
|
|
|
|
case "OnBreak":
|
|
|
|
|
m_strOnBreak = PrepareOutput(m_strOnBreak, ReadString(strValue));
|
|
|
|
|
break;
|
|
|
|
|
#endif
|
|
|
|
|
default:
|
|
|
|
|
super::SpawnKey(strKey, strValue);
|
|
|
|
|
break;
|
|
|
|
@ -739,9 +443,171 @@ NSSurfacePropEntity::TimeSinceDeath(void)
|
|
|
|
|
return time - m_flDeathTime;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|
void
|
|
|
|
|
NSSurfacePropEntity::EvaluateEntity(void)
|
|
|
|
|
{
|
|
|
|
|
EVALUATE_VECTOR(origin, 0, SRFENT_CHANGED_ORIGIN_X)
|
|
|
|
|
EVALUATE_VECTOR(origin, 1, SRFENT_CHANGED_ORIGIN_Y)
|
|
|
|
|
EVALUATE_VECTOR(origin, 2, SRFENT_CHANGED_ORIGIN_Z)
|
|
|
|
|
EVALUATE_VECTOR(angles, 0, SRFENT_CHANGED_ANGLES_X)
|
|
|
|
|
EVALUATE_VECTOR(angles, 1, SRFENT_CHANGED_ANGLES_Y)
|
|
|
|
|
EVALUATE_VECTOR(angles, 2, SRFENT_CHANGED_ANGLES_Z)
|
|
|
|
|
EVALUATE_FIELD(modelindex, SRFENT_CHANGED_MODELINDEX)
|
|
|
|
|
EVALUATE_FIELD(solid, SRFENT_CHANGED_SOLIDMOVETYPE)
|
|
|
|
|
EVALUATE_FIELD(movetype, SRFENT_CHANGED_SOLIDMOVETYPE)
|
|
|
|
|
EVALUATE_FIELD(flags, SRFENT_CHANGED_FLAGS)
|
|
|
|
|
EVALUATE_VECTOR(mins, 0, SRFENT_CHANGED_SIZE)
|
|
|
|
|
EVALUATE_VECTOR(mins, 1, SRFENT_CHANGED_SIZE)
|
|
|
|
|
EVALUATE_VECTOR(mins, 2, SRFENT_CHANGED_SIZE)
|
|
|
|
|
EVALUATE_VECTOR(maxs, 0, SRFENT_CHANGED_SIZE)
|
|
|
|
|
EVALUATE_VECTOR(maxs, 1, SRFENT_CHANGED_SIZE)
|
|
|
|
|
EVALUATE_VECTOR(maxs, 2, SRFENT_CHANGED_SIZE)
|
|
|
|
|
EVALUATE_FIELD(frame, SRFENT_CHANGED_FRAME)
|
|
|
|
|
EVALUATE_FIELD(skin, SRFENT_CHANGED_SKIN)
|
|
|
|
|
EVALUATE_FIELD(effects, SRFENT_CHANGED_EFFECTS)
|
|
|
|
|
EVALUATE_FIELD(m_iBody, SRFENT_CHANGED_BODY)
|
|
|
|
|
EVALUATE_FIELD(scale, SRFENT_CHANGED_SCALE)
|
|
|
|
|
EVALUATE_VECTOR(m_vecAxialScale, 0, SRFENT_CHANGED_SCALE)
|
|
|
|
|
EVALUATE_VECTOR(m_vecAxialScale, 1, SRFENT_CHANGED_SCALE)
|
|
|
|
|
EVALUATE_VECTOR(m_vecAxialScale, 2, SRFENT_CHANGED_SCALE)
|
|
|
|
|
EVALUATE_VECTOR(velocity, 0, SRFENT_CHANGED_VELOCITY)
|
|
|
|
|
EVALUATE_VECTOR(velocity, 1, SRFENT_CHANGED_VELOCITY)
|
|
|
|
|
EVALUATE_VECTOR(velocity, 2, SRFENT_CHANGED_VELOCITY)
|
|
|
|
|
EVALUATE_VECTOR(avelocity, 0, SRFENT_CHANGED_ANGULARVELOCITY)
|
|
|
|
|
EVALUATE_VECTOR(avelocity, 1, SRFENT_CHANGED_ANGULARVELOCITY)
|
|
|
|
|
EVALUATE_VECTOR(avelocity, 2, SRFENT_CHANGED_ANGULARVELOCITY)
|
|
|
|
|
EVALUATE_FIELD(m_iRenderMode, SRFENT_CHANGED_RENDERMODE)
|
|
|
|
|
EVALUATE_FIELD(m_iRenderFX, SRFENT_CHANGED_RENDERMODE)
|
|
|
|
|
EVALUATE_VECTOR(m_vecRenderColor, 0, SRFENT_CHANGED_RENDERCOLOR)
|
|
|
|
|
EVALUATE_VECTOR(m_vecRenderColor, 1, SRFENT_CHANGED_RENDERCOLOR)
|
|
|
|
|
EVALUATE_VECTOR(m_vecRenderColor, 2, SRFENT_CHANGED_RENDERCOLOR)
|
|
|
|
|
EVALUATE_FIELD(m_flRenderAmt, SRFENT_CHANGED_RENDERAMT)
|
|
|
|
|
EVALUATE_FIELD(m_flBoneControl1, SRFENT_CHANGED_CONTROLLER)
|
|
|
|
|
EVALUATE_FIELD(m_flBoneControl2, SRFENT_CHANGED_CONTROLLER)
|
|
|
|
|
EVALUATE_FIELD(m_flBoneControl3, SRFENT_CHANGED_CONTROLLER)
|
|
|
|
|
EVALUATE_FIELD(m_flBoneControl4, SRFENT_CHANGED_CONTROLLER)
|
|
|
|
|
EVALUATE_FIELD(m_flBoneControl5, SRFENT_CHANGED_CONTROLLER)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* Make sure StartFrame calls this */
|
|
|
|
|
float
|
|
|
|
|
NSSurfacePropEntity::SendEntity(entity ePEnt, float flChanged)
|
|
|
|
|
{
|
|
|
|
|
if (!modelindex)
|
|
|
|
|
return (0);
|
|
|
|
|
|
|
|
|
|
if (clienttype(ePEnt) != CLIENTTYPE_REAL)
|
|
|
|
|
return (0);
|
|
|
|
|
|
|
|
|
|
WriteByte(MSG_ENTITY, ENT_SURFPROP);
|
|
|
|
|
|
|
|
|
|
/* broadcast how much data is expected to be read */
|
|
|
|
|
WriteFloat(MSG_ENTITY, flChanged);
|
|
|
|
|
SENDENTITY_COORD(origin[0], SRFENT_CHANGED_ORIGIN_X)
|
|
|
|
|
SENDENTITY_COORD(origin[1], SRFENT_CHANGED_ORIGIN_Y)
|
|
|
|
|
SENDENTITY_COORD(origin[2], SRFENT_CHANGED_ORIGIN_Z)
|
|
|
|
|
SENDENTITY_ANGLE(angles[0], SRFENT_CHANGED_ANGLES_X)
|
|
|
|
|
SENDENTITY_ANGLE(angles[1], SRFENT_CHANGED_ANGLES_Y)
|
|
|
|
|
SENDENTITY_ANGLE(angles[2], SRFENT_CHANGED_ANGLES_Z)
|
|
|
|
|
SENDENTITY_SHORT(modelindex, SRFENT_CHANGED_MODELINDEX)
|
|
|
|
|
SENDENTITY_BYTE(solid, SRFENT_CHANGED_SOLIDMOVETYPE)
|
|
|
|
|
SENDENTITY_BYTE(movetype, SRFENT_CHANGED_SOLIDMOVETYPE)
|
|
|
|
|
SENDENTITY_INT(flags, SRFENT_CHANGED_FLAGS)
|
|
|
|
|
SENDENTITY_COORD(mins[0], SRFENT_CHANGED_SIZE)
|
|
|
|
|
SENDENTITY_COORD(mins[1], SRFENT_CHANGED_SIZE)
|
|
|
|
|
SENDENTITY_COORD(mins[2], SRFENT_CHANGED_SIZE)
|
|
|
|
|
SENDENTITY_COORD(maxs[0], SRFENT_CHANGED_SIZE)
|
|
|
|
|
SENDENTITY_COORD(maxs[1], SRFENT_CHANGED_SIZE)
|
|
|
|
|
SENDENTITY_COORD(maxs[2], SRFENT_CHANGED_SIZE)
|
|
|
|
|
SENDENTITY_BYTE(frame, SRFENT_CHANGED_FRAME)
|
|
|
|
|
SENDENTITY_FLOAT(skin, SRFENT_CHANGED_SKIN)
|
|
|
|
|
SENDENTITY_FLOAT(effects, SRFENT_CHANGED_EFFECTS)
|
|
|
|
|
SENDENTITY_SHORT(m_iBody, SRFENT_CHANGED_BODY)
|
|
|
|
|
SENDENTITY_FLOAT(scale, SRFENT_CHANGED_SCALE)
|
|
|
|
|
SENDENTITY_FLOAT(m_vecAxialScale[0], SRFENT_CHANGED_SCALE)
|
|
|
|
|
SENDENTITY_FLOAT(m_vecAxialScale[1], SRFENT_CHANGED_SCALE)
|
|
|
|
|
SENDENTITY_FLOAT(m_vecAxialScale[2], SRFENT_CHANGED_SCALE)
|
|
|
|
|
SENDENTITY_COORD(velocity[0], SRFENT_CHANGED_VELOCITY)
|
|
|
|
|
SENDENTITY_COORD(velocity[1], SRFENT_CHANGED_VELOCITY)
|
|
|
|
|
SENDENTITY_COORD(velocity[2], SRFENT_CHANGED_VELOCITY)
|
|
|
|
|
SENDENTITY_COORD(avelocity[0], SRFENT_CHANGED_ANGULARVELOCITY)
|
|
|
|
|
SENDENTITY_COORD(avelocity[1], SRFENT_CHANGED_ANGULARVELOCITY)
|
|
|
|
|
SENDENTITY_COORD(avelocity[2], SRFENT_CHANGED_ANGULARVELOCITY)
|
|
|
|
|
SENDENTITY_BYTE(m_iRenderMode, SRFENT_CHANGED_RENDERMODE)
|
|
|
|
|
SENDENTITY_BYTE(m_iRenderFX, SRFENT_CHANGED_RENDERMODE)
|
|
|
|
|
SENDENTITY_COLOR(m_vecRenderColor[0], SRFENT_CHANGED_RENDERCOLOR)
|
|
|
|
|
SENDENTITY_COLOR(m_vecRenderColor[1], SRFENT_CHANGED_RENDERCOLOR)
|
|
|
|
|
SENDENTITY_COLOR(m_vecRenderColor[2], SRFENT_CHANGED_RENDERCOLOR)
|
|
|
|
|
SENDENTITY_COLOR(m_flRenderAmt, SRFENT_CHANGED_RENDERAMT)
|
|
|
|
|
SENDENTITY_ANGLE(m_flBoneControl1, SRFENT_CHANGED_CONTROLLER)
|
|
|
|
|
SENDENTITY_ANGLE(m_flBoneControl2, SRFENT_CHANGED_CONTROLLER)
|
|
|
|
|
SENDENTITY_ANGLE(m_flBoneControl3, SRFENT_CHANGED_CONTROLLER)
|
|
|
|
|
SENDENTITY_ANGLE(m_flBoneControl4, SRFENT_CHANGED_CONTROLLER)
|
|
|
|
|
SENDENTITY_ANGLE(m_flBoneControl5, SRFENT_CHANGED_CONTROLLER)
|
|
|
|
|
|
|
|
|
|
return (1);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#else
|
|
|
|
|
/*
|
|
|
|
|
============
|
|
|
|
|
NSSurfacePropEntity::ReceiveEntity
|
|
|
|
|
============
|
|
|
|
|
*/
|
|
|
|
|
void
|
|
|
|
|
NSSurfacePropEntity::ReceiveEntity(float flNew, float flChanged)
|
|
|
|
|
{
|
|
|
|
|
READENTITY_COORD(origin[0], SRFENT_CHANGED_ORIGIN_X)
|
|
|
|
|
READENTITY_COORD(origin[1], SRFENT_CHANGED_ORIGIN_Y)
|
|
|
|
|
READENTITY_COORD(origin[2], SRFENT_CHANGED_ORIGIN_Z)
|
|
|
|
|
READENTITY_ANGLE(angles[0], SRFENT_CHANGED_ANGLES_X)
|
|
|
|
|
READENTITY_ANGLE(angles[1], SRFENT_CHANGED_ANGLES_Y)
|
|
|
|
|
READENTITY_ANGLE(angles[2], SRFENT_CHANGED_ANGLES_Z)
|
|
|
|
|
READENTITY_SHORT(modelindex, SRFENT_CHANGED_MODELINDEX)
|
|
|
|
|
READENTITY_BYTE(solid, SRFENT_CHANGED_SOLIDMOVETYPE)
|
|
|
|
|
READENTITY_BYTE(movetype, SRFENT_CHANGED_SOLIDMOVETYPE)
|
|
|
|
|
READENTITY_INT(flags, SRFENT_CHANGED_FLAGS)
|
|
|
|
|
READENTITY_COORD(mins[0], SRFENT_CHANGED_SIZE)
|
|
|
|
|
READENTITY_COORD(mins[1], SRFENT_CHANGED_SIZE)
|
|
|
|
|
READENTITY_COORD(mins[2], SRFENT_CHANGED_SIZE)
|
|
|
|
|
READENTITY_COORD(maxs[0], SRFENT_CHANGED_SIZE)
|
|
|
|
|
READENTITY_COORD(maxs[1], SRFENT_CHANGED_SIZE)
|
|
|
|
|
READENTITY_COORD(maxs[2], SRFENT_CHANGED_SIZE)
|
|
|
|
|
READENTITY_BYTE(frame, SRFENT_CHANGED_FRAME)
|
|
|
|
|
READENTITY_FLOAT(skin, SRFENT_CHANGED_SKIN)
|
|
|
|
|
READENTITY_FLOAT(effects, SRFENT_CHANGED_EFFECTS)
|
|
|
|
|
READENTITY_SHORT(m_iBody, SRFENT_CHANGED_BODY)
|
|
|
|
|
READENTITY_FLOAT(scale, SRFENT_CHANGED_SCALE)
|
|
|
|
|
READENTITY_FLOAT(m_vecAxialScale[0], SRFENT_CHANGED_SCALE)
|
|
|
|
|
READENTITY_FLOAT(m_vecAxialScale[1], SRFENT_CHANGED_SCALE)
|
|
|
|
|
READENTITY_FLOAT(m_vecAxialScale[2], SRFENT_CHANGED_SCALE)
|
|
|
|
|
READENTITY_COORD(velocity[0], SRFENT_CHANGED_VELOCITY)
|
|
|
|
|
READENTITY_COORD(velocity[1], SRFENT_CHANGED_VELOCITY)
|
|
|
|
|
READENTITY_COORD(velocity[2], SRFENT_CHANGED_VELOCITY)
|
|
|
|
|
READENTITY_COORD(avelocity[0], SRFENT_CHANGED_ANGULARVELOCITY)
|
|
|
|
|
READENTITY_COORD(avelocity[1], SRFENT_CHANGED_ANGULARVELOCITY)
|
|
|
|
|
READENTITY_COORD(avelocity[2], SRFENT_CHANGED_ANGULARVELOCITY)
|
|
|
|
|
READENTITY_BYTE(m_iRenderMode, SRFENT_CHANGED_RENDERMODE)
|
|
|
|
|
READENTITY_BYTE(m_iRenderFX, SRFENT_CHANGED_RENDERMODE)
|
|
|
|
|
READENTITY_COLOR(m_vecRenderColor[0], SRFENT_CHANGED_RENDERCOLOR)
|
|
|
|
|
READENTITY_COLOR(m_vecRenderColor[1], SRFENT_CHANGED_RENDERCOLOR)
|
|
|
|
|
READENTITY_COLOR(m_vecRenderColor[2], SRFENT_CHANGED_RENDERCOLOR)
|
|
|
|
|
READENTITY_COLOR(m_flRenderAmt, SRFENT_CHANGED_RENDERAMT)
|
|
|
|
|
READENTITY_ANGLE(m_flBoneControl1, SRFENT_CHANGED_CONTROLLER)
|
|
|
|
|
READENTITY_ANGLE(m_flBoneControl2, SRFENT_CHANGED_CONTROLLER)
|
|
|
|
|
READENTITY_ANGLE(m_flBoneControl3, SRFENT_CHANGED_CONTROLLER)
|
|
|
|
|
READENTITY_ANGLE(m_flBoneControl4, SRFENT_CHANGED_CONTROLLER)
|
|
|
|
|
READENTITY_ANGLE(m_flBoneControl5, SRFENT_CHANGED_CONTROLLER)
|
|
|
|
|
|
|
|
|
|
if (scale == 0.0)
|
|
|
|
|
scale = 1.0f;
|
|
|
|
|
|
|
|
|
|
if (flChanged & SRFENT_CHANGED_SIZE)
|
|
|
|
|
setsize(this, mins * scale, maxs * scale);
|
|
|
|
|
if (flChanged & SRFENT_CHANGED_BODY)
|
|
|
|
|
setcustomskin(this, "", sprintf("geomset 0 %i\ngeomset 1 %i\n", m_iBody, m_iBody));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#ifdef CLIENT
|
|
|
|
|
void
|
|
|
|
|
NSSurfacePropEntity::RenderFire(void)
|
|
|
|
|
{
|
|
|
|
@ -763,21 +629,7 @@ NSSurfacePropEntity::predraw(void)
|
|
|
|
|
RenderFire();
|
|
|
|
|
return super::predraw();
|
|
|
|
|
}
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
void
|
|
|
|
|
NSSurfacePropEntity::SetModel(string newModel)
|
|
|
|
|
{
|
|
|
|
|
NSRenderableEntity::SetModel(newModel);
|
|
|
|
|
|
|
|
|
|
#ifdef SERVER
|
|
|
|
|
if (model && HasPropData() == false) {
|
|
|
|
|
m_iPropData = PropData_ForModel(model);
|
|
|
|
|
}
|
|
|
|
|
#endif
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#ifdef CLIENT
|
|
|
|
|
void
|
|
|
|
|
NSSurfacePropEntity_ReadEntity(bool new)
|
|
|
|
|
{
|
|
|
|
@ -790,3 +642,15 @@ NSSurfacePropEntity_ReadEntity(bool new)
|
|
|
|
|
rend.ReceiveEntity(new, fl);
|
|
|
|
|
}
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
void
|
|
|
|
|
NSSurfacePropEntity::SetModel(string newModel)
|
|
|
|
|
{
|
|
|
|
|
NSRenderableEntity::SetModel(newModel);
|
|
|
|
|
|
|
|
|
|
#ifdef SERVER
|
|
|
|
|
if (model && HasPropData() == false) {
|
|
|
|
|
m_iPropData = PropData_ForModel(model);
|
|
|
|
|
}
|
|
|
|
|
#endif
|
|
|
|
|
}
|