From e3ec6fbc344c9af26b80932d3a29fb4bf1f6c9a2 Mon Sep 17 00:00:00 2001 From: mogguh Date: Thu, 26 Apr 2007 00:11:39 +0000 Subject: Feature: Credits screen is now a screen for itself (UGraphic.pas, UScreenMain.pas, UScreenCredits.pas) Feature: Credits screen now has a tune in the background, thanks weezl <3 !! (place the mp3 into your "Sounds" path) git-svn-id: svn://svn.code.sf.net/p/ultrastardx/svn/trunk@141 b956fd51-792f-4845-bead-9b4dfca2ff2c --- Game/Code/Classes/UGraphic.pas | 11 +- Game/Code/Screens/UScreenCredits.pas | 223 +++++++++++++++++++++++++++++++++++ Game/Code/Screens/UScreenMain.pas | 184 +++-------------------------- Game/Code/UltraStar.dpr | 25 +--- Game/Sounds/wome_-_echoes.mp3 | Bin 0 -> 1063307 bytes 5 files changed, 247 insertions(+), 196 deletions(-) create mode 100644 Game/Code/Screens/UScreenCredits.pas create mode 100644 Game/Sounds/wome_-_echoes.mp3 (limited to 'Game') diff --git a/Game/Code/Classes/UGraphic.pas b/Game/Code/Classes/UGraphic.pas index 342efe3c..df7cd411 100644 --- a/Game/Code/Classes/UGraphic.pas +++ b/Game/Code/Classes/UGraphic.pas @@ -8,7 +8,8 @@ uses UScreenSong, UScreenSing, UScreenScore, UScreenTop5, UScreenEditSub, UScreenEdit, UScreenEditConvert, UScreenEditHeader, UScreenOpen, UThemes, USkins, UScreenSongMenu, UScreenSongJumpto, {Party Screens} UScreenSingModi, UScreenPartyNewRound, UScreenPartyScore, UScreenPartyOptions, UScreenPartyWin, UScreenPartyPlayer, - {Stats Screens} UScreenStatMain, UScreenStatDetail; + {Stats Screens} UScreenStatMain, UScreenStatDetail, + {CreditsScreen} UScreenCredits; type TRecR = record @@ -67,7 +68,10 @@ var ScreenStatMain: TScreenStatMain; ScreenStatDetail: TScreenStatDetail; + //CreditsScreen + ScreenCredits: TScreenCredits; + //Notes Tex_Left: array[0..6] of TTexture; Tex_Mid: array[0..6] of TTexture; Tex_Right: array[0..6] of TTexture; @@ -443,6 +447,9 @@ begin Log.BenchmarkEnd(3); Log.LogBenchmark('====> Screen Stat Main', 3); Log.BenchmarkStart(3); ScreenStatDetail := TScreenStatDetail.Create; Log.BenchmarkEnd(3); Log.LogBenchmark('====> Screen Stat Detail', 3); Log.BenchmarkStart(3); -end; + ScreenCredits := TScreenCredits.Create(''); + Log.BenchmarkEnd(3); Log.LogBenchmark('====> Screen Credits', 3); Log.BenchmarkStart(3); + + end; end. diff --git a/Game/Code/Screens/UScreenCredits.pas b/Game/Code/Screens/UScreenCredits.pas new file mode 100644 index 00000000..2e5f4abc --- /dev/null +++ b/Game/Code/Screens/UScreenCredits.pas @@ -0,0 +1,223 @@ +unit UScreenCredits; + +interface + +uses + UMenu, SDL, UDisplay, UMusic, UPliki, SysUtils, UThemes, ULCD, ULight; + +type + TScreenCredits = class(TMenu) + public + + Credits_Y: Real; + Credits_Time: Cardinal; + Credits_Alpha: Cardinal; + + Fadeout: boolean; + constructor Create(Back: String); override; + function ParseInput(PressedKey: Cardinal; ScanCode: byte; PressedDown: Boolean): Boolean; override; + function Draw: boolean; override; + procedure onShow; override; + procedure onHide; override; + procedure DrawCredits; + end; + + const Credits_Text: Array[0..52] of PChar = ( + ':SPACE:', + 'Main Idea: Corvus 5', + 'Thank you very much for this great Game', + ':SPACE:', + 'The Ultrastar Deluxe Team:', + ':SPACE:', + 'blindy:', + 'VFX Programming', + ':SPACE:', + 'commandi00:', + 'Beta Testing', + ':SPACE:', + 'Crazy Joker:', + 'Graphics', + ':SPACE:', + 'DennistheMenace:', + 'Beta Testing and great Support in "the Board"', + ':SPACE:', + 'Mog:', + 'Programming, Graphics', + ':SPACE:', + 'Mota:', + 'Programming, Idea of creating this Mod', + ':SPACE:', + 'Sawyer:', + 'Web Master, Programming', + ':SPACE:', + 'Whiteshark:', + 'Programming, Creating Release', + ':SPACE:', + ':SPACE:', + 'Thanks to', + ':SPACE:', + 'Blind Guard', + 'for supporting us and administrate this great Board', + ':SPACE:', + 'Weezl', + 'for the credits screen music', + ':SPACE:', + 'The whole Community from www.ultra-star.dl.am', + 'for supporting us, supporting the newbies', + 'and remembering us to continue work', + ':SPACE:', + 'You', + 'for using Ultrastar Deluxe', + ':SPACE:', + ':SPACE:', + 'Visit us at:', + 'http://www.ultrastardx.dl.am', + 'http://sourceforge.net/projects/ultrastardx/', + 'http://www.Ultra-Star.dl.am', + 'Please write Bug Reports and Feature Requests', + 'to help making this a better Game'); + + +implementation + +uses Dialogs,Windows, UGraphic, UMain, UIni, UTexture, USongs, Textgl, opengl, ULanguage; + +function TScreenCredits.ParseInput(PressedKey: Cardinal; ScanCode: byte; PressedDown: Boolean): Boolean; +begin + Result := true; + If (PressedDown) Then + begin // Key Down + case PressedKey of + SDLK_ESCAPE : + begin + FadeTo(@ScreenMain); + Music.PlayBack; + end; + end;//esac + end; //fi +end; + +constructor TScreenCredits.Create(Back: String); +var + I: integer; +begin + inherited Create(Back); + + AddBackground(Theme.Loading.Background.Tex); + +// for I := 0 to High(Theme.Loading.Static) do +// AddStatic(Theme.Loading.Static[I]); + +// for I := 0 to High(Theme.Loading.Text) do +// AddText(Theme.Loading.Text[I]); + + Fadeout := false; +end; + +function TScreenCredits.Draw: boolean; +begin + DrawCredits; +end; + +procedure TScreenCredits.onShow; +begin + Credits_Y := 600; + Credits_Alpha := 0; + //Music.SetLoop(true); Loop looped ned, so ne scheisse + Music.Open(soundpath + 'wome_-_echoes.mp3'); //danke kleinster liebster weeeetüüüüü!! + Music.Play; +end; + +procedure TScreenCredits.onHide; +begin + Music.Stop; +end; + +procedure TScreenCredits.DrawCredits; +var + T,I: Cardinal; + Y: Real; + Ver: PChar; +begin + T := GetTickCount div 33; + if T <> Credits_Time then + begin + Credits_Time := T; + //Change Position + Credits_Y := Credits_Y - 1; + //Change Alpha + Inc (Credits_Alpha, 3); + end; + //If lowest Position is outside the Screen-> Show MainMenu + if (Y <= 0) then + Y := 600; + //Draw BackGround + DrawBG; + + + //Draw pulsing Credits Text + //Set Font + SetFontStyle (2); + SetFontItalic(False); + SetFontSize(9); + SetFontPos (10, 5); + glColor4f(1, 0, 0, 0.2 + Abs((Credits_Alpha mod 150)/100 - 0.75)); + glPrint ('You may press ESC now'); + + //Set Font Size for Credits + SetFontSize(12); + //Draw Version + if (Credits_Y>-35) then + begin + Ver := PChar(Language.Translate('US_VERSION')); + //Set Color + if Credits_Y > 500 then + glColor4f(1, 0.6, 0.08, (600 - Credits_Y)/100 - 0.2) + else + glColor4f(1, 0.6, 0.08, 0.8); + + SetFontPos (400 - glTextWidth(Ver)/2, Credits_Y); + glprint(Ver); + end; + + //Set Color + Start Pos + glColor4f(0.8, 0.8, 1, 0.8); + Y := Credits_Y + 50; + + //Search upper Position + For I := 0 to high(Credits_Text) do + begin + if (Credits_Text[I]=':SPACE:') then //Spacer + Y := Y + 55 + else + Y := Y + 30; + + if Y > -35 then + break; + end; + + //Draw Text + For T := I+1 to high(Credits_Text) do + begin + if (Credits_Text[T]=':SPACE:') then //Spacer + Y := Y + 55 + else + begin + //Set Color + if Y > 500 then + glColor4f(0.8, 0.8, 1, (600 - Y)/100 - 0.2) + else + glColor4f(0.8, 0.8, 1, 0.8); + + SetFontPos (400 - glTextWidth(Credits_Text[T])/2, Y); + glprint(Credits_Text[T]); + Y := Y + 30; + end; + + if Y > 600 then + break; + end; + +end; + +end. diff --git a/Game/Code/Screens/UScreenMain.pas b/Game/Code/Screens/UScreenMain.pas index 051cd101..28c255d1 100644 --- a/Game/Code/Screens/UScreenMain.pas +++ b/Game/Code/Screens/UScreenMain.pas @@ -11,14 +11,6 @@ type TextDescription: integer; TextDescriptionLong: integer; - //Credits Mod - Credits_Visible: Boolean; - Credits_Y: Real; - Credits_Time: Cardinal; - Credits_Alpha: Cardinal; - procedure DrawCredits; - //Credits Mod End - constructor Create; override; function ParseInput(PressedKey: Cardinal; ScanCode: byte; PressedDown: Boolean): Boolean; override; procedure onShow; override; @@ -26,65 +18,12 @@ type procedure InteractPrev; override; procedure UpdateLCD; procedure SetAnimationProgress(Progress: real); override; - function Draw: boolean; override; + //function Draw: boolean; override; end; -const Credits_Text: Array[0..49] of PChar = ( - ':SPACE:', - 'Main Idea: Corvus 5', - 'Thank you very much for this great Game', - ':SPACE:', - 'The Ultrastar Deluxe Team:', - ':SPACE:', - 'blindy:', - 'VFX Programming', - ':SPACE:', - 'commandi00:', - 'Beta Testing', - ':SPACE:', - 'Crazy Joker:', - 'Graphics', - ':SPACE:', - 'DennistheMenace:', - 'Beta Testing and great Support in "the Board"', - ':SPACE:', - 'Mog:', - 'Programming, Graphics', - ':SPACE:', - 'Mota:', - 'Programming, Idea of creating this Mod', - ':SPACE:', - 'Sawyer:', - 'Web Master, Programming', - ':SPACE:', - 'Whiteshark:', - 'Programming, Creating Release', - ':SPACE:', - ':SPACE:', - 'Thanks to', - ':SPACE:', - 'Blind Guard', - 'for supporting us and administrate this great Board', - ':SPACE:', - 'The whole Community from www.ultra-star.dl.am', - 'for supporting us, supporting the newbies', - 'and remembering us to continue work', - ':SPACE:', - 'You', - 'for using Ultrastar Deluxe', - ':SPACE:', - ':SPACE:', - 'Visit us at:', - 'http://www.ultrastardx.dl.am', - 'http://sourceforge.net/projects/ultrastardx/', - 'http://www.Ultra-Star.dl.am', - 'Please write Bug Reports and Feature Requests', - 'to help making this a better Game'); - - implementation -uses Windows, UGraphic, UMain, UIni, UTexture, USongs, Textgl, opengl, ULanguage, UParty, UDLLManager; +uses Windows, UGraphic, UMain, UIni, UTexture, USongs, Textgl, opengl, ULanguage, UParty, UDLLManager, UScreenCredits; function TScreenMain.ParseInput(PressedKey: Cardinal; ScanCode: byte; PressedDown: Boolean): Boolean; @@ -98,11 +37,11 @@ begin + KMOD_LCTRL + KMOD_RCTRL + KMOD_LALT + KMOD_RALT); //Deactivate Credits when Key is pressed - if Credits_Visible then - begin - Credits_Visible := False; - exit; - end; +// if Credits_Visible then +// begin +// Credits_Visible := False; +// exit; +// end; If (PressedDown) Then begin // Key Down @@ -121,9 +60,11 @@ begin begin if (SDL_ModState = KMOD_LALT) then begin - Credits_Y := 600; - Credits_Alpha := 0; - Credits_Visible := True; + //Credits_Y := 600; + //Credits_Alpha := 0; + //Credits_Visible := True; + Music.PlayStart; + FadeTo(@ScreenCredits); end; end; SDLK_M: @@ -210,7 +151,7 @@ begin Interaction := 0; //Some Testing for Button Fade - Button[0].SelectH := Button[0].H * 3; +{ Button[0].SelectH := Button[0].H * 3; Button[0].Fade := True; Button[0].FadeText := True; Button[0].DeSelectReflectionspacing := 280; @@ -225,6 +166,7 @@ begin Button[3].SelectH := Button[0].H * 3; Button[3].Fade := True; Button[3].FadeText := True; +} end; procedure TScreenMain.onShow; @@ -266,102 +208,4 @@ begin Static[0].Texture.ScaleW := Progress; Static[0].Texture.ScaleH := Progress; end; - -function TScreenMain.Draw: boolean; -begin -Result := True; -if Credits_Visible then - DrawCredits -else - Result := inherited Draw; -end; - -procedure TScreenMain.DrawCredits; -var - T, I: Cardinal; - Y: Real; - Ver: PChar; -begin - T := GetTickCount div 33; - if T <> Credits_Time then - begin - Credits_Time := T; - //Change Position - Credits_Y := Credits_Y - 1; - //Change Alpha - Inc (Credits_Alpha, 3); - end; - - //Draw BackGround - DrawBG; - - - //Draw pulsing Credits Text - //Set Font - SetFontStyle (2); - SetFontItalic(False); - SetFontSize(9); - SetFontPos (10, 5); - glColor4f(1, 0, 0, 0.2 + Abs((Credits_Alpha mod 150)/100 - 0.75)); - glPrint ('Credits! Press any Key to Continue'); - - //Set Font Size for Credits - SetFontSize(12); - //Draw Version - if (Credits_Y>-35) then - begin - Ver := PChar(Language.Translate('US_VERSION')); - //Set Color - if Credits_Y > 500 then - glColor4f(1, 0.6, 0.08, (600 - Credits_Y)/100 - 0.2) - else - glColor4f(1, 0.6, 0.08, 0.8); - - SetFontPos (400 - glTextWidth(Ver)/2, Credits_Y); - glprint(Ver); - end; - - //Set Color + Start Pos - glColor4f(0.8, 0.8, 1, 0.8); - Y := Credits_Y + 50; - - //Search upper Position - For I := 0 to high(Credits_Text) do - begin - if (Credits_Text[I]=':SPACE:') then //Spacer - Y := Y + 55 - else - Y := Y + 30; - - if Y > -35 then - break; - end; - - //Draw Text - For T := I+1 to high(Credits_Text) do - begin - if (Credits_Text[T]=':SPACE:') then //Spacer - Y := Y + 55 - else - begin - //Set Color - if Y > 500 then - glColor4f(0.8, 0.8, 1, (600 - Y)/100 - 0.2) - else - glColor4f(0.8, 0.8, 1, 0.8); - - SetFontPos (400 - glTextWidth(Credits_Text[T])/2, Y); - glprint(Credits_Text[T]); - Y := Y + 30; - end; - - if Y > 600 then - break; - end; - - //If lowest Position is outside the Screen-> Show MainMenu - if (Y <= 0) then - Credits_Visible := False; -end; - end. diff --git a/Game/Code/UltraStar.dpr b/Game/Code/UltraStar.dpr index d5418e04..0db37635 100644 --- a/Game/Code/UltraStar.dpr +++ b/Game/Code/UltraStar.dpr @@ -6,9 +6,6 @@ program UltraStar; {$R 'UltraStar.res' 'UltraStar.rc'} uses - //------------------------------ - //Includes - Menu System - //------------------------------ UDisplay in 'Menu\UDisplay.pas', UMenu in 'Menu\UMenu.pas', UMenuStatic in 'Menu\UMenuStatic.pas', @@ -18,10 +15,6 @@ uses UMenuSelect in 'Menu\UMenuSelect.pas', UMenuSelectSlide in 'Menu\UMenuSelectSlide.pas', UDrawTexture in 'Menu\UDrawTexture.pas', - - //------------------------------ - //Includes - Classes - //------------------------------ UGraphic in 'Classes\UGraphic.pas', UTexture in 'Classes\UTexture.pas', UMusic in 'Classes\UMusic.pas', @@ -50,10 +43,6 @@ uses UDLLManager in 'Classes\UDLLManager.pas', UParty in 'Classes\UParty.pas', UPlaylist in 'Classes\UPlaylist.pas', - - //------------------------------ - //Includes - Screens - //------------------------------ UScreenLoading in 'Screens\UScreenLoading.pas', UScreenWelcome in 'Screens\UScreenWelcome.pas', UScreenMain in 'Screens\UScreenMain.pas', @@ -80,30 +69,18 @@ uses UScreenSongJumpto in 'Screens\UScreenSongJumpto.pas', UScreenStatMain in 'Screens\UScreenStatMain.pas', UScreenStatDetail in 'Screens\UScreenStatDetail.pas', - - //------------------------------ - //Includes - Screens PartyMode - //------------------------------ UScreenSingModi in 'Screens\UScreenSingModi.pas', UScreenPartyNewRound in 'Screens\UScreenPartyNewRound.pas', UScreenPartyScore in 'Screens\UScreenPartyScore.pas', UScreenPartyPlayer in 'Screens\UScreenPartyPlayer.pas', UScreenPartyOptions in 'Screens\UScreenPartyOptions.pas', UScreenPartyWin in 'Screens\UScreenPartyWin.pas', - - //------------------------------ - //Includes - Modi SDK - //------------------------------ ModiSDK in '..\..\Modis\SDK\ModiSDK.pas', - - //------------------------------ - //Includes - Delphi - //------------------------------ + UScreenCredits in 'Screens\UScreenCredits.pas', Windows, SDL, SysUtils; - const Version = 'UltraStar Deluxe V 0.96 Beta'; diff --git a/Game/Sounds/wome_-_echoes.mp3 b/Game/Sounds/wome_-_echoes.mp3 new file mode 100644 index 00000000..ddde2d60 Binary files /dev/null and b/Game/Sounds/wome_-_echoes.mp3 differ -- cgit v1.2.3