DEADSOFTWARE

set vsync after window creation (it should work better this way)
[d2df-sdl.git] / src / game / g_menu.pas
index 9d5193d29f7822c30f6a58c6dad73da8b8994dfa..0a9cc7f395614e11759408dd027d5807d0298784 100644 (file)
@@ -44,7 +44,7 @@ implementation
 uses
   g_gui, g_textures, e_graphics, g_main, g_window, g_game, g_map,
   g_basic, g_console, g_sound, g_gfx, g_player, g_options, g_weapons,
-  e_log, SysUtils, CONFIG, g_playermodel, DateUtils,
+  e_log, SysUtils, CONFIG, g_playermodel, DateUtils, sdl2,
   MAPDEF, Math, g_saveload,
   e_texture, GL, GLExt, g_language,
   g_net, g_netmsg, g_netmaster, g_items, e_input,
@@ -106,6 +106,7 @@ procedure ProcApplyOptions();
 var
   menu: TGUIMenu;
   i: Integer;
+  ovs: Boolean;
 begin
   menu := TGUIMenu(g_GUI_GetWindow('OptionsVideoMenu').GetControl('mOptionsVideoMenu'));
 
@@ -113,7 +114,11 @@ begin
     gBPP := 16
   else
     gBPP := 32;
+
+  ovs := gVSync;
   gVSync := TGUISwitch(menu.GetControl('swVSync')).ItemIndex = 0;
+  if (ovs <> gVSync) then g_SetVSync(gVSync);
+
   gTextureFilter := TGUISwitch(menu.GetControl('swTextureFilter')).ItemIndex = 0;
   glLegacyNPOT := not (TGUISwitch(menu.GetControl('swLegacyNPOT')).ItemIndex = 0);
 
@@ -128,6 +133,7 @@ begin
   gMuteWhenInactive := TGUISwitch(menu.GetControl('swInactiveSounds')).ItemIndex = 1;
   gAnnouncer := TGUISwitch(menu.GetControl('swAnnouncer')).ItemIndex;
   gSoundEffectsDF := TGUISwitch(menu.GetControl('swSoundEffects')).ItemIndex = 1;
+  gUseChatSounds := TGUISwitch(menu.GetControl('swChatSpeech')).ItemIndex = 0;
 
   menu := TGUIMenu(g_GUI_GetWindow('OptionsGameMenu').GetControl('mOptionsGameMenu'));
 
@@ -346,6 +352,12 @@ begin
     else
       ItemIndex := 0;
 
+  with TGUISwitch(menu.GetControl('swChatSpeech')) do
+    if gUseChatSounds then
+      ItemIndex := 0
+    else
+      ItemIndex := 1;
+
   menu := TGUIMenu(g_GUI_GetWindow('OptionsControlsP1Menu').GetControl('mOptionsControlsP1Menu'));
   with menu, gGameControls.P1Control do
   begin
@@ -2544,6 +2556,13 @@ begin
       AddItem(_lc[I_MENU_COMPAT_DOOM2]);
       AddItem(_lc[I_MENU_COMPAT_DF]);
     end;
+    // Ïåðåêëþ÷àòåëü çâóêîâ ÷àòà
+    with AddSwitch (_lc[I_MENU_SOUND_CHAT]) do
+    begin;
+      Name := 'swChatSpeech';
+      AddItem(_lc[I_MENU_YES]);
+      AddItem(_lc[I_MENU_NO]);
+    end;
     with AddSwitch(_lc[I_MENU_SOUND_INACTIVE_SOUNDS]) do
     begin
       Name := 'swInactiveSounds';