#pragma once #include #include CLASS(Duel, Gametype) INIT(Duel) { this.gametype_init(this, _("Duel"),"duel","g_duel",GAMETYPE_FLAG_USEPOINTS,"","timelimit=10 pointlimit=0 leadlimit=0",_("Fight in a one versus one arena battle to decide the winner")); } METHOD(Duel, m_isAlwaysSupported, bool(Gametype this, int spawnpoints, float diameter)) { return (diameter < 16384); } METHOD(Duel, m_isForcedSupported, bool(Gametype this)) { if(!cvar("g_duel_not_dm_maps")) { // if this is set, all DM maps support duel too // TODO: we should really check the size of maps, some DM maps do not work for duel! if(!(MapInfo_Map_supportedGametypes & this.m_flags) && (MapInfo_Map_supportedGametypes & MAPINFO_TYPE_DEATHMATCH.m_flags)) return true; // TODO: references another gametype (alternatively, we could check which gamemodes are always enabled and append this if any are supported) } return false; } ENDCLASS(Duel) REGISTER_GAMETYPE(DUEL, NEW(Duel)); #define g_duel IS_GAMETYPE(DUEL)