|
|
1.1 root 1:
2: #define CTF_VERSION 1.09b
3: #define CTF_VSTRING2(x) #x
4: #define CTF_VSTRING(x) CTF_VSTRING2(x)
5: #define CTF_STRING_VERSION CTF_VSTRING(CTF_VERSION)
6:
7: #define STAT_CTF_TEAM1_PIC 17
8: #define STAT_CTF_TEAM1_CAPS 18
9: #define STAT_CTF_TEAM2_PIC 19
10: #define STAT_CTF_TEAM2_CAPS 20
11: #define STAT_CTF_FLAG_PIC 21
12: #define STAT_CTF_JOINED_TEAM1_PIC 22
13: #define STAT_CTF_JOINED_TEAM2_PIC 23
14: #define STAT_CTF_TEAM1_HEADER 24
15: #define STAT_CTF_TEAM2_HEADER 25
16: #define STAT_CTF_TECH 26
17: #define STAT_CTF_ID_VIEW 27
18: #define STAT_CTF_MATCH 28
19:
20: #define CONFIG_CTF_MATCH (CS_MAXCLIENTS-1)
21:
22: typedef enum {
23: CTF_NOTEAM,
24: CTF_TEAM1,
25: CTF_TEAM2
26: } ctfteam_t;
27:
28: typedef enum {
29: CTF_GRAPPLE_STATE_FLY,
30: CTF_GRAPPLE_STATE_PULL,
31: CTF_GRAPPLE_STATE_HANG
32: } ctfgrapplestate_t;
33:
34: typedef struct ghost_s {
35: char netname[16];
36: int number;
37:
38: // stats
39: int deaths;
40: int kills;
41: int caps;
42: int basedef;
43: int carrierdef;
44:
45: int code; // ghost code
46: int team; // team
47: int score; // frags at time of disconnect
48: edict_t *ent;
49: } ghost_t;
50:
51: extern cvar_t *ctf;
52:
53: #define CTF_TEAM1_SKIN "ctf_r"
54: #define CTF_TEAM2_SKIN "ctf_b"
55:
56: #define DF_CTF_FORCEJOIN 131072
57: #define DF_ARMOR_PROTECT 262144
58: #define DF_CTF_NO_TECH 524288
59:
60: #define CTF_CAPTURE_BONUS 15 // what you get for capture
61: #define CTF_TEAM_BONUS 10 // what your team gets for capture
62: #define CTF_RECOVERY_BONUS 1 // what you get for recovery
63: #define CTF_FLAG_BONUS 0 // what you get for picking up enemy flag
64: #define CTF_FRAG_CARRIER_BONUS 2 // what you get for fragging enemy flag carrier
65: #define CTF_FLAG_RETURN_TIME 40 // seconds until auto return
66:
67: #define CTF_CARRIER_DANGER_PROTECT_BONUS 2 // bonus for fraggin someone who has recently hurt your flag carrier
68: #define CTF_CARRIER_PROTECT_BONUS 1 // bonus for fraggin someone while either you or your target are near your flag carrier
69: #define CTF_FLAG_DEFENSE_BONUS 1 // bonus for fraggin someone while either you or your target are near your flag
70: #define CTF_RETURN_FLAG_ASSIST_BONUS 1 // awarded for returning a flag that causes a capture to happen almost immediately
71: #define CTF_FRAG_CARRIER_ASSIST_BONUS 2 // award for fragging a flag carrier if a capture happens almost immediately
72:
73: #define CTF_TARGET_PROTECT_RADIUS 400 // the radius around an object being defended where a target will be worth extra frags
74: #define CTF_ATTACKER_PROTECT_RADIUS 400 // the radius around an object being defended where an attacker will get extra frags when making kills
75:
76: #define CTF_CARRIER_DANGER_PROTECT_TIMEOUT 8
77: #define CTF_FRAG_CARRIER_ASSIST_TIMEOUT 10
78: #define CTF_RETURN_FLAG_ASSIST_TIMEOUT 10
79:
80: #define CTF_AUTO_FLAG_RETURN_TIMEOUT 30 // number of seconds before dropped flag auto-returns
81:
82: #define CTF_TECH_TIMEOUT 60 // seconds before techs spawn again
83:
84: #define CTF_GRAPPLE_SPEED 650 // speed of grapple in flight
85: #define CTF_GRAPPLE_PULL_SPEED 650 // speed player is pulled at
86:
87: void CTFInit(void);
88: void CTFSpawn(void);
89:
90: void SP_info_player_team1(edict_t *self);
91: void SP_info_player_team2(edict_t *self);
92:
93: char *CTFTeamName(int team);
94: char *CTFOtherTeamName(int team);
95: void CTFAssignSkin(edict_t *ent, char *s);
96: void CTFAssignTeam(gclient_t *who);
97: edict_t *SelectCTFSpawnPoint (edict_t *ent);
98: qboolean CTFPickup_Flag(edict_t *ent, edict_t *other);
99: qboolean CTFDrop_Flag(edict_t *ent, gitem_t *item);
100: void CTFEffects(edict_t *player);
101: void CTFCalcScores(void);
102: void SetCTFStats(edict_t *ent);
103: void CTFDeadDropFlag(edict_t *self);
104: void CTFScoreboardMessage (edict_t *ent, edict_t *killer);
105: void CTFTeam_f (edict_t *ent);
106: void CTFID_f (edict_t *ent);
107: void CTFSay_Team(edict_t *who, char *msg);
108: void CTFFlagSetup (edict_t *ent);
109: void CTFResetFlag(int ctf_team);
110: void CTFFragBonuses(edict_t *targ, edict_t *inflictor, edict_t *attacker);
111: void CTFCheckHurtCarrier(edict_t *targ, edict_t *attacker);
112:
113: // GRAPPLE
114: void CTFWeapon_Grapple (edict_t *ent);
115: void CTFPlayerResetGrapple(edict_t *ent);
116: void CTFGrapplePull(edict_t *self);
117: void CTFResetGrapple(edict_t *self);
118:
119: //TECH
120: gitem_t *CTFWhat_Tech(edict_t *ent);
121: qboolean CTFPickup_Tech (edict_t *ent, edict_t *other);
122: void CTFDrop_Tech(edict_t *ent, gitem_t *item);
123: void CTFDeadDropTech(edict_t *ent);
124: void CTFSetupTechSpawn(void);
125: int CTFApplyResistance(edict_t *ent, int dmg);
126: int CTFApplyStrength(edict_t *ent, int dmg);
127: qboolean CTFApplyStrengthSound(edict_t *ent);
128: qboolean CTFApplyHaste(edict_t *ent);
129: void CTFApplyHasteSound(edict_t *ent);
130: void CTFApplyRegeneration(edict_t *ent);
131: qboolean CTFHasRegeneration(edict_t *ent);
132: void CTFRespawnTech(edict_t *ent);
133: void CTFResetTech(void);
134:
135: void CTFOpenJoinMenu(edict_t *ent);
136: qboolean CTFStartClient(edict_t *ent);
137: void CTFVoteYes(edict_t *ent);
138: void CTFVoteNo(edict_t *ent);
139: void CTFReady(edict_t *ent);
140: void CTFNotReady(edict_t *ent);
141: qboolean CTFNextMap(void);
142: qboolean CTFMatchSetup(void);
143: qboolean CTFMatchOn(void);
144: void CTFGhost(edict_t *ent);
145: void CTFAdmin(edict_t *ent);
146: qboolean CTFInMatch(void);
147: void CTFStats(edict_t *ent);
148: void CTFWarp(edict_t *ent);
149: void CTFBoot(edict_t *ent);
150: void CTFPlayerList(edict_t *ent);
151:
152: qboolean CTFCheckRules(void);
153:
154: void SP_misc_ctf_banner (edict_t *ent);
155: void SP_misc_ctf_small_banner (edict_t *ent);
156:
157: extern char *ctf_statusbar;
158:
159: void UpdateChaseCam(edict_t *ent);
160: void ChaseNext(edict_t *ent);
161: void ChasePrev(edict_t *ent);
162:
163: void CTFObserver(edict_t *ent);
164:
165: void SP_trigger_teleport (edict_t *ent);
166: void SP_info_teleport_destination (edict_t *ent);
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.