Revert ScreenSing Version to 7 and Generate Elements in Code

To trim the fat off ScreenSing.xml the elements are now generated using
info for one screen as a base for the other screens.
This commit is contained in:
Jiiniasu committed 2017-01-01 15:54:11 +01:00
1 parent bf5205b080
commit 504d351cc2
4 files changed
+339 -7515

No files matched your search

File diff suppressed because it is too large. Load diff
@@ -1,20 +1,5 @@
ScreenSing
+++++++++
Version 8
Add:
Modified elements for 6 monitors support
S# = Screen
P# = Player
N# = Players on screen
<StaticAvatarS#P#N#>
<StaticScoreS#P#N#>
<TextNameS#P#N#>
<TextScoreS#P#N#>
+++++++++
Version 7
+106 -13
View File
@@ -38,7 +38,7 @@ namespace Vocaluxe.Screens
// Version number for theme files. Increment it, if you've changed something on the theme files!
protected override int _ScreenVersion
{
get { return 8; }
get { return 7; }
}
private struct STimeRect
@@ -155,6 +155,8 @@ namespace Vocaluxe.Screens
_StaticPauseBG
};
_BuildStaticStrings(ref statics);
_CreatePlayerStatics();
_CreatePlayerStrings();
_AssignPlayerElements();
_ThemeStatics = statics.ToArray();
@@ -388,6 +390,9 @@ namespace Vocaluxe.Screens
{
base.OnShow();
_InitiatePlayerStatics();
_InitiatePlayerStrings();
_FadeOut = false;
_CurrentVideo = null;
@@ -817,6 +822,29 @@ namespace Vocaluxe.Screens
{
_TextScores = new string[CSettings.MaxNumScreens, CSettings.MaxNumPlayer, CSettings.MaxNumPlayer];
_TextNames = new string[CSettings.MaxNumScreens, CSettings.MaxNumPlayer, CSettings.MaxNumPlayer];
for (int numplayer = 0; numplayer < CSettings.MaxNumPlayer; numplayer++)
{
for (int player = 0; player < CSettings.MaxNumPlayer; player++)
{
if (player <= numplayer)
{
string target = "P" + (player + 1) + "N" + (numplayer + 1);
for (int screen = 0; screen < CSettings.MaxNumScreens; screen++)
{
_TextScores[screen, player, numplayer] = "TextScoreS" + (screen + 1) + target;
_TextNames[screen, player, numplayer] = "TextNameS" + (screen + 1) + target;
}
texts.Add("TextScore" + target);
texts.Add("TextName" + target);
}
}
}
}
private void _CreatePlayerStrings()
{
for (int screen = 0; screen < CSettings.MaxNumScreens; screen++)
{
for (int numplayer = 0; numplayer < CSettings.MaxNumPlayer; numplayer++)
@@ -825,12 +853,33 @@ namespace Vocaluxe.Screens
{
if (player <= numplayer)
{
string target = "S" + (screen + 1) + "P" + (player + 1) + "N" + (numplayer + 1);
_TextScores[screen, player, numplayer] = "TextScore" + target;
_TextNames[screen, player, numplayer] = "TextName" + target;
string target = "P" + (player + 1) + "N" + (numplayer + 1);
_AddText(GetNewText(), "TextScoreS" + (screen + 1) + "P" + (player + 1) + "N" + (numplayer + 1));
_AddText(GetNewText(), "TextNameS" + (screen + 1) + "P" + (player + 1) + "N" + (numplayer + 1));
}
}
}
}
}
texts.Add(_TextScores[screen, player, numplayer]);
texts.Add(_TextNames[screen, player, numplayer]);
private void _InitiatePlayerStrings()
{
for (int screen = 0; screen < CSettings.MaxNumScreens; screen++)
{
for (int numplayer = 0; numplayer < CSettings.MaxNumPlayer; numplayer++)
{
for (int player = 0; player < CSettings.MaxNumPlayer; player++)
{
if (player <= numplayer)
{
string target = "P" + (player + 1) + "N" + (numplayer + 1);
_Texts["TextNameS" + (screen + 1) + target] = GetNewText(_Texts["TextName" + target]);
_Texts["TextNameS" + (screen + 1) + target].X += screen * CSettings.RenderW;
_Texts["TextName" + target].Visible = false;
_Texts["TextScoreS" + (screen + 1) + target] = GetNewText(_Texts["TextScore" + target]);
_Texts["TextScoreS" + (screen + 1) + target].X += screen * CSettings.RenderW;
_Texts["TextScore" + target].Visible = false;
}
}
}
@@ -842,6 +891,29 @@ namespace Vocaluxe.Screens
_StaticScores = new string[CSettings.MaxNumScreens, CSettings.MaxNumPlayer, CSettings.MaxNumPlayer];
_StaticAvatars = new string[CSettings.MaxNumScreens, CSettings.MaxNumPlayer, CSettings.MaxNumPlayer];
for (int numplayer = 0; numplayer < CSettings.MaxNumPlayer; numplayer++)
{
for (int player = 0; player < CSettings.MaxNumPlayer; player++)
{
if (player <= numplayer)
{
string target = "P" + (player + 1) + "N" + (numplayer + 1);
for (int screen = 0; screen < CSettings.MaxNumScreens; screen++)
{
_StaticScores[screen, player, numplayer] = "StaticScoreS" + (screen + 1) + target;
_StaticAvatars[screen, player, numplayer] = "StaticAvatarS" + (screen + 1) + target;
}
statics.Add("StaticScore" + target);
statics.Add("StaticAvatar" + target);
}
}
}
}
private void _CreatePlayerStatics()
{
for (int screen = 0; screen < CSettings.MaxNumScreens; screen++)
{
for (int numplayer = 0; numplayer < CSettings.MaxNumPlayer; numplayer++)
@@ -850,12 +922,33 @@ namespace Vocaluxe.Screens
{
if (player <= numplayer)
{
string target = "S" + (screen + 1) + "P" + (player + 1) + "N" + (numplayer + 1);
_StaticScores[screen, player, numplayer] = "StaticScore" + target;
_StaticAvatars[screen, player, numplayer] = "StaticAvatar" + target;
string target = "P" + (player + 1) + "N" + (numplayer + 1);
_AddStatic(GetNewStatic(), "StaticScoreS" + (screen + 1) + "P" + (player + 1) + "N" + (numplayer + 1));
_AddStatic(GetNewStatic(), "StaticAvatarS" + (screen + 1) + "P" + (player + 1) + "N" + (numplayer + 1));
}
}
}
}
}
statics.Add(_StaticScores[screen, player, numplayer]);
statics.Add(_StaticAvatars[screen, player, numplayer]);
private void _InitiatePlayerStatics()
{
for (int screen = 0; screen < CSettings.MaxNumScreens; screen++)
{
for (int numplayer = 0; numplayer < CSettings.MaxNumPlayer; numplayer++)
{
for (int player = 0; player < CSettings.MaxNumPlayer; player++)
{
if (player <= numplayer)
{
string target = "P" + (player + 1) + "N" + (numplayer + 1);
_Statics["StaticAvatarS" + (screen + 1) + target] = GetNewStatic(_Statics["StaticAvatar" + target]);
_Statics["StaticAvatarS" + (screen + 1) + target].X += screen * CSettings.RenderW;
_Statics["StaticAvatar" + target].Visible = false;
_Statics["StaticScoreS" + (screen + 1) + target] = GetNewStatic(_Statics["StaticScore" + target]);
_Statics["StaticScoreS" + (screen + 1) + target].X += screen * CSettings.RenderW;
_Statics["StaticScore" + target].Visible = false;
}
}
}
@@ -882,11 +975,11 @@ namespace Vocaluxe.Screens
//Everything Static or Text with Extra should be only visible
//If Player-Number matches CGame.NumPlayers
foreach (CStatic st in _Statics)
if (st.GetThemeName().StartsWith("StaticExtra"))
if (st.GetThemeName() != null && st.GetThemeName().StartsWith("StaticExtra"))
staticsExtra.Add(st.GetThemeName());
foreach (CText tx in _Texts)
if (tx.GetThemeName().StartsWith("TextExtra"))
if (tx.GetThemeName() != null && tx.GetThemeName().StartsWith("TextExtra"))
textsExtra.Add(tx.GetThemeName());
string curN = "N" + (CGame.NumPlayers);
+17 -20
View File
@@ -121,25 +121,20 @@ namespace VocaluxeLib.Menu.SingNotes
ThemeLoaded &= xmlReader.GetValue(item + "/SkinToneHelper", out _Theme.SkinToneHelper, String.Empty);
ThemeLoaded &= xmlReader.GetValue(item + "/SkinPerfectNoteStar", out _Theme.SkinPerfectNoteStart, String.Empty);
int i = 0;
_BarPos = new SRectF[CBase.Settings.GetMaxNumScreens(), CBase.Settings.GetMaxNumPlayer(), CBase.Settings.GetMaxNumPlayer()];
for (int numplayer = 0; numplayer < CBase.Settings.GetMaxNumPlayer(); numplayer++)
{
for (int screen = 0; screen < CBase.Settings.GetMaxNumScreens(); screen++)
for (int player = 0; player <= numplayer; player++)
{
for (int player = 0; player <= numplayer; player++)
{
_BarPos[screen, player, numplayer] = new SRectF();
string target = "/BarPositions/S" + (screen + 1) + "P" + (player + 1) + "N" + (numplayer + 1);
ThemeLoaded &= xmlReader.TryGetFloatValue(item + target + "X", ref _BarPos[screen, player, numplayer].X);
ThemeLoaded &= xmlReader.TryGetFloatValue(item + target + "Y", ref _BarPos[screen, player, numplayer].Y);
ThemeLoaded &= xmlReader.TryGetFloatValue(item + target + "Z", ref _BarPos[screen, player, numplayer].Z);
ThemeLoaded &= xmlReader.TryGetFloatValue(item + target + "W", ref _BarPos[screen, player, numplayer].W);
ThemeLoaded &= xmlReader.TryGetFloatValue(item + target + "H", ref _BarPos[screen, player, numplayer].H);
_Theme.BarPos[i].Name = "S" + (screen + 1) + "P" + (player + 1) + "N" + (numplayer + 1);
_Theme.BarPos[i].Rect = _BarPos[screen, player, numplayer];
i++;
}
_BarPos[0, player, numplayer] = new SRectF();
string target = "/BarPositions/P" + (player + 1) + "N" + (numplayer + 1);
ThemeLoaded &= xmlReader.TryGetFloatValue(item + target + "X", ref _BarPos[0, player, numplayer].X);
ThemeLoaded &= xmlReader.TryGetFloatValue(item + target + "Y", ref _BarPos[0, player, numplayer].Y);
ThemeLoaded &= xmlReader.TryGetFloatValue(item + target + "Z", ref _BarPos[0, player, numplayer].Z);
ThemeLoaded &= xmlReader.TryGetFloatValue(item + target + "W", ref _BarPos[0, player, numplayer].W);
ThemeLoaded &= xmlReader.TryGetFloatValue(item + target + "H", ref _BarPos[0, player, numplayer].H);
_Theme.BarPos[player].Name = "P" + (player + 1) + "N" + (numplayer + 1);
_Theme.BarPos[player].Rect = _BarPos[0, player, numplayer];
}
}
@@ -221,11 +216,13 @@ namespace VocaluxeLib.Menu.SingNotes
Z = _Theme.BarPos.Select(bp => bp.Rect.Z).Average();
foreach (SBarPosition bp in _Theme.BarPos)
{
int p = Int32.Parse(bp.Name.Substring(3, 1)) - 1;
int s = Int32.Parse(bp.Name.Substring(1, 1)) - 1;
int n = Int32.Parse(bp.Name.Substring(5, 1)) - 1;
_BarPos[s, p, n] = bp.Rect;
int n = Int32.Parse(bp.Name.Substring(3, 1)) - 1;
int p = Int32.Parse(bp.Name.Substring(1, 1)) - 1;
for (int s = 0; s < CBase.Settings.GetMaxNumScreens(); s++)
{
_BarPos[s, p, n] = bp.Rect;
_BarPos[s, p, n].X += s * CBase.Settings.GetRenderW();
}
}
}