aboutsummaryrefslogtreecommitdiffstats
path: root/Game
diff options
context:
space:
mode:
authorbrunzelchen <brunzelchen@b956fd51-792f-4845-bead-9b4dfca2ff2c>2010-04-09 19:15:09 +0000
committerbrunzelchen <brunzelchen@b956fd51-792f-4845-bead-9b4dfca2ff2c>2010-04-09 19:15:09 +0000
commit58a47541955f5010269d72a06e307bbb945211ea (patch)
tree1c70761d13c31aa959c54836d78306ba63057c98 /Game
parent994ff6bfd803edd76f45e7b2e083c2bbd06e0cf3 (diff)
downloadusdx-58a47541955f5010269d72a06e307bbb945211ea.tar.gz
usdx-58a47541955f5010269d72a06e307bbb945211ea.tar.xz
usdx-58a47541955f5010269d72a06e307bbb945211ea.zip
- added missing files for iStar Theme
- added shuffle mode for song menu (random song preview when user idles for some time) git-svn-id: svn://svn.code.sf.net/p/ultrastardx/svn/branches/1.0.1 Challenge MOD@2225 b956fd51-792f-4845-bead-9b4dfca2ff2c
Diffstat (limited to 'Game')
-rw-r--r--Game/Code/Classes/UIni.pas35
-rw-r--r--Game/Code/Classes/UThemes.pas2
-rw-r--r--Game/Code/Screens/UScreenOptionsGame.pas7
-rw-r--r--Game/Code/Screens/UScreenSong.pas157
-rw-r--r--Game/Code/UltraStar.dpr2
-rw-r--r--Game/Output/Languages/English.ini4
-rw-r--r--Game/Output/Languages/German.ini4
-rw-r--r--Game/Output/Languages/Italian.ini4
-rw-r--r--Game/Output/Skins/Deluxe/[bg-main]blue.jpgbin34885 -> 65305 bytes
-rw-r--r--Game/Output/Skins/iStar/Apple.ini186
-rw-r--r--Game/Output/Skins/iStar/[party]scoreDecoration.jpgbin0 -> 6179 bytes
-rw-r--r--Game/Output/Skins/iStar/[party]teamPoints.jpgbin0 -> 729 bytes
-rw-r--r--Game/Output/Skins/iStar/[party]winDecoration1.jpgbin0 -> 4331 bytes
-rw-r--r--Game/Output/Skins/iStar/[party]winTeamButton1.jpgbin0 -> 1925 bytes
-rw-r--r--Game/Output/Skins/iStar/[party]winTeamButton2.jpgbin0 -> 1783 bytes
-rw-r--r--Game/Output/Skins/iStar/[party]winTeamButton3.jpgbin0 -> 1458 bytes
-rw-r--r--Game/Output/Skins/iStar/[score]Line.jpgbin0 -> 559 bytes
-rw-r--r--Game/Output/Skins/iStar/[score]box.jpgbin0 -> 690 bytes
-rw-r--r--Game/Output/Skins/iStar/[score]endcap.jpgbin0 -> 984 bytes
-rw-r--r--Game/Output/Skins/iStar/[score]level.jpgbin0 -> 1264 bytes
-rw-r--r--Game/Output/Skins/iStar/[score]levelRound.jpgbin0 -> 614 bytes
-rw-r--r--Game/Output/Skins/iStar/[sing]LyricsBall.bmpbin0 -> 536 bytes
-rw-r--r--Game/Output/Skins/iStar/[sing]lineBonusPopUp.jpgbin0 -> 2356 bytes
-rw-r--r--Game/Output/Skins/iStar/[sing]lyricsHelpBar.bmpbin0 -> 3126 bytes
-rw-r--r--Game/Output/Skins/iStar/[sing]notesBgLeft.bmpbin0 -> 1590 bytes
-rw-r--r--Game/Output/Skins/iStar/[sing]notesBgMid.bmpbin0 -> 1590 bytes
-rw-r--r--Game/Output/Skins/iStar/[sing]notesBgRight.bmpbin0 -> 1590 bytes
-rw-r--r--Game/Output/Skins/iStar/[sing]notesLeft.bmpbin0 -> 822 bytes
-rw-r--r--Game/Output/Skins/iStar/[sing]notesMid.bmpbin0 -> 3126 bytes
-rw-r--r--Game/Output/Skins/iStar/[sing]notesRight.bmpbin0 -> 822 bytes
-rw-r--r--Game/Output/Skins/iStar/[sing]p.jpgbin0 -> 2630 bytes
-rw-r--r--Game/Output/Skins/iStar/[sing]scoreBg.jpgbin0 -> 13662 bytes
-rw-r--r--Game/Output/Skins/iStar/[sing]singBarBack.jpgbin0 -> 388 bytes
-rw-r--r--Game/Output/Skins/iStar/[sing]singBarBar.jpgbin0 -> 371 bytes
-rw-r--r--Game/Output/Skins/iStar/[sing]singBarFront.jpgbin0 -> 549 bytes
-rw-r--r--Game/Output/Skins/iStar/[sing]textBar.jpgbin0 -> 26285 bytes
-rw-r--r--Game/Output/Skins/iStar/[sing]timeBar.jpgbin0 -> 10716 bytes
-rw-r--r--Game/Output/Skins/iStar/[sing]timeBar1.jpgbin0 -> 483 bytes
-rw-r--r--Game/Output/Skins/iStar/[sing]timeBarBG.jpgbin0 -> 13122 bytes
-rw-r--r--Game/Output/Skins/iStar/[special]bar1.jpgbin0 -> 24304 bytes
-rw-r--r--Game/Output/Skins/iStar/[special]bar2.jpgbin0 -> 23352 bytes
-rw-r--r--Game/Output/Skins/iStar/[stat]detailBG1.jpgbin0 -> 653 bytes
-rw-r--r--Game/Output/Skins/iStar/[stat]mainBG1.jpgbin0 -> 652 bytes
-rw-r--r--Game/Output/Skins/iStar/[stat]mainBG2.jpgbin0 -> 2942 bytes
-rw-r--r--Game/Output/Skins/iStar/[stat]mainBG3.jpgbin0 -> 596 bytes
-rw-r--r--Game/Output/Themes/Blue Sensation.ini24
-rw-r--r--Game/Output/Themes/Deluxe.ini24
-rw-r--r--Game/Output/Themes/iStar.ini24
48 files changed, 446 insertions, 27 deletions
diff --git a/Game/Code/Classes/UIni.pas b/Game/Code/Classes/UIni.pas
index 37258a44..048f1496 100644
--- a/Game/Code/Classes/UIni.pas
+++ b/Game/Code/Classes/UIni.pas
@@ -21,6 +21,7 @@ type
Tabs: integer;
Tabs_at_startup:integer; //Tabs at Startup fix
Sorting: integer;
+ ShuffleTime: integer;
Debug: integer;
LoadFaultySongs:integer;
NewPartyPoints: integer;
@@ -121,6 +122,17 @@ const
sTitle2 = 6;
sArtist2 = 7;
+ IShuffleTime: array[0..9] of string = ('Off',
+ '15 Sec',
+ '30 Sec',
+ '45 Sec',
+ '60 Sec',
+ '75 Sec',
+ '90 Sec',
+ '105 Sec',
+ '120 Sec',
+ 'MAX');
+
IDebug: array[0..1] of string = ('Off', 'On');
ILoadFaultySongs: array[0..1] of string = ('Off', 'On');
INewPartyPoints: array[0..1] of string = ('Off', 'On');
@@ -161,12 +173,12 @@ const
// Advanced
ILoadAnimation: array[0..1] of string = ('Off', 'On');
IEffectSing: array[0..1] of string = ('Off', 'On');
- IScreenFade: array [0..1] of String =('Off', 'On');
+ IScreenFade: array [0..1] of String =('Off', 'On');
IAskbeforeDel: array[0..1] of string = ('Off', 'On');
IOnSongClick: array[0..2] of string = ('Sing', 'Select Players', 'Open Menu');
- ILineBonus: array[0..2] of string = ('Off', 'At Score', 'At Notes');
- IPartyPopup: array[0..1] of string = ('Off', 'On');
- ISumPlayers: array[0..2] of string = ('Never', 'Dynamic', 'Always');
+ ILineBonus: array[0..2] of string = ('Off', 'At Score', 'At Notes');
+ IPartyPopup: array[0..1] of string = ('Off', 'On');
+ ISumPlayers: array[0..2] of string = ('Never', 'Dynamic', 'Always');
IJoypad: array[0..1] of string = ('Off', 'On');
ILPT: array[0..2] of string = ('Off', 'LCD', 'Lights');
@@ -249,6 +261,11 @@ begin
for Pet := 0 to High(ISorting) do
if Tekst = ISorting[Pet] then Ini.Sorting := Pet;
+ // ShuffleTime
+ Tekst := IniFile.ReadString('Game', 'ShuffleTime', 'Off');
+ for Pet := 0 to High(IShuffleTime) do
+ if Tekst = IShuffleTime[Pet] then Ini.ShuffleTime := Pet;
+
// Debug
Tekst := IniFile.ReadString('Game', 'Debug', IDebug[0]);
for Pet := 0 to High(IDebug) do
@@ -410,7 +427,7 @@ begin
if Tekst = IPreviewFading[Pet] then Ini.PreviewFading := Pet;
// Lyrics Font
- Tekst := IniFile.ReadString('Lyrics', 'LyricsFont', ILyricsFont[1]);
+ Tekst := IniFile.ReadString('Lyrics', 'LyricsFont', ILyricsFont[2]);
for Pet := 0 to High(ILyricsFont) do
if Tekst = ILyricsFont[Pet] then Ini.LyricsFont := Pet;
@@ -442,7 +459,7 @@ begin
ThemeIni.Free;
//if Default Theme then save Themeno to I2
- if (Tekst = 'Blue Sensation') then
+ if (Tekst = 'BLUE SENSATION') then
I2 := I;
//Search for Skins for this Theme
@@ -644,6 +661,10 @@ begin
Tekst := ISorting[Ini.Sorting];
IniFile.WriteString('Game', 'Sorting', Tekst);
+ //ShuffleTime
+ Tekst := IShuffleTime[Ini.ShuffleTime];
+ IniFile.WriteString('Game', 'ShuffleTime', Tekst);
+
// Debug
Tekst := IDebug[Ini.Debug];
IniFile.WriteString('Game', 'Debug', Tekst);
@@ -808,7 +829,7 @@ begin
Tekst := IPartyPopup[Ini.PartyPopup];
IniFile.WriteString('Advanced', 'PartyPopup', Tekst);
- //Party SumPlayers
+ //SumPlayers
Tekst := ISumPlayers[Ini.SumPlayers];
IniFile.WriteString('Advanced', 'SumPlayers', Tekst);
diff --git a/Game/Code/Classes/UThemes.pas b/Game/Code/Classes/UThemes.pas
index 05c6575a..dd90987d 100644
--- a/Game/Code/Classes/UThemes.pas
+++ b/Game/Code/Classes/UThemes.pas
@@ -456,6 +456,7 @@ type
SelectLanguage: TThemeSelectSlide;
SelectTabs: TThemeSelect;
SelectSorting: TThemeSelectSlide;
+ SelectShuffleTime: TThemeSelectSlide;
SelectDebug: TThemeSelect;
ButtonExit: TThemeButton;
end;
@@ -1345,6 +1346,7 @@ begin
ThemeLoadSelectSlide(OptionsGame.SelectLanguage, 'OptionsGameSelectSlideLanguage');
ThemeLoadSelect(OptionsGame.SelectTabs, 'OptionsGameSelectTabs');
ThemeLoadSelectSlide(OptionsGame.SelectSorting, 'OptionsGameSelectSlideSorting');
+ ThemeLoadSelectSlide(OptionsGame.SelectShuffleTime, 'OptionsGameSelectShuffleTime');
ThemeLoadSelect(OptionsGame.SelectDebug, 'OptionsGameSelectDebug');
ThemeLoadButton(OptionsGame.ButtonExit, 'OptionsGameButtonExit');
diff --git a/Game/Code/Screens/UScreenOptionsGame.pas b/Game/Code/Screens/UScreenOptionsGame.pas
index 8aadb27a..c9268931 100644
--- a/Game/Code/Screens/UScreenOptionsGame.pas
+++ b/Game/Code/Screens/UScreenOptionsGame.pas
@@ -46,7 +46,7 @@ begin
end;
SDLK_RETURN:
begin
- if SelInteraction = 6 then begin
+ if SelInteraction = 7 then begin
Music.PlayBack;
RefreshSongs;
FadeTo(@ScreenOptions);
@@ -58,14 +58,14 @@ begin
InteractPrev;
SDLK_RIGHT:
begin
- if (SelInteraction >= 0) and (SelInteraction <= 5) then begin
+ if (SelInteraction >= 0) and (SelInteraction <= 6) then begin
Music.PlayOption;
InteractInc;
end;
end;
SDLK_LEFT:
begin
- if (SelInteraction >= 0) and (SelInteraction <= 5) then begin
+ if (SelInteraction >= 0) and (SelInteraction <= 6) then begin
Music.PlayOption;
InteractDec;
end;
@@ -91,6 +91,7 @@ begin
AddSelectSlide(Theme.OptionsGame.SelectLanguage, Ini.Language, ILanguage);
AddSelect(Theme.OptionsGame.SelectTabs, Ini.Tabs, ITabs);
AddSelectSlide(Theme.OptionsGame.SelectSorting, Ini.Sorting, ISorting);
+ AddSelectSlide(Theme.OptionsGame.SelectShuffleTime, Ini.ShuffleTime, IShuffleTime);
AddSelect(Theme.OptionsGame.SelectDebug, Ini.Debug, IDebug);
diff --git a/Game/Code/Screens/UScreenSong.pas b/Game/Code/Screens/UScreenSong.pas
index 377106d4..8516c012 100644
--- a/Game/Code/Screens/UScreenSong.pas
+++ b/Game/Code/Screens/UScreenSong.pas
@@ -12,8 +12,11 @@ type
TVidVis = (none, windowed, full);
THandler = record
- changed: boolean;
+ changed: boolean;
change_time: real;
+ lastIndex: integer;
+ lastCat: integer;
+ active: boolean;
end;
TScreenSong = class(TMenu)
@@ -53,6 +56,9 @@ type
//VideoAspect
AspectHandler: THandler;
+ //Wait timer
+ WaitHandler: THandler;
+
//Medley Icons
MedleyIcon: cardinal;
CalcMedleyIcon: cardinal;
@@ -353,6 +359,44 @@ begin
If (PressedDown) Then
begin // Key Down
+ if (WaitHandler.active) and not (PressedKey = SDLK_RETURN) then
+ begin
+ if (Ini.Tabs_at_startup=1) then
+ begin
+ //Search Cat
+ for I := WaitHandler.lastIndex downto low(CatSongs.Song) do
+ begin
+ if CatSongs.Song[I].Main then
+ break;
+ end;
+
+ //Choose Cat
+ CatSongs.ShowCategoryList;
+ ShowCatTL (I);
+
+ CatSongs.ClickCategoryButton(I);
+ end;
+
+ //Choose Song
+ SkipTo2(WaitHandler.lastIndex);
+
+
+ ChangeMusic;
+ SetScroll4;
+ end;
+
+ if (Mode = smNormal) and not MakeMedley and (Ini.ShuffleTime>0) then
+ begin
+ WaitHandler.changed := true;
+ WaitHandler.change_time := 0;
+ if (WaitHandler.active) then
+ begin
+ WaitHandler.active := false;
+ if (PressedKey<>SDLK_RETURN) then
+ Exit;
+ end;
+ end;
+
SDL_ModState := SDL_GetModState and (KMOD_LSHIFT + KMOD_RSHIFT
+ KMOD_LCTRL + KMOD_RCTRL + KMOD_LALT + KMOD_RALT);
@@ -829,7 +873,7 @@ begin
if (Mode = smNormal) then
OpenEditor;
end;
-
+
SDLK_R:
begin
if (Length(Songs.Song) > 0) and (Mode = smNormal) then
@@ -1960,6 +2004,14 @@ begin
SetJoker;
SetStatics;
+
+ if (Mode = smNormal) and (Ini.ShuffleTime>0) then
+ begin
+ WaitHandler.changed := true;
+ WaitHandler.change_time := 0;
+ end;
+
+ WaitHandler.active := false;
end;
procedure TScreenSong.RandomSongChallenge();
@@ -2034,11 +2086,13 @@ end;
function TScreenSong.Draw: boolean;
var
- dx: real;
- dt: real;
- I, J: Integer;
+ dx: real;
+ dt: real;
+ I, I2, J: Integer;
Window: TRectCoords;
- Blend: real;
+ Blend: real;
+ VisArr: array of integer;
+
begin
dx := SongTarget-SongCurrent;
dt := TimeSkip*7;
@@ -2239,7 +2293,89 @@ begin
Static[StaticTop].Visible := false;
end;
-
+
+ if (Mode = smNormal) and (Ini.ShuffleTime>0) and
+ not MakeMedley and not CatSongs.Song[Interaction].Main and
+ (Length(CatSongs.Song)-CatSongs.CatCount>1) then
+ begin
+ if (WaitHandler.changed and
+ (((Ini.ShuffleTime<9) and (WaitHandler.change_time + TimeSkip>Ini.ShuffleTime*15))
+ or (Music.Finished))) then
+ begin
+ WaitHandler.change_time := 0;
+ if (not WaitHandler.active) then
+ begin
+ WaitHandler.active := true;
+ WaitHandler.lastIndex := Interaction;
+ WaitHandler.lastCat := CatSongs.CatNumShow;
+ end;
+
+ if(Ini.Tabs_at_startup<>1) then
+ begin
+ //Random in one Category
+ SetLength(VisArr, 0);
+
+ for I := 0 to Length(CatSongs.Song) - 1 do
+ begin
+ if CatSongs.Song[I].Visible and not (I=Interaction)then
+ begin
+ SetLength(VisArr, Length(VisArr)+1);
+ VisArr[Length(VisArr)-1] := I;
+ end;
+ end;
+
+ if (Length(VisArr)>0) then
+ begin
+ I := Random(Length(VisArr));
+ I := VisArr[I];
+
+ //Choose Song
+ SkipTo2(I);
+ end;
+ end else
+ begin
+ //random in All Categorys
+ SetLength(VisArr, 0);
+
+ for I := 0 to Length(CatSongs.Song) - 1 do
+ begin
+ if not CatSongs.Song[I].Main and (I<>Interaction)then
+ begin
+ SetLength(VisArr, Length(VisArr)+1);
+ VisArr[Length(VisArr)-1] := I;
+ end;
+ end;
+
+ if (Length(VisArr)>0) then
+ begin
+ I2 := Random(Length(VisArr));
+ I2 := VisArr[I2];
+
+ //Search Cat
+ for I := I2 downto low(CatSongs.Song) do
+ begin
+ if CatSongs.Song[I].Main then
+ break;
+ end;
+
+ //Choose Cat
+ CatSongs.ShowCategoryList;
+ ShowCatTL (I);
+
+ CatSongs.ClickCategoryButton(I);
+
+ //Choose Song
+ SkipTo2(I2);
+ end;
+ end;
+
+ Music.PlayChange;
+ ChangeMusic;
+ SetScroll4;
+ end else
+ WaitHandler.change_time := WaitHandler.change_time + TimeSkip;
+ end;
+
DrawExtensions;
end;
@@ -2389,11 +2525,11 @@ begin
end;
procedure TScreenSong.UpdateLCD;
-begin
+begin{
LCD.HideCursor;
LCD.Clear;
LCD.WriteText(1, Text[TextArtist].Text);
- LCD.WriteText(2, Text[TextTitle].Text);
+ LCD.WriteText(2, Text[TextTitle].Text); }
end;
//Procedure Change current played Preview
@@ -3120,6 +3256,7 @@ end;
procedure TScreenSong.StartSong;
begin
+ WaitHandler.changed := false;
CatSongs.Selected := Interaction;
Music.Stop;
//Party Mode
@@ -3218,7 +3355,7 @@ end;
procedure TScreenSong.UnLoadDetailedCover;
begin
CoverTime := 0;
-
+
Button[Interaction].Texture := Texture.GetTexture(Button[Interaction].Texture.Name, 'Plain', true); // 0.5.0: show cached texture
Button[Interaction].Texture2.Alpha := 0;
diff --git a/Game/Code/UltraStar.dpr b/Game/Code/UltraStar.dpr
index 056f2f78..d822cdb1 100644
--- a/Game/Code/UltraStar.dpr
+++ b/Game/Code/UltraStar.dpr
@@ -124,7 +124,7 @@ uses
acinerella in 'lib\acinerella\acinerella.pas';
const
- Version = 'UltraStar Deluxe v1.0.1a Challenge-MOD r7b beta 5 2010-04-07';
+ Version = 'UltraStar Deluxe v1.0.1a Challenge-MOD r7b beta 7 2010-04-09';
var
WndTitle: string;
diff --git a/Game/Output/Languages/English.ini b/Game/Output/Languages/English.ini
index 8fe018a8..951cb5e9 100644
--- a/Game/Output/Languages/English.ini
+++ b/Game/Output/Languages/English.ini
@@ -417,6 +417,10 @@ SING_OPTIONS_ADVANCED_SUMPLAYERS=Sum up Top 8
;new
ERROR_NO_SOUND_INPUT=No sound input devices found!
+#### OptionsGame ####
+;new
+SING_OPTIONS_GAME_SHUFFLETIME=Shuffle mode
+
#########################################################
# Help System #
#########################################################
diff --git a/Game/Output/Languages/German.ini b/Game/Output/Languages/German.ini
index 42be25ba..2d628f63 100644
--- a/Game/Output/Languages/German.ini
+++ b/Game/Output/Languages/German.ini
@@ -418,6 +418,10 @@ SING_OPTIONS_ADVANCED_SUMPLAYERS=Sum up Top 8
;new
ERROR_NO_SOUND_INPUT=Keine Aufnahmegeräte gefunden!
+#### OptionsGame ####
+;new
+SING_OPTIONS_GAME_SHUFFLETIME=Shuffle Modus
+
#-------------------------------------------------------#
# Help System #
#-------------------------------------------------------#
diff --git a/Game/Output/Languages/Italian.ini b/Game/Output/Languages/Italian.ini
index df194739..3c69f48b 100644
--- a/Game/Output/Languages/Italian.ini
+++ b/Game/Output/Languages/Italian.ini
@@ -408,6 +408,10 @@ SING_OPTIONS_ADVANCED_SUMPLAYERS=Sum up Top 8
;new
ERROR_NO_SOUND_INPUT=No sound input devices found!
+#### OptionsGame ####
+;new
+SING_OPTIONS_GAME_SHUFFLETIME=Shuffle mode
+
#-------------------------------------------------------#
# Help System #
#-------------------------------------------------------#
diff --git a/Game/Output/Skins/Deluxe/[bg-main]blue.jpg b/Game/Output/Skins/Deluxe/[bg-main]blue.jpg
index 307b4ce9..67c4cbbe 100644
--- a/Game/Output/Skins/Deluxe/[bg-main]blue.jpg
+++ b/Game/Output/Skins/Deluxe/[bg-main]blue.jpg
Binary files differ
diff --git a/Game/Output/Skins/iStar/Apple.ini b/Game/Output/Skins/iStar/Apple.ini
new file mode 100644
index 00000000..71e69094
--- /dev/null
+++ b/Game/Output/Skins/iStar/Apple.ini
@@ -0,0 +1,186 @@
+;0.5.1
+;experimental version
+;if you are using this as a sample for your theme
+;don't be suprised it doesn't work good with newer releases
+
+[Skin]
+Theme=iStar
+Name=Apple
+Color=Blue
+Author=MezzoX
+
+[Textures]
+
+
+# # # M A I N # # #
+Button =[main]button.jpg
+Buttonmenu1 =[main]buttonmenu1.jpg
+Buttonmenu2 =[main]buttonmenu2.jpg
+Buttonmenu3 =[main]buttonmenu3.jpg
+Buttonmenu4 =[main]buttonmenu4.jpg
+Buttonmenu5 =[main]buttonmenu5.jpg
+ButtonF = [main]buttonf.jpg
+MainBar = [main]mainBar.jpg
+SelectBG = [main]selectbg.jpg
+
+#Backgrounds
+LoadingBG = [bg-load]blue.jpg
+MenuBG = [bg-menu]blue.jpg
+MainBG = [bg-main]blue.jpg
+SongBG =[bg-main]blue.jpg
+ScoreScreenBG =[bg-main]blue.jpg
+Top5BG = [bg-main]blue.jpg
+OptionsBG = [bg-main]blue.jpg
+PartyBG = [bg-main]blue.jpg
+
+#Icons on screen
+SongCD = [icon]cd.jpg
+MainIcon = [icon]main.jpg
+MainSearch = [icon]search.jpg
+IconOption = [icon]options.jpg
+IconSongMenu = [icon]songmenu.jpg
+ScoreIcon = [icon]score.jpg
+PartyIcon = [icon]party.jpg
+StatIcon = [icon]stats.jpg
+VideoIcon =[icon]video.jpg
+
+IconError = [icon]error.jpg
+IconQuestion = [icon]question.jpg
+
+# # # S O N G S E L E C E T # # #
+SongSelection = [main]songSelection.jpg
+SongSelection1 = [main]songSelection1.jpg
+SongSelection2 =[main]songSelection2.jpg
+SongCover = [main]songCover.jpg
+
+
+# # # S I N G # # #
+#the bar where the lyrics reside
+LyricBar = [sing]textBar.jpg
+
+#this one slides in, to tell you that singing starts immediately
+LyricHelpBar = [sing]lyricsHelpBar.bmp
+
+#the time progress bar (not skinned in this theme :P )
+TimeBar1 = [sing]timeBarBG.jpg
+
+#the bar behind the timestuff
+TimeBar2 = [sing]timeBar.jpg
+
+#linebonus, the thing that pop ups at the score
+LineBonusBack = [sing]lineBonusPopUp.jpg
+
+#Singbar (the thing beneath the scores)
+SingBarBack = [sing]singBarBack.jpg
+SingBarBar = [sing]singBarBar.jpg
+SingBarFront = [sing]singBarFront.jpg
+
+#Background for scores
+ScoreBG = [sing]scoreBg.jpg
+
+#Background for the P1, P2 and so on
+P = [sing]p.jpg
+
+#Pointer for lyrics
+Ball = [sing]LyricsBall.bmp
+
+
+# # # S C O R E / T O P 5 # # #
+ScoreBox = [score]box.jpg
+ScoreLevel = [score]level.jpg
+ScoreLevelRound = [score]levelRound.jpg
+ScoreEndCap = [score]endcap.jpg
+ScoreLine = [score]line.jpg
+PlayerNumberBox = [main]playerNumberBox.jpg
+
+
+# # # P A R T Y # # #
+Joker =[party]Joker.jpg
+PartyPlayerButton =[party]playerButton.jpg
+PartyTeamButton1 =[party]roundTeamButton.jpg
+PartyTeamButton2 =[party]playerTeamButton.jpg
+PartyTeamButton3 =[party]winTeamButton1.jpg
+PartyTeamButton4 =[party]winTeamButton2.jpg
+PartyTeamButton5 =[party]winTeamButton3.jpg
+PartyRoundBG1 =[party]roundBG1.jpg
+PartyRoundBG2 =[party]roundBG2.jpg
+PartyRoundBG3 =[party]roundBG3.jpg
+PartyRoundBG4 =[party]roundBG4.jpg
+HDL_Pointer =[party]pointer.bmp
+PartyTeamPoints =[party]teamPoints.jpg
+PartyScoreDeco =x_[party]scoreDecoration.jpg
+PartyScoreBG1 =[party]scoreBG1.jpg
+PartyScoreBG2 =[party]scoreBG2.jpg
+PartyWinDeco1 =x_[party]winDecoration1.jpg
+PartyWinDeco2 =x_[party]winDecoration1.jpg
+PartyWinDeco3 =x_[party]winDecoration1.jpg
+
+# # # S T A T S # # #
+StatMainBG1 = [stat]mainBG1.jpg
+StatMainBG2 = [stat]mainBG2.jpg
+StatMainBG3 = [stat]mainBG3.jpg
+StatDetailBG1 = [stat]detailBG1.jpg
+
+
+# # # N A V I # # #
+ButtonP = [button]p.jpg
+ButtonM = [button]m.jpg
+ButtonJ = [button]j.jpg
+ButtonAlt = [button]alt.jpg
+ButtonAZ = [button]az.jpg
+ButtonEnter =[button]enter.jpg
+ButtonNavi =[button]navi.jpg
+ButtonEsc = [button]esc.jpg
+Button13 = [button]13.jpg
+
+Leiste1 =[special]bar1.jpg
+Leiste2 =[special]bar2.jpg
+
+JumpToBG = [menu]jumpToBg.jpg
+SongMenuBG = [menu]songMenuBg.jpg
+SongMenuSelectBG = [menu]songMenuSelectBg.jpg
+PopUpBG = [menu]popUpBG.jpg
+PopUpFG = [menu]popUpFG.jpg
+
+
+# # # N O T E S # # #
+GrayLeft = [sing]notesLeft.bmp
+GrayMid = [sing]notesMid.bmp
+GrayRight = [sing]notesRight.bmp
+NoteBGLeft = [sing]notesBgLeft.bmp
+NoteBGMid = [sing]notesBgMid.bmp
+NoteBGRight = [sing]notesBgRight.bmp
+
+
+# # # E F F E C T S # # #
+NoteStar = [effect]goldenNoteStar.jpg
+NotePerfectStar = [effect]perfectNoteStar.jpg
+
+
+# # # dirty helpers # # #
+Rectangle =[party]playerTeamButton.jpg
+ButtonFade =[helper]buttonFade2.jpg
+ButtonFadeMenu =[helper]buttonFade.jpg
+MedleyIcon=[icon]medley.jpg
+CalcMedleyIcon=[icon]calcmedley.jpg
+ButtonFadeMenu4=[helper]buttonFade2.jpg
+Buttonmenu7=[main]buttonmenu7.jpg
+ButtonMenu9a=[main]buttonmenu9a.jpg
+ButtonMenu4a=[main]buttonmenu4a.jpg
+ButtonMenu4b=[main]buttonmenu4b.jpg
+ButtonMenu4c=[main]buttonmenu4c.jpg
+ButtonMenu8=[main]buttonmenu8.jpg
+ButtonMenu8a=[main]buttonmenu8a.jpg
+ButtonMenu8b=[main]buttonmenu8b.jpg
+ButtonMenu6=[main]buttonmenu6.jpg
+ButtonMenu6a=[main]buttonmenu6a.jpg
+ButtonMenu6b=[main]buttonmenu6b.jpg
+ButtonMenu6c=[main]buttonmenu6c.jpg
+ButtonMenu6d=[main]buttonmenu6d.jpg
+ButtonMenu6e=[main]buttonmenu6e.jpg
+[main]buttonmenu9=[main]buttonmenu9.jpg
+[main]buttonmenu9=
+[main]buttonmenu8=[main]buttonmenu8.jpg
+[main]buttonmenu8=
+[maim]butonmenu7=[main]buttonmenu7.jpg
+[maim]butonmenu7=
diff --git a/Game/Output/Skins/iStar/[party]scoreDecoration.jpg b/Game/Output/Skins/iStar/[party]scoreDecoration.jpg
new file mode 100644
index 00000000..49204e19
--- /dev/null
+++ b/Game/Output/Skins/iStar/[party]scoreDecoration.jpg
Binary files differ
diff --git a/Game/Output/Skins/iStar/[party]teamPoints.jpg b/Game/Output/Skins/iStar/[party]teamPoints.jpg
new file mode 100644
index 00000000..96855bc9
--- /dev/null
+++ b/Game/Output/Skins/iStar/[party]teamPoints.jpg
Binary files differ
diff --git a/Game/Output/Skins/iStar/[party]winDecoration1.jpg b/Game/Output/Skins/iStar/[party]winDecoration1.jpg
new file mode 100644
index 00000000..0277f529
--- /dev/null
+++ b/Game/Output/Skins/iStar/[party]winDecoration1.jpg
Binary files differ
diff --git a/Game/Output/Skins/iStar/[party]winTeamButton1.jpg b/Game/Output/Skins/iStar/[party]winTeamButton1.jpg
new file mode 100644
index 00000000..10c8d80f
--- /dev/null
+++ b/Game/Output/Skins/iStar/[party]winTeamButton1.jpg
Binary files differ
diff --git a/Game/Output/Skins/iStar/[party]winTeamButton2.jpg b/Game/Output/Skins/iStar/[party]winTeamButton2.jpg
new file mode 100644
index 00000000..fbd85056
--- /dev/null
+++ b/Game/Output/Skins/iStar/[party]winTeamButton2.jpg
Binary files differ
diff --git a/Game/Output/Skins/iStar/[party]winTeamButton3.jpg b/Game/Output/Skins/iStar/[party]winTeamButton3.jpg
new file mode 100644
index 00000000..e8dd9566
--- /dev/null
+++ b/Game/Output/Skins/iStar/[party]winTeamButton3.jpg
Binary files differ
diff --git a/Game/Output/Skins/iStar/[score]Line.jpg b/Game/Output/Skins/iStar/[score]Line.jpg
new file mode 100644
index 00000000..61cf33f5
--- /dev/null
+++ b/Game/Output/Skins/iStar/[score]Line.jpg
Binary files differ
diff --git a/Game/Output/Skins/iStar/[score]box.jpg b/Game/Output/Skins/iStar/[score]box.jpg
new file mode 100644
index 00000000..b37f7e46
--- /dev/null
+++ b/Game/Output/Skins/iStar/[score]box.jpg
Binary files differ
diff --git a/Game/Output/Skins/iStar/[score]endcap.jpg b/Game/Output/Skins/iStar/[score]endcap.jpg
new file mode 100644
index 00000000..0cad98a5
--- /dev/null
+++ b/Game/Output/Skins/iStar/[score]endcap.jpg
Binary files differ
diff --git a/Game/Output/Skins/iStar/[score]level.jpg b/Game/Output/Skins/iStar/[score]level.jpg
new file mode 100644
index 00000000..9e9c4086
--- /dev/null
+++ b/Game/Output/Skins/iStar/[score]level.jpg
Binary files differ
diff --git a/Game/Output/Skins/iStar/[score]levelRound.jpg b/Game/Output/Skins/iStar/[score]levelRound.jpg
new file mode 100644
index 00000000..38cfddea
--- /dev/null
+++ b/Game/Output/Skins/iStar/[score]levelRound.jpg
Binary files differ
diff --git a/Game/Output/Skins/iStar/[sing]LyricsBall.bmp b/Game/Output/Skins/iStar/[sing]LyricsBall.bmp
new file mode 100644
index 00000000..5b7d7943
--- /dev/null
+++ b/Game/Output/Skins/iStar/[sing]LyricsBall.bmp
Binary files differ
diff --git a/Game/Output/Skins/iStar/[sing]lineBonusPopUp.jpg b/Game/Output/Skins/iStar/[sing]lineBonusPopUp.jpg
new file mode 100644
index 00000000..58d93130
--- /dev/null
+++ b/Game/Output/Skins/iStar/[sing]lineBonusPopUp.jpg
Binary files differ
diff --git a/Game/Output/Skins/iStar/[sing]lyricsHelpBar.bmp b/Game/Output/Skins/iStar/[sing]lyricsHelpBar.bmp
new file mode 100644
index 00000000..87a22b6b
--- /dev/null
+++ b/Game/Output/Skins/iStar/[sing]lyricsHelpBar.bmp
Binary files differ
diff --git a/Game/Output/Skins/iStar/[sing]notesBgLeft.bmp b/Game/Output/Skins/iStar/[sing]notesBgLeft.bmp
new file mode 100644
index 00000000..776e567c
--- /dev/null
+++ b/Game/Output/Skins/iStar/[sing]notesBgLeft.bmp
Binary files differ
diff --git a/Game/Output/Skins/iStar/[sing]notesBgMid.bmp b/Game/Output/Skins/iStar/[sing]notesBgMid.bmp
new file mode 100644
index 00000000..759ac8a3
--- /dev/null
+++ b/Game/Output/Skins/iStar/[sing]notesBgMid.bmp
Binary files differ
diff --git a/Game/Output/Skins/iStar/[sing]notesBgRight.bmp b/Game/Output/Skins/iStar/[sing]notesBgRight.bmp
new file mode 100644
index 00000000..9b1ffc18
--- /dev/null
+++ b/Game/Output/Skins/iStar/[sing]notesBgRight.bmp
Binary files differ
diff --git a/Game/Output/Skins/iStar/[sing]notesLeft.bmp b/Game/Output/Skins/iStar/[sing]notesLeft.bmp
new file mode 100644
index 00000000..c819849b
--- /dev/null
+++ b/Game/Output/Skins/iStar/[sing]notesLeft.bmp
Binary files differ
diff --git a/Game/Output/Skins/iStar/[sing]notesMid.bmp b/Game/Output/Skins/iStar/[sing]notesMid.bmp
new file mode 100644
index 00000000..2fdce32d
--- /dev/null
+++ b/Game/Output/Skins/iStar/[sing]notesMid.bmp
Binary files differ
diff --git a/Game/Output/Skins/iStar/[sing]notesRight.bmp b/Game/Output/Skins/iStar/[sing]notesRight.bmp
new file mode 100644
index 00000000..3241beeb
--- /dev/null
+++ b/Game/Output/Skins/iStar/[sing]notesRight.bmp
Binary files differ
diff --git a/Game/Output/Skins/iStar/[sing]p.jpg b/Game/Output/Skins/iStar/[sing]p.jpg
new file mode 100644
index 00000000..e490fbf4
--- /dev/null
+++ b/Game/Output/Skins/iStar/[sing]p.jpg
Binary files differ
diff --git a/Game/Output/Skins/iStar/[sing]scoreBg.jpg b/Game/Output/Skins/iStar/[sing]scoreBg.jpg
new file mode 100644
index 00000000..2bcbedaa
--- /dev/null
+++ b/Game/Output/Skins/iStar/[sing]scoreBg.jpg
Binary files differ
diff --git a/Game/Output/Skins/iStar/[sing]singBarBack.jpg b/Game/Output/Skins/iStar/[sing]singBarBack.jpg
new file mode 100644
index 00000000..d7dcd791
--- /dev/null
+++ b/Game/Output/Skins/iStar/[sing]singBarBack.jpg
Binary files differ
diff --git a/Game/Output/Skins/iStar/[sing]singBarBar.jpg b/Game/Output/Skins/iStar/[sing]singBarBar.jpg
new file mode 100644
index 00000000..4fd9bde9
--- /dev/null
+++ b/Game/Output/Skins/iStar/[sing]singBarBar.jpg
Binary files differ
diff --git a/Game/Output/Skins/iStar/[sing]singBarFront.jpg b/Game/Output/Skins/iStar/[sing]singBarFront.jpg
new file mode 100644
index 00000000..eec27b79
--- /dev/null
+++ b/Game/Output/Skins/iStar/[sing]singBarFront.jpg
Binary files differ
diff --git a/Game/Output/Skins/iStar/[sing]textBar.jpg b/Game/Output/Skins/iStar/[sing]textBar.jpg
new file mode 100644
index 00000000..1f5056ce
--- /dev/null
+++ b/Game/Output/Skins/iStar/[sing]textBar.jpg
Binary files differ
diff --git a/Game/Output/Skins/iStar/[sing]timeBar.jpg b/Game/Output/Skins/iStar/[sing]timeBar.jpg
new file mode 100644
index 00000000..6e1e42dd
--- /dev/null
+++ b/Game/Output/Skins/iStar/[sing]timeBar.jpg
Binary files differ
diff --git a/Game/Output/Skins/iStar/[sing]timeBar1.jpg b/Game/Output/Skins/iStar/[sing]timeBar1.jpg
new file mode 100644
index 00000000..924a2e9b
--- /dev/null
+++ b/Game/Output/Skins/iStar/[sing]timeBar1.jpg
Binary files differ
diff --git a/Game/Output/Skins/iStar/[sing]timeBarBG.jpg b/Game/Output/Skins/iStar/[sing]timeBarBG.jpg
new file mode 100644
index 00000000..5298a0c5
--- /dev/null
+++ b/Game/Output/Skins/iStar/[sing]timeBarBG.jpg
Binary files differ
diff --git a/Game/Output/Skins/iStar/[special]bar1.jpg b/Game/Output/Skins/iStar/[special]bar1.jpg
new file mode 100644
index 00000000..8286d3c6
--- /dev/null
+++ b/Game/Output/Skins/iStar/[special]bar1.jpg
Binary files differ
diff --git a/Game/Output/Skins/iStar/[special]bar2.jpg b/Game/Output/Skins/iStar/[special]bar2.jpg
new file mode 100644
index 00000000..e66cc2d2
--- /dev/null
+++ b/Game/Output/Skins/iStar/[special]bar2.jpg
Binary files differ
diff --git a/Game/Output/Skins/iStar/[stat]detailBG1.jpg b/Game/Output/Skins/iStar/[stat]detailBG1.jpg
new file mode 100644
index 00000000..120dc483
--- /dev/null
+++ b/Game/Output/Skins/iStar/[stat]detailBG1.jpg
Binary files differ
diff --git a/Game/Output/Skins/iStar/[stat]mainBG1.jpg b/Game/Output/Skins/iStar/[stat]mainBG1.jpg
new file mode 100644
index 00000000..a937b24a
--- /dev/null
+++ b/Game/Output/Skins/iStar/[stat]mainBG1.jpg
Binary files differ
diff --git a/Game/Output/Skins/iStar/[stat]mainBG2.jpg b/Game/Output/Skins/iStar/[stat]mainBG2.jpg
new file mode 100644
index 00000000..201d49b8
--- /dev/null
+++ b/Game/Output/Skins/iStar/[stat]mainBG2.jpg
Binary files differ
diff --git a/Game/Output/Skins/iStar/[stat]mainBG3.jpg b/Game/Output/Skins/iStar/[stat]mainBG3.jpg
new file mode 100644
index 00000000..4fb6bc06
--- /dev/null
+++ b/Game/Output/Skins/iStar/[stat]mainBG3.jpg
Binary files differ
diff --git a/Game/Output/Themes/Blue Sensation.ini b/Game/Output/Themes/Blue Sensation.ini
index 1874fc7e..656f7890 100644
--- a/Game/Output/Themes/Blue Sensation.ini
+++ b/Game/Output/Themes/Blue Sensation.ini
@@ -3373,12 +3373,32 @@ SBGDColor = ColorLight
STColor = White
STDColor = GrayDark
+[OptionsGameSelectShuffleTime]
+Tex =MainBar
+TexSBG =SelectBG
+Text =SING_OPTIONS_GAME_SHUFFLETIME
+X = 40
+Y = 360
+W = 230
+H = 70
+SkipX = 50
+
+Color =ColorDark
+DColor = ColorLight
+TColor = White
+TDColor = White
+SBGTex =MainBar
+SBGColor = ColorDark
+SBGDColor = ColorLight
+STColor = White
+STDColor = GrayDark
+
[OptionsGameSelectDebug]
Tex =MainBar
TexSBG =SelectBG
Text =SING_OPTIONS_GAME_DEBUG
X = 40
-Y = 360
+Y = 415
W = 230
H = 70
SkipX = 50
@@ -3395,7 +3415,7 @@ STDColor = GrayDark
[OptionsGameButtonExit]
X = 40
-Y = 415
+Y = 470
W = 230
H = 70
Tex =MainBar
diff --git a/Game/Output/Themes/Deluxe.ini b/Game/Output/Themes/Deluxe.ini
index e7b32d5f..14995bc8 100644
--- a/Game/Output/Themes/Deluxe.ini
+++ b/Game/Output/Themes/Deluxe.ini
@@ -2768,12 +2768,32 @@ SBGDColor = Gray
STColor = White
STDColor = GrayDark
+[OptionsGameSelectShuffleTime]
+Tex =MainBar
+TexSBG =SelectBG
+Text =SING_OPTIONS_GAME_SHUFFLETIME
+X = 40
+Y = 360
+W = 230
+H = 70
+SkipX = 50
+
+Color = ColorDark
+DColor = Gray
+TColor = White
+TDColor = White
+SBGTex =MainBar
+SBGColor = ColorDark
+SBGDColor = Gray
+STColor = White
+STDColor = GrayDark
+
[OptionsGameSelectDebug]
Tex =MainBar
TexSBG =SelectBG
Text =SING_OPTIONS_GAME_DEBUG
X = 40
-Y = 360
+Y = 415
W = 230
H = 70
SkipX = 50
@@ -2790,7 +2810,7 @@ STDColor = GrayDark
[OptionsGameButtonExit]
X = 40
-Y = 415
+Y = 470
W = 230
H = 70
Tex =MainBar
diff --git a/Game/Output/Themes/iStar.ini b/Game/Output/Themes/iStar.ini
index bf0c438f..8ccf0323 100644
--- a/Game/Output/Themes/iStar.ini
+++ b/Game/Output/Themes/iStar.ini
@@ -3351,12 +3351,32 @@ SBGDColor = Gray
STColor = White
STDColor = GrayDark
+[OptionsGameSelectShuffleTime]
+Tex =MainBar
+TexSBG =SelectBG
+Text =SING_OPTIONS_GAME_SHUFFLETIME
+X = 40
+Y = 360
+W = 230
+H = 70
+SkipX = 50
+
+Color = ColorDark
+DColor = Gray
+TColor = White
+TDColor = White
+SBGTex =MainBar
+SBGColor = ColorDark
+SBGDColor = Gray
+STColor = White
+STDColor = GrayDark
+
[OptionsGameSelectDebug]
Tex =MainBar
TexSBG =SelectBG
Text =SING_OPTIONS_GAME_DEBUG
X = 40
-Y = 360
+Y = 415
W = 230
H = 70
SkipX = 50
@@ -3373,7 +3393,7 @@ STDColor = GrayDark
[OptionsGameButtonExit]
X = 40
-Y = 415
+Y = 470
W = 230
H = 70
Tex =MainBar