X-Git-Url: http://deadsoftware.ru/gitweb?a=blobdiff_plain;f=src%2Fgame%2Fg_options.pas;h=65e6f21188d331d1e0566db37a32c5eb90c2720e;hb=02aa579297ce5b8e70659aacf1b9ab505edc7aaa;hp=574a28beeaae652ca11f4076aa674d2de57585c4;hpb=88ce644db1b40111bdb380f4357fa59bdb5173be;p=d2df-sdl.git diff --git a/src/game/g_options.pas b/src/game/g_options.pas index 574a28b..65e6f21 100644 --- a/src/game/g_options.pas +++ b/src/game/g_options.pas @@ -1,3 +1,19 @@ +(* 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 + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + *) +{$MODE DELPHI} unit g_options; interface @@ -16,6 +32,16 @@ type KeyNextWeapon: Word; KeyPrevWeapon: Word; KeyOpen: Word; + + KeyRight2: Word; + KeyLeft2: Word; + KeyUp2: Word; + KeyDown2: Word; + KeyFire2: Word; + KeyJump2: Word; + KeyNextWeapon2: Word; + KeyPrevWeapon2: Word; + KeyOpen2: Word; end; TGameControls = record @@ -52,6 +78,7 @@ var gFullscreen: Boolean = False; gWinMaximized: Boolean = False; gVSync: Boolean = False; + glLegacyNPOT: Boolean = False; gTextureFilter: Boolean = True; gNoSound: Boolean = False; gSoundLevel: Byte = 75; @@ -91,13 +118,17 @@ var gnWeaponStay: Boolean = False; gnMonsters: Boolean = False; gnBotsVS: String = 'Everybody'; + gsSDLSampleRate: Integer = 44100; + gsSDLBufferSize: Integer = 2048; + gSFSDebug: Boolean = False; + gSFSFastMode: Boolean = False; implementation uses e_log, e_input, g_window, g_sound, g_gfx, g_player, Math, g_map, g_net, g_netmaster, SysUtils, CONFIG, g_game, g_main, e_textures, - g_items, GL, GLExt; + g_items, GL, GLExt, wadreader, e_graphics; procedure g_Options_SetDefault(); var @@ -121,7 +152,7 @@ begin gDrawBackGround := True; gShowMessages := True; gRevertPlayers := False; - + for i := 0 to e_MaxJoys-1 do e_JoystickDeadzones[i] := 8192; @@ -144,6 +175,16 @@ begin KeyNextWeapon := 73; KeyPrevWeapon := 71; KeyOpen := 54; + + KeyRight2 := 0; + KeyLeft2 := 0; + KeyUp2 := 0; + KeyDown2 := 0; + KeyFire2 := 0; + KeyJump2 := 0; + KeyNextWeapon2 := 0; + KeyPrevWeapon2 := 0; + KeyOpen2 := 0; end; with gGameControls.P2Control do @@ -157,6 +198,16 @@ begin KeyNextWeapon := 19; KeyPrevWeapon := 17; KeyOpen := 58; + + KeyRight2 := 0; + KeyLeft2 := 0; + KeyUp2 := 0; + KeyDown2 := 0; + KeyFire2 := 0; + KeyJump2 := 0; + KeyNextWeapon2 := 0; + KeyPrevWeapon2 := 0; + KeyOpen2 := 0; end; with gPlayer1Settings do @@ -207,7 +258,7 @@ begin gBPP := 32; gVSync := False; gTextureFilter := True; - fUseMipmaps := False; + glLegacyNPOT := False; Exit; end; @@ -232,7 +283,7 @@ begin gFreq := config.ReadInt('Video', 'Freq', 0); gVSync := config.ReadBool('Video', 'VSync', True); gTextureFilter := config.ReadBool('Video', 'TextureFilter', True); - fUseMipmaps := config.ReadBool('Video', 'LegacyCompatible', False); + glLegacyNPOT := config.ReadBool('Video', 'LegacyCompatible', False); gNoSound := config.ReadBool('Sound', 'NoSound', False); gSoundLevel := Min(config.ReadInt('Sound', 'SoundLevel', 75), 255); @@ -241,6 +292,8 @@ begin gMuteWhenInactive := config.ReadBool('Sound', 'MuteInactive', False); gAnnouncer := Min(Max(config.ReadInt('Sound', 'Announcer', ANNOUNCE_MEPLUS), ANNOUNCE_NONE), ANNOUNCE_ALL); gSoundEffectsDF := config.ReadBool('Sound', 'SoundEffectsDF', True); + gsSDLSampleRate := Min(Max(config.ReadInt('Sound', 'SDLSampleRate', 44100), 11025), 96000); + gsSDLBufferSize := Min(Max(config.ReadInt('Sound', 'SDLBufferSize', 2048), 64), 16384); with gGameControls.GameControls do begin @@ -261,6 +314,16 @@ begin KeyNextWeapon := ReadInt('Player1', 'KeyNextWeapon', 19); KeyPrevWeapon := ReadInt('Player1', 'KeyPrevWeapon', 17); KeyOpen := ReadInt('Player1', 'KeyOpen', 58); + + KeyRight2 := ReadInt('Player1', 'KeyRight2', 0); + KeyLeft2 := ReadInt('Player1', 'KeyLeft2', 0); + KeyUp2 := ReadInt('Player1', 'KeyUp2', 0); + KeyDown2 := ReadInt('Player1', 'KeyDown2', 0); + KeyFire2 := ReadInt('Player1', 'KeyFire2', 0); + KeyJump2 := ReadInt('Player1', 'KeyJump2', 0); + KeyNextWeapon2 := ReadInt('Player1', 'KeyNextWeapon2', 0); + KeyPrevWeapon2 := ReadInt('Player1', 'KeyPrevWeapon2', 0); + KeyOpen2 := ReadInt('Player1', 'KeyOpen2', 0); end; with gPlayer1Settings, config do @@ -286,6 +349,16 @@ begin KeyNextWeapon := ReadInt('Player2', 'KeyNextWeapon', 73); KeyPrevWeapon := ReadInt('Player2', 'KeyPrevWeapon', 71); KeyOpen := ReadInt('Player2', 'KeyOpen', 54); + + KeyRight2 := ReadInt('Player2', 'KeyRight2', 0); + KeyLeft2 := ReadInt('Player2', 'KeyLeft2', 0); + KeyUp2 := ReadInt('Player2', 'KeyUp2', 0); + KeyDown2 := ReadInt('Player2', 'KeyDown2', 0); + KeyFire2 := ReadInt('Player2', 'KeyFire2', 0); + KeyJump2 := ReadInt('Player2', 'KeyJump2', 0); + KeyNextWeapon2 := ReadInt('Player2', 'KeyNextWeapon2', 0); + KeyPrevWeapon2 := ReadInt('Player2', 'KeyPrevWeapon2', 0); + KeyOpen2 := ReadInt('Player2', 'KeyOpen2', 0); end; with gPlayer2Settings, config do @@ -299,7 +372,7 @@ begin if (Team < TEAM_RED) or (Team > TEAM_BLUE) then Team := TEAM_RED; end; - + for i := 0 to e_MaxJoys-1 do e_JoystickDeadzones[i] := config.ReadInt('Joysticks', 'Deadzone' + IntToStr(i), 8192); @@ -326,6 +399,11 @@ begin gShowMessages := config.ReadBool('Game', 'Messages', True); gRevertPlayers := config.ReadBool('Game', 'RevertPlayers', False); gChatBubble := Min(Max(config.ReadInt('Game', 'ChatBubble', 4), 0), 4); + gSFSDebug := config.ReadBool('Game', 'SFSDebug', False); + wadoptDebug := gSFSDebug; + gSFSFastMode := config.ReadBool('Game', 'SFSFastMode', False); + wadoptFast := gSFSFastMode; + e_FastScreenshots := config.ReadBool('Game', 'FastScreenshots', True); // Ãåéìïëåé â ñâîåé èãðå gcMap := config.ReadStr('GameplayCustom', 'Map', ''); @@ -441,7 +519,7 @@ begin config.WriteInt('Video', 'BPP', gBPP); config.WriteBool('Video', 'VSync', gVSync); config.WriteBool('Video', 'TextureFilter', gTextureFilter); - config.WriteBool('Video', 'LegacyCompatible', fUseMipmaps); + config.WriteBool('Video', 'LegacyCompatible', glLegacyNPOT); config.WriteBool('Sound', 'NoSound', gNoSound); config.WriteInt('Sound', 'SoundLevel', gSoundLevel); @@ -450,6 +528,8 @@ begin config.WriteBool('Sound', 'MuteInactive', gMuteWhenInactive); config.WriteInt('Sound', 'Announcer', gAnnouncer); config.WriteBool('Sound', 'SoundEffectsDF', gSoundEffectsDF); + config.WriteInt('Sound', 'SDLSampleRate', gsSDLSampleRate); + config.WriteInt('Sound', 'SDLBufferSize', gsSDLBufferSize); with config, gGameControls.GameControls do begin @@ -471,6 +551,16 @@ begin WriteInt('Player1', 'KeyPrevWeapon', KeyPrevWeapon); WriteInt('Player1', 'KeyOpen', KeyOpen); + WriteInt('Player1', 'KeyRight2', KeyRight2); + WriteInt('Player1', 'KeyLeft2', KeyLeft2); + WriteInt('Player1', 'KeyUp2', KeyUp2); + WriteInt('Player1', 'KeyDown2', KeyDown2); + WriteInt('Player1', 'KeyFire2', KeyFire2); + WriteInt('Player1', 'KeyJump2', KeyJump2); + WriteInt('Player1', 'KeyNextWeapon2', KeyNextWeapon2); + WriteInt('Player1', 'KeyPrevWeapon2', KeyPrevWeapon2); + WriteInt('Player1', 'KeyOpen2', KeyOpen2); + WriteStr('Player1', 'Name', Name); WriteStr('Player1', 'model', Model); WriteInt('Player1', 'red', Color.R); @@ -491,6 +581,16 @@ begin WriteInt('Player2', 'KeyPrevWeapon', KeyPrevWeapon); WriteInt('Player2', 'KeyOpen', KeyOpen); + WriteInt('Player2', 'KeyRight2', KeyRight2); + WriteInt('Player2', 'KeyLeft2', KeyLeft2); + WriteInt('Player2', 'KeyUp2', KeyUp2); + WriteInt('Player2', 'KeyDown2', KeyDown2); + WriteInt('Player2', 'KeyFire2', KeyFire2); + WriteInt('Player2', 'KeyJump2', KeyJump2); + WriteInt('Player2', 'KeyNextWeapon2', KeyNextWeapon2); + WriteInt('Player2', 'KeyPrevWeapon2', KeyPrevWeapon2); + WriteInt('Player2', 'KeyOpen2', KeyOpen2); + WriteStr('Player2', 'Name', Name); WriteStr('Player2', 'model', Model); WriteInt('Player2', 'red', Color.R); @@ -498,7 +598,7 @@ begin WriteInt('Player2', 'blue', Color.B); WriteInt('Player2', 'team', Team); end; - + for i := 0 to e_MaxJoys-1 do config.WriteInt('Joysticks', 'Deadzone' + IntToStr(i), e_JoystickDeadzones[i]); @@ -525,6 +625,9 @@ begin config.WriteBool('Game', 'Messages', gShowMessages); config.WriteBool('Game', 'RevertPlayers', gRevertPlayers); config.WriteInt('Game', 'ChatBubble', gChatBubble); + config.WriteBool('Game', 'SFSDebug', gSFSDebug); + config.WriteBool('Game', 'SFSFastMode', gSFSFastMode); + config.WriteBool('Game', 'FastScreenshots', e_FastScreenshots); config.WriteStr ('GameplayCustom', 'Map', gcMap); config.WriteStr ('GameplayCustom', 'GameMode', gcGameMode);