anchor.diff:      function HasOptions: boolean;
   
     published
  +    property Index;
       property X:integer read FX write SetX;
       property Y:integer read FY write SetY;
       property L:integer read FL write SetL;
  
positive.code: 
  procedure TMapObject.SetX(AValue: integer);
  begin
    if not GetMap.IsOnMap(FL, AValue,FY) then exit;
    if FX = AValue then Exit;
    FX := AValue;
    Changed;
  
negative.code: 
  procedure TMapObject.SetY(AValue: integer);
  begin
    if not GetMap.IsOnMap(FL, FX,AValue) then
    begin
      DebugLn('Invalid object Y position '+IntToStr(AValue));
      exit;
    end;
  
    if FY = AValue then Exit;
    FY := AValue;
    Changed;
  