anchor.diff:            fValidationIssues.AddError(0, 0, '', 'Error in declaration of global campaign data type');
           end;
         end;
  -
  +  end;
  +
  +var
  +  c: TPSCompileTimeClass;
  +begin
  +  if Name = 'SYSTEM' then
  +  begin
       // Common
       Sender.AddTypeS('TIntegerArray', 'array of Integer'); //Needed for PlayerGetAllUnits
       Sender.AddTypeS('TAnsiStringArray', 'array of AnsiString'); //Needed for some array Utils
  
positive.code:       + 'utCrab,         utWaterflower,  utWaterleaf,    utDuck)');
  
      Sender.AddTypeS('TReplaceFlags', '(rfReplaceAll, rfIgnoreCase)'); //Needed for string util Utils.StringReplace
  
      // Register classes and methods to the script engine.
      // After that they can be used from within the script.
  
negative.code:       Assert(False, Format('Error registering "%s"', [aDecl]));
    end;
  
    procedure AddCampaignData;
    var
      campaignDataType: TPSType;
    begin
      // Add TKMCampaignData type declaration from campaigndata.script and variable CampaignData: TKMCampaignData
      if fCampaignDataTypeScriptCode <> '' then
        try
          campaignDataType := Sender.AddTypeS(CAMPAIGN_DATA_TYPE, fCampaignDataTypeScriptCode);
  