From e093610eafa1ebf92d5dd6f07fb68e67fe5b2715 Mon Sep 17 00:00:00 2001 From: flokuep Date: Thu, 27 Jun 2013 16:38:14 +0200 Subject: [PATCH] Fix profile-id-check. --- Vocaluxe/Screens/CScreenNames.cs | 43 +++++++++++++++--------------- VocaluxeLib/Menu/CNameSelection.cs | 20 +++++++------- 2 files changed, 32 insertions(+), 31 deletions(-) diff --git a/Vocaluxe/Screens/CScreenNames.cs b/Vocaluxe/Screens/CScreenNames.cs index 015a46fa..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,11 +177,12 @@ namespace Vocaluxe.Screens //Check, if a player is selected if (_NameSelections[_NameSelection].Selection > -1) { - _SelectedPlayerNr = _NameSelections[_NameSelection].Selection; - if (CProfiles.NumProfiles <= _SelectedPlayerNr) + _SelectedProfileID = _NameSelections[_NameSelection].Selection; + + if (!CProfiles.IsProfileIDValid(_SelectedProfileID)) return true; - _UpdateSelectedProfile(_SelectingFastPlayerNr - 1, _SelectedPlayerNr); + _UpdateSelectedProfile(_SelectingFastPlayerNr - 1, _SelectedProfileID); _SetInteractionToButton(_Buttons[_ButtonStart]); } @@ -346,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; @@ -355,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); @@ -374,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; @@ -389,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; @@ -398,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++) @@ -418,10 +419,10 @@ namespace Vocaluxe.Screens _ResetPlayerSelection(_SelectingSwitchNr); } - if (CProfiles.NumProfiles <= _SelectedPlayerNr) + if (!CProfiles.IsProfileIDValid(_SelectedProfileID)) return true; - _UpdateSelectedProfile(i, _SelectedPlayerNr); + _UpdateSelectedProfile(i, _SelectedProfileID); break; } //Selected player is dropped out of area @@ -431,7 +432,7 @@ namespace Vocaluxe.Screens } } _SelectingSwitchNr = -1; - _SelectedPlayerNr = -1; + _SelectedProfileID = -1; //Reset variables _ChooseAvatarStatic.Visible = false; } @@ -441,13 +442,13 @@ 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) { - if (CProfiles.NumProfiles <= _SelectedPlayerNr) + if (!CProfiles.IsProfileIDValid(_SelectedProfileID)) return true; - _UpdateSelectedProfile(_SelectingFastPlayerNr - 1, _SelectedPlayerNr); + _UpdateSelectedProfile(_SelectingFastPlayerNr - 1, _SelectedProfileID); _SelectingFastPlayerNr++; if (_SelectingFastPlayerNr <= CGame.NumPlayer) @@ -473,17 +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) { - if (CProfiles.NumProfiles <= _SelectedPlayerNr) + if (!CProfiles.IsProfileIDValid(_SelectedProfileID)) return true; - _UpdateSelectedProfile(i, _SelectedPlayerNr); + _UpdateSelectedProfile(i, _SelectedProfileID); break; } } diff --git a/VocaluxeLib/Menu/CNameSelection.cs b/VocaluxeLib/Menu/CNameSelection.cs index f427ed4c..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;