From 4f10526633c463675defb42b4d8e27e21105ec21 Mon Sep 17 00:00:00 2001 From: brunzelchen Date: Wed, 10 Nov 2010 17:23:37 +0000 Subject: - added polish language (thx to Pit33) - added polish fonts - added lipsync option - fixed drawing webcam on 2 screens - added copy&paste for duets in editor - some bugfixes in editor - change language without restart git-svn-id: svn://svn.code.sf.net/p/ultrastardx/svn/branches/1.0.1 Challenge MOD@2730 b956fd51-792f-4845-bead-9b4dfca2ff2c --- Game/Code/Screens/UScreenOptionsGame.pas | 42 ++++++++++++++++++++++++++------ 1 file changed, 35 insertions(+), 7 deletions(-) (limited to 'Game/Code/Screens/UScreenOptionsGame.pas') diff --git a/Game/Code/Screens/UScreenOptionsGame.pas b/Game/Code/Screens/UScreenOptionsGame.pas index c698b046..bce3b1f1 100644 --- a/Game/Code/Screens/UScreenOptionsGame.pas +++ b/Game/Code/Screens/UScreenOptionsGame.pas @@ -9,10 +9,11 @@ type TScreenOptionsGame = class(TMenu) private old_Tabs, old_Sorting: integer; + old_Language: integer; procedure Leave; procedure RefreshSongs; - + procedure RefreshLanguage; public constructor Create; override; function ParseInput(PressedKey: Cardinal; ScanCode: byte; PressedDown: Boolean): Boolean; override; @@ -24,7 +25,7 @@ const implementation -uses UGraphic, UHelp, ULog, UPlaylist; +uses UGraphic, UHelp, ULog, UPlaylist, ULanguage, TextGL, UTexture; function TScreenOptionsGame.ParseInput(PressedKey: Cardinal; ScanCode: byte; PressedDown: Boolean): Boolean; begin @@ -59,14 +60,16 @@ begin InteractPrev; SDLK_RIGHT: begin - if (SelInteraction >= 0) and (SelInteraction <= 6) then begin + if (SelInteraction >= 0) and (SelInteraction <= 6) then + begin Music.PlayOption; InteractInc; end; end; SDLK_LEFT: begin - if (SelInteraction >= 0) and (SelInteraction <= 6) then begin + if (SelInteraction >= 0) and (SelInteraction <= 6) then + begin Music.PlayOption; InteractDec; end; @@ -99,13 +102,36 @@ end; //Refresh Songs Patch procedure TScreenOptionsGame.RefreshSongs; begin - if (ini.Sorting <> old_Sorting) or (ini.Tabs <> old_Tabs) then + if (Ini.Sorting <> old_Sorting) or (Ini.Tabs <> old_Tabs) then begin ScreenSong.Refresh(false); PlaylistMan.LoadPlayLists; end; end; +procedure TScreenOptionsGame.RefreshLanguage; +begin + if (Ini.Language = old_Language) then + Exit; + + UGraphic.UnLoadScreens(); + KillFont; + + BuildFont; + Language.ChangeLanguage(ILanguage[Ini.Language]); + Help.ChangeLanguage(ILanguage[Ini.Language]); + + Theme.LoadTheme('Themes\' + ITheme[Ini.Theme] + '.ini', Ini.Color); + UGraphic.LoadScreens( true ); + ScreenSong.Refresh(true); + PlaylistMan.LoadPlayLists; + + old_language := Ini.Language; + old_Sorting := Ini.Sorting; + old_Tabs := Ini.Tabs; + ScreenMain.ShowNumErrors := false; +end; + procedure TScreenOptionsGame.onShow; begin // Interaction := 0; @@ -115,14 +141,16 @@ begin //Refresh Songs Patch old_Sorting := Ini.Sorting; old_Tabs := Ini.Tabs; + old_Language := Ini.Language; end; procedure TScreenOptionsGame.Leave; begin - + Ini.Save; + RefreshLanguage; + RefreshSongs; Music.PlayBack; - RefreshSongs; FadeTo(@ScreenOptions); end; -- cgit v1.2.3