コード例 #1
0
            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++]);
                }
            }
コード例 #2
0
        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;
                        }
                    }
                }
            }
        }
コード例 #3
0
 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++]);
     }
 }
コード例 #4
0
        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;
                        }
            }
        }