DEADSOFTWARE

no more global `gItems[]` array; created DynTree for items (not used yet); also,...
[d2df-sdl.git] / src / game / g_player.pas
index f4e3b0fff39acd98b14a65fa9bc9bcfe82bdb5d6..0ee9365f2adbee0cf6183a774a83500781d6ea23 100644 (file)
@@ -2973,31 +2973,33 @@ var
   DoFrags: Boolean;
   OldLR: Byte;
   KP: TPlayer;
+  it: PItem;
 
   procedure PushItem(t: Byte);
   var
     id: DWORD;
   begin
     id := g_Items_Create(FObj.X, FObj.Y, t, True, False);
+    it := g_ItemByIdx(id);
     if KillType = K_EXTRAHARDKILL then // -7..+7; -8..0
     begin
-      g_Obj_Push(@gItems[id].Obj, (FObj.Vel.X div 2)-7+Random(15),
-                                  (FObj.Vel.Y div 2)-Random(9));
-      gItems[id].positionChanged(); // this updates spatial accelerators
+      g_Obj_Push(@it.Obj, (FObj.Vel.X div 2)-7+Random(15),
+                          (FObj.Vel.Y div 2)-Random(9));
+      it.positionChanged(); // this updates spatial accelerators
     end
     else
     begin
       if KillType = K_HARDKILL then // -5..+5; -5..0
       begin
-        g_Obj_Push(@gItems[id].Obj, (FObj.Vel.X div 2)-5+Random(11),
-                                    (FObj.Vel.Y div 2)-Random(6));
+        g_Obj_Push(@it.Obj, (FObj.Vel.X div 2)-5+Random(11),
+                            (FObj.Vel.Y div 2)-Random(6));
       end
       else // -3..+3; -3..0
       begin
-        g_Obj_Push(@gItems[id].Obj, (FObj.Vel.X div 2)-3+Random(7),
-                                    (FObj.Vel.Y div 2)-Random(4));
+        g_Obj_Push(@it.Obj, (FObj.Vel.X div 2)-3+Random(7),
+                            (FObj.Vel.Y div 2)-Random(4));
       end;
-      gItems[id].positionChanged(); // this updates spatial accelerators
+      it.positionChanged(); // this updates spatial accelerators
     end;
 
     if g_Game_IsNet and g_Game_IsServer then