anchor.diff:  
   
   const
  -  CAMPAIGN_DATA_TYPE = 'TCampaignData'; //Type of the global variable
  -  CAMPAIGN_DATA_VAR = 'CampaignData'; //Name of the global variable
  +  CAMPAIGN_DATA_TYPE = 'TCampaignData'; // Type of the global variable
  +  CAMPAIGN_DATA_VAR = 'CampaignData'; // Name of the global variable
     VALID_GLOBAL_VAR_TYPES: set of TPSBaseType = [
       btU8,  //Byte, Boolean, Enums
       btS8,  //ShortInt
  
positive.code:     Sender.AddTypeS('TIntegerArray', 'array of Integer'); //Needed for PlayerGetAllUnits
      Sender.AddTypeS('TAnsiStringArray', 'array of AnsiString'); //Needed for some array Utils
      Sender.AddTypeS('TByteSet', 'set of Byte'); //Needed for Closest*MultipleTypes
      Sender.AddTypeS('TKMPoint', 'record X,Y:Integer; end;'); //Could be very useful
  
      Sender.AddTypeS('TKMFieldType', '(ftNone,ftRoad,ftCorn,ftWine)'); //No need to add InitWine for scripts
      Sender.AddTypeS('TKMHouseType', '(htNone, htAny, '
        + 'htArmorSmithy,     htArmorWorkshop,   htBakery,        htBarracks,      htButchers,'
        + 'htCoalMine,        htFarm,            htFisherHut,     htGoldMine,      htInn,'
  
negative.code:   KM_ScriptFilesCollection, KM_ScriptErrorHandler, KM_ScriptPreProcessor,
    KM_ScriptValidatorResult;
  
    // Dynamic scripts allow mapmakers to control the mission flow
  
    // Three classes exposed to scripting States, Actions and Utils
  
    // All functions can be split into these three categories:
    // - Event, when something has happened (e.g. House was built)
    // - State, describing the state of something (e.g. Houses.Count >= 1)
    // - Action, when we need to perform something (e.g. show a message)
  
    // How to add new a method exposed to the scripting? Three steps:
    // 1. Add method to published section here below
    // 2. Add method declaration to Compiler (TKMScripting.ScriptOnUses)
    // 3. Add method name to Runtime (TKMScripting.LinkRuntime)
  
  type
    TKMScripting = class
  