// Load the standard pattern of [UINT COUNT][UINT OFFSET TO TABLE] -> [UINT OFFSET 1][UINT OFFSET 2]...
        public IEnumerable <TDICTObj> LoadDICTObjList <TDICTObj>()
            where TDICTObj : ChunkDICTObject, new()
        {
            TDICTObj[] result = null;

            CGFXDebug.LoadStart($"HEADER of list of {typeof(TDICTObj).Name} [LoadDICTObjList]", this);

            var count         = ReadU32();
            var locationTable = ReadOffset();

            if (count > 0)
            {
                result = new TDICTObj[count];

                PushReadPosition();
                SetReadPosition(locationTable);

                CGFXDebug.LoadStart($"List of {typeof(TDICTObj).Name} [LoadDICTObjList]", this);

                for (var index = 0; index < count; index++)
                {
                    result[index] = LoadDICTObj <TDICTObj>();
                }

                PopReadPosition();
            }

            return(result);
        }
        // Load standard pattern of offset to another object elsewhere (not inline)
        public TDICTObj LoadDICTObj <TDICTObj>()
            where TDICTObj : ChunkDICTObject, new()
        {
            TDICTObj result = null;

            LoadIndirect(() =>
            {
                var obj = new TDICTObj();
                obj.Load(this);
                result = obj;
            });

            return(result);
        }