anchor.diff:    begin
       //First find out the AreaID for this rect area BEFORE the change (must only be one!)
       AreaID := 0;
  -    for X := aRect.Left to aRect.Right do
  -      for Y := aRect.Top to aRect.Bottom do
  +    for Y := aRect.Top to aRect.Bottom do
  +      for X := aRect.Left to aRect.Right do
           if (Land[Y,X].WalkConnect[aWC] <> 0) and (Land[Y,X].WalkConnect[aWC] <> AreaID) then
           begin
             Assert(AreaID = 0, 'Must not do local walk connect update with multiple AreaIDs in Rect');
  
positive.code:     Assert(AreaID <> 0, 'Must not do local walk connect update with zero AreaIDs in Rect');
  
      //Now update WalkConnect based on passability, setting it to either AreaID or 0
      for X := aRect.Left to aRect.Right do
        for Y := aRect.Top to aRect.Bottom do
          if aPass in Land[Y,X].Passability then
            Land[Y,X].WalkConnect[aWC] := AreaID //Walkable
          else
  
negative.code:   begin
      //First find out the AreaID for this rect area BEFORE the change (must only be one!)
      AreaID := 0;
      for Y := aRect.Top to aRect.Bottom do
        for X := aRect.Left to aRect.Right do
          if (Land[Y,X].WalkConnect[aWC] <> 0) and (Land[Y,X].WalkConnect[aWC] <> AreaID) then
          begin
            //If we already found a different AreaID then there's more than one, so we can exit immediately
  