示例#1
0
        public override bool OnInitialize()
        {
            base.OnInitialize();

            REFT *header = Header;

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

            return(header->Table->_entries > 0);
        }
示例#2
0
        protected override bool OnInitialize()
        {
            base.OnInitialize();

            REFT *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);
        }
示例#3
0
        public override void OnRebuild(VoidPtr address, int length, bool force)
        {
            REFT *header = (REFT *)address;

            header->_linkPrev            = 0;
            header->_linkNext            = 0;
            header->_padding             = 0;
            header->_dataLength          = length - 0x18;
            header->_dataOffset          = 0x48;
            header->_header._tag         = header->_tag = REFT.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 - 0x20;
                n.Rebuild((VoidPtr)table + offset, n._calcSize, force);
                offset += n._calcSize;
                entry   = entry->Next;
            }
        }
示例#4
0
        //[Category("REFT Data")]
        //public int DataLength { get { return _dataLen; } }
        //[Category("REFT Data")]
        //public int DataOffset { get { return _dataOff; } }

        //[Category("REFT Object Table")]
        //public int Length { get { return _TableLen; } }
        //[Category("REFT Object Table")]
        //public short NumEntries { get { return _TableEntries; } }

        public override bool OnInitialize()
        {
            base.OnInitialize();

            REFT *header = Header;

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

            _dataLen = header->_dataLength;
            _dataOff = header->_dataOffset;
            _unk1    = header->_linkPrev;
            _unk2    = header->_linkNext;

            REFTypeObjectTable *objTable = header->Table;

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

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