X-Git-Url: http://deadsoftware.ru/gitweb?a=blobdiff_plain;f=src%2Fgame%2Fg_options.pas;h=a2624391c73f16f38161db5094764afa8e7a8d40;hb=7292fe409145dfcbb2776e34bb64d56e32985b9d;hp=54ea9208357b5bdbab46ccb58a9b0cf3db9b2823;hpb=20428038ea09152f824e5947da1d550a4774207e;p=d2df-sdl.git diff --git a/src/game/g_options.pas b/src/game/g_options.pas index 54ea920..a262439 100644 --- a/src/game/g_options.pas +++ b/src/game/g_options.pas @@ -1,9 +1,25 @@ +(* 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 . + *) +{$INCLUDE g_amodes.inc} unit g_options; interface uses - g_language; + g_language, g_weapons; type TPlayerControl = record @@ -16,6 +32,20 @@ type KeyNextWeapon: Word; KeyPrevWeapon: Word; KeyOpen: Word; + KeyStrafe: Word; + KeyWeapon: array [WP_FIRST..WP_LAST] of Word; + + KeyRight2: Word; + KeyLeft2: Word; + KeyUp2: Word; + KeyDown2: Word; + KeyFire2: Word; + KeyJump2: Word; + KeyNextWeapon2: Word; + KeyPrevWeapon2: Word; + KeyOpen2: Word; + KeyStrafe2: Word; + KeyWeapon2: array [WP_FIRST..WP_LAST] of Word; end; TGameControls = record @@ -95,13 +125,14 @@ var 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 @@ -148,6 +179,22 @@ begin KeyNextWeapon := 73; KeyPrevWeapon := 71; KeyOpen := 54; + KeyStrafe := 0; + for i := 0 to High(KeyWeapon) do + KeyWeapon[i] := 0; + + KeyRight2 := 0; + KeyLeft2 := 0; + KeyUp2 := 0; + KeyDown2 := 0; + KeyFire2 := 0; + KeyJump2 := 0; + KeyNextWeapon2 := 0; + KeyPrevWeapon2 := 0; + KeyOpen2 := 0; + KeyStrafe2 := 0; + for i := 0 to High(KeyWeapon2) do + KeyWeapon2[i] := 0; end; with gGameControls.P2Control do @@ -161,6 +208,22 @@ begin KeyNextWeapon := 19; KeyPrevWeapon := 17; KeyOpen := 58; + KeyStrafe := 0; + for i := 0 to High(KeyWeapon) do + KeyWeapon[i] := 0; + + KeyRight2 := 0; + KeyLeft2 := 0; + KeyUp2 := 0; + KeyDown2 := 0; + KeyFire2 := 0; + KeyJump2 := 0; + KeyNextWeapon2 := 0; + KeyPrevWeapon2 := 0; + KeyOpen2 := 0; + KeyStrafe2 := 0; + for i := 0 to High(KeyWeapon2) do + KeyWeapon2[i] := 0; end; with gPlayer1Settings do @@ -267,6 +330,22 @@ begin KeyNextWeapon := ReadInt('Player1', 'KeyNextWeapon', 19); KeyPrevWeapon := ReadInt('Player1', 'KeyPrevWeapon', 17); KeyOpen := ReadInt('Player1', 'KeyOpen', 58); + KeyStrafe := ReadInt('Player1', 'KeyStrafe', 0); + for i := 0 to High(KeyWeapon) do + KeyWeapon[i] := ReadInt('Player1', 'KeyWeapon' + IntToStr(i), 0); + + 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); + KeyStrafe2 := ReadInt('Player1', 'KeyStrafe2', 0); + for i := 0 to High(KeyWeapon2) do + KeyWeapon2[i] := ReadInt('Player1', 'KeyWeapon2' + IntToStr(i), 0); end; with gPlayer1Settings, config do @@ -292,6 +371,22 @@ begin KeyNextWeapon := ReadInt('Player2', 'KeyNextWeapon', 73); KeyPrevWeapon := ReadInt('Player2', 'KeyPrevWeapon', 71); KeyOpen := ReadInt('Player2', 'KeyOpen', 54); + KeyStrafe := ReadInt('Player2', 'KeyStrafe', 0); + for i := 0 to High(KeyWeapon) do + KeyWeapon[i] := ReadInt('Player2', 'KeyWeapon' + IntToStr(i), 0); + + 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); + KeyStrafe2 := ReadInt('Player2', 'KeyStrafe2', 0); + for i := 0 to High(KeyWeapon2) do + KeyWeapon2[i] := ReadInt('Player2', 'KeyWeapon2' + IntToStr(i), 0); end; with gPlayer2Settings, config do @@ -332,7 +427,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', 'gSFSDebug', False); + 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', ''); @@ -479,6 +578,22 @@ begin WriteInt('Player1', 'KeyNextWeapon', KeyNextWeapon); WriteInt('Player1', 'KeyPrevWeapon', KeyPrevWeapon); WriteInt('Player1', 'KeyOpen', KeyOpen); + WriteInt('Player1', 'KeyStrafe', KeyStrafe); + for i := 0 to High(KeyWeapon) do + WriteInt('Player1', 'KeyWeapon' + IntToStr(i), KeyWeapon[i]); + + 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); + WriteInt('Player1', 'KeyStrafe2', KeyStrafe2); + for i := 0 to High(KeyWeapon2) do + WriteInt('Player1', 'KeyWeapon2' + IntToStr(i), KeyWeapon2[i]); WriteStr('Player1', 'Name', Name); WriteStr('Player1', 'model', Model); @@ -499,6 +614,22 @@ begin WriteInt('Player2', 'KeyNextWeapon', KeyNextWeapon); WriteInt('Player2', 'KeyPrevWeapon', KeyPrevWeapon); WriteInt('Player2', 'KeyOpen', KeyOpen); + WriteInt('Player2', 'KeyStrafe', KeyStrafe); + for i := 0 to High(KeyWeapon) do + WriteInt('Player2', 'KeyWeapon' + IntToStr(i), KeyWeapon[i]); + + 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); + WriteInt('Player2', 'KeyStrafe2', KeyStrafe2); + for i := 0 to High(KeyWeapon2) do + WriteInt('Player2', 'KeyWeapon2' + IntToStr(i), KeyWeapon2[i]); WriteStr('Player2', 'Name', Name); WriteStr('Player2', 'model', Model); @@ -535,6 +666,8 @@ begin 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);