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; } }
public override bool OnInitialize() { base.OnInitialize(); REFF *header = Header; if (_name == null) { _name = header->IdString; } return(header->Table->_entries > 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); }