diff --git a/Output/PartyModes/Challenge/Fonts/Fonts.xml b/Output/PartyModes/Challenge/Fonts/Fonts.xml
new file mode 100644
index 00000000..70524adf
--- /dev/null
+++ b/Output/PartyModes/Challenge/Fonts/Fonts.xml
@@ -0,0 +1,29 @@
+
+
+
+ Normal
+ 0,00
+ 0,00
+ 0,00
+ 0,00
+ 1,00
+ FreeSans
+ FreeSans.ttf
+ FreeSansBold.ttf
+ FreeSansOblique.ttf
+ FreeSansBoldOblique.ttf
+
+
+ Outline
+ 0,10
+ 0,00
+ 0,00
+ 0,00
+ 1,00
+ FreeSans
+ FreeSans.ttf
+ FreeSansBold.ttf
+ FreeSansOblique.ttf
+ FreeSansBoldOblique.ttf
+
+
\ No newline at end of file
diff --git a/Output/PartyModes/Challenge/Fonts/FreeSans/FreeSans.ttf b/Output/PartyModes/Challenge/Fonts/FreeSans/FreeSans.ttf
new file mode 100644
index 00000000..6de62ebf
Binary files /dev/null and b/Output/PartyModes/Challenge/Fonts/FreeSans/FreeSans.ttf differ
diff --git a/Output/PartyModes/Challenge/Fonts/FreeSans/FreeSansBold.ttf b/Output/PartyModes/Challenge/Fonts/FreeSans/FreeSansBold.ttf
new file mode 100644
index 00000000..e75685be
Binary files /dev/null and b/Output/PartyModes/Challenge/Fonts/FreeSans/FreeSansBold.ttf differ
diff --git a/Output/PartyModes/Challenge/Fonts/FreeSans/FreeSansBoldOblique.ttf b/Output/PartyModes/Challenge/Fonts/FreeSans/FreeSansBoldOblique.ttf
new file mode 100644
index 00000000..ec3bc02c
Binary files /dev/null and b/Output/PartyModes/Challenge/Fonts/FreeSans/FreeSansBoldOblique.ttf differ
diff --git a/Output/PartyModes/Challenge/Fonts/FreeSans/FreeSansOblique.ttf b/Output/PartyModes/Challenge/Fonts/FreeSans/FreeSansOblique.ttf
new file mode 100644
index 00000000..733f8829
Binary files /dev/null and b/Output/PartyModes/Challenge/Fonts/FreeSans/FreeSansOblique.ttf differ
diff --git a/Output/PartyModes/Challenge/Fonts/FreeSans/readme.txt b/Output/PartyModes/Challenge/Fonts/FreeSans/readme.txt
new file mode 100644
index 00000000..33ccd11d
--- /dev/null
+++ b/Output/PartyModes/Challenge/Fonts/FreeSans/readme.txt
@@ -0,0 +1,40 @@
+Congratulations, you have successfully downloaded font file!
+
+This font is provided to you by Fonts2u.com – the largest online
+repository of free fonts for Windows and Mac.
+
+
+
+How to install this font on your computer?
+
+For Windows 7 / Vista users:
+
+- Right-click the font file(s) and choose "Install".
+
+For users of the previous Windows versions:
+
+- Copy the included file(s) into a default Windows font folder
+ (usually C:\WINDOWS\FONTS or C:\WINNT\FONTS)
+
+For Mac users:
+
+Mac OS X 10.3 or above (including the FontBook)
+
+- Double-click the font file and hit "Install font" button at
+ the bottom of the preview.
+
+Mac OS X
+
+- Either copy the font file(s) to /Library/Fonts (for all users),
+ or to /Users/Your_username/Library/Fonts (for you only).
+
+Mac OS 9 or earlier
+
+- You have to convert the font file(s) you have downloaded.
+ Drag the font suitcases into the System folder. The system
+ will propose you to add them to the Fonts folder.
+
+For Linux users:
+
+- Copy the font file(s) to /USR/SHARE/FONTS
+
diff --git a/Output/PartyModes/Challenge/Textures/Button.png b/Output/PartyModes/Challenge/Textures/Button.png
new file mode 100644
index 00000000..58685b3e
Binary files /dev/null and b/Output/PartyModes/Challenge/Textures/Button.png differ
diff --git a/Output/PartyModes/Challenge/Textures/CoverTile.png b/Output/PartyModes/Challenge/Textures/CoverTile.png
new file mode 100644
index 00000000..7db093e7
Binary files /dev/null and b/Output/PartyModes/Challenge/Textures/CoverTile.png differ
diff --git a/Output/PartyModes/Challenge/Textures/Invisible.png b/Output/PartyModes/Challenge/Textures/Invisible.png
new file mode 100644
index 00000000..b2ff36e9
Binary files /dev/null and b/Output/PartyModes/Challenge/Textures/Invisible.png differ
diff --git a/Output/PartyModes/Challenge/Textures/Menu.png b/Output/PartyModes/Challenge/Textures/Menu.png
new file mode 100644
index 00000000..25fc125e
Binary files /dev/null and b/Output/PartyModes/Challenge/Textures/Menu.png differ
diff --git a/Output/PartyModes/Challenge/Textures/Popup.png b/Output/PartyModes/Challenge/Textures/Popup.png
new file mode 100644
index 00000000..80868001
Binary files /dev/null and b/Output/PartyModes/Challenge/Textures/Popup.png differ
diff --git a/Output/PartyModes/Challenge/Textures/ScrollDown.png b/Output/PartyModes/Challenge/Textures/ScrollDown.png
new file mode 100644
index 00000000..94bd2e14
Binary files /dev/null and b/Output/PartyModes/Challenge/Textures/ScrollDown.png differ
diff --git a/Output/PartyModes/Challenge/Textures/ScrollUp.png b/Output/PartyModes/Challenge/Textures/ScrollUp.png
new file mode 100644
index 00000000..c3b4c6b9
Binary files /dev/null and b/Output/PartyModes/Challenge/Textures/ScrollUp.png differ
diff --git a/Output/PartyModes/Challenge/Textures/SelectSlide.png b/Output/PartyModes/Challenge/Textures/SelectSlide.png
new file mode 100644
index 00000000..46b86a23
Binary files /dev/null and b/Output/PartyModes/Challenge/Textures/SelectSlide.png differ
diff --git a/Output/PartyModes/Challenge/Textures/SelectSlideArrowLeft.png b/Output/PartyModes/Challenge/Textures/SelectSlideArrowLeft.png
new file mode 100644
index 00000000..313fe280
Binary files /dev/null and b/Output/PartyModes/Challenge/Textures/SelectSlideArrowLeft.png differ
diff --git a/Output/PartyModes/Challenge/Textures/SelectSlideArrowRight.png b/Output/PartyModes/Challenge/Textures/SelectSlideArrowRight.png
new file mode 100644
index 00000000..7dfd68c0
Binary files /dev/null and b/Output/PartyModes/Challenge/Textures/SelectSlideArrowRight.png differ
diff --git a/Output/PartyModes/Challenge/Textures/SelectSlidePlayer.png b/Output/PartyModes/Challenge/Textures/SelectSlidePlayer.png
new file mode 100644
index 00000000..4fb9a6df
Binary files /dev/null and b/Output/PartyModes/Challenge/Textures/SelectSlidePlayer.png differ
diff --git a/Output/PartyModes/Challenge/Textures/Skin.xml b/Output/PartyModes/Challenge/Textures/Skin.xml
new file mode 100644
index 00000000..e347758a
--- /dev/null
+++ b/Output/PartyModes/Challenge/Textures/Skin.xml
@@ -0,0 +1,155 @@
+
+
+ 3
+
+ Blue
+ brunzel
+ 0
+ 1
+
+
+
+ 0,000
+ 0,000
+ 0,750
+ 1,000
+
+
+ 0,675
+ 0,890
+ 0,969
+ 1,000
+
+
+ 0,675
+ 0,890
+ 0,969
+ 0,500
+
+
+ 0,675
+ 0,890
+ 0,969
+ 1,000
+
+
+ 0,675
+ 0,890
+ 0,969
+ 0,300
+
+
+ 0,675
+ 0,890
+ 0,969
+ 1,000
+
+
+ 0,675
+ 0,890
+ 0,969
+ 0,500
+
+
+ 0,675
+ 0,890
+ 0,969
+ 1,000
+
+
+ 0,675
+ 0,890
+ 0,969
+ 1,000
+
+
+ 0,675
+ 0,890
+ 0,969
+ 0,500
+
+
+ 0,675
+ 0,890
+ 0,969
+ 1,000
+
+
+ 0,675
+ 0,890
+ 0,969
+ 0,500
+
+
+ 0,675
+ 0,890
+ 0,969
+ 0,300
+
+
+ 0,675
+ 0,890
+ 0,969
+ 1,000
+
+
+ 0,675
+ 0,890
+ 0,969
+ 0,500
+
+
+ 0,675
+ 0,890
+ 0,969
+ 1,000
+
+
+ 1,000
+ 0,000
+ 0,000
+ 1,000
+
+
+ 0,000
+ 0,000
+ 0,000
+ 1,000
+
+
+ 0,000
+ 0,000
+ 0,000
+ 1,000
+
+
+ 1,000
+ 1,000
+ 1,000
+ 1,000
+
+
+ 1,000
+ 1,000
+ 1,000
+ 0,000
+
+
+
+ [Blue]BG_Default.png
+
+
+ CoverTile.png
+ SelectSlide.png
+ SelectSlidePlayer.png
+ SelectSlideArrowLeft.png
+ SelectSlideArrowRight.png
+ Popup.png
+ ScrollUp.png
+ ScrollDown.png
+ Invisible.png
+
+
+ [Blue]BG_Video.mp4
+
+
diff --git a/Output/PartyModes/Challenge/Textures/[Blue]BG_Default.png b/Output/PartyModes/Challenge/Textures/[Blue]BG_Default.png
new file mode 100644
index 00000000..53bd3603
Binary files /dev/null and b/Output/PartyModes/Challenge/Textures/[Blue]BG_Default.png differ
diff --git a/Output/PartyModes/Challenge/Textures/[Blue]BG_Video.mp4 b/Output/PartyModes/Challenge/Textures/[Blue]BG_Video.mp4
new file mode 100644
index 00000000..c4fc7b24
Binary files /dev/null and b/Output/PartyModes/Challenge/Textures/[Blue]BG_Video.mp4 differ
diff --git a/Output/PartyModes/Challenge/Theme.xml b/Output/PartyModes/Challenge/Theme.xml
new file mode 100644
index 00000000..7a106892
--- /dev/null
+++ b/Output/PartyModes/Challenge/Theme.xml
@@ -0,0 +1,11 @@
+
+
+ 5
+
+ Ambient
+ brunzel
+ Textures
+ 0
+ 1
+
+
\ No newline at end of file
diff --git a/Output/PartyModes/ChallengeMedley/Fonts/Fonts.xml b/Output/PartyModes/ChallengeMedley/Fonts/Fonts.xml
new file mode 100644
index 00000000..70524adf
--- /dev/null
+++ b/Output/PartyModes/ChallengeMedley/Fonts/Fonts.xml
@@ -0,0 +1,29 @@
+
+
+
+ Normal
+ 0,00
+ 0,00
+ 0,00
+ 0,00
+ 1,00
+ FreeSans
+ FreeSans.ttf
+ FreeSansBold.ttf
+ FreeSansOblique.ttf
+ FreeSansBoldOblique.ttf
+
+
+ Outline
+ 0,10
+ 0,00
+ 0,00
+ 0,00
+ 1,00
+ FreeSans
+ FreeSans.ttf
+ FreeSansBold.ttf
+ FreeSansOblique.ttf
+ FreeSansBoldOblique.ttf
+
+
\ No newline at end of file
diff --git a/Output/PartyModes/ChallengeMedley/Fonts/FreeSans/FreeSans.ttf b/Output/PartyModes/ChallengeMedley/Fonts/FreeSans/FreeSans.ttf
new file mode 100644
index 00000000..6de62ebf
Binary files /dev/null and b/Output/PartyModes/ChallengeMedley/Fonts/FreeSans/FreeSans.ttf differ
diff --git a/Output/PartyModes/ChallengeMedley/Fonts/FreeSans/FreeSansBold.ttf b/Output/PartyModes/ChallengeMedley/Fonts/FreeSans/FreeSansBold.ttf
new file mode 100644
index 00000000..e75685be
Binary files /dev/null and b/Output/PartyModes/ChallengeMedley/Fonts/FreeSans/FreeSansBold.ttf differ
diff --git a/Output/PartyModes/ChallengeMedley/Fonts/FreeSans/FreeSansBoldOblique.ttf b/Output/PartyModes/ChallengeMedley/Fonts/FreeSans/FreeSansBoldOblique.ttf
new file mode 100644
index 00000000..ec3bc02c
Binary files /dev/null and b/Output/PartyModes/ChallengeMedley/Fonts/FreeSans/FreeSansBoldOblique.ttf differ
diff --git a/Output/PartyModes/ChallengeMedley/Fonts/FreeSans/FreeSansOblique.ttf b/Output/PartyModes/ChallengeMedley/Fonts/FreeSans/FreeSansOblique.ttf
new file mode 100644
index 00000000..733f8829
Binary files /dev/null and b/Output/PartyModes/ChallengeMedley/Fonts/FreeSans/FreeSansOblique.ttf differ
diff --git a/Output/PartyModes/ChallengeMedley/Fonts/FreeSans/readme.txt b/Output/PartyModes/ChallengeMedley/Fonts/FreeSans/readme.txt
new file mode 100644
index 00000000..33ccd11d
--- /dev/null
+++ b/Output/PartyModes/ChallengeMedley/Fonts/FreeSans/readme.txt
@@ -0,0 +1,40 @@
+Congratulations, you have successfully downloaded font file!
+
+This font is provided to you by Fonts2u.com – the largest online
+repository of free fonts for Windows and Mac.
+
+
+
+How to install this font on your computer?
+
+For Windows 7 / Vista users:
+
+- Right-click the font file(s) and choose "Install".
+
+For users of the previous Windows versions:
+
+- Copy the included file(s) into a default Windows font folder
+ (usually C:\WINDOWS\FONTS or C:\WINNT\FONTS)
+
+For Mac users:
+
+Mac OS X 10.3 or above (including the FontBook)
+
+- Double-click the font file and hit "Install font" button at
+ the bottom of the preview.
+
+Mac OS X
+
+- Either copy the font file(s) to /Library/Fonts (for all users),
+ or to /Users/Your_username/Library/Fonts (for you only).
+
+Mac OS 9 or earlier
+
+- You have to convert the font file(s) you have downloaded.
+ Drag the font suitcases into the System folder. The system
+ will propose you to add them to the Fonts folder.
+
+For Linux users:
+
+- Copy the font file(s) to /USR/SHARE/FONTS
+
diff --git a/Output/PartyModes/ChallengeMedley/Textures/Button.png b/Output/PartyModes/ChallengeMedley/Textures/Button.png
new file mode 100644
index 00000000..58685b3e
Binary files /dev/null and b/Output/PartyModes/ChallengeMedley/Textures/Button.png differ
diff --git a/Output/PartyModes/ChallengeMedley/Textures/CoverTile.png b/Output/PartyModes/ChallengeMedley/Textures/CoverTile.png
new file mode 100644
index 00000000..7db093e7
Binary files /dev/null and b/Output/PartyModes/ChallengeMedley/Textures/CoverTile.png differ
diff --git a/Output/PartyModes/ChallengeMedley/Textures/Invisible.png b/Output/PartyModes/ChallengeMedley/Textures/Invisible.png
new file mode 100644
index 00000000..b2ff36e9
Binary files /dev/null and b/Output/PartyModes/ChallengeMedley/Textures/Invisible.png differ
diff --git a/Output/PartyModes/ChallengeMedley/Textures/Menu.png b/Output/PartyModes/ChallengeMedley/Textures/Menu.png
new file mode 100644
index 00000000..25fc125e
Binary files /dev/null and b/Output/PartyModes/ChallengeMedley/Textures/Menu.png differ
diff --git a/Output/PartyModes/ChallengeMedley/Textures/Popup.png b/Output/PartyModes/ChallengeMedley/Textures/Popup.png
new file mode 100644
index 00000000..80868001
Binary files /dev/null and b/Output/PartyModes/ChallengeMedley/Textures/Popup.png differ
diff --git a/Output/PartyModes/ChallengeMedley/Textures/ScrollDown.png b/Output/PartyModes/ChallengeMedley/Textures/ScrollDown.png
new file mode 100644
index 00000000..94bd2e14
Binary files /dev/null and b/Output/PartyModes/ChallengeMedley/Textures/ScrollDown.png differ
diff --git a/Output/PartyModes/ChallengeMedley/Textures/ScrollUp.png b/Output/PartyModes/ChallengeMedley/Textures/ScrollUp.png
new file mode 100644
index 00000000..c3b4c6b9
Binary files /dev/null and b/Output/PartyModes/ChallengeMedley/Textures/ScrollUp.png differ
diff --git a/Output/PartyModes/ChallengeMedley/Textures/SelectSlide.png b/Output/PartyModes/ChallengeMedley/Textures/SelectSlide.png
new file mode 100644
index 00000000..46b86a23
Binary files /dev/null and b/Output/PartyModes/ChallengeMedley/Textures/SelectSlide.png differ
diff --git a/Output/PartyModes/ChallengeMedley/Textures/SelectSlideArrowLeft.png b/Output/PartyModes/ChallengeMedley/Textures/SelectSlideArrowLeft.png
new file mode 100644
index 00000000..313fe280
Binary files /dev/null and b/Output/PartyModes/ChallengeMedley/Textures/SelectSlideArrowLeft.png differ
diff --git a/Output/PartyModes/ChallengeMedley/Textures/SelectSlideArrowRight.png b/Output/PartyModes/ChallengeMedley/Textures/SelectSlideArrowRight.png
new file mode 100644
index 00000000..7dfd68c0
Binary files /dev/null and b/Output/PartyModes/ChallengeMedley/Textures/SelectSlideArrowRight.png differ
diff --git a/Output/PartyModes/ChallengeMedley/Textures/SelectSlidePlayer.png b/Output/PartyModes/ChallengeMedley/Textures/SelectSlidePlayer.png
new file mode 100644
index 00000000..4fb9a6df
Binary files /dev/null and b/Output/PartyModes/ChallengeMedley/Textures/SelectSlidePlayer.png differ
diff --git a/Output/PartyModes/ChallengeMedley/Textures/Skin.xml b/Output/PartyModes/ChallengeMedley/Textures/Skin.xml
new file mode 100644
index 00000000..e347758a
--- /dev/null
+++ b/Output/PartyModes/ChallengeMedley/Textures/Skin.xml
@@ -0,0 +1,155 @@
+
+
+ 3
+
+ Blue
+ brunzel
+ 0
+ 1
+
+
+
+ 0,000
+ 0,000
+ 0,750
+ 1,000
+
+
+ 0,675
+ 0,890
+ 0,969
+ 1,000
+
+
+ 0,675
+ 0,890
+ 0,969
+ 0,500
+
+
+ 0,675
+ 0,890
+ 0,969
+ 1,000
+
+
+ 0,675
+ 0,890
+ 0,969
+ 0,300
+
+
+ 0,675
+ 0,890
+ 0,969
+ 1,000
+
+
+ 0,675
+ 0,890
+ 0,969
+ 0,500
+
+
+ 0,675
+ 0,890
+ 0,969
+ 1,000
+
+
+ 0,675
+ 0,890
+ 0,969
+ 1,000
+
+
+ 0,675
+ 0,890
+ 0,969
+ 0,500
+
+
+ 0,675
+ 0,890
+ 0,969
+ 1,000
+
+
+ 0,675
+ 0,890
+ 0,969
+ 0,500
+
+
+ 0,675
+ 0,890
+ 0,969
+ 0,300
+
+
+ 0,675
+ 0,890
+ 0,969
+ 1,000
+
+
+ 0,675
+ 0,890
+ 0,969
+ 0,500
+
+
+ 0,675
+ 0,890
+ 0,969
+ 1,000
+
+
+ 1,000
+ 0,000
+ 0,000
+ 1,000
+
+
+ 0,000
+ 0,000
+ 0,000
+ 1,000
+
+
+ 0,000
+ 0,000
+ 0,000
+ 1,000
+
+
+ 1,000
+ 1,000
+ 1,000
+ 1,000
+
+
+ 1,000
+ 1,000
+ 1,000
+ 0,000
+
+
+
+ [Blue]BG_Default.png
+
+
+ CoverTile.png
+ SelectSlide.png
+ SelectSlidePlayer.png
+ SelectSlideArrowLeft.png
+ SelectSlideArrowRight.png
+ Popup.png
+ ScrollUp.png
+ ScrollDown.png
+ Invisible.png
+
+
+ [Blue]BG_Video.mp4
+
+
diff --git a/Output/PartyModes/ChallengeMedley/Textures/[Blue]BG_Default.png b/Output/PartyModes/ChallengeMedley/Textures/[Blue]BG_Default.png
new file mode 100644
index 00000000..53bd3603
Binary files /dev/null and b/Output/PartyModes/ChallengeMedley/Textures/[Blue]BG_Default.png differ
diff --git a/Output/PartyModes/ChallengeMedley/Textures/[Blue]BG_Video.mp4 b/Output/PartyModes/ChallengeMedley/Textures/[Blue]BG_Video.mp4
new file mode 100644
index 00000000..c4fc7b24
Binary files /dev/null and b/Output/PartyModes/ChallengeMedley/Textures/[Blue]BG_Video.mp4 differ
diff --git a/Output/PartyModes/ChallengeMedley/Theme.xml b/Output/PartyModes/ChallengeMedley/Theme.xml
new file mode 100644
index 00000000..7a106892
--- /dev/null
+++ b/Output/PartyModes/ChallengeMedley/Theme.xml
@@ -0,0 +1,11 @@
+
+
+ 5
+
+ Ambient
+ brunzel
+ Textures
+ 0
+ 1
+
+
\ No newline at end of file
diff --git a/Output/PartyModes/TicTacToe/Fonts/Fonts.xml b/Output/PartyModes/TicTacToe/Fonts/Fonts.xml
new file mode 100644
index 00000000..70524adf
--- /dev/null
+++ b/Output/PartyModes/TicTacToe/Fonts/Fonts.xml
@@ -0,0 +1,29 @@
+
+
+
+ Normal
+ 0,00
+ 0,00
+ 0,00
+ 0,00
+ 1,00
+ FreeSans
+ FreeSans.ttf
+ FreeSansBold.ttf
+ FreeSansOblique.ttf
+ FreeSansBoldOblique.ttf
+
+
+ Outline
+ 0,10
+ 0,00
+ 0,00
+ 0,00
+ 1,00
+ FreeSans
+ FreeSans.ttf
+ FreeSansBold.ttf
+ FreeSansOblique.ttf
+ FreeSansBoldOblique.ttf
+
+
\ No newline at end of file
diff --git a/Output/PartyModes/TicTacToe/Fonts/FreeSans/FreeSans.ttf b/Output/PartyModes/TicTacToe/Fonts/FreeSans/FreeSans.ttf
new file mode 100644
index 00000000..6de62ebf
Binary files /dev/null and b/Output/PartyModes/TicTacToe/Fonts/FreeSans/FreeSans.ttf differ
diff --git a/Output/PartyModes/TicTacToe/Fonts/FreeSans/FreeSansBold.ttf b/Output/PartyModes/TicTacToe/Fonts/FreeSans/FreeSansBold.ttf
new file mode 100644
index 00000000..e75685be
Binary files /dev/null and b/Output/PartyModes/TicTacToe/Fonts/FreeSans/FreeSansBold.ttf differ
diff --git a/Output/PartyModes/TicTacToe/Fonts/FreeSans/FreeSansBoldOblique.ttf b/Output/PartyModes/TicTacToe/Fonts/FreeSans/FreeSansBoldOblique.ttf
new file mode 100644
index 00000000..ec3bc02c
Binary files /dev/null and b/Output/PartyModes/TicTacToe/Fonts/FreeSans/FreeSansBoldOblique.ttf differ
diff --git a/Output/PartyModes/TicTacToe/Fonts/FreeSans/FreeSansOblique.ttf b/Output/PartyModes/TicTacToe/Fonts/FreeSans/FreeSansOblique.ttf
new file mode 100644
index 00000000..733f8829
Binary files /dev/null and b/Output/PartyModes/TicTacToe/Fonts/FreeSans/FreeSansOblique.ttf differ
diff --git a/Output/PartyModes/TicTacToe/Fonts/FreeSans/readme.txt b/Output/PartyModes/TicTacToe/Fonts/FreeSans/readme.txt
new file mode 100644
index 00000000..33ccd11d
--- /dev/null
+++ b/Output/PartyModes/TicTacToe/Fonts/FreeSans/readme.txt
@@ -0,0 +1,40 @@
+Congratulations, you have successfully downloaded font file!
+
+This font is provided to you by Fonts2u.com – the largest online
+repository of free fonts for Windows and Mac.
+
+
+
+How to install this font on your computer?
+
+For Windows 7 / Vista users:
+
+- Right-click the font file(s) and choose "Install".
+
+For users of the previous Windows versions:
+
+- Copy the included file(s) into a default Windows font folder
+ (usually C:\WINDOWS\FONTS or C:\WINNT\FONTS)
+
+For Mac users:
+
+Mac OS X 10.3 or above (including the FontBook)
+
+- Double-click the font file and hit "Install font" button at
+ the bottom of the preview.
+
+Mac OS X
+
+- Either copy the font file(s) to /Library/Fonts (for all users),
+ or to /Users/Your_username/Library/Fonts (for you only).
+
+Mac OS 9 or earlier
+
+- You have to convert the font file(s) you have downloaded.
+ Drag the font suitcases into the System folder. The system
+ will propose you to add them to the Fonts folder.
+
+For Linux users:
+
+- Copy the font file(s) to /USR/SHARE/FONTS
+
diff --git a/Output/PartyModes/TicTacToe/Textures/Button.png b/Output/PartyModes/TicTacToe/Textures/Button.png
new file mode 100644
index 00000000..58685b3e
Binary files /dev/null and b/Output/PartyModes/TicTacToe/Textures/Button.png differ
diff --git a/Output/PartyModes/TicTacToe/Textures/CoverTile.png b/Output/PartyModes/TicTacToe/Textures/CoverTile.png
new file mode 100644
index 00000000..7db093e7
Binary files /dev/null and b/Output/PartyModes/TicTacToe/Textures/CoverTile.png differ
diff --git a/Output/PartyModes/TicTacToe/Textures/Invisible.png b/Output/PartyModes/TicTacToe/Textures/Invisible.png
new file mode 100644
index 00000000..b2ff36e9
Binary files /dev/null and b/Output/PartyModes/TicTacToe/Textures/Invisible.png differ
diff --git a/Output/PartyModes/TicTacToe/Textures/Menu.png b/Output/PartyModes/TicTacToe/Textures/Menu.png
new file mode 100644
index 00000000..25fc125e
Binary files /dev/null and b/Output/PartyModes/TicTacToe/Textures/Menu.png differ
diff --git a/Output/PartyModes/TicTacToe/Textures/Popup.png b/Output/PartyModes/TicTacToe/Textures/Popup.png
new file mode 100644
index 00000000..80868001
Binary files /dev/null and b/Output/PartyModes/TicTacToe/Textures/Popup.png differ
diff --git a/Output/PartyModes/TicTacToe/Textures/Random.png b/Output/PartyModes/TicTacToe/Textures/Random.png
new file mode 100644
index 00000000..f19c9dc3
Binary files /dev/null and b/Output/PartyModes/TicTacToe/Textures/Random.png differ
diff --git a/Output/PartyModes/TicTacToe/Textures/RepeatIcon.png b/Output/PartyModes/TicTacToe/Textures/RepeatIcon.png
new file mode 100644
index 00000000..ecf82df1
Binary files /dev/null and b/Output/PartyModes/TicTacToe/Textures/RepeatIcon.png differ
diff --git a/Output/PartyModes/TicTacToe/Textures/ScrollDown.png b/Output/PartyModes/TicTacToe/Textures/ScrollDown.png
new file mode 100644
index 00000000..94bd2e14
Binary files /dev/null and b/Output/PartyModes/TicTacToe/Textures/ScrollDown.png differ
diff --git a/Output/PartyModes/TicTacToe/Textures/ScrollUp.png b/Output/PartyModes/TicTacToe/Textures/ScrollUp.png
new file mode 100644
index 00000000..c3b4c6b9
Binary files /dev/null and b/Output/PartyModes/TicTacToe/Textures/ScrollUp.png differ
diff --git a/Output/PartyModes/TicTacToe/Textures/SelectSlide.png b/Output/PartyModes/TicTacToe/Textures/SelectSlide.png
new file mode 100644
index 00000000..46b86a23
Binary files /dev/null and b/Output/PartyModes/TicTacToe/Textures/SelectSlide.png differ
diff --git a/Output/PartyModes/TicTacToe/Textures/SelectSlideArrowLeft.png b/Output/PartyModes/TicTacToe/Textures/SelectSlideArrowLeft.png
new file mode 100644
index 00000000..313fe280
Binary files /dev/null and b/Output/PartyModes/TicTacToe/Textures/SelectSlideArrowLeft.png differ
diff --git a/Output/PartyModes/TicTacToe/Textures/SelectSlideArrowRight.png b/Output/PartyModes/TicTacToe/Textures/SelectSlideArrowRight.png
new file mode 100644
index 00000000..7dfd68c0
Binary files /dev/null and b/Output/PartyModes/TicTacToe/Textures/SelectSlideArrowRight.png differ
diff --git a/Output/PartyModes/TicTacToe/Textures/SelectSlidePlayer.png b/Output/PartyModes/TicTacToe/Textures/SelectSlidePlayer.png
new file mode 100644
index 00000000..4fb9a6df
Binary files /dev/null and b/Output/PartyModes/TicTacToe/Textures/SelectSlidePlayer.png differ
diff --git a/Output/PartyModes/TicTacToe/Textures/Skin.xml b/Output/PartyModes/TicTacToe/Textures/Skin.xml
new file mode 100644
index 00000000..6e1d8b3c
--- /dev/null
+++ b/Output/PartyModes/TicTacToe/Textures/Skin.xml
@@ -0,0 +1,229 @@
+
+
+ 3
+
+ Blue
+ brunzel
+ 0
+ 1
+
+
+
+ 0,000
+ 0,000
+ 1,000
+ 0,500
+
+
+ 1,000
+ 0,000
+ 0,000
+ 0,500
+
+
+ 0,000
+ 1,000
+ 0,000
+ 0,500
+
+
+ 0,500
+ 0,000
+ 1,000
+ 0,500
+
+
+ 1,000
+ 0,800
+ 0,000
+ 0,500
+
+
+ 1,000
+ 0,000
+ 0,500
+ 0,500
+
+
+ 0,000
+ 0,000
+ 1,000
+ 0,400
+
+
+ 1,000
+ 0,000
+ 0,000
+ 0,400
+
+
+ 0,000
+ 1,000
+ 0,000
+ 0,400
+
+
+ 0,500
+ 0,000
+ 1,000
+ 0,400
+
+
+ 1,000
+ 0,800
+ 0,000
+ 0,400
+
+
+ 1,000
+ 0,000
+ 0,500
+ 0,400
+
+
+ 0,000
+ 0,000
+ 0,750
+ 1,000
+
+
+ 0,675
+ 0,890
+ 0,969
+ 1,000
+
+
+ 0,675
+ 0,890
+ 0,969
+ 0,500
+
+
+ 0,675
+ 0,890
+ 0,969
+ 1,000
+
+
+ 0,675
+ 0,890
+ 0,969
+ 0,300
+
+
+ 0,675
+ 0,890
+ 0,969
+ 1,000
+
+
+ 0,675
+ 0,890
+ 0,969
+ 0,500
+
+
+ 0,675
+ 0,890
+ 0,969
+ 1,000
+
+
+ 0,675
+ 0,890
+ 0,969
+ 1,000
+
+
+ 0,675
+ 0,890
+ 0,969
+ 0,500
+
+
+ 0,675
+ 0,890
+ 0,969
+ 1,000
+
+
+ 0,675
+ 0,890
+ 0,969
+ 0,500
+
+
+ 0,675
+ 0,890
+ 0,969
+ 0,300
+
+
+ 0,675
+ 0,890
+ 0,969
+ 1,000
+
+
+ 0,675
+ 0,890
+ 0,969
+ 0,500
+
+
+ 0,675
+ 0,890
+ 0,969
+ 1,000
+
+
+ 1,000
+ 0,000
+ 0,000
+ 1,000
+
+
+ 0,000
+ 0,000
+ 0,000
+ 1,000
+
+
+ 0,000
+ 0,000
+ 0,000
+ 1,000
+
+
+ 1,000
+ 1,000
+ 1,000
+ 1,000
+
+
+ 1,000
+ 1,000
+ 1,000
+ 0,000
+
+
+
+ [Blue]BG_Default.png
+
+
+ CoverTile.png
+ SelectSlide.png
+ SelectSlidePlayer.png
+ SelectSlideArrowLeft.png
+ SelectSlideArrowRight.png
+ Popup.png
+ RepeatIcon.png
+ Random.png
+ ScrollUp.png
+ ScrollDown.png
+ Invisible.png
+
+
+ [Blue]BG_Video.mp4
+
+
diff --git a/Output/PartyModes/TicTacToe/Textures/[Blue]BG_Default.png b/Output/PartyModes/TicTacToe/Textures/[Blue]BG_Default.png
new file mode 100644
index 00000000..53bd3603
Binary files /dev/null and b/Output/PartyModes/TicTacToe/Textures/[Blue]BG_Default.png differ
diff --git a/Output/PartyModes/TicTacToe/Textures/[Blue]BG_Video.mp4 b/Output/PartyModes/TicTacToe/Textures/[Blue]BG_Video.mp4
new file mode 100644
index 00000000..c4fc7b24
Binary files /dev/null and b/Output/PartyModes/TicTacToe/Textures/[Blue]BG_Video.mp4 differ
diff --git a/Output/PartyModes/TicTacToe/Theme.xml b/Output/PartyModes/TicTacToe/Theme.xml
new file mode 100644
index 00000000..7a106892
--- /dev/null
+++ b/Output/PartyModes/TicTacToe/Theme.xml
@@ -0,0 +1,11 @@
+
+
+ 5
+
+ Ambient
+ brunzel
+ Textures
+ 0
+ 1
+
+
\ No newline at end of file
diff --git a/Output/x64/acinerella.dll b/Output/x64/acinerella.dll
index e851fd01..c57d9661 100644
Binary files a/Output/x64/acinerella.dll and b/Output/x64/acinerella.dll differ
diff --git a/Output/x64/avcodec-54.dll b/Output/x64/avcodec-54.dll
index ca074e7c..3906d3bf 100644
Binary files a/Output/x64/avcodec-54.dll and b/Output/x64/avcodec-54.dll differ
diff --git a/Output/x64/avformat-54.dll b/Output/x64/avformat-54.dll
index 40521b17..9b9f360f 100644
Binary files a/Output/x64/avformat-54.dll and b/Output/x64/avformat-54.dll differ
diff --git a/Output/x64/avutil-51.dll b/Output/x64/avutil-51.dll
deleted file mode 100644
index 5f8cdf7d..00000000
Binary files a/Output/x64/avutil-51.dll and /dev/null differ
diff --git a/Output/x64/avutil-52.dll b/Output/x64/avutil-52.dll
new file mode 100644
index 00000000..025a4bf1
Binary files /dev/null and b/Output/x64/avutil-52.dll differ
diff --git a/Output/x64/swresample-0.dll b/Output/x64/swresample-0.dll
new file mode 100644
index 00000000..026fe92d
Binary files /dev/null and b/Output/x64/swresample-0.dll differ
diff --git a/Output/x64/swscale-2.dll b/Output/x64/swscale-2.dll
index dcc41fd3..2b915705 100644
Binary files a/Output/x64/swscale-2.dll and b/Output/x64/swscale-2.dll differ
diff --git a/Output/x86/acinerella.dll b/Output/x86/acinerella.dll
index a39e3501..e4dc5ce2 100644
Binary files a/Output/x86/acinerella.dll and b/Output/x86/acinerella.dll differ
diff --git a/Output/x86/avcodec-54.dll b/Output/x86/avcodec-54.dll
index 97d7f850..d6e72cb7 100644
Binary files a/Output/x86/avcodec-54.dll and b/Output/x86/avcodec-54.dll differ
diff --git a/Output/x86/avformat-54.dll b/Output/x86/avformat-54.dll
index 7328c561..d1233b57 100644
Binary files a/Output/x86/avformat-54.dll and b/Output/x86/avformat-54.dll differ
diff --git a/Output/x86/avutil-51.dll b/Output/x86/avutil-51.dll
deleted file mode 100644
index 5ab61687..00000000
Binary files a/Output/x86/avutil-51.dll and /dev/null differ
diff --git a/Output/x86/avutil-52.dll b/Output/x86/avutil-52.dll
new file mode 100644
index 00000000..98791159
Binary files /dev/null and b/Output/x86/avutil-52.dll differ
diff --git a/Output/x86/swresample-0.dll b/Output/x86/swresample-0.dll
new file mode 100644
index 00000000..e546c3c7
Binary files /dev/null and b/Output/x86/swresample-0.dll differ
diff --git a/Output/x86/swscale-2.dll b/Output/x86/swscale-2.dll
index afa902a0..200ebf30 100644
Binary files a/Output/x86/swscale-2.dll and b/Output/x86/swscale-2.dll differ
diff --git a/Vocaluxe/Base/CBackgroundMusic.cs b/Vocaluxe/Base/CBackgroundMusic.cs
index 848fa6bd..9284b73c 100644
--- a/Vocaluxe/Base/CBackgroundMusic.cs
+++ b/Vocaluxe/Base/CBackgroundMusic.cs
@@ -211,6 +211,7 @@ namespace Vocaluxe.Base
_Video = -1;
}
CSound.FadeAndStop(_CurrentMusicStream, 0f, CSettings.BackgroundMusicFadeTime);
+ _CurrentMusicStream = -1;
_CurrentPlaylistElement = new PlaylistElement();
_Playing = false;
@@ -242,6 +243,7 @@ namespace Vocaluxe.Base
bool finished = CSound.IsFinished(_CurrentMusicStream);
if (_Playing && (timeToPlay <= CSettings.BackgroundMusicFadeTime || finished))
+ {
if (_RepeatSong)
{
CSound.SetPosition(_CurrentMusicStream, 0);
@@ -250,6 +252,7 @@ namespace Vocaluxe.Base
}
else
Next();
+ }
}
}
diff --git a/Vocaluxe/Base/CGraphics.cs b/Vocaluxe/Base/CGraphics.cs
index 03aa28d3..af0ec07e 100644
--- a/Vocaluxe/Base/CGraphics.cs
+++ b/Vocaluxe/Base/CGraphics.cs
@@ -60,7 +60,7 @@ namespace Vocaluxe.Base
_CursorFadingTime = 0.5f;
_CursorName = textureName;
- _Cursor = CDraw.AddTexture(CTheme.GetSkinFilePath(_CursorName));
+ _Cursor = CDraw.AddTexture(CTheme.GetSkinFilePath(_CursorName, -1));
_Cursor.color = color;
_Cursor.rect.W = w;
@@ -126,7 +126,7 @@ namespace Vocaluxe.Base
{
UnloadTextures();
- _Cursor = CDraw.AddTexture(CTheme.GetSkinFilePath(_CursorName));
+ _Cursor = CDraw.AddTexture(CTheme.GetSkinFilePath(_CursorName, -1));
}
public void FadeOut()
@@ -252,14 +252,14 @@ namespace Vocaluxe.Base
{
CLog.StartBenchmark(1, "Load Theme " + Enum.GetNames(typeof(EScreens))[i]);
_Screens[i].Initialize(CMain.Base);
- _Screens[i].LoadTheme(CTheme.GetThemeScreensPath());
+ _Screens[i].LoadTheme(CTheme.GetThemeScreensPath(-1));
CLog.StopBenchmark(1, "Load Theme " + Enum.GetNames(typeof(EScreens))[i]);
}
for (int i = 0; i < _PopupScreens.Count; i++)
{
_PopupScreens[i].Initialize(CMain.Base);
- _PopupScreens[i].LoadTheme(CTheme.GetThemeScreensPath());
+ _PopupScreens[i].LoadTheme(CTheme.GetThemeScreensPath(-1));
}
}
@@ -853,7 +853,7 @@ namespace Vocaluxe.Base
if (CTheme.Cursor.color != string.Empty)
{
SColorF color;
- color = CTheme.GetColor(CTheme.Cursor.color);
+ color = CTheme.GetColor(CTheme.Cursor.color, -1);
CTheme.Cursor.r = color.R;
CTheme.Cursor.g = color.G;
CTheme.Cursor.b = color.B;
diff --git a/Vocaluxe/Base/CMain.cs b/Vocaluxe/Base/CMain.cs
index fcac91de..d731e858 100644
--- a/Vocaluxe/Base/CMain.cs
+++ b/Vocaluxe/Base/CMain.cs
@@ -210,39 +210,39 @@ namespace Vocaluxe.Base
class BTheme : ITheme
{
- public string GetThemeScreensPath()
+ public string GetThemeScreensPath(int PartyModeID)
{
- return CTheme.GetThemeScreensPath();
+ return CTheme.GetThemeScreensPath(PartyModeID);
}
- public int GetSkinIndex()
+ public int GetSkinIndex(int PartyModeID)
{
- return CTheme.GetSkinIndex();
+ return CTheme.GetSkinIndex(PartyModeID);
}
- public STexture GetSkinTexture(string TextureName)
+ public STexture GetSkinTexture(string TextureName, int PartyModeID)
{
- return CTheme.GetSkinTexture(TextureName);
+ return CTheme.GetSkinTexture(TextureName, PartyModeID);
}
- public STexture GetSkinVideoTexture(string VideoName)
+ public STexture GetSkinVideoTexture(string VideoName, int PartyModeID)
{
- return CTheme.GetSkinVideoTexture(VideoName);
+ return CTheme.GetSkinVideoTexture(VideoName, PartyModeID);
}
- public void SkinVideoResume(string VideoName)
+ public void SkinVideoResume(string VideoName, int PartyModeID)
{
- CTheme.SkinVideoResume(VideoName);
+ CTheme.SkinVideoResume(VideoName, PartyModeID);
}
- public void SkinVideoPause(string VideoName)
+ public void SkinVideoPause(string VideoName, int PartyModeID)
{
- CTheme.SkinVideoPause(VideoName);
+ CTheme.SkinVideoPause(VideoName, PartyModeID);
}
- public SColorF GetColor(string ColorName)
+ public SColorF GetColor(string ColorName, int PartyModeID)
{
- return CTheme.GetColor(ColorName);
+ return CTheme.GetColor(ColorName, PartyModeID);
}
public bool GetColor(string ColorName, int SkinIndex, ref SColorF Color)
diff --git a/Vocaluxe/Base/CParty.cs b/Vocaluxe/Base/CParty.cs
index b92e5f1c..ed64339d 100644
--- a/Vocaluxe/Base/CParty.cs
+++ b/Vocaluxe/Base/CParty.cs
@@ -311,6 +311,19 @@ namespace Vocaluxe.Base
}
pm.PartyMode.Initialize(CMain.Base);
+ if (!CTheme.AddTheme(Path.Combine(Path.Combine(CSettings.sFolderPartyModes, pm.Folder), "Theme.xml"), pm.PartyModeID))
+ return pm;
+
+ int ThemeIndex = CTheme.GetThemeIndex(pm.PartyModeID);
+ CTheme.ListSkins(ThemeIndex);
+ int SkinIndex = CTheme.GetSkinIndex(pm.PartyModeID);
+
+ if (!CTheme.LoadSkin(SkinIndex))
+ return pm;
+
+ if (!CTheme.LoadTheme(ThemeIndex))
+ return pm;
+
foreach (string screenfile in pm.ScreenFiles)
{
string XmlPath = Path.Combine(Path.Combine(CSettings.sFolderPartyModes, pm.Folder), CSettings.sFolderPartyModeScreens);
diff --git a/Vocaluxe/Base/CSettings.cs b/Vocaluxe/Base/CSettings.cs
index 80dee4fa..9ea16270 100644
--- a/Vocaluxe/Base/CSettings.cs
+++ b/Vocaluxe/Base/CSettings.cs
@@ -96,6 +96,7 @@ namespace Vocaluxe.Base
public const string sFolderPartyModeCode = "Code";
public const string sFolderPartyModeScreens = "Screens";
public const string sFolderPartyModeLanguages = "Languages";
+ public const string sFolderPartyModeFonts = "Fonts";
//public const String[] ToneStrings = new String[]{ "C", "C#", "D", "D#", "E", "F", "F#", "G", "G#", "A", "A#", "B" };
public const int ToneMin = -36;
diff --git a/Vocaluxe/Base/CTheme.cs b/Vocaluxe/Base/CTheme.cs
index da75d10e..ab24c2da 100644
--- a/Vocaluxe/Base/CTheme.cs
+++ b/Vocaluxe/Base/CTheme.cs
@@ -25,6 +25,7 @@ namespace Vocaluxe.Base
public string Path;
public string FileName;
+ public int PartyModeID;
}
struct SkinElement
@@ -45,6 +46,7 @@ namespace Vocaluxe.Base
public string Path;
public string FileName;
+ public int PartyModeID;
public Dictionary SkinList;
public List VideoList;
@@ -96,7 +98,8 @@ namespace Vocaluxe.Base
List names = new List();
foreach (Theme th in _Themes)
{
- names.Add(th.Name);
+ if (th.PartyModeID == -1)
+ names.Add(th.Name);
}
return names.ToArray();
}
@@ -110,7 +113,8 @@ namespace Vocaluxe.Base
List names = new List();
foreach (Skin sk in _Skins)
{
- names.Add(sk.Name);
+ if (sk.PartyModeID == -1)
+ names.Add(sk.Name);
}
return names.ToArray();
}
@@ -137,84 +141,92 @@ namespace Vocaluxe.Base
{
for (int index = 0; index < _Skins.Count; index++)
{
- bool loaded = false;
- XPathDocument xPathDoc = null;
- XPathNavigator navigator = null;
-
- try
- {
- xPathDoc = new XPathDocument(Path.Combine(_Skins[index].Path, _Skins[index].FileName));
- navigator = xPathDoc.CreateNavigator();
- loaded = true;
- }
- catch (Exception e)
- {
- CLog.LogError("Error loading skin " + _Skins[index].FileName + ": " + e.Message);
- loaded = false;
- if (navigator != null)
- navigator = null;
-
- if (xPathDoc != null)
- xPathDoc = null;
- }
-
- if (loaded)
- {
- string value = String.Empty;
-
-
- // load skins/textures
- List keys = new List(_Skins[index].SkinList.Keys);
-
- foreach (string name in keys)
- {
- try
- {
- CHelper.GetValueFromXML("//root/Skins/" + name, navigator, ref value, String.Empty);
- SkinElement sk = _Skins[index].SkinList[name];
- sk.Value = value;
- sk.VideoIndex = -1;
- sk.Texture = CDraw.AddTexture(Path.Combine(_Skins[index].Path, sk.Value));
- _Skins[index].SkinList[name] = sk;
- }
- catch (Exception e)
- {
- MessageBox.Show("Error on loading texture \"" + name + "\": " + e.Message + e.StackTrace);
- CLog.LogError("Error on loading texture \"" + name + "\": " + e.Message + e.StackTrace);
- }
- }
-
-
- // load videos
- for (int i = 0; i < _Skins[index].VideoList.Count; i++)
- {
- try
- {
- CHelper.GetValueFromXML("//root/Videos/" + _Skins[index].VideoList[i].Name, navigator, ref value, String.Empty);
- SkinElement sk = new SkinElement();
- sk.Name = _Skins[index].VideoList[i].Name;
- sk.Value = value;
- sk.VideoIndex = CVideo.VdLoad(Path.Combine(_Skins[index].Path, sk.Value));
- CVideo.VdSetLoop(sk.VideoIndex, true);
- CVideo.VdPause(sk.VideoIndex);
- sk.Texture = new STexture(-1);
- _Skins[index].VideoList[i] = sk;
- }
- catch (Exception e)
- {
- MessageBox.Show("Error on loading video \"" + _Skins[index].VideoList[i].Name + "\": " + e.Message + e.StackTrace);
- CLog.LogError("Error on loading video \"" + _Skins[index].VideoList[i].Name + "\": " + e.Message + e.StackTrace);
- }
- }
-
- // load colors
- LoadColors(navigator, index);
- }
+ if (_Skins[index].PartyModeID == -1)
+ LoadSkin(index);
}
}
+ public static bool LoadSkin(int SkinIndex)
+ {
+ bool loaded = false;
+ XPathDocument xPathDoc = null;
+ XPathNavigator navigator = null;
+
+ try
+ {
+ xPathDoc = new XPathDocument(Path.Combine(_Skins[SkinIndex].Path, _Skins[SkinIndex].FileName));
+ navigator = xPathDoc.CreateNavigator();
+ loaded = true;
+ }
+ catch (Exception e)
+ {
+ CLog.LogError("Error loading skin " + _Skins[SkinIndex].FileName + ": " + e.Message);
+ loaded = false;
+ if (navigator != null)
+ navigator = null;
+
+ if (xPathDoc != null)
+ xPathDoc = null;
+ }
+
+ if (loaded)
+ {
+ string value = String.Empty;
+
+
+ // load skins/textures
+ List keys = new List(_Skins[SkinIndex].SkinList.Keys);
+
+ foreach (string name in keys)
+ {
+ try
+ {
+ CHelper.GetValueFromXML("//root/Skins/" + name, navigator, ref value, String.Empty);
+ SkinElement sk = _Skins[SkinIndex].SkinList[name];
+ sk.Value = value;
+ sk.VideoIndex = -1;
+ sk.Texture = CDraw.AddTexture(Path.Combine(_Skins[SkinIndex].Path, sk.Value));
+ _Skins[SkinIndex].SkinList[name] = sk;
+ }
+ catch (Exception e)
+ {
+ MessageBox.Show("Error on loading texture \"" + name + "\": " + e.Message + e.StackTrace);
+ CLog.LogError("Error on loading texture \"" + name + "\": " + e.Message + e.StackTrace);
+ }
+ }
+
+
+ // load videos
+ for (int i = 0; i < _Skins[SkinIndex].VideoList.Count; i++)
+ {
+ try
+ {
+ CHelper.GetValueFromXML("//root/Videos/" + _Skins[SkinIndex].VideoList[i].Name, navigator, ref value, String.Empty);
+ SkinElement sk = new SkinElement();
+ sk.Name = _Skins[SkinIndex].VideoList[i].Name;
+ sk.Value = value;
+ sk.VideoIndex = CVideo.VdLoad(Path.Combine(_Skins[SkinIndex].Path, sk.Value));
+ CVideo.VdSetLoop(sk.VideoIndex, true);
+ CVideo.VdPause(sk.VideoIndex);
+ sk.Texture = new STexture(-1);
+ _Skins[SkinIndex].VideoList[i] = sk;
+ }
+ catch (Exception e)
+ {
+ MessageBox.Show("Error on loading video \"" + _Skins[SkinIndex].VideoList[i].Name + "\": " + e.Message + e.StackTrace);
+ CLog.LogError("Error on loading video \"" + _Skins[SkinIndex].VideoList[i].Name + "\": " + e.Message + e.StackTrace);
+ }
+ }
+
+ // load colors
+ LoadColors(navigator, SkinIndex);
+ }
+ return loaded;
+ }
+
public static void UnloadSkins()
{
+ int NumPartyModeSkins = 0;
for (int i = 0; i < _Skins.Count; i++)
{
foreach (SkinElement sk in _Skins[i].SkinList.Values)
@@ -229,32 +241,55 @@ namespace Vocaluxe.Base
STexture VideoTexture = _Skins[i].VideoList[j].Texture;
CDraw.RemoveTexture(ref VideoTexture);
}
+
+ if (_Skins[i].PartyModeID != -1)
+ NumPartyModeSkins++;
+ }
+
+ while (_Skins.Count > NumPartyModeSkins)
+ {
+ int num = _Skins.Count;
+ for (int i = 0; i < num; i++)
+ {
+ if (_Skins[i].PartyModeID == -1)
+ {
+ _Skins.RemoveAt(i);
+ break;
+ }
+ }
}
- _Skins.Clear();
}
public static void LoadTheme()
+ {
+ for (int i = 0; i < _Themes.Count; i++)
+ {
+ if (_Themes[i].Name == CConfig.Theme && _Themes[i].PartyModeID == -1)
+ LoadTheme(i);
+ }
+ }
+
+ public static bool LoadTheme(int ThemeIndex)
{
bool loaded = false;
XPathDocument xPathDoc = null;
XPathNavigator navigator = null;
- int index = 0;
- for (int i = 0; i < _Themes.Count; i++)
+ if (ThemeIndex < 0 || ThemeIndex >= _Themes.Count)
{
- if (_Themes[i].Name == CConfig.Theme)
- index = i;
+ CLog.LogError("Can't find Theme Index " + ThemeIndex.ToString());
+ return false;
}
try
{
- xPathDoc = new XPathDocument(Path.Combine(_Themes[index].Path, _Themes[index].FileName));
+ xPathDoc = new XPathDocument(Path.Combine(_Themes[ThemeIndex].Path, _Themes[ThemeIndex].FileName));
navigator = xPathDoc.CreateNavigator();
loaded = true;
}
catch (Exception e)
{
- CLog.LogError("Error loading theme " + _Themes[index].FileName + ": " + e.Message);
+ CLog.LogError("Error loading theme " + _Themes[ThemeIndex].FileName + ": " + e.Message);
loaded = false;
if (navigator != null)
navigator = null;
@@ -262,40 +297,53 @@ namespace Vocaluxe.Base
if (xPathDoc != null)
xPathDoc = null;
}
-
+
if (loaded)
{
- int skinIndex = GetSkinIndex();
+ int skinIndex = GetSkinIndex(_Themes[ThemeIndex].PartyModeID);
// Load Cursor
- LoadCursor(navigator, skinIndex);
+ if (_Themes[ThemeIndex].PartyModeID == -1)
+ LoadCursor(navigator, skinIndex);
// load fonts
- CFonts.LoadThemeFonts(
- _Themes[index].Name,
- Path.Combine(Path.Combine(_Themes[index].Path, _Themes[index].SkinFolder), CSettings.sFolderThemeFonts),
- navigator);
- }
+ if (_Themes[ThemeIndex].PartyModeID == -1)
+ {
+ CFonts.LoadThemeFonts(
+ _Themes[ThemeIndex].Name,
+ Path.Combine(Path.Combine(_Themes[ThemeIndex].Path, _Themes[ThemeIndex].SkinFolder), CSettings.sFolderThemeFonts),
+ navigator);
+ }
+ else
+ {
+ CFonts.LoadPartyModeFonts(_Themes[ThemeIndex].PartyModeID,
+ Path.Combine(_Themes[ThemeIndex].Path, CSettings.sFolderPartyModeFonts),
+ navigator);
+ }
+ }
+ return loaded;
}
public static void SaveTheme()
{
SaveSkin();
- int ThemeIndex = 0;
for (int i = 0; i < _Themes.Count; i++)
{
- if (_Themes[i].Name == CConfig.Theme)
- ThemeIndex = i;
- }
+ if (_Themes[i].Name == CConfig.Theme && _Themes[i].PartyModeID == -1 || _Themes[i].PartyModeID != -1)
+ SaveTheme(i);
+ }
+ }
+ private static void SaveTheme(int ThemeIndex)
+ {
#region ThemeMainFile
- XmlWriter writer = XmlWriter.Create(Path.Combine(_Themes[ThemeIndex].Path, _Themes[ThemeIndex].FileName), _settings);
+ XmlWriter writer = XmlWriter.Create(Path.Combine(_Themes[ThemeIndex].Path, _Themes[ThemeIndex].FileName), _settings);
writer.WriteStartDocument();
writer.WriteStartElement("root");
// ThemeSystemVersion
- writer.WriteElementString("ThemeSystemVersion", ThemeSystemVersion.ToString());
+ writer.WriteElementString("ThemeSystemVersion", ThemeSystemVersion.ToString());
#region Info
writer.WriteStartElement("Info");
@@ -305,15 +353,17 @@ namespace Vocaluxe.Base
writer.WriteElementString("SkinFolder", _Themes[ThemeIndex].SkinFolder);
writer.WriteElementString("ThemeVersionMajor", _Themes[ThemeIndex].ThemeVersionMajor.ToString());
writer.WriteElementString("ThemeVersionMinor", _Themes[ThemeIndex].ThemeVersionMinor.ToString());
-
+
writer.WriteEndElement();
#endregion Info
// Cursor
- SaveCursor(writer);
+ if (_Themes[ThemeIndex].PartyModeID == -1)
+ SaveCursor(writer);
// save fonts
- CFonts.SaveThemeFonts(_Themes[ThemeIndex].Name, writer);
+ if (_Themes[ThemeIndex].PartyModeID == -1)
+ CFonts.SaveThemeFonts(_Themes[ThemeIndex].Name, writer);
// End of File
@@ -389,78 +439,98 @@ namespace Vocaluxe.Base
foreach (string file in files)
{
- bool loaded = false;
- XPathDocument xPathDoc = null;
- XPathNavigator navigator = null;
-
- try
- {
- xPathDoc = new XPathDocument(Path.Combine(path, file));
- navigator = xPathDoc.CreateNavigator();
- loaded = true;
- }
- catch (Exception e)
- {
- CLog.LogError("Error loading theme " + file + ": " + e.Message);
- loaded = false;
- if (navigator != null)
- navigator = null;
-
- if (xPathDoc != null)
- xPathDoc = null;
- }
-
- if (loaded)
- {
- Theme theme = new Theme();
-
- int version = 0;
- CHelper.TryGetIntValueFromXML("//root/ThemeSystemVersion", navigator, ref version);
-
- if (version == ThemeSystemVersion)
- {
- CHelper.GetValueFromXML("//root/Info/Name", navigator, ref theme.Name, String.Empty);
- if (theme.Name != String.Empty)
- {
- CHelper.GetValueFromXML("//root/Info/Author", navigator, ref theme.Author, String.Empty);
- CHelper.GetValueFromXML("//root/Info/SkinFolder", navigator, ref theme.SkinFolder, String.Empty);
- CHelper.TryGetIntValueFromXML("//root/Info/ThemeVersionMajor", navigator, ref theme.ThemeVersionMajor);
- CHelper.TryGetIntValueFromXML("//root/Info/ThemeVersionMinor", navigator, ref theme.ThemeVersionMinor);
- theme.Path = path;
- theme.FileName = file;
-
- _Themes.Add(theme);
- }
- }
- else
- {
- string msg = "Can't load Theme \"" + file + "\", ";
- if (version < ThemeSystemVersion)
- msg += "the file ist outdated! ";
- else
- msg += "the file is for newer program versions! ";
-
- msg += "Current ThemeSystemVersion is " + ThemeSystemVersion.ToString();
- CLog.LogError(msg);
- }
- }
+ AddTheme(Path.Combine(path, file), -1);
}
}
+ public static bool AddTheme(string FilePath, int PartyModeID)
+ {
+ bool loaded = false;
+ XPathDocument xPathDoc = null;
+ XPathNavigator navigator = null;
+
+ try
+ {
+ xPathDoc = new XPathDocument(FilePath);
+ navigator = xPathDoc.CreateNavigator();
+ loaded = true;
+ }
+ catch (Exception e)
+ {
+ CLog.LogError("Error loading theme " + FilePath + ": " + e.Message);
+ loaded = false;
+ if (navigator != null)
+ navigator = null;
+
+ if (xPathDoc != null)
+ xPathDoc = null;
+ }
+
+ if (loaded)
+ {
+ Theme theme = new Theme();
+
+ int version = 0;
+ CHelper.TryGetIntValueFromXML("//root/ThemeSystemVersion", navigator, ref version);
+
+ if (version == ThemeSystemVersion)
+ {
+ CHelper.GetValueFromXML("//root/Info/Name", navigator, ref theme.Name, String.Empty);
+ if (theme.Name != String.Empty)
+ {
+ CHelper.GetValueFromXML("//root/Info/Author", navigator, ref theme.Author, String.Empty);
+ CHelper.GetValueFromXML("//root/Info/SkinFolder", navigator, ref theme.SkinFolder, String.Empty);
+ CHelper.TryGetIntValueFromXML("//root/Info/ThemeVersionMajor", navigator, ref theme.ThemeVersionMajor);
+ CHelper.TryGetIntValueFromXML("//root/Info/ThemeVersionMinor", navigator, ref theme.ThemeVersionMinor);
+ theme.Path = Path.GetDirectoryName(FilePath);
+ theme.FileName = Path.GetFileName(FilePath);
+ theme.PartyModeID = PartyModeID;
+
+ _Themes.Add(theme);
+ }
+ }
+ else
+ {
+ string msg = "Can't load Theme \"" + FilePath + "\", ";
+ if (version < ThemeSystemVersion)
+ msg += "the file ist outdated! ";
+ else
+ msg += "the file is for newer program versions! ";
+
+ msg += "Current ThemeSystemVersion is " + ThemeSystemVersion.ToString();
+ CLog.LogError(msg);
+ loaded = false;
+ }
+ }
+ return loaded;
+ }
+
public static void ListSkins()
{
CHelper Helper = new CHelper();
- int themeIndex = GetThemeIndex();
+ int themeIndex = GetThemeIndex(-1);
_Skins.Clear();
- if (themeIndex < 0)
+ if (themeIndex < 0 || themeIndex >= _Themes.Count)
{
CLog.LogError("Error List Skins. Can't find Theme: " + CConfig.Theme);
return;
}
+ ListSkins(themeIndex);
+ }
+
+ public static void ListSkins(int ThemeIndex)
+ {
+ CHelper Helper = new CHelper();
+
+ if (ThemeIndex < 0 || ThemeIndex >= _Themes.Count)
+ {
+ CLog.LogError("Error List Skins. Can't find Theme index: " + ThemeIndex.ToString());
+ return;
+ }
+
+ Theme theme = _Themes[ThemeIndex];
- Theme theme = _Themes[themeIndex];
-
string path = Path.Combine(theme.Path, theme.SkinFolder);
List files = Helper.ListFiles(path, "*.xml", false);
@@ -506,6 +576,7 @@ namespace Vocaluxe.Base
skin.Path = path;
skin.FileName = file;
+ skin.PartyModeID = theme.PartyModeID;
skin.SkinList = new Dictionary();
List names = CHelper.GetValuesFromXML("Skins", navigator);
@@ -540,17 +611,21 @@ namespace Vocaluxe.Base
msg += "Current SkinSystemVersion is " + SkinSystemVersion.ToString();
CLog.LogError(msg);
}
- }
+ }
}
}
#endregion Theme and Skin loading and writing
#region Theme and Skin index handling
- public static int GetSkinIndex()
+ public static int GetSkinIndex(int PartyModeID)
{
for (int i = 0; i < _Skins.Count; i++)
{
- if (_Skins[i].Name == CConfig.Skin)
+ if (PartyModeID != -1 && _Skins[i].PartyModeID == PartyModeID)
+ {
+ return i;
+ }
+ else if (PartyModeID == -1 && _Skins[i].Name == CConfig.Skin)
{
return i;
}
@@ -559,11 +634,15 @@ namespace Vocaluxe.Base
return -1;
}
- public static int GetThemeIndex()
+ public static int GetThemeIndex(int PartyModeID)
{
for (int i = 0; i < _Themes.Count; i++)
{
- if (_Themes[i].Name == CConfig.Theme)
+ if (PartyModeID != -1 && _Themes[i].PartyModeID == PartyModeID)
+ {
+ return i;
+ }
+ else if (PartyModeID == -1 && _Themes[i].Name == CConfig.Theme)
{
return i;
}
@@ -572,11 +651,11 @@ namespace Vocaluxe.Base
return -1;
}
- public static string GetThemeScreensPath()
+ public static string GetThemeScreensPath(int PartyModeID)
{
string path = String.Empty;
- int themeIndex = GetThemeIndex();
+ int themeIndex = GetThemeIndex(PartyModeID);
if (themeIndex != -1)
{
path = Path.Combine(_Themes[themeIndex].Path, _Themes[themeIndex].SkinFolder);
@@ -588,9 +667,9 @@ namespace Vocaluxe.Base
return path;
}
- public static STexture GetSkinTexture(string TextureName)
+ public static STexture GetSkinTexture(string TextureName, int PartyModeID)
{
- int SkinIndex = GetSkinIndex();
+ int SkinIndex = GetSkinIndex(PartyModeID);
if (SkinIndex != -1 && TextureName != null && _Skins[SkinIndex].SkinList.ContainsKey(TextureName))
{
return _Skins[SkinIndex].SkinList[TextureName].Texture;
@@ -598,9 +677,9 @@ namespace Vocaluxe.Base
return new STexture(-1);
}
- public static string GetSkinFilePath(string SkinName)
+ public static string GetSkinFilePath(string SkinName, int PartyModeID)
{
- return GetSkinFileName(SkinName, GetSkinIndex(), true);
+ return GetSkinFileName(SkinName, GetSkinIndex(PartyModeID), true);
}
private static string GetSkinFileName(string SkinName, int SkinIndex)
@@ -625,9 +704,9 @@ namespace Vocaluxe.Base
return SkinName;
}
- public static STexture GetSkinVideoTexture(string VideoName)
+ public static STexture GetSkinVideoTexture(string VideoName, int PartyModeID)
{
- int SkinIndex = GetSkinIndex();
+ int SkinIndex = GetSkinIndex(PartyModeID);
if (SkinIndex != -1)
{
for (int i = 0; i < _Skins[SkinIndex].VideoList.Count; i++)
@@ -638,7 +717,7 @@ namespace Vocaluxe.Base
float Time = 0f;
if (sk.VideoIndex == -1)
{
- sk.VideoIndex = CVideo.VdLoad(GetVideoFilePath(sk.Name));
+ sk.VideoIndex = CVideo.VdLoad(GetVideoFilePath(sk.Name, PartyModeID));
CVideo.VdSetLoop(sk.VideoIndex, true);
}
CVideo.VdGetFrame(sk.VideoIndex, ref sk.Texture, Time, ref Time);
@@ -650,9 +729,9 @@ namespace Vocaluxe.Base
return new STexture(-1);
}
- public static void SkinVideoPause(string VideoName)
+ public static void SkinVideoPause(string VideoName, int PartyModeID)
{
- int SkinIndex = GetSkinIndex();
+ int SkinIndex = GetSkinIndex(PartyModeID);
if (SkinIndex != -1)
{
for (int i = 0; i < _Skins[SkinIndex].VideoList.Count; i++)
@@ -662,7 +741,7 @@ namespace Vocaluxe.Base
{
if (sk.VideoIndex == -1)
{
- sk.VideoIndex = CVideo.VdLoad(GetVideoFilePath(sk.Name));
+ sk.VideoIndex = CVideo.VdLoad(GetVideoFilePath(sk.Name, PartyModeID));
CVideo.VdSetLoop(sk.VideoIndex, true);
}
CVideo.VdPause(sk.VideoIndex);
@@ -673,9 +752,9 @@ namespace Vocaluxe.Base
}
}
- public static void SkinVideoResume(string VideoName)
+ public static void SkinVideoResume(string VideoName, int PartyModeID)
{
- int SkinIndex = GetSkinIndex();
+ int SkinIndex = GetSkinIndex(PartyModeID);
if (SkinIndex != -1)
{
for (int i = 0; i < _Skins[SkinIndex].VideoList.Count; i++)
@@ -685,7 +764,7 @@ namespace Vocaluxe.Base
{
if (sk.VideoIndex == -1)
{
- sk.VideoIndex = CVideo.VdLoad(GetVideoFilePath(sk.Name));
+ sk.VideoIndex = CVideo.VdLoad(GetVideoFilePath(sk.Name, PartyModeID));
CVideo.VdSetLoop(sk.VideoIndex, true);
}
CVideo.VdResume(sk.VideoIndex);
@@ -696,9 +775,9 @@ namespace Vocaluxe.Base
}
}
- public static string GetVideoFilePath(string VideoName)
+ public static string GetVideoFilePath(string VideoName, int PartyModeID)
{
- return GetVideoFileName(VideoName, GetSkinIndex(), true);
+ return GetVideoFileName(VideoName, GetSkinIndex(PartyModeID), true);
}
private static string GetVideoFileName(string VideoName, int SkinIndex)
@@ -728,24 +807,27 @@ namespace Vocaluxe.Base
private static void LoadColors(XPathNavigator navigator, int SkinIndex)
{
Skin skin = _Skins[SkinIndex];
-
- List PlayerColors = new List();
- float value = 0f;
- int i = 1;
- while (CHelper.TryGetFloatValueFromXML("//root/Colors/Player" + i.ToString() + "/R", navigator, ref value))
+ if (_Skins[SkinIndex].PartyModeID == -1)
{
- SColorF color = new SColorF();
+ List PlayerColors = new List();
+ float value = 0f;
- color.R = value;
- CHelper.TryGetFloatValueFromXML("//root/Colors/Player" + i.ToString() + "/G", navigator, ref color.G);
- CHelper.TryGetFloatValueFromXML("//root/Colors/Player" + i.ToString() + "/B", navigator, ref color.B);
- CHelper.TryGetFloatValueFromXML("//root/Colors/Player" + i.ToString() + "/A", navigator, ref color.A);
+ int i = 1;
+ while (CHelper.TryGetFloatValueFromXML("//root/Colors/Player" + i.ToString() + "/R", navigator, ref value))
+ {
+ SColorF color = new SColorF();
- PlayerColors.Add(color);
- i++;
+ color.R = value;
+ CHelper.TryGetFloatValueFromXML("//root/Colors/Player" + i.ToString() + "/G", navigator, ref color.G);
+ CHelper.TryGetFloatValueFromXML("//root/Colors/Player" + i.ToString() + "/B", navigator, ref color.B);
+ CHelper.TryGetFloatValueFromXML("//root/Colors/Player" + i.ToString() + "/A", navigator, ref color.A);
+
+ PlayerColors.Add(color);
+ i++;
+ }
+ skin.ThemeColors.Player = PlayerColors.ToArray();
}
- skin.ThemeColors.Player = PlayerColors.ToArray();
List ColorScheme = new List();
List names = CHelper.GetValuesFromXML("ColorSchemes", navigator);
@@ -776,7 +858,7 @@ namespace Vocaluxe.Base
if (CHelper.GetValueFromXML("//root/Cursor/Color", navigator, ref value, value))
{
- SColorF color = GetColor(value);
+ SColorF color = GetColor(value, _Skins[SkinIndex].PartyModeID);
Cursor.r = color.R;
Cursor.g = color.G;
Cursor.b = color.B;
@@ -797,19 +879,22 @@ namespace Vocaluxe.Base
#region Element Writing
private static void SaveColors(XmlWriter writer, int SkinIndex)
{
- writer.WriteStartElement("Colors");
- for (int i = 0; i < _Skins[SkinIndex].ThemeColors.Player.Length; i++)
+ if (_Skins[SkinIndex].PartyModeID == -1)
{
- writer.WriteStartElement("Player" + (i + 1).ToString());
+ writer.WriteStartElement("Colors");
+ for (int i = 0; i < _Skins[SkinIndex].ThemeColors.Player.Length; i++)
+ {
+ writer.WriteStartElement("Player" + (i + 1).ToString());
- writer.WriteElementString("R", _Skins[SkinIndex].ThemeColors.Player[i].R.ToString("#0.000"));
- writer.WriteElementString("G", _Skins[SkinIndex].ThemeColors.Player[i].G.ToString("#0.000"));
- writer.WriteElementString("B", _Skins[SkinIndex].ThemeColors.Player[i].B.ToString("#0.000"));
- writer.WriteElementString("A", _Skins[SkinIndex].ThemeColors.Player[i].A.ToString("#0.000"));
-
+ writer.WriteElementString("R", _Skins[SkinIndex].ThemeColors.Player[i].R.ToString("#0.000"));
+ writer.WriteElementString("G", _Skins[SkinIndex].ThemeColors.Player[i].G.ToString("#0.000"));
+ writer.WriteElementString("B", _Skins[SkinIndex].ThemeColors.Player[i].B.ToString("#0.000"));
+ writer.WriteElementString("A", _Skins[SkinIndex].ThemeColors.Player[i].A.ToString("#0.000"));
+
+ writer.WriteEndElement();
+ }
writer.WriteEndElement();
}
- writer.WriteEndElement();
writer.WriteStartElement("ColorSchemes");
foreach (SColorScheme scheme in _Skins[SkinIndex].ThemeColors.ColorSchemes)
@@ -852,11 +937,11 @@ namespace Vocaluxe.Base
#endregion ElementWriting
#region Color Handling
- public static SColorF GetColor(string ColorName)
+ public static SColorF GetColor(string ColorName, int PartyModeID)
{
SColorF color = new SColorF(1f, 1f, 1f, 1f);
- int SkinIndex = GetSkinIndex();
+ int SkinIndex = GetSkinIndex(PartyModeID);
foreach (SColorScheme scheme in _Skins[SkinIndex].ThemeColors.ColorSchemes)
{
if (scheme.Name == ColorName)
@@ -884,7 +969,7 @@ namespace Vocaluxe.Base
}
bool success;
- GetPlayerColor(ColorName, SkinIndex, out success);
+ GetPlayerColor(ColorName, GetSkinIndex(-1), out success);
return success;
}
@@ -892,7 +977,7 @@ namespace Vocaluxe.Base
{
SColorF color = new SColorF(1f, 1f, 1f, 1f);
- int SkinIndex = GetSkinIndex();
+ int SkinIndex = GetSkinIndex(-1);
if (_Skins[SkinIndex].ThemeColors.Player.Length < PlayerNr)
return color;
@@ -903,12 +988,14 @@ namespace Vocaluxe.Base
public static SColorF GetPlayerColor(string PlayerNrString)
{
bool dummy;
- return GetPlayerColor(PlayerNrString, GetSkinIndex(), out dummy);
+ return GetPlayerColor(PlayerNrString, GetSkinIndex(-1), out dummy);
}
public static SColorF GetPlayerColor(string PlayerNrString, int SkinIndex, out bool success)
{
SColorF color = new SColorF(1f, 1f, 1f, 1f);
+ if (_Skins[SkinIndex].PartyModeID != -1)
+ SkinIndex = GetSkinIndex(-1);
int selection = -1;
for (int i = 0; i < _Skins[SkinIndex].ThemeColors.Player.Length; i++)
@@ -925,7 +1012,7 @@ namespace Vocaluxe.Base
public static SColorF GetPlayerColor(int PlayerNr, out bool success)
{
- return GetPlayerColor(PlayerNr, GetSkinIndex(), out success);
+ return GetPlayerColor(PlayerNr, GetSkinIndex(-1), out success);
}
public static SColorF GetPlayerColor(int PlayerNr, int SkinIndex, out bool success)
@@ -933,6 +1020,9 @@ namespace Vocaluxe.Base
success = false;
SColorF color = new SColorF(1f, 1f, 1f, 1f);
+ if (_Skins[SkinIndex].PartyModeID != -1)
+ SkinIndex = GetSkinIndex(-1);
+
if (_Skins[SkinIndex].ThemeColors.Player.Length < PlayerNr || PlayerNr < 1)
return color;
diff --git a/Vocaluxe/Base/CVideo.cs b/Vocaluxe/Base/CVideo.cs
index 04dad94b..0124494e 100644
--- a/Vocaluxe/Base/CVideo.cs
+++ b/Vocaluxe/Base/CVideo.cs
@@ -126,7 +126,7 @@ namespace Vocaluxe.Base
public void Load(string VideoName)
{
- _VideoStream = CVideo.VdLoad(CTheme.GetVideoFilePath(VideoName));
+ _VideoStream = CVideo.VdLoad(CTheme.GetVideoFilePath(VideoName, -1));
_Loaded = true;
}
diff --git a/Vocaluxe/Screens/CScreenOptionsTheme.cs b/Vocaluxe/Screens/CScreenOptionsTheme.cs
index 9b596f32..53fa7aa0 100644
--- a/Vocaluxe/Screens/CScreenOptionsTheme.cs
+++ b/Vocaluxe/Screens/CScreenOptionsTheme.cs
@@ -59,10 +59,10 @@ namespace Vocaluxe.Screens
base.LoadTheme(XmlPath);
SelectSlides[htSelectSlides(SelectSlideTheme)].AddValues(CTheme.ThemeNames);
- SelectSlides[htSelectSlides(SelectSlideTheme)].Selection = CTheme.GetThemeIndex();
+ SelectSlides[htSelectSlides(SelectSlideTheme)].Selection = CTheme.GetThemeIndex(-1);
SelectSlides[htSelectSlides(SelectSlideSkin)].AddValues(CTheme.SkinNames);
- SelectSlides[htSelectSlides(SelectSlideSkin)].Selection = CTheme.GetSkinIndex();
+ SelectSlides[htSelectSlides(SelectSlideSkin)].Selection = CTheme.GetSkinIndex(-1);
SelectSlides[htSelectSlides(SelectSlideCover)].AddValues(CCover.CoverThemes);
SelectSlides[htSelectSlides(SelectSlideCover)].Selection = CCover.GetCoverThemeIndex();
@@ -140,8 +140,8 @@ namespace Vocaluxe.Screens
base.OnShow();
_OldCoverTheme = CCover.GetCoverThemeIndex();
- _OldTheme = CTheme.GetThemeIndex();
- _OldSkin = CTheme.GetSkinIndex();
+ _OldTheme = CTheme.GetThemeIndex(-1);
+ _OldSkin = CTheme.GetSkinIndex(-1);
_TempSkin = _OldSkin;
}
diff --git a/Vocaluxe/Screens/CScreenSing.cs b/Vocaluxe/Screens/CScreenSing.cs
index 9e95fdd4..13afb5a5 100644
--- a/Vocaluxe/Screens/CScreenSing.cs
+++ b/Vocaluxe/Screens/CScreenSing.cs
@@ -438,7 +438,7 @@ namespace Vocaluxe.Screens
UpdateNames();
CBackgroundMusic.Disabled = true;
-
+ CloseSong();
}
public override void OnShowFinish()
@@ -573,6 +573,8 @@ namespace Vocaluxe.Screens
private void LoadNextSong()
{
+ CloseSong();
+
CGame.NextRound();
if (CGame.IsFinished())
@@ -589,8 +591,6 @@ namespace Vocaluxe.Screens
return;
}
- CloseSong();
-
if (!song.CoverSmallLoaded)
song.ReadNotes();
diff --git a/VocaluxeLib/Menu/CBackground.cs b/VocaluxeLib/Menu/CBackground.cs
index 33669c23..49b3b714 100644
--- a/VocaluxeLib/Menu/CBackground.cs
+++ b/VocaluxeLib/Menu/CBackground.cs
@@ -131,13 +131,13 @@ namespace Vocaluxe.Menu
public void Resume()
{
if (_Theme.Type == EBackgroundTypes.Video && _Theme.VideoName != String.Empty && _Base.Config.GetVideoBackgrounds() == EOffOn.TR_CONFIG_ON)
- _Base.Theme.SkinVideoResume(_Theme.VideoName);
+ _Base.Theme.SkinVideoResume(_Theme.VideoName, _PartyModeID);
}
public void Pause()
{
if (_Theme.VideoName != String.Empty)
- _Base.Theme.SkinVideoPause(_Theme.VideoName);
+ _Base.Theme.SkinVideoPause(_Theme.VideoName, _PartyModeID);
}
public bool Draw()
@@ -175,7 +175,7 @@ namespace Vocaluxe.Menu
public void LoadTextures()
{
if (_Theme.ColorName != String.Empty)
- Color = _Base.Theme.GetColor(_Theme.ColorName);
+ Color = _Base.Theme.GetColor(_Theme.ColorName, _PartyModeID);
}
public void ReloadTextures()
@@ -195,7 +195,7 @@ namespace Vocaluxe.Menu
private bool DrawTexture()
{
- STexture Texture = _Base.Theme.GetSkinTexture(_Theme.TextureName);
+ STexture Texture = _Base.Theme.GetSkinTexture(_Theme.TextureName, _PartyModeID);
if (Texture.height > 0)
{
RectangleF bounds = new RectangleF(0f, 0f, _Base.Settings.GetRenderW(), _Base.Settings.GetRenderH());
@@ -210,7 +210,7 @@ namespace Vocaluxe.Menu
private bool DrawVideo()
{
- STexture VideoTexture = _Base.Theme.GetSkinVideoTexture(_Theme.VideoName);
+ STexture VideoTexture = _Base.Theme.GetSkinVideoTexture(_Theme.VideoName, _PartyModeID);
if (VideoTexture.height > 0)
{
RectangleF bounds = new RectangleF(0f, 0f, _Base.Settings.GetRenderW(), _Base.Settings.GetRenderH());
diff --git a/VocaluxeLib/Menu/CButton.cs b/VocaluxeLib/Menu/CButton.cs
index 16ad0d4f..9ffae3cd 100644
--- a/VocaluxeLib/Menu/CButton.cs
+++ b/VocaluxeLib/Menu/CButton.cs
@@ -312,7 +312,7 @@ namespace Vocaluxe.Menu
if (Texture.index != -1)
texture = Texture;
else
- texture = _Base.Theme.GetSkinTexture(_Theme.TextureName);
+ texture = _Base.Theme.GetSkinTexture(_Theme.TextureName, _PartyModeID);
_Base.Drawing.DrawTexture(texture, Rect, Color);
@@ -329,7 +329,7 @@ namespace Vocaluxe.Menu
if (Texture.index != -1)
texture = Texture;
else
- texture = _Base.Theme.GetSkinTexture(_Theme.STextureName);
+ texture = _Base.Theme.GetSkinTexture(_Theme.STextureName, _PartyModeID);
_Base.Drawing.DrawTexture(texture, Rect, SColor);
@@ -346,7 +346,7 @@ namespace Vocaluxe.Menu
if (STexture.index != -1)
texture = STexture;
else
- texture = _Base.Theme.GetSkinTexture(_Theme.STextureName);
+ texture = _Base.Theme.GetSkinTexture(_Theme.STextureName, _PartyModeID);
_Base.Drawing.DrawTexture(texture, Rect, SColor);
@@ -375,10 +375,10 @@ namespace Vocaluxe.Menu
Text.LoadTextures();
if (_Theme.ColorName != String.Empty)
- Color = _Base.Theme.GetColor(_Theme.ColorName);
+ Color = _Base.Theme.GetColor(_Theme.ColorName, _PartyModeID);
if (_Theme.SColorName != String.Empty)
- SColor = _Base.Theme.GetColor(_Theme.SColorName);
+ SColor = _Base.Theme.GetColor(_Theme.SColorName, _PartyModeID);
}
public void ReloadTextures()
diff --git a/VocaluxeLib/Menu/CEqualizer.cs b/VocaluxeLib/Menu/CEqualizer.cs
index e60e9d1e..be96a4a7 100644
--- a/VocaluxeLib/Menu/CEqualizer.cs
+++ b/VocaluxeLib/Menu/CEqualizer.cs
@@ -277,10 +277,10 @@ namespace Vocaluxe.Menu
public void LoadTextures()
{
if (_Theme.ColorName != String.Empty)
- Color = _Base.Theme.GetColor(_Theme.ColorName);
+ Color = _Base.Theme.GetColor(_Theme.ColorName, _PartyModeID);
if (_Theme.MaxColorName != String.Empty)
- MaxColor = _Base.Theme.GetColor(_Theme.MaxColorName);
+ MaxColor = _Base.Theme.GetColor(_Theme.MaxColorName, _PartyModeID);
}
public void ReloadTextures()
diff --git a/VocaluxeLib/Menu/CLyric.cs b/VocaluxeLib/Menu/CLyric.cs
index da12fec0..cb4b17e1 100644
--- a/VocaluxeLib/Menu/CLyric.cs
+++ b/VocaluxeLib/Menu/CLyric.cs
@@ -551,10 +551,10 @@ namespace Vocaluxe.Menu
public void LoadTextures()
{
if (_Theme.ColorName != String.Empty)
- Color = _Base.Theme.GetColor(_Theme.ColorName);
+ Color = _Base.Theme.GetColor(_Theme.ColorName, _PartyModeID);
if (_Theme.SColorName != String.Empty)
- ColorProcessed = _Base.Theme.GetColor(_Theme.SColorName);
+ ColorProcessed = _Base.Theme.GetColor(_Theme.SColorName, _PartyModeID);
}
public void ReloadTextures()
diff --git a/VocaluxeLib/Menu/CMenu.cs b/VocaluxeLib/Menu/CMenu.cs
index 544bb12e..009dc463 100644
--- a/VocaluxeLib/Menu/CMenu.cs
+++ b/VocaluxeLib/Menu/CMenu.cs
@@ -202,7 +202,7 @@ namespace Vocaluxe.Menu
if (loaded)
VersionCheck = CheckVersion(_ScreenVersion, navigator);
- int SkinIndex = _Base.Theme.GetSkinIndex();
+ int SkinIndex = _Base.Theme.GetSkinIndex(_PartyModeID);
if (loaded && VersionCheck && SkinIndex != -1)
{
diff --git a/VocaluxeLib/Menu/CNameSelection.cs b/VocaluxeLib/Menu/CNameSelection.cs
index 2253977e..69ad43f5 100644
--- a/VocaluxeLib/Menu/CNameSelection.cs
+++ b/VocaluxeLib/Menu/CNameSelection.cs
@@ -477,14 +477,14 @@ namespace Vocaluxe.Menu
public void LoadTextures()
{
- _TextureEmptyTile = _Base.Theme.GetSkinTexture(_Theme.TextureEmptyTileName);
- _TextureTileSelected = _Base.Theme.GetSkinTexture(_Theme.TextureTileSelectedName);
+ _TextureEmptyTile = _Base.Theme.GetSkinTexture(_Theme.TextureEmptyTileName, _PartyModeID);
+ _TextureTileSelected = _Base.Theme.GetSkinTexture(_Theme.TextureTileSelectedName, _PartyModeID);
if (_Theme.ColorEmptyTileName != String.Empty)
- ColorEmptyTile = _Base.Theme.GetColor(_Theme.ColorEmptyTileName);
+ ColorEmptyTile = _Base.Theme.GetColor(_Theme.ColorEmptyTileName, _PartyModeID);
if (_Theme.NameColorName != String.Empty)
- _Theme.NameColor = _Base.Theme.GetColor(_Theme.NameColorName);
+ _Theme.NameColor = _Base.Theme.GetColor(_Theme.NameColorName, _PartyModeID);
}
public void ReloadTextures()
diff --git a/VocaluxeLib/Menu/CParticle.cs b/VocaluxeLib/Menu/CParticle.cs
index b5fe5499..35b597a3 100644
--- a/VocaluxeLib/Menu/CParticle.cs
+++ b/VocaluxeLib/Menu/CParticle.cs
@@ -292,7 +292,7 @@ namespace Vocaluxe.Menu
public void Draw()
{
if (_TextureName != String.Empty)
- _Base.Drawing.DrawTexture(_Base.Theme.GetSkinTexture(_TextureName), _Rect, new SColorF(_Color.R, _Color.G, _Color.B, _Color.A * Alpha2 * _Alpha));
+ _Base.Drawing.DrawTexture(_Base.Theme.GetSkinTexture(_TextureName, _PartyModeID), _Rect, new SColorF(_Color.R, _Color.G, _Color.B, _Color.A * Alpha2 * _Alpha));
else
_Base.Drawing.DrawTexture(_Texture, _Rect, new SColorF(_Color.R, _Color.G, _Color.B, _Color.A * Alpha2 * _Alpha));
}
@@ -620,9 +620,9 @@ namespace Vocaluxe.Menu
public void LoadTextures()
{
if (_Theme.ColorName != String.Empty)
- Color = _Base.Theme.GetColor(_Theme.ColorName);
+ Color = _Base.Theme.GetColor(_Theme.ColorName, _PartyModeID);
if(_Theme.TextureName != String.Empty)
- Texture = _Base.Theme.GetSkinTexture(_Theme.TextureName);
+ Texture = _Base.Theme.GetSkinTexture(_Theme.TextureName, _PartyModeID);
}
public void ReloadTextures()
diff --git a/VocaluxeLib/Menu/CPlaylist.cs b/VocaluxeLib/Menu/CPlaylist.cs
index b80cbf1d..c87ad892 100644
--- a/VocaluxeLib/Menu/CPlaylist.cs
+++ b/VocaluxeLib/Menu/CPlaylist.cs
@@ -435,12 +435,12 @@ namespace Vocaluxe.Menu
{
if (i == CurrentPlaylistElement && _Selected)
{
- PlaylistElements[i].Background.Texture = _Base.Theme.GetSkinTexture(_Theme.STextureBackgroundName);
+ PlaylistElements[i].Background.Texture = _Base.Theme.GetSkinTexture(_Theme.STextureBackgroundName, _PartyModeID);
PlaylistElements[i].Background.Color = BackgroundSColor;
}
else
{
- PlaylistElements[i].Background.Texture = _Base.Theme.GetSkinTexture(_Theme.TextureBackgroundName);
+ PlaylistElements[i].Background.Texture = _Base.Theme.GetSkinTexture(_Theme.TextureBackgroundName, _PartyModeID);
PlaylistElements[i].Background.Color = BackgroundColor;
}
}
@@ -474,10 +474,10 @@ namespace Vocaluxe.Menu
public void LoadTextures()
{
if (_Theme.ColorBackgroundName != String.Empty)
- BackgroundColor = _Base.Theme.GetColor(_Theme.ColorBackgroundName);
+ BackgroundColor = _Base.Theme.GetColor(_Theme.ColorBackgroundName, _PartyModeID);
if (_Theme.SColorBackgroundName != String.Empty)
- BackgroundSColor = _Base.Theme.GetColor(_Theme.SColorBackgroundName);
+ BackgroundSColor = _Base.Theme.GetColor(_Theme.SColorBackgroundName, _PartyModeID);
_Theme.Text1.LoadTextures();
_Theme.ButtonPlaylistClose.LoadTextures();
@@ -982,7 +982,7 @@ namespace Vocaluxe.Menu
ChangeOrderElement.SelectSlide.RectArrowRight.Z = _Base.Settings.GetZNear();
ChangeOrderElement.Text1.Z = _Base.Settings.GetZNear();
- ChangeOrderElement.Background.Texture = _Base.Theme.GetSkinTexture(_Theme.TextureBackgroundName);
+ ChangeOrderElement.Background.Texture = _Base.Theme.GetSkinTexture(_Theme.TextureBackgroundName, _PartyModeID);
ChangeOrderElement.Background.Color = BackgroundColor;
OldMousePosX = MouseEvent.X;
diff --git a/VocaluxeLib/Menu/CScreenSetting.cs b/VocaluxeLib/Menu/CScreenSetting.cs
index cbea37db..c65be5ff 100644
--- a/VocaluxeLib/Menu/CScreenSetting.cs
+++ b/VocaluxeLib/Menu/CScreenSetting.cs
@@ -129,12 +129,12 @@ namespace Vocaluxe.Menu
private STexture GetTextureValue(string _string)
{
- return _Base.Theme.GetSkinTexture(_string);
+ return _Base.Theme.GetSkinTexture(_string, _PartyModeID);
}
private SColorF GetColorValue(string _string)
{
- return _Base.Theme.GetColor(_string);
+ return _Base.Theme.GetColor(_string, _PartyModeID);
}
#endregion Private
diff --git a/VocaluxeLib/Menu/CSelectSlide.cs b/VocaluxeLib/Menu/CSelectSlide.cs
index 3ed200ae..a34409c3 100644
--- a/VocaluxeLib/Menu/CSelectSlide.cs
+++ b/VocaluxeLib/Menu/CSelectSlide.cs
@@ -720,15 +720,15 @@ namespace Vocaluxe.Menu
if (!Visible && _Base.Settings.GetGameState() != EGameState.EditTheme)
return;
- STexture Texture = _Base.Theme.GetSkinTexture(_Theme.TextureName);
- STexture TextureArrowLeft = _Base.Theme.GetSkinTexture(_Theme.TextureArrowLeftName);
- STexture TextureArrowRight = _Base.Theme.GetSkinTexture(_Theme.TextureArrowRightName);
+ STexture Texture = _Base.Theme.GetSkinTexture(_Theme.TextureName, _PartyModeID);
+ STexture TextureArrowLeft = _Base.Theme.GetSkinTexture(_Theme.TextureArrowLeftName, _PartyModeID);
+ STexture TextureArrowRight = _Base.Theme.GetSkinTexture(_Theme.TextureArrowRightName, _PartyModeID);
- STexture STexture = _Base.Theme.GetSkinTexture(_Theme.STextureName);
- STexture STextureArrowLeft = _Base.Theme.GetSkinTexture(_Theme.STextureArrowLeftName);
- STexture STextureArrowRight = _Base.Theme.GetSkinTexture(_Theme.STextureArrowRightName);
+ STexture STexture = _Base.Theme.GetSkinTexture(_Theme.STextureName, _PartyModeID);
+ STexture STextureArrowLeft = _Base.Theme.GetSkinTexture(_Theme.STextureArrowLeftName, _PartyModeID);
+ STexture STextureArrowRight = _Base.Theme.GetSkinTexture(_Theme.STextureArrowRightName, _PartyModeID);
- STexture HTexture = _Base.Theme.GetSkinTexture(_Theme.HTextureName);
+ STexture HTexture = _Base.Theme.GetSkinTexture(_Theme.HTextureName, _PartyModeID);
if (Selected)
{
@@ -822,25 +822,25 @@ namespace Vocaluxe.Menu
public void LoadTextures()
{
if (_Theme.ColorName != String.Empty)
- Color = _Base.Theme.GetColor(_Theme.ColorName);
+ Color = _Base.Theme.GetColor(_Theme.ColorName, _PartyModeID);
if (_Theme.SColorName != String.Empty)
- SColor = _Base.Theme.GetColor(_Theme.SColorName);
+ SColor = _Base.Theme.GetColor(_Theme.SColorName, _PartyModeID);
if (_Theme.HColorName != String.Empty)
- HColor = _Base.Theme.GetColor(_Theme.HColorName);
+ HColor = _Base.Theme.GetColor(_Theme.HColorName, _PartyModeID);
if (_Theme.ArrowColorName != String.Empty)
- ColorArrow = _Base.Theme.GetColor(_Theme.ArrowColorName);
+ ColorArrow = _Base.Theme.GetColor(_Theme.ArrowColorName, _PartyModeID);
if (_Theme.SArrowColorName != String.Empty)
- SColorArrow = _Base.Theme.GetColor(_Theme.SArrowColorName);
+ SColorArrow = _Base.Theme.GetColor(_Theme.SArrowColorName, _PartyModeID);
if (_Theme.TextColorName != String.Empty)
- TextColor = _Base.Theme.GetColor(_Theme.TextColorName);
+ TextColor = _Base.Theme.GetColor(_Theme.TextColorName, _PartyModeID);
if (_Theme.SColorName != String.Empty)
- STextColor = _Base.Theme.GetColor(_Theme.STextColorName);
+ STextColor = _Base.Theme.GetColor(_Theme.STextColorName, _PartyModeID);
}
public void ReloadTextures()
diff --git a/VocaluxeLib/Menu/CStatic.cs b/VocaluxeLib/Menu/CStatic.cs
index 80530701..d6fd5de9 100644
--- a/VocaluxeLib/Menu/CStatic.cs
+++ b/VocaluxeLib/Menu/CStatic.cs
@@ -35,7 +35,7 @@ namespace Vocaluxe.Menu
if (_Texture.index != -1)
return _Texture;
else
- return _Base.Theme.GetSkinTexture(_Theme.TextureName);
+ return _Base.Theme.GetSkinTexture(_Theme.TextureName, _PartyModeID);
}
set { _Texture = value; }
@@ -247,7 +247,7 @@ namespace Vocaluxe.Menu
if (_Texture.index != -1)
texture = _Texture;
else
- texture = _Base.Theme.GetSkinTexture(_Theme.TextureName);
+ texture = _Base.Theme.GetSkinTexture(_Theme.TextureName, _PartyModeID);
SRectF bounds = new SRectF(
Rect.X - Rect.W * (scale - 1f),
@@ -293,7 +293,7 @@ namespace Vocaluxe.Menu
public void LoadTextures()
{
if (_Theme.ColorName != String.Empty)
- Color = _Base.Theme.GetColor(_Theme.ColorName);
+ Color = _Base.Theme.GetColor(_Theme.ColorName, _PartyModeID);
}
public void ReloadTextures()
diff --git a/VocaluxeLib/Menu/CText.cs b/VocaluxeLib/Menu/CText.cs
index 1baddf45..6b2ac347 100644
--- a/VocaluxeLib/Menu/CText.cs
+++ b/VocaluxeLib/Menu/CText.cs
@@ -839,10 +839,10 @@ namespace Vocaluxe.Menu
public void LoadTextures()
{
if (_Theme.ColorName != String.Empty)
- Color = _Base.Theme.GetColor(_Theme.ColorName);
+ Color = _Base.Theme.GetColor(_Theme.ColorName, _PartyModeID);
if (_Theme.SColorName != String.Empty)
- SColor = _Base.Theme.GetColor(_Theme.SColorName);
+ SColor = _Base.Theme.GetColor(_Theme.SColorName, _PartyModeID);
}
public void ReloadTextures()
diff --git a/VocaluxeLib/Menu/IMenu.cs b/VocaluxeLib/Menu/IMenu.cs
index 80948a81..d87ac265 100644
--- a/VocaluxeLib/Menu/IMenu.cs
+++ b/VocaluxeLib/Menu/IMenu.cs
@@ -105,15 +105,15 @@ namespace Vocaluxe.Menu
public interface ITheme
{
- string GetThemeScreensPath();
- int GetSkinIndex();
- STexture GetSkinTexture(string TextureName);
- STexture GetSkinVideoTexture(string VideoName);
+ string GetThemeScreensPath(int PartyModeID);
+ int GetSkinIndex(int PartyModeID);
+ STexture GetSkinTexture(string TextureName, int PartyModeID);
+ STexture GetSkinVideoTexture(string VideoName, int PartyModeID);
- void SkinVideoResume(string VideoName);
- void SkinVideoPause(string VideoName);
+ void SkinVideoResume(string VideoName, int PartyModeID);
+ void SkinVideoPause(string VideoName, int PartyModeID);
- SColorF GetColor(string ColorName);
+ SColorF GetColor(string ColorName, int PartyModeID);
bool GetColor(string ColorName, int SkinIndex, ref SColorF Color);
SColorF GetPlayerColor(int PlayerNr);
diff --git a/VocaluxeLib/Menu/SingNotes/CSingNotes.cs b/VocaluxeLib/Menu/SingNotes/CSingNotes.cs
index 53ab9c39..d1d60408 100644
--- a/VocaluxeLib/Menu/SingNotes/CSingNotes.cs
+++ b/VocaluxeLib/Menu/SingNotes/CSingNotes.cs
@@ -523,9 +523,9 @@ namespace Vocaluxe.Menu.SingNotes
Rect.Z
);
- STexture NoteBegin = _Base.Theme.GetSkinTexture(_Theme.SkinLeftName);
- STexture NoteMiddle = _Base.Theme.GetSkinTexture(_Theme.SkinMiddleName);
- STexture NoteEnd = _Base.Theme.GetSkinTexture(_Theme.SkinRightName);
+ STexture NoteBegin = _Base.Theme.GetSkinTexture(_Theme.SkinLeftName, _PartyModeID);
+ STexture NoteMiddle = _Base.Theme.GetSkinTexture(_Theme.SkinMiddleName, _PartyModeID);
+ STexture NoteEnd = _Base.Theme.GetSkinTexture(_Theme.SkinRightName, _PartyModeID);
float dx = NoteBegin.width * r.H / NoteBegin.height;
if (2 * dx > r.W)
@@ -565,9 +565,9 @@ namespace Vocaluxe.Menu.SingNotes
Rect.Z
);
- STexture NoteBackgroundBegin = _Base.Theme.GetSkinTexture(_Theme.SkinBackgroundLeftName);
- STexture NoteBackgroundMiddle = _Base.Theme.GetSkinTexture(_Theme.SkinBackgroundMiddleName);
- STexture NoteBackgroundEnd = _Base.Theme.GetSkinTexture(_Theme.SkinBackgroundRightName);
+ STexture NoteBackgroundBegin = _Base.Theme.GetSkinTexture(_Theme.SkinBackgroundLeftName, _PartyModeID);
+ STexture NoteBackgroundMiddle = _Base.Theme.GetSkinTexture(_Theme.SkinBackgroundMiddleName, _PartyModeID);
+ STexture NoteBackgroundEnd = _Base.Theme.GetSkinTexture(_Theme.SkinBackgroundRightName, _PartyModeID);
float dx = NoteBackgroundBegin.width * r.H / NoteBackgroundBegin.height;
if (2 * dx > r.W)
@@ -670,7 +670,7 @@ namespace Vocaluxe.Menu.SingNotes
Rect.Z
);
- STexture NoteBegin = _Base.Theme.GetSkinTexture(_Theme.SkinLeftName);
+ STexture NoteBegin = _Base.Theme.GetSkinTexture(_Theme.SkinLeftName, _PartyModeID);
float dx = NoteBegin.width * r.H / NoteBegin.height;
if (2 * dx > r.W)
dx = r.W / 2;
@@ -726,7 +726,7 @@ namespace Vocaluxe.Menu.SingNotes
_PlayerNotes[n].Color.B,
_PlayerNotes[n].Color.A * _PlayerNotes[n].Alpha);
- STexture ToneHelper = _Base.Theme.GetSkinTexture(_Theme.SkinToneHelperName);
+ STexture ToneHelper = _Base.Theme.GetSkinTexture(_Theme.SkinToneHelperName, _PartyModeID);
_Base.Drawing.DrawTexture(ToneHelper, rect, color);
diff --git a/VocaluxeLib/Menu/SongMenu/CSongMenuFramework.cs b/VocaluxeLib/Menu/SongMenu/CSongMenuFramework.cs
index 5531b8d6..44c75526 100644
--- a/VocaluxeLib/Menu/SongMenu/CSongMenuFramework.cs
+++ b/VocaluxeLib/Menu/SongMenu/CSongMenuFramework.cs
@@ -582,7 +582,7 @@ namespace Vocaluxe.Menu.SongMenu
Init();
if (_Theme.ColorName != String.Empty)
- _Color = _Base.Theme.GetColor(_Theme.ColorName);
+ _Color = _Base.Theme.GetColor(_Theme.ColorName, _PartyModeID);
}
public void ReloadTextures()
@@ -654,7 +654,7 @@ namespace Vocaluxe.Menu.SongMenu
_Base.Sound.Fade(_stream, 100f, 3f);
_streams.Add(_stream);
_actsongstream = _stream;
-
+
if (_Base.Songs.GetVisibleSong(_actsong).VideoFileName != String.Empty && _Base.Config.GetVideoPreview() == EOffOn.TR_CONFIG_ON)
{
_video = _Base.Video.Load(Path.Combine(_Base.Songs.GetVisibleSong(_actsong).Folder, _Base.Songs.GetVisibleSong(_actsong).VideoFileName));
diff --git a/VocaluxeLib/Menu/SongMenu/CSongMenuTileBoard.cs b/VocaluxeLib/Menu/SongMenu/CSongMenuTileBoard.cs
index d440fae7..960755ae 100644
--- a/VocaluxeLib/Menu/SongMenu/CSongMenuTileBoard.cs
+++ b/VocaluxeLib/Menu/SongMenu/CSongMenuTileBoard.cs
@@ -69,8 +69,8 @@ namespace Vocaluxe.Menu.SongMenu
_TileW = (int)((_Theme.songMenuTileBoard.TileRect.W - _SpaceW * (_NumW - 1)) / _NumW);
_TileH = (int)((_Theme.songMenuTileBoard.TileRect.H - _SpaceH * (_NumH - 1)) / _NumH);
- _CoverTexture = _Base.Theme.GetSkinTexture(_Theme.CoverBackgroundName);
- _CoverBigTexture = _Base.Theme.GetSkinTexture(_Theme.CoverBigBackgroundName);
+ _CoverTexture = _Base.Theme.GetSkinTexture(_Theme.CoverBackgroundName, _PartyModeID);
+ _CoverBigTexture = _Base.Theme.GetSkinTexture(_Theme.CoverBigBackgroundName, _PartyModeID);
_Tiles = new List();
for (int i = 0; i < _NumH; i++)
@@ -781,8 +781,8 @@ namespace Vocaluxe.Menu.SongMenu
_TileW = (int)((_Theme.songMenuTileBoard.TileRectSmall.W - _SpaceW * (_NumW - 1)) / _NumW);
_TileH = (int)((_Theme.songMenuTileBoard.TileRectSmall.H - _SpaceH * (_NumH - 1)) / _NumH);
- _CoverTexture = _Base.Theme.GetSkinTexture(_Theme.CoverBackgroundName);
- _CoverBigTexture = _Base.Theme.GetSkinTexture(_Theme.CoverBigBackgroundName);
+ _CoverTexture = _Base.Theme.GetSkinTexture(_Theme.CoverBackgroundName, _PartyModeID);
+ _CoverBigTexture = _Base.Theme.GetSkinTexture(_Theme.CoverBigBackgroundName, _PartyModeID);
_Tiles = new List();
for (int i = 0; i < _NumH; i++)
@@ -807,8 +807,8 @@ namespace Vocaluxe.Menu.SongMenu
_TileW = (int)((_Theme.songMenuTileBoard.TileRect.W - _SpaceW * (_NumW - 1)) / _NumW);
_TileH = (int)((_Theme.songMenuTileBoard.TileRect.H - _SpaceH * (_NumH - 1)) / _NumH);
- _CoverTexture = _Base.Theme.GetSkinTexture(_Theme.CoverBackgroundName);
- _CoverBigTexture = _Base.Theme.GetSkinTexture(_Theme.CoverBigBackgroundName);
+ _CoverTexture = _Base.Theme.GetSkinTexture(_Theme.CoverBackgroundName, _PartyModeID);
+ _CoverBigTexture = _Base.Theme.GetSkinTexture(_Theme.CoverBigBackgroundName, _PartyModeID);
_Tiles = new List();
for (int i = 0; i < _NumH; i++)