aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorbrunzelchen <brunzelchen@b956fd51-792f-4845-bead-9b4dfca2ff2c>2011-04-18 18:11:28 +0000
committerbrunzelchen <brunzelchen@b956fd51-792f-4845-bead-9b4dfca2ff2c>2011-04-18 18:11:28 +0000
commit2478e4959f08b82e9a3baa949d6fcf0833948a98 (patch)
tree508c10a3a3f3b19102b04fc4e3d0506acac00f01
parenta5a50b95ad673170c0087ca58a4d2b70e874f599 (diff)
downloadusdx-2478e4959f08b82e9a3baa949d6fcf0833948a98.tar.gz
usdx-2478e4959f08b82e9a3baa949d6fcf0833948a98.tar.xz
usdx-2478e4959f08b82e9a3baa949d6fcf0833948a98.zip
added new sing mode: sing together (mean points over all players)
git-svn-id: svn://svn.code.sf.net/p/ultrastardx/svn/branches/1.0.1 Challenge MOD@2823 b956fd51-792f-4845-bead-9b4dfca2ff2c
-rw-r--r--Game/Code/Classes/UMain.pas72
-rw-r--r--Game/Code/Screens/UScreenScore.pas2
-rw-r--r--Game/Code/Screens/UScreenSing.pas25
-rw-r--r--Game/Code/Screens/UScreenSong.pas16
-rw-r--r--Game/Code/Screens/UScreenSongMenu.pas39
-rw-r--r--Game/Code/UltraStar.dpr2
-rw-r--r--Game/Output/Languages/Dutch.ini7
-rw-r--r--Game/Output/Languages/English.ini2
-rw-r--r--Game/Output/Languages/German.ini2
-rw-r--r--Game/Output/Languages/Italian.ini5
-rw-r--r--Game/Output/Languages/Languages.xlsbin253440 -> 261632 bytes
-rw-r--r--Game/Output/Languages/Magyar.ini2
-rw-r--r--Game/Output/Languages/Polish.ini2
-rw-r--r--Installer/settings/variables.nsh2
14 files changed, 148 insertions, 30 deletions
diff --git a/Game/Code/Classes/UMain.pas b/Game/Code/Classes/UMain.pas
index bc3ac1b0..347f92bc 100644
--- a/Game/Code/Classes/UMain.pas
+++ b/Game/Code/Classes/UMain.pas
@@ -96,6 +96,7 @@ var
// gracz i jego nuty
Player: array of TPlayer;
+ MeanPlayer: TPLayer;
PlayersPlay: integer;
PlaylistMedley: TMedleyPlaylist;
@@ -112,6 +113,7 @@ procedure NewNote(P: integer; Sender: TScreenSing); // detect note
function GetMidBeat(Time: real): real;
function GetTimeFromBeat(Beat: integer): real;
procedure ClearScores(PlayerNum: integer);
+procedure ClearMeanScore();
implementation
uses USongs, Math, UCommandLine, UVideo, UWebCam;
@@ -627,26 +629,56 @@ begin
begin
// add points without LineBonus
case Czesci[P].Czesc[S].Nuta[Pet].Wartosc of
- 1: Player[CP].Score := Player[CP].Score + 10000 / Czesci[P].Wartosc *
+ 1: begin
+ Player[CP].Score := Player[CP].Score + 10000 / Czesci[P].Wartosc *
Czesci[P].Czesc[S].Nuta[Pet].Wartosc;
- 2: Player[CP].ScoreGolden := Player[CP].ScoreGolden + 10000 / Czesci[P].Wartosc *
+ MeanPlayer.Score := MeanPlayer.Score + (10000 / Czesci[P].Wartosc *
+ Czesci[P].Czesc[S].Nuta[Pet].Wartosc) / PlayersPlay;
+ end;
+ 2: begin
+ Player[CP].ScoreGolden := Player[CP].ScoreGolden + 10000 / Czesci[P].Wartosc *
Czesci[P].Czesc[S].Nuta[Pet].Wartosc;
+ MeanPlayer.ScoreGolden := MeanPlayer.ScoreGolden + (10000 / Czesci[P].Wartosc *
+ Czesci[P].Czesc[S].Nuta[Pet].Wartosc) / PlayersPlay;
+ end;
end;
end else
begin
// add points with Line Bonus
case Czesci[P].Czesc[S].Nuta[Pet].Wartosc of
- 1: Player[CP].Score := Player[CP].Score + 9000 / Czesci[P].Wartosc *
+ 1: begin
+ Player[CP].Score := Player[CP].Score + 9000 / Czesci[P].Wartosc *
Czesci[P].Czesc[S].Nuta[Pet].Wartosc;
- 2: Player[CP].ScoreGolden := Player[CP].ScoreGolden + 9000 / Czesci[P].Wartosc *
+ MeanPlayer.Score := MeanPlayer.Score + (9000 / Czesci[P].Wartosc *
+ Czesci[P].Czesc[S].Nuta[Pet].Wartosc) / PlayersPlay;
+ end;
+ 2: begin
+ Player[CP].ScoreGolden := Player[CP].ScoreGolden + 9000 / Czesci[P].Wartosc *
Czesci[P].Czesc[S].Nuta[Pet].Wartosc;
+ MeanPlayer.ScoreGolden := MeanPlayer.ScoreGolden + (9000 / Czesci[P].Wartosc *
+ Czesci[P].Czesc[S].Nuta[Pet].Wartosc) / PlayersPlay;
+ end;
end;
end;
- Player[CP].ScoreI := Floor(Player[CP].Score / 10) * 10;
- Player[CP].ScoreGoldenI := Floor(Player[CP].ScoreGolden / 10) * 10;
+ MeanPlayer.ScoreI := Floor(MeanPlayer.Score / 10) * 10;
+ MeanPlayer.ScoreGoldenI := Floor(MeanPlayer.ScoreGolden / 10) * 10;
- Player[CP].ScoreTotalI := Player[CP].ScoreI + Player[CP].ScoreGoldenI + Player[CP].ScoreLineI;
+ MeanPlayer.ScoreTotalI := MeanPlayer.ScoreI + MeanPlayer.ScoreGoldenI + MeanPlayer.ScoreLineI;
+
+ if ScreenSong.SingTogether then
+ begin
+ Player[CP].ScoreI := MeanPlayer.ScoreI;
+ Player[CP].ScoreGoldenI := MeanPlayer.ScoreGoldenI;
+
+ Player[CP].ScoreTotalI := MeanPlayer.ScoreTotalI;
+ end else
+ begin
+ Player[CP].ScoreI := Floor(Player[CP].Score / 10) * 10;
+ Player[CP].ScoreGoldenI := Floor(Player[CP].ScoreGolden / 10) * 10;
+
+ Player[CP].ScoreTotalI := Player[CP].ScoreI + Player[CP].ScoreGoldenI + Player[CP].ScoreLineI;
+ end;
end;
end; // operowanie
end;
@@ -943,7 +975,6 @@ begin
Player[PlayerNum].ScoreGoldenI := 0;
Player[PlayerNum].ScoreTotalI := 0;
-
//SingBar Mod
Player[PlayerNum].ScoreLast := 0;
Player[PlayerNum].ScorePercent := 50;// Sets to 50% when song starts
@@ -955,10 +986,29 @@ begin
//PhrasenBonus - Line Bonus Mod
Player[PlayerNum].LineBonus_Visible := False; //Hide Line Bonus
Player[PlayerNum].LineBonus_Alpha := 0;
- //Player[PlayerNum].LineBonus_TargetX := 70 + PlayerNum*500; //will be done by onShow
- //Player[PlayerNum].LineBonus_TargetY := 30; //will be done by onShow
- //PhrasenBonus - Line Bonus Mod End
+end;
+
+procedure ClearMeanScore();
+begin
+ MeanPlayer.Score := 0;
+ MeanPlayer.ScoreI := 0;
+ MeanPlayer.ScoreLine := 0;
+ MeanPlayer.ScoreLineI := 0;
+ MeanPlayer.ScoreGolden := 0;
+ MeanPlayer.ScoreGoldenI := 0;
+ MeanPlayer.ScoreTotalI := 0;
+ //SingBar Mod
+ MeanPlayer.ScoreLast := 0;
+ MeanPlayer.ScorePercent := 50;// Sets to 50% when song starts
+ MeanPlayer.ScorePercentTarget := 50;// Sets to 50% when song starts
+ //end SingBar Mod
+
+ MeanPlayer.ScoreMax := 9990;
+
+ //PhrasenBonus - Line Bonus Mod
+ MeanPlayer.LineBonus_Visible := False; //Hide Line Bonus
+ MeanPlayer.LineBonus_Alpha := 0;
end;
end.
diff --git a/Game/Code/Screens/UScreenScore.pas b/Game/Code/Screens/UScreenScore.pas
index 149541a2..05983f6e 100644
--- a/Game/Code/Screens/UScreenScore.pas
+++ b/Game/Code/Screens/UScreenScore.pas
@@ -130,7 +130,7 @@ begin
Music.VoicesClose;
FadeTo(@ScreenPartyNewRoundM2);
- end else if (ScreenSong.Mode <> smMedley) and not AktSong.isDuet then
+ end else if (ScreenSong.Mode <> smMedley) and not AktSong.isDuet and not ScreenSong.SingTogether then
FadeTo(@ScreenTop)
else
begin
diff --git a/Game/Code/Screens/UScreenSing.pas b/Game/Code/Screens/UScreenSing.pas
index 4d1b918c..9ea55e95 100644
--- a/Game/Code/Screens/UScreenSing.pas
+++ b/Game/Code/Screens/UScreenSing.pas
@@ -1560,6 +1560,8 @@ begin
for P := 0 to High(Player) do
ClearScores(P);
+ ClearMeanScore();
+
// fill texts
LyricMain[0].AddCzesc(0, 0);
LyricMain[0].Selected := -1;
@@ -2293,6 +2295,8 @@ begin
end else if(ScreenSong.Mode = smNormal) then
begin
singmode := 'Normal';
+ if ScreenSong.SingTogether then
+ singmode := singmode + ' (Sing together)';
if AktSong.isDuet then
singmode := singmode + ' (Duet)';
end;
@@ -2496,12 +2500,29 @@ begin
//PhrasenBonus give Points
if (Length(Czesci[CP].Czesc) - NumEmptySentences[CP])>0 then
+ begin
Player[I].ScoreLine := Player[I].ScoreLine +
(1000 / (Length(Czesci[CP].Czesc) - NumEmptySentences[CP]) * A / 8);
- Player[I].ScoreLineI := Round(Player[I].ScoreLine / 10) * 10;
+ MeanPlayer.ScoreLine := MeanPlayer.ScoreLine +
+ (1000 / (Length(Czesci[CP].Czesc) - NumEmptySentences[CP]) * A / 8);
+ end;
+
+ MeanPlayer.ScoreLineI := Round(MeanPlayer.ScoreLine / 10) * 10;
//Update Total Score
- Player[I].ScoreTotalI := Player[I].ScoreI + Player[I].ScoreGoldenI + Player[I].ScoreLineI;
+ MeanPlayer.ScoreTotalI := MeanPlayer.ScoreI + MeanPlayer.ScoreGoldenI + MeanPlayer.ScoreLineI;
+
+ if ScreenSong.SingTogether then
+ begin
+ Player[I].ScoreLineI := MeanPlayer.ScoreLineI;
+ //Update Total Score
+ Player[I].ScoreTotalI := MeanPlayer.ScoreTotalI;
+ end else
+ begin
+ Player[I].ScoreLineI := Round(Player[I].ScoreLine / 10) * 10;
+ //Update Total Score
+ Player[I].ScoreTotalI := Player[I].ScoreI + Player[I].ScoreGoldenI + Player[I].ScoreLineI;
+ end;
//Color
Case Floor(A) of
diff --git a/Game/Code/Screens/UScreenSong.pas b/Game/Code/Screens/UScreenSong.pas
index aa3c2bf9..aab46786 100644
--- a/Game/Code/Screens/UScreenSong.pas
+++ b/Game/Code/Screens/UScreenSong.pas
@@ -119,7 +119,8 @@ type
PartyPlayed: array of integer; //played in Party Classic
MedleyPlayed: array of integer; //played in Challenge or Classic Medley-mode
- SungToEnd: boolean; //Song was sung to the end?
+ SungToEnd: boolean; //Song was sung to the end?
+ SingTogether: boolean; //Calc mean score
//party Statics (Joker)
StaticTeam1Joker1: Cardinal;
@@ -774,8 +775,16 @@ begin
CatSongs.Selected := Interaction;
//Do the Action that is specified in Ini
case Ini.OnSongClick of
- 0: StartSong;
- 1: SelectPlayers;
+ 0: begin
+ if (SDL_ModState = KMOD_LCTRL) then
+ SingTogether := true;
+ StartSong;
+ end;
+ 1: begin
+ if (SDL_ModState = KMOD_LCTRL) then
+ SingTogether := true;
+ SelectPlayers;
+ end;
2:begin
if (TargetVidVis = full) then
begin
@@ -2024,6 +2033,7 @@ begin
FadeOut := false;
SungToEnd := false;
+ SingTogether := false;
if Mode = smMedley then
Mode := smNormal;
diff --git a/Game/Code/Screens/UScreenSongMenu.pas b/Game/Code/Screens/UScreenSongMenu.pas
index e209a176..98e8a49c 100644
--- a/Game/Code/Screens/UScreenSongMenu.pas
+++ b/Game/Code/Screens/UScreenSongMenu.pas
@@ -26,6 +26,7 @@ const
SM_Main = 1;
SM_Song = 8 or 1;
+ SM_Song_Play = 8 or 2;
SM_Medley = 16 or 1;
@@ -359,6 +360,22 @@ begin
Button[3].Text[0].Text := Language.Translate('SONG_MENU_EDIT');
end;
+ SM_Song_Play:
+ begin
+ ID := 'ID_032';
+ CurMenu := sMenu;
+ Text[0].Text := Language.Translate('SONG_MENU_PLAY');
+
+ Button[0].Visible := True;
+ Button[1].Visible := not CatSongs.Song[ScreenSong.Interaction].isDuet;
+ Button[2].Visible := False;
+ Button[3].Visible := False;
+ SelectsS[0].Visible := False;
+
+ Button[0].Text[0].Text := Language.Translate('SONG_MENU_PLAY');
+ Button[1].Text[0].Text := Language.Translate('SONG_MENU_PLAY_TOGETHER');
+ end;
+
SM_Medley:
begin
ID := 'ID_032';
@@ -629,8 +646,7 @@ begin
Case Interaction of
0: //Button 1
begin
- ScreenSong.StartSong;
- Visible := False;
+ MenuShow(SM_Song_Play);
end;
1: //Button 2
@@ -659,6 +675,25 @@ begin
end;
end;
+ SM_Song_Play:
+ begin
+ Case Interaction of
+ 0: //Button 1
+ begin
+ ScreenSong.StartSong;
+ Visible := False;
+ end;
+
+ 1: //Button 2
+ begin
+ //Select New Players then Sing:
+ ScreenSong.SingTogether := true;
+ ScreenSong.StartSong;
+ Visible := False;
+ end;
+ end;
+ end;
+
SM_Medley:
begin
Case Interaction of
diff --git a/Game/Code/UltraStar.dpr b/Game/Code/UltraStar.dpr
index 21cbb978..65b57829 100644
--- a/Game/Code/UltraStar.dpr
+++ b/Game/Code/UltraStar.dpr
@@ -123,7 +123,7 @@ uses
const
VersionName = 'UltraStar Deluxe Challenge, Medley & Duet Edition';
- VersionNumber = 'r9.17';
+ VersionNumber = 'r9.19';
var
WndTitle: string;
diff --git a/Game/Output/Languages/Dutch.ini b/Game/Output/Languages/Dutch.ini
index 4d492b1b..83a2d21b 100644
--- a/Game/Output/Languages/Dutch.ini
+++ b/Game/Output/Languages/Dutch.ini
@@ -118,17 +118,13 @@ PLUGIN_MEDLEYSURPRISEBLIND_DESC = Up to 5 songs medley blind, only selecting the
PLUGIN_MEDLEYSURPRISEBLIND_NAME = Medley Surprise 2
PLUGIN_MEHRALS500_DESC = Um zu gewinnen, muss man am Ende mindestens 500 Punkte Vorsprung haben.
PLUGIN_MEHRALS500_NAME = Sieg 500+
-PLUGIN_MORE1000_DESC = Ziel: 1000 Punkte Vorsprung zum Sieg. Ansonsten gewinnt höchste Punktzahl.
PLUGIN_MORE1000_DESC = Loop meer dan 1000 punten voor.
-PLUGIN_MORE1000_NAME =
PLUGIN_MORE1000_NAME = Meer dan 1000
PLUGIN_MORE2000_DESC = Ziel: 2000 Punkte Vorsprung zum Sieg. Ansonsten gewinnt höchste Punktzahl.
PLUGIN_MORE2000_NAME = 2K Vorsprung
PLUGIN_MORE3000_DESC = Ziel: 3000 Punkte Vorsprung zum Sieg. Ansonsten gewinnt höchste Punktzahl.
PLUGIN_MORE3000_NAME = 3K Vorsprung
-PLUGIN_MORE500_DESC = Ziel: 500 Punkte Vorsprung zum Sieg. Ansonsten gewinnt höchste Punktzahl.
PLUGIN_MORE500_DESC = Loop meer dan 500 punten voor.
-PLUGIN_MORE500_NAME =
PLUGIN_MORE500_NAME = Meer dan 500
PLUGIN_MORETHAN1000_DESC = Wer mehr als 1000 Punkte zurückliegt, fliegt raus.
PLUGIN_MORETHAN1000_NAME = Rückstand 1K
@@ -315,6 +311,7 @@ SONG_MENU_NAME_PLAYLIST_LOAD = Speellijst openen
SONG_MENU_NAME_PLAYLIST_NEW = Nieuwe speellijst
SONG_MENU_NO = Nee
SONG_MENU_PLAY = Zing
+SONG_MENU_PLAY_TOGETHER = Sing together
SONG_MENU_PLAYLIST_ADD = Nummer toevoegen
SONG_MENU_PLAYLIST_ADD_EXISTING = Afsluiten speellijst
SONG_MENU_PLAYLIST_ADD_NEW = Nieuwe speellijst
@@ -359,4 +356,4 @@ STAT_PREV = Vorige pagina
STAT_REVERSE = Anders om
VIDEO_ASPECT_CROP = Inkrimpen
VIDEO_ASPECT_LETTER_BOX = Letter Box
-VIDEO_ASPECT_STRETCH = Uitrekken
+VIDEO_ASPECT_STRETCH = Uitrekken \ No newline at end of file
diff --git a/Game/Output/Languages/English.ini b/Game/Output/Languages/English.ini
index 694b5316..6c4bf7cd 100644
--- a/Game/Output/Languages/English.ini
+++ b/Game/Output/Languages/English.ini
@@ -311,6 +311,7 @@ SONG_MENU_NAME_PLAYLIST_LOAD = Open Playlist
SONG_MENU_NAME_PLAYLIST_NEW = New Playlist
SONG_MENU_NO = No
SONG_MENU_PLAY = Sing
+SONG_MENU_PLAY_TOGETHER = Sing together
SONG_MENU_PLAYLIST_ADD = Add Song
SONG_MENU_PLAYLIST_ADD_EXISTING = to existing playlist
SONG_MENU_PLAYLIST_ADD_NEW = to new playlist
@@ -1245,6 +1246,7 @@ Description = Scroll through the sorted songs or use the search function to find
#-------------------------------------------------------#
SEC_001 = General
RETURN = Sing selected song
+CTRL_RETURN = Sing selected song together (mean points over all players)
TAB = Toggle help
PRINT = Take screenshot
BACKSPACE = Back to Main Menu
diff --git a/Game/Output/Languages/German.ini b/Game/Output/Languages/German.ini
index 9287bd57..31a68fa2 100644
--- a/Game/Output/Languages/German.ini
+++ b/Game/Output/Languages/German.ini
@@ -311,6 +311,7 @@ SONG_MENU_NAME_PLAYLIST_LOAD = Playlist öffnen
SONG_MENU_NAME_PLAYLIST_NEW = Neue Playlist
SONG_MENU_NO = Nein
SONG_MENU_PLAY = Singen
+SONG_MENU_PLAY_TOGETHER = Zusammen Singen
SONG_MENU_PLAYLIST_ADD = Song zu Playlist hinzufügen
SONG_MENU_PLAYLIST_ADD_EXISTING = Zu existierender Playlist
SONG_MENU_PLAYLIST_ADD_NEW = Zu neuer Playlist
@@ -1245,6 +1246,7 @@ Description = Hier werden alle vorhandenen Lieder für das normale Singen angezei
#-------------------------------------------------------#
SEC_001 = Allgemein
RETURN = Gewähltes Lied singen
+CTRL_RETURN = Gewähltes Lied zusammen singen (Mittelwert der Punkte über alle Spieler)
TAB = Hilfe öffnen/schließen
PRINT = Screenshot erstellen
BACKSPACE = zurück
diff --git a/Game/Output/Languages/Italian.ini b/Game/Output/Languages/Italian.ini
index af8d5d72..c1e74147 100644
--- a/Game/Output/Languages/Italian.ini
+++ b/Game/Output/Languages/Italian.ini
@@ -118,17 +118,13 @@ PLUGIN_MEDLEYSURPRISEBLIND_DESC = Up to 5 songs medley blind, only selecting the
PLUGIN_MEDLEYSURPRISEBLIND_NAME = Medley Surprise 2
PLUGIN_MEHRALS500_DESC = Um zu gewinnen, muss man am Ende mindestens 500 Punkte Vorsprung haben.
PLUGIN_MEHRALS500_NAME = Sieg 500+
-PLUGIN_MORE1000_DESC = Ziel: 1000 Punkte Vorsprung zum Sieg. Ansonsten gewinnt höchste Punktzahl.
PLUGIN_MORE1000_DESC = Avanza di 1000 punti in più dell'altro.
-PLUGIN_MORE1000_NAME =
PLUGIN_MORE1000_NAME = Più di 1000
PLUGIN_MORE2000_DESC = Ziel: 2000 Punkte Vorsprung zum Sieg. Ansonsten gewinnt höchste Punktzahl.
PLUGIN_MORE2000_NAME = 2K Vorsprung
PLUGIN_MORE3000_DESC = Ziel: 3000 Punkte Vorsprung zum Sieg. Ansonsten gewinnt höchste Punktzahl.
PLUGIN_MORE3000_NAME = 3K Vorsprung
-PLUGIN_MORE500_DESC = Ziel: 500 Punkte Vorsprung zum Sieg. Ansonsten gewinnt höchste Punktzahl.
PLUGIN_MORE500_DESC = Avanza di 500 punti in più dell'altro.
-PLUGIN_MORE500_NAME =
PLUGIN_MORE500_NAME = Più di 500
PLUGIN_MORETHAN1000_DESC = Wer mehr als 1000 Punkte zurückliegt, fliegt raus.
PLUGIN_MORETHAN1000_NAME = Rückstand 1K
@@ -315,6 +311,7 @@ SONG_MENU_NAME_PLAYLIST_LOAD = Apri playlist
SONG_MENU_NAME_PLAYLIST_NEW = Nuova playlist
SONG_MENU_NO = No
SONG_MENU_PLAY = Canta
+SONG_MENU_PLAY_TOGETHER = Sing together
SONG_MENU_PLAYLIST_ADD = Aggiungi canzone
SONG_MENU_PLAYLIST_ADD_EXISTING = Playlist esistente
SONG_MENU_PLAYLIST_ADD_NEW = Nuova playlist
diff --git a/Game/Output/Languages/Languages.xls b/Game/Output/Languages/Languages.xls
index 8244099d..2a05463f 100644
--- a/Game/Output/Languages/Languages.xls
+++ b/Game/Output/Languages/Languages.xls
Binary files differ
diff --git a/Game/Output/Languages/Magyar.ini b/Game/Output/Languages/Magyar.ini
index 1b4824ff..58056999 100644
--- a/Game/Output/Languages/Magyar.ini
+++ b/Game/Output/Languages/Magyar.ini
@@ -311,6 +311,7 @@ SONG_MENU_NAME_PLAYLIST_LOAD = Lista megnyitása
SONG_MENU_NAME_PLAYLIST_NEW = Új lista
SONG_MENU_NO = Nem
SONG_MENU_PLAY = Éneklés
+SONG_MENU_PLAY_TOGETHER = Sing together
SONG_MENU_PLAYLIST_ADD = Dal hozzáadása
SONG_MENU_PLAYLIST_ADD_EXISTING = meglévõ listához
SONG_MENU_PLAYLIST_ADD_NEW = új listához
@@ -1245,6 +1246,7 @@ Description = A rendezésnek megfelelõen listázott dalokból választhatsz.
#-------------------------------------------------------#
SEC_001 = Általános
RETURN = A jelenlegi dal kiválasztása éneklésre
+CTRL_RETURN = Sing selected song together (mean points over all players)
TAB = Segítség ki/bekapcsolása
PRINT = Képlopás
BACKSPACE = Vissza a fõmenübe
diff --git a/Game/Output/Languages/Polish.ini b/Game/Output/Languages/Polish.ini
index b8a4a22d..f4bbf6ee 100644
--- a/Game/Output/Languages/Polish.ini
+++ b/Game/Output/Languages/Polish.ini
@@ -315,6 +315,7 @@ SONG_MENU_NAME_PLAYLIST_LOAD = Otwórz Playlistê
SONG_MENU_NAME_PLAYLIST_NEW = Nowa playlista
SONG_MENU_NO = Nie
SONG_MENU_PLAY = Œpiewaj
+SONG_MENU_PLAY_TOGETHER = Sing together
SONG_MENU_PLAYLIST_ADD = Dodaj piosenkê
SONG_MENU_PLAYLIST_ADD_EXISTING = Istniej¹ca playlista
SONG_MENU_PLAYLIST_ADD_NEW = Nowa playlista
@@ -1236,6 +1237,7 @@ Description = Poruszaj¹c siê w lewo lub w prawo wybierz piosenkê, któr¹ chcesz
#-------------------------------------------------------#
SEC_001 = Podstawowe skróty
RETURN = Wybierz piosenkê
+CTRL_RETURN = Sing selected song together (mean points over all players)
TAB = Podrêczna pomoc
PRINT = Zrzut ekranu
BACKSPACE = Powrót do Menu g³ównego
diff --git a/Installer/settings/variables.nsh b/Installer/settings/variables.nsh
index 5507732f..c9cbf87e 100644
--- a/Installer/settings/variables.nsh
+++ b/Installer/settings/variables.nsh
@@ -1,7 +1,7 @@
; These are the common used variables
; for the USdx Challenge, Medley & Duet Edition Installation Wizard
-!define version "r9.17" ; Current version of UltraStar Deluxe Challenge, Medley & Duet Edition
+!define version "r9.19" ; Current version of UltraStar Deluxe Challenge, Medley & Duet Edition
!define p_name "UltraStar Deluxe CMD Edition" ; Just the name of the program
!define publisher "USDX Team" ; Publisher
!define homepage "http://www.ultrastardeluxe.org/" ; Project Homepage