X-Git-Url: https://deadsoftware.ru/gitweb?a=blobdiff_plain;f=src%2Fgame%2Fg_menu.pas;h=ff57a392880a97a2b1bdb2514b6272240288b007;hb=38ffc69cb8386eb4f610ad5838e776ac04c6c297;hp=1af1a57336430d661b07faba3e378fb16d34bc2c;hpb=94a927ca673a2d8af4b8449d434f3c70f38b11c1;p=d2df-sdl.git diff --git a/src/game/g_menu.pas b/src/game/g_menu.pas index 1af1a57..ff57a39 100644 --- a/src/game/g_menu.pas +++ b/src/game/g_menu.pas @@ -1,4 +1,4 @@ -(* Copyright (C) DooM 2D:Forever Developers +(* Copyright (C) Doom 2D: Forever Developers * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -44,11 +44,11 @@ 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, - MAPDEF, wadreader, Math, g_saveload, + 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, - utils; + utils, wadreader; type TYNCallback = procedure (yes:Boolean); @@ -106,6 +106,8 @@ procedure ProcApplyOptions(); var menu: TGUIMenu; i: Integer; + ovs: Boolean; + v: Byte; begin menu := TGUIMenu(g_GUI_GetWindow('OptionsVideoMenu').GetControl('mOptionsVideoMenu')); @@ -113,7 +115,18 @@ begin gBPP := 16 else gBPP := 32; + + ovs := gVSync; gVSync := TGUISwitch(menu.GetControl('swVSync')).ItemIndex = 0; + {$IF not DEFINED(HEADLESS)} + if (ovs <> gVSync) then + begin + if (gVSync) then v := 1 else v := 0; + if (SDL_GL_SetSwapInterval(v) <> 0) then writeln('oops; can''t change vsync option, restart required') + else writeln('vsync changed'); + end; + {$ENDIF} + gTextureFilter := TGUISwitch(menu.GetControl('swTextureFilter')).ItemIndex = 0; glLegacyNPOT := not (TGUISwitch(menu.GetControl('swLegacyNPOT')).ItemIndex = 0); @@ -128,6 +141,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 +360,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 @@ -790,7 +810,7 @@ end; procedure ProcSelectWAD(Sender: TGUIControl); var wad: String; - list: SArray; + list: SSArray; begin with TGUIMenu(g_GUI_GetWindow('SelectMapMenu').GetControl('mSelectMapMenu')) do begin @@ -974,7 +994,7 @@ end; procedure MenuLoadData(); begin - e_WriteLog('Loading menu data...', MSG_NOTIFY); + e_WriteLog('Loading menu data...', TMsgType.Notify); g_Texture_CreateWADEx('MAINMENU_MARKER1', GameWAD+':TEXTURES\MARKER1'); g_Texture_CreateWADEx('MAINMENU_MARKER2', GameWAD+':TEXTURES\MARKER2'); @@ -1106,7 +1126,7 @@ begin begin TGUIEdit(TGUIMenu(g_GUI_GetWindow('LoadMenu').GetControl('mmLoadMenu')).GetControl('edSlot'+IntToStr(a))).Text := g_GetSaveName(a, valid); TGUIEdit(TGUIMenu(g_GUI_GetWindow('LoadMenu').GetControl('mmLoadMenu')).GetControl('edSlot'+IntToStr(a))).Invalid := not valid; - TGUIMenu(g_GUI_GetWindow('LoadMenu').GetControl('mmLoadMenu')).GetControl('edSlot'+IntToStr(a)).Enabled := valid; + //TGUIMenu(g_GUI_GetWindow('LoadMenu').GetControl('mmLoadMenu')).GetControl('edSlot'+IntToStr(a)).Enabled := valid; end; end; @@ -1114,11 +1134,13 @@ procedure ProcSaveMenu(); var a: Integer; valid: Boolean; + name: AnsiString; begin for a := 1 to 8 do begin - TGUIEdit(TGUIMenu(g_GUI_GetWindow('SaveMenu').GetControl('mmSaveMenu')).GetControl('edSlot'+IntToStr(a))).Text := g_GetSaveName(a, valid); - TGUIEdit(TGUIMenu(g_GUI_GetWindow('SaveMenu').GetControl('mmSaveMenu')).GetControl('edSlot'+IntToStr(a))).Invalid := not valid; + name := g_GetSaveName(a, valid); + TGUIEdit(TGUIMenu(g_GUI_GetWindow('SaveMenu').GetControl('mmSaveMenu')).GetControl('edSlot'+IntToStr(a))).Text := name; + TGUIEdit(TGUIMenu(g_GUI_GetWindow('SaveMenu').GetControl('mmSaveMenu')).GetControl('edSlot'+IntToStr(a))).Invalid := (name <> '') and (not valid); end; end; @@ -1143,9 +1165,15 @@ begin if g_Game_IsNet then Exit; a := StrToInt(Copy(Sender.Name, Length(Sender.Name), 1)); if g_LoadGame(a) then + begin g_Game_PauseAllSounds(False) + end else // Íå çàãðóçèëîñü - âîçâðàò â ìåíþ + begin + g_Console_Add(_lc[I_MSG_BAD_SAVE_VERSION], true); g_GUI_GetWindow('LoadMenu').SetActive(g_GUI_GetWindow('LoadMenu').GetControl('mmLoadMenu')); + //g_ActiveWindow := nil; + end; end; procedure ProcSingle1Player(); @@ -1298,7 +1326,9 @@ var begin if g_ActiveWindow.Name = 'OptionsPlayersP1Menu' then s := 'P1' else s := 'P2'; with TGUIModelView(g_ActiveWindow.GetControl('mv'+s+'Model')).Model do - if Direction = D_LEFT then Direction := D_RIGHT else Direction := D_LEFT; + begin + if Direction = TDirection.D_LEFT then Direction := TDirection.D_RIGHT else Direction := TDirection.D_LEFT; + end; end; procedure ProcDefaultMenuKeyDown (yes: Boolean); @@ -1688,7 +1718,7 @@ end; procedure ProcVideoOptionsRes(); var menu: TGUIMenu; - list: SArray; + list: SSArray; SR: DWORD; begin menu := TGUIMenu(g_GUI_GetWindow('OptionsVideoResMenu').GetControl('mOptionsVideoResMenu')); @@ -1870,7 +1900,7 @@ var Menu: TGUIWindow; //SR: TSearchRec; a, cx, _y, i: Integer; - //list: SArray; + //list: SSArray; begin Menu := TGUIWindow.Create('MainMenu'); with TGUIMainMenu(Menu.AddChild(TGUIMainMenu.Create(gMenuFont, _lc[I_MENU_MAIN_MENU]))) do @@ -2534,6 +2564,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'; @@ -3195,7 +3232,7 @@ procedure g_Menu_Free(); begin g_GUI_Destroy(); - e_WriteLog('Releasing menu data...', MSG_NOTIFY); + e_WriteLog('Releasing menu data...', TMsgType.Notify); MenuFreeData(); end; @@ -3209,7 +3246,7 @@ begin if ex then begin - e_WriteLog('Recreating menu...', MSG_NOTIFY); + e_WriteLog('Recreating menu...', TMsgType.Notify); CreateAllMenus();