bool forceplayercolors_enabled = false;
#define fpc autocvar_cl_forceplayercolors
- if (ISGAMETYPE(DUEL))
+ if (gametype.m_1v1)
{
if ((myteam != NUM_SPECTATOR) && (fpc == 1 || fpc == 2 || fpc == 3 || fpc == 5))
forceplayercolors_enabled = true;
{
if(autocvar_cl_forcemyplayercolors && islocalplayer)
this.colormap = 1024 + autocvar_cl_forcemyplayercolors;
- else if (autocvar_cl_forceuniqueplayercolors && !islocalplayer && !ISGAMETYPE(DUEL))
+ else if (autocvar_cl_forceuniqueplayercolors && !islocalplayer && !gametype.m_1v1)
{
// Assign each enemy unique colors
// pick colors from 0 to 14 since 15 is the rainbow color
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"));
+ this.gametype_init(this, _("Duel"),"duel","g_duel",GAMETYPE_FLAG_USEPOINTS | GAMETYPE_FLAG_1V1,"","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))
{
const int GAMETYPE_FLAG_PRIORITY = BIT(3); // priority selection when preferred gametype isn't available in random selections
const int GAMETYPE_FLAG_HIDELIMITS = BIT(4); // don't display a score limit needed for winning the match in the scoreboard
const int GAMETYPE_FLAG_WEAPONARENA = BIT(5); // gametype has a forced weapon arena, weapon arena mutators should disable themselves when this is set
+const int GAMETYPE_FLAG_1V1 = BIT(6); // 1v1 gameplay
int MAPINFO_TYPE_ALL;
.int m_flags;
ATTRIB(Gametype, m_hidelimits, bool, false);
/** does this gametype enforce its own weapon arena? */
ATTRIB(Gametype, m_weaponarena, bool, false);
+ /** 1v1 gameplay? */
+ ATTRIB(Gametype, m_1v1, bool, false);
/** game type defaults */
ATTRIB(Gametype, model2, string);
/** game type description */
this.m_priority = ((gflags & GAMETYPE_FLAG_PREFERRED) ? 2 : ((gflags & GAMETYPE_FLAG_PRIORITY) ? 1 : 0));
this.m_hidelimits = (gflags & GAMETYPE_FLAG_HIDELIMITS);
this.m_weaponarena = (gflags & GAMETYPE_FLAG_WEAPONARENA);
+ this.m_1v1 = (gflags & GAMETYPE_FLAG_1V1);
// same as `1 << m_id`
MAPINFO_TYPE_ALL |= this.items = this.m_flags = (MAPINFO_TYPE_ALL + 1);