aboutsummaryrefslogtreecommitdiffstats
path: root/Game/Code/Screens
diff options
context:
space:
mode:
Diffstat (limited to 'Game/Code/Screens')
-rw-r--r--Game/Code/Screens/UScreenOptionsGraphics.pas12
-rw-r--r--Game/Code/Screens/UScreenSing.pas49
2 files changed, 43 insertions, 18 deletions
diff --git a/Game/Code/Screens/UScreenOptionsGraphics.pas b/Game/Code/Screens/UScreenOptionsGraphics.pas
index 08fca99d..f2b6faa2 100644
--- a/Game/Code/Screens/UScreenOptionsGraphics.pas
+++ b/Game/Code/Screens/UScreenOptionsGraphics.pas
@@ -17,7 +17,7 @@ type
implementation
-uses UGraphic, UMain, SysUtils;
+uses UGraphic, UMain, SysUtils, TypInfo;
function TScreenOptionsGraphics.ParseInput(PressedKey: Cardinal; CharCode: WideChar; PressedDown: Boolean): Boolean;
begin
@@ -48,7 +48,7 @@ begin
{ if SelInteraction <= 1 then begin
Restart := true;
end;}
- if SelInteraction = 5 then begin
+ if SelInteraction = 6 then begin
Ini.Save;
AudioPlayback.PlaySound(SoundLib.Back);
// FIXME: changing the video mode does not work this way in windows
@@ -66,14 +66,14 @@ begin
InteractPrev;
SDLK_RIGHT:
begin
- if (SelInteraction >= 0) and (SelInteraction <= 4) then begin
+ if (SelInteraction >= 0) and (SelInteraction < 6) then begin
AudioPlayback.PlaySound(SoundLib.Option);
InteractInc;
end;
end;
SDLK_LEFT:
begin
- if (SelInteraction >= 0) and (SelInteraction <= 4) then begin
+ if (SelInteraction >= 0) and (SelInteraction < 6) then begin
AudioPlayback.PlaySound(SoundLib.Option);
InteractDec;
end;
@@ -87,12 +87,12 @@ constructor TScreenOptionsGraphics.Create;
// I: integer; // Auto Removed, Unused Variable
begin
inherited Create;
-
LoadFromTheme(Theme.OptionsGraphics);
AddSelectSlide(Theme.OptionsGraphics.SelectResolution, Ini.Resolution, IResolution);
AddSelectSlide(Theme.OptionsGraphics.SelectFullscreen, Ini.Fullscreen, IFullscreen);
- AddSelectSlide(Theme.OptionsGraphics.SelectDepth, Ini.Depth, IDepth);
+ AddSelectSlide(Theme.OptionsGraphics.SelectDepth, Ini.Depth, IDepth);
+ AddSelectSlide(Theme.OptionsGraphics.SelectVisualizer, Ini.VisualizerOption, IVisualizer);
AddSelectSlide(Theme.OptionsGraphics.SelectOscilloscope, Ini.Oscilloscope, IOscilloscope);
AddSelectSlide(Theme.OptionsGraphics.SelectMovieSize, Ini.MovieSize, IMovieSize);
diff --git a/Game/Code/Screens/UScreenSing.pas b/Game/Code/Screens/UScreenSing.pas
index 8edd2be4..911d122e 100644
--- a/Game/Code/Screens/UScreenSing.pas
+++ b/Game/Code/Screens/UScreenSing.pas
@@ -423,23 +423,38 @@ begin
// reset video playback engine, to play video clip...
fCurrentVideoPlaybackEngine.Close;
fCurrentVideoPlaybackEngine := VideoPlayback;
-
- // set movie
+{**
+ * == Background ==
+ * We have four types of backgrounds:
+ * + Blank : Nothing has been set, this is our fallback
+ * + Picture : Picture has been set, and exists - otherwise we fallback
+ * + Video : Video has been set, and exists - otherwise we fallback
+ * + Visualization: + Off : No Visialization
+ * + WhenNoVideo: Overwrites Blank and Picture
+ * + On : Overwrites Blank, Picture and Video
+ *}
+{**
+ * set background to: video
+ *}
CurrentSong.VideoLoaded := False;
fShowVisualization := False;
if (CurrentSong.Video <> '') and FileExists(CurrentSong.Path + CurrentSong.Video) then
- //and not (TVisualizerOption(Ini.VisualizerOption) in [voOn, voWhenNoVideo]) then
begin
if (fCurrentVideoPlaybackEngine.Open(CurrentSong.Path + CurrentSong.Video)) then
begin
+ fShowVisualization := False;
+ fCurrentVideoPlaybackEngine := VideoPlayback;
fCurrentVideoPlaybackEngine.Position := CurrentSong.VideoGAP + CurrentSong.Start;
CurrentSong.VideoLoaded := True;
+ fCurrentVideoPlaybackEngine.play;
end;
end;
- // set background
- if (CurrentSong.Background <> '') and (CurrentSong.VideoLoaded = False) then
- //and (TVisualizerOption(Ini.VisualizerOption) = voOff) then
+{**
+ * set background to: picture
+ *}
+ if (CurrentSong.Background <> '') and (CurrentSong.VideoLoaded = False)
+ and (TVisualizerOption(Ini.VisualizerOption) = voOff) then
try
Tex_Background := Texture.LoadTexture(CurrentSong.Path + CurrentSong.Background);
except
@@ -449,17 +464,27 @@ begin
end
else
Tex_Background.TexNum := 0;
- {**
- * set visualization
- *}
- {*
- if (TVisualizerOption(Ini.VisualizerOption) in [voOn, voWhenNoVideo]) then
+{**
+ * set background to: visualization (Overwrites all)
+ *}
+ if (TVisualizerOption(Ini.VisualizerOption) in [voOn]) then
+ begin
+ fShowVisualization := True;
+ fCurrentVideoPlaybackEngine := Visualization;
+ fCurrentVideoPlaybackEngine.play;
+ end;
+
+{**
+ * set background to: visualization (Videos are still shown)
+ *}
+ if ((TVisualizerOption(Ini.VisualizerOption) in [voWhenNoVideo]) and
+ (CurrentSong.VideoLoaded = False)) then
begin
fShowVisualization := True;
fCurrentVideoPlaybackEngine := Visualization;
fCurrentVideoPlaybackEngine.play;
end;
- *}
+
// prepare lyrics timer
LyricsState.Reset();
LyricsState.SetCurrentTime(CurrentSong.Start);