#define WEPENT_NETPROPS(PROP) PROP(false, sv_entnum, WEPENT_SET_NORMAL, {}, {}) /* sentinel */ \
PROP(false, m_switchweapon, WEPENT_SET_NORMAL, \
{ WriteByte(chan, this.m_switchweapon.m_id); }, \
- { (viewmodels[this.m_wepent_slot]).switchweapon = Weapons_from(ReadByte()); }) \
+ { (viewmodels[this.m_wepent_slot]).switchweapon = REGISTRY_GET(Weapons, ReadByte()); }) \
\
PROP(false, m_switchingweapon, WEPENT_SET_NORMAL, \
{ WriteByte(chan, this.m_switchingweapon.m_id); }, \
- { (viewmodels[this.m_wepent_slot]).switchingweapon = Weapons_from(ReadByte()); }) \
+ { (viewmodels[this.m_wepent_slot]).switchingweapon = REGISTRY_GET(Weapons, ReadByte()); }) \
\
PROP(false, m_weapon, WEPENT_SET_NORMAL, \
{ WriteByte(chan, this.m_weapon.m_id); }, \
- { (viewmodels[this.m_wepent_slot]).activeweapon = Weapons_from(ReadByte()); }) \
+ { (viewmodels[this.m_wepent_slot]).activeweapon = REGISTRY_GET(Weapons, ReadByte()); }) \
\
PROP(false, m_alpha, WEPENT_SET_NORMAL, \
{ WriteByte(chan, rint(bound(-1, 254 * this.m_alpha, 254) - -1)); }, \
- { (viewmodels[this.m_wepent_slot]).alpha = (ReadByte() + -1) / 254; }) \
+ { (viewmodels[this.m_wepent_slot]).m_alpha = (ReadByte() + -1) / 254; }) \
\
PROP(false, vortex_charge, WEPENT_SET_NORMAL, \
{ WriteByte(chan, this.vortex_charge * 255); }, \
{ (viewmodels[this.m_wepent_slot]).vortex_charge = ReadByte() / 255; }) \
\
+ PROP(false, oknex_charge, WEPENT_SET_NORMAL, \
+ { WriteByte(chan, this.oknex_charge * 16); }, \
+ { (viewmodels[this.m_wepent_slot]).oknex_charge = ReadByte() / 16; }) \
+ \
PROP(false, m_gunalign, WEPENT_SET_NORMAL, \
{ WriteByte(chan, this.m_gunalign); }, \
{ (viewmodels[this.m_wepent_slot]).m_gunalign = ReadByte(); }) \
\
PROP(false, porto_v_angle_held, WEPENT_SET_NORMAL, \
{ WriteByte(chan, this.porto_v_angle_held); if(this.porto_v_angle_held) { \
- WriteAngle(chan, this.porto_v_angle.x); WriteAngle(chan, this.porto_v_angle.y); \
+ WriteAngleVector2D(chan, this.owner.porto_v_angle); \
} }, \
{ (viewmodels[this.m_wepent_slot]).angles_held_status = ReadByte(); if((viewmodels[this.m_wepent_slot]).angles_held_status) { \
- (viewmodels[this.m_wepent_slot]).angles_held_x = ReadAngle(); (viewmodels[this.m_wepent_slot]).angles_held_y = ReadAngle(); (viewmodels[this.m_wepent_slot]).angles_held_z = 0; } \
+ (viewmodels[this.m_wepent_slot]).angles_held = ReadAngleVector2D(); } \
else { (viewmodels[this.m_wepent_slot]).angles_held = '0 0 0'; } }) \
\
PROP(false, tuba_instrument, WEPENT_SET_NORMAL, \
{ (viewmodels[this.m_wepent_slot]).minelayer_mines = ReadByte(); }) \
\
PROP(false, arc_heat_percent, WEPENT_SET_NORMAL, \
- { WriteByte(chan, this.arc_heat_percent * 16); }, \
- { (viewmodels[this.m_wepent_slot]).arc_heat_percent = ReadByte() / 16; }) \
+ { WriteByte(chan, this.arc_heat_percent * 255); }, \
+ { (viewmodels[this.m_wepent_slot]).arc_heat_percent = ReadByte() / 255; }) \
\
PROP(false, vortex_chargepool_ammo, WEPENT_SET_NORMAL, \
{ WriteByte(chan, this.vortex_chargepool_ammo * 16); }, \
{ (viewmodels[this.m_wepent_slot]).vortex_chargepool_ammo = ReadByte() / 16; }) \
\
- PROP(false, clip_load, WEPENT_SET_NORMAL, \
+ PROP(false, oknex_chargepool_ammo, WEPENT_SET_NORMAL, \
+ { WriteByte(chan, this.oknex_chargepool_ammo * 16); }, \
+ { (viewmodels[this.m_wepent_slot]).oknex_chargepool_ammo = ReadByte() / 16; }) \
+ \
+ PROP(false, clip_load, WEPENT_SET_NORMAL, \
{ WriteShort(chan, this.clip_load); }, \
{ (viewmodels[this.m_wepent_slot]).clip_load = ReadShort(); }) \
\
PROP(false, clip_size, WEPENT_SET_NORMAL, \
{ WriteShort(chan, this.clip_size); }, \
{ (viewmodels[this.m_wepent_slot]).clip_size = ReadShort(); }) \
+ \
+ PROP(false, skin, WEPENT_SET_NORMAL, \
+ { WriteShort(chan, this.skin); }, \
+ { (viewmodels[this.m_wepent_slot]).m_skin = ReadShort(); }) \
\
/**/
void wepent_link(entity wep)
{
- entity e = new(wepent_sender);
+ entity e = new_pure(wepent_sender);
e.owner = wep;
setthink(e, wepent_think);
e.nextthink = time;
NET_HANDLE(ENT_CLIENT_WEPENT, bool isnew)
{
- if (isnew)
- this.classname = "wepent_receiver";
return ReadWepent(this);
}