Usecode pseudocode
This commit is contained in:
parent
f92d1504fa
commit
c12bb39437
1362 changed files with 71072 additions and 38056 deletions
|
|
@ -12,19 +12,16 @@ if str(REPO_ROOT) not in sys.path:
|
|||
sys.path.insert(0, str(REPO_ROOT))
|
||||
|
||||
|
||||
from tools.poc_crusader_usecode_parser import CLASS_LAYOUT_INDEX, EXTRACTED_ROOT, parse_body_ir, render_pseudocode
|
||||
from tools.poc_crusader_usecode_parser import EXTRACTED_ROOT, parse_body_ir, render_pseudocode
|
||||
|
||||
|
||||
CLASS_EVENT_INDEX = EXTRACTED_ROOT / "class_event_index.tsv"
|
||||
|
||||
|
||||
def load_rows() -> list[dict[str, str]]:
|
||||
with CLASS_EVENT_INDEX.open("r", encoding="utf-8", newline="") as handle:
|
||||
def load_rows(class_event_index: Path) -> list[dict[str, str]]:
|
||||
with class_event_index.open("r", encoding="utf-8", newline="") as handle:
|
||||
return list(csv.DictReader(handle, delimiter="\t"))
|
||||
|
||||
|
||||
def load_layout_by_entry() -> dict[int, dict[str, str]]:
|
||||
with CLASS_LAYOUT_INDEX.open("r", encoding="utf-8", newline="") as handle:
|
||||
def load_layout_by_entry(class_layout_index: Path) -> dict[int, dict[str, str]]:
|
||||
with class_layout_index.open("r", encoding="utf-8", newline="") as handle:
|
||||
rows = list(csv.DictReader(handle, delimiter="\t"))
|
||||
layout_by_entry: dict[int, dict[str, str]] = {}
|
||||
for row in rows:
|
||||
|
|
@ -107,18 +104,31 @@ def write_readme(output_root: Path, export_count: int) -> None:
|
|||
|
||||
def main() -> None:
|
||||
parser = argparse.ArgumentParser(description="Export pseudocode for all decoded Crusader USECODE bodies")
|
||||
parser.add_argument(
|
||||
"--extracted-root",
|
||||
default=str(EXTRACTED_ROOT),
|
||||
help="Extracted USECODE root containing class_event_index.tsv and chunks/",
|
||||
)
|
||||
parser.add_argument(
|
||||
"--output-dir",
|
||||
default=str(EXTRACTED_ROOT / "pseudocode"),
|
||||
help="Output directory for pseudocode files (default: USECODE/EUSECODE_extracted/pseudocode)",
|
||||
help="Output directory for pseudocode files (default: <extracted-root>/pseudocode)",
|
||||
)
|
||||
parser.add_argument(
|
||||
"--variant",
|
||||
choices=["auto", "regret", "remorse"],
|
||||
default="auto",
|
||||
help="Crusader intrinsic numbering to apply during export (default: auto, fallback regret)",
|
||||
)
|
||||
args = parser.parse_args()
|
||||
|
||||
output_root = Path(args.output_dir)
|
||||
extracted_root = Path(args.extracted_root)
|
||||
class_event_index = extracted_root / "class_event_index.tsv"
|
||||
class_layout_index = extracted_root / "class_layout_index.tsv"
|
||||
output_root = Path(args.output_dir) if args.output_dir else extracted_root / "pseudocode"
|
||||
output_root.mkdir(parents=True, exist_ok=True)
|
||||
|
||||
rows = load_rows()
|
||||
layout_by_entry = load_layout_by_entry()
|
||||
rows = load_rows(class_event_index)
|
||||
layout_by_entry = load_layout_by_entry(class_layout_index)
|
||||
index_rows: list[dict[str, str]] = []
|
||||
exported = 0
|
||||
|
||||
|
|
@ -130,7 +140,7 @@ def main() -> None:
|
|||
layout_row = layout_by_entry.get(entry_index)
|
||||
if layout_row is None:
|
||||
continue
|
||||
ir = parse_body_ir(row, layout_row)
|
||||
ir = parse_body_ir(row, layout_row, None if args.variant == "auto" else args.variant, extracted_root)
|
||||
pseudocode = render_pseudocode(ir)
|
||||
|
||||
path = output_path_for_row(output_root, row)
|
||||
|
|
|
|||
|
|
@ -24,6 +24,7 @@ from dataclasses import asdict, dataclass
|
|||
|
||||
DEFAULT_INPUT = pathlib.Path(r"k:\ghidra\Crusader_Decomp\USECODE\EUSECODE.FLX")
|
||||
DEFAULT_OUTPUT = pathlib.Path(r"k:\ghidra\Crusader_Decomp\USECODE\EUSECODE_extracted")
|
||||
DEFAULT_VALIDATION_PROFILE = "auto"
|
||||
|
||||
|
||||
@dataclass(frozen=True)
|
||||
|
|
@ -258,6 +259,29 @@ def classify_event_family(chunk: ExtractedChunk) -> str:
|
|||
return "environmental-event"
|
||||
if "typeNpc" in chunk.field_names:
|
||||
return "npc-trigger"
|
||||
|
||||
|
||||
def normalize_validation_profile(value: str | None) -> str:
|
||||
if value is None:
|
||||
return DEFAULT_VALIDATION_PROFILE
|
||||
normalized = value.strip().lower()
|
||||
if normalized not in {"auto", "remorse", "regret", "none"}:
|
||||
raise ValueError(f"unsupported validation profile: {value}")
|
||||
return normalized
|
||||
|
||||
|
||||
def infer_validation_profile(input_path: pathlib.Path, output_path: pathlib.Path) -> str:
|
||||
combined_parts = [part.upper() for part in (*input_path.parts, *output_path.parts)]
|
||||
if "REGRET" in combined_parts:
|
||||
return "regret"
|
||||
return "remorse"
|
||||
|
||||
|
||||
def resolve_validation_profile(input_path: pathlib.Path, output_path: pathlib.Path, requested: str | None) -> str:
|
||||
normalized = normalize_validation_profile(requested)
|
||||
if normalized == "auto":
|
||||
return infer_validation_profile(input_path, output_path)
|
||||
return normalized
|
||||
return "specialized-event"
|
||||
|
||||
|
||||
|
|
@ -549,44 +573,59 @@ IMMORTALITY_BODY_MOTIFS: tuple[tuple[str, bytes], ...] = (
|
|||
)
|
||||
|
||||
|
||||
VERIFIED_REPEATED_FAMILY_ROW_EXPECTATIONS: tuple[RepeatedFamilyRowExpectation, ...] = (
|
||||
RepeatedFamilyRowExpectation("JELYHACK", 0x01, 0x002A, 0x00000001, 0x00D4, 0x00FE, 42, "referent-anchor-twin/shared-slot-0x01/same-length-template"),
|
||||
RepeatedFamilyRowExpectation("JELYH2", 0x01, 0x002A, 0x00000001, 0x00D4, 0x00FE, 42, "referent-anchor-twin/shared-slot-0x01/same-length-template"),
|
||||
RepeatedFamilyRowExpectation("AND_BOOT", 0x0A, 0x0253, 0x00000001, 0x00D4, 0x0327, 595, "boot-event-core/shared-slot-0x0A/shared-slot-template"),
|
||||
RepeatedFamilyRowExpectation("AND_BOOT", 0x0F, 0x0237, 0x00000254, 0x0327, 0x055E, 567, "boot-event-core/shared-slot-0x0F/shared-slot-template"),
|
||||
RepeatedFamilyRowExpectation("AND_BOOT", 0x10, 0x003B, 0x0000048B, 0x055E, 0x0599, 59, "boot-event-core/shared-slot-0x10/same-length-template"),
|
||||
RepeatedFamilyRowExpectation("BRO_BOOT", 0x0A, 0x02D5, 0x00000001, 0x00D4, 0x03A9, 725, "boot-event-core/shared-slot-0x0A/shared-slot-template"),
|
||||
RepeatedFamilyRowExpectation("BRO_BOOT", 0x0F, 0x024C, 0x000002D6, 0x03A9, 0x05F5, 588, "boot-event-core/shared-slot-0x0F/shared-slot-template"),
|
||||
RepeatedFamilyRowExpectation("BRO_BOOT", 0x10, 0x003B, 0x00000522, 0x05F5, 0x0630, 59, "boot-event-core/shared-slot-0x10/same-length-template"),
|
||||
RepeatedFamilyRowExpectation("COR_BOOT", 0x0A, 0x0227, 0x00000001, 0x00D4, 0x02FB, 551, "boot-event-core/shared-slot-0x0A/shared-slot-template"),
|
||||
RepeatedFamilyRowExpectation("COR_BOOT", 0x0F, 0x0234, 0x00000228, 0x02FB, 0x052F, 564, "boot-event-core/shared-slot-0x0F/shared-slot-template"),
|
||||
RepeatedFamilyRowExpectation("COR_BOOT", 0x10, 0x003B, 0x0000045C, 0x052F, 0x056A, 59, "boot-event-core/shared-slot-0x10/same-length-template"),
|
||||
RepeatedFamilyRowExpectation("REE_BOOT", 0x0A, 0x034B, 0x00000001, 0x00D4, 0x041F, 843, "boot-event-core/shared-slot-0x0A/shared-slot-template"),
|
||||
RepeatedFamilyRowExpectation("REE_BOOT", 0x0F, 0x025C, 0x0000034C, 0x041F, 0x067B, 604, "boot-event-core/shared-slot-0x0F/shared-slot-template"),
|
||||
RepeatedFamilyRowExpectation("REE_BOOT", 0x10, 0x003B, 0x000005A8, 0x067B, 0x06B6, 59, "boot-event-core/shared-slot-0x10/same-length-template"),
|
||||
RepeatedFamilyRowExpectation("VAR_BOOT", 0x0A, 0x029A, 0x00000001, 0x00D4, 0x036E, 666, "boot-event-core/shared-slot-0x0A/shared-slot-template"),
|
||||
RepeatedFamilyRowExpectation("VAR_BOOT", 0x0F, 0x0244, 0x0000029B, 0x036E, 0x05B2, 580, "boot-event-core/shared-slot-0x0F/shared-slot-template"),
|
||||
RepeatedFamilyRowExpectation("VAR_BOOT", 0x10, 0x003B, 0x000004DF, 0x05B2, 0x05ED, 59, "boot-event-core/shared-slot-0x10/same-length-template"),
|
||||
RepeatedFamilyRowExpectation("SURCAMNS", 0x01, 0x0051, 0x000000D2, 0x01B7, 0x0208, 81, "callback-eventtrigger/shared-slot-0x01/shared-slot-template"),
|
||||
RepeatedFamilyRowExpectation("SURCAMNS", 0x0A, 0x00D1, 0x00000001, 0x00E6, 0x01B7, 209, "callback-eventtrigger/shared-slot-0x0A/same-length-template"),
|
||||
RepeatedFamilyRowExpectation("SURCAMNS", 0x20, 0x02BA, 0x00000123, 0x0208, 0x04C2, 698, "callback-eventtrigger/shared-slot-0x20/same-length-template"),
|
||||
RepeatedFamilyRowExpectation("SURCAMNS", 0x21, 0x0709, 0x000003DD, 0x04C2, 0x0BCB, 1801, "callback-eventtrigger/shared-slot-0x21/shared-slot-template"),
|
||||
RepeatedFamilyRowExpectation("SURCAMNS", 0x22, 0x01A3, 0x00000AE6, 0x0BCB, 0x0D6E, 419, "callback-eventtrigger/shared-slot-0x22/same-length-template"),
|
||||
RepeatedFamilyRowExpectation("SURCAMEW", 0x01, 0x00F7, 0x000000D2, 0x01B7, 0x02AE, 247, "callback-eventtrigger/shared-slot-0x01/shared-slot-template"),
|
||||
RepeatedFamilyRowExpectation("SURCAMEW", 0x0A, 0x00D1, 0x00000001, 0x00E6, 0x01B7, 209, "callback-eventtrigger/shared-slot-0x0A/same-length-template"),
|
||||
RepeatedFamilyRowExpectation("SURCAMEW", 0x20, 0x02BA, 0x000001C9, 0x02AE, 0x0568, 698, "callback-eventtrigger/shared-slot-0x20/same-length-template"),
|
||||
RepeatedFamilyRowExpectation("SURCAMEW", 0x21, 0x0655, 0x00000483, 0x0568, 0x0BBD, 1621, "callback-eventtrigger/shared-slot-0x21/shared-slot-template"),
|
||||
RepeatedFamilyRowExpectation("SURCAMEW", 0x22, 0x01A3, 0x00000AD8, 0x0BBD, 0x0D60, 419, "callback-eventtrigger/shared-slot-0x22/same-length-template"),
|
||||
RepeatedFamilyRowExpectation("FLAMEBOX", 0x0A, 0x026A, 0x00000001, 0x00E0, 0x034A, 618, "environmental-event/shared-slot-0x0A/shared-slot-template"),
|
||||
RepeatedFamilyRowExpectation("FLAMEBOX", 0x20, 0x01AC, 0x0000026B, 0x034A, 0x04F6, 428, "environmental-event/shared-slot-0x20/shared-slot-template"),
|
||||
RepeatedFamilyRowExpectation("FLAMEBOX", 0x21, 0x029A, 0x00000417, 0x04F6, 0x0790, 666, "environmental-event/shared-slot-0x21/shared-slot-template"),
|
||||
RepeatedFamilyRowExpectation("NOSTRIL", 0x0A, 0x00C0, 0x00000001, 0x00E0, 0x01A0, 192, "environmental-event/shared-slot-0x0A/shared-slot-template"),
|
||||
RepeatedFamilyRowExpectation("NOSTRIL", 0x20, 0x0129, 0x000000C1, 0x01A0, 0x02C9, 297, "environmental-event/shared-slot-0x20/shared-slot-template"),
|
||||
RepeatedFamilyRowExpectation("NOSTRIL", 0x21, 0x01BE, 0x000001EA, 0x02C9, 0x0487, 446, "environmental-event/shared-slot-0x21/shared-slot-template"),
|
||||
RepeatedFamilyRowExpectation("STEAMBOX", 0x0A, 0x0266, 0x00000001, 0x00E0, 0x0346, 614, "environmental-event/shared-slot-0x0A/shared-slot-template"),
|
||||
RepeatedFamilyRowExpectation("STEAMBOX", 0x20, 0x01F6, 0x00000267, 0x0346, 0x053C, 502, "environmental-event/shared-slot-0x20/shared-slot-template"),
|
||||
RepeatedFamilyRowExpectation("STEAMBOX", 0x21, 0x02A7, 0x0000045D, 0x053C, 0x07E3, 679, "environmental-event/shared-slot-0x21/shared-slot-template"),
|
||||
)
|
||||
VERIFIED_REPEATED_FAMILY_ROW_EXPECTATIONS_BY_PROFILE: dict[str, tuple[RepeatedFamilyRowExpectation, ...]] = {
|
||||
"remorse": (
|
||||
RepeatedFamilyRowExpectation("JELYHACK", 0x01, 0x002A, 0x00000001, 0x00D4, 0x00FE, 42, "referent-anchor-twin/shared-slot-0x01/same-length-template"),
|
||||
RepeatedFamilyRowExpectation("JELYH2", 0x01, 0x002A, 0x00000001, 0x00D4, 0x00FE, 42, "referent-anchor-twin/shared-slot-0x01/same-length-template"),
|
||||
RepeatedFamilyRowExpectation("AND_BOOT", 0x0A, 0x0253, 0x00000001, 0x00D4, 0x0327, 595, "boot-event-core/shared-slot-0x0A/shared-slot-template"),
|
||||
RepeatedFamilyRowExpectation("AND_BOOT", 0x0F, 0x0237, 0x00000254, 0x0327, 0x055E, 567, "boot-event-core/shared-slot-0x0F/shared-slot-template"),
|
||||
RepeatedFamilyRowExpectation("AND_BOOT", 0x10, 0x003B, 0x0000048B, 0x055E, 0x0599, 59, "boot-event-core/shared-slot-0x10/same-length-template"),
|
||||
RepeatedFamilyRowExpectation("BRO_BOOT", 0x0A, 0x02D5, 0x00000001, 0x00D4, 0x03A9, 725, "boot-event-core/shared-slot-0x0A/shared-slot-template"),
|
||||
RepeatedFamilyRowExpectation("BRO_BOOT", 0x0F, 0x024C, 0x000002D6, 0x03A9, 0x05F5, 588, "boot-event-core/shared-slot-0x0F/shared-slot-template"),
|
||||
RepeatedFamilyRowExpectation("BRO_BOOT", 0x10, 0x003B, 0x00000522, 0x05F5, 0x0630, 59, "boot-event-core/shared-slot-0x10/same-length-template"),
|
||||
RepeatedFamilyRowExpectation("COR_BOOT", 0x0A, 0x0227, 0x00000001, 0x00D4, 0x02FB, 551, "boot-event-core/shared-slot-0x0A/shared-slot-template"),
|
||||
RepeatedFamilyRowExpectation("COR_BOOT", 0x0F, 0x0234, 0x00000228, 0x02FB, 0x052F, 564, "boot-event-core/shared-slot-0x0F/shared-slot-template"),
|
||||
RepeatedFamilyRowExpectation("COR_BOOT", 0x10, 0x003B, 0x0000045C, 0x052F, 0x056A, 59, "boot-event-core/shared-slot-0x10/same-length-template"),
|
||||
RepeatedFamilyRowExpectation("REE_BOOT", 0x0A, 0x034B, 0x00000001, 0x00D4, 0x041F, 843, "boot-event-core/shared-slot-0x0A/shared-slot-template"),
|
||||
RepeatedFamilyRowExpectation("REE_BOOT", 0x0F, 0x025C, 0x0000034C, 0x041F, 0x067B, 604, "boot-event-core/shared-slot-0x0F/shared-slot-template"),
|
||||
RepeatedFamilyRowExpectation("REE_BOOT", 0x10, 0x003B, 0x000005A8, 0x067B, 0x06B6, 59, "boot-event-core/shared-slot-0x10/same-length-template"),
|
||||
RepeatedFamilyRowExpectation("VAR_BOOT", 0x0A, 0x029A, 0x00000001, 0x00D4, 0x036E, 666, "boot-event-core/shared-slot-0x0A/shared-slot-template"),
|
||||
RepeatedFamilyRowExpectation("VAR_BOOT", 0x0F, 0x0244, 0x0000029B, 0x036E, 0x05B2, 580, "boot-event-core/shared-slot-0x0F/shared-slot-template"),
|
||||
RepeatedFamilyRowExpectation("VAR_BOOT", 0x10, 0x003B, 0x000004DF, 0x05B2, 0x05ED, 59, "boot-event-core/shared-slot-0x10/same-length-template"),
|
||||
RepeatedFamilyRowExpectation("SURCAMNS", 0x01, 0x0051, 0x000000D2, 0x01B7, 0x0208, 81, "callback-eventtrigger/shared-slot-0x01/shared-slot-template"),
|
||||
RepeatedFamilyRowExpectation("SURCAMNS", 0x0A, 0x00D1, 0x00000001, 0x00E6, 0x01B7, 209, "callback-eventtrigger/shared-slot-0x0A/same-length-template"),
|
||||
RepeatedFamilyRowExpectation("SURCAMNS", 0x20, 0x02BA, 0x00000123, 0x0208, 0x04C2, 698, "callback-eventtrigger/shared-slot-0x20/same-length-template"),
|
||||
RepeatedFamilyRowExpectation("SURCAMNS", 0x21, 0x0709, 0x000003DD, 0x04C2, 0x0BCB, 1801, "callback-eventtrigger/shared-slot-0x21/shared-slot-template"),
|
||||
RepeatedFamilyRowExpectation("SURCAMNS", 0x22, 0x01A3, 0x00000AE6, 0x0BCB, 0x0D6E, 419, "callback-eventtrigger/shared-slot-0x22/same-length-template"),
|
||||
RepeatedFamilyRowExpectation("SURCAMEW", 0x01, 0x00F7, 0x000000D2, 0x01B7, 0x02AE, 247, "callback-eventtrigger/shared-slot-0x01/shared-slot-template"),
|
||||
RepeatedFamilyRowExpectation("SURCAMEW", 0x0A, 0x00D1, 0x00000001, 0x00E6, 0x01B7, 209, "callback-eventtrigger/shared-slot-0x0A/same-length-template"),
|
||||
RepeatedFamilyRowExpectation("SURCAMEW", 0x20, 0x02BA, 0x000001C9, 0x02AE, 0x0568, 698, "callback-eventtrigger/shared-slot-0x20/same-length-template"),
|
||||
RepeatedFamilyRowExpectation("SURCAMEW", 0x21, 0x0655, 0x00000483, 0x0568, 0x0BBD, 1621, "callback-eventtrigger/shared-slot-0x21/shared-slot-template"),
|
||||
RepeatedFamilyRowExpectation("SURCAMEW", 0x22, 0x01A3, 0x00000AD8, 0x0BBD, 0x0D60, 419, "callback-eventtrigger/shared-slot-0x22/same-length-template"),
|
||||
RepeatedFamilyRowExpectation("FLAMEBOX", 0x0A, 0x026A, 0x00000001, 0x00E0, 0x034A, 618, "environmental-event/shared-slot-0x0A/shared-slot-template"),
|
||||
RepeatedFamilyRowExpectation("FLAMEBOX", 0x20, 0x01AC, 0x0000026B, 0x034A, 0x04F6, 428, "environmental-event/shared-slot-0x20/shared-slot-template"),
|
||||
RepeatedFamilyRowExpectation("FLAMEBOX", 0x21, 0x029A, 0x00000417, 0x04F6, 0x0790, 666, "environmental-event/shared-slot-0x21/shared-slot-template"),
|
||||
RepeatedFamilyRowExpectation("NOSTRIL", 0x0A, 0x00C0, 0x00000001, 0x00E0, 0x01A0, 192, "environmental-event/shared-slot-0x0A/shared-slot-template"),
|
||||
RepeatedFamilyRowExpectation("NOSTRIL", 0x20, 0x0129, 0x000000C1, 0x01A0, 0x02C9, 297, "environmental-event/shared-slot-0x20/shared-slot-template"),
|
||||
RepeatedFamilyRowExpectation("NOSTRIL", 0x21, 0x01BE, 0x000001EA, 0x02C9, 0x0487, 446, "environmental-event/shared-slot-0x21/shared-slot-template"),
|
||||
RepeatedFamilyRowExpectation("STEAMBOX", 0x0A, 0x0266, 0x00000001, 0x00E0, 0x0346, 614, "environmental-event/shared-slot-0x0A/shared-slot-template"),
|
||||
RepeatedFamilyRowExpectation("STEAMBOX", 0x20, 0x01F6, 0x00000267, 0x0346, 0x053C, 502, "environmental-event/shared-slot-0x20/shared-slot-template"),
|
||||
RepeatedFamilyRowExpectation("STEAMBOX", 0x21, 0x02A7, 0x0000045D, 0x053C, 0x07E3, 679, "environmental-event/shared-slot-0x21/shared-slot-template"),
|
||||
),
|
||||
"regret": (
|
||||
RepeatedFamilyRowExpectation("JELYHACK", 0x01, 0x000D, 0x00000001, 0x00D4, 0x00E1, 13, ""),
|
||||
RepeatedFamilyRowExpectation("JELYH2", 0x01, 0x000D, 0x00000001, 0x00D4, 0x00E1, 13, ""),
|
||||
RepeatedFamilyRowExpectation("FLAMEBOX", 0x0A, 0x01D8, 0x00000001, 0x00E0, 0x02B8, 472, ""),
|
||||
RepeatedFamilyRowExpectation("FLAMEBOX", 0x20, 0x011D, 0x000001D9, 0x02B8, 0x03D5, 285, ""),
|
||||
RepeatedFamilyRowExpectation("FLAMEBOX", 0x21, 0x01BD, 0x000002F6, 0x03D5, 0x0592, 445, ""),
|
||||
RepeatedFamilyRowExpectation("NOSTRIL", 0x0A, 0x007B, 0x00000001, 0x00E0, 0x015B, 123, ""),
|
||||
RepeatedFamilyRowExpectation("NOSTRIL", 0x20, 0x00BE, 0x0000007C, 0x015B, 0x0219, 190, ""),
|
||||
RepeatedFamilyRowExpectation("NOSTRIL", 0x21, 0x013B, 0x0000013A, 0x0219, 0x0354, 315, ""),
|
||||
RepeatedFamilyRowExpectation("STEAMBOX", 0x0A, 0x01D7, 0x00000001, 0x00E0, 0x02B7, 471, ""),
|
||||
RepeatedFamilyRowExpectation("STEAMBOX", 0x20, 0x014F, 0x000001D8, 0x02B7, 0x0406, 335, ""),
|
||||
RepeatedFamilyRowExpectation("STEAMBOX", 0x21, 0x01CD, 0x00000327, 0x0406, 0x05D3, 461, ""),
|
||||
),
|
||||
}
|
||||
|
||||
|
||||
def scummvm_event_name_hint(slot: int) -> str | None:
|
||||
|
|
@ -936,19 +975,28 @@ def validate_verified_repeated_family_regressions(
|
|||
parsed_class_chunks: list[ExtractedChunk],
|
||||
rows_by_entry: dict[int, list[ClassEventRow]],
|
||||
repeated_status_by_row: dict[tuple[int, int], str],
|
||||
validation_profile: str,
|
||||
) -> list[str]:
|
||||
chunk_by_label = {
|
||||
chunk.primary_label: chunk
|
||||
for chunk in parsed_class_chunks
|
||||
if chunk.primary_label
|
||||
}
|
||||
expected_slots_by_class: dict[str, set[int]] = {}
|
||||
for expectation in VERIFIED_REPEATED_FAMILY_ROW_EXPECTATIONS:
|
||||
expected_slots_by_class.setdefault(expectation.class_name, set()).add(expectation.slot)
|
||||
|
||||
report_lines = [
|
||||
"record_type\tclass_name\tslot\texpected\tactual\tstatus"
|
||||
]
|
||||
expectations = VERIFIED_REPEATED_FAMILY_ROW_EXPECTATIONS_BY_PROFILE.get(validation_profile)
|
||||
if not expectations:
|
||||
report_lines.append(
|
||||
f"meta\t*\t*\tprofile-baseline\t{validation_profile}\tskipped"
|
||||
)
|
||||
return report_lines
|
||||
|
||||
chunk_by_label: dict[str, ExtractedChunk] = {}
|
||||
for chunk in parsed_class_chunks:
|
||||
if chunk.primary_label:
|
||||
chunk_by_label.setdefault(chunk.primary_label, chunk)
|
||||
if chunk.class_name_hint:
|
||||
chunk_by_label.setdefault(chunk.class_name_hint, chunk)
|
||||
expected_slots_by_class: dict[str, set[int]] = {}
|
||||
for expectation in expectations:
|
||||
expected_slots_by_class.setdefault(expectation.class_name, set()).add(expectation.slot)
|
||||
|
||||
errors: list[str] = []
|
||||
|
||||
for class_name, expected_slots in sorted(expected_slots_by_class.items()):
|
||||
|
|
@ -974,7 +1022,7 @@ def validate_verified_repeated_family_regressions(
|
|||
f"{class_name}: expected non-zero slots {sorted(expected_slots)}, found {sorted(actual_slots)}"
|
||||
)
|
||||
|
||||
for expectation in VERIFIED_REPEATED_FAMILY_ROW_EXPECTATIONS:
|
||||
for expectation in expectations:
|
||||
chunk = chunk_by_label.get(expectation.class_name)
|
||||
if chunk is None:
|
||||
errors.append(f"missing repeated-family class {expectation.class_name}")
|
||||
|
|
@ -2686,9 +2734,17 @@ def extract_candidates(data: bytes, out_dir: pathlib.Path, entries: list[Candida
|
|||
return extracted
|
||||
|
||||
|
||||
def write_summary(out_dir: pathlib.Path, input_path: pathlib.Path, data: bytes, entries: list[CandidateEntry], chunks: list[ExtractedChunk]) -> None:
|
||||
def write_summary(
|
||||
out_dir: pathlib.Path,
|
||||
input_path: pathlib.Path,
|
||||
data: bytes,
|
||||
entries: list[CandidateEntry],
|
||||
chunks: list[ExtractedChunk],
|
||||
validation_profile: str,
|
||||
) -> None:
|
||||
summary = {
|
||||
"input_path": str(input_path),
|
||||
"validation_profile": validation_profile,
|
||||
"file_size": len(data),
|
||||
"header_preview_hex": data[:128].hex(),
|
||||
"header_preview_ascii": ascii_preview(data[:128], 128),
|
||||
|
|
@ -2767,6 +2823,7 @@ def write_summary(out_dir: pathlib.Path, input_path: pathlib.Path, data: bytes,
|
|||
parsed_class_chunks,
|
||||
rows_by_entry,
|
||||
repeated_status_by_row,
|
||||
validation_profile,
|
||||
)
|
||||
for chunk in parsed_class_chunks:
|
||||
class_layout_lines.append(
|
||||
|
|
@ -3021,21 +3078,30 @@ def parse_args() -> argparse.Namespace:
|
|||
parser = argparse.ArgumentParser(description=__doc__)
|
||||
parser.add_argument("input", nargs="?", type=pathlib.Path, default=DEFAULT_INPUT)
|
||||
parser.add_argument("output", nargs="?", type=pathlib.Path, default=DEFAULT_OUTPUT)
|
||||
parser.add_argument(
|
||||
"--validation-profile",
|
||||
choices=["auto", "remorse", "regret", "none"],
|
||||
default=DEFAULT_VALIDATION_PROFILE,
|
||||
help="Repeated-family regression baseline to enforce (default: auto)",
|
||||
)
|
||||
return parser.parse_args()
|
||||
|
||||
|
||||
def main() -> int:
|
||||
args = parse_args()
|
||||
validation_profile = resolve_validation_profile(args.input, args.output, args.validation_profile)
|
||||
data = args.input.read_bytes()
|
||||
args.output.mkdir(parents=True, exist_ok=True)
|
||||
|
||||
flx_table = parse_flx_table(data)
|
||||
entries = flx_table.entries
|
||||
chunks = extract_candidates(data, args.output, entries)
|
||||
write_summary(args.output, args.input, data, entries, chunks)
|
||||
write_summary(args.output, args.input, data, entries, chunks, validation_profile)
|
||||
|
||||
print(
|
||||
f"Parsed {flx_table.entry_count} table slots with {len(chunks)} non-zero entries; extracted to {args.output}"
|
||||
"Parsed "
|
||||
f"{flx_table.entry_count} table slots with {len(chunks)} non-zero entries; "
|
||||
f"validation profile {validation_profile}; extracted to {args.output}"
|
||||
)
|
||||
return 0
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
from __future__ import annotations
|
||||
|
||||
import argparse
|
||||
import ast
|
||||
import csv
|
||||
import hashlib
|
||||
import json
|
||||
|
|
@ -16,6 +17,43 @@ CLASS_EVENT_INDEX = EXTRACTED_ROOT / "class_event_index.tsv"
|
|||
CLASS_LAYOUT_INDEX = EXTRACTED_ROOT / "class_layout_index.tsv"
|
||||
RUNTIME_VM_IR_INDEX = EXTRACTED_ROOT / "runtime_vm_ir.tsv"
|
||||
CHUNKS_DIR = EXTRACTED_ROOT / "chunks"
|
||||
UNKCOFFS_DIR = REPO_ROOT / "tools" / "unkcoffs"
|
||||
DEFAULT_GAME_VARIANT = "regret"
|
||||
INTRINSIC_HINT_PATHS = {
|
||||
"regret": UNKCOFFS_DIR / "regret_ints.py",
|
||||
"remorse": UNKCOFFS_DIR / "remorse_ints.py",
|
||||
}
|
||||
|
||||
|
||||
def resolve_extracted_root(extracted_root: Path | str | None = None) -> Path:
|
||||
if extracted_root is None:
|
||||
return EXTRACTED_ROOT
|
||||
return Path(extracted_root)
|
||||
|
||||
|
||||
def extracted_root_paths(extracted_root: Path | str | None = None) -> tuple[Path, Path, Path, Path]:
|
||||
root = resolve_extracted_root(extracted_root)
|
||||
return (
|
||||
root / "class_event_index.tsv",
|
||||
root / "class_layout_index.tsv",
|
||||
root / "runtime_vm_ir.tsv",
|
||||
root / "chunks",
|
||||
)
|
||||
|
||||
|
||||
def repo_relative_path(path: Path) -> str:
|
||||
try:
|
||||
return str(path.relative_to(REPO_ROOT)).replace("\\", "/")
|
||||
except ValueError:
|
||||
return str(path).replace("\\", "/")
|
||||
|
||||
|
||||
def infer_flex_path(extracted_root: Path | str | None = None) -> str:
|
||||
root = resolve_extracted_root(extracted_root)
|
||||
parent = root.parent
|
||||
if parent == REPO_ROOT:
|
||||
return "EUSECODE.FLX"
|
||||
return f"{repo_relative_path(parent)}/EUSECODE.FLX"
|
||||
|
||||
|
||||
EVENT_NAME_HINTS = {
|
||||
|
|
@ -57,7 +95,7 @@ EVENT_NAME_HINTS = {
|
|||
# Intrinsic table extracted from Pentagram ConvertUsecodeCrusader.h
|
||||
# Source note: "current discovered intrinsics are for regret1.21 only"
|
||||
# This is used as a hint only – ordinal mapping may differ between builds.
|
||||
INTRINSIC_HINTS: dict[int, str] = {
|
||||
BASE_INTRINSIC_HINTS: dict[int, str] = {
|
||||
0x0000: "Intrinsic0000()",
|
||||
0x0001: "Item::getFrame(void)",
|
||||
0x0002: "Item::setFrame(uint16)",
|
||||
|
|
@ -411,6 +449,117 @@ INTRINSIC_HINTS: dict[int, str] = {
|
|||
}
|
||||
|
||||
|
||||
VARIANT_INTRINSIC_CALLSITE_HINTS: dict[str, dict[tuple[int, int], str]] = {
|
||||
"regret": {
|
||||
(0x001E, 0x10): "Item::I_fireWeapon(Item *, x, y, z, byte, int, byte)",
|
||||
},
|
||||
"remorse": {},
|
||||
}
|
||||
|
||||
|
||||
def normalize_game_variant(value: str | None) -> str | None:
|
||||
if value is None:
|
||||
return None
|
||||
normalized = value.strip().lower()
|
||||
if not normalized or normalized == "auto":
|
||||
return None
|
||||
if normalized not in INTRINSIC_HINT_PATHS:
|
||||
raise ValueError(f"Unsupported Crusader variant: {value}")
|
||||
return normalized
|
||||
|
||||
|
||||
def infer_game_variant_from_path(path: Path | None) -> str | None:
|
||||
if path is None:
|
||||
return None
|
||||
lowered_parts = [part.lower() for part in path.parts]
|
||||
if any("regret" in part for part in lowered_parts):
|
||||
return "regret"
|
||||
if any("remorse" in part for part in lowered_parts):
|
||||
return "remorse"
|
||||
return None
|
||||
|
||||
|
||||
def resolve_game_variant(game_variant: str | None = None, source_root: Path | None = None) -> str:
|
||||
normalized = normalize_game_variant(game_variant)
|
||||
if normalized is not None:
|
||||
return normalized
|
||||
inferred = infer_game_variant_from_path(source_root)
|
||||
if inferred is not None:
|
||||
return inferred
|
||||
return DEFAULT_GAME_VARIANT
|
||||
|
||||
|
||||
def load_intrinsic_hints_from_file(path: Path) -> dict[int, str]:
|
||||
if not path.exists():
|
||||
return {}
|
||||
|
||||
try:
|
||||
module = ast.parse(path.read_text(encoding="utf-8"), filename=str(path))
|
||||
except (OSError, SyntaxError):
|
||||
return {}
|
||||
|
||||
for node in module.body:
|
||||
if not isinstance(node, ast.Assign):
|
||||
continue
|
||||
if len(node.targets) != 1 or not isinstance(node.targets[0], ast.Name):
|
||||
continue
|
||||
if node.targets[0].id != "intrinsics":
|
||||
continue
|
||||
try:
|
||||
values = ast.literal_eval(node.value)
|
||||
except (SyntaxError, ValueError):
|
||||
return {}
|
||||
if not isinstance(values, list):
|
||||
return {}
|
||||
return {
|
||||
index: str(value)
|
||||
for index, value in enumerate(values)
|
||||
if isinstance(value, str) and value.strip()
|
||||
}
|
||||
return {}
|
||||
|
||||
|
||||
def normalize_intrinsic_hint(name: str) -> str:
|
||||
normalized = name.strip()
|
||||
normalized = re.sub(r"^(?:unsigned|signed|void|byte|char|short|long|int\d+|uint\d+|sint\d+)\s+(?=[A-Za-z_])", "", normalized)
|
||||
normalized = re.sub(r"(?<![A-Za-z])udioProcess::", "AudioProcess::", normalized)
|
||||
normalized = normalized.replace("MusicProcess:I_", "MusicProcess::I_")
|
||||
normalized = normalized.replace("Somehting", "Something")
|
||||
normalized = normalized.replace("Actor::I_setDead())", "Actor::I_setDead()")
|
||||
return normalized
|
||||
|
||||
|
||||
def build_intrinsic_hints(game_variant: str | None = None, source_root: Path | None = None) -> dict[int, str]:
|
||||
variant = resolve_game_variant(game_variant, source_root)
|
||||
hints = {index: normalize_intrinsic_hint(name) for index, name in BASE_INTRINSIC_HINTS.items()}
|
||||
for index, name in load_intrinsic_hints_from_file(INTRINSIC_HINT_PATHS[variant]).items():
|
||||
normalized = normalize_intrinsic_hint(name)
|
||||
existing = hints.get(index)
|
||||
if existing is None or not normalized.startswith("Intrinsic") or existing.startswith("Intrinsic"):
|
||||
hints[index] = normalized
|
||||
return hints
|
||||
|
||||
|
||||
_INTRINSIC_HINTS_CACHE: dict[str, dict[int, str]] = {}
|
||||
|
||||
|
||||
def get_intrinsic_hints(game_variant: str | None = None, source_root: Path | None = None) -> dict[int, str]:
|
||||
variant = resolve_game_variant(game_variant, source_root)
|
||||
cached = _INTRINSIC_HINTS_CACHE.get(variant)
|
||||
if cached is None:
|
||||
cached = build_intrinsic_hints(variant)
|
||||
_INTRINSIC_HINTS_CACHE[variant] = cached
|
||||
return cached
|
||||
|
||||
|
||||
def get_intrinsic_callsite_hints(game_variant: str | None = None, source_root: Path | None = None) -> dict[tuple[int, int], str]:
|
||||
variant = resolve_game_variant(game_variant, source_root)
|
||||
return VARIANT_INTRINSIC_CALLSITE_HINTS.get(variant, {})
|
||||
|
||||
|
||||
INTRINSIC_HINTS = get_intrinsic_hints(DEFAULT_GAME_VARIANT)
|
||||
|
||||
|
||||
NO_ARG_MNEMONICS = {
|
||||
0x08: "pop_result",
|
||||
0x12: "pop_temp",
|
||||
|
|
@ -587,11 +736,18 @@ def op_record(start: int, absolute_start: int, opcode: int, raw_bytes: bytes, mn
|
|||
}
|
||||
|
||||
|
||||
def parse_one_op(body: bytes, start: int) -> ParseResult:
|
||||
def parse_one_op(
|
||||
body: bytes,
|
||||
start: int,
|
||||
intrinsic_hints: dict[int, str] | None = None,
|
||||
intrinsic_callsite_hints: dict[tuple[int, int], str] | None = None,
|
||||
) -> ParseResult:
|
||||
reader = BodyReader(body, start)
|
||||
opcode = reader.read_u8()
|
||||
operands: dict[str, Any] = {}
|
||||
mnemonic = NO_ARG_MNEMONICS.get(opcode)
|
||||
active_intrinsic_hints = intrinsic_hints or INTRINSIC_HINTS
|
||||
active_callsite_hints = intrinsic_callsite_hints or get_intrinsic_callsite_hints(DEFAULT_GAME_VARIANT)
|
||||
|
||||
if opcode == 0x00:
|
||||
operands = {"bp_offset": reader.read_u8(), "target": bp_repr(body[start + 1])}
|
||||
|
|
@ -656,9 +812,9 @@ def parse_one_op(body: bytes, start: int) -> ParseResult:
|
|||
arg_bytes = reader.read_u8()
|
||||
intrinsic_ordinal = reader.read_u16()
|
||||
operands = {
|
||||
"arg_bytes": arg_bytes,
|
||||
"intrinsic_ordinal": intrinsic_ordinal,
|
||||
"intrinsic_name_hint": INTRINSIC_HINTS.get(intrinsic_ordinal),
|
||||
"arg_bytes": arg_bytes,
|
||||
"intrinsic_name_hint": active_callsite_hints.get((intrinsic_ordinal, arg_bytes), active_intrinsic_hints.get(intrinsic_ordinal)),
|
||||
}
|
||||
mnemonic = "call_intrinsic"
|
||||
elif opcode == 0x10:
|
||||
|
|
@ -842,18 +998,20 @@ def load_tsv_rows(path: Path) -> list[dict[str, str]]:
|
|||
return list(csv.DictReader(handle, delimiter="\t"))
|
||||
|
||||
|
||||
def find_chunk_file(entry_index: int) -> Path:
|
||||
matches = sorted(CHUNKS_DIR.glob(f"chunk_{entry_index:03d}_*.bin"))
|
||||
def find_chunk_file(entry_index: int, extracted_root: Path | str | None = None) -> Path:
|
||||
_, _, _, chunks_dir = extracted_root_paths(extracted_root)
|
||||
matches = sorted(chunks_dir.glob(f"chunk_{entry_index:03d}_*.bin"))
|
||||
if not matches:
|
||||
matches = sorted(CHUNKS_DIR.glob(f"chunk_{entry_index}_*.bin"))
|
||||
matches = sorted(chunks_dir.glob(f"chunk_{entry_index}_*.bin"))
|
||||
if not matches:
|
||||
raise FileNotFoundError(f"No chunk file found for entry_index={entry_index}")
|
||||
return matches[0]
|
||||
|
||||
|
||||
def select_rows(class_name: str, slot: int) -> tuple[dict[str, str], dict[str, str]]:
|
||||
event_rows = load_tsv_rows(CLASS_EVENT_INDEX)
|
||||
layout_rows = load_tsv_rows(CLASS_LAYOUT_INDEX)
|
||||
def select_rows(class_name: str, slot: int, extracted_root: Path | str | None = None) -> tuple[dict[str, str], dict[str, str]]:
|
||||
class_event_index, class_layout_index, _, _ = extracted_root_paths(extracted_root)
|
||||
event_rows = load_tsv_rows(class_event_index)
|
||||
layout_rows = load_tsv_rows(class_layout_index)
|
||||
|
||||
event_row = next(
|
||||
(
|
||||
|
|
@ -879,14 +1037,15 @@ def select_rows(class_name: str, slot: int) -> tuple[dict[str, str], dict[str, s
|
|||
return event_row, layout_row
|
||||
|
||||
|
||||
def load_runtime_ir_rows() -> list[dict[str, str]]:
|
||||
return load_tsv_rows(RUNTIME_VM_IR_INDEX)
|
||||
def load_runtime_ir_rows(extracted_root: Path | str | None = None) -> list[dict[str, str]]:
|
||||
_, _, runtime_vm_ir_index, _ = extracted_root_paths(extracted_root)
|
||||
return load_tsv_rows(runtime_vm_ir_index)
|
||||
|
||||
|
||||
def runtime_stage_hints(ops: list[dict[str, Any]]) -> list[dict[str, str]]:
|
||||
def runtime_stage_hints(ops: list[dict[str, Any]], extracted_root: Path | str | None = None) -> list[dict[str, str]]:
|
||||
opcode_values = {op["opcode"] for op in ops}
|
||||
hints: list[dict[str, str]] = []
|
||||
for row in load_runtime_ir_rows():
|
||||
for row in load_runtime_ir_rows(extracted_root):
|
||||
opcode_or_lane = row.get("opcode_or_lane", "")
|
||||
if opcode_or_lane.lower().startswith("opcode 0x"):
|
||||
opcode_value = try_parse_int(opcode_or_lane.split()[1])
|
||||
|
|
@ -898,7 +1057,7 @@ def runtime_stage_hints(ops: list[dict[str, Any]]) -> list[dict[str, str]]:
|
|||
return hints
|
||||
|
||||
|
||||
def annotation_hints(event_row: dict[str, str], payload_shape_hint: str, ops: list[dict[str, Any]]) -> dict[str, Any]:
|
||||
def annotation_hints(event_row: dict[str, str], payload_shape_hint: str, ops: list[dict[str, Any]], extracted_root: Path | str | None = None) -> dict[str, Any]:
|
||||
slot = parse_int(event_row["slot"])
|
||||
return {
|
||||
"runtime_family": "slot-backed-owner-loaded-body",
|
||||
|
|
@ -914,7 +1073,7 @@ def annotation_hints(event_row: dict[str, str], payload_shape_hint: str, ops: li
|
|||
{"address": "000d:2104", "role": "finalize_to_outptr"},
|
||||
{"address": "000d:ebe3", "role": "opcode_sequence_run"},
|
||||
],
|
||||
"runtime_stage_hints": runtime_stage_hints(ops),
|
||||
"runtime_stage_hints": runtime_stage_hints(ops, extracted_root),
|
||||
"slot_taxonomy": {"slot": slot, "event_name_hint": event_row["event_name_hint"] or EVENT_NAME_HINTS.get(slot)},
|
||||
}
|
||||
|
||||
|
|
@ -1002,10 +1161,19 @@ def parse_field_tags(body: bytes, start: int) -> FieldTagParseResult | None:
|
|||
return FieldTagParseResult(field_tags=field_tags, end_offset=end_offset, trailing_bytes=body[end_offset:])
|
||||
|
||||
|
||||
def parse_body_ir(event_row: dict[str, str], layout_row: dict[str, str]) -> dict[str, Any]:
|
||||
def parse_body_ir(
|
||||
event_row: dict[str, str],
|
||||
layout_row: dict[str, str],
|
||||
game_variant: str | None = None,
|
||||
extracted_root: Path | str | None = None,
|
||||
) -> dict[str, Any]:
|
||||
resolved_extracted_root = resolve_extracted_root(extracted_root)
|
||||
entry_index = parse_int(event_row["entry_index"])
|
||||
chunk_file = find_chunk_file(entry_index)
|
||||
chunk_file = find_chunk_file(entry_index, resolved_extracted_root)
|
||||
chunk_bytes = chunk_file.read_bytes()
|
||||
resolved_game_variant = resolve_game_variant(game_variant, chunk_file)
|
||||
intrinsic_hints = get_intrinsic_hints(resolved_game_variant, chunk_file)
|
||||
intrinsic_callsite_hints = get_intrinsic_callsite_hints(resolved_game_variant, chunk_file)
|
||||
|
||||
body_start = parse_int(event_row["derived_body_start"])
|
||||
body_end = parse_int(event_row["derived_body_end"])
|
||||
|
|
@ -1020,7 +1188,7 @@ def parse_body_ir(event_row: dict[str, str], layout_row: dict[str, str]) -> dict
|
|||
field_tags: list[dict[str, Any]] = []
|
||||
|
||||
while offset < len(body):
|
||||
result = parse_one_op(body, offset)
|
||||
result = parse_one_op(body, offset, intrinsic_hints, intrinsic_callsite_hints)
|
||||
if result.op is not None:
|
||||
result.op["absolute_body_offset"] = body_start + result.op["offset"]
|
||||
ops.append(result.op)
|
||||
|
|
@ -1121,9 +1289,10 @@ def parse_body_ir(event_row: dict[str, str], layout_row: dict[str, str]) -> dict
|
|||
return {
|
||||
"schema_version": "crusader-usecode-ir-v1-poc",
|
||||
"source": {
|
||||
"flex_path": "USECODE/EUSECODE.FLX",
|
||||
"extracted_root": "USECODE/EUSECODE_extracted",
|
||||
"chunk_file": str(chunk_file.relative_to(REPO_ROOT)).replace("\\", "/"),
|
||||
"game_variant": resolved_game_variant,
|
||||
"flex_path": infer_flex_path(resolved_extracted_root),
|
||||
"extracted_root": repo_relative_path(resolved_extracted_root),
|
||||
"chunk_file": repo_relative_path(chunk_file),
|
||||
},
|
||||
"class": {
|
||||
"entry_index": entry_index,
|
||||
|
|
@ -1156,7 +1325,7 @@ def parse_body_ir(event_row: dict[str, str], layout_row: dict[str, str]) -> dict
|
|||
"ops": ops,
|
||||
"debug_symbols": debug_symbols,
|
||||
"field_tags": field_tags,
|
||||
"annotation_hints": annotation_hints(event_row, payload_shape, ops),
|
||||
"annotation_hints": annotation_hints(event_row, payload_shape, ops, resolved_extracted_root),
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -1181,7 +1350,7 @@ def _common_suffix_len(a: bytes, b: bytes, prefix_len: int) -> int:
|
|||
return limit
|
||||
|
||||
|
||||
def compute_family_diff(class_name: str, slot: int) -> dict[str, Any]:
|
||||
def compute_family_diff(class_name: str, slot: int, extracted_root: Path | str | None = None) -> dict[str, Any]:
|
||||
"""
|
||||
Find all event rows that share the same repeated_template_status family tag
|
||||
as the named class/slot row, then decode each body and compute pairwise diff
|
||||
|
|
@ -1193,8 +1362,9 @@ def compute_family_diff(class_name: str, slot: int) -> dict[str, Any]:
|
|||
sibling_count – number of additional rows in the same family
|
||||
members – list of per-member records (entry, class, body stats, diff vs ref)
|
||||
"""
|
||||
event_rows = load_tsv_rows(CLASS_EVENT_INDEX)
|
||||
layout_rows = load_tsv_rows(CLASS_LAYOUT_INDEX)
|
||||
class_event_index, class_layout_index, _, _ = extracted_root_paths(extracted_root)
|
||||
event_rows = load_tsv_rows(class_event_index)
|
||||
layout_rows = load_tsv_rows(class_layout_index)
|
||||
layout_by_entry: dict[int, dict[str, str]] = {}
|
||||
for row in layout_rows:
|
||||
idx = try_parse_int(row.get("entry_index", ""))
|
||||
|
|
@ -1239,7 +1409,7 @@ def compute_family_diff(class_name: str, slot: int) -> dict[str, Any]:
|
|||
if not body_start_str or not body_end_str:
|
||||
return None
|
||||
try:
|
||||
chunk = find_chunk_file(parse_int(row["entry_index"]))
|
||||
chunk = find_chunk_file(parse_int(row["entry_index"]), extracted_root)
|
||||
data = chunk.read_bytes()
|
||||
return data[parse_int(body_start_str):parse_int(body_end_str)]
|
||||
except (FileNotFoundError, ValueError):
|
||||
|
|
@ -1551,6 +1721,9 @@ def intrinsic_display_name(name_hint: str | None, ordinal: int) -> str:
|
|||
if not name_hint:
|
||||
return f"intrinsic_{ordinal:04X}"
|
||||
display = name_hint.replace("::", ".")
|
||||
display = re.sub(r"(?<=\.)I_", "", display)
|
||||
if display.startswith("I_"):
|
||||
display = display[2:]
|
||||
paren = display.find("(")
|
||||
if paren != -1:
|
||||
display = display[:paren]
|
||||
|
|
@ -1962,13 +2135,123 @@ def detect_noop_compare_chain(
|
|||
return None
|
||||
|
||||
|
||||
def last_nonempty_block_index(
|
||||
blocks: list[tuple[str, list[str]]],
|
||||
start_index: int,
|
||||
end_index: int,
|
||||
) -> int | None:
|
||||
for index in range(end_index - 1, start_index - 1, -1):
|
||||
if blocks[index][1]:
|
||||
return index
|
||||
return None
|
||||
|
||||
|
||||
def parse_selector_condition(condition: str) -> tuple[str, str] | None:
|
||||
expr = strip_outer_parens(condition)
|
||||
match = re.fullmatch(r"(.+?)\s*!=\s*(.+)", expr)
|
||||
if match is None:
|
||||
return None
|
||||
return match.group(1).strip(), match.group(2).strip()
|
||||
|
||||
|
||||
def render_selector_chain(
|
||||
blocks: list[tuple[str, list[str]]],
|
||||
label_to_index: dict[str, int],
|
||||
start_index: int,
|
||||
end_index: int,
|
||||
return_labels: set[str],
|
||||
) -> tuple[list[str], int] | None:
|
||||
if not blocks[start_index][1]:
|
||||
return None
|
||||
base_terminal = parse_terminal_statement(blocks[start_index][1][-1])
|
||||
if base_terminal is None or base_terminal.kind != "if":
|
||||
return None
|
||||
|
||||
selector = parse_selector_condition(base_terminal.condition or "")
|
||||
if selector is None:
|
||||
return None
|
||||
selector_expr, _ = selector
|
||||
|
||||
cursor = start_index
|
||||
join_label: str | None = None
|
||||
branches: list[tuple[str, list[str]]] = []
|
||||
|
||||
while cursor < end_index:
|
||||
_, statements = blocks[cursor]
|
||||
if not statements:
|
||||
return None
|
||||
terminal = parse_terminal_statement(statements[-1])
|
||||
if terminal is None or terminal.kind != "if":
|
||||
return None
|
||||
|
||||
parsed = parse_selector_condition(terminal.condition or "")
|
||||
if parsed is None or parsed[0] != selector_expr:
|
||||
return None
|
||||
|
||||
target_label = terminal.target or ""
|
||||
target_index = label_to_index.get(target_label)
|
||||
if target_index is None or target_index <= cursor + 1 or target_index > end_index:
|
||||
return None
|
||||
|
||||
body_tail_index = last_nonempty_block_index(blocks, cursor + 1, target_index)
|
||||
if body_tail_index is None:
|
||||
return None
|
||||
body_tail_terminal = parse_terminal_statement(blocks[body_tail_index][1][-1])
|
||||
if body_tail_terminal is None or body_tail_terminal.kind != "goto":
|
||||
return None
|
||||
|
||||
current_join = body_tail_terminal.target or ""
|
||||
current_join_index = label_to_index.get(current_join)
|
||||
if current_join_index is None or current_join_index > end_index:
|
||||
return None
|
||||
if current_join_index < target_index:
|
||||
return None
|
||||
if current_join_index == target_index and target_label != current_join:
|
||||
return None
|
||||
if join_label is None:
|
||||
join_label = current_join
|
||||
elif current_join != join_label:
|
||||
return None
|
||||
|
||||
body_result = render_structured_region(
|
||||
blocks,
|
||||
label_to_index,
|
||||
cursor + 1,
|
||||
target_index,
|
||||
return_labels,
|
||||
{join_label},
|
||||
)
|
||||
if body_result is None:
|
||||
return None
|
||||
body_lines, _ = body_result
|
||||
branches.append((invert_condition_text(terminal.condition or "condition"), body_lines))
|
||||
|
||||
if target_label == join_label:
|
||||
break
|
||||
cursor = target_index
|
||||
|
||||
if join_label is None:
|
||||
return None
|
||||
|
||||
rendered: list[str] = []
|
||||
for index, (condition, body_lines) in enumerate(branches):
|
||||
branch_head = "if" if index == 0 else "else if"
|
||||
rendered.append(f"{branch_head} ({condition}) {{")
|
||||
rendered.extend(indent_lines(body_lines))
|
||||
rendered.append("}")
|
||||
|
||||
return rendered, label_to_index[join_label]
|
||||
|
||||
|
||||
def render_structured_region(
|
||||
blocks: list[tuple[str, list[str]]],
|
||||
label_to_index: dict[str, int],
|
||||
start_index: int,
|
||||
end_index: int,
|
||||
return_labels: set[str],
|
||||
exit_labels: set[str] | None = None,
|
||||
) -> tuple[list[str], bool] | None:
|
||||
allowed_exit_labels = set(exit_labels or ())
|
||||
lines: list[str] = []
|
||||
index = start_index
|
||||
|
||||
|
|
@ -2001,6 +2284,8 @@ def render_structured_region(
|
|||
if target_label in return_labels:
|
||||
lines.append("return;")
|
||||
return lines, False
|
||||
if target_label in allowed_exit_labels:
|
||||
return lines, False
|
||||
if target_index is None:
|
||||
return None
|
||||
if target_index == index + 1:
|
||||
|
|
@ -2019,6 +2304,74 @@ def render_structured_region(
|
|||
index += 1
|
||||
continue
|
||||
|
||||
selector_chain = render_selector_chain(blocks, label_to_index, index, end_index, return_labels)
|
||||
if selector_chain is not None:
|
||||
selector_lines, selector_join_index = selector_chain
|
||||
lines.extend(selector_lines)
|
||||
index = selector_join_index
|
||||
continue
|
||||
|
||||
if target_index <= end_index:
|
||||
loop_tail_index = last_nonempty_block_index(blocks, index + 1, target_index)
|
||||
if loop_tail_index is not None:
|
||||
loop_tail_terminal = parse_terminal_statement(blocks[loop_tail_index][1][-1])
|
||||
if loop_tail_terminal is not None and loop_tail_terminal.kind == "goto" and loop_tail_terminal.target == blocks[index][0]:
|
||||
loop_body = render_structured_region(
|
||||
blocks,
|
||||
label_to_index,
|
||||
index + 1,
|
||||
target_index,
|
||||
return_labels,
|
||||
{blocks[index][0]},
|
||||
)
|
||||
if loop_body is not None:
|
||||
loop_lines, _ = loop_body
|
||||
lines.append(f"while ({invert_condition_text(terminal.condition or 'condition')}) {{")
|
||||
lines.extend(indent_lines(loop_lines))
|
||||
lines.append("}")
|
||||
index = target_index
|
||||
continue
|
||||
|
||||
true_tail_index = last_nonempty_block_index(blocks, index + 1, target_index)
|
||||
if true_tail_index is not None:
|
||||
true_tail_terminal = parse_terminal_statement(blocks[true_tail_index][1][-1])
|
||||
if true_tail_terminal is not None and true_tail_terminal.kind == "goto":
|
||||
join_label = true_tail_terminal.target or ""
|
||||
join_index = label_to_index.get(join_label)
|
||||
if join_index is not None and join_index > target_index and join_index <= end_index:
|
||||
true_result = render_structured_region(
|
||||
blocks,
|
||||
label_to_index,
|
||||
index + 1,
|
||||
target_index,
|
||||
return_labels,
|
||||
{join_label},
|
||||
)
|
||||
false_result = render_structured_region(
|
||||
blocks,
|
||||
label_to_index,
|
||||
target_index,
|
||||
join_index,
|
||||
return_labels,
|
||||
{join_label},
|
||||
)
|
||||
if true_result is not None and false_result is not None:
|
||||
true_lines, _ = true_result
|
||||
false_lines, _ = false_result
|
||||
lines.append(f"if ({invert_condition_text(terminal.condition or 'condition')}) {{")
|
||||
lines.extend(indent_lines(true_lines))
|
||||
lines.append("}")
|
||||
if false_lines:
|
||||
if false_lines[0].startswith("if "):
|
||||
lines.append(f"else {false_lines[0]}")
|
||||
lines.extend(false_lines[1:])
|
||||
else:
|
||||
lines.append("else {")
|
||||
lines.extend(indent_lines(false_lines))
|
||||
lines.append("}")
|
||||
index = join_index
|
||||
continue
|
||||
|
||||
inner_result = render_structured_region(blocks, label_to_index, index + 1, target_index, return_labels)
|
||||
if inner_result is None:
|
||||
return None
|
||||
|
|
@ -2053,6 +2406,40 @@ def render_structured_pseudocode(blocks: list[tuple[str, list[str]]]) -> list[st
|
|||
return structured[0]
|
||||
|
||||
|
||||
def render_partially_structured_blocks(blocks: list[tuple[str, list[str]]]) -> list[str]:
|
||||
if not blocks:
|
||||
return []
|
||||
|
||||
label_to_index = {label: index for index, (label, _) in enumerate(blocks)}
|
||||
return_labels = {
|
||||
label
|
||||
for label, statements in blocks
|
||||
if len(statements) == 1 and statements[0] == "return;"
|
||||
}
|
||||
|
||||
lines: list[str] = []
|
||||
index = 0
|
||||
while index < len(blocks):
|
||||
label, statements = blocks[index]
|
||||
selector_chain = render_selector_chain(blocks, label_to_index, index, len(blocks), return_labels)
|
||||
if selector_chain is not None:
|
||||
selector_lines, selector_join_index = selector_chain
|
||||
lines.append(f" {label}:")
|
||||
for statement in selector_lines:
|
||||
lines.append(f" {statement}" if statement else "")
|
||||
lines.append("")
|
||||
index = selector_join_index
|
||||
continue
|
||||
|
||||
lines.append(f" {label}:")
|
||||
for statement in statements:
|
||||
lines.append(f" {statement}")
|
||||
lines.append("")
|
||||
index += 1
|
||||
|
||||
return lines
|
||||
|
||||
|
||||
def render_pseudocode(ir: dict[str, Any]) -> str:
|
||||
slot_name = sanitize_identifier(ir["event"]["event_name_hint"] or f"slot_{ir['event']['slot']:02X}")
|
||||
lines = [
|
||||
|
|
@ -2076,11 +2463,7 @@ def render_pseudocode(ir: dict[str, Any]) -> str:
|
|||
for statement in structured_lines:
|
||||
lines.append(f" {statement}" if statement else "")
|
||||
else:
|
||||
for label, statements in rendered_blocks:
|
||||
lines.append(f" {label}:")
|
||||
for statement in statements:
|
||||
lines.append(f" {statement}")
|
||||
lines.append("")
|
||||
lines.extend(render_partially_structured_blocks(rendered_blocks))
|
||||
|
||||
lines.append("}")
|
||||
return "\n".join(lines) + "\n"
|
||||
|
|
@ -2140,6 +2523,8 @@ def main() -> None:
|
|||
parser = argparse.ArgumentParser(description="Proof-of-concept Crusader USECODE parser over extracted owner-loaded artifacts")
|
||||
parser.add_argument("--class", dest="class_name", required=True, help="Class name from class_event_index.tsv, for example NPCTRIG")
|
||||
parser.add_argument("--slot", required=True, help="Event slot, for example 0x0A")
|
||||
parser.add_argument("--extracted-root", default=str(EXTRACTED_ROOT), help="Extracted USECODE root containing class_event_index.tsv and chunks/")
|
||||
parser.add_argument("--variant", choices=["auto", "regret", "remorse"], default="auto", help="Crusader intrinsic numbering to apply (default: auto, fallback regret)")
|
||||
parser.add_argument("--output", help="Write IR JSON to this file instead of stdout")
|
||||
parser.add_argument("--emit-text", action="store_true", help="Emit a readable text listing beside the JSON")
|
||||
parser.add_argument("--text-output", help="Write the text listing to this file")
|
||||
|
|
@ -2153,8 +2538,9 @@ def main() -> None:
|
|||
args = parser.parse_args()
|
||||
|
||||
slot = parse_int(args.slot)
|
||||
event_row, layout_row = select_rows(args.class_name, slot)
|
||||
ir = parse_body_ir(event_row, layout_row)
|
||||
extracted_root = Path(args.extracted_root)
|
||||
event_row, layout_row = select_rows(args.class_name, slot, extracted_root)
|
||||
ir = parse_body_ir(event_row, layout_row, None if args.variant == "auto" else args.variant, extracted_root)
|
||||
|
||||
rendered_json = json.dumps(ir, indent=2)
|
||||
if args.output:
|
||||
|
|
@ -2184,7 +2570,7 @@ def main() -> None:
|
|||
print(rendered_pseudocode)
|
||||
|
||||
if args.family_diff:
|
||||
diff = compute_family_diff(args.class_name, slot)
|
||||
diff = compute_family_diff(args.class_name, slot, extracted_root)
|
||||
diff_json = json.dumps(diff, indent=2)
|
||||
if args.family_diff_output:
|
||||
Path(args.family_diff_output).write_text(diff_json + "\n", encoding="utf-8")
|
||||
|
|
|
|||
|
|
@ -2,7 +2,12 @@ from __future__ import annotations
|
|||
|
||||
import unittest
|
||||
|
||||
from tools.poc_crusader_usecode_parser import render_structured_pseudocode
|
||||
from tools.poc_crusader_usecode_parser import (
|
||||
get_intrinsic_hints,
|
||||
intrinsic_display_name,
|
||||
render_partially_structured_blocks,
|
||||
render_structured_pseudocode,
|
||||
)
|
||||
|
||||
|
||||
class UsecodeStructuringTests(unittest.TestCase):
|
||||
|
|
@ -49,6 +54,100 @@ class UsecodeStructuringTests(unittest.TestCase):
|
|||
|
||||
self.assertIsNone(render_structured_pseudocode(blocks))
|
||||
|
||||
def test_if_else_branch_renders_as_structured_else(self) -> None:
|
||||
blocks = [
|
||||
("entry", ["if (Item.getMapNum(arg_06) != 0) goto block_015C;"]),
|
||||
("block_00FD", ["if Intrinsic0000() goto block_0132;"]),
|
||||
("block_0108", ["spawn class_0A18_slot_20(pid, 0, *(arg_06), arg_06);", "suspend;", "goto block_01C0;"]),
|
||||
("block_0132", ["spawn class_0A18_slot_20(pid, 1, *(arg_06), arg_06);", "suspend;", "goto block_01C0;"]),
|
||||
("block_015C", ["if Intrinsic0000() goto block_0195;"]),
|
||||
("block_0167", ["spawn class_0A18_slot_20(pid, (0 + 0x0080), *(arg_06), arg_06);", "suspend;", "goto block_01C0;"]),
|
||||
("block_0195", ["spawn class_0A18_slot_20(pid, (1 + 0x0080), *(arg_06), arg_06);", "suspend;"]),
|
||||
("block_01C0", ["return;"]),
|
||||
]
|
||||
|
||||
rendered = render_structured_pseudocode(blocks)
|
||||
|
||||
self.assertIsNotNone(rendered)
|
||||
text = "\n".join(rendered or [])
|
||||
self.assertIn("if (Item.getMapNum(arg_06) == 0) {", text)
|
||||
self.assertIn("else {", text)
|
||||
self.assertNotIn("goto block_01C0;", text)
|
||||
|
||||
def test_loop_header_and_back_edge_render_as_while(self) -> None:
|
||||
blocks = [
|
||||
("entry", ["/* loopscr value_u8=0x24 */"]),
|
||||
("block_0118", ["if condition goto block_0151;"]),
|
||||
("block_011B", ["if (Item.getFrame(item) != 0) goto block_014D;"]),
|
||||
("block_012D", ["suspend;"]),
|
||||
("block_014D", ["/* loopnext */", "goto block_0118;"]),
|
||||
("block_0151", ["return;"]),
|
||||
]
|
||||
|
||||
rendered = render_structured_pseudocode(blocks)
|
||||
|
||||
self.assertIsNotNone(rendered)
|
||||
text = "\n".join(rendered or [])
|
||||
self.assertIn("while (!condition) {", text)
|
||||
self.assertNotIn("goto block_0118;", text)
|
||||
|
||||
def test_selector_ladder_renders_as_else_if_chain(self) -> None:
|
||||
blocks = [
|
||||
("entry", ["if (dir != 0) goto block_0358;"]),
|
||||
("block_0339", ["x = 0;", "y = -1;", "goto block_0469;"]),
|
||||
("block_0358", ["if (dir != 1) goto block_037F;"]),
|
||||
("block_0360", ["x = 1;", "y = -1;", "goto block_0469;"]),
|
||||
("block_037F", ["if (dir != 2) goto block_03A6;"]),
|
||||
("block_0387", ["x = 1;", "y = 0;", "goto block_0469;"]),
|
||||
("block_03A6", ["if (dir != 3) goto block_0469;"]),
|
||||
("block_03AE", ["x = 1;", "y = 1;", "goto block_0469;"]),
|
||||
("block_0469", ["return;"]),
|
||||
]
|
||||
|
||||
rendered = render_structured_pseudocode(blocks)
|
||||
|
||||
self.assertIsNotNone(rendered)
|
||||
text = "\n".join(rendered or [])
|
||||
self.assertIn("if (dir == 0) {", text)
|
||||
self.assertIn("else if (dir == 1) {", text)
|
||||
self.assertIn("else if (dir == 2) {", text)
|
||||
self.assertIn("else if (dir == 3) {", text)
|
||||
self.assertNotIn("goto block_0469;", text)
|
||||
|
||||
def test_intrinsic_overlay_prefers_crusader_specific_names(self) -> None:
|
||||
regret_intrinsics = get_intrinsic_hints("regret")
|
||||
|
||||
self.assertEqual(intrinsic_display_name(regret_intrinsics.get(0x0013), 0x0013), "UCMachine.rndRange")
|
||||
self.assertEqual(intrinsic_display_name(regret_intrinsics.get(0x0027), 0x0027), "SpriteProcess.createSprite")
|
||||
|
||||
def test_remorse_intrinsic_overlay_uses_local_table(self) -> None:
|
||||
remorse_intrinsics = get_intrinsic_hints("remorse")
|
||||
|
||||
self.assertEqual(intrinsic_display_name(remorse_intrinsics.get(0x0018), 0x0018), "UCMachine.rndRange")
|
||||
self.assertEqual(intrinsic_display_name(remorse_intrinsics.get(0x0015), 0x0015), "AudioProcess.playSFXCru")
|
||||
|
||||
def test_selector_ladder_renders_in_raw_fallback(self) -> None:
|
||||
blocks = [
|
||||
("entry", ["goto block_0331;"]),
|
||||
("block_0331", ["if (dir != 0) goto block_0358;"]),
|
||||
("block_0339", ["x = 0;", "y = -1;", "goto block_0469;"]),
|
||||
("block_0358", ["if (dir != 1) goto block_037F;"]),
|
||||
("block_0360", ["x = 1;", "y = -1;", "goto block_0469;"]),
|
||||
("block_037F", ["if (dir != 2) goto block_0469;"]),
|
||||
("block_0387", ["x = 1;", "y = 0;", "goto block_0469;"]),
|
||||
("block_0469", ["return;"]),
|
||||
]
|
||||
|
||||
rendered = render_partially_structured_blocks(blocks)
|
||||
|
||||
text = "\n".join(rendered)
|
||||
self.assertIn("block_0331:", text)
|
||||
self.assertIn("if (dir == 0) {", text)
|
||||
self.assertIn("else if (dir == 1) {", text)
|
||||
self.assertIn("else if (dir == 2) {", text)
|
||||
self.assertNotIn("block_0358:", text)
|
||||
self.assertNotIn("goto block_0469;", text)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
||||
56
tools/unkcoffs/check_unkoff_dupes.py
Normal file
56
tools/unkcoffs/check_unkoff_dupes.py
Normal file
|
|
@ -0,0 +1,56 @@
|
|||
#!/usr/bin/env python
|
||||
from struct import unpack
|
||||
from collections import defaultdict
|
||||
|
||||
|
||||
#mode = 'u8'
|
||||
#mode = 'remorse'
|
||||
mode = 'regret'
|
||||
|
||||
if mode == 'u8':
|
||||
from u8_ints import intrinsics
|
||||
off_file = 'u8_UNKCOFF.DAT'
|
||||
elif mode == 'remorse':
|
||||
from remorse_ints import intrinsics
|
||||
off_file = 'remorse_UNKCOFF.DAT'
|
||||
#off_file = 'rem_es_UNKCOFF.DAT'
|
||||
else:
|
||||
off_file = 'regret_UNKCOFF.DAT'
|
||||
from regret_ints import intrinsics
|
||||
|
||||
def print_dupes(ostrs):
|
||||
vals = defaultdict(list)
|
||||
for i, ostr in enumerate(ostrs):
|
||||
vals[ostr].append(i)
|
||||
lists = list(vals.values())
|
||||
lists.sort()
|
||||
for l in lists:
|
||||
if len(l) > 1:
|
||||
print(", ".join('%03X' % x for x in l))
|
||||
|
||||
|
||||
def print_compare(vals):
|
||||
for ino, (v, i) in enumerate(zip(vals, intrinsics)):
|
||||
print("%s: (Int%03X) %s" % (v, ino, i))
|
||||
|
||||
|
||||
def load_vals():
|
||||
f = open(off_file, "rb")
|
||||
offsets = f.read()
|
||||
nints = len(offsets)/4
|
||||
ioff = unpack('i' * nints, offsets)
|
||||
ostrs = []
|
||||
for i in ioff:
|
||||
seg = (i & 0xffff0000) >> 16
|
||||
off = i & 0xffff
|
||||
ostr = 'Code%03d %04x:%04x' % (seg, 0x1000 + (seg - 1)*8, off)
|
||||
ostrs.append(ostr)
|
||||
return ostrs
|
||||
|
||||
|
||||
def main():
|
||||
vals = load_vals()
|
||||
#print_dupes(vals)
|
||||
print_compare(vals)
|
||||
|
||||
main()
|
||||
350
tools/unkcoffs/reg_functions.txt
Normal file
350
tools/unkcoffs/reg_functions.txt
Normal file
|
|
@ -0,0 +1,350 @@
|
|||
World::I_getAlertActive
|
||||
Item::I_getFrame
|
||||
Item::I_setFrame
|
||||
Item::I_getMapArray
|
||||
Item::I_getStatus
|
||||
Item::I_orStatus
|
||||
Item::I_equip
|
||||
Item::I_isPartlyOnScreen
|
||||
Actor::I_isNPC
|
||||
Item::I_getZ
|
||||
World::I_gameDifficulty
|
||||
Item::I_getQLo
|
||||
Item::I_destroy
|
||||
Actor::I_getUnkByte
|
||||
Item::I_getX
|
||||
Item::I_getY
|
||||
AudioProcess::I_playSFXCru
|
||||
Item::I_getShape
|
||||
Item::I_explode
|
||||
UCMachine::I_rndRange
|
||||
Item::I_legalCreateAtCoords
|
||||
Item::I_andStatus
|
||||
World::I_getControlledNPCNum
|
||||
Actor::I_getDir
|
||||
Actor::I_getLastAnimSet
|
||||
Item::I_fireWeapon
|
||||
Item::I_create
|
||||
Item::I_popToCoords
|
||||
Actor::I_setDead
|
||||
Item::I_push
|
||||
Item::I_getEtherealTop
|
||||
Item::I_getQLo
|
||||
Item::I_setQLo
|
||||
Item::I_getQHi
|
||||
Item::I_setQHi
|
||||
Item::I_getClosestDirectionInRange
|
||||
Item::I_hurl
|
||||
Item::I_getCY
|
||||
Item::I_getCX
|
||||
SpriteProcess::I_createSprite
|
||||
Item::I_setNpcNum
|
||||
AudioProcess::I_playSFXCru
|
||||
Item::I_setShape
|
||||
Item::I_pop
|
||||
AudioProcess::I_stopSFXCru
|
||||
Item::I_isCompletelyOn
|
||||
Item::I_popToContainer
|
||||
Actor::I_getHp
|
||||
MainActor::I_getMana
|
||||
Item::I_getFamily
|
||||
Actor::I_destroyContents
|
||||
SETVOLFORITEMSFX
|
||||
Item::I_getDirToItem
|
||||
AudioProcess::I_isSFXPlayingForObject
|
||||
Item::I_getRangeIfVisible
|
||||
AudioProcess::I_playSFXCru
|
||||
Item::I_andStatus
|
||||
Kernel::I_resetRef
|
||||
Item::I_touch
|
||||
Egg::I_getEggId
|
||||
MainActor::I_addItemCru
|
||||
Actor::I_getMap
|
||||
Item::I_cast
|
||||
0
|
||||
AudioProcess::I_stopSFXCru
|
||||
Item::I_isOn
|
||||
Item::I_getQHi
|
||||
Item::I_isOn
|
||||
Item::I_getQHi
|
||||
Item::I_isOn
|
||||
Item::I_getQHi
|
||||
Item::I_isOn
|
||||
Item::I_getQHi
|
||||
Item::I_isOn
|
||||
Item::I_getQHi
|
||||
Item::I_isOn
|
||||
Item::I_getQHi
|
||||
Actor::I_getCurrentActivityNo
|
||||
Actor::I_isDead
|
||||
Actor::I_clrInCombat
|
||||
Actor::I_setDefaultActivity0
|
||||
Actor::I_setDefaultActivity1
|
||||
Actor::I_setDefaultActivity2
|
||||
Actor::I_setActivity
|
||||
World::I_setControlledNPCNum
|
||||
Item::I_receiveHit
|
||||
UCMachine::I_true
|
||||
MainActor::I_setMana
|
||||
Item::I_use
|
||||
Item::I_setUnkEggType
|
||||
MusicProcess::I_playMusic
|
||||
Item::I_getSurfaceWeight
|
||||
Item::I_isCentreOn
|
||||
Item::I_setFrame
|
||||
Actor::I_getLastAnimSet
|
||||
Ultima8Engine::I_setAvatarInStasis
|
||||
Actor::I_isBusy
|
||||
Actor::I_getField0x13Flag2()
|
||||
Actor::I_doAnim
|
||||
Item::I_legalCreateAtPoint
|
||||
Item::I_getPoint
|
||||
Item::I_legalMoveToPoint
|
||||
Item::I_fall
|
||||
Item::I_hurl
|
||||
Kernel::I_getNumProcesses
|
||||
Item::I_getCY
|
||||
0
|
||||
0
|
||||
MusicProcess::I_pauseMusic
|
||||
MovieGump::I_playMovieCutsceneRegret
|
||||
MusicProcess::I_unpauseMusic
|
||||
Item::I_isInNpc
|
||||
Ultima8Engine::I_setCruStasis
|
||||
Ultima8Engine::I_clrCruStasis
|
||||
PaletteFaderProcess::I_jumpToAllGivenColor
|
||||
PaletteFaderProcess::I_fadeToGamePal
|
||||
Actor::I_isDead
|
||||
Actor::I_getNpcNum
|
||||
UCMachine::I_false
|
||||
UCMachine::I_true
|
||||
Item::I_unequip
|
||||
Item::I_andStatus
|
||||
Item::I_move
|
||||
Ultima8Engine::I_getUnkCrusaderFlag
|
||||
Ultima8Engine::I_setUnkCrusaderFlag
|
||||
Ultima8Engine::I_clrUnkCrusaderFlag
|
||||
Actor::I_turnToward
|
||||
PaletteFaderProcess::I_fadeToBlack
|
||||
MainActor::I_clrKeycards
|
||||
MusicProcess::I_stopMusic
|
||||
PaletteFaderProcess::I_jumpToAllBlack
|
||||
I_setUnkFlagA4()
|
||||
I_clearUnkFlagA4()
|
||||
MainActor::I_switchMap
|
||||
MainActor::I_teleportToEgg
|
||||
PaletteFaderProcess::I_fadeToGamePal
|
||||
Actor::I_clrImmortal
|
||||
Actor::I_setActivity
|
||||
Item::I_getQuality
|
||||
Item::I_setQuality
|
||||
MainActor::I_getMaxEnergy
|
||||
CameraProcess::I_moveTo
|
||||
Actor::I_setImmortal
|
||||
CameraProcess::I_getCameraX
|
||||
CameraProcess::I_getCameraY
|
||||
Item::I_setMapArray
|
||||
Actor::I_getNpcNum
|
||||
Item::I_shoot
|
||||
CameraProcess::I_setCenterOn
|
||||
Item::I_enterFastArea
|
||||
Item::I_setBroken
|
||||
Item::I_hurl
|
||||
Actor::I_getNpcNum
|
||||
Ultima8Engine::I_moveKeyDownRecently
|
||||
MainActor::I_teleportToEgg
|
||||
Actor::I_createActor
|
||||
Actor::I_clrInCombat
|
||||
PaletteFaderProcess::I_jumpToGreyScale
|
||||
PaletteFaderProcess::I_jumpToNormalPalette
|
||||
CruStatusGump::I_showStatusGump
|
||||
Item::I_andStatus
|
||||
Egg::I_getUnkEggType
|
||||
Egg::I_setEggXRange
|
||||
Item::I_setFrame
|
||||
Item::I_overlaps
|
||||
Item::I_isOn
|
||||
Item::I_getQHi
|
||||
Actor::I_getLastAnimSet
|
||||
Item::I_getCY
|
||||
CurrentMap::I_canExistAt
|
||||
Item::I_isOn
|
||||
Actor::I_isDead
|
||||
Item::I_hurl
|
||||
Item::I_inFastArea
|
||||
Item::I_getQHi
|
||||
Item::I_andStatus
|
||||
Item::I_hurl
|
||||
Item::I_andStatus
|
||||
Item::I_hurl
|
||||
Item::I_andStatus
|
||||
Item::I_getDirToCoords
|
||||
MainActor::I_removeItemCru
|
||||
UCMachine::I_true
|
||||
Actor::I_getNpcNum
|
||||
Item::I_getCY
|
||||
Item::I_isOn
|
||||
Item::I_getFootpadData
|
||||
Actor::I_isDead
|
||||
Actor::I_createActorCru
|
||||
Actor::I_setActivity
|
||||
KeypadGump::I_showKeypad
|
||||
Item::I_andStatus
|
||||
ComputerGump::I_readComputer
|
||||
UCMachine::I_numToStr
|
||||
UCMachine::I_false
|
||||
Actor::I_getDir
|
||||
Item::I_getQHi
|
||||
Item::I_setQuality
|
||||
Item::I_hurl
|
||||
Actor::I_addHp
|
||||
CruHealerProcess::I_create
|
||||
Item::I_equip
|
||||
Item::I_setBroken
|
||||
Item::I_isOn
|
||||
Actor::I_teleport
|
||||
Item::I_getDirFromTo16
|
||||
Item::I_getQHi
|
||||
Item::I_isOn
|
||||
Actor::I_isInCombat
|
||||
Actor::I_getLastActivityNo
|
||||
Actor::I_setCombatTactic
|
||||
Actor::I_setDead
|
||||
CameraProcess::I_getCameraY
|
||||
Actor::I_getEquip
|
||||
Actor::I_setEquip
|
||||
Actor::I_getDefaultActivity0
|
||||
Actor::I_getDefaultActivity1
|
||||
Actor::I_getDefaultActivity2
|
||||
Actor::I_getLastAnimSet
|
||||
Actor::I_isFalling
|
||||
Item::I_getQLo
|
||||
Item::I_getQHi
|
||||
Actor::I_getNpcNum
|
||||
Actor::I_setUnkByte
|
||||
Item::I_hurl
|
||||
Actor::I_setDead
|
||||
Item::I_getQLo
|
||||
Item::I_getCY
|
||||
Actor::I_getNpcNum
|
||||
Item::I_hurl
|
||||
Actor::I_getNpcNum
|
||||
Item::I_hurl
|
||||
Actor::I_getNpcNum
|
||||
Item::I_hurl
|
||||
Actor::I_getNpcNum
|
||||
Item::I_hurl
|
||||
Actor::I_getNpcNum
|
||||
Item::I_hurl
|
||||
Actor::I_getNpcNum
|
||||
Item::I_hurl
|
||||
Actor::I_getNpcNum
|
||||
Item::I_hurl
|
||||
Actor::I_getNpcNum
|
||||
Item::I_hurl
|
||||
Actor::I_getNpcNum
|
||||
Item::I_hurl
|
||||
Actor::I_getNpcNum
|
||||
Item::I_andStatus
|
||||
Actor::I_setDead
|
||||
Item::I_getQLo
|
||||
Actor::I_setDead
|
||||
Actor::I_getMaxHp
|
||||
Actor::I_setHp
|
||||
Item::I_getQLo
|
||||
BatteryChargerProcess::I_create
|
||||
Item::I_hurl
|
||||
Item::I_andStatus
|
||||
Item::I_isOn
|
||||
Actor::I_isDead
|
||||
Actor::I_setActivity
|
||||
Item::I_getQHi
|
||||
Actor::I_getLastAnimSet
|
||||
Actor::I_setDead
|
||||
Item::I_getQLo
|
||||
Item::I_isOn
|
||||
Item::I_getQHi
|
||||
Item::I_isOn
|
||||
Item::I_getQHi
|
||||
Item::I_hurl
|
||||
Actor::I_getNpcNum
|
||||
Item::I_getCY
|
||||
Item::I_hurl
|
||||
Item::I_isOn
|
||||
MainActor::I_hasKeycard
|
||||
UCMachine::I_false
|
||||
Actor::I_isDead
|
||||
Actor::I_clrImmortal
|
||||
UCMachine::I_numToStr
|
||||
Item::I_getQHi
|
||||
Actor::I_setActivity
|
||||
Item::I_andStatus
|
||||
Actor::I_getNpcNum
|
||||
Item::I_andStatus
|
||||
Actor::I_getNpcNum
|
||||
Item::I_isCrusTypeNPC
|
||||
Item::I_andStatus
|
||||
Actor::I_getNpcNum
|
||||
Item::I_avatarStoleSomething
|
||||
Item::I_andStatus
|
||||
Actor::I_getNpcNum
|
||||
Item::I_getQ
|
||||
Item::I_setQ
|
||||
Item::I_andStatus
|
||||
Actor::I_getNpcNum
|
||||
Item::I_andStatus
|
||||
Actor::I_getNpcNum
|
||||
Item::I_andStatus
|
||||
Actor::I_getNpcNum
|
||||
Item::I_andStatus
|
||||
Actor::I_getNpcNum
|
||||
Item::I_andStatus
|
||||
Actor::I_getNpcNum
|
||||
Actor::I_getDir
|
||||
Item::I_andStatus
|
||||
Actor::I_getNpcNum
|
||||
Item::I_fireDistance
|
||||
Item::I_andStatus
|
||||
Item::I_hurl
|
||||
Item::I_andStatus
|
||||
CameraProcess::I_getCameraY
|
||||
CameraProcess::I_getCameraZ
|
||||
CruStatusGump::I_hideStatusGump
|
||||
Actor::I_clrInCombat
|
||||
Item::I_getTypeFlag
|
||||
Actor::I_getNpcNum
|
||||
Item::I_hurl
|
||||
Item::I_getCY
|
||||
Item::I_getCZ
|
||||
Item::I_setFrame
|
||||
AudioProcess::I_playSFX
|
||||
AudioProcess::I_isSFXPlaying
|
||||
World::I_clrAlertActive
|
||||
PaletteFaderProcess::I_fadeToGivenColor
|
||||
Actor::I_isDead
|
||||
Actor::I_setDead
|
||||
Game::I_playCredits
|
||||
PaletteFaderProcess::I_jumpToAllWhite
|
||||
Item::I_getFamilyOfType
|
||||
Actor::I_getNpcNum
|
||||
Item::I_getQLo
|
||||
Item::I_andStatus
|
||||
Ultima8Engine::I_getCurrentTimerTick
|
||||
World::I_setAlertActive
|
||||
Ultima8Engine::I_getAvatarInStasis
|
||||
MainActor::I_addItemCru
|
||||
Egg::I_getEggXRange
|
||||
Actor::I_clrInCombat
|
||||
PaletteFaderProcess::I_jumpToAllGivenColor
|
||||
Item::I_setFrame
|
||||
UCMachine::I_numToStr
|
||||
Actor::I_getDir
|
||||
UCMachine::I_numToStr
|
||||
Item::I_isOn
|
||||
Actor::I_getDir
|
||||
Actor::I_setDead
|
||||
Item::I_getQHi
|
||||
Item::I_getQLo
|
||||
UCMachine::I_numToStr
|
||||
Actor::I_getDir
|
||||
UNUSED15D
|
||||
350
tools/unkcoffs/reg_intrinsic_dump.txt
Normal file
350
tools/unkcoffs/reg_intrinsic_dump.txt
Normal file
|
|
@ -0,0 +1,350 @@
|
|||
Code002 1008:005d: (Int0B6) Intrinsic00B6()
|
||||
Code002 1008:0090: (Int083) I_setUnkFlagA4()
|
||||
Code002 1008:0096: (Int084) I_clearUnkFlagA4()
|
||||
Code002 1008:009c: (Int145) Intrinsic0145()
|
||||
Code002 1008:00e7: (Int070) Ultima8Engine::I_setCruStasis()
|
||||
Code002 1008:00ed: (Int071) Ultima8Engine::I_clrCruStasis()
|
||||
Code002 1008:0123: (Int06B) Intrinsic006B()
|
||||
Code002 1008:0134: (Int06A) Intrinsic006A()
|
||||
Code002 1008:03ab: (Int03C) MainActor::I_addItemCru()
|
||||
Code002 1008:03ab: (Int14E) MainActor::I_addItemCru()
|
||||
Code002 1008:0b7f: (Int0B5) Intrinsic00B5()
|
||||
Code002 1008:0f16: (Int07D) Ultima8Engine::I_clrUnkCrusaderFlag()
|
||||
Code002 1008:0f1c: (Int07B) Ultima8Engine::I_getUnkCrusaderFlag()
|
||||
Code002 1008:0f20: (Int07C) Ultima8Engine::I_setUnkCrusaderFlag()
|
||||
Code007 1030:0c60: (Int085) Intrinsic0085()
|
||||
Code008 1038:0605: (Int09D) PaletteFaderProcess::I_jumpToGreyScale()
|
||||
Code009 1040:03b8: (Int14B) Ultima8Engine::getCurrentTimerTick()
|
||||
Code010 1048:134f: (Int024) Item::hurl(sint16,sint16,sint16,sint16)
|
||||
Code010 1048:134f: (Int067) Item::hurl(sint16,sint16,sint16,sint16)
|
||||
Code010 1048:134f: (Int097) Item::hurl(sint16,sint16,sint16,sint16)
|
||||
Code010 1048:134f: (Int0AC) Item::hurl(sint16,sint16,sint16,sint16)
|
||||
Code010 1048:134f: (Int0B0) Item::hurl(sint16,sint16,sint16,sint16)
|
||||
Code010 1048:134f: (Int0B2) Item::hurl(sint16,sint16,sint16,sint16)
|
||||
Code010 1048:134f: (Int0C6) Item::hurl(sint16,sint16,sint16,sint16)
|
||||
Code010 1048:134f: (Int0E0) Item::hurl(sint16,sint16,sint16,sint16)
|
||||
Code010 1048:134f: (Int0E5) Item::hurl(sint16,sint16,sint16,sint16)
|
||||
Code010 1048:134f: (Int0E7) Item::hurl(sint16,sint16,sint16,sint16)
|
||||
Code010 1048:134f: (Int0E9) Item::hurl(sint16,sint16,sint16,sint16)
|
||||
Code010 1048:134f: (Int0EB) Item::hurl(sint16,sint16,sint16,sint16)
|
||||
Code010 1048:134f: (Int0ED) Item::hurl(sint16,sint16,sint16,sint16)
|
||||
Code010 1048:134f: (Int0EF) Item::hurl(sint16,sint16,sint16,sint16)
|
||||
Code010 1048:134f: (Int0F1) Item::hurl(sint16,sint16,sint16,sint16)
|
||||
Code010 1048:134f: (Int0F3) Item::hurl(sint16,sint16,sint16,sint16)
|
||||
Code010 1048:134f: (Int0F5) Item::hurl(sint16,sint16,sint16,sint16)
|
||||
Code010 1048:134f: (Int0FF) Item::hurl(sint16,sint16,sint16,sint16)
|
||||
Code010 1048:134f: (Int10C) Item::hurl(sint16,sint16,sint16,sint16)
|
||||
Code010 1048:134f: (Int10F) Item::hurl(sint16,sint16,sint16,sint16)
|
||||
Code010 1048:134f: (Int133) Item::hurl(sint16,sint16,sint16,sint16)
|
||||
Code010 1048:134f: (Int13B) Item::hurl(sint16,sint16,sint16,sint16)
|
||||
Code010 1048:13eb: (Int066) Item::fall(void)
|
||||
Code011 1050:0079: (Int15D) Intrinsic015D()
|
||||
Code012 1058:00a1: (Int077) Game::I_isViolenceEnabled()
|
||||
Code012 1058:00c1: (Int056) Game::I_isReleaseBuild()
|
||||
Code021 10a0:04c4: (Int086) teleportToEgg(sint16,int,uint8)
|
||||
Code021 10a0:04ed: (Int09A) teleportToEgg(sint16,uint8)
|
||||
Code021 10a0:0513: (Int14F) Egg::getEggXRange(void)
|
||||
Code021 10a0:0551: (Int0A2) Egg::setEggXRange(uint16)
|
||||
Code021 10a0:05bb: (Int03B) Egg::getEggId(void)
|
||||
Code023 10b0:013e: (Int00E) Item::getX(void)
|
||||
Code023 10b0:0176: (Int00F) Item::getY(void)
|
||||
Code023 10b0:0266: (Int009) Item::getZ(void)
|
||||
Code023 10b0:029a: (Int026) Item::getCX(void)
|
||||
Code023 10b0:02de: (Int025) Item::getCY(void)
|
||||
Code023 10b0:02de: (Int069) Item::getCY(void)
|
||||
Code023 10b0:02de: (Int0A8) Item::getCY(void)
|
||||
Code023 10b0:02de: (Int0B8) Item::getCY(void)
|
||||
Code023 10b0:02de: (Int0E3) Item::getCY(void)
|
||||
Code023 10b0:02de: (Int10E) Item::getCY(void)
|
||||
Code023 10b0:02de: (Int13C) Item::getCY(void)
|
||||
Code023 10b0:0322: (Int13D) Item::getCZ(void)
|
||||
Code023 10b0:0602: (Int05B) Item::getSurfaceWeight(void)
|
||||
Code023 10b0:068f: (Int011) Item::getShape(void)
|
||||
Code023 10b0:0717: (Int02A) Item::setShape()
|
||||
Code023 10b0:0826: (Int001) Item::getFrame(void)
|
||||
Code023 10b0:0882: (Int002) Item::setFrame(uint16)
|
||||
Code023 10b0:0882: (Int05D) Item::setFrame(uint16)
|
||||
Code023 10b0:0882: (Int0A3) Item::setFrame(uint16)
|
||||
Code023 10b0:0882: (Int13E) Item::setFrame(uint16)
|
||||
Code023 10b0:0882: (Int152) Item::setFrame(uint16)
|
||||
Code023 10b0:0c96: (Int028) Item::setNpcNum(sint16)
|
||||
Code023 10b0:0cb2: (Int075) Item::getNpcNum(void)
|
||||
Code023 10b0:0cb2: (Int092) Item::getNpcNum(void)
|
||||
Code023 10b0:0cb2: (Int098) Item::getNpcNum(void)
|
||||
Code023 10b0:0cb2: (Int0B7) Item::getNpcNum(void)
|
||||
Code023 10b0:0cb2: (Int0DE) Item::getNpcNum(void)
|
||||
Code023 10b0:0cb2: (Int0E4) Item::getNpcNum(void)
|
||||
Code023 10b0:0cb2: (Int0E6) Item::getNpcNum(void)
|
||||
Code023 10b0:0cb2: (Int0E8) Item::getNpcNum(void)
|
||||
Code023 10b0:0cb2: (Int0EA) Item::getNpcNum(void)
|
||||
Code023 10b0:0cb2: (Int0EC) Item::getNpcNum(void)
|
||||
Code023 10b0:0cb2: (Int0EE) Item::getNpcNum(void)
|
||||
Code023 10b0:0cb2: (Int0F0) Item::getNpcNum(void)
|
||||
Code023 10b0:0cb2: (Int0F2) Item::getNpcNum(void)
|
||||
Code023 10b0:0cb2: (Int0F4) Item::getNpcNum(void)
|
||||
Code023 10b0:0cb2: (Int0F6) Item::getNpcNum(void)
|
||||
Code023 10b0:0cb2: (Int10D) Item::getNpcNum(void)
|
||||
Code023 10b0:0cb2: (Int119) Item::getNpcNum(void)
|
||||
Code023 10b0:0cb2: (Int11B) Item::getNpcNum(void)
|
||||
Code023 10b0:0cb2: (Int11E) Item::getNpcNum(void)
|
||||
Code023 10b0:0cb2: (Int121) Item::getNpcNum(void)
|
||||
Code023 10b0:0cb2: (Int125) Item::getNpcNum(void)
|
||||
Code023 10b0:0cb2: (Int127) Item::getNpcNum(void)
|
||||
Code023 10b0:0cb2: (Int129) Item::getNpcNum(void)
|
||||
Code023 10b0:0cb2: (Int12B) Item::getNpcNum(void)
|
||||
Code023 10b0:0cb2: (Int12D) Item::getNpcNum(void)
|
||||
Code023 10b0:0cb2: (Int130) Item::getNpcNum(void)
|
||||
Code023 10b0:0cb2: (Int13A) Item::getNpcNum(void)
|
||||
Code023 10b0:0cb2: (Int148) Item::getNpcNum(void)
|
||||
Code023 10b0:0cce: (Int091) Item::setMapNum(sint16)
|
||||
Code023 10b0:0cea: (Int003) Item::getMapNum(void)
|
||||
Code023 10b0:0d06: (Int122) Item::getQ(void)
|
||||
Code023 10b0:0d1c: (Int08A) Item::getQuality(void)
|
||||
Code023 10b0:0d60: (Int08B) Item::setQuality(sint16)
|
||||
Code023 10b0:0d60: (Int0C5) Item::setQuality(sint16)
|
||||
Code023 10b0:0da3: (Int0A1) Item::getUnkEggType(void)
|
||||
Code023 10b0:0e43: (Int059) Item::setUnkEggType(sint16)
|
||||
Code023 10b0:0fd1: (Int123) Item::setQ(uint)
|
||||
Code023 10b0:1036: (Int031) Item::getFamily(void)
|
||||
Code023 10b0:1061: (Int139) Item::getTypeFlagCrusader(sint16)
|
||||
Code023 10b0:10aa: (Int004) Item::getStatus(void)
|
||||
Code023 10b0:10c0: (Int063) Item::legalCreateAtPoint(uint16,uint16,WorldPoint&)
|
||||
Code023 10b0:114d: (Int014) Item::legalCreateAtCoords(uint16,uint16,uint16,uint16,uint16)
|
||||
Code023 10b0:1259: (Int01A) Item::create(uint16,uint16)
|
||||
Code023 10b0:1383: (Int01B) Item::popToCoords(uint16,uint16,uint8)
|
||||
Code023 10b0:139a: (Int02E) Item::popToContainer(uint16)
|
||||
Code023 10b0:13aa: (Int02B) Item::pop(void)
|
||||
Code023 10b0:13c4: (Int01D) Item::push(void)
|
||||
Code023 10b0:13d7: (Int00C) Item::destroy(void)
|
||||
Code023 10b0:14f3: (Int032) Actor::destroyContents(void)
|
||||
Code023 10b0:1575: (Int07A) Item::move(uint16,uint16,uint8)
|
||||
Code023 10b0:1791: (Int065) Item::legalMoveToPoint(WorldPoint&,uint16,uint16)
|
||||
Code023 10b0:1a2d: (Int0B4) Item::getDirToCoords(uint16,uint16)
|
||||
Code023 10b0:1ab8: (Int034) Item::getDirToItem(uint16)
|
||||
Code023 10b0:1aed: (Int0BA) Item::getFootpad(sint16&,sint16&,sint16&)
|
||||
Code023 10b0:1d09: (Int0A4) Item::overlaps(uint16)
|
||||
Code023 10b0:1f2e: (Int041) Item::isOn(uint16)
|
||||
Code023 10b0:1f2e: (Int043) Item::isOn(uint16)
|
||||
Code023 10b0:1f2e: (Int045) Item::isOn(uint16)
|
||||
Code023 10b0:1f2e: (Int047) Item::isOn(uint16)
|
||||
Code023 10b0:1f2e: (Int049) Item::isOn(uint16)
|
||||
Code023 10b0:1f2e: (Int04B) Item::isOn(uint16)
|
||||
Code023 10b0:1f2e: (Int0A5) Item::isOn(uint16)
|
||||
Code023 10b0:1f2e: (Int0AA) Item::isOn(uint16)
|
||||
Code023 10b0:1f2e: (Int0B9) Item::isOn(uint16)
|
||||
Code023 10b0:1f2e: (Int0CB) Item::isOn(uint16)
|
||||
Code023 10b0:1f2e: (Int0CF) Item::isOn(uint16)
|
||||
Code023 10b0:1f2e: (Int101) Item::isOn(uint16)
|
||||
Code023 10b0:1f2e: (Int108) Item::isOn(uint16)
|
||||
Code023 10b0:1f2e: (Int10A) Item::isOn(uint16)
|
||||
Code023 10b0:1f2e: (Int110) Item::isOn(uint16)
|
||||
Code023 10b0:1f2e: (Int156) Item::isOn(uint16)
|
||||
Code023 10b0:1fa3: (Int02D) Item::isCompletelyOn(uint16)
|
||||
Code023 10b0:247a: (Int064) Item::getPoint(WorldPoint&)
|
||||
Code023 10b0:24ca: (Int008) Item::isNpc(void)
|
||||
Code023 10b0:24f9: (Int06F) Item::isInNpc(void)
|
||||
Code023 10b0:2558: (Int03A) Item::touch(void)
|
||||
Code023 10b0:25b6: (Int005) Item::orStatus(sint16)
|
||||
Code023 10b0:25cf: (Int015) Item::andStatus(void)
|
||||
Code023 10b0:25cf: (Int038) Item::andStatus(void)
|
||||
Code023 10b0:25cf: (Int079) Item::andStatus(void)
|
||||
Code023 10b0:25cf: (Int0A0) Item::andStatus(void)
|
||||
Code023 10b0:25cf: (Int0AF) Item::andStatus(void)
|
||||
Code023 10b0:25cf: (Int0B1) Item::andStatus(void)
|
||||
Code023 10b0:25cf: (Int0B3) Item::andStatus(void)
|
||||
Code023 10b0:25cf: (Int0BF) Item::andStatus(void)
|
||||
Code023 10b0:25cf: (Int0F7) Item::andStatus(void)
|
||||
Code023 10b0:25cf: (Int100) Item::andStatus(void)
|
||||
Code023 10b0:25cf: (Int118) Item::andStatus(void)
|
||||
Code023 10b0:25cf: (Int11A) Item::andStatus(void)
|
||||
Code023 10b0:25cf: (Int11D) Item::andStatus(void)
|
||||
Code023 10b0:25cf: (Int120) Item::andStatus(void)
|
||||
Code023 10b0:25cf: (Int124) Item::andStatus(void)
|
||||
Code023 10b0:25cf: (Int126) Item::andStatus(void)
|
||||
Code023 10b0:25cf: (Int128) Item::andStatus(void)
|
||||
Code023 10b0:25cf: (Int12A) Item::andStatus(void)
|
||||
Code023 10b0:25cf: (Int12C) Item::andStatus(void)
|
||||
Code023 10b0:25cf: (Int12F) Item::andStatus(void)
|
||||
Code023 10b0:25cf: (Int132) Item::andStatus(void)
|
||||
Code023 10b0:25cf: (Int134) Item::andStatus(void)
|
||||
Code023 10b0:25cf: (Int14A) Item::andStatus(void)
|
||||
Code023 10b0:2614: (Int096) Item::setBroken()
|
||||
Code023 10b0:2614: (Int0CA) Item::setBroken()
|
||||
Code023 10b0:26ab: (Int058) Item::use(void)
|
||||
Code023 10b0:2952: (Int076) IntrinsicReturn0
|
||||
Code023 10b0:2952: (Int0C2) IntrinsicReturn0
|
||||
Code023 10b0:2952: (Int112) IntrinsicReturn0
|
||||
Code023 10b0:2a1e: (Int006) Item::equip(sint16)
|
||||
Code023 10b0:2a1e: (Int0C9) Item::callEvent0A(sint16)
|
||||
Code023 10b0:2a51: (Int078) Item::unequip(sint16)
|
||||
Code023 10b0:2b34: (Int095) Item::enterFastArea(void)
|
||||
Code023 10b0:2f5e: (Int03E) Item::callEvent11(sint16)
|
||||
Code023 10b0:2ffa: (Int11F) Item::AvatarStoleSomehting(uint16)
|
||||
Code023 10b0:385e: (Int021) Item::getQHi(void)
|
||||
Code023 10b0:385e: (Int042) Item::getQHi(void)
|
||||
Code023 10b0:385e: (Int044) Item::getQHi(void)
|
||||
Code023 10b0:385e: (Int046) Item::getQHi(void)
|
||||
Code023 10b0:385e: (Int048) Item::getQHi(void)
|
||||
Code023 10b0:385e: (Int04A) Item::getQHi(void)
|
||||
Code023 10b0:385e: (Int04C) Item::getQHi(void)
|
||||
Code023 10b0:385e: (Int0A6) Item::getQHi(void)
|
||||
Code023 10b0:385e: (Int0AE) Item::getQHi(void)
|
||||
Code023 10b0:385e: (Int0C4) Item::getQHi(void)
|
||||
Code023 10b0:385e: (Int0CE) Item::getQHi(void)
|
||||
Code023 10b0:385e: (Int0DD) Item::getQHi(void)
|
||||
Code023 10b0:385e: (Int104) Item::getQHi(void)
|
||||
Code023 10b0:385e: (Int109) Item::getQHi(void)
|
||||
Code023 10b0:385e: (Int10B) Item::getQHi(void)
|
||||
Code023 10b0:385e: (Int116) Item::getQHi(void)
|
||||
Code023 10b0:385e: (Int159) Item::getQHi(void)
|
||||
Code023 10b0:387a: (Int022) Item::setQHi(sint16)
|
||||
Code023 10b0:38a9: (Int00B) Item::getQLo(void)
|
||||
Code023 10b0:38a9: (Int01F) Item::getQLo(void)
|
||||
Code023 10b0:38a9: (Int0DC) Item::getQLo(void)
|
||||
Code023 10b0:38a9: (Int0E2) Item::getQLo(void)
|
||||
Code023 10b0:38a9: (Int0F9) Item::getQLo(void)
|
||||
Code023 10b0:38a9: (Int0FD) Item::getQLo(void)
|
||||
Code023 10b0:38a9: (Int107) Item::getQLo(void)
|
||||
Code023 10b0:38a9: (Int149) Item::getQLo(void)
|
||||
Code023 10b0:38a9: (Int15A) Item::getQLo(void)
|
||||
Code023 10b0:38c2: (Int020) Item::setQLo(sint16)
|
||||
Code023 10b0:38f1: (Int093) Item::shoot(WorldPoint&,sint16,sint16)
|
||||
Code023 10b0:3954: (Int010) Item::playSfxCru()
|
||||
Code023 10b0:3973: (Int029) AudioProcess::I_playSFXCru()
|
||||
Code023 10b0:39b1: (Int037) udioProcess::I_playSFXCru()
|
||||
Code023 10b0:39d0: (Int040) AudioProcess::I_stopSFXCru()
|
||||
Code023 10b0:39ef: (Int02C) AudioProcess::I_stopSFXCru()
|
||||
Code023 10b0:3a0b: (Int035) AudioProcess::I_getUnknown()
|
||||
Code023 10b0:3a33: (Int033) AudioProcess::I_setVolumeForItemSFX()
|
||||
Code023 10b0:3a56: (Int0AD) Item::I_inFastArea()
|
||||
Code023 10b0:3cd8: (Int0BC) Actor::createNPCCru()
|
||||
Code023 10b0:41c1: (Int007) Item::isEntirelyOnScreen()
|
||||
Code023 10b0:4437: (Int099) Ultima8Engine::I_moveKeyDownRecently()
|
||||
Code023 10b0:443f: (Int11C) Item::I_isCrusTypeNPC()
|
||||
Code023 10b0:446e: (Int05C) Item::I_isCentreOn()
|
||||
Code024 10b8:26f8: (Int01E) Item::I_getEtherealTop()
|
||||
Code029 10e0:0000: (Int023) Item::I_getClosestDirectionInRange()
|
||||
Code029 10e0:01c7: (Int0CD) Item::I_getDirFromTo16()
|
||||
Code030 10e8:0000: (Int14C) World::I_setAlertActiveRegret()
|
||||
Code030 10e8:0247: (Int141) World::I_clrAlertActiveRegret()
|
||||
Code030 10e8:048d: (Int000) World::I_getAlertActive()
|
||||
Code032 10f8:0261: (Int060) Actor::I_isBusy()
|
||||
Code032 10f8:039a: (Int062) Actor::I_doAnim()
|
||||
Code032 10f8:2198: (Int0DB) Actor::I_isInCombat()
|
||||
Code032 10f8:21b7: (Int0D0) Actor::I_isInCombat()
|
||||
Code032 10f8:2278: (Int04E) Actor::isDead(void)
|
||||
Code032 10f8:2278: (Int074) Actor::isDead(void)
|
||||
Code032 10f8:2278: (Int0AB) Actor::isDead(void)
|
||||
Code032 10f8:2278: (Int0BB) Actor::isDead(void)
|
||||
Code032 10f8:2278: (Int102) Actor::isDead(void)
|
||||
Code032 10f8:2278: (Int113) Actor::isDead(void)
|
||||
Code032 10f8:2278: (Int143) Actor::isDead(void)
|
||||
Code032 10f8:22a8: (Int01C) Actor::I_setDead()
|
||||
Code032 10f8:22a8: (Int0D3) Actor::I_setDead())
|
||||
Code032 10f8:22a8: (Int0E1) Actor::I_setDead()
|
||||
Code032 10f8:22a8: (Int0F8) Actor::I_setDead()
|
||||
Code032 10f8:22a8: (Int0FA) Actor::I_setDead()
|
||||
Code032 10f8:22a8: (Int106) Actor::I_setDead()
|
||||
Code032 10f8:22a8: (Int144) Actor::I_setDead()
|
||||
Code032 10f8:22a8: (Int158) Actor::I_setDead()
|
||||
Code032 10f8:2403: (Int08E) Actor::I_setImmortal()
|
||||
Code032 10f8:241e: (Int088) Actor::I_clrImmortal()
|
||||
Code032 10f8:241e: (Int114) Actor::I_clrImmortal()
|
||||
Code032 10f8:2499: (Int061) Intrinsic0061()
|
||||
Code032 10f8:280e: (Int09B) Actor::I_createActor()
|
||||
Code032 10f8:2e86: (Int0D5) Actor::I_getEquip()
|
||||
Code032 10f8:2eb9: (Int0D6) Actor::I_setEquip()
|
||||
Code032 10f8:30b8: (Int0CC) Actor::I_teleport()
|
||||
Code032 10f8:3243: (Int03D) Actor::I_getMap()
|
||||
Code032 10f8:329d: (Int050) Actor::I_setDefaultActivity0
|
||||
Code032 10f8:32ba: (Int051) Actor::I_setDefaultActivity1
|
||||
Code032 10f8:32d7: (Int052) Actor::I_setDefaultActivity2
|
||||
Code032 10f8:332b: (Int0D7) Actor::I_getDefaultActivity0()
|
||||
Code032 10f8:3345: (Int0D8) Actor::I_getDefaultActivity1()
|
||||
Code032 10f8:335f: (Int0D9) Actor::I_getDefaultActivity2()
|
||||
Code032 10f8:33b5: (Int053) Actor::I_setActivity
|
||||
Code032 10f8:33b5: (Int089) Actor::I_setActivity()
|
||||
Code032 10f8:33b5: (Int0BD) Actor::I_setActivity()
|
||||
Code032 10f8:33b5: (Int103) Actor::I_setActivity()
|
||||
Code032 10f8:33b5: (Int117) Actor::I_setActivity()
|
||||
Code032 10f8:389f: (Int04F) Actor::I_clrInCombat()
|
||||
Code032 10f8:389f: (Int09C) Actor::I_clrInCombat()
|
||||
Code032 10f8:389f: (Int138) Actor::I_clrInCombat()
|
||||
Code032 10f8:389f: (Int150) Actor::I_clrInCombat()
|
||||
Code032 10f8:3961: (Int07E) Actor::I_turnToward()
|
||||
Code032 10f8:39ea: (Int02F) Actor::I_getHp()
|
||||
Code032 10f8:3a03: (Int04D) Actor::I_getCurrentActivityNo()
|
||||
Code032 10f8:3a6b: (Int0FB) Dtable::I_getMaxHPForNPC()
|
||||
Code032 10f8:3b4a: (Int030) Actor::I_getMana()
|
||||
Code032 10f8:3b64: (Int057) MainActor::I_setMana()
|
||||
Code032 10f8:3b81: (Int08C) MainActor::I_getMaxEnergy()
|
||||
Code032 10f8:3c56: (Int0FC) Actor::I_setHP()
|
||||
Code032 10f8:3c8c: (Int0D2) Actor::I_setCombatTactic()
|
||||
Code032 10f8:3d8e: (Int14D) Ultima8Engine::I_getAvatarInStasis()
|
||||
Code032 10f8:3d96: (Int05F) Ultima8Engine::I_setAvatarInStasis()
|
||||
Code032 10f8:3e0c: (Int017) Actor::I_getDir()
|
||||
Code032 10f8:3e0c: (Int0C3) Actor::I_getDir()
|
||||
Code032 10f8:3e0c: (Int12E) Actor::I_getDir()
|
||||
Code032 10f8:3e0c: (Int154) Actor::I_getDir()
|
||||
Code032 10f8:3e0c: (Int157) Actor::I_getDir()
|
||||
Code032 10f8:3e0c: (Int15C) Actor::I_getDir()
|
||||
Code032 10f8:3e26: (Int018) Actor::I_getLastAnimSet()
|
||||
Code032 10f8:3e26: (Int05E) Actor::I_getLastAnimSet()
|
||||
Code032 10f8:3e26: (Int0A7) Actor::I_getLastAnimSet()
|
||||
Code032 10f8:3e26: (Int0DA) Actor::I_getLastAnimSet()
|
||||
Code032 10f8:3e26: (Int105) Actor::I_getLastAnimSet()
|
||||
Code032 10f8:3e40: (Int0C7) Actor::I_addHp()
|
||||
Code032 10f8:3fcd: (Int00A) World::I_gameDifficulty()
|
||||
Code032 10f8:43e0: (Int111) MainActor::I_hasKeycard()
|
||||
Code032 10f8:4443: (Int080) MainActor::I_clrKeycards()
|
||||
Code032 10f8:44f4: (Int00D) Intrinsic000D()
|
||||
Code032 10f8:4511: (Int0DF) Intrinsic00DF()
|
||||
Code032 10f8:452f: (Int0D1) Actor::I_getNPCDataField0x4()
|
||||
Code035 1110:03ec: (Int147) Item::I_getFamilyOfType()
|
||||
Code041 1140:04cb: (Int055) Intrinsic0055()
|
||||
Code041 1140:1a86: (Int019) Intrinsic0019()
|
||||
Code041 1140:20cb: (Int131) Intrinsic0131()
|
||||
Code041 1140:258e: (Int036) Intrinsic0036()
|
||||
Code041 1140:2a78: (Int0FE) Intrinsic00FE()
|
||||
Code041 1140:2a98: (Int0C8) Intrinsic00C8()
|
||||
Code042 1148:0038: (Int054) World::I_setControlledNPCNum
|
||||
Code042 1148:0048: (Int016) World::I_getControlledNPCNum()
|
||||
Code043 1150:00de: (Int027) SpriteProcess::I_createSprite()
|
||||
Code045 1160:0a77: (Int012) Item::I_explode()
|
||||
Code045 1160:0d96: (Int0A9) Intrinsic00A9()
|
||||
Code052 1198:0013: (Int03F) Intrinsic003F()
|
||||
Code052 1198:0ce8: (Int08D) CameraProcess::I_moveTo(x,y,z)
|
||||
Code052 1198:1ae6: (Int094) CameraProcess::I_setCenterOn(objid)
|
||||
Code052 1198:1d06: (Int08F) Camera::getX(void)
|
||||
Code052 1198:1d0e: (Int090) Camera::getY(void)
|
||||
Code052 1198:1d0e: (Int0D4) CameraProcess::I_getCameraY()
|
||||
Code052 1198:1d0e: (Int135) Camera::getY(void)
|
||||
Code052 1198:1d16: (Int136) Camera::getZ(void)
|
||||
Code058 11c8:0000: (Int137) Intrinsic0137()
|
||||
Code058 11c8:0006: (Int09F) Intrinsic009F()
|
||||
Code062 11e8:0977: (Int068) Kernel::getNumProcesses(uint16,ProcessType)
|
||||
Code062 11e8:0c63: (Int039) Kernel::resetRef(uint16,ProcessType)
|
||||
Code067 1210:01a2: (Int05A) MusicProcess::I_playMusic()
|
||||
Code067 1210:02a3: (Int06C) MusicProcess::I_pauseMusic()
|
||||
Code067 1210:02c1: (Int06E) MusicProcess::I_unpauseMusic()
|
||||
Code067 1210:02df: (Int081) MusicProcess::I_stopMusic()
|
||||
Code092 12d8:0293: (Int013) UCMachine::I_rndRange()
|
||||
Code092 12d8:04d0: (Int13F) AudioProcess::I_playAmbientSFX()
|
||||
Code092 12d8:05ba: (Int140) AudioProcess::I_isSFXPlaying()
|
||||
Code115 1390:0005: (Int0C0) ComputerGump::I_readComputer()
|
||||
Code119 13b0:00fe: (Int0BE) KeypadGump::I_showKeypad()
|
||||
Code127 13f0:0073: (Int0C1) UCMachine::I_numToStr()
|
||||
Code127 13f0:0073: (Int115) UCMachine::I_numToStr()
|
||||
Code127 13f0:0073: (Int153) UCMachine::I_numToStr()
|
||||
Code127 13f0:0073: (Int155) UCMachine::I_numToStr()
|
||||
Code127 13f0:0073: (Int15B) UCMachine::I_numToStr()
|
||||
Code132 1418:071b: (Int07F) PaletteFaderProcess::I_fadeToBlack()
|
||||
Code132 1418:0729: (Int073) PaletteFaderProcess::I_fadeFromBlack()
|
||||
Code132 1418:0801: (Int087) PaletteFaderProcess::I_fadeFromBlack()
|
||||
Code132 1418:080f: (Int082) PaletteFaderProcess::I_jumpToAllBlack()
|
||||
Code132 1418:0899: (Int146) PaletteFaderProcess::I_jumpToAllGrey()
|
||||
Code132 1418:0923: (Int072) Intrinsic0072()
|
||||
Code132 1418:0923: (Int151) Intrinsic0072()
|
||||
Code132 1418:0b05: (Int09E) PaletteFaderProcess::I_jumpToNormalPalette()
|
||||
Code132 1418:0b3b: (Int142) PaletteFaderProcess::I_fadeToGivenColor()
|
||||
Code138 1448:0b5a: (Int06D) Intrinsic006D()
|
||||
375
tools/unkcoffs/regret_ints.py
Normal file
375
tools/unkcoffs/regret_ints.py
Normal file
|
|
@ -0,0 +1,375 @@
|
|||
intrinsics = [
|
||||
|
||||
"World::I_getAlertActive()",
|
||||
"Item::getFrame(void)",
|
||||
"Item::setFrame(uint16)",
|
||||
"Item::getMapNum(void)",
|
||||
"Item::getStatus(void)",
|
||||
"Item::orStatus(sint16)",
|
||||
"Item::equip(sint16)",
|
||||
"Item::isEntirelyOnScreen()",
|
||||
"Item::isNpc(void)",
|
||||
"Item::getZ(void)",
|
||||
"World::I_gameDifficulty()",
|
||||
"Item::getQLo(void)",
|
||||
"Item::destroy(void)",
|
||||
"Intrinsic000D()",
|
||||
"Item::getX(void)",
|
||||
"Item::getY(void)",
|
||||
|
||||
"Item::playSfxCru()",
|
||||
"Item::getShape(void)",
|
||||
"Item::I_explode()",
|
||||
"UCMachine::I_rndRange()",
|
||||
"Item::legalCreateAtCoords(uint16,uint16,uint16,uint16,uint16)",
|
||||
"Item::andStatus(void)",
|
||||
"World::I_getControlledNPCNum()",
|
||||
"Actor::I_getDir()",
|
||||
"Actor::I_getLastAnimSet()",
|
||||
"Intrinsic0019()",
|
||||
"Item::create(uint16,uint16)",
|
||||
"Item::popToCoords(uint16,uint16,uint8)",
|
||||
"Actor::I_setDead()",
|
||||
"Item::push(void)",
|
||||
"Item::I_getEtherealTop()",
|
||||
"Item::getQLo(void)",
|
||||
|
||||
"Item::setQLo(sint16)",
|
||||
"Item::getQHi(void)",
|
||||
"Item::setQHi(sint16)",
|
||||
"Item::I_getClosestDirectionInRange()",
|
||||
"Item::hurl(sint16,sint16,sint16,sint16)",
|
||||
"Item::getCY(void)",
|
||||
"Item::getCX(void)",
|
||||
"SpriteProcess::I_createSprite()",
|
||||
"Item::setNpcNum(sint16)",
|
||||
"AudioProcess::I_playSFXCru()",
|
||||
"Item::setShape()",
|
||||
"Item::pop(void)",
|
||||
"AudioProcess::I_stopSFXCru()",
|
||||
"Item::isCompletelyOn(uint16)",
|
||||
"Item::popToContainer(uint16)",
|
||||
"Actor::I_getHp()",
|
||||
|
||||
"Actor::I_getMana()",
|
||||
"Item::getFamily(void)",
|
||||
"Actor::destroyContents(void)",
|
||||
"Intrinsic0033()",
|
||||
"Item::getDirToItem(uint16)",
|
||||
"Intrinsic0035()",
|
||||
"Intrinsic0036()",
|
||||
"udioProcess::I_playSFXCru()",
|
||||
"Item::andStatus(void)",
|
||||
"Kernel::resetRef(uint16,ProcessType)",
|
||||
"Item::touch(void)",
|
||||
"Egg::getEggId(void)",
|
||||
"MainActor::I_addItemCru()",
|
||||
"Actor::I_getMap()",
|
||||
"Item::callEvent11(sint16)",
|
||||
"Intrinsic003F()",
|
||||
|
||||
"AudioProcess::I_stopSFXCru()",
|
||||
"Item::isOn(uint16)",
|
||||
"Item::getQHi(void)",
|
||||
"Item::isOn(uint16)",
|
||||
"Item::getQHi(void)",
|
||||
"Item::isOn(uint16)",
|
||||
"Item::getQHi(void)",
|
||||
"Item::isOn(uint16)",
|
||||
"Item::getQHi(void)",
|
||||
"Item::isOn(uint16)",
|
||||
"Item::getQHi(void)",
|
||||
"Item::isOn(uint16)",
|
||||
"Item::getQHi(void)",
|
||||
"Actor::I_getCurrentActivityNo()",
|
||||
"Actor::isDead(void)",
|
||||
"Actor::I_clrInCombat()",
|
||||
|
||||
"Actor::I_setDefaultActivity0",
|
||||
"Actor::I_setDefaultActivity1",
|
||||
"Actor::I_setDefaultActivity2",
|
||||
"Actor::I_setActivity",
|
||||
"World::I_setControlledNPCNum",
|
||||
"Intrinsic0055()",
|
||||
"Game::I_isReleaseBuild()",
|
||||
"MainActor::I_setMana()",
|
||||
"Item::use(void)",
|
||||
"Item::setUnkEggType(sint16)",
|
||||
"MusicProcess::I_playMusic()",
|
||||
"Item::getSurfaceWeight(void)",
|
||||
"Item::I_isCentreOn()",
|
||||
"Item::setFrame(uint16)",
|
||||
"Actor::I_getLastAnimSet()",
|
||||
"Ultima8Engine::I_setAvatarInStasis()",
|
||||
|
||||
"Actor::I_isBusy()",
|
||||
"Intrinsic0061()",
|
||||
"Actor::I_doAnim()",
|
||||
"Item::legalCreateAtPoint(uint16,uint16,WorldPoint&)",
|
||||
"Item::getPoint(WorldPoint&)",
|
||||
"Item::legalMoveToPoint(WorldPoint&,uint16,uint16)",
|
||||
"Item::fall(void)",
|
||||
"Item::hurl(sint16,sint16,sint16,sint16)",
|
||||
"Kernel::getNumProcesses(uint16,ProcessType)",
|
||||
"Item::getCY(void)",
|
||||
"Intrinsic006A()",
|
||||
"Intrinsic006B()",
|
||||
"MusicProcess::I_pauseMusic()",
|
||||
"Intrinsic006D()",
|
||||
"MusicProcess::I_unpauseMusic()",
|
||||
"Item::isInNpc(void)",
|
||||
|
||||
"Ultima8Engine::I_setCruStasis()",
|
||||
"Ultima8Engine::I_clrCruStasis()",
|
||||
"Intrinsic0072()",
|
||||
"PaletteFaderProcess::I_fadeFromBlack()",
|
||||
"Actor::isDead(void)",
|
||||
"Item::getNpcNum(void)",
|
||||
"IntrinsicReturn0",
|
||||
"Game::I_isViolenceEnabled()",
|
||||
"Item::unequip(sint16)",
|
||||
"Item::andStatus(void)",
|
||||
"Item::move(uint16,uint16,uint8)",
|
||||
"Ultima8Engine::I_getUnkCrusaderFlag()",
|
||||
"Ultima8Engine::I_setUnkCrusaderFlag()",
|
||||
"Ultima8Engine::I_clrUnkCrusaderFlag()",
|
||||
"Actor::I_turnToward()",
|
||||
"PaletteFaderProcess::I_fadeToBlack()",
|
||||
|
||||
"MainActor::I_clrKeycards()",
|
||||
"MusicProcess::I_stopMusic()",
|
||||
"PaletteFaderProcess::I_jumpToAllBlack()",
|
||||
"I_setUnkFlagA4()",
|
||||
"I_clearUnkFlagA4()",
|
||||
"Intrinsic0085()",
|
||||
"teleportToEgg(sint16,int,uint8)",
|
||||
"PaletteFaderProcess::I_fadeFromBlack()",
|
||||
"Actor::I_clrImmortal()",
|
||||
"Actor::I_setActivity()",
|
||||
"Item::getQuality(void)",
|
||||
"Item::setQuality(sint16)",
|
||||
"MainActor::I_getMaxEnergy()",
|
||||
"CameraProcess::I_moveTo(x,y,z)",
|
||||
"Actor::I_setImmortal()",
|
||||
"Camera::getX(void)",
|
||||
|
||||
"Camera::getY(void)",
|
||||
"Item::setMapNum(sint16)",
|
||||
"Item::getNpcNum(void)",
|
||||
"Item::shoot(WorldPoint&,sint16,sint16)",
|
||||
"Intrinsic0094()",
|
||||
"Item::enterFastArea(void)",
|
||||
"Item::setBroken()",
|
||||
"Item::hurl(sint16,sint16,sint16,sint16)",
|
||||
"Item::getNpcNum(void)",
|
||||
"Ultima8Engine::I_moveKeyDownRecently()",
|
||||
"teleportToEgg(sint16,uint8)",
|
||||
"Actor::I_createActor()",
|
||||
"Actor::I_clrInCombat()",
|
||||
"PaletteFaderProcess::I_jumpToGreyScale()",
|
||||
"PaletteFaderProcess::I_jumpToNormalPalette()",
|
||||
"Intrinsic009F()",
|
||||
|
||||
"Item::andStatus(void)",
|
||||
"Item::getUnkEggType(void)",
|
||||
"Egg::setEggXRange(uint16)",
|
||||
"Item::setFrame(uint16)",
|
||||
"Item::overlaps(uint16)",
|
||||
"Item::isOn(uint16)",
|
||||
"Item::getQHi(void)",
|
||||
"Actor::I_getLastAnimSet()",
|
||||
"Item::getCY(void)",
|
||||
"Intrinsic00A9()",
|
||||
"Item::isOn(uint16)",
|
||||
"Actor::isDead(void)",
|
||||
"Item::hurl(sint16,sint16,sint16,sint16)",
|
||||
"Intrinsic00AD()",
|
||||
"Item::getQHi(void)",
|
||||
"Item::andStatus(void)",
|
||||
|
||||
"Item::hurl(sint16,sint16,sint16,sint16)",
|
||||
"Item::andStatus(void)",
|
||||
"Item::hurl(sint16,sint16,sint16,sint16)",
|
||||
"Item::andStatus(void)",
|
||||
"Item::getDirToCoords(uint16,uint16)",
|
||||
"Intrinsic00B5()",
|
||||
"Intrinsic00B6()",
|
||||
"Item::getNpcNum(void)",
|
||||
"Item::getCY(void)",
|
||||
"Item::isOn(uint16)",
|
||||
"Item::getFootpad(sint16&,sint16&,sint16&)",
|
||||
"Actor::isDead(void)",
|
||||
"Actor::createNPCCru()",
|
||||
"Actor::I_setActivity()",
|
||||
"KeypadGump::I_showKeypad()",
|
||||
"Item::andStatus(void)",
|
||||
|
||||
"ComputerGump::I_readComputer()",
|
||||
"UCMachine::I_numToStr()",
|
||||
"IntrinsicReturn0",
|
||||
"Actor::I_getDir()",
|
||||
"Item::getQHi(void)",
|
||||
"Item::setQuality(sint16)",
|
||||
"Item::hurl(sint16,sint16,sint16,sint16)",
|
||||
"Actor::I_addHp()",
|
||||
"Intrinsic00C8()",
|
||||
"Item::callEvent0A(sint16)",
|
||||
"Item::setBroken()",
|
||||
"Item::isOn(uint16)",
|
||||
"Actor::I_teleport()",
|
||||
"Item::I_getDirFromTo16()",
|
||||
"Item::getQHi(void)",
|
||||
"Item::isOn(uint16)",
|
||||
|
||||
"Actor::I_isInCombat()",
|
||||
"Actor::I_getNPCDataField0x4()",
|
||||
"Actor::I_setCombatTactic()",
|
||||
"Actor::I_setDead())",
|
||||
"CameraProcess::I_getCameraY()",
|
||||
"Actor::I_getEquip()",
|
||||
"Actor::I_setEquip()",
|
||||
"Actor::I_getDefaultActivity0()",
|
||||
"Actor::I_getDefaultActivity1()",
|
||||
"Actor::I_getDefaultActivity2()",
|
||||
"Actor::I_getLastAnimSet()",
|
||||
"Actor::I_isInCombat()",
|
||||
"Item::getQLo(void)",
|
||||
"Item::getQHi(void)",
|
||||
"Item::getNpcNum(void)",
|
||||
"Intrinsic00DF()",
|
||||
|
||||
"Item::hurl(sint16,sint16,sint16,sint16)",
|
||||
"Actor::I_setDead()",
|
||||
"Item::getQLo(void)",
|
||||
"Item::getCY(void)",
|
||||
"Item::getNpcNum(void)",
|
||||
"Item::hurl(sint16,sint16,sint16,sint16)",
|
||||
"Item::getNpcNum(void)",
|
||||
"Item::hurl(sint16,sint16,sint16,sint16)",
|
||||
"Item::getNpcNum(void)",
|
||||
"Item::hurl(sint16,sint16,sint16,sint16)",
|
||||
"Item::getNpcNum(void)",
|
||||
"Item::hurl(sint16,sint16,sint16,sint16)",
|
||||
"Item::getNpcNum(void)",
|
||||
"Item::hurl(sint16,sint16,sint16,sint16)",
|
||||
"Item::getNpcNum(void)",
|
||||
"Item::hurl(sint16,sint16,sint16,sint16)",
|
||||
|
||||
"Item::getNpcNum(void)",
|
||||
"Item::hurl(sint16,sint16,sint16,sint16)",
|
||||
"Item::getNpcNum(void)",
|
||||
"Item::hurl(sint16,sint16,sint16,sint16)",
|
||||
"Item::getNpcNum(void)",
|
||||
"Item::hurl(sint16,sint16,sint16,sint16)",
|
||||
"Item::getNpcNum(void)",
|
||||
"Item::andStatus(void)",
|
||||
"Actor::I_setDead()",
|
||||
"Item::getQLo(void)",
|
||||
"Actor::I_setDead()",
|
||||
"Dtable::I_getMaxHPForNPC()",
|
||||
"Actor::I_setHP()",
|
||||
"Item::getQLo(void)",
|
||||
"Intrinsic00FE()",
|
||||
"Item::hurl(sint16,sint16,sint16,sint16)",
|
||||
|
||||
"Item::andStatus(void)",
|
||||
"Item::isOn(uint16)",
|
||||
"Actor::isDead(void)",
|
||||
"Actor::I_setActivity()",
|
||||
"Item::getQHi(void)",
|
||||
"Actor::I_getLastAnimSet()",
|
||||
"Actor::I_setDead()",
|
||||
"Item::getQLo(void)",
|
||||
"Item::isOn(uint16)",
|
||||
"Item::getQHi(void)",
|
||||
"Item::isOn(uint16)",
|
||||
"Item::getQHi(void)",
|
||||
"Item::hurl(sint16,sint16,sint16,sint16)",
|
||||
"Item::getNpcNum(void)",
|
||||
"Item::getCY(void)",
|
||||
"Item::hurl(sint16,sint16,sint16,sint16)",
|
||||
|
||||
"Item::isOn(uint16)",
|
||||
"MainActor::I_hasKeycard()",
|
||||
"IntrinsicReturn0",
|
||||
"Actor::isDead(void)",
|
||||
"Actor::I_clrImmortal()",
|
||||
"UCMachine::I_numToStr()",
|
||||
"Item::getQHi(void)",
|
||||
"Actor::I_setActivity()",
|
||||
"Item::andStatus(void)",
|
||||
"Item::getNpcNum(void)",
|
||||
"Item::andStatus(void)",
|
||||
"Item::getNpcNum(void)",
|
||||
"Item::I_isCrusTypeNPC()",
|
||||
"Item::andStatus(void)",
|
||||
"Item::getNpcNum(void)",
|
||||
"Item::AvatarStoleSomehting(uint16)",
|
||||
|
||||
"Item::andStatus(void)",
|
||||
"Item::getNpcNum(void)",
|
||||
"Item::getQ(void)",
|
||||
"Item::setQ(uint)",
|
||||
"Item::andStatus(void)",
|
||||
"Item::getNpcNum(void)",
|
||||
"Item::andStatus(void)",
|
||||
"Item::getNpcNum(void)",
|
||||
"Item::andStatus(void)",
|
||||
"Item::getNpcNum(void)",
|
||||
"Item::andStatus(void)",
|
||||
"Item::getNpcNum(void)",
|
||||
"Item::andStatus(void)",
|
||||
"Item::getNpcNum(void)",
|
||||
"Actor::I_getDir()",
|
||||
"Item::andStatus(void)",
|
||||
|
||||
"Item::getNpcNum(void)",
|
||||
"Intrinsic0131()",
|
||||
"Item::andStatus(void)",
|
||||
"Item::hurl(sint16,sint16,sint16,sint16)",
|
||||
"Item::andStatus(void)",
|
||||
"Camera::getY(void)",
|
||||
"Camera::getZ(void)",
|
||||
"Intrinsic0137()",
|
||||
"Actor::I_clrInCombat()",
|
||||
"Item::getTypeFlagCrusader(sint16)",
|
||||
"Item::getNpcNum(void)",
|
||||
"Item::hurl(sint16,sint16,sint16,sint16)",
|
||||
"Item::getCY(void)",
|
||||
"Item::getCZ(void)",
|
||||
"Item::setFrame(uint16)",
|
||||
"AudioProcess::I_playAmbientSFX()",
|
||||
|
||||
"AudioProcess::I_isSFXPlaying()",
|
||||
"World::I_clrAlertActiveRegret()",
|
||||
"PaletteFaderProcess::I_fadeToGivenColor()",
|
||||
"Actor::isDead(void)",
|
||||
"Actor::I_setDead()",
|
||||
"Intrinsic0145()",
|
||||
"PaletteFaderProcess::I_jumpToAllGrey()",
|
||||
"Item::I_getFamilyOfType()",
|
||||
"Item::getNpcNum(void)",
|
||||
"Item::getQLo(void)",
|
||||
"Item::andStatus(void)",
|
||||
"Ultima8Engine::getCurrentTimerTick()",
|
||||
"World::I_setAlertActiveRegret()",
|
||||
"Ultima8Engine::I_getAvatarInStasis()",
|
||||
"MainActor::I_addItemCru()",
|
||||
"Egg::getEggXRange(void)",
|
||||
|
||||
"Actor::I_clrInCombat()",
|
||||
"Intrinsic0072()",
|
||||
"Item::setFrame(uint16)",
|
||||
"UCMachine::I_numToStr()",
|
||||
"Actor::I_getDir()",
|
||||
"UCMachine::I_numToStr()",
|
||||
"Item::isOn(uint16)",
|
||||
"Actor::I_getDir()",
|
||||
"Actor::I_setDead()",
|
||||
"Item::getQHi(void)",
|
||||
"Item::getQLo(void)",
|
||||
"UCMachine::I_numToStr()",
|
||||
"Actor::I_getDir()",
|
||||
"Intrinsic015D()",
|
||||
]
|
||||
|
||||
312
tools/unkcoffs/rem_functions.txt
Normal file
312
tools/unkcoffs/rem_functions.txt
Normal file
|
|
@ -0,0 +1,312 @@
|
|||
World::I_getAlertActive
|
||||
Item::I_getFrame
|
||||
Item::I_setFrame
|
||||
Item::I_getMapArray
|
||||
Item::I_getStatus
|
||||
Item::I_orStatus
|
||||
Item::I_equip
|
||||
Item::I_isPartlyOnScreen
|
||||
Actor::I_isNPC
|
||||
Item::I_getZ
|
||||
Item::I_destroy
|
||||
Actor::I_getUnkByte
|
||||
Ultima8Engine::I_setAvatarInStasis
|
||||
Item::I_getDirToItem
|
||||
Actor::I_turnToward
|
||||
MovieGump::I_playMovieCutsceneAlt
|
||||
Item::I_getQLo
|
||||
Actor::I_getMap
|
||||
MusicProcess::I_playMusic
|
||||
Item::I_getX
|
||||
Item::I_getY
|
||||
AudioProcess::I_playSFXCru
|
||||
Item::I_getShape
|
||||
Item::I_explode
|
||||
UCMachine::I_rndRange
|
||||
Item::I_legalCreateAtCoords
|
||||
Item::I_andStatus
|
||||
World::I_getControlledNPCNum
|
||||
Actor::I_getDir
|
||||
Actor::I_getLastAnimSet
|
||||
Item::I_fireWeapon
|
||||
Item::I_create
|
||||
Item::I_popToCoords
|
||||
Actor::I_setDead
|
||||
Item::I_push
|
||||
Item::I_getEtherealTop
|
||||
Item::I_setShape
|
||||
Item::I_touch
|
||||
Item::I_getQHi
|
||||
Item::I_getClosestDirectionInRange
|
||||
Item::I_hurl
|
||||
World::I_gameDifficulty
|
||||
AudioProcess::I_playAmbientSFXCru
|
||||
Item::I_getQLo
|
||||
Item::I_inFastArea
|
||||
Item::I_setQHi
|
||||
Item::I_legalMoveToPoint
|
||||
CurrentMap::I_canExistAtPoint
|
||||
Item::I_pop
|
||||
Item::I_andStatus
|
||||
Item::I_receiveHit
|
||||
Actor::I_isBusy
|
||||
Item::I_getDirFromTo16
|
||||
Actor::I_isKneeling
|
||||
Actor::I_doAnim
|
||||
MainActor::I_addItemCru
|
||||
AudioProcess::I_stopSFXCru
|
||||
Actor::I_isDead
|
||||
AudioProcess::I_isSFXPlayingForObject
|
||||
Item::I_setQLo
|
||||
Item::I_getFamily
|
||||
Container::I_destroyContents
|
||||
Item::I_fall
|
||||
Egg::I_getEggId
|
||||
CameraProcess::I_moveTo
|
||||
CameraProcess::I_setCenterOn
|
||||
Item::I_getRangeIfVisible
|
||||
AudioProcess::I_playSFXCru
|
||||
Item::I_isOn
|
||||
Item::I_getQHi
|
||||
Item::I_isOn
|
||||
Item::I_getQHi
|
||||
Item::I_isOn
|
||||
Item::I_getQHi
|
||||
Item::I_isOn
|
||||
Item::I_getQHi
|
||||
Item::I_isOn
|
||||
Item::I_getQHi
|
||||
Item::I_isOn
|
||||
Item::I_getQHi
|
||||
Actor::I_getCurrentActivityNo
|
||||
Actor::I_clrInCombat
|
||||
Actor::I_setDefaultActivity0
|
||||
Actor::I_setDefaultActivity1
|
||||
Actor::I_setDefaultActivity2
|
||||
Actor::I_setActivity
|
||||
World::I_setControlledNPCNum
|
||||
Item::I_getSurfaceWeight
|
||||
Item::I_isCentreOn
|
||||
Item::I_setFrame
|
||||
Actor::I_getLastAnimSet
|
||||
Item::I_legalCreateAtPoint
|
||||
Item::I_getPoint
|
||||
CruStatusGump::I_hideStatusGump
|
||||
MovieGump::I_playMovieOverlay
|
||||
CruStatusGump::I_showStatusGump
|
||||
Actor::I_setDead
|
||||
Actor::I_createActor
|
||||
I_forceCameraUpdate
|
||||
Actor::I_teleport
|
||||
Item::I_getFootpadData
|
||||
Item::I_isInNpc
|
||||
Item::I_getQLo
|
||||
Item::I_getNpcNum
|
||||
Item::I_setNpcNum
|
||||
Item::I_andStatus
|
||||
Item::I_move
|
||||
UCMachine::I_true
|
||||
Kernel::I_resetRef
|
||||
Item::I_getNpcNum
|
||||
Item::I_andStatus
|
||||
Item::I_isCompletelyOn
|
||||
Ultima8Engine::I_getUnkCrusaderFlag
|
||||
Ultima8Engine::I_setUnkCrusaderFlag
|
||||
Ultima8Engine::I_setCruStasis
|
||||
Actor::I_setDead
|
||||
Ultima8Engine::I_clrUnkCrusaderFlag
|
||||
Ultima8Engine::I_clrCruStasis
|
||||
AudioProcess::I_stopSFXCru
|
||||
PaletteFaderProcess::I_fadeToBlack
|
||||
MainActor::I_clrKeycards
|
||||
MainActor::I_teleportToEgg
|
||||
PaletteFaderProcess::I_fadeToGamePal
|
||||
Actor::I_clrImmortal
|
||||
Actor::I_getHp
|
||||
Actor::I_setActivity
|
||||
Item::I_getQuality
|
||||
Item::I_setQuality
|
||||
Item::I_use
|
||||
MainActor::I_getMaxEnergy
|
||||
Actor::I_getMana
|
||||
Actor::I_setMana
|
||||
Item::I_getQLo
|
||||
Actor::I_setImmortal
|
||||
CameraProcess::I_getCameraX
|
||||
CameraProcess::I_getCameraY
|
||||
Item::I_setMapArray
|
||||
Item::I_getNpcNum
|
||||
Item::I_shoot
|
||||
Item::I_enterFastArea
|
||||
Item::I_setBroken
|
||||
Item::I_hurl
|
||||
Item::I_getNpcNum
|
||||
PaletteFaderProcess::I_jumpToAllBlack
|
||||
MusicProcess::I_stopMusic
|
||||
I_PauseCycler
|
||||
MovieGump::I_playMovieCutsceneAlt
|
||||
I_ResumeCycler
|
||||
Game::I_playCredits
|
||||
Ultima8Engine::I_moveKeyDownRecently
|
||||
MainActor::I_teleportToEgg
|
||||
PaletteFaderProcess::I_jumpToGreyScale
|
||||
World::I_resetVargasShield
|
||||
Item::I_andStatus
|
||||
PaletteFaderProcess::I_jumpToNormalPalette
|
||||
PaletteFaderProcess::I_fadeToGamePal
|
||||
PaletteFaderProcess::I_fadeToGamePal
|
||||
PaletteFaderProcess::I_fadeToBlack
|
||||
PaletteFaderProcess::I_fadeToBlack
|
||||
PaletteFaderProcess::I_fadeToGivenColor
|
||||
Actor::I_setDead
|
||||
Item::I_getQLo
|
||||
Item::I_getUnkEggType
|
||||
Egg::I_setEggXRange
|
||||
Item::I_overlaps
|
||||
Item::I_isOn
|
||||
UCMachine::I_true
|
||||
Egg::I_getEggXRange
|
||||
Actor::I_setDead
|
||||
MovieGump::I_playMovieCutsceneAlt
|
||||
AudioProcess::I_playSFX
|
||||
Actor::I_isFalling
|
||||
Item::I_getFamilyOfType
|
||||
Item::I_getNpcNum
|
||||
Item::I_getQLo
|
||||
Item::I_getQHi
|
||||
Item::I_unequip
|
||||
Item::I_avatarStoleSomething
|
||||
Item::I_andStatus
|
||||
Ultima8Engine::I_getCurrentTimerTick
|
||||
World::I_setAlertActive
|
||||
Item::I_equip
|
||||
World::I_clrAlertActive
|
||||
Ultima8Engine::I_getAvatarInStasis
|
||||
MainActor::I_addItemCru
|
||||
Actor::I_getLastAnimSet
|
||||
Item::I_setQuality
|
||||
CurrentMap::I_canExistAt
|
||||
Item::I_isOn
|
||||
Item::I_hurl
|
||||
Item::I_getQHi
|
||||
Item::I_andStatus
|
||||
Item::I_hurl
|
||||
Item::I_andStatus
|
||||
Item::I_hurl
|
||||
Item::I_andStatus
|
||||
KeypadGump::I_showKeypad
|
||||
Item::I_isOn
|
||||
SpriteProcess::I_createSprite
|
||||
Item::I_getDirFromItem
|
||||
Item::I_hurl
|
||||
Item::I_getQHi
|
||||
Actor::I_addHp
|
||||
MainActor::I_switchMap
|
||||
Actor::I_isInCombat
|
||||
Actor::I_setActivity
|
||||
UCMachine::I_true
|
||||
Item::I_setQAndCombine
|
||||
Item::I_use
|
||||
AudioProcess::I_stopAllSFX
|
||||
MovieGump::I_playMovieCutscene
|
||||
I_clearKeyboardState
|
||||
AudioProcess::I_playSFX
|
||||
Item::I_use
|
||||
CameraProcess::I_getCameraZ
|
||||
Actor::I_getLastAnimSet
|
||||
Actor::I_setDead
|
||||
Item::I_getQLo
|
||||
PaletteFaderProcess::I_jumpToAllWhite
|
||||
Actor::I_setActivity
|
||||
Item::I_isOn
|
||||
Actor::I_getLastActivityNo
|
||||
Actor::I_setCombatTactic
|
||||
Actor::I_getEquip
|
||||
Actor::I_setEquip
|
||||
Actor::I_getDefaultActivity0
|
||||
Actor::I_getDefaultActivity1
|
||||
Actor::I_getDefaultActivity2
|
||||
Actor::I_getLastAnimSet
|
||||
Actor::I_setTarget
|
||||
Actor::I_setUnkByte
|
||||
Actor::I_setDead
|
||||
Item::I_cast
|
||||
Item::I_andStatus
|
||||
Item::I_getQLo
|
||||
MainActor::I_getNumberOfCredits
|
||||
Item::I_popToEnd
|
||||
Item::I_popToContainer
|
||||
BatteryChargerProcess::I_create
|
||||
Kernel::I_getNumProcesses
|
||||
Item::I_getQHi
|
||||
Item::I_isOn
|
||||
Actor::I_setActivity
|
||||
Item::I_getQHi
|
||||
Item::I_getQ
|
||||
Item::I_setQ
|
||||
CruHealerProcess::I_create
|
||||
Item::I_hurl
|
||||
Item::I_getNpcNum
|
||||
Item::I_hurl
|
||||
Item::I_isOn
|
||||
Item::I_getQHi
|
||||
Item::I_andStatus
|
||||
MainActor::I_hasKeycard
|
||||
ComputerGump::I_readComputer
|
||||
UCMachine::I_numToStr
|
||||
Item::I_getNpcNum
|
||||
Item::I_andStatus
|
||||
Item::I_getNpcNum
|
||||
Item::I_isCrusTypeNPC
|
||||
Item::I_andStatus
|
||||
Item::I_getNpcNum
|
||||
Item::I_andStatus
|
||||
Item::I_getNpcNum
|
||||
Item::I_andStatus
|
||||
Item::I_getNpcNum
|
||||
Item::I_andStatus
|
||||
Item::I_getNpcNum
|
||||
Item::I_andStatus
|
||||
Item::I_getNpcNum
|
||||
Item::I_andStatus
|
||||
Item::I_getNpcNum
|
||||
Item::I_andStatus
|
||||
Item::I_getNpcNum
|
||||
Actor::I_getDir
|
||||
UCMachine::I_numToStr
|
||||
Item::I_andStatus
|
||||
Item::I_getNpcNum
|
||||
Item::I_fireDistance
|
||||
Item::I_andStatus
|
||||
Item::I_hurl
|
||||
Item::I_setBroken
|
||||
Item::I_andStatus
|
||||
Item::I_getTypeFlag
|
||||
Item::I_getNpcNum
|
||||
Item::I_hurl
|
||||
Item::I_getCY
|
||||
Item::I_getCZ
|
||||
Item::I_getCX
|
||||
Actor::I_getDir
|
||||
Actor::I_isDead
|
||||
Item::I_getNpcNum
|
||||
Actor::I_getLastAnimSet
|
||||
Item::I_setQuality
|
||||
UCMachine::I_numToStr
|
||||
Item::I_getDirToCoords
|
||||
Item::I_andStatus
|
||||
Item::I_getNpcNum
|
||||
Item::I_setBroken
|
||||
Item::I_getCY
|
||||
Item::I_isOn
|
||||
Item::I_getFootpadData
|
||||
Actor::I_isDead
|
||||
Actor::I_createActorCru
|
||||
Actor::I_clrImmortal
|
||||
Actor::I_setActivity
|
||||
Item::I_andStatus
|
||||
Item::I_getQHi
|
||||
WeaselGump::I_showWeaselGump
|
||||
Actor::I_setDead
|
||||
UNUSEDInt136
|
||||
UNUSEDInt137
|
||||
314
tools/unkcoffs/rem_intrinsic_dump.txt
Normal file
314
tools/unkcoffs/rem_intrinsic_dump.txt
Normal file
|
|
@ -0,0 +1,314 @@
|
|||
Code005 1020:0861: (Int0CB) void I_createMapJumpProcess(int16 mapnum)
|
||||
Code006 1028:0605: (Int097) void PaletteFaderProcess:I_setScreenGreyscale(void)
|
||||
Code007 1030:03b8: (Int0B3) int32 I_getCurrentTimerTick(void)
|
||||
Code008 1038:12a6: (Int028) int16 Item::I_hurl(Item *,8 bytes)
|
||||
Code008 1038:12a6: (Int08D) int16 Item::I_hurl(Item *,8 bytes)
|
||||
Code008 1038:12a6: (Int0BD) int16 Item::I_hurl(Item *,8 bytes)
|
||||
Code008 1038:12a6: (Int0C0) int16 Item::I_hurl(Item *,8 bytes)
|
||||
Code008 1038:12a6: (Int0C2) int16 Item::I_hurl(Item *,8 bytes)
|
||||
Code008 1038:12a6: (Int0C8) int16 Item::I_hurl(Item *,8 bytes)
|
||||
Code008 1038:12a6: (Int0F7) int16 Item::I_hurl(Item *,8 bytes)
|
||||
Code008 1038:12a6: (Int0F9) int16 Item::I_hurl(Item *,8 bytes)
|
||||
Code008 1038:12a6: (Int118) int16 Item::I_hurl(Item *,8 bytes)
|
||||
Code008 1038:12a6: (Int11D) int16 Item::I_hurl(Item *,8 bytes)
|
||||
Code008 1038:1334: (Int03E) void Item::I_fallProbably_03E(Item *)
|
||||
Code009 1040:0079: (Int136) void UNUSEDInt136()
|
||||
Code010 1048:00a1: (Int06B) int16 Game::I_isViolenceEnabled(void)
|
||||
Code010 1048:00c1: (Int0CE) int16 Game::I_isReleaseBuild(void)
|
||||
|
||||
Code019 1090:04ce: (Int079) int16 MainActor::I_teleportToEgg(int, int, int)
|
||||
Code019 1090:04f7: (Int096) int16 MainActor::I_teleportToEgg(int, int)
|
||||
Code019 1090:051d: (Int0A7) int16 Egg::I_getEggXRange(Egg *)
|
||||
Code019 1090:055b: (Int0A3) void Egg::I_setEggXRange(Egg *, int)
|
||||
Code019 1090:05c5: (Int03F) int16 Egg::I_getEggId(Item *)
|
||||
Code021 10a0:013e: (Int013) int16 Item::I_getX(Item *)
|
||||
Code021 10a0:0176: (Int014) int16 Item::I_getY(Item *)
|
||||
Code021 10a0:0266: (Int009) byte Item::I_getZ(Item *)
|
||||
Code021 10a0:029a: (Int120) int16 Item::I_getCX(Item *)
|
||||
Code021 10a0:02de: (Int11E) int16 Item::I_getCY(Item *)
|
||||
Code021 10a0:02de: (Int12B) int16 IItem::I_getCY(Item *)
|
||||
Code021 10a0:0322: (Int11F) byte Item::I_getCZ(Item *)
|
||||
Code021 10a0:0602: (Int057) int16 Item::I_getSurfaceWeight(Item *)
|
||||
Code021 10a0:068f: (Int016) int16 Item::I_getShape(Item *)
|
||||
Code021 10a0:06a5: (Int024) void Item::I_setShape(Item *, int16 shapeno)
|
||||
Code021 10a0:07b4: (Int001) int16 Item::I_getFrame(Item *)
|
||||
Code021 10a0:0810: (Int002) void Item::I_setFrame(Item *, frame)
|
||||
Code021 10a0:0810: (Int059) void Item::I_setFrame(Item *, frame)
|
||||
Code021 10a0:0c24: (Int068) void Item::I_setNpcNum(Item *, uint16 npcnum)
|
||||
Code021 10a0:0c40: (Int067) int16 Item::I_getNPCNum(Item *)
|
||||
Code021 10a0:0c40: (Int06D) int16 Item::I_getNPCNum(Item *)
|
||||
Code021 10a0:0c40: (Int089) int16 Item::I_getNpcNum(Item *)
|
||||
Code021 10a0:0c40: (Int08E) int16 Item::I_getNPCNum(Item *)
|
||||
Code021 10a0:0c40: (Int0AD) int16 Item::I_getNPCNum(Item *)
|
||||
Code021 10a0:0c40: (Int0F8) int16 Item::I_getNPCNum(Item *)
|
||||
Code021 10a0:0c40: (Int100) int16 Item::I_getNPCNum(Item *)
|
||||
Code021 10a0:0c40: (Int102) int16 Item::I_getNPCNum(Item *)
|
||||
Code021 10a0:0c40: (Int105) int16 Item::I_getNPCNum(Item *)
|
||||
Code021 10a0:0c40: (Int107) int16 Item::I_getNPCNum(Item *)
|
||||
Code021 10a0:0c40: (Int109) int16 Item::I_getNPCNum(Item *)
|
||||
Code021 10a0:0c40: (Int10B) int16 Item::I_getNPCNum(Item *)
|
||||
Code021 10a0:0c40: (Int10D) int16 Item::I_getNPCNum(Item *)
|
||||
Code021 10a0:0c40: (Int10F) int16 Item::I_getNPCNum(Item *)
|
||||
Code021 10a0:0c40: (Int111) int16 Item::I_getNPCNum(Item *)
|
||||
Code021 10a0:0c40: (Int115) int16 Item::I_getNPCNum(Item *)
|
||||
Code021 10a0:0c40: (Int11C) int16 Item::I_getNPCNum(Item *)
|
||||
Code021 10a0:0c40: (Int123) int16 Item::I_getNPCNum(Item *)
|
||||
Code021 10a0:0c40: (Int129) int16 Item::I_getNPCNum(Item *)
|
||||
Code021 10a0:0c5c: (Int088) void Item::I_setMapArray(Item *, uint16 maparray)
|
||||
Code021 10a0:0c78: (Int003) int16 Item::I_getMapArray(Item *)
|
||||
Code021 10a0:0c94: (Int0F4) int16 Item::I_getQ(Item *)
|
||||
Code021 10a0:0caa: (Int07E) int16 Item::I_getQuality(Item *)
|
||||
Code021 10a0:0cee: (Int07F) void Item::I_setQuality(Item *, int)
|
||||
Code021 10a0:0cee: (Int0BA) void Item::I_setQuality(Item *, int)
|
||||
Code021 10a0:0cee: (Int125) void Item::I_setQuality(Item *, int)
|
||||
Code021 10a0:0d31: (Int0A2) int16 Item::I_getUnkEggType(Item *)
|
||||
Code021 10a0:0dd1: (Int0CF) void Item::I_setQAndCombine(Item *, int16 q)
|
||||
Code021 10a0:0f5f: (Int0F5) void Item::I_setQ(Item *, uint16 q)
|
||||
Code021 10a0:0fc4: (Int03C) int16 Item::I_getItemFamily(Item *)
|
||||
Code021 10a0:0fef: (Int11B) byte Item::I_getTypeFlag(Item *, uint16 shift)
|
||||
Code021 10a0:1038: (Int004) int16 Item::I_getStatus(Item *)
|
||||
Code021 10a0:104e: (Int05B) byte Item::I_legalCreateAtPoint(Item *, int16 shape, int16 frame, Point *)
|
||||
Code021 10a0:10db: (Int019) byte Item::I_legalCreateAtCoords(Item *, int16 shapeno, int16 frame, int16 x, int16 y, int16 z)
|
||||
Code021 10a0:11e7: (Int01F) byte Item::I_create(Item *, uint16 shapenum, uint16 framenum)
|
||||
Code021 10a0:1311: (Int020) void Item::I_popToCoords(Item *, uint16 x, uint16 y, uint16 z)
|
||||
Code021 10a0:1328: (Int0ED) void Item::I_popToContainer(Item*, int)
|
||||
Code021 10a0:1338: (Int030) void Item::I_pop(Item *)
|
||||
Code021 10a0:1342: (Int0EC) void Item::I_popToEnd(Item*, int)
|
||||
Code021 10a0:1352: (Int022) void I_push(Item *)
|
||||
Code021 10a0:1365: (Int00A) void Item::I_destroy(Item *)
|
||||
Code021 10a0:14af: (Int03D) void Container::I_destroyContents(Item *)
|
||||
Code021 10a0:1531: (Int06A) void Item::I_move(Item *, int16 x, int16 y, uint16 z)
|
||||
Code021 10a0:174d: (Int02E) byte I_legalMoveToPoint(Item *, Point *, int16 force)
|
||||
Code021 10a0:19e9: (Int127) byte Item::I_getDirToCoords(Item *, uin16 x, uint16 y)
|
||||
Code021 10a0:1a3f: (Int0C7) byte Item::I_getDirFromItem(Item *, itemno)
|
||||
Code021 10a0:1a74: (Int00D) byte Item::I_getDirToItem(Item *, itemno)
|
||||
Code021 10a0:1aa9: (Int064) void Item::I_getFootpad(Item *, uint *, uint *, uint *)
|
||||
Code021 10a0:1aa9: (Int12D) void Item::I_getFootpadData(Item *, uint *, uint *, uint *)
|
||||
Code021 10a0:1cc5: (Int0A4) byte Item::I_overlaps(Item *, uint16 unk)
|
||||
Code021 10a0:1eea: (Int044) byte Item::I_IsOn(Item *, uint16 itemno)
|
||||
Code021 10a0:1eea: (Int046) byte Item::I_IsOn(Item *, uint16 itemno))
|
||||
Code021 10a0:1eea: (Int048) byte Item::I_IsOn(Item *, uint16 itemno)
|
||||
Code021 10a0:1eea: (Int04A) byte Item::I_IsOn(Item *, uint16 itemno)
|
||||
Code021 10a0:1eea: (Int04C) byte Item::I_IsOn(Item *, uint16 itemno)
|
||||
Code021 10a0:1eea: (Int04E) byte Item::I_IsOn(Item *, uint16 itemno)
|
||||
Code021 10a0:1eea: (Int0A5) byte Item::I_isOn(Item *, itemno)
|
||||
Code021 10a0:1eea: (Int0BC) byte Item::I_isOn(Item *, itemno)
|
||||
Code021 10a0:1eea: (Int0C5) byte Item::I_isOn(Item *, itemno)
|
||||
Code021 10a0:1eea: (Int0DC) byte Item::I_isOn(Item *, itemno)
|
||||
Code021 10a0:1eea: (Int0F1) byte Item::I_isOn(Item *, itemno)
|
||||
Code021 10a0:1eea: (Int0FA) byte Item::I_isOn(Item *, itemno)
|
||||
Code021 10a0:1eea: (Int12C) byte Item::I_isOn(Item *, itemno)
|
||||
Code021 10a0:1f5f: (Int06F) byte Item::I_isCompletelyOn(Item *, uint16 other)
|
||||
Code021 10a0:2436: (Int05C) void Item::I_getPoint(Item *, Point *)
|
||||
Code021 10a0:2486: (Int008) byte Actor::I_isNPC(Item *)
|
||||
Code021 10a0:24b5: (Int065) byte Item::I_isInNPC(Item *)
|
||||
Code021 10a0:2514: (Int025) void Item::I_touch(Item *)
|
||||
Code021 10a0:2572: (Int005) void Item::I_orStatus(Item *, uint16 flags)
|
||||
Code021 10a0:258b: (Int01A) void Item::I_andStatus(Item *, uint16 status)
|
||||
Code021 10a0:258b: (Int031) void Item::I_andStatus(Item *, uint16 status)
|
||||
Code021 10a0:258b: (Int069) void Item::I_andStatus(Item *, uint16 status)
|
||||
Code021 10a0:258b: (Int06E) void Item::I_andStatus(Item *, uint16 status)
|
||||
Code021 10a0:258b: (Int099) void Item::I_andStatus(Item *, uint16 status)
|
||||
Code021 10a0:258b: (Int0B2) void Item::I_andStatus(Item *, uint16 status)
|
||||
Code021 10a0:258b: (Int0BF) void Item::I_andStatus(Item *, uint16 status)
|
||||
Code021 10a0:258b: (Int0C1) void Item::I_andStatus(Item *, uint16 status)
|
||||
Code021 10a0:258b: (Int0C3) void Item::I_andStatus(Item *, uint16 status)
|
||||
Code021 10a0:258b: (Int0E9) void Item::I_andStatus(Item *, uint16 status)
|
||||
Code021 10a0:258b: (Int0FC) void Item::I_andStatus(Item *, uint16 status)
|
||||
Code021 10a0:258b: (Int101) void Item::I_andStatus(Item *, uint16 status)
|
||||
Code021 10a0:258b: (Int104) void Item::I_andStatus(Item *, uint16 status)
|
||||
Code021 10a0:258b: (Int106) void Item::I_andStatus(Item *, uint16 status)
|
||||
Code021 10a0:258b: (Int108) void Item::I_andStatus(Item *, uint16 status)
|
||||
Code021 10a0:258b: (Int10A) void Item::I_andStatus(Item *, uint16 status)
|
||||
Code021 10a0:258b: (Int10C) void Item::I_andStatus(Item *, uint16 status)
|
||||
Code021 10a0:258b: (Int10E) void Item::I_andStatus(Item *, uint16 status)
|
||||
Code021 10a0:258b: (Int110) void Item::I_andStatus(Item *, uint16 status)
|
||||
Code021 10a0:258b: (Int114) void Item::I_andStatus(Item *, uint16 status)
|
||||
Code021 10a0:258b: (Int117) void Item::I_andStatus(Item *, uint16 status)
|
||||
Code021 10a0:258b: (Int11A) void Item::I_andStatus(Item *, uint16 status)
|
||||
Code021 10a0:258b: (Int128) void Item::I_andStatus(Item *, uint16 status)
|
||||
Code021 10a0:258b: (Int132) void Item::I_andStatus(Item *, int16 status)
|
||||
Code021 10a0:25d0: (Int08C) void Item::I_setIsBroken(Item *)
|
||||
Code021 10a0:25d0: (Int119) void Item::I_setIsBroken(Item *)
|
||||
Code021 10a0:25d0: (Int12A) void Item::I_setIsBroken(Item *)
|
||||
Code021 10a0:2667: (Int080) int16 Item::I_use(Item *)
|
||||
Code021 10a0:2667: (Int0D0) int16 Item::I_use(Item *)
|
||||
Code021 10a0:2667: (Int0D5) int16 Item::I_use(Item *)
|
||||
Code021 10a0:2a35: (Int006) int16 Item::I_equip(6 bytes)
|
||||
Code021 10a0:2a35: (Int0B5) int16 Item::I_equip(6 bytes)
|
||||
Code021 10a0:2a68: (Int0B0) int16 Item::I_unequip(6 bytes)
|
||||
Code021 10a0:2b30: (Int08B) int16 Item::I_enterFastArea(Item *)
|
||||
Code021 10a0:2f3e: (Int0E8) int16 Item::I_cast(6 bytes)
|
||||
Code021 10a0:2fda: (Int0B1) int16 Item::I_spawnUsecodeEvent0x13(Item *, 2 bytes)
|
||||
Code021 10a0:383e: (Int026) int16 Item::I_getQHi(Item *)
|
||||
Code021 10a0:383e: (Int045) int16 Item::I_getQHi(Item *)
|
||||
Code021 10a0:383e: (Int047) int16 Item::I_getQHi(Item *)
|
||||
Code021 10a0:383e: (Int049) int16 Item::I_getQHi(Item *)
|
||||
Code021 10a0:383e: (Int04B) int16 Item::I_getQHi(Item *)
|
||||
Code021 10a0:383e: (Int04D) int16 Item::I_getQHi(Item *)
|
||||
Code021 10a0:383e: (Int04F) int16 Item::I_getQHi(Item *)
|
||||
Code021 10a0:383e: (Int0AF) int16 Item::I_getQHi(Item *)
|
||||
Code021 10a0:383e: (Int0BE) int16 Item::I_getQHi(Item *)
|
||||
Code021 10a0:383e: (Int0C9) int16 Item::I_getQHi(Item *)
|
||||
Code021 10a0:383e: (Int0F0) int16 Item::I_getQHi(Item *)
|
||||
Code021 10a0:383e: (Int0F3) int16 Item::I_getQHi(Item *)
|
||||
Code021 10a0:383e: (Int0FB) int16 Item::I_getQHi(Item *)
|
||||
Code021 10a0:383e: (Int133) int16 Item::I_getQHi(Item *)
|
||||
Code021 10a0:385a: (Int02D) void Item::I_setQHi(Item *, uint16 qhi)
|
||||
Code021 10a0:3889: (Int010) int16 Item::I_getQLo(Item *)
|
||||
Code021 10a0:3889: (Int02B) int16 Item::I_getQLo(Item *)
|
||||
Code021 10a0:3889: (Int066) int16 Item::I_getQLo(Item *)
|
||||
Code021 10a0:3889: (Int084) int16 Item::I_getQLo(Item *)
|
||||
Code021 10a0:3889: (Int0A1) int16 Item::I_getQLo(Item *)
|
||||
Code021 10a0:3889: (Int0AE) int16 Item::I_getQLo(Item *)
|
||||
Code021 10a0:3889: (Int0D9) int16 Item::I_getQLo(Item *)
|
||||
Code021 10a0:3889: (Int0EA) int16 Item::I_getQLo(Item *)
|
||||
Code021 10a0:38a2: (Int03B) void Item::I_setQLo(Item *, int16 qlo)
|
||||
Code021 10a0:38d1: (Int08A) void Intrinsic08A(12 bytes)
|
||||
Code021 10a0:3934: (Int015) void AudioProcess::I_playSFXCru(Item *, uint16 sfxnum)
|
||||
Code021 10a0:3953: (Int02A) void AudioProcess::I_playAmbientSFXCru(Item *, sndno)
|
||||
Code021 10a0:3991: (Int043) void AudioProcess::I_playSFXCru(Item *, soundno)
|
||||
Code021 10a0:39b0: (Int038) void AudioProcess::I_stopSFXCru(Item *, int16 sndno)
|
||||
Code021 10a0:39cf: (Int076) void AudioProcess::I_stopSFX(Item *)
|
||||
Code021 10a0:39eb: (Int03A) byte AudioProcess::I_isSFXPlayingForObject(Item *, int16 unk)
|
||||
Code021 10a0:3a5b: (Int0D2) void I_playFlic0D2(int *item,char *flicname,word sizex,word sizey)
|
||||
Code021 10a0:3a9f: (Int092) void I_playFlic092(char *)
|
||||
Code021 10a0:3a9f: (Int0A9) void I_playFlic0A9(char *)
|
||||
Code021 10a0:3abb: (Int00F) void I_playFlic(void), int16 I_playFlic(Item *, char *name, int16 sizex, int16 sizey)
|
||||
Code021 10a0:3ad7: (Int05E) int16 I_playFlicsomething(uint32, char *, int16 a, int16 b)
|
||||
Code021 10a0:3af5: (Int02C) byte Item::I_inFastArea(Item *)
|
||||
Code021 10a0:3d3f: (Int12F) int16 Actor::I_createActorCru(Item *, uint16 other_itemno)
|
||||
Code021 10a0:406b: (Int02F) byte Intrinsic02F(int, int, shapeno, Point *)
|
||||
Code021 10a0:40c8: (Int007) byte Item::I_isOnScreen(Item *)
|
||||
Code021 10a0:433a: (Int095) byte Kernel::I_getCurrentKeyDown(void)
|
||||
Code021 10a0:4342: (Int103) byte Item::I_isCrusTypeNPC(uint16 shapenum)
|
||||
Code021 10a0:4371: (Int058) byte Item::I_isCentreOn(Item *, uint16 other)
|
||||
Code022 10a8:26ee: (Int023) int16 Item::I_getEtherealTop(void)
|
||||
Code027 10d0:0000: (Int027) int16 I_getClosestDirectionInRange(x1, y1, x2, y2, numdirs, mindir, maxdir)
|
||||
Code027 10d0:01c7: (Int034) int16 Item::I_getDirFromTo16(x1, y1, x2, y2)
|
||||
|
||||
Code028 10d8:0000: (Int0B4) void Ultima8Engine::I_setAlertActive(void)
|
||||
Code028 10d8:0121: (Int0B6) void Ultima8Engine::I_clrAlertActive(void)
|
||||
Code028 10d8:0243: (Int000) byte World::I_getAlertActive(void)
|
||||
|
||||
Code030 10e8:0119: (Int033) byte Actor::I_isBusy(4 bytes)
|
||||
Code030 10e8:0252: (Int036) int16 Actor::I_doAnim(12 bytes)
|
||||
Code030 10e8:1e7e: (Int0E5) void Actor::I_attack(Actor *, uint16 target)
|
||||
Code030 10e8:1f0e: (Int0AB) byte Actor::I_NPCGetField0x59Flag1_0AB(Actor *)
|
||||
Code030 10e8:1f2d: (Int0CC) byte Actor::I_getInCombat(Actor *)
|
||||
Code030 10e8:1fed: (Int039) byte Actor::I_isDead(Item *)
|
||||
Code030 10e8:1fed: (Int122) byte Actor::I_isDead(Item *)
|
||||
Code030 10e8:1fed: (Int12E) byte Actor::I_isDead(Item *)
|
||||
Code030 10e8:201d: (Int021) void Actor::I_setDead(4 bytes)
|
||||
Code030 10e8:201d: (Int060) void Actor::I_setDead(4 bytes)
|
||||
Code030 10e8:201d: (Int073) void Actor::I_setDead(4 bytes)
|
||||
Code030 10e8:201d: (Int0A0) void Actor::I_setDead(Actor *)
|
||||
Code030 10e8:201d: (Int0A8) void Actor::I_setDead(Actor *)
|
||||
Code030 10e8:201d: (Int0D8) void Actor::I_setDead(4 bytes)
|
||||
Code030 10e8:201d: (Int0E7) void Actor::I_setDead(4 bytes)
|
||||
Code030 10e8:201d: (Int135) void Actor::I_setDead(Actor *)
|
||||
Code030 10e8:2177: (Int085) void Actor::I_setImmortal(Actor *)
|
||||
Code030 10e8:2192: (Int07B) void Actor::I_clrImmortal(Actor *)
|
||||
Code030 10e8:2192: (Int130) void Actor::I_clrImmortal(Actor *)
|
||||
Code030 10e8:2208: (Int035) byte Actor::I_getSomeFlagProbablyCrouch(Item *)
|
||||
Code030 10e8:25b1: (Int061) void Actor::I_create(8 bytes)
|
||||
Code030 10e8:27c0: (Int0DF) int16 Actor::I_getEquip(6 bytes)
|
||||
Code030 10e8:27f3: (Int0E0) void Actor::I_setEquip(8 bytes)
|
||||
Code030 10e8:29f2: (Int063) void Actor::I_teleport(12 bytes)
|
||||
Code030 10e8:2b88: (Int011) int16 Actor::I_getMap(4 bytes)
|
||||
Code030 10e8:2be2: (Int052) void Actor::I_setDefaultActivity0(Actor *, int)
|
||||
Code030 10e8:2bff: (Int053) void Actor::I_setDefaultActivity1(Actor *, int)
|
||||
Code030 10e8:2c1c: (Int054) void Actor::I_setDefaultActivity2(Actor *, int)
|
||||
Code030 10e8:2c70: (Int0E1) int16 Actor::I_getDefaultActivity0(Actor *)
|
||||
Code030 10e8:2c8a: (Int0E2) int16 Actor::I_getDefaultActivity1(Actor *)
|
||||
Code030 10e8:2ca4: (Int0E3) int16 Actor::I_getDefaultActivity2(Actor *)
|
||||
Code030 10e8:2cfa: (Int055) void Actor::I_setActivity(Actor *, int)
|
||||
Code030 10e8:2cfa: (Int07D) void Actor::I_setActivity(Actor *, int)
|
||||
Code030 10e8:2cfa: (Int0CD) void Actor::I_setActivity(Actor *, int)
|
||||
Code030 10e8:2cfa: (Int0DB) void Actor::I_setActivity(Actor *, int)
|
||||
Code030 10e8:2cfa: (Int0F2) void Actor::I_setActivity(Actor *, int)
|
||||
Code030 10e8:2cfa: (Int131) void Actor::I_setActivity(Actor *, int)
|
||||
Code030 10e8:31a1: (Int051) void Actor::I_clrInCombat(Actor *)
|
||||
Code030 10e8:3263: (Int00E) int16 Actor::I_turnToward(Actor *, direction, unk)
|
||||
Code030 10e8:32ec: (Int07C) int16 Actor::I_getHp(Actor *)
|
||||
Code030 10e8:3305: (Int050) int16 I_GetNPCDataField0x2_050(Actor *)
|
||||
Code030 10e8:344c: (Int082) int16 Actor::I_getMana(Actor *)
|
||||
Code030 10e8:3466: (Int083) void Actor::I_setMana(Actor *, int)
|
||||
Code030 10e8:3483: (Int081) int16 MainActor::I_getMaxEnergy(Actor *)
|
||||
Code030 10e8:358c: (Int0DE) void Actor::I_setCombatTactic(Actor *, int)
|
||||
Code030 10e8:368e: (Int0B7) int16 Ultima8Engine::I_getAvatarInStasis(void)
|
||||
Code030 10e8:3696: (Int00C) void Ultima8Engine::I_setAvatarInStasis(int)
|
||||
Code030 10e8:370c: (Int01C) byte Actor::I_getDir(4 bytes)
|
||||
Code030 10e8:370c: (Int112) byte Actor::I_getDir(Actor *)
|
||||
Code030 10e8:370c: (Int121) byte Actor::I_getDir(4 bytes)
|
||||
Code030 10e8:3726: (Int01D) int16 Actor::I_getLastAnimSet(4 bytes)
|
||||
Code030 10e8:3726: (Int05A) int16 Actor::I_getLastAnimSet(4 bytes)
|
||||
Code030 10e8:3726: (Int0B9) int16 Actor::I_getLastAnimSet(4 bytes)
|
||||
Code030 10e8:3726: (Int0D7) int16 Actor::I_getLastAnimSet(4 bytes)
|
||||
Code030 10e8:3726: (Int0E4) int16 Actor::I_getLastAnimSet(4 bytes)
|
||||
Code030 10e8:3726: (Int124) int16 Actor::I_getLastAnimSet(4 bytes)
|
||||
Code030 10e8:3740: (Int0CA) byte Actor::I_addHp(Actor *, int)
|
||||
Code030 10e8:382b: (Int0EB) int16 I_GetQOfAvatarInventoryItem0x4ed_0EB(void)
|
||||
Code030 10e8:38cd: (Int029) int16 Game::I_getDifficultyLevel(void)
|
||||
Code030 10e8:3ce0: (Int0FD) byte MainActor::I_hasKeycard(int)
|
||||
Code030 10e8:3d43: (Int078) void MainActor::I_clrKeycards(void)
|
||||
Code030 10e8:3df4: (Int00B) int16 Actor::I_GetNPCDataField0x63_00B(Actor *)
|
||||
Code030 10e8:3e10: (Int0E6) void Actor::I_SetNPCDataField0x63_0E6(Actor *, int)
|
||||
Code030 10e8:3e2d: (Int0DD) int16 Actor::I_GetNPCDataField0x4_0DD(Actor *)
|
||||
Code032 10f8:054d: (Int0AC) int16 Item::I_getFamilyOfType(Item *)
|
||||
Code038 1128:0000: (Int098) void I_resetVargasHealthTo500(void)
|
||||
Code038 1128:0247: (Int032) void Item::I_receiveHit(Item *, other, dir, damage, damagetype)
|
||||
Code038 1128:11da: (Int01E) int16 Actor::I_maybeFire(Actor *, x, y, z, byte, int, byte)
|
||||
Code038 1128:1755: (Int116) byte Intrinsic116(14 bytes)
|
||||
Code038 1128:1c01: (Int042) byte Item::I_getRangeIfVisible(Item *, otheritem)
|
||||
Code038 1128:20c5: (Int0EE) void BatteryChargerProcess::I_create(void)
|
||||
Code038 1128:20e5: (Int0F6) void CruHealer::I_create_0F6(void)
|
||||
Code039 1130:0000: (Int056) void Intrinsic056(int itemno)
|
||||
Code039 1130:0010: (Int01B) int16 I_getTargetNPCNumMaybe(void)
|
||||
Code040 1138:00de: (Int0C6) void SpriteProcess::I_createSprite(word, word, word, word, uword, uword, ubyte)
|
||||
Code042 1148:0859: (Int017) void Item::I_explode(Item *, exptype, destroy_item)
|
||||
Code042 1148:0b67: (Int0BB) byte Intrinsic0BB(8 bytes)
|
||||
Code049 1180:0013: (Int062) void CameraProcess::I_somethingAboutCameraUpdate(void)
|
||||
Code049 1180:0cba: (Int040) void CameraProcess::I_moveTo(x, y, z)
|
||||
Code049 1180:1aa5: (Int041) void CameraProcess::I_setCenterOn(objid)
|
||||
Code049 1180:1cc5: (Int086) int16 CameraProcess::I_getCameraX(void)
|
||||
Code049 1180:1ccd: (Int087) int16 CameraProcess::I_getCameraY(void)
|
||||
Code049 1180:1cd5: (Int0D6) byte CameraProcess::I_getCameraZ(void)
|
||||
Code055 11b0:0000: (Int05D) void I_mouseSomethingOffMaybe05D(void)
|
||||
Code055 11b0:0006: (Int05F) void I_mouseSomethingResume05F(void)
|
||||
Code059 11d0:0977: (Int0EF) int16 Kernel::I_getNumProcesses(int, int)
|
||||
Code059 11d0:0c63: (Int06C) void Kernel::I_resetRef(int16, int16)
|
||||
Code064 11f8:0143: (Int012) void MusicProcess:I_playMusic(int trackno)
|
||||
Code064 11f8:0223: (Int090) void MusicProcess::I_musicStop(void)
|
||||
Code092 12d8:0293: (Int018) int16 UCMachine::I_rndRange(uint16 x, uint16 y)
|
||||
Code092 12d8:0476: (Int0AA) void I_playSFX(2 bytes)
|
||||
Code092 12d8:0476: (Int0D4) void I_playSFX(2 bytes)
|
||||
Code092 12d8:054a: (Int0D1) void AudioProcess:I_stopAllSFX(void)
|
||||
Code116 1398:0005: (Int0FE) void ComputerGump::I_readComputer(char *)
|
||||
Code121 13c0:00fe: (Int0C4) int16 KeypadGump::I_showKeypad(int targetCode)
|
||||
Code125 13e0:0000: (Int134) void Intrinsic134(2 bytes)
|
||||
Code126 13e8:0033: (Int091) void I_setSomeMovieGlobal(void)
|
||||
Code126 13e8:0039: (Int093) void I_clearSomeMovieGlobal(void)
|
||||
Code126 13e8:003f: (Int094) void Game::I_playCredits(void)
|
||||
Code126 13e8:0071: (Int072) void Ultima8Engine::I_setCruStasis(void)
|
||||
Code126 13e8:0077: (Int075) void Ultima8Engine::I_clrCruStasis(void)
|
||||
Code126 13e8:00a8: (Int0D3) void Intrinsic0D3(void)
|
||||
Code126 13e8:00b9: (Int0A6) int16 I_getAnimationsDisabled(void)
|
||||
Code126 13e8:0330: (Int037) byte MainActor::I_addItemCru(4 bytes)
|
||||
Code126 13e8:0330: (Int0B8) byte MainActor::I_addItemCru(4 bytes)
|
||||
Code126 13e8:0e21: (Int074) void Ultima8Engine::I_clrUnkCrusaderFlag(void)
|
||||
Code126 13e8:0e27: (Int070) byte Ultima8Engine::I_getUnkCrusaderFlag(void)
|
||||
Code126 13e8:0e2b: (Int071) void Ultima8Engine::I_setUnkCrusaderFlag(void)
|
||||
Code132 1418:0073: (Int0FF) int16 UCMachine::I_numToStr(int16 num)
|
||||
Code132 1418:0073: (Int113) int16 UCMachine::I_numToStr(int16 num)
|
||||
Code132 1418:0073: (Int126) int16 UCMachine::I_numToStr(int16 num)
|
||||
Code137 1440:04ea: (Int09D) int16 PaletteFaderProcess::I_fadeToBlack(nsteps)
|
||||
Code137 1440:06e6: (Int077) int16 PaletteFaderProcess::I_fadeToBlack(void)
|
||||
Code137 1440:06f4: (Int09B) int16 PaletteFaderProcess::I_fadeFromBlack(nsteps)
|
||||
Code137 1440:07cc: (Int07A) int16 PaletteFaderProcess::I_fadeFromBlack(void)
|
||||
Code137 1440:07da: (Int08F) void PaletteFaderProcess::I_setPalToAllBlack(void)
|
||||
Code137 1440:0853: (Int0DA) void PaletteFaderProcess::I_setPalToAllGrey(void)
|
||||
Code137 1440:0a7c: (Int09A) void PaletteFaderProcess::I_stopFadesAndResetToGamePal(void)
|
||||
Code137 1440:0ab2: (Int09F) int16 PaletteFaderProcess::I_fadeToColor(r, g, b, nsteps, unk)
|
||||
Code137 1440:0bc6: (Int09C) int16 PaletteFaderProcess::I_fadeFromBlackWithParam(nsteps, unk)
|
||||
Code137 1440:0c47: (Int09E) int16 PaletteFaderProcess::I_fadeToBlackWithParam(nsteps, unk)
|
||||
334
tools/unkcoffs/remorse_ints.py
Normal file
334
tools/unkcoffs/remorse_ints.py
Normal file
|
|
@ -0,0 +1,334 @@
|
|||
intrinsics = [
|
||||
|
||||
"byte World::I_getAlertActive(void)",
|
||||
"int16 Item::I_getFrame(Item *)",
|
||||
"void Item::I_setFrame(Item *, frame)",
|
||||
"int16 Item::I_getMapArray(Item *)",
|
||||
"int16 Item::I_getStatus(Item *)",
|
||||
"void Item::I_orStatus(Item *, uint16 flags)",
|
||||
"int16 Item::I_equip(6 bytes)",
|
||||
"byte Item::I_isOnScreen(Item *)",
|
||||
"byte Actor::I_isNPC(Item *)",
|
||||
"byte Item::I_getZ(Item *)",
|
||||
"void Item::I_destroy(Item *)",
|
||||
"int16 Actor::I_GetNPCDataField0x63_00B(Actor *)",
|
||||
"void Ultima8Engine::I_setAvatarInStasis(int)",
|
||||
"byte Item::I_getDirToItem(Item *, itemno)",
|
||||
"int16 Actor::I_turnToward(Actor *, direction, unk)",
|
||||
"void I_playFlic(void), int16 I_playFlic(Item *, char *name, int16 sizex, int16 sizey)",
|
||||
|
||||
"int16 Item::I_getQLo(Item *)",
|
||||
"int16 Actor::I_getMap(4 bytes)",
|
||||
"void MusicProcess:I_playMusic(int trackno)",
|
||||
"int16 Item::I_getX(Item *)",
|
||||
"int16 Item::I_getY(Item *)",
|
||||
"void AudioProcess::I_playSFXCru(Item *, uint16 sfxnum)",
|
||||
"int16 Item::I_getShape(Item *)",
|
||||
"void Item::I_explode(Item *, exptype, destroy_item)",
|
||||
"int16 UCMachine::I_rndRange(uint16 x, uint16 y)",
|
||||
"byte Item::I_legalCreateAtCoords(Item *, int16 shapeno, int16 frame, int16 x, int16 y, int16 z)",
|
||||
"void Item::I_andStatus(Item *, uint16 status)",
|
||||
"int16 I_getTargetNPCNumMaybe(void)",
|
||||
"byte Actor::I_getDir(4 bytes)",
|
||||
"int16 Actor::I_getLastAnimSet(4 bytes)",
|
||||
"int16 Actor::I_maybeFire(Actor *, x, y, z, byte, int, byte)",
|
||||
"byte Item::I_create(Item *, uint16 shapenum, uint16 framenum)",
|
||||
|
||||
"void Item::I_popToCoords(Item *, uint16 x, uint16 y, uint16 z)",
|
||||
"void Actor::I_setDead(4 bytes)",
|
||||
"void I_push(Item *)",
|
||||
"int16 Item::I_getEtherealTop(void)",
|
||||
"void Item::I_setShape(Item *, int16 shapeno)",
|
||||
"void Item::I_touch(Item *)",
|
||||
"int16 Item::I_getQHi(Item *)",
|
||||
"int16 I_getClosestDirectionInRange(x1, y1, x2, y2, numdirs, mindir, maxdir)",
|
||||
"int16 Item::I_hurl(Item *,8 bytes)",
|
||||
"int16 Game::I_getDifficultyLevel(void)",
|
||||
"void AudioProcess::I_playAmbientSFXCru(Item *, sndno)",
|
||||
"int16 Item::I_getQLo(Item *)",
|
||||
"byte Item::I_inFastArea(Item *)",
|
||||
"void Item::I_setQHi(Item *, uint16 qhi)",
|
||||
"byte I_legalMoveToPoint(Item *, Point *, int16 force)",
|
||||
"byte Intrinsic02F(int, int, shapeno, Point *)",
|
||||
|
||||
"void Item::I_pop(Item *)",
|
||||
"void Item::I_andStatus(Item *, uint16 status)",
|
||||
"void Item::I_receiveHit(Item *, other, dir, damage, damagetype)",
|
||||
"byte Actor::I_isBusy(4 bytes)",
|
||||
"int16 Item::I_getDirFromTo16(x1, y1, x2, y2)",
|
||||
"byte Actor::I_getSomeFlagProbablyCrouch(Item *)",
|
||||
"int16 Actor::I_doAnim(12 bytes)",
|
||||
"byte MainActor::I_addItemCru(4 bytes)",
|
||||
"void AudioProcess::I_stopSFXCru(Item *, int16 sndno)",
|
||||
"byte Actor::I_isDead(Item *)",
|
||||
"byte AudioProcess::I_isSFXPlayingForObject(Item *, int16 unk)",
|
||||
"void Item::I_setQLo(Item *, int16 qlo)",
|
||||
"int16 Item::I_getItemFamily(Item *)",
|
||||
"void Container::I_destroyContents(Item *)",
|
||||
"void Item::I_fallProbably_03E(Item *)",
|
||||
"int16 Egg::I_getEggId(Item *)",
|
||||
|
||||
"void CameraProcess::I_moveTo(x, y, z)",
|
||||
"void CameraProcess::I_setCenterOn(objid)",
|
||||
"byte Item::I_getRangeIfVisible(Item *, otheritem)",
|
||||
"void AudioProcess::I_playSFXCru(Item *, soundno)",
|
||||
"byte Item::I_IsOn(Item *, uint16 itemno)",
|
||||
"int16 Item::I_getQHi(Item *)",
|
||||
"byte Item::I_IsOn(Item *, uint16 itemno))",
|
||||
"int16 Item::I_getQHi(Item *)",
|
||||
"byte Item::I_IsOn(Item *, uint16 itemno)",
|
||||
"int16 Item::I_getQHi(Item *)",
|
||||
"byte Item::I_IsOn(Item *, uint16 itemno)",
|
||||
"int16 Item::I_getQHi(Item *)",
|
||||
"byte Item::I_IsOn(Item *, uint16 itemno)",
|
||||
"int16 Item::I_getQHi(Item *)",
|
||||
"byte Item::I_IsOn(Item *, uint16 itemno)",
|
||||
"int16 Item::I_getQHi(Item *)",
|
||||
|
||||
"int16 I_GetNPCDataField0x2_050(Actor *)",
|
||||
"void Actor::I_clrInCombat(Actor *)",
|
||||
"void Actor::I_setDefaultActivity0(Actor *, int)",
|
||||
"void Actor::I_setDefaultActivity1(Actor *, int)",
|
||||
"void Actor::I_setDefaultActivity2(Actor *, int)",
|
||||
"void Actor::I_setActivity(Actor *, int)",
|
||||
"void Intrinsic056(int itemno)",
|
||||
"int16 Item::I_getSurfaceWeight(Item *)",
|
||||
"byte Item::I_isCentreOn(Item *, uint16 other)",
|
||||
"void Item::I_setFrame(Item *, frame)",
|
||||
"int16 Actor::I_getLastAnimSet(4 bytes)",
|
||||
"byte Item::I_legalCreateAtPoint(Item *, int16 shape, int16 frame, Point *)",
|
||||
"void Item::I_getPoint(Item *, Point *)",
|
||||
"void I_mouseSomethingOffMaybe05D(void)",
|
||||
"int16 I_playFlicsomething(uint32, char *, int16 a, int16 b)",
|
||||
"void I_mouseSomethingResume05F(void)",
|
||||
|
||||
"void Actor::I_setDead(4 bytes)",
|
||||
"void Actor::I_create(8 bytes)",
|
||||
"void CameraProcess::I_somethingAboutCameraUpdate(void)",
|
||||
"void Actor::I_teleport(12 bytes)",
|
||||
"void Item::I_getFootpad(Item *, uint *, uint *, uint *)",
|
||||
"byte Item::I_isInNPC(Item *)",
|
||||
"int16 Item::I_getQLo(Item *)",
|
||||
"int16 Item::I_getNPCNum(Item *)",
|
||||
"void Item::I_setNpcNum(Item *, uint16 npcnum)",
|
||||
"void Item::I_andStatus(Item *, uint16 status)",
|
||||
"void Item::I_move(Item *, int16 x, int16 y, uint16 z)",
|
||||
"int16 Game::I_isViolenceEnabled(void)",
|
||||
"void Kernel::I_resetRef(int16, int16)",
|
||||
"int16 Item::I_getNPCNum(Item *)",
|
||||
"void Item::I_andStatus(Item *, uint16 status)",
|
||||
"byte Item::I_isCompletelyOn(Item *, uint16 other)",
|
||||
|
||||
"byte Ultima8Engine::I_getUnkCrusaderFlag(void)",
|
||||
"void Ultima8Engine::I_setUnkCrusaderFlag(void)",
|
||||
"void Ultima8Engine::I_setCruStasis(void)",
|
||||
"void Actor::I_setDead(4 bytes)",
|
||||
"void Ultima8Engine::I_clrUnkCrusaderFlag(void)",
|
||||
"void Ultima8Engine::I_clrCruStasis(void)",
|
||||
"void AudioProcess::I_stopSFX(Item *)",
|
||||
"int16 PaletteFaderProcess::I_fadeToBlack(void)",
|
||||
"void MainActor::I_clrKeycards(void)",
|
||||
"int16 MainActor::I_teleportToEgg(int, int, int)",
|
||||
"int16 PaletteFaderProcess::I_fadeFromBlack(void)",
|
||||
"void Actor::I_clrImmortal(Actor *)",
|
||||
"int16 Actor::I_getHp(Actor *)",
|
||||
"void Actor::I_setActivity(Actor *, int)",
|
||||
"int16 Item::I_getQuality(Item *)",
|
||||
"void Item::I_setQuality(Item *, int)",
|
||||
|
||||
"int16 Item::I_use(Item *)",
|
||||
"int16 MainActor::I_getMaxEnergy(Actor *)",
|
||||
"int16 Actor::I_getMana(Actor *)",
|
||||
"void Actor::I_setMana(Actor *, int)",
|
||||
"int16 Item::I_getQLo(Item *)",
|
||||
"void Actor::I_setImmortal(Actor *)",
|
||||
"int16 CameraProcess::I_getCameraX(void)",
|
||||
"int16 CameraProcess::I_getCameraY(void)",
|
||||
"void Item::I_setMapArray(Item *, uint16 maparray)",
|
||||
"int16 Item::I_getNpcNum(Item *)",
|
||||
"void Intrinsic08A(12 bytes)",
|
||||
"int16 Item::I_enterFastArea(Item *)",
|
||||
"void Item::I_setIsBroken(Item *)",
|
||||
"int16 Item::I_hurl(Item *,8 bytes)",
|
||||
"int16 Item::I_getNPCNum(Item *)",
|
||||
"void PaletteFaderProcess::I_setPalToAllBlack(void)",
|
||||
|
||||
"void MusicProcess::I_musicStop(void)",
|
||||
"void I_setSomeMovieGlobal(void)",
|
||||
"void I_playFlic092(char *)",
|
||||
"void I_clearSomeMovieGlobal(void)",
|
||||
"void Game::I_playCredits(void)",
|
||||
"byte Kernel::I_getCurrentKeyDown(void)",
|
||||
"int16 MainActor::I_teleportToEgg(int, int)",
|
||||
"void PaletteFaderProcess:I_setScreenGreyscale(void)",
|
||||
"void I_resetVargasHealthTo500(void)",
|
||||
"void Item::I_andStatus(Item *, uint16 status)",
|
||||
"void PaletteFaderProcess::I_stopFadesAndResetToGamePal(void)",
|
||||
"int16 PaletteFaderProcess::I_fadeFromBlack(nsteps)",
|
||||
"int16 PaletteFaderProcess::I_fadeFromBlackWithParam(nsteps, unk)",
|
||||
"int16 PaletteFaderProcess::I_fadeToBlack(nsteps)",
|
||||
"int16 PaletteFaderProcess::I_fadeToBlackWithParam(nsteps, unk)",
|
||||
"int16 PaletteFaderProcess::I_fadeToColor(r, g, b, nsteps, unk)",
|
||||
|
||||
"void Actor::I_setDead(Actor *)",
|
||||
"int16 Item::I_getQLo(Item *)",
|
||||
"int16 Item::I_getUnkEggType(Item *)",
|
||||
"void Egg::I_setEggXRange(Egg *, int)",
|
||||
"byte Item::I_overlaps(Item *, uint16 unk)",
|
||||
"byte Item::I_isOn(Item *, itemno)",
|
||||
"int16 I_getAnimationsDisabled(void)",
|
||||
"int16 Egg::I_getEggXRange(Egg *)",
|
||||
"void Actor::I_setDead(Actor *)",
|
||||
"void I_playFlic0A9(char *)",
|
||||
"void I_playSFX(2 bytes)",
|
||||
"byte Actor::I_NPCGetField0x59Flag1_0AB(Actor *)",
|
||||
"int16 Item::I_getFamilyOfType(Item *)",
|
||||
"int16 Item::I_getNPCNum(Item *)",
|
||||
"int16 Item::I_getQLo(Item *)",
|
||||
"int16 Item::I_getQHi(Item *)",
|
||||
|
||||
"int16 Item::I_unequip(6 bytes)",
|
||||
"int16 Item::I_spawnUsecodeEvent0x13(Item *, 2 bytes)",
|
||||
"void Item::I_andStatus(Item *, uint16 status)",
|
||||
"int32 I_getCurrentTimerTick(void)",
|
||||
"void Ultima8Engine::I_setAlertActive(void)",
|
||||
"int16 Item::I_equip(6 bytes)",
|
||||
"void Ultima8Engine::I_clrAlertActive(void)",
|
||||
"int16 Ultima8Engine::I_getAvatarInStasis(void)",
|
||||
"byte MainActor::I_addItemCru(4 bytes)",
|
||||
"int16 Actor::I_getLastAnimSet(4 bytes)",
|
||||
"void Item::I_setQuality(Item *, int)",
|
||||
"byte Intrinsic0BB(8 bytes)",
|
||||
"byte Item::I_isOn(Item *, itemno)",
|
||||
"int16 Item::I_hurl(Item *,8 bytes)",
|
||||
"int16 Item::I_getQHi(Item *)",
|
||||
"void Item::I_andStatus(Item *, uint16 status)",
|
||||
|
||||
"int16 Item::I_hurl(Item *,8 bytes)",
|
||||
"void Item::I_andStatus(Item *, uint16 status)",
|
||||
"int16 Item::I_hurl(Item *,8 bytes)",
|
||||
"void Item::I_andStatus(Item *, uint16 status)",
|
||||
"int16 KeypadGump::I_showKeypad(int targetCode)",
|
||||
"byte Item::I_isOn(Item *, itemno)",
|
||||
"void SpriteProcess::I_createSprite(word, word, word, word, uword, uword, ubyte)",
|
||||
"byte Item::I_getDirFromItem(Item *, itemno)",
|
||||
"int16 Item::I_hurl(Item *,8 bytes)",
|
||||
"int16 Item::I_getQHi(Item *)",
|
||||
"byte Actor::I_addHp(Actor *, int)",
|
||||
"void I_createMapJumpProcess(int16 mapnum)",
|
||||
"byte Actor::I_getInCombat(Actor *)",
|
||||
"void Actor::I_setActivity(Actor *, int)",
|
||||
"int16 Game::I_isReleaseBuild(void)",
|
||||
"void Item::I_setQAndCombine(Item *, int16 q)",
|
||||
|
||||
"int16 Item::I_use(Item *)",
|
||||
"void AudioProcess:I_stopAllSFX(void)",
|
||||
"void I_playFlic0D2(int *item,char *flicname,word sizex,word sizey)",
|
||||
"void Intrinsic0D3(void)",
|
||||
"void I_playSFX(2 bytes)",
|
||||
"int16 Item::I_use(Item *)",
|
||||
"byte CameraProcess::I_getCameraZ(void)",
|
||||
"int16 Actor::I_getLastAnimSet(4 bytes)",
|
||||
"void Actor::I_setDead(4 bytes)",
|
||||
"int16 Item::I_getQLo(Item *)",
|
||||
"void PaletteFaderProcess::I_setPalToAllGrey(void)",
|
||||
"void Actor::I_setActivity(Actor *, int)",
|
||||
"byte Item::I_isOn(Item *, itemno)",
|
||||
"int16 Actor::I_GetNPCDataField0x4_0DD(Actor *)",
|
||||
"void Actor::I_setCombatTactic(Actor *, int)",
|
||||
"int16 Actor::I_getEquip(6 bytes)",
|
||||
|
||||
"void Actor::I_setEquip(8 bytes)",
|
||||
"int16 Actor::I_getDefaultActivity0(Actor *)",
|
||||
"int16 Actor::I_getDefaultActivity1(Actor *)",
|
||||
"int16 Actor::I_getDefaultActivity2(Actor *)",
|
||||
"int16 Actor::I_getLastAnimSet(4 bytes)",
|
||||
"void Actor::I_attack(Actor *, uint16 target)",
|
||||
"void Actor::I_SetNPCDataField0x63_0E6(Actor *, int)",
|
||||
"void Actor::I_setDead(4 bytes)",
|
||||
"int16 Item::I_cast(6 bytes)",
|
||||
"void Item::I_andStatus(Item *, uint16 status)",
|
||||
"int16 Item::I_getQLo(Item *)",
|
||||
"int16 I_GetQOfAvatarInventoryItem0x4ed_0EB(void)",
|
||||
"void Item::I_popToEnd(Item*, int)",
|
||||
"void Item::I_popToContainer(Item*, int)",
|
||||
"void BatteryChargerProcess::I_create(void)",
|
||||
"int16 Kernel::I_getNumProcesses(int, int)",
|
||||
|
||||
"int16 Item::I_getQHi(Item *)",
|
||||
"byte Item::I_isOn(Item *, itemno)",
|
||||
"void Actor::I_setActivity(Actor *, int)",
|
||||
"int16 Item::I_getQHi(Item *)",
|
||||
"int16 Item::I_getQ(Item *)",
|
||||
"void Item::I_setQ(Item *, uint16 q)",
|
||||
"void CruHealer::I_create_0F6(void)",
|
||||
"int16 Item::I_hurl(Item *,8 bytes)",
|
||||
"int16 Item::I_getNPCNum(Item *)",
|
||||
"int16 Item::I_hurl(Item *,8 bytes)",
|
||||
"byte Item::I_isOn(Item *, itemno)",
|
||||
"int16 Item::I_getQHi(Item *)",
|
||||
"void Item::I_andStatus(Item *, uint16 status)",
|
||||
"byte MainActor::I_hasKeycard(int)",
|
||||
"void ComputerGump::I_readComputer(char *)",
|
||||
"int16 UCMachine::I_numToStr(int16 num)",
|
||||
|
||||
"int16 Item::I_getNPCNum(Item *)",
|
||||
"void Item::I_andStatus(Item *, uint16 status)",
|
||||
"int16 Item::I_getNPCNum(Item *)",
|
||||
"byte Item::I_isCrusTypeNPC(uint16 shapenum)",
|
||||
"void Item::I_andStatus(Item *, uint16 status)",
|
||||
"int16 Item::I_getNPCNum(Item *)",
|
||||
"void Item::I_andStatus(Item *, uint16 status)",
|
||||
"int16 Item::I_getNPCNum(Item *)",
|
||||
"void Item::I_andStatus(Item *, uint16 status)",
|
||||
"int16 Item::I_getNPCNum(Item *)",
|
||||
"void Item::I_andStatus(Item *, uint16 status)",
|
||||
"int16 Item::I_getNPCNum(Item *)",
|
||||
"void Item::I_andStatus(Item *, uint16 status)",
|
||||
"int16 Item::I_getNPCNum(Item *)",
|
||||
"void Item::I_andStatus(Item *, uint16 status)",
|
||||
"int16 Item::I_getNPCNum(Item *)",
|
||||
|
||||
"void Item::I_andStatus(Item *, uint16 status)",
|
||||
"int16 Item::I_getNPCNum(Item *)",
|
||||
"byte Actor::I_getDir(Actor *)",
|
||||
"int16 UCMachine::I_numToStr(int16 num)",
|
||||
"void Item::I_andStatus(Item *, uint16 status)",
|
||||
"int16 Item::I_getNPCNum(Item *)",
|
||||
"byte Intrinsic116(14 bytes)",
|
||||
"void Item::I_andStatus(Item *, uint16 status)",
|
||||
"int16 Item::I_hurl(Item *,8 bytes)",
|
||||
"void Item::I_setIsBroken(Item *)",
|
||||
"void Item::I_andStatus(Item *, uint16 status)",
|
||||
"byte Item::I_getTypeFlag(Item *, uint16 shift)",
|
||||
"int16 Item::I_getNPCNum(Item *)",
|
||||
"int16 Item::I_hurl(Item *,8 bytes)",
|
||||
"int16 Item::I_getCY(Item *)",
|
||||
"byte Item::I_getCZ(Item *)",
|
||||
|
||||
"int16 Item::I_getCX(Item *)",
|
||||
"byte Actor::I_getDir(4 bytes)",
|
||||
"byte Actor::I_isDead(Item *)",
|
||||
"int16 Item::I_getNPCNum(Item *)",
|
||||
"int16 Actor::I_getLastAnimSet(4 bytes)",
|
||||
"void Item::I_setQuality(Item *, int)",
|
||||
"int16 UCMachine::I_numToStr(int16 num)",
|
||||
"byte Item::I_getDirToCoords(Item *, uin16 x, uint16 y)",
|
||||
"void Item::I_andStatus(Item *, uint16 status)",
|
||||
"int16 Item::I_getNPCNum(Item *)",
|
||||
"void Item::I_setIsBroken(Item *)",
|
||||
"int16 IItem::I_getCY(Item *)",
|
||||
"byte Item::I_isOn(Item *, itemno)",
|
||||
"void Item::I_getFootpadData(Item *, uint *, uint *, uint *)",
|
||||
"byte Actor::I_isDead(Item *)",
|
||||
"int16 Actor::I_createActorCru(Item *, uint16 other_itemno)",
|
||||
|
||||
"void Actor::I_clrImmortal(Actor *)",
|
||||
"void Actor::I_setActivity(Actor *, int)",
|
||||
"void Item::I_andStatus(Item *, int16 status)",
|
||||
"int16 Item::I_getQHi(Item *)",
|
||||
"void Intrinsic134(2 bytes)",
|
||||
"void Actor::I_setDead(Actor *)",
|
||||
"void UNUSEDInt136()",
|
||||
"void UNUSEDInt137()"
|
||||
]
|
||||
245
tools/unkcoffs/u8_intrinsic_dump.txt
Normal file
245
tools/unkcoffs/u8_intrinsic_dump.txt
Normal file
|
|
@ -0,0 +1,245 @@
|
|||
Code003 1010:01d5: (Int0E5) FeedAvatar(word)
|
||||
Code003 1010:0393: (Int0B6) urandom(word)
|
||||
Code003 1010:03b2: (Int0B7) rndRange(word,word)
|
||||
|
||||
Code005 1020:032f: (Int0DA) TimeInSeconds()
|
||||
Code005 1020:0349: (Int0D9) TimeInMinutes()
|
||||
Code005 1020:0363: (Int0D8) TimeInGameHours()
|
||||
Code005 1020:0372: (Int0DD) SetTimeInSeconds(long)
|
||||
Code005 1020:038f: (Int0DC) SetTimeInMinutes(long)
|
||||
Code005 1020:03af: (Int0DB) SetTimeInGameHours(word)
|
||||
|
||||
Code009 1040:16a8: (Int044) process Item::hurl(word, word, word, word)
|
||||
Code009 1040:179f: (Int046) Item::fall()
|
||||
Code010 1048:0000: (Int0D2) getCurrentTimerTick()
|
||||
Code012 1058:0439: (Int0FF) unused
|
||||
Code013 1060:10c9: (Int0D4) canExistAt(uword, uword, uword, uword, ubyte, uword, word)
|
||||
Code016 1078:1047: (Int0DE) process FadeToBlack()
|
||||
Code016 1078:107b: (Int0DF) process FadeFromBlack()
|
||||
Code016 1078:10a5: (Int0E0) process FadeToPalette(word, word)
|
||||
Code016 1078:10d0: (Int0E1) process LightningBolt()
|
||||
Code016 1078:11c9: (Int0E2) process FadeToWhite()
|
||||
Code016 1078:11fd: (Int0E3) process FadeFromWhite()
|
||||
Code020 1098:06f5: (Int070) process Grave::read(word,char*)
|
||||
Code020 1098:073a: (Int071) process Plaque::read(word,char*)
|
||||
Code021 10a0:077a: (Int06E) process Book::read(char*)
|
||||
Code021 10a0:07be: (Int06F) process Scroll::read(char*)
|
||||
|
||||
Code022 10a8:0587: (Int075) Egg::setEggYRange(uword)
|
||||
Code022 10a8:05bc: (Int076) Egg::getEggId()
|
||||
Code022 10a8:05d8: (Int077) Egg::setEggId(uword)
|
||||
Code022 10a8:05f4: (Int078) Egg::hatch()
|
||||
|
||||
Code028 10d8:01ac: (Int003) word Item::getX()
|
||||
Code028 10d8:01f0: (Int004) word Item::getY()
|
||||
Code028 10d8:0234: (Int009) word Item::Ultima8::getGumpX()
|
||||
Code028 10d8:026d: (Int00A) word Item::Ultima8::getGumpY()
|
||||
Code028 10d8:02a7: (Int00B) void Item::setGumpXY(word x, word y)
|
||||
Code028 10d8:02fa: (Int005) word Item::getZ()
|
||||
Code028 10d8:033a: (Int006) word Item::getCX()
|
||||
Code028 10d8:0387: (Int007) word Item::getCY()
|
||||
Code028 10d8:03d1: (Int008) word Item::getCZ()
|
||||
Code028 10d8:0503: (Int001) Item::getNext()
|
||||
Code028 10d8:0519: (Int02C) Item::getWeight()
|
||||
Code028 10d8:0603: (Int02D) Item::getWeightIncludingContents()
|
||||
Code028 10d8:0658: (Int02F) Item::getVolume()
|
||||
Code028 10d8:0712: (Int030) Item::getCapacity()
|
||||
Code028 10d8:0768: (Int02E) Item::getSurfaceWeight()
|
||||
Code028 10d8:07f8: (Int00D) uword Item::getShape()
|
||||
Code028 10d8:080e: (Int00E) void Item::setShape(uword type)
|
||||
Code028 10d8:0827: (Int00F) uword Item::getFrame()
|
||||
Code028 10d8:0884: (Int010) void Item::setFrame(uword frame)
|
||||
Code028 10d8:096b: (Int051) Item::setNpcArray(word)
|
||||
Code028 10d8:0987: (Int04F) Item::getNpcArray()
|
||||
Code028 10d8:09a3: (Int052) Item::setMapArray(word)
|
||||
Code028 10d8:09bf: (Int050) Item::getMapArray()
|
||||
Code028 10d8:09db: (Int019) uword Item::getQ()
|
||||
Code028 10d8:09f1: (Int011) uword Item::getQuality()
|
||||
Code028 10d8:0a33: (Int01B) void Item::setQuality(word value)
|
||||
Code028 10d8:0a74: (Int012) uword Item::getUnkEggType()
|
||||
Code028 10d8:0ab6: (Int01C) void Item::setUnkEggType(word value)
|
||||
Code028 10d8:0af7: (Int013) uword Item::getQuantity()
|
||||
Code028 10d8:0b44: (Int01D) void Item::setQuantity(word value)
|
||||
Code028 10d8:0b9b: (Int014) Item::getContents()
|
||||
Code028 10d8:0bdd: (Int015) Item::getContainer()
|
||||
Code028 10d8:0c0b: (Int016) Item::getRootContainer()
|
||||
Code028 10d8:0c81: (Int017) uword Item::getGlobNum()
|
||||
Code028 10d8:0cc3: (Int018) void Item::setGlobNum(uword)
|
||||
Code028 10d8:0d04: (Int01A) void Item::setQ(uword)
|
||||
Code028 10d8:0d5e: (Int01E) word Item::getFamily()
|
||||
Code028 10d8:0d87: (Int01F) bool Item::getTypeFlag(word bit)
|
||||
Code028 10d8:0dce: (Int020) word Item::getStatus()
|
||||
Code028 10d8:0de4: (Int033) Item::legal_create(uword, uword, WorldPoint*)
|
||||
Code028 10d8:0e6f: (Int031) Item::legal_create(uword, uword, uword, uword, uword)
|
||||
Code028 10d8:0f18: (Int034) Item::legal_create(uword, uword, uword, word)
|
||||
Code028 10d8:0f72: (Int032) Item::create(uword, uword)
|
||||
Code028 10d8:1009: (Int036) Item::pop(uword, uword, ubyte)
|
||||
Code028 10d8:1020: (Int037) Item::pop(uword)
|
||||
Code028 10d8:1030: (Int038) Item::pop()
|
||||
Code028 10d8:103a: (Int039) Item::popToEnd(uword)
|
||||
Code028 10d8:104a: (Int035) Item::push()
|
||||
Code028 10d8:105d: (Int03A) Item::destroy()
|
||||
Code028 10d8:1095: (Int03C) Item::destroyContents()
|
||||
Code028 10d8:10c6: (Int03B) Item::removeContents()
|
||||
Code028 10d8:10f7: (Int03E) Item::move(uword, uword, ubyte)
|
||||
Code028 10d8:1167: (Int040) Item::legal_movetopoint(WorldPoint*, uword, uword)
|
||||
Code028 10d8:120b: (Int041) Item::legal_move(uword*, uword)
|
||||
Code028 10d8:1372: (Int03F) Item::move(WorldPoint*)
|
||||
Code028 10d8:1406: (Int058) Item::getDirToCoords(uword, uword)
|
||||
Code028 10d8:1431: (Int059) Item::getDirFromCoords(uword, uword)
|
||||
Code028 10d8:1453: (Int05B) Item::getDirFromItem(uword)
|
||||
Code028 10d8:1489: (Int05A) Item::getDirToItem(uword)
|
||||
Code028 10d8:14bf: (Int023) Item::getFootpad(word*, word*, word*)
|
||||
Code028 10d8:155a: (Int024) Item::touches(uword)
|
||||
Code028 10d8:16fa: (Int025) Item::overlaps(uword)
|
||||
Code028 10d8:1841: (Int026) Item::overlapsXY(uword)
|
||||
Code028 10d8:1936: (Int027) Item::isOn(uword)
|
||||
Code028 10d8:19a8: (Int028) Item::isCompletelyOn(uword)
|
||||
Code028 10d8:1acf: (Int029) Item::isAbove(uword)
|
||||
Code028 10d8:1b41: (Int02A) Item::isUnder(uword)
|
||||
Code028 10d8:1ba9: (Int02B) Item::ascend(word)
|
||||
Code028 10d8:1e82: (Int00C) Item::getPoint(WorldPoint*)
|
||||
Code028 10d8:1ebc: (Int042) Item::isNpc()
|
||||
Code028 10d8:1ed8: (Int043) Item::isInNpc()
|
||||
Code028 10d8:1f3f: (Int002) Item::touch()
|
||||
Code028 10d8:1f9d: (Int021) void Item::orStatus(word mask)
|
||||
Code028 10d8:1fb6: (Int022) void Item::andStatus(word mask)
|
||||
Code028 10d8:1fcf: (Int05C) process Item::look()
|
||||
Code028 10d8:1ffb: (Int05D) process Item::use()
|
||||
Code028 10d8:20d3: (Int060) Item::hit(uword, word)
|
||||
Code028 10d8:211a: (Int061) process Item::gotHit(uword, word)
|
||||
Code028 10d8:2161: (Int05E) process Item::anim()
|
||||
Code028 10d8:2291: (Int049) process Item::bark(char* str)
|
||||
Code028 10d8:23bf: (Int047) Item::grab()
|
||||
Code028 10d8:2455: (Int062) process Item::release()
|
||||
Code028 10d8:2484: (Int063) process Item::equip()
|
||||
Code028 10d8:24b3: (Int064) process Item::unequip()
|
||||
Code028 10d8:24e2: (Int05F) process Item::cachein()
|
||||
Code028 10d8:2519: (Int065) process Item::combine()
|
||||
Code028 10d8:2548: (Int066) process Item::calledFromAnim()
|
||||
Code028 10d8:2577: (Int067) process Item::enterFastArea()
|
||||
Code028 10d8:26b3: (Int068) process Item::leaveFastArea()
|
||||
Code028 10d8:280b: (Int069) process Item::cast(uword)
|
||||
|
||||
Code028 10d8:283e: (Int06A) process Item::justMoved()
|
||||
Code028 10d8:286d: (Int06C) process Item::animGetHit(uword)
|
||||
Code028 10d8:28a0: (Int06D) process Item::guardianBark(word)
|
||||
Code028 10d8:28dd: (Int06B) process Item::AvatarStoleSomething(uword)
|
||||
Code028 10d8:2945: (Int048) Item::findTarget(word, word)
|
||||
Code028 10d8:29c5: (Int04B) word Item::getSliderInput(word min, word max, word step)
|
||||
Code028 10d8:29e1: (Int04A) strptr process Item::ask(uword slist)
|
||||
Code028 10d8:29f7: (Int04C) Item::openGump(word)
|
||||
Code028 10d8:2a91: (Int04D) Item::closeGump()
|
||||
Code028 10d8:2b9a: (Int04E) Item::isGumpOpen()
|
||||
Code028 10d8:329e: (Int053) Item::receiveHit(uword, byte, word, uword)
|
||||
Code028 10d8:4380: (Int03D) Item::isExplosive()
|
||||
Code028 10d8:43d9: (Int054) Item::explode()
|
||||
Code028 10d8:4994: (Int055) Item::canReach(uword, word)
|
||||
Code028 10d8:49d9: (Int056) Item::getRange(uword)
|
||||
Code028 10d8:4b65: (Int057) Item::getRange(uword, uword, uword)
|
||||
Code028 10d8:4e53: (Int045) Item::shoot(WorldPoint*, word, word)
|
||||
|
||||
Code029 10e0:2c23: (Int0D1) getEtherealTop()
|
||||
Code031 10f0:0000: (Int079) MonsterEgg::hatch()
|
||||
Code031 10f0:01e9: (Int07A) MonsterEgg::getMonId()
|
||||
Code031 10f0:01fd: (Int07D) MonsterEgg::setMonId(word)
|
||||
Code031 10f0:022f: (Int07B) MonsterEgg::getActivity()
|
||||
Code031 10f0:0243: (Int07E) MonsterEgg::setActivity(word)
|
||||
Code031 10f0:0272: (Int07C) MonsterEgg::getShapeType()
|
||||
Code031 10f0:0286: (Int07F) MonsterEgg::setShapeType(word)
|
||||
Code032 10f8:0260: (Int080) Npc::isBusy()
|
||||
Code032 10f8:0276: (Int09F) process Npc::doAnim(AnimSet, word, word, ubyte)
|
||||
Code032 10f8:1908: (Int085) Npc::setTarget(uword)
|
||||
Code032 10f8:198d: (Int086) Npc::getTarget()
|
||||
Code032 10f8:19cf: (Int081) Npc::areEnemiesNear()
|
||||
Code032 10f8:1ac9: (Int082) Npc::isInCombat()
|
||||
Code032 10f8:1ae9: (Int087) Npc::setAlignment(ubyte)
|
||||
Code032 10f8:1b29: (Int088) Npc::getAlignment()
|
||||
Code032 10f8:1b45: (Int089) Npc::setEnemyAlignment(ubyte)
|
||||
Code032 10f8:1b85: (Int08A) Npc::getEnemyAlignment()
|
||||
Code032 10f8:1ba1: (Int08C) Npc::isDead()
|
||||
Code032 10f8:1bd2: (Int08D) Npc::setDead()
|
||||
Code032 10f8:1bed: (Int08E) Npc::clrDead()
|
||||
Code032 10f8:1c08: (Int0A1) process Npc::pathfind(uword, uword, uword, uword)
|
||||
Code032 10f8:1c5c: (Int0A2) process Npc::pathfind(uword, uword)
|
||||
Code032 10f8:1c8a: (Int09A) Npc::getNpcSlot()
|
||||
Code032 10f8:1cde: (Int09B) Npc::freeNpcSlot()
|
||||
Code032 10f8:1cf9: (Int0AF) Npc::setAirWalkEnabled(ubyte)
|
||||
Code032 10f8:1d22: (Int0B0) Npc::getAirWalkEnabled()
|
||||
Code032 10f8:1d3f: (Int08F) Npc::isImmortal()
|
||||
Code032 10f8:1d5f: (Int090) Npc::setImmortal()
|
||||
Code032 10f8:1d86: (Int091) Npc::clrImmortal()
|
||||
Code032 10f8:1e64: (Int095) Npc::isFeignDeath()
|
||||
Code032 10f8:1e84: (Int096) Npc::setFeignDeath()
|
||||
Code032 10f8:1f2c: (Int097) Npc::clrFeignDeath()
|
||||
Code032 10f8:21d2: (Int092) Npc::isWithstandDeath()
|
||||
Code032 10f8:21f2: (Int093) Npc::setWithstandDeath()
|
||||
Code032 10f8:220d: (Int094) Npc::clrWithstandDeath()
|
||||
Code032 10f8:2228: (Int08B) Npc::isEnemy(uword)
|
||||
Code032 10f8:230f: (Int0AD) Npc::create(uword, uword)
|
||||
Code032 10f8:2591: (Int0B2) Npc::getEquip(word)
|
||||
Code032 10f8:25c4: (Int0B3) Npc::setEquip(word, uword)
|
||||
Code032 10f8:2696: (Int098) Npc::freeEquip(uword)
|
||||
Code032 10f8:2736: (Int099) Npc::clearEquip()
|
||||
Code032 10f8:276b: (Int09E) Npc::teleport(uword, uword, ubyte, ubyte)
|
||||
Code032 10f8:288c: (Int09D) Npc::getMap()
|
||||
Code032 10f8:28e4: (Int0AE) process Npc::cSetActivity(Activity)
|
||||
Code032 10f8:296e: (Int0B1) Npc::schedule(ulong)
|
||||
Code032 10f8:2f83: (Int083) Npc::setInCombat()
|
||||
Code032 10f8:303c: (Int084) Npc::clrInCombat()
|
||||
Code032 10f8:32f9: (Int0EA) SetAvatarInCombat()
|
||||
Code032 10f8:3309: (Int0E9) ClrAvatarInCombat()
|
||||
Code032 10f8:3319: (Int0EB) IsAvatarInCombat()
|
||||
Code032 10f8:332b: (Int0A3) byte Npc::getStr()
|
||||
Code032 10f8:3344: (Int0A5) byte Npc::getDex()
|
||||
Code032 10f8:335e: (Int0A4) byte Npc::getInt()
|
||||
Code032 10f8:3378: (Int0A6) ubyte Npc::getHp()
|
||||
Code032 10f8:3392: (Int0A7) word Npc::getMana()
|
||||
Code032 10f8:33ac: (Int0A8) void Npc::setStr(byte str)
|
||||
Code032 10f8:33c8: (Int0AA) void Npc::setDex(byte dex)
|
||||
Code032 10f8:33e5: (Int0A9) void Npc::setInt(byte int)
|
||||
Code032 10f8:3402: (Int0AB) void Npc::setHp(ubyte hp)
|
||||
Code032 10f8:341f: (Int0AC) void Npc::setMana(word mana)
|
||||
Code032 10f8:343c: (Int0BC) getName()
|
||||
Code032 10f8:3455: (Int0CF) getAvatarInStasis()
|
||||
Code032 10f8:345d: (Int0D0) setAvatarInStasis(word)
|
||||
Code032 10f8:349a: (Int09C) Npc::getDir()
|
||||
Code032 10f8:34b4: (Int0A0) Npc::getLastAnimSet()
|
||||
Code032 10f8:36ba: (Int0E6) AccumulateStrength(word)
|
||||
Code032 10f8:36cd: (Int0E7) AccumulateIntelligence(word)
|
||||
Code032 10f8:36e0: (Int0E8) AccumulateDexterity(word)
|
||||
Code032 10f8:36f3: (Int0FC) AvatarCanCheat()
|
||||
Code032 10f8:36fb: (Int0FD) MakeAvatarACheater()
|
||||
Code033 1100:05df: (Int0D7) word getFamilyOfType(uword type)
|
||||
Code038 1128:0b61: (Int0FB) TonysBalls(word, word, uword, uword, uword)
|
||||
Code041 1140:19d9: (Int0FA) musicPlay(word)
|
||||
Code041 1140:19fc: (Int0F8) musicStop()
|
||||
Code041 1140:1a01: (Int0F9) musicSlowStop()
|
||||
Code073 1240:0f6b: (Int0F6) soundInit(word, word, word)
|
||||
Code073 1240:1083: (Int0F7) soundDeInit()
|
||||
Code073 1240:16f4: (Int0EC) playSFX(word)
|
||||
Code073 1240:170c: (Int0ED) playSFX(word, ubyte)
|
||||
Code073 1240:176b: (Int0EE) playSFX(word, word, uword)
|
||||
Code073 1240:1786: (Int0EF) playAmbientSFX(word)
|
||||
Code073 1240:179e: (Int0F0) playAmbientSFX(word, word)
|
||||
Code073 1240:17b8: (Int0F1) playAmbientSFX(word, word, uword)
|
||||
Code073 1240:17d3: (Int0F5) stopSFX(word, uword)
|
||||
Code073 1240:17f9: (Int0F4) stopSFX(word)
|
||||
Code073 1240:1840: (Int0F3) setVolumeSFX(word, word)
|
||||
Code073 1240:18b7: (Int0F2) isSFXPlaying(word)
|
||||
Code073 1240:1a6d: (Int0BB) playMusic(byte)
|
||||
|
||||
Code105 1340:0000: (Int0B4) closeAllGumps()
|
||||
Code107 1350:1101: (Int0E4) playEndgame()
|
||||
Code117 13a0:062e: (Int0C9) U8MousePointer::getDir()
|
||||
Code120 13b8:5795: (Int000) process target()
|
||||
Code125 13e0:0000: (Int0B9) numToStr(uword)
|
||||
Code125 13e0:0027: (Int0BA) strToNum(char*)
|
||||
Code126 13e8:151a: (Int0CD) resetRef(uword, uword)
|
||||
Code126 13e8:152d: (Int0CE) setRef(uword, uword, uword)
|
||||
|
||||
Code135 1430:0000: (Int0D5) createSprite(word, word, word, word, word, word, uword, uword, ubyte)
|
||||
Code135 1430:005a: (Int0D6) createSprite(word, word, word, word, uword, uword, ubyte)
|
||||
Code137 1440:1552: (Int0BD) igniteChaos(uword, uword, ubyte)
|
||||
Code143 1470:05d4: (Int0B8) castGrantPeaceSpell()
|
||||
Code144 1478:0d78: (Int0D3) canGetThere(uword, uword, uword)
|
||||
275
tools/unkcoffs/u8_ints.py
Normal file
275
tools/unkcoffs/u8_ints.py
Normal file
|
|
@ -0,0 +1,275 @@
|
|||
intrinsics = [
|
||||
"process target()",
|
||||
"Item::getNext()",
|
||||
"Item::touch()",
|
||||
"word Item::getX()",
|
||||
"word Item::getY()",
|
||||
"word Item::getZ()",
|
||||
"word Item::getCX()",
|
||||
"word Item::getCY()",
|
||||
"word Item::getCZ()",
|
||||
"word Item::Ultima8::getGumpX()",
|
||||
"word Item::Ultima8::getGumpY()",
|
||||
"void Item::setGumpXY(word x, word y)",
|
||||
"Item::getPoint(WorldPoint*)",
|
||||
"uword Item::getType()",
|
||||
"void Item::setType(uword type)",
|
||||
"uword Item::getFrame()",
|
||||
|
||||
"void Item::setFrame(uword frame)",
|
||||
"uword Item::getQuality()",
|
||||
"uword Item::getUnkEggType()",
|
||||
"uword Item::getQuantity()",
|
||||
"Item::getContents()",
|
||||
"Item::getContainer()",
|
||||
"Item::getRootContainer()",
|
||||
"uword Item::getGlobNum()",
|
||||
"void Item::setGlobNum(uword)",
|
||||
"uword Item::getQ()",
|
||||
"void Item::setQ(uword)",
|
||||
"void Item::setQuality(word value)",
|
||||
"void Item::setUnkEggType(word value)",
|
||||
"void Item::setQuantity(word value)",
|
||||
"word Item::getFamily()",
|
||||
"bool Item::getTypeFlag(word bit)",
|
||||
|
||||
"word Item::getStatus()",
|
||||
"void Item::orStatus(word mask)",
|
||||
"void Item::andStatus(word mask)",
|
||||
"Item::getFootpad(word*, word*, word*)",
|
||||
"Item::touches(uword)",
|
||||
"Item::overlaps(uword)",
|
||||
"Item::overlapsXY(uword)",
|
||||
"Item::isOn(uword)",
|
||||
"Item::isCompletelyOn(uword)",
|
||||
"Item::isAbove(uword)",
|
||||
"Item::isUnder(uword)",
|
||||
"Item::ascend(word)",
|
||||
"Item::getWeight()",
|
||||
"Item::getWeightIncludingContents()",
|
||||
"Item::getSurfaceWeight()",
|
||||
"Item::getVolume()",
|
||||
|
||||
"Item::getCapacity()",
|
||||
"Item::legal_create(uword, uword, uword, uword, uword)",
|
||||
"Item::create(uword, uword)",
|
||||
"Item::legal_create(uword, uword, WorldPoint*)",
|
||||
"Item::legal_create(uword, uword, uword, word)",
|
||||
"Item::push()",
|
||||
"Item::pop(uword, uword, ubyte)",
|
||||
"Item::pop(uword)",
|
||||
"Item::pop()",
|
||||
"Item::popToEnd(uword)",
|
||||
"Item::destroy()",
|
||||
"Item::removeContents()",
|
||||
"Item::destroyContents()",
|
||||
"Item::isExplosive()",
|
||||
"Item::move(uword, uword, ubyte)",
|
||||
"Item::move(WorldPoint*)",
|
||||
|
||||
"Item::legal_move(WorldPoint*, uword, uword)",
|
||||
"Item::legal_move(uword*, uword)",
|
||||
"Item::isNpc()",
|
||||
"Item::isInNpc()",
|
||||
"process Item::hurl(word, word, word, word)",
|
||||
"Item::shoot(WorldPoint*, word, word)",
|
||||
"Item::fall()",
|
||||
"Item::grab()",
|
||||
"Item::findTarget(word, word)",
|
||||
"process Item::bark(char* str)",
|
||||
"strptr process Item::ask(uword slist)",
|
||||
"word Item::getSliderInput(word min, word max, word step)",
|
||||
"Item::openGump(word)",
|
||||
"Item::closeGump()",
|
||||
"Item::isGumpOpen()",
|
||||
"Item::getNpcArray()",
|
||||
|
||||
"Item::getMapArray()",
|
||||
"Item::setNpcArray(word)",
|
||||
"Item::setMapArray(word)",
|
||||
"Item::receiveHit(uword, byte, word, uword)",
|
||||
"Item::explode()",
|
||||
"Item::canReach(uword, word)",
|
||||
"Item::getRange(uword)",
|
||||
"Item::getRange(uword, uword, uword)",
|
||||
"Item::getDirToCoords(uword, uword)",
|
||||
"Item::getDirFromCoords(uword, uword)",
|
||||
"Item::getDirToItem(uword)",
|
||||
"Item::getDirFromItem(uword)",
|
||||
"process Item::look()",
|
||||
"process Item::use()",
|
||||
"process Item::anim()",
|
||||
"process Item::cachein()",
|
||||
|
||||
"Item::hit(uword, word)",
|
||||
"process Item::gotHit(uword, word)",
|
||||
"process Item::release()",
|
||||
"process Item::equip()",
|
||||
"process Item::unequip()",
|
||||
"process Item::combine()",
|
||||
"process Item::calledFromAnim()",
|
||||
"process Item::enterFastArea()",
|
||||
"process Item::leaveFastArea()",
|
||||
"process Item::cast(uword)",
|
||||
"process Item::justMoved()",
|
||||
"process Item::AvatarStoleSomething(uword)",
|
||||
"process Item::animGetHit(uword)",
|
||||
"process Item::guardianBark(word)",
|
||||
"process Book::read(char*)",
|
||||
"process Scroll::read(char*)",
|
||||
|
||||
"process Grave::read(word,char*)",
|
||||
"process Plaque::read(word,char*)",
|
||||
"Egg::getEggXRange()",
|
||||
"Egg::getEggYRange()",
|
||||
"Egg::setEggXRange(uword)",
|
||||
"Egg::setEggYRange(uword)",
|
||||
"Egg::getEggId()",
|
||||
"Egg::setEggId(uword)",
|
||||
"Egg::hatch()",
|
||||
"MonsterEgg::hatch()",
|
||||
"MonsterEgg::getMonId()",
|
||||
"MonsterEgg::getActivity()",
|
||||
"MonsterEgg::getShapeType()",
|
||||
"MonsterEgg::setMonId(word)",
|
||||
"MonsterEgg::setActivity(word)",
|
||||
"MonsterEgg::setShapeType(word)",
|
||||
|
||||
"Npc::isBusy()",
|
||||
"Npc::areEnemiesNear()",
|
||||
"Npc::isInCombat()",
|
||||
"Npc::setInCombat()",
|
||||
"Npc::clrInCombat()",
|
||||
"Npc::setTarget(uword)",
|
||||
"Npc::getTarget()",
|
||||
"Npc::setAlignment(ubyte)",
|
||||
"Npc::getAlignment()",
|
||||
"Npc::setEnemyAlignment(ubyte)",
|
||||
"Npc::getEnemyAlignment()",
|
||||
"Npc::isEnemy(uword)",
|
||||
"Npc::isDead()",
|
||||
"Npc::setDead()",
|
||||
"Npc::clrDead()",
|
||||
"Npc::isImmortal()",
|
||||
|
||||
"Npc::setImmortal()",
|
||||
"Npc::clrImmortal()",
|
||||
"Npc::isWithstandDeath()",
|
||||
"Npc::setWithstandDeath()",
|
||||
"Npc::clrWithstandDeath()",
|
||||
"Npc::isFeignDeath()",
|
||||
"Npc::setFeignDeath()",
|
||||
"Npc::clrFeignDeath()",
|
||||
"Npc::freeEquip(uword)",
|
||||
"Npc::clearEquip()",
|
||||
"Npc::getNpcSlot()",
|
||||
"Npc::freeNpcSlot()",
|
||||
"Npc::getDir()",
|
||||
"Npc::getMap()",
|
||||
"Npc::teleport(uword, uword, ubyte, ubyte)",
|
||||
"process Npc::doAnim(AnimSet, word, word, ubyte)",
|
||||
|
||||
"Npc::getLastAnimSet()",
|
||||
"process Npc::pathfind(uword, uword, uword, uword)",
|
||||
"process Npc::pathfind(uword, uword)",
|
||||
"byte Npc::getStr()",
|
||||
"byte Npc::getInt()",
|
||||
"byte Npc::getDex()",
|
||||
"ubyte Npc::getHp()",
|
||||
"word Npc::getMana()",
|
||||
"void Npc::setStr(byte str)",
|
||||
"void Npc::setInt(byte int)",
|
||||
"void Npc::setDex(byte dex)",
|
||||
"void Npc::setHp(ubyte hp)",
|
||||
"void Npc::setMana(word mana)",
|
||||
"Npc::create(uword, uword)",
|
||||
"process Npc::cSetActivity(Activity)",
|
||||
"Npc::setAirWalkEnabled(ubyte)",
|
||||
|
||||
"Npc::getAirWalkEnabled()",
|
||||
"Npc::schedule(ulong)",
|
||||
"Npc::getEquip(word)",
|
||||
"Npc::setEquip(word, uword)",
|
||||
"closeAllGumps()",
|
||||
"process Camera::scrollTo(uword, uword, ubyte, word)",
|
||||
"urandom(word)",
|
||||
"rndRange(word,word)",
|
||||
"castGrantPeaceSpell()",
|
||||
"numToStr(uword)",
|
||||
"strToNum(char*)",
|
||||
"playMusic(byte)",
|
||||
"getName()",
|
||||
"igniteChaos(uword, uword, ubyte)",
|
||||
"Camera::setCenterOn(uword)",
|
||||
"Camera::move_to(uword, uword, ubyte, word)",
|
||||
|
||||
"Camera::move_rel(word, word, word)",
|
||||
"Camera::set_roof(word)",
|
||||
"Camera::roof()",
|
||||
"Camera::getX()",
|
||||
"Camera::getY()",
|
||||
"Camera::getZ()",
|
||||
"Camera::startQuake(word)",
|
||||
"Camera::stopQuake()",
|
||||
"Camera::invertScreen(ubyte)",
|
||||
"U8MousePointer::getDir()",
|
||||
"Kernel::getNumProcesses(uword, ProcessType)",
|
||||
"Kernel::resetRef(uword, ProcessType)",
|
||||
"process teleportToEgg(word, word, ubyte)",
|
||||
"resetRef(uword, uword)",
|
||||
"setRef(uword, uword, uword)",
|
||||
"getAvatarInStasis()",
|
||||
|
||||
"setAvatarInStasis(word)",
|
||||
"getEtherealTop()",
|
||||
"getCurrentTimerTick()",
|
||||
"canGetThere(uword, uword, uword)",
|
||||
"canExistAt(uword, uword, uword, uword, ubyte, uword, word)",
|
||||
"createSprite(word, word, word, word, word, word, uword, uword, ubyte)",
|
||||
"createSprite(word, word, word, word, uword, uword, ubyte)",
|
||||
"word getFamilyOfType(uword type)",
|
||||
"TimeInGameHours()",
|
||||
"TimeInMinutes()",
|
||||
"TimeInSeconds()",
|
||||
"SetTimeInGameHours(word)",
|
||||
"SetTimeInMinutes(long)",
|
||||
"SetTimeInSeconds(long)",
|
||||
"process FadeToBlack()",
|
||||
"process FadeFromBlack()",
|
||||
|
||||
"process FadeToPalette(word, word)",
|
||||
"process LightningBolt()",
|
||||
"process FadeToWhite()",
|
||||
"process FadeFromWhite()",
|
||||
"playEndgame()",
|
||||
"FeedAvatar(word)",
|
||||
"AccumulateStrength(word)",
|
||||
"AccumulateIntelligence(word)",
|
||||
"AccumulateDexterity(word)",
|
||||
"ClrAvatarInCombat()",
|
||||
"SetAvatarInCombat()",
|
||||
"IsAvatarInCombat()",
|
||||
"playSFX(word)",
|
||||
"playSFX(word, ubyte)",
|
||||
"playSFX(word, word, uword)",
|
||||
"playAmbientSFX(word)",
|
||||
|
||||
"playAmbientSFX(word, word)",
|
||||
"playAmbientSFX(word, word, uword)",
|
||||
"isSFXPlaying(word)",
|
||||
"setVolumeSFX(word, word)",
|
||||
"stopSFX(word)",
|
||||
"stopSFX(word, uword)",
|
||||
"soundInit(word, word, word)",
|
||||
"soundDeInit()",
|
||||
"musicStop()",
|
||||
"musicSlowStop()",
|
||||
"musicPlay(word)",
|
||||
"TonysBalls(word, word, uword, uword, uword)",
|
||||
"AvatarCanCheat()",
|
||||
"MakeAvatarACheater()",
|
||||
"isGameRunning()",
|
||||
"unused",
|
||||
|
||||
"unused",
|
||||
]
|
||||
73
tools/unkcoffs/unk_translate.py
Normal file
73
tools/unkcoffs/unk_translate.py
Normal file
|
|
@ -0,0 +1,73 @@
|
|||
#!/usr/bin/env python
|
||||
from struct import unpack
|
||||
from collections import defaultdict
|
||||
|
||||
def print_compare(vals):
|
||||
for ino, (v, i) in enumerate(zip(vals, intrinsics)):
|
||||
print("%s: (Int%03X) %s" % (v, ino, i))
|
||||
|
||||
def load_vals(off_file):
|
||||
f = open(off_file, "rb")
|
||||
offsets = f.read()
|
||||
nints = len(offsets)/4
|
||||
ioff = unpack('i' * nints, offsets)
|
||||
data = []
|
||||
n = 0
|
||||
for i in ioff:
|
||||
seg = (i & 0xffff0000) >> 16
|
||||
off = i & 0xffff
|
||||
data.append((seg, off, n))
|
||||
n = n + 1
|
||||
return data
|
||||
|
||||
|
||||
def main():
|
||||
#new_data = load_vals("remorse_fr_UNKCOFF.DAT")
|
||||
#old_data = load_vals("remorse_UNKCOFF.DAT")
|
||||
#fn_names = open('rem_functions.txt').readlines()
|
||||
new_data = load_vals("regret_demo_UNKCOFF.DAT")
|
||||
old_data = load_vals("regret_UNKCOFF.DAT")
|
||||
fn_names = open('reg_functions.txt').readlines()
|
||||
|
||||
seg_off = 0
|
||||
|
||||
fn_lookup = {(seg, off): n for seg, off, n in old_data}
|
||||
|
||||
used = { }
|
||||
j = 0
|
||||
|
||||
for seg, off, n in new_data:
|
||||
if n % 16 == 0:
|
||||
print('// 0x%03X' % n)
|
||||
|
||||
x = None
|
||||
|
||||
if x is None:
|
||||
x = fn_lookup.get((seg + seg_off, off))
|
||||
if x is None:
|
||||
x = fn_lookup.get((seg, off))
|
||||
if x is None:
|
||||
for i in range(-5, 5):
|
||||
x = fn_lookup.get((seg + seg_off, off + i))
|
||||
if x:
|
||||
break
|
||||
if x is None:
|
||||
for i in range(-15, 15):
|
||||
x = fn_lookup.get((seg + seg_off, off + i))
|
||||
if x:
|
||||
break
|
||||
|
||||
seg_pretty = 0x1000 + (seg - 1)*8
|
||||
if x is None:
|
||||
print('Intrinsic%03X %04x:%04x' % (n, seg_pretty, off))
|
||||
else:
|
||||
if x in used and used[x] != (seg_pretty, off):
|
||||
print('** WARNING: %04x:%04x looked up to %s already used by %04x:%04x' %
|
||||
(seg_pretty, off, fn_names[x].strip(), used[x][0], used[x][1]))
|
||||
used[x] = (seg_pretty, off)
|
||||
|
||||
print('%-31s // Intrinsic%03X %04x:%04x' % (fn_names[x].strip() + ',', n, seg_pretty, off))
|
||||
|
||||
|
||||
|
||||
main()
|
||||
Loading…
Add table
Add a link
Reference in a new issue