anchor.diff:     1: begin
           Thought := thNone;
           gTerrain.SetTileLock(fLoc, tlFieldWork);
  -        TileLockSet := True;
  +        fTileLockSet := True;
   
           CancelThePlan;
   
           gTerrain.ResetDigState(fLoc); //Remove any dig over that might have been there (e.g. destroyed house)
   
           gHands[Owner].Deliveries.Queue.AddDemand(nil,fUnit,wtWood, 1, dtOnce, diHigh4);
  -        DemandSet := true;
  +        fDemandSet := true;
   
           SetActionLockedStay(12*4,uaWork1,false);
         end;
  
positive.code: 
    Inc(fPhase);
  
    if (fPhase = 7) and (LastToDig >= 0) then
      fPhase := 2; //Repeat with next cell
  end;
  
  
negative.code:   inherited;
    LoadStream.PlaceMarker('TaskBuildWine');
    LoadStream.Read(fLoc);
    LoadStream.Read(fBuildID);
    LoadStream.Read(fDemandSet);
    LoadStream.Read(fTileLockSet);
  end;
  
  
  destructor TKMTaskBuildWine.Destroy;
  begin
    //Yet unstarted
    if fBuildID <> -1 then
      if gTerrain.CanAddField(fLoc.X, fLoc.Y, ftWine) then
        //Allow other workers to take this task
        gHands[fUnit.Owner].Constructions.FieldworksList.ReOpenField(fBuildID)
      else
        //This plan is not valid anymore
        gHands[fUnit.Owner].Constructions.FieldworksList.CloseField(fBuildID);
  
    if fDemandSet then
      gHands[fUnit.Owner].Deliveries.Queue.RemDemand(fUnit);
  
    if fTileLockSet then
      gTerrain.UnlockTile(fLoc);
    inherited;
  end;
  