aboutsummaryrefslogtreecommitdiffstats
path: root/Game/Code/Screens
diff options
context:
space:
mode:
authorbrunzelchen <brunzelchen@b956fd51-792f-4845-bead-9b4dfca2ff2c>2010-06-21 16:33:16 +0000
committerbrunzelchen <brunzelchen@b956fd51-792f-4845-bead-9b4dfca2ff2c>2010-06-21 16:33:16 +0000
commit041ee1b932cc9c058c545595751b77893dde75dc (patch)
treedbef0bfdfd42be0b77feae2d3715ced08cbfacce /Game/Code/Screens
parentbb0c744c662768afe58908129c4813da39bd3399 (diff)
downloadusdx-041ee1b932cc9c058c545595751b77893dde75dc.tar.gz
usdx-041ee1b932cc9c058c545595751b77893dde75dc.tar.xz
usdx-041ee1b932cc9c058c545595751b77893dde75dc.zip
- 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
Diffstat (limited to 'Game/Code/Screens')
-rw-r--r--Game/Code/Screens/UScreenCredits.pas171
-rw-r--r--Game/Code/Screens/UScreenEditSub.pas167
-rw-r--r--Game/Code/Screens/UScreenLevel.pas2
-rw-r--r--Game/Code/Screens/UScreenPartyNewRound.pas20
-rw-r--r--Game/Code/Screens/UScreenPartyScore.pas4
-rw-r--r--Game/Code/Screens/UScreenPartyWin.pas10
-rw-r--r--Game/Code/Screens/UScreenSing.pas92
-rw-r--r--Game/Code/Screens/UScreenSingModi.pas62
-rw-r--r--Game/Code/Screens/UScreenSong.pas11
-rw-r--r--Game/Code/Screens/UScreenSongJumpto.pas2
10 files changed, 331 insertions, 210 deletions
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.