// these are needed since mutators are compiled last // used in cheats.qc void ctf_RespawnFlag(entity flag) // used in portals.qc void ctf_Handle_Drop(entity player, float droptype); // used in g_damage.qc float ctf_ReadScore(string parameter); // SOON WON'T BE NEEDED. // FIXCTF // used in t_quake3.qc void spawnfunc_info_player_team1(); void spawnfunc_info_player_team2(); void spawnfunc_info_player_team3(); void spawnfunc_info_player_team4(); void spawnfunc_item_flag_team1(); void spawnfunc_item_flag_team2(); void spawnfunc_ctf_team(); // flag constants // for most of these, there is just one question to be asked: WHYYYYY? #define FLAG_MIN (PL_MIN + '0 0 -13') #define FLAG_MAX (PL_MAX + '0 0 -13') #define FLAG_SCALE 0.6 #define FLAG_THINKRATE 0.2 #define FLAG_TOUCHRATE 0.5 #define FLAG_DROP_OFFSET ('0 0 32') #define FLAG_CARRY_OFFSET ('-15 0 7') #define FLAG_SPAWN_OFFSET ('0 0 1' * (PL_MAX_z - 13)) #define FLAG_WAYPOINT_OFFSET ('0 0 64') // sounds .string noise4; .string noise5; #define snd_flag_taken noise #define snd_flag_returned noise1 #define snd_flag_capture noise2 #define snd_flag_respawn noise3 #define snd_flag_dropped noise4 #define snd_flag_touch noise5 // list of flags on the map entity ctf_worldflaglist; .entity ctf_worldflagnext; // waypoint sprites .entity bot_basewaypoint; // flag waypointsprite .entity wps_flagbase; .entity wps_flagcarrier; .entity wps_flagdropped; // statuses #define FLAG_BASE 1 #define FLAG_CARRY 2 #define FLAG_DROPPED 3 #define FLAG_PASSING 4 #define DROPTYPE_NORMAL 1 #define DROPTYPE_THROWN 2 // flag properties #define ctf_spawnorigin dropped_origin float ctf_captimerecord; // record time for capturing the flag .float ctf_pickuptime; .float ctf_droptime; .float ctf_status; // status of the flag (FLAG_BASE, FLAG_DROPPED, FLAG_CARRY declared globally) .float max_flag_health; .entity ctf_pickupper; .entity ctf_dropper; // don't allow spam of dropping the flag // other properties .float pass_antispam; // CaptureShield: If the player is too bad to be allowed to capture, shield them from taking the flag. .float 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