DEADSOFTWARE

nuke doom2df.cfg; refactor some cvar-related stuff
[d2df-sdl.git] / src / game / g_items.pas
index a70bd54a61f9da0f9827996db6e1d654090da1df..200ebdd96cf725a2bc486d043e66bfce96ce46e4 100644 (file)
@@ -2,8 +2,7 @@
  *
  * 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.
+ * the Free Software Foundation, version 3 of the License ONLY.
  *
  * This program is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -84,7 +83,6 @@ function g_Items_ForEachAlive (cb: TItemEachAliveCB; backwards: Boolean=false):
 var
   gItemsTexturesID: Array [1..ITEM_MAX] of DWORD;
   gMaxDist: Integer = 1; // for sounds
-  ITEM_RESPAWNTIME: Integer = 60 * 36;
 
 implementation
 
@@ -455,7 +453,6 @@ begin
 
   it.ItemType := ItemType;
   it.Respawnable := Respawnable;
-  if g_Game_IsServer and (ITEM_RESPAWNTIME = 0) then it.Respawnable := False;
   it.InitX := X;
   it.InitY := Y;
   it.RespawnTime := 0;
@@ -578,7 +575,10 @@ begin
               // Íàäî óáðàòü ñ êàðòû, åñëè ýòî íå êëþ÷, êîòîðûì íóæíî ïîäåëèòüñÿ ñ äðóãèì èãðîêîì
               if r then
               begin
-                if not Respawnable then g_Items_Remove(i) else g_Items_Pick(i);
+                if not (Respawnable and (gGameSettings.ItemRespawnTime > 0)) then
+                  g_Items_Remove(i)
+                else 
+                  g_Items_Pick(i);
                 if g_Game_IsNet then MH_SEND_ItemDestroy(False, i);
                 nxt := True;
                 break;
@@ -691,7 +691,7 @@ begin
   if (ID < Length(ggItems)) then
   begin
     ggItems[ID].alive := false;
-    ggItems[ID].RespawnTime := ITEM_RESPAWNTIME;
+    ggItems[ID].RespawnTime := gGameSettings.ItemRespawnTime * 36;
   end;
 end;