aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Game/Code/Classes/UGraphic.pas47
-rw-r--r--Game/Code/Classes/UThemes.pas4
-rw-r--r--Game/Code/Screens/UScreenScore.pas701
-rw-r--r--Skins/Deluxe/Blue.ini38
-rw-r--r--Skins/Deluxe/Fall.ini36
-rw-r--r--Skins/Deluxe/Summer.ini36
-rw-r--r--Skins/Deluxe/Winter.ini34
-rw-r--r--Skins/Deluxe/[score]Line.pngbin216 -> 2825 bytes
-rw-r--r--Skins/Deluxe/[score]bar_box_dark.pngbin0 -> 496 bytes
-rw-r--r--Skins/Deluxe/[score]bar_box_light.pngbin0 -> 490 bytes
-rw-r--r--Skins/Deluxe/[score]bar_box_lightest.pngbin0 -> 484 bytes
-rw-r--r--Skins/Deluxe/[score]endcap.pngbin2339 -> 2275 bytes
-rw-r--r--Skins/Deluxe/[score]glass_box.pngbin0 -> 3581 bytes
-rw-r--r--Skins/Deluxe/[score]level.pngbin174 -> 266 bytes
-rw-r--r--Skins/Deluxe/[score]levelRound.pngbin360 -> 524 bytes
-rw-r--r--Skins/Deluxe/[score]level_dark.pngbin0 -> 213 bytes
-rw-r--r--Skins/Deluxe/[score]level_dark_round.pngbin0 -> 410 bytes
-rw-r--r--Skins/Deluxe/[score]level_light.pngbin0 -> 209 bytes
-rw-r--r--Skins/Deluxe/[score]level_light_round.pngbin0 -> 445 bytes
-rw-r--r--Skins/Deluxe/[score]level_lightest.pngbin0 -> 209 bytes
-rw-r--r--Skins/Deluxe/[score]level_lightest_round.pngbin0 -> 467 bytes
-rw-r--r--Skins/Deluxe/[score]rating_0.pngbin0 -> 18351 bytes
-rw-r--r--Skins/Deluxe/[score]rating_1.pngbin0 -> 16724 bytes
-rw-r--r--Skins/Deluxe/[score]rating_2.pngbin0 -> 20557 bytes
-rw-r--r--Skins/Deluxe/[score]rating_3.pngbin0 -> 15562 bytes
-rw-r--r--Skins/Deluxe/[score]rating_4.pngbin0 -> 14538 bytes
-rw-r--r--Skins/Deluxe/[score]rating_5.pngbin0 -> 15317 bytes
-rw-r--r--Skins/Deluxe/[score]rating_6.pngbin0 -> 13896 bytes
-rw-r--r--Themes/Deluxe.ini472
29 files changed, 966 insertions, 402 deletions
diff --git a/Game/Code/Classes/UGraphic.pas b/Game/Code/Classes/UGraphic.pas
index f774a899..32d7d304 100644
--- a/Game/Code/Classes/UGraphic.pas
+++ b/Game/Code/Classes/UGraphic.pas
@@ -157,8 +157,20 @@ var
//End PhrasenBonus - Line Bonus Mod
//ScoreBG Texs
- Tex_ScoreBG: array [0..5] of TTexture;
+ Tex_ScoreBG: array [1..6] of TTexture;
+ //Score Screen Textures
+ Tex_Score_NoteBarLevel_Dark : array [1..6] of TTexture;
+ Tex_Score_NoteBarRound_Dark : array [1..6] of TTexture;
+
+ Tex_Score_NoteBarLevel_Light : array [1..6] of TTexture;
+ Tex_Score_NoteBarRound_Light : array [1..6] of TTexture;
+
+ Tex_Score_NoteBarLevel_Lightest : array [1..6] of TTexture;
+ Tex_Score_NoteBarRound_Lightest : array [1..6] of TTexture;
+
+ Tex_Score_Ratings : array [0..6] of TTexture;
+
const
Skin_BGColorR = 1;
Skin_BGColorG = 1;
@@ -348,14 +360,45 @@ begin
Tex_SingLineBonusBack[P] := Texture.LoadTexture(pchar(Skin.GetTextureFileName('LineBonusBack')), 'PNG', 'Colorized', Col);
end;
- //Score BG Textures
+//## backgrounds for the scores ##
for P := 0 to 5 do begin
LoadColor(R, G, B, 'P' + IntToStr(P+1) + 'Light');
Col := $10000 * Round(R*255) + $100 * Round(G*255) + Round(B*255);
Tex_ScoreBG[P] := Texture.LoadTexture(pchar(Skin.GetTextureFileName('ScoreBG')), 'PNG', 'Colorized', Col);
end;
+
Log.LogStatus('Loading Textures - D', 'LoadTextures');
+
+// ######################
+// Score screen textures
+// ######################
+
+//## the bars that visualize the score ##
+ for P := 1 to 6 do begin
+//NoteBar ScoreBar
+ LoadColor(R, G, B, 'P' + IntToStr(P) + 'Dark');
+ Col := $10000 * Round(R*255) + $100 * Round(G*255) + Round(B*255);
+ Tex_Score_NoteBarLevel_Dark[P] := Texture.LoadTexture(pchar(Skin.GetTextureFileName('ScoreLevel_Dark')), 'PNG', 'Colorized', Col);
+ Tex_Score_NoteBarRound_Dark[P] := Texture.LoadTexture(pchar(Skin.GetTextureFileName('ScoreLevel_Dark_Round')), 'PNG', 'Colorized', Col);
+//LineBonus ScoreBar
+ LoadColor(R, G, B, 'P' + IntToStr(P) + 'Light');
+ Col := $10000 * Round(R*255) + $100 * Round(G*255) + Round(B*255);
+ Tex_Score_NoteBarLevel_Light[P] := Texture.LoadTexture(pchar(Skin.GetTextureFileName('ScoreLevel_Light')), 'PNG', 'Colorized', Col);
+ Tex_Score_NoteBarRound_Light[P] := Texture.LoadTexture(pchar(Skin.GetTextureFileName('ScoreLevel_Light_Round')), 'PNG', 'Colorized', Col);
+//GoldenNotes ScoreBar
+ LoadColor(R, G, B, 'P' + IntToStr(P) + 'Lightest');
+ Col := $10000 * Round(R*255) + $100 * Round(G*255) + Round(B*255);
+ Tex_Score_NoteBarLevel_Lightest[P] := Texture.LoadTexture(pchar(Skin.GetTextureFileName('ScoreLevel_Lightest')), 'PNG', 'Colorized', Col);
+ Tex_Score_NoteBarRound_Lightest[P] := Texture.LoadTexture(pchar(Skin.GetTextureFileName('ScoreLevel_Lightest_Round')), 'PNG', 'Colorized', Col);
+ end;
+
+//## rating pictures that show a picture according to your rate ##
+ for P := 0 to 6 do begin
+ Tex_Score_Ratings[P] := Texture.LoadTexture(pchar(Skin.GetTextureFileName('Rating_'+IntToStr(P))), 'PNG', 'Transparent', 0);
+ end;
+
+ Log.LogStatus('Loading Textures - Done', 'LoadTextures');
end;
procedure Initialize3D (Title: string);
diff --git a/Game/Code/Classes/UThemes.pas b/Game/Code/Classes/UThemes.pas
index f7b08479..1c731ce0 100644
--- a/Game/Code/Classes/UThemes.pas
+++ b/Game/Code/Classes/UThemes.pas
@@ -343,6 +343,8 @@ type
StaticBoxLight: array[1..6] of TThemeStatic;
StaticBoxDark: array[1..6] of TThemeStatic;
+ StaticRatings: array[1..6] of TThemeStatic;
+
StaticBackLevel: array[1..6] of TThemeStatic;
StaticBackLevelRound: array[1..6] of TThemeStatic;
StaticLevel: array[1..6] of TThemeStatic;
@@ -1082,6 +1084,8 @@ begin
ThemeLoadStatic(Score.StaticBackLevelRound[I], 'ScoreStaticBackLevelRound' + IntToStr(I));
ThemeLoadStatic(Score.StaticLevel[I], 'ScoreStaticLevel' + IntToStr(I));
ThemeLoadStatic(Score.StaticLevelRound[I], 'ScoreStaticLevelRound' + IntToStr(I));
+
+ ThemeLoadStatic(Score.StaticRatings[I], 'ScoreStaticRatingPicture' + IntToStr(I));
end;
// Top5
diff --git a/Game/Code/Screens/UScreenScore.pas b/Game/Code/Screens/UScreenScore.pas
index 0ed04b89..35296233 100644
--- a/Game/Code/Screens/UScreenScore.pas
+++ b/Game/Code/Screens/UScreenScore.pas
@@ -19,20 +19,69 @@ uses
OpenGL12,
{$ifdef win32}
Windows,
+ dialogs,
{$endif}
math,
- ULCD;
-
+ ULCD,
+ UTexture;
// OpenGL;
+const
+ ZBars : real = 0.8; // Z value for the bars
+ ZRatingPic : real = 0.8; // Z value for the rating pictures
+
+ EaseOut_MaxSteps : real = 40; // that's the speed of the bars (10 is fast | 100 is slower)
+
type
+ TPlayerScoreScreenTexture = record // holds all colorized textures for up to 6 players
+ //Bar textures
+ Score_NoteBarLevel_Dark : TTexture; // Note
+ Score_NoteBarRound_Dark : TTexture; // that's the round thing on top
+
+ Score_NoteBarLevel_Light : TTexture; // LineBonus | Phrasebonus
+ Score_NoteBarRound_Light : TTexture;
+
+ Score_NoteBarLevel_Lightest : TTexture; // GoldenNotes
+ Score_NoteBarRound_Lightest : TTexture;
+ end;
+
+ TPlayerScoreScreenData = record // holds the positions and other data
+ Bar_X :Real;
+ Bar_Y :Real;
+ Bar_Height :Real; // this is the max height of the bar, who knows if there ever will be a theme with different heights :D
+ Bar_Width :Real; // another rather senseless setting, but you never know what our cool users do with the them :)
+
+ Bar_Actual_Height : Real; // this one holds the actual height of the bar, while we animate it
+ BarScore_ActualHeight : Real;
+ BarLine_ActualHeight : Real;
+ BarGolden_ActualHeight : Real;
+ end;
+
+ TPlayerScoreRatingPics = record // a fine array of the rating pictures
+ RatePic_X :Real;
+ RatePic_Y :Real;
+ RatePic_Height :Real;
+ RatePic_Width :Real;
+
+ RateEaseStep : Integer;
+ RateEaseValue: Real;
+ end;
+
TScreenScore = class(TMenu)
public
+ aPlayerScoreScreenTextures : array[1..6] of TPlayerScoreScreenTexture;
+ aPlayerScoreScreenDatas : array[1..6] of TPlayerScoreScreenData;
+ aPlayerScoreScreenRatings : array[1..6] of TPlayerScoreRatingPics;
+
+ BarScore_EaseOut_Step : real;
+ BarPhrase_EaseOut_Step : real;
+ BarGolden_EaseOut_Step : real;
+
TextArtist: integer;
TextTitle: integer;
TextArtistTitle : integer;
-
+
TextName: array[1..6] of integer;
TextScore: array[1..6] of integer;
@@ -61,19 +110,11 @@ type
Animation: real;
Fadeout: boolean;
- BarScore_ActualHeight : array[0..5] of real;
- BarPhrase_ActualHeight : array[0..5] of real;
- BarGolden_ActualHeight : array[0..5] of real;
-
- BarScore_EaseOut_Step : real;
- BarPhrase_EaseOut_Step : real;
- BarGolden_EaseOut_Step : real;
+ TextScore_ActualValue : array[1..6] of integer;
+ TextPhrase_ActualValue : array[1..6] of integer;
+ TextGolden_ActualValue : array[1..6] of integer;
- TextScore_ActualValue : array[0..5] of integer;
- TextPhrase_ActualValue : array[0..5] of integer;
- TextGolden_ActualValue : array[0..5] of integer;
- EaseOut_MaxSteps : real;
constructor Create; override;
function ParseInput(PressedKey: Cardinal; ScanCode: byte; PressedDown: Boolean): Boolean; override;
@@ -82,8 +123,13 @@ type
function Draw: boolean; override;
procedure FillPlayer(Item, P: integer);
- function RaiseBar(PlayerNumber: integer; BarStartPosY: Single; ActualHeight: real; Score: integer; ColorBrightness : String; EaseOut_Step: Real) : real;
- function IncrementScore(PlayerNumber: integer; ActualScoreValue: Integer; ScoreReached: integer; EaseOut_Step: Real) : integer;
+ function EaseBarIn(PlayerNumber : Integer; BarType: String) : real;
+ function EaseScoreIn(PlayerNumber : Integer; ScoreType: String) : real;
+
+ procedure FillPlayerItems(PlayerNumber : Integer; ScoreType: String);
+ procedure ShowRating(PlayerNumber: integer);
+
+ function elastique(PlayerNumber : Integer): real;
end;
implementation
@@ -142,20 +188,37 @@ end;
constructor TScreenScore.Create;
var
- P: integer;
- I, C: integer;
+ P : integer;
+ I, C : integer;
+ ArrayStartModifier : Byte;
+
begin
inherited Create;
LoadFromTheme(Theme.Score);
- TextArtist := AddText(Theme.Score.TextArtist);
- TextTitle := AddText(Theme.Score.TextTitle);
-
+ TextArtist := AddText(Theme.Score.TextArtist);
+ TextTitle := AddText(Theme.Score.TextTitle);
TextArtistTitle := AddText(Theme.Score.TextArtistTitle);
for P := 1 to 6 do
begin
+ //textures
+ aPlayerScoreScreenTextures[P].Score_NoteBarLevel_Dark := Tex_Score_NoteBarLevel_Dark[P];
+ aPlayerScoreScreenTextures[P].Score_NoteBarRound_Dark := Tex_Score_NoteBarRound_Dark[P];
+
+ aPlayerScoreScreenTextures[P].Score_NoteBarLevel_Light := Tex_Score_NoteBarLevel_Light[P];
+ aPlayerScoreScreenTextures[P].Score_NoteBarRound_Light := Tex_Score_NoteBarRound_Light[P];
+
+ aPlayerScoreScreenTextures[P].Score_NoteBarLevel_Lightest := Tex_Score_NoteBarLevel_Lightest[P];
+ aPlayerScoreScreenTextures[P].Score_NoteBarRound_Lightest := Tex_Score_NoteBarRound_Lightest[P];
+ end;
+
+
+//old stuff
+
+ for P := 1 to 6 do
+ begin
SetLength(PlayerStatic[P], Length(Theme.Score.PlayerStatic[P]));
SetLength(PlayerTexts[P], Length(Theme.Score.PlayerTexts[P]));
@@ -186,6 +249,7 @@ begin
StaticLevel[P] := AddStatic(Theme.Score.StaticLevel[P]);
StaticLevelRound[P] := AddStatic(Theme.Score.StaticLevelRound[P]);
end;
+
end;
procedure TScreenScore.onShow;
@@ -199,8 +263,44 @@ var
V: array[1..6] of boolean; // visibility array
MaxH: real; // maximum height of score bar
Wsp: real;
+ ArrayStartModifier :integer;
begin
+ case PlayersPlay of
+ 1: begin
+ ArrayStartModifier := 0;
+ end;
+ 2, 4: begin
+ ArrayStartModifier := 1;
+ end;
+ 3, 6: begin
+ ArrayStartModifier := 3;
+ end;
+ end;
+
+ for P := 1 to PlayersPlay do
+ begin
+ // data
+ aPlayerScoreScreenDatas[P].Bar_X := Theme.Score.StaticBackLevel[P + ArrayStartModifier].X;
+ aPlayerScoreScreenDatas[P].Bar_Y := Theme.Score.StaticBackLevel[P + ArrayStartModifier].Y;
+ aPlayerScoreScreenDatas[P].Bar_Height := Theme.Score.StaticBackLevel[P + ArrayStartModifier].H;
+ aPlayerScoreScreenDatas[P].Bar_Width := Theme.Score.StaticBackLevel[P + ArrayStartModifier].W;
+
+ aPlayerScoreScreenDatas[P].Bar_Actual_Height := 0;
+ aPlayerScoreScreenDatas[P].BarScore_ActualHeight := 0;
+ aPlayerScoreScreenDatas[P].BarLine_ActualHeight := 0;
+ aPlayerScoreScreenDatas[P].BarGolden_ActualHeight := 0;
+
+ // ratings
+ aPlayerScoreScreenRatings[P].RatePic_X := Theme.Score.StaticRatings[P + ArrayStartModifier].X;
+ aPlayerScoreScreenRatings[P].RatePic_Y := Theme.Score.StaticRatings[P + ArrayStartModifier].Y;
+ aPlayerScoreScreenRatings[P].RatePic_Height := Theme.Score.StaticRatings[P + ArrayStartModifier].H;
+ aPlayerScoreScreenRatings[P].RatePic_Width := Theme.Score.StaticRatings[P + ArrayStartModifier].W;
+ aPlayerScoreScreenRatings[P].RateEaseStep := 1;
+ aPlayerScoreScreenRatings[P].RateEaseValue := 20;
+ end;
+
+
// Singstar
Fadeout := false;
@@ -242,15 +342,18 @@ begin
Text[TextScore[P]].Visible := V[P];
// We set alpha to 0 , so we can nicely blend them in when we need them
- Text[TextScore[P]].Alpha := 0;
- Text[TextNotesScore[P]].Alpha := 0;
- Text[TextNotes[P]].Alpha := 0;
- Text[TextLineBonus[P]].Alpha := 0;
- Text[TextLineBonusScore[P]].Alpha := 0;
- Text[TextGoldenNotes[P]].Alpha := 0;
- Text[TextGoldenNotesScore[P]].Alpha := 0;
- Text[TextTotal[P]].Alpha := 0;
- Text[TextTotalScore[P]].Alpha := 0;
+ Text[TextScore[P]].Alpha := 0;
+ Text[TextNotesScore[P]].Alpha := 0;
+ Text[TextNotes[P]].Alpha := 0;
+ Text[TextLineBonus[P]].Alpha := 0;
+ Text[TextLineBonusScore[P]].Alpha := 0;
+ Text[TextGoldenNotes[P]].Alpha := 0;
+ Text[TextGoldenNotesScore[P]].Alpha := 0;
+ Text[TextTotal[P]].Alpha := 0;
+ Text[TextTotalScore[P]].Alpha := 0;
+ Static[StaticBoxLightest[P]].Texture.Alpha := 0;
+ Static[StaticBoxLight[P]].Texture.Alpha := 0;
+ Static[StaticBoxDark[P]].Texture.Alpha := 0;
Text[TextNotes[P]].Visible := V[P];
@@ -272,7 +375,7 @@ begin
Static[StaticBoxLight[P]].Visible := V[P];
Static[StaticBoxDark[P]].Visible := V[P];
-//
+// we draw that on our own
Static[StaticBackLevel[P]].Visible := false;
Static[StaticBackLevelRound[P]].Visible := false;
Static[StaticLevel[P]].Visible := false;
@@ -284,11 +387,8 @@ procedure TScreenScore.onShowFinish;
var
index : integer;
begin
-for index := 0 to (PlayersPlay-1) do
+for index := 1 to (PlayersPlay) do
begin
- BarScore_ActualHeight[index] := 0;
- BarPhrase_ActualHeight[index] := 0;
- BarGolden_ActualHeight[index] := 0;
TextScore_ActualValue[index] := 0;
TextPhrase_ActualValue[index] := 0;
@@ -298,8 +398,6 @@ for index := 0 to (PlayersPlay-1) do
BarScore_EaseOut_Step := 1;
BarPhrase_EaseOut_Step := 1;
BarGolden_EaseOut_Step := 1;
-
- EaseOut_MaxSteps := 100;
end;
function TScreenScore.Draw: boolean;
@@ -314,11 +412,14 @@ var
Item: integer;
P: integer;
- C: integer;
+ C, I: integer;
+
+ CurTime: Cardinal;
+
+ PlayerCounter : integer;
- katze : integer;
- ArrayStartModifier : integer;
begin
+{
// 0.5.0: try also use 4 players screen with nicks
if PlayersPlay = 4 then begin
@@ -339,7 +440,7 @@ begin
FillPlayer(Item, P);
-{ if ScreenAct = 1 then begin
+ if ScreenAct = 1 then begin
LoadColor(
Static[StaticBoxLightest[Item]].Texture.ColR,
Static[StaticBoxLightest[Item]].Texture.ColG,
@@ -353,57 +454,39 @@ begin
Static[StaticBoxLightest[Item]].Texture.ColG,
Static[StaticBoxLightest[Item]].Texture.ColB,
'P4Dark');
- end;}
+ end;
end;
+
+
end;
+}
+inherited Draw;
- inherited Draw;
+ player[0].ScoreI := 7000;
+ player[0].ScoreLineI := 2000;
+ player[0].ScoreGoldenI := 1000;
+ player[0].ScoreTotalI := 10000;
- //player[1].ScoreI := 7000;
- //player[1].ScoreLineI := 2000;
- //player[1].ScoreGoldenI := 1000;
+ player[1].ScoreI := 2500;
+ player[1].ScoreLineI := 1100;
+ player[1].ScoreGoldenI := 900;
+ player[1].ScoreTotalI := 4500;
- //player[2].ScoreI := 2500;
- //player[2].ScoreLineI := 1100;
- //player[2].ScoreGoldenI := 900;
// Let's arise the bars
+
ActualTime := GetTickCount div 33;
if ((ActualTime <> OldTime) and ShowFinish )then
begin
OldTime := ActualTime;
-// okay i hate that as much as you might do too, but there's no way around that yet (imho)
-// all statics / texts are loaded at start - so that we have them all even if we change the amount of players
-// array overview:
-
-// 1 Player -> Player[0].Score (The score for one player starts at 0)
-// -> Statics[1] (The statics for the one player screen start at 0)
-// 2 Player -> Player[0..1].Score
-// -> Statics[2..3]
-// 3 Player -> Player[0..5].Score
-// -> Statics[4..6]
-
- case PlayersPlay of
- 1: begin
- ArrayStartModifier := 1;
- end;
- 2, 4: begin
- ArrayStartModifier := 2;
- end;
- 3, 6: begin
- ArrayStartModifier := 4;
- end;
- end;
-
- For katze:= 0 to (PlayersPlay-1) do
+ For PlayerCounter := 1 to PlayersPlay do
begin
// We actually araise them in the right order, but we have to draw them in reverse order (golden -> phrase -> mainscore)
- Case BarScore_EaseOut_Step < EaseOut_MaxSteps * 10 of
- true : BarScore_EaseOut_Step := BarScore_EaseOut_Step + 1;
- end;
+ if (BarScore_EaseOut_Step < EaseOut_MaxSteps * 10)
+ then BarScore_EaseOut_Step := BarScore_EaseOut_Step + 1;
// PhrasenBonus
if (BarScore_EaseOut_Step >= (EaseOut_MaxSteps * 10)) then
@@ -423,79 +506,250 @@ begin
// Draw golden score bar #
//########################
- BarGolden_ActualHeight[katze] := RaiseBar(katze + ArrayStartModifier,
- Static[StaticBackLevel[katze + ArrayStartModifier]].Texture.y - BarScore_ActualHeight[katze] - BarPhrase_ActualHeight[katze],
- BarGolden_ActualHeight[katze],
- player[katze].ScoreGoldenI,
- 'Lightest',
- BarGolden_EaseOut_Step);
-
- // Increment and show total score and plain score
- TextGolden_ActualValue[katze] := IncrementScore(katze,
- TextGolden_ActualValue[katze],
- Player[katze].ScoreGoldenI,
- BarGolden_EaseOut_Step);
- Text[TextGoldenNotesScore[katze + ArrayStartModifier]].Text := IntToStr(TextGolden_ActualValue[katze]);
-
- // Blend in
- Text[TextGoldenNotesScore[katze + ArrayStartModifier]].Alpha := (BarGolden_EaseOut_Step / 100);
- Text[TextGoldenNotes[katze + ArrayStartModifier]].Alpha := (BarGolden_EaseOut_Step / 100);
+ EaseBarIn(PlayerCounter, 'Golden'); // ease bar for golden notes in
+ EaseScoreIn(PlayerCounter,'Golden');
end;
//########################
// Draw phrase score bar #
//########################
- BarPhrase_ActualHeight[katze] := RaiseBar(katze + ArrayStartModifier,
- Static[StaticBackLevel[katze + ArrayStartModifier]].Texture.y - BarScore_ActualHeight[katze],
- BarPhrase_ActualHeight[katze],
- Player[katze].ScoreLineI,
- 'Light',
- BarPhrase_EaseOut_Step);
-
- // Increment and show total score and plain score
- TextPhrase_ActualValue[katze] := IncrementScore(katze,
- TextPhrase_ActualValue[katze],
- Player[katze].ScoreLineI,
- BarPhrase_EaseOut_Step);
- Text[TextLineBonusScore[katze + ArrayStartModifier]].Text := IntToStr(TextPhrase_ActualValue[katze]);
- //Blend in
- Text[TextLineBonusScore[katze + ArrayStartModifier]].Alpha := (BarPhrase_EaseOut_Step / 100);
- Text[TextLineBonus[katze + ArrayStartModifier]].Alpha := (BarPhrase_EaseOut_Step / 100);
+ EaseBarIn(PlayerCounter, 'Line'); // ease bar for line bonus / phrasenbonus notes in
+ EaseScoreIn(PlayerCounter,'Line');
end;
//#######################
// Draw plain score bar #
//#######################
- BarScore_ActualHeight[katze] := RaiseBar(katze + ArrayStartModifier,
- Static[StaticBackLevel[katze + ArrayStartModifier]].Texture.y,
- BarScore_ActualHeight[katze],
- Player[katze].ScoreI,
- 'Dark',
- BarScore_EaseOut_Step);
- // Increment and show total score and plain score
- TextScore_ActualValue[katze] := IncrementScore(katze,
- TextScore_ActualValue[katze],
- Player[katze].ScoreI,
- BarScore_EaseOut_Step);
- Text[TextNotesScore[katze + ArrayStartModifier]].Text := IntToStr(TextScore_ActualValue[katze]);
-
- Text[TextTotalScore[katze + ArrayStartModifier]].Text := IntToStr(TextScore_ActualValue[katze] + TextPhrase_ActualValue[katze] + TextGolden_ActualValue[katze]);
-
- //Blend em in
- Text[TextTotalScore[katze + ArrayStartModifier]].Alpha := (BarScore_EaseOut_Step / 100);
- Text[TextTotal[katze + ArrayStartModifier]].Alpha := (BarScore_EaseOut_Step / 100);
- Text[TextNotesScore[katze + ArrayStartModifier]].Alpha := (BarScore_EaseOut_Step / 100);
- Text[TextNotes[katze + ArrayStartModifier]].Alpha := (BarScore_EaseOut_Step / 100);
- Text[TextScore[katze + ArrayStartModifier]].Alpha := (BarScore_EaseOut_Step / 100);
-
- end; // me loop
+
+
+ EaseBarIn(PlayerCounter, 'Note'); // ease bar for all other notes in
+ EaseScoreIn(PlayerCounter,'Note');
+
+
+ FillPlayerItems(PlayerCounter,'Funky');
+
+ end;
+ end;
+//todo: i need a clever method to draw statics with their z value
+ for I := 0 to Length(Static) - 1 do
+ Static[I].Draw;
+ for I := 0 to Length(Text) - 1 do
+ Text[I].Draw;
+end;
+
+procedure TscreenScore.FillPlayerItems(PlayerNumber : Integer; ScoreType: String);
+var
+ ArrayStartModifier : integer;
+begin
+// okay i hate that as much as you might do too, but there's no way around that yet (imho)
+// all statics / texts are loaded at start - so that we have them all even if we change the amount of players
+// array overview:
+
+// 1 Player -> Player[0].Score (The score for one player starts at 0)
+// -> Statics[1] (The statics for the one player screen start at 0)
+// 2 Player -> Player[0..1].Score
+// -> Statics[2..3]
+// 3 Player -> Player[0..5].Score
+// -> Statics[4..6]
+
+ case PlayersPlay of
+ 1: begin
+ ArrayStartModifier := 0;
+ end;
+ 2, 4: begin
+ ArrayStartModifier := 1;
+ end;
+ 3, 6: begin
+ ArrayStartModifier := 3;
+ end;
+ end;
+
+// todo: take the name from player[PlayerNumber].Name instead of the ini when this is done (mog)
+ Text[TextName[PlayerNumber + ArrayStartModifier]].Text := Ini.Name[PlayerNumber - 1];
+// end todo
+
+
+//golden
+ Text[TextGoldenNotesScore[PlayerNumber + ArrayStartModifier]].Text := IntToStr(TextGolden_ActualValue[PlayerNumber]);
+ Text[TextGoldenNotesScore[PlayerNumber + ArrayStartModifier]].Alpha := (BarGolden_EaseOut_Step / 100);
+
+ Static[StaticBoxLightest[PlayerNumber + ArrayStartModifier]].Texture.Alpha := (BarGolden_EaseOut_Step / 100);
+ Text[TextGoldenNotes[PlayerNumber + ArrayStartModifier]].Alpha := (BarGolden_EaseOut_Step / 100);
+
+ // line bonus
+ Text[TextLineBonusScore[PlayerNumber + ArrayStartModifier]].Text := IntToStr(TextPhrase_ActualValue[PlayerNumber]);
+ Text[TextLineBonusScore[PlayerNumber + ArrayStartModifier]].Alpha := (BarPhrase_EaseOut_Step / 100);
+
+ Static[StaticBoxLight[PlayerNumber + ArrayStartModifier]].Texture.Alpha := (BarPhrase_EaseOut_Step / 100);
+ Text[TextLineBonus[PlayerNumber + ArrayStartModifier]].Alpha := (BarPhrase_EaseOut_Step / 100);
+
+// plain score
+ Text[TextNotesScore[PlayerNumber + ArrayStartModifier]].Text := IntToStr(TextScore_ActualValue[PlayerNumber]);
+ Text[TextNotes[PlayerNumber + ArrayStartModifier]].Alpha := (BarScore_EaseOut_Step / 100);
+
+ Static[StaticBoxDark[PlayerNumber + ArrayStartModifier]].Texture.Alpha := (BarScore_EaseOut_Step / 100);
+ Text[TextNotesScore[PlayerNumber + ArrayStartModifier]].Alpha := (BarScore_EaseOut_Step / 100);
+
+// total score
+ Text[TextTotalScore[PlayerNumber + ArrayStartModifier]].Text := IntToStr(TextScore_ActualValue[PlayerNumber] + TextPhrase_ActualValue[PlayerNumber] + TextGolden_ActualValue[PlayerNumber]);
+ Text[TextTotalScore[PlayerNumber + ArrayStartModifier]].Alpha := (BarScore_EaseOut_Step / 100);
+
+ Text[TextTotal[PlayerNumber + ArrayStartModifier]].Alpha := (BarScore_EaseOut_Step / 100);
+
+ Text[TextTotal[PlayerNumber + ArrayStartModifier]].Alpha := (BarScore_EaseOut_Step / 100);
+
+ if(BarGolden_EaseOut_Step > 100) then
+ begin
+ ShowRating(PlayerNumber);
end;
+ end;
+
+
+procedure TScreenScore.ShowRating(PlayerNumber: integer);
+var
+ ArrayStartModifier : integer;
+ Rating : integer;
+ fu : integer;
+
+ Posx : real;
+ Posy : real;
+ width : array[1..3] of real;
+begin
+ case PlayersPlay of
+ 1: begin
+ ArrayStartModifier := 0;
+ end;
+ 2, 4: begin
+ ArrayStartModifier := 1;
+ end;
+ 3, 6: begin
+ ArrayStartModifier := 3;
+ end;
+ end;
+
+ fu := PlayerNumber + ArrayStartModifier;
+
+//todo: this could break if the width is not given, for instance when there's a skin with no picture for ratings
+ Text[TextScore[PlayerNumber + ArrayStartModifier]].Alpha := aPlayerScoreScreenRatings[PlayerNumber].RateEaseValue / aPlayerScoreScreenRatings[PlayerNumber].RatePic_Width;
+// end todo
+ {{$IFDEF TRANSLATE}
+ case (Player[PlayerNumber-1].ScoreTotalI) of
+ 0..2000:
+ begin
+ Text[TextScore[fu]].Text := Language.Translate('SING_SCORE_TONE_DEAF');
+ Rating := 0;
+ end;
+ 2010..4000:
+ begin
+ Text[TextScore[fu]].Text := Language.Translate('SING_SCORE_AMATEUR');
+ Rating := 1;
+ end;
+ 4010..6000:
+ begin
+ Text[TextScore[fu]].Text := Language.Translate('SING_SCORE_RISING_STAR');
+ Rating := 2;
+ end;
+ 6010..8000:
+ begin
+ Text[TextScore[fu]].Text := Language.Translate('SING_SCORE_LEAD_SINGER');
+ Rating := 3;
+ end;
+ 8010..9000:
+ begin
+ Text[TextScore[fu]].Text := Language.Translate('SING_SCORE_HIT_ARTIST');
+ Rating := 4;
+ end;
+ 9010..9800:
+ begin
+ Text[TextScore[fu]].Text := Language.Translate('SING_SCORE_SUPERSTAR');
+ Rating := 5;
+ end;
+ 9810..10000:
+ begin
+ Text[TextScore[fu]].Text := Language.Translate('SING_SCORE_ULTRASTAR');
+ Rating := 6;
+ end;
+ end;
+ {{$ELSE}{
+ case (Player[P].ScoreTotalI-1) of
+ 0..2000: Text[TextScore[fu]].Text := 'Tone Deaf';
+ 2010..4000: Text[TextScore[fu]].Text := 'Amateur';
+ 4010..6000: Text[TextScore[fu]].Text := 'Rising Star';
+ 6010..8000: Text[TextScore[fu]].Text := 'Lead Singer';
+ 8010..9000: Text[TextScore[fu]].Text := 'Hit Artist';
+ 9010..9800: Text[TextScore[fu]].Text := 'Superstar';
+ 9810..10000: Text[TextScore[fu]].Text := 'Ultrastar';
+ end;
+ {$ENDIF}
+
+// Bounce the rating picture in
+ PosX := aPlayerScoreScreenRatings[PlayerNumber].RatePic_X + (aPlayerScoreScreenRatings[PlayerNumber].RatePic_Width / 2);
+ PosY := aPlayerScoreScreenRatings[PlayerNumber].RatePic_Y + (aPlayerScoreScreenRatings[PlayerNumber].RatePic_Height / 2); ;
+
+ elastique(PlayerNumber);
+
+ width[PlayerNumber] := aPlayerScoreScreenRatings[PlayerNumber].RateEaseValue/2;
+
+ glBindTexture(GL_TEXTURE_2D, Tex_Score_Ratings[Rating].TexNum);
+
+ glEnable(GL_TEXTURE_2D);
+ glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
+ glEnable(GL_BLEND);
+
+ glBegin(GL_QUADS);
+ glTexCoord2f(0, 0); glVertex2f(PosX - width[PlayerNumber], PosY - width[PlayerNumber]);
+ glTexCoord2f(Tex_Score_Ratings[Rating].TexW, 0); glVertex2f(PosX + width[PlayerNumber], PosY - width[PlayerNumber]);
+ glTexCoord2f(Tex_Score_Ratings[Rating].TexW, Tex_Score_Ratings[Rating].TexH); glVertex2f(PosX + width[PlayerNumber], PosY + width[PlayerNumber]);
+ glTexCoord2f(0, Tex_Score_Ratings[Rating].TexH); glVertex2f(PosX - width[PlayerNumber], PosY + width[PlayerNumber]);
+ glEnd;
+
+ glDisable(GL_BLEND);
+ glDisable(GL_TEXTURE_2d);
end;
-function TscreenScore.RaiseBar(PlayerNumber: integer; BarStartPosY: Single; ActualHeight: real; Score: integer; ColorBrightness : String; EaseOut_Step: Real) : real;
+function TscreenScore.elastique(PlayerNumber : Integer): real;
+var
+ ReturnValue : real;
+ p, s : real;
+
+ RaiseStep, Actual_Value, MaxVal : real;
+ EaseOut_Step : integer;
+begin
+
+ EaseOut_Step := aPlayerScoreScreenRatings[PlayerNumber].RateEaseStep;
+ Actual_Value := aPlayerScoreScreenRatings[PlayerNumber].RateEaseValue;
+ MaxVal := aPlayerScoreScreenRatings[PlayerNumber].RatePic_Width;
+
+ RaiseStep := EaseOut_Step;
+
+ if (RaiseStep = 0)
+ then ReturnValue := MaxVal;
+
+ RaiseStep := RaiseStep / MaxVal;
+
+ if (RaiseStep = 1)
+ then
+ begin
+ ReturnValue := MaxVal;
+ end
+ else
+ begin
+ p := MaxVal * 0.4;
+
+ s := p/(2*PI) * arcsin (1);
+ ReturnValue := MaxVal * power(2,-5 * RaiseStep) * sin( (RaiseStep * MaxVal - s) * (2 * PI) / p) + MaxVal;
+
+ inc(aPlayerScoreScreenRatings[PlayerNumber].RateEaseStep);
+ aPlayerScoreScreenRatings[PlayerNumber].RateEaseValue := ReturnValue;
+ end;
+ Result := ReturnValue;
+end;
+
+
+function TscreenScore.EaseBarIn(PlayerNumber : Integer; BarType: String) : real;
const
RaiseSmoothness : integer = 100;
var
@@ -508,25 +762,52 @@ var
RaiseStep : real;
BarStartPosX : Single;
+ BarStartPosY : Single;
- R,G,B : real;
lTmp : real;
+ Score : integer;
+
+ //textures
+ TextureBar : integer;
+ TextureRound : integer;
begin
- MaxHeight := Static[StaticBackLevel[PlayerNumber]].Texture.H;
- Width := Static[StaticBackLevel[PlayerNumber]].Texture.W;
+ MaxHeight := aPlayerScoreScreenDatas[PlayerNumber].Bar_Height;
+ Width := aPlayerScoreScreenDatas[PlayerNumber].Bar_Width;
- BarStartPosX := Static[StaticBackLevel[PlayerNumber]].Texture.X;
+ BarStartPosX := aPlayerScoreScreenDatas[PlayerNumber].Bar_X;
- BarStartPosY := BarStartPosY + MaxHeight; // The texture starts in the upper left corner, so let's subtract the height - so we can arise it
+ // The texture starts in the upper left corner, so let's subtract the height - so we can arise it
+
+ // let's get the points according to the bar we draw
+ // score array starts at 0, which means the score for player 1 is in score[0]
+ // EaseOut_Step is the actual step in the raising process, like the 20iest step of EaseOut_MaxSteps
+ if (BarType = 'Note')
+ then
+ begin
+ Score := Player[PlayerNumber - 1].ScoreI;
+ RaiseStep := BarScore_EaseOut_Step;
+ BarStartPosY := aPlayerScoreScreenDatas[PlayerNumber].Bar_Y + MaxHeight;
+ end;
+ if (BarType = 'Line')
+ then
+ begin
+ Score := Player[PlayerNumber - 1].ScoreLineI;
+ RaiseStep := BarPhrase_EaseOut_Step;
+ BarStartPosY := aPlayerScoreScreenDatas[PlayerNumber].Bar_Y - aPlayerScoreScreenDatas[PlayerNumber].BarScore_ActualHeight + MaxHeight;
+ end;
+ if (BarType = 'Golden')
+ then
+ begin
+ Score := Player[PlayerNumber - 1].ScoreGoldenI;
+ RaiseStep := BarGolden_EaseOut_Step;
+ BarStartPosY := aPlayerScoreScreenDatas[PlayerNumber].Bar_Y - aPlayerScoreScreenDatas[PlayerNumber].BarScore_ActualHeight - aPlayerScoreScreenDatas[PlayerNumber].BarLine_ActualHeight + MaxHeight;
+ end;
// the height dependend of the score
Height2Reach := (Score / 10000) * MaxHeight;
- // EaseOut_Step is the actual step in the raising process, like the 20iest step of EaseOut_MaxSteps
- RaiseStep := EaseOut_Step;
-
- if (ActualHeight < Height2Reach) then
+ if (aPlayerScoreScreenDatas[PlayerNumber].Bar_Actual_Height < Height2Reach) then
begin
// Check http://proto.layer51.com/d.aspx?f=400 for more info on easing functions
// Calculate the actual step according to the maxsteps
@@ -535,58 +816,117 @@ begin
// quadratic easing out - decelerating to zero velocity
// -end_position * current_time * ( current_time - 2 ) + start_postion
lTmp := (-Height2Reach * RaiseStep * (RaiseStep - 20) + BarStartPosY);
- if ( RaiseSmoothness > 0 ) AND
- ( lTmp > 0 ) then
- begin
- NewHeight := lTmp / RaiseSmoothness;
- end;
+
+ if ( RaiseSmoothness > 0 ) AND ( lTmp > 0 )
+ then
+ begin
+ NewHeight := lTmp / RaiseSmoothness;
+ end;
end
else
begin
NewHeight := Height2Reach;
end;
- //+1
- LoadColor(R, G, B, 'P' + inttostr(PlayerNumber) + ColorBrightness); //dark, light, lightest
- glColor4f(R, G, B, 1);
- //the actual bar
- glBindTexture(GL_TEXTURE_2D, Static[StaticLevel[PlayerNumber]].Texture.TexNum);
+ glColor4f(1, 1, 1, 1);
+
+// set the texture for the bar
+ if (BarType = 'Note')
+ then
+ begin
+ glBindTexture(GL_TEXTURE_2D, aPlayerScoreScreenTextures[PlayerNumber].Score_NoteBarLevel_Dark.TexNum);
+ end;
+ if (BarType = 'Line')
+ then
+ begin
+ glBindTexture(GL_TEXTURE_2D, aPlayerScoreScreenTextures[PlayerNumber].Score_NoteBarLevel_Light.TexNum);
+ end;
+ if (BarType = 'Golden')
+ then
+ begin
+ glBindTexture(GL_TEXTURE_2D, aPlayerScoreScreenTextures[PlayerNumber].Score_NoteBarLevel_Lightest.TexNum);
+ end;
+ //draw it
glEnable(GL_TEXTURE_2D);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
glEnable(GL_BLEND);
glBegin(GL_QUADS);
- glTexCoord2f(0, 0); glVertex2f(BarStartPosX, BarStartPosY - NewHeight);
- glTexCoord2f(1, 0); glVertex2f(BarStartPosX + Width, BarStartPosY - NewHeight);
- glTexCoord2f(1, 1); glVertex2f(BarStartPosX + Width, BarStartPosY);
- glTexCoord2f(0, 1); glVertex2f(BarStartPosX, BarStartPosY);
+ glTexCoord2f(0, 0); glVertex3f(BarStartPosX, BarStartPosY - NewHeight, ZBars);
+ glTexCoord2f(1, 0); glVertex3f(BarStartPosX + Width, BarStartPosY - NewHeight, ZBars);
+ glTexCoord2f(1, 1); glVertex3f(BarStartPosX + Width, BarStartPosY, ZBars);
+ glTexCoord2f(0, 1); glVertex3f(BarStartPosX, BarStartPosY, ZBars);
glEnd;
- //the round thing on top
- glBindTexture(GL_TEXTURE_2D, Static[StaticLevelRound[PlayerNumber]].Texture.TexNum);
+ glDisable(GL_BLEND);
+ glDisable(GL_TEXTURE_2d);
+
+ //the round thing on top
+ if (BarType = 'Note') then
+ glBindTexture(GL_TEXTURE_2D, aPlayerScoreScreenTextures[PlayerNumber].Score_NoteBarRound_Dark.TexNum);
+ if (BarType = 'Line') then
+ glBindTexture(GL_TEXTURE_2D, aPlayerScoreScreenTextures[PlayerNumber].Score_NoteBarRound_Light.TexNum);
+ if (BarType = 'Golden') then
+ glBindTexture(GL_TEXTURE_2D, aPlayerScoreScreenTextures[PlayerNumber].Score_NoteBarRound_Lightest.TexNum);
glEnable(GL_TEXTURE_2D);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
glEnable(GL_BLEND);
glBegin(GL_QUADS);
- glTexCoord2f(0, 0); glVertex2f(BarStartPosX, (BarStartPosY - Static[StaticLevelRound[PlayerNumber]].Texture.h) - NewHeight);
- glTexCoord2f(1, 0); glVertex2f(BarStartPosX + Width, (BarStartPosY - Static[StaticLevelRound[PlayerNumber]].Texture.h) - NewHeight);
- glTexCoord2f(1, 1); glVertex2f(BarStartPosX + Width, BarStartPosY - NewHeight);
- glTexCoord2f(0, 1); glVertex2f(BarStartPosX, BarStartPosY - NewHeight);
+ glTexCoord2f(0, 0); glVertex3f(BarStartPosX, (BarStartPosY - Static[StaticLevelRound[PlayerNumber]].Texture.h) - NewHeight, ZBars);
+ glTexCoord2f(1, 0); glVertex3f(BarStartPosX + Width, (BarStartPosY - Static[StaticLevelRound[PlayerNumber]].Texture.h) - NewHeight, ZBars);
+ glTexCoord2f(1, 1); glVertex3f(BarStartPosX + Width, BarStartPosY - NewHeight, ZBars);
+ glTexCoord2f(0, 1); glVertex3f(BarStartPosX, BarStartPosY - NewHeight, ZBars);
glEnd;
- Result := NewHeight;
+ glDisable(GL_BLEND);
+ glDisable(GL_TEXTURE_2d);
+
+ if (BarType = 'Note')
+ then
+ aPlayerScoreScreenDatas[PlayerNumber].BarScore_ActualHeight := NewHeight;
+ if (BarType = 'Line')
+ then
+ aPlayerScoreScreenDatas[PlayerNumber].BarLine_ActualHeight := NewHeight;
+ if (BarType = 'Golden')
+ then
+ aPlayerScoreScreenDatas[PlayerNumber].BarGolden_ActualHeight := NewHeight;
end;
-function TScreenScore.IncrementScore(PlayerNumber: integer; ActualScoreValue: Integer; ScoreReached: integer; EaseOut_Step: Real) : integer;
+
+function TScreenScore.EaseScoreIn(PlayerNumber: integer; ScoreType : String) : real;
const
RaiseSmoothness : integer = 100;
var
RaiseStep : Real;
lTmpA : Real;
+ ScoreReached :Integer;
+ EaseOut_Step :Real;
+ ActualScoreValue:integer;
begin
+
+
+ if (ScoreType = 'Note') then
+ begin
+ EaseOut_Step := BarScore_EaseOut_Step;
+ ActualScoreValue := TextScore_ActualValue[PlayerNumber];
+ ScoreReached := Player[PlayerNumber-1].ScoreI;
+ end;
+ if (ScoreType = 'Line') then
+ begin
+ EaseOut_Step := BarPhrase_EaseOut_Step;
+ ActualScoreValue := TextPhrase_ActualValue[PlayerNumber];
+ ScoreReached := Player[PlayerNumber-1].ScoreLineI;
+ end;
+ if (ScoreType = 'Golden') then
+ begin
+ EaseOut_Step := BarGolden_EaseOut_Step;
+ ActualScoreValue := TextGolden_ActualValue[PlayerNumber];
+ ScoreReached := Player[PlayerNumber-1].ScoreGoldenI;
+ end;
+
// EaseOut_Step is the actual step in the raising process, like the 20iest step of EaseOut_MaxSteps
RaiseStep := EaseOut_Step;
@@ -601,12 +941,38 @@ begin
if ( lTmpA > 0 ) AND
( RaiseSmoothness > 0 ) THEN
begin
- Result := floor( lTmpA / RaiseSmoothness);
+
+ if (ScoreType = 'Note') then
+ begin
+ TextScore_ActualValue[PlayerNumber] := floor( lTmpA / RaiseSmoothness);
+ end;
+ if (ScoreType = 'Line') then
+ begin
+ TextPhrase_ActualValue[PlayerNumber] := floor( lTmpA / RaiseSmoothness);
+ end;
+ if (ScoreType = 'Golden') then
+ begin
+ TextGolden_ActualValue[PlayerNumber] := floor( lTmpA / RaiseSmoothness);
+ end;
+
end;
end
else
begin
- Result := ScoreReached;
+
+ if (ScoreType = 'Note') then
+ begin
+ TextScore_ActualValue[PlayerNumber] := ScoreReached;
+ end;
+ if (ScoreType = 'Line') then
+ begin
+ TextPhrase_ActualValue[PlayerNumber] := ScoreReached;
+ end;
+ if (ScoreType = 'Golden') then
+ begin
+ TextGolden_ActualValue[PlayerNumber] := ScoreReached;
+ end;
+
end;
end;
@@ -644,7 +1010,7 @@ begin
Text[TextName[Item]].ColG,
Text[TextName[Item]].ColB,
'P' + IntToStr(P+1) + 'Dark');
-
+ {
LoadColor(
Static[StaticBoxLightest[Item]].Texture.ColR,
Static[StaticBoxLightest[Item]].Texture.ColG,
@@ -662,6 +1028,7 @@ begin
Static[StaticBoxDark[Item]].Texture.ColG,
Static[StaticBoxDark[Item]].Texture.ColB,
'P' + IntToStr(P+1) + 'Dark');
+ }
end;
end.
diff --git a/Skins/Deluxe/Blue.ini b/Skins/Deluxe/Blue.ini
index 28ead1a1..18155298 100644
--- a/Skins/Deluxe/Blue.ini
+++ b/Skins/Deluxe/Blue.ini
@@ -78,12 +78,42 @@ Ball = [sing]LyricsBall.bmp
# # # S C O R E / T O P 5 # # #
ScoreBox = [score]box.png
-ScoreLevel = [score]level.png
-ScoreLevelRound = [score]levelRound.png
+ScoreGlassBox = [score]glass_box.png
+ScoreLevel = [score]level.png
+ScoreLevelRound = [score]levelround.png
+
+ScoreLevel_Dark = [score]level_dark.png
+ScoreLevel_Dark_Round = [score]level_dark_round.png
+
+ScoreLevel_Light = [score]level_light.png
+ScoreLevel_Light_Round = [score]level_light_round.png
+
+ScoreLevel_Lightest = [score]level_lightest.png
+ScoreLevel_Lightest_Round = [score]level_lightest_round.png
+
+# Boxes near the text, that show what color is for which bar
+ScoreBar_box_lightest = [score]bar_box_lightest.png
+ScoreBar_box_light = [score]bar_box_light.png
+ScoreBar_box_dark = [score]bar_box_dark.png
+
ScoreEndCap = [score]endcap.png
ScoreLine = [score]line.png
PlayerNumberBox = [main]playerNumberBox.jpg
+PlayerIDBox01 = [sing.player1]lyric_active.png
+PlayerIDBox02 = [sing.player2]lyric_active.png
+PlayerIDBox03 = [sing.player3]lyric_active.png
+PlayerIDBox04 = [sing.player4]lyric_active.png
+PlayerIDBox05 = [sing.player5]lyric_active.png
+PlayerIDBox06 = [sing.player6]lyric_active.png
+
+Rating_0 = [score]rating_0.png
+Rating_1 = [score]rating_1.png
+Rating_2 = [score]rating_2.png
+Rating_3 = [score]rating_3.png
+Rating_4 = [score]rating_4.png
+Rating_5 = [score]rating_5.png
+Rating_6 = [score]rating_6.png
# # # P A R T Y # # #
Joker =[party]Joker.png
@@ -149,8 +179,8 @@ NoteBGRight = [sing]notesBgRight.png
# # # E F F E C T S # # #
-NoteStar = [effect]goldenNoteStar.png
-NotePerfectStar = [effect]perfectNoteStar.png
+NoteStar = [effect]goldenNoteStar.jpg
+NotePerfectStar = [effect]perfectNoteStar.jpg
# # # dirty helpers # # #
diff --git a/Skins/Deluxe/Fall.ini b/Skins/Deluxe/Fall.ini
index f9ea2bce..db1d2191 100644
--- a/Skins/Deluxe/Fall.ini
+++ b/Skins/Deluxe/Fall.ini
@@ -74,15 +74,45 @@ P = [sing]p.png
#Pointer for lyrics
Ball = [sing]LyricsBall.bmp
-
# # # S C O R E / T O P 5 # # #
ScoreBox = [score]box.png
+ScoreGlassBox = [score]glass_box.png
ScoreLevel = [score]level.png
ScoreLevelRound = [score]levelRound.png
+
+ScoreLevel_Dark = [score]level_dark.png
+ScoreLevel_Dark_Round = [score]level_dark_round.png
+
+ScoreLevel_Light = [score]level_light.png
+ScoreLevel_Light_Round = [score]level_light_round.png
+
+ScoreLevel_Lightest = [score]level_lightest.png
+ScoreLevel_Lightest_Round = [score]level_lightest_round.png
+
+# Boxes near the text, that show what color is for which bar
+ScoreBar_box_lightest = [score]bar_box_lightest.png
+ScoreBar_box_light = [score]bar_box_light.png
+ScoreBar_box_dark = [score]bar_box_dark.png
+
ScoreEndCap = [score]endcap.png
ScoreLine = [score]line.png
PlayerNumberBox = [main]playerNumberBox.jpg
+PlayerIDBox01 = [sing.player1]lyric_active.png
+PlayerIDBox02 = [sing.player2]lyric_active.png
+PlayerIDBox03 = [sing.player3]lyric_active.png
+PlayerIDBox04 = [sing.player4]lyric_active.png
+PlayerIDBox05 = [sing.player5]lyric_active.png
+PlayerIDBox06 = [sing.player6]lyric_active.png
+
+Rating_0 = [score]rating_0.png
+Rating_1 = [score]rating_1.png
+Rating_2 = [score]rating_2.png
+Rating_3 = [score]rating_3.png
+Rating_4 = [score]rating_4.png
+Rating_5 = [score]rating_5.png
+Rating_6 = [score]rating_6.png
+
# # # P A R T Y # # #
Joker =[party]Joker.png
@@ -148,8 +178,8 @@ NoteBGRight = [sing]notesBgRight.png
# # # E F F E C T S # # #
-NoteStar = [effect]goldenNoteStar.png
-NotePerfectStar = [effect]perfectNoteStar.png
+NoteStar = [effect]goldenNoteStar.jpg
+NotePerfectStar = [effect]perfectNoteStar.jpg
# # # dirty helpers # # #
diff --git a/Skins/Deluxe/Summer.ini b/Skins/Deluxe/Summer.ini
index 71cecce9..2c03f10a 100644
--- a/Skins/Deluxe/Summer.ini
+++ b/Skins/Deluxe/Summer.ini
@@ -74,15 +74,45 @@ P = [sing]p.png
#Pointer for lyrics
Ball = [sing]LyricsBall.bmp
-
# # # S C O R E / T O P 5 # # #
ScoreBox = [score]box.png
+ScoreGlassBox = [score]glass_box.png
ScoreLevel = [score]level.png
ScoreLevelRound = [score]levelRound.png
+
+ScoreLevel_Dark = [score]level_dark.png
+ScoreLevel_Dark_Round = [score]level_dark_round.png
+
+ScoreLevel_Light = [score]level_light.png
+ScoreLevel_Light_Round = [score]level_light_round.png
+
+ScoreLevel_Lightest = [score]level_lightest.png
+ScoreLevel_Lightest_Round = [score]level_lightest_round.png
+
+# Boxes near the text, that show what color is for which bar
+ScoreBar_box_lightest = [score]bar_box_lightest.png
+ScoreBar_box_light = [score]bar_box_light.png
+ScoreBar_box_dark = [score]bar_box_dark.png
+
ScoreEndCap = [score]endcap.png
ScoreLine = [score]line.png
PlayerNumberBox = [main]playerNumberBox.jpg
+PlayerIDBox01 = [sing.player1]lyric_active.png
+PlayerIDBox02 = [sing.player2]lyric_active.png
+PlayerIDBox03 = [sing.player3]lyric_active.png
+PlayerIDBox04 = [sing.player4]lyric_active.png
+PlayerIDBox05 = [sing.player5]lyric_active.png
+PlayerIDBox06 = [sing.player6]lyric_active.png
+
+Rating_0 = [score]rating_0.png
+Rating_1 = [score]rating_1.png
+Rating_2 = [score]rating_2.png
+Rating_3 = [score]rating_3.png
+Rating_4 = [score]rating_4.png
+Rating_5 = [score]rating_5.png
+Rating_6 = [score]rating_6.png
+
# # # P A R T Y # # #
Joker =[party]Joker.png
@@ -148,8 +178,8 @@ NoteBGRight = [sing]notesBgRight.png
# # # E F F E C T S # # #
-NoteStar = [effect]goldenNoteStar.png
-NotePerfectStar = [effect]perfectNoteStar.png
+NoteStar = [effect]goldenNoteStar.jpg
+NotePerfectStar = [effect]perfectNoteStar.jpg
# # # dirty helpers # # #
diff --git a/Skins/Deluxe/Winter.ini b/Skins/Deluxe/Winter.ini
index 2f26cd42..ed4175ec 100644
--- a/Skins/Deluxe/Winter.ini
+++ b/Skins/Deluxe/Winter.ini
@@ -77,12 +77,42 @@ Ball = [sing]LyricsBall.bmp
# # # S C O R E / T O P 5 # # #
ScoreBox = [score]box.png
+ScoreGlassBox = [score]glass_box.png
ScoreLevel = [score]level.png
ScoreLevelRound = [score]levelRound.png
+
+ScoreLevel_Dark = [score]level_dark.png
+ScoreLevel_Dark_Round = [score]level_dark_round.png
+
+ScoreLevel_Light = [score]level_light.png
+ScoreLevel_Light_Round = [score]level_light_round.png
+
+ScoreLevel_Lightest = [score]level_lightest.png
+ScoreLevel_Lightest_Round = [score]level_lightest_round.png
+
+# Boxes near the text, that show what color is for which bar
+ScoreBar_box_lightest = [score]bar_box_lightest.png
+ScoreBar_box_light = [score]bar_box_light.png
+ScoreBar_box_dark = [score]bar_box_dark.png
+
ScoreEndCap = [score]endcap.png
ScoreLine = [score]line.png
PlayerNumberBox = [main]playerNumberBox.jpg
+PlayerIDBox01 = [sing.player1]lyric_active.png
+PlayerIDBox02 = [sing.player2]lyric_active.png
+PlayerIDBox03 = [sing.player3]lyric_active.png
+PlayerIDBox04 = [sing.player4]lyric_active.png
+PlayerIDBox05 = [sing.player5]lyric_active.png
+PlayerIDBox06 = [sing.player6]lyric_active.png
+
+Rating_0 = [score]rating_0.png
+Rating_1 = [score]rating_1.png
+Rating_2 = [score]rating_2.png
+Rating_3 = [score]rating_3.png
+Rating_4 = [score]rating_4.png
+Rating_5 = [score]rating_5.png
+Rating_6 = [score]rating_6.png
# # # P A R T Y # # #
Joker =[party]Joker.png
@@ -148,8 +178,8 @@ NoteBGRight = [sing]notesBgRight.png
# # # E F F E C T S # # #
-NoteStar = [effect]goldenNoteStar.png
-NotePerfectStar = [effect]perfectNoteStar.png
+NoteStar = [effect]goldenNoteStar.jpg
+NotePerfectStar = [effect]perfectNoteStar.jpg
# # # dirty helpers # # #
diff --git a/Skins/Deluxe/[score]Line.png b/Skins/Deluxe/[score]Line.png
index 17ba6188..954caf94 100644
--- a/Skins/Deluxe/[score]Line.png
+++ b/Skins/Deluxe/[score]Line.png
Binary files differ
diff --git a/Skins/Deluxe/[score]bar_box_dark.png b/Skins/Deluxe/[score]bar_box_dark.png
new file mode 100644
index 00000000..e4fbfa41
--- /dev/null
+++ b/Skins/Deluxe/[score]bar_box_dark.png
Binary files differ
diff --git a/Skins/Deluxe/[score]bar_box_light.png b/Skins/Deluxe/[score]bar_box_light.png
new file mode 100644
index 00000000..ddc17ed8
--- /dev/null
+++ b/Skins/Deluxe/[score]bar_box_light.png
Binary files differ
diff --git a/Skins/Deluxe/[score]bar_box_lightest.png b/Skins/Deluxe/[score]bar_box_lightest.png
new file mode 100644
index 00000000..995bb9ef
--- /dev/null
+++ b/Skins/Deluxe/[score]bar_box_lightest.png
Binary files differ
diff --git a/Skins/Deluxe/[score]endcap.png b/Skins/Deluxe/[score]endcap.png
index ed14185b..3cccd2e1 100644
--- a/Skins/Deluxe/[score]endcap.png
+++ b/Skins/Deluxe/[score]endcap.png
Binary files differ
diff --git a/Skins/Deluxe/[score]glass_box.png b/Skins/Deluxe/[score]glass_box.png
new file mode 100644
index 00000000..c0cf2a9c
--- /dev/null
+++ b/Skins/Deluxe/[score]glass_box.png
Binary files differ
diff --git a/Skins/Deluxe/[score]level.png b/Skins/Deluxe/[score]level.png
index 7b8cfb84..1f627560 100644
--- a/Skins/Deluxe/[score]level.png
+++ b/Skins/Deluxe/[score]level.png
Binary files differ
diff --git a/Skins/Deluxe/[score]levelRound.png b/Skins/Deluxe/[score]levelRound.png
index 10e662bc..2bc7a6b8 100644
--- a/Skins/Deluxe/[score]levelRound.png
+++ b/Skins/Deluxe/[score]levelRound.png
Binary files differ
diff --git a/Skins/Deluxe/[score]level_dark.png b/Skins/Deluxe/[score]level_dark.png
new file mode 100644
index 00000000..da4fd407
--- /dev/null
+++ b/Skins/Deluxe/[score]level_dark.png
Binary files differ
diff --git a/Skins/Deluxe/[score]level_dark_round.png b/Skins/Deluxe/[score]level_dark_round.png
new file mode 100644
index 00000000..de239cb2
--- /dev/null
+++ b/Skins/Deluxe/[score]level_dark_round.png
Binary files differ
diff --git a/Skins/Deluxe/[score]level_light.png b/Skins/Deluxe/[score]level_light.png
new file mode 100644
index 00000000..1c1c8a4d
--- /dev/null
+++ b/Skins/Deluxe/[score]level_light.png
Binary files differ
diff --git a/Skins/Deluxe/[score]level_light_round.png b/Skins/Deluxe/[score]level_light_round.png
new file mode 100644
index 00000000..641151a5
--- /dev/null
+++ b/Skins/Deluxe/[score]level_light_round.png
Binary files differ
diff --git a/Skins/Deluxe/[score]level_lightest.png b/Skins/Deluxe/[score]level_lightest.png
new file mode 100644
index 00000000..f02fdf7b
--- /dev/null
+++ b/Skins/Deluxe/[score]level_lightest.png
Binary files differ
diff --git a/Skins/Deluxe/[score]level_lightest_round.png b/Skins/Deluxe/[score]level_lightest_round.png
new file mode 100644
index 00000000..9f1bb09e
--- /dev/null
+++ b/Skins/Deluxe/[score]level_lightest_round.png
Binary files differ
diff --git a/Skins/Deluxe/[score]rating_0.png b/Skins/Deluxe/[score]rating_0.png
new file mode 100644
index 00000000..feb7e472
--- /dev/null
+++ b/Skins/Deluxe/[score]rating_0.png
Binary files differ
diff --git a/Skins/Deluxe/[score]rating_1.png b/Skins/Deluxe/[score]rating_1.png
new file mode 100644
index 00000000..4a143d83
--- /dev/null
+++ b/Skins/Deluxe/[score]rating_1.png
Binary files differ
diff --git a/Skins/Deluxe/[score]rating_2.png b/Skins/Deluxe/[score]rating_2.png
new file mode 100644
index 00000000..67258e22
--- /dev/null
+++ b/Skins/Deluxe/[score]rating_2.png
Binary files differ
diff --git a/Skins/Deluxe/[score]rating_3.png b/Skins/Deluxe/[score]rating_3.png
new file mode 100644
index 00000000..fe0b1662
--- /dev/null
+++ b/Skins/Deluxe/[score]rating_3.png
Binary files differ
diff --git a/Skins/Deluxe/[score]rating_4.png b/Skins/Deluxe/[score]rating_4.png
new file mode 100644
index 00000000..5695f8fd
--- /dev/null
+++ b/Skins/Deluxe/[score]rating_4.png
Binary files differ
diff --git a/Skins/Deluxe/[score]rating_5.png b/Skins/Deluxe/[score]rating_5.png
new file mode 100644
index 00000000..38ed92c3
--- /dev/null
+++ b/Skins/Deluxe/[score]rating_5.png
Binary files differ
diff --git a/Skins/Deluxe/[score]rating_6.png b/Skins/Deluxe/[score]rating_6.png
new file mode 100644
index 00000000..f8706de3
--- /dev/null
+++ b/Skins/Deluxe/[score]rating_6.png
Binary files differ
diff --git a/Themes/Deluxe.ini b/Themes/Deluxe.ini
index fb512409..78dc101f 100644
--- a/Themes/Deluxe.ini
+++ b/Themes/Deluxe.ini
@@ -1268,6 +1268,12 @@ Text =P1
Color =White
Align=0
+[ScoreStaticRatingPicture1]
+X =235
+Y =260
+H=140
+W=140
+
[ScoreTextScore1]
X =150
Y =430
@@ -1355,7 +1361,7 @@ Tex =ScoreLine
X =148
Y =368
W =295
-H =2
+H =1
Color =White
Type =Colorized
@@ -1364,10 +1370,38 @@ Tex =ScoreLine
X =148
Y =398
W =295
-H =2
+H =1
Color =White
Type =Colorized
+#small boxes
+[ScoreStaticBoxLightest1]
+Tex =ScoreBox
+X =200
+Y =220
+W =30
+H =30
+Color =P1Lightest
+Type= colorized
+
+[ScoreStaticBoxLight1]
+Tex =ScoreBox
+X =200
+Y =260
+W =30
+H =30
+Color =P1Light
+Type=colorized
+
+[ScoreStaticBoxDark1]
+Tex =ScoreBox
+X =200
+Y =300
+W =30
+H =30
+Color =P1Dark
+Type=colorized
+
[ScoreStaticBoxDark1]
Tex =PlayerNumberBox
X =150
@@ -1433,7 +1467,7 @@ H =8
Color =P1Light
Type =Colorized
-[ScorePlayer1Static6]
+[ScorePlayer1Static3]
Tex =ScoreEndCap
X =469
Y =460
@@ -1441,10 +1475,6 @@ W =95
H =30
Color =P1Dark
Type =Colorized
-TexX1=0
-TexY1=0
-TexX2=1
-TexY2=1
Reflection=1
ReflectionSpacing=4
@@ -1456,81 +1486,109 @@ W =114
H =2
Color =White
Type =Colorized
-TexX1=0
-TexY1=0.1
-TexX2=1
-TexY2=0.9
-Z=1
-
# # # # # # # # # # # # # # # # # # Two Player Score # # # # # # # # # # # #
# P L A Y E R O N E
[ScoreTextName2]
-X =20
-Y =260
+X =42
+Y =290
Font =0
-Size =14
+Size =10
Text =P1
Color =White
Align=0
+[ScoreStaticRatingPicture2]
+X =180
+Y =165
+H=75
+W=75
+
[ScoreTextScore2]
-X =20
-Y =430
+X=217
+Y=235
+Width=100
Color=White
-Font =1
+Font =0
Size =9
Text =Tone Deaf
-Align=0
+Align=1
+
+[ScoreStaticBoxDark2]
+Tex=ScoreBar_box_dark
+X=45
+Y=327
+W=22
+H=20
+Color=P1Dark
+Type=Colorized
[ScoreTextNotes2]
-X =20
-Y =340
+X =72
+Y =322
Color=White
Font =0
-Size =9
+Size =10
Text=SING_NOTES
Align=0
[ScoreTextNotesScore2]
-X =300
-Y =340
+X =282
+Y =322
Color=White
Font =0
Size =10
Align =2
Text =0000
+[ScoreStaticBoxLight2]
+Tex =ScoreBar_box_light
+X =45
+Y =358
+W =22
+H =20
+Color=P1Lightest
+Type=Colorized
+
[ScoreTextLineBonus2]
-X =20
-Y =370
+X =72
+Y =352
Color=White
Font =0
-Size =9
+Size =10
Text =SING_PHRASE_BONUS
Align=0
[ScoreTextLineBonusScore2]
-X =300
-Y =370
+X =282
+Y =352
Color=White
Font =0
Size =10
Align =2
Text =0000
+[ScoreStaticBoxLightest2]
+Tex =ScoreBar_box_lightest
+X =45
+Y =390
+W =22
+H =20
+Color =P1Lightest
+Type=Colorized
+
[ScoreTextGoldenNotes2]
-X =20
-Y =400
+X =72
+Y =383
Color=White
Font =0
-Size =9
+Size =10
Text =SING_GOLDEN_NOTES
Align=0
[ScoreTextGoldenNotesScore2]
-X =300
-Y =400
+X =282
+Y =383
Color=White
Font =0
Size =10
@@ -1538,17 +1596,17 @@ Align =2
Text =0000
[ScoreTextTotal2]
-X =50
-Y =460
+X =82
+Y =456
Color=White
Font =0
-Size =14
+Size =10
Text =SING_TOTAL
Align=0
[ScoreTextTotalSCore2]
-X =300
-Y =460
+X =283
+Y =448
Color=White
Font =0
Size =14
@@ -1558,188 +1616,193 @@ Text =00000
# Lines
[ScorePlayer2Static1]
Tex =ScoreLine
-X =20
-Y =338
-W =280
-H =2
+X =45
+Y =351
+W =237
+H =1
Type =Colorized
Color =White
[ScorePlayer2Static2]
Tex =ScoreLine
-X =20
-Y =368
-W =280
-H =2
-Type =Colorized
-Color =White
-
-[ScorePlayer2Static3]
-Tex =ScoreLine
-X =20
-Y =398
-W =280
-H =2
-Type =Colorized
-Color =White
-
-[ScorePlayer2Static4]
-Tex =ScoreLine
-X =20
-Y =428
-W =280
-H =2
+X =45
+Y =382
+W =237
+H =1
Type =Colorized
Color =White
[ScorePlayer2Static5]
-Tex =ScoreLine
-X =20
-Y =458
-W =280
-H =4
-Type =Colorized
-Color =White
-
-[ScoreStaticBoxDark2]
-Tex =PlayerNumberBox
-X =20
-Y =467
-W =25
-H =25
-Type =Colorized
-Color =P1Dark
-Z=0.9
-Reflection=1
-ReflectionSpacing=4
-
-[ScorePlayer2Text1]
-X =24
-Y =472
-W =30
-H =30
-Z=1
+Tex=PlayerIDBox01
+X =45
+Y =455
+W =26
+H =23
+Type=Transparent
Color=White
-Font =1
-Size =5
-Align=0
-Text=P1
+Reflection=1
+ReflectionSpacing=30
#ScoreBar
[ScoreStaticBackLevel2]
Tex =ScoreLevel
-X =308
-Y =160
-W =90
-H =300
+X =298
+Y =168
+W =95
+H =310
Color =P1Lightest
Type =Colorized
[ScoreStaticBackLevelRound2]
Tex =ScoreLevelRound
-X =308
-Y =130
-W =90
+X =298
+Y =138
+W =95
H =8
Color =P1Lightest
Type =Colorized
[ScoreStaticLevel2]
Tex =ScoreLevel
-X =308
-Y =410
-W =90
-H =30
+X =298
+Y =400
+W =95
+H =10
Color =P1Dark
Type =Colorized
[ScoreStaticLevelRound2]
Tex =ScoreLevelRound
-X =308
-Y =380
-W =90
+X =298
+Y =392
+W =95
H =8
Color =P1Dark
Type =Colorized
-[ScorePlayer2Static6]
+[ScorePlayer2Static3]
Tex =ScoreEndCap
-X =308
-Y =460
-W =95
+X =294
+Y =478
+W =110
H =30
+z=1
Color =P1Dark
Type =Colorized
Reflection=1
-ReflectionSpacing=4
+ReflectionSpacing=0
+
+[ScorePlayer2Static4]
+Tex =ScoreGlassBox
+X =294
+Y =148
+W =113
+H =331
+z =0.9
+Color =White
+Type =Transparent
# P L A Y E R T W O
[ScoreTextName3]
-X =780
-Y =260
+X =758
+Y =290
Font =0
-Size =14
+Size =10
Text =P2
Color =White
Align=2
+[ScoreStaticRatingPicture3]
+X =545
+Y =165
+H =75
+W =75
+
[ScoreTextScore3]
-X =780
-Y =430
+X =583
+Y =235
+width=100
Color=White
-Font =1
+Font =0
Size =9
Text =Tone Deaf
-Align=2
+Align=1
+
+[ScoreStaticBoxDark3]
+Tex=ScoreBar_box_dark
+X=733
+Y=327
+W=22
+H=20
+Color=P2Dark
+Type=Colorized
[ScoreTextNotes3]
-X =780
-Y =340
+X =728
+Y =322
Color=White
Font =0
-Size =9
+Size =10
Text =SING_NOTES
Align=2
[ScoreTextNotesScore3]
-X =500
-Y =340
+X =518
+Y =322
Color=White
Font =0
Size =10
Align =0
Text =0000
+[ScoreStaticBoxLight3]
+Tex =ScoreBar_box_light
+X =733
+Y =358
+W =22
+H =20
+Color=P2Lightest
+Type=Colorized
+
[ScoreTextLineBonus3]
-X =780
-Y =370
+X =728
+Y =352
Color=White
Font =0
-Size =9
+Size =10
Text =SING_PHRASE_BONUS
Align=2
[ScoreTextLineBonusScore3]
-X =500
-Y =370
+X =518
+Y =352
Color=White
Font =0
Size =10
Align =0
Text =0000
+[ScoreStaticBoxLightest3]
+Tex =ScoreBar_box_lightest
+X =733
+Y =390
+W =22
+H =20
+Color =P2Lightest
+Type=Colorized
+
[ScoreTextGoldenNotes3]
-X =780
-Y =400
+X =728
+Y =383
Color=White
Font =0
-Size =9
+Size =10
Text =SING_GOLDEN_NOTES
Align=2
[ScoreTextGoldenNotesScore3]
-X =500
-Y =400
+X =518
+Y =383
Color=White
Font =0
Size =10
@@ -1747,19 +1810,19 @@ Align =0
Text =0000
[ScoreTextTotal3]
-X =750
-Y =460
+X =718
+Y =456
Color=White
Font =0
-Size =14
+Size =10
Text =SING_TOTAL
Align=2
Reflection=1
ReflectionSpacing=4
[ScoreTextTotalScore3]
-X =500
-Y =460
+X =517
+Y =448
Color=White
Font =0
Size =14
@@ -1771,124 +1834,91 @@ ReflectionSpacing=4
#Lines
[ScorePlayer3Static1]
Tex =ScoreLine
-X =500
-Y =338
-W =280
-H =2
+X =518
+Y =351
+W =237
+H =1
Type =Colorized
Color =White
[ScorePlayer3Static2]
Tex =ScoreLine
-X =500
-Y =368
-W =280
-H =2
-Type =Colorized
-Color =White
-
-[ScorePlayer3Static3]
-Tex =ScoreLine
-X =500
-Y =398
-W =280
-H =2
-Type =Colorized
-Color =White
-
-[ScorePlayer3Static4]
-Tex =ScoreLine
-X =500
-Y =428
-W =280
-H =2
+X =518
+Y =382
+W =237
+H =1
Type =Colorized
Color =White
[ScorePlayer3Static5]
-Tex =ScoreLine
-X =500
-Y =458
-W =280
-H =4
-Type =Colorized
-Color =White
-
-[ScoreStaticBoxDark3]
-Tex =PlayerNumberBox
-X =755
-Y =467
-W =25
-H =25
-Type =Colorized
-Color =P2Dark
-Z=0.9
-TexX1=1
-TexY1=0
-TexX2=0
-TexY2=1
-Reflection=1
-ReflectionSpacing=4
-
-[ScorePlayer3Text1]
-X =759
-Y =472
-W =30
-H =30
-Z=1
+Tex=PlayerIDBox02
+X =729
+Y =455
+W =26
+H =23
+Type=Transparent
Color=White
-Font =1
-Size =5
-Align=0
-Text=P2
+Reflection=1
+ReflectionSpacing=30
#ScoreBar
[ScoreStaticBackLevel3]
Tex =ScoreLevel
-X =402
-Y =160
-W =90
-H =300
+X =409
+Y =168
+W =95
+H =310
Color =P2Lightest
Type =Colorized
[ScoreStaticBackLevelRound3]
Tex =ScoreLevelRound
-X =402
-Y =130
-W =90
+X =409
+Y =138
+W =95
H =8
Color =P2Lightest
Type =Colorized
[ScoreStaticLevel3]
Tex =ScoreLevel
-X =402
-Y =410
-W =90
-H =30
+X =409
+Y =400
+W =95
+H =10
Color =P2Dark
Type =Colorized
[ScoreStaticLevelRound3]
Tex =ScoreLevelRound
-X =402
-Y =380
-W =90
+X =409
+Y =392
+W =95
H =8
Color =P2Dark
Type =Colorized
-[ScorePlayer3Static6]
+[ScorePlayer3Static3]
Tex =ScoreEndCap
-X =402
-Y =460
-W =95
+X =405
+Y =478
+W =110
H =30
+z=1
Color =P2Dark
Type =Colorized
Reflection=1
-ReflectionSpacing=4
+ReflectionSpacing=0
+
+[ScorePlayer3Static4]
+Tex =ScoreGlassBox
+X =405
+Y =148
+W =113
+H =331
+z =0.91
+Color =White
+Type =Transparent
# # # # # # # # # # # # # # # # # # Three Player Score # # # # # # # # # # # #
# P L A Y E R O N E