X-Git-Url: https://deadsoftware.ru/gitweb?a=blobdiff_plain;f=src%2Fgame%2Fg_menu.pas;h=484b513c208e50a63f9175c540fbd6c53fb45fb3;hb=8d5eec26303e728a0af7268cefb09f5d3b6bde70;hp=b29a5137c4ff173c7e67b41bac7359d980736c76;hpb=be2ad7bf5e09b4ee91a0c5ee741503ace8c7887c;p=d2df-sdl.git diff --git a/src/game/g_menu.pas b/src/game/g_menu.pas index b29a513..484b513 100644 --- a/src/game/g_menu.pas +++ b/src/game/g_menu.pas @@ -124,6 +124,7 @@ begin gTextureFilter := TGUISwitch(menu.GetControl('swTextureFilter')).ItemIndex = 0; glNPOTOverride := not (TGUISwitch(menu.GetControl('swLegacyNPOT')).ItemIndex = 0); + gLerpActors := TGUISwitch(menu.GetControl('swInterp')).ItemIndex = 0; menu := TGUIMenu(g_GUI_GetWindow('OptionsSoundMenu').GetControl('mOptionsSoundMenu')); @@ -400,6 +401,9 @@ begin with TGUISwitch(menu.GetControl('swLegacyNPOT')) do if not glNPOTOverride then ItemIndex := 0 else ItemIndex := 1; + with TGUISwitch(menu.GetControl('swInterp')) do + if gLerpActors then ItemIndex := 0 else ItemIndex := 1; + menu := TGUIMenu(g_GUI_GetWindow('OptionsSoundMenu').GetControl('mOptionsSoundMenu')); TGUIScroll(menu.GetControl('scSoundLevel')).Value := Round(gSoundLevel/16); @@ -683,7 +687,10 @@ begin else gsGameFlags := gsGameFlags or GAME_OPTION_BOTVSPLAYER; end; - gGameSettings.ItemRespawnTime := gsItemRespawnTime; // TODO: get this crap out of here + // TODO: get this crap out of here + gGameSettings.ItemRespawnTime := gsItemRespawnTime; + gGameSettings.WarmupTime := gsWarmupTime; + gGameSettings.SpawnInvul := gsSpawnInvul; end; end; @@ -1847,7 +1854,8 @@ begin ItemIndex := 1; TempResScale := Round(r_pixel_scale - 1); - TGUIScroll(menu.GetControl('scResFactor')).Value := TempResScale; + with TGUISwitch(menu.GetControl('swResFactor')) do + ItemIndex := Min(TempResScale, gRC_Width div 640 - 1); end; procedure ProcApplyVideoOptions(); @@ -1867,14 +1875,15 @@ begin begin SWidth := gWinSizeX; SHeight := gWinSizeY; + TempResScale := Min(TempResScale, SWidth div 640 - 1); end; Fullscreen := TGUISwitch(menu.GetControl('swFullScreen')).ItemIndex = 0; ScaleChanged := False; - if TGUIScroll(menu.GetControl('scResFactor')).Value <> TempResScale then + if TGUISwitch(menu.GetControl('swResFactor')).ItemIndex <> TempResScale then begin - TempResScale := TGUIScroll(menu.GetControl('scResFactor')).Value; + TempResScale := Min(TGUISwitch(menu.GetControl('swResFactor')).ItemIndex, SWidth div 640 - 1); r_pixel_scale := TempResScale + 1; ScaleChanged := True; end; @@ -2639,6 +2648,12 @@ begin AddItem(_lc[I_MENU_YES]); AddItem(_lc[I_MENU_NO]); end; + with AddSwitch(_lc[I_MENU_VIDEO_INTERPOLATION]) do + begin + Name := 'swInterp'; + AddItem(_lc[I_MENU_YES]); + AddItem(_lc[I_MENU_NO]); + end; with AddSwitch(_lc[I_MENU_VIDEO_LEGACY_COMPATIBLE]) do begin Name := 'swLegacyNPOT'; @@ -2673,10 +2688,12 @@ begin AddItem(_lc[I_MENU_YES]); AddItem(_lc[I_MENU_NO]); end; - with AddScroll(_lc[I_MENU_GAME_SCALE_FACTOR]) do + with AddSwitch(_lc[I_MENU_GAME_SCALE_FACTOR]) do begin - Name := 'scResFactor'; - Max := 10; + Name := 'swResFactor'; + AddItem('1x'); + for i := 2 to gRC_Width div 640 do + AddItem(IntToStr(i) + 'x'); end; AddSpace(); AddButton(@ProcApplyVideoOptions, _lc[I_MENU_RESOLUTION_APPLY]);