From 0aeea2f7687d037282ff5ebd85ac361f19474c39 Mon Sep 17 00:00:00 2001 From: mogguh Date: Sat, 23 Aug 2008 12:40:29 +0000 Subject: Visualization are now available and configurable via the options graphics screen git-svn-id: svn://svn.code.sf.net/p/ultrastardx/svn/trunk@1286 b956fd51-792f-4845-bead-9b4dfca2ff2c --- Game/Code/Screens/UScreenOptionsGraphics.pas | 12 +++---- Game/Code/Screens/UScreenSing.pas | 49 +++++++++++++++++++++------- 2 files changed, 43 insertions(+), 18 deletions(-) (limited to 'Game/Code/Screens') 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); -- cgit v1.2.3