DEADSOFTWARE

Revert "Revert "Revert "no more delay between weapon switching: now player should...
[d2df-sdl.git] / src / game / g_game.pas
index de729fae42e2b139d809d3e451dccd8c7afee1b2..1fdf62b2ab96e5d7cc16ce0880d91f1078732f43 100644 (file)
@@ -1504,18 +1504,11 @@ begin
   result := false;
 end;
 
-function isOneKeyPressed (key1: Word): Boolean;
-begin
-  if (key1 <> 0) and e_KeyPressed(key1) then begin result := true; exit; end;
-  result := false;
-end;
-
 procedure processPlayerControls (plr: TPlayer; var ctrl: TPlayerControl; var MoveButton: Byte; p2hack: Boolean=false);
 var
   time: Word;
   strafeDir: Byte;
   i: Integer;
-  rwk: Boolean;
 begin
   if (plr = nil) then exit;
   if (p2hack) then time := 1000 else time := 1;
@@ -1559,42 +1552,13 @@ begin
     if isKeyPressed(KeyUp, KeyUp2) then plr.PressKey(KEY_UP, time);
     if isKeyPressed(KeyDown, KeyDown2) then plr.PressKey(KEY_DOWN, time);
     if isKeyPressed(KeyFire, KeyFire2) then plr.PressKey(KEY_FIRE);
-    if isKeyPressed(KeyNextWeapon, KeyNextWeapon2) then
-    begin
-      rwk := plr.isWeaponSwitchKeyReleased(-1);
-      if rwk then plr.PressKey(KEY_NEXTWEAPON);
-      plr.weaponSwitchKeysStateChange(-1, true);
-    end
-    else
-    begin
-      plr.weaponSwitchKeysStateChange(-1, false);
-    end;
-    if isKeyPressed(KeyPrevWeapon, KeyPrevWeapon2) then
-    begin
-      rwk := plr.isWeaponSwitchKeyReleased(-2);
-      if rwk then plr.PressKey(KEY_PREVWEAPON);
-      plr.weaponSwitchKeysStateChange(-2, true);
-    end
-    else
-    begin
-      plr.weaponSwitchKeysStateChange(-2, false);
-    end;
+    if isKeyPressed(KeyNextWeapon, KeyNextWeapon2) then plr.PressKey(KEY_NEXTWEAPON);
+    if isKeyPressed(KeyPrevWeapon, KeyPrevWeapon2) then plr.PressKey(KEY_PREVWEAPON);
     if isKeyPressed(KeyOpen, KeyOpen2) then plr.PressKey(KEY_OPEN);
 
     for i := 0 to High(KeyWeapon) do
-    begin
       if isKeyPressed(KeyWeapon[i], KeyWeapon2[i]) then
-      begin
-        rwk := plr.isWeaponSwitchKeyReleased(i);
-        //writeln('rwk:', rwk);
-        plr.weaponSwitchKeysStateChange(i, true);
-        if rwk then plr.QueueWeaponSwitch(i); // all choices are passed there, and god will take the best
-      end
-      else
-      begin
-        plr.weaponSwitchKeysStateChange(i, false);
-      end;
-    end;
+        plr.QueueWeaponSwitch(i); // all choices are passed there, and god will take the best
   end;
 
   // HACK: add dynlight here
@@ -2329,6 +2293,7 @@ begin
   g_Texture_CreateWADEx('TEXTURE_PLAYER_BLUEFLAG_D', GameWAD+':TEXTURES\FLAGHUD_B_DROP');
   g_Texture_CreateWADEx('TEXTURE_PLAYER_TALKBUBBLE', GameWAD+':TEXTURES\TALKBUBBLE');
   g_Texture_CreateWADEx('TEXTURE_PLAYER_INVULPENTA', GameWAD+':TEXTURES\PENTA');
+  g_Texture_CreateWADEx('TEXTURE_PLAYER_INDICATOR', GameWAD+':TEXTURES\PLRIND');
 
   hasPBarGfx := true;
   if not g_Texture_CreateWADEx('UI_GFX_PBAR_LEFT', GameWAD+':TEXTURES\LLEFT') then hasPBarGfx := false;
@@ -3601,6 +3566,8 @@ begin
 
   renderMapInternal(-c, -d, true);
 
+  if (gGameSettings.GameMode <> GM_SINGLE) and gPlayerIndicator then
+    p.DrawIndicator();
   if p.FSpectator then
     e_TextureFontPrintEx(p.GameX + PLAYER_RECT_CX - 4,
                          p.GameY + PLAYER_RECT_CY - 4,