private void ResetSettings()
{
MULTIbalancer rhs = new MULTIbalancer();
/* ===== SECTION 0 - Presets ===== */
Preset = rhs.Preset;
// EnableUnstacking = rhs.EnableUnstacking; // don't reset EnableUnstacking
EnableAdminKillForFastBalance = rhs.EnableAdminKillForFastBalance;
SelectFastBalanceBy = rhs.SelectFastBalanceBy;
/* ===== SECTION 1 - Settings ===== */
DebugLevel = rhs.DebugLevel;
MaximumServerSize = rhs.MaximumServerSize;
EnableBattlelogRequests = rhs.EnableBattlelogRequests;
MaximumRequestRate = rhs.MaximumRequestRate;
WaitTimeout = rhs.WaitTimeout;
WhichBattlelogStats = rhs.WhichBattlelogStats;
MaxTeamSwitchesByStrongPlayers = rhs.MaxTeamSwitchesByStrongPlayers;
MaxTeamSwitchesByWeakPlayers = rhs.MaxTeamSwitchesByWeakPlayers;
UnlimitedTeamSwitchingDuringFirstMinutesOfRound = rhs.UnlimitedTeamSwitchingDuringFirstMinutesOfRound;
Enable2SlotReserve = rhs.Enable2SlotReserve;
EnablerecruitCommand = rhs.EnablerecruitCommand;
EnableWhitelistingOfReservedSlotsList = rhs.EnableWhitelistingOfReservedSlotsList;
SecondsUntilAdaptiveSpeedBecomesFast = rhs.SecondsUntilAdaptiveSpeedBecomesFast;
EnableInGameCommands = rhs.EnableInGameCommands;
ReassignNewPlayers = rhs.ReassignNewPlayers;
// Whitelist = rhs.Whitelist; // don't reset the whitelist
// DisperseEvenlyList = rhs.DisperseEvenlyList; // don't reset the dispersal list
EnableTicketLossRateLogging = rhs.EnableTicketLossRateLogging;
/* ===== SECTION 2 - Exclusions ===== */
OnWhitelist = rhs.OnWhitelist;
OnFriendsList = rhs.OnFriendsList;
ApplyFriendsListToTeam = rhs.ApplyFriendsListToTeam;
TopScorers = rhs.TopScorers;
SameClanTagsInSquad = rhs.SameClanTagsInSquad;
SameClanTagsInTeam = rhs.SameClanTagsInTeam;
SameClanTagsForRankDispersal = rhs.SameClanTagsForRankDispersal;
LenientRankDispersal = rhs.LenientRankDispersal;
MinutesAfterJoining = rhs.MinutesAfterJoining;
MinutesAfterBeingMoved = rhs.MinutesAfterBeingMoved;
JoinedEarlyPhase = rhs.JoinedEarlyPhase;
JoinedMidPhase = rhs.JoinedMidPhase;
JoinedLatePhase = rhs.JoinedLatePhase;
/* ===== SECTION 3 - Round Phase & Population Settings ===== */
EarlyPhaseTicketPercentageToUnstack = rhs.EarlyPhaseTicketPercentageToUnstack;
MidPhaseTicketPercentageToUnstack = rhs.MidPhaseTicketPercentageToUnstack;
LatePhaseTicketPercentageToUnstack = rhs.LatePhaseTicketPercentageToUnstack;
SpellingOfSpeedNamesReminder = rhs.SpellingOfSpeedNamesReminder;
EarlyPhaseBalanceSpeed = rhs.EarlyPhaseBalanceSpeed;
MidPhaseBalanceSpeed = rhs.MidPhaseBalanceSpeed;
LatePhaseBalanceSpeed = rhs.LatePhaseBalanceSpeed;
/* ===== SECTION 4 - Scrambler ===== */
OnlyByCommand = rhs.OnlyByCommand;
OnlyOnNewMaps = rhs.OnlyOnNewMaps;
OnlyOnFinalTicketPercentage = rhs.OnlyOnFinalTicketPercentage;
ScrambleBy = rhs.ScrambleBy;
KeepClanTagsInSameTeam = rhs.KeepClanTagsInSameTeam;
KeepFriendsInSameTeam = rhs.KeepFriendsInSameTeam;
DivideBy = rhs.DivideBy;
ClanTagToDivideBy = rhs.ClanTagToDivideBy;
DelaySeconds = rhs.DelaySeconds;
/* ===== SECTION 5 - Messages ===== */
QuietMode = rhs.QuietMode;
YellDurationSeconds = rhs.YellDurationSeconds;
BadBecauseMovedByBalancer = rhs.BadBecauseMovedByBalancer;
BadBecauseWinningTeam = rhs.BadBecauseWinningTeam;
BadBecauseBiggestTeam = rhs.BadBecauseBiggestTeam;
BadBecauseRank = rhs.BadBecauseRank;
BadBecauseDispersalList = rhs.BadBecauseDispersalList;
BadBecauseClan = rhs.BadBecauseClan; // DCE
ChatMovedForBalance = rhs.ChatMovedForBalance;
YellMovedForBalance = rhs.YellMovedForBalance;
ChatMovedToUnstack = rhs.ChatMovedToUnstack;
YellMovedToUnstack = rhs.YellMovedToUnstack;
ChatDetectedBadTeamSwitch = rhs.ChatDetectedBadTeamSwitch;
YellDetectedBadTeamSwitch = rhs.YellDetectedBadTeamSwitch;
ChatDetectedGoodTeamSwitch = rhs.ChatDetectedGoodTeamSwitch;
YellDetectedGoodTeamSwitch = rhs.YellDetectedGoodTeamSwitch;
ChatAfterUnswitching = rhs.ChatAfterUnswitching;
YellAfterUnswitching = rhs.YellAfterUnswitching;
TeamsWillBeScrambled = rhs.TeamsWillBeScrambled;
ChatAutobalancing = rhs.ChatAutobalancing;
YellAutobalancing = rhs.YellAutobalancing;
/* ===== SECTION 6 - Unswitcher ===== */
ForbidSwitchingAfterAutobalance = rhs.ForbidSwitchingAfterAutobalance;
ForbidSwitchingToWinningTeam = rhs.ForbidSwitchingToWinningTeam;
ForbidSwitchingToBiggestTeam = rhs.ForbidSwitchingToBiggestTeam;
ForbidSwitchingAfterDispersal = rhs.ForbidSwitchingAfterDispersal;
EnableImmediateUnswitch = rhs.EnableImmediateUnswitch;
/* ===== SECTION 7 - TBD ===== */
/* ===== SECTION 8 - Per-Mode Settings ===== */
List<String> simpleModes = GetSimplifiedModes();
fPerMode.Clear();
foreach (String sm in simpleModes) {
PerModeSettings oneSet = null;
if (!fPerMode.ContainsKey(sm)) {
oneSet = new PerModeSettings(sm, fGameVersion);
fPerMode[sm] = oneSet;
}
}
/* ===== SECTION 9 - Debug Settings ===== */
ShowCommandInLog = rhs.ShowCommandInLog;
LogChat = rhs.LogChat;
EnableLoggingOnlyMode = rhs.EnableLoggingOnlyMode;
EnableRiskyFeatures = rhs.EnableRiskyFeatures;
}