From 041ee1b932cc9c058c545595751b77893dde75dc Mon Sep 17 00:00:00 2001 From: brunzelchen Date: Mon, 21 Jun 2010 16:33:16 +0000 Subject: - individual line breaks for each player in duet songs are now possible - fade in and out of lyrics, notes and notelines in sing screen - update of acinerella.dll - update of BASS to v2.4 - removed joypad support (did it ever worked?) - removed unused units and options git-svn-id: svn://svn.code.sf.net/p/ultrastardx/svn/branches/1.0.1 Challenge MOD@2553 b956fd51-792f-4845-bead-9b4dfca2ff2c --- Game/Code/Classes/ULyrics.pas | 39 ++++++++++++++++++++++++++++++--------- 1 file changed, 30 insertions(+), 9 deletions(-) (limited to 'Game/Code/Classes/ULyrics.pas') diff --git a/Game/Code/Classes/ULyrics.pas b/Game/Code/Classes/ULyrics.pas index 08563d66..c6a5e635 100644 --- a/Game/Code/Classes/ULyrics.pas +++ b/Game/Code/Classes/ULyrics.pas @@ -31,6 +31,7 @@ type StyleI: integer; // 0 - one selection, 1 - long selection, 2 - one selection with fade to normal text, 3 - long selection with fade with color from left FontStyleI: integer; // font number Word: array of TWord; + Alpha: real; procedure SetX(Value: real); procedure SetY(Value: real); function GetClientX: real; @@ -76,7 +77,9 @@ type function SelectedLength: integer; // LCD procedure Clear; - procedure Draw; + procedure Draw(); + procedure SetAlpha(alpha: real); + function GetAlpha: real; end; @@ -86,6 +89,22 @@ type implementation uses TextGL, UGraphic, UDrawTexture; +procedure TLyric.SetAlpha(alpha: real); +begin + Self.Alpha := alpha; + + if (Self.Alpha>1) then + Self.Alpha := 1; + + if (Self.Alpha<0) then + Self.Alpha := 0; +end; + +function TLyric.GetAlpha: real; +begin + Result := Alpha; +end; + procedure TLyric.SetX(Value: real); begin XR := Value; @@ -250,6 +269,7 @@ begin SetLength(Word, 0); Text := ''; SelectedI := -1; + Alpha := 1; end; procedure TLyric.Refresh; @@ -268,10 +288,11 @@ begin end; end; -procedure TLyric.Draw; +procedure TLyric.Draw(); var W: integer; begin + glEnable(GL_BLEND); case StyleI of 0: begin @@ -317,6 +338,7 @@ begin end; end; end; // case + glDisable(GL_BLEND); end; procedure TLyric.DrawNormal(W: integer); @@ -325,7 +347,7 @@ begin SetFontPos(Word[W].X+ 10*ScreenX, Word[W].Y); SetFontSize(Word[W].Size); SetFontItalic(Word[W].Italic); - glColor3f(Word[W].ColR, Word[W].ColG, Word[W].ColB); + glColor4f(Word[W].ColR, Word[W].ColG, Word[W].ColB, Alpha); glPrint(pchar(Word[W].Text)); end; @@ -339,11 +361,10 @@ begin SetFontPos(Word[W].X, Word[W].Y); SetFontSize(Word[W].Size); SetFontItalic(Word[W].Italic); - if D = 0 then - glColor3f(ColR, ColG, ColB) + glColor4f(ColR, ColG, ColB, Alpha) else - glColor3f(ColSR, ColSG, ColSB); + glColor4f(ColSR, ColSG, ColSB, Alpha); glPrint(pchar(Word[W].Text)); end; @@ -358,7 +379,7 @@ begin SetFontPos(Word[W].X - D * Word[W].Width * (Word[W].Scale - 1) / 2 + (D+1)*10*ScreenX, Word[W].Y - D * 1.5 * Word[W].Size *(Word[W].Scale - 1)); SetFontSize(Word[W].Size + D * (Word[W].Size * Word[W].Scale - Word[W].Size)); SetFontItalic(Word[W].Italic); - glColor3f(Word[W].ColR, Word[W].ColG, Word[W].ColB); + glColor4f(Word[W].ColR, Word[W].ColG, Word[W].ColB, Alpha); glPrint(pchar(Word[W].Text)) end; @@ -371,8 +392,8 @@ begin SetFontPos(Word[W].X, Word[W].Y); SetFontSize(Word[W].Size); SetFontItalic(Word[W].Italic); - glColor3f(Word[W].ColR, Word[W].ColG, Word[W].ColB); - glPrintDone(pchar(Word[W].Text), D, ColR, ColG, ColB); + glColor4f(Word[W].ColR, Word[W].ColG, Word[W].ColB, Alpha); + glPrintDone(pchar(Word[W].Text), D, ColR, ColG, ColB, Alpha); end; function TLyric.SelectedLetter; // LCD -- cgit v1.2.3