//.float weapon; // current weapon
.float switchweapon; // weapon requested to switch to
.float switchingweapon; // weapon currently being switched to (is copied from switchweapon once switch is possible)
+.string weaponname; // name of .weapon
.float autoswitch;
float weapon_action(float wpn, float wrequest);
.float runes;
+// Keys player is holding
+.float itemkeys;
+#define KEYS_GOLD_KEY 1
+#define KEYS_SILVER_KEY 2
+// spawnflags require key (for now only func_door)
+#define SPAWNFLAGS_GOLD_KEY 8
+#define SPAWNFLAGS_SILVER_KEY 16
+// message delay for func_door locked by keys and key locks
+// this field is used on player entities
+.float key_door_messagetime;
+
.float version;
.float cvar_cl_handicap;
.float cvar_cl_playerdetailreduction;
.float cvar_cl_clippedspectating;
+.float cvar_cl_movement_track_canjump;
+.float cvar_cl_newusekeysupported;
.string cvar_g_xonoticversion;
.string cvar_cl_weaponpriority;
float sv_maxidle;
float sv_maxidle_spectatorsareidle;
-float sv_pogostick;
float tracebox_hits_trigger_hurt(vector start, vector mi, vector ma, vector end);
float next_pingtime;
.float version_mismatch;
float independent_players;
+#define INDEPENDENT_PLAYERS (autocvar__independent_players ? (autocvar__independent_players > 0) : independent_players)
#define IS_INDEPENDENT_PLAYER(e) ((e).solid == SOLID_TRIGGER)
#define MAKE_INDEPENDENT_PLAYER(e) (((e).solid = SOLID_TRIGGER) + ((e).frags = FRAGS_PLAYER_NONSOLID))
// we're using + here instead of , because fteqcc sucks
.float misc_bulletcounter; // replaces uzi & hlac bullet counter.
void PlayerUseKey();
+