Small improvements for 3 screens (#934)
* Improve profile and player selection screens - Ask before deleting a profile, Delete only removes a character while editing the name - Ask to save or discard unsaved profile changes when leaving the profile screen - Restore the previous name with Escape and prevent empty profile names - Stop the webcam when leaving the profile screen and discard snapshots on avatar change - Show inactive profiles dimmed in the profile screen - Play the missing mic/profile warning each time the player selection is shown - Fix crash when clicking a profile after removing a player with Delete in fast selection - Keep the duet part selection when profiles are reloaded - Only save the player number when it has changed * Use party mode selection look in statistics screens - Tiles and selection use the ButtonTile skin like the party mode selection, the selected tile uses the selection color of the skin - The detail list uses the CoverTextBackground skin, inner cards and row stripes the ButtonTile skin - More space between the title and the columns of the best list - Show the date in the recently sung list left aligned inside the list * Changelog * Improve sing screen and redesign pause menu - Fix jumping to the old pause position after restarting or skipping a song in vocals mode - Keep name and avatar hidden for players without a valid profile - Show the placeholder avatar for profiles without avatar image - Hide player information and rating popups during the start countdown - Fix pause select slides not being shown or hidden - Show "no more songs" only when Ctrl+S is pressed - Select "Continue" when opening the pause menu with Escape - Darken the game behind the pause menu - Pause buttons as vertical list with icons, hidden buttons leave no gaps (visible buttons are placed in the slots of all pause buttons) - New PauseButton skin with rounded corners for wide buttons, used for the pause buttons and the vocals volume selection - Larger pause title centered above the pause panels - Info panel with cover, title, artist, song progress and player scores - Vocals volume selection with icon and centered caption in the full width of the info panel, showing five values - Pause panels and icons are animated together with the pause buttons --------- Co-authored-by: Florian Ostertag <flokuep@users.noreply.github.com>
This commit is contained in:
1 parent
c8213bdcda
commit
2cdd30c6fc
22 files changed
+1324
-429
No files matched your search
@@ -99,6 +99,9 @@ namespace VocaluxeLib.Menu
|
||||
|
||||
private readonly List<Guid> _VisibleProfiles;
|
||||
private readonly List<Guid> _UsedProfiles;
|
||||
private readonly HashSet<Guid> _InactiveProfiles = new HashSet<Guid>();
|
||||
|
||||
public bool ShowInactive;
|
||||
|
||||
private CStatic _PlayerSelector;
|
||||
|
||||
@@ -378,8 +381,10 @@ namespace VocaluxeLib.Menu
|
||||
{
|
||||
if (i + offset * _Theme.Tiles.NumW < _VisibleProfiles.Count)
|
||||
{
|
||||
var alpha = _InactiveProfiles.Contains(_VisibleProfiles[i + offset * _Theme.Tiles.NumW]) ? 0.4f : 1f;
|
||||
_Tiles[i].Avatar.Texture = CBase.Profiles.GetAvatar(_VisibleProfiles[i + offset * _Theme.Tiles.NumW]);
|
||||
_Tiles[i].Avatar.Color = new SColorF(1, 1, 1, 1);
|
||||
_Tiles[i].Avatar.Color = new SColorF(1, 1, 1, alpha);
|
||||
_Tiles[i].Name.Alpha = alpha;
|
||||
_Tiles[i].Name.Text = CBase.Profiles.GetPlayerName(_VisibleProfiles[i + offset * _Theme.Tiles.NumW]);
|
||||
_Tiles[i].ProfileId = _VisibleProfiles.ElementAt(i + offset * _Theme.Tiles.NumW);
|
||||
}
|
||||
@@ -387,6 +392,7 @@ namespace VocaluxeLib.Menu
|
||||
{
|
||||
_Tiles[i].Avatar.Texture = TextureEmptyTile;
|
||||
_Tiles[i].Avatar.Color = _ColorEmptyTile;
|
||||
_Tiles[i].Name.Alpha = 1f;
|
||||
_Tiles[i].Name.Text = "";
|
||||
_Tiles[i].ProfileId = Guid.Empty;
|
||||
}
|
||||
@@ -514,11 +520,18 @@ namespace VocaluxeLib.Menu
|
||||
private void _UpdateVisibleProfiles()
|
||||
{
|
||||
_VisibleProfiles.Clear();
|
||||
_InactiveProfiles.Clear();
|
||||
var profiles = CBase.Profiles.GetProfiles();
|
||||
|
||||
foreach (var profile in profiles)
|
||||
{
|
||||
var visible = profile.Active == EOffOn.TR_CONFIG_ON;
|
||||
if (!visible && ShowInactive)
|
||||
{
|
||||
visible = true;
|
||||
_InactiveProfiles.Add(profile.Id);
|
||||
}
|
||||
|
||||
if (visible)
|
||||
{
|
||||
if (_UsedProfiles.Contains(profile.Id) && (int)profile.UserRole >= (int)EUserRole.TR_USERROLE_NORMAL)
|
||||
|
||||
Reference in new issue
Block a user