anchor.diff:  
   function TMobs.Count: Integer;
   begin
  -  Result := Length(FMob);
  +  Result := Length(FMob)
   end;
   
   constructor TMobs.Create;
   begin
  -  SetLength(FMob, 0);
  +  SetLength(FMob, 0)
   end;
   
   destructor TMobs.Destroy;
  
positive.code: 
  function TMobs.ChMob(I: Integer; AX, AY: Byte): Boolean;
  begin
    with FMob[I] do
      Result := Alive and (Maps = Map.Current) and (AX = X) and (AY = Y);
  end;
  
  function TMobs.GetFreeTile(AX, AY: Byte): Boolean;
  
negative.code: begin
    NX := 0;
    NY := 0;
    //
    if (AX < PX) then
    begin
      case Math.RandomRange(0, 4) of
        0:
        begin
          NY := -1;
        end;
        1:
        begin
          NY := +1;
        end;
        2:
        begin
          NX := +1;
          NY := -1;
        end;
        3:
        begin
          NX := +1;
          NY := +1;
        end;
      end;
    end;
    if (AX > PX) then
    begin
      case Math.RandomRange(0, 4) of
        0:
        begin
          NY := -1;
        end;
        1:
        begin
          NY := +1;
        end;
        2:
        begin
          NX := -1;
          NY := +1;
        end;
        3:
        begin
          NX := -1;
          NY := -1;
        end;
      end;
    end;
    //
    if (AY < PY) then
    begin
      case Math.RandomRange(0, 4) of
        0:
        begin
          NX := +1;
        end;
        1:
        begin
          NX := -1;
        end;
        2:
        begin
          NX := -1;
          NY := +1;
        end;
        3:
        begin
          NX := +1;
          NY := +1;
        end;
      end;
    end;
    if (AY > PY) then
    begin
      case Math.RandomRange(0, 4) of
        0:
        begin
          NX := +1;
        end;
        1:
        begin
          NX := -1;
        end;
        2:
        begin
          NX := -1;
          NY := -1;
        end;
        3:
        begin
          NX := +1;
          NY := -1;
        end;
      end;
    end;
    //
    FX := EnsureRange(X + NX, 0, High(Byte));
    FY := EnsureRange(Y + NY, 0, High(Byte));
    if Mobs.GetFreeTile(FX, FY) and (Map.GetTileEnum(FX, FY, Map.Current)
  