anchor.diff:  
   function TTaskAttackHouse.WalkShouldAbandon:boolean;
   begin
  -  Result := false;
  -
  -  //Stop walking if the house has been destroyed already
  -  if fHouse.IsDestroyed then
  -  begin
  +  if fHouse.IsDestroyed then begin
       Result := true;
       exit;
     end;
   
  -  //See if someone beat us to this location
     if PosUsed(Cells.List[LocID].Loc) then
     begin
       Result := true;
  
positive.code:       LocID:byte; //Current attack location
        Cells:TKMPointDirList; //List of surrounding cells and directions
        function PosUsed(aPos: TKMPoint):boolean;
        //todo: not abandoned properly yet
      public
        constructor Create(aWarrior: TKMUnit; aHouse:TKMHouse);
        constructor Load(LoadStream:TKMemoryStream); override;
  
negative.code:   Inherited Create(aWarrior);
    fTaskName := utn_AttackHouse;
  
    fLog.AssertToLog(aHouse<>nil, 'Trying to attack NIL house?');
    fHouse := aHouse.GetHousePointer;
    LocID  := 0;
    Cells  := TKMPointDirList.Create; //Pass pre-made list to make sure we Free it in the same unit
  