protected void CopyPlayerDataToUI() { for (int i = 0; i < SGPlayers.Count; i++) { SavedGamePlayer sgPlayer = SGPlayers[i]; PlayerInfo pInfo = Players.Find(p => p.Name == SGPlayers[i].Name); XNALabel playerLabel = lblPlayerNames[i]; if (pInfo == null) { playerLabel.RemapColor = Color.Gray; playerLabel.Text = sgPlayer.Name + " (Not present)"; continue; } playerLabel.RemapColor = sgPlayer.ColorIndex > -1 ? MPColors[sgPlayer.ColorIndex].XnaColor : Color.White; playerLabel.Text = pInfo.Ready ? sgPlayer.Name : sgPlayer.Name + " (Not Ready)"; } }
/// <summary> /// Refreshes the UI based on the latest saved game /// and information in the saved spawn.ini file, as well /// as information on whether the local player is the host of the game. /// </summary> public void Refresh(bool isHost) { isSettingUp = true; IsHost = isHost; SGPlayers.Clear(); Players.Clear(); ddSavedGame.Items.Clear(); lbChatMessages.Clear(); lbChatMessages.TopIndex = 0; ddSavedGame.AllowDropDown = isHost; btnLoadGame.Text = isHost ? "Load Game" : "I'm Ready"; IniFile spawnSGIni = new IniFile(ProgramConstants.GamePath + "Saved Games\\spawnSG.ini"); loadedGameID = spawnSGIni.GetStringValue("Settings", "GameID", "0"); lblMapNameValue.Text = spawnSGIni.GetStringValue("Settings", "UIMapName", string.Empty); lblGameModeValue.Text = spawnSGIni.GetStringValue("Settings", "UIGameMode", string.Empty); uniqueGameId = spawnSGIni.GetIntValue("Settings", "GameID", -1); int playerCount = spawnSGIni.GetIntValue("Settings", "PlayerCount", 0); SavedGamePlayer localPlayer = new SavedGamePlayer(); localPlayer.Name = ProgramConstants.PLAYERNAME; localPlayer.ColorIndex = MPColors.FindIndex( c => c.GameColorIndex == spawnSGIni.GetIntValue("Settings", "Color", 0)); SGPlayers.Add(localPlayer); for (int i = 1; i < playerCount; i++) { string sectionName = "Other" + i; SavedGamePlayer sgPlayer = new SavedGamePlayer(); sgPlayer.Name = spawnSGIni.GetStringValue(sectionName, "Name", "Unknown player"); sgPlayer.ColorIndex = MPColors.FindIndex( c => c.GameColorIndex == spawnSGIni.GetIntValue(sectionName, "Color", 0)); SGPlayers.Add(sgPlayer); } for (int i = 0; i < SGPlayers.Count; i++) { lblPlayerNames[i].Enabled = true; lblPlayerNames[i].Visible = true; } for (int i = SGPlayers.Count; i < 8; i++) { lblPlayerNames[i].Enabled = false; lblPlayerNames[i].Visible = false; } List <string> timestamps = SavedGameManager.GetSaveGameTimestamps(); timestamps.Reverse(); // Most recent saved game first timestamps.ForEach(ts => ddSavedGame.AddItem(ts)); if (ddSavedGame.Items.Count > 0) { ddSavedGame.SelectedIndex = 0; } CopyPlayerDataToUI(); isSettingUp = false; }