@@ -1098,6 +1098,9 @@ class procedure TItems.Make(ID: Byte; var AItem: Item);
1098
1098
AItem.ItemID := ID;
1099
1099
AItem.SlotID := Ord(ItemBase[TItemEnum(ID)].SlotType);
1100
1100
AItem.Stack := ItemBase[TItemEnum(ID)].MaxStack;
1101
+ // Color
1102
+ AItem.Color := ItemBase[TItemEnum(ID)].Color;
1103
+ // AItem.Color := Math.RandomRange($FF888888, $FFFFFFFF);
1101
1104
// Defense
1102
1105
if (AItem.Stack = 1 ) and (ItemBase[TItemEnum(ID)].Defense.Min > 0 ) then
1103
1106
AItem.Defense := Math.EnsureRange
@@ -1224,7 +1227,8 @@ procedure TItems.Render(AX, AY: Byte);
1224
1227
var
1225
1228
MapID: Byte;
1226
1229
I, Count: Integer;
1227
- Color: Cardinal;
1230
+ FColor: Cardinal;
1231
+ FSymbol: Char;
1228
1232
FItem: Item;
1229
1233
begin
1230
1234
MapID := Ord(Map.Current);
@@ -1239,10 +1243,16 @@ procedure TItems.Render(AX, AY: Byte);
1239
1243
Y := FItem.Y - Player.Y + AY + View .Top;
1240
1244
if not Game.Wizard and (Player.GetDist(FItem.X, FItem.Y) > Player.Vision)
1241
1245
then
1242
- Color := clFog
1246
+ begin
1247
+ FColor := clFog;
1248
+ FSymbol := ' ?' ;
1249
+ end
1243
1250
else
1244
- Color := ItemBase[TItemEnum(FItem.ItemID)].Color;
1245
- Terminal.Print(X, Y, ItemBase[TItemEnum(FItem.ItemID)].Symbol, Color);
1251
+ begin
1252
+ FColor := FItem.Color; // ItemBase[TItemEnum(FItem.ItemID)].Color;
1253
+ FSymbol := ItemBase[TItemEnum(FItem.ItemID)].Symbol;
1254
+ end ;
1255
+ Terminal.Print(X, Y, FSymbol, FColor);
1246
1256
end ;
1247
1257
end ;
1248
1258
@@ -1784,7 +1794,7 @@ function TItems.RenderInvItem(X, Y, I: Integer; AItem: Item;
1784
1794
1785
1795
if IsRender then
1786
1796
begin
1787
- Terminal.ForegroundColor(D .Color);
1797
+ Terminal.ForegroundColor(AItem .Color);
1788
1798
Terminal.Print(X, Y + I, D.Symbol);
1789
1799
end
1790
1800
else
0 commit comments