Example #1
0
        public override void OnRebuild(VoidPtr address, int length, bool force)
        {
            REFF *header = (REFF *)address;

            header->_linkPrev            = 0;
            header->_linkNext            = 0;
            header->_padding             = 0;
            header->_dataLength          = length - 0x18;
            header->_header._tag         = header->_tag = REFF.Tag;
            header->_header.Endian       = Endian.Big;
            header->_header._version     = 7;
            header->_header._length      = length;
            header->_header._firstOffset = 0x10;
            header->_header._numEntries  = 1;
            header->IdString             = Name;

            REFTypeObjectTable *table = (REFTypeObjectTable *)((byte *)header + header->_dataOffset + 0x18);

            table->_entries = (ushort)Children.Count;
            table->_pad     = 0;
            table->_length  = _tableLen;

            REFTypeObjectEntry *entry = table->First;
            int offset = _tableLen;

            foreach (ResourceNode n in Children)
            {
                entry->Name       = n.Name;
                entry->DataOffset = offset;
                entry->DataLength = n._calcSize;
                n.Rebuild((VoidPtr)table + offset, n._calcSize, force);
                offset += n._calcSize;
                entry   = entry->Next;
            }
        }
Example #2
0
        public override bool OnInitialize()
        {
            base.OnInitialize();

            REFF *header = Header;

            if (_name == null)
            {
                _name = header->IdString;
            }

            return(header->Table->_entries > 0);
        }
Example #3
0
        protected override bool OnInitialize()
        {
            base.OnInitialize();

            REFF *header = Header;

            _name    = header->IdString;
            _dataLen = header->_dataLength;
            _dataOff = header->_dataOffset;
            _unk1    = header->_unk1;
            _unk2    = header->_unk2;
            _unk3    = header->_unk3;

            REFTypeObjectTable *objTable = header->Table;

            _TableLen     = (int)objTable->_length;
            _TableEntries = (short)objTable->_entries;
            _TableUnk1    = (short)objTable->_unk1;

            return(header->Table->_entries > 0);
        }