# We eventually need to get rid of these.
QCCFLAGS_WTFS ?= \
- -Wno-field-redeclared \
- -Wno-double-declaration \
+ -Wno-field-redeclared
QCCFLAGS ?= \
-std=gmqcc \
//
// system globals
//
-entity self;
-entity other;
-entity world;
-float time;
-float frametime;
+//entity self;
+//entity other;
+//entity world;
+//float time;
+//float frametime;
-int player_localentnum; //the entnum of the VIEW entity
-int player_localnum; //the playernum
-float maxclients; //a constant filled in by the engine. gah, portability eh?
+//int player_localentnum; //the entnum of the VIEW entity
+//int player_localnum; //the playernum
+//float maxclients; //a constant filled in by the engine. gah, portability eh?
-float clientcommandframe; //player movement
-float servercommandframe; //clientframe echoed off the server
+//float clientcommandframe; //player movement
+//float servercommandframe; //clientframe echoed off the server
-string mapname;
+//string mapname;
//
// global variables set by built in functions
//
-vector v_forward, v_up, v_right; // set by makevectors()
+//vector v_forward, v_up, v_right; // set by makevectors()
// set by traceline / tracebox
-float trace_allsolid;
-float trace_startsolid;
-float trace_fraction;
-vector trace_endpos;
-vector trace_plane_normal;
-float trace_plane_dist;
-entity trace_ent;
-float trace_inopen;
-float trace_inwater;
+//float trace_allsolid;
+//float trace_startsolid;
+//float trace_fraction;
+//vector trace_endpos;
+//vector trace_plane_normal;
+//float trace_plane_dist;
+//entity trace_ent;
+//float trace_inopen;
+//float trace_inwater;
//
// required prog functions
bool(string s) CSQC_ConsoleCommand;
//these fields are read and set by the default player physics
-vector pmove_org;
-vector pmove_vel;
-vector pmove_mins;
-vector pmove_maxs;
+//vector pmove_org;
+//vector pmove_vel;
+//vector pmove_mins;
+//vector pmove_maxs;
//retrieved from the current movement commands (read by player physics)
-float input_timelength;
-vector input_angles;
-vector input_movevalues; //forwards, right, up.
-int input_buttons; //attack, use, jump (default physics only uses jump)
-
-float movevar_gravity;
-float movevar_stopspeed;
-float movevar_maxspeed;
-float movevar_spectatormaxspeed; //used by NOCLIP movetypes.
-float movevar_accelerate;
-float movevar_airaccelerate;
-float movevar_wateraccelerate;
-float movevar_friction;
-float movevar_waterfriction;
-float movevar_entgravity; //the local player's gravity field. Is a multiple (1 is the normal value)
+//float input_timelength;
+//vector input_angles;
+//vector input_movevalues; //forwards, right, up.
+//int input_buttons; //attack, use, jump (default physics only uses jump)
+
+//float movevar_gravity;
+//float movevar_stopspeed;
+//float movevar_maxspeed;
+//float movevar_spectatormaxspeed; //used by NOCLIP movetypes.
+//float movevar_accelerate;
+//float movevar_airaccelerate;
+//float movevar_wateraccelerate;
+//float movevar_friction;
+//float movevar_waterfriction;
+//float movevar_entgravity; //the local player's gravity field. Is a multiple (1 is the normal value)
//================================================
-void end_sys_globals; // flag for structure dumping
+//void end_sys_globals; // flag for structure dumping
//================================================
/*
.entity owner; // who launched a missile
//================================================
-void end_sys_fields; // flag for structure dumping
+//void end_sys_fields; // flag for structure dumping
//================================================
// Additional OPTIONAL Fields and Globals
-float intermission;
+//float intermission;
float scoreboard_showscores;
float scoreboard_showaccuracy;
.string message;
postinit = true;
}
-float button_zoom;
-
// CSQC_InputEvent : Used to perform actions based on any key pressed, key released and mouse on the client.
// Return value should be 1 if CSQC handled the input, otherwise return 0 to have the input passed to the engine.
// All keys are in ascii.
// --------------------------------------------------------------------------
// General stuff
-float drawfont;
float postinit;
float gametype;
//.float ctf_state;
//.float health;
-float FONT_DEFAULT = 0;
float FONT_USER = 8;
// --------------------------------------------------------------------------
.void(void) draw2d;
.void(void) entremove;
float drawframetime;
-vector view_origin, view_angles, view_forward, view_right, view_up;
+vector view_origin, view_forward, view_right, view_up;
float button_zoom;
float spectatorbutton_zoom;
vector teamradar_size2d; // 2D size
vector teamradar_extraclip_mins, teamradar_extraclip_maxs; // for non-centered radar display
float teamradar_size; // 2D scale factor
-float hud_panel_radar_scale; // window size = ...qu
float v_flipped;
float vlen2d(vector v)
R_EndPolygon();
}
-float hud_panel_radar_scale;
+float hud_panel_radar_scale; // window size = ...qu
float hud_panel_radar_foreground_alpha;
float hud_panel_radar_rotation;
vector hud_panel_radar_size;
te_spark(self.origin + '0 0 40', randomvec() * 256 + '0 0 256', 16);
}
-void(entity e, entity tagentity, string tagname) setattachment = #443;
void turret_construct()
{
if(self.tur_head == world)
// Deathtypes, reworked by Samual
// ================================
+int DEATH_SPECIAL_START;
+int NORMAL_POS;
+int DEATH_MONSTER_FIRST;
+int DEATH_MONSTER_LAST;
+int DEATH_TURRET_FIRST;
+int DEATH_TURRET_LAST;
+int DEATH_VHFIRST;
+int DEATH_VHLAST;
+
#define DEATHTYPES \
DEATHTYPE(DEATH_AUTOTEAMCHANGE, DEATH_SELF_AUTOTEAMCHANGE, NO_MSG, DEATH_SPECIAL_START) \
DEATHTYPE(DEATH_BUFF_VENGEANCE, NO_MSG, DEATH_MURDER_VENGEANCE, NORMAL_POS) \
#define DEATHTYPE(name,msg_death,msg_death_by,position) \
int name; \
- int position; \
void RegisterDeathtype_##name() \
{ \
SET_FIRST_OR_LAST(position, DT_FIRST, DT_COUNT) \
// Initialization/Create Declarations
// ====================================
+enum {
+ NO_CPID
+, CPID_ASSAULT_ROLE
+, CPID_ROUND
+, CPID_CAMPCHECK
+, CPID_CTF_CAPSHIELD
+, CPID_CTF_LOWPRIO
+, CPID_CTF_PASS
+, CPID_STALEMATE
+, CPID_NADES
+, CPID_IDLING
+, CPID_ITEM
+, CPID_PREVENT_JOIN
+, CPID_KEEPAWAY
+, CPID_KEEPAWAY_WARN
+, CPID_KEYHUNT
+, CPID_KEYHUNT_OTHER
+, CPID_LMS
+, CPID_MISSING_TEAMS
+, CPID_MISSING_PLAYERS
+, CPID_INSTAGIB_FINDAMMO
+, CPID_MOTD
+, CPID_NIX
+, CPID_ONSLAUGHT
+, CPID_OVERTIME
+, CPID_POWERUP
+, CPID_RACE_FINISHLAP
+, CPID_TEAMCHANGE
+, CPID_TIMEOUT
+// always last
+, NOTIF_CPID_COUNT
+};
// notification counts
const float NOTIF_FIRST = 1;
float NOTIF_ANNCE_COUNT;
float NOTIF_CENTER_COUNT;
float NOTIF_MULTI_COUNT;
float NOTIF_CHOICE_COUNT;
-float NOTIF_CPID_COUNT;
// notification limits -- INCREASE AS NECESSARY
const float NOTIF_ANNCE_MAX = 100;
#define MSG_CENTER_NOTIF(default,name,strnum,flnum,args,cpid,durcnt,normal,gentle) \
NOTIF_ADD_AUTOCVAR(name, default) \
float name; \
- float cpid; \
void RegisterNotification_##name() \
{ \
SET_FIELD_COUNT(name, NOTIF_FIRST, NOTIF_CENTER_COUNT) \
- SET_FIELD_COUNT(cpid, NOTIF_FIRST, NOTIF_CPID_COUNT) \
CHECK_MAX_COUNT(name, NOTIF_CENTER_MAX, NOTIF_CENTER_COUNT, "MSG_CENTER") \
Create_Notification_Entity( \
/* COMMON ======================== */ \
float autocvar_cl_movement_errorcompensation = 0;
// engine stuff
-const int REFDEFFLAG_TELEPORTED = 1;
-const int REFDEFFLAG_JUMPING = 2;
float pmove_onground; // weird engine flag we shouldn't really use but have to for now
vector csqcplayer_origin, csqcplayer_velocity;
return (self == csqcplayer);
}
-void(entity e, float fl) V_CalcRefdef = #640; // DP_CSQC_V_CALCREFDEF
-
void CSQCPlayer_SetCamera()
{
vector v0;
// only ever READ these!
.int pmove_flags;
const int PMF_JUMP_HELD = 1;
-const int PMF_DUCKED = 4;
-const int PMF_ONGROUND = 8;
+//const int PMF_DUCKED = 4;
+//const int PMF_ONGROUND = 8;
void CSQCPlayer_SetCamera();
float CSQCPlayer_PreUpdate();
const int VF_PERSPECTIVE = 200;
-const int STAT_HEALTH = 0;
-const int STAT_WEAPONMODEL = 2;
-const int STAT_AMMO = 3;
-const int STAT_ARMOR = 4;
-const int STAT_WEAPONFRAME = 5;
-const int STAT_SHELLS = 6;
-const int STAT_NAILS = 7;
-const int STAT_ROCKETS = 8;
-const int STAT_CELLS = 9;
-const int STAT_ACTIVEWEAPON = 10;
-const int STAT_TOTALSECRETS = 11;
-const int STAT_TOTALMONSTERS = 12;
-const int STAT_SECRETS = 13;
-const int STAT_MONSTERS = 14;
-const int STAT_ITEMS = 15;
-const int STAT_VIEWHEIGHT = 16;
+//const int STAT_HEALTH = 0;
+//const int STAT_WEAPONMODEL = 2;
+//const int STAT_AMMO = 3;
+//const int STAT_ARMOR = 4;
+//const int STAT_WEAPONFRAME = 5;
+//const int STAT_SHELLS = 6;
+//const int STAT_NAILS = 7;
+//const int STAT_ROCKETS = 8;
+//const int STAT_CELLS = 9;
+//const int STAT_ACTIVEWEAPON = 10;
+//const int STAT_TOTALSECRETS = 11;
+//const int STAT_TOTALMONSTERS = 12;
+//const int STAT_SECRETS = 13;
+//const int STAT_MONSTERS = 14;
+//const int STAT_ITEMS = 15;
+//const int STAT_VIEWHEIGHT = 16;
// Quake Sound Constants
const int CHAN_AUTO = 0;
const vector VEC_0 = '0 0 0';
const vector VEC_M1 = '-1 -1 -1';
-const float M_PI = 3.14159265358979323846;
+//const float M_PI = 3.14159265358979323846;
vector VEC_HULL_MIN = '-16 -16 -24';
vector VEC_HULL_MAX = '16 16 32';
void(entity own, vector start, vector end) te_beam = #431;
void(vector dir) vectorvectors = #432;
void(vector org) te_plasmaburn = #433;
-float(entity e, float s) getsurfacenumpoints = #434;
-vector(entity e, float s, float n) getsurfacepoint = #435;
-vector(entity e, float s) getsurfacenormal = #436;
-string(entity e, float s) getsurfacetexture = #437;
-float(entity e, vector p) getsurfacenearpoint = #438;
-vector(entity e, float s, vector p) getsurfaceclippedpoint = #439;
+//float(entity e, float s) getsurfacenumpoints = #434;
+//vector(entity e, float s, float n) getsurfacepoint = #435;
+//vector(entity e, float s) getsurfacenormal = #436;
+//string(entity e, float s) getsurfacetexture = #437;
+//float(entity e, vector p) getsurfacenearpoint = #438;
+//vector(entity e, float s, vector p) getsurfaceclippedpoint = #439;
int(string s) tokenize = #441;
string(float n) argv = #442;
float(float bufhandle, string str, float order) bufstr_add = #468;
void(float bufhandle, float string_index) bufstr_free = #469;
-float(float s) asin = #471;
-float(float c) acos = #472;
-float(float t) atan = #473;
-float(float c, float s) atan2 = #474;
-float(float a) tan = #475;
+//float(float s) asin = #471;
+//float(float c) acos = #472;
+//float(float t) atan = #473;
+//float(float c, float s) atan2 = #474;
+//float(float a) tan = #475;
float(string s) strippedstringlen = #476;
float(string s) strlennocol = #476; // This is the correct name for the function, but not removing the decolorizedstring mapping.
string(string s) decolorizedstring = #477;
void(vector origin, string sample, float volume, float attenuation) pointsound = #483;
string(string search, string replace, string subject) strreplace = #484;
string(string search, string replace, string subject) strireplace = #485;
-vector(entity e, float s, float n, float a) getsurfacepointattribute = #486;
+//vector(entity e, float s, float n, float a) getsurfacepointattribute = #486;
#ifdef SUPPORT_GECKO
float gecko_create( string name ) = #487;
void gecko_destroy( string name ) = #488;
void(entity e, string s) parseentitydata = #608;
// assorted builtins
-const int STAT_MOVEVARS_TICRATE = 240;
-const int STAT_MOVEVARS_TIMESCALE = 241;
-const int STAT_FRAGLIMIT = 235;
-const int STAT_TIMELIMIT = 236;
-const int STAT_MOVEVARS_GRAVITY = 242;
+//const int STAT_MOVEVARS_TICRATE = 240;
+//const int STAT_MOVEVARS_TIMESCALE = 241;
+//const int STAT_FRAGLIMIT = 235;
+//const int STAT_TIMELIMIT = 236;
+//const int STAT_MOVEVARS_GRAVITY = 242;
string(void) ReadPicture = #501;
const int PARTICLES_USEALPHA = 1;
float particles_alphamin, particles_alphamax;
const int IT_LIGHTNING = 64;
const int IT_EXTRA_WEAPON = 128;
-const int IT_SHELLS = 256;
-const int IT_NAILS = 512;
-const int IT_ROCKETS = 1024;
-const int IT_CELLS = 2048;
+//const int IT_SHELLS = 256;
+//const int IT_NAILS = 512;
+//const int IT_ROCKETS = 1024;
+//const int IT_CELLS = 2048;
const int IT_ARMOR1 = 8192;
const int IT_ARMOR2 = 16384;
const int IT_ARMOR3 = 32768;
const int IT_SUPERHEALTH = 65536;
-const int IT_KEY1 = 131072;
-const int IT_KEY2 = 262144;
+//const int IT_KEY1 = 131072;
+//const int IT_KEY2 = 262144;
const int IT_INVISIBILITY = 524288;
const int IT_INVULNERABILITY = 1048576;
ATTRIB(XonoticDemoList, filterString, string, string_null)
ENDCLASS(XonoticDemoList)
+#ifndef IMPLEMENTATION
+// public:
entity demolist; // for reference elsewhere
entity makeXonoticDemoList();
+#endif
void DemoList_Refresh_Click(entity btn, entity me);
void DemoList_Filter_Change(entity box, entity me);
#endif
ATTRIB(XonoticDemoBrowserTab, democlicktype, float, 0)
ENDCLASS(XonoticDemoBrowserTab)
entity makeXonoticDemoBrowserTab();
+#ifdef IMPLEMENTATION
+// private:
const float DMO_PLAY = 1;
const float DMO_TIME = 2;
#endif
+#endif
#ifdef IMPLEMENTATION
void DemoConfirm_Check_Gamestatus(entity btn, entity me)
ATTRIB(XonoticStatsList, columnNameSize, float, 0)
ENDCLASS(XonoticStatsList)
+#ifndef IMPLEMENTATION
+// public:
entity statslist; // for reference elsewhere
+#endif
entity makeXonoticStatsList();
#endif
-entity ka_ball;
// traces multiple trajectories to find one that will impact the target
// 'end' vector is the place it aims for,
// returns true only if it hit targ (don't target non-solid entities)
void() havocbot_setupbot;
-float c1, c2, c3, c4;
+//float c1, c2, c3, c4;
void CheckAllowedTeams(entity for_whom); void GetTeamCounts(entity other);
float JoinBestTeam(entity pl, float only_return_best, float forcebestteam);
float campaign_level;
float campaign_won;
string campaign_index_var;
-float checkrules_equality;
+//float checkrules_equality;
float CampaignBailout(string s)
{
-float autocvar_sv_cheats; // must... declare... global
+//float autocvar_sv_cheats; // must... declare... global
float cheatcount_total;
.float cheatcount;
.void (float act_state) setactive;
.entity realowner;
-float serverflags;
+//float serverflags;
.float team_forced; // can be a team number to force a team, or 0 for default action, or -1 for forced spectator
float mapvote_initialized;
float mapvote_nextthink;
-float mapvote_initialized;
float mapvote_keeptwotime;
float mapvote_timeout;
string mapvote_message;
//#NO AUTOCVARS END
// Sound functions
-string precache_sound (string s) = #19;
+//string precache_sound (string s) = #19;
+// hack
float precache_sound_index (string s) = #19;
const float SND_VOLUME = 1;
// register all possible hooks here
+// some parameters are commented to avoid duplicate declarations
MUTATOR_HOOKABLE(MakePlayerObserver);
// called when a player becomes observer, after shared setup
MUTATOR_HOOKABLE(PutClientInServer);
- entity self; // client wanting to spawn
+// entity self; // client wanting to spawn
MUTATOR_HOOKABLE(PlayerSpawn);
entity spawn_spot; // spot that was used, or world
MUTATOR_HOOKABLE(GiveFragsForKill);
// called when someone was fragged by "self", and is expected to change frag_score to adjust scoring for the kill
// INPUT:
- entity frag_attacker; // same as self
- entity frag_target;
+// entity frag_attacker; // same as self
+// entity frag_target;
// INPUT, OUTPUT:
float frag_score;
MUTATOR_HOOKABLE(SpectateCopy);
// copies variables for spectating "other" to "self"
// INPUT:
- entity other;
+// entity other;
MUTATOR_HOOKABLE(ForbidThrowCurrentWeapon);
// returns 1 if throwing the current weapon shall not be allowed
MUTATOR_HOOKABLE(BuildMutatorsPrettyString);
// appends ", Mutator name" to ret_string for display
// INPUT, OUTPUT:
- string ret_string;
+// string ret_string;
MUTATOR_HOOKABLE(CustomizeWaypoint);
// called every frame
MUTATOR_HOOKABLE(EditProjectile);
// can edit any "just fired" projectile
// INPUT:
- entity self;
- entity other;
+// entity self;
+// entity other;
MUTATOR_HOOKABLE(MonsterSpawn);
// called when a monster spawns
MUTATOR_HOOKABLE(MonsterDies);
// called when a monster dies
// INPUT:
- entity frag_attacker;
+// entity frag_attacker;
MUTATOR_HOOKABLE(MonsterRespawn);
// called when a monster wants to respawn
// INPUT:
- entity other;
+// entity other;
MUTATOR_HOOKABLE(MonsterDropItem);
// called when a monster is dropping loot
// INPUT, OUTPUT:
.void() monster_loot;
- entity other;
+// entity other;
MUTATOR_HOOKABLE(MonsterMove);
// called when a monster moves
MUTATOR_HOOKABLE(PlayerDamage_SplitHealthArmor);
// called when a player gets damaged to e.g. remove stuff he was carrying.
// INPUT:
- entity frag_inflictor;
- entity frag_attacker;
- entity frag_target; // same as self
+// entity frag_inflictor;
+// entity frag_attacker;
+// entity frag_target; // same as self
vector damage_force; // NOTE: this force already HAS been applied
// INPUT, OUTPUT:
float damage_take;
// called to adjust damage and force values which are applied to the player, used for e.g. strength damage/force multiplier
// i'm not sure if I should change this around slightly (Naming of the entities, and also how they're done in g_damage).
// INPUT:
- entity frag_attacker;
- entity frag_target;
- float frag_deathtype;
+// entity frag_attacker;
+// entity frag_target;
+// float frag_deathtype;
// INPUT, OUTPUT:
float frag_damage;
float frag_mirrordamage;
MUTATOR_HOOKABLE(PlayerPowerups);
// called at the end of player_powerups() in cl_client.qc, used for manipulating the values which are set by powerup items.
// INPUT
- entity self;
+// entity self;
float olditems; // also technically output, but since it is at the end of the function it's useless for that :P
MUTATOR_HOOKABLE(PlayerRegen);
// called when a spawnpoint is being evaluated
// return 1 to make the spawnpoint unusable
// INPUT
- entity self; // player wanting to spawn
- entity spawn_spot; // spot to be evaluated
+// entity self; // player wanting to spawn
+// entity spawn_spot; // spot to be evaluated
// IN+OUT
vector spawn_score; // _x is priority, _y is "distance"
MUTATOR_HOOKABLE(SetModname);
// OUT
- string modname; // name of the mutator/mod if it warrants showing as such in the server browser
+// string modname; // name of the mutator/mod if it warrants showing as such in the server browser
MUTATOR_HOOKABLE(Item_Spawn);
// called for each item being spawned on a map, including dropped weapons
// return 1 to remove an item
// INPUT
- entity self; // the item
+// entity self; // the item
MUTATOR_HOOKABLE(SetWeaponreplace);
// IN
- entity self; // map entity
- entity other; // weapon info
+// entity self; // map entity
+// entity other; // weapon info
// IN+OUT
- string ret_string;
+// string ret_string;
MUTATOR_HOOKABLE(Item_RespawnCountdown);
// called when an item is about to respawn
// called whenever a player goes through a portal gun teleport
// allows you to strip a player of an item if they go through the teleporter to help prevent cheating
// INPUT
- entity self;
+// entity self;
MUTATOR_HOOKABLE(HelpMePing);
// called whenever a player uses impulse 33 (help me) in cl_impulse.qc
// but if your mutator uses something different then you can handle it
// in a special manner using this hook
// INPUT
- entity self; // the player who pressed impulse 33
+// entity self; // the player who pressed impulse 33
MUTATOR_HOOKABLE(VehicleSpawn);
// called when a vehicle initializes
// called when a player touches a vehicle
// return true to stop player from entering the vehicle
// INPUT
- entity self; // vehicle
- entity other; // player
+// entity self; // vehicle
+// entity other; // player
MUTATOR_HOOKABLE(VehicleExit);
// called when a player exits a vehicle
// allows mutators to set special settings in this event
// INPUT
- entity vh_player; // player
- entity vh_vehicle; // vehicle
+// entity vh_player; // player
+// entity vh_vehicle; // vehicle
MUTATOR_HOOKABLE(AbortSpeedrun);
// called when a speedrun is aborted and the player is teleported back to start position
// INPUT
- entity self; // player
+// entity self; // player
MUTATOR_HOOKABLE(ItemTouch);
// called at when a item is touched. Called early, can edit item properties.
- entity self; // item
- entity other; // player
+// entity self; // item
+// entity other; // player
const float MUT_ITEMTOUCH_CONTINUE = 0; // return this flag to make the function continue as normal
const float MUT_ITEMTOUCH_RETURN = 1; // return this flag to make the function return (handled entirely by mutator)
const float MUT_ITEMTOUCH_PICKUP = 2; // return this flag to have the item "picked up" and taken even after mutator handled it
MUTATOR_HOOKABLE(ClientConnect);
// called at when a player connect
- entity self; // player
+// entity self; // player
MUTATOR_HOOKABLE(HavocBot_ChooseRole);
- entity self;
+// entity self;
MUTATOR_HOOKABLE(AccuracyTargetValid);
// called when a target is checked for accuracy
- entity frag_attacker; // attacker
- entity frag_target; // target
+// entity frag_attacker; // attacker
+// entity frag_target; // target
const float MUT_ACCADD_VALID = 0; // return this flag to make the function continue if target is a client
const float MUT_ACCADD_INVALID = 1; // return this flag to make the function always continue
const float MUT_ACCADD_INDIFFERENT = 2; // return this flag to make the function always return
allowed_to_spawn = false;
}
-float prev_missing_teams_mask;
float CA_CheckTeams()
{
+ static float prev_missing_teams_mask;
allowed_to_spawn = true;
CA_count_alive_players();
if(CA_ALIVE_TEAMS_OK())
-float g_race_qualifying;
+//float g_race_qualifying;
// scores
const float ST_CTS_LAPS = 1;
#define FREEZETAG_ALIVE_TEAMS() ((redalive > 0) + (bluealive > 0) + (yellowalive > 0) + (pinkalive > 0))
#define FREEZETAG_ALIVE_TEAMS_OK() (FREEZETAG_ALIVE_TEAMS() == freezetag_teams)
-float prev_missing_teams_mask;
float freezetag_CheckTeams()
{
+ static float prev_missing_teams_mask;
if(FREEZETAG_ALIVE_TEAMS_OK())
{
if(prev_missing_teams_mask > 0)
return 0;
}
-entity kh_worldkeylist;
+//entity kh_worldkeylist;
.entity kh_worldkeynext;
entity kh_controller;
-float kh_tracking_enabled;
+//float kh_tracking_enabled;
float kh_teams;
float kh_interferemsg_time, kh_interferemsg_team;
.entity kh_next, kh_prev; // linked list
.float buff_flight_prev_gravity;
// jump
.float stat_jumpheight;
-const float STAT_MOVEVARS_JUMPVELOCITY = 250; // engine hack
+//const float STAT_MOVEVARS_JUMPVELOCITY = 250; // engine hack
// disability
.float buff_disability_time;
.float buff_disability_effect_time;
string cache_lastmutatormsg;
// client counts for each team
-float c1, c2, c3, c4;
+//float c1, c2, c3, c4;
// # of bots on those teams
float cb1, cb2, cb3, cb4;
float warpzone_fixingview;
float warpzone_fixingview_drawexteriormodel;
-float autocvar_chase_active;
void WarpZone_View_Outside()
{
-int trace_dphitcontents;
-.float dphitcontentsmask;
-
void WarpZone_Accumulator_Clear(entity acc)
{
acc.warpzone_transform = '0 0 0';
}
float warpzone_initialized;
-entity warpzone_first;
+//entity warpzone_first;
entity warpzone_position_first;
entity warpzone_camera_first;
.entity warpzone_next;
float WarpZone_Projectile_Touch_ImpactFilter_Callback();
// server must also define a float called ENT_CLIENT_WARPZONE for the initial byte of WarpZone entities
-const float ENT_CLIENT_WARPZONE;
-const float ENT_CLIENT_WARPZONE_CAMERA;
+//const float ENT_CLIENT_WARPZONE;
+//const float ENT_CLIENT_WARPZONE_CAMERA;
void WarpZone_PlayerPhysics_FixVAngle(void);