diff options
author | mogguh <mogguh@b956fd51-792f-4845-bead-9b4dfca2ff2c> | 2007-12-20 00:21:32 +0000 |
---|---|---|
committer | mogguh <mogguh@b956fd51-792f-4845-bead-9b4dfca2ff2c> | 2007-12-20 00:21:32 +0000 |
commit | 0d5fbd096cddf37bfc3a5f642644179c81bde582 (patch) | |
tree | b1cb125f77f574a03c77b37b33b60ad0fdc9fdf7 | |
parent | 8239e84d1378a111c0336fa8e942fc6805dc847c (diff) | |
download | usdx-0d5fbd096cddf37bfc3a5f642644179c81bde582.tar.gz usdx-0d5fbd096cddf37bfc3a5f642644179c81bde582.tar.xz usdx-0d5fbd096cddf37bfc3a5f642644179c81bde582.zip |
Minor refinings in score screen
git-svn-id: svn://svn.code.sf.net/p/ultrastardx/svn/trunk@732 b956fd51-792f-4845-bead-9b4dfca2ff2c
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 Binary files differindex 17ba6188..954caf94 100644 --- a/Skins/Deluxe/[score]Line.png +++ b/Skins/Deluxe/[score]Line.png diff --git a/Skins/Deluxe/[score]bar_box_dark.png b/Skins/Deluxe/[score]bar_box_dark.png Binary files differnew file mode 100644 index 00000000..e4fbfa41 --- /dev/null +++ b/Skins/Deluxe/[score]bar_box_dark.png diff --git a/Skins/Deluxe/[score]bar_box_light.png b/Skins/Deluxe/[score]bar_box_light.png Binary files differnew file mode 100644 index 00000000..ddc17ed8 --- /dev/null +++ b/Skins/Deluxe/[score]bar_box_light.png diff --git a/Skins/Deluxe/[score]bar_box_lightest.png b/Skins/Deluxe/[score]bar_box_lightest.png Binary files differnew file mode 100644 index 00000000..995bb9ef --- /dev/null +++ b/Skins/Deluxe/[score]bar_box_lightest.png diff --git a/Skins/Deluxe/[score]endcap.png b/Skins/Deluxe/[score]endcap.png Binary files differindex ed14185b..3cccd2e1 100644 --- a/Skins/Deluxe/[score]endcap.png +++ b/Skins/Deluxe/[score]endcap.png diff --git a/Skins/Deluxe/[score]glass_box.png b/Skins/Deluxe/[score]glass_box.png Binary files differnew file mode 100644 index 00000000..c0cf2a9c --- /dev/null +++ b/Skins/Deluxe/[score]glass_box.png diff --git a/Skins/Deluxe/[score]level.png b/Skins/Deluxe/[score]level.png Binary files differindex 7b8cfb84..1f627560 100644 --- a/Skins/Deluxe/[score]level.png +++ b/Skins/Deluxe/[score]level.png diff --git a/Skins/Deluxe/[score]levelRound.png b/Skins/Deluxe/[score]levelRound.png Binary files differindex 10e662bc..2bc7a6b8 100644 --- a/Skins/Deluxe/[score]levelRound.png +++ b/Skins/Deluxe/[score]levelRound.png diff --git a/Skins/Deluxe/[score]level_dark.png b/Skins/Deluxe/[score]level_dark.png Binary files differnew file mode 100644 index 00000000..da4fd407 --- /dev/null +++ b/Skins/Deluxe/[score]level_dark.png diff --git a/Skins/Deluxe/[score]level_dark_round.png b/Skins/Deluxe/[score]level_dark_round.png Binary files differnew file mode 100644 index 00000000..de239cb2 --- /dev/null +++ b/Skins/Deluxe/[score]level_dark_round.png diff --git a/Skins/Deluxe/[score]level_light.png b/Skins/Deluxe/[score]level_light.png Binary files differnew file mode 100644 index 00000000..1c1c8a4d --- /dev/null +++ b/Skins/Deluxe/[score]level_light.png diff --git a/Skins/Deluxe/[score]level_light_round.png b/Skins/Deluxe/[score]level_light_round.png Binary files differnew file mode 100644 index 00000000..641151a5 --- /dev/null +++ b/Skins/Deluxe/[score]level_light_round.png diff --git a/Skins/Deluxe/[score]level_lightest.png b/Skins/Deluxe/[score]level_lightest.png Binary files differnew file mode 100644 index 00000000..f02fdf7b --- /dev/null +++ b/Skins/Deluxe/[score]level_lightest.png diff --git a/Skins/Deluxe/[score]level_lightest_round.png b/Skins/Deluxe/[score]level_lightest_round.png Binary files differnew file mode 100644 index 00000000..9f1bb09e --- /dev/null +++ b/Skins/Deluxe/[score]level_lightest_round.png diff --git a/Skins/Deluxe/[score]rating_0.png b/Skins/Deluxe/[score]rating_0.png Binary files differnew file mode 100644 index 00000000..feb7e472 --- /dev/null +++ b/Skins/Deluxe/[score]rating_0.png diff --git a/Skins/Deluxe/[score]rating_1.png b/Skins/Deluxe/[score]rating_1.png Binary files differnew file mode 100644 index 00000000..4a143d83 --- /dev/null +++ b/Skins/Deluxe/[score]rating_1.png diff --git a/Skins/Deluxe/[score]rating_2.png b/Skins/Deluxe/[score]rating_2.png Binary files differnew file mode 100644 index 00000000..67258e22 --- /dev/null +++ b/Skins/Deluxe/[score]rating_2.png diff --git a/Skins/Deluxe/[score]rating_3.png b/Skins/Deluxe/[score]rating_3.png Binary files differnew file mode 100644 index 00000000..fe0b1662 --- /dev/null +++ b/Skins/Deluxe/[score]rating_3.png diff --git a/Skins/Deluxe/[score]rating_4.png b/Skins/Deluxe/[score]rating_4.png Binary files differnew file mode 100644 index 00000000..5695f8fd --- /dev/null +++ b/Skins/Deluxe/[score]rating_4.png diff --git a/Skins/Deluxe/[score]rating_5.png b/Skins/Deluxe/[score]rating_5.png Binary files differnew file mode 100644 index 00000000..38ed92c3 --- /dev/null +++ b/Skins/Deluxe/[score]rating_5.png diff --git a/Skins/Deluxe/[score]rating_6.png b/Skins/Deluxe/[score]rating_6.png Binary files differnew file mode 100644 index 00000000..f8706de3 --- /dev/null +++ b/Skins/Deluxe/[score]rating_6.png 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
|