client: pass compilation units test
authorTimePath <andrew.hardaker1995@gmail.com>
Tue, 15 Mar 2016 05:48:05 +0000 (16:48 +1100)
committerTimePath <andrew.hardaker1995@gmail.com>
Tue, 15 Mar 2016 05:48:05 +0000 (16:48 +1100)
44 files changed:
qcsrc/client/csqcmodel_hooks.qc
qcsrc/client/csqcmodel_hooks.qh
qcsrc/client/hud/hud.qc
qcsrc/client/hud/hud.qh
qcsrc/client/hud/panel.qh [new file with mode: 0644]
qcsrc/client/hud/panel/ammo.qc
qcsrc/client/hud/panel/ammo.qh
qcsrc/client/hud/panel/centerprint.qc
qcsrc/client/hud/panel/centerprint.qh
qcsrc/client/hud/panel/chat.qh
qcsrc/client/hud/panel/engineinfo.qh
qcsrc/client/hud/panel/healtharmor.qc
qcsrc/client/hud/panel/healtharmor.qh
qcsrc/client/hud/panel/infomessages.qc
qcsrc/client/hud/panel/infomessages.qh
qcsrc/client/hud/panel/minigame.qh
qcsrc/client/hud/panel/modicons.qc
qcsrc/client/hud/panel/modicons.qh
qcsrc/client/hud/panel/notify.qh
qcsrc/client/hud/panel/physics.qc
qcsrc/client/hud/panel/physics.qh
qcsrc/client/hud/panel/powerups.qc
qcsrc/client/hud/panel/powerups.qh
qcsrc/client/hud/panel/pressedkeys.qh
qcsrc/client/hud/panel/quickmenu.qh
qcsrc/client/hud/panel/racetimer.qc
qcsrc/client/hud/panel/racetimer.qh
qcsrc/client/hud/panel/radar.qc
qcsrc/client/hud/panel/radar.qh
qcsrc/client/hud/panel/score.qc
qcsrc/client/hud/panel/score.qh
qcsrc/client/hud/panel/timer.qh
qcsrc/client/hud/panel/vote.qc
qcsrc/client/hud/panel/vote.qh
qcsrc/client/hud/panel/weapons.qh
qcsrc/client/quickmenu.qc
qcsrc/client/scoreboard.qc
qcsrc/client/shownames.qc
qcsrc/client/view.qc
qcsrc/common/debug.qh
qcsrc/common/minigames/cl_minigames_hud.qc
qcsrc/server/mutators/mutator/gamemode_ctf.qc
qcsrc/server/mutators/mutator/gamemode_ctf.qh
qcsrc/tools/compilationunits.sh

index 376ef9b..d0910e3 100644 (file)
@@ -460,26 +460,6 @@ void CSQCModel_AutoTagIndex_Apply(entity this)
        }
 }
 
-// FEATURE: EF_NODRAW workalike
-const int EF_BRIGHTFIELD       = BIT(0);
-const int EF_BRIGHTLIGHT       = BIT(2);
-const int EF_DIMLIGHT          = BIT(3);
-const int EF_DOUBLESIDED       = BIT(15);
-const int EF_NOSELFSHADOW      = BIT(16);
-const int EF_DYNAMICMODELLIGHT = BIT(17);
-const int EF_RESTARTANIM_BIT = BIT(20);
-const int EF_TELEPORT_BIT = BIT(21);
-const int MF_ROCKET  =  BIT(0); // leave a trail
-const int MF_GRENADE =  BIT(1); // leave a trail
-const int MF_GIB     =  BIT(2); // leave a trail
-const int MF_ROTATE  =  BIT(3); // rotate (bonus items)
-const int MF_TRACER  =  BIT(4); // green split trail
-const int MF_ZOMGIB  =  BIT(5); // small blood trail
-const int MF_TRACER2 =  BIT(6); // orange split trail
-const int MF_TRACER3 = BIT(7); // purple trail
-.int csqcmodel_effects;
-.int csqcmodel_modelflags;
-.int csqcmodel_traileffect;
 void CSQCModel_Effects_PreUpdate(entity this)
 {
        this.effects = this.csqcmodel_effects;
index 6f70f09..56a3fb4 100644 (file)
@@ -1 +1,26 @@
 #pragma once
+
+// FEATURE: EF_NODRAW workalike
+const int EF_BRIGHTFIELD       = BIT(0);
+const int EF_BRIGHTLIGHT       = BIT(2);
+const int EF_DIMLIGHT          = BIT(3);
+const int EF_DOUBLESIDED       = BIT(15);
+const int EF_NOSELFSHADOW      = BIT(16);
+const int EF_DYNAMICMODELLIGHT = BIT(17);
+const int EF_RESTARTANIM_BIT   = BIT(20);
+const int EF_TELEPORT_BIT      = BIT(21);
+
+const int MF_ROCKET  =  BIT(0);  // leave a trail
+const int MF_GRENADE =  BIT(1);  // leave a trail
+const int MF_GIB     =  BIT(2);  // leave a trail
+const int MF_ROTATE  =  BIT(3);  // rotate (bonus items)
+const int MF_TRACER  =  BIT(4);  // green split trail
+const int MF_ZOMGIB  =  BIT(5);  // small blood trail
+const int MF_TRACER2 =  BIT(6);  // orange split trail
+const int MF_TRACER3 =  BIT(7);  // purple trail
+
+.int csqcmodel_effects;
+.int csqcmodel_modelflags;
+.int csqcmodel_traileffect;
+
+void CSQCModel_Effects_Apply(entity this);
index b0f2b9e..a4cac53 100644 (file)
@@ -8,6 +8,7 @@
 #include <common/deathtypes/all.qh>
 #include <common/items/all.qc>
 #include <common/mapinfo.qh>
+#include <common/vehicles/all.qh>
 #include <common/mutators/mutator/waypoints/all.qh>
 #include <common/stats.qh>
 #include <lib/csqcmodel/cl_player.qh>
@@ -410,6 +411,8 @@ Main HUD system
 ==================
 */
 
+void CSQC_BUMBLE_GUN_HUD();
+
 void HUD_Vehicle()
 {
        if(autocvar__hud_configure) return;
index b931a34..7664abc 100644 (file)
@@ -41,9 +41,19 @@ bool radar_panel_modified;
 float HUD_Radar_InputEvent(float bInputType, float nPrimary, float nSecondary);
 void HUD_Radar_Hide_Maximized();
 
+float HUD_GetRowCount(int item_count, vector size, float item_aspect);
+vector HUD_Get_Num_Color (float x, float maxvalue);
+void DrawNumIcon(vector myPos, vector mySize, float x, string icon, bool vertical, bool icon_right_align, vector color, float theAlpha);
+void DrawNumIcon_expanding(vector myPos, vector mySize, float x, string icon, bool vertical, bool icon_right_align, vector color, float theAlpha, float fadelerp);
+void HUD_Panel_DrawHighlight(vector pos, vector mySize, vector color, float theAlpha, int drawflag);
+vector HUD_GetTableSize_BestItemAR(int item_count, vector psize, float item_aspect);
+
 void HUD_Reset ();
 void HUD_Main ();
 
+int race_CheckName(string net_name);
+string MakeRaceString(int cp, float mytime, float theirtime, float lapdelta, string theirname);
+
 int vote_yescount;
 int vote_nocount;
 int vote_needed;
diff --git a/qcsrc/client/hud/panel.qh b/qcsrc/client/hud/panel.qh
new file mode 100644 (file)
index 0000000..66ca077
--- /dev/null
@@ -0,0 +1,5 @@
+#pragma once
+
+#include "hud.qh"
+#include "hud_config.qh"
+#include <client/mutators/events.qh>
index 12212ff..0ccdbf2 100644 (file)
@@ -1,4 +1,7 @@
 #include "ammo.qh"
+
+#include <common/t_items.qh>
+
 // Ammo (#1)
 
 void DrawNadeProgressBar(vector myPos, vector mySize, float progress, vector color)
index 6f70f09..6db88c6 100644 (file)
@@ -1 +1,2 @@
 #pragma once
+#include "../panel.qh"
index bf5a82e..cde2b50 100644 (file)
@@ -1,4 +1,7 @@
 #include "centerprint.qh"
+
+#include <client/scoreboard.qh>
+
 // CenterPrint (#16)
 
 const int CENTERPRINT_MAX_MSGS = 10;
index 6f70f09..6db88c6 100644 (file)
@@ -1 +1,2 @@
 #pragma once
+#include "../panel.qh"
index ae901e0..3b03979 100644 (file)
@@ -1,4 +1,7 @@
 #include "healtharmor.qh"
+
+#include <common/deathtypes/all.qh>
+
 /** Health/armor (#3) */
 void HUD_HealthArmor()
 {
index 8ddfe89..8199bd8 100644 (file)
@@ -1,4 +1,8 @@
 #include "infomessages.qh"
+
+#include <common/ent_cs.qh>
+#include <common/mapinfo.qh>
+
 // Info messages panel (#14)
 
 #define drawInfoMessage(s) MACRO_BEGIN {                                                                                                                                                       \
index e6808d9..727272e 100644 (file)
@@ -1,4 +1,9 @@
 #include "modicons.qh"
+
+#include <common/mapinfo.qh>
+#include <common/ent_cs.qh>
+#include <server/mutators/mutator/gamemode_ctf.qh> // TODO: remove
+
 // Mod icons panel (#10)
 
 bool mod_active; // is there any active mod icon?
index 9b1db7b..7a9f664 100644 (file)
@@ -1,4 +1,8 @@
 #include "physics.qh"
+
+#include <common/mapinfo.qh>
+#include <lib/csqcmodel/cl_player.qh>
+
 // Physics panel (#15)
 
 vector acc_prevspeed;
index 85ee99c..b4118e8 100644 (file)
@@ -1,4 +1,7 @@
 #include "powerups.qh"
+
+#include <common/items/all.qc>
+
 // Powerups (#2)
 
 // Powerup item fields (reusing existing fields)
index 8bac161..7a9f90f 100644 (file)
@@ -1,4 +1,7 @@
 #include "racetimer.qh"
+
+#include <common/mapinfo.qh>
+
 /** Race timer (#8) */
 void HUD_RaceTimer ()
 {
index 35fab19..a70e041 100644 (file)
@@ -1,4 +1,11 @@
 #include "radar.qh"
+
+#include <common/ent_cs.qh>
+#include <common/mapinfo.qh>
+#include <client/mapvoting.qh>
+#include <client/teamradar.qh>
+#include <common/mutators/mutator/waypoints/all.qh>
+
 // Radar (#6)
 
 float HUD_Radar_Clickable()
index 6f70f09..6db88c6 100644 (file)
@@ -1 +1,2 @@
 #pragma once
+#include "../panel.qh"
index ce199ee..12114b4 100644 (file)
@@ -1,4 +1,9 @@
 #include "score.qh"
+
+#include <client/scoreboard.qh>
+#include <common/ent_cs.qh>
+#include <common/mapinfo.qh>
+
 // Score (#7)
 
 void HUD_UpdatePlayerTeams();
index 6f70f09..6db88c6 100644 (file)
@@ -1 +1,2 @@
 #pragma once
+#include "../panel.qh"
index 6f70f09..6db88c6 100644 (file)
@@ -1 +1,2 @@
 #pragma once
+#include "../panel.qh"
index 8e3605f..502b237 100644 (file)
@@ -1,4 +1,7 @@
 #include "vote.qh"
+
+#include <common/mapinfo.qh>
+
 /** Vote window (#9) */
 void HUD_Vote()
 {
index 6f70f09..6db88c6 100644 (file)
@@ -1 +1,2 @@
 #pragma once
+#include "../panel.qh"
index 63416f2..0208fc1 100644 (file)
@@ -1,5 +1,6 @@
 #include "quickmenu.qh"
 
+#include <common/ent_cs.qh>
 #include "hud/all.qh"
 #include "mapvoting.qh"
 
index 3204af9..a99db03 100644 (file)
@@ -3,11 +3,12 @@
 #include "quickmenu.qh"
 #include "hud/all.qh"
 
-#include "../common/constants.qh"
-#include "../common/mapinfo.qh"
-#include "../common/minigames/cl_minigames.qh"
-#include "../common/stats.qh"
-#include "../common/teams.qh"
+#include <common/ent_cs.qh>
+#include <common/constants.qh>
+#include <common/mapinfo.qh>
+#include <common/minigames/cl_minigames.qh>
+#include <common/stats.qh>
+#include <common/teams.qh>
 
 float scoreboard_alpha_bg;
 float scoreboard_alpha_fg;
index fc36c47..bfbba30 100644 (file)
@@ -2,11 +2,12 @@
 
 #include "hud/all.qh"
 
-#include "../common/constants.qh"
-#include "../common/mapinfo.qh"
-#include "../common/teams.qh"
+#include <common/ent_cs.qh>
+#include <common/constants.qh>
+#include <common/mapinfo.qh>
+#include <common/teams.qh>
 
-#include "../lib/csqcmodel/cl_model.qh"
+#include <lib/csqcmodel/cl_model.qh>
 
 // this.isactive = player is in range and coordinates/status (health and armor) are up to date
 // this.origin = player origin
index 611116c..64a8642 100644 (file)
@@ -9,26 +9,30 @@
 
 #include "mutators/events.qh"
 
-#include "../common/anim.qh"
-#include "../common/constants.qh"
-#include "../common/debug.qh"
-#include "../common/mapinfo.qh"
+#include <common/animdecide.qh>
+#include <common/ent_cs.qh>
+#include <common/anim.qh>
+#include <common/constants.qh>
+#include <common/debug.qh>
+#include <common/mapinfo.qh>
 #include <common/gamemodes/all.qh>
-#include "../common/physics/player.qh"
-#include "../common/stats.qh"
-#include "../common/triggers/target/music.qh"
-#include "../common/teams.qh"
+#include <common/physics/player.qh>
+#include <common/stats.qh>
+#include <common/triggers/target/music.qh>
+#include <common/teams.qh>
 
 #include <common/vehicles/all.qh>
 #include <common/weapons/all.qh>
-#include "../common/viewloc.qh"
-#include "../common/minigames/cl_minigames.qh"
-#include "../common/minigames/cl_minigames_hud.qh"
+#include <common/viewloc.qh>
+#include <common/minigames/cl_minigames.qh>
+#include <common/minigames/cl_minigames_hud.qh>
 
-#include "../lib/csqcmodel/cl_player.qh"
+#include <lib/csqcmodel/cl_player.qh>
+#include <lib/csqcmodel/cl_model.qh>
+#include "csqcmodel_hooks.qh"
 
-#include "../lib/warpzone/client.qh"
-#include "../lib/warpzone/common.qh"
+#include <lib/warpzone/client.qh>
+#include <lib/warpzone/common.qh>
 
 #define EFMASK_CHEAP (EF_ADDITIVE | EF_DOUBLESIDED | EF_FULLBRIGHT | EF_NODEPTHTEST | EF_NODRAW | EF_NOSHADOW | EF_SELECTABLE | EF_TELEPORT_BIT)
 
@@ -149,7 +153,7 @@ void viewmodel_animate(entity this)
                        vel = view.velocity;
                else
                {
-                       vector forward, right = '0 0 0', up = '0 0 0';
+                       vector forward = '0 0 0', right = '0 0 0', up = '0 0 0';
                        MAKEVECTORS(makevectors, view_angles, forward, right, up);
                        vel.x = view.velocity * forward;
                        vel.y = view.velocity * right * -1;
@@ -175,7 +179,7 @@ void viewmodel_animate(entity this)
                if(autocvar_cl_followmodel_velocity_absolute)
                {
                        vector fixed_gunorg;
-                       vector forward, right = '0 0 0', up = '0 0 0';
+                       vector forward = '0 0 0', right = '0 0 0', up = '0 0 0';
                        MAKEVECTORS(makevectors, view_angles, forward, right, up);
                        fixed_gunorg.x = gunorg * forward;
                        fixed_gunorg.y = gunorg * right * -1;
index 113019a..07703ee 100644 (file)
@@ -1,5 +1,9 @@
 #pragma once
 
+#ifdef CSQC
+.entity tag_entity;
+#endif
+
 #ifndef MENUQC
 .bool debug;
 .int sv_entnum;
index 50fd2ba..dfe918f 100644 (file)
@@ -1,6 +1,14 @@
 #include "cl_minigames_hud.qh"
+
+#include <common/ent_cs.qh>
+
 #include "minigames.qh"
 
+.vector colormod;
+
+#include <client/hud/hud_config.qh>
+#include <client/mapvoting.qh>
+
 // whether the mouse is over the given panel
 bool HUD_mouse_over(entity somepanel)
 {
index eb5b72e..78d84e2 100644 (file)
@@ -1,7 +1,6 @@
 #include "gamemode_ctf.qh"
-#ifndef GAMEMODE_CTF_H
-#define GAMEMODE_CTF_H
 
+#ifdef IMPLEMENTATION
 #ifndef CSQC
 void ctf_Initialize();
 
@@ -35,179 +34,6 @@ REGISTER_MUTATOR(ctf, false)
 }
 #endif
 
-#ifdef SVQC
-// used in cheats.qc
-void ctf_RespawnFlag(entity flag);
-
-// score rule declarations
-const int ST_CTF_CAPS = 1;
-const int SP_CTF_CAPS = 4;
-const int SP_CTF_CAPTIME = 5;
-const int SP_CTF_PICKUPS = 6;
-const int SP_CTF_DROPS = 7;
-const int SP_CTF_FCKILLS = 8;
-const int SP_CTF_RETURNS = 9;
-
-CLASS(Flag, Pickup)
-    ATTRIB(Flag, m_mins, vector, PL_MIN_CONST + '0 0 -13')
-    ATTRIB(Flag, m_maxs, vector, PL_MAX_CONST + '0 0 -13')
-ENDCLASS(Flag)
-Flag CTF_FLAG; STATIC_INIT(Flag) { CTF_FLAG = NEW(Flag); }
-void ctf_FlagTouch() { SELFPARAM(); ITEM_HANDLE(Pickup, CTF_FLAG, this, other); }
-
-// flag constants // for most of these, there is just one question to be asked: WHYYYYY?
-
-const float FLAG_SCALE = 0.6;
-
-const float FLAG_THINKRATE = 0.2;
-const float FLAG_TOUCHRATE = 0.5;
-const float WPFE_THINKRATE = 0.5;
-
-const vector FLAG_DROP_OFFSET = ('0 0 32');
-const vector FLAG_CARRY_OFFSET = ('-16 0 8');
-#define FLAG_SPAWN_OFFSET ('0 0 1' * (PL_MAX_CONST.z - 13))
-const vector FLAG_WAYPOINT_OFFSET = ('0 0 64');
-const vector FLAG_FLOAT_OFFSET = ('0 0 32');
-const vector FLAG_PASS_ARC_OFFSET = ('0 0 -10');
-
-const vector VEHICLE_FLAG_OFFSET = ('0 0 96');
-const float VEHICLE_FLAG_SCALE = 1.0;
-
-// waypoint colors
-#define WPCOLOR_ENEMYFC(t) ((t) ? colormapPaletteColor(t - 1, false) * 0.75 : '1 1 1')
-#define WPCOLOR_FLAGCARRIER(t) (WP_FlagCarrier.m_color)
-#define WPCOLOR_DROPPEDFLAG(t) ((t) ? ('0.25 0.25 0.25' + colormapPaletteColor(t - 1, false)) * 0.5 : '1 1 1')
-
-// sounds
-#define snd_flag_taken noise
-#define snd_flag_returned noise1
-#define snd_flag_capture noise2
-#define snd_flag_respawn noise3
-.string snd_flag_dropped;
-.string snd_flag_touch;
-.string snd_flag_pass;
-
-// effects
-.string toucheffect;
-.string passeffect;
-.string capeffect;
-
-// list of flags on the map
-entity ctf_worldflaglist;
-.entity ctf_worldflagnext;
-.entity ctf_staleflagnext;
-
-// waypoint sprites
-.entity bot_basewaypoint; // flag waypointsprite
-.entity wps_helpme;
-.entity wps_flagbase;
-.entity wps_flagcarrier;
-.entity wps_flagdropped;
-.entity wps_enemyflagcarrier;
-.float wps_helpme_time;
-bool wpforenemy_announced;
-float wpforenemy_nextthink;
-
-// statuses
-const int FLAG_BASE = 1;
-const int FLAG_DROPPED = 2;
-const int FLAG_CARRY = 3;
-const int FLAG_PASSING = 4;
-
-const int DROP_NORMAL = 1;
-const int DROP_THROW = 2;
-const int DROP_PASS = 3;
-const int DROP_RESET = 4;
-
-const int PICKUP_BASE = 1;
-const int PICKUP_DROPPED = 2;
-
-const int CAPTURE_NORMAL = 1;
-const int CAPTURE_DROPPED = 2;
-
-const int RETURN_TIMEOUT = 1;
-const int RETURN_DROPPED = 2;
-const int RETURN_DAMAGE = 3;
-const int RETURN_SPEEDRUN = 4;
-const int RETURN_NEEDKILL = 5;
-
-void ctf_Handle_Throw(entity player, entity receiver, float droptype);
-
-// flag properties
-#define ctf_spawnorigin dropped_origin
-bool ctf_stalemate; // indicates that a stalemate is active
-float ctf_captimerecord; // record time for capturing the flag
-.float ctf_pickuptime;
-.float ctf_droptime;
-.int ctf_status; // status of the flag (FLAG_BASE, FLAG_DROPPED, FLAG_CARRY declared globally)
-.entity ctf_dropper; // don't allow spam of dropping the flag
-.int max_flag_health;
-.float next_take_time;
-.bool ctf_flagdamaged;
-int ctf_teams;
-
-// passing/throwing properties
-.float pass_distance;
-.entity pass_sender;
-.entity pass_target;
-.float throw_antispam;
-.float throw_prevtime;
-.int throw_count;
-
-// CaptureShield: If the player is too bad to be allowed to capture, shield them from taking the flag.
-.bool ctf_captureshielded; // set to 1 if the player is too bad to be allowed to capture
-float ctf_captureshield_min_negscore; // punish at -20 points
-float ctf_captureshield_max_ratio; // punish at most 30% of each team
-float ctf_captureshield_force; // push force of the shield
-
-// 1 flag ctf
-bool ctf_oneflag; // indicates whether or not a neutral flag has been found
-
-// bot player logic
-const int HAVOCBOT_CTF_ROLE_NONE = 0;
-const int HAVOCBOT_CTF_ROLE_DEFENSE = 2;
-const int HAVOCBOT_CTF_ROLE_MIDDLE = 4;
-const int HAVOCBOT_CTF_ROLE_OFFENSE = 8;
-const int HAVOCBOT_CTF_ROLE_CARRIER = 16;
-const int HAVOCBOT_CTF_ROLE_RETRIEVER = 32;
-const int HAVOCBOT_CTF_ROLE_ESCORT = 64;
-
-.bool havocbot_cantfindflag;
-
-vector havocbot_ctf_middlepoint;
-float havocbot_ctf_middlepoint_radius;
-
-void havocbot_role_ctf_setrole(entity bot, int role);
-
-// team checking
-#define CTF_SAMETEAM(a,b) ((autocvar_g_ctf_reverse || (ctf_oneflag && autocvar_g_ctf_oneflag_reverse)) ? DIFF_TEAM(a,b) : SAME_TEAM(a,b))
-#define CTF_DIFFTEAM(a,b) ((autocvar_g_ctf_reverse || (ctf_oneflag && autocvar_g_ctf_oneflag_reverse)) ? SAME_TEAM(a,b) : DIFF_TEAM(a,b))
-
-// networked flag statuses
-.int ctf_flagstatus = _STAT(CTF_FLAGSTATUS);
-#endif
-
-const int CTF_RED_FLAG_TAKEN                   = 1;
-const int CTF_RED_FLAG_LOST                            = 2;
-const int CTF_RED_FLAG_CARRYING                        = 3;
-const int CTF_BLUE_FLAG_TAKEN                  = 4;
-const int CTF_BLUE_FLAG_LOST                   = 8;
-const int CTF_BLUE_FLAG_CARRYING               = 12;
-const int CTF_YELLOW_FLAG_TAKEN                        = 16;
-const int CTF_YELLOW_FLAG_LOST                 = 32;
-const int CTF_YELLOW_FLAG_CARRYING             = 48;
-const int CTF_PINK_FLAG_TAKEN                  = 64;
-const int CTF_PINK_FLAG_LOST                   = 128;
-const int CTF_PINK_FLAG_CARRYING               = 192;
-const int CTF_NEUTRAL_FLAG_TAKEN               = 256;
-const int CTF_NEUTRAL_FLAG_LOST                        = 512;
-const int CTF_NEUTRAL_FLAG_CARRYING            = 768;
-const int CTF_FLAG_NEUTRAL                             = 2048;
-const int CTF_SHIELDED                                 = 4096;
-#endif
-
-#ifdef IMPLEMENTATION
-
 #ifdef SVQC
 #include <common/vehicles/all.qh>
 #include <server/teamplay.qh>
index 6f70f09..c323cb5 100644 (file)
@@ -1 +1,171 @@
 #pragma once
+
+#ifdef SVQC
+// used in cheats.qc
+void ctf_RespawnFlag(entity flag);
+
+// score rule declarations
+const int ST_CTF_CAPS = 1;
+const int SP_CTF_CAPS = 4;
+const int SP_CTF_CAPTIME = 5;
+const int SP_CTF_PICKUPS = 6;
+const int SP_CTF_DROPS = 7;
+const int SP_CTF_FCKILLS = 8;
+const int SP_CTF_RETURNS = 9;
+
+CLASS(Flag, Pickup)
+    ATTRIB(Flag, m_mins, vector, PL_MIN_CONST + '0 0 -13')
+    ATTRIB(Flag, m_maxs, vector, PL_MAX_CONST + '0 0 -13')
+ENDCLASS(Flag)
+Flag CTF_FLAG; STATIC_INIT(Flag) { CTF_FLAG = NEW(Flag); }
+void ctf_FlagTouch() { SELFPARAM(); ITEM_HANDLE(Pickup, CTF_FLAG, this, other); }
+
+// flag constants // for most of these, there is just one question to be asked: WHYYYYY?
+
+const float FLAG_SCALE = 0.6;
+
+const float FLAG_THINKRATE = 0.2;
+const float FLAG_TOUCHRATE = 0.5;
+const float WPFE_THINKRATE = 0.5;
+
+const vector FLAG_DROP_OFFSET = ('0 0 32');
+const vector FLAG_CARRY_OFFSET = ('-16 0 8');
+#define FLAG_SPAWN_OFFSET ('0 0 1' * (PL_MAX_CONST.z - 13))
+const vector FLAG_WAYPOINT_OFFSET = ('0 0 64');
+const vector FLAG_FLOAT_OFFSET = ('0 0 32');
+const vector FLAG_PASS_ARC_OFFSET = ('0 0 -10');
+
+const vector VEHICLE_FLAG_OFFSET = ('0 0 96');
+const float VEHICLE_FLAG_SCALE = 1.0;
+
+// waypoint colors
+#define WPCOLOR_ENEMYFC(t) ((t) ? colormapPaletteColor(t - 1, false) * 0.75 : '1 1 1')
+#define WPCOLOR_FLAGCARRIER(t) (WP_FlagCarrier.m_color)
+#define WPCOLOR_DROPPEDFLAG(t) ((t) ? ('0.25 0.25 0.25' + colormapPaletteColor(t - 1, false)) * 0.5 : '1 1 1')
+
+// sounds
+#define snd_flag_taken noise
+#define snd_flag_returned noise1
+#define snd_flag_capture noise2
+#define snd_flag_respawn noise3
+.string snd_flag_dropped;
+.string snd_flag_touch;
+.string snd_flag_pass;
+
+// effects
+.string toucheffect;
+.string passeffect;
+.string capeffect;
+
+// list of flags on the map
+entity ctf_worldflaglist;
+.entity ctf_worldflagnext;
+.entity ctf_staleflagnext;
+
+// waypoint sprites
+.entity bot_basewaypoint; // flag waypointsprite
+.entity wps_helpme;
+.entity wps_flagbase;
+.entity wps_flagcarrier;
+.entity wps_flagdropped;
+.entity wps_enemyflagcarrier;
+.float wps_helpme_time;
+bool wpforenemy_announced;
+float wpforenemy_nextthink;
+
+// statuses
+const int FLAG_BASE = 1;
+const int FLAG_DROPPED = 2;
+const int FLAG_CARRY = 3;
+const int FLAG_PASSING = 4;
+
+const int DROP_NORMAL = 1;
+const int DROP_THROW = 2;
+const int DROP_PASS = 3;
+const int DROP_RESET = 4;
+
+const int PICKUP_BASE = 1;
+const int PICKUP_DROPPED = 2;
+
+const int CAPTURE_NORMAL = 1;
+const int CAPTURE_DROPPED = 2;
+
+const int RETURN_TIMEOUT = 1;
+const int RETURN_DROPPED = 2;
+const int RETURN_DAMAGE = 3;
+const int RETURN_SPEEDRUN = 4;
+const int RETURN_NEEDKILL = 5;
+
+void ctf_Handle_Throw(entity player, entity receiver, float droptype);
+
+// flag properties
+#define ctf_spawnorigin dropped_origin
+bool ctf_stalemate; // indicates that a stalemate is active
+float ctf_captimerecord; // record time for capturing the flag
+.float ctf_pickuptime;
+.float ctf_droptime;
+.int ctf_status; // status of the flag (FLAG_BASE, FLAG_DROPPED, FLAG_CARRY declared globally)
+.entity ctf_dropper; // don't allow spam of dropping the flag
+.int max_flag_health;
+.float next_take_time;
+.bool ctf_flagdamaged;
+int ctf_teams;
+
+// passing/throwing properties
+.float pass_distance;
+.entity pass_sender;
+.entity pass_target;
+.float throw_antispam;
+.float throw_prevtime;
+.int throw_count;
+
+// CaptureShield: If the player is too bad to be allowed to capture, shield them from taking the flag.
+.bool ctf_captureshielded; // set to 1 if the player is too bad to be allowed to capture
+float ctf_captureshield_min_negscore; // punish at -20 points
+float ctf_captureshield_max_ratio; // punish at most 30% of each team
+float ctf_captureshield_force; // push force of the shield
+
+// 1 flag ctf
+bool ctf_oneflag; // indicates whether or not a neutral flag has been found
+
+// bot player logic
+const int HAVOCBOT_CTF_ROLE_NONE = 0;
+const int HAVOCBOT_CTF_ROLE_DEFENSE = 2;
+const int HAVOCBOT_CTF_ROLE_MIDDLE = 4;
+const int HAVOCBOT_CTF_ROLE_OFFENSE = 8;
+const int HAVOCBOT_CTF_ROLE_CARRIER = 16;
+const int HAVOCBOT_CTF_ROLE_RETRIEVER = 32;
+const int HAVOCBOT_CTF_ROLE_ESCORT = 64;
+
+.bool havocbot_cantfindflag;
+
+vector havocbot_ctf_middlepoint;
+float havocbot_ctf_middlepoint_radius;
+
+void havocbot_role_ctf_setrole(entity bot, int role);
+
+// team checking
+#define CTF_SAMETEAM(a,b) ((autocvar_g_ctf_reverse || (ctf_oneflag && autocvar_g_ctf_oneflag_reverse)) ? DIFF_TEAM(a,b) : SAME_TEAM(a,b))
+#define CTF_DIFFTEAM(a,b) ((autocvar_g_ctf_reverse || (ctf_oneflag && autocvar_g_ctf_oneflag_reverse)) ? SAME_TEAM(a,b) : DIFF_TEAM(a,b))
+
+// networked flag statuses
+.int ctf_flagstatus = _STAT(CTF_FLAGSTATUS);
+#endif
+
+const int CTF_RED_FLAG_TAKEN                   = 1;
+const int CTF_RED_FLAG_LOST                            = 2;
+const int CTF_RED_FLAG_CARRYING                        = 3;
+const int CTF_BLUE_FLAG_TAKEN                  = 4;
+const int CTF_BLUE_FLAG_LOST                   = 8;
+const int CTF_BLUE_FLAG_CARRYING               = 12;
+const int CTF_YELLOW_FLAG_TAKEN                        = 16;
+const int CTF_YELLOW_FLAG_LOST                 = 32;
+const int CTF_YELLOW_FLAG_CARRYING             = 48;
+const int CTF_PINK_FLAG_TAKEN                  = 64;
+const int CTF_PINK_FLAG_LOST                   = 128;
+const int CTF_PINK_FLAG_CARRYING               = 192;
+const int CTF_NEUTRAL_FLAG_TAKEN               = 256;
+const int CTF_NEUTRAL_FLAG_LOST                        = 512;
+const int CTF_NEUTRAL_FLAG_CARRYING            = 768;
+const int CTF_FLAG_NEUTRAL                             = 2048;
+const int CTF_SHIELDED                                 = 4096;
index 88bba83..8f9491d 100755 (executable)
@@ -9,13 +9,13 @@ QCC=../../../../gmqcc/gmqcc
 
 declare -a QCCDEFS=(
     -DNDEBUG=1
+    -DWATERMARK="\"$(git describe --tags --dirty='*')\""
 )
 QCCDEFS="${QCCDEFS[@]}"
 
 declare -a QCCFLAGS=(
     -std=gmqcc
     -Wall -Werror
-    -fftepp -fftepp-predefs -Wcpp
     -futf8
     -freturn-assignments
     -frelaxed-switch