Пример #1
0
        public VirtualLabel CreateVirtualLabel(StCpNumber fileNumber, int address)
        {
            var jumpLabel      = JumpTableEntry.GenerateJumpID(fileNumber, address);
            var jumpTableEntry = jumpLabelMap[jumpLabel];
            var virtualLabel   = new VirtualLabel(jumpTableEntry);

            return(virtualLabel);
        }
Пример #2
0
        public void LoadJumpTable()
        {
            string originalFilePath = Path.Combine(ProjectFolder.rootDir, ProjectFolder.unpackedGameFilesDir, JUMP_TABLE_FILE);

            FileStream   fs = new FileStream(originalFilePath, FileMode.Open);
            BinaryReader br = new BinaryReader(fs);

            footer.Read(br);
            header.Read(br);

            long streamEnd = br.BaseStream.Length - ElementHelper.GetElementSize(footer);

            while (br.BaseStream.Position != streamEnd)
            {
                var nextEntry = new JumpTableEntry();
                nextEntry.Read(br);
                jumpTableEntries.Add(nextEntry);
            }

            br.Close();
        }
Пример #3
0
        public bool IsJumpTarget(StCpNumber fileNumber, int address)
        {
            var tempLabel = JumpTableEntry.GenerateJumpID(fileNumber, address);

            return(jumpLabelMap.Keys.Contains(tempLabel));
        }
Пример #4
0
 public VirtualLabel(JumpTableEntry toPair)
 {
     pairedEntry = toPair;
 }