DEADSOFTWARE

added 2nd set of control keys (sore i kent inta bindengz iet)
[d2df-sdl.git] / src / game / g_options.pas
index 54ea9208357b5bdbab46ccb58a9b0cf3db9b2823..65e6f21188d331d1e0566db37a32c5eb90c2720e 100644 (file)
@@ -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 <http://www.gnu.org/licenses/>.
+ *)
+{$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
@@ -95,13 +121,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 +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
@@ -161,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
@@ -267,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
@@ -292,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
@@ -332,7 +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', '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', '');
@@ -480,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);
@@ -500,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);
@@ -535,6 +626,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);