Пример #1
0
        protected internal override void PostProcess(VoidPtr bresAddress, VoidPtr dataAddress, int dataLength, StringTable stringTable)
        {
            base.PostProcess(bresAddress, dataAddress, dataLength, stringTable);

            if (SharesData)
            {
                BRESCommonHeader *commonHeader = (BRESCommonHeader *)dataAddress;
                commonHeader->_size = InclusiveEntrySize();
            }

            if (_version == 2)
            {
                TEX0v2 *header = (TEX0v2 *)dataAddress;
                header->ResourceStringAddress = stringTable[Name] + 4;
                if (!String.IsNullOrEmpty(_originalPath))
                {
                    header->OrigPathAddress = stringTable[_originalPath] + 4;
                }
            }
            else
            {
                TEX0v1 *header = (TEX0v1 *)dataAddress;
                header->ResourceStringAddress = stringTable[Name] + 4;
                if (!String.IsNullOrEmpty(_originalPath))
                {
                    header->OrigPathAddress = stringTable[_originalPath] + 4;
                }
            }
        }
Пример #2
0
        internal protected virtual void PostProcess(VoidPtr bresAddress, VoidPtr dataAddress, int dataLength, StringTable stringTable)
        {
            BRESCommonHeader *header = (BRESCommonHeader *)dataAddress;

            if (bresAddress)
            {
                header->_bresOffset = (int)bresAddress - (int)header;
            }

            header->_size = dataLength;
        }
Пример #3
0
        protected override void OnPopulate()
        {
            ResourceGroup *group = Group;

            for (int i = 0; i < group->_numEntries; i++)
            {
                BRESCommonHeader *hdr = (BRESCommonHeader *)group->First[i].DataAddress;
                if (NodeFactory.FromAddress(this, hdr, hdr->_size) == null)
                {
                    new BRESEntryNode().Initialize(this, hdr, hdr->_size);
                }
            }
        }
Пример #4
0
        internal protected virtual void PostProcess(VoidPtr bresAddress, VoidPtr dataAddress, int dataLength, StringTable stringTable)
        {
            BRESCommonHeader *header = (BRESCommonHeader *)dataAddress;

            if (bresAddress)
            {
                header->_bresOffset = (int)bresAddress - (int)header;
            }
            else
            {
                // AFAIK only the Export method calls this method with a bresAddress of null - it should be OK to put 0 in here
                header->_bresOffset = 0;
            }

            header->_size = dataLength;
        }