From: Mario Date: Thu, 23 Jun 2016 18:22:53 +0000 (+1000) Subject: Update missing teams check to use the bit flag X-Git-Tag: xonotic-v0.8.2~700^2~10^2~7 X-Git-Url: https://git.rm.cloudns.org/?a=commitdiff_plain;h=de19689f90e9322d7c5b9433ea3f6313f773cc9e;p=xonotic%2Fxonotic-data.pk3dir.git Update missing teams check to use the bit flag --- diff --git a/qcsrc/server/mutators/mutator/gamemode_ca.qc b/qcsrc/server/mutators/mutator/gamemode_ca.qc index 1d6f78884..5ed345019 100644 --- a/qcsrc/server/mutators/mutator/gamemode_ca.qc +++ b/qcsrc/server/mutators/mutator/gamemode_ca.qc @@ -187,9 +187,15 @@ bool CA_CheckTeams() prev_missing_teams_mask = -1; return false; } - int missing_teams_mask = (!redalive) + (!bluealive) * 2; - if(NumTeams(ca_teams) >= 3) missing_teams_mask += (!yellowalive) * 4; - if(NumTeams(ca_teams) >= 4) missing_teams_mask += (!pinkalive) * 8; + int missing_teams_mask = 0; + if(ca_teams & BIT(0)) + missing_teams_mask += (!redalive) * 1; + if(ca_teams & BIT(1)) + missing_teams_mask += (!bluealive) * 2; + if(ca_teams & BIT(2)) + missing_teams_mask += (!yellowalive) * 4; + if(ca_teams & BIT(3)) + missing_teams_mask += (!pinkalive) * 8; if(prev_missing_teams_mask != missing_teams_mask) { Send_Notification(NOTIF_ALL, NULL, MSG_CENTER, CENTER_MISSING_TEAMS, missing_teams_mask); diff --git a/qcsrc/server/mutators/mutator/gamemode_ctf.qc b/qcsrc/server/mutators/mutator/gamemode_ctf.qc index b9e1dcde6..03a61509c 100644 --- a/qcsrc/server/mutators/mutator/gamemode_ctf.qc +++ b/qcsrc/server/mutators/mutator/gamemode_ctf.qc @@ -2381,10 +2381,10 @@ MUTATOR_HOOKFUNCTION(ctf, SV_ParseClientCommand) { switch(argv(1)) { - case "red": _team = NUM_TEAM_1; break; - case "blue": _team = NUM_TEAM_2; break; - case "yellow": if(NumTeams(ctf_teams) >= 3) _team = NUM_TEAM_3; break; - case "pink": if(NumTeams(ctf_teams) >= 4) _team = NUM_TEAM_4; break; + case "red": if(ctf_teams & BIT(0)) _team = NUM_TEAM_1; break; + case "blue": if(ctf_teams & BIT(1)) _team = NUM_TEAM_2; break; + case "yellow": if(ctf_teams & BIT(2)) _team = NUM_TEAM_3; break; + case "pink": if(ctf_teams & BIT(3)) _team = NUM_TEAM_4; break; } } diff --git a/qcsrc/server/mutators/mutator/gamemode_freezetag.qc b/qcsrc/server/mutators/mutator/gamemode_freezetag.qc index 25fe34336..935479890 100644 --- a/qcsrc/server/mutators/mutator/gamemode_freezetag.qc +++ b/qcsrc/server/mutators/mutator/gamemode_freezetag.qc @@ -110,9 +110,15 @@ float freezetag_CheckTeams() prev_missing_teams_mask = -1; return 0; } - float missing_teams_mask = (!redalive) + (!bluealive) * 2; - if(NumTeams(freezetag_teams) >= 3) missing_teams_mask += (!yellowalive) * 4; - if(NumTeams(freezetag_teams) >= 4) missing_teams_mask += (!pinkalive) * 8; + int missing_teams_mask = 0; + if(freezetag_teams & BIT(0)) + missing_teams_mask += (!redalive) * 1; + if(freezetag_teams & BIT(1)) + missing_teams_mask += (!bluealive) * 2; + if(freezetag_teams & BIT(2)) + missing_teams_mask += (!yellowalive) * 4; + if(freezetag_teams & BIT(3)) + missing_teams_mask += (!pinkalive) * 8; if(prev_missing_teams_mask != missing_teams_mask) { Send_Notification(NOTIF_ALL, NULL, MSG_CENTER, CENTER_MISSING_TEAMS, missing_teams_mask); diff --git a/qcsrc/server/mutators/mutator/gamemode_keyhunt.qc b/qcsrc/server/mutators/mutator/gamemode_keyhunt.qc index 759831d39..ca7e2ce5c 100644 --- a/qcsrc/server/mutators/mutator/gamemode_keyhunt.qc +++ b/qcsrc/server/mutators/mutator/gamemode_keyhunt.qc @@ -959,9 +959,15 @@ void kh_WaitForPlayers() // delay start of the round until enough players are p } else { - float missing_teams_mask = boolean(p1) + boolean(p2) * 2; - if(kh_teams >= 3) missing_teams_mask += boolean(p3) * 4; - if(kh_teams >= 4) missing_teams_mask += boolean(p4) * 8; + int missing_teams_mask = 0; + if(kh_teams & BIT(0)) + missing_teams_mask += boolean(p1) * 1; + if(kh_teams & BIT(1)) + missing_teams_mask += boolean(p2) * 2; + if(kh_teams & BIT(2)) + missing_teams_mask += boolean(p3) * 4; + if(kh_teams & BIT(3)) + missing_teams_mask += boolean(p4) * 8; if(prev_missing_teams_mask != missing_teams_mask) { Send_Notification(NOTIF_ALL, NULL, MSG_CENTER, CENTER_MISSING_TEAMS, missing_teams_mask);