Merge branch 'PartyNames' of https://github.com/flokuep/Vocaluxe into develop

This commit is contained in:
Stephan Sundermann committed 2013-12-26 15:25:01 +01:00
commit 3aad13dbbe
35 files changed
+2109 -1799

No files matched your search

@@ -15,6 +15,7 @@
<string name="TR_SCREENCONFIG_NUMMICS">Number of mics</string>
<string name="TR_SCREENCONFIG_NUMROUNDS">Number of rounds</string>
<string name="TR_SCREENNAMES_TITLE">Challenge Mode: Choose Player</string>
<string name="TR_SCREENNAMES_BUTTON_RANDOM">Select random</string>
<string name="TR_SCREENMAIN_TITLE">Challenge Mode: Overview</string>
<string name="TR_SCREENMAIN_TABLE_POS">Pos</string>
<string name="TR_SCREENMAIN_TABLE_PLAYERNAME">Name</string>
@@ -57,7 +57,7 @@
<!--<Reflection> If exists:-->
<!-- <Space>: Reflection Space-->
<!-- <Height>: Reflection Height-->
</Text1>
</Text1>
<ButtonNext>
<!--<Skin>: Texture name-->
<Skin>Button</Skin>
@@ -65,7 +65,7 @@
<SkinSelected>Button</SkinSelected>
<!--<X>, <Y>, <Z>, <W>, <H>: Button position, width and height-->
<X>985</X>
<Y>600</Y>
<Y>625</Y>
<Z>0,00</Z>
<W>150</W>
<H>50</H>
@@ -122,7 +122,7 @@
<SkinSelected>Button</SkinSelected>
<!--<X>, <Y>, <Z>, <W>, <H>: Button position, width and height-->
<X>145</X>
<Y>600</Y>
<Y>625</Y>
<Z>0,00</Z>
<W>150</W>
<H>50</H>
@@ -172,17 +172,17 @@
<Height>26</Height>
</SReflection>
</ButtonBack>
<ButtonPlayerDestination>
<ButtonRandom>
<!--<Skin>: Texture name-->
<Skin>CoverTile</Skin>
<Skin>Button</Skin>
<!--<SkinSelected>: Texture name for selected button-->
<SkinSelected>CoverTile</SkinSelected>
<SkinSelected>Button</SkinSelected>
<!--<X>, <Y>, <Z>, <W>, <H>: Button position, width and height-->
<X>0</X>
<Y>0</Y>
<X>565</X>
<Y>625</Y>
<Z>0,00</Z>
<W>100</W>
<H>100</H>
<W>150</W>
<H>50</H>
<!--<Color>: Button color from ColorScheme (high priority)-->
<!--or <R>, <G>, <B>, <A> (lower priority)-->
<Color>ButtonColor</Color>
@@ -191,12 +191,69 @@
<SColor>ButtonSColor</SColor>
<Text>
<!--<X>, <Y>: Text position-->
<X>50</X>
<Y>102</Y>
<X>75</X>
<Y>10</Y>
<!--<H>: Text height-->
<H>20</H>
<H>27</H>
<!--<MaxW>: Maximum text width (if exists)-->
<MaxW>98</MaxW>
<MaxW>142</MaxW>
<!--<Color>: Text color from ColorScheme (high priority)-->
<!--or <R>, <G>, <B>, <A> (lower priority)-->
<Color>ButtonTextColor</Color>
<!--<SColor>: Selected Text color from ColorScheme (high priority)-->
<!--or <SR>, <SG>, <SB>, <SA> (lower priority)-->
<SColor>ButtonTextSColor</SColor>
<!--<Align>: Text align horizontal: Left, Center, Right-->
<Align>Center</Align>
<!--<HAlign>: Text align vertical (on downsizing): Top, Center, Bottom-->
<HAlign>Center</HAlign>
<!--<Style>: Text style: Normal, Italic, Bold, BoldItalic-->
<Style>Bold</Style>
<!--<Font>: Text font name-->
<Font>Outline</Font>
<!--<Text>: Nothing or translation tag-->
<Text>TR_SCREENNAMES_BUTTON_RANDOM</Text>
</Text>
<!--<Reflection> If exists:-->
<!-- <Space>: Reflection Space-->
<!-- <Height>: Reflection Height-->
<Reflection>
<Space>10</Space>
<Height>26</Height>
</Reflection>
<!--<SReflection> If exists:-->
<!-- <Space>: Reflection Space of selected button-->
<!-- <Height>: Reflection Height of selected button-->
<SReflection>
<Space>10</Space>
<Height>26</Height>
</SReflection>
</ButtonRandom>
<ButtonIncreasePlayer>
<!--<Skin>: Texture name-->
<Skin>Plus</Skin>
<!--<SkinSelected>: Texture name for selected button-->
<SkinSelected>Plus</SkinSelected>
<!--<X>, <Y>, <Z>, <W>, <H>: Button position, width and height-->
<X>145</X>
<Y>1200</Y>
<Z>0,00</Z>
<W>40</W>
<H>40</H>
<!--<Color>: Button color from ColorScheme (high priority)-->
<!--or <R>, <G>, <B>, <A> (lower priority)-->
<Color>ButtonColor</Color>
<!--<SColor>: Selected button color from ColorScheme (high priority)-->
<!--or <SR>, <SG>, <SB>, <SA> (lower priority)-->
<SColor>ButtonSColor</SColor>
<Text>
<!--<X>, <Y>: Text position-->
<X>75</X>
<Y>10</Y>
<!--<H>: Text height-->
<H>27</H>
<!--<MaxW>: Maximum text width (if exists)-->
<MaxW>142</MaxW>
<!--<Color>: Text color from ColorScheme (high priority)-->
<!--or <R>, <G>, <B>, <A> (lower priority)-->
<Color>ButtonTextColor</Color>
@@ -220,18 +277,18 @@
<!--<SReflection> If exists:-->
<!-- <Space>: Reflection Space of selected button-->
<!-- <Height>: Reflection Height of selected button-->
</ButtonPlayerDestination>
<ButtonPlayerChoose>
</ButtonIncreasePlayer>
<ButtonDecreasePlayer>
<!--<Skin>: Texture name-->
<Skin>CoverTile</Skin>
<Skin>Minus</Skin>
<!--<SkinSelected>: Texture name for selected button-->
<SkinSelected>CoverTile</SkinSelected>
<SkinSelected>Minus</SkinSelected>
<!--<X>, <Y>, <Z>, <W>, <H>: Button position, width and height-->
<X>0</X>
<Y>0</Y>
<X>145</X>
<Y>1200</Y>
<Z>0,00</Z>
<W>100</W>
<H>100</H>
<W>40</W>
<H>40</H>
<!--<Color>: Button color from ColorScheme (high priority)-->
<!--or <R>, <G>, <B>, <A> (lower priority)-->
<Color>ButtonColor</Color>
@@ -240,12 +297,12 @@
<SColor>ButtonSColor</SColor>
<Text>
<!--<X>, <Y>: Text position-->
<X>50</X>
<Y>102</Y>
<X>75</X>
<Y>10</Y>
<!--<H>: Text height-->
<H>20</H>
<H>27</H>
<!--<MaxW>: Maximum text width (if exists)-->
<MaxW>98</MaxW>
<MaxW>142</MaxW>
<!--<Color>: Text color from ColorScheme (high priority)-->
<!--or <R>, <G>, <B>, <A> (lower priority)-->
<Color>ButtonTextColor</Color>
@@ -269,6 +326,282 @@
<!--<SReflection> If exists:-->
<!-- <Space>: Reflection Space of selected button-->
<!-- <Height>: Reflection Height of selected button-->
</ButtonPlayerChoose>
</ButtonDecreasePlayer>
<ButtonIncreaseTeams>
<!--<Skin>: Texture name-->
<Skin>Plus</Skin>
<!--<SkinSelected>: Texture name for selected button-->
<SkinSelected>Plus</SkinSelected>
<!--<X>, <Y>, <Z>, <W>, <H>: Button position, width and height-->
<X>145</X>
<Y>1200</Y>
<Z>0,00</Z>
<W>40</W>
<H>40</H>
<!--<Color>: Button color from ColorScheme (high priority)-->
<!--or <R>, <G>, <B>, <A> (lower priority)-->
<Color>ButtonColor</Color>
<!--<SColor>: Selected button color from ColorScheme (high priority)-->
<!--or <SR>, <SG>, <SB>, <SA> (lower priority)-->
<SColor>ButtonSColor</SColor>
<Text>
<!--<X>, <Y>: Text position-->
<X>75</X>
<Y>10</Y>
<!--<H>: Text height-->
<H>27</H>
<!--<MaxW>: Maximum text width (if exists)-->
<MaxW>142</MaxW>
<!--<Color>: Text color from ColorScheme (high priority)-->
<!--or <R>, <G>, <B>, <A> (lower priority)-->
<Color>ButtonTextColor</Color>
<!--<SColor>: Selected Text color from ColorScheme (high priority)-->
<!--or <SR>, <SG>, <SB>, <SA> (lower priority)-->
<SColor>ButtonTextSColor</SColor>
<!--<Align>: Text align horizontal: Left, Center, Right-->
<Align>Center</Align>
<!--<HAlign>: Text align vertical (on downsizing): Top, Center, Bottom-->
<HAlign>Center</HAlign>
<!--<Style>: Text style: Normal, Italic, Bold, BoldItalic-->
<Style>Bold</Style>
<!--<Font>: Text font name-->
<Font>Outline</Font>
<!--<Text>: Nothing or translation tag-->
<Text />
</Text>
<!--<Reflection> If exists:-->
<!-- <Space>: Reflection Space-->
<!-- <Height>: Reflection Height-->
<!--<SReflection> If exists:-->
<!-- <Space>: Reflection Space of selected button-->
<!-- <Height>: Reflection Height of selected button-->
</ButtonIncreaseTeams>
<ButtonDecreaseTeams>
<!--<Skin>: Texture name-->
<Skin>Minus</Skin>
<!--<SkinSelected>: Texture name for selected button-->
<SkinSelected>Minus</SkinSelected>
<!--<X>, <Y>, <Z>, <W>, <H>: Button position, width and height-->
<X>145</X>
<Y>1200</Y>
<Z>0,00</Z>
<W>40</W>
<H>40</H>
<!--<Color>: Button color from ColorScheme (high priority)-->
<!--or <R>, <G>, <B>, <A> (lower priority)-->
<Color>ButtonColor</Color>
<!--<SColor>: Selected button color from ColorScheme (high priority)-->
<!--or <SR>, <SG>, <SB>, <SA> (lower priority)-->
<SColor>ButtonSColor</SColor>
<Text>
<!--<X>, <Y>: Text position-->
<X>75</X>
<Y>10</Y>
<!--<H>: Text height-->
<H>27</H>
<!--<MaxW>: Maximum text width (if exists)-->
<MaxW>142</MaxW>
<!--<Color>: Text color from ColorScheme (high priority)-->
<!--or <R>, <G>, <B>, <A> (lower priority)-->
<Color>ButtonTextColor</Color>
<!--<SColor>: Selected Text color from ColorScheme (high priority)-->
<!--or <SR>, <SG>, <SB>, <SA> (lower priority)-->
<SColor>ButtonTextSColor</SColor>
<!--<Align>: Text align horizontal: Left, Center, Right-->
<Align>Center</Align>
<!--<HAlign>: Text align vertical (on downsizing): Top, Center, Bottom-->
<HAlign>Center</HAlign>
<!--<Style>: Text style: Normal, Italic, Bold, BoldItalic-->
<Style>Bold</Style>
<!--<Font>: Text font name-->
<Font>Outline</Font>
<!--<Text>: Nothing or translation tag-->
<Text />
</Text>
<!--<Reflection> If exists:-->
<!-- <Space>: Reflection Space-->
<!-- <Height>: Reflection Height-->
<!--<SReflection> If exists:-->
<!-- <Space>: Reflection Space of selected button-->
<!-- <Height>: Reflection Height of selected button-->
</ButtonDecreaseTeams>
<SelectSlideTeams>
<!--<Skin>: Texture name-->
<Skin>Invisible</Skin>
<!--<SkinArrowLeft>: Texture name of left arrow-->
<SkinArrowLeft>SelectSlideArrowLeft</SkinArrowLeft>
<!--<SkinArrowRight>: Texture name of right arrow-->
<SkinArrowRight>SelectSlideArrowRight</SkinArrowRight>
<!--<SkinSelected>: Texture name for selected SelectSlide-->
<SkinSelected>SelectSlide</SkinSelected>
<!--<SkinArrowLeftSelected>: Texture name of selected left arrow-->
<SkinArrowLeftSelected>SelectSlideArrowLeft</SkinArrowLeftSelected>
<!--<SkinArrowRightSelected>: Texture name of selected right arrow-->
<SkinArrowRightSelected>SelectSlideArrowRight</SkinArrowRightSelected>
<!--<SkinHighlighted>: Texture name for highlighted SelectSlide-->
<SkinHighlighted>SelectSlide</SkinHighlighted>
<!--<X>, <Y>, <Z>, <W>, <H>: SelectSlide position, width and height-->
<X>40</X>
<Y>100</Y>
<Z>0,00</Z>
<W>1200</W>
<H>50</H>
<!--<ArrowLeftX>, <ArrowLeftY>, <ArrowLeftZ>, <ArrowLeftW>, <ArrowLeftH>: Left arrow position, width and height-->
<ArrowLeftX>45</ArrowLeftX>
<ArrowLeftY>105</ArrowLeftY>
<ArrowLeftZ>0,00</ArrowLeftZ>
<ArrowLeftW>40</ArrowLeftW>
<ArrowLeftH>40</ArrowLeftH>
<!--<ArrowRightX>, <ArrowRightY>, <ArrowRightZ>, <ArrowRightW>, <ArrowRightH>: Right arrow position, width and height-->
<ArrowRightX>1170</ArrowRightX>
<ArrowRightY>105</ArrowRightY>
<ArrowRightZ>0,00</ArrowRightZ>
<ArrowRightW>40</ArrowRightW>
<ArrowRightH>40</ArrowRightH>
<!--<Color>: SelectSlide color from ColorScheme (high priority)-->
<!--or <R>, <G>, <B>, <A> (lower priority)-->
<Color>SelectSlideColor</Color>
<!--<SColor>: Selected SelectSlide color from ColorScheme (high priority)-->
<!--or <SR>, <SG>, <SB>, <SA> (lower priority)-->
<SColor>SelectSlideSColor</SColor>
<!--<HColor>: Highlighted SelectSlide color from ColorScheme (high priority)-->
<!--or <HR>, <HG>, <HB>, <HA> (lower priority)-->
<HColor>SelectSlideHColor</HColor>
<!--<ArrowColor>: Arrow color from ColorScheme (high priority)-->
<!--or <ArrowR>, <ArrowG>, <ArrowB>, <ArrowA> (lower priority)-->
<ArrowColor>ArrowColor</ArrowColor>
<!--<ArrowSColor>: Selected arrow color from ColorScheme (high priority)-->
<!--or <ArrowSR>, <ArrowSG>, <ArrowSB>, <ArrowSA> (lower priority)-->
<ArrowSColor>ArrowSColor</ArrowSColor>
<!--<TextColor>: Text color from ColorScheme (high priority)-->
<!--or <TextR>, <TextG>, <TextB>, <TextA> (lower priority)-->
<TextColor>TextColor</TextColor>
<!--<TextSColor>: Selected text color from ColorScheme (high priority)-->
<!--or <TextSR>, <TextSG>, <TextSB>, <TextSA> (lower priority)-->
<TextSColor>TextSColor</TextSColor>
<!--<TextH>: Text height-->
<TextH>27,00</TextH>
<!--<TextRelativeX>: Text relative x-position-->
<!--<TextRelativeY>: Text relative y-position-->
<!--<TextMaxW>: Maximum text width (if exists)-->
<TextMaxW>205,33</TextMaxW>
<!--<TextFont>: Text font name-->
<TextFont>Outline</TextFont>
<!--<TextStyle>: Text style: Normal, Italic, Bold, BoldItalic-->
<TextStyle>Bold</TextStyle>
<!--<NumVisible>: Number of visible elements in the slide-->
<NumVisible>2</NumVisible>
</SelectSlideTeams>
<SelectSlidePlayer>
<!--<Skin>: Texture name-->
<Skin>Invisible</Skin>
<!--<SkinArrowLeft>: Texture name of left arrow-->
<SkinArrowLeft>SelectSlideArrowLeft</SkinArrowLeft>
<!--<SkinArrowRight>: Texture name of right arrow-->
<SkinArrowRight>SelectSlideArrowRight</SkinArrowRight>
<!--<SkinSelected>: Texture name for selected SelectSlide-->
<SkinSelected>SelectSlidePlayer</SkinSelected>
<!--<SkinArrowLeftSelected>: Texture name of selected left arrow-->
<SkinArrowLeftSelected>SelectSlideArrowLeft</SkinArrowLeftSelected>
<!--<SkinArrowRightSelected>: Texture name of selected right arrow-->
<SkinArrowRightSelected>SelectSlideArrowRight</SkinArrowRightSelected>
<!--<SkinHighlighted>: Texture name for highlighted SelectSlide-->
<SkinHighlighted>SelectSlidePlayer</SkinHighlighted>
<!--<X>, <Y>, <Z>, <W>, <H>: SelectSlide position, width and height-->
<X>40</X>
<Y>160</Y>
<Z>0,00</Z>
<W>1200</W>
<H>150</H>
<!--<ArrowLeftX>, <ArrowLeftY>, <ArrowLeftZ>, <ArrowLeftW>, <ArrowLeftH>: Left arrow position, width and height-->
<ArrowLeftX>45</ArrowLeftX>
<ArrowLeftY>210</ArrowLeftY>
<ArrowLeftZ>0,00</ArrowLeftZ>
<ArrowLeftW>40</ArrowLeftW>
<ArrowLeftH>40</ArrowLeftH>
<!--<ArrowRightX>, <ArrowRightY>, <ArrowRightZ>, <ArrowRightW>, <ArrowRightH>: Right arrow position, width and height-->
<ArrowRightX>1170</ArrowRightX>
<ArrowRightY>210</ArrowRightY>
<ArrowRightZ>0,00</ArrowRightZ>
<ArrowRightW>40</ArrowRightW>
<ArrowRightH>40</ArrowRightH>
<!--<Color>: SelectSlide color from ColorScheme (high priority)-->
<!--or <R>, <G>, <B>, <A> (lower priority)-->
<Color>SelectSlideColor</Color>
<!--<SColor>: Selected SelectSlide color from ColorScheme (high priority)-->
<!--or <SR>, <SG>, <SB>, <SA> (lower priority)-->
<SColor>SelectSlideSColor</SColor>
<!--<HColor>: Highlighted SelectSlide color from ColorScheme (high priority)-->
<!--or <HR>, <HG>, <HB>, <HA> (lower priority)-->
<HColor>SelectSlideHColor</HColor>
<!--<ArrowColor>: Arrow color from ColorScheme (high priority)-->
<!--or <ArrowR>, <ArrowG>, <ArrowB>, <ArrowA> (lower priority)-->
<ArrowColor>ArrowColor</ArrowColor>
<!--<ArrowSColor>: Selected arrow color from ColorScheme (high priority)-->
<!--or <ArrowSR>, <ArrowSG>, <ArrowSB>, <ArrowSA> (lower priority)-->
<ArrowSColor>ArrowSColor</ArrowSColor>
<!--<TextColor>: Text color from ColorScheme (high priority)-->
<!--or <TextR>, <TextG>, <TextB>, <TextA> (lower priority)-->
<TextColor>TextColor</TextColor>
<!--<TextSColor>: Selected text color from ColorScheme (high priority)-->
<!--or <TextSR>, <TextSG>, <TextSB>, <TextSA> (lower priority)-->
<TextSColor>TextSColor</TextSColor>
<!--<TextH>: Text height-->
<TextH>27,00</TextH>
<!--<TextRelativeX>: Text relative x-position-->
<!--<TextRelativeY>: Text relative y-position-->
<TextRelativeY>-5,00</TextRelativeY>
<!--<TextMaxW>: Maximum text width (if exists)-->
<TextMaxW>205,33</TextMaxW>
<!--<TextFont>: Text font name-->
<TextFont>Outline</TextFont>
<!--<TextStyle>: Text style: Normal, Italic, Bold, BoldItalic-->
<TextStyle>Bold</TextStyle>
<!--<NumVisible>: Number of visible elements in the slide-->
<NumVisible>8</NumVisible>
</SelectSlidePlayer>
<NameSelection>
<!--<X>, <Y>, <Z>, <W>, <H>: NameSelection position, width and height-->
<X>42</X>
<Y>327</Y>
<Z>0,00</Z>
<W>1200</W>
<H>393</H>
<!--<SkinEmptyTile>: Texture name-->
<SkinEmptyTile>CoverTile</SkinEmptyTile>
<!--<ColorEmptyTile>: Static color from ColorScheme (high priority)-->
<!--or <R>, <G>, <B>, <A> (lower priority)-->
<R>1,00</R>
<G>1,00</G>
<B>1,00</B>
<A>0,20</A>
<!--<SkinTileSelected>: Texture name-->
<SkinTileSelected>PlayerSelector</SkinTileSelected>
<!--<Tiles>: Options for tiles-->
<Tiles>
<!--<W>, <H>: Width and height of tile-->
<W>100</W>
<H>100</H>
<!--<NumW>, <NumH>: Number of tiles-->
<NumW>10</NumW>
<NumH>2</NumH>
<!--<SpaceW>, <SpaceH>: Space between tiles-->
<SpaceW>20,71</SpaceW>
<SpaceH>30,00</SpaceH>
<!--<Name>: Options for player-name-->
<Name>
<!--<Space>: Space between name and tile-->
<Space>2,0</Space>
<!--<Font>: Text font name-->
<Font>Outline</Font>
<!--<Color>: Text color from ColorScheme (high priority)-->
<Color>TextColor</Color>
<!--<Style>: Text style: Normal, Italic, Bold, BoldItalic-->
<Style>Bold</Style>
<!--<H>: Text height-->
<H>17</H>
</Name>
</Tiles>
</NameSelection>
</PartyScreenChallengeNames>
</root>
Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.2 KiB

@@ -148,8 +148,11 @@
<ScrollUp>ScrollUp.png</ScrollUp>
<ScrollDown>ScrollDown.png</ScrollDown>
<Invisible>Invisible.png</Invisible>
<PlayerSelector>PlayerSelector.png</PlayerSelector>
<Plus>Plus.png</Plus>
<Minus>Minus.png</Minus>
</Skins>
<Videos>
<BG_Video>[Blue]BG_Video.mp4</BG_Video>
</Videos>
</root>
</root>
@@ -15,6 +15,7 @@
<string name="TR_SCREENCONFIG_NUMMICS">Number of mics</string>
<string name="TR_SCREENCONFIG_NUMROUNDS">Number of rounds</string>
<string name="TR_SCREENNAMES_TITLE">Challenge Medley Mode: Choose Player</string>
<string name="TR_SCREENNAMES_BUTTON_RANDOM">Select random</string>
<string name="TR_SCREENMAIN_TITLE">Challenge Medley Mode: Overview</string>
<string name="TR_SCREENMAIN_TABLE_POS">Pos</string>
<string name="TR_SCREENMAIN_TABLE_PLAYERNAME">Name</string>
@@ -57,7 +57,7 @@
<!--<Reflection> If exists:-->
<!-- <Space>: Reflection Space-->
<!-- <Height>: Reflection Height-->
</Text1>
</Text1>
<ButtonNext>
<!--<Skin>: Texture name-->
<Skin>Button</Skin>
@@ -65,7 +65,7 @@
<SkinSelected>Button</SkinSelected>
<!--<X>, <Y>, <Z>, <W>, <H>: Button position, width and height-->
<X>985</X>
<Y>600</Y>
<Y>625</Y>
<Z>0,00</Z>
<W>150</W>
<H>50</H>
@@ -122,7 +122,7 @@
<SkinSelected>Button</SkinSelected>
<!--<X>, <Y>, <Z>, <W>, <H>: Button position, width and height-->
<X>145</X>
<Y>600</Y>
<Y>625</Y>
<Z>0,00</Z>
<W>150</W>
<H>50</H>
@@ -172,17 +172,17 @@
<Height>26</Height>
</SReflection>
</ButtonBack>
<ButtonPlayerDestination>
<ButtonRandom>
<!--<Skin>: Texture name-->
<Skin>CoverTile</Skin>
<Skin>Button</Skin>
<!--<SkinSelected>: Texture name for selected button-->
<SkinSelected>CoverTile</SkinSelected>
<SkinSelected>Button</SkinSelected>
<!--<X>, <Y>, <Z>, <W>, <H>: Button position, width and height-->
<X>0</X>
<Y>0</Y>
<X>565</X>
<Y>625</Y>
<Z>0,00</Z>
<W>100</W>
<H>100</H>
<W>150</W>
<H>50</H>
<!--<Color>: Button color from ColorScheme (high priority)-->
<!--or <R>, <G>, <B>, <A> (lower priority)-->
<Color>ButtonColor</Color>
@@ -191,12 +191,69 @@
<SColor>ButtonSColor</SColor>
<Text>
<!--<X>, <Y>: Text position-->
<X>50</X>
<Y>102</Y>
<X>75</X>
<Y>10</Y>
<!--<H>: Text height-->
<H>20</H>
<H>27</H>
<!--<MaxW>: Maximum text width (if exists)-->
<MaxW>98</MaxW>
<MaxW>142</MaxW>
<!--<Color>: Text color from ColorScheme (high priority)-->
<!--or <R>, <G>, <B>, <A> (lower priority)-->
<Color>ButtonTextColor</Color>
<!--<SColor>: Selected Text color from ColorScheme (high priority)-->
<!--or <SR>, <SG>, <SB>, <SA> (lower priority)-->
<SColor>ButtonTextSColor</SColor>
<!--<Align>: Text align horizontal: Left, Center, Right-->
<Align>Center</Align>
<!--<HAlign>: Text align vertical (on downsizing): Top, Center, Bottom-->
<HAlign>Center</HAlign>
<!--<Style>: Text style: Normal, Italic, Bold, BoldItalic-->
<Style>Bold</Style>
<!--<Font>: Text font name-->
<Font>Outline</Font>
<!--<Text>: Nothing or translation tag-->
<Text>TR_SCREENNAMES_BUTTON_RANDOM</Text>
</Text>
<!--<Reflection> If exists:-->
<!-- <Space>: Reflection Space-->
<!-- <Height>: Reflection Height-->
<Reflection>
<Space>10</Space>
<Height>26</Height>
</Reflection>
<!--<SReflection> If exists:-->
<!-- <Space>: Reflection Space of selected button-->
<!-- <Height>: Reflection Height of selected button-->
<SReflection>
<Space>10</Space>
<Height>26</Height>
</SReflection>
</ButtonRandom>
<ButtonIncreasePlayer>
<!--<Skin>: Texture name-->
<Skin>Plus</Skin>
<!--<SkinSelected>: Texture name for selected button-->
<SkinSelected>Plus</SkinSelected>
<!--<X>, <Y>, <Z>, <W>, <H>: Button position, width and height-->
<X>145</X>
<Y>1200</Y>
<Z>0,00</Z>
<W>40</W>
<H>40</H>
<!--<Color>: Button color from ColorScheme (high priority)-->
<!--or <R>, <G>, <B>, <A> (lower priority)-->
<Color>ButtonColor</Color>
<!--<SColor>: Selected button color from ColorScheme (high priority)-->
<!--or <SR>, <SG>, <SB>, <SA> (lower priority)-->
<SColor>ButtonSColor</SColor>
<Text>
<!--<X>, <Y>: Text position-->
<X>75</X>
<Y>10</Y>
<!--<H>: Text height-->
<H>27</H>
<!--<MaxW>: Maximum text width (if exists)-->
<MaxW>142</MaxW>
<!--<Color>: Text color from ColorScheme (high priority)-->
<!--or <R>, <G>, <B>, <A> (lower priority)-->
<Color>ButtonTextColor</Color>
@@ -220,18 +277,18 @@
<!--<SReflection> If exists:-->
<!-- <Space>: Reflection Space of selected button-->
<!-- <Height>: Reflection Height of selected button-->
</ButtonPlayerDestination>
<ButtonPlayerChoose>
</ButtonIncreasePlayer>
<ButtonDecreasePlayer>
<!--<Skin>: Texture name-->
<Skin>CoverTile</Skin>
<Skin>Minus</Skin>
<!--<SkinSelected>: Texture name for selected button-->
<SkinSelected>CoverTile</SkinSelected>
<SkinSelected>Minus</SkinSelected>
<!--<X>, <Y>, <Z>, <W>, <H>: Button position, width and height-->
<X>0</X>
<Y>0</Y>
<X>145</X>
<Y>1200</Y>
<Z>0,00</Z>
<W>100</W>
<H>100</H>
<W>40</W>
<H>40</H>
<!--<Color>: Button color from ColorScheme (high priority)-->
<!--or <R>, <G>, <B>, <A> (lower priority)-->
<Color>ButtonColor</Color>
@@ -240,12 +297,12 @@
<SColor>ButtonSColor</SColor>
<Text>
<!--<X>, <Y>: Text position-->
<X>50</X>
<Y>102</Y>
<X>75</X>
<Y>10</Y>
<!--<H>: Text height-->
<H>20</H>
<H>27</H>
<!--<MaxW>: Maximum text width (if exists)-->
<MaxW>98</MaxW>
<MaxW>142</MaxW>
<!--<Color>: Text color from ColorScheme (high priority)-->
<!--or <R>, <G>, <B>, <A> (lower priority)-->
<Color>ButtonTextColor</Color>
@@ -269,6 +326,282 @@
<!--<SReflection> If exists:-->
<!-- <Space>: Reflection Space of selected button-->
<!-- <Height>: Reflection Height of selected button-->
</ButtonPlayerChoose>
</ButtonDecreasePlayer>
<ButtonIncreaseTeams>
<!--<Skin>: Texture name-->
<Skin>Plus</Skin>
<!--<SkinSelected>: Texture name for selected button-->
<SkinSelected>Plus</SkinSelected>
<!--<X>, <Y>, <Z>, <W>, <H>: Button position, width and height-->
<X>145</X>
<Y>1200</Y>
<Z>0,00</Z>
<W>40</W>
<H>40</H>
<!--<Color>: Button color from ColorScheme (high priority)-->
<!--or <R>, <G>, <B>, <A> (lower priority)-->
<Color>ButtonColor</Color>
<!--<SColor>: Selected button color from ColorScheme (high priority)-->
<!--or <SR>, <SG>, <SB>, <SA> (lower priority)-->
<SColor>ButtonSColor</SColor>
<Text>
<!--<X>, <Y>: Text position-->
<X>75</X>
<Y>10</Y>
<!--<H>: Text height-->
<H>27</H>
<!--<MaxW>: Maximum text width (if exists)-->
<MaxW>142</MaxW>
<!--<Color>: Text color from ColorScheme (high priority)-->
<!--or <R>, <G>, <B>, <A> (lower priority)-->
<Color>ButtonTextColor</Color>
<!--<SColor>: Selected Text color from ColorScheme (high priority)-->
<!--or <SR>, <SG>, <SB>, <SA> (lower priority)-->
<SColor>ButtonTextSColor</SColor>
<!--<Align>: Text align horizontal: Left, Center, Right-->
<Align>Center</Align>
<!--<HAlign>: Text align vertical (on downsizing): Top, Center, Bottom-->
<HAlign>Center</HAlign>
<!--<Style>: Text style: Normal, Italic, Bold, BoldItalic-->
<Style>Bold</Style>
<!--<Font>: Text font name-->
<Font>Outline</Font>
<!--<Text>: Nothing or translation tag-->
<Text />
</Text>
<!--<Reflection> If exists:-->
<!-- <Space>: Reflection Space-->
<!-- <Height>: Reflection Height-->
<!--<SReflection> If exists:-->
<!-- <Space>: Reflection Space of selected button-->
<!-- <Height>: Reflection Height of selected button-->
</ButtonIncreaseTeams>
<ButtonDecreaseTeams>
<!--<Skin>: Texture name-->
<Skin>Minus</Skin>
<!--<SkinSelected>: Texture name for selected button-->
<SkinSelected>Minus</SkinSelected>
<!--<X>, <Y>, <Z>, <W>, <H>: Button position, width and height-->
<X>145</X>
<Y>1200</Y>
<Z>0,00</Z>
<W>40</W>
<H>40</H>
<!--<Color>: Button color from ColorScheme (high priority)-->
<!--or <R>, <G>, <B>, <A> (lower priority)-->
<Color>ButtonColor</Color>
<!--<SColor>: Selected button color from ColorScheme (high priority)-->
<!--or <SR>, <SG>, <SB>, <SA> (lower priority)-->
<SColor>ButtonSColor</SColor>
<Text>
<!--<X>, <Y>: Text position-->
<X>75</X>
<Y>10</Y>
<!--<H>: Text height-->
<H>27</H>
<!--<MaxW>: Maximum text width (if exists)-->
<MaxW>142</MaxW>
<!--<Color>: Text color from ColorScheme (high priority)-->
<!--or <R>, <G>, <B>, <A> (lower priority)-->
<Color>ButtonTextColor</Color>
<!--<SColor>: Selected Text color from ColorScheme (high priority)-->
<!--or <SR>, <SG>, <SB>, <SA> (lower priority)-->
<SColor>ButtonTextSColor</SColor>
<!--<Align>: Text align horizontal: Left, Center, Right-->
<Align>Center</Align>
<!--<HAlign>: Text align vertical (on downsizing): Top, Center, Bottom-->
<HAlign>Center</HAlign>
<!--<Style>: Text style: Normal, Italic, Bold, BoldItalic-->
<Style>Bold</Style>
<!--<Font>: Text font name-->
<Font>Outline</Font>
<!--<Text>: Nothing or translation tag-->
<Text />
</Text>
<!--<Reflection> If exists:-->
<!-- <Space>: Reflection Space-->
<!-- <Height>: Reflection Height-->
<!--<SReflection> If exists:-->
<!-- <Space>: Reflection Space of selected button-->
<!-- <Height>: Reflection Height of selected button-->
</ButtonDecreaseTeams>
<SelectSlideTeams>
<!--<Skin>: Texture name-->
<Skin>Invisible</Skin>
<!--<SkinArrowLeft>: Texture name of left arrow-->
<SkinArrowLeft>SelectSlideArrowLeft</SkinArrowLeft>
<!--<SkinArrowRight>: Texture name of right arrow-->
<SkinArrowRight>SelectSlideArrowRight</SkinArrowRight>
<!--<SkinSelected>: Texture name for selected SelectSlide-->
<SkinSelected>SelectSlide</SkinSelected>
<!--<SkinArrowLeftSelected>: Texture name of selected left arrow-->
<SkinArrowLeftSelected>SelectSlideArrowLeft</SkinArrowLeftSelected>
<!--<SkinArrowRightSelected>: Texture name of selected right arrow-->
<SkinArrowRightSelected>SelectSlideArrowRight</SkinArrowRightSelected>
<!--<SkinHighlighted>: Texture name for highlighted SelectSlide-->
<SkinHighlighted>SelectSlide</SkinHighlighted>
<!--<X>, <Y>, <Z>, <W>, <H>: SelectSlide position, width and height-->
<X>40</X>
<Y>100</Y>
<Z>0,00</Z>
<W>1200</W>
<H>50</H>
<!--<ArrowLeftX>, <ArrowLeftY>, <ArrowLeftZ>, <ArrowLeftW>, <ArrowLeftH>: Left arrow position, width and height-->
<ArrowLeftX>45</ArrowLeftX>
<ArrowLeftY>105</ArrowLeftY>
<ArrowLeftZ>0,00</ArrowLeftZ>
<ArrowLeftW>40</ArrowLeftW>
<ArrowLeftH>40</ArrowLeftH>
<!--<ArrowRightX>, <ArrowRightY>, <ArrowRightZ>, <ArrowRightW>, <ArrowRightH>: Right arrow position, width and height-->
<ArrowRightX>1170</ArrowRightX>
<ArrowRightY>105</ArrowRightY>
<ArrowRightZ>0,00</ArrowRightZ>
<ArrowRightW>40</ArrowRightW>
<ArrowRightH>40</ArrowRightH>
<!--<Color>: SelectSlide color from ColorScheme (high priority)-->
<!--or <R>, <G>, <B>, <A> (lower priority)-->
<Color>SelectSlideColor</Color>
<!--<SColor>: Selected SelectSlide color from ColorScheme (high priority)-->
<!--or <SR>, <SG>, <SB>, <SA> (lower priority)-->
<SColor>SelectSlideSColor</SColor>
<!--<HColor>: Highlighted SelectSlide color from ColorScheme (high priority)-->
<!--or <HR>, <HG>, <HB>, <HA> (lower priority)-->
<HColor>SelectSlideHColor</HColor>
<!--<ArrowColor>: Arrow color from ColorScheme (high priority)-->
<!--or <ArrowR>, <ArrowG>, <ArrowB>, <ArrowA> (lower priority)-->
<ArrowColor>ArrowColor</ArrowColor>
<!--<ArrowSColor>: Selected arrow color from ColorScheme (high priority)-->
<!--or <ArrowSR>, <ArrowSG>, <ArrowSB>, <ArrowSA> (lower priority)-->
<ArrowSColor>ArrowSColor</ArrowSColor>
<!--<TextColor>: Text color from ColorScheme (high priority)-->
<!--or <TextR>, <TextG>, <TextB>, <TextA> (lower priority)-->
<TextColor>TextColor</TextColor>
<!--<TextSColor>: Selected text color from ColorScheme (high priority)-->
<!--or <TextSR>, <TextSG>, <TextSB>, <TextSA> (lower priority)-->
<TextSColor>TextSColor</TextSColor>
<!--<TextH>: Text height-->
<TextH>27,00</TextH>
<!--<TextRelativeX>: Text relative x-position-->
<!--<TextRelativeY>: Text relative y-position-->
<!--<TextMaxW>: Maximum text width (if exists)-->
<TextMaxW>205,33</TextMaxW>
<!--<TextFont>: Text font name-->
<TextFont>Outline</TextFont>
<!--<TextStyle>: Text style: Normal, Italic, Bold, BoldItalic-->
<TextStyle>Bold</TextStyle>
<!--<NumVisible>: Number of visible elements in the slide-->
<NumVisible>2</NumVisible>
</SelectSlideTeams>
<SelectSlidePlayer>
<!--<Skin>: Texture name-->
<Skin>Invisible</Skin>
<!--<SkinArrowLeft>: Texture name of left arrow-->
<SkinArrowLeft>SelectSlideArrowLeft</SkinArrowLeft>
<!--<SkinArrowRight>: Texture name of right arrow-->
<SkinArrowRight>SelectSlideArrowRight</SkinArrowRight>
<!--<SkinSelected>: Texture name for selected SelectSlide-->
<SkinSelected>SelectSlidePlayer</SkinSelected>
<!--<SkinArrowLeftSelected>: Texture name of selected left arrow-->
<SkinArrowLeftSelected>SelectSlideArrowLeft</SkinArrowLeftSelected>
<!--<SkinArrowRightSelected>: Texture name of selected right arrow-->
<SkinArrowRightSelected>SelectSlideArrowRight</SkinArrowRightSelected>
<!--<SkinHighlighted>: Texture name for highlighted SelectSlide-->
<SkinHighlighted>SelectSlidePlayer</SkinHighlighted>
<!--<X>, <Y>, <Z>, <W>, <H>: SelectSlide position, width and height-->
<X>40</X>
<Y>160</Y>
<Z>0,00</Z>
<W>1200</W>
<H>150</H>
<!--<ArrowLeftX>, <ArrowLeftY>, <ArrowLeftZ>, <ArrowLeftW>, <ArrowLeftH>: Left arrow position, width and height-->
<ArrowLeftX>45</ArrowLeftX>
<ArrowLeftY>210</ArrowLeftY>
<ArrowLeftZ>0,00</ArrowLeftZ>
<ArrowLeftW>40</ArrowLeftW>
<ArrowLeftH>40</ArrowLeftH>
<!--<ArrowRightX>, <ArrowRightY>, <ArrowRightZ>, <ArrowRightW>, <ArrowRightH>: Right arrow position, width and height-->
<ArrowRightX>1170</ArrowRightX>
<ArrowRightY>210</ArrowRightY>
<ArrowRightZ>0,00</ArrowRightZ>
<ArrowRightW>40</ArrowRightW>
<ArrowRightH>40</ArrowRightH>
<!--<Color>: SelectSlide color from ColorScheme (high priority)-->
<!--or <R>, <G>, <B>, <A> (lower priority)-->
<Color>SelectSlideColor</Color>
<!--<SColor>: Selected SelectSlide color from ColorScheme (high priority)-->
<!--or <SR>, <SG>, <SB>, <SA> (lower priority)-->
<SColor>SelectSlideSColor</SColor>
<!--<HColor>: Highlighted SelectSlide color from ColorScheme (high priority)-->
<!--or <HR>, <HG>, <HB>, <HA> (lower priority)-->
<HColor>SelectSlideHColor</HColor>
<!--<ArrowColor>: Arrow color from ColorScheme (high priority)-->
<!--or <ArrowR>, <ArrowG>, <ArrowB>, <ArrowA> (lower priority)-->
<ArrowColor>ArrowColor</ArrowColor>
<!--<ArrowSColor>: Selected arrow color from ColorScheme (high priority)-->
<!--or <ArrowSR>, <ArrowSG>, <ArrowSB>, <ArrowSA> (lower priority)-->
<ArrowSColor>ArrowSColor</ArrowSColor>
<!--<TextColor>: Text color from ColorScheme (high priority)-->
<!--or <TextR>, <TextG>, <TextB>, <TextA> (lower priority)-->
<TextColor>TextColor</TextColor>
<!--<TextSColor>: Selected text color from ColorScheme (high priority)-->
<!--or <TextSR>, <TextSG>, <TextSB>, <TextSA> (lower priority)-->
<TextSColor>TextSColor</TextSColor>
<!--<TextH>: Text height-->
<TextH>27,00</TextH>
<!--<TextRelativeX>: Text relative x-position-->
<!--<TextRelativeY>: Text relative y-position-->
<TextRelativeY>-5,00</TextRelativeY>
<!--<TextMaxW>: Maximum text width (if exists)-->
<TextMaxW>205,33</TextMaxW>
<!--<TextFont>: Text font name-->
<TextFont>Outline</TextFont>
<!--<TextStyle>: Text style: Normal, Italic, Bold, BoldItalic-->
<TextStyle>Bold</TextStyle>
<!--<NumVisible>: Number of visible elements in the slide-->
<NumVisible>8</NumVisible>
</SelectSlidePlayer>
<NameSelection>
<!--<X>, <Y>, <Z>, <W>, <H>: NameSelection position, width and height-->
<X>42</X>
<Y>327</Y>
<Z>0,00</Z>
<W>1200</W>
<H>393</H>
<!--<SkinEmptyTile>: Texture name-->
<SkinEmptyTile>CoverTile</SkinEmptyTile>
<!--<ColorEmptyTile>: Static color from ColorScheme (high priority)-->
<!--or <R>, <G>, <B>, <A> (lower priority)-->
<R>1,00</R>
<G>1,00</G>
<B>1,00</B>
<A>0,20</A>
<!--<SkinTileSelected>: Texture name-->
<SkinTileSelected>PlayerSelector</SkinTileSelected>
<!--<Tiles>: Options for tiles-->
<Tiles>
<!--<W>, <H>: Width and height of tile-->
<W>100</W>
<H>100</H>
<!--<NumW>, <NumH>: Number of tiles-->
<NumW>10</NumW>
<NumH>2</NumH>
<!--<SpaceW>, <SpaceH>: Space between tiles-->
<SpaceW>20,71</SpaceW>
<SpaceH>30,00</SpaceH>
<!--<Name>: Options for player-name-->
<Name>
<!--<Space>: Space between name and tile-->
<Space>2,0</Space>
<!--<Font>: Text font name-->
<Font>Outline</Font>
<!--<Color>: Text color from ColorScheme (high priority)-->
<Color>TextColor</Color>
<!--<Style>: Text style: Normal, Italic, Bold, BoldItalic-->
<Style>Bold</Style>
<!--<H>: Text height-->
<H>17</H>
</Name>
</Tiles>
</NameSelection>
</PartyScreenChallengeMedleyNames>
</root>
Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.2 KiB

@@ -148,8 +148,10 @@
<ScrollUp>ScrollUp.png</ScrollUp>
<ScrollDown>ScrollDown.png</ScrollDown>
<Invisible>Invisible.png</Invisible>
<Plus>Plus.png</Plus>
<Minus>Minus.png</Minus>
</Skins>
<Videos>
<BG_Video>[Blue]BG_Video.mp4</BG_Video>
</Videos>
</root>
</root>
@@ -24,6 +24,7 @@
<string name="TR_SCREENNAMES_TITLE">Tic-Tac-Toe: Choose Player</string>
<string name="TR_SCREENNAMES_TEAM1">Team 1</string>
<string name="TR_SCREENNAMES_TEAM2">Team 2</string>
<string name="TR_SCREENNAMES_BUTTON_RANDOM">Select random</string>
<string name="TR_SCREENMAIN_TITLE">Tic-Tac-Toe</string>
<string name="TR_SCREENMAIN_TEAM_CHOOSE">Choose a field.</string>
<string name="TR_SCREENMAIN_NEXT_PLAYER">Next player</string>
@@ -82,7 +82,7 @@
<!--<Font>: Text font name-->
<Font>Outline</Font>
<!--<Text>: Nothing or translation tag-->
<Text>TR_SCREENCONFIG_NUMPLAYERST1</Text>
<Text>TR_SCREENCONFIG_NUMFIELDS</Text>
<!--<Reflection> If exists:-->
<!-- <Space>: Reflection Space-->
<!-- <Height>: Reflection Height-->
@@ -111,41 +111,12 @@
<!--<Font>: Text font name-->
<Font>Outline</Font>
<!--<Text>: Nothing or translation tag-->
<Text>TR_SCREENCONFIG_NUMPLAYERST2</Text>
<Text>TR_SCREENCONFIG_SONGSOURCE</Text>
<!--<Reflection> If exists:-->
<!-- <Space>: Reflection Space-->
<!-- <Height>: Reflection Height-->
</Text3>
<Text4>
<!--<X>, <Y>: Text position-->
<X>75</X>
<Y>225</Y>
<!--<Z>: Text position-->
<Z>0,00</Z>
<!--<H>: Text height-->
<H>27</H>
<!--<MaxW>: Maximum text width (if exists)-->
<!--<Color>: Text color from ColorScheme (high priority)-->
<!--or <R>, <G>, <B>, <A> (lower priority)-->
<Color>StaticColor</Color>
<!--<SColor>: Selected Text color from ColorScheme (high priority)-->
<!--or <SR>, <SG>, <SB>, <SA> (lower priority)-->
<SColor>TextSColor</SColor>
<!--<Align>: Text align horizontal: Left, Center, Right-->
<Align>Left</Align>
<!--<HAlign>: Text align vertical (on downsizing): Top, Center, Bottom-->
<HAlign>Center</HAlign>
<!--<Style>: Text style: Normal, Italic, Bold, BoldItalic-->
<Style>Bold</Style>
<!--<Font>: Text font name-->
<Font>Outline</Font>
<!--<Text>: Nothing or translation tag-->
<Text>TR_SCREENCONFIG_NUMFIELDS</Text>
<!--<Reflection> If exists:-->
<!-- <Space>: Reflection Space-->
<!-- <Height>: Reflection Height-->
</Text4>
<Text5>
<!--<X>, <Y>: Text position-->
<X>75</X>
<Y>285</Y>
@@ -169,40 +140,11 @@
<!--<Font>: Text font name-->
<Font>Outline</Font>
<!--<Text>: Nothing or translation tag-->
<Text>TR_SCREENCONFIG_SONGSOURCE</Text>
<!--<Reflection> If exists:-->
<!-- <Space>: Reflection Space-->
<!-- <Height>: Reflection Height-->
</Text5>
<Text6>
<!--<X>, <Y>: Text position-->
<X>75</X>
<Y>405</Y>
<!--<Z>: Text position-->
<Z>0,00</Z>
<!--<H>: Text height-->
<H>27</H>
<!--<MaxW>: Maximum text width (if exists)-->
<!--<Color>: Text color from ColorScheme (high priority)-->
<!--or <R>, <G>, <B>, <A> (lower priority)-->
<Color>StaticColor</Color>
<!--<SColor>: Selected Text color from ColorScheme (high priority)-->
<!--or <SR>, <SG>, <SB>, <SA> (lower priority)-->
<SColor>TextSColor</SColor>
<!--<Align>: Text align horizontal: Left, Center, Right-->
<Align>Left</Align>
<!--<HAlign>: Text align vertical (on downsizing): Top, Center, Bottom-->
<HAlign>Center</HAlign>
<!--<Style>: Text style: Normal, Italic, Bold, BoldItalic-->
<Style>Bold</Style>
<!--<Font>: Text font name-->
<Font>Outline</Font>
<!--<Text>: Nothing or translation tag-->
<Text>TR_SCREENCONFIG_GAMEMODE</Text>
<!--<Reflection> If exists:-->
<!-- <Space>: Reflection Space-->
<!-- <Height>: Reflection Height-->
</Text6>
</Text4>
<ButtonNext>
<!--<Skin>: Texture name-->
<Skin>Button</Skin>
@@ -317,7 +259,7 @@
<Height>26</Height>
</SReflection>
</ButtonBack>
<SelectSlideNumPlayerTeam1>
<SelectSlideNumFields>
<!--<Skin>: Texture name-->
<Skin>Invisible</Skin>
<!--<SkinArrowLeft>: Texture name of left arrow-->
@@ -380,9 +322,9 @@
<!--<TextStyle>: Text style: Normal, Italic, Bold, BoldItalic-->
<TextStyle>Bold</TextStyle>
<!--<NumVisible>: Number of visible elements in the slide-->
<NumVisible>9</NumVisible>
</SelectSlideNumPlayerTeam1>
<SelectSlideNumPlayerTeam2>
<NumVisible>3</NumVisible>
</SelectSlideNumFields>
<SelectSlideSongSource>
<!--<Skin>: Texture name-->
<Skin>Invisible</Skin>
<!--<SkinArrowLeft>: Texture name of left arrow-->
@@ -445,9 +387,9 @@
<!--<TextStyle>: Text style: Normal, Italic, Bold, BoldItalic-->
<TextStyle>Bold</TextStyle>
<!--<NumVisible>: Number of visible elements in the slide-->
<NumVisible>9</NumVisible>
</SelectSlideNumPlayerTeam2>
<SelectSlideNumFields>
<NumVisible>3</NumVisible>
</SelectSlideSongSource>
<SelectSlidePlaylist>
<!--<Skin>: Texture name-->
<Skin>Invisible</Skin>
<!--<SkinArrowLeft>: Texture name of left arrow-->
@@ -510,9 +452,74 @@
<!--<TextStyle>: Text style: Normal, Italic, Bold, BoldItalic-->
<TextStyle>Bold</TextStyle>
<!--<NumVisible>: Number of visible elements in the slide-->
<NumVisible>3</NumVisible>
</SelectSlideNumFields>
<SelectSlideSongSource>
<NumVisible>1</NumVisible>
</SelectSlidePlaylist>
<SelectSlideCategory>
<!--<Skin>: Texture name-->
<Skin>Invisible</Skin>
<!--<SkinArrowLeft>: Texture name of left arrow-->
<SkinArrowLeft>SelectSlideArrowLeft</SkinArrowLeft>
<!--<SkinArrowRight>: Texture name of right arrow-->
<SkinArrowRight>SelectSlideArrowRight</SkinArrowRight>
<!--<SkinSelected>: Texture name for selected SelectSlide-->
<SkinSelected>SelectSlide</SkinSelected>
<!--<SkinArrowLeftSelected>: Texture name of selected left arrow-->
<SkinArrowLeftSelected>SelectSlideArrowLeft</SkinArrowLeftSelected>
<!--<SkinArrowRightSelected>: Texture name of selected right arrow-->
<SkinArrowRightSelected>SelectSlideArrowRight</SkinArrowRightSelected>
<!--<SkinHighlighted>: Texture name for highlighted SelectSlide-->
<SkinHighlighted>SelectSlide</SkinHighlighted>
<!--<X>, <Y>, <Z>, <W>, <H>: SelectSlide position, width and height-->
<X>500</X>
<Y>220</Y>
<Z>0,00</Z>
<W>700</W>
<H>50</H>
<!--<ArrowLeftX>, <ArrowLeftY>, <ArrowLeftZ>, <ArrowLeftW>, <ArrowLeftH>: Left arrow position, width and height-->
<ArrowLeftX>505</ArrowLeftX>
<ArrowLeftY>225</ArrowLeftY>
<ArrowLeftZ>0,00</ArrowLeftZ>
<ArrowLeftW>40</ArrowLeftW>
<ArrowLeftH>40</ArrowLeftH>
<!--<ArrowRightX>, <ArrowRightY>, <ArrowRightZ>, <ArrowRightW>, <ArrowRightH>: Right arrow position, width and height-->
<ArrowRightX>1170</ArrowRightX>
<ArrowRightY>225</ArrowRightY>
<ArrowRightZ>0,00</ArrowRightZ>
<ArrowRightW>40</ArrowRightW>
<ArrowRightH>40</ArrowRightH>
<!--<Color>: SelectSlide color from ColorScheme (high priority)-->
<!--or <R>, <G>, <B>, <A> (lower priority)-->
<Color>SelectSlideColor</Color>
<!--<SColor>: Selected SelectSlide color from ColorScheme (high priority)-->
<!--or <SR>, <SG>, <SB>, <SA> (lower priority)-->
<SColor>SelectSlideSColor</SColor>
<!--<HColor>: Highlighted SelectSlide color from ColorScheme (high priority)-->
<!--or <HR>, <HG>, <HB>, <HA> (lower priority)-->
<HColor>SelectSlideHColor</HColor>
<!--<ArrowColor>: Arrow color from ColorScheme (high priority)-->
<!--or <ArrowR>, <ArrowG>, <ArrowB>, <ArrowA> (lower priority)-->
<ArrowColor>ArrowColor</ArrowColor>
<!--<ArrowSColor>: Selected arrow color from ColorScheme (high priority)-->
<!--or <ArrowSR>, <ArrowSG>, <ArrowSB>, <ArrowSA> (lower priority)-->
<ArrowSColor>ArrowSColor</ArrowSColor>
<!--<TextColor>: Text color from ColorScheme (high priority)-->
<!--or <TextR>, <TextG>, <TextB>, <TextA> (lower priority)-->
<TextColor>TextColor</TextColor>
<!--<TextSColor>: Selected text color from ColorScheme (high priority)-->
<!--or <TextSR>, <TextSG>, <TextSB>, <TextSA> (lower priority)-->
<TextSColor>TextSColor</TextSColor>
<!--<TextH>: Text height-->
<TextH>27,00</TextH>
<!--<TextMaxW>: Maximum text width (if exists)-->
<TextMaxW>205,33</TextMaxW>
<!--<TextFont>: Text font name-->
<TextFont>Outline</TextFont>
<!--<TextStyle>: Text style: Normal, Italic, Bold, BoldItalic-->
<TextStyle>Bold</TextStyle>
<!--<NumVisible>: Number of visible elements in the slide-->
<NumVisible>1</NumVisible>
</SelectSlideCategory>
<SelectSlideGameMode>
<!--<Skin>: Texture name-->
<Skin>Invisible</Skin>
<!--<SkinArrowLeft>: Texture name of left arrow-->
@@ -575,201 +582,6 @@
<!--<TextStyle>: Text style: Normal, Italic, Bold, BoldItalic-->
<TextStyle>Bold</TextStyle>
<!--<NumVisible>: Number of visible elements in the slide-->
<NumVisible>3</NumVisible>
</SelectSlideSongSource>
<SelectSlidePlaylist>
<!--<Skin>: Texture name-->
<Skin>Invisible</Skin>
<!--<SkinArrowLeft>: Texture name of left arrow-->
<SkinArrowLeft>SelectSlideArrowLeft</SkinArrowLeft>
<!--<SkinArrowRight>: Texture name of right arrow-->
<SkinArrowRight>SelectSlideArrowRight</SkinArrowRight>
<!--<SkinSelected>: Texture name for selected SelectSlide-->
<SkinSelected>SelectSlide</SkinSelected>
<!--<SkinArrowLeftSelected>: Texture name of selected left arrow-->
<SkinArrowLeftSelected>SelectSlideArrowLeft</SkinArrowLeftSelected>
<!--<SkinArrowRightSelected>: Texture name of selected right arrow-->
<SkinArrowRightSelected>SelectSlideArrowRight</SkinArrowRightSelected>
<!--<SkinHighlighted>: Texture name for highlighted SelectSlide-->
<SkinHighlighted>SelectSlide</SkinHighlighted>
<!--<X>, <Y>, <Z>, <W>, <H>: SelectSlide position, width and height-->
<X>500</X>
<Y>340</Y>
<Z>0,00</Z>
<W>700</W>
<H>50</H>
<!--<ArrowLeftX>, <ArrowLeftY>, <ArrowLeftZ>, <ArrowLeftW>, <ArrowLeftH>: Left arrow position, width and height-->
<ArrowLeftX>505</ArrowLeftX>
<ArrowLeftY>345</ArrowLeftY>
<ArrowLeftZ>0,00</ArrowLeftZ>
<ArrowLeftW>40</ArrowLeftW>
<ArrowLeftH>40</ArrowLeftH>
<!--<ArrowRightX>, <ArrowRightY>, <ArrowRightZ>, <ArrowRightW>, <ArrowRightH>: Right arrow position, width and height-->
<ArrowRightX>1170</ArrowRightX>
<ArrowRightY>345</ArrowRightY>
<ArrowRightZ>0,00</ArrowRightZ>
<ArrowRightW>40</ArrowRightW>
<ArrowRightH>40</ArrowRightH>
<!--<Color>: SelectSlide color from ColorScheme (high priority)-->
<!--or <R>, <G>, <B>, <A> (lower priority)-->
<Color>SelectSlideColor</Color>
<!--<SColor>: Selected SelectSlide color from ColorScheme (high priority)-->
<!--or <SR>, <SG>, <SB>, <SA> (lower priority)-->
<SColor>SelectSlideSColor</SColor>
<!--<HColor>: Highlighted SelectSlide color from ColorScheme (high priority)-->
<!--or <HR>, <HG>, <HB>, <HA> (lower priority)-->
<HColor>SelectSlideHColor</HColor>
<!--<ArrowColor>: Arrow color from ColorScheme (high priority)-->
<!--or <ArrowR>, <ArrowG>, <ArrowB>, <ArrowA> (lower priority)-->
<ArrowColor>ArrowColor</ArrowColor>
<!--<ArrowSColor>: Selected arrow color from ColorScheme (high priority)-->
<!--or <ArrowSR>, <ArrowSG>, <ArrowSB>, <ArrowSA> (lower priority)-->
<ArrowSColor>ArrowSColor</ArrowSColor>
<!--<TextColor>: Text color from ColorScheme (high priority)-->
<!--or <TextR>, <TextG>, <TextB>, <TextA> (lower priority)-->
<TextColor>TextColor</TextColor>
<!--<TextSColor>: Selected text color from ColorScheme (high priority)-->
<!--or <TextSR>, <TextSG>, <TextSB>, <TextSA> (lower priority)-->
<TextSColor>TextSColor</TextSColor>
<!--<TextH>: Text height-->
<TextH>27,00</TextH>
<!--<TextMaxW>: Maximum text width (if exists)-->
<TextMaxW>205,33</TextMaxW>
<!--<TextFont>: Text font name-->
<TextFont>Outline</TextFont>
<!--<TextStyle>: Text style: Normal, Italic, Bold, BoldItalic-->
<TextStyle>Bold</TextStyle>
<!--<NumVisible>: Number of visible elements in the slide-->
<NumVisible>1</NumVisible>
</SelectSlidePlaylist>
<SelectSlideCategory>
<!--<Skin>: Texture name-->
<Skin>Invisible</Skin>
<!--<SkinArrowLeft>: Texture name of left arrow-->
<SkinArrowLeft>SelectSlideArrowLeft</SkinArrowLeft>
<!--<SkinArrowRight>: Texture name of right arrow-->
<SkinArrowRight>SelectSlideArrowRight</SkinArrowRight>
<!--<SkinSelected>: Texture name for selected SelectSlide-->
<SkinSelected>SelectSlide</SkinSelected>
<!--<SkinArrowLeftSelected>: Texture name of selected left arrow-->
<SkinArrowLeftSelected>SelectSlideArrowLeft</SkinArrowLeftSelected>
<!--<SkinArrowRightSelected>: Texture name of selected right arrow-->
<SkinArrowRightSelected>SelectSlideArrowRight</SkinArrowRightSelected>
<!--<SkinHighlighted>: Texture name for highlighted SelectSlide-->
<SkinHighlighted>SelectSlide</SkinHighlighted>
<!--<X>, <Y>, <Z>, <W>, <H>: SelectSlide position, width and height-->
<X>500</X>
<Y>340</Y>
<Z>0,00</Z>
<W>700</W>
<H>50</H>
<!--<ArrowLeftX>, <ArrowLeftY>, <ArrowLeftZ>, <ArrowLeftW>, <ArrowLeftH>: Left arrow position, width and height-->
<ArrowLeftX>505</ArrowLeftX>
<ArrowLeftY>345</ArrowLeftY>
<ArrowLeftZ>0,00</ArrowLeftZ>
<ArrowLeftW>40</ArrowLeftW>
<ArrowLeftH>40</ArrowLeftH>
<!--<ArrowRightX>, <ArrowRightY>, <ArrowRightZ>, <ArrowRightW>, <ArrowRightH>: Right arrow position, width and height-->
<ArrowRightX>1170</ArrowRightX>
<ArrowRightY>345</ArrowRightY>
<ArrowRightZ>0,00</ArrowRightZ>
<ArrowRightW>40</ArrowRightW>
<ArrowRightH>40</ArrowRightH>
<!--<Color>: SelectSlide color from ColorScheme (high priority)-->
<!--or <R>, <G>, <B>, <A> (lower priority)-->
<Color>SelectSlideColor</Color>
<!--<SColor>: Selected SelectSlide color from ColorScheme (high priority)-->
<!--or <SR>, <SG>, <SB>, <SA> (lower priority)-->
<SColor>SelectSlideSColor</SColor>
<!--<HColor>: Highlighted SelectSlide color from ColorScheme (high priority)-->
<!--or <HR>, <HG>, <HB>, <HA> (lower priority)-->
<HColor>SelectSlideHColor</HColor>
<!--<ArrowColor>: Arrow color from ColorScheme (high priority)-->
<!--or <ArrowR>, <ArrowG>, <ArrowB>, <ArrowA> (lower priority)-->
<ArrowColor>ArrowColor</ArrowColor>
<!--<ArrowSColor>: Selected arrow color from ColorScheme (high priority)-->
<!--or <ArrowSR>, <ArrowSG>, <ArrowSB>, <ArrowSA> (lower priority)-->
<ArrowSColor>ArrowSColor</ArrowSColor>
<!--<TextColor>: Text color from ColorScheme (high priority)-->
<!--or <TextR>, <TextG>, <TextB>, <TextA> (lower priority)-->
<TextColor>TextColor</TextColor>
<!--<TextSColor>: Selected text color from ColorScheme (high priority)-->
<!--or <TextSR>, <TextSG>, <TextSB>, <TextSA> (lower priority)-->
<TextSColor>TextSColor</TextSColor>
<!--<TextH>: Text height-->
<TextH>27,00</TextH>
<!--<TextMaxW>: Maximum text width (if exists)-->
<TextMaxW>205,33</TextMaxW>
<!--<TextFont>: Text font name-->
<TextFont>Outline</TextFont>
<!--<TextStyle>: Text style: Normal, Italic, Bold, BoldItalic-->
<TextStyle>Bold</TextStyle>
<!--<NumVisible>: Number of visible elements in the slide-->
<NumVisible>1</NumVisible>
</SelectSlideCategory>
<SelectSlideGameMode>
<!--<Skin>: Texture name-->
<Skin>Invisible</Skin>
<!--<SkinArrowLeft>: Texture name of left arrow-->
<SkinArrowLeft>SelectSlideArrowLeft</SkinArrowLeft>
<!--<SkinArrowRight>: Texture name of right arrow-->
<SkinArrowRight>SelectSlideArrowRight</SkinArrowRight>
<!--<SkinSelected>: Texture name for selected SelectSlide-->
<SkinSelected>SelectSlide</SkinSelected>
<!--<SkinArrowLeftSelected>: Texture name of selected left arrow-->
<SkinArrowLeftSelected>SelectSlideArrowLeft</SkinArrowLeftSelected>
<!--<SkinArrowRightSelected>: Texture name of selected right arrow-->
<SkinArrowRightSelected>SelectSlideArrowRight</SkinArrowRightSelected>
<!--<SkinHighlighted>: Texture name for highlighted SelectSlide-->
<SkinHighlighted>SelectSlide</SkinHighlighted>
<!--<X>, <Y>, <Z>, <W>, <H>: SelectSlide position, width and height-->
<X>500</X>
<Y>400</Y>
<Z>0,00</Z>
<W>700</W>
<H>50</H>
<!--<ArrowLeftX>, <ArrowLeftY>, <ArrowLeftZ>, <ArrowLeftW>, <ArrowLeftH>: Left arrow position, width and height-->
<ArrowLeftX>505</ArrowLeftX>
<ArrowLeftY>405</ArrowLeftY>
<ArrowLeftZ>0,00</ArrowLeftZ>
<ArrowLeftW>40</ArrowLeftW>
<ArrowLeftH>40</ArrowLeftH>
<!--<ArrowRightX>, <ArrowRightY>, <ArrowRightZ>, <ArrowRightW>, <ArrowRightH>: Right arrow position, width and height-->
<ArrowRightX>1170</ArrowRightX>
<ArrowRightY>405</ArrowRightY>
<ArrowRightZ>0,00</ArrowRightZ>
<ArrowRightW>40</ArrowRightW>
<ArrowRightH>40</ArrowRightH>
<!--<Color>: SelectSlide color from ColorScheme (high priority)-->
<!--or <R>, <G>, <B>, <A> (lower priority)-->
<Color>SelectSlideColor</Color>
<!--<SColor>: Selected SelectSlide color from ColorScheme (high priority)-->
<!--or <SR>, <SG>, <SB>, <SA> (lower priority)-->
<SColor>SelectSlideSColor</SColor>
<!--<HColor>: Highlighted SelectSlide color from ColorScheme (high priority)-->
<!--or <HR>, <HG>, <HB>, <HA> (lower priority)-->
<HColor>SelectSlideHColor</HColor>
<!--<ArrowColor>: Arrow color from ColorScheme (high priority)-->
<!--or <ArrowR>, <ArrowG>, <ArrowB>, <ArrowA> (lower priority)-->
<ArrowColor>ArrowColor</ArrowColor>
<!--<ArrowSColor>: Selected arrow color from ColorScheme (high priority)-->
<!--or <ArrowSR>, <ArrowSG>, <ArrowSB>, <ArrowSA> (lower priority)-->
<ArrowSColor>ArrowSColor</ArrowSColor>
<!--<TextColor>: Text color from ColorScheme (high priority)-->
<!--or <TextR>, <TextG>, <TextB>, <TextA> (lower priority)-->
<TextColor>TextColor</TextColor>
<!--<TextSColor>: Selected text color from ColorScheme (high priority)-->
<!--or <TextSR>, <TextSG>, <TextSB>, <TextSA> (lower priority)-->
<TextSColor>TextSColor</TextSColor>
<!--<TextH>: Text height-->
<TextH>27,00</TextH>
<!--<TextMaxW>: Maximum text width (if exists)-->
<TextMaxW>205,33</TextMaxW>
<!--<TextFont>: Text font name-->
<TextFont>Outline</TextFont>
<!--<TextStyle>: Text style: Normal, Italic, Bold, BoldItalic-->
<TextStyle>Bold</TextStyle>
<!--<NumVisible>: Number of visible elements in the slide-->
<NumVisible>1</NumVisible>
</SelectSlideGameMode>
</PartyScreenTicTacToeConfig>
@@ -57,163 +57,7 @@
<!--<Reflection> If exists:-->
<!-- <Space>: Reflection Space-->
<!-- <Height>: Reflection Height-->
</Text1>
<Text2>
<!--<X>, <Y>: Text position-->
<X>58</X>
<Y>375</Y>
<!--<Z>: Text position-->
<Z>-1,00</Z>
<!--<H>: Text height-->
<H>20</H>
<!--<MaxW>: Maximum text width (if exists)-->
<!--<Color>: Text color from ColorScheme (high priority)-->
<!--or <R>, <G>, <B>, <A> (lower priority)-->
<Color>Player1</Color>
<!--<SColor>: Selected Text color from ColorScheme (high priority)-->
<!--or <SR>, <SG>, <SB>, <SA> (lower priority)-->
<SColor>TextSColor</SColor>
<!--<Align>: Text align horizontal: Left, Center, Right-->
<Align>Center</Align>
<!--<HAlign>: Text align vertical (on downsizing): Top, Center, Bottom-->
<HAlign>Center</HAlign>
<!--<Style>: Text style: Normal, Italic, Bold, BoldItalic-->
<Style>Bold</Style>
<!--<Font>: Text font name-->
<Font>Outline</Font>
<!--<Text>: Nothing or translation tag-->
<Text>TR_SCREENNAMES_TEAM1</Text>
<!--<Reflection> If exists:-->
<!-- <Space>: Reflection Space-->
<!-- <Height>: Reflection Height-->
</Text2>
<Text3>
<!--<X>, <Y>: Text position-->
<X>58</X>
<Y>500</Y>
<!--<Z>: Text position-->
<Z>-1,00</Z>
<!--<H>: Text height-->
<H>20</H>
<!--<MaxW>: Maximum text width (if exists)-->
<!--<Color>: Text color from ColorScheme (high priority)-->
<!--or <R>, <G>, <B>, <A> (lower priority)-->
<Color>Player2</Color>
<!--<SColor>: Selected Text color from ColorScheme (high priority)-->
<!--or <SR>, <SG>, <SB>, <SA> (lower priority)-->
<SColor>TextSColor</SColor>
<!--<Align>: Text align horizontal: Left, Center, Right-->
<Align>Center</Align>
<!--<HAlign>: Text align vertical (on downsizing): Top, Center, Bottom-->
<HAlign>Center</HAlign>
<!--<Style>: Text style: Normal, Italic, Bold, BoldItalic-->
<Style>Bold</Style>
<!--<Font>: Text font name-->
<Font>Outline</Font>
<!--<Text>: Nothing or translation tag-->
<Text>TR_SCREENNAMES_TEAM2</Text>
<!--<Reflection> If exists:-->
<!-- <Space>: Reflection Space-->
<!-- <Height>: Reflection Height-->
</Text3>
<ButtonPlayerChooseScrollUp>
<!--<Skin>: Texture name-->
<Skin>ScrollUp</Skin>
<!--<SkinSelected>: Texture name for selected button-->
<SkinSelected>ScrollUp</SkinSelected>
<!--<X>, <Y>, <Z>, <W>, <H>: Button position, width and height-->
<X>609</X>
<Y>90</Y>
<Z>-0,01</Z>
<W>28</W>
<H>15</H>
<!--<Color>: Button color from ColorScheme (high priority)-->
<!--or <R>, <G>, <B>, <A> (lower priority)-->
<Color>ButtonColor</Color>
<!--<SColor>: Selected button color from ColorScheme (high priority)-->
<!--or <SR>, <SG>, <SB>, <SA> (lower priority)-->
<SColor>ButtonSColor</SColor>
<Text>
<!--<X>, <Y>: Text position-->
<X>75</X>
<Y>10</Y>
<!--<H>: Text height-->
<H>27</H>
<!--<MaxW>: Maximum text width (if exists)-->
<MaxW>142</MaxW>
<!--<Color>: Text color from ColorScheme (high priority)-->
<!--or <R>, <G>, <B>, <A> (lower priority)-->
<Color>ButtonTextColor</Color>
<!--<SColor>: Selected Text color from ColorScheme (high priority)-->
<!--or <SR>, <SG>, <SB>, <SA> (lower priority)-->
<SColor>ButtonTextSColor</SColor>
<!--<Align>: Text align horizontal: Left, Center, Right-->
<Align>Center</Align>
<!--<HAlign>: Text align vertical (on downsizing): Top, Center, Bottom-->
<HAlign>Center</HAlign>
<!--<Style>: Text style: Normal, Italic, Bold, BoldItalic-->
<Style>Bold</Style>
<!--<Font>: Text font name-->
<Font>Outline</Font>
<!--<Text>: Nothing or translation tag-->
<Text />
</Text>
<!--<Reflection> If exists:-->
<!-- <Space>: Reflection Space-->
<!-- <Height>: Reflection Height-->
<!--<SReflection> If exists:-->
<!-- <Space>: Reflection Space of selected button-->
<!-- <Height>: Reflection Height of selected button-->
</ButtonPlayerChooseScrollUp>
<ButtonPlayerChooseScrollDown>
<!--<Skin>: Texture name-->
<Skin>ScrollDown</Skin>
<!--<SkinSelected>: Texture name for selected button-->
<SkinSelected>ScrollDown</SkinSelected>
<!--<X>, <Y>, <Z>, <W>, <H>: Button position, width and height-->
<X>609</X>
<Y>345</Y>
<Z>-0,01</Z>
<W>28</W>
<H>15</H>
<!--<Color>: Button color from ColorScheme (high priority)-->
<!--or <R>, <G>, <B>, <A> (lower priority)-->
<Color>ButtonColor</Color>
<!--<SColor>: Selected button color from ColorScheme (high priority)-->
<!--or <SR>, <SG>, <SB>, <SA> (lower priority)-->
<SColor>ButtonSColor</SColor>
<Text>
<!--<X>, <Y>: Text position-->
<X>75</X>
<Y>10</Y>
<!--<H>: Text height-->
<H>27</H>
<!--<MaxW>: Maximum text width (if exists)-->
<MaxW>142</MaxW>
<!--<Color>: Text color from ColorScheme (high priority)-->
<!--or <R>, <G>, <B>, <A> (lower priority)-->
<Color>ButtonTextColor</Color>
<!--<SColor>: Selected Text color from ColorScheme (high priority)-->
<!--or <SR>, <SG>, <SB>, <SA> (lower priority)-->
<SColor>ButtonTextSColor</SColor>
<!--<Align>: Text align horizontal: Left, Center, Right-->
<Align>Center</Align>
<!--<HAlign>: Text align vertical (on downsizing): Top, Center, Bottom-->
<HAlign>Center</HAlign>
<!--<Style>: Text style: Normal, Italic, Bold, BoldItalic-->
<Style>Bold</Style>
<!--<Font>: Text font name-->
<Font>Outline</Font>
<!--<Text>: Nothing or translation tag-->
<Text />
</Text>
<!--<Reflection> If exists:-->
<!-- <Space>: Reflection Space-->
<!-- <Height>: Reflection Height-->
<!--<SReflection> If exists:-->
<!-- <Space>: Reflection Space of selected button-->
<!-- <Height>: Reflection Height of selected button-->
</ButtonPlayerChooseScrollDown>
</Text1>
<ButtonNext>
<!--<Skin>: Texture name-->
<Skin>Button</Skin>
@@ -328,17 +172,17 @@
<Height>26</Height>
</SReflection>
</ButtonBack>
<ButtonPlayerDestination>
<ButtonRandom>
<!--<Skin>: Texture name-->
<Skin>CoverTile</Skin>
<Skin>Button</Skin>
<!--<SkinSelected>: Texture name for selected button-->
<SkinSelected>CoverTile</SkinSelected>
<SkinSelected>Button</SkinSelected>
<!--<X>, <Y>, <Z>, <W>, <H>: Button position, width and height-->
<X>0</X>
<Y>0</Y>
<X>565</X>
<Y>625</Y>
<Z>0,00</Z>
<W>100</W>
<H>100</H>
<W>150</W>
<H>50</H>
<!--<Color>: Button color from ColorScheme (high priority)-->
<!--or <R>, <G>, <B>, <A> (lower priority)-->
<Color>ButtonColor</Color>
@@ -347,12 +191,69 @@
<SColor>ButtonSColor</SColor>
<Text>
<!--<X>, <Y>: Text position-->
<X>50</X>
<Y>102</Y>
<X>75</X>
<Y>10</Y>
<!--<H>: Text height-->
<H>20</H>
<H>27</H>
<!--<MaxW>: Maximum text width (if exists)-->
<MaxW>98</MaxW>
<MaxW>142</MaxW>
<!--<Color>: Text color from ColorScheme (high priority)-->
<!--or <R>, <G>, <B>, <A> (lower priority)-->
<Color>ButtonTextColor</Color>
<!--<SColor>: Selected Text color from ColorScheme (high priority)-->
<!--or <SR>, <SG>, <SB>, <SA> (lower priority)-->
<SColor>ButtonTextSColor</SColor>
<!--<Align>: Text align horizontal: Left, Center, Right-->
<Align>Center</Align>
<!--<HAlign>: Text align vertical (on downsizing): Top, Center, Bottom-->
<HAlign>Center</HAlign>
<!--<Style>: Text style: Normal, Italic, Bold, BoldItalic-->
<Style>Bold</Style>
<!--<Font>: Text font name-->
<Font>Outline</Font>
<!--<Text>: Nothing or translation tag-->
<Text>TR_SCREENNAMES_BUTTON_RANDOM</Text>
</Text>
<!--<Reflection> If exists:-->
<!-- <Space>: Reflection Space-->
<!-- <Height>: Reflection Height-->
<Reflection>
<Space>10</Space>
<Height>26</Height>
</Reflection>
<!--<SReflection> If exists:-->
<!-- <Space>: Reflection Space of selected button-->
<!-- <Height>: Reflection Height of selected button-->
<SReflection>
<Space>10</Space>
<Height>26</Height>
</SReflection>
</ButtonRandom>
<ButtonIncreasePlayer>
<!--<Skin>: Texture name-->
<Skin>Plus</Skin>
<!--<SkinSelected>: Texture name for selected button-->
<SkinSelected>Plus</SkinSelected>
<!--<X>, <Y>, <Z>, <W>, <H>: Button position, width and height-->
<X>1210</X>
<Y>210</Y>
<Z>0,00</Z>
<W>40</W>
<H>40</H>
<!--<Color>: Button color from ColorScheme (high priority)-->
<!--or <R>, <G>, <B>, <A> (lower priority)-->
<Color>ButtonColor</Color>
<!--<SColor>: Selected button color from ColorScheme (high priority)-->
<!--or <SR>, <SG>, <SB>, <SA> (lower priority)-->
<SColor>ButtonSColor</SColor>
<Text>
<!--<X>, <Y>: Text position-->
<X>75</X>
<Y>10</Y>
<!--<H>: Text height-->
<H>27</H>
<!--<MaxW>: Maximum text width (if exists)-->
<MaxW>142</MaxW>
<!--<Color>: Text color from ColorScheme (high priority)-->
<!--or <R>, <G>, <B>, <A> (lower priority)-->
<Color>ButtonTextColor</Color>
@@ -376,18 +277,18 @@
<!--<SReflection> If exists:-->
<!-- <Space>: Reflection Space of selected button-->
<!-- <Height>: Reflection Height of selected button-->
</ButtonPlayerDestination>
<ButtonPlayerChoose>
</ButtonIncreasePlayer>
<ButtonDecreasePlayer>
<!--<Skin>: Texture name-->
<Skin>CoverTile</Skin>
<Skin>Minus</Skin>
<!--<SkinSelected>: Texture name for selected button-->
<SkinSelected>CoverTile</SkinSelected>
<SkinSelected>Minus</SkinSelected>
<!--<X>, <Y>, <Z>, <W>, <H>: Button position, width and height-->
<X>0</X>
<Y>0</Y>
<X>1160</X>
<Y>210</Y>
<Z>0,00</Z>
<W>100</W>
<H>100</H>
<W>40</W>
<H>40</H>
<!--<Color>: Button color from ColorScheme (high priority)-->
<!--or <R>, <G>, <B>, <A> (lower priority)-->
<Color>ButtonColor</Color>
@@ -396,12 +297,12 @@
<SColor>ButtonSColor</SColor>
<Text>
<!--<X>, <Y>: Text position-->
<X>50</X>
<Y>102</Y>
<X>75</X>
<Y>10</Y>
<!--<H>: Text height-->
<H>20</H>
<H>27</H>
<!--<MaxW>: Maximum text width (if exists)-->
<MaxW>98</MaxW>
<MaxW>142</MaxW>
<!--<Color>: Text color from ColorScheme (high priority)-->
<!--or <R>, <G>, <B>, <A> (lower priority)-->
<Color>ButtonTextColor</Color>
@@ -425,6 +326,282 @@
<!--<SReflection> If exists:-->
<!-- <Space>: Reflection Space of selected button-->
<!-- <Height>: Reflection Height of selected button-->
</ButtonPlayerChoose>
</ButtonDecreasePlayer>
<ButtonIncreaseTeams>
<!--<Skin>: Texture name-->
<Skin>Plus</Skin>
<!--<SkinSelected>: Texture name for selected button-->
<SkinSelected>Plus</SkinSelected>
<!--<X>, <Y>, <Z>, <W>, <H>: Button position, width and height-->
<X>145</X>
<Y>1200</Y>
<Z>0,00</Z>
<W>40</W>
<H>40</H>
<!--<Color>: Button color from ColorScheme (high priority)-->
<!--or <R>, <G>, <B>, <A> (lower priority)-->
<Color>ButtonColor</Color>
<!--<SColor>: Selected button color from ColorScheme (high priority)-->
<!--or <SR>, <SG>, <SB>, <SA> (lower priority)-->
<SColor>ButtonSColor</SColor>
<Text>
<!--<X>, <Y>: Text position-->
<X>75</X>
<Y>10</Y>
<!--<H>: Text height-->
<H>27</H>
<!--<MaxW>: Maximum text width (if exists)-->
<MaxW>142</MaxW>
<!--<Color>: Text color from ColorScheme (high priority)-->
<!--or <R>, <G>, <B>, <A> (lower priority)-->
<Color>ButtonTextColor</Color>
<!--<SColor>: Selected Text color from ColorScheme (high priority)-->
<!--or <SR>, <SG>, <SB>, <SA> (lower priority)-->
<SColor>ButtonTextSColor</SColor>
<!--<Align>: Text align horizontal: Left, Center, Right-->
<Align>Center</Align>
<!--<HAlign>: Text align vertical (on downsizing): Top, Center, Bottom-->
<HAlign>Center</HAlign>
<!--<Style>: Text style: Normal, Italic, Bold, BoldItalic-->
<Style>Bold</Style>
<!--<Font>: Text font name-->
<Font>Outline</Font>
<!--<Text>: Nothing or translation tag-->
<Text />
</Text>
<!--<Reflection> If exists:-->
<!-- <Space>: Reflection Space-->
<!-- <Height>: Reflection Height-->
<!--<SReflection> If exists:-->
<!-- <Space>: Reflection Space of selected button-->
<!-- <Height>: Reflection Height of selected button-->
</ButtonIncreaseTeams>
<ButtonDecreaseTeams>
<!--<Skin>: Texture name-->
<Skin>Minus</Skin>
<!--<SkinSelected>: Texture name for selected button-->
<SkinSelected>Minus</SkinSelected>
<!--<X>, <Y>, <Z>, <W>, <H>: Button position, width and height-->
<X>145</X>
<Y>1200</Y>
<Z>0,00</Z>
<W>40</W>
<H>40</H>
<!--<Color>: Button color from ColorScheme (high priority)-->
<!--or <R>, <G>, <B>, <A> (lower priority)-->
<Color>ButtonColor</Color>
<!--<SColor>: Selected button color from ColorScheme (high priority)-->
<!--or <SR>, <SG>, <SB>, <SA> (lower priority)-->
<SColor>ButtonSColor</SColor>
<Text>
<!--<X>, <Y>: Text position-->
<X>75</X>
<Y>10</Y>
<!--<H>: Text height-->
<H>27</H>
<!--<MaxW>: Maximum text width (if exists)-->
<MaxW>142</MaxW>
<!--<Color>: Text color from ColorScheme (high priority)-->
<!--or <R>, <G>, <B>, <A> (lower priority)-->
<Color>ButtonTextColor</Color>
<!--<SColor>: Selected Text color from ColorScheme (high priority)-->
<!--or <SR>, <SG>, <SB>, <SA> (lower priority)-->
<SColor>ButtonTextSColor</SColor>
<!--<Align>: Text align horizontal: Left, Center, Right-->
<Align>Center</Align>
<!--<HAlign>: Text align vertical (on downsizing): Top, Center, Bottom-->
<HAlign>Center</HAlign>
<!--<Style>: Text style: Normal, Italic, Bold, BoldItalic-->
<Style>Bold</Style>
<!--<Font>: Text font name-->
<Font>Outline</Font>
<!--<Text>: Nothing or translation tag-->
<Text />
</Text>
<!--<Reflection> If exists:-->
<!-- <Space>: Reflection Space-->
<!-- <Height>: Reflection Height-->
<!--<SReflection> If exists:-->
<!-- <Space>: Reflection Space of selected button-->
<!-- <Height>: Reflection Height of selected button-->
</ButtonDecreaseTeams>
<SelectSlideTeams>
<!--<Skin>: Texture name-->
<Skin>Invisible</Skin>
<!--<SkinArrowLeft>: Texture name of left arrow-->
<SkinArrowLeft>SelectSlideArrowLeft</SkinArrowLeft>
<!--<SkinArrowRight>: Texture name of right arrow-->
<SkinArrowRight>SelectSlideArrowRight</SkinArrowRight>
<!--<SkinSelected>: Texture name for selected SelectSlide-->
<SkinSelected>SelectSlide</SkinSelected>
<!--<SkinArrowLeftSelected>: Texture name of selected left arrow-->
<SkinArrowLeftSelected>SelectSlideArrowLeft</SkinArrowLeftSelected>
<!--<SkinArrowRightSelected>: Texture name of selected right arrow-->
<SkinArrowRightSelected>SelectSlideArrowRight</SkinArrowRightSelected>
<!--<SkinHighlighted>: Texture name for highlighted SelectSlide-->
<SkinHighlighted>SelectSlide</SkinHighlighted>
<!--<X>, <Y>, <Z>, <W>, <H>: SelectSlide position, width and height-->
<X>40</X>
<Y>100</Y>
<Z>0,00</Z>
<W>1100</W>
<H>50</H>
<!--<ArrowLeftX>, <ArrowLeftY>, <ArrowLeftZ>, <ArrowLeftW>, <ArrowLeftH>: Left arrow position, width and height-->
<ArrowLeftX>45</ArrowLeftX>
<ArrowLeftY>105</ArrowLeftY>
<ArrowLeftZ>0,00</ArrowLeftZ>
<ArrowLeftW>40</ArrowLeftW>
<ArrowLeftH>40</ArrowLeftH>
<!--<ArrowRightX>, <ArrowRightY>, <ArrowRightZ>, <ArrowRightW>, <ArrowRightH>: Right arrow position, width and height-->
<ArrowRightX>1050</ArrowRightX>
<ArrowRightY>105</ArrowRightY>
<ArrowRightZ>0,00</ArrowRightZ>
<ArrowRightW>40</ArrowRightW>
<ArrowRightH>40</ArrowRightH>
<!--<Color>: SelectSlide color from ColorScheme (high priority)-->
<!--or <R>, <G>, <B>, <A> (lower priority)-->
<Color>SelectSlideColor</Color>
<!--<SColor>: Selected SelectSlide color from ColorScheme (high priority)-->
<!--or <SR>, <SG>, <SB>, <SA> (lower priority)-->
<SColor>SelectSlideSColor</SColor>
<!--<HColor>: Highlighted SelectSlide color from ColorScheme (high priority)-->
<!--or <HR>, <HG>, <HB>, <HA> (lower priority)-->
<HColor>SelectSlideHColor</HColor>
<!--<ArrowColor>: Arrow color from ColorScheme (high priority)-->
<!--or <ArrowR>, <ArrowG>, <ArrowB>, <ArrowA> (lower priority)-->
<ArrowColor>ArrowColor</ArrowColor>
<!--<ArrowSColor>: Selected arrow color from ColorScheme (high priority)-->
<!--or <ArrowSR>, <ArrowSG>, <ArrowSB>, <ArrowSA> (lower priority)-->
<ArrowSColor>ArrowSColor</ArrowSColor>
<!--<TextColor>: Text color from ColorScheme (high priority)-->
<!--or <TextR>, <TextG>, <TextB>, <TextA> (lower priority)-->
<TextColor>TextColor</TextColor>
<!--<TextSColor>: Selected text color from ColorScheme (high priority)-->
<!--or <TextSR>, <TextSG>, <TextSB>, <TextSA> (lower priority)-->
<TextSColor>TextSColor</TextSColor>
<!--<TextH>: Text height-->
<TextH>27,00</TextH>
<!--<TextRelativeX>: Text relative x-position-->
<!--<TextRelativeY>: Text relative y-position-->
<!--<TextMaxW>: Maximum text width (if exists)-->
<TextMaxW>205,33</TextMaxW>
<!--<TextFont>: Text font name-->
<TextFont>Outline</TextFont>
<!--<TextStyle>: Text style: Normal, Italic, Bold, BoldItalic-->
<TextStyle>Bold</TextStyle>
<!--<NumVisible>: Number of visible elements in the slide-->
<NumVisible>2</NumVisible>
</SelectSlideTeams>
<SelectSlidePlayer>
<!--<Skin>: Texture name-->
<Skin>Invisible</Skin>
<!--<SkinArrowLeft>: Texture name of left arrow-->
<SkinArrowLeft>SelectSlideArrowLeft</SkinArrowLeft>
<!--<SkinArrowRight>: Texture name of right arrow-->
<SkinArrowRight>SelectSlideArrowRight</SkinArrowRight>
<!--<SkinSelected>: Texture name for selected SelectSlide-->
<SkinSelected>SelectSlidePlayer</SkinSelected>
<!--<SkinArrowLeftSelected>: Texture name of selected left arrow-->
<SkinArrowLeftSelected>SelectSlideArrowLeft</SkinArrowLeftSelected>
<!--<SkinArrowRightSelected>: Texture name of selected right arrow-->
<SkinArrowRightSelected>SelectSlideArrowRight</SkinArrowRightSelected>
<!--<SkinHighlighted>: Texture name for highlighted SelectSlide-->
<SkinHighlighted>SelectSlidePlayer</SkinHighlighted>
<!--<X>, <Y>, <Z>, <W>, <H>: SelectSlide position, width and height-->
<X>40</X>
<Y>160</Y>
<Z>0,00</Z>
<W>1100</W>
<H>150</H>
<!--<ArrowLeftX>, <ArrowLeftY>, <ArrowLeftZ>, <ArrowLeftW>, <ArrowLeftH>: Left arrow position, width and height-->
<ArrowLeftX>45</ArrowLeftX>
<ArrowLeftY>210</ArrowLeftY>
<ArrowLeftZ>0,00</ArrowLeftZ>
<ArrowLeftW>40</ArrowLeftW>
<ArrowLeftH>40</ArrowLeftH>
<!--<ArrowRightX>, <ArrowRightY>, <ArrowRightZ>, <ArrowRightW>, <ArrowRightH>: Right arrow position, width and height-->
<ArrowRightX>1050</ArrowRightX>
<ArrowRightY>210</ArrowRightY>
<ArrowRightZ>0,00</ArrowRightZ>
<ArrowRightW>40</ArrowRightW>
<ArrowRightH>40</ArrowRightH>
<!--<Color>: SelectSlide color from ColorScheme (high priority)-->
<!--or <R>, <G>, <B>, <A> (lower priority)-->
<Color>SelectSlideColor</Color>
<!--<SColor>: Selected SelectSlide color from ColorScheme (high priority)-->
<!--or <SR>, <SG>, <SB>, <SA> (lower priority)-->
<SColor>SelectSlideSColor</SColor>
<!--<HColor>: Highlighted SelectSlide color from ColorScheme (high priority)-->
<!--or <HR>, <HG>, <HB>, <HA> (lower priority)-->
<HColor>SelectSlideHColor</HColor>
<!--<ArrowColor>: Arrow color from ColorScheme (high priority)-->
<!--or <ArrowR>, <ArrowG>, <ArrowB>, <ArrowA> (lower priority)-->
<ArrowColor>ArrowColor</ArrowColor>
<!--<ArrowSColor>: Selected arrow color from ColorScheme (high priority)-->
<!--or <ArrowSR>, <ArrowSG>, <ArrowSB>, <ArrowSA> (lower priority)-->
<ArrowSColor>ArrowSColor</ArrowSColor>
<!--<TextColor>: Text color from ColorScheme (high priority)-->
<!--or <TextR>, <TextG>, <TextB>, <TextA> (lower priority)-->
<TextColor>TextColor</TextColor>
<!--<TextSColor>: Selected text color from ColorScheme (high priority)-->
<!--or <TextSR>, <TextSG>, <TextSB>, <TextSA> (lower priority)-->
<TextSColor>TextSColor</TextSColor>
<!--<TextH>: Text height-->
<TextH>27,00</TextH>
<!--<TextRelativeX>: Text relative x-position-->
<!--<TextRelativeY>: Text relative y-position-->
<TextRelativeY>-5,00</TextRelativeY>
<!--<TextMaxW>: Maximum text width (if exists)-->
<TextMaxW>205,33</TextMaxW>
<!--<TextFont>: Text font name-->
<TextFont>Outline</TextFont>
<!--<TextStyle>: Text style: Normal, Italic, Bold, BoldItalic-->
<TextStyle>Bold</TextStyle>
<!--<NumVisible>: Number of visible elements in the slide-->
<NumVisible>8</NumVisible>
</SelectSlidePlayer>
<NameSelection>
<!--<X>, <Y>, <Z>, <W>, <H>: NameSelection position, width and height-->
<X>42</X>
<Y>327</Y>
<Z>0,00</Z>
<W>1200</W>
<H>393</H>
<!--<SkinEmptyTile>: Texture name-->
<SkinEmptyTile>CoverTile</SkinEmptyTile>
<!--<ColorEmptyTile>: Static color from ColorScheme (high priority)-->
<!--or <R>, <G>, <B>, <A> (lower priority)-->
<R>1,00</R>
<G>1,00</G>
<B>1,00</B>
<A>0,20</A>
<!--<SkinTileSelected>: Texture name-->
<SkinTileSelected>PlayerSelector</SkinTileSelected>
<!--<Tiles>: Options for tiles-->
<Tiles>
<!--<W>, <H>: Width and height of tile-->
<W>100</W>
<H>100</H>
<!--<NumW>, <NumH>: Number of tiles-->
<NumW>10</NumW>
<NumH>2</NumH>
<!--<SpaceW>, <SpaceH>: Space between tiles-->
<SpaceW>20,71</SpaceW>
<SpaceH>30,00</SpaceH>
<!--<Name>: Options for player-name-->
<Name>
<!--<Space>: Space between name and tile-->
<Space>2,0</Space>
<!--<Font>: Text font name-->
<Font>Outline</Font>
<!--<Color>: Text color from ColorScheme (high priority)-->
<Color>TextColor</Color>
<!--<Style>: Text style: Normal, Italic, Bold, BoldItalic-->
<Style>Bold</Style>
<!--<H>: Text height-->
<H>17</H>
</Name>
</Tiles>
</NameSelection>
</PartyScreenTicTacToeNames>
</root>
Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.2 KiB

@@ -222,8 +222,11 @@
<ScrollUp>ScrollUp.png</ScrollUp>
<ScrollDown>ScrollDown.png</ScrollDown>
<Invisible>Invisible.png</Invisible>
<PlayerSelector>PlayerSelector.png</PlayerSelector>
<Plus>Plus.png</Plus>
<Minus>Minus.png</Minus>
</Skins>
<Videos>
<BG_Video>[Blue]BG_Video.mp4</BG_Video>
</Videos>
</root>
</root>
@@ -25,7 +25,7 @@ using VocaluxeLib.Profile;
namespace VocaluxeLib.PartyModes.Challenge
{
// ReSharper disable UnusedMember.Global
public class CPartyScreenChallengeNames : CMenuParty
public class CPartyScreenChallengeNames : CMenuPartyNameSelection
// ReSharper restore UnusedMember.Global
{
// Version number for theme files. Increment it, if you've changed something on the theme files!
@@ -34,61 +34,18 @@ namespace VocaluxeLib.PartyModes.Challenge
get { return 1; }
}
private const string _ButtonNext = "ButtonNext";
private const string _ButtonBack = "ButtonBack";
private const string _ButtonPlayerDestination = "ButtonPlayerDestination";
private const string _ButtonPlayerChoose = "ButtonPlayerChoose";
private List<CPlayerChooseButton> _PlayerChooseButtons;
private List<CButton> _PlayerDestinationButtons;
//PlayerDestinationButtons-Option
private const int _PlayerDestinationButtonsNumH = 3;
private const int _PlayerDestinationButtonsFirstX = 900;
private const int _PlayerDestinationButtonsFirstY = 105;
private const int _PlayerDestinationButtonsSpaceH = 15;
private const int _PlayerDestinationButtonsSpaceW = 25;
//PlayerChooseButtons-Option
private List<int> _PlayerChooseButtonsVisibleProfiles;
private const int _PlayerChooseButtonsNumH = 7;
private const int _PlayerChooseButtonsNumW = 4;
private const int _PlayerChooseButtonsFirstX = 52;
private const int _PlayerChooseButtonsFirstY = 105;
private const int _PlayerChooseButtonsSpaceH = 15;
private const int _PlayerChooseButtonsSpaceW = 25;
private const int _PlayerChooseButtonsOffset = 0;
private CStatic _ChooseAvatarStatic;
private bool _SelectingMouseActive;
private int _OldMouseX;
private int _OldMouseY;
private bool _ButtonsAdded;
private int _NumPlayer = 4;
private SDataFromScreen _Data;
private class CPlayerChooseButton
{
public CButton Button;
public int ProfileID;
}
public override void Init()
{
base.Init();
_ChooseAvatarStatic = GetNewStatic();
_ChooseAvatarStatic.Visible = false;
_PlayerChooseButtonsVisibleProfiles = new List<int>();
_Data.ScreenNames.ProfileIDs = new List<int>();
_ThemeButtons = new string[] {_ButtonBack, _ButtonNext, _ButtonPlayerDestination, _ButtonPlayerChoose};
_Data = new SDataFromScreen();
var names = new SFromScreenNames {FadeBack = false, ProfileIDs = new List<int>()};
_Data.ScreenNames = names;
_AllowChangePlayerNum = false;
}
public override void DataToScreen(object receivedData)
@@ -98,7 +55,7 @@ namespace VocaluxeLib.PartyModes.Challenge
var config = (SDataToScreenNames)receivedData;
_Data.ScreenNames.ProfileIDs = config.ProfileIDs ?? new List<int>();
_NumPlayer = config.NumPlayer;
SetPartyModeData(config.NumPlayer);
while (_Data.ScreenNames.ProfileIDs.Count > _NumPlayer)
_Data.ScreenNames.ProfileIDs.RemoveAt(_Data.ScreenNames.ProfileIDs.Count - 1);
@@ -109,320 +66,26 @@ namespace VocaluxeLib.PartyModes.Challenge
}
}
public override bool HandleInput(SKeyEvent keyEvent)
{
base.HandleInput(keyEvent);
if (keyEvent.KeyPressed) {}
else
{
switch (keyEvent.Key)
{
case Keys.Back:
case Keys.Escape:
_Back();
break;
case Keys.Enter:
if (_Buttons[_ButtonBack].Selected)
_Back();
if (_Buttons[_ButtonNext].Selected)
_Next();
if (!_OnAdd())
_OnRemove();
break;
case Keys.Delete:
_OnRemove();
break;
}
}
return true;
}
public override bool HandleMouse(SMouseEvent mouseEvent)
{
base.HandleMouse(mouseEvent);
//Check if LeftButton is hold and Select-Mode active
if (mouseEvent.LBH && _SelectingMouseActive)
{
//Update coords for Drag/Drop-Texture
_ChooseAvatarStatic.Rect.X += mouseEvent.X - _OldMouseX;
_ChooseAvatarStatic.Rect.Y += mouseEvent.Y - _OldMouseY;
_OldMouseX = mouseEvent.X;
_OldMouseY = mouseEvent.Y;
}
// LeftButton isn't hold anymore, but Selec-Mode is still active -> "Drop" of Avatar
else if (_SelectingMouseActive)
{
//Reset variables
_SelectingMouseActive = false;
_ChooseAvatarStatic.Visible = false;
}
if (mouseEvent.LB && _IsMouseOver(mouseEvent))
{
if (_Buttons[_ButtonBack].Selected)
_Back();
if (_Buttons[_ButtonNext].Selected)
_Next();
if (!_OnAdd())
_OnRemove();
}
if (mouseEvent.RB)
_Back();
return true;
}
public override void OnShow()
{
base.OnShow();
if (!_ButtonsAdded)
{
_AddButtonPlayerDestination();
_AddButtonPlayerChoose();
_ButtonsAdded = true;
}
_UpdateButtonPlayerDestination();
_UpdateButtonPlayerChoose();
_UpdateButtonNext();
SetPartyModeData(_NumPlayer);
}
public override bool UpdateGame()
{
return true;
}
public override bool Draw()
{
base.Draw();
if (_ChooseAvatarStatic.Visible)
_ChooseAvatarStatic.Draw();
return true;
}
private void _AddButtonPlayerDestination()
{
_Buttons[_ButtonPlayerDestination].Visible = false;
_PlayerDestinationButtons = new List<CButton>();
int row = 0;
int column = 0;
for (int i = 1; i <= _PartyMode.GetMaxPlayer(); i++)
{
CButton b = GetNewButton(_Buttons[_ButtonPlayerDestination]);
b.Rect.X = _PlayerDestinationButtonsFirstX + column * (b.Rect.W + _PlayerDestinationButtonsSpaceH);
b.Rect.Y = _PlayerDestinationButtonsFirstY + row * (b.Rect.H + _PlayerDestinationButtonsSpaceW);
_PlayerDestinationButtons.Add(b);
column++;
if (column >= _PlayerDestinationButtonsNumH)
{
row++;
column = 0;
}
b.Visible = true;
b.Enabled = false;
_AddButton(b);
}
}
private void _AddButtonPlayerChoose()
{
_Buttons[_ButtonPlayerChoose].Visible = false;
_PlayerChooseButtons = new List<CPlayerChooseButton>();
int row = 0;
int column = 0;
for (int i = 1; i <= _PlayerChooseButtonsNumH * _PlayerChooseButtonsNumW; i++)
{
CButton b = GetNewButton(_Buttons[_ButtonPlayerChoose]);
b.Rect.X = _PlayerChooseButtonsFirstX + column * (b.Rect.W + _PlayerChooseButtonsSpaceH);
b.Rect.Y = _PlayerChooseButtonsFirstY + row * (b.Rect.H + _PlayerChooseButtonsSpaceW);
var pcb = new CPlayerChooseButton {Button = b, ProfileID = -1};
_PlayerChooseButtons.Add(pcb);
column++;
if (column >= _PlayerChooseButtonsNumH)
{
row++;
column = 0;
}
b.Visible = true;
b.Enabled = false;
_AddButton(b);
}
}
private void _UpdateButtonPlayerChoose()
{
_UpdateVisibleProfiles();
if ((_PlayerChooseButtonsNumW * _PlayerChooseButtonsNumH) * (_PlayerChooseButtonsOffset + 1) - _PlayerChooseButtonsVisibleProfiles.Count >=
(_PlayerChooseButtonsNumW * _PlayerChooseButtonsNumH) * _PlayerChooseButtonsOffset)
_UpdateButtonPlayerChoose(_PlayerChooseButtonsOffset - 1);
else
_UpdateButtonPlayerChoose(_PlayerChooseButtonsOffset);
}
private void _UpdateButtonPlayerChoose(int offset)
{
const int numButtonPlayerChoose = _PlayerChooseButtonsNumW * _PlayerChooseButtonsNumH;
if (offset < 0)
offset = 0;
if (numButtonPlayerChoose * (offset + 1) - _PlayerChooseButtonsVisibleProfiles.Count <= numButtonPlayerChoose)
{
for (int i = 0; i < numButtonPlayerChoose; i++)
{
if ((i + offset * numButtonPlayerChoose) < _PlayerChooseButtonsVisibleProfiles.Count)
{
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;
}
else
{
_PlayerChooseButtons[i].ProfileID = -1;
_PlayerChooseButtons[i].Button.Text.Text = String.Empty;
_PlayerChooseButtons[i].Button.Texture = _Buttons[_ButtonPlayerChoose].Texture;
_PlayerChooseButtons[i].Button.SelTexture = _Buttons[_ButtonPlayerChoose].SelTexture;
_PlayerChooseButtons[i].Button.Color = _Buttons[_ButtonPlayerChoose].Color;
_PlayerChooseButtons[i].Button.SelColor = _Buttons[_ButtonPlayerChoose].SelColor;
_PlayerChooseButtons[i].Button.Enabled = false;
}
}
}
}
private void _UpdateVisibleProfiles()
{
_PlayerChooseButtonsVisibleProfiles.Clear();
CProfile[] profiles = CBase.Profiles.GetProfiles();
foreach (CProfile profile in profiles)
{
bool visible = false;
//Show profile only if active
if (profile.Active == EOffOn.TR_CONFIG_ON)
visible = _Data.ScreenNames.ProfileIDs.All(profileID => profileID != profile.ID);
if (visible)
_PlayerChooseButtonsVisibleProfiles.Add(profile.ID);
}
}
private void _UpdateButtonPlayerDestination()
{
for (int i = 0; i < _PlayerDestinationButtons.Count; i++)
{
if (_NumPlayer > i)
{
_PlayerDestinationButtons[i].Visible = true;
_PlayerDestinationButtons[i].Enabled = true;
}
else
{
_PlayerDestinationButtons[i].Visible = false;
_PlayerDestinationButtons[i].Enabled = false;
}
}
for (int i = 0; i < _NumPlayer; i++)
{
if (i < _Data.ScreenNames.ProfileIDs.Count)
{
if (_Data.ScreenNames.ProfileIDs[i] != -1)
{
int id = _Data.ScreenNames.ProfileIDs[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.GetAvatar(id);
_PlayerDestinationButtons[i].SelTexture = CBase.Profiles.GetAvatar(id);
_PlayerDestinationButtons[i].Text.Text = CBase.Profiles.GetPlayerName(id);
_PlayerDestinationButtons[i].Enabled = true;
}
}
else
{
_PlayerDestinationButtons[i].Color = _Buttons[_ButtonPlayerDestination].Color;
_PlayerDestinationButtons[i].SelColor = _Buttons[_ButtonPlayerDestination].SelColor;
_PlayerDestinationButtons[i].Texture = _Buttons[_ButtonPlayerDestination].Texture;
_PlayerDestinationButtons[i].SelTexture = _Buttons[_ButtonPlayerDestination].SelTexture;
_PlayerDestinationButtons[i].Text.Text = String.Empty;
_PlayerDestinationButtons[i].Enabled = false;
}
}
}
private void _UpdateButtonNext()
{
if (_Data.ScreenNames.ProfileIDs.Count == _NumPlayer)
{
_Buttons[_ButtonNext].Visible = true;
_SetInteractionToButton(_Buttons[_ButtonNext]);
}
else
_Buttons[_ButtonNext].Visible = false;
}
private bool _OnAdd()
{
foreach (CPlayerChooseButton button in _PlayerChooseButtons)
{
int id = button.ProfileID;
if (!button.Button.Selected || id == -1 || _Data.ScreenNames.ProfileIDs.Count >= _NumPlayer)
continue;
_Data.ScreenNames.ProfileIDs.Add(id);
int added = _Data.ScreenNames.ProfileIDs.Count - 1;
_UpdateButtonNext();
//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.GetAvatar(id);
_PlayerDestinationButtons[added].SelTexture = CBase.Profiles.GetAvatar(id);
_PlayerDestinationButtons[added].Text.Text = CBase.Profiles.GetPlayerName(id);
_PlayerDestinationButtons[added].Enabled = true;
//Update Tiles-List
_UpdateButtonPlayerChoose();
_CheckInteraction();
return true;
}
return false;
}
private void _OnRemove()
{
for (int i = 0; i < _PlayerDestinationButtons.Count; i++)
{
if (!_PlayerDestinationButtons[i].Selected)
continue;
if ((i + 1) > _Data.ScreenNames.ProfileIDs.Count)
continue;
_Data.ScreenNames.ProfileIDs.RemoveAt(i);
_UpdateButtonNext();
_UpdateButtonPlayerDestination();
_UpdateButtonPlayerChoose();
_CheckInteraction();
return;
}
}
private void _Back()
public override void Back()
{
SPartyNameOptions options = GetData();
if(options.TeamList.Length == 1)
_Data.ScreenNames.ProfileIDs = options.TeamList[0];
_Data.ScreenNames.FadeBack = true;
_PartyMode.DataFromScreen(ThemeName, _Data);
}
private void _Next()
public override void Next()
{
SPartyNameOptions options = GetData();
if (options.TeamList.Length == 1)
_Data.ScreenNames.ProfileIDs = options.TeamList[0];
_Data.ScreenNames.FadeBack = false;
_PartyMode.DataFromScreen(ThemeName, _Data);
}
@@ -25,7 +25,7 @@ using VocaluxeLib.Profile;
namespace VocaluxeLib.PartyModes.ChallengeMedley
{
// ReSharper disable UnusedMember.Global
public class CPartyScreenChallengeMedleyNames : CMenuParty
public class CPartyScreenChallengeMedleyNames : CMenuPartyNameSelection
// ReSharper restore UnusedMember.Global
{
// Version number for theme files. Increment it, if you've changed something on the theme files!
@@ -34,61 +34,19 @@ namespace VocaluxeLib.PartyModes.ChallengeMedley
get { return 1; }
}
private const string _ButtonNext = "ButtonNext";
private const string _ButtonBack = "ButtonBack";
private const string _ButtonPlayerDestination = "ButtonPlayerDestination";
private const string _ButtonPlayerChoose = "ButtonPlayerChoose";
private List<CPlayerChooseButton> _PlayerChooseButtons;
private List<CButton> _PlayerDestinationButtons;
//PlayerDestinationButtons-Option
private const int _PlayerDestinationButtonsNumH = 3;
private const int _PlayerDestinationButtonsFirstX = 900;
private const int _PlayerDestinationButtonsFirstY = 105;
private const int _PlayerDestinationButtonsSpaceH = 15;
private const int _PlayerDestinationButtonsSpaceW = 25;
//PlayerChooseButtons-Option
private List<int> _PlayerChooseButtonsVisibleProfiles;
private const int _PlayerChooseButtonsNumH = 7;
private const int _PlayerChooseButtonsNumW = 4;
private const int _PlayerChooseButtonsFirstX = 52;
private const int _PlayerChooseButtonsFirstY = 105;
private const int _PlayerChooseButtonsSpaceH = 15;
private const int _PlayerChooseButtonsSpaceW = 25;
private const int _PlayerChooseButtonsOffset = 0;
private CStatic _ChooseAvatarStatic;
private bool _SelectingMouseActive;
private int _OldMouseX;
private int _OldMouseY;
private bool _ButtonsAdded;
private int _NumPlayer = 4;
private SDataFromScreen _Data;
private class CPlayerChooseButton
{
public CButton Button;
public int ProfileID;
}
public override void Init()
{
base.Init();
_ChooseAvatarStatic = GetNewStatic();
_ChooseAvatarStatic.Visible = false;
_PlayerChooseButtonsVisibleProfiles = new List<int>();
_Data.ScreenNames.ProfileIDs = new List<int>();
_ThemeButtons = new string[] {_ButtonBack, _ButtonNext, _ButtonPlayerDestination, _ButtonPlayerChoose};
_Data = new SDataFromScreen();
var names = new SFromScreenNames {FadeToConfig = false, ProfileIDs = new List<int>()};
_Data.ScreenNames = names;
_AllowChangePlayerNum = false;
}
public override void DataToScreen(object receivedData)
@@ -98,7 +56,7 @@ namespace VocaluxeLib.PartyModes.ChallengeMedley
var config = (SDataToScreenNames)receivedData;
_Data.ScreenNames.ProfileIDs = config.ProfileIDs ?? new List<int>();
_NumPlayer = config.NumPlayer;
SetPartyModeData(config.NumPlayer);
while (_Data.ScreenNames.ProfileIDs.Count > _NumPlayer)
_Data.ScreenNames.ProfileIDs.RemoveAt(_Data.ScreenNames.ProfileIDs.Count - 1);
@@ -109,320 +67,21 @@ namespace VocaluxeLib.PartyModes.ChallengeMedley
}
}
public override bool HandleInput(SKeyEvent keyEvent)
{
base.HandleInput(keyEvent);
if (keyEvent.KeyPressed) {}
else
{
switch (keyEvent.Key)
{
case Keys.Back:
case Keys.Escape:
_Back();
break;
case Keys.Enter:
if (_Buttons[_ButtonBack].Selected)
_Back();
if (_Buttons[_ButtonNext].Selected)
_Next();
if (!_OnAdd())
_OnRemove();
break;
case Keys.Delete:
_OnRemove();
break;
}
}
return true;
}
public override bool HandleMouse(SMouseEvent mouseEvent)
{
base.HandleMouse(mouseEvent);
//Check if LeftButton is hold and Select-Mode active
if (mouseEvent.LBH && _SelectingMouseActive)
{
//Update coords for Drag/Drop-Texture
_ChooseAvatarStatic.Rect.X += mouseEvent.X - _OldMouseX;
_ChooseAvatarStatic.Rect.Y += mouseEvent.Y - _OldMouseY;
_OldMouseX = mouseEvent.X;
_OldMouseY = mouseEvent.Y;
}
// LeftButton isn't hold anymore, but Selec-Mode is still active -> "Drop" of Avatar
else if (_SelectingMouseActive)
{
//Reset variables
_SelectingMouseActive = false;
_ChooseAvatarStatic.Visible = false;
}
if (mouseEvent.LB && _IsMouseOver(mouseEvent))
{
if (_Buttons[_ButtonBack].Selected)
_Back();
if (_Buttons[_ButtonNext].Selected)
_Next();
if (!_OnAdd())
_OnRemove();
}
if (mouseEvent.RB)
_Back();
return true;
}
public override void OnShow()
{
base.OnShow();
if (!_ButtonsAdded)
{
_AddButtonPlayerDestination();
_AddButtonPlayerChoose();
_ButtonsAdded = true;
}
_UpdateButtonPlayerDestination();
_UpdateButtonPlayerChoose();
_UpdateButtonNext();
}
public override bool UpdateGame()
{
return true;
}
public override bool Draw()
{
base.Draw();
if (_ChooseAvatarStatic.Visible)
_ChooseAvatarStatic.Draw();
return true;
}
private void _AddButtonPlayerDestination()
{
_Buttons[_ButtonPlayerDestination].Visible = false;
_PlayerDestinationButtons = new List<CButton>();
int row = 0;
int column = 0;
for (int i = 1; i <= _PartyMode.GetMaxPlayer(); i++)
{
CButton b = GetNewButton(_Buttons[_ButtonPlayerDestination]);
b.Rect.X = _PlayerDestinationButtonsFirstX + column * (b.Rect.W + _PlayerDestinationButtonsSpaceH);
b.Rect.Y = _PlayerDestinationButtonsFirstY + row * (b.Rect.H + _PlayerDestinationButtonsSpaceW);
_PlayerDestinationButtons.Add(b);
column++;
if (column >= _PlayerDestinationButtonsNumH)
{
row++;
column = 0;
}
b.Visible = true;
b.Enabled = false;
_AddButton(b);
}
}
private void _AddButtonPlayerChoose()
{
_Buttons[_ButtonPlayerChoose].Visible = false;
_PlayerChooseButtons = new List<CPlayerChooseButton>();
int row = 0;
int column = 0;
for (int i = 1; i <= _PlayerChooseButtonsNumH * _PlayerChooseButtonsNumW; i++)
{
CButton b = GetNewButton(_Buttons[_ButtonPlayerChoose]);
b.Rect.X = _PlayerChooseButtonsFirstX + column * (b.Rect.W + _PlayerChooseButtonsSpaceH);
b.Rect.Y = _PlayerChooseButtonsFirstY + row * (b.Rect.H + _PlayerChooseButtonsSpaceW);
var pcb = new CPlayerChooseButton {Button = b, ProfileID = -1};
_PlayerChooseButtons.Add(pcb);
column++;
if (column >= _PlayerChooseButtonsNumH)
{
row++;
column = 0;
}
b.Visible = true;
b.Enabled = false;
_AddButton(b);
}
}
private void _UpdateButtonPlayerChoose()
{
_UpdateVisibleProfiles();
if ((_PlayerChooseButtonsNumW * _PlayerChooseButtonsNumH) * (_PlayerChooseButtonsOffset + 1) - _PlayerChooseButtonsVisibleProfiles.Count >=
(_PlayerChooseButtonsNumW * _PlayerChooseButtonsNumH) * _PlayerChooseButtonsOffset)
_UpdateButtonPlayerChoose(_PlayerChooseButtonsOffset - 1);
else
_UpdateButtonPlayerChoose(_PlayerChooseButtonsOffset);
}
private void _UpdateButtonPlayerChoose(int offset)
{
const int numButtonPlayerChoose = _PlayerChooseButtonsNumW * _PlayerChooseButtonsNumH;
if (offset < 0)
offset = 0;
if (numButtonPlayerChoose * (offset + 1) - _PlayerChooseButtonsVisibleProfiles.Count <= numButtonPlayerChoose)
{
for (int i = 0; i < numButtonPlayerChoose; i++)
{
if ((i + offset * numButtonPlayerChoose) < _PlayerChooseButtonsVisibleProfiles.Count)
{
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;
}
else
{
_PlayerChooseButtons[i].ProfileID = -1;
_PlayerChooseButtons[i].Button.Text.Text = String.Empty;
_PlayerChooseButtons[i].Button.Texture = _Buttons[_ButtonPlayerChoose].Texture;
_PlayerChooseButtons[i].Button.SelTexture = _Buttons[_ButtonPlayerChoose].SelTexture;
_PlayerChooseButtons[i].Button.Color = _Buttons[_ButtonPlayerChoose].Color;
_PlayerChooseButtons[i].Button.SelColor = _Buttons[_ButtonPlayerChoose].SelColor;
_PlayerChooseButtons[i].Button.Enabled = false;
}
}
}
}
private void _UpdateVisibleProfiles()
{
_PlayerChooseButtonsVisibleProfiles.Clear();
CProfile[] profiles = CBase.Profiles.GetProfiles();
foreach (CProfile profile in profiles)
{
bool visible = false;
//Show profile only if active
if (profile.Active == EOffOn.TR_CONFIG_ON)
visible = _Data.ScreenNames.ProfileIDs.All(profileID => profileID != profile.ID);
if (visible)
_PlayerChooseButtonsVisibleProfiles.Add(profile.ID);
}
}
private void _UpdateButtonPlayerDestination()
{
for (int i = 0; i < _PlayerDestinationButtons.Count; i++)
{
if (_NumPlayer > i)
{
_PlayerDestinationButtons[i].Visible = true;
_PlayerDestinationButtons[i].Enabled = true;
}
else
{
_PlayerDestinationButtons[i].Visible = false;
_PlayerDestinationButtons[i].Enabled = false;
}
}
for (int i = 0; i < _NumPlayer; i++)
{
if (i < _Data.ScreenNames.ProfileIDs.Count)
{
if (_Data.ScreenNames.ProfileIDs[i] != -1)
{
int id = _Data.ScreenNames.ProfileIDs[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.GetAvatar(id);
_PlayerDestinationButtons[i].SelTexture = CBase.Profiles.GetAvatar(id);
_PlayerDestinationButtons[i].Text.Text = CBase.Profiles.GetPlayerName(id);
_PlayerDestinationButtons[i].Enabled = true;
}
}
else
{
_PlayerDestinationButtons[i].Color = _Buttons[_ButtonPlayerDestination].Color;
_PlayerDestinationButtons[i].SelColor = _Buttons[_ButtonPlayerDestination].SelColor;
_PlayerDestinationButtons[i].Texture = _Buttons[_ButtonPlayerDestination].Texture;
_PlayerDestinationButtons[i].SelTexture = _Buttons[_ButtonPlayerDestination].SelTexture;
_PlayerDestinationButtons[i].Text.Text = String.Empty;
_PlayerDestinationButtons[i].Enabled = false;
}
}
}
private void _UpdateButtonNext()
{
if (_Data.ScreenNames.ProfileIDs.Count == _NumPlayer)
{
_Buttons[_ButtonNext].Visible = true;
_SetInteractionToButton(_Buttons[_ButtonNext]);
}
else
_Buttons[_ButtonNext].Visible = false;
}
private bool _OnAdd()
{
foreach (CPlayerChooseButton button in _PlayerChooseButtons)
{
int id = button.ProfileID;
if (!button.Button.Selected || id == -1 || _Data.ScreenNames.ProfileIDs.Count >= _NumPlayer)
continue;
_Data.ScreenNames.ProfileIDs.Add(id);
int added = _Data.ScreenNames.ProfileIDs.Count - 1;
_UpdateButtonNext();
//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.GetAvatar(id);
_PlayerDestinationButtons[added].SelTexture = CBase.Profiles.GetAvatar(id);
_PlayerDestinationButtons[added].Text.Text = CBase.Profiles.GetPlayerName(id);
_PlayerDestinationButtons[added].Enabled = true;
//Update Tiles-List
_UpdateButtonPlayerChoose();
_CheckInteraction();
return true;
}
return false;
}
private void _OnRemove()
{
for (int i = 0; i < _PlayerDestinationButtons.Count; i++)
{
if (!_PlayerDestinationButtons[i].Selected)
continue;
if ((i + 1) > _Data.ScreenNames.ProfileIDs.Count)
continue;
_Data.ScreenNames.ProfileIDs.RemoveAt(i);
_UpdateButtonNext();
_UpdateButtonPlayerDestination();
_UpdateButtonPlayerChoose();
_CheckInteraction();
return;
}
}
private void _Back()
public override void Back()
{
SPartyNameOptions options = GetData();
if (options.TeamList.Length == 1)
_Data.ScreenNames.ProfileIDs = options.TeamList[0];
_Data.ScreenNames.FadeToConfig = true;
_PartyMode.DataFromScreen(ThemeName, _Data);
}
private void _Next()
public override void Next()
{
SPartyNameOptions options = GetData();
if (options.TeamList.Length == 1)
_Data.ScreenNames.ProfileIDs = options.TeamList[0];
_Data.ScreenNames.FadeToConfig = false;
_PartyMode.DataFromScreen(ThemeName, _Data);
}
@@ -58,8 +58,6 @@ namespace VocaluxeLib.PartyModes.TicTacToe
#region ToScreen
public struct SDataToScreenConfig
{
public int NumPlayerTeam1;
public int NumPlayerTeam2;
public int NumFields;
public ESongSource SongSource;
public int CategoryID;
@@ -99,8 +97,6 @@ namespace VocaluxeLib.PartyModes.TicTacToe
public struct SFromScreenConfig
{
public int NumPlayerTeam1;
public int NumPlayerTeam2;
public int NumFields;
public ESongSource SongSource;
public int CategoryID;
@@ -111,6 +107,8 @@ namespace VocaluxeLib.PartyModes.TicTacToe
public struct SFromScreenNames
{
public bool FadeToConfig;
public int NumPlayerTeam1;
public int NumPlayerTeam2;
public List<int> ProfileIDsTeam1;
public List<int> ProfileIDsTeam2;
}
@@ -135,6 +133,8 @@ namespace VocaluxeLib.PartyModes.TicTacToe
private const int _MinPlayer = 2;
private const int _MaxTeams = 2;
private const int _MinTeams = 2;
private const int _MinPlayerPerTeam = 1;
private const int _MaxPlayerPerTeam = 10;
private const int _NumFields = 9;
private enum EStage
@@ -253,8 +253,6 @@ namespace VocaluxeLib.PartyModes.TicTacToe
try
{
dataFrom = (SDataFromScreen)data;
_GameData.NumPlayerTeam1 = dataFrom.ScreenConfig.NumPlayerTeam1;
_GameData.NumPlayerTeam2 = dataFrom.ScreenConfig.NumPlayerTeam2;
_GameData.NumFields = dataFrom.ScreenConfig.NumFields;
_GameData.SongSource = dataFrom.ScreenConfig.SongSource;
_GameData.CategoryID = dataFrom.ScreenConfig.CategoryID;
@@ -279,6 +277,8 @@ namespace VocaluxeLib.PartyModes.TicTacToe
else
{
_GameData.Team = CBase.Game.GetRandom(100) < 50 ? 0 : 1;
_GameData.NumPlayerTeam1 = dataFrom.ScreenNames.NumPlayerTeam1;
_GameData.NumPlayerTeam2 = dataFrom.ScreenNames.NumPlayerTeam2;
_GameData.ProfileIDsTeam1 = dataFrom.ScreenNames.ProfileIDsTeam1;
_GameData.ProfileIDsTeam2 = dataFrom.ScreenNames.ProfileIDsTeam2;
_Stage = EStage.Names;
@@ -346,8 +346,6 @@ namespace VocaluxeLib.PartyModes.TicTacToe
_Screens.TryGetValue("CPartyScreenTicTacToeConfig", out screen);
if (screen != null)
{
_ToScreenConfig.NumPlayerTeam1 = _GameData.NumPlayerTeam1;
_ToScreenConfig.NumPlayerTeam2 = _GameData.NumPlayerTeam2;
_ToScreenConfig.NumFields = _GameData.NumFields;
_ToScreenConfig.SongSource = _GameData.SongSource;
_ToScreenConfig.CategoryID = _GameData.CategoryID;
@@ -480,6 +478,16 @@ namespace VocaluxeLib.PartyModes.TicTacToe
return _MinTeams;
}
public override int GetMinPlayerPerTeam()
{
return _MinPlayerPerTeam;
}
public override int GetMaxPlayerPerTeam()
{
return _MaxPlayerPerTeam;
}
public override int GetMaxNumRounds()
{
return _NumFields;
@@ -34,8 +34,6 @@ namespace VocaluxeLib.PartyModes.TicTacToe
get { return 1; }
}
private const string _SelectSlideNumPlayerTeam1 = "SelectSlideNumPlayerTeam1";
private const string _SelectSlideNumPlayerTeam2 = "SelectSlideNumPlayerTeam2";
private const string _SelectSlideNumFields = "SelectSlideNumFields";
private const string _SelectSlideSongSource = "SelectSlideSongSource";
private const string _SelectSlidePlaylist = "SelectSlidePlaylist";
@@ -54,8 +52,7 @@ namespace VocaluxeLib.PartyModes.TicTacToe
_ThemeSelectSlides = new string[]
{
_SelectSlideNumPlayerTeam1, _SelectSlideNumPlayerTeam2, _SelectSlideNumFields, _SelectSlideSongSource, _SelectSlidePlaylist, _SelectSlideCategory,
_SelectSlideGameMode
_SelectSlideNumFields, _SelectSlideSongSource, _SelectSlidePlaylist, _SelectSlideCategory, _SelectSlideGameMode
};
_ThemeButtons = new string[] {_ButtonNext, _ButtonBack};
@@ -64,8 +61,6 @@ namespace VocaluxeLib.PartyModes.TicTacToe
{
PlaylistID = 0,
NumFields = 9,
NumPlayerTeam1 = 2,
NumPlayerTeam2 = 2,
GameMode = EPartyGameMode.TR_GAMEMODE_NORMAL,
CategoryID = 0,
SongSource = ESongSource.TR_ALLSONGS
@@ -79,8 +74,6 @@ namespace VocaluxeLib.PartyModes.TicTacToe
{
var config = (SDataToScreenConfig)receivedData;
_Data.ScreenConfig.NumFields = config.NumFields;
_Data.ScreenConfig.NumPlayerTeam1 = config.NumPlayerTeam1;
_Data.ScreenConfig.NumPlayerTeam2 = config.NumPlayerTeam2;
_Data.ScreenConfig.PlaylistID = config.PlaylistID;
_Data.ScreenConfig.CategoryID = config.CategoryID;
_Data.ScreenConfig.SongSource = config.SongSource;
@@ -173,17 +166,6 @@ namespace VocaluxeLib.PartyModes.TicTacToe
private void _FillSlides()
{
// build num player slide (min player ... max player);
_SelectSlides[_SelectSlideNumPlayerTeam1].Clear();
for (int i = _PartyMode.GetMinPlayer() / 2; i <= _PartyMode.GetMaxPlayer() / 2; i++)
_SelectSlides[_SelectSlideNumPlayerTeam1].AddValue(i.ToString());
_SelectSlides[_SelectSlideNumPlayerTeam1].Selection = _Data.ScreenConfig.NumPlayerTeam1 - (_PartyMode.GetMinPlayer() / 2);
_SelectSlides[_SelectSlideNumPlayerTeam2].Clear();
for (int i = _PartyMode.GetMinPlayer() / 2; i <= _PartyMode.GetMaxPlayer() / 2; i++)
_SelectSlides[_SelectSlideNumPlayerTeam2].AddValue(i.ToString());
_SelectSlides[_SelectSlideNumPlayerTeam2].Selection = _Data.ScreenConfig.NumPlayerTeam2 - (_PartyMode.GetMinPlayer() / 2);
_SelectSlides[_SelectSlideNumFields].Clear();
_SelectSlides[_SelectSlideNumFields].AddValue("9");
_SelectSlides[_SelectSlideNumFields].AddValue("16");
@@ -226,9 +208,6 @@ namespace VocaluxeLib.PartyModes.TicTacToe
private void _UpdateSlides()
{
_Data.ScreenConfig.NumPlayerTeam1 = _SelectSlides[_SelectSlideNumPlayerTeam1].Selection + (_PartyMode.GetMinPlayer() / 2);
_Data.ScreenConfig.NumPlayerTeam2 = _SelectSlides[_SelectSlideNumPlayerTeam2].Selection + (_PartyMode.GetMinPlayer() / 2);
if (_SelectSlides[_SelectSlideNumFields].Selection == 0)
_Data.ScreenConfig.NumFields = 9;
else if (_SelectSlides[_SelectSlideNumFields].Selection == 1)
@@ -25,7 +25,7 @@ using VocaluxeLib.Profile;
namespace VocaluxeLib.PartyModes.TicTacToe
{
// ReSharper disable UnusedMember.Global
public class CPartyScreenTicTacToeNames : CMenuParty
public class CPartyScreenTicTacToeNames : CMenuPartyNameSelection
// ReSharper restore UnusedMember.Global
{
// Version number for theme files. Increment it, if you've changed something on the theme files!
@@ -34,63 +34,18 @@ namespace VocaluxeLib.PartyModes.TicTacToe
get { return 1; }
}
private const string _ButtonNext = "ButtonNext";
private const string _ButtonBack = "ButtonBack";
private const string _ButtonPlayerDestination = "ButtonPlayerDestination";
private const string _ButtonPlayerChoose = "ButtonPlayerChoose";
private const string _ButtonPlayerChooseScrollUp = "ButtonPlayerChooseScrollUp";
private const string _ButtonPlayerChooseScrollDown = "ButtonPlayerChooseScrollDown";
private List<CPlayerChooseButton> _PlayerChooseButtons;
private List<CButton> _PlayerDestinationButtons;
//PlayerDestinationButtons-Option
private const int _PlayerDestinationButtonsNumH = 10;
private const int _PlayerDestinationButtonsFirstX = 58;
private const int _PlayerDestinationButtonsFirstY = 380;
private const int _PlayerDestinationButtonsSpaceH = 15;
private const int _PlayerDestinationButtonsSpaceW = 25;
//PlayerChooseButtons-Option
private List<int> _PlayerChooseButtonsVisibleProfiles;
private const int _PlayerChooseButtonsNumH = 10;
private const int _PlayerChooseButtonsNumW = 2;
private const int _PlayerChooseButtonsFirstX = 58;
private const int _PlayerChooseButtonsFirstY = 105;
private const int _PlayerChooseButtonsSpaceH = 15;
private const int _PlayerChooseButtonsSpaceW = 25;
private int _PlayerChooseButtonsOffset;
private CStatic _ChooseAvatarStatic;
private bool _SelectingMouseActive;
private int _OldMouseX;
private int _OldMouseY;
private int _SelectedPlayerNr = -1;
private bool _ButtonsAdded;
private int _NumPlayerTeam1 = 2;
private int _NumPlayerTeam2 = 2;
private SDataFromScreen _Data;
private class CPlayerChooseButton
{
public CButton Button;
public int ProfileID;
}
public override void Init()
{
base.Init();
_ChooseAvatarStatic = GetNewStatic();
_ChooseAvatarStatic.Visible = false;
_PlayerChooseButtonsVisibleProfiles = new List<int>();
_Data.ScreenNames.ProfileIDsTeam1 = new List<int>();
_Data.ScreenNames.ProfileIDsTeam2 = new List<int>();
_ThemeButtons = new string[] {_ButtonBack, _ButtonNext, _ButtonPlayerDestination, _ButtonPlayerChoose, _ButtonPlayerChooseScrollUp, _ButtonPlayerChooseScrollDown};
_Data = new SDataFromScreen();
var names = new SFromScreenNames {FadeToConfig = false, ProfileIDsTeam1 = new List<int>(), ProfileIDsTeam2 = new List<int>()};
_Data.ScreenNames = names;
@@ -122,514 +77,43 @@ namespace VocaluxeLib.PartyModes.TicTacToe
}
}
public override bool HandleInput(SKeyEvent keyEvent)
{
base.HandleInput(keyEvent);
if (keyEvent.KeyPressed) {}
else
{
switch (keyEvent.Key)
{
case Keys.Back:
case Keys.Escape:
_Back();
break;
case Keys.Enter:
if (_Buttons[_ButtonBack].Selected)
_Back();
if (_Buttons[_ButtonNext].Selected)
_Next();
if (_Buttons[_ButtonPlayerChooseScrollUp].Selected)
_Scroll(-1);
if (_Buttons[_ButtonPlayerChooseScrollDown].Selected)
_Scroll(1);
if (!_OnAdd())
_OnRemove();
break;
case Keys.Delete:
_OnRemove();
break;
}
}
return true;
}
public override bool HandleMouse(SMouseEvent mouseEvent)
{
base.HandleMouse(mouseEvent);
//Check if LeftButton is hold and Select-Mode inactive
if (mouseEvent.LBH && !_SelectingMouseActive)
{
//Save mouse-coords
_OldMouseX = mouseEvent.X;
_OldMouseY = mouseEvent.Y;
//Check if mouse if over tile
foreach (CPlayerChooseButton chooseButton in _PlayerChooseButtons)
{
if (chooseButton.Button.Selected)
{
_SelectedPlayerNr = chooseButton.ProfileID;
if (_SelectedPlayerNr != -1)
{
//Activate mouse-selecting
_SelectingMouseActive = true;
//Update of Drag/Drop-Texture
_ChooseAvatarStatic.Visible = true;
_ChooseAvatarStatic.Rect = chooseButton.Button.Rect;
_ChooseAvatarStatic.Rect.Z = -100;
_ChooseAvatarStatic.Color = new SColorF(1, 1, 1, 1);
_ChooseAvatarStatic.Texture = CBase.Profiles.GetAvatar(_SelectedPlayerNr);
}
}
}
return true;
}
//Check if LeftButton is hold and Select-Mode active
if (mouseEvent.LBH && _SelectingMouseActive)
{
//Update coords for Drag/Drop-Texture
_ChooseAvatarStatic.Rect.X += mouseEvent.X - _OldMouseX;
_ChooseAvatarStatic.Rect.Y += mouseEvent.Y - _OldMouseY;
_OldMouseX = mouseEvent.X;
_OldMouseY = mouseEvent.Y;
return true;
}
// LeftButton isn't hold anymore, but Selec-Mode is still active -> "Drop" of Avatar
if (_SelectingMouseActive)
{
//Check if really a player was selected
if (_SelectedPlayerNr != -1)
{
//Foreach Drop-Area
for (int i = 0; i < _PlayerDestinationButtons.Count; i++)
{
//Check first, if area is "active"
if (_PlayerDestinationButtons[i].Visible)
{
//Check if Mouse is in area
if (CHelper.IsInBounds(_PlayerDestinationButtons[i].Rect, mouseEvent))
{
int added = -1;
//Add Player-ID to list.
if (i - _PlayerDestinationButtonsNumH < 0)
{
if (_Data.ScreenNames.ProfileIDsTeam1.Count < (i + 1))
{
_Data.ScreenNames.ProfileIDsTeam1.Add(_SelectedPlayerNr);
added = _Data.ScreenNames.ProfileIDsTeam1.Count - 1;
}
else if (_Data.ScreenNames.ProfileIDsTeam1.Count >= (i + 1))
{
_Data.ScreenNames.ProfileIDsTeam1[i] = _SelectedPlayerNr;
added = i;
}
}
else if (i - _PlayerDestinationButtonsNumH >= 0)
{
if (_Data.ScreenNames.ProfileIDsTeam2.Count < ((i - _PlayerDestinationButtonsNumH) + 1))
{
_Data.ScreenNames.ProfileIDsTeam2.Add(_SelectedPlayerNr);
added = _Data.ScreenNames.ProfileIDsTeam2.Count - 1 + _PlayerDestinationButtonsNumH;
}
else if (_Data.ScreenNames.ProfileIDsTeam2.Count >= ((i - _PlayerDestinationButtonsNumH) + 1))
{
_Data.ScreenNames.ProfileIDsTeam2[i - _PlayerDestinationButtonsNumH] = _SelectedPlayerNr;
added = i;
}
}
_UpdateButtonNext();
//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 = _ChooseAvatarStatic.Texture;
_PlayerDestinationButtons[added].SelTexture = _ChooseAvatarStatic.Texture;
_PlayerDestinationButtons[added].Text.Text = CBase.Profiles.GetPlayerName(_SelectedPlayerNr);
_PlayerDestinationButtons[added].Enabled = true;
//Update Tiles-List
_UpdateButtonPlayerChoose();
}
}
}
_SelectedPlayerNr = -1;
}
//Reset variables
_SelectingMouseActive = false;
_ChooseAvatarStatic.Visible = false;
return true;
}
if (mouseEvent.LB && _IsMouseOver(mouseEvent))
{
if (_Buttons[_ButtonBack].Selected)
_Back();
if (_Buttons[_ButtonNext].Selected)
_Next();
if (_Buttons[_ButtonPlayerChooseScrollUp].Selected)
_Scroll(-1);
if (_Buttons[_ButtonPlayerChooseScrollDown].Selected)
_Scroll(1);
}
if (mouseEvent.LD && _IsMouseOver(mouseEvent))
{
if (!_OnAdd())
_OnRemove();
}
if (mouseEvent.RB)
_Back();
return true;
}
public override void OnShow()
{
base.OnShow();
if (!_ButtonsAdded)
{
_AddButtonPlayerDestination();
_AddButtonPlayerChoose();
_ButtonsAdded = true;
}
_UpdateButtonPlayerDestination();
_UpdateButtonPlayerChoose();
_UpdateButtonNext();
SetPartyModeData(2, _NumPlayerTeam1 + _NumPlayerTeam2, new int[] { _NumPlayerTeam1, _NumPlayerTeam2 });
}
public override bool UpdateGame()
public override void Back()
{
return true;
}
public override bool Draw()
{
base.Draw();
if (_ChooseAvatarStatic.Visible)
_ChooseAvatarStatic.Draw();
return true;
}
private void _Scroll(int offset)
{
if (offset < 0 && _PlayerChooseButtonsOffset > 0)
SPartyNameOptions options = GetData();
if(options.TeamList.Length == 2)
{
_PlayerChooseButtonsOffset += offset;
_UpdateButtonPlayerChoose();
_Data.ScreenNames.ProfileIDsTeam1 = options.TeamList[0];
_Data.ScreenNames.ProfileIDsTeam2 = options.TeamList[1];
}
else if (_PlayerChooseButtonsVisibleProfiles.Count < _PlayerChooseButtons.Count + (_PlayerChooseButtonsOffset + offset) * _PlayerChooseButtonsNumH)
if (options.NumPlayerTeams.Length == 2)
{
_PlayerChooseButtonsOffset += offset;
_UpdateButtonPlayerChoose();
_Data.ScreenNames.NumPlayerTeam1 = options.NumPlayerTeams[0];
_Data.ScreenNames.NumPlayerTeam2 = options.NumPlayerTeams[1];
}
}
private void _AddButtonPlayerDestination()
{
_Buttons[_ButtonPlayerDestination].Visible = false;
_PlayerDestinationButtons = new List<CButton>();
int row = 0;
int column = 0;
for (int i = 1; i <= _PartyMode.GetMaxPlayer(); i++)
{
CButton b = GetNewButton(_Buttons[_ButtonPlayerDestination]);
b.Rect.X = _PlayerDestinationButtonsFirstX + column * (b.Rect.W + _PlayerDestinationButtonsSpaceH);
b.Rect.Y = _PlayerDestinationButtonsFirstY + row * (b.Rect.H + _PlayerDestinationButtonsSpaceW);
_PlayerDestinationButtons.Add(b);
column++;
if (column >= _PlayerDestinationButtonsNumH)
{
row++;
column = 0;
}
b.Visible = true;
b.Enabled = false;
_AddButton(b);
}
}
private void _AddButtonPlayerChoose()
{
_Buttons[_ButtonPlayerChoose].Visible = false;
_PlayerChooseButtons = new List<CPlayerChooseButton>();
int row = 0;
int column = 0;
for (int i = 1; i <= _PlayerChooseButtonsNumH * _PlayerChooseButtonsNumW; i++)
{
CButton b = GetNewButton(_Buttons[_ButtonPlayerChoose]);
b.Rect.X = _PlayerChooseButtonsFirstX + column * (b.Rect.W + _PlayerChooseButtonsSpaceH);
b.Rect.Y = _PlayerChooseButtonsFirstY + row * (b.Rect.H + _PlayerChooseButtonsSpaceW);
var pcb = new CPlayerChooseButton {Button = b, ProfileID = -1};
_PlayerChooseButtons.Add(pcb);
column++;
if (column >= _PlayerChooseButtonsNumH)
{
row++;
column = 0;
}
b.Visible = true;
b.Enabled = false;
_AddButton(b);
}
}
private void _UpdateButtonPlayerChoose()
{
_UpdateVisibleProfiles();
if ((_PlayerChooseButtonsNumW * _PlayerChooseButtonsNumH) * (_PlayerChooseButtonsOffset + 1) - _PlayerChooseButtonsVisibleProfiles.Count >=
(_PlayerChooseButtonsNumW * _PlayerChooseButtonsNumH) * _PlayerChooseButtonsOffset)
_UpdateButtonPlayerChoose(_PlayerChooseButtonsOffset - 1);
else
_UpdateButtonPlayerChoose(_PlayerChooseButtonsOffset);
_Buttons[_ButtonPlayerChooseScrollUp].Enabled = _PlayerChooseButtonsOffset > 0;
_Buttons[_ButtonPlayerChooseScrollDown].Enabled = _PlayerChooseButtonsVisibleProfiles.Count >
_PlayerChooseButtons.Count + _PlayerChooseButtonsOffset * _PlayerChooseButtonsNumH;
}
private void _UpdateButtonPlayerChoose(int offset)
{
const int numButtonPlayerChoose = _PlayerChooseButtonsNumW * _PlayerChooseButtonsNumH;
if (offset < 0)
offset = 0;
if (numButtonPlayerChoose * (offset + 1) - _PlayerChooseButtonsVisibleProfiles.Count <= numButtonPlayerChoose)
{
for (int i = 0; i < numButtonPlayerChoose; i++)
{
if ((i + offset * numButtonPlayerChoose) < _PlayerChooseButtonsVisibleProfiles.Count)
{
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;
}
else
{
_PlayerChooseButtons[i].ProfileID = -1;
_PlayerChooseButtons[i].Button.Text.Text = String.Empty;
_PlayerChooseButtons[i].Button.Texture = _Buttons[_ButtonPlayerChoose].Texture;
_PlayerChooseButtons[i].Button.SelTexture = _Buttons[_ButtonPlayerChoose].SelTexture;
_PlayerChooseButtons[i].Button.Color = _Buttons[_ButtonPlayerChoose].Color;
_PlayerChooseButtons[i].Button.SelColor = _Buttons[_ButtonPlayerChoose].SelColor;
_PlayerChooseButtons[i].Button.Enabled = false;
}
}
}
}
private void _UpdateVisibleProfiles()
{
_PlayerChooseButtonsVisibleProfiles.Clear();
CProfile[] profiles = CBase.Profiles.GetProfiles();
foreach (CProfile profile in profiles)
{
bool visible = false;
//Show profile only if active
if (profile.Active == EOffOn.TR_CONFIG_ON)
{
visible = _Data.ScreenNames.ProfileIDsTeam1.All(profileID => profileID != profile.ID) &&
_Data.ScreenNames.ProfileIDsTeam2.All(profileID => profileID != profile.ID);
}
if (visible)
_PlayerChooseButtonsVisibleProfiles.Add(profile.ID);
}
}
private void _UpdateButtonPlayerDestination()
{
for (int i = 0; i < _PlayerDestinationButtons.Count / 2; i++)
{
if (_NumPlayerTeam1 > i)
{
_PlayerDestinationButtons[i].Visible = true;
_PlayerDestinationButtons[i].Enabled = true;
}
else
{
_PlayerDestinationButtons[i].Visible = false;
_PlayerDestinationButtons[i].Enabled = false;
}
}
for (int i = 0; i < _PlayerDestinationButtons.Count / 2; i++)
{
if (_NumPlayerTeam2 > i)
{
_PlayerDestinationButtons[i + _PlayerDestinationButtonsNumH].Visible = true;
_PlayerDestinationButtons[i + _PlayerDestinationButtonsNumH].Enabled = true;
}
else
{
_PlayerDestinationButtons[i + _PlayerDestinationButtonsNumH].Visible = false;
_PlayerDestinationButtons[i + _PlayerDestinationButtonsNumH].Enabled = false;
}
}
for (int i = 0; i < _NumPlayerTeam1; i++)
{
if (i < _Data.ScreenNames.ProfileIDsTeam1.Count)
{
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.GetAvatar(id);
_PlayerDestinationButtons[i].SelTexture = CBase.Profiles.GetAvatar(id);
_PlayerDestinationButtons[i].Text.Text = CBase.Profiles.GetPlayerName(id);
_PlayerDestinationButtons[i].Enabled = true;
}
}
else
{
_PlayerDestinationButtons[i].Color = _Buttons[_ButtonPlayerDestination].Color;
_PlayerDestinationButtons[i].SelColor = _Buttons[_ButtonPlayerDestination].SelColor;
_PlayerDestinationButtons[i].Texture = _Buttons[_ButtonPlayerDestination].Texture;
_PlayerDestinationButtons[i].SelTexture = _Buttons[_ButtonPlayerDestination].SelTexture;
_PlayerDestinationButtons[i].Text.Text = String.Empty;
_PlayerDestinationButtons[i].Enabled = false;
}
}
for (int i = 0; i < _NumPlayerTeam2; i++)
{
if (i < _Data.ScreenNames.ProfileIDsTeam2.Count)
{
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].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;
}
}
else
{
_PlayerDestinationButtons[i + _PlayerDestinationButtonsNumH].Color = _Buttons[_ButtonPlayerDestination].Color;
_PlayerDestinationButtons[i + _PlayerDestinationButtonsNumH].SelColor = _Buttons[_ButtonPlayerDestination].SelColor;
_PlayerDestinationButtons[i + _PlayerDestinationButtonsNumH].Texture = _Buttons[_ButtonPlayerDestination].Texture;
_PlayerDestinationButtons[i + _PlayerDestinationButtonsNumH].SelTexture = _Buttons[_ButtonPlayerDestination].SelTexture;
_PlayerDestinationButtons[i + _PlayerDestinationButtonsNumH].Text.Text = String.Empty;
_PlayerDestinationButtons[i + _PlayerDestinationButtonsNumH].Enabled = false;
}
}
}
private void _UpdateButtonNext()
{
if (_Data.ScreenNames.ProfileIDsTeam1.Count == _NumPlayerTeam1 && _Data.ScreenNames.ProfileIDsTeam2.Count == _NumPlayerTeam2)
{
_Buttons[_ButtonNext].Visible = true;
_SetInteractionToButton(_Buttons[_ButtonNext]);
}
else
_Buttons[_ButtonNext].Visible = false;
}
private bool _OnAdd()
{
foreach (CPlayerChooseButton chooseButton in _PlayerChooseButtons.Where(chooseButton => chooseButton.Button.Selected && chooseButton.ProfileID != -1))
{
if (_Data.ScreenNames.ProfileIDsTeam1.Count < _NumPlayerTeam1)
{
_Data.ScreenNames.ProfileIDsTeam1.Add(chooseButton.ProfileID);
int added = _Data.ScreenNames.ProfileIDsTeam1.Count - 1;
_UpdateButtonNext();
//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.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();
_CheckInteraction();
return true;
}
if (_Data.ScreenNames.ProfileIDsTeam2.Count < _NumPlayerTeam2)
{
_Data.ScreenNames.ProfileIDsTeam2.Add(chooseButton.ProfileID);
int added = (_Data.ScreenNames.ProfileIDsTeam2.Count - 1) + _PlayerDestinationButtonsNumH;
_UpdateButtonNext();
//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.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();
_CheckInteraction();
return true;
}
}
return false;
}
private bool _OnRemove()
{
for (int i = 0; i < _PlayerDestinationButtonsNumH; i++)
{
if (_PlayerDestinationButtons[i].Selected)
{
if ((i + 1) <= _Data.ScreenNames.ProfileIDsTeam1.Count)
{
_Data.ScreenNames.ProfileIDsTeam1.RemoveAt(i);
_UpdateButtonNext();
_UpdateButtonPlayerDestination();
_UpdateButtonPlayerChoose();
_CheckInteraction();
return true;
}
}
}
for (int i = _PlayerDestinationButtonsNumH; i < _PlayerDestinationButtonsNumH * 2; i++)
{
if (_PlayerDestinationButtons[i].Selected)
{
if (((i - _PlayerDestinationButtonsNumH) + 1) <= _Data.ScreenNames.ProfileIDsTeam2.Count)
{
_Data.ScreenNames.ProfileIDsTeam2.RemoveAt(i - _PlayerDestinationButtonsNumH);
_UpdateButtonNext();
_UpdateButtonPlayerDestination();
_UpdateButtonPlayerChoose();
_CheckInteraction();
return true;
}
}
}
return false;
}
private void _Back()
{
_Data.ScreenNames.FadeToConfig = true;
_PartyMode.DataFromScreen(ThemeName, _Data);
}
private void _Next()
public override void Next()
{
SPartyNameOptions options = GetData();
if (options.TeamList.Length == 2)
{
_Data.ScreenNames.ProfileIDsTeam1 = options.TeamList[0];
_Data.ScreenNames.ProfileIDsTeam2 = options.TeamList[1];
}
if (options.NumPlayerTeams.Length == 2)
{
_Data.ScreenNames.NumPlayerTeam1 = options.NumPlayerTeams[0];
_Data.ScreenNames.NumPlayerTeam2 = options.NumPlayerTeams[1];
}
_Data.ScreenNames.FadeToConfig = false;
_PartyMode.DataFromScreen(ThemeName, _Data);
}
+15
View File
@@ -595,6 +595,21 @@ namespace Vocaluxe.Base
{
return CProfiles.GetAvatarTextureFromProfile(profileID);
}
public bool IsProfileIDValid(int profileID)
{
return CProfiles.IsProfileIDValid(profileID);
}
public bool IsGuest(int profileID)
{
return CProfiles.IsGuestProfile(profileID);
}
public void AddProfileChangedCallback(ProfileChangedCallback notification)
{
CProfiles.AddProfileChangedCallback(notification);
}
}
class CBrecord : IRecording
+1 -11
View File
@@ -24,16 +24,6 @@ using VocaluxeLib.Draw;
namespace Vocaluxe.Base
{
[Flags]
public enum EProfileChangedFlags
{
None = 1,
Avatar = 2,
Profile = 4
}
public delegate void ProfileChangedCallback(EProfileChangedFlags typeChanged);
static class CProfiles
{
#region enums and structs
@@ -466,7 +456,7 @@ namespace Vocaluxe.Base
if (!IsProfileIDValid(profileID))
return true; // this will prevent from saving dummy profiles to highscore db
return !_Profiles[profileID].UserRole.HasFlag(EUserRole.TR_USERROLE_NORMAL);
return _Profiles[profileID].UserRole <= EUserRole.TR_USERROLE_GUEST;
}
public static bool IsActive(int profileID)
+7 -1
View File
@@ -23,6 +23,7 @@ using VocaluxeLib;
using VocaluxeLib.Draw;
using VocaluxeLib.Menu;
using VocaluxeLib.Songs;
using VocaluxeLib.Profile;
namespace Vocaluxe.Screens
{
@@ -602,6 +603,7 @@ namespace Vocaluxe.Screens
for (int i = 0; i < CSettings.MaxNumPlayer; i++)
{
_NameSelections[_NameSelection].UseProfile(CGame.Players[i].ProfileID);
_Statics[_StaticPlayerAvatar[i]].Texture = CProfiles.IsProfileIDValid(CGame.Players[i].ProfileID) ?
CProfiles.GetAvatarTextureFromProfile(CGame.Players[i].ProfileID) :
_OriginalPlayerAvatarTextures[i];
@@ -618,7 +620,7 @@ namespace Vocaluxe.Screens
else
_SelectSlides[_SelectSlideDuetPlayer[i]].Visible = false;
}
_NameSelections[_NameSelection].UpdateList();
_ProfilesChanged = false;
_AvatarsChanged = false;
}
@@ -675,6 +677,8 @@ namespace Vocaluxe.Screens
private void _UpdateSelectedProfile(int playerNum, int profileId)
{
_NameSelections[_NameSelection].RemoveUsedProfile(CGame.Players[playerNum].ProfileID);
_NameSelections[_NameSelection].UseProfile(profileId);
//Update Game-infos with new player
CGame.Players[playerNum].ProfileID = profileId;
//Update config for default players.
@@ -693,6 +697,7 @@ namespace Vocaluxe.Screens
{
for (int i = 0; i < CGame.NumPlayer; i++)
{
_NameSelections[_NameSelection].RemoveUsedProfile(CGame.Players[i].ProfileID);
CGame.Players[i].ProfileID = -1;
//Update config for default players.
CConfig.Players[i] = String.Empty;
@@ -706,6 +711,7 @@ namespace Vocaluxe.Screens
private void _ResetPlayerSelection(int playerNum)
{
_NameSelections[_NameSelection].RemoveUsedProfile(CGame.Players[playerNum].ProfileID);
CGame.Players[playerNum].ProfileID = -1;
//Update config for default players.
CConfig.Players[playerNum] = String.Empty;
+3
View File
@@ -209,6 +209,9 @@ namespace VocaluxeLib
EGameDifficulty GetDifficulty(int profileID);
string GetPlayerName(int profileID, int playerNum = 0);
CTexture GetAvatar(int profileID);
bool IsProfileIDValid(int profileID);
bool IsGuest(int profileID);
void AddProfileChangedCallback(ProfileChangedCallback notification);
}
public interface ISongs
+2 -1
View File
@@ -191,7 +191,8 @@ namespace VocaluxeLib.Menu
ok = _DrawVideo();
}
if (_Theme.Type == EBackgroundTypes.SlideShow )
if (_Theme.Type == EBackgroundTypes.SlideShow && _Theme.SlideShowTextures.Count > 0)
{
ok = _DrawSlideShow();
}
+745
View File
@@ -0,0 +1,745 @@
#region license
// This file is part of Vocaluxe.
//
// Vocaluxe is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// Vocaluxe is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Vocaluxe. If not, see <http://www.gnu.org/licenses/>.
#endregion
using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;
using VocaluxeLib.PartyModes;
using VocaluxeLib.Draw;
using VocaluxeLib.Profile;
namespace VocaluxeLib.Menu
{
public struct SPartyNameOptions
{
public int[] NumPlayerTeams;
public List<int>[] TeamList;
}
public abstract class CMenuPartyNameSelection : CMenuParty
{
private bool _Teams;
protected int _NumTeams = -1;
protected int _NumPlayer = -1;
protected int[] _NumPlayerTeams;
protected bool _AllowChangePlayerNum = true;
protected bool _AllowChangeTeamNum = true;
protected bool _ChangePlayerNumDynamic = true;
protected bool _ChangeTeamNumDynamic = true;
private int _CurrentTeam = 0;
private bool _AvatarsChanged;
private bool _ProfilesChanged;
private bool _SelectingKeyboardActive;
private bool _SelectingFast;
private int _SelectingFastPlayerNr;
private int _SelectedProfileID = -1;
private CStatic _ChooseAvatarStatic;
private int _OldMouseX;
private int _OldMouseY;
private const string _ButtonNext = "ButtonNext";
private const string _ButtonBack = "ButtonBack";
private const string _ButtonRandom = "ButtonRandom";
private const string _ButtonIncreaseTeams = "ButtonIncreaseTeams";
private const string _ButtonDecreaseTeams = "ButtonDecreaseTeams";
private const string _ButtonIncreasePlayer = "ButtonIncreasePlayer";
private const string _ButtonDecreasePlayer = "ButtonDecreasePlayer";
private const string _SelectSlideTeams = "SelectSlideTeams";
private const string _SelectSlidePlayer = "SelectSlidePlayer";
private const string _NameSelection = "NameSelection";
private List<int>[] _TeamList;
public override void Init()
{
base.Init();
_ThemeButtons = new string[] { _ButtonBack, _ButtonNext, _ButtonRandom, _ButtonIncreaseTeams, _ButtonDecreaseTeams, _ButtonIncreasePlayer, _ButtonDecreasePlayer };
_ThemeSelectSlides = new string[] { _SelectSlideTeams, _SelectSlidePlayer };
_ThemeNameSelections = new string[] { _NameSelection };
_ChooseAvatarStatic = GetNewStatic();
_ChooseAvatarStatic.Visible = false;
_ChooseAvatarStatic.Aspect = EAspect.Crop;
CBase.Profiles.AddProfileChangedCallback(_OnProfileChanged);
}
public void SetPartyModeData(int numPlayer)
{
SetPartyModeData(1, numPlayer, new int[] { numPlayer });
_CurrentTeam = 0;
}
public void SetPartyModeData(int numTeams, int numPlayer, int[] numPlayerTeams)
{
_NumTeams = numTeams;
_NumPlayer = numPlayer;
_NumPlayerTeams = numPlayerTeams;
if (_NumTeams > 0)
_TeamList = new List<int>[_NumTeams];
else
_TeamList = new List<int>[1];
if (_NumTeams != _NumPlayerTeams.Length)
_NumPlayerTeams = new int[_NumTeams];
for (int i = 0; i < _TeamList.Length; i++)
_TeamList[i] = new List<int>();
_Teams = _NumTeams > 0;
_UpdateSlides();
_LoadProfiles();
_UpdateButtonVisibility();
_UpdateButtonState();
}
public override bool HandleInput(SKeyEvent keyEvent)
{
//Check if selecting with keyboard is active
if (_SelectingKeyboardActive)
{
//Handle left/right/up/down
_NameSelections[_NameSelection].HandleInput(keyEvent);
int numberPressed = -1;
bool resetSelection = false;
switch (keyEvent.Key)
{
case Keys.Enter:
//Check, if a player is selected
if (_NameSelections[_NameSelection].Selection > -1)
{
_SelectedProfileID = _NameSelections[_NameSelection].Selection;
if (!CBase.Profiles.IsProfileIDValid(_SelectedProfileID))
return true;
_AddPlayer(_CurrentTeam, _SelectedProfileID);
}
//Started selecting with 'P'
if (_SelectingFast) {
if (!_ChangePlayerNumDynamic && _TeamList[_CurrentTeam].Count == _NumPlayerTeams[_CurrentTeam])
resetSelection = true;
else if (_TeamList[_CurrentTeam].Count == _PartyMode.GetMaxPlayerPerTeam())
resetSelection = true;
}
else if(!_SelectingFast)
resetSelection = true;
break;
case Keys.Escape:
case Keys.Back:
resetSelection = true;
break;
}
if (numberPressed > 0 || resetSelection)
{
if (numberPressed == _SelectingFastPlayerNr || resetSelection)
{
//Reset all values
_SelectingFastPlayerNr = 0;
_SelectingKeyboardActive = false;
_NameSelections[_NameSelection].FastSelection(false, -1);
}
else if (numberPressed <= _NumPlayerTeams[_CurrentTeam])
{
_SelectingFastPlayerNr = numberPressed;
_NameSelections[_NameSelection].FastSelection(true, numberPressed);
}
_SelectingFast = false;
}
}
else
{
base.HandleInput(keyEvent);
int numPressed = 0;
switch (keyEvent.Key)
{
case Keys.Back:
case Keys.Escape:
Back();
break;
case Keys.Enter:
if (_Buttons[_ButtonBack].Selected)
Back();
if (_Buttons[_ButtonNext].Selected)
Next();
if (_Buttons[_ButtonRandom].Selected)
_SelectRandom();
if (_Buttons[_ButtonIncreaseTeams].Selected)
IncreaseTeamNum();
if (_Buttons[_ButtonDecreaseTeams].Selected)
DecreaseTeamNum();
if (_Buttons[_ButtonIncreasePlayer].Selected)
IncreasePlayerNum(_CurrentTeam);
if (_Buttons[_ButtonDecreasePlayer].Selected)
DecreasePlayerNum(_CurrentTeam);
break;
case Keys.Delete:
if (_SelectSlides[_SelectSlidePlayer].Selected && _SelectSlides[_SelectSlidePlayer].NumValues > 0)
{
int index = _SelectSlides[_SelectSlidePlayer].Selection;
_RemovePlayerByIndex(_CurrentTeam, index);
_UpdatePlayerSlide();
}
break;
case Keys.Left:
case Keys.Right:
if (_SelectSlides[_SelectSlideTeams].Selected)
_OnChangeTeamSlide();
break;
case Keys.P:
if (!_SelectingKeyboardActive)
{
_SelectingFastPlayerNr = (_CurrentTeam + 1);
_SelectingFast = true;
//_ResetPlayerSelections();
}
break;
case Keys.D1:
case Keys.NumPad1:
numPressed = 1;
break;
case Keys.D2:
case Keys.NumPad2:
numPressed = 2;
break;
case Keys.D3:
case Keys.NumPad3:
numPressed = 3;
break;
case Keys.D4:
case Keys.NumPad4:
numPressed = 4;
break;
case Keys.D5:
case Keys.NumPad5:
numPressed = 5;
break;
case Keys.D6:
case Keys.NumPad6:
numPressed = 6;
break;
case Keys.D7:
case Keys.NumPad7:
numPressed = 7;
break;
case Keys.D8:
case Keys.NumPad8:
numPressed = 8;
break;
case Keys.D9:
case Keys.NumPad9:
numPressed = 9;
break;
case Keys.Subtract:
if (_SelectSlides[_SelectSlideTeams].Selected)
DecreaseTeamNum();
else if (_SelectSlides[_SelectSlidePlayer].Selected)
DecreasePlayerNum(_CurrentTeam);
break;
case Keys.Add:
if (_SelectSlides[_SelectSlideTeams].Selected)
IncreaseTeamNum();
else if (_SelectSlides[_SelectSlidePlayer].Selected)
IncreasePlayerNum(_CurrentTeam);
break;
}
if (numPressed > 0)
{
if (_ChangeTeamNumDynamic && numPressed < _PartyMode.GetMaxTeams() && numPressed > _SelectSlides[_SelectSlideTeams].NumValues)
while (numPressed < _PartyMode.GetMaxTeams())
IncreaseTeamNum();
if (numPressed <= _SelectSlides[_SelectSlideTeams].NumValues)
_SelectSlides[_SelectSlideTeams].SetSelectionByValueIndex(numPressed - 1);
}
}
if (_SelectingFastPlayerNr > 0 && _SelectingFastPlayerNr <= _NumPlayerTeams[_CurrentTeam])
{
_SelectingKeyboardActive = true;
_NameSelections[_NameSelection].FastSelection(true, _SelectingFastPlayerNr);
}
return true;
}
public override bool HandleMouse(SMouseEvent mouseEvent)
{
bool stopSelectingFast = false;
if (_SelectingFast)
_NameSelections[_NameSelection].HandleMouse(mouseEvent);
else
base.HandleMouse(mouseEvent);
//Check if LeftButton is hold and Select-Mode inactive
if (mouseEvent.LBH && _SelectedProfileID < 0 && !_SelectingFast)
{
//Save mouse-coords
_OldMouseX = mouseEvent.X;
_OldMouseY = mouseEvent.Y;
//Check if mouse if over tile
if (_NameSelections[_NameSelection].IsOverTile(mouseEvent))
{
//Get player-number of tile
_SelectedProfileID = _NameSelections[_NameSelection].TilePlayerNr(mouseEvent);
if (_SelectedProfileID != -1)
{
//Update of Drag/Drop-Texture
CStatic selectedPlayer = _NameSelections[_NameSelection].TilePlayerAvatar(mouseEvent);
_ChooseAvatarStatic.Visible = true;
_ChooseAvatarStatic.Rect = selectedPlayer.Rect;
_ChooseAvatarStatic.Rect.Z = CBase.Settings.GetZNear();
_ChooseAvatarStatic.Color = new SColorF(1, 1, 1, 1);
_ChooseAvatarStatic.Texture = selectedPlayer.Texture;
}
}
}
//Check if LeftButton is hold and Select-Mode active
if (mouseEvent.LBH && _SelectedProfileID >= 0 && !_SelectingFast)
{
//Update coords for Drag/Drop-Texture
_ChooseAvatarStatic.Rect.X += mouseEvent.X - _OldMouseX;
_ChooseAvatarStatic.Rect.Y += mouseEvent.Y - _OldMouseY;
_OldMouseX = mouseEvent.X;
_OldMouseY = mouseEvent.Y;
}
// LeftButton isn't hold anymore, but Select-Mode is still active -> "Drop" of Avatar
else if (_SelectedProfileID >= 0 && !_SelectingFast)
{
//Check if mouse is in drop-area
if (CHelper.IsInBounds(_SelectSlides[_SelectSlidePlayer].Rect, mouseEvent))
{
if (!CBase.Profiles.IsProfileIDValid(_SelectedProfileID))
return true;
_AddPlayer(_CurrentTeam, _SelectedProfileID);
}
//Reset variables
_SelectedProfileID = -1;
_ChooseAvatarStatic.Visible = false;
}
if (mouseEvent.LB && _SelectingFast)
{
if (_NameSelections[_NameSelection].IsOverTile(mouseEvent))
{
//Get player-number of tile
_SelectedProfileID = _NameSelections[_NameSelection].TilePlayerNr(mouseEvent);
if (_SelectedProfileID != -1)
{
if (!CBase.Profiles.IsProfileIDValid(_SelectedProfileID))
return true;
_AddPlayer(_CurrentTeam, _SelectedProfileID);
if (!_ChangePlayerNumDynamic && _TeamList[_CurrentTeam].Count == _NumPlayerTeams[_CurrentTeam])
stopSelectingFast = true;
else if (_TeamList[_CurrentTeam].Count == _PartyMode.GetMaxPlayerPerTeam())
stopSelectingFast = true;
}
else
stopSelectingFast = true;
}
}
else if (mouseEvent.LB && _IsMouseOver(mouseEvent))
{
if (_Buttons[_ButtonBack].Selected)
Back();
if (_Buttons[_ButtonNext].Selected)
Next();
if (_Buttons[_ButtonRandom].Selected)
_SelectRandom();
if (_Buttons[_ButtonIncreaseTeams].Selected)
IncreaseTeamNum();
if (_Buttons[_ButtonDecreaseTeams].Selected)
DecreaseTeamNum();
if (_Buttons[_ButtonIncreasePlayer].Selected)
IncreasePlayerNum(_CurrentTeam);
if (_Buttons[_ButtonDecreasePlayer].Selected)
DecreasePlayerNum(_CurrentTeam);
if (_SelectSlides[_SelectSlideTeams].Selected)
_OnChangeTeamSlide();
//Update Tiles-List
_NameSelections[_NameSelection].UpdateList();
}
if (mouseEvent.LD && _NameSelections[_NameSelection].IsOverTile(mouseEvent) && !_SelectingFast)
{
_SelectedProfileID = _NameSelections[_NameSelection].TilePlayerNr(mouseEvent);
if (_SelectedProfileID > -1)
{
if (!CBase.Profiles.IsProfileIDValid(_SelectedProfileID))
return true;
_AddPlayer(_CurrentTeam, _SelectedProfileID);
}
}
if (mouseEvent.RB && _SelectingFast)
stopSelectingFast = true;
else if (mouseEvent.RB)
{
bool exit = true;
if (_SelectSlides[_SelectSlidePlayer].Selected && _TeamList[_CurrentTeam].Count > 0 )
{
int currentSelection = _SelectSlides[_SelectSlidePlayer].Selection;
int id = _TeamList[_CurrentTeam][currentSelection];
_RemovePlayer(_CurrentTeam, id);
_UpdatePlayerSlide();
exit = false;
}
if (exit)
Back();
}
if (mouseEvent.MB && _SelectingFast)
{
if (!_ChangePlayerNumDynamic && _TeamList[_CurrentTeam].Count == _NumPlayerTeams[_CurrentTeam])
stopSelectingFast = true;
else if (_TeamList[_CurrentTeam].Count == _PartyMode.GetMaxPlayerPerTeam())
stopSelectingFast = true;
}
else if (mouseEvent.MB)
{
_SelectingFast = true;
_SelectingFastPlayerNr = (_CurrentTeam + 1);
_SelectingKeyboardActive = true;
_NameSelections[_NameSelection].FastSelection(true, _SelectingFastPlayerNr);
}
//Check mouse-wheel for scrolling
if (mouseEvent.Wheel != 0)
{
if (CHelper.IsInBounds(_NameSelections[_NameSelection].Rect, mouseEvent))
{
int offset = _NameSelections[_NameSelection].Offset + mouseEvent.Wheel;
_NameSelections[_NameSelection].UpdateList(offset);
}
}
if (stopSelectingFast)
{
_SelectingFast = false;
_SelectingFastPlayerNr = 0;
_SelectingKeyboardActive = false;
_NameSelections[_NameSelection].FastSelection(false, -1);
}
return true;
}
public override void LoadTheme(string xmlPath)
{
base.LoadTheme(xmlPath);
_SelectSlides[_SelectSlidePlayer].WithTextures = true;
_SelectSlides[_SelectSlidePlayer].SelectionByHover = true;
}
public override bool UpdateGame()
{
if (_ProfilesChanged || _AvatarsChanged)
_LoadProfiles();
return true;
}
public override void OnShow()
{
_NameSelections[_NameSelection].Init();
base.OnShow();
_UpdateButtonVisibility();
_UpdateButtonState();
}
public override bool Draw()
{
base.Draw();
if (_ChooseAvatarStatic.Visible)
_ChooseAvatarStatic.Draw();
return true;
}
public abstract void Back();
public abstract void Next();
public SPartyNameOptions GetData()
{
SPartyNameOptions option = new SPartyNameOptions();
option.NumPlayerTeams = _NumPlayerTeams;
option.TeamList = _TeamList;
return option;
}
public void IncreaseTeamNum()
{
if (!_AllowChangeTeamNum)
return;
if (_NumTeams + 1 <= _PartyMode.GetMaxTeams())
{
_NumTeams++;
int[] numPlayerTeams = _NumPlayerTeams;
List<int>[] teamList = _TeamList;
_NumPlayerTeams = new int[_NumTeams];
_TeamList = new List<int>[_NumTeams];
for (int i = 0; i < _NumPlayerTeams.Length; i++)
{
if (i < numPlayerTeams.Length)
{
_NumPlayerTeams[i] = numPlayerTeams[i];
_TeamList[i] = teamList[i];
}
else
{
_NumPlayerTeams[i] = _NumPlayer;
_TeamList[i] = new List<int>();
}
}
}
_UpdateButtonState();
}
public void DecreaseTeamNum()
{
if (!_AllowChangeTeamNum)
return;
if (_NumTeams - 1 >= _PartyMode.GetMinTeams())
{
_NumTeams--;
}
_UpdateButtonState();
}
public void IncreasePlayerNum(int team)
{
if (!_AllowChangePlayerNum)
return;
if (_NumPlayerTeams.Length > team)
{
if (_NumPlayerTeams[team] + 1 <= _PartyMode.GetMaxPlayerPerTeam())
_NumPlayerTeams[team]++;
_UpdatePlayerSlide();
}
_UpdateButtonState();
}
public void DecreasePlayerNum(int team)
{
if (!_AllowChangePlayerNum)
return;
if (_NumPlayerTeams.Length > team)
{
if (_NumPlayerTeams[team] - 1 >= _PartyMode.GetMinPlayerPerTeam())
_NumPlayerTeams[team]--;
if (_TeamList[team].Count > _NumPlayerTeams[team])
_RemovePlayerByIndex(team, _NumPlayerTeams[team] - 1);
_UpdatePlayerSlide();
}
_UpdateButtonState();
}
#region private methods
private void _OnProfileChanged(EProfileChangedFlags flags)
{
if (EProfileChangedFlags.Avatar == (EProfileChangedFlags.Avatar & flags))
_AvatarsChanged = true;
if (EProfileChangedFlags.Profile == (EProfileChangedFlags.Profile & flags))
_ProfilesChanged = true;
}
private void _LoadProfiles()
{
_NameSelections[_NameSelection].UpdateList();
_UpdateSlides();
_OnChangeTeamSlide();
_ProfilesChanged = false;
_AvatarsChanged = false;
}
private void _UpdateSlides()
{
_UpdateTeamSlide();
_UpdatePlayerSlide();
}
private void _OnChangeTeamSlide()
{
if (_CurrentTeam == _SelectSlides[_SelectSlideTeams].Selection)
return;
_CurrentTeam = _SelectSlides[_SelectSlideTeams].Selection;
_UpdatePlayerSlide();
}
private void _UpdatePlayerSlide()
{
int selection = _SelectSlides[_SelectSlidePlayer].Selection;
_SelectSlides[_SelectSlidePlayer].Clear();
for (int i = 0; i < _TeamList[_CurrentTeam].Count; i++)
{
string name = CBase.Profiles.GetPlayerName(_TeamList[_CurrentTeam][i]);
CTexture avatar = CBase.Profiles.GetAvatar(_TeamList[_CurrentTeam][i]);
_SelectSlides[_SelectSlidePlayer].AddValue(name, avatar);
}
for (int i = _TeamList[_CurrentTeam].Count; i < _NumPlayerTeams[_CurrentTeam]; i++)
{
_SelectSlides[_SelectSlidePlayer].AddValue("", _NameSelections[_NameSelection].TextureEmptyTile);
}
if (selection >= _TeamList[_CurrentTeam].Count)
selection = _TeamList[_CurrentTeam].Count - 1;
_SelectSlides[_SelectSlidePlayer].SetSelectionByValueIndex(selection);
}
private void _UpdateTeamSlide()
{
_SelectSlides[_SelectSlideTeams].Visible = _Teams;
_SelectSlides[_SelectSlideTeams].Clear();
for (int i = 1; i <= _NumTeams; i++)
_SelectSlides[_SelectSlideTeams].AddValue("Team " + i);
}
private void _UpdateButtonVisibility()
{
_Buttons[_ButtonIncreaseTeams].Visible = _AllowChangePlayerNum && _Teams && _PartyMode.GetMinTeams() != _PartyMode.GetMaxTeams();
_Buttons[_ButtonDecreaseTeams].Visible = _AllowChangePlayerNum && _Teams && _PartyMode.GetMinTeams() != _PartyMode.GetMaxTeams();
_Buttons[_ButtonIncreasePlayer].Visible = _AllowChangePlayerNum;
_Buttons[_ButtonDecreasePlayer].Visible = _AllowChangePlayerNum;
}
private void _UpdateButtonState()
{
_Buttons[_ButtonIncreaseTeams].Enabled = _NumTeams < _PartyMode.GetMaxTeams();
_Buttons[_ButtonDecreaseTeams].Enabled = _NumTeams > _PartyMode.GetMinTeams();
if (_NumPlayerTeams != null && _NumPlayerTeams.Length > _CurrentTeam)
{
_Buttons[_ButtonIncreasePlayer].Enabled = _NumPlayerTeams[_CurrentTeam] < _PartyMode.GetMaxPlayerPerTeam();
_Buttons[_ButtonDecreasePlayer].Enabled = _NumPlayerTeams[_CurrentTeam] > _PartyMode.GetMinPlayerPerTeam();
}
else
{
_Buttons[_ButtonIncreasePlayer].Enabled = false;
_Buttons[_ButtonDecreasePlayer].Enabled = false;
}
}
private void _AddPlayer(int team, int profileID)
{
if (_NumPlayerTeams[team] == _TeamList[team].Count && !_ChangePlayerNumDynamic)
return;
else if (_NumPlayerTeams[team] == _PartyMode.GetMaxPlayerPerTeam())
return;
_NameSelections[_NameSelection].UseProfile(profileID);
_TeamList[team].Add(profileID);
_UpdatePlayerSlide();
}
private void _RemoveAllPlayer()
{
for (int t = 0; t < _TeamList.Length; t++)
{
List<int> ids = new List<int>();
ids.AddRange(_TeamList[t]);
for (int p = 0; p < ids.Count; p++)
{
_RemovePlayer(t, ids[p]);
}
}
}
private void _RemovePlayerByIndex(int team, int index)
{
if (_TeamList[team].Count > index)
{
int id = _TeamList[team][index];
_TeamList[team].RemoveAt(index);
_NameSelections[_NameSelection].RemoveUsedProfile(id);
}
}
private void _RemovePlayer(int team, int profileID)
{
_TeamList[team].Remove(profileID);
_NameSelections[_NameSelection].RemoveUsedProfile(profileID);
}
private void _SelectRandom()
{
_RemoveAllPlayer();
for (int t = 0; t < _NumPlayerTeams.Length; t++)
{
for (int p = 0; p < _NumPlayerTeams[t]; p++)
{
int profileID = _NameSelections[_NameSelection].GetRandomUnusedProfile();
_AddPlayer(t, profileID);
}
}
}
#endregion
}
}
+48 -8
View File
@@ -71,6 +71,10 @@ namespace VocaluxeLib.Menu
private CTexture _TextureEmptyTile;
private CTexture _TextureTileSelected;
public CTexture TextureEmptyTile
{
get { return _TextureEmptyTile; }
}
public SColorF ColorEmptyTile;
@@ -90,6 +94,7 @@ namespace VocaluxeLib.Menu
private int _Player = -1;
private readonly List<int> _VisibleProfiles;
private List<int> _UsedProfiles;
private CStatic _PlayerSelector;
@@ -100,6 +105,7 @@ namespace VocaluxeLib.Menu
_Tiles = new List<CTile>();
_VisibleProfiles = new List<int>();
_UsedProfiles = new List<int>();
}
public void Init()
@@ -478,6 +484,46 @@ namespace VocaluxeLib.Menu
_PrepareTiles();
}
public void UseProfile(int id)
{
if(id > -1)
if (!_UsedProfiles.Contains(id) && CBase.Profiles.IsProfileIDValid(id) && !CBase.Profiles.IsGuest(id))
{
_UsedProfiles.Add(id);
UpdateList();
}
}
public void RemoveUsedProfile(int id)
{
if (id > -1)
{
_UsedProfiles.Remove(id);
UpdateList();
}
}
public int GetRandomUnusedProfile()
{
int id = -1;
if (_VisibleProfiles.Count == 0)
return id;
if (_VisibleProfiles.Count == _UsedProfiles.Count)
return id;
while(id == -1)
{
int rand = CBase.Game.GetRandom(_VisibleProfiles.Count);
if (_UsedProfiles.Contains(_VisibleProfiles[rand]))
continue;
id = _VisibleProfiles[rand];
}
return id;
}
private void _PrepareTiles()
{
_Tiles.Clear();
@@ -504,14 +550,8 @@ namespace VocaluxeLib.Menu
bool visible = profile.Active == EOffOn.TR_CONFIG_ON;
if (visible)
{
//Show profile only if active
for (int p = 0; p < CBase.Game.GetNumPlayer(); p++)
{
//Don't show profile if is selected, but if selected and guest
if (CBase.Game.GetPlayers()[p].ProfileID == profile.ID
&& profile.UserRole >= EUserRole.TR_USERROLE_NORMAL)
visible = false;
}
if (_UsedProfiles.Contains(profile.ID) && ((int)profile.UserRole) >= ((int)EUserRole.TR_USERROLE_NORMAL))
visible = false;
}
if (visible)
_VisibleProfiles.Add(profile.ID);
+31 -3
View File
@@ -104,6 +104,8 @@ namespace VocaluxeLib.Menu
public bool Visible = true;
public bool Highlighted;
public bool SelectionByHover;
private bool _ArrowLeftSelected;
private bool _ArrowRightSelected;
@@ -114,7 +116,7 @@ namespace VocaluxeLib.Menu
private readonly List<SRectF> _ValueBounds = new List<SRectF>();
public readonly bool WithTextures;
public bool WithTextures;
private int _Selection = -1;
public int Selection
@@ -654,6 +656,27 @@ namespace VocaluxeLib.Menu
{
_ArrowLeftSelected = CHelper.IsInBounds(RectArrowLeft, x, y) && _Selection > 0;
_ArrowRightSelected = CHelper.IsInBounds(RectArrowRight, x, y) && _Selection < _ValueNames.Count - 1;
if (SelectionByHover)
{
for (int i = 0; i < _ValueBounds.Count; i++)
{
if (CHelper.IsInBounds(_ValueBounds[i], x, y))
{
int offset = _Selection - _NumVisible / 2;
if (_ValueNames.Count - _NumVisible - offset < 0)
offset = _ValueNames.Count - _NumVisible;
if (offset < 0)
offset = 0;
Selection = i + offset;
_ValueBounds.Clear();
break;
}
}
}
}
public void ProcessMouseLBClick(int x, int y)
@@ -748,9 +771,14 @@ namespace VocaluxeLib.Menu
_ValueBounds.Clear();
for (int i = 0; i < numvis; i++)
{
var text = new CText(0, 0, 0, TextH, MaxW, EAlignment.Center, _Theme.TextStyle, _Theme.TextFont, TextColor, _ValueNames[i + offset],
var text = new CText(0, 0, 0, TextH, MaxW, EAlignment.Center, _Theme.TextStyle, _Theme.TextFont, TextColor, "T",
_ValuePartyModeIDs[i + offset]);
if (_ValueNames[i + offset] != "")
text.Text = _ValueNames[i + offset];
else
text.Visible = false;
var alpha = new SColorF(1f, 1f, 1f, 0.35f);
if (i + offset == _Selection)
{
@@ -773,7 +801,7 @@ namespace VocaluxeLib.Menu
{
float dh = text.Y - Rect.Y - Rect.H * 0.1f;
var rect = new SRectF(text.X - dh / 2, Rect.Y + Rect.H * 0.05f, dh, dh, Rect.Z);
CBase.Drawing.DrawTexture(_Textures[i + offset], rect, alpha);
CBase.Drawing.DrawTexture(_Textures[i + offset], rect, alpha, rect);
_ValueBounds.Add(rect);
}
else
+10
View File
@@ -95,6 +95,16 @@ namespace VocaluxeLib.PartyModes
return 0;
}
public virtual int GetMinPlayerPerTeam()
{
return GetMinPlayer();
}
public virtual int GetMaxPlayerPerTeam()
{
return GetMaxPlayer();
}
public virtual int GetMaxNumRounds()
{
return 1;
+2
View File
@@ -101,6 +101,8 @@ namespace VocaluxeLib.PartyModes
int GetMinPlayer();
int GetMaxTeams();
int GetMinTeams();
int GetMinPlayerPerTeam();
int GetMaxPlayerPerTeam();
int GetMaxNumRounds();
string GetFolder();
void SetFolder(string folder);
+10
View File
@@ -22,6 +22,16 @@ using System.Xml;
namespace VocaluxeLib.Profile
{
[Flags]
public enum EProfileChangedFlags
{
None = 1,
Avatar = 2,
Profile = 4
}
public delegate void ProfileChangedCallback(EProfileChangedFlags typeChanged);
public class CProfile
{
public int ID;
+1
View File
@@ -142,6 +142,7 @@
<Compile Include="Menu\CLyric.cs" />
<Compile Include="Menu\CMenu.cs" />
<Compile Include="Menu\CMenuParty.cs" />
<Compile Include="Menu\CMenuPartyNameSelection.cs" />
<Compile Include="Menu\CNameSelection.cs" />
<Compile Include="Menu\CObjectInteractions.cs" />
<Compile Include="Menu\COrderedDictionaryLite.cs" />