public VirtualLabel CreateVirtualLabel(StCpNumber fileNumber, int address) { var jumpLabel = JumpTableEntry.GenerateJumpID(fileNumber, address); var jumpTableEntry = jumpLabelMap[jumpLabel]; var virtualLabel = new VirtualLabel(jumpTableEntry); return(virtualLabel); }
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(); }
public bool IsJumpTarget(StCpNumber fileNumber, int address) { var tempLabel = JumpTableEntry.GenerateJumpID(fileNumber, address); return(jumpLabelMap.Keys.Contains(tempLabel)); }
public VirtualLabel(JumpTableEntry toPair) { pairedEntry = toPair; }