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/Screens/UScreenCredits.pas | 171 +++++++++++++++-------------- Game/Code/Screens/UScreenEditSub.pas | 167 ++++++++++++++++------------ Game/Code/Screens/UScreenLevel.pas | 2 - Game/Code/Screens/UScreenPartyNewRound.pas | 20 +--- Game/Code/Screens/UScreenPartyScore.pas | 4 - Game/Code/Screens/UScreenPartyWin.pas | 10 -- Game/Code/Screens/UScreenSing.pas | 92 ++++++++++++++-- Game/Code/Screens/UScreenSingModi.pas | 62 ++++++++++- Game/Code/Screens/UScreenSong.pas | 11 +- Game/Code/Screens/UScreenSongJumpto.pas | 2 +- 10 files changed, 331 insertions(+), 210 deletions(-) (limited to 'Game/Code/Screens') diff --git a/Game/Code/Screens/UScreenCredits.pas b/Game/Code/Screens/UScreenCredits.pas index f20a0797..ecdc332f 100644 --- a/Game/Code/Screens/UScreenCredits.pas +++ b/Game/Code/Screens/UScreenCredits.pas @@ -259,6 +259,7 @@ var f,g,h: Real; STime:cardinal; Delay:cardinal; + Alpha:TAlpha; myPixel: longword; myColor: Cardinal; @@ -424,7 +425,7 @@ Data := Music.GetFFTData; for k:=1 to 3 do begin l:=410+floor((CTime-Timings[21])/(Timings[1]-Timings[21])*(536-410))+RandomRange(-5,5); j:=floor((Timings[1]-CTime)/22)+RandomRange(285,301); - GoldenRec.Spawn(l, j, 1, 16, 0, -1, Flare, 0); + GoldenRec.Spawn(l, j, 1, 16, 0, -1, Flare, 0, 0); end; end; @@ -486,15 +487,15 @@ Data := Music.GetFFTData; glColor4f(1, 1, 1, ESC_Alpha/20*j/10); if (CTime >= STime+10) and (CTime<=STime+12) then begin - GoldenRec.Spawn(RandomRange(65,390), RandomRange(200,460), 1, 16, 0, -1, PerfectLineTwinkle, 0); - GoldenRec.Spawn(RandomRange(65,390), RandomRange(200,460), 1, 16, 0, -1, PerfectLineTwinkle, 1); - GoldenRec.Spawn(RandomRange(65,390), RandomRange(200,460), 1, 16, 0, -1, PerfectLineTwinkle, 5); - GoldenRec.Spawn(RandomRange(65,390), RandomRange(200,460), 1, 16, 0, -1, PerfectLineTwinkle, 0); - GoldenRec.Spawn(RandomRange(65,390), RandomRange(200,460), 1, 16, 0, -1, PerfectLineTwinkle, 1); - GoldenRec.Spawn(RandomRange(65,390), RandomRange(200,460), 1, 16, 0, -1, PerfectLineTwinkle, 5); - GoldenRec.Spawn(RandomRange(65,390), RandomRange(200,460), 1, 16, 0, -1, PerfectLineTwinkle, 0); - GoldenRec.Spawn(RandomRange(65,390), RandomRange(200,460), 1, 16, 0, -1, PerfectLineTwinkle, 1); - GoldenRec.Spawn(RandomRange(65,390), RandomRange(200,460), 1, 16, 0, -1, PerfectLineTwinkle, 5); + GoldenRec.Spawn(RandomRange(65,390), RandomRange(200,460), 1, 16, 0, -1, PerfectLineTwinkle, 0, 0); + GoldenRec.Spawn(RandomRange(65,390), RandomRange(200,460), 1, 16, 0, -1, PerfectLineTwinkle, 1, 0); + GoldenRec.Spawn(RandomRange(65,390), RandomRange(200,460), 1, 16, 0, -1, PerfectLineTwinkle, 5, 0); + GoldenRec.Spawn(RandomRange(65,390), RandomRange(200,460), 1, 16, 0, -1, PerfectLineTwinkle, 0, 0); + GoldenRec.Spawn(RandomRange(65,390), RandomRange(200,460), 1, 16, 0, -1, PerfectLineTwinkle, 1, 0); + GoldenRec.Spawn(RandomRange(65,390), RandomRange(200,460), 1, 16, 0, -1, PerfectLineTwinkle, 5, 0); + GoldenRec.Spawn(RandomRange(65,390), RandomRange(200,460), 1, 16, 0, -1, PerfectLineTwinkle, 0, 0); + GoldenRec.Spawn(RandomRange(65,390), RandomRange(200,460), 1, 16, 0, -1, PerfectLineTwinkle, 1, 0); + GoldenRec.Spawn(RandomRange(65,390), RandomRange(200,460), 1, 16, 0, -1, PerfectLineTwinkle, 5, 0); end; glPushMatrix; @@ -539,15 +540,15 @@ Data := Music.GetFFTData; glColor4f(1, 1, 1, ESC_Alpha/20*j/10); if (CTime >= STime+20) and (CTime<=STime+22) then begin - GoldenRec.Spawn(RandomRange(65,390), RandomRange(200,460), 1, 16, 0, -1, PerfectLineTwinkle, 0); - GoldenRec.Spawn(RandomRange(65,390), RandomRange(200,460), 1, 16, 0, -1, PerfectLineTwinkle, 1); - GoldenRec.Spawn(RandomRange(65,390), RandomRange(200,460), 1, 16, 0, -1, PerfectLineTwinkle, 5); - GoldenRec.Spawn(RandomRange(65,390), RandomRange(200,460), 1, 16, 0, -1, PerfectLineTwinkle, 0); - GoldenRec.Spawn(RandomRange(65,390), RandomRange(200,460), 1, 16, 0, -1, PerfectLineTwinkle, 1); - GoldenRec.Spawn(RandomRange(65,390), RandomRange(200,460), 1, 16, 0, -1, PerfectLineTwinkle, 5); - GoldenRec.Spawn(RandomRange(65,390), RandomRange(200,460), 1, 16, 0, -1, PerfectLineTwinkle, 0); - GoldenRec.Spawn(RandomRange(65,390), RandomRange(200,460), 1, 16, 0, -1, PerfectLineTwinkle, 1); - GoldenRec.Spawn(RandomRange(65,390), RandomRange(200,460), 1, 16, 0, -1, PerfectLineTwinkle, 5); + GoldenRec.Spawn(RandomRange(65,390), RandomRange(200,460), 1, 16, 0, -1, PerfectLineTwinkle, 0, 0); + GoldenRec.Spawn(RandomRange(65,390), RandomRange(200,460), 1, 16, 0, -1, PerfectLineTwinkle, 1, 0); + GoldenRec.Spawn(RandomRange(65,390), RandomRange(200,460), 1, 16, 0, -1, PerfectLineTwinkle, 5, 0); + GoldenRec.Spawn(RandomRange(65,390), RandomRange(200,460), 1, 16, 0, -1, PerfectLineTwinkle, 0, 0); + GoldenRec.Spawn(RandomRange(65,390), RandomRange(200,460), 1, 16, 0, -1, PerfectLineTwinkle, 1, 0); + GoldenRec.Spawn(RandomRange(65,390), RandomRange(200,460), 1, 16, 0, -1, PerfectLineTwinkle, 5, 0); + GoldenRec.Spawn(RandomRange(65,390), RandomRange(200,460), 1, 16, 0, -1, PerfectLineTwinkle, 0, 0); + GoldenRec.Spawn(RandomRange(65,390), RandomRange(200,460), 1, 16, 0, -1, PerfectLineTwinkle, 1, 0); + GoldenRec.Spawn(RandomRange(65,390), RandomRange(200,460), 1, 16, 0, -1, PerfectLineTwinkle, 5, 0); end; glPushMatrix; @@ -597,15 +598,15 @@ Data := Music.GetFFTData; glColor4f(1, 1, 1, ESC_Alpha/20*j/10); if (CTime >= STime+10) and (CTime<=STime+12) then begin - GoldenRec.Spawn(RandomRange(65,390), RandomRange(200,460), 1, 16, 0, -1, PerfectLineTwinkle, 0); - GoldenRec.Spawn(RandomRange(65,390), RandomRange(200,460), 1, 16, 0, -1, PerfectLineTwinkle, 1); - GoldenRec.Spawn(RandomRange(65,390), RandomRange(200,460), 1, 16, 0, -1, PerfectLineTwinkle, 5); - GoldenRec.Spawn(RandomRange(65,390), RandomRange(200,460), 1, 16, 0, -1, PerfectLineTwinkle, 0); - GoldenRec.Spawn(RandomRange(65,390), RandomRange(200,460), 1, 16, 0, -1, PerfectLineTwinkle, 1); - GoldenRec.Spawn(RandomRange(65,390), RandomRange(200,460), 1, 16, 0, -1, PerfectLineTwinkle, 5); - GoldenRec.Spawn(RandomRange(65,390), RandomRange(200,460), 1, 16, 0, -1, PerfectLineTwinkle, 0); - GoldenRec.Spawn(RandomRange(65,390), RandomRange(200,460), 1, 16, 0, -1, PerfectLineTwinkle, 1); - GoldenRec.Spawn(RandomRange(65,390), RandomRange(200,460), 1, 16, 0, -1, PerfectLineTwinkle, 5); + GoldenRec.Spawn(RandomRange(65,390), RandomRange(200,460), 1, 16, 0, -1, PerfectLineTwinkle, 0, 0); + GoldenRec.Spawn(RandomRange(65,390), RandomRange(200,460), 1, 16, 0, -1, PerfectLineTwinkle, 1, 0); + GoldenRec.Spawn(RandomRange(65,390), RandomRange(200,460), 1, 16, 0, -1, PerfectLineTwinkle, 5, 0); + GoldenRec.Spawn(RandomRange(65,390), RandomRange(200,460), 1, 16, 0, -1, PerfectLineTwinkle, 0, 0); + GoldenRec.Spawn(RandomRange(65,390), RandomRange(200,460), 1, 16, 0, -1, PerfectLineTwinkle, 1, 0); + GoldenRec.Spawn(RandomRange(65,390), RandomRange(200,460), 1, 16, 0, -1, PerfectLineTwinkle, 5, 0); + GoldenRec.Spawn(RandomRange(65,390), RandomRange(200,460), 1, 16, 0, -1, PerfectLineTwinkle, 0, 0); + GoldenRec.Spawn(RandomRange(65,390), RandomRange(200,460), 1, 16, 0, -1, PerfectLineTwinkle, 1, 0); + GoldenRec.Spawn(RandomRange(65,390), RandomRange(200,460), 1, 16, 0, -1, PerfectLineTwinkle, 5, 0); end; glPushMatrix; @@ -650,15 +651,15 @@ Data := Music.GetFFTData; glColor4f(1, 1, 1, ESC_Alpha/20*j/10); if (CTime >= STime+10) and (CTime<=STime+12) then begin - GoldenRec.Spawn(RandomRange(65,390), RandomRange(200,460), 1, 16, 0, -1, PerfectLineTwinkle, 0); - GoldenRec.Spawn(RandomRange(65,390), RandomRange(200,460), 1, 16, 0, -1, PerfectLineTwinkle, 1); - GoldenRec.Spawn(RandomRange(65,390), RandomRange(200,460), 1, 16, 0, -1, PerfectLineTwinkle, 5); - GoldenRec.Spawn(RandomRange(65,390), RandomRange(200,460), 1, 16, 0, -1, PerfectLineTwinkle, 0); - GoldenRec.Spawn(RandomRange(65,390), RandomRange(200,460), 1, 16, 0, -1, PerfectLineTwinkle, 1); - GoldenRec.Spawn(RandomRange(65,390), RandomRange(200,460), 1, 16, 0, -1, PerfectLineTwinkle, 5); - GoldenRec.Spawn(RandomRange(65,390), RandomRange(200,460), 1, 16, 0, -1, PerfectLineTwinkle, 0); - GoldenRec.Spawn(RandomRange(65,390), RandomRange(200,460), 1, 16, 0, -1, PerfectLineTwinkle, 1); - GoldenRec.Spawn(RandomRange(65,390), RandomRange(200,460), 1, 16, 0, -1, PerfectLineTwinkle, 5); + GoldenRec.Spawn(RandomRange(65,390), RandomRange(200,460), 1, 16, 0, -1, PerfectLineTwinkle, 0, 0); + GoldenRec.Spawn(RandomRange(65,390), RandomRange(200,460), 1, 16, 0, -1, PerfectLineTwinkle, 1, 0); + GoldenRec.Spawn(RandomRange(65,390), RandomRange(200,460), 1, 16, 0, -1, PerfectLineTwinkle, 5, 0); + GoldenRec.Spawn(RandomRange(65,390), RandomRange(200,460), 1, 16, 0, -1, PerfectLineTwinkle, 0, 0); + GoldenRec.Spawn(RandomRange(65,390), RandomRange(200,460), 1, 16, 0, -1, PerfectLineTwinkle, 1, 0); + GoldenRec.Spawn(RandomRange(65,390), RandomRange(200,460), 1, 16, 0, -1, PerfectLineTwinkle, 5, 0); + GoldenRec.Spawn(RandomRange(65,390), RandomRange(200,460), 1, 16, 0, -1, PerfectLineTwinkle, 0, 0); + GoldenRec.Spawn(RandomRange(65,390), RandomRange(200,460), 1, 16, 0, -1, PerfectLineTwinkle, 1, 0); + GoldenRec.Spawn(RandomRange(65,390), RandomRange(200,460), 1, 16, 0, -1, PerfectLineTwinkle, 5, 0); end; glPushMatrix; @@ -706,15 +707,15 @@ Data := Music.GetFFTData; glColor4f(1, 1, 1, ESC_Alpha/20*j/10); if (CTime >= STime+10) and (CTime<=STime+12) then begin - GoldenRec.Spawn(RandomRange(65,390), RandomRange(200,460), 1, 16, 0, -1, PerfectLineTwinkle, 0); - GoldenRec.Spawn(RandomRange(65,390), RandomRange(200,460), 1, 16, 0, -1, PerfectLineTwinkle, 1); - GoldenRec.Spawn(RandomRange(65,390), RandomRange(200,460), 1, 16, 0, -1, PerfectLineTwinkle, 5); - GoldenRec.Spawn(RandomRange(65,390), RandomRange(200,460), 1, 16, 0, -1, PerfectLineTwinkle, 0); - GoldenRec.Spawn(RandomRange(65,390), RandomRange(200,460), 1, 16, 0, -1, PerfectLineTwinkle, 1); - GoldenRec.Spawn(RandomRange(65,390), RandomRange(200,460), 1, 16, 0, -1, PerfectLineTwinkle, 5); - GoldenRec.Spawn(RandomRange(65,390), RandomRange(200,460), 1, 16, 0, -1, PerfectLineTwinkle, 0); - GoldenRec.Spawn(RandomRange(65,390), RandomRange(200,460), 1, 16, 0, -1, PerfectLineTwinkle, 1); - GoldenRec.Spawn(RandomRange(65,390), RandomRange(200,460), 1, 16, 0, -1, PerfectLineTwinkle, 5); + GoldenRec.Spawn(RandomRange(65,390), RandomRange(200,460), 1, 16, 0, -1, PerfectLineTwinkle, 0, 0); + GoldenRec.Spawn(RandomRange(65,390), RandomRange(200,460), 1, 16, 0, -1, PerfectLineTwinkle, 1, 0); + GoldenRec.Spawn(RandomRange(65,390), RandomRange(200,460), 1, 16, 0, -1, PerfectLineTwinkle, 5, 0); + GoldenRec.Spawn(RandomRange(65,390), RandomRange(200,460), 1, 16, 0, -1, PerfectLineTwinkle, 0, 0); + GoldenRec.Spawn(RandomRange(65,390), RandomRange(200,460), 1, 16, 0, -1, PerfectLineTwinkle, 1, 0); + GoldenRec.Spawn(RandomRange(65,390), RandomRange(200,460), 1, 16, 0, -1, PerfectLineTwinkle, 5, 0); + GoldenRec.Spawn(RandomRange(65,390), RandomRange(200,460), 1, 16, 0, -1, PerfectLineTwinkle, 0, 0); + GoldenRec.Spawn(RandomRange(65,390), RandomRange(200,460), 1, 16, 0, -1, PerfectLineTwinkle, 1, 0); + GoldenRec.Spawn(RandomRange(65,390), RandomRange(200,460), 1, 16, 0, -1, PerfectLineTwinkle, 5, 0); end; @@ -765,15 +766,15 @@ Data := Music.GetFFTData; glColor4f(1, 1, 1, ESC_Alpha/20*j/10); if (CTime >= STime+10) and (CTime<=STime+12) then begin - GoldenRec.Spawn(RandomRange(65,390), RandomRange(200,460), 1, 16, 0, -1, PerfectLineTwinkle, 0); - GoldenRec.Spawn(RandomRange(65,390), RandomRange(200,460), 1, 16, 0, -1, PerfectLineTwinkle, 1); - GoldenRec.Spawn(RandomRange(65,390), RandomRange(200,460), 1, 16, 0, -1, PerfectLineTwinkle, 5); - GoldenRec.Spawn(RandomRange(65,390), RandomRange(200,460), 1, 16, 0, -1, PerfectLineTwinkle, 0); - GoldenRec.Spawn(RandomRange(65,390), RandomRange(200,460), 1, 16, 0, -1, PerfectLineTwinkle, 1); - GoldenRec.Spawn(RandomRange(65,390), RandomRange(200,460), 1, 16, 0, -1, PerfectLineTwinkle, 5); - GoldenRec.Spawn(RandomRange(65,390), RandomRange(200,460), 1, 16, 0, -1, PerfectLineTwinkle, 0); - GoldenRec.Spawn(RandomRange(65,390), RandomRange(200,460), 1, 16, 0, -1, PerfectLineTwinkle, 1); - GoldenRec.Spawn(RandomRange(65,390), RandomRange(200,460), 1, 16, 0, -1, PerfectLineTwinkle, 5); + GoldenRec.Spawn(RandomRange(65,390), RandomRange(200,460), 1, 16, 0, -1, PerfectLineTwinkle, 0, 0); + GoldenRec.Spawn(RandomRange(65,390), RandomRange(200,460), 1, 16, 0, -1, PerfectLineTwinkle, 1, 0); + GoldenRec.Spawn(RandomRange(65,390), RandomRange(200,460), 1, 16, 0, -1, PerfectLineTwinkle, 5, 0); + GoldenRec.Spawn(RandomRange(65,390), RandomRange(200,460), 1, 16, 0, -1, PerfectLineTwinkle, 0, 0); + GoldenRec.Spawn(RandomRange(65,390), RandomRange(200,460), 1, 16, 0, -1, PerfectLineTwinkle, 1, 0); + GoldenRec.Spawn(RandomRange(65,390), RandomRange(200,460), 1, 16, 0, -1, PerfectLineTwinkle, 5, 0); + GoldenRec.Spawn(RandomRange(65,390), RandomRange(200,460), 1, 16, 0, -1, PerfectLineTwinkle, 0, 0); + GoldenRec.Spawn(RandomRange(65,390), RandomRange(200,460), 1, 16, 0, -1, PerfectLineTwinkle, 1, 0); + GoldenRec.Spawn(RandomRange(65,390), RandomRange(200,460), 1, 16, 0, -1, PerfectLineTwinkle, 5, 0); end; glPushMatrix; @@ -821,15 +822,15 @@ Data := Music.GetFFTData; glColor4f(1, 1, 1, ESC_Alpha/20*j/10); if (CTime >= STime+10) and (CTime<=STime+12) then begin - GoldenRec.Spawn(RandomRange(65,390), RandomRange(200,460), 1, 16, 0, -1, PerfectLineTwinkle, 0); - GoldenRec.Spawn(RandomRange(65,390), RandomRange(200,460), 1, 16, 0, -1, PerfectLineTwinkle, 1); - GoldenRec.Spawn(RandomRange(65,390), RandomRange(200,460), 1, 16, 0, -1, PerfectLineTwinkle, 5); - GoldenRec.Spawn(RandomRange(65,390), RandomRange(200,460), 1, 16, 0, -1, PerfectLineTwinkle, 0); - GoldenRec.Spawn(RandomRange(65,390), RandomRange(200,460), 1, 16, 0, -1, PerfectLineTwinkle, 1); - GoldenRec.Spawn(RandomRange(65,390), RandomRange(200,460), 1, 16, 0, -1, PerfectLineTwinkle, 5); - GoldenRec.Spawn(RandomRange(65,390), RandomRange(200,460), 1, 16, 0, -1, PerfectLineTwinkle, 0); - GoldenRec.Spawn(RandomRange(65,390), RandomRange(200,460), 1, 16, 0, -1, PerfectLineTwinkle, 1); - GoldenRec.Spawn(RandomRange(65,390), RandomRange(200,460), 1, 16, 0, -1, PerfectLineTwinkle, 5); + GoldenRec.Spawn(RandomRange(65,390), RandomRange(200,460), 1, 16, 0, -1, PerfectLineTwinkle, 0, 0); + GoldenRec.Spawn(RandomRange(65,390), RandomRange(200,460), 1, 16, 0, -1, PerfectLineTwinkle, 1, 0); + GoldenRec.Spawn(RandomRange(65,390), RandomRange(200,460), 1, 16, 0, -1, PerfectLineTwinkle, 5, 0); + GoldenRec.Spawn(RandomRange(65,390), RandomRange(200,460), 1, 16, 0, -1, PerfectLineTwinkle, 0, 0); + GoldenRec.Spawn(RandomRange(65,390), RandomRange(200,460), 1, 16, 0, -1, PerfectLineTwinkle, 1, 0); + GoldenRec.Spawn(RandomRange(65,390), RandomRange(200,460), 1, 16, 0, -1, PerfectLineTwinkle, 5, 0); + GoldenRec.Spawn(RandomRange(65,390), RandomRange(200,460), 1, 16, 0, -1, PerfectLineTwinkle, 0, 0); + GoldenRec.Spawn(RandomRange(65,390), RandomRange(200,460), 1, 16, 0, -1, PerfectLineTwinkle, 1, 0); + GoldenRec.Spawn(RandomRange(65,390), RandomRange(200,460), 1, 16, 0, -1, PerfectLineTwinkle, 5, 0); end; glPushMatrix; @@ -879,15 +880,15 @@ Data := Music.GetFFTData; glColor4f(1, 1, 1, ESC_Alpha/20*j/10); if (CTime >= STime+10) and (CTime<=STime+12) then begin - GoldenRec.Spawn(RandomRange(65,390), RandomRange(200,460), 1, 16, 0, -1, PerfectLineTwinkle, 0); - GoldenRec.Spawn(RandomRange(65,390), RandomRange(200,460), 1, 16, 0, -1, PerfectLineTwinkle, 1); - GoldenRec.Spawn(RandomRange(65,390), RandomRange(200,460), 1, 16, 0, -1, PerfectLineTwinkle, 5); - GoldenRec.Spawn(RandomRange(65,390), RandomRange(200,460), 1, 16, 0, -1, PerfectLineTwinkle, 0); - GoldenRec.Spawn(RandomRange(65,390), RandomRange(200,460), 1, 16, 0, -1, PerfectLineTwinkle, 1); - GoldenRec.Spawn(RandomRange(65,390), RandomRange(200,460), 1, 16, 0, -1, PerfectLineTwinkle, 5); - GoldenRec.Spawn(RandomRange(65,390), RandomRange(200,460), 1, 16, 0, -1, PerfectLineTwinkle, 0); - GoldenRec.Spawn(RandomRange(65,390), RandomRange(200,460), 1, 16, 0, -1, PerfectLineTwinkle, 1); - GoldenRec.Spawn(RandomRange(65,390), RandomRange(200,460), 1, 16, 0, -1, PerfectLineTwinkle, 5); + GoldenRec.Spawn(RandomRange(65,390), RandomRange(200,460), 1, 16, 0, -1, PerfectLineTwinkle, 0, 0); + GoldenRec.Spawn(RandomRange(65,390), RandomRange(200,460), 1, 16, 0, -1, PerfectLineTwinkle, 1, 0); + GoldenRec.Spawn(RandomRange(65,390), RandomRange(200,460), 1, 16, 0, -1, PerfectLineTwinkle, 5, 0); + GoldenRec.Spawn(RandomRange(65,390), RandomRange(200,460), 1, 16, 0, -1, PerfectLineTwinkle, 0, 0); + GoldenRec.Spawn(RandomRange(65,390), RandomRange(200,460), 1, 16, 0, -1, PerfectLineTwinkle, 1, 0); + GoldenRec.Spawn(RandomRange(65,390), RandomRange(200,460), 1, 16, 0, -1, PerfectLineTwinkle, 5, 0); + GoldenRec.Spawn(RandomRange(65,390), RandomRange(200,460), 1, 16, 0, -1, PerfectLineTwinkle, 0, 0); + GoldenRec.Spawn(RandomRange(65,390), RandomRange(200,460), 1, 16, 0, -1, PerfectLineTwinkle, 1, 0); + GoldenRec.Spawn(RandomRange(65,390), RandomRange(200,460), 1, 16, 0, -1, PerfectLineTwinkle, 5, 0); end; glPushMatrix; @@ -938,15 +939,15 @@ Data := Music.GetFFTData; glColor4f(1, 1, 1, ESC_Alpha/20*j/10); if (CTime >= STime+10) and (CTime<=STime+12) then begin - GoldenRec.Spawn(RandomRange(65,390), RandomRange(200,460), 1, 16, 0, -1, PerfectLineTwinkle, 0); - GoldenRec.Spawn(RandomRange(65,390), RandomRange(200,460), 1, 16, 0, -1, PerfectLineTwinkle, 1); - GoldenRec.Spawn(RandomRange(65,390), RandomRange(200,460), 1, 16, 0, -1, PerfectLineTwinkle, 5); - GoldenRec.Spawn(RandomRange(65,390), RandomRange(200,460), 1, 16, 0, -1, PerfectLineTwinkle, 0); - GoldenRec.Spawn(RandomRange(65,390), RandomRange(200,460), 1, 16, 0, -1, PerfectLineTwinkle, 1); - GoldenRec.Spawn(RandomRange(65,390), RandomRange(200,460), 1, 16, 0, -1, PerfectLineTwinkle, 5); - GoldenRec.Spawn(RandomRange(65,390), RandomRange(200,460), 1, 16, 0, -1, PerfectLineTwinkle, 0); - GoldenRec.Spawn(RandomRange(65,390), RandomRange(200,460), 1, 16, 0, -1, PerfectLineTwinkle, 1); - GoldenRec.Spawn(RandomRange(65,390), RandomRange(200,460), 1, 16, 0, -1, PerfectLineTwinkle, 5); + GoldenRec.Spawn(RandomRange(65,390), RandomRange(200,460), 1, 16, 0, -1, PerfectLineTwinkle, 0, 0); + GoldenRec.Spawn(RandomRange(65,390), RandomRange(200,460), 1, 16, 0, -1, PerfectLineTwinkle, 1, 0); + GoldenRec.Spawn(RandomRange(65,390), RandomRange(200,460), 1, 16, 0, -1, PerfectLineTwinkle, 5, 0); + GoldenRec.Spawn(RandomRange(65,390), RandomRange(200,460), 1, 16, 0, -1, PerfectLineTwinkle, 0, 0); + GoldenRec.Spawn(RandomRange(65,390), RandomRange(200,460), 1, 16, 0, -1, PerfectLineTwinkle, 1, 0); + GoldenRec.Spawn(RandomRange(65,390), RandomRange(200,460), 1, 16, 0, -1, PerfectLineTwinkle, 5, 0); + GoldenRec.Spawn(RandomRange(65,390), RandomRange(200,460), 1, 16, 0, -1, PerfectLineTwinkle, 0, 0); + GoldenRec.Spawn(RandomRange(65,390), RandomRange(200,460), 1, 16, 0, -1, PerfectLineTwinkle, 1, 0); + GoldenRec.Spawn(RandomRange(65,390), RandomRange(200,460), 1, 16, 0, -1, PerfectLineTwinkle, 5, 0); end; glPushMatrix; @@ -986,7 +987,7 @@ Data := Music.GetFFTData; if Data[k]>0.2 then begin l:=RandomRange(6,16); j:=RandomRange(0,27); - GoldenRec.Spawn(myLogoCoords[j,0], myLogoCoords[j,1], 16-l, l, 0, -1, PerfectNote, 0); + GoldenRec.Spawn(myLogoCoords[j,0], myLogoCoords[j,1], 16-l, l, 0, -1, PerfectNote, 0, 0); end; end; @@ -1102,7 +1103,9 @@ Data := Music.GetFFTData; glPrint (Addr(RuntimeStr[1])); } // make the stars shine - GoldenRec.Draw; + Alpha[0] := 1; + Alpha[1] := 1; + GoldenRec.Draw(Alpha); //timing hack // Draw_FunkyText; diff --git a/Game/Code/Screens/UScreenEditSub.pas b/Game/Code/Screens/UScreenEditSub.pas index ae1a026e..8b3d3117 100644 --- a/Game/Code/Screens/UScreenEditSub.pas +++ b/Game/Code/Screens/UScreenEditSub.pas @@ -289,15 +289,15 @@ begin begin // Insert start of sentece if (AktNuta[CP] > 0) then - DivideSentence - else if AktSong.isDuet and + DivideSentence; + {else if AktSong.isDuet and (Length(Czesci[(CP+1) mod 2].Czesc[Czesci[CP].Akt].Nuta)>0) then begin if (Czesci[CP].Czesc[Czesci[CP].Akt].Nuta[AktNuta[CP]].Start > Czesci[(CP+1) mod 2].Czesc[Czesci[CP].Akt].Nuta[0].Start+ Czesci[(CP+1) mod 2].Czesc[Czesci[CP].Akt].Nuta[0].Dlugosc) then DivideSentence; - end; + end;} end; if SDL_ModState = KMOD_LSHIFT then @@ -680,6 +680,14 @@ begin SDLK_T: begin + MidiOut.PutShort($81, Czesci[CP].Czesc[Czesci[CP].Akt].Nuta[MidiLastNote].Ton + 60, 127); + PlaySentenceMidi := false; + PlayOneNoteMidi := false; + Music.Stop; + LineChanged[0]:=false; + LineChanged[1]:=false; + PlaySentence := false; + PlayOneNote := false; // Fixes timings between sentences FixTimings; Text[TextDebug].Text := Language.Translate('EDITOR_FIX_TIMINGS'); @@ -688,6 +696,14 @@ begin SDLK_F4: begin + MidiOut.PutShort($81, Czesci[CP].Czesc[Czesci[CP].Akt].Nuta[MidiLastNote].Ton + 60, 127); + PlaySentenceMidi := false; + PlayOneNoteMidi := false; + Music.Stop; + LineChanged[0]:=false; + LineChanged[1]:=false; + PlaySentence := false; + PlayOneNote := false; // Enter Text Edit Mode editText := Czesci[CP].Czesc[Czesci[CP].Akt].Nuta[AktNuta[CP]].Tekst; TextEditMode := true; @@ -696,6 +712,14 @@ begin SDLK_F5: begin // Enter BPM Edit Mode + MidiOut.PutShort($81, Czesci[CP].Czesc[Czesci[CP].Akt].Nuta[MidiLastNote].Ton + 60, 127); + PlaySentenceMidi := false; + PlayOneNoteMidi := false; + Music.Stop; + LineChanged[0]:=false; + LineChanged[1]:=false; + PlaySentence := false; + PlayOneNote := false; Text[TextBPM].Text := Text[TextBPM].Text + '|'; BPMEditMode := true; end; @@ -1094,8 +1118,8 @@ begin begin Refresh; Inc(Czesci[CP].Akt); - AktNuta[0] := 0; - AktNuta[1] := 0; + AktNuta[CP] := 0; + //AktNuta[1] := 0; if Czesci[CP].Akt > Czesci[CP].High then Czesci[CP].Akt := 0; @@ -1119,11 +1143,11 @@ begin end; end; - if AktSong.isDuet and (SDL_ModState = KMOD_LSHIFT or KMOD_LCTRL) and (CP=0) then + {if AktSong.isDuet and (SDL_ModState = KMOD_LSHIFT or KMOD_LCTRL) and (CP=0) then DuetCopyLine; if AktSong.isDuet and (SDL_ModState = KMOD_LSHIFT or KMOD_LCTRL or KMOD_LALT) and (CP=0) then - DuetMoveLine; + DuetMoveLine;} end; SDLK_UP: @@ -1166,11 +1190,11 @@ begin end; end; - if AktSong.isDuet and (SDL_ModState = KMOD_LSHIFT or KMOD_LCTRL) and (CP=1) then + {if AktSong.isDuet and (SDL_ModState = KMOD_LSHIFT or KMOD_LCTRL) and (CP=1) then DuetCopyLine; if AktSong.isDuet and (SDL_ModState = KMOD_LSHIFT or KMOD_LCTRL or KMOD_LALT) and (CP=1) then - DuetMoveLine; + DuetMoveLine;} end; // Golden Note Patch @@ -1577,6 +1601,7 @@ var S: integer; Min: integer; Max: integer; + len: integer; function GetMin(L: integer): integer; var @@ -1628,8 +1653,9 @@ begin begin for C := 1 to Length(Czesci[P].Czesc) - 1 do begin - Min := GetMin(C-1); - Max := GetMax(C); + len := Length(Czesci[P].Czesc[C-1].Nuta); + Min := Czesci[P].Czesc[C-1].Nuta[len-1].Start + Czesci[P].Czesc[C-1].Nuta[len-1].Dlugosc; + Max := Czesci[P].Czesc[C].Nuta[0].Start; case (Max - Min) of 0: S := Max; 1: S := Max; @@ -1642,7 +1668,7 @@ begin Czesci[P].Czesc[C].Start := S; end; // for end; - + { //second run for duet mode: if not AktSong.isDuet then Exit; @@ -1655,7 +1681,7 @@ begin if (Length(Czesci[P].Czesc[C-1].Nuta)=0) then Czesci[P].Czesc[C].Start := Czesci[(P+1) mod 2].Czesc[C].Start; end; - end; + end; } end; procedure TScreenEditSub.DivideSentence; @@ -1678,8 +1704,9 @@ begin CNew := CStart + 1; - for P := 0 to Length(Czesci) - 1 do - begin + P := CP; + {for P := 0 to Length(Czesci) - 1 do + begin} // increase sentence length by 1 CLen := Length(Czesci[P].Czesc); SetLength(Czesci[P].Czesc, CLen + 1); @@ -1748,18 +1775,19 @@ begin end; Czesci[P].Akt := Czesci[P].Akt + 1; AktNuta[P] := 0; - end; + //end; Refresh; Czesci[CP].Czesc[Czesci[CP].Akt].Nuta[AktNuta[CP]].Color := 2; EditorLyric[CP].AddCzesc(CP, Czesci[CP].Akt); EditorLyric[CP].Selected := AktNuta[CP]; + { if AktSong.isDuet then begin Czesci[(CP+1) mod 2].Akt := Czesci[CP].Akt; EditorLyric[(CP+1) mod 2].AddCzesc((CP+1) mod 2, Czesci[(CP+1) mod 2].Akt); - end; + end; } end; procedure TScreenEditSub.JoinSentence; @@ -1770,8 +1798,9 @@ var NStart: integer; NDst: integer; begin - for P := 0 to Length(Czesci) - 1 do - begin + P := CP; + {for P := 0 to Length(Czesci) - 1 do + begin} C := Czesci[CP].Akt; // set new sentence NStart := Czesci[P].Czesc[C].IlNut; @@ -1803,18 +1832,18 @@ begin SetLength(Czesci[P].Czesc, Length(Czesci[P].Czesc) - 1); Dec(Czesci[P].Ilosc); Dec(Czesci[P].High); - end; + //end; Refresh; Czesci[CP].Czesc[Czesci[CP].Akt].Nuta[AktNuta[CP]].Color := 2; EditorLyric[CP].AddCzesc(CP, Czesci[CP].Akt); EditorLyric[CP].Selected := AktNuta[CP]; - if AktSong.isDuet then + {if AktSong.isDuet then begin Czesci[(CP+1) mod 2].Akt := Czesci[CP].Akt; EditorLyric[(CP+1) mod 2].AddCzesc((CP+1) mod 2, Czesci[(CP+1) mod 2].Akt); - end; + end;} end; procedure TScreenEditSub.DivideNote; @@ -1897,8 +1926,8 @@ begin end; end; EditorLyric[CP].AddCzesc(CP, Czesci[CP].Akt); - if AktSong.isDuet then - EditorLyric[(CP+1) mod 2].AddCzesc((CP+1) mod 2, Czesci[(CP+1) mod 2].Akt); + {if AktSong.isDuet then + EditorLyric[(CP+1) mod 2].AddCzesc((CP+1) mod 2, Czesci[(CP+1) mod 2].Akt);} end; procedure TScreenEditSub.DeleteSentence; @@ -1912,20 +1941,20 @@ begin Pv := CP; Pt := CP; - if AktSong.isDuet then + {if AktSong.isDuet then begin if (Length(Czesci[(CP+1) mod 2].Czesc[Czesci[CP].Akt].Nuta)=0) then begin Pv := 0; Pt := 1; end; - end; + end; } for P := Pv to Pt do begin C := Czesci[CP].Akt; - if (Pv <> Pt) or not AktSong.isDuet then - begin + {if (Pv <> Pt) or not AktSong.isDuet then + begin} //Move all Sentences after the current to the Left for N := C+1 to Czesci[P].High do //Czesci[P].Czesc[N-1] := Czesci[P].Czesc[N]; @@ -1941,7 +1970,7 @@ begin Czesci[P].Akt := C - 1 else Czesci[P].Akt := 0; - end else + {end else begin //delete all notes in that line SetLength(Czesci[P].Czesc[C].Nuta, 0); @@ -1950,11 +1979,12 @@ begin CP := (CP+1) mod 2; AktNuta[CP] := 0; AktNuta[(CP+1) mod 2] := 0; - end; + end;} end; Refresh; - SelectPrevNote(); - SelectNextNote(); + //SelectPrevNote(); + //SelectNextNote(); + Czesci[CP].Czesc[Czesci[CP].Akt].Nuta[AktNuta[CP]].Color := 2; end; procedure TScreenEditSub.TransposeNote(Transpose: integer); @@ -2166,7 +2196,7 @@ end; procedure TScreenEditSub.SelectNextNote(); begin - if AktSong.isDuet then + {if AktSong.isDuet then begin Czesci[(CP+1) mod 2].Akt := Czesci[CP].Akt; while (Length(Czesci[CP].Czesc[Czesci[CP].Akt].Nuta)=0) do @@ -2188,18 +2218,19 @@ begin EditorLyric[0].Selected := 0; EditorLyric[1].Selected := 0; end else - begin - Czesci[0].Czesc[Czesci[0].Akt].Nuta[AktNuta[0]].Color := 2; + begin } + Czesci[CP].Czesc[Czesci[CP].Akt].Nuta[AktNuta[CP]].Color := 2; - EditorLyric[0].AddCzesc(0, Czesci[0].Akt); - EditorLyric[0].Selected := 0; - end; + EditorLyric[CP].AddCzesc(CP, Czesci[CP].Akt); + EditorLyric[CP].Selected := 0; + //end; end; procedure TScreenEditSub.SelectPrevNote(); begin - if AktSong.isDuet then + {if AktSong.isDuet then begin + //beat := Czesci[CP].Czesc[Czesci[CP].Akt].Nuta[AktNuta[CP]].Start; Czesci[(CP+1) mod 2].Akt := Czesci[CP].Akt; while (Length(Czesci[CP].Czesc[Czesci[CP].Akt].Nuta)=0) do begin @@ -2220,12 +2251,11 @@ begin EditorLyric[0].Selected := 0; EditorLyric[1].Selected := 0; end else - begin - Czesci[0].Czesc[Czesci[0].Akt].Nuta[AktNuta[0]].Color := 2; + begin } + Czesci[CP].Czesc[Czesci[CP].Akt].Nuta[AktNuta[CP]].Color := 2; - EditorLyric[0].AddCzesc(0, Czesci[0].Akt); - EditorLyric[0].Selected := 0; - end; + EditorLyric[CP].AddCzesc(CP, Czesci[CP].Akt); + EditorLyric[CP].Selected := 0; end; procedure TScreenEditSub.MakeSingle; @@ -2233,11 +2263,11 @@ var C: integer; begin - for C := 0 to Length(Czesci[0].Czesc) - 1 do + {for C := 0 to Length(Czesci[0].Czesc) - 1 do begin if (Length(Czesci[0].Czesc[C].Nuta)=0) then Czesci[0].Czesc[C] := Czesci[1].Czesc[C]; - end; + end;} SetLength(Czesci, 1); AktSong.isDuet := false; CP := 0; @@ -2266,7 +2296,7 @@ begin for L := 0 to Length(Czesci[0].Czesc) - 1 do begin - Czesci[1].Czesc[L].Start := Czesci[0].Czesc[L].Start; + {Czesci[1].Czesc[L].Start := Czesci[0].Czesc[L].Start; Czesci[1].Czesc[L].StartNote := Czesci[0].Czesc[L].StartNote; Czesci[1].Czesc[L].Lyric := ''; Czesci[1].Czesc[L].LyricWidth := 0; @@ -2275,7 +2305,8 @@ begin Czesci[1].Czesc[L].HighNut := -1; Czesci[1].Czesc[L].IlNut := 0; Czesci[1].Czesc[L].TotalNotes := 0; - SetLength(Czesci[1].Czesc[L].Nuta, 0); + SetLength(Czesci[1].Czesc[L].Nuta, 0);} + CopyLine(0, L, 1, L); end; AktSong.isDuet := true; @@ -2296,21 +2327,23 @@ end; procedure TScreenEditSub.DuetCopyLine; var - L: integer; - Src, Dst: integer; + LSrc, LDst: integer; + CSrc, CDst: integer; begin - L := Czesci[CP].Akt; - Src := CP; - Dst := (CP+1) mod 2; + CSrc := CP; + CDst := (CP+1) mod 2; + LSrc := Czesci[CSrc].Akt; + LDst := Czesci[CDst].Akt; + - CopyLine(Src, L, Dst, L); + CopyLine(CSrc, LSrc, CDst, LDst); Refresh; - EditorLyric[Dst].AddCzesc(Dst, Czesci[Src].Akt); - EditorLyric[Dst].Selected := 0; - AktNuta[Dst] := 0; - Czesci[Src].Czesc[L].Nuta[AktNuta[Src]].Color := 2; + EditorLyric[CDst].AddCzesc(CDst, Czesci[CDst].Akt); + EditorLyric[CDst].Selected := 0; + AktNuta[CDst] := 0; + Czesci[CSrc].Czesc[LSrc].Nuta[AktNuta[CSrc]].Color := 2; end; procedure TScreenEditSub.CopyLine(Pf, Cf, Pt, Ct: integer); @@ -2346,7 +2379,8 @@ end; procedure TScreenEditSub.DuetMoveLine; begin DuetCopyLine; - Czesci[CP].Czesc[Czesci[CP].Akt].Lyric := ''; + DeleteSentence; + {Czesci[CP].Czesc[Czesci[CP].Akt].Lyric := ''; Czesci[CP].Czesc[Czesci[CP].Akt].LyricWidth := 0; Czesci[CP].Czesc[Czesci[CP].Akt].HighNut := -1; Czesci[CP].Czesc[Czesci[CP].Akt].IlNut := 0; @@ -2356,8 +2390,8 @@ begin EditorLyric[CP].AddCzesc(CP, Czesci[CP].Akt); EditorLyric[CP].Selected := -1; - CP := (CP+1) mod 2; - Refresh; + CP := (CP+1) mod 2;} + //Refresh; end; procedure TScreenEditSub.Refresh; @@ -2434,7 +2468,7 @@ begin //Set Volume MP3Volume := 50; - Music.SetVolume(MP3Volume); + Music.SetMusicVolume(MP3Volume); CP := 0; @@ -2476,8 +2510,6 @@ begin GetTimeFromBeat(Czesci[MedleyNotes.Preview.CP].Czesc[MedleyNotes.Preview.line].Nuta[MedleyNotes.Preview.note].start); Music.Open(Path + AktSong.Mp3); - //Set Down Music Volume for Better hearability of Midi Sounds - //Music.SetVolume(40); for I := 0 to Length(Czesci)-1 do begin @@ -2839,11 +2871,11 @@ begin // draw notes if not AktSong.isDuet then - SingDrawNoteLines(5, offset[0]+90, 795, 15) + SingDrawNoteLines(5, offset[0]+90, 795, 15, 1) else begin - SingDrawNoteLines(5, offset[0]+45, 795, 15); - SingDrawNoteLines(5, offset[1]-140, 795, 15); + SingDrawNoteLines(5, offset[0]+45, 795, 15, 1); + SingDrawNoteLines(5, offset[1]-140, 795, 15, 1); end; //Error Drawing when no Song is loaded @@ -3320,7 +3352,6 @@ procedure TScreenEditSub.onHide; begin MidiOut.Close; MidiOut.Free; - //Music.SetVolume(100); end; function TScreenEditSub.GetNoteName(Note: Integer): String; diff --git a/Game/Code/Screens/UScreenLevel.pas b/Game/Code/Screens/UScreenLevel.pas index 145a3b2a..0edf989d 100644 --- a/Game/Code/Screens/UScreenLevel.pas +++ b/Game/Code/Screens/UScreenLevel.pas @@ -88,8 +88,6 @@ begin Interaction := Ini.Difficulty; if not Help.SetHelpID(ID) then Log.LogError('No Entry for Help-ID ' + ID + ' (ScreenLevel)'); -// LCD.WriteText(1, ' Choose mode: '); -// UpdateLCD; end; procedure TScreenLevel.SetAnimationProgress(Progress: real); diff --git a/Game/Code/Screens/UScreenPartyNewRound.pas b/Game/Code/Screens/UScreenPartyNewRound.pas index 7c043b7e..2a3db5b8 100644 --- a/Game/Code/Screens/UScreenPartyNewRound.pas +++ b/Game/Code/Screens/UScreenPartyNewRound.pas @@ -295,32 +295,14 @@ begin else Text[TextNextPlayer3].Visible := False; - -// LCD.WriteText(1, ' Choose mode: '); -// UpdateLCD; end; procedure TScreenPartyNewRound.Update; -{ - //Set Visibility of Round Infos - I := Length(PartySession.Rounds); - if (I >= 1) then - begin - Static[StaticRound1].Visible := True; - Text[TextRound1].Visible := True; - Text[TextWinner1].Visible := True; - - //Texts: - Text[TextRound1].Text := Language.Translate(DllMan.Plugins[PartySession.Rounds[0].Plugin].Name); - Text[TextWinner1].Text := PartySession.GetWinnerString(0); - end; } - - - var N, R: Integer; T: Integer; NumRounds: Integer; + begin //N:=0; //current round-number diff --git a/Game/Code/Screens/UScreenPartyScore.pas b/Game/Code/Screens/UScreenPartyScore.pas index 9dc824fb..cf08018d 100644 --- a/Game/Code/Screens/UScreenPartyScore.pas +++ b/Game/Code/Screens/UScreenPartyScore.pas @@ -285,10 +285,6 @@ begin Static[StaticTeam3BG].Visible := False; Static[StaticTeam3Deco].Visible := False; end; - - -// LCD.WriteText(1, ' Choose mode: '); -// UpdateLCD; end; procedure TScreenPartyScore.SetAnimationProgress(Progress: real); diff --git a/Game/Code/Screens/UScreenPartyWin.pas b/Game/Code/Screens/UScreenPartyWin.pas index 057c1f8a..97e6e038 100644 --- a/Game/Code/Screens/UScreenPartyWin.pas +++ b/Game/Code/Screens/UScreenPartyWin.pas @@ -248,20 +248,10 @@ begin Static[StaticTeam3BG].Visible := False; Static[StaticTeam3Deco].Visible := False; end; - - -// LCD.WriteText(1, ' Choose mode: '); -// UpdateLCD; end; procedure TScreenPartyWin.SetAnimationProgress(Progress: real); begin - {if (ScreenSingModi.PlayerInfo.NumPlayers >= 1) then - Static[StaticTeam1].Texture.ScaleW := Progress * ScreenSingModi.PlayerInfo.Playerinfo[0].Score / maxScore; - if (ScreenSingModi.PlayerInfo.NumPlayers >= 2) then - Static[StaticTeam2].Texture.ScaleW := Progress * ScreenSingModi.PlayerInfo.Playerinfo[1].Score / maxScore; - if (ScreenSingModi.PlayerInfo.NumPlayers >= 3) then - Static[StaticTeam3].Texture.ScaleW := Progress * ScreenSingModi.PlayerInfo.Playerinfo[2].Score / maxScore;} end; end. diff --git a/Game/Code/Screens/UScreenSing.pas b/Game/Code/Screens/UScreenSing.pas index 06cb048c..e07d5023 100644 --- a/Game/Code/Screens/UScreenSing.pas +++ b/Game/Code/Screens/UScreenSing.pas @@ -21,8 +21,9 @@ type MP3Volume: integer; MP3VolumeHandler: THandler; - //Lyric bar for Duet mode - StaticLyricDuetBar: integer; + //Lyric bars + StaticLyricBar: integer; + StaticLyricDuetBar: integer; //TimeBar mod StaticTimeProgress: integer; @@ -34,6 +35,8 @@ type TextP1: integer; TextP1Score: integer; + Alpha: TAlpha; + //moveable singbar mod StaticP1SingBar: integer; StaticP1ThreePSingBar: integer; @@ -100,7 +103,7 @@ type //OnSentenceEnd for LineBonus + Singbar procedure onSentenceEnd(CP: integer; S: Cardinal); //OnSentenceChange (for Golden Notes) - procedure onSentenceChange(S: Cardinal); + procedure onSentenceChange(CP: integer; S: Cardinal); procedure SongError(); procedure LoadNextSong; @@ -258,6 +261,7 @@ begin LoadFromTheme(Theme.Sing); + StaticLyricBar := AddStatic(Theme.Sing.StaticLyricBar); StaticLyricDuetBar := AddStatic(Theme.Sing.StaticLyricDuetBar); //TimeBar mod @@ -921,6 +925,10 @@ begin Czas.Razem := AktSong.Finish / 1000; end; + Czas.AktBeat := 0; + Czas.AktBeatC := 0; + Czas.AktBeatD := 0; + // main text LyricMain[0].Clear; LyricMain[0].X := 400; @@ -987,7 +995,9 @@ begin //Kill all Stars not Killed yet //GoldenStarsTwinkle Mod - GoldenRec.SentenceChange; + GoldenRec.SentenceChange(0); + if AktSong.isDuet then + GoldenRec.SentenceChange(1); //GoldenStarsTwinkle Mod End //Set Num of Empty Sentences for Phrasen Bonus @@ -1014,6 +1024,9 @@ begin end; Music.CaptureStart; + + for I := 0 to 3 - 1 do + Alpha[I] := 0; if ((ScreenSong.Mode = smMedley) or ScreenSong.PartyMedley) and (PlaylistMedley.CurrentMedleySong>1) then @@ -1021,9 +1034,11 @@ begin end; procedure TScreenSing.onShowFinish; +var + I: integer; + begin // play movie (II) - if AktSong.VideoLoaded then begin try @@ -1054,6 +1069,9 @@ begin end; function TScreenSing.Draw: boolean; +Const + dt = 5; + var Min: integer; Sec: integer; @@ -1061,6 +1079,8 @@ var Flash: real; S: integer; T: integer; + I, J, K:integer; + ab: real; lastLine, LastWord: integer; medley_end: boolean; medley_start_applause: boolean; @@ -1385,12 +1405,64 @@ begin end; end; end; - + + for I := 0 to Length(Czesci) - 1 do + begin + K := Czesci[I].Akt; + for J := 0 to Czesci[I].High do + begin + if Czas.AktBeat >= Czesci[I].Czesc[J].Start then + K := J; + end; + + ab := GetTimeFromBeat(Czesci[I].Czesc[K].StartNote) - Czas.Teraz; + + if (K = Czesci[I].High) then + ab := Czas.Teraz - GetTimeFromBeat(Czesci[I].Czesc[K].Nuta[Czesci[I].Czesc[K].HighNut].Start+ + Czesci[I].Czesc[K].Nuta[Czesci[I].Czesc[K].HighNut].Dlugosc); + + if (ab>2*dt) then + begin + Alpha[I] := Alpha[I]-TimeSkip/dt; + if (Alpha[I]<0) then + Alpha[I] := 0; + end else if (ab>dt) then + begin + Alpha[I] := Alpha[I]+TimeSkip/dt; + if (Alpha[I]>1) then + Alpha[I] := 1; + end else + Alpha[I] := 1; + + if (K < Czesci[I].High) then + begin + ab := GetTimeFromBeat(Czesci[I].Czesc[K+1].StartNote) - Czas.Teraz; + + if (ab>2*dt) then + Alpha[I+2] := 0 + else if (ab>dt) then + Alpha[I+2] := (1-(ab-dt)/dt) + else + Alpha[I+2] := 1; + end; + end; + + if not AktSong.isDuet then + begin + Alpha[1] := Alpha[0]; + Alpha[3] := Alpha[2]; + end; + + Static[StaticLyricBar].Texture.Alpha := Alpha[1]; + + if AktSong.isDuet then + Static[StaticLyricDuetBar].Texture.Alpha := Alpha[0]; + // draw custom items - SingDraw; // always draw + SingDraw(Alpha); // always draw //GoldenNoteStarsTwinkle Mod - GoldenRec.SpawnRec; + GoldenRec.SpawnRec(Alpha); //GoldenNoteStarsTwinkle Mod // back stereo @@ -1766,10 +1838,10 @@ begin end; //Called on Sentence Change S= New Current Sentence -procedure TScreenSing.onSentenceChange(S: Cardinal); +procedure TScreenSing.onSentenceChange(CP: integer; S: Cardinal); begin //GoldenStarsTwinkle Mod - GoldenRec.SentenceChange; + GoldenRec.SentenceChange(CP); //GoldenStarsTwinkle Mod End end; diff --git a/Game/Code/Screens/UScreenSingModi.pas b/Game/Code/Screens/UScreenSingModi.pas index 6010aed8..6144c27f 100644 --- a/Game/Code/Screens/UScreenSingModi.pas +++ b/Game/Code/Screens/UScreenSingModi.pas @@ -276,16 +276,22 @@ begin end; function TScreenSingModi.Draw: boolean; +Const + dt = 5; + var Min: integer; Sec: integer; Tekst: string; - S, I: integer; + S, I: integer; + K, J: integer; T: integer; - lastLine, LastWord: integer; + lastLine, LastWord: integer; medley_end: boolean; medley_start_applause: boolean; CurTime: real; + ab: real; + begin //Aspect if AspectHandler.changed and (Czas.Teraz>AspectHandler.change_time + 3) then @@ -618,11 +624,59 @@ end; end; end; + for I := 0 to Length(Czesci) - 1 do + begin + K := Czesci[I].Akt; + for J := 0 to Czesci[I].High do + begin + if Czas.AktBeat >= Czesci[I].Czesc[J].Start then + K := J; + end; + ab := GetTimeFromBeat(Czesci[I].Czesc[K].StartNote) - Czas.Teraz; + + if (K = Czesci[I].High) then + ab := Czas.Teraz - GetTimeFromBeat(Czesci[I].Czesc[K].Nuta[Czesci[I].Czesc[K].HighNut].Start+ + Czesci[I].Czesc[K].Nuta[Czesci[I].Czesc[K].HighNut].Dlugosc); + + if (ab>2*dt) then + begin + Alpha[I] := Alpha[I]-TimeSkip/dt; + if (Alpha[I]<0) then + Alpha[I] := 0; + end else if (ab>dt) then + begin + Alpha[I] := Alpha[I]+TimeSkip/dt; + if (Alpha[I]>1) then + Alpha[I] := 1; + end else + Alpha[I] := 1; + + if (K < Czesci[I].High) then + begin + ab := GetTimeFromBeat(Czesci[I].Czesc[K+1].StartNote) - Czas.Teraz; + + if (ab>2*dt) then + Alpha[I+2] := 0 + else if (ab>dt) then + Alpha[I+2] := (1-(ab-dt)/dt) + else + Alpha[I+2] := 1; + end; + end; + + if not AktSong.isDuet then + begin + Alpha[1] := Alpha[0]; + Alpha[3] := Alpha[2]; + end; + + Static[StaticLyricBar].Texture.Alpha := Alpha[1]; + // draw custom items - SingModiDraw(PlayerInfo); // always draw + SingModiDraw(PlayerInfo, Alpha); // always draw //GoldenNoteStarsTwinkle Mod - GoldenRec.SpawnRec; + GoldenRec.SpawnRec(Alpha); //GoldenNoteStarsTwinkle Mod //Update PlayerInfo diff --git a/Game/Code/Screens/UScreenSong.pas b/Game/Code/Screens/UScreenSong.pas index 4c394ceb..bed5ae0a 100644 --- a/Game/Code/Screens/UScreenSong.pas +++ b/Game/Code/Screens/UScreenSong.pas @@ -165,7 +165,7 @@ type procedure SelectPrev; procedure SkipTo(Target: Cardinal); procedure RandomSongChallenge(); - procedure SkipTo2(Target: Integer); //skipt exactly to the target song nr. + procedure SkipTo2(Target: Integer); //skip exactly to the target song nr. procedure FixSelected; //Show Wrong Song when Tabs on Fix procedure FixSelected2; //Show Wrong Song when Tabs on Fix procedure ShowCatTL(Cat: Integer);// Show Cat in Top left @@ -1395,7 +1395,7 @@ begin Refresh(false); PlaylistMan.LoadPlayLists; - + if jump then I2 := PlaylistMan.FindSong(Artist, Title) else @@ -2063,7 +2063,7 @@ end; procedure TScreenSong.onShow; var - I: Integer; + I: integer; begin if Music.VocalRemoverActivated() then @@ -2154,13 +2154,8 @@ begin end else if (Mode<>smNormal) and (Ini.Tabs = 0) then begin CatSongs.SetFilter('', 0); - end else if (Ini.Tabs = 0) then - begin - CatSongs.SetFilter('', 0); - FixSelected; end; - //Playlist Mode if (Mode = smNormal) then begin diff --git a/Game/Code/Screens/UScreenSongJumpto.pas b/Game/Code/Screens/UScreenSongJumpto.pas index f4d0d796..af08edc9 100644 --- a/Game/Code/Screens/UScreenSongJumpto.pas +++ b/Game/Code/Screens/UScreenSongJumpto.pas @@ -105,6 +105,7 @@ begin begin Button[0].Text[0].Text := ''; SetTextFound(CatSongs.SetFilter(Button[0].Text[0].Text, SelectType)); + isDuet := false; end; end; @@ -291,5 +292,4 @@ begin else ResetDuetFilter; end; - end. -- cgit v1.2.3