anchor.diff:      //Check whether passability was unchanged, if so we can completely skip the update
       class function CheckCanSkip(aWorkRect:TKMRect; aWC:TWalkConnect; aPass:TPassability; aDiagObjectsEffected: Boolean): Boolean;
   
  +    //Helpful functions used to determine when it's ok to use LocalUpdate instead of slower GlobalUpdate
  +    class function ExactlyOneAreaIDInRect_Current(aRect:TKMRect; aWC: TWalkConnect): Boolean;
  +    class function ExactlyOneAreaIDInRect_New(aRect:TKMRect; aWC: TWalkConnect; aPass: TPassability; aAllowDiag: Boolean): Boolean;
  +
       //GlobalUpdate rebuilds the entire map
       class procedure GlobalUpdate(aWC: TWalkConnect; aPass: TPassability; aAllowDiag: Boolean);
       //LocalUpdate just updates changes in aRect for much better performance, used under special conditions
  
positive.code:     AreaID := 0;
      for X := aRect.Left to aRect.Right do
        for Y := aRect.Top to aRect.Bottom do
          if Land[Y,X].WalkConnect[aWC] <> 0 then
          begin
            Assert(AreaID = 0, 'Must not do local walk connect update with multiple AreaIDs in Rect');
            AreaID := Land[Y,X].WalkConnect[aWC];
  
negative.code:   //local area based on current passabilities (doing global update is a waste of time).
    //NOTE: This logic works because we grew aAreaAffected by 1.
    if (KMRectArea(LocalArea) < 64) //If the area is large the test takes too long, better to just do global update
    and ExactlyOneAreaIDInRect_Current(LocalArea, aWC)
    and ExactlyOneAreaIDInRect_New(LocalArea, aWC, aPass, aAllowDiag) then
      LocalUpdate(LocalArea, aWC, aPass, aAllowDiag)
    else
      GlobalUpdate(aWC, aPass, aAllowDiag);
  