.float pain_frame; //"
.float crouch; // Crouching or not?
-const .float superweapons_finished = _STAT(SUPERWEAPONS_FINISHED);
+.float superweapons_finished; // NOTE: this field is used only by map entities, it does not directly apply the superweapons stat
+const .float air_finished = _STAT(AIR_FINISHED);
.float cnt; // used in too many places
.float count;
.float railgunhitsolidbackup;
.vector railgunhitloc;
-.float air_finished;
.float dmgtime;
.float killcount;
.float spectatortime; //point in time since the client is spectating or observing
void checkSpectatorBlock(entity this);
-float game_completion_ratio; // 0 at start, 1 near end
.float winning;
.float jointime; // time of connecting
.float startplaytime; // time of switching from spectator to player
float default_weapon_alpha;
.float cvar_cl_handicap;
+.int cvar_cl_gunalign;
.float cvar_cl_clippedspectating;
.float cvar_cl_autoscreenshot;
.float cvar_cl_jetpack_jump;
.float cvar_cl_allow_uid2name;
.float cvar_cl_allow_uidtracking;
+.bool cvar_cl_allow_uidranking;
.string stored_netname;
string gamemode_name;
void FixIntermissionClient(entity e);
void FixClientCvars(entity e);
-// WEAPONTODO: remove this
-//WepSet weaponsInMap;
-
.float respawn_countdown; // next number to count
float bot_waypoints_for_items;
-.float attack_finished_for[Weapons_MAX * MAX_WEAPONSLOTS];
+.float attack_finished_for[REGISTRY_MAX(Weapons) * MAX_WEAPONSLOTS];
.float attack_finished_single[MAX_WEAPONSLOTS];
#if INDEPENDENT_ATTACK_FINISHED
#define ATTACK_FINISHED_FOR(ent, w, slot) ((ent).(attack_finished_for[((w) - WEP_FIRST) * MAX_WEAPONSLOTS + (slot)]))
bool 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))
+#define MAKE_INDEPENDENT_PLAYER(e) (((e).solid = SOLID_TRIGGER), ((e).frags = FRAGS_PLAYER_OUT_OF_GAME))
string clientstuff;
.float phase;
bool radar_showennemies;
-#ifdef PROFILING
-float client_cefc_accumulator;
-float client_cefc_accumulatortime;
-#endif
-
-.float weapon_load[Weapons_MAX];
+.float weapon_load[REGISTRY_MAX(Weapons)];
.int ammo_none; // used by the reloading system, must always be 0
.int clip_load;
.int old_clip_load;
.float cvar_cl_weaponimpulsemode;
.int selectweapon; // last selected weapon of the player
-.float ballistics_density; // wall piercing factor, larger = bullet can pass through more
+.float ballistics_density;
//const int FROZEN_NOT = 0;
const int FROZEN_NORMAL = 1;
IntrusiveList g_saved_team;
IntrusiveList g_monster_targets;
IntrusiveList g_pathlib_nodes;
+IntrusiveList g_moveables;
STATIC_INIT(defs)
{
g_monsters = IL_NEW();
g_saved_team = IL_NEW();
g_monster_targets = IL_NEW();
g_pathlib_nodes = IL_NEW();
+ g_moveables = IL_NEW();
}