diff --git a/assets_generation/update_generic_data.ts b/assets_generation/update_generic_data.ts index 754a5517..fbcc6189 100644 --- a/assets_generation/update_generic_data.ts +++ b/assets_generation/update_generic_data.ts @@ -180,7 +180,9 @@ function params_to_code(params: any[]) { type = "TYPE_REG_REF"; break; case "reg_tup_ref": - type = `new RegTupRefType(${params_to_code(param.reg_tup)})`; + type = `{ kind: Kind.RegTupRef, register_tuples: [${params_to_code( + param.reg_tup + )}] }`; break; case "reg_ref_var": type = "TYPE_REG_REF_VAR"; diff --git a/src/data_formats/parsing/quest/bin.ts b/src/data_formats/parsing/quest/bin.ts index 71c89ee8..d25115b8 100644 --- a/src/data_formats/parsing/quest/bin.ts +++ b/src/data_formats/parsing/quest/bin.ts @@ -2,6 +2,7 @@ import Logger from "js-logger"; import { Endianness } from "../.."; import { ControlFlowGraph } from "../../../scripting/data_flow_analysis/ControlFlowGraph"; import { register_value } from "../../../scripting/data_flow_analysis/register_value"; +import { stack_value } from "../../../scripting/data_flow_analysis/stack_value"; import { Arg, DataSegment, @@ -11,31 +12,12 @@ import { SegmentType, StringSegment, } from "../../../scripting/instructions"; -import { - Opcode, - OPCODES, - RegTupRefType, - StackInteraction, - TYPE_BYTE, - TYPE_DWORD, - TYPE_D_LABEL, - TYPE_FLOAT, - TYPE_I_LABEL, - TYPE_I_LABEL_VAR, - TYPE_LABEL, - TYPE_REF, - TYPE_REG_REF, - TYPE_REG_REF_VAR, - TYPE_STRING, - TYPE_S_LABEL, - TYPE_WORD, -} from "../../../scripting/opcodes"; +import { Kind, Opcode, OPCODES, StackInteraction } from "../../../scripting/opcodes"; import { ArrayBufferCursor } from "../../cursor/ArrayBufferCursor"; import { Cursor } from "../../cursor/Cursor"; import { ResizableBufferCursor } from "../../cursor/ResizableBufferCursor"; import { WritableCursor } from "../../cursor/WritableCursor"; import { ResizableBuffer } from "../../ResizableBuffer"; -import { stack_value } from "../../../scripting/data_flow_analysis/stack_value"; const logger = Logger.get("data_formats/parsing/quest/bin"); @@ -370,8 +352,8 @@ function find_and_parse_segments( for (let i = 0; i < instruction.opcode.params.length; i++) { const param = instruction.opcode.params[i]; - switch (param.type) { - case TYPE_I_LABEL: + switch (param.type.kind) { + case Kind.ILabel: get_arg_label_values( cfg, labels, @@ -380,7 +362,7 @@ function find_and_parse_segments( SegmentType.Instructions ); break; - case TYPE_I_LABEL_VAR: + case Kind.ILabelVar: // Never on the stack. // Eat all remaining arguments. for (; i < instruction.args.length; i++) { @@ -388,31 +370,29 @@ function find_and_parse_segments( } break; - case TYPE_D_LABEL: + case Kind.DLabel: get_arg_label_values(cfg, labels, instruction, i, SegmentType.Data); break; - case TYPE_S_LABEL: + case Kind.SLabel: get_arg_label_values(cfg, labels, instruction, i, SegmentType.String); break; - default: - if (param.type instanceof RegTupRefType) { - // Never on the stack. - const arg = instruction.args[i]; + case Kind.RegTupRef: + // Never on the stack. + const arg = instruction.args[i]; - for (let j = 0; j < param.type.register_tuples.length; j++) { - const reg_tup = param.type.register_tuples[j]; + for (let j = 0; j < param.type.register_tuples.length; j++) { + const reg_tup = param.type.register_tuples[j]; - if (reg_tup.type === TYPE_I_LABEL) { - const label_values = register_value( - cfg, - instruction, - arg.value + j - ); + if (reg_tup.type.kind === Kind.ILabel) { + const label_values = register_value( + cfg, + instruction, + arg.value + j + ); - if (label_values.size() <= 10) { - for (const label of label_values) { - labels.set(label, SegmentType.Instructions); - } + if (label_values.size() <= 10) { + for (const label of label_values) { + labels.set(label, SegmentType.Instructions); } } } @@ -646,26 +626,26 @@ function parse_instruction_arguments(cursor: Cursor, opcode: Opcode): Arg[] { if (opcode.stack !== StackInteraction.Pop) { for (const param of opcode.params) { - switch (param.type) { - case TYPE_BYTE: + switch (param.type.kind) { + case Kind.Byte: args.push({ value: cursor.u8(), size: 1 }); break; - case TYPE_WORD: + case Kind.Word: args.push({ value: cursor.u16(), size: 2 }); break; - case TYPE_DWORD: + case Kind.DWord: args.push({ value: cursor.i32(), size: 4 }); break; - case TYPE_FLOAT: + case Kind.Float: args.push({ value: cursor.f32(), size: 4 }); break; - case TYPE_LABEL: - case TYPE_I_LABEL: - case TYPE_D_LABEL: - case TYPE_S_LABEL: + case Kind.Label: + case Kind.ILabel: + case Kind.DLabel: + case Kind.SLabel: args.push({ value: cursor.u16(), size: 2 }); break; - case TYPE_STRING: + case Kind.String: { const start_pos = cursor.position; args.push({ @@ -678,28 +658,24 @@ function parse_instruction_arguments(cursor: Cursor, opcode: Opcode): Arg[] { }); } break; - case TYPE_I_LABEL_VAR: + case Kind.ILabelVar: { const arg_size = cursor.u8(); args.push(...cursor.u16_array(arg_size).map(value => ({ value, size: 2 }))); } break; - case TYPE_REG_REF: + case Kind.RegRef: + case Kind.RegTupRef: args.push({ value: cursor.u8(), size: 1 }); break; - case TYPE_REG_REF_VAR: + case Kind.RegRefVar: { const arg_size = cursor.u8(); args.push(...cursor.u8_array(arg_size).map(value => ({ value, size: 1 }))); } break; default: - if (param.type instanceof RegTupRefType) { - args.push({ value: cursor.u8(), size: 1 }); - break; - } else { - throw new Error(`Parameter type ${param.type} not implemented.`); - } + throw new Error(`Parameter type ${Kind[param.type.kind]} not implemented.`); } } } @@ -736,61 +712,57 @@ function write_object_code( const args = instruction.param_to_args[i]; const [arg] = args; - switch (param.type) { - case TYPE_BYTE: + switch (param.type.kind) { + case Kind.Byte: if (arg.value >= 0) { cursor.write_u8(arg.value); } else { cursor.write_i8(arg.value); } break; - case TYPE_WORD: + case Kind.Word: if (arg.value >= 0) { cursor.write_u16(arg.value); } else { cursor.write_i16(arg.value); } break; - case TYPE_DWORD: + case Kind.DWord: if (arg.value >= 0) { cursor.write_u32(arg.value); } else { cursor.write_i32(arg.value); } break; - case TYPE_FLOAT: + case Kind.Float: cursor.write_f32(arg.value); break; - case TYPE_LABEL: // Abstract type - case TYPE_I_LABEL: - case TYPE_D_LABEL: - case TYPE_S_LABEL: + case Kind.Label: + case Kind.ILabel: + case Kind.DLabel: + case Kind.SLabel: cursor.write_u16(arg.value); break; - case TYPE_STRING: + case Kind.String: cursor.write_string_utf16(arg.value, arg.size); break; - case TYPE_I_LABEL_VAR: + case Kind.ILabelVar: cursor.write_u8(args.length); cursor.write_u16_array(args.map(arg => arg.value)); break; - case TYPE_REF: // Abstract type - case TYPE_REG_REF: + case Kind.RegRef: + case Kind.RegTupRef: cursor.write_u8(arg.value); break; - case TYPE_REG_REF_VAR: + case Kind.RegRefVar: cursor.write_u8(args.length); cursor.write_u8_array(args.map(arg => arg.value)); break; default: - if (param.type instanceof RegTupRefType) { - cursor.write_u8(arg.value); - } else { - // TYPE_ANY and TYPE_POINTER cannot be serialized. - throw new Error( - `Parameter type ${param.type} not implemented.` - ); - } + // TYPE_ANY, TYPE_VALUE and TYPE_POINTER cannot be serialized. + throw new Error( + `Parameter type ${Kind[param.type.kind]} not implemented.` + ); } } } diff --git a/src/scripting/assembly.ts b/src/scripting/assembly.ts index 047d51d4..750c9bb7 100644 --- a/src/scripting/assembly.ts +++ b/src/scripting/assembly.ts @@ -1,4 +1,5 @@ import Logger from "js-logger"; +import { reinterpret_f32_as_i32 } from "../primitive_conversion"; import { AssemblyLexer, CodeSectionToken, @@ -7,40 +8,21 @@ import { IntToken, LabelToken, RegisterToken, - Token, - TokenType, StringSectionToken, StringToken, + Token, + TokenType, } from "./AssemblyLexer"; import { - Segment, Arg, - InstructionSegment, - SegmentType, - Instruction, DataSegment, + Instruction, + InstructionSegment, + Segment, + SegmentType, StringSegment, } from "./instructions"; -import { - Opcode, - OPCODES_BY_MNEMONIC, - Param, - TYPE_I_LABEL_VAR, - TYPE_REG_REF_VAR, - StackInteraction, - TYPE_BYTE, - TYPE_DWORD, - TYPE_WORD, - TYPE_FLOAT, - TYPE_S_LABEL, - TYPE_D_LABEL, - TYPE_I_LABEL, - TYPE_LABEL, - TYPE_STRING, - TYPE_REG_REF, - RegTupRefType, -} from "./opcodes"; -import { reinterpret_f32_as_i32 } from "../primitive_conversion"; +import { Kind, Opcode, OPCODES_BY_MNEMONIC, Param, StackInteraction } from "./opcodes"; const logger = Logger.get("scripting/assembly"); @@ -400,7 +382,7 @@ class Assembler { } else { const varargs = opcode.params.findIndex( - p => p.type === TYPE_I_LABEL_VAR || p.type === TYPE_REG_REF_VAR + p => p.type.kind === Kind.ILabelVar || p.type.kind === Kind.RegRefVar ) !== -1; const param_count = @@ -464,28 +446,29 @@ class Assembler { const [arg, token] = arg_and_token; if (token.type === TokenType.Register) { - if (param.type instanceof RegTupRefType) { + if (param.type.kind === Kind.RegTupRef) { this.add_instruction(Opcode.ARG_PUSHB, [arg]); } else { this.add_instruction(Opcode.ARG_PUSHR, [arg]); } } else { - switch (param.type) { - case TYPE_BYTE: - case TYPE_REG_REF: + switch (param.type.kind) { + case Kind.Byte: + case Kind.RegRef: + case Kind.RegTupRef: this.add_instruction(Opcode.ARG_PUSHB, [arg]); break; - case TYPE_WORD: - case TYPE_LABEL: - case TYPE_I_LABEL: - case TYPE_D_LABEL: - case TYPE_S_LABEL: + case Kind.Word: + case Kind.Label: + case Kind.ILabel: + case Kind.DLabel: + case Kind.SLabel: this.add_instruction(Opcode.ARG_PUSHW, [arg]); break; - case TYPE_DWORD: + case Kind.DWord: this.add_instruction(Opcode.ARG_PUSHL, [arg]); break; - case TYPE_FLOAT: + case Kind.Float: this.add_instruction(Opcode.ARG_PUSHL, [ { value: reinterpret_f32_as_i32(arg.value), @@ -493,18 +476,15 @@ class Assembler { }, ]); break; - case TYPE_STRING: + case Kind.String: this.add_instruction(Opcode.ARG_PUSHS, [arg]); break; default: - if (param.type instanceof RegTupRefType) { - this.add_instruction(Opcode.ARG_PUSHB, [arg]); - } else { - logger.error( - `Line ${this.line_no}: Type ${param.type} not implemented.` - ); - } - + logger.error( + `Line ${this.line_no}: Type ${ + Kind[param.type.kind] + } not implemented.` + ); break; } } @@ -535,7 +515,7 @@ class Assembler { message: "Expected an argument.", }); } else { - if (param.type !== TYPE_I_LABEL_VAR && param.type !== TYPE_REG_REF_VAR) { + if (param.type.kind !== Kind.ILabelVar && param.type.kind !== Kind.RegRefVar) { param_i++; } } @@ -559,25 +539,25 @@ class Assembler { switch (token.type) { case TokenType.Int: - switch (param.type) { - case TYPE_BYTE: + switch (param.type.kind) { + case Kind.Byte: match = true; this.parse_int(1, token, arg_and_tokens); break; - case TYPE_WORD: - case TYPE_LABEL: - case TYPE_I_LABEL: - case TYPE_D_LABEL: - case TYPE_S_LABEL: - case TYPE_I_LABEL_VAR: + case Kind.Word: + case Kind.Label: + case Kind.ILabel: + case Kind.DLabel: + case Kind.SLabel: + case Kind.ILabelVar: match = true; this.parse_int(2, token, arg_and_tokens); break; - case TYPE_DWORD: + case Kind.DWord: match = true; this.parse_int(4, token, arg_and_tokens); break; - case TYPE_FLOAT: + case Kind.Float: match = true; arg_and_tokens.push([ { @@ -593,7 +573,7 @@ class Assembler { } break; case TokenType.Float: - match = param.type === TYPE_FLOAT; + match = param.type.kind === Kind.Float; if (match) { arg_and_tokens.push([ @@ -609,14 +589,14 @@ class Assembler { case TokenType.Register: match = stack || - param.type === TYPE_REG_REF || - param.type === TYPE_REG_REF_VAR || - param.type instanceof RegTupRefType; + param.type.kind === Kind.RegRef || + param.type.kind === Kind.RegRefVar || + param.type.kind === Kind.RegTupRef; this.parse_register(token, arg_and_tokens); break; case TokenType.String: - match = param.type === TYPE_STRING; + match = param.type.kind === Kind.String; if (match) { arg_and_tokens.push([ @@ -639,44 +619,40 @@ class Assembler { let type_str: string | undefined; - switch (param.type) { - case TYPE_BYTE: + switch (param.type.kind) { + case Kind.Byte: type_str = "a 8-bit integer"; break; - case TYPE_WORD: + case Kind.Word: type_str = "a 16-bit integer"; break; - case TYPE_DWORD: + case Kind.DWord: type_str = "a 32-bit integer"; break; - case TYPE_FLOAT: + case Kind.Float: type_str = "a float"; break; - case TYPE_LABEL: + case Kind.Label: type_str = "a label"; break; - case TYPE_I_LABEL: - case TYPE_I_LABEL_VAR: + case Kind.ILabel: + case Kind.ILabelVar: type_str = "an instruction label"; break; - case TYPE_D_LABEL: + case Kind.DLabel: type_str = "a data label"; break; - case TYPE_S_LABEL: + case Kind.SLabel: type_str = "a string label"; break; - case TYPE_STRING: + case Kind.String: type_str = "a string"; break; - case TYPE_REG_REF: - case TYPE_REG_REF_VAR: + case Kind.RegRef: + case Kind.RegRefVar: + case Kind.RegTupRef: type_str = "a register reference"; break; - default: - if (param.type instanceof RegTupRefType) { - type_str = "a register reference"; - } - break; } if (type_str) { diff --git a/src/scripting/data_flow_analysis/register_value.ts b/src/scripting/data_flow_analysis/register_value.ts index 1c71c306..e8d7d588 100644 --- a/src/scripting/data_flow_analysis/register_value.ts +++ b/src/scripting/data_flow_analysis/register_value.ts @@ -1,11 +1,11 @@ import Logger from "js-logger"; import { Instruction } from "../instructions"; import { + Kind, MAX_SIGNED_DWORD_VALUE, MIN_SIGNED_DWORD_VALUE, Opcode, ParamAccess, - RegTupRefType, } from "../opcodes"; import { BasicBlock, ControlFlowGraph } from "./ControlFlowGraph"; import { ValueSet } from "./ValueSet"; @@ -167,7 +167,7 @@ function find_values( for (let j = 0; j < arg_len; j++) { const param = params[j]; - if (param.type instanceof RegTupRefType) { + if (param.type.kind == Kind.RegTupRef) { const reg_ref = args[j].value; let k = 0; diff --git a/src/scripting/disassembly.ts b/src/scripting/disassembly.ts index a0e838d4..4273e2df 100644 --- a/src/scripting/disassembly.ts +++ b/src/scripting/disassembly.ts @@ -1,15 +1,6 @@ -import { Arg, Segment, SegmentType } from "./instructions"; -import { - Param, - StackInteraction, - TYPE_STRING, - TYPE_I_LABEL_VAR, - TYPE_REG_REF_VAR, - TYPE_REG_REF, - RegTupRefType, - TYPE_FLOAT, -} from "./opcodes"; import { reinterpret_i32_as_f32 } from "../primitive_conversion"; +import { Arg, Segment, SegmentType } from "./instructions"; +import { Kind, Param, StackInteraction } from "./opcodes"; /** * @param manual_stack If true, will output stack management instructions (argpush variants). Otherwise the arguments of stack management instructions will be output as arguments to the instruction that pops them from the stack. @@ -123,8 +114,8 @@ function args_to_strings(params: Param[], args: Arg[], stack: boolean): string[] continue; } - switch (type) { - case TYPE_FLOAT: + switch (type.kind) { + case Kind.Float: // Floats are pushed onto the stack as integers with arg_pushl. if (stack) { arg_strings.push(reinterpret_i32_as_f32(arg.value).toString()); @@ -132,28 +123,25 @@ function args_to_strings(params: Param[], args: Arg[], stack: boolean): string[] arg_strings.push(arg.value.toString()); } break; - case TYPE_I_LABEL_VAR: + case Kind.ILabelVar: for (; i < args.length; i++) { arg_strings.push(args[i].value.toString()); } break; - case TYPE_REG_REF_VAR: + case Kind.RegRefVar: for (; i < args.length; i++) { arg_strings.push("r" + args[i].value); } break; - case TYPE_REG_REF: + case Kind.RegRef: + case Kind.RegTupRef: arg_strings.push("r" + arg.value); break; - case TYPE_STRING: + case Kind.String: arg_strings.push(JSON.stringify(arg.value)); break; default: - if (type instanceof RegTupRefType) { - arg_strings.push("r" + arg.value); - } else { - arg_strings.push(arg.value.toString()); - } + arg_strings.push(arg.value.toString()); break; } } diff --git a/src/scripting/instructions.ts b/src/scripting/instructions.ts index be6cd0e5..236f5fa8 100644 --- a/src/scripting/instructions.ts +++ b/src/scripting/instructions.ts @@ -1,4 +1,4 @@ -import { TYPE_I_LABEL_VAR, TYPE_REG_REF_VAR, Opcode } from "./opcodes"; +import { Kind, Opcode } from "./opcodes"; /** * Instruction invocation. @@ -25,9 +25,9 @@ export class Instruction { const arg = args[i]; this.param_to_args[i] = []; - switch (type) { - case TYPE_I_LABEL_VAR: - case TYPE_REG_REF_VAR: + switch (type.kind) { + case Kind.ILabelVar: + case Kind.RegRefVar: this.arg_size++; for (let j = i; j < args.length; j++) { diff --git a/src/scripting/opcodes.ts b/src/scripting/opcodes.ts index f3348304..064dac84 100644 --- a/src/scripting/opcodes.ts +++ b/src/scripting/opcodes.ts @@ -1,115 +1,167 @@ +/** + * Enumerates all the types that are not purely abstract. + */ +export enum Kind { + Any, + Byte, + Word, + DWord, + Float, + Label, + ILabel, + DLabel, + SLabel, + String, + ILabelVar, + RegRef, + RegTupRef, + RegRefVar, + Pointer, +} + /** * Abstract super type of all types. */ -class AnyType {} +type AnyType = + | ValueType + | RefType + | PointerType + | { + readonly kind: Kind.Any; + }; /** - * Abstract super type of all value types. + * Purely abstract super type of all value types. */ -class ValueType extends AnyType {} +type ValueType = ByteType | WordType | DWordType | FloatType | LabelType; /** * 8-Bit integer. */ -class ByteType extends ValueType {} +type ByteType = { + readonly kind: Kind.Byte; +}; /** * 16-Bit integer. */ -class WordType extends ValueType {} +type WordType = { + readonly kind: Kind.Word; +}; /** * 32-Bit integer. */ -class DWordType extends ValueType {} +type DWordType = { + readonly kind: Kind.DWord; +}; /** * 32-Bit floating point number. */ -class FloatType extends ValueType {} +type FloatType = { + readonly kind: Kind.Float; +}; /** * Abstract super type of all label types. */ -class LabelType extends ValueType {} +type LabelType = + | ILabelType + | DLabelType + | SLabelType + | StringType + | ILabelVarType + | { + readonly kind: Kind.Label; + }; /** * Named reference to an instruction. */ -class ILabelType extends LabelType {} +type ILabelType = { + readonly kind: Kind.ILabel; +}; /** * Named reference to a data segment. */ -class DLabelType extends LabelType {} +type DLabelType = { + readonly kind: Kind.DLabel; +}; /** * Named reference to a string segment. */ -class SLabelType extends LabelType {} +type SLabelType = { + readonly kind: Kind.SLabel; +}; /** * String of arbitrary size. */ -class StringType extends ValueType {} +type StringType = { + readonly kind: Kind.String; +}; /** * Arbitrary amount of instruction labels. */ -class ILabelVarType extends ValueType {} +type ILabelVarType = { + readonly kind: Kind.ILabelVar; +}; /** - * Abstract super type of all reference types. + * Purely abstract super type of all reference types. */ -class RefType extends AnyType {} +type RefType = RegRefType | RegTupRefType | RegRefVarType; /** * Reference to one or more registers. */ -class RegRefType extends RefType {} +type RegRefType = { + readonly kind: Kind.RegRef; +}; /** * Reference to a fixed amount of consecutive registers of specific types. * The only parameterized type. */ -export class RegTupRefType extends RefType { +type RegTupRefType = { + readonly kind: Kind.RegTupRef; readonly register_tuples: Param[]; - - constructor(...register_tuples: Param[]) { - super(); - this.register_tuples = register_tuples; - } -} +}; /** * Arbitrary amount of register references. */ -class RegRefVarType extends RefType {} +type RegRefVarType = { + readonly kind: Kind.RegRefVar; +}; /** * Raw memory pointer. */ -class PointerType extends AnyType {} +type PointerType = { + readonly kind: Kind.Pointer; +}; // Singleton type constants. -// All types except `RegTupRefType` have a single instance. -export const TYPE_ANY = new AnyType(); -export const TYPE_VALUE = new ValueType(); -export const TYPE_BYTE = new ByteType(); -export const TYPE_WORD = new WordType(); -export const TYPE_DWORD = new DWordType(); -export const TYPE_FLOAT = new FloatType(); -export const TYPE_LABEL = new LabelType(); -export const TYPE_I_LABEL = new ILabelType(); -export const TYPE_D_LABEL = new DLabelType(); -export const TYPE_S_LABEL = new SLabelType(); -export const TYPE_STRING = new StringType(); -export const TYPE_I_LABEL_VAR = new ILabelVarType(); -export const TYPE_REF = new RefType(); -export const TYPE_REG_REF = new RegRefType(); -// No singleton constant for `RegTupRefType` because it is parameterized. -export const TYPE_REG_REF_VAR = new RegRefVarType(); -export const TYPE_POINTER = new PointerType(); +// No singleton constant for `RegTupRef` because it is parameterized. +const TYPE_ANY: AnyType = { kind: Kind.Any }; +const TYPE_BYTE: ByteType = { kind: Kind.Byte }; +const TYPE_WORD: WordType = { kind: Kind.Word }; +const TYPE_DWORD: DWordType = { kind: Kind.DWord }; +const TYPE_FLOAT: FloatType = { kind: Kind.Float }; +const TYPE_LABEL: LabelType = { kind: Kind.Label }; +const TYPE_I_LABEL: ILabelType = { kind: Kind.ILabel }; +const TYPE_D_LABEL: DLabelType = { kind: Kind.DLabel }; +const TYPE_S_LABEL: SLabelType = { kind: Kind.SLabel }; +const TYPE_STRING: StringType = { kind: Kind.String }; +const TYPE_I_LABEL_VAR: ILabelVarType = { kind: Kind.ILabelVar }; +const TYPE_REG_REF: RegRefType = { kind: Kind.RegRef }; +const TYPE_REG_REF_VAR: RegRefVarType = { kind: Kind.RegRefVar }; +const TYPE_POINTER: PointerType = { kind: Kind.Pointer }; export const MIN_SIGNED_DWORD_VALUE = -Math.pow(2, 31); export const MAX_SIGNED_DWORD_VALUE = Math.pow(2, 31) - 1; @@ -125,15 +177,15 @@ export enum ParamAccess { } export class Param { - type: AnyType; + readonly type: AnyType; /** * Documentation string. */ - doc?: string; + readonly doc?: string; /** * The way referenced registers are accessed by the instruction. Only set when type is a register reference. */ - access?: ParamAccess; + readonly access?: ParamAccess; constructor(type: AnyType, doc?: string, access?: ParamAccess) { this.type = type; @@ -257,12 +309,18 @@ export class Opcode { "Sets the first register's value to second one's value.", [ new Param( - new RegTupRefType(new Param(TYPE_DWORD, undefined, ParamAccess.Write)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_DWORD, undefined, ParamAccess.Write)], + }, undefined, undefined ), new Param( - new RegTupRefType(new Param(TYPE_DWORD, undefined, ParamAccess.Read)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_DWORD, undefined, ParamAccess.Read)], + }, undefined, undefined ), @@ -275,7 +333,10 @@ export class Opcode { "Sets a register to the given value.", [ new Param( - new RegTupRefType(new Param(TYPE_DWORD, undefined, ParamAccess.Write)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_DWORD, undefined, ParamAccess.Write)], + }, undefined, undefined ), @@ -289,7 +350,10 @@ export class Opcode { "Sets a register to the given value.", [ new Param( - new RegTupRefType(new Param(TYPE_BYTE, undefined, ParamAccess.Write)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_BYTE, undefined, ParamAccess.Write)], + }, undefined, undefined ), @@ -303,7 +367,10 @@ export class Opcode { "Sets a register to the given value.", [ new Param( - new RegTupRefType(new Param(TYPE_WORD, undefined, ParamAccess.Write)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_WORD, undefined, ParamAccess.Write)], + }, undefined, undefined ), @@ -317,12 +384,18 @@ export class Opcode { "Sets the first register to the memory address of the second register. Not used by Sega.", [ new Param( - new RegTupRefType(new Param(TYPE_POINTER, undefined, ParamAccess.Write)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_POINTER, undefined, ParamAccess.Write)], + }, undefined, undefined ), new Param( - new RegTupRefType(new Param(TYPE_ANY, undefined, ParamAccess.Read)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_ANY, undefined, ParamAccess.Read)], + }, undefined, undefined ), @@ -335,7 +408,10 @@ export class Opcode { "Sets a register to the memory address of the given label. Not used by Sega.", [ new Param( - new RegTupRefType(new Param(TYPE_POINTER, undefined, ParamAccess.Write)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_POINTER, undefined, ParamAccess.Write)], + }, undefined, undefined ), @@ -363,7 +439,10 @@ export class Opcode { "Sets a register to 1.", [ new Param( - new RegTupRefType(new Param(TYPE_DWORD, undefined, ParamAccess.Write)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_DWORD, undefined, ParamAccess.Write)], + }, undefined, undefined ), @@ -376,7 +455,10 @@ export class Opcode { "Sets a register to 0.", [ new Param( - new RegTupRefType(new Param(TYPE_DWORD, undefined, ParamAccess.Write)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_DWORD, undefined, ParamAccess.Write)], + }, undefined, undefined ), @@ -389,7 +471,10 @@ export class Opcode { "Sets a register to 1 if its current value is 0, otherwise sets it to 0.", [ new Param( - new RegTupRefType(new Param(TYPE_DWORD, undefined, ParamAccess.ReadWrite)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_DWORD, undefined, ParamAccess.ReadWrite)], + }, undefined, undefined ), @@ -431,7 +516,10 @@ export class Opcode { [ new Param(TYPE_WORD, undefined, undefined), new Param( - new RegTupRefType(new Param(TYPE_WORD, undefined, ParamAccess.Write)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_WORD, undefined, ParamAccess.Write)], + }, undefined, undefined ), @@ -444,12 +532,18 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType(new Param(TYPE_DWORD, undefined, ParamAccess.Write)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_DWORD, undefined, ParamAccess.Write)], + }, undefined, undefined ), new Param( - new RegTupRefType(new Param(TYPE_DWORD, undefined, ParamAccess.Read)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_DWORD, undefined, ParamAccess.Read)], + }, undefined, undefined ), @@ -462,7 +556,10 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType(new Param(TYPE_DWORD, undefined, ParamAccess.Write)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_DWORD, undefined, ParamAccess.Write)], + }, undefined, undefined ), @@ -476,12 +573,18 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType(new Param(TYPE_DWORD, undefined, ParamAccess.Write)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_DWORD, undefined, ParamAccess.Write)], + }, undefined, undefined ), new Param( - new RegTupRefType(new Param(TYPE_DWORD, undefined, ParamAccess.Read)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_DWORD, undefined, ParamAccess.Read)], + }, undefined, undefined ), @@ -494,7 +597,10 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType(new Param(TYPE_DWORD, undefined, ParamAccess.Write)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_DWORD, undefined, ParamAccess.Write)], + }, undefined, undefined ), @@ -508,12 +614,18 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType(new Param(TYPE_DWORD, undefined, ParamAccess.Write)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_DWORD, undefined, ParamAccess.Write)], + }, undefined, undefined ), new Param( - new RegTupRefType(new Param(TYPE_DWORD, undefined, ParamAccess.Read)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_DWORD, undefined, ParamAccess.Read)], + }, undefined, undefined ), @@ -526,7 +638,10 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType(new Param(TYPE_DWORD, undefined, ParamAccess.Write)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_DWORD, undefined, ParamAccess.Write)], + }, undefined, undefined ), @@ -540,12 +655,18 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType(new Param(TYPE_DWORD, undefined, ParamAccess.Write)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_DWORD, undefined, ParamAccess.Write)], + }, undefined, undefined ), new Param( - new RegTupRefType(new Param(TYPE_DWORD, undefined, ParamAccess.Read)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_DWORD, undefined, ParamAccess.Read)], + }, undefined, undefined ), @@ -558,7 +679,10 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType(new Param(TYPE_DWORD, undefined, ParamAccess.Write)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_DWORD, undefined, ParamAccess.Write)], + }, undefined, undefined ), @@ -572,12 +696,18 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType(new Param(TYPE_DWORD, undefined, ParamAccess.Write)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_DWORD, undefined, ParamAccess.Write)], + }, undefined, undefined ), new Param( - new RegTupRefType(new Param(TYPE_DWORD, undefined, ParamAccess.Read)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_DWORD, undefined, ParamAccess.Read)], + }, undefined, undefined ), @@ -590,7 +720,10 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType(new Param(TYPE_DWORD, undefined, ParamAccess.Write)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_DWORD, undefined, ParamAccess.Write)], + }, undefined, undefined ), @@ -604,12 +737,18 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType(new Param(TYPE_DWORD, undefined, ParamAccess.Write)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_DWORD, undefined, ParamAccess.Write)], + }, undefined, undefined ), new Param( - new RegTupRefType(new Param(TYPE_DWORD, undefined, ParamAccess.Read)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_DWORD, undefined, ParamAccess.Read)], + }, undefined, undefined ), @@ -622,7 +761,10 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType(new Param(TYPE_DWORD, undefined, ParamAccess.Write)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_DWORD, undefined, ParamAccess.Write)], + }, undefined, undefined ), @@ -636,12 +778,18 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType(new Param(TYPE_DWORD, undefined, ParamAccess.Write)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_DWORD, undefined, ParamAccess.Write)], + }, undefined, undefined ), new Param( - new RegTupRefType(new Param(TYPE_DWORD, undefined, ParamAccess.Read)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_DWORD, undefined, ParamAccess.Read)], + }, undefined, undefined ), @@ -654,7 +802,10 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType(new Param(TYPE_DWORD, undefined, ParamAccess.Write)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_DWORD, undefined, ParamAccess.Write)], + }, undefined, undefined ), @@ -668,12 +819,18 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType(new Param(TYPE_DWORD, undefined, ParamAccess.Write)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_DWORD, undefined, ParamAccess.Write)], + }, undefined, undefined ), new Param( - new RegTupRefType(new Param(TYPE_DWORD, undefined, ParamAccess.Read)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_DWORD, undefined, ParamAccess.Read)], + }, undefined, undefined ), @@ -686,7 +843,10 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType(new Param(TYPE_DWORD, undefined, ParamAccess.Write)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_DWORD, undefined, ParamAccess.Write)], + }, undefined, undefined ), @@ -734,12 +894,18 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType(new Param(TYPE_ANY, undefined, ParamAccess.Read)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_ANY, undefined, ParamAccess.Read)], + }, undefined, undefined ), new Param( - new RegTupRefType(new Param(TYPE_ANY, undefined, ParamAccess.Read)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_ANY, undefined, ParamAccess.Read)], + }, undefined, undefined ), @@ -753,7 +919,10 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType(new Param(TYPE_DWORD, undefined, ParamAccess.Read)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_DWORD, undefined, ParamAccess.Read)], + }, undefined, undefined ), @@ -768,12 +937,18 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType(new Param(TYPE_ANY, undefined, ParamAccess.Read)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_ANY, undefined, ParamAccess.Read)], + }, undefined, undefined ), new Param( - new RegTupRefType(new Param(TYPE_ANY, undefined, ParamAccess.Read)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_ANY, undefined, ParamAccess.Read)], + }, undefined, undefined ), @@ -787,7 +962,10 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType(new Param(TYPE_DWORD, undefined, ParamAccess.Read)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_DWORD, undefined, ParamAccess.Read)], + }, undefined, undefined ), @@ -802,12 +980,18 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType(new Param(TYPE_DWORD, undefined, ParamAccess.Read)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_DWORD, undefined, ParamAccess.Read)], + }, undefined, undefined ), new Param( - new RegTupRefType(new Param(TYPE_DWORD, undefined, ParamAccess.Read)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_DWORD, undefined, ParamAccess.Read)], + }, undefined, undefined ), @@ -821,7 +1005,10 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType(new Param(TYPE_DWORD, undefined, ParamAccess.Read)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_DWORD, undefined, ParamAccess.Read)], + }, undefined, undefined ), @@ -836,12 +1023,18 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType(new Param(TYPE_DWORD, undefined, ParamAccess.Read)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_DWORD, undefined, ParamAccess.Read)], + }, undefined, undefined ), new Param( - new RegTupRefType(new Param(TYPE_DWORD, undefined, ParamAccess.Read)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_DWORD, undefined, ParamAccess.Read)], + }, undefined, undefined ), @@ -855,7 +1048,10 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType(new Param(TYPE_DWORD, undefined, ParamAccess.Read)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_DWORD, undefined, ParamAccess.Read)], + }, undefined, undefined ), @@ -870,12 +1066,18 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType(new Param(TYPE_DWORD, undefined, ParamAccess.Read)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_DWORD, undefined, ParamAccess.Read)], + }, undefined, undefined ), new Param( - new RegTupRefType(new Param(TYPE_DWORD, undefined, ParamAccess.Read)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_DWORD, undefined, ParamAccess.Read)], + }, undefined, undefined ), @@ -889,7 +1091,10 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType(new Param(TYPE_DWORD, undefined, ParamAccess.Read)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_DWORD, undefined, ParamAccess.Read)], + }, undefined, undefined ), @@ -904,12 +1109,18 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType(new Param(TYPE_DWORD, undefined, ParamAccess.Read)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_DWORD, undefined, ParamAccess.Read)], + }, undefined, undefined ), new Param( - new RegTupRefType(new Param(TYPE_DWORD, undefined, ParamAccess.Read)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_DWORD, undefined, ParamAccess.Read)], + }, undefined, undefined ), @@ -923,7 +1134,10 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType(new Param(TYPE_DWORD, undefined, ParamAccess.Read)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_DWORD, undefined, ParamAccess.Read)], + }, undefined, undefined ), @@ -938,12 +1152,18 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType(new Param(TYPE_DWORD, undefined, ParamAccess.Read)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_DWORD, undefined, ParamAccess.Read)], + }, undefined, undefined ), new Param( - new RegTupRefType(new Param(TYPE_DWORD, undefined, ParamAccess.Read)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_DWORD, undefined, ParamAccess.Read)], + }, undefined, undefined ), @@ -957,7 +1177,10 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType(new Param(TYPE_DWORD, undefined, ParamAccess.Read)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_DWORD, undefined, ParamAccess.Read)], + }, undefined, undefined ), @@ -972,12 +1195,18 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType(new Param(TYPE_DWORD, undefined, ParamAccess.Read)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_DWORD, undefined, ParamAccess.Read)], + }, undefined, undefined ), new Param( - new RegTupRefType(new Param(TYPE_DWORD, undefined, ParamAccess.Read)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_DWORD, undefined, ParamAccess.Read)], + }, undefined, undefined ), @@ -991,7 +1220,10 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType(new Param(TYPE_DWORD, undefined, ParamAccess.Read)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_DWORD, undefined, ParamAccess.Read)], + }, undefined, undefined ), @@ -1006,12 +1238,18 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType(new Param(TYPE_DWORD, undefined, ParamAccess.Read)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_DWORD, undefined, ParamAccess.Read)], + }, undefined, undefined ), new Param( - new RegTupRefType(new Param(TYPE_DWORD, undefined, ParamAccess.Read)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_DWORD, undefined, ParamAccess.Read)], + }, undefined, undefined ), @@ -1025,7 +1263,10 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType(new Param(TYPE_DWORD, undefined, ParamAccess.Read)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_DWORD, undefined, ParamAccess.Read)], + }, undefined, undefined ), @@ -1040,12 +1281,18 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType(new Param(TYPE_DWORD, undefined, ParamAccess.Read)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_DWORD, undefined, ParamAccess.Read)], + }, undefined, undefined ), new Param( - new RegTupRefType(new Param(TYPE_DWORD, undefined, ParamAccess.Read)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_DWORD, undefined, ParamAccess.Read)], + }, undefined, undefined ), @@ -1059,7 +1306,10 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType(new Param(TYPE_DWORD, undefined, ParamAccess.Read)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_DWORD, undefined, ParamAccess.Read)], + }, undefined, undefined ), @@ -1074,7 +1324,10 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType(new Param(TYPE_DWORD, undefined, ParamAccess.Read)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_DWORD, undefined, ParamAccess.Read)], + }, undefined, undefined ), @@ -1088,7 +1341,10 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType(new Param(TYPE_DWORD, undefined, ParamAccess.Read)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_DWORD, undefined, ParamAccess.Read)], + }, undefined, undefined ), @@ -1102,7 +1358,10 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType(new Param(TYPE_ANY, undefined, ParamAccess.Read)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_ANY, undefined, ParamAccess.Read)], + }, undefined, undefined ), @@ -1115,7 +1374,10 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType(new Param(TYPE_ANY, undefined, ParamAccess.Write)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_ANY, undefined, ParamAccess.Write)], + }, undefined, undefined ), @@ -1162,7 +1424,10 @@ export class Opcode { "Pushes the value of the given register onto the stack.", [ new Param( - new RegTupRefType(new Param(TYPE_ANY, undefined, ParamAccess.Read)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_ANY, undefined, ParamAccess.Read)], + }, undefined, undefined ), @@ -1196,7 +1461,10 @@ export class Opcode { "Pushes the memory address of the given register onto the stack. Not used by Sega.", [ new Param( - new RegTupRefType(new Param(TYPE_ANY, undefined, ParamAccess.Read)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_ANY, undefined, ParamAccess.Read)], + }, undefined, undefined ), @@ -1223,12 +1491,18 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType(new Param(TYPE_ANY, undefined, ParamAccess.Read)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_ANY, undefined, ParamAccess.Read)], + }, undefined, undefined ), new Param( - new RegTupRefType(new Param(TYPE_ANY, undefined, ParamAccess.Read)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_ANY, undefined, ParamAccess.Read)], + }, undefined, undefined ), @@ -1248,7 +1522,10 @@ export class Opcode { "Used to display a list of items and retrieve the item selected by the player.\nList items should be seperated by newlines. The selected item's index will be written to the given register.", [ new Param( - new RegTupRefType(new Param(TYPE_BYTE, undefined, ParamAccess.Write)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_BYTE, undefined, ParamAccess.Write)], + }, undefined, undefined ), @@ -1327,7 +1604,10 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType(new Param(TYPE_DWORD, undefined, ParamAccess.Write)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_DWORD, undefined, ParamAccess.Write)], + }, undefined, undefined ), @@ -1348,7 +1628,10 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType(new Param(TYPE_ANY, undefined, ParamAccess.Read)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_ANY, undefined, ParamAccess.Read)], + }, undefined, undefined ), @@ -1396,14 +1679,17 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType( - new Param(TYPE_ANY, undefined, ParamAccess.Read), - new Param(TYPE_ANY, undefined, ParamAccess.Read), - new Param(TYPE_ANY, undefined, ParamAccess.Read), - new Param(TYPE_I_LABEL, undefined, ParamAccess.Read), - new Param(TYPE_ANY, undefined, ParamAccess.Read), - new Param(TYPE_ANY, undefined, ParamAccess.Read) - ), + { + kind: Kind.RegTupRef, + register_tuples: [ + new Param(TYPE_ANY, undefined, ParamAccess.Read), + new Param(TYPE_ANY, undefined, ParamAccess.Read), + new Param(TYPE_ANY, undefined, ParamAccess.Read), + new Param(TYPE_I_LABEL, undefined, ParamAccess.Read), + new Param(TYPE_ANY, undefined, ParamAccess.Read), + new Param(TYPE_ANY, undefined, ParamAccess.Read), + ], + }, undefined, undefined ), @@ -1430,7 +1716,10 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType(new Param(TYPE_ANY, undefined, ParamAccess.Read)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_ANY, undefined, ParamAccess.Read)], + }, undefined, undefined ), @@ -1444,7 +1733,10 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType(new Param(TYPE_DWORD, undefined, ParamAccess.Write)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_DWORD, undefined, ParamAccess.Write)], + }, undefined, undefined ), @@ -1472,7 +1764,10 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType(new Param(TYPE_ANY, undefined, ParamAccess.Read)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_ANY, undefined, ParamAccess.Read)], + }, undefined, undefined ), @@ -1536,12 +1831,15 @@ export class Opcode { [ new Param(TYPE_DWORD, "Player slot.", undefined), new Param( - new RegTupRefType( - new Param(TYPE_DWORD, "X coordinate.", ParamAccess.Read), - new Param(TYPE_DWORD, "Y coordinate.", ParamAccess.Read), - new Param(TYPE_DWORD, "Z coordinate.", ParamAccess.Read), - new Param(TYPE_DWORD, "Y-axis rotation.", ParamAccess.Read) - ), + { + kind: Kind.RegTupRef, + register_tuples: [ + new Param(TYPE_DWORD, "X coordinate.", ParamAccess.Read), + new Param(TYPE_DWORD, "Y coordinate.", ParamAccess.Read), + new Param(TYPE_DWORD, "Z coordinate.", ParamAccess.Read), + new Param(TYPE_DWORD, "Y-axis rotation.", ParamAccess.Read), + ], + }, undefined, undefined ), @@ -1568,7 +1866,10 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType(new Param(TYPE_ANY, undefined, ParamAccess.Read)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_ANY, undefined, ParamAccess.Read)], + }, undefined, undefined ), @@ -1588,7 +1889,10 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType(new Param(TYPE_ANY, undefined, ParamAccess.Read)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_ANY, undefined, ParamAccess.Read)], + }, undefined, undefined ), @@ -1601,7 +1905,10 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType(new Param(TYPE_ANY, undefined, ParamAccess.Read)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_ANY, undefined, ParamAccess.Read)], + }, undefined, undefined ), @@ -1614,7 +1921,10 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType(new Param(TYPE_ANY, undefined, ParamAccess.Read)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_ANY, undefined, ParamAccess.Read)], + }, undefined, undefined ), @@ -1634,7 +1944,10 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType(new Param(TYPE_ANY, undefined, ParamAccess.Read)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_ANY, undefined, ParamAccess.Read)], + }, undefined, undefined ), @@ -1675,13 +1988,16 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType( - new Param(TYPE_DWORD, undefined, ParamAccess.Read), - new Param(TYPE_DWORD, undefined, ParamAccess.Read), - new Param(TYPE_DWORD, undefined, ParamAccess.Read), - new Param(TYPE_DWORD, undefined, ParamAccess.Read), - new Param(TYPE_DWORD, undefined, ParamAccess.Read) - ), + { + kind: Kind.RegTupRef, + register_tuples: [ + new Param(TYPE_DWORD, undefined, ParamAccess.Read), + new Param(TYPE_DWORD, undefined, ParamAccess.Read), + new Param(TYPE_DWORD, undefined, ParamAccess.Read), + new Param(TYPE_DWORD, undefined, ParamAccess.Read), + new Param(TYPE_DWORD, undefined, ParamAccess.Read), + ], + }, undefined, undefined ), @@ -1708,12 +2024,15 @@ export class Opcode { "Create a telepipe at a specific position for the given player slot that takes players back to Pioneer 2 or the Lab.", [ new Param( - new RegTupRefType( - new Param(TYPE_DWORD, "X coordinate.", ParamAccess.Read), - new Param(TYPE_DWORD, "Y coordinate.", ParamAccess.Read), - new Param(TYPE_DWORD, "Z coordinate.", ParamAccess.Read), - new Param(TYPE_DWORD, "Player slot.", ParamAccess.Read) - ), + { + kind: Kind.RegTupRef, + register_tuples: [ + new Param(TYPE_DWORD, "X coordinate.", ParamAccess.Read), + new Param(TYPE_DWORD, "Y coordinate.", ParamAccess.Read), + new Param(TYPE_DWORD, "Z coordinate.", ParamAccess.Read), + new Param(TYPE_DWORD, "Player slot.", ParamAccess.Read), + ], + }, undefined, undefined ), @@ -1726,15 +2045,21 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType(new Param(TYPE_DWORD, undefined, ParamAccess.Write)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_DWORD, undefined, ParamAccess.Write)], + }, undefined, undefined ), new Param( - new RegTupRefType( - new Param(TYPE_DWORD, undefined, ParamAccess.Read), - new Param(TYPE_DWORD, undefined, ParamAccess.Read) - ), + { + kind: Kind.RegTupRef, + register_tuples: [ + new Param(TYPE_DWORD, undefined, ParamAccess.Read), + new Param(TYPE_DWORD, undefined, ParamAccess.Read), + ], + }, undefined, undefined ), @@ -1747,7 +2072,10 @@ export class Opcode { "Retrieves the amount of enemies killed during the quest.", [ new Param( - new RegTupRefType(new Param(TYPE_DWORD, undefined, ParamAccess.Write)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_DWORD, undefined, ParamAccess.Write)], + }, undefined, undefined ), @@ -1760,11 +2088,14 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType( - new Param(TYPE_DWORD, undefined, ParamAccess.Read), - new Param(TYPE_DWORD, undefined, ParamAccess.Read), - new Param(TYPE_DWORD, undefined, ParamAccess.Read) - ), + { + kind: Kind.RegTupRef, + register_tuples: [ + new Param(TYPE_DWORD, undefined, ParamAccess.Read), + new Param(TYPE_DWORD, undefined, ParamAccess.Read), + new Param(TYPE_DWORD, undefined, ParamAccess.Read), + ], + }, undefined, undefined ), @@ -1777,12 +2108,15 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType( - new Param(TYPE_DWORD, undefined, ParamAccess.Read), - new Param(TYPE_DWORD, undefined, ParamAccess.Read), - new Param(TYPE_DWORD, undefined, ParamAccess.Read), - new Param(TYPE_DWORD, undefined, ParamAccess.Read) - ), + { + kind: Kind.RegTupRef, + register_tuples: [ + new Param(TYPE_DWORD, undefined, ParamAccess.Read), + new Param(TYPE_DWORD, undefined, ParamAccess.Read), + new Param(TYPE_DWORD, undefined, ParamAccess.Read), + new Param(TYPE_DWORD, undefined, ParamAccess.Read), + ], + }, undefined, undefined ), @@ -1795,13 +2129,16 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType( - new Param(TYPE_DWORD, undefined, ParamAccess.Read), - new Param(TYPE_DWORD, undefined, ParamAccess.Read), - new Param(TYPE_DWORD, undefined, ParamAccess.Read), - new Param(TYPE_DWORD, undefined, ParamAccess.Read), - new Param(TYPE_I_LABEL, undefined, ParamAccess.Read) - ), + { + kind: Kind.RegTupRef, + register_tuples: [ + new Param(TYPE_DWORD, undefined, ParamAccess.Read), + new Param(TYPE_DWORD, undefined, ParamAccess.Read), + new Param(TYPE_DWORD, undefined, ParamAccess.Read), + new Param(TYPE_DWORD, undefined, ParamAccess.Read), + new Param(TYPE_I_LABEL, undefined, ParamAccess.Read), + ], + }, undefined, undefined ), @@ -1814,13 +2151,16 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType( - new Param(TYPE_DWORD, undefined, ParamAccess.Read), - new Param(TYPE_DWORD, undefined, ParamAccess.Read), - new Param(TYPE_DWORD, undefined, ParamAccess.Read), - new Param(TYPE_DWORD, undefined, ParamAccess.Read), - new Param(TYPE_I_LABEL, undefined, ParamAccess.Read) - ), + { + kind: Kind.RegTupRef, + register_tuples: [ + new Param(TYPE_DWORD, undefined, ParamAccess.Read), + new Param(TYPE_DWORD, undefined, ParamAccess.Read), + new Param(TYPE_DWORD, undefined, ParamAccess.Read), + new Param(TYPE_DWORD, undefined, ParamAccess.Read), + new Param(TYPE_I_LABEL, undefined, ParamAccess.Read), + ], + }, undefined, undefined ), @@ -1833,13 +2173,16 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType( - new Param(TYPE_DWORD, undefined, ParamAccess.Read), - new Param(TYPE_DWORD, undefined, ParamAccess.Read), - new Param(TYPE_DWORD, undefined, ParamAccess.Read), - new Param(TYPE_DWORD, undefined, ParamAccess.Read), - new Param(TYPE_I_LABEL, undefined, ParamAccess.Read) - ), + { + kind: Kind.RegTupRef, + register_tuples: [ + new Param(TYPE_DWORD, undefined, ParamAccess.Read), + new Param(TYPE_DWORD, undefined, ParamAccess.Read), + new Param(TYPE_DWORD, undefined, ParamAccess.Read), + new Param(TYPE_DWORD, undefined, ParamAccess.Read), + new Param(TYPE_I_LABEL, undefined, ParamAccess.Read), + ], + }, undefined, undefined ), @@ -1852,7 +2195,10 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType(new Param(TYPE_ANY, undefined, ParamAccess.Read)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_ANY, undefined, ParamAccess.Read)], + }, undefined, undefined ), @@ -1893,19 +2239,25 @@ export class Opcode { "Creates a targetable object.", [ new Param( - new RegTupRefType( - new Param(TYPE_DWORD, "X coordinate.", ParamAccess.Read), - new Param(TYPE_DWORD, "Y coordinate.", ParamAccess.Read), - new Param(TYPE_DWORD, "Z coordinate.", ParamAccess.Read), - new Param(TYPE_DWORD, "Collision radius.", ParamAccess.Read), - new Param(TYPE_I_LABEL, "Function label.", ParamAccess.Read), - new Param(TYPE_DWORD, "Vertical position of the cursor.", ParamAccess.Read) - ), + { + kind: Kind.RegTupRef, + register_tuples: [ + new Param(TYPE_DWORD, "X coordinate.", ParamAccess.Read), + new Param(TYPE_DWORD, "Y coordinate.", ParamAccess.Read), + new Param(TYPE_DWORD, "Z coordinate.", ParamAccess.Read), + new Param(TYPE_DWORD, "Collision radius.", ParamAccess.Read), + new Param(TYPE_I_LABEL, "Function label.", ParamAccess.Read), + new Param(TYPE_DWORD, "Vertical position of the cursor.", ParamAccess.Read), + ], + }, undefined, undefined ), new Param( - new RegTupRefType(new Param(TYPE_ANY, undefined, ParamAccess.Write)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_ANY, undefined, ParamAccess.Write)], + }, "Object handle.", undefined ), @@ -1935,7 +2287,10 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType(new Param(TYPE_ANY, undefined, ParamAccess.Read)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_ANY, undefined, ParamAccess.Read)], + }, undefined, undefined ), @@ -2060,7 +2415,10 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType(new Param(TYPE_ANY, undefined, ParamAccess.Read)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_ANY, undefined, ParamAccess.Read)], + }, undefined, undefined ), @@ -2136,7 +2494,10 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType(new Param(TYPE_ANY, undefined, ParamAccess.Read)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_ANY, undefined, ParamAccess.Read)], + }, "Object handle.", undefined ), @@ -2149,12 +2510,18 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType(new Param(TYPE_ANY, undefined, ParamAccess.Read)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_ANY, undefined, ParamAccess.Read)], + }, undefined, undefined ), new Param( - new RegTupRefType(new Param(TYPE_ANY, undefined, ParamAccess.Read)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_ANY, undefined, ParamAccess.Read)], + }, undefined, undefined ), @@ -2167,12 +2534,18 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType(new Param(TYPE_ANY, undefined, ParamAccess.Read)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_ANY, undefined, ParamAccess.Read)], + }, undefined, undefined ), new Param( - new RegTupRefType(new Param(TYPE_ANY, undefined, ParamAccess.Read)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_ANY, undefined, ParamAccess.Read)], + }, undefined, undefined ), @@ -2185,12 +2558,18 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType(new Param(TYPE_ANY, undefined, ParamAccess.Read)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_ANY, undefined, ParamAccess.Read)], + }, undefined, undefined ), new Param( - new RegTupRefType(new Param(TYPE_ANY, undefined, ParamAccess.Read)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_ANY, undefined, ParamAccess.Read)], + }, undefined, undefined ), @@ -2203,16 +2582,22 @@ export class Opcode { "Deletes an item from the player's inventory.", [ new Param( - new RegTupRefType( - new Param(TYPE_DWORD, undefined, ParamAccess.Read), - new Param(TYPE_DWORD, undefined, ParamAccess.Read), - new Param(TYPE_DWORD, undefined, ParamAccess.Read) - ), + { + kind: Kind.RegTupRef, + register_tuples: [ + new Param(TYPE_DWORD, undefined, ParamAccess.Read), + new Param(TYPE_DWORD, undefined, ParamAccess.Read), + new Param(TYPE_DWORD, undefined, ParamAccess.Read), + ], + }, undefined, undefined ), new Param( - new RegTupRefType(new Param(TYPE_ANY, undefined, ParamAccess.Write)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_ANY, undefined, ParamAccess.Write)], + }, undefined, undefined ), @@ -2225,12 +2610,18 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType(new Param(TYPE_ANY, undefined, ParamAccess.Read)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_ANY, undefined, ParamAccess.Read)], + }, undefined, undefined ), new Param( - new RegTupRefType(new Param(TYPE_ANY, undefined, ParamAccess.Read)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_ANY, undefined, ParamAccess.Read)], + }, undefined, undefined ), @@ -2250,7 +2641,10 @@ export class Opcode { "Sets the given register to the current difficulty. 0 For normal, 1 for hard and 2 for both very hard and ultimate.\nUse get_difficulty_level2 if you want to differentiate between very hard and ultimate.", [ new Param( - new RegTupRefType(new Param(TYPE_DWORD, undefined, ParamAccess.Write)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_DWORD, undefined, ParamAccess.Write)], + }, undefined, undefined ), @@ -2305,7 +2699,10 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType(new Param(TYPE_ANY, undefined, ParamAccess.Read)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_ANY, undefined, ParamAccess.Read)], + }, undefined, undefined ), @@ -2339,7 +2736,10 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType(new Param(TYPE_ANY, undefined, ParamAccess.Read)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_ANY, undefined, ParamAccess.Read)], + }, undefined, undefined ), @@ -2380,7 +2780,10 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType(new Param(TYPE_DWORD, undefined, ParamAccess.Write)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_DWORD, undefined, ParamAccess.Write)], + }, undefined, undefined ), @@ -2393,7 +2796,10 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType(new Param(TYPE_ANY, undefined, ParamAccess.Write)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_ANY, undefined, ParamAccess.Write)], + }, undefined, undefined ), @@ -2424,12 +2830,15 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType( - new Param(TYPE_DWORD, undefined, ParamAccess.Read), - new Param(TYPE_DWORD, undefined, ParamAccess.Read), - new Param(TYPE_DWORD, undefined, ParamAccess.Read), - new Param(TYPE_DWORD, undefined, ParamAccess.Read) - ), + { + kind: Kind.RegTupRef, + register_tuples: [ + new Param(TYPE_DWORD, undefined, ParamAccess.Read), + new Param(TYPE_DWORD, undefined, ParamAccess.Read), + new Param(TYPE_DWORD, undefined, ParamAccess.Read), + new Param(TYPE_DWORD, undefined, ParamAccess.Read), + ], + }, undefined, undefined ), @@ -2442,7 +2851,10 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType(new Param(TYPE_ANY, undefined, ParamAccess.Read)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_ANY, undefined, ParamAccess.Read)], + }, undefined, undefined ), @@ -2469,12 +2881,18 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType(new Param(TYPE_ANY, undefined, ParamAccess.Read)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_ANY, undefined, ParamAccess.Read)], + }, undefined, undefined ), new Param( - new RegTupRefType(new Param(TYPE_ANY, undefined, ParamAccess.Read)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_ANY, undefined, ParamAccess.Read)], + }, undefined, undefined ), @@ -2536,7 +2954,10 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType(new Param(TYPE_DWORD, undefined, ParamAccess.Write)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_DWORD, undefined, ParamAccess.Write)], + }, undefined, undefined ), @@ -2585,7 +3006,10 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType(new Param(TYPE_ANY, undefined, ParamAccess.Read)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_ANY, undefined, ParamAccess.Read)], + }, undefined, undefined ), @@ -2613,7 +3037,10 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType(new Param(TYPE_ANY, undefined, ParamAccess.Read)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_ANY, undefined, ParamAccess.Read)], + }, undefined, undefined ), @@ -2626,7 +3053,10 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType(new Param(TYPE_ANY, undefined, ParamAccess.Read)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_ANY, undefined, ParamAccess.Read)], + }, undefined, undefined ), @@ -2654,7 +3084,10 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType(new Param(TYPE_DWORD, undefined, ParamAccess.Write)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_DWORD, undefined, ParamAccess.Write)], + }, undefined, undefined ), @@ -2667,7 +3100,10 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType(new Param(TYPE_DWORD, undefined, ParamAccess.Write)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_DWORD, undefined, ParamAccess.Write)], + }, undefined, undefined ), @@ -2681,7 +3117,10 @@ export class Opcode { [ new Param(TYPE_DWORD, undefined, undefined), new Param( - new RegTupRefType(new Param(TYPE_ANY, undefined, ParamAccess.Read)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_ANY, undefined, ParamAccess.Read)], + }, undefined, undefined ), @@ -2694,12 +3133,18 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType(new Param(TYPE_ANY, undefined, ParamAccess.Read)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_ANY, undefined, ParamAccess.Read)], + }, undefined, undefined ), new Param( - new RegTupRefType(new Param(TYPE_ANY, undefined, ParamAccess.Read)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_ANY, undefined, ParamAccess.Read)], + }, undefined, undefined ), @@ -2712,7 +3157,10 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType(new Param(TYPE_ANY, undefined, ParamAccess.Read)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_ANY, undefined, ParamAccess.Read)], + }, undefined, undefined ), @@ -2733,7 +3181,10 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType(new Param(TYPE_ANY, undefined, ParamAccess.Read)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_ANY, undefined, ParamAccess.Read)], + }, undefined, undefined ), @@ -2760,7 +3211,10 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType(new Param(TYPE_DWORD, undefined, ParamAccess.Write)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_DWORD, undefined, ParamAccess.Write)], + }, undefined, undefined ), @@ -2781,14 +3235,17 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType( - new Param(TYPE_DWORD, undefined, ParamAccess.Read), - new Param(TYPE_DWORD, undefined, ParamAccess.Read), - new Param(TYPE_DWORD, undefined, ParamAccess.Read), - new Param(TYPE_DWORD, undefined, ParamAccess.Read), - new Param(TYPE_DWORD, undefined, ParamAccess.Read), - new Param(TYPE_DWORD, undefined, ParamAccess.Read) - ), + { + kind: Kind.RegTupRef, + register_tuples: [ + new Param(TYPE_DWORD, undefined, ParamAccess.Read), + new Param(TYPE_DWORD, undefined, ParamAccess.Read), + new Param(TYPE_DWORD, undefined, ParamAccess.Read), + new Param(TYPE_DWORD, undefined, ParamAccess.Read), + new Param(TYPE_DWORD, undefined, ParamAccess.Read), + new Param(TYPE_DWORD, undefined, ParamAccess.Read), + ], + }, undefined, undefined ), @@ -2843,7 +3300,10 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType(new Param(TYPE_ANY, undefined, ParamAccess.Read)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_ANY, undefined, ParamAccess.Read)], + }, undefined, undefined ), @@ -2863,7 +3323,10 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType(new Param(TYPE_ANY, undefined, ParamAccess.Write)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_ANY, undefined, ParamAccess.Write)], + }, undefined, undefined ), @@ -2918,7 +3381,10 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType(new Param(TYPE_ANY, undefined, ParamAccess.Read)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_ANY, undefined, ParamAccess.Read)], + }, undefined, undefined ), @@ -2974,7 +3440,10 @@ export class Opcode { "Sets the given register to the current difficulty. 0 For normal, 1 for hard, 2 for very hard and 3 for ultimate.", [ new Param( - new RegTupRefType(new Param(TYPE_DWORD, undefined, ParamAccess.Write)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_DWORD, undefined, ParamAccess.Write)], + }, undefined, undefined ), @@ -2987,7 +3456,10 @@ export class Opcode { "Set the given register to the current number of players. Either 1, 2, 3 or 4.", [ new Param( - new RegTupRefType(new Param(TYPE_DWORD, undefined, ParamAccess.Write)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_DWORD, undefined, ParamAccess.Write)], + }, undefined, undefined ), @@ -3000,16 +3472,22 @@ export class Opcode { "Retrieves a player's position.", [ new Param( - new RegTupRefType( - new Param(TYPE_DWORD, "X coordinate.", ParamAccess.Write), - new Param(TYPE_DWORD, "Y coordinate.", ParamAccess.Write), - new Param(TYPE_DWORD, "Z coordinate.", ParamAccess.Write) - ), + { + kind: Kind.RegTupRef, + register_tuples: [ + new Param(TYPE_DWORD, "X coordinate.", ParamAccess.Write), + new Param(TYPE_DWORD, "Y coordinate.", ParamAccess.Write), + new Param(TYPE_DWORD, "Z coordinate.", ParamAccess.Write), + ], + }, undefined, undefined ), new Param( - new RegTupRefType(new Param(TYPE_DWORD, "Player slot.", ParamAccess.Read)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_DWORD, "Player slot.", ParamAccess.Read)], + }, undefined, undefined ), @@ -3036,13 +3514,16 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType( - new Param(TYPE_DWORD, undefined, ParamAccess.Read), - new Param(TYPE_DWORD, undefined, ParamAccess.Read), - new Param(TYPE_DWORD, undefined, ParamAccess.Read), - new Param(TYPE_DWORD, undefined, ParamAccess.Read), - new Param(TYPE_DWORD, undefined, ParamAccess.Read) - ), + { + kind: Kind.RegTupRef, + register_tuples: [ + new Param(TYPE_DWORD, undefined, ParamAccess.Read), + new Param(TYPE_DWORD, undefined, ParamAccess.Read), + new Param(TYPE_DWORD, undefined, ParamAccess.Read), + new Param(TYPE_DWORD, undefined, ParamAccess.Read), + new Param(TYPE_DWORD, undefined, ParamAccess.Read), + ], + }, undefined, undefined ), @@ -3216,7 +3697,10 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType(new Param(TYPE_ANY, undefined, ParamAccess.Write)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_ANY, undefined, ParamAccess.Write)], + }, undefined, undefined ), @@ -3229,7 +3713,10 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType(new Param(TYPE_ANY, undefined, ParamAccess.Write)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_ANY, undefined, ParamAccess.Write)], + }, undefined, undefined ), @@ -3242,7 +3729,10 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType(new Param(TYPE_ANY, undefined, ParamAccess.Write)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_ANY, undefined, ParamAccess.Write)], + }, undefined, undefined ), @@ -3255,12 +3745,18 @@ export class Opcode { "Sends a player to the given floor.", [ new Param( - new RegTupRefType(new Param(TYPE_DWORD, "Player slot.", ParamAccess.Read)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_DWORD, "Player slot.", ParamAccess.Read)], + }, undefined, undefined ), new Param( - new RegTupRefType(new Param(TYPE_DWORD, "Floor ID.", ParamAccess.Read)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_DWORD, "Floor ID.", ParamAccess.Read)], + }, undefined, undefined ), @@ -3301,10 +3797,13 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType( - new Param(TYPE_DWORD, undefined, ParamAccess.Read), - new Param(TYPE_DWORD, undefined, ParamAccess.Write) - ), + { + kind: Kind.RegTupRef, + register_tuples: [ + new Param(TYPE_DWORD, undefined, ParamAccess.Read), + new Param(TYPE_DWORD, undefined, ParamAccess.Write), + ], + }, undefined, undefined ), @@ -3317,15 +3816,18 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType( - new Param(TYPE_DWORD, "Floor ID.", ParamAccess.Read), - new Param(TYPE_DWORD, "Switch ID.", ParamAccess.Read), - new Param( - TYPE_DWORD, - "Will be set to 1 if the switch is pressed, 0 otherwise.", - ParamAccess.Write - ) - ), + { + kind: Kind.RegTupRef, + register_tuples: [ + new Param(TYPE_DWORD, "Floor ID.", ParamAccess.Read), + new Param(TYPE_DWORD, "Switch ID.", ParamAccess.Read), + new Param( + TYPE_DWORD, + "Will be set to 1 if the switch is pressed, 0 otherwise.", + ParamAccess.Write + ), + ], + }, undefined, undefined ), @@ -3345,7 +3847,10 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType(new Param(TYPE_DWORD, undefined, ParamAccess.Read)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_DWORD, undefined, ParamAccess.Read)], + }, undefined, undefined ), @@ -3407,7 +3912,10 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType(new Param(TYPE_DWORD, "Player slot.", ParamAccess.Read)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_DWORD, "Player slot.", ParamAccess.Read)], + }, undefined, undefined ), @@ -3420,7 +3928,10 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType(new Param(TYPE_DWORD, "Player slot.", ParamAccess.Read)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_DWORD, "Player slot.", ParamAccess.Read)], + }, undefined, undefined ), @@ -3447,7 +3958,10 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType(new Param(TYPE_DWORD, undefined, ParamAccess.Read)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_DWORD, undefined, ParamAccess.Read)], + }, undefined, undefined ), @@ -3537,7 +4051,10 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType(new Param(TYPE_DWORD, undefined, ParamAccess.Write)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_DWORD, undefined, ParamAccess.Write)], + }, undefined, undefined ), @@ -3550,7 +4067,10 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType(new Param(TYPE_DWORD, undefined, ParamAccess.Write)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_DWORD, undefined, ParamAccess.Write)], + }, undefined, undefined ), @@ -3563,7 +4083,10 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType(new Param(TYPE_DWORD, undefined, ParamAccess.Write)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_DWORD, undefined, ParamAccess.Write)], + }, undefined, undefined ), @@ -3576,7 +4099,10 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType(new Param(TYPE_DWORD, undefined, ParamAccess.Write)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_DWORD, undefined, ParamAccess.Write)], + }, undefined, undefined ), @@ -3589,7 +4115,10 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType(new Param(TYPE_DWORD, undefined, ParamAccess.Write)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_DWORD, undefined, ParamAccess.Write)], + }, undefined, undefined ), @@ -3602,7 +4131,10 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType(new Param(TYPE_DWORD, undefined, ParamAccess.Write)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_DWORD, undefined, ParamAccess.Write)], + }, undefined, undefined ), @@ -3615,7 +4147,10 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType(new Param(TYPE_DWORD, undefined, ParamAccess.Write)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_DWORD, undefined, ParamAccess.Write)], + }, undefined, undefined ), @@ -3628,7 +4163,10 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType(new Param(TYPE_DWORD, undefined, ParamAccess.Write)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_DWORD, undefined, ParamAccess.Write)], + }, undefined, undefined ), @@ -3641,7 +4179,10 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType(new Param(TYPE_DWORD, undefined, ParamAccess.Write)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_DWORD, undefined, ParamAccess.Write)], + }, undefined, undefined ), @@ -3654,7 +4195,10 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType(new Param(TYPE_DWORD, undefined, ParamAccess.Write)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_DWORD, undefined, ParamAccess.Write)], + }, undefined, undefined ), @@ -3723,7 +4267,10 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType(new Param(TYPE_DWORD, undefined, ParamAccess.Read)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_DWORD, undefined, ParamAccess.Read)], + }, undefined, undefined ), @@ -3820,7 +4367,10 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType(new Param(TYPE_DWORD, undefined, ParamAccess.Read)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_DWORD, undefined, ParamAccess.Read)], + }, undefined, undefined ), @@ -3833,12 +4383,18 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType(new Param(TYPE_ANY, undefined, ParamAccess.Write)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_ANY, undefined, ParamAccess.Write)], + }, undefined, undefined ), new Param( - new RegTupRefType(new Param(TYPE_ANY, undefined, ParamAccess.Write)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_ANY, undefined, ParamAccess.Write)], + }, undefined, undefined ), @@ -3851,12 +4407,18 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType(new Param(TYPE_ANY, undefined, ParamAccess.Write)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_ANY, undefined, ParamAccess.Write)], + }, undefined, undefined ), new Param( - new RegTupRefType(new Param(TYPE_ANY, undefined, ParamAccess.Write)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_ANY, undefined, ParamAccess.Write)], + }, undefined, undefined ), @@ -3869,12 +4431,18 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType(new Param(TYPE_ANY, undefined, ParamAccess.Write)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_ANY, undefined, ParamAccess.Write)], + }, undefined, undefined ), new Param( - new RegTupRefType(new Param(TYPE_ANY, undefined, ParamAccess.Write)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_ANY, undefined, ParamAccess.Write)], + }, undefined, undefined ), @@ -3887,7 +4455,10 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType(new Param(TYPE_ANY, undefined, ParamAccess.Read)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_ANY, undefined, ParamAccess.Read)], + }, undefined, undefined ), @@ -3900,7 +4471,10 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType(new Param(TYPE_ANY, undefined, ParamAccess.Write)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_ANY, undefined, ParamAccess.Write)], + }, undefined, undefined ), @@ -3955,7 +4529,10 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType(new Param(TYPE_ANY, undefined, ParamAccess.Write)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_ANY, undefined, ParamAccess.Write)], + }, undefined, undefined ), @@ -3989,7 +4566,10 @@ export class Opcode { "Enables technique use for the given player.", [ new Param( - new RegTupRefType(new Param(TYPE_DWORD, "Player slot.", ParamAccess.Read)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_DWORD, "Player slot.", ParamAccess.Read)], + }, undefined, undefined ), @@ -4002,7 +4582,10 @@ export class Opcode { "Disables technique use for the given player.", [ new Param( - new RegTupRefType(new Param(TYPE_DWORD, "Player slot.", ParamAccess.Read)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_DWORD, "Player slot.", ParamAccess.Read)], + }, undefined, undefined ), @@ -4015,12 +4598,18 @@ export class Opcode { "Retrieves the player's gender. 0 If male, 1 if female.", [ new Param( - new RegTupRefType(new Param(TYPE_DWORD, "Player slot.", ParamAccess.Read)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_DWORD, "Player slot.", ParamAccess.Read)], + }, undefined, undefined ), new Param( - new RegTupRefType(new Param(TYPE_DWORD, "Player gender.", ParamAccess.Write)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_DWORD, "Player gender.", ParamAccess.Write)], + }, undefined, undefined ), @@ -4033,23 +4622,29 @@ export class Opcode { "Retrieves the player's race and character class.", [ new Param( - new RegTupRefType(new Param(TYPE_DWORD, "Player slot.", ParamAccess.Read)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_DWORD, "Player slot.", ParamAccess.Read)], + }, undefined, undefined ), new Param( - new RegTupRefType( - new Param( - TYPE_DWORD, - "Player race. 0 If human, 1 if newman, 2 if cast.", - ParamAccess.Write - ), - new Param( - TYPE_DWORD, - "Player class. 0 If hunter, 1 if ranger, 2 if force.", - ParamAccess.Write - ) - ), + { + kind: Kind.RegTupRef, + register_tuples: [ + new Param( + TYPE_DWORD, + "Player race. 0 If human, 1 if newman, 2 if cast.", + ParamAccess.Write + ), + new Param( + TYPE_DWORD, + "Player class. 0 If hunter, 1 if ranger, 2 if force.", + ParamAccess.Write + ), + ], + }, undefined, undefined ), @@ -4062,21 +4657,27 @@ export class Opcode { "Takes an amount of meseta from a player's inventory.", [ new Param( - new RegTupRefType( - new Param(TYPE_DWORD, "Player slot.", ParamAccess.Read), - new Param(TYPE_DWORD, "Amount of meseta to take.", ParamAccess.Read) - ), + { + kind: Kind.RegTupRef, + register_tuples: [ + new Param(TYPE_DWORD, "Player slot.", ParamAccess.Read), + new Param(TYPE_DWORD, "Amount of meseta to take.", ParamAccess.Read), + ], + }, undefined, undefined ), new Param( - new RegTupRefType( - new Param( - TYPE_DWORD, - "Will be set to 1 if the meseta was taken, 0 otherwise.", - ParamAccess.Write - ) - ), + { + kind: Kind.RegTupRef, + register_tuples: [ + new Param( + TYPE_DWORD, + "Will be set to 1 if the meseta was taken, 0 otherwise.", + ParamAccess.Write + ), + ], + }, undefined, undefined ), @@ -4110,12 +4711,18 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType(new Param(TYPE_ANY, undefined, ParamAccess.Write)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_ANY, undefined, ParamAccess.Write)], + }, undefined, undefined ), new Param( - new RegTupRefType(new Param(TYPE_ANY, undefined, ParamAccess.Write)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_ANY, undefined, ParamAccess.Write)], + }, undefined, undefined ), @@ -4128,7 +4735,10 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType(new Param(TYPE_ANY, undefined, ParamAccess.Write)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_ANY, undefined, ParamAccess.Write)], + }, undefined, undefined ), @@ -4141,7 +4751,10 @@ export class Opcode { "Sets the value of to the given player's name.", [ new Param( - new RegTupRefType(new Param(TYPE_DWORD, "Player slot.", ParamAccess.Read)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_DWORD, "Player slot.", ParamAccess.Read)], + }, undefined, undefined ), @@ -4161,12 +4774,18 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType(new Param(TYPE_ANY, undefined, ParamAccess.Write)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_ANY, undefined, ParamAccess.Write)], + }, undefined, undefined ), new Param( - new RegTupRefType(new Param(TYPE_ANY, undefined, ParamAccess.Write)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_ANY, undefined, ParamAccess.Write)], + }, undefined, undefined ), @@ -4221,12 +4840,18 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType(new Param(TYPE_ANY, undefined, ParamAccess.Write)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_ANY, undefined, ParamAccess.Write)], + }, undefined, undefined ), new Param( - new RegTupRefType(new Param(TYPE_ANY, undefined, ParamAccess.Write)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_ANY, undefined, ParamAccess.Write)], + }, undefined, undefined ), @@ -4239,7 +4864,10 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType(new Param(TYPE_ANY, undefined, ParamAccess.Read)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_ANY, undefined, ParamAccess.Read)], + }, undefined, undefined ), @@ -4253,7 +4881,10 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType(new Param(TYPE_ANY, undefined, ParamAccess.Write)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_ANY, undefined, ParamAccess.Write)], + }, undefined, undefined ), @@ -4266,7 +4897,10 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType(new Param(TYPE_ANY, undefined, ParamAccess.Read)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_ANY, undefined, ParamAccess.Read)], + }, undefined, undefined ), @@ -4279,7 +4913,10 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType(new Param(TYPE_ANY, undefined, ParamAccess.Write)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_ANY, undefined, ParamAccess.Write)], + }, undefined, undefined ), @@ -4292,7 +4929,10 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType(new Param(TYPE_ANY, undefined, ParamAccess.Write)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_ANY, undefined, ParamAccess.Write)], + }, undefined, undefined ), @@ -4361,12 +5001,18 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType(new Param(TYPE_DWORD, undefined, ParamAccess.Write)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_DWORD, undefined, ParamAccess.Write)], + }, undefined, undefined ), new Param( - new RegTupRefType(new Param(TYPE_DWORD, undefined, ParamAccess.Read)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_DWORD, undefined, ParamAccess.Read)], + }, undefined, undefined ), @@ -4379,12 +5025,18 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType(new Param(TYPE_DWORD, undefined, ParamAccess.Write)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_DWORD, undefined, ParamAccess.Write)], + }, undefined, undefined ), new Param( - new RegTupRefType(new Param(TYPE_DWORD, undefined, ParamAccess.Read)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_DWORD, undefined, ParamAccess.Read)], + }, undefined, undefined ), @@ -4397,15 +5049,21 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType( - new Param(TYPE_DWORD, undefined, ParamAccess.Read), - new Param(TYPE_DWORD, undefined, ParamAccess.Read) - ), + { + kind: Kind.RegTupRef, + register_tuples: [ + new Param(TYPE_DWORD, undefined, ParamAccess.Read), + new Param(TYPE_DWORD, undefined, ParamAccess.Read), + ], + }, undefined, undefined ), new Param( - new RegTupRefType(new Param(TYPE_DWORD, undefined, ParamAccess.Write)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_DWORD, undefined, ParamAccess.Write)], + }, undefined, undefined ), @@ -4425,7 +5083,10 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType(new Param(TYPE_ANY, undefined, ParamAccess.Write)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_ANY, undefined, ParamAccess.Write)], + }, undefined, undefined ), @@ -4452,7 +5113,10 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType(new Param(TYPE_ANY, undefined, ParamAccess.Write)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_ANY, undefined, ParamAccess.Write)], + }, undefined, undefined ), @@ -4528,7 +5192,10 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType(new Param(TYPE_ANY, undefined, ParamAccess.Write)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_ANY, undefined, ParamAccess.Write)], + }, undefined, undefined ), @@ -4562,7 +5229,10 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType(new Param(TYPE_ANY, undefined, ParamAccess.Write)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_ANY, undefined, ParamAccess.Write)], + }, undefined, undefined ), @@ -4708,7 +5378,10 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType(new Param(TYPE_ANY, undefined, ParamAccess.Write)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_ANY, undefined, ParamAccess.Write)], + }, undefined, undefined ), @@ -4728,7 +5401,10 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType(new Param(TYPE_ANY, undefined, ParamAccess.Write)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_ANY, undefined, ParamAccess.Write)], + }, undefined, undefined ), @@ -4741,7 +5417,10 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType(new Param(TYPE_ANY, undefined, ParamAccess.Write)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_ANY, undefined, ParamAccess.Write)], + }, undefined, undefined ), @@ -4754,7 +5433,10 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType(new Param(TYPE_ANY, undefined, ParamAccess.Write)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_ANY, undefined, ParamAccess.Write)], + }, undefined, undefined ), @@ -4774,19 +5456,25 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType(new Param(TYPE_DWORD, "Player slot.", ParamAccess.Read)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_DWORD, "Player slot.", ParamAccess.Read)], + }, undefined, undefined ), new Param( - new RegTupRefType( - new Param(TYPE_DWORD, "Animation ID.", ParamAccess.Read), - new Param( - TYPE_DWORD, - "Animation duration in number of frames.", - ParamAccess.Read - ) - ), + { + kind: Kind.RegTupRef, + register_tuples: [ + new Param(TYPE_DWORD, "Animation ID.", ParamAccess.Read), + new Param( + TYPE_DWORD, + "Animation duration in number of frames.", + ParamAccess.Read + ), + ], + }, undefined, undefined ), @@ -4799,7 +5487,10 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType(new Param(TYPE_DWORD, "Player slot.", ParamAccess.Read)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_DWORD, "Player slot.", ParamAccess.Read)], + }, undefined, undefined ), @@ -4812,12 +5503,18 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType(new Param(TYPE_ANY, undefined, ParamAccess.Read)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_ANY, undefined, ParamAccess.Read)], + }, undefined, undefined ), new Param( - new RegTupRefType(new Param(TYPE_ANY, undefined, ParamAccess.Read)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_ANY, undefined, ParamAccess.Read)], + }, undefined, undefined ), @@ -4830,12 +5527,18 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType(new Param(TYPE_DWORD, "Player slot.", ParamAccess.Read)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_DWORD, "Player slot.", ParamAccess.Read)], + }, undefined, undefined ), new Param( - new RegTupRefType(new Param(TYPE_DWORD, undefined, ParamAccess.Read)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_DWORD, undefined, ParamAccess.Read)], + }, undefined, undefined ), @@ -4848,7 +5551,10 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType(new Param(TYPE_ANY, undefined, ParamAccess.Read)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_ANY, undefined, ParamAccess.Read)], + }, undefined, undefined ), @@ -4861,7 +5567,10 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType(new Param(TYPE_DWORD, "Player slot.", ParamAccess.Read)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_DWORD, "Player slot.", ParamAccess.Read)], + }, undefined, undefined ), @@ -4874,7 +5583,10 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType(new Param(TYPE_DWORD, "Player slot.", ParamAccess.Read)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_DWORD, "Player slot.", ParamAccess.Read)], + }, undefined, undefined ), @@ -4887,7 +5599,10 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType(new Param(TYPE_DWORD, "Player slot.", ParamAccess.Read)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_DWORD, "Player slot.", ParamAccess.Read)], + }, undefined, undefined ), @@ -4900,7 +5615,10 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType(new Param(TYPE_DWORD, "Player slot.", ParamAccess.Read)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_DWORD, "Player slot.", ParamAccess.Read)], + }, undefined, undefined ), @@ -4913,7 +5631,10 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType(new Param(TYPE_DWORD, "Player slot.", ParamAccess.Read)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_DWORD, "Player slot.", ParamAccess.Read)], + }, undefined, undefined ), @@ -4926,7 +5647,10 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType(new Param(TYPE_DWORD, "Player slot.", ParamAccess.Read)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_DWORD, "Player slot.", ParamAccess.Read)], + }, undefined, undefined ), @@ -4939,7 +5663,10 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType(new Param(TYPE_DWORD, "Player slot.", ParamAccess.Read)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_DWORD, "Player slot.", ParamAccess.Read)], + }, undefined, undefined ), @@ -4952,7 +5679,10 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType(new Param(TYPE_DWORD, "Player slot.", ParamAccess.Read)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_DWORD, "Player slot.", ParamAccess.Read)], + }, undefined, undefined ), @@ -4965,7 +5695,10 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType(new Param(TYPE_DWORD, "Player slot.", ParamAccess.Read)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_DWORD, "Player slot.", ParamAccess.Read)], + }, undefined, undefined ), @@ -4978,7 +5711,10 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType(new Param(TYPE_DWORD, "Player slot.", ParamAccess.Read)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_DWORD, "Player slot.", ParamAccess.Read)], + }, undefined, undefined ), @@ -4991,7 +5727,10 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType(new Param(TYPE_ANY, undefined, ParamAccess.Read)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_ANY, undefined, ParamAccess.Read)], + }, undefined, undefined ), @@ -5005,7 +5744,10 @@ export class Opcode { [ new Param(TYPE_DWORD, undefined, undefined), new Param( - new RegTupRefType(new Param(TYPE_ANY, undefined, ParamAccess.Read)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_ANY, undefined, ParamAccess.Read)], + }, undefined, undefined ), @@ -5043,7 +5785,10 @@ export class Opcode { new Param(TYPE_DWORD, undefined, undefined), new Param(TYPE_DWORD, undefined, undefined), new Param( - new RegTupRefType(new Param(TYPE_ANY, undefined, ParamAccess.Read)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_ANY, undefined, ParamAccess.Read)], + }, undefined, undefined ), @@ -5057,12 +5802,18 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType(new Param(TYPE_DWORD, undefined, ParamAccess.Read)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_DWORD, undefined, ParamAccess.Read)], + }, undefined, undefined ), new Param( - new RegTupRefType(new Param(TYPE_DWORD, undefined, ParamAccess.Read)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_DWORD, undefined, ParamAccess.Read)], + }, undefined, undefined ), @@ -5076,12 +5827,18 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType(new Param(TYPE_ANY, undefined, ParamAccess.Write)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_ANY, undefined, ParamAccess.Write)], + }, undefined, undefined ), new Param( - new RegTupRefType(new Param(TYPE_ANY, undefined, ParamAccess.Write)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_ANY, undefined, ParamAccess.Write)], + }, undefined, undefined ), @@ -5094,12 +5851,18 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType(new Param(TYPE_ANY, undefined, ParamAccess.Write)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_ANY, undefined, ParamAccess.Write)], + }, undefined, undefined ), new Param( - new RegTupRefType(new Param(TYPE_ANY, undefined, ParamAccess.Write)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_ANY, undefined, ParamAccess.Write)], + }, undefined, undefined ), @@ -5140,7 +5903,10 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType(new Param(TYPE_ANY, undefined, ParamAccess.Read)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_ANY, undefined, ParamAccess.Read)], + }, undefined, undefined ), @@ -5153,7 +5919,10 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType(new Param(TYPE_ANY, undefined, ParamAccess.Read)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_ANY, undefined, ParamAccess.Read)], + }, undefined, undefined ), @@ -5166,7 +5935,10 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType(new Param(TYPE_ANY, undefined, ParamAccess.Read)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_ANY, undefined, ParamAccess.Read)], + }, undefined, undefined ), @@ -5179,12 +5951,18 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType(new Param(TYPE_ANY, undefined, ParamAccess.Read)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_ANY, undefined, ParamAccess.Read)], + }, undefined, undefined ), new Param( - new RegTupRefType(new Param(TYPE_ANY, undefined, ParamAccess.Read)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_ANY, undefined, ParamAccess.Read)], + }, undefined, undefined ), @@ -5197,12 +5975,18 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType(new Param(TYPE_ANY, undefined, ParamAccess.Read)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_ANY, undefined, ParamAccess.Read)], + }, undefined, undefined ), new Param( - new RegTupRefType(new Param(TYPE_ANY, undefined, ParamAccess.Read)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_ANY, undefined, ParamAccess.Read)], + }, undefined, undefined ), @@ -5215,12 +5999,18 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType(new Param(TYPE_ANY, undefined, ParamAccess.Read)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_ANY, undefined, ParamAccess.Read)], + }, undefined, undefined ), new Param( - new RegTupRefType(new Param(TYPE_ANY, undefined, ParamAccess.Read)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_ANY, undefined, ParamAccess.Read)], + }, undefined, undefined ), @@ -5233,12 +6023,18 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType(new Param(TYPE_ANY, undefined, ParamAccess.Read)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_ANY, undefined, ParamAccess.Read)], + }, undefined, undefined ), new Param( - new RegTupRefType(new Param(TYPE_ANY, undefined, ParamAccess.Read)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_ANY, undefined, ParamAccess.Read)], + }, undefined, undefined ), @@ -5251,12 +6047,18 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType(new Param(TYPE_ANY, undefined, ParamAccess.Read)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_ANY, undefined, ParamAccess.Read)], + }, undefined, undefined ), new Param( - new RegTupRefType(new Param(TYPE_ANY, undefined, ParamAccess.Read)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_ANY, undefined, ParamAccess.Read)], + }, undefined, undefined ), @@ -5269,12 +6071,18 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType(new Param(TYPE_ANY, undefined, ParamAccess.Read)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_ANY, undefined, ParamAccess.Read)], + }, undefined, undefined ), new Param( - new RegTupRefType(new Param(TYPE_ANY, undefined, ParamAccess.Read)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_ANY, undefined, ParamAccess.Read)], + }, undefined, undefined ), @@ -5287,12 +6095,18 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType(new Param(TYPE_ANY, undefined, ParamAccess.Read)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_ANY, undefined, ParamAccess.Read)], + }, undefined, undefined ), new Param( - new RegTupRefType(new Param(TYPE_ANY, undefined, ParamAccess.Read)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_ANY, undefined, ParamAccess.Read)], + }, undefined, undefined ), @@ -5305,12 +6119,18 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType(new Param(TYPE_ANY, undefined, ParamAccess.Read)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_ANY, undefined, ParamAccess.Read)], + }, undefined, undefined ), new Param( - new RegTupRefType(new Param(TYPE_ANY, undefined, ParamAccess.Read)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_ANY, undefined, ParamAccess.Read)], + }, undefined, undefined ), @@ -5355,7 +6175,10 @@ export class Opcode { new Param(TYPE_DWORD, undefined, undefined), new Param(TYPE_DWORD, undefined, undefined), new Param( - new RegTupRefType(new Param(TYPE_ANY, undefined, ParamAccess.Read)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_ANY, undefined, ParamAccess.Read)], + }, undefined, undefined ), @@ -5369,7 +6192,10 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType(new Param(TYPE_ANY, undefined, ParamAccess.Read)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_ANY, undefined, ParamAccess.Read)], + }, undefined, undefined ), @@ -5475,12 +6301,18 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType(new Param(TYPE_FLOAT, undefined, ParamAccess.Write)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_FLOAT, undefined, ParamAccess.Write)], + }, undefined, undefined ), new Param( - new RegTupRefType(new Param(TYPE_DWORD, undefined, ParamAccess.Read)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_DWORD, undefined, ParamAccess.Read)], + }, undefined, undefined ), @@ -5493,12 +6325,18 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType(new Param(TYPE_DWORD, undefined, ParamAccess.Write)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_DWORD, undefined, ParamAccess.Write)], + }, undefined, undefined ), new Param( - new RegTupRefType(new Param(TYPE_FLOAT, undefined, ParamAccess.Read)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_FLOAT, undefined, ParamAccess.Read)], + }, undefined, undefined ), @@ -5511,12 +6349,18 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType(new Param(TYPE_FLOAT, undefined, ParamAccess.Write)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_FLOAT, undefined, ParamAccess.Write)], + }, undefined, undefined ), new Param( - new RegTupRefType(new Param(TYPE_FLOAT, undefined, ParamAccess.Read)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_FLOAT, undefined, ParamAccess.Read)], + }, undefined, undefined ), @@ -5529,7 +6373,10 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType(new Param(TYPE_FLOAT, undefined, ParamAccess.Write)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_FLOAT, undefined, ParamAccess.Write)], + }, undefined, undefined ), @@ -5564,12 +6411,18 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType(new Param(TYPE_FLOAT, undefined, ParamAccess.Write)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_FLOAT, undefined, ParamAccess.Write)], + }, undefined, undefined ), new Param( - new RegTupRefType(new Param(TYPE_FLOAT, undefined, ParamAccess.Read)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_FLOAT, undefined, ParamAccess.Read)], + }, undefined, undefined ), @@ -5582,7 +6435,10 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType(new Param(TYPE_FLOAT, undefined, ParamAccess.Write)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_FLOAT, undefined, ParamAccess.Write)], + }, undefined, undefined ), @@ -5596,12 +6452,18 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType(new Param(TYPE_FLOAT, undefined, ParamAccess.Write)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_FLOAT, undefined, ParamAccess.Write)], + }, undefined, undefined ), new Param( - new RegTupRefType(new Param(TYPE_FLOAT, undefined, ParamAccess.Read)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_FLOAT, undefined, ParamAccess.Read)], + }, undefined, undefined ), @@ -5614,7 +6476,10 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType(new Param(TYPE_FLOAT, undefined, ParamAccess.Write)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_FLOAT, undefined, ParamAccess.Write)], + }, undefined, undefined ), @@ -5628,12 +6493,18 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType(new Param(TYPE_FLOAT, undefined, ParamAccess.Write)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_FLOAT, undefined, ParamAccess.Write)], + }, undefined, undefined ), new Param( - new RegTupRefType(new Param(TYPE_FLOAT, undefined, ParamAccess.Read)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_FLOAT, undefined, ParamAccess.Read)], + }, undefined, undefined ), @@ -5646,7 +6517,10 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType(new Param(TYPE_FLOAT, undefined, ParamAccess.Write)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_FLOAT, undefined, ParamAccess.Write)], + }, undefined, undefined ), @@ -5660,12 +6534,18 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType(new Param(TYPE_FLOAT, undefined, ParamAccess.Write)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_FLOAT, undefined, ParamAccess.Write)], + }, undefined, undefined ), new Param( - new RegTupRefType(new Param(TYPE_FLOAT, undefined, ParamAccess.Read)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_FLOAT, undefined, ParamAccess.Read)], + }, undefined, undefined ), @@ -5678,7 +6558,10 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType(new Param(TYPE_FLOAT, undefined, ParamAccess.Write)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_FLOAT, undefined, ParamAccess.Write)], + }, undefined, undefined ), @@ -5693,7 +6576,10 @@ export class Opcode { [ new Param(TYPE_DWORD, undefined, undefined), new Param( - new RegTupRefType(new Param(TYPE_DWORD, undefined, ParamAccess.Write)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_DWORD, undefined, ParamAccess.Write)], + }, undefined, undefined ), @@ -5706,17 +6592,23 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType( - new Param(TYPE_DWORD, "Player slot.", ParamAccess.Read), - new Param(TYPE_DWORD, undefined, ParamAccess.Read), - new Param(TYPE_DWORD, undefined, ParamAccess.Read), - new Param(TYPE_DWORD, undefined, ParamAccess.Read) - ), + { + kind: Kind.RegTupRef, + register_tuples: [ + new Param(TYPE_DWORD, "Player slot.", ParamAccess.Read), + new Param(TYPE_DWORD, undefined, ParamAccess.Read), + new Param(TYPE_DWORD, undefined, ParamAccess.Read), + new Param(TYPE_DWORD, undefined, ParamAccess.Read), + ], + }, undefined, undefined ), new Param( - new RegTupRefType(new Param(TYPE_DWORD, undefined, ParamAccess.Write)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_DWORD, undefined, ParamAccess.Write)], + }, undefined, undefined ), @@ -5782,7 +6674,10 @@ export class Opcode { [ new Param(TYPE_DWORD, "Player slot.", undefined), new Param( - new RegTupRefType(new Param(TYPE_DWORD, undefined, ParamAccess.Write)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_DWORD, undefined, ParamAccess.Write)], + }, undefined, undefined ), @@ -5796,7 +6691,10 @@ export class Opcode { [ new Param(TYPE_DWORD, undefined, undefined), new Param( - new RegTupRefType(new Param(TYPE_DWORD, undefined, ParamAccess.Write)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_DWORD, undefined, ParamAccess.Write)], + }, undefined, undefined ), @@ -5823,7 +6721,10 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType(new Param(TYPE_DWORD, undefined, ParamAccess.Write)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_DWORD, undefined, ParamAccess.Write)], + }, undefined, undefined ), @@ -5836,7 +6737,10 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType(new Param(TYPE_DWORD, undefined, ParamAccess.Write)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_DWORD, undefined, ParamAccess.Write)], + }, undefined, undefined ), @@ -5849,7 +6753,10 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType(new Param(TYPE_DWORD, undefined, ParamAccess.Write)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_DWORD, undefined, ParamAccess.Write)], + }, undefined, undefined ), @@ -5863,7 +6770,10 @@ export class Opcode { [ new Param(TYPE_DWORD, "Player slot.", undefined), new Param( - new RegTupRefType(new Param(TYPE_DWORD, undefined, ParamAccess.Write)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_DWORD, undefined, ParamAccess.Write)], + }, undefined, undefined ), @@ -5877,7 +6787,10 @@ export class Opcode { [ new Param(TYPE_DWORD, "Player slot.", undefined), new Param( - new RegTupRefType(new Param(TYPE_DWORD, undefined, ParamAccess.Write)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_DWORD, undefined, ParamAccess.Write)], + }, undefined, undefined ), @@ -5891,12 +6804,15 @@ export class Opcode { [ new Param(TYPE_DWORD, "Player slot.", undefined), new Param( - new RegTupRefType( - new Param(TYPE_DWORD, "Maximum HP.", ParamAccess.Write), - new Param(TYPE_DWORD, "Current HP.", ParamAccess.Write), - new Param(TYPE_DWORD, "Maximum TP.", ParamAccess.Write), - new Param(TYPE_DWORD, "Current TP.", ParamAccess.Write) - ), + { + kind: Kind.RegTupRef, + register_tuples: [ + new Param(TYPE_DWORD, "Maximum HP.", ParamAccess.Write), + new Param(TYPE_DWORD, "Current HP.", ParamAccess.Write), + new Param(TYPE_DWORD, "Maximum TP.", ParamAccess.Write), + new Param(TYPE_DWORD, "Current TP.", ParamAccess.Write), + ], + }, undefined, undefined ), @@ -5910,7 +6826,10 @@ export class Opcode { [ new Param(TYPE_DWORD, "Player slot.", undefined), new Param( - new RegTupRefType(new Param(TYPE_DWORD, undefined, ParamAccess.Write)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_DWORD, undefined, ParamAccess.Write)], + }, undefined, undefined ), @@ -5923,12 +6842,18 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType(new Param(TYPE_ANY, "Player slot.", ParamAccess.Read)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_ANY, "Player slot.", ParamAccess.Read)], + }, undefined, undefined ), new Param( - new RegTupRefType(new Param(TYPE_ANY, undefined, ParamAccess.Read)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_ANY, undefined, ParamAccess.Read)], + }, undefined, undefined ), @@ -5942,7 +6867,10 @@ export class Opcode { [ new Param(TYPE_DWORD, undefined, undefined), new Param( - new RegTupRefType(new Param(TYPE_DWORD, undefined, ParamAccess.Write)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_DWORD, undefined, ParamAccess.Write)], + }, undefined, undefined ), @@ -5962,12 +6890,18 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType(new Param(TYPE_ANY, undefined, ParamAccess.Write)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_ANY, undefined, ParamAccess.Write)], + }, undefined, undefined ), new Param( - new RegTupRefType(new Param(TYPE_ANY, undefined, ParamAccess.Write)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_ANY, undefined, ParamAccess.Write)], + }, undefined, undefined ), @@ -5980,12 +6914,15 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType( - new Param(TYPE_DWORD, undefined, ParamAccess.Write), - new Param(TYPE_DWORD, undefined, ParamAccess.Write), - new Param(TYPE_DWORD, undefined, ParamAccess.Write), - new Param(TYPE_DWORD, undefined, ParamAccess.Write) - ), + { + kind: Kind.RegTupRef, + register_tuples: [ + new Param(TYPE_DWORD, undefined, ParamAccess.Write), + new Param(TYPE_DWORD, undefined, ParamAccess.Write), + new Param(TYPE_DWORD, undefined, ParamAccess.Write), + new Param(TYPE_DWORD, undefined, ParamAccess.Write), + ], + }, undefined, undefined ), @@ -6012,7 +6949,10 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType(new Param(TYPE_ANY, undefined, ParamAccess.Write)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_ANY, undefined, ParamAccess.Write)], + }, undefined, undefined ), @@ -6025,7 +6965,10 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType(new Param(TYPE_ANY, undefined, ParamAccess.Write)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_ANY, undefined, ParamAccess.Write)], + }, undefined, undefined ), @@ -6102,7 +7045,10 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType(new Param(TYPE_ANY, undefined, ParamAccess.Write)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_ANY, undefined, ParamAccess.Write)], + }, undefined, undefined ), @@ -6121,7 +7067,10 @@ export class Opcode { new Param(TYPE_DWORD, undefined, undefined), new Param(TYPE_FLOAT, undefined, undefined), new Param( - new RegTupRefType(new Param(TYPE_DWORD, undefined, ParamAccess.Write)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_DWORD, undefined, ParamAccess.Write)], + }, undefined, undefined ), @@ -6171,7 +7120,10 @@ export class Opcode { [ new Param(TYPE_DWORD, undefined, undefined), new Param( - new RegTupRefType(new Param(TYPE_ANY, undefined, ParamAccess.Write)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_ANY, undefined, ParamAccess.Write)], + }, undefined, undefined ), @@ -6198,7 +7150,10 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType(new Param(TYPE_ANY, undefined, ParamAccess.Write)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_ANY, undefined, ParamAccess.Write)], + }, undefined, undefined ), @@ -6229,7 +7184,10 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType(new Param(TYPE_DWORD, undefined, ParamAccess.Write)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_DWORD, undefined, ParamAccess.Write)], + }, undefined, undefined ), @@ -6245,7 +7203,10 @@ export class Opcode { [ new Param(TYPE_DWORD, "Player slot.", undefined), new Param( - new RegTupRefType(new Param(TYPE_DWORD, undefined, ParamAccess.Write)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_DWORD, undefined, ParamAccess.Write)], + }, undefined, undefined ), @@ -6273,7 +7234,10 @@ export class Opcode { [ new Param(TYPE_DWORD, "Player slot.", undefined), new Param( - new RegTupRefType(new Param(TYPE_DWORD, undefined, ParamAccess.Write)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_DWORD, undefined, ParamAccess.Write)], + }, undefined, undefined ), @@ -6293,7 +7257,10 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType(new Param(TYPE_DWORD, undefined, ParamAccess.Write)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_DWORD, undefined, ParamAccess.Write)], + }, undefined, undefined ), @@ -6307,7 +7274,10 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType(new Param(TYPE_DWORD, undefined, ParamAccess.Write)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_DWORD, undefined, ParamAccess.Write)], + }, undefined, undefined ), @@ -6335,7 +7305,10 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType(new Param(TYPE_DWORD, undefined, ParamAccess.Write)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_DWORD, undefined, ParamAccess.Write)], + }, undefined, undefined ), @@ -6348,7 +7321,10 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType(new Param(TYPE_DWORD, undefined, ParamAccess.Write)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_DWORD, undefined, ParamAccess.Write)], + }, undefined, undefined ), @@ -6361,7 +7337,10 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType(new Param(TYPE_DWORD, undefined, ParamAccess.Write)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_DWORD, undefined, ParamAccess.Write)], + }, undefined, undefined ), @@ -6374,7 +7353,10 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType(new Param(TYPE_DWORD, undefined, ParamAccess.Write)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_DWORD, undefined, ParamAccess.Write)], + }, undefined, undefined ), @@ -6420,7 +7402,10 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType(new Param(TYPE_DWORD, undefined, ParamAccess.Write)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_DWORD, undefined, ParamAccess.Write)], + }, undefined, undefined ), @@ -6450,7 +7435,10 @@ export class Opcode { [ new Param(TYPE_DWORD, undefined, undefined), new Param( - new RegTupRefType(new Param(TYPE_DWORD, undefined, ParamAccess.Write)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_DWORD, undefined, ParamAccess.Write)], + }, undefined, undefined ), @@ -6545,7 +7533,10 @@ export class Opcode { [ new Param(TYPE_DWORD, undefined, undefined), new Param( - new RegTupRefType(new Param(TYPE_DWORD, undefined, ParamAccess.Write)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_DWORD, undefined, ParamAccess.Write)], + }, undefined, undefined ), @@ -6578,12 +7569,18 @@ export class Opcode { undefined, [ new Param( - new RegTupRefType(new Param(TYPE_DWORD, undefined, ParamAccess.Write)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_DWORD, undefined, ParamAccess.Write)], + }, undefined, undefined ), new Param( - new RegTupRefType(new Param(TYPE_DWORD, undefined, ParamAccess.Write)), + { + kind: Kind.RegTupRef, + register_tuples: [new Param(TYPE_DWORD, undefined, ParamAccess.Write)], + }, undefined, undefined ),