anchor.diff:      function GetDeliverStage: TKMDeliverStage;
       procedure SetToHouse(aToHouse: TKMHouse);
       procedure SetFromHouse(aFromHouse: TKMHouse);
  +    procedure SetToUnit(aToUnit: TKMUnit);
       property FromHouse: TKMHouse read fFrom write SetFromHouse;
       property ToHouse: TKMHouse read fToHouse write SetToHouse;
  +    property ToUnit: TKMUnit read fToUnit write SetToUnit;
     public
       constructor Create(aSerf: TKMUnitSerf; aFrom: TKMHouse; aToHouse: TKMHouse; Res: TKMWareType; aID: Integer); overload;
       constructor Create(aSerf: TKMUnitSerf; aFrom: TKMHouse; aToUnit: TKMUnit; Res: TKMWareType; aID: Integer); overload;
  
positive.code:   gHands.CleanUpUnitPointer(fToUnit);
    if NewToHouse <> nil then
    begin
      fToHouse := NewToHouse.GetHousePointer;
      if fToHouse.IsComplete then
        fDeliverKind := dkToHouse
      else
  
negative.code: begin
    fFrom := aFromHouse;
    fPointBelowFromHouse := aFromHouse.PointBelowEntrance; //save that point separately, in case fFrom will be destroyed
  end;
  
  
  procedure TKMTaskDeliver.SetToUnit(aToUnit: TKMUnit);
  begin
    fToUnit := aToUnit;
    fPointBelowToHouse := KMPOINT_INVALID_TILE; //clean fPointBelowToHouse since we are going to Unit now
  end;
  
  
  