DEADSOFTWARE

added lights for some items
[d2df-sdl.git] / src / game / g_items.pas
index 5ec5ddb77998633d60adbd4ebd7ee1f9f007bc5a..dffeb96096c08d34d753150f155a2f86cfb2e057 100644 (file)
@@ -68,6 +68,8 @@ function g_Items_ObjByIdx (idx: Integer): PObj;
 procedure g_Items_EmitPickupSound (idx: Integer); // at item position
 procedure g_Items_EmitPickupSoundAt (idx, x, y: Integer);
 
+procedure g_Items_AddDynLights();
+
 
 type
   TItemEachAliveCB = function (it: PItem): Boolean is nested; // return `true` to stop
@@ -879,4 +881,30 @@ begin
   end;
 end;
 
+
+procedure g_Items_AddDynLights();
+var
+  f: Integer;
+  it: PItem;
+begin
+  for f := 0 to High(ggItems) do
+  begin
+    it := @ggItems[f];
+    if not it.Live then continue;
+    case it.ItemType of
+      ITEM_KEY_RED: g_AddDynLight(it.Obj.X+(it.Obj.Rect.Width div 2), it.Obj.Y+(it.Obj.Rect.Height div 2), 32,  1.0, 0.0, 0.0, 0.6);
+      ITEM_KEY_GREEN: g_AddDynLight(it.Obj.X+(it.Obj.Rect.Width div 2), it.Obj.Y+(it.Obj.Rect.Height div 2), 32,  0.0, 1.0, 0.0, 0.6);
+      ITEM_KEY_BLUE: g_AddDynLight(it.Obj.X+(it.Obj.Rect.Width div 2), it.Obj.Y+(it.Obj.Rect.Height div 2), 32,  0.0, 0.0, 1.0, 0.6);
+      ITEM_ARMOR_GREEN: g_AddDynLight(it.Obj.X+(it.Obj.Rect.Width div 2), it.Obj.Y+(it.Obj.Rect.Height div 2), 42,  0.0, 1.0, 0.0, 0.6);
+      ITEM_ARMOR_BLUE: g_AddDynLight(it.Obj.X+(it.Obj.Rect.Width div 2), it.Obj.Y+(it.Obj.Rect.Height div 2), 42,  0.0, 0.0, 1.0, 0.6);
+      ITEM_SPHERE_BLUE: g_AddDynLight(it.Obj.X+(it.Obj.Rect.Width div 2), it.Obj.Y+(it.Obj.Rect.Height div 2), 32,  0.0, 1.0, 0.0, 0.6);
+      ITEM_SPHERE_WHITE: g_AddDynLight(it.Obj.X+(it.Obj.Rect.Width div 2), it.Obj.Y+(it.Obj.Rect.Height div 2), 32,  1.0, 1.0, 1.0, 0.6);
+      ITEM_INVUL: g_AddDynLight(it.Obj.X+(it.Obj.Rect.Width div 2), it.Obj.Y+(it.Obj.Rect.Height div 2), 32,  1.0, 0.0, 0.0, 0.6);
+      ITEM_INVIS: g_AddDynLight(it.Obj.X+(it.Obj.Rect.Width div 2), it.Obj.Y+(it.Obj.Rect.Height div 2), 32,  1.0, 1.0, 0.0, 0.6);
+      ITEM_BOTTLE: g_AddDynLight(it.Obj.X+(it.Obj.Rect.Width div 2), it.Obj.Y+(it.Obj.Rect.Height div 2), 32,  0.0, 0.0, 1.0, 0.6);
+    end;
+  end;
+end;
+
+
 end.