anchor.diff:      else Result := TaskDone;
     end;
   
  -  inc(fPhase);
  -end;
  -
  -
  -procedure TTaskDeliver.Save(SaveStream:TKMemoryStream);
  +  Inc(fPhase);
  +end;
  +
  +
  +procedure TTaskDeliver.Save(SaveStream: TKMemoryStream);
   begin
     inherited;
     if fFrom <> nil then
  
positive.code: type
    TDeliverKind = (dk_ToHouse, dk_ToConstruction, dk_ToUnit);
  
  
    {Perform delivery}
    TTaskDeliver = class(TUnitTask)
    private
      fFrom:TKMHouse;
      fToHouse:TKMHouse;
      fToUnit:TKMUnit;
      fResourceType:TResourceType;
      fDeliverID:integer;
      fDeliverKind:TDeliverKind;
    public
      constructor Create(aSerf:TKMUnitSerf; aFrom:TKMHouse; toHouse:TKMHouse; Res:TResourceType; aID:integer); overload;
      constructor Create(aSerf:TKMUnitSerf; aFrom:TKMHouse; toUnit:TKMUnit; Res:TResourceType; aID:integer); overload;
      constructor Load(LoadStream:TKMemoryStream); override;
      procedure SyncLoad; override;
      destructor Destroy; override;
      function WalkShouldAbandon:boolean; override;
      property DeliverKind: TDeliverKind read fDeliverKind;
      function Execute:TTaskResult; override;
      procedure Save(SaveStream:TKMemoryStream); override;
    end;
  
  
  
negative.code: 
  
  //Note: Phase is -1 because it will have been increased at the end of last Execute
  function TTaskDeliver.WalkShouldAbandon: Boolean;
  begin
    Result := false;
  
  