anchor.diff:      if Result then
         U.SetActionWalkPushed( fTerrain.GetOutOfTheWay(U.GetPosition,KMPoint(0,0),CanWalk) );
     end;
  +end;
  +
  +
  +procedure TUnitActionGoInOut.WalkOut(aUnit:TKMUnit);
  +begin
  +  aUnit.Direction := KMGetDirection(KMPointRound(fDoor) ,fStreet);
  +  aUnit.UpdateNextPosition(fStreet);
  +  fTerrain.UnitAdd(aUnit.NextPosition, aUnit); //Unit was not occupying tile while inside
  +  if (aUnit.GetHome <> nil)
  +  and (aUnit.GetHome.GetHouseType = ht_Barracks) //Unit home is barracks
  +  and (aUnit.GetHome = fHouse) then //And is the house we are walking from
  +    TKMHouseBarracks(aUnit.GetHome).RecruitsList.Remove(aUnit);
   end;
   
   
  
positive.code:         KMUnit.IsExchanging := (fHouse.DoorwayUse > 1);
      end;
      
      fHasStarted:=true;
    end;
  
  
  
negative.code:       procedure IncDoorway;
        procedure DecDoorway;
        function ValidTileToGo(aLocX, aLocY:word; aUnit:TKMUnit):boolean; //using X,Y looks more clear
        procedure WalkOut(aUnit:TKMUnit);
      public
        constructor Create(aAction: TUnitActionType; aDirection:TGoInDirection; aHouse:TKMHouse);
        constructor Load(LoadStream:TKMemoryStream); override;
  