private void DefineScriptObjectTagBlocks()
        {
            _referencedObjects = new ScriptObjectTagBlock("number of script objects", "script object table address",
                                                          "script object element");
            _triggerVolumes = new ScriptObjectTagBlock("number of trigger volumes", "trigger volumes table address",
                                                       "trigger volume element");
            _cutsceneFlags = new ScriptObjectTagBlock("number of cutscene flags", "cutscene flags table address",
                                                      "cutscene flag element");
            _cutsceneCameraPoints = new ScriptObjectTagBlock("number of cutscene camera points",
                                                             "cutscene camera points table address", "cutscene camera point element");
            _cutsceneTitles = new ScriptObjectTagBlock("number of cutscene titles", "cutscene titles table address",
                                                       "cutscene title element");
            _deviceGroups = new ScriptObjectTagBlock("number of device groups", "device groups table address",
                                                     "device group element");
            _aiSquadGroups = new ScriptObjectTagBlock("number of ai squad groups", "ai squad groups table address",
                                                      "ai squad group element");
            _aiSquads = new ScriptObjectTagBlock("number of ai squads", "ai squads table address", "ai squad element");
            _aiSquadSingleLocations = new ScriptObjectTagBlock("number of single locations", "single locations table address",
                                                               "ai squad single location element");
            _aiObjects        = new ScriptObjectTagBlock("number of ai objects", "ai objects table address", "ai object element");
            _aiObjectWaves    = new ScriptObjectTagBlock("number of waves", "waves table address", "ai object wave element");
            _startingProfiles = new ScriptObjectTagBlock("number of starting profiles", "starting profiles table address",
                                                         "starting profile element");
            _zoneSets      = new ScriptObjectTagBlock("number of zone sets", "zone sets table address", "zone set element");
            _objectFolders = new ScriptObjectTagBlock("number of object folders", "object folders table address",
                                                      "object folder element");
            _pointSets      = new ScriptObjectTagBlock("number of point sets", "point sets table address", "point set element");
            _pointSetPoints = new ScriptObjectTagBlock("number of points", "points table address", "point set point element");

            _aiSquads.RegisterChild(_aiSquadSingleLocations);
            _aiObjects.RegisterChild(_aiObjectWaves);
            _pointSets.RegisterChild(_pointSetPoints);
        }
 private ScriptObject[] ReadObjects(IReader reader, StructureValueCollection values, ScriptObjectTagBlock block)
 {
     return(block.ReadObjects(values, reader, _metaArea, _stringIDs, _buildInfo, _expander));
 }