X-Git-Url: http://de.git.xonotic.org/?a=blobdiff_plain;ds=sidebyside;f=qcsrc%2Fcommon%2Fmapinfo.qh;h=b7115ef552522fd2786a3749166430e9a7ae8ea8;hb=ad7be281f504399fb46e3f5dd6393f221b4154cb;hp=4107290fc0ee97d387b204e43795de8a6269eec5;hpb=ae8867e3301e6cdda736e245858932f8f36d71f1;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/common/mapinfo.qh b/qcsrc/common/mapinfo.qh index 4107290fc..b7115ef55 100644 --- a/qcsrc/common/mapinfo.qh +++ b/qcsrc/common/mapinfo.qh @@ -1,6 +1,11 @@ #ifndef MAPINFO_H #define MAPINFO_H +bool autocvar_developer_mapper; + +#define LOG_MAPWARN(...) MACRO_BEGIN { if (autocvar_developer_mapper) LOG_WARNING(__VA_ARGS__); } MACRO_END +#define LOG_MAPWARNF(...) MACRO_BEGIN { if (autocvar_developer_mapper) LOG_WARNINGF(__VA_ARGS__); } MACRO_END + #include "util.qh" CLASS(Gametype, Object) @@ -23,9 +28,15 @@ CLASS(Gametype, Object) ATTRIB(Gametype, m_mutators, string, string_null) ATTRIB(Gametype, m_parse_mapinfo, bool(string k, string v), func_null) - METHOD(Gametype, describe, string(entity this)) { return this.gametype_description; } + METHOD(Gametype, describe, string(Gametype this)) + { + TC(Gametype, this); + return this.gametype_description; + } - METHOD(Gametype, display, void(entity this, void(string name, string icon) returns)) { + METHOD(Gametype, display, void(Gametype this, void(string name, string icon) returns)) + { + TC(Gametype, this); returns(this.message, strcat("gametype_", this.mdl)); } @@ -42,13 +53,15 @@ CLASS(Gametype, Object) } ENDCLASS(Gametype) -REGISTRY(Gametypes, BIT(4)) -REGISTER_REGISTRY(RegisterGametypes) +REGISTRY(Gametypes, BITS(4)) +#define Gametypes_from(i) _Gametypes_from(i, NULL) +REGISTER_REGISTRY(Gametypes) +REGISTRY_CHECK(Gametypes) int MAPINFO_TYPE_ALL; #define REGISTER_GAMETYPE(hname, sname, g_name, NAME, gteamplay, mutators, defaults, gdescription) \ int MAPINFO_TYPE_##NAME; \ bool NAME##_mapinfo(string k, string v) { return = false; } \ - REGISTER(RegisterGametypes, MAPINFO_TYPE, Gametypes, g_name, m_id, \ + REGISTER(Gametypes, MAPINFO_TYPE, g_name, m_id, \ NEW(Gametype, hname, #sname, #g_name, gteamplay, #sname " " mutators, defaults, gdescription) \ ) { \ /* same as `1 << m_id` */ \ @@ -79,7 +92,7 @@ REGISTER_GAMETYPE(_("Race"),rc,g_race,RACE,false,"","timelimit=20 qualifying_tim } #define g_race IS_GAMETYPE(RACE) -REGISTER_GAMETYPE(_("Race CTS"),cts,g_cts,CTS,false,"","timelimit=20",_("Race for fastest time.")); +REGISTER_GAMETYPE(_("Race CTS"),cts,g_cts,CTS,false,"cloaked","timelimit=20",_("Race for fastest time.")); #define g_cts IS_GAMETYPE(CTS) REGISTER_GAMETYPE(_("Team Deathmatch"),tdm,g_tdm,TEAM_DEATHMATCH,true,"","timelimit=20 pointlimit=50 teams=2 leadlimit=0",_("Help your team score the most frags against the enemy team"))