anchor.diff:  
     procedure RenderDungeonItems(MapID: Integer);
     var
  -    I, Count: Integer;
  +    I, Index, Count: Integer;
       FItem: Item;
     begin
       Count := Items_Dungeon_GetMapCount(MapID);
       for I := Count - 1 downto 0 do
       begin
         FItem := Items_Dungeon_GetMapItem(MapID, I);
  +      Index := FItem.ItemID - 1;
         ConioEngineWriteChar(FItem.X + 1, FItem.Y + 1,
  -        ItemBase[FItem.ItemID - 1].Char, ItemBase[FItem.ItemID - 1].Color);
  +        ItemBase[Index].Char, ItemBase[Index].Color);
       end;
     end;
   
  
positive.code:       else
          S := '(' + IntToStr(AItem.Durability) + '/' + IntToStr(ItemBase[N].MaxDurability) + ')';
      ConioEngineWriteString(X, Y, '[' + Chr(I + 97) + ']', 15);
      ConioEngineWriteString(X + 4, Y, ItemBase[N].Name
        , ItemBase[N].Color);
      ConioEngineWriteString(X + Length(ItemBase[N].Name) + 5, Y, S, 8);
    end;
  
  
negative.code:       FItem.Y := Math.RandomRange(1, MapHeight - 1);
        case FItem.ItemID of
          // Weapons
          7: // Gold
          begin
            FItem.Stack := 10;
            FItem.Amount := Math.RandomRange(0, 25) + 1;
          end;
          8: // Keys
          begin
            FItem.Stack := 5;
            FItem.Amount := Math.RandomRange(0, 5) + 1;
          end;
          9: // Arrows
          begin
            FItem.Stack := 50;
            FItem.Amount := Math.RandomRange(0, 100) + 1;
  