anchor.diff:  
       procedure CreateShortcuts();
     public
  -    constructor Create(aPlayer: TKMHandIndex);
  +    constructor Create(aPlayer: TKMHandIndex; aPredictor: TKMCityPredictor);
       destructor Destroy(); override;
   
       property Planner: TKMCityPlanner read fPlanner;
  
positive.code:   BUILD_WARE: TSetOfWare = [wt_GoldOre, wt_Coal, wt_Gold, wt_Stone, wt_Trunk, wt_Wood];
    FOOD_WARE: TSetOfWare = [wt_Corn, wt_Flour, wt_Bread, wt_Pig, wt_Sausages, wt_Wine, wt_Fish];
    WEAPON_WARE: TSetOfWare = [wt_Skin, wt_Leather, wt_Horse, wt_IronOre, wt_Coal, wt_Steel, wt_Axe, wt_Bow, wt_Pike, wt_Armor, wt_Shield, wt_Sword, wt_Arbalet, wt_Hallebard, wt_MetalShield, wt_MetalArmor];
  
    function GetHouseToUnlock(var aUnlockProcedure: Boolean; var aHT, aFollowingHouse: THouseType): Boolean;
    var
  
negative.code:   Locs: TKMPointTagList;
  begin
    // Don't build shortcuts when is negative stone derivation
    if   (fPredictor.WareBalance[wt_Stone].Exhaustion < 60)
      //OR (fPredictor.WareBalance[wt_Wood].Exhaustion < 60)
      OR (fPredictor.WareBalance[wt_Gold].Exhaustion < 60) then
      Exit;
  
    // Check if there is free build node
  