/** the string "HMAC-SHA256" if signing, and string_null if plaintext */
ATTRIB(Client, crypto_signmethod, string, this.crypto_signmethod);
+ // engine client fields
+ ATTRIB(Client, impulse, int, this.impulse);
+
+ ATTRIB(Client, button0, int, this.button0);
+ ATTRIB(Client, button2, int, this.button2);
+ ATTRIB(Client, button3, int, this.button3);
+ ATTRIB(Client, button4, int, this.button4);
+ ATTRIB(Client, button5, int, this.button5);
+ ATTRIB(Client, button6, int, this.button6);
+ ATTRIB(Client, button7, int, this.button7);
+ ATTRIB(Client, button8, int, this.button8);
+ ATTRIB(Client, button9, int, this.button9);
+ ATTRIB(Client, button10, int, this.button10);
+ ATTRIB(Client, button11, int, this.button11);
+ ATTRIB(Client, button12, int, this.button12);
+ ATTRIB(Client, button13, int, this.button13);
+ ATTRIB(Client, button14, int, this.button14);
+ ATTRIB(Client, button15, int, this.button15);
+ ATTRIB(Client, button16, int, this.button16);
+ ATTRIB(Client, buttonuse, int, this.buttonuse);
+ ATTRIB(Client, buttonchat, int, this.buttonchat);
+
+ ATTRIB(Client, cursor_active, int, this.cursor_active);
+ ATTRIB(Client, cursor_screen, vector, this.cursor_screen);
+ ATTRIB(Client, cursor_trace_start, vector, this.cursor_trace_start);
+ ATTRIB(Client, cursor_trace_endpos, vector, this.cursor_trace_endpos);
+ ATTRIB(Client, cursor_trace_ent, entity, this.cursor_trace_ent);
+
+ ATTRIB(Client, ping, float, this.ping);
+ ATTRIB(Client, ping_packetloss, float, this.ping_packetloss);
+ ATTRIB(Client, ping_movementloss, float, this.ping_movementloss);
+
+ ATTRIB(Client, v_angle, vector, this.v_angle);
+ ATTRIB(Client, movement, vector, this.movement);
+
// custom
ATTRIB(Client, playerid, int, this.playerid);
+ ATTRIB(Client, parm_idlesince, int, this.parm_idlesince);
+ ATTRIB(Client, muted, bool, this.muted);
+ ATTRIB(Client, killindicator_teamchange, int, this.killindicator_teamchange);
+ ATTRIB(Client, idlekick_lasttimeleft, float, this.idlekick_lasttimeleft);
+ ATTRIB(Client, pm_frametime, float, this.pm_frametime);
+ ATTRIB(Client, pressedkeys, int, this.pressedkeys);
+ ATTRIB(Client, movement_old, vector, this.movement_old);
+ ATTRIB(Client, buttons_old, int, this.buttons_old);
+ ATTRIB(Client, teamkill_complain, float, this.teamkill_complain);
+ ATTRIB(Client, teamkill_soundtime, float, this.teamkill_soundtime);
+ ATTRIB(Client, teamkill_soundsource, entity, this.teamkill_soundsource);
+ ATTRIB(Client, usekeypressed, bool, this.usekeypressed);
+ ATTRIB(Client, motd_actived_time, float, this.motd_actived_time);
+ ATTRIB(Client, jointime, float, this.jointime);
+ ATTRIB(Client, spectatortime, float, this.spectatortime);
+ ATTRIB(Client, version_nagtime, float, this.version_nagtime);
+ ATTRIB(Client, netname_previous, string, this.netname_previous);
+ ATTRIB(Client, allowed_timeouts, int, this.allowed_timeouts);
+ ATTRIB(Client, active_minigame, entity, this.active_minigame);
+ ATTRIB(Client, taunt_soundtime, float, this.taunt_soundtime);
+ ATTRIB(Client, killcount, int, this.killcount);
+ ATTRIB(Client, version_mismatch, bool, this.version_mismatch);
+
METHOD(Client, m_unwind, bool(Client this));
STATIC_METHOD(Client, Add, void(Client this, int _team));