Someone please review this, it made me go cross-eyed.
Please note how Case statements work when you read this. Case Switches are more like GOTOs than IFs. Basically, the logic goes-to the first case that fits the condition and then does all code after until it hits a break; This allows one to fulfill several cases when only one is true.
One reason I didn't just set 7 pairs for use on all FFA maps is I do not know if a map might wish to use teams 14, 13, 12, 11, etc for other purposes and I do not want to shatter the existing alliance system on maps. If a map wants to use one of these schemes, its custom EO page has to explicitly allow the correct ivar value by button. IE: no accidental map f*ck-ups caused by this.
Code: Select all
if(IsTeamplayOn())
{
m_Alliances = 0; // clear this
}
else
{
m_Alliances = GetVarItemInt("network.session.ivar23");
switch (m_Alliances)
{
// Original Teams
case 1: // 1+2 vs 3+4
Ally(1, 2);
Ally(2, 1);
Ally(3, 4);
Ally(4, 3);
break;
case 2: // 1+3 vs 2+4
Ally(1, 3);
Ally(3, 1);
Ally(2, 4);
Ally(4, 2);
break;
case 3: // 1+4 vs 2+3
Ally(1, 4);
Ally(4, 1);
Ally(2, 3);
Ally(3, 2);
break;
// Mass Pairs
case 11: // vs 13+14
Ally(13, 14);
Ally(14, 13);
case 12: // vs 11+12
Ally(11, 12);
Ally(12, 11);
case 13: // vs 9+10
Ally( 9, 10);
Ally(10, 9);
case 14: // vs 7+8
Ally( 7, 8);
Ally( 8, 7);
case 15: // 1+2 vs 3+4 vs 5+6
Ally( 5, 6);
Ally( 6, 5);
Ally( 3, 4);
Ally( 4, 3);
Ally( 1, 2);
Ally( 2, 1);
break;
// Mass Triads
case 16: // vs 10+11+12
Ally(10, 11);
Ally(10, 12);
Ally(11, 10);
Ally(11, 12);
Ally(12, 10);
Ally(12, 11);
case 17: // vs 7+8+9
Ally( 7, 8);
Ally( 7, 9);
Ally( 8, 7);
Ally( 8, 9);
Ally( 9, 7);
Ally( 9, 8);
case 18: // 1+2+3 vs 4+5+6
Ally( 4, 5);
Ally( 4, 6);
Ally( 5, 4);
Ally( 5, 6);
Ally( 6, 4);
Ally( 6, 5);
Ally( 1, 2);
Ally( 1, 3);
Ally( 2, 1);
Ally( 2, 3);
Ally( 3, 1);
Ally( 3, 2);
break;
// Mass Quartets
case 19: // vs 9+10+11+12
Ally( 9, 10);
Ally( 9, 11);
Ally( 9, 12);
Ally(10, 9);
Ally(10, 11);
Ally(10, 12);
Ally(11, 9);
Ally(11, 10);
Ally(11, 12);
Ally(12, 9);
Ally(12, 10);
Ally(12, 11);
case 20: // 1+2+3+4 vs 5+6+7+8
Ally( 5, 6);
Ally( 5, 7);
Ally( 5, 8);
Ally( 6, 5);
Ally( 6, 7);
Ally( 6, 8);
Ally( 7, 5);
Ally( 7, 6);
Ally( 7, 8);
Ally( 8, 5);
Ally( 8, 6);
Ally( 8, 7);
Ally( 1, 2);
Ally( 1, 3);
Ally( 1, 4);
Ally( 2, 1);
Ally( 2, 3);
Ally( 2, 4);
Ally( 3, 1);
Ally( 3, 2);
Ally( 3, 4);
Ally( 4, 1);
Ally( 4, 2);
Ally( 4, 3);
break;
// Mass Mixed Quartets
case 21: // vs 9+10+11+12
Ally( 9, 10);
Ally( 9, 11);
Ally( 9, 12);
Ally(10, 9);
Ally(10, 11);
Ally(10, 12);
Ally(11, 9);
Ally(11, 10);
Ally(11, 12);
Ally(12, 9);
Ally(12, 10);
Ally(12, 11);
case 22: // 1+3+5+7 vs 2+4+6+8
Ally( 2, 4);
Ally( 2, 6);
Ally( 2, 8);
Ally( 4, 2);
Ally( 4, 6);
Ally( 4, 8);
Ally( 6, 2);
Ally( 6, 4);
Ally( 6, 8);
Ally( 8, 2);
Ally( 8, 4);
Ally( 8, 6);
Ally( 1, 3);
Ally( 1, 5);
Ally( 1, 7);
Ally( 3, 1);
Ally( 3, 5);
Ally( 3, 7);
Ally( 5, 1);
Ally( 5, 3);
Ally( 5, 7);
Ally( 7, 1);
Ally( 7, 3);
Ally( 7, 5);
break;
// Heptets
case 23: // 1+2+3+4+5+6+7 vs 8+9+10+11+12+13+14
Ally( 1, 2);
Ally( 1, 3);
Ally( 1, 4);
Ally( 1, 5);
Ally( 1, 6);
Ally( 1, 7);
Ally( 2, 1);
Ally( 2, 3);
Ally( 2, 4);
Ally( 2, 5);
Ally( 2, 6);
Ally( 2, 7);
Ally( 3, 1);
Ally( 3, 2);
Ally( 3, 4);
Ally( 3, 5);
Ally( 3, 6);
Ally( 3, 7);
Ally( 4, 1);
Ally( 4, 2);
Ally( 4, 3);
Ally( 4, 5);
Ally( 4, 6);
Ally( 4, 7);
Ally( 5, 1);
Ally( 5, 2);
Ally( 5, 3);
Ally( 5, 4);
Ally( 5, 6);
Ally( 5, 7);
Ally( 6, 1);
Ally( 6, 2);
Ally( 6, 3);
Ally( 6, 4);
Ally( 6, 5);
Ally( 6, 7);
Ally( 7, 1);
Ally( 7, 2);
Ally( 7, 3);
Ally( 7, 4);
Ally( 7, 5);
Ally( 7, 6);
Ally( 8, 9);
Ally( 8, 10);
Ally( 8, 11);
Ally( 8, 12);
Ally( 8, 13);
Ally( 8, 14);
Ally( 9, 8);
Ally( 9, 10);
Ally( 9, 11);
Ally( 9, 12);
Ally( 9, 13);
Ally( 9, 14);
Ally(10, 8);
Ally(10, 9);
Ally(10, 11);
Ally(10, 12);
Ally(10, 13);
Ally(10, 14);
Ally(11, 8);
Ally(11, 9);
Ally(11, 10);
Ally(11, 12);
Ally(11, 13);
Ally(11, 14);
Ally(12, 8);
Ally(12, 9);
Ally(12, 10);
Ally(12, 11);
Ally(12, 13);
Ally(12, 14);
Ally(13, 8);
Ally(13, 9);
Ally(13, 10);
Ally(13, 11);
Ally(13, 12);
Ally(13, 14);
Ally(14, 8);
Ally(14, 9);
Ally(14, 10);
Ally(14, 11);
Ally(14, 12);
Ally(14, 13);
break;
// Mixed Heptets
case 24: // 1+3+5+7+9+11+13 vs 2+4+6+8+10+12+14
Ally( 1, 3);
Ally( 1, 5);
Ally( 1, 7);
Ally( 1, 9);
Ally( 1, 11);
Ally( 1, 13);
Ally( 3, 1);
Ally( 3, 5);
Ally( 3, 7);
Ally( 3, 9);
Ally( 3, 11);
Ally( 3, 13);
Ally( 5, 1);
Ally( 5, 3);
Ally( 5, 7);
Ally( 5, 9);
Ally( 5, 11);
Ally( 5, 13);
Ally( 7, 1);
Ally( 7, 3);
Ally( 7, 5);
Ally( 7, 9);
Ally( 7, 11);
Ally( 7, 13);
Ally( 9, 1);
Ally( 9, 3);
Ally( 9, 5);
Ally( 9, 7);
Ally( 9, 11);
Ally( 9, 13);
Ally(11, 1);
Ally(11, 3);
Ally(11, 5);
Ally(11, 7);
Ally(11, 9);
Ally(11, 13);
Ally(13, 1);
Ally(13, 3);
Ally(13, 5);
Ally(13, 7);
Ally(13, 9);
Ally(13, 11);
Ally( 2, 4);
Ally( 2, 6);
Ally( 2, 8);
Ally( 2, 10);
Ally( 2, 12);
Ally( 2, 14);
Ally( 4, 2);
Ally( 4, 6);
Ally( 4, 8);
Ally( 4, 10);
Ally( 4, 12);
Ally( 4, 14);
Ally( 6, 2);
Ally( 6, 4);
Ally( 6, 8);
Ally( 6, 10);
Ally( 6, 12);
Ally( 6, 14);
Ally( 8, 2);
Ally( 8, 4);
Ally( 8, 6);
Ally( 8, 10);
Ally( 8, 12);
Ally( 8, 14);
Ally(10, 2);
Ally(10, 4);
Ally(10, 6);
Ally(10, 8);
Ally(10, 12);
Ally(10, 14);
Ally(12, 2);
Ally(12, 4);
Ally(12, 6);
Ally(12, 8);
Ally(12, 10);
Ally(12, 14);
Ally(14, 2);
Ally(14, 4);
Ally(14, 6);
Ally(14, 8);
Ally(14, 10);
Ally(14, 12);
break;
// Quintet
case 25: // 1+2+3+4+5 vs 6+7+8+9+10
Ally( 1, 2);
Ally( 1, 3);
Ally( 1, 4);
Ally( 1, 5);
Ally( 2, 1);
Ally( 2, 3);
Ally( 2, 4);
Ally( 2, 5);
Ally( 3, 1);
Ally( 3, 2);
Ally( 3, 4);
Ally( 3, 5);
Ally( 4, 1);
Ally( 4, 2);
Ally( 4, 3);
Ally( 4, 5);
Ally( 5, 1);
Ally( 5, 2);
Ally( 5, 3);
Ally( 5, 4);
Ally( 6, 7);
Ally( 6, 8);
Ally( 6, 9);
Ally( 6, 10);
Ally( 7, 6);
Ally( 7, 8);
Ally( 7, 9);
Ally( 7, 10);
Ally( 8, 6);
Ally( 8, 7);
Ally( 8, 9);
Ally( 8, 10);
Ally( 9, 6);
Ally( 9, 7);
Ally( 9, 8);
Ally( 9, 10);
Ally(10, 6);
Ally(10, 7);
Ally(10, 8);
Ally(10, 9);
break;
case 26: // 1+3+5+7+9 vs 2+4+6+8+10
Ally( 1, 3);
Ally( 1, 5);
Ally( 1, 7);
Ally( 1, 9);
Ally( 3, 1);
Ally( 3, 5);
Ally( 3, 7);
Ally( 3, 9);
Ally( 5, 1);
Ally( 5, 3);
Ally( 5, 7);
Ally( 5, 9);
Ally( 7, 1);
Ally( 7, 3);
Ally( 7, 5);
Ally( 7, 9);
Ally( 9, 1);
Ally( 9, 3);
Ally( 9, 5);
Ally( 9, 7);
Ally( 2, 4);
Ally( 2, 6);
Ally( 2, 8);
Ally( 2, 10);
Ally( 4, 2);
Ally( 4, 6);
Ally( 4, 8);
Ally( 4, 10);
Ally( 6, 2);
Ally( 6, 4);
Ally( 6, 8);
Ally( 6, 10);
Ally( 8, 2);
Ally( 8, 4);
Ally( 8, 6);
Ally( 8, 10);
Ally(10, 2);
Ally(10, 4);
Ally(10, 6);
Ally(10, 8);
break;
case 0:
default:
m_Alliances = 0; // clear this in case it wasn't in 0..3 or 11..26
}
} // Teamplay is off
I will work on EO CFGs now.
EDIT: Added quintets.