public void Write(List <MovesetEntryNode> entries, LookupManager lookup, VoidPtr basePtr, VoidPtr address) { Offsets *addr = (Offsets *)address; int i = 0; foreach (MovesetEntryNode e in entries) { addr->Entries[i] = (uint)e.RebuildAddress - (uint)basePtr; lookup.Add(&addr->Entries[i++]); } }
protected override void PostProcess(LookupManager lookupOffsets) { sParameter *arg = (sParameter *)RebuildAddress; arg->_type = (int)ParamType; if (_script != null) { //if (action._entryOffset == 0) // Console.WriteLine("Action offset = 0"); arg->_data = Offset(_script.RebuildAddress); if (arg->_data > 0) { lookupOffsets.Add(arg->_data.Address); } } else { arg->_data = -1; if (External) { RebuildAddress += 4; } else { foreach (TableEntryNode e in _root.ReferenceList) { if (e.Name == this.Name) { _externalEntry = e; //if (!e.References.Contains(this)) e.References.Add(this); RebuildAddress += 4; break; } } } } }
public void Write(List<MovesetEntry> entries, LookupManager lookup, VoidPtr basePtr, VoidPtr address) { Offsets* addr = (Offsets*)address; int i = 0; foreach (MovesetEntry e in entries) { addr->Entries[i] = (uint)e._rebuildAddr - (uint)basePtr; lookup.Add(&addr->Entries[i++]); } }
protected override void PostProcess(LookupManager lookupOffsets) { sParameter* arg = (sParameter*)_rebuildAddr; arg->_type = (int)ParamType; if (_script != null) { //if (action._entryOffset == 0) // Console.WriteLine("Action offset = 0"); arg->_data = Offset(_script._rebuildAddr); if (arg->_data > 0) lookupOffsets.Add(arg->_data.Address); } else { arg->_data = -1; if (External) _rebuildAddr += 4; else foreach (ExternalEntry e in _root.ReferenceList) if (e.Name == this.Name) { _externalEntry = e; //if (!e.References.Contains(this)) e.References.Add(this); _rebuildAddr += 4; break; } } }