diff --git a/Output/Languages/English.xml b/Output/Languages/English.xml
index 91959371..2d1be43b 100644
--- a/Output/Languages/English.xml
+++ b/Output/Languages/English.xml
@@ -92,6 +92,7 @@
Author
Version
Can't load this party-mode.
+ There are no mics configured!
Target audience
No teams
Number of teams
diff --git a/PartyModes/PartyModeTicTacToe/CPartyModeTicTacToe.cs b/PartyModes/PartyModeTicTacToe/CPartyModeTicTacToe.cs
index 4f305246..d7730f65 100644
--- a/PartyModes/PartyModeTicTacToe/CPartyModeTicTacToe.cs
+++ b/PartyModes/PartyModeTicTacToe/CPartyModeTicTacToe.cs
@@ -727,7 +727,6 @@ namespace VocaluxeLib.PartyModes.TicTacToe
if (players.Length < 2)
return;
- CProfile[] profiles = CBase.Profiles.GetProfiles();
CRound r = _GameData.Rounds[roundNr];
bool isDuet = CBase.Songs.GetSongByID(r.SongID).IsDuet;
@@ -740,18 +739,14 @@ namespace VocaluxeLib.PartyModes.TicTacToe
//try to fill with the right data
if (r != null)
{
- if (_GameData.ProfileIDsTeam1[r.SingerTeam1] < profiles.Length)
- {
- players[0].ProfileID = _GameData.ProfileIDsTeam1[r.SingerTeam1];
- if (isDuet)
- players[0].LineNr = 0;
- }
- if (_GameData.ProfileIDsTeam2[r.SingerTeam2] < profiles.Length)
- {
- players[1].ProfileID = _GameData.ProfileIDsTeam2[r.SingerTeam2];
- if (isDuet)
- players[1].LineNr = 1;
- }
+ players[0].ProfileID = _GameData.ProfileIDsTeam1[r.SingerTeam1];
+ if (isDuet)
+ players[0].LineNr = 0;
+
+ players[1].ProfileID = _GameData.ProfileIDsTeam2[r.SingerTeam2];
+ if (isDuet)
+ players[1].LineNr = 1;
+
SongSelected(r.SongID);
}
}
diff --git a/PartyModes/PartyModeTicTacToe/CPartyScreenTicTacToeMain.cs b/PartyModes/PartyModeTicTacToe/CPartyScreenTicTacToeMain.cs
index 26deb9ea..46887b31 100644
--- a/PartyModes/PartyModeTicTacToe/CPartyScreenTicTacToeMain.cs
+++ b/PartyModes/PartyModeTicTacToe/CPartyScreenTicTacToeMain.cs
@@ -494,17 +494,7 @@ namespace VocaluxeLib.PartyModes.TicTacToe
_GameData.Rounds[_SelectedField].SingerTeam1 = singerTeam1;
_GameData.Rounds[_SelectedField].SingerTeam2 = singerTeam2;
- _Texts[_TextNextPlayerT1].Visible = true;
- _Texts[_TextNextPlayerT2].Visible = true;
- _Texts[_TextNextPlayerNameT1].Visible = true;
- _Texts[_TextNextPlayerNameT2].Visible = true;
- CProfile[] profiles = CBase.Profiles.GetProfiles();
- _Texts[_TextNextPlayerNameT1].Text = profiles[_GameData.ProfileIDsTeam1[_GameData.Rounds[_SelectedField].SingerTeam1]].PlayerName;
- _Texts[_TextNextPlayerNameT2].Text = profiles[_GameData.ProfileIDsTeam2[_GameData.Rounds[_SelectedField].SingerTeam2]].PlayerName;
- _Statics[_StaticAvatarT1].Visible = true;
- _Statics[_StaticAvatarT2].Visible = true;
- _Statics[_StaticAvatarT1].Texture = profiles[_GameData.ProfileIDsTeam1[_GameData.Rounds[_SelectedField].SingerTeam1]].Avatar.Texture;
- _Statics[_StaticAvatarT2].Texture = profiles[_GameData.ProfileIDsTeam2[_GameData.Rounds[_SelectedField].SingerTeam2]].Avatar.Texture;
+ _UpdatePlayerInformation();
}
int songID = 0;
@@ -553,17 +543,7 @@ namespace VocaluxeLib.PartyModes.TicTacToe
_GameData.Rounds[_SelectedField].SingerTeam2 = _GameData.Rounds[_OldSelectedField].SingerTeam2;
_UpdateFieldContents();
- _Texts[_TextNextPlayerT1].Visible = true;
- _Texts[_TextNextPlayerT2].Visible = true;
- _Texts[_TextNextPlayerNameT1].Visible = true;
- _Texts[_TextNextPlayerNameT2].Visible = true;
- CProfile[] profiles = CBase.Profiles.GetProfiles();
- _Texts[_TextNextPlayerNameT1].Text = profiles[_GameData.ProfileIDsTeam1[_GameData.Rounds[_SelectedField].SingerTeam1]].PlayerName;
- _Texts[_TextNextPlayerNameT2].Text = profiles[_GameData.ProfileIDsTeam2[_GameData.Rounds[_SelectedField].SingerTeam2]].PlayerName;
- _Statics[_StaticAvatarT1].Visible = true;
- _Statics[_StaticAvatarT2].Visible = true;
- _Statics[_StaticAvatarT1].Texture = profiles[_GameData.ProfileIDsTeam1[_GameData.Rounds[_SelectedField].SingerTeam1]].Avatar.Texture;
- _Statics[_StaticAvatarT2].Texture = profiles[_GameData.ProfileIDsTeam2[_GameData.Rounds[_SelectedField].SingerTeam2]].Avatar.Texture;
+ _UpdatePlayerInformation();
_UpdateJokerButtons();
@@ -574,6 +554,20 @@ namespace VocaluxeLib.PartyModes.TicTacToe
_SetInteractionToButton(_Buttons[_ButtonNextRound]);
}
+ private void _UpdatePlayerInformation()
+ {
+ _Texts[_TextNextPlayerT1].Visible = true;
+ _Texts[_TextNextPlayerT2].Visible = true;
+ _Texts[_TextNextPlayerNameT1].Visible = true;
+ _Texts[_TextNextPlayerNameT2].Visible = true;
+ _Texts[_TextNextPlayerNameT1].Text = CBase.Profiles.GetPlayerName(_GameData.ProfileIDsTeam1[_GameData.Rounds[_SelectedField].SingerTeam1]);
+ _Texts[_TextNextPlayerNameT2].Text = CBase.Profiles.GetPlayerName(_GameData.ProfileIDsTeam2[_GameData.Rounds[_SelectedField].SingerTeam2]);
+ _Statics[_StaticAvatarT1].Visible = true;
+ _Statics[_StaticAvatarT2].Visible = true;
+ _Statics[_StaticAvatarT1].Texture = CBase.Profiles.GetAvatar(_GameData.ProfileIDsTeam1[_GameData.Rounds[_SelectedField].SingerTeam1]);
+ _Statics[_StaticAvatarT2].Texture = CBase.Profiles.GetAvatar(_GameData.ProfileIDsTeam2[_GameData.Rounds[_SelectedField].SingerTeam2]);
+ }
+
private void _UseJoker(int teamNr, int jokerNum)
{
switch (jokerNum)
diff --git a/PartyModes/PartyModeTicTacToe/CPartyScreenTicTacToeNames.cs b/PartyModes/PartyModeTicTacToe/CPartyScreenTicTacToeNames.cs
index 9e29b916..f1c3c144 100644
--- a/PartyModes/PartyModeTicTacToe/CPartyScreenTicTacToeNames.cs
+++ b/PartyModes/PartyModeTicTacToe/CPartyScreenTicTacToeNames.cs
@@ -187,7 +187,7 @@ namespace VocaluxeLib.PartyModes.TicTacToe
_ChooseAvatarStatic.Rect = chooseButton.Button.Rect;
_ChooseAvatarStatic.Rect.Z = -100;
_ChooseAvatarStatic.Color = new SColorF(1, 1, 1, 1);
- _ChooseAvatarStatic.Texture = CBase.Profiles.GetProfiles()[_SelectedPlayerNr].Avatar.Texture;
+ _ChooseAvatarStatic.Texture = CBase.Profiles.GetAvatar(_SelectedPlayerNr);
}
}
}
@@ -254,7 +254,7 @@ namespace VocaluxeLib.PartyModes.TicTacToe
_PlayerDestinationButtons[added].SelColor = new SColorF(1, 1, 1, 1);
_PlayerDestinationButtons[added].Texture = _ChooseAvatarStatic.Texture;
_PlayerDestinationButtons[added].SelTexture = _ChooseAvatarStatic.Texture;
- _PlayerDestinationButtons[added].Text.Text = CBase.Profiles.GetProfiles()[_SelectedPlayerNr].PlayerName;
+ _PlayerDestinationButtons[added].Text.Text = CBase.Profiles.GetPlayerName(_SelectedPlayerNr);
_PlayerDestinationButtons[added].Enabled = true;
//Update Tiles-List
_UpdateButtonPlayerChoose();
@@ -414,12 +414,11 @@ namespace VocaluxeLib.PartyModes.TicTacToe
{
if ((i + offset * numButtonPlayerChoose) < _PlayerChooseButtonsVisibleProfiles.Count)
{
- _PlayerChooseButtons[i].ProfileID = _PlayerChooseButtonsVisibleProfiles[i + offset * numButtonPlayerChoose];
- _PlayerChooseButtons[i].Button.Text.Text = CBase.Profiles.GetProfiles()[_PlayerChooseButtonsVisibleProfiles[i + offset * numButtonPlayerChoose]].PlayerName;
- _PlayerChooseButtons[i].Button.Texture =
- CBase.Profiles.GetProfiles()[_PlayerChooseButtonsVisibleProfiles[i + offset * numButtonPlayerChoose]].Avatar.Texture;
- _PlayerChooseButtons[i].Button.SelTexture =
- CBase.Profiles.GetProfiles()[_PlayerChooseButtonsVisibleProfiles[i + offset * numButtonPlayerChoose]].Avatar.Texture;
+ int id = _PlayerChooseButtonsVisibleProfiles[i + offset * numButtonPlayerChoose];
+ _PlayerChooseButtons[i].ProfileID = id;
+ _PlayerChooseButtons[i].Button.Text.Text = CBase.Profiles.GetPlayerName(id);
+ _PlayerChooseButtons[i].Button.Texture = CBase.Profiles.GetAvatar(id);
+ _PlayerChooseButtons[i].Button.SelTexture = CBase.Profiles.GetAvatar(id);
_PlayerChooseButtons[i].Button.Color = new SColorF(1, 1, 1, 0.6f);
_PlayerChooseButtons[i].Button.SelColor = new SColorF(1, 1, 1, 1);
_PlayerChooseButtons[i].Button.Enabled = true;
@@ -441,14 +440,15 @@ namespace VocaluxeLib.PartyModes.TicTacToe
private void _UpdateVisibleProfiles()
{
_PlayerChooseButtonsVisibleProfiles.Clear();
- for (int i = 0; i < CBase.Profiles.GetProfiles().Length; i++)
+ Profile.CProfile[] profiles = CBase.Profiles.GetProfiles();
+ for (int i = 0; i < profiles.Length; i++)
{
bool visible = false;
//Show profile only if active
- if (CBase.Profiles.GetProfiles()[i].Active == EOffOn.TR_CONFIG_ON)
- visible = _Data.ScreenNames.ProfileIDsTeam1.All(t => t != i) && _Data.ScreenNames.ProfileIDsTeam2.All(t => t != i);
+ if (profiles[i].Active == EOffOn.TR_CONFIG_ON)
+ visible = _Data.ScreenNames.ProfileIDsTeam1.All(profileID => profileID != profiles[i].ID) && _Data.ScreenNames.ProfileIDsTeam2.All(profileID => profileID != profiles[i].ID);
if (visible)
- _PlayerChooseButtonsVisibleProfiles.Add(i);
+ _PlayerChooseButtonsVisibleProfiles.Add(profiles[i].ID);
}
}
@@ -486,11 +486,12 @@ namespace VocaluxeLib.PartyModes.TicTacToe
{
if (_Data.ScreenNames.ProfileIDsTeam1[i] != -1)
{
+ int id = _Data.ScreenNames.ProfileIDsTeam1[i];
_PlayerDestinationButtons[i].Color = new SColorF(1, 1, 1, 0.6f);
_PlayerDestinationButtons[i].SelColor = new SColorF(1, 1, 1, 1);
- _PlayerDestinationButtons[i].Texture = CBase.Profiles.GetProfiles()[_Data.ScreenNames.ProfileIDsTeam1[i]].Avatar.Texture;
- _PlayerDestinationButtons[i].SelTexture = CBase.Profiles.GetProfiles()[_Data.ScreenNames.ProfileIDsTeam1[i]].Avatar.Texture;
- _PlayerDestinationButtons[i].Text.Text = CBase.Profiles.GetProfiles()[_Data.ScreenNames.ProfileIDsTeam1[i]].PlayerName;
+ _PlayerDestinationButtons[i].Texture = CBase.Profiles.GetAvatar(id);
+ _PlayerDestinationButtons[i].SelTexture = CBase.Profiles.GetAvatar(id);
+ _PlayerDestinationButtons[i].Text.Text = CBase.Profiles.GetPlayerName(id);
_PlayerDestinationButtons[i].Enabled = true;
}
}
@@ -510,11 +511,12 @@ namespace VocaluxeLib.PartyModes.TicTacToe
{
if (_Data.ScreenNames.ProfileIDsTeam2[i] != -1)
{
+ int id = _Data.ScreenNames.ProfileIDsTeam2[i];
_PlayerDestinationButtons[i + _PlayerDestinationButtonsNumH].Color = new SColorF(1, 1, 1, 0.6f);
_PlayerDestinationButtons[i + _PlayerDestinationButtonsNumH].SelColor = new SColorF(1, 1, 1, 1);
- _PlayerDestinationButtons[i + _PlayerDestinationButtonsNumH].Texture = CBase.Profiles.GetProfiles()[_Data.ScreenNames.ProfileIDsTeam2[i]].Avatar.Texture;
- _PlayerDestinationButtons[i + _PlayerDestinationButtonsNumH].SelTexture = CBase.Profiles.GetProfiles()[_Data.ScreenNames.ProfileIDsTeam2[i]].Avatar.Texture;
- _PlayerDestinationButtons[i + _PlayerDestinationButtonsNumH].Text.Text = CBase.Profiles.GetProfiles()[_Data.ScreenNames.ProfileIDsTeam2[i]].PlayerName;
+ _PlayerDestinationButtons[i].Texture = CBase.Profiles.GetAvatar(id);
+ _PlayerDestinationButtons[i].SelTexture = CBase.Profiles.GetAvatar(id);
+ _PlayerDestinationButtons[i].Text.Text = CBase.Profiles.GetPlayerName(id);
_PlayerDestinationButtons[i + _PlayerDestinationButtonsNumH].Enabled = true;
}
}
@@ -553,9 +555,9 @@ namespace VocaluxeLib.PartyModes.TicTacToe
//Update texture and name
_PlayerDestinationButtons[added].Color = new SColorF(1, 1, 1, 0.6f);
_PlayerDestinationButtons[added].SelColor = new SColorF(1, 1, 1, 1);
- _PlayerDestinationButtons[added].Texture = CBase.Profiles.GetProfiles()[chooseButton.ProfileID].Avatar.Texture;
- _PlayerDestinationButtons[added].SelTexture = CBase.Profiles.GetProfiles()[chooseButton.ProfileID].Avatar.Texture;
- _PlayerDestinationButtons[added].Text.Text = CBase.Profiles.GetProfiles()[chooseButton.ProfileID].PlayerName;
+ _PlayerDestinationButtons[added].Texture = CBase.Profiles.GetAvatar(chooseButton.ProfileID);
+ _PlayerDestinationButtons[added].SelTexture = CBase.Profiles.GetAvatar(chooseButton.ProfileID);
+ _PlayerDestinationButtons[added].Text.Text = CBase.Profiles.GetPlayerName(chooseButton.ProfileID);
_PlayerDestinationButtons[added].Enabled = true;
//Update Tiles-List
_UpdateButtonPlayerChoose();
@@ -570,9 +572,9 @@ namespace VocaluxeLib.PartyModes.TicTacToe
//Update texture and name
_PlayerDestinationButtons[added].Color = new SColorF(1, 1, 1, 0.6f);
_PlayerDestinationButtons[added].SelColor = new SColorF(1, 1, 1, 1);
- _PlayerDestinationButtons[added].Texture = CBase.Profiles.GetProfiles()[chooseButton.ProfileID].Avatar.Texture;
- _PlayerDestinationButtons[added].SelTexture = CBase.Profiles.GetProfiles()[chooseButton.ProfileID].Avatar.Texture;
- _PlayerDestinationButtons[added].Text.Text = CBase.Profiles.GetProfiles()[chooseButton.ProfileID].PlayerName;
+ _PlayerDestinationButtons[added].Texture = CBase.Profiles.GetAvatar(chooseButton.ProfileID);
+ _PlayerDestinationButtons[added].SelTexture = CBase.Profiles.GetAvatar(chooseButton.ProfileID);
+ _PlayerDestinationButtons[added].Text.Text = CBase.Profiles.GetPlayerName(chooseButton.ProfileID);
_PlayerDestinationButtons[added].Enabled = true;
//Update Tiles-List
_UpdateButtonPlayerChoose();
diff --git a/Vocaluxe/Base/CProfiles.cs b/Vocaluxe/Base/CProfiles.cs
index 5c7ec480..005eefe3 100644
--- a/Vocaluxe/Base/CProfiles.cs
+++ b/Vocaluxe/Base/CProfiles.cs
@@ -481,6 +481,11 @@ namespace Vocaluxe.Base
return _Profiles[profileID].Avatar.ID;
}
+
+ public static int GetProfileID(int num)
+ {
+ return _Profiles[num].ID;
+ }
#endregion profile properties
#region avatar texture
diff --git a/Vocaluxe/Screens/CScreenNames.cs b/Vocaluxe/Screens/CScreenNames.cs
index 1f840fdd..eed8851b 100644
--- a/Vocaluxe/Screens/CScreenNames.cs
+++ b/Vocaluxe/Screens/CScreenNames.cs
@@ -62,7 +62,7 @@ namespace Vocaluxe.Screens
private bool _SelectingFast;
private int _SelectingSwitchNr = -1;
private int _SelectingFastPlayerNr;
- private int _SelectedPlayerNr = -1;
+ private int _SelectedProfileID = -1;
private bool _AvatarsChanged;
private bool _ProfilesChanged;
@@ -177,23 +177,13 @@ namespace Vocaluxe.Screens
//Check, if a player is selected
if (_NameSelections[_NameSelection].Selection > -1)
{
- CProfile[] profiles = CProfiles.GetProfiles();
- _SelectedPlayerNr = _NameSelections[_NameSelection].Selection;
- if (profiles.Length <= _SelectedPlayerNr)
+ _SelectedProfileID = _NameSelections[_NameSelection].Selection;
+
+ if (!CProfiles.IsProfileIDValid(_SelectedProfileID))
return true;
- //Update Game-infos with new player
- CGame.Players[_SelectingFastPlayerNr - 1].ProfileID = profiles[_SelectedPlayerNr].ID;
- //Update config for default players.
- CConfig.Players[_SelectingFastPlayerNr - 1] = profiles[_SelectedPlayerNr].FileName;
- CConfig.SaveConfig();
- //Update texture and name
- _Statics[_StaticPlayerAvatar[_SelectingFastPlayerNr - 1]].Texture = profiles[_SelectedPlayerNr].Avatar.Texture;
- _Texts[_TextPlayer[_SelectingFastPlayerNr - 1]].Text = profiles[_SelectedPlayerNr].PlayerName;
- //Update profile-warning
- _CheckPlayers();
- //Update Tiles-List
- _NameSelections[_NameSelection].UpdateList();
+ _UpdateSelectedProfile(_SelectingFastPlayerNr - 1, _SelectedProfileID);
+
_SetInteractionToButton(_Buttons[_ButtonStart]);
}
//Started selecting with 'P'
@@ -242,15 +232,7 @@ namespace Vocaluxe.Screens
case Keys.Delete:
//Delete profile-selection
- CGame.Players[_SelectingFastPlayerNr - 1].ProfileID = -1;
- //Update config for default players.
- CConfig.Players[_SelectingFastPlayerNr - 1] = String.Empty;
- CConfig.SaveConfig();
- //Update texture and name
- _Statics[_StaticPlayerAvatar[_SelectingFastPlayerNr - 1]].Texture = _OriginalPlayerAvatarTextures[_SelectingFastPlayerNr - 1];
- _Texts[_TextPlayer[_SelectingFastPlayerNr - 1]].Text = CProfiles.GetPlayerName(-1, _SelectingFastPlayerNr);
- //Update profile-warning
- _CheckPlayers();
+ _ResetPlayerSelection(_SelectingFastPlayerNr - 1);
//Reset all values
_SelectingFastPlayerNr = 0;
_SelectingKeyboardActive = false;
@@ -365,7 +347,7 @@ namespace Vocaluxe.Screens
base.HandleMouse(mouseEvent);
//Check if LeftButton is hold and Select-Mode inactive
- if (mouseEvent.LBH && _SelectedPlayerNr < 0 && !_SelectingFast)
+ if (mouseEvent.LBH && _SelectedProfileID < 0 && !_SelectingFast)
{
//Save mouse-coords
_OldMouseX = mouseEvent.X;
@@ -374,8 +356,8 @@ namespace Vocaluxe.Screens
if (_NameSelections[_NameSelection].IsOverTile(mouseEvent))
{
//Get player-number of tile
- _SelectedPlayerNr = _NameSelections[_NameSelection].TilePlayerNr(mouseEvent);
- if (_SelectedPlayerNr != -1)
+ _SelectedProfileID = _NameSelections[_NameSelection].TilePlayerNr(mouseEvent);
+ if (_SelectedProfileID != -1)
{
//Update of Drag/Drop-Texture
CStatic selectedPlayer = _NameSelections[_NameSelection].TilePlayerAvatar(mouseEvent);
@@ -393,7 +375,7 @@ namespace Vocaluxe.Screens
if (CHelper.IsInBounds(_Statics[_StaticPlayer[i]].Rect, mouseEvent))
{
_SelectingSwitchNr = i;
- _SelectedPlayerNr = CGame.Players[i].ProfileID;
+ _SelectedProfileID = CGame.Players[i].ProfileID;
//Update of Drag/Drop-Texture
CStatic selectedPlayer = _Statics[_StaticPlayerAvatar[i]];
_ChooseAvatarStatic.Visible = true;
@@ -408,7 +390,7 @@ namespace Vocaluxe.Screens
}
//Check if LeftButton is hold and Select-Mode active
- if (mouseEvent.LBH && _SelectedPlayerNr >= 0 && !_SelectingFast)
+ if (mouseEvent.LBH && _SelectedProfileID >= 0 && !_SelectingFast)
{
//Update coords for Drag/Drop-Texture
_ChooseAvatarStatic.Rect.X += mouseEvent.X - _OldMouseX;
@@ -417,7 +399,7 @@ namespace Vocaluxe.Screens
_OldMouseY = mouseEvent.Y;
}
// LeftButton isn't hold anymore, but Select-Mode is still active -> "Drop" of Avatar
- else if (_SelectedPlayerNr >= 0 && !_SelectingFast)
+ else if (_SelectedProfileID >= 0 && !_SelectingFast)
{
//Foreach Drop-Area
for (int i = 0; i < _StaticPlayer.Length; i++)
@@ -430,58 +412,27 @@ namespace Vocaluxe.Screens
{
if (_SelectingSwitchNr > -1 && CGame.Players[i].ProfileID > -1)
{
- //Update Game-infos with new player
- CGame.Players[_SelectingSwitchNr].ProfileID = CGame.Players[i].ProfileID;
- //Update config for default players.
- CConfig.Players[_SelectingSwitchNr] = CProfiles.GetProfileFileName(CGame.Players[i].ProfileID);
- //Update texture and name
- _Statics[_StaticPlayerAvatar[_SelectingSwitchNr]].Texture = CProfiles.GetAvatarTextureFromProfile(CGame.Players[i].ProfileID);
- _Texts[_TextPlayer[_SelectingSwitchNr]].Text = CProfiles.GetPlayerName(CGame.Players[i].ProfileID);
+ _UpdateSelectedProfile(_SelectingSwitchNr, CGame.Players[i].ProfileID);
}
else if (_SelectingSwitchNr > -1)
{
- //Update Game-infos with new player
- CGame.Players[_SelectingSwitchNr].ProfileID = -1;
- //Update config for default players.
- CConfig.Players[_SelectingSwitchNr] = string.Empty;
- //Update texture and name
- _Statics[_StaticPlayerAvatar[_SelectingSwitchNr]].Texture = _OriginalPlayerAvatarTextures[_SelectingSwitchNr];
- _Texts[_TextPlayer[_SelectingSwitchNr]].Text = CProfiles.GetPlayerName(-1, (_SelectingSwitchNr + 1));
+ _ResetPlayerSelection(_SelectingSwitchNr);
}
- CProfile[] profiles = CProfiles.GetProfiles();
- if (profiles.Length <= _SelectedPlayerNr)
+ if (!CProfiles.IsProfileIDValid(_SelectedProfileID))
return true;
- //Update Game-infos with new player
- CGame.Players[i].ProfileID = profiles[_SelectedPlayerNr].ID;
- //Update config for default players.
- CConfig.Players[i] = profiles[_SelectedPlayerNr].FileName;
- CConfig.SaveConfig();
- //Update texture and name
- _Statics[_StaticPlayerAvatar[i]].Texture = _ChooseAvatarStatic.Texture;
- _Texts[_TextPlayer[i]].Text = profiles[_SelectedPlayerNr].PlayerName;
- //Update profile-warning
- _CheckPlayers();
- //Update Tiles-List
- _NameSelections[_NameSelection].UpdateList();
+ _UpdateSelectedProfile(i, _SelectedProfileID);
break;
}
//Selected player is dropped out of area
if (_SelectingSwitchNr > -1)
{
- //Update Game-infos with new player
- CGame.Players[_SelectingSwitchNr].ProfileID = -1;
- //Update config for default players.
- CConfig.Players[_SelectingSwitchNr] = string.Empty;
- //Update texture and name
- _Statics[_StaticPlayerAvatar[_SelectingSwitchNr]].Texture = _OriginalPlayerAvatarTextures[_SelectingSwitchNr];
- _Texts[_TextPlayer[_SelectingSwitchNr]].Text = CProfiles.GetPlayerName(-1, (_SelectingSwitchNr + 1));
- _NameSelections[_NameSelection].UpdateList();
+ _ResetPlayerSelection(_SelectingSwitchNr);
}
}
_SelectingSwitchNr = -1;
- _SelectedPlayerNr = -1;
+ _SelectedProfileID = -1;
//Reset variables
_ChooseAvatarStatic.Visible = false;
}
@@ -491,25 +442,14 @@ namespace Vocaluxe.Screens
if (_NameSelections[_NameSelection].IsOverTile(mouseEvent))
{
//Get player-number of tile
- _SelectedPlayerNr = _NameSelections[_NameSelection].TilePlayerNr(mouseEvent);
- if (_SelectedPlayerNr != -1)
+ _SelectedProfileID = _NameSelections[_NameSelection].TilePlayerNr(mouseEvent);
+ if (_SelectedProfileID != -1)
{
- CProfile[] profiles = CProfiles.GetProfiles();
- if (profiles.Length <= _SelectedPlayerNr)
+ if (!CProfiles.IsProfileIDValid(_SelectedProfileID))
return true;
- //Update Game-infos with new player
- CGame.Players[_SelectingFastPlayerNr - 1].ProfileID = profiles[_SelectedPlayerNr].ID;
- //Update config for default players.
- CConfig.Players[_SelectingFastPlayerNr - 1] = profiles[_SelectedPlayerNr].FileName;
- CConfig.SaveConfig();
- //Update texture and name
- _Statics[_StaticPlayerAvatar[_SelectingFastPlayerNr - 1]].Texture = profiles[_SelectedPlayerNr].Avatar.Texture;
- _Texts[_TextPlayer[_SelectingFastPlayerNr - 1]].Text = profiles[_SelectedPlayerNr].PlayerName;
- //Update profile-warning
- _CheckPlayers();
- //Update Tiles-List
- _NameSelections[_NameSelection].UpdateList();
+ _UpdateSelectedProfile(_SelectingFastPlayerNr - 1, _SelectedProfileID);
+
_SelectingFastPlayerNr++;
if (_SelectingFastPlayerNr <= CGame.NumPlayer)
_NameSelections[_NameSelection].FastSelection(true, _SelectingFastPlayerNr);
@@ -534,29 +474,17 @@ namespace Vocaluxe.Screens
if (mouseEvent.LD && _NameSelections[_NameSelection].IsOverTile(mouseEvent) && !_SelectingFast)
{
- _SelectedPlayerNr = _NameSelections[_NameSelection].TilePlayerNr(mouseEvent);
- if (_SelectedPlayerNr > -1)
+ _SelectedProfileID = _NameSelections[_NameSelection].TilePlayerNr(mouseEvent);
+ if (_SelectedProfileID > -1)
{
for (int i = 0; i < CGame.NumPlayer; i++)
{
if (CGame.Players[i].ProfileID == -1)
{
- CProfile[] profiles = CProfiles.GetProfiles();
- if (profiles.Length <= _SelectedPlayerNr)
+ if (!CProfiles.IsProfileIDValid(_SelectedProfileID))
return true;
- //Update Game-infos with new player
- CGame.Players[i].ProfileID = profiles[_SelectedPlayerNr].ID;
- //Update config for default players.
- CConfig.Players[i] = profiles[_SelectedPlayerNr].FileName;
- CConfig.SaveConfig();
- //Update texture and name
- _Statics[_StaticPlayerAvatar[i]].Texture = profiles[_SelectedPlayerNr].Avatar.Texture;
- _Texts[_TextPlayer[i]].Text = profiles[_SelectedPlayerNr].PlayerName;
- //Update profile-warning
- _CheckPlayers();
- //Update Tiles-List
- _NameSelections[_NameSelection].UpdateList();
+ _UpdateSelectedProfile(i, _SelectedProfileID);
break;
}
}
@@ -573,17 +501,7 @@ namespace Vocaluxe.Screens
{
if (CHelper.IsInBounds(_Statics[_StaticPlayer[i]].Rect, mouseEvent))
{
- CGame.Players[i].ProfileID = -1;
- //Update config for default players.
- CConfig.Players[i] = String.Empty;
- CConfig.SaveConfig();
- //Update texture and name
- _Statics[_StaticPlayerAvatar[i]].Texture = _OriginalPlayerAvatarTextures[i];
- _Texts[_TextPlayer[i]].Text = CProfiles.GetPlayerName(-1, i + 1);
- //Update profile-warning
- _CheckPlayers();
- //Update Tiles-List
- _NameSelections[_NameSelection].UpdateList();
+ _ResetPlayerSelection(i);
exit = false;
}
}
@@ -760,6 +678,22 @@ namespace Vocaluxe.Screens
_CheckPlayers();
}
+ private void _UpdateSelectedProfile(int playerNum, int profileId)
+ {
+ //Update Game-infos with new player
+ CGame.Players[playerNum].ProfileID = profileId;
+ //Update config for default players.
+ CConfig.Players[playerNum] = CProfiles.GetProfileFileName(profileId);
+ CConfig.SaveConfig();
+ //Update texture and name
+ _Statics[_StaticPlayerAvatar[playerNum]].Texture = CProfiles.GetAvatarTextureFromProfile(profileId);
+ _Texts[_TextPlayer[playerNum]].Text = CProfiles.GetPlayerName(profileId);
+ //Update profile-warning
+ _CheckPlayers();
+ //Update Tiles-List
+ _NameSelections[_NameSelection].UpdateList();
+ }
+
private void _ResetPlayerSelections()
{
for (int i = 0; i < CGame.NumPlayer; i++)
@@ -775,6 +709,21 @@ namespace Vocaluxe.Screens
CConfig.SaveConfig();
}
+ private void _ResetPlayerSelection(int playerNum)
+ {
+ CGame.Players[playerNum].ProfileID = -1;
+ //Update config for default players.
+ CConfig.Players[playerNum] = String.Empty;
+ CConfig.SaveConfig();
+ //Update texture and name
+ _Statics[_StaticPlayerAvatar[playerNum]].Texture = _OriginalPlayerAvatarTextures[playerNum];
+ _Texts[_TextPlayer[playerNum]].Text = CProfiles.GetPlayerName(-1, playerNum + 1);
+ //Update profile-warning
+ _CheckPlayers();
+ //Update Tiles-List
+ _NameSelections[_NameSelection].UpdateList();
+ }
+
private void _CheckMics()
{
List playerWithoutMicro = new List();
diff --git a/VocaluxeLib/Menu/CNameSelection.cs b/VocaluxeLib/Menu/CNameSelection.cs
index 5c3c043f..b2238b53 100644
--- a/VocaluxeLib/Menu/CNameSelection.cs
+++ b/VocaluxeLib/Menu/CNameSelection.cs
@@ -44,15 +44,15 @@ namespace VocaluxeLib.Menu
{
private class CTile
{
- public int PlayerNr;
+ public int ProfileID;
public readonly CStatic Avatar;
public readonly CText Name;
- public CTile(CStatic av, CText tex, int pl)
+ public CTile(CStatic av, CText tex, int pID)
{
Avatar = av;
Name = tex;
- PlayerNr = pl;
+ ProfileID = pID;
}
}
@@ -281,7 +281,7 @@ namespace VocaluxeLib.Menu
case Keys.Right:
if (_ActualSelection + 1 < _Tiles.Count)
{
- if (_Tiles[_ActualSelection + 1].PlayerNr != -1)
+ if (_Tiles[_ActualSelection + 1].ProfileID != -1)
_ActualSelection++;
}
else
@@ -316,7 +316,7 @@ namespace VocaluxeLib.Menu
case Keys.Down:
if (_ActualSelection + _NumW < _Tiles.Count)
{
- if (_Tiles[_ActualSelection + _NumW].PlayerNr != -1)
+ if (_Tiles[_ActualSelection + _NumW].ProfileID != -1)
_ActualSelection += _NumW;
}
else
@@ -326,11 +326,11 @@ namespace VocaluxeLib.Menu
if (offset != Offset)
{
_ActualSelection = _ActualSelection - _Tiles.Count + _NumW;
- if (_Tiles[_ActualSelection].PlayerNr == -1)
+ if (_Tiles[_ActualSelection].ProfileID == -1)
{
for (int i = _Tiles.Count - 1; i >= 0; i--)
{
- if (_Tiles[i].PlayerNr != -1)
+ if (_Tiles[i].ProfileID != -1)
{
_ActualSelection = i;
break;
@@ -412,14 +412,14 @@ namespace VocaluxeLib.Menu
_Tiles[i].Avatar.Texture = CBase.Profiles.GetProfiles()[_VisibleProfiles[i + offset * _Tiles.Count]].Avatar.Texture;
_Tiles[i].Avatar.Color = new SColorF(1, 1, 1, 1);
_Tiles[i].Name.Text = CBase.Profiles.GetProfiles()[_VisibleProfiles[i + offset * _Tiles.Count]].PlayerName;
- _Tiles[i].PlayerNr = _VisibleProfiles[i + offset * _Tiles.Count];
+ _Tiles[i].ProfileID = _VisibleProfiles[i + offset * _Tiles.Count];
}
else
{
_Tiles[i].Avatar.Texture = _TextureEmptyTile;
_Tiles[i].Avatar.Color = ColorEmptyTile;
_Tiles[i].Name.Text = "";
- _Tiles[i].PlayerNr = -1;
+ _Tiles[i].ProfileID = -1;
}
}
Offset = offset;
@@ -441,7 +441,7 @@ namespace VocaluxeLib.Menu
foreach (CTile tile in _Tiles)
{
if (CHelper.IsInBounds(tile.Avatar.Rect, mevent))
- return tile.PlayerNr;
+ return tile.ProfileID;
}
return -1;
@@ -515,7 +515,7 @@ namespace VocaluxeLib.Menu
}
}
if (visible)
- _VisibleProfiles.Add(i);
+ _VisibleProfiles.Add(profiles[i].ID);
}
}