コード例 #1
0
        public override void OnRebuild(VoidPtr address, int length, bool force)
        {
            ItmFreqOffEntry *header = (ItmFreqOffEntry *)address;

            *header = new ItmFreqOffEntry();
            header->_offset = HasChildren ? _offset : 0;
            header->_count  = (uint)Children.Count;
        }
コード例 #2
0
ファイル: itmFreqNode.cs プロジェクト: Ruin0x11/RSEQEditor
        public override void OnRebuild(VoidPtr address, int length, bool force)
        {
            ItmFreqOffEntry *Header = (ItmFreqOffEntry *)address;

            *Header = new ItmFreqOffEntry();
            Header->_offset = _entryOffset;
            Header->_count  = _count;
            //Root._pointerList.Add(((int)address - (int)BaseAddress));

            for (int i = 0; i < Children.Count; i++)
            {
                Children[i].Rebuild(BaseAddress + Header->_offset + (i * 0x14), 0x14, force);
            }
        }
コード例 #3
0
        public override bool OnInitialize()
        {
            base.OnInitialize();

            ItmFreqHeader *Header = (ItmFreqHeader *)WorkingUncompressed.Address;

            _dataLength  = Header->_DataLength;
            _fileSize    = Header->_Length;
            _DTableCount = Header->_DataTable;
            _offCount    = Header->_OffCount;

            BaseAddress   = (VoidPtr)Header + 0x20;
            _pPointerList = BaseAddress + _dataLength;
            _strings.Add("genParamSet");

            _t1 = TableList->_table1;
            _t2 = TableList->_table2;
            _t3 = TableList->_table3;
            _t4 = TableList->_table4;
            _t5 = TableList->_table5;

            for (int i = 0; i < 5; i++)
            {
                if (TableList->Entries[i]._count > 0)
                {
                    _numTables++;
                }
            }

            // Add the offsets to the pointers list, then the offset to the table list.
            for (int i = 0; i < _offCount; i++)
            {
                _pointerList.Add(*(bint *)(_pPointerList + i * 4));
            }

            // Get the location for the Data Table, then add each entry to the list.
            _pDataTable = _pPointerList + _offCount * 4;
            for (int i = 0; i < Header->_DataTable; i++)
            {
                _DataTable.Add(new ItmFreqOffPair(*(bint *)(_pDataTable + i * 8), *(bint *)(_pDataTable + i * 8 + 4)));
            }

            if (_name == null)
            {
                _name = "Item Generation";
            }

            return(_numTables > 0);
        }