Xonotic QuakeC
The free, fast arena FPS with crisp movement and a wide array of weapons
freezetag.qh
Go to the documentation of this file.
1#pragma once
2
3#include <common/mapinfo.qh>
4#if defined(CSQC)
6#endif
7
8#ifdef CSQC
9void HUD_Mod_FreezeTag(vector myPos, vector mySize);
10void HUD_Mod_FreezeTag_Export(int fh);
11#endif
14 {
15 this.gametype_init(this, _("Freeze Tag"),"ft","g_freezetag",GAMETYPE_FLAG_TEAMPLAY | GAMETYPE_FLAG_USEPOINTS,"","timelimit=20 pointlimit=10 teams=2 leadlimit=6",_("Kill enemies to freeze them, stand next to frozen teammates to revive them; freeze all enemies to win"));
16 }
17 METHOD(FreezeTag, m_parse_mapinfo, bool(string k, string v))
18 {
19 if (!k)
20 {
21 cvar_set("g_freezetag_teams", cvar_defstring("g_freezetag_teams"));
22 return true;
23 }
24 switch (k)
25 {
26 case "teams":
27 cvar_set("g_freezetag_teams", v);
28 return true;
29 }
30 return false;
31 }
32 METHOD(FreezeTag, m_isAlwaysSupported, bool(Gametype this, int spawnpoints, float diameter))
33 {
34 if(spawnpoints >= 8 && diameter > 3250)
35 return true;
36 return false;
37 }
38 METHOD(FreezeTag, m_setTeams, void(string sa))
39 {
40 cvar_set("g_freezetag_teams", sa);
41 }
42 METHOD(FreezeTag, m_configuremenu, void(Gametype this, entity menu, void(entity me, string pLabel, float pMin, float pMax, float pStep, string pCvar, string tCvar, string pTooltip) returns))
43 {
44 TC(Gametype, this);
45 returns(menu, _("Round limit:"), 5, 100, 5, "fraglimit_override", "g_freezetag_teams_override", _("The amount of rounds won needed before the match will end"));
46 }
47#ifdef CSQC
48 ATTRIB(FreezeTag, m_modicons, void(vector pos, vector mySize), HUD_Mod_FreezeTag);
49 ATTRIB(FreezeTag, m_modicons_export, void(int fh), HUD_Mod_FreezeTag_Export);
50#endif
51 ATTRIB(FreezeTag, m_legacydefaults, string, "10 20 0");
54#define g_freezetag IS_GAMETYPE(FREEZETAG)
var entity(vector mins, vector maxs,.entity tofield) findbox_tofield_OrFallback
virtual void m_parse_mapinfo()
Definition freezetag.qh:17
virtual void m_configuremenu()
Definition freezetag.qh:42
virtual void m_isAlwaysSupported()
Definition freezetag.qh:32
string m_legacydefaults
Definition freezetag.qh:51
virtual void m_setTeams()
Definition freezetag.qh:38
virtual void gametype_init()
Definition mapinfo.qh:117
void HUD_Mod_FreezeTag_Export(int fh)
void HUD_Mod_FreezeTag(vector myPos, vector mySize)
#define TC(T, sym)
Definition _all.inc:82
const int GAMETYPE_FLAG_USEPOINTS
Definition mapinfo.qh:20
#define REGISTER_GAMETYPE(NAME, inst)
Definition mapinfo.qh:149
const int GAMETYPE_FLAG_TEAMPLAY
Definition mapinfo.qh:19
void cvar_set(string name, string value)
const string cvar_defstring(string name)
#define NEW(cname,...)
Definition oo.qh:117
#define INIT(cname)
Definition oo.qh:210
#define CLASS(...)
Definition oo.qh:145
#define ENDCLASS(cname)
Definition oo.qh:281
#define METHOD(cname, name, prototype)
Definition oo.qh:269
#define ATTRIB(...)
Definition oo.qh:148
vector
Definition self.qh:92