From 376c2738451c82bd84f3ff8bcab0a9751f804990 Mon Sep 17 00:00:00 2001 From: water111 <48171810+water111@users.noreply.github.com> Date: Tue, 29 Sep 2020 20:24:15 -0400 Subject: [PATCH] Add decompiler IR, basic operations, all-types file (#57) * framework for basic op * started IR framework * check in type info file * add some basic operations to the first pass ir conversion * use a single condition system * add more basic op decoding * more ir --- common/type_system/deftype.cpp | 36 +- common/type_system/deftype.h | 1 + decomp.sh | 2 +- decompiler/CMakeLists.txt | 13 +- decompiler/Disasm/Instruction.h | 6 + decompiler/Disasm/InstructionMatching.h | 5 + decompiler/Disasm/OpcodeInfo.cpp | 5 + decompiler/Function/BasicBlocks.h | 5 - decompiler/Function/CfgVtx.cpp | 14 +- decompiler/Function/Function.cpp | 45 +- decompiler/Function/Function.h | 14 +- decompiler/IR/BasicOpBuilder.cpp | 1412 +++ decompiler/IR/BasicOpBuilder.h | 13 + decompiler/IR/IR.cpp | 391 + decompiler/IR/IR.h | 243 + decompiler/ObjectFile/LinkedObjectFile.cpp | 8 + .../ObjectFile/LinkedObjectFileCreation.cpp | 47 +- .../ObjectFile/LinkedObjectFileCreation.h | 5 +- decompiler/ObjectFile/ObjectFileDB.cpp | 37 +- decompiler/ObjectFile/ObjectFileDB.h | 2 + decompiler/TypeSystem/GoalFunction.cpp | 1 - decompiler/TypeSystem/GoalFunction.h | 17 - decompiler/TypeSystem/GoalSymbol.cpp | 1 - decompiler/TypeSystem/GoalSymbol.h | 39 - decompiler/TypeSystem/GoalType.cpp | 13 - decompiler/TypeSystem/GoalType.h | 25 - decompiler/TypeSystem/TypeInfo.cpp | 99 - decompiler/TypeSystem/TypeInfo.h | 32 - decompiler/TypeSystem/TypeSpec.cpp | 51 - decompiler/TypeSystem/TypeSpec.h | 28 - decompiler/config/all-types.gc | 7965 +++++++++++++++++ decompiler/config/jak1_ntsc_black_label.jsonc | 18 +- decompiler/main.cpp | 9 +- decompiler/util/DecompilerTypeSystem.cpp | 78 + decompiler/util/DecompilerTypeSystem.h | 46 + decompiler/util/LispPrint.cpp | 11 + decompiler/util/LispPrint.h | 1 + 37 files changed, 10346 insertions(+), 392 deletions(-) create mode 100644 decompiler/IR/BasicOpBuilder.cpp create mode 100644 decompiler/IR/BasicOpBuilder.h create mode 100644 decompiler/IR/IR.cpp create mode 100644 decompiler/IR/IR.h delete mode 100644 decompiler/TypeSystem/GoalFunction.cpp delete mode 100644 decompiler/TypeSystem/GoalFunction.h delete mode 100644 decompiler/TypeSystem/GoalSymbol.cpp delete mode 100644 decompiler/TypeSystem/GoalSymbol.h delete mode 100644 decompiler/TypeSystem/GoalType.cpp delete mode 100644 decompiler/TypeSystem/GoalType.h delete mode 100644 decompiler/TypeSystem/TypeInfo.cpp delete mode 100644 decompiler/TypeSystem/TypeInfo.h delete mode 100644 decompiler/TypeSystem/TypeSpec.cpp delete mode 100644 decompiler/TypeSystem/TypeSpec.h create mode 100644 decompiler/config/all-types.gc create mode 100644 decompiler/util/DecompilerTypeSystem.cpp create mode 100644 decompiler/util/DecompilerTypeSystem.h diff --git a/common/type_system/deftype.cpp b/common/type_system/deftype.cpp index 3b0405ebed..691865ece0 100644 --- a/common/type_system/deftype.cpp +++ b/common/type_system/deftype.cpp @@ -78,24 +78,6 @@ int64_t get_int(const goos::Object& obj) { throw std::runtime_error(obj.print() + " was supposed to be an integer, but isn't"); } -TypeSpec parse_typespec(TypeSystem* type_system, const goos::Object& src) { - if (src.is_symbol()) { - return type_system->make_typespec(symbol_string(src)); - } else if (src.is_pair()) { - TypeSpec ts = type_system->make_typespec(symbol_string(car(&src))); - const auto& rest = *cdr(&src); - - for_each_in_list(rest, - [&](const goos::Object& o) { ts.add_arg(parse_typespec(type_system, o)); }); - - return ts; - } else { - throw std::runtime_error("invalid typespec: " + src.print()); - } - assert(false); - return {}; -} - void add_field(StructureType* structure, TypeSystem* ts, const goos::Object& def) { auto rest = &def; @@ -278,6 +260,24 @@ TypeFlags parse_structure_def(StructureType* type, } // namespace +TypeSpec parse_typespec(TypeSystem* type_system, const goos::Object& src) { + if (src.is_symbol()) { + return type_system->make_typespec(symbol_string(src)); + } else if (src.is_pair()) { + TypeSpec ts = type_system->make_typespec(symbol_string(car(&src))); + const auto& rest = *cdr(&src); + + for_each_in_list(rest, + [&](const goos::Object& o) { ts.add_arg(parse_typespec(type_system, o)); }); + + return ts; + } else { + throw std::runtime_error("invalid typespec: " + src.print()); + } + assert(false); + return {}; +} + DeftypeResult parse_deftype(const goos::Object& deftype, TypeSystem* ts) { auto iter = &deftype; diff --git a/common/type_system/deftype.h b/common/type_system/deftype.h index 13872693da..151601be37 100644 --- a/common/type_system/deftype.h +++ b/common/type_system/deftype.h @@ -22,3 +22,4 @@ struct DeftypeResult { }; DeftypeResult parse_deftype(const goos::Object& deftype, TypeSystem* ts); +TypeSpec parse_typespec(TypeSystem* type_system, const goos::Object& src); diff --git a/decomp.sh b/decomp.sh index 947ec9bf78..69cbe661a9 100755 --- a/decomp.sh +++ b/decomp.sh @@ -3,4 +3,4 @@ # Directory of this script DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )" -$DIR/build/decompiler/decompiler $DIR/decompiler/config/jak1_ntsc_black_label.jsonc $DIR/iso_data $DIR/decompiler_out \ No newline at end of file +$DIR/build/decompiler/decompiler $DIR/decompiler/config/jak1_ntsc_black_label.jsonc $DIR/iso_data $DIR/decompiler_out diff --git a/decompiler/CMakeLists.txt b/decompiler/CMakeLists.txt index eca54d7d2f..d1b37b8edc 100644 --- a/decompiler/CMakeLists.txt +++ b/decompiler/CMakeLists.txt @@ -12,14 +12,15 @@ add_executable(decompiler util/FileIO.cpp config.cpp util/LispPrint.cpp + util/DecompilerTypeSystem.cpp Function/BasicBlocks.cpp Disasm/InstructionMatching.cpp - TypeSystem/GoalType.cpp - TypeSystem/GoalFunction.cpp - TypeSystem/GoalSymbol.cpp - TypeSystem/TypeInfo.cpp - TypeSystem/TypeSpec.cpp Function/CfgVtx.cpp Function/CfgVtx.h) + Function/CfgVtx.cpp Function/CfgVtx.h + IR/BasicOpBuilder.cpp + IR/IR.cpp) target_link_libraries(decompiler minilzo - common_util) \ No newline at end of file + common_util + type_system + fmt) \ No newline at end of file diff --git a/decompiler/Disasm/Instruction.h b/decompiler/Disasm/Instruction.h index ca3ab99a37..f3ccaf9699 100644 --- a/decompiler/Disasm/Instruction.h +++ b/decompiler/Disasm/Instruction.h @@ -44,6 +44,12 @@ struct InstructionAtom { std::string to_string(const LinkedObjectFile& file) const; bool is_link_or_label() const; + bool is_reg() const { return kind == REGISTER; } + bool is_imm() const { return kind == IMM; } + bool is_label() const { return kind == LABEL; } + bool is_sym() const { return kind == IMM_SYM; } + + bool is_reg(Register r) const { return kind == REGISTER && reg == r; } private: int32_t imm; diff --git a/decompiler/Disasm/InstructionMatching.h b/decompiler/Disasm/InstructionMatching.h index 3fe9232e34..7d67751eac 100644 --- a/decompiler/Disasm/InstructionMatching.h +++ b/decompiler/Disasm/InstructionMatching.h @@ -1,5 +1,10 @@ #pragma once +/*! + * @file InstructionMatching.h + * Utilities for checking if an instruction matches some criteria. + */ + #ifndef JAK_DISASSEMBLER_INSTRUCTIONMATCHING_H #define JAK_DISASSEMBLER_INSTRUCTIONMATCHING_H diff --git a/decompiler/Disasm/OpcodeInfo.cpp b/decompiler/Disasm/OpcodeInfo.cpp index 102493bb26..4ae837be23 100644 --- a/decompiler/Disasm/OpcodeInfo.cpp +++ b/decompiler/Disasm/OpcodeInfo.cpp @@ -1,3 +1,8 @@ +/*! + * @file OpcodeInfo.cpp + * Decoding info for each opcode. + */ + #include "OpcodeInfo.h" #include diff --git a/decompiler/Function/BasicBlocks.h b/decompiler/Function/BasicBlocks.h index 42b1a1fedc..38eefd2f45 100644 --- a/decompiler/Function/BasicBlocks.h +++ b/decompiler/Function/BasicBlocks.h @@ -1,8 +1,5 @@ #pragma once -#ifndef JAK_DISASSEMBLER_BASICBLOCKS_H -#define JAK_DISASSEMBLER_BASICBLOCKS_H - #include #include @@ -21,5 +18,3 @@ struct BasicBlock { std::vector find_blocks_in_function(const LinkedObjectFile& file, int seg, const Function& func); - -#endif // JAK_DISASSEMBLER_BASICBLOCKS_H diff --git a/decompiler/Function/CfgVtx.cpp b/decompiler/Function/CfgVtx.cpp index e7531f8d12..31bdae7d9b 100644 --- a/decompiler/Function/CfgVtx.cpp +++ b/decompiler/Function/CfgVtx.cpp @@ -1637,7 +1637,6 @@ void ControlFlowGraph::flag_early_exit(const std::vector& blocks) { * Build and resolve a Control Flow Graph as much as possible. */ std::shared_ptr build_cfg(const LinkedObjectFile& file, int seg, Function& func) { - printf("build cfg : %s\n", func.guessed_name.to_string().c_str()); auto cfg = std::make_shared(); const auto& blocks = cfg->create_blocks(func.basic_blocks.size()); @@ -1716,13 +1715,6 @@ std::shared_ptr build_cfg(const LinkedObjectFile& file, int se cfg->flag_early_exit(func.basic_blocks); - // if(func.guessed_name.to_string() == "(method 9 thread)") - // cfg->find_cond_w_else(); - - // if (func.guessed_name.to_string() != "looping-code") { - // return cfg; - // } - bool changed = true; while (changed) { changed = false; @@ -1730,11 +1722,9 @@ std::shared_ptr build_cfg(const LinkedObjectFile& file, int se // printf("%s\n", cfg->to_dot().c_str()); // printf("%s\n", cfg->to_form()->toStringPretty().c_str()); - changed = changed | cfg->find_cond_w_else(); - changed = changed | cfg->find_cond_n_else(); + changed = changed || cfg->find_cond_w_else(); + changed = changed || cfg->find_cond_n_else(); changed = changed || cfg->find_while_loop_top_level(); - // //// printf("while loops? %d\n", changed); - //// changed = changed || cfg->find_if_else_top_level(); changed = changed || cfg->find_seq_top_level(); changed = changed || cfg->find_short_circuits(); diff --git a/decompiler/Function/Function.cpp b/decompiler/Function/Function.cpp index cba5ecf577..dd433763d6 100644 --- a/decompiler/Function/Function.cpp +++ b/decompiler/Function/Function.cpp @@ -3,7 +3,7 @@ #include "Function.h" #include "decompiler/Disasm/InstructionMatching.h" #include "decompiler/ObjectFile/LinkedObjectFile.h" -#include "decompiler/TypeSystem/TypeInfo.h" +#include "decompiler/util/DecompilerTypeSystem.h" namespace { std::vector gpr_backups = {make_gpr(Reg::GP), make_gpr(Reg::S5), make_gpr(Reg::S4), @@ -418,7 +418,7 @@ void Function::check_epilogue(const LinkedObjectFile& file) { * * Updates the guessed_name of the function and updates type_info */ -void Function::find_global_function_defs(LinkedObjectFile& file) { +void Function::find_global_function_defs(LinkedObjectFile& file, DecompilerTypeSystem& dts) { int state = 0; int label_id = -1; Register reg; @@ -457,7 +457,8 @@ void Function::find_global_function_defs(LinkedObjectFile& file) { auto& func = file.get_function_at_label(label_id); assert(func.guessed_name.empty()); func.guessed_name.set_as_global(name); - get_type_info().inform_symbol(name, TypeSpec("function")); + dts.add_symbol(name, "function"); + ; // todo - inform function. } @@ -549,4 +550,42 @@ void Function::find_method_defs(LinkedObjectFile& file) { } } } +} + +void Function::add_basic_op(std::shared_ptr op, int start_instr, int end_instr) { + op->is_basic_op = true; + assert(end_instr > start_instr); + + for (int i = start_instr; i < end_instr; i++) { + instruction_to_basic_op[i] = basic_ops.size(); + } + basic_op_to_instruction[basic_ops.size()] = start_instr; + basic_ops.push_back(op); +} + +bool Function::instr_starts_basic_op(int idx) { + auto op = instruction_to_basic_op.find(idx); + if (op != instruction_to_basic_op.end()) { + auto start_instr = basic_op_to_instruction.at(op->second); + return start_instr == idx; + } + return false; +} + +IR* Function::get_basic_op_at_instr(int idx) { + return basic_ops.at(instruction_to_basic_op.at(idx)).get(); +} + +int Function::get_basic_op_count() { + return basic_ops.size(); +} + +int Function::get_failed_basic_op_count() { + int count = 0; + for (auto& x : basic_ops) { + if (dynamic_cast(x.get())) { + count++; + } + } + return count; } \ No newline at end of file diff --git a/decompiler/Function/Function.h b/decompiler/Function/Function.h index 179e51c901..c0420ec055 100644 --- a/decompiler/Function/Function.h +++ b/decompiler/Function/Function.h @@ -8,6 +8,9 @@ #include "decompiler/Disasm/Instruction.h" #include "BasicBlocks.h" #include "CfgVtx.h" +#include "decompiler/IR/IR.h" + +class DecompilerTypeSystem; struct FunctionName { enum class FunctionKind { @@ -60,8 +63,14 @@ class Function { public: Function(int _start_word, int _end_word); void analyze_prologue(const LinkedObjectFile& file); - void find_global_function_defs(LinkedObjectFile& file); + void find_global_function_defs(LinkedObjectFile& file, DecompilerTypeSystem& dts); void find_method_defs(LinkedObjectFile& file); + void add_basic_op(std::shared_ptr op, int start_instr, int end_instr); + bool has_basic_ops() { return !basic_ops.empty(); } + bool instr_starts_basic_op(int idx); + IR* get_basic_op_at_instr(int idx); + int get_basic_op_count(); + int get_failed_basic_op_count(); int segment = -1; int start_word = -1; @@ -115,6 +124,9 @@ class Function { private: void check_epilogue(const LinkedObjectFile& file); + std::vector> basic_ops; + std::unordered_map instruction_to_basic_op; + std::unordered_map basic_op_to_instruction; }; #endif // NEXT_FUNCTION_H diff --git a/decompiler/IR/BasicOpBuilder.cpp b/decompiler/IR/BasicOpBuilder.cpp new file mode 100644 index 0000000000..aa677aa000 --- /dev/null +++ b/decompiler/IR/BasicOpBuilder.cpp @@ -0,0 +1,1412 @@ +#include "BasicOpBuilder.h" +#include "decompiler/Function/Function.h" +#include "decompiler/Function/BasicBlocks.h" +#include "decompiler/Disasm/InstructionMatching.h" + +namespace { + +struct ConvertState { + void reset() {} +}; + +std::shared_ptr make_set(IR_Set::Kind kind, + const std::shared_ptr& dst, + const std::shared_ptr& src) { + return std::make_shared(kind, dst, src); +} + +std::shared_ptr make_reg(Register reg, int idx) { + return std::make_shared(reg, idx); +} + +std::shared_ptr make_sym(const std::string& name) { + return std::make_shared(name); +} + +std::shared_ptr make_sym_value(const std::string& name) { + return std::make_shared(name); +} + +std::shared_ptr make_int(int64_t x) { + return std::make_shared(x); +} + +std::shared_ptr try_or(Instruction& instr, int idx) { + if (is_gpr_3(instr, InstructionKind::OR, {}, make_gpr(Reg::S7), make_gpr(Reg::R0))) { + return make_set(IR_Set::REG_64, make_reg(instr.get_dst(0).get_reg(), idx), make_sym("#f")); + } else if (is_gpr_3(instr, InstructionKind::OR, {}, {}, make_gpr(Reg::R0))) { + return make_set(IR_Set::REG_64, make_reg(instr.get_dst(0).get_reg(), idx), + make_reg(instr.get_src(0).get_reg(), idx)); + } else { + return make_set( + IR_Set::REG_64, make_reg(instr.get_dst(0).get_reg(), idx), + std::make_shared(IR_IntMath2::OR, make_reg(instr.get_src(0).get_reg(), idx), + make_reg(instr.get_src(1).get_reg(), idx))); + } + return nullptr; +} + +std::shared_ptr try_ori(Instruction& instr, int idx) { + if (instr.kind == InstructionKind::ORI && instr.get_src(0).is_reg(make_gpr(Reg::R0)) && + instr.get_src(1).is_imm()) { + return make_set(IR_Set::REG_64, make_reg(instr.get_dst(0).get_reg(), idx), + make_int(instr.get_src(1).get_imm())); + } else if (instr.kind == InstructionKind::ORI && instr.get_src(1).is_imm()) { + return make_set( + IR_Set::REG_64, make_reg(instr.get_dst(0).get_reg(), idx), + std::make_shared(IR_IntMath2::OR, make_reg(instr.get_src(0).get_reg(), idx), + make_int(instr.get_src(1).get_imm()))); + } + return nullptr; +} + +std::shared_ptr try_por(Instruction& instr, int idx) { + if (is_gpr_3(instr, InstructionKind::POR, {}, {}, make_gpr(Reg::R0))) { + return make_set(IR_Set::REG_I128, make_reg(instr.get_dst(0).get_reg(), idx), + make_reg(instr.get_src(0).get_reg(), idx)); + } + return nullptr; +} + +std::shared_ptr try_mtc1(Instruction& instr, int idx) { + if (instr.kind == InstructionKind::MTC1) { + return make_set(IR_Set::GPR_TO_FPR, make_reg(instr.get_dst(0).get_reg(), idx), + make_reg(instr.get_src(0).get_reg(), idx)); + } + return nullptr; +} + +std::shared_ptr try_mfc1(Instruction& instr, int idx) { + if (instr.kind == InstructionKind::MFC1) { + return make_set(IR_Set::FPR_TO_GPR64, make_reg(instr.get_dst(0).get_reg(), idx), + make_reg(instr.get_src(0).get_reg(), idx)); + } + return nullptr; +} + +std::shared_ptr try_lwc1(Instruction& instr, int idx) { + if (instr.kind == InstructionKind::LWC1 && instr.get_dst(0).is_reg() && + instr.get_src(0).is_link_or_label() && instr.get_src(1).is_reg(make_gpr(Reg::FP))) { + return make_set( + IR_Set::LOAD, make_reg(instr.get_dst(0).get_reg(), idx), + std::make_shared( + IR_Load::FLOAT, 4, std::make_shared(instr.get_src(0).get_label()))); + } else if (instr.kind == InstructionKind::LWC1 && instr.get_dst(0).is_reg() && + instr.get_src(0).is_imm() && instr.get_src(0).get_imm() == 0) { + return make_set( + IR_Set::LOAD, make_reg(instr.get_dst(0).get_reg(), idx), + std::make_shared(IR_Load::FLOAT, 4, make_reg(instr.get_src(1).get_reg(), idx))); + } else if (instr.kind == InstructionKind::LWC1 && instr.get_dst(0).is_reg() && + instr.get_src(0).is_imm()) { + return make_set(IR_Set::LOAD, make_reg(instr.get_dst(0).get_reg(), idx), + std::make_shared( + IR_Load::FLOAT, 4, + std::make_shared( + IR_IntMath2::ADD, make_reg(instr.get_src(1).get_reg(), idx), + std::make_shared(instr.get_src(0).get_imm())))); + } + return nullptr; +} + +std::shared_ptr try_lhu(Instruction& instr, int idx) { + if (instr.kind == InstructionKind::LHU && instr.get_dst(0).is_reg() && + instr.get_src(0).is_link_or_label() && instr.get_src(1).is_reg(make_gpr(Reg::FP))) { + return make_set(IR_Set::LOAD, make_reg(instr.get_dst(0).get_reg(), idx), + std::make_shared( + IR_Load::UNSIGNED, 2, + std::make_shared(instr.get_src(0).get_label()))); + } else if (instr.kind == InstructionKind::LHU && instr.get_dst(0).is_reg() && + instr.get_src(0).is_imm() && instr.get_src(0).get_imm() == 0) { + return make_set( + IR_Set::LOAD, make_reg(instr.get_dst(0).get_reg(), idx), + std::make_shared(IR_Load::UNSIGNED, 2, make_reg(instr.get_src(1).get_reg(), idx))); + } else if (instr.kind == InstructionKind::LHU && instr.get_dst(0).is_reg() && + instr.get_src(0).is_imm()) { + return make_set(IR_Set::LOAD, make_reg(instr.get_dst(0).get_reg(), idx), + std::make_shared( + IR_Load::UNSIGNED, 2, + std::make_shared( + IR_IntMath2::ADD, make_reg(instr.get_src(1).get_reg(), idx), + std::make_shared(instr.get_src(0).get_imm())))); + } + return nullptr; +} + +std::shared_ptr try_lh(Instruction& instr, int idx) { + if (instr.kind == InstructionKind::LH && instr.get_dst(0).is_reg() && + instr.get_src(0).is_link_or_label() && instr.get_src(1).is_reg(make_gpr(Reg::FP))) { + return make_set( + IR_Set::LOAD, make_reg(instr.get_dst(0).get_reg(), idx), + std::make_shared( + IR_Load::SIGNED, 2, std::make_shared(instr.get_src(0).get_label()))); + } else if (instr.kind == InstructionKind::LH && instr.get_dst(0).is_reg() && + instr.get_src(0).is_imm() && instr.get_src(0).get_imm() == 0) { + return make_set( + IR_Set::LOAD, make_reg(instr.get_dst(0).get_reg(), idx), + std::make_shared(IR_Load::SIGNED, 2, make_reg(instr.get_src(1).get_reg(), idx))); + } else if (instr.kind == InstructionKind::LH && instr.get_dst(0).is_reg() && + instr.get_src(0).is_imm()) { + return make_set(IR_Set::LOAD, make_reg(instr.get_dst(0).get_reg(), idx), + std::make_shared( + IR_Load::SIGNED, 2, + std::make_shared( + IR_IntMath2::ADD, make_reg(instr.get_src(1).get_reg(), idx), + std::make_shared(instr.get_src(0).get_imm())))); + } + return nullptr; +} + +std::shared_ptr try_lb(Instruction& instr, int idx) { + if (instr.kind == InstructionKind::LB && instr.get_dst(0).is_reg() && + instr.get_src(0).is_link_or_label() && instr.get_src(1).is_reg(make_gpr(Reg::FP))) { + return make_set( + IR_Set::LOAD, make_reg(instr.get_dst(0).get_reg(), idx), + std::make_shared( + IR_Load::SIGNED, 1, std::make_shared(instr.get_src(0).get_label()))); + } else if (instr.kind == InstructionKind::LB && instr.get_dst(0).is_reg() && + instr.get_src(0).is_imm() && instr.get_src(0).get_imm() == 0) { + return make_set( + IR_Set::LOAD, make_reg(instr.get_dst(0).get_reg(), idx), + std::make_shared(IR_Load::SIGNED, 1, make_reg(instr.get_src(1).get_reg(), idx))); + } else if (instr.kind == InstructionKind::LB && instr.get_dst(0).is_reg() && + instr.get_src(0).is_imm()) { + return make_set(IR_Set::LOAD, make_reg(instr.get_dst(0).get_reg(), idx), + std::make_shared( + IR_Load::SIGNED, 1, + std::make_shared( + IR_IntMath2::ADD, make_reg(instr.get_src(1).get_reg(), idx), + std::make_shared(instr.get_src(0).get_imm())))); + } + return nullptr; +} + +std::shared_ptr try_lbu(Instruction& instr, int idx) { + if (instr.kind == InstructionKind::LBU && instr.get_dst(0).is_reg() && + instr.get_src(0).is_link_or_label() && instr.get_src(1).is_reg(make_gpr(Reg::FP))) { + return make_set(IR_Set::LOAD, make_reg(instr.get_dst(0).get_reg(), idx), + std::make_shared( + IR_Load::UNSIGNED, 1, + std::make_shared(instr.get_src(0).get_label()))); + } else if (instr.kind == InstructionKind::LBU && instr.get_dst(0).is_reg() && + instr.get_src(0).is_imm() && instr.get_src(0).get_imm() == 0) { + return make_set( + IR_Set::LOAD, make_reg(instr.get_dst(0).get_reg(), idx), + std::make_shared(IR_Load::UNSIGNED, 1, make_reg(instr.get_src(1).get_reg(), idx))); + } else if (instr.kind == InstructionKind::LBU && instr.get_dst(0).is_reg() && + instr.get_src(0).is_imm()) { + return make_set(IR_Set::LOAD, make_reg(instr.get_dst(0).get_reg(), idx), + std::make_shared( + IR_Load::UNSIGNED, 1, + std::make_shared( + IR_IntMath2::ADD, make_reg(instr.get_src(1).get_reg(), idx), + std::make_shared(instr.get_src(0).get_imm())))); + } + return nullptr; +} + +std::shared_ptr try_lwu(Instruction& instr, int idx) { + if (instr.kind == InstructionKind::LWU && instr.get_dst(0).is_reg() && + instr.get_src(0).is_link_or_label() && instr.get_src(1).is_reg(make_gpr(Reg::FP))) { + return make_set(IR_Set::LOAD, make_reg(instr.get_dst(0).get_reg(), idx), + std::make_shared( + IR_Load::UNSIGNED, 4, + std::make_shared(instr.get_src(0).get_label()))); + } else if (instr.kind == InstructionKind::LWU && instr.get_dst(0).is_reg() && + instr.get_src(0).is_imm() && instr.get_src(0).get_imm() == 0) { + return make_set( + IR_Set::LOAD, make_reg(instr.get_dst(0).get_reg(), idx), + std::make_shared(IR_Load::UNSIGNED, 4, make_reg(instr.get_src(1).get_reg(), idx))); + } else if (instr.kind == InstructionKind::LWU && instr.get_dst(0).is_reg() && + instr.get_src(0).is_imm()) { + return make_set(IR_Set::LOAD, make_reg(instr.get_dst(0).get_reg(), idx), + std::make_shared( + IR_Load::UNSIGNED, 4, + std::make_shared( + IR_IntMath2::ADD, make_reg(instr.get_src(1).get_reg(), idx), + std::make_shared(instr.get_src(0).get_imm())))); + } + return nullptr; +} + +std::shared_ptr try_ld(Instruction& instr, int idx) { + if (instr.kind == InstructionKind::LD && instr.get_dst(0).is_reg() && + instr.get_src(0).is_link_or_label() && instr.get_src(1).is_reg(make_gpr(Reg::FP))) { + return make_set(IR_Set::LOAD, make_reg(instr.get_dst(0).get_reg(), idx), + std::make_shared( + IR_Load::UNSIGNED, 8, + std::make_shared(instr.get_src(0).get_label()))); + } else if (instr.kind == InstructionKind::LD && instr.get_dst(0).is_reg() && + instr.get_src(0).is_imm() && instr.get_src(0).get_imm() == 0) { + return make_set( + IR_Set::LOAD, make_reg(instr.get_dst(0).get_reg(), idx), + std::make_shared(IR_Load::UNSIGNED, 8, make_reg(instr.get_src(1).get_reg(), idx))); + } else if (instr.kind == InstructionKind::LD && instr.get_dst(0).is_reg() && + instr.get_src(0).is_imm()) { + return make_set(IR_Set::LOAD, make_reg(instr.get_dst(0).get_reg(), idx), + std::make_shared( + IR_Load::UNSIGNED, 8, + std::make_shared( + IR_IntMath2::ADD, make_reg(instr.get_src(1).get_reg(), idx), + std::make_shared(instr.get_src(0).get_imm())))); + } + return nullptr; +} + +std::shared_ptr try_dsll(Instruction& instr, int idx) { + if (is_gpr_2_imm_int(instr, InstructionKind::DSLL, {}, {}, {})) { + return make_set(IR_Set::REG_64, make_reg(instr.get_dst(0).get_reg(), idx), + std::make_shared(IR_IntMath2::LEFT_SHIFT, + make_reg(instr.get_src(0).get_reg(), idx), + make_int(instr.get_src(1).get_imm()))); + } + return nullptr; +} + +std::shared_ptr try_dsll32(Instruction& instr, int idx) { + if (is_gpr_2_imm_int(instr, InstructionKind::DSLL32, {}, {}, {})) { + return make_set(IR_Set::REG_64, make_reg(instr.get_dst(0).get_reg(), idx), + std::make_shared(IR_IntMath2::LEFT_SHIFT, + make_reg(instr.get_src(0).get_reg(), idx), + make_int(32 + instr.get_src(1).get_imm()))); + } + return nullptr; +} + +std::shared_ptr try_dsra(Instruction& instr, int idx) { + if (is_gpr_2_imm_int(instr, InstructionKind::DSRA, {}, {}, {})) { + return make_set(IR_Set::REG_64, make_reg(instr.get_dst(0).get_reg(), idx), + std::make_shared(IR_IntMath2::RIGHT_SHIFT_ARITH, + make_reg(instr.get_src(0).get_reg(), idx), + make_int(instr.get_src(1).get_imm()))); + } + return nullptr; +} + +std::shared_ptr try_dsra32(Instruction& instr, int idx) { + if (is_gpr_2_imm_int(instr, InstructionKind::DSRA32, {}, {}, {})) { + return make_set(IR_Set::REG_64, make_reg(instr.get_dst(0).get_reg(), idx), + std::make_shared(IR_IntMath2::RIGHT_SHIFT_ARITH, + make_reg(instr.get_src(0).get_reg(), idx), + make_int(32 + instr.get_src(1).get_imm()))); + } + return nullptr; +} + +std::shared_ptr try_dsrl(Instruction& instr, int idx) { + if (is_gpr_2_imm_int(instr, InstructionKind::DSRL, {}, {}, {})) { + return make_set(IR_Set::REG_64, make_reg(instr.get_dst(0).get_reg(), idx), + std::make_shared(IR_IntMath2::RIGHT_SHIFT_LOGIC, + make_reg(instr.get_src(0).get_reg(), idx), + make_int(instr.get_src(1).get_imm()))); + } + return nullptr; +} + +std::shared_ptr try_dsrl32(Instruction& instr, int idx) { + if (is_gpr_2_imm_int(instr, InstructionKind::DSRL32, {}, {}, {})) { + return make_set(IR_Set::REG_64, make_reg(instr.get_dst(0).get_reg(), idx), + std::make_shared(IR_IntMath2::RIGHT_SHIFT_LOGIC, + make_reg(instr.get_src(0).get_reg(), idx), + make_int(32 + instr.get_src(1).get_imm()))); + } + return nullptr; +} + +std::shared_ptr try_float_math_2(Instruction& instr, + int idx, + InstructionKind instr_kind, + IR_FloatMath2::Kind ir_kind) { + if (is_gpr_3(instr, instr_kind, {}, {}, {})) { + return make_set( + IR_Set::REG_FLT, make_reg(instr.get_dst(0).get_reg(), idx), + std::make_shared(ir_kind, make_reg(instr.get_src(0).get_reg(), idx), + make_reg(instr.get_src(1).get_reg(), idx))); + } + return nullptr; +} + +std::shared_ptr try_daddiu(Instruction& instr, int idx) { + if (instr.kind == InstructionKind::DADDIU && instr.get_src(0).is_reg(make_gpr(Reg::S7)) && + instr.get_src(1).kind == InstructionAtom::IMM_SYM) { + return make_set(IR_Set::REG_64, make_reg(instr.get_dst(0).get_reg(), idx), + make_sym(instr.get_src(1).get_sym())); + } else if (instr.kind == InstructionKind::DADDIU && instr.get_src(0).is_reg(make_gpr(Reg::FP)) && + instr.get_src(1).kind == InstructionAtom::LABEL) { + return make_set(IR_Set::REG_64, make_reg(instr.get_dst(0).get_reg(), idx), + std::make_shared(instr.get_src(1).get_label())); + } else if (instr.kind == InstructionKind::DADDIU) { + return make_set( + IR_Set::REG_64, make_reg(instr.get_dst(0).get_reg(), idx), + std::make_shared(IR_IntMath2::ADD, make_reg(instr.get_src(0).get_reg(), idx), + make_int(instr.get_src(1).get_imm()))); + } + return nullptr; +} + +std::shared_ptr try_lw(Instruction& instr, int idx) { + if (instr.kind == InstructionKind::LW && instr.get_src(1).is_reg(make_gpr(Reg::S7)) && + instr.get_src(0).kind == InstructionAtom::IMM_SYM) { + return make_set(IR_Set::SYM_LOAD, make_reg(instr.get_dst(0).get_reg(), idx), + make_sym_value(instr.get_src(0).get_sym())); + } else if (instr.kind == InstructionKind::LW && instr.get_dst(0).is_reg() && + instr.get_src(0).is_link_or_label() && instr.get_src(1).is_reg(make_gpr(Reg::FP))) { + return make_set( + IR_Set::LOAD, make_reg(instr.get_dst(0).get_reg(), idx), + std::make_shared( + IR_Load::SIGNED, 4, std::make_shared(instr.get_src(0).get_label()))); + } else if (instr.kind == InstructionKind::LW && instr.get_dst(0).is_reg() && + instr.get_src(0).is_imm() && instr.get_src(0).get_imm() == 0) { + return make_set( + IR_Set::LOAD, make_reg(instr.get_dst(0).get_reg(), idx), + std::make_shared(IR_Load::SIGNED, 4, make_reg(instr.get_src(1).get_reg(), idx))); + } else if (instr.kind == InstructionKind::LW && instr.get_dst(0).is_reg() && + instr.get_src(0).is_imm()) { + return make_set(IR_Set::LOAD, make_reg(instr.get_dst(0).get_reg(), idx), + std::make_shared( + IR_Load::SIGNED, 4, + std::make_shared( + IR_IntMath2::ADD, make_reg(instr.get_src(1).get_reg(), idx), + std::make_shared(instr.get_src(0).get_imm())))); + } + return nullptr; +} + +std::shared_ptr try_lq(Instruction& instr, int idx) { + if (instr.kind == InstructionKind::LQ && instr.get_src(1).is_reg(make_gpr(Reg::S7)) && + instr.get_src(0).kind == InstructionAtom::IMM_SYM) { + assert(false); + } else if (instr.kind == InstructionKind::LQ && instr.get_dst(0).is_reg() && + instr.get_src(0).is_link_or_label() && instr.get_src(1).is_reg(make_gpr(Reg::FP))) { + return make_set(IR_Set::LOAD, make_reg(instr.get_dst(0).get_reg(), idx), + std::make_shared( + IR_Load::UNSIGNED, 16, + std::make_shared(instr.get_src(0).get_label()))); + } else if (instr.kind == InstructionKind::LQ && instr.get_dst(0).is_reg() && + instr.get_src(0).is_imm() && instr.get_src(0).get_imm() == 0) { + return make_set(IR_Set::LOAD, make_reg(instr.get_dst(0).get_reg(), idx), + std::make_shared(IR_Load::UNSIGNED, 16, + make_reg(instr.get_src(1).get_reg(), idx))); + } else if (instr.kind == InstructionKind::LQ && instr.get_dst(0).is_reg() && + instr.get_src(0).is_imm()) { + return make_set(IR_Set::LOAD, make_reg(instr.get_dst(0).get_reg(), idx), + std::make_shared( + IR_Load::UNSIGNED, 16, + std::make_shared( + IR_IntMath2::ADD, make_reg(instr.get_src(1).get_reg(), idx), + std::make_shared(instr.get_src(0).get_imm())))); + } + return nullptr; +} + +std::shared_ptr try_daddu(Instruction& instr, int idx) { + if (is_gpr_3(instr, InstructionKind::DADDU, {}, {}, {}) && + !instr.get_src(0).is_reg(make_gpr(Reg::S7)) && !instr.get_src(1).is_reg(make_gpr(Reg::S7))) { + return make_set( + IR_Set::REG_64, make_reg(instr.get_dst(0).get_reg(), idx), + std::make_shared(IR_IntMath2::ADD, make_reg(instr.get_src(0).get_reg(), idx), + make_reg(instr.get_src(1).get_reg(), idx))); + } + return nullptr; +} + +std::shared_ptr try_dsubu(Instruction& instr, int idx) { + if (is_gpr_3(instr, InstructionKind::DSUBU, {}, {}, {}) && + !instr.get_src(0).is_reg(make_gpr(Reg::S7)) && !instr.get_src(1).is_reg(make_gpr(Reg::S7))) { + return make_set( + IR_Set::REG_64, make_reg(instr.get_dst(0).get_reg(), idx), + std::make_shared(IR_IntMath2::SUB, make_reg(instr.get_src(0).get_reg(), idx), + make_reg(instr.get_src(1).get_reg(), idx))); + } + return nullptr; +} + +std::shared_ptr try_mult3(Instruction& instr, int idx) { + if (is_gpr_3(instr, InstructionKind::MULT3, {}, {}, {}) && + !instr.get_src(0).is_reg(make_gpr(Reg::S7)) && !instr.get_src(1).is_reg(make_gpr(Reg::S7))) { + return make_set(IR_Set::REG_64, make_reg(instr.get_dst(0).get_reg(), idx), + std::make_shared(IR_IntMath2::MUL_SIGNED, + make_reg(instr.get_src(0).get_reg(), idx), + make_reg(instr.get_src(1).get_reg(), idx))); + } + return nullptr; +} + +std::shared_ptr try_multu3(Instruction& instr, int idx) { + if (is_gpr_3(instr, InstructionKind::MULTU3, {}, {}, {}) && + !instr.get_src(0).is_reg(make_gpr(Reg::S7)) && !instr.get_src(1).is_reg(make_gpr(Reg::S7))) { + return make_set(IR_Set::REG_64, make_reg(instr.get_dst(0).get_reg(), idx), + std::make_shared(IR_IntMath2::MUL_UNSIGNED, + make_reg(instr.get_src(0).get_reg(), idx), + make_reg(instr.get_src(1).get_reg(), idx))); + } + return nullptr; +} + +std::shared_ptr try_and(Instruction& instr, int idx) { + if (is_gpr_3(instr, InstructionKind::AND, {}, {}, {}) && + !instr.get_src(0).is_reg(make_gpr(Reg::S7)) && !instr.get_src(1).is_reg(make_gpr(Reg::S7))) { + return make_set( + IR_Set::REG_64, make_reg(instr.get_dst(0).get_reg(), idx), + std::make_shared(IR_IntMath2::AND, make_reg(instr.get_src(0).get_reg(), idx), + make_reg(instr.get_src(1).get_reg(), idx))); + } + return nullptr; +} + +std::shared_ptr try_andi(Instruction& instr, int idx) { + if (instr.kind == InstructionKind::ANDI) { + return make_set( + IR_Set::REG_64, make_reg(instr.get_dst(0).get_reg(), idx), + std::make_shared(IR_IntMath2::AND, make_reg(instr.get_src(0).get_reg(), idx), + make_int(instr.get_src(1).get_imm()))); + } + return nullptr; +} + +std::shared_ptr try_nor(Instruction& instr, int idx) { + if (is_gpr_3(instr, InstructionKind::NOR, {}, {}, {}) && + !instr.get_src(0).is_reg(make_gpr(Reg::S7)) && instr.get_src(1).is_reg(make_gpr(Reg::R0))) { + return make_set( + IR_Set::REG_64, make_reg(instr.get_dst(0).get_reg(), idx), + std::make_shared(IR_IntMath1::NOT, make_reg(instr.get_src(0).get_reg(), idx))); + } else if (is_gpr_3(instr, InstructionKind::NOR, {}, {}, {}) && + !instr.get_src(0).is_reg(make_gpr(Reg::S7)) && + !instr.get_src(1).is_reg(make_gpr(Reg::S7))) { + return make_set( + IR_Set::REG_64, make_reg(instr.get_dst(0).get_reg(), idx), + std::make_shared(IR_IntMath2::NOR, make_reg(instr.get_src(0).get_reg(), idx), + make_reg(instr.get_src(1).get_reg(), idx))); + } + return nullptr; +} + +std::shared_ptr try_xor(Instruction& instr, int idx) { + if (is_gpr_3(instr, InstructionKind::XOR, {}, {}, {}) && + !instr.get_src(0).is_reg(make_gpr(Reg::S7)) && !instr.get_src(1).is_reg(make_gpr(Reg::S7))) { + return make_set( + IR_Set::REG_64, make_reg(instr.get_dst(0).get_reg(), idx), + std::make_shared(IR_IntMath2::XOR, make_reg(instr.get_src(0).get_reg(), idx), + make_reg(instr.get_src(1).get_reg(), idx))); + } + return nullptr; +} + +std::shared_ptr try_addiu(Instruction& instr, int idx) { + if (instr.kind == InstructionKind::ADDIU && instr.get_src(0).is_reg(make_gpr(Reg::R0))) { + return make_set(IR_Set::REG_64, make_reg(instr.get_dst(0).get_reg(), idx), + make_int(instr.get_src(1).get_imm())); + } + return nullptr; +} + +std::shared_ptr try_lui(Instruction& instr, int idx) { + if (instr.kind == InstructionKind::LUI && instr.get_src(0).is_imm()) { + return make_set(IR_Set::REG_64, make_reg(instr.get_dst(0).get_reg(), idx), + make_int(instr.get_src(0).get_imm() << 16)); + } + return nullptr; +} + +std::shared_ptr try_sll(Instruction& instr, int idx) { + (void)idx; + if (is_nop(instr)) { + return std::make_shared(); + } + return nullptr; +} + +std::shared_ptr try_sw(Instruction& instr, int idx) { + if (instr.kind == InstructionKind::SW && instr.get_src(1).is_sym() && + instr.get_src(2).is_reg(make_gpr(Reg::S7))) { + return std::make_shared(IR_Set::SYM_STORE, make_sym_value(instr.get_src(1).get_sym()), + make_reg(instr.get_src(0).get_reg(), idx)); + } else if (instr.kind == InstructionKind::SW && instr.get_src(1).is_imm()) { + return std::make_shared( + IR_Store::INTEGER, + std::make_shared( + IR_IntMath2::ADD, make_reg(instr.get_src(2).get_reg(), idx), + std::make_shared(instr.get_src(1).get_imm())), + make_reg(instr.get_src(0).get_reg(), idx), 4); + } + return nullptr; +} + +std::shared_ptr try_sb(Instruction& instr, int idx) { + if (instr.kind == InstructionKind::SB && instr.get_src(1).is_imm()) { + return std::make_shared( + IR_Store::INTEGER, + std::make_shared( + IR_IntMath2::ADD, make_reg(instr.get_src(2).get_reg(), idx), + std::make_shared(instr.get_src(1).get_imm())), + make_reg(instr.get_src(0).get_reg(), idx), 1); + } + return nullptr; +} + +std::shared_ptr try_sh(Instruction& instr, int idx) { + if (instr.kind == InstructionKind::SH && instr.get_src(1).is_imm()) { + return std::make_shared( + IR_Store::INTEGER, + std::make_shared( + IR_IntMath2::ADD, make_reg(instr.get_src(2).get_reg(), idx), + std::make_shared(instr.get_src(1).get_imm())), + make_reg(instr.get_src(0).get_reg(), idx), 2); + } + return nullptr; +} + +std::shared_ptr try_sd(Instruction& instr, int idx) { + if (instr.kind == InstructionKind::SD && instr.get_src(1).is_imm()) { + return std::make_shared( + IR_Store::INTEGER, + std::make_shared( + IR_IntMath2::ADD, make_reg(instr.get_src(2).get_reg(), idx), + std::make_shared(instr.get_src(1).get_imm())), + make_reg(instr.get_src(0).get_reg(), idx), 8); + } + return nullptr; +} + +std::shared_ptr try_sq(Instruction& instr, int idx) { + if (instr.kind == InstructionKind::SQ && instr.get_src(1).is_imm()) { + return std::make_shared( + IR_Store::INTEGER, + std::make_shared( + IR_IntMath2::ADD, make_reg(instr.get_src(2).get_reg(), idx), + std::make_shared(instr.get_src(1).get_imm())), + make_reg(instr.get_src(0).get_reg(), idx), 16); + } + return nullptr; +} + +std::shared_ptr try_swc1(Instruction& instr, int idx) { + if (instr.kind == InstructionKind::SWC1 && instr.get_src(1).is_imm()) { + return std::make_shared( + IR_Store::FLOAT, + std::make_shared( + IR_IntMath2::ADD, make_reg(instr.get_src(2).get_reg(), idx), + std::make_shared(instr.get_src(1).get_imm())), + make_reg(instr.get_src(0).get_reg(), idx), 4); + } + return nullptr; +} + +std::shared_ptr try_cvtws(Instruction& instr, int idx) { + if (instr.kind == InstructionKind::CVTWS) { + return make_set(IR_Set::REG_FLT, make_reg(instr.get_dst(0).get_reg(), idx), + std::make_shared(IR_FloatMath1::FLOAT_TO_INT, + make_reg(instr.get_src(0).get_reg(), idx))); + } + return nullptr; +} + +std::shared_ptr try_cvtsw(Instruction& instr, int idx) { + if (instr.kind == InstructionKind::CVTSW) { + return make_set(IR_Set::REG_FLT, make_reg(instr.get_dst(0).get_reg(), idx), + std::make_shared(IR_FloatMath1::INT_TO_FLOAT, + make_reg(instr.get_src(0).get_reg(), idx))); + } + return nullptr; +} + +std::shared_ptr try_float_math_1(Instruction& instr, + int idx, + InstructionKind ikind, + IR_FloatMath1::Kind irkind) { + if (instr.kind == ikind) { + return make_set( + IR_Set::REG_FLT, make_reg(instr.get_dst(0).get_reg(), idx), + std::make_shared(irkind, make_reg(instr.get_src(0).get_reg(), idx))); + } + return nullptr; +} + +std::shared_ptr try_movs(Instruction& instr, int idx) { + if (instr.kind == InstructionKind::MOVS) { + return make_set(IR_Set::REG_FLT, make_reg(instr.get_dst(0).get_reg(), idx), + make_reg(instr.get_src(0).get_reg(), idx)); + } + return nullptr; +} + +// TWO Instructions +std::shared_ptr try_div(Instruction& instr, Instruction& next_instr, int idx) { + if (instr.kind == InstructionKind::DIV && instr.get_src(0).is_reg() && + instr.get_src(1).is_reg() && next_instr.kind == InstructionKind::MFLO && + next_instr.get_dst(0).is_reg()) { + return make_set(IR_Set::REG_64, make_reg(next_instr.get_dst(0).get_reg(), idx), + std::make_shared(IR_IntMath2::DIV_SIGNED, + make_reg(instr.get_src(0).get_reg(), idx), + make_reg(instr.get_src(1).get_reg(), idx))); + } else if (instr.kind == InstructionKind::DIV && instr.get_src(0).is_reg() && + instr.get_src(1).is_reg() && next_instr.kind == InstructionKind::MFHI && + next_instr.get_dst(0).is_reg()) { + return make_set(IR_Set::REG_64, make_reg(next_instr.get_dst(0).get_reg(), idx), + std::make_shared(IR_IntMath2::MOD_SIGNED, + make_reg(instr.get_src(0).get_reg(), idx), + make_reg(instr.get_src(1).get_reg(), idx))); + } + return nullptr; +} + +std::shared_ptr try_divu(Instruction& instr, Instruction& next_instr, int idx) { + if (instr.kind == InstructionKind::DIVU && instr.get_src(0).is_reg() && + instr.get_src(1).is_reg() && next_instr.kind == InstructionKind::MFLO && + next_instr.get_dst(0).is_reg()) { + return make_set(IR_Set::REG_64, make_reg(next_instr.get_dst(0).get_reg(), idx), + std::make_shared(IR_IntMath2::DIV_UNSIGNED, + make_reg(instr.get_src(0).get_reg(), idx), + make_reg(instr.get_src(1).get_reg(), idx))); + } else if (instr.kind == InstructionKind::DIVU && instr.get_src(0).is_reg() && + instr.get_src(1).is_reg() && next_instr.kind == InstructionKind::MFHI && + next_instr.get_dst(0).is_reg()) { + return make_set(IR_Set::REG_64, make_reg(next_instr.get_dst(0).get_reg(), idx), + std::make_shared(IR_IntMath2::MOD_UNSIGNED, + make_reg(instr.get_src(0).get_reg(), idx), + make_reg(instr.get_src(1).get_reg(), idx))); + } + return nullptr; +} + +std::shared_ptr try_jalr(Instruction& instr, Instruction& next_instr, int idx) { + (void)idx; + if (instr.kind == InstructionKind::JALR && instr.get_dst(0).is_reg(make_gpr(Reg::RA)) && + instr.get_src(0).is_reg(make_gpr(Reg::T9)) && + is_gpr_2_imm_int(next_instr, InstructionKind::SLL, make_gpr(Reg::V0), make_gpr(Reg::RA), 0)) { + return std::make_shared(); + } + return nullptr; +} + +BranchDelay get_branch_delay(Instruction& i, int idx) { + if (is_nop(i)) { + return BranchDelay(BranchDelay::NOP); + } else if (is_gpr_3(i, InstructionKind::OR, {}, make_gpr(Reg::S7), make_gpr(Reg::R0))) { + BranchDelay b(BranchDelay::SET_REG_FALSE); + b.destination = make_reg(i.get_dst(0).get_reg(), idx); + return b; + } else if (is_gpr_3(i, InstructionKind::OR, {}, {}, make_gpr(Reg::R0))) { + BranchDelay b(BranchDelay::SET_REG_REG); + b.destination = make_reg(i.get_dst(0).get_reg(), idx); + b.source = make_reg(i.get_src(0).get_reg(), idx); + return b; + } else if (i.kind == InstructionKind::DADDIU && i.get_src(0).is_reg(make_gpr(Reg::S7)) && + i.get_src(1).is_imm() && i.get_src(1).get_imm() == 8) { + BranchDelay b(BranchDelay::SET_REG_TRUE); + b.destination = make_reg(i.get_dst(0).get_reg(), idx); + return b; + } + BranchDelay b(BranchDelay::UNKNOWN); + return b; +} + +std::shared_ptr try_bne(Instruction& instr, Instruction& next_instr, int idx) { + if (instr.kind == InstructionKind::BNE && instr.get_src(1).is_reg(make_gpr(Reg::R0))) { + return std::make_shared( + Condition(Condition::NONZERO, make_reg(instr.get_src(0).get_reg(), idx), nullptr, nullptr), + instr.get_src(2).get_label(), get_branch_delay(next_instr, idx), false); + } else if (instr.kind == InstructionKind::BNE && instr.get_src(0).is_reg(make_gpr(Reg::S7))) { + return std::make_shared( + Condition(Condition::TRUTHY, make_reg(instr.get_src(1).get_reg(), idx), nullptr, nullptr), + instr.get_src(2).get_label(), get_branch_delay(next_instr, idx), false); + } else if (instr.kind == InstructionKind::BNE) { + return std::make_shared( + Condition(Condition::NOT_EQUAL, make_reg(instr.get_src(0).get_reg(), idx), + make_reg(instr.get_src(1).get_reg(), idx), nullptr), + instr.get_src(2).get_label(), get_branch_delay(next_instr, idx), false); + } + return nullptr; +} + +std::shared_ptr try_bnel(Instruction& instr, Instruction& next_instr, int idx) { + if (instr.kind == InstructionKind::BNEL && instr.get_src(0).is_reg(make_gpr(Reg::S7))) { + return std::make_shared( + Condition(Condition::TRUTHY, make_reg(instr.get_src(1).get_reg(), idx), nullptr, nullptr), + instr.get_src(2).get_label(), get_branch_delay(next_instr, idx), true); + } else if (instr.kind == InstructionKind::BNEL) { + // return std::make_shared(IR_Branch2::NOT_EQUAL, instr.get_src(2).get_label(), + // make_reg(instr.get_src(0).get_reg(), idx), + // make_reg(instr.get_src(1).get_reg(), idx), + // get_branch_delay(next_instr, idx), true); + } + return nullptr; +} + +std::shared_ptr try_beql(Instruction& instr, Instruction& next_instr, int idx) { + if (instr.kind == InstructionKind::BEQL && instr.get_src(0).is_reg(make_gpr(Reg::S7))) { + return std::make_shared( + Condition(Condition::FALSE, make_reg(instr.get_src(1).get_reg(), idx), nullptr, nullptr), + instr.get_src(2).get_label(), get_branch_delay(next_instr, idx), true); + } else if (instr.kind == InstructionKind::BEQL) { + return std::make_shared( + Condition(Condition::EQUAL, make_reg(instr.get_src(0).get_reg(), idx), + make_reg(instr.get_src(1).get_reg(), idx), nullptr), + instr.get_src(2).get_label(), get_branch_delay(next_instr, idx), true); + } + return nullptr; +} + +std::shared_ptr try_beq(Instruction& instr, Instruction& next_instr, int idx) { + if (instr.kind == InstructionKind::BEQ && instr.get_src(0).is_reg(make_gpr(Reg::R0)) && + instr.get_src(1).is_reg(make_gpr(Reg::R0))) { + return std::make_shared(Condition(Condition::ALWAYS, nullptr, nullptr, nullptr), + instr.get_src(2).get_label(), + get_branch_delay(next_instr, idx), false); + } else if (instr.kind == InstructionKind::BEQ && instr.get_src(0).is_reg(make_gpr(Reg::S7))) { + return std::make_shared( + Condition(Condition::FALSE, make_reg(instr.get_src(1).get_reg(), idx), nullptr, nullptr), + instr.get_src(2).get_label(), get_branch_delay(next_instr, idx), false); + } else if (instr.kind == InstructionKind::BEQ) { + return std::make_shared( + Condition(Condition::EQUAL, make_reg(instr.get_src(0).get_reg(), idx), + make_reg(instr.get_src(1).get_reg(), idx), nullptr), + instr.get_src(2).get_label(), get_branch_delay(next_instr, idx), false); + } + return nullptr; +} + +std::shared_ptr try_daddiu(Instruction& i0, Instruction& i1, int idx) { + if (i0.kind == InstructionKind::DADDIU && i1.kind == InstructionKind::MOVN && + i0.get_src(0).get_reg() == make_gpr(Reg::S7)) { + auto dst_reg = i0.get_dst(0).get_reg(); + auto src_reg = i1.get_src(1).get_reg(); + assert(i0.get_src(0).get_reg() == make_gpr(Reg::S7)); + assert(i0.get_src(1).get_imm() == 8); + assert(i1.get_dst(0).get_reg() == dst_reg); + assert(i1.get_src(0).get_reg() == make_gpr(Reg::S7)); + return make_set(IR_Set::REG_64, make_reg(dst_reg, idx), + std::make_shared( + Condition(Condition::ZERO, make_reg(src_reg, idx), nullptr, nullptr))); + } else if (i0.kind == InstructionKind::DADDIU && i1.kind == InstructionKind::MOVZ && + i0.get_src(0).get_reg() == make_gpr(Reg::S7)) { + auto dst_reg = i0.get_dst(0).get_reg(); + auto src_reg = i1.get_src(1).get_reg(); + assert(i0.get_src(0).get_reg() == make_gpr(Reg::S7)); + assert(i0.get_src(1).get_imm() == 8); + assert(i1.get_dst(0).get_reg() == dst_reg); + assert(i1.get_src(0).get_reg() == make_gpr(Reg::S7)); + return make_set(IR_Set::REG_64, make_reg(dst_reg, idx), + std::make_shared( + Condition(Condition::NONZERO, make_reg(src_reg, idx), nullptr, nullptr))); + } + return nullptr; +} + +std::shared_ptr try_lui(Instruction& i0, Instruction& i1, int idx) { + if (i0.kind == InstructionKind::LUI && i1.kind == InstructionKind::ORI && + i0.get_src(0).is_label() && i1.get_src(1).is_label()) { + assert(i0.get_dst(0).get_reg() == i1.get_src(0).get_reg()); + assert(i0.get_src(0).get_label() == i1.get_src(1).get_label()); + auto op = make_set(IR_Set::REG_64, make_reg(i1.get_dst(0).get_reg(), idx), + std::make_shared(i0.get_src(0).get_label())); + if (i0.get_dst(0).get_reg() != i1.get_dst(0).get_reg()) { + op->clobber = make_reg(i0.get_dst(0).get_reg(), idx); + } + return op; + } else if (i0.kind == InstructionKind::LUI && i1.kind == InstructionKind::ORI && + i0.get_src(0).is_imm() && i1.get_src(1).is_imm() && + i0.get_dst(0).get_reg() == i1.get_src(0).get_reg()) { + auto op = make_set( + IR_Set::REG_64, make_reg(i1.get_dst(0).get_reg(), idx), + make_int((int64_t(i1.get_src(1).get_imm()) + int64_t(i0.get_src(0).get_imm() << 16)))); + if (i0.get_dst(0).get_reg() != i1.get_dst(0).get_reg()) { + op->clobber = make_reg(i0.get_dst(0).get_reg(), idx); + } + return op; + } + return nullptr; +} + +// THREE OP +std::shared_ptr try_dsubu(Instruction& i0, Instruction& i1, Instruction& i2, int idx) { + if (i0.kind == InstructionKind::DSUBU && i1.kind == InstructionKind::DADDIU && + i2.kind == InstructionKind::MOVN) { + // check for equality + auto clobber_reg = i0.get_dst(0).get_reg(); + auto src0_reg = i0.get_src(0).get_reg(); + auto src1_reg = i0.get_src(1).get_reg(); + auto dst_reg = i1.get_dst(0).get_reg(); + assert(i1.get_src(0).get_reg() == make_gpr(Reg::S7)); + assert(i1.get_src(1).get_imm() == 8); + assert(i2.get_dst(0).get_reg() == dst_reg); + assert(i2.get_src(0).get_reg() == make_gpr(Reg::S7)); + assert(i2.get_src(1).get_reg() == clobber_reg); + return make_set(IR_Set::REG_64, make_reg(dst_reg, idx), + std::make_shared( + Condition(Condition::EQUAL, make_reg(src0_reg, idx), + make_reg(src1_reg, idx), make_reg(clobber_reg, idx)))); + } else if (i0.kind == InstructionKind::DSUBU && i1.kind == InstructionKind::DADDIU && + i2.kind == InstructionKind::MOVZ) { + // check for equality + auto clobber_reg = i0.get_dst(0).get_reg(); + auto src0_reg = i0.get_src(0).get_reg(); + auto src1_reg = i0.get_src(1).get_reg(); + auto dst_reg = i1.get_dst(0).get_reg(); + assert(i1.get_src(0).get_reg() == make_gpr(Reg::S7)); + assert(i1.get_src(1).get_imm() == 8); + assert(i2.get_dst(0).get_reg() == dst_reg); + assert(i2.get_src(0).get_reg() == make_gpr(Reg::S7)); + if (i2.get_src(1).get_reg() != clobber_reg) { + return nullptr; // TODO! + } + return make_set(IR_Set::REG_64, make_reg(dst_reg, idx), + std::make_shared( + Condition(Condition::NOT_EQUAL, make_reg(src0_reg, idx), + make_reg(src1_reg, idx), make_reg(clobber_reg, idx)))); + } + return nullptr; +} + +std::shared_ptr try_slt(Instruction& i0, Instruction& i1, Instruction& i2, int idx) { + if (i0.kind == InstructionKind::SLT && i1.kind == InstructionKind::BNE) { + auto clobber_reg = i0.get_dst(0).get_reg(); + auto src0_reg = i0.get_src(0).get_reg(); + auto src1_reg = i0.get_src(1).get_reg(); + assert(i1.get_src(0).get_reg() == clobber_reg); + assert(i1.get_src(1).get_reg() == make_gpr(Reg::R0)); + return std::make_shared( + Condition(Condition::LESS_THAN_SIGNED, make_reg(src0_reg, idx), make_reg(src1_reg, idx), + make_reg(clobber_reg, idx)), + i1.get_src(2).get_label(), get_branch_delay(i2, idx), false); + } else if (i0.kind == InstructionKind::SLT && i1.kind == InstructionKind::DADDIU && + i2.kind == InstructionKind::MOVZ) { + auto clobber_reg = i0.get_dst(0).get_reg(); + auto src0_reg = i0.get_src(0).get_reg(); + auto src1_reg = i0.get_src(1).get_reg(); + auto dst_reg = i1.get_dst(0).get_reg(); + assert(i1.get_src(0).is_reg(make_gpr(Reg::S7))); + assert(i1.get_src(1).get_imm() == 8); + assert(i2.get_dst(0).get_reg() == dst_reg); + assert(i2.get_src(0).get_reg() == make_gpr(Reg::S7)); + if (i2.get_src(1).get_reg() != clobber_reg) { + return nullptr; // TODO! + } + return make_set(IR_Set::REG_64, make_reg(dst_reg, idx), + std::make_shared( + Condition(Condition::LESS_THAN_SIGNED, make_reg(src0_reg, idx), + make_reg(src1_reg, idx), make_reg(clobber_reg, idx)))); + } else if (i0.kind == InstructionKind::SLT && i1.kind == InstructionKind::BEQ) { + auto clobber_reg = i0.get_dst(0).get_reg(); + auto src0_reg = i0.get_src(0).get_reg(); + auto src1_reg = i0.get_src(1).get_reg(); + assert(i1.get_src(0).get_reg() == clobber_reg); + assert(i1.get_src(1).get_reg() == make_gpr(Reg::R0)); + return std::make_shared( + Condition(Condition::GEQ_SIGNED, make_reg(src0_reg, idx), make_reg(src1_reg, idx), + make_reg(clobber_reg, idx)), + i1.get_src(2).get_label(), get_branch_delay(i2, idx), false); + } else if (i0.kind == InstructionKind::SLT && i1.kind == InstructionKind::DADDIU && + i2.kind == InstructionKind::MOVN) { + auto clobber_reg = i0.get_dst(0).get_reg(); + auto src0_reg = i0.get_src(0).get_reg(); + auto src1_reg = i0.get_src(1).get_reg(); + auto dst_reg = i1.get_dst(0).get_reg(); + assert(i1.get_src(0).is_reg(make_gpr(Reg::S7))); + assert(i1.get_src(1).get_imm() == 8); + assert(i2.get_dst(0).get_reg() == dst_reg); + assert(i2.get_src(0).get_reg() == make_gpr(Reg::S7)); + if (i2.get_src(1).get_reg() != clobber_reg) { + return nullptr; // TODO! + } + return make_set(IR_Set::REG_64, make_reg(dst_reg, idx), + std::make_shared( + Condition(Condition::GEQ_SIGNED, make_reg(src0_reg, idx), + make_reg(src1_reg, idx), make_reg(clobber_reg, idx)))); + } + return nullptr; +} + +std::shared_ptr try_slti(Instruction& i0, Instruction& i1, Instruction& i2, int idx) { + auto src1 = make_int(i0.get_src(1).get_imm()); + if (i0.kind == InstructionKind::SLTI && i1.kind == InstructionKind::BNE) { + auto clobber_reg = i0.get_dst(0).get_reg(); + auto src0_reg = i0.get_src(0).get_reg(); + assert(i1.get_src(0).get_reg() == clobber_reg); + assert(i1.get_src(1).get_reg() == make_gpr(Reg::R0)); + return std::make_shared( + Condition(Condition::LESS_THAN_SIGNED, make_reg(src0_reg, idx), src1, + make_reg(clobber_reg, idx)), + i1.get_src(2).get_label(), get_branch_delay(i2, idx), false); + } else if (i0.kind == InstructionKind::SLTI && i1.kind == InstructionKind::DADDIU && + i2.kind == InstructionKind::MOVZ) { + auto clobber_reg = i0.get_dst(0).get_reg(); + auto src0_reg = i0.get_src(0).get_reg(); + auto dst_reg = i1.get_dst(0).get_reg(); + assert(i1.get_src(0).is_reg(make_gpr(Reg::S7))); + assert(i1.get_src(1).get_imm() == 8); + assert(i2.get_dst(0).get_reg() == dst_reg); + assert(i2.get_src(0).get_reg() == make_gpr(Reg::S7)); + if (i2.get_src(1).get_reg() != clobber_reg) { + return nullptr; // TODO! + } + return make_set( + IR_Set::REG_64, make_reg(dst_reg, idx), + std::make_shared(Condition(Condition::LESS_THAN_SIGNED, make_reg(src0_reg, idx), + src1, make_reg(clobber_reg, idx)))); + } else if (i0.kind == InstructionKind::SLTI && i1.kind == InstructionKind::BEQ) { + auto clobber_reg = i0.get_dst(0).get_reg(); + auto src0_reg = i0.get_src(0).get_reg(); + assert(i1.get_src(0).get_reg() == clobber_reg); + assert(i1.get_src(1).get_reg() == make_gpr(Reg::R0)); + return std::make_shared( + Condition(Condition::GEQ_SIGNED, make_reg(src0_reg, idx), src1, make_reg(clobber_reg, idx)), + i1.get_src(2).get_label(), get_branch_delay(i2, idx), false); + } else if (i0.kind == InstructionKind::SLTI && i1.kind == InstructionKind::DADDIU && + i2.kind == InstructionKind::MOVN) { + auto clobber_reg = i0.get_dst(0).get_reg(); + auto src0_reg = i0.get_src(0).get_reg(); + auto dst_reg = i1.get_dst(0).get_reg(); + assert(i1.get_src(0).is_reg(make_gpr(Reg::S7))); + assert(i1.get_src(1).get_imm() == 8); + assert(i2.get_dst(0).get_reg() == dst_reg); + assert(i2.get_src(0).get_reg() == make_gpr(Reg::S7)); + if (i2.get_src(1).get_reg() != clobber_reg) { + return nullptr; // TODO! + } + return make_set( + IR_Set::REG_64, make_reg(dst_reg, idx), + std::make_shared(Condition(Condition::GEQ_SIGNED, make_reg(src0_reg, idx), src1, + make_reg(clobber_reg, idx)))); + } + return nullptr; +} + +std::shared_ptr try_sltiu(Instruction& i0, Instruction& i1, Instruction& i2, int idx) { + auto src1 = make_int(i0.get_src(1).get_imm()); + if (i0.kind == InstructionKind::SLTIU && i1.kind == InstructionKind::BNE) { + auto clobber_reg = i0.get_dst(0).get_reg(); + auto src0_reg = i0.get_src(0).get_reg(); + assert(i1.get_src(0).get_reg() == clobber_reg); + assert(i1.get_src(1).get_reg() == make_gpr(Reg::R0)); + return std::make_shared( + Condition(Condition::LESS_THAN_UNSIGNED, make_reg(src0_reg, idx), src1, + make_reg(clobber_reg, idx)), + i1.get_src(2).get_label(), get_branch_delay(i2, idx), false); + } else if (i0.kind == InstructionKind::SLTIU && i1.kind == InstructionKind::DADDIU && + i2.kind == InstructionKind::MOVZ) { + auto clobber_reg = i0.get_dst(0).get_reg(); + auto src0_reg = i0.get_src(0).get_reg(); + auto dst_reg = i1.get_dst(0).get_reg(); + assert(i1.get_src(0).is_reg(make_gpr(Reg::S7))); + assert(i1.get_src(1).get_imm() == 8); + assert(i2.get_dst(0).get_reg() == dst_reg); + assert(i2.get_src(0).get_reg() == make_gpr(Reg::S7)); + if (i2.get_src(1).get_reg() != clobber_reg) { + return nullptr; // TODO! + } + return make_set(IR_Set::REG_64, make_reg(dst_reg, idx), + std::make_shared(Condition(Condition::LESS_THAN_UNSIGNED, + make_reg(src0_reg, idx), src1, + make_reg(clobber_reg, idx)))); + } else if (i0.kind == InstructionKind::SLTIU && i1.kind == InstructionKind::BEQ) { + auto clobber_reg = i0.get_dst(0).get_reg(); + auto src0_reg = i0.get_src(0).get_reg(); + assert(i1.get_src(0).get_reg() == clobber_reg); + assert(i1.get_src(1).get_reg() == make_gpr(Reg::R0)); + return std::make_shared(Condition(Condition::GEQ_UNSIGNED, make_reg(src0_reg, idx), + src1, make_reg(clobber_reg, idx)), + i1.get_src(2).get_label(), get_branch_delay(i2, idx), false); + } else if (i0.kind == InstructionKind::SLTIU && i1.kind == InstructionKind::DADDIU && + i2.kind == InstructionKind::MOVN) { + auto clobber_reg = i0.get_dst(0).get_reg(); + auto src0_reg = i0.get_src(0).get_reg(); + auto dst_reg = i1.get_dst(0).get_reg(); + assert(i1.get_src(0).is_reg(make_gpr(Reg::S7))); + assert(i1.get_src(1).get_imm() == 8); + assert(i2.get_dst(0).get_reg() == dst_reg); + assert(i2.get_src(0).get_reg() == make_gpr(Reg::S7)); + if (i2.get_src(1).get_reg() != clobber_reg) { + return nullptr; // TODO! + } + return make_set( + IR_Set::REG_64, make_reg(dst_reg, idx), + std::make_shared(Condition(Condition::GEQ_UNSIGNED, make_reg(src0_reg, idx), + src1, make_reg(clobber_reg, idx)))); + } + return nullptr; +} + +std::shared_ptr try_ceqs(Instruction& i0, Instruction& i1, Instruction& i2, int idx) { + if (i0.kind == InstructionKind::CEQS && i1.kind == InstructionKind::BC1T) { + return std::make_shared( + Condition(Condition::FLOAT_EQUAL, make_reg(i0.get_src(0).get_reg(), idx), + make_reg(i0.get_src(1).get_reg(), idx), nullptr), + i1.get_src(0).get_label(), get_branch_delay(i2, idx), false); + } else if (i0.kind == InstructionKind::CEQS && i1.kind == InstructionKind::BC1F) { + return std::make_shared( + Condition(Condition::FLOAT_NOT_EQUAL, make_reg(i0.get_src(0).get_reg(), idx), + make_reg(i0.get_src(1).get_reg(), idx), nullptr), + i1.get_src(0).get_label(), get_branch_delay(i2, idx), false); + } + return nullptr; +} + +std::shared_ptr try_clts(Instruction& i0, Instruction& i1, Instruction& i2, int idx) { + if (i0.kind == InstructionKind::CLTS && i1.kind == InstructionKind::BC1T) { + return std::make_shared( + Condition(Condition::FLOAT_LESS_THAN, make_reg(i0.get_src(0).get_reg(), idx), + make_reg(i0.get_src(1).get_reg(), idx), nullptr), + i1.get_src(0).get_label(), get_branch_delay(i2, idx), false); + } else if (i0.kind == InstructionKind::CLTS && i1.kind == InstructionKind::BC1F) { + return std::make_shared( + Condition(Condition::FLOAT_GEQ, make_reg(i0.get_src(0).get_reg(), idx), + make_reg(i0.get_src(1).get_reg(), idx), nullptr), + i1.get_src(0).get_label(), get_branch_delay(i2, idx), false); + } + return nullptr; +} + +std::shared_ptr try_sltu(Instruction& i0, Instruction& i1, Instruction& i2, int idx) { + if (i0.kind == InstructionKind::SLTU && i1.kind == InstructionKind::BNE) { + auto clobber_reg = i0.get_dst(0).get_reg(); + auto src0_reg = i0.get_src(0).get_reg(); + auto src1_reg = i0.get_src(1).get_reg(); + assert(i1.get_src(0).get_reg() == clobber_reg); + assert(i1.get_src(1).get_reg() == make_gpr(Reg::R0)); + return std::make_shared( + Condition(Condition::LESS_THAN_UNSIGNED, make_reg(src0_reg, idx), make_reg(src1_reg, idx), + make_reg(clobber_reg, idx)), + i1.get_src(2).get_label(), get_branch_delay(i2, idx), false); + } else if (i0.kind == InstructionKind::SLTU && i1.kind == InstructionKind::DADDIU && + i2.kind == InstructionKind::MOVZ) { + auto clobber_reg = i0.get_dst(0).get_reg(); + auto src0_reg = i0.get_src(0).get_reg(); + auto src1_reg = i0.get_src(1).get_reg(); + auto dst_reg = i1.get_dst(0).get_reg(); + assert(i1.get_src(0).is_reg(make_gpr(Reg::S7))); + assert(i1.get_src(1).get_imm() == 8); + assert(i2.get_dst(0).get_reg() == dst_reg); + assert(i2.get_src(0).get_reg() == make_gpr(Reg::S7)); + if (i2.get_src(1).get_reg() != clobber_reg) { + return nullptr; // TODO! + } + return make_set(IR_Set::REG_64, make_reg(dst_reg, idx), + std::make_shared( + Condition(Condition::LESS_THAN_UNSIGNED, make_reg(src0_reg, idx), + make_reg(src1_reg, idx), make_reg(clobber_reg, idx)))); + } else if (i0.kind == InstructionKind::SLTU && i1.kind == InstructionKind::BEQ) { + auto clobber_reg = i0.get_dst(0).get_reg(); + auto src0_reg = i0.get_src(0).get_reg(); + auto src1_reg = i0.get_src(1).get_reg(); + assert(i1.get_src(0).get_reg() == clobber_reg); + assert(i1.get_src(1).get_reg() == make_gpr(Reg::R0)); + return std::make_shared( + Condition(Condition::GEQ_UNSIGNED, make_reg(src0_reg, idx), make_reg(src1_reg, idx), + make_reg(clobber_reg, idx)), + i1.get_src(2).get_label(), get_branch_delay(i2, idx), false); + } else if (i0.kind == InstructionKind::SLTU && i1.kind == InstructionKind::DADDIU && + i2.kind == InstructionKind::MOVN) { + auto clobber_reg = i0.get_dst(0).get_reg(); + auto src0_reg = i0.get_src(0).get_reg(); + auto src1_reg = i0.get_src(1).get_reg(); + auto dst_reg = i1.get_dst(0).get_reg(); + assert(i1.get_src(0).is_reg(make_gpr(Reg::S7))); + assert(i1.get_src(1).get_imm() == 8); + assert(i2.get_dst(0).get_reg() == dst_reg); + assert(i2.get_src(0).get_reg() == make_gpr(Reg::S7)); + if (i2.get_src(1).get_reg() != clobber_reg) { + return nullptr; // TODO! + } + return make_set(IR_Set::REG_64, make_reg(dst_reg, idx), + std::make_shared( + Condition(Condition::GEQ_UNSIGNED, make_reg(src0_reg, idx), + make_reg(src1_reg, idx), make_reg(clobber_reg, idx)))); + } + return nullptr; +} + +// five op +std::shared_ptr try_lwu(Instruction& i0, + Instruction& i1, + Instruction& i2, + Instruction& i3, + Instruction& i4, + int idx) { + auto s6 = make_gpr(Reg::S6); + if (i0.kind == InstructionKind::LWU && i0.get_dst(0).is_reg(s6) && + i0.get_src(0).get_imm() == 44 && i0.get_src(1).is_reg(s6) && + i1.kind == InstructionKind::MTLO1 && i1.get_src(0).is_reg(s6) && + i2.kind == InstructionKind::LWU && i2.get_dst(0).is_reg(s6) && + i2.get_src(0).get_imm() == 12 && i2.get_src(1).is_reg(s6) && + i3.kind == InstructionKind::JALR && i3.get_dst(0).is_reg(make_gpr(Reg::RA)) && + i3.get_src(0).is_reg(s6) && i4.kind == InstructionKind::MFLO1 && i4.get_dst(0).is_reg(s6)) { + return std::make_shared(); + } + return nullptr; +} + +} // namespace + +void add_basic_ops_to_block(Function* func, const BasicBlock& block, LinkedObjectFile* file) { + ConvertState state; + + for (int instr = block.start_word; instr < block.end_word; instr++) { + auto& i = func->instructions.at(instr); + + int length = 0; + + std::shared_ptr result = nullptr; + if (instr + 4 < block.end_word) { + auto& i1 = func->instructions.at(instr + 1); + auto& i2 = func->instructions.at(instr + 2); + auto& i3 = func->instructions.at(instr + 3); + auto& i4 = func->instructions.at(instr + 4); + switch (i.kind) { + case InstructionKind::LWU: + result = try_lwu(i, i1, i2, i3, i4, instr); + break; + default: + result = nullptr; + } + if (result) { + length = 5; + } + } + + if (!result && instr + 2 < block.end_word) { + auto& next = func->instructions.at(instr + 1); + auto& next_next = func->instructions.at(instr + 2); + switch (i.kind) { + case InstructionKind::DSUBU: + result = try_dsubu(i, next, next_next, instr); + break; + case InstructionKind::SLT: + result = try_slt(i, next, next_next, instr); + break; + case InstructionKind::SLTI: + result = try_slti(i, next, next_next, instr); + break; + case InstructionKind::SLTU: + result = try_sltu(i, next, next_next, instr); + break; + case InstructionKind::SLTIU: + result = try_sltiu(i, next, next_next, instr); + break; + case InstructionKind::CEQS: + result = try_ceqs(i, next, next_next, instr); + break; + case InstructionKind::CLTS: + result = try_clts(i, next, next_next, instr); + break; + default: + result = nullptr; + } + + if (result) { + length = 3; + } + } + + if (!result && instr + 1 < block.end_word) { + auto& next = func->instructions.at(instr + 1); + // single op failed, try double + switch (i.kind) { + case InstructionKind::DIV: + result = try_div(i, next, instr); + break; + case InstructionKind::DIVU: + result = try_divu(i, next, instr); + break; + case InstructionKind::JALR: + result = try_jalr(i, next, instr); + break; + case InstructionKind::BNE: + result = try_bne(i, next, instr); + break; + case InstructionKind::BNEL: + result = try_bnel(i, next, instr); + break; + case InstructionKind::BEQ: + result = try_beq(i, next, instr); + break; + case InstructionKind::BEQL: + result = try_beql(i, next, instr); + break; + case InstructionKind::DADDIU: + result = try_daddiu(i, next, instr); + break; + case InstructionKind::LUI: + result = try_lui(i, next, instr); + break; + default: + result = nullptr; + } + + if (result) { + length = 2; + } + } + + if (!result) { + switch (i.kind) { + case InstructionKind::OR: + result = try_or(i, instr); + break; + case InstructionKind::ORI: + result = try_ori(i, instr); + break; + case InstructionKind::DADDIU: + result = try_daddiu(i, instr); + break; + case InstructionKind::AND: + result = try_and(i, instr); + break; + case InstructionKind::ANDI: + result = try_andi(i, instr); + break; + case InstructionKind::NOR: + result = try_nor(i, instr); + break; + case InstructionKind::XOR: + result = try_xor(i, instr); + break; + case InstructionKind::LWC1: + result = try_lwc1(i, instr); + break; + case InstructionKind::MTC1: + result = try_mtc1(i, instr); + break; + case InstructionKind::DIVS: + result = try_float_math_2(i, instr, InstructionKind::DIVS, IR_FloatMath2::DIV); + break; + case InstructionKind::SUBS: + result = try_float_math_2(i, instr, InstructionKind::SUBS, IR_FloatMath2::SUB); + break; + case InstructionKind::ADDS: + result = try_float_math_2(i, instr, InstructionKind::ADDS, IR_FloatMath2::ADD); + break; + case InstructionKind::MULS: + result = try_float_math_2(i, instr, InstructionKind::MULS, IR_FloatMath2::MUL); + break; + case InstructionKind::ABSS: + result = try_float_math_1(i, instr, InstructionKind::ABSS, IR_FloatMath1::ABS); + break; + case InstructionKind::NEGS: + result = try_float_math_1(i, instr, InstructionKind::NEGS, IR_FloatMath1::NEG); + break; + case InstructionKind::SQRTS: + result = try_float_math_1(i, instr, InstructionKind::SQRTS, IR_FloatMath1::SQRT); + break; + case InstructionKind::MINS: + result = try_float_math_2(i, instr, InstructionKind::MINS, IR_FloatMath2::MIN); + break; + case InstructionKind::MAXS: + result = try_float_math_2(i, instr, InstructionKind::MAXS, IR_FloatMath2::MAX); + break; + case InstructionKind::MOVS: + result = try_movs(i, instr); + break; + case InstructionKind::MFC1: + result = try_mfc1(i, instr); + break; + case InstructionKind::DADDU: + result = try_daddu(i, instr); + break; + case InstructionKind::DSUBU: + result = try_dsubu(i, instr); + break; + case InstructionKind::MULT3: + result = try_mult3(i, instr); + break; + case InstructionKind::MULTU3: + result = try_multu3(i, instr); + break; + case InstructionKind::POR: + result = try_por(i, instr); + break; + case InstructionKind::LBU: + result = try_lbu(i, instr); + break; + case InstructionKind::LHU: + result = try_lhu(i, instr); + break; + case InstructionKind::LB: + result = try_lb(i, instr); + break; + case InstructionKind::LH: + result = try_lh(i, instr); + break; + case InstructionKind::LW: + result = try_lw(i, instr); + break; + case InstructionKind::LWU: + result = try_lwu(i, instr); + break; + case InstructionKind::LD: + result = try_ld(i, instr); + break; + case InstructionKind::LQ: + result = try_lq(i, instr); + break; + case InstructionKind::DSRA: + result = try_dsra(i, instr); + break; + case InstructionKind::DSRA32: + result = try_dsra32(i, instr); + break; + case InstructionKind::DSRL: + result = try_dsrl(i, instr); + break; + case InstructionKind::DSRL32: + result = try_dsrl32(i, instr); + break; + case InstructionKind::DSLL: + result = try_dsll(i, instr); + break; + case InstructionKind::DSLL32: + result = try_dsll32(i, instr); + break; + case InstructionKind::ADDIU: + result = try_addiu(i, instr); + break; + case InstructionKind::LUI: + result = try_lui(i, instr); + break; + case InstructionKind::SLL: + result = try_sll(i, instr); + break; + case InstructionKind::SB: + result = try_sb(i, instr); + break; + case InstructionKind::SH: + result = try_sh(i, instr); + break; + case InstructionKind::SW: + result = try_sw(i, instr); + break; + case InstructionKind::SD: + result = try_sd(i, instr); + break; + case InstructionKind::SQ: + result = try_sq(i, instr); + break; + case InstructionKind::SWC1: + result = try_swc1(i, instr); + break; + case InstructionKind::CVTWS: + result = try_cvtws(i, instr); + break; + case InstructionKind::CVTSW: + result = try_cvtsw(i, instr); + break; + default: + result = nullptr; + } + + if (result) { + length = 1; + } + } + + // everything failed + if (!result) { + state.reset(); + // temp hack for debug: + printf("Instruction -> BasicOp failed on %s\n", i.to_string(*file).c_str()); + func->add_basic_op(std::make_shared(), instr, instr + 1); + } else { + func->add_basic_op(result, instr, instr + length); + instr += (length - 1); + } + } +} diff --git a/decompiler/IR/BasicOpBuilder.h b/decompiler/IR/BasicOpBuilder.h new file mode 100644 index 0000000000..b7a2b553d8 --- /dev/null +++ b/decompiler/IR/BasicOpBuilder.h @@ -0,0 +1,13 @@ +/*! + * @file BasicOpBuilder.h + * Analyzes a basic block and converts instructions to BasicOps. + * These will be used later to convert the Cfg into the nested IR format. + */ + +#pragma once + +class Function; +struct BasicBlock; +class LinkedObjectFile; + +void add_basic_ops_to_block(Function* func, const BasicBlock& block, LinkedObjectFile* file); \ No newline at end of file diff --git a/decompiler/IR/IR.cpp b/decompiler/IR/IR.cpp new file mode 100644 index 0000000000..2b6ba34187 --- /dev/null +++ b/decompiler/IR/IR.cpp @@ -0,0 +1,391 @@ +#include "IR.h" +#include "decompiler/ObjectFile/LinkedObjectFile.h" + +std::string IR::print(const LinkedObjectFile& file) const { + return to_form(file)->toStringPretty(); +} + +std::shared_ptr
IR_Register::to_form(const LinkedObjectFile& file) const { + (void)file; + return toForm(reg.to_charp()); +} + +std::shared_ptr IR_Set::to_form(const LinkedObjectFile& file) const { + return buildList(toForm("set!"), dst->to_form(file), src->to_form(file)); +} + +std::shared_ptr IR_Store::to_form(const LinkedObjectFile& file) const { + std::string store_operator; + switch (kind) { + case FLOAT: + store_operator = "s.f"; + break; + case INTEGER: + switch (size) { + case 1: + store_operator = "s.b"; + break; + case 2: + store_operator = "s.h"; + break; + case 4: + store_operator = "s.w"; + break; + case 8: + store_operator = "s.d"; + break; + case 16: + store_operator = "s.q"; + break; + default: + assert(false); + } + break; + default: + assert(false); + } + + return buildList(toForm(store_operator), dst->to_form(file), src->to_form(file)); +} + +std::shared_ptr IR_Failed::to_form(const LinkedObjectFile& file) const { + (void)file; + return buildList("INVALID-OPERATION"); +} + +std::shared_ptr IR_Symbol::to_form(const LinkedObjectFile& file) const { + (void)file; + return toForm("'" + name); +} + +std::shared_ptr IR_SymbolValue::to_form(const LinkedObjectFile& file) const { + (void)file; + return toForm(name); +} + +std::shared_ptr IR_StaticAddress::to_form(const LinkedObjectFile& file) const { + // return buildList(toForm("&"), file.get_label_name(label_id)); + return toForm(file.get_label_name(label_id)); +} + +std::shared_ptr IR_Load::to_form(const LinkedObjectFile& file) const { + std::string load_operator; + switch (kind) { + case FLOAT: + load_operator = "l.f"; + break; + case UNSIGNED: + switch (size) { + case 1: + load_operator = "l.bu"; + break; + case 2: + load_operator = "l.hu"; + break; + case 4: + load_operator = "l.wu"; + break; + case 8: + load_operator = "l.d"; + break; + case 16: + load_operator = "l.q"; + break; + default: + assert(false); + } + break; + case SIGNED: + switch (size) { + case 1: + load_operator = "l.bs"; + break; + case 2: + load_operator = "l.hs"; + break; + case 4: + load_operator = "l.ws"; + break; + default: + assert(false); + } + break; + default: + assert(false); + } + return buildList(toForm(load_operator), location->to_form(file)); +} + +std::shared_ptr IR_FloatMath2::to_form(const LinkedObjectFile& file) const { + std::string math_operator; + switch (kind) { + case DIV: + math_operator = "/.f"; + break; + case MUL: + math_operator = "*.f"; + break; + case ADD: + math_operator = "+.f"; + break; + case SUB: + math_operator = "-.f"; + break; + case MIN: + math_operator = "min.f"; + break; + case MAX: + math_operator = "max.f"; + break; + default: + assert(false); + } + + return buildList(toForm(math_operator), arg0->to_form(file), arg1->to_form(file)); +} + +std::shared_ptr IR_IntMath2::to_form(const LinkedObjectFile& file) const { + std::string math_operator; + switch (kind) { + case ADD: + math_operator = "+.i"; + break; + case SUB: + math_operator = "-.i"; + break; + case MUL_SIGNED: + math_operator = "*.si"; + break; + case MUL_UNSIGNED: + math_operator = "*.ui"; + break; + case DIV_SIGNED: + math_operator = "/.si"; + break; + case MOD_SIGNED: + math_operator = "mod.si"; + break; + case DIV_UNSIGNED: + math_operator = "/.ui"; + break; + case MOD_UNSIGNED: + math_operator = "mod.ui"; + break; + case OR: + math_operator = "logior"; + break; + case AND: + math_operator = "logand"; + break; + case NOR: + math_operator = "lognor"; + break; + case XOR: + math_operator = "logxor"; + break; + case LEFT_SHIFT: + math_operator = "shl"; + break; + case RIGHT_SHIFT_ARITH: + math_operator = "sar"; + break; + case RIGHT_SHIFT_LOGIC: + math_operator = "shr"; + break; + default: + assert(false); + } + return buildList(toForm(math_operator), arg0->to_form(file), arg1->to_form(file)); +} + +std::shared_ptr IR_IntMath1::to_form(const LinkedObjectFile& file) const { + std::string math_operator; + switch (kind) { + case NOT: + math_operator = "lognot"; + break; + default: + assert(false); + } + return buildList(toForm(math_operator), arg->to_form(file)); +} + +std::shared_ptr IR_FloatMath1::to_form(const LinkedObjectFile& file) const { + std::string math_operator; + switch (kind) { + case FLOAT_TO_INT: + math_operator = "int<-float"; + break; + case INT_TO_FLOAT: + math_operator = "float<-int"; + break; + case ABS: + math_operator = "abs.f"; + break; + case NEG: + math_operator = "neg.f"; + break; + case SQRT: + math_operator = "sqrt.f"; + break; + default: + assert(false); + } + return buildList(toForm(math_operator), arg->to_form(file)); +} + +std::shared_ptr IR_Call::to_form(const LinkedObjectFile& file) const { + (void)file; + return buildList("call!"); +} + +std::shared_ptr IR_IntegerConstant::to_form(const LinkedObjectFile& file) const { + (void)file; + return toForm(std::to_string(value)); +} + +std::shared_ptr BranchDelay::to_form(const LinkedObjectFile& file) const { + (void)file; + switch (kind) { + case NOP: + return buildList("nop"); + case SET_REG_FALSE: + return buildList(toForm("set!"), destination->to_form(file), "'#f"); + case SET_REG_TRUE: + return buildList(toForm("set!"), destination->to_form(file), "'#t"); + case SET_REG_REG: + return buildList(toForm("set!"), destination->to_form(file), source->to_form(file)); + case UNKNOWN: + return buildList("unknown-branch-delay"); + default: + assert(false); + } +} + +std::shared_ptr IR_Nop::to_form(const LinkedObjectFile& file) const { + (void)file; + return buildList("nop!"); +} + +int Condition::num_args() const { + switch (kind) { + case NOT_EQUAL: + case EQUAL: + case LESS_THAN_SIGNED: + case LESS_THAN_UNSIGNED: + case GREATER_THAN_SIGNED: + case GREATER_THAN_UNSIGNED: + case LEQ_SIGNED: + case GEQ_SIGNED: + case LEQ_UNSIGNED: + case GEQ_UNSIGNED: + case FLOAT_EQUAL: + case FLOAT_NOT_EQUAL: + case FLOAT_LESS_THAN: + case FLOAT_GEQ: + return 2; + case ZERO: + case NONZERO: + case FALSE: + case TRUTHY: + return 1; + case ALWAYS: + return 0; + default: + assert(false); + } +} + +std::shared_ptr Condition::to_form(const LinkedObjectFile& file) const { + int nargs = num_args(); + std::string condtion_operator; + switch (kind) { + case NOT_EQUAL: + condtion_operator = "!="; + break; + case EQUAL: + condtion_operator = "="; + break; + case LESS_THAN_SIGNED: + condtion_operator = "<.si"; + break; + case LESS_THAN_UNSIGNED: + condtion_operator = "<.ui"; + break; + case GREATER_THAN_SIGNED: + condtion_operator = ">.si"; + break; + case GREATER_THAN_UNSIGNED: + condtion_operator = ">.ui"; + break; + case LEQ_SIGNED: + condtion_operator = "<=.si"; + break; + case GEQ_SIGNED: + condtion_operator = ">=.si"; + break; + case LEQ_UNSIGNED: + condtion_operator = "<=.ui"; + break; + case GEQ_UNSIGNED: + condtion_operator = ">=.ui"; + break; + case ZERO: + condtion_operator = "zero?"; + break; + case NONZERO: + condtion_operator = "nonzero?"; + break; + case FALSE: + condtion_operator = "not"; + break; + case TRUTHY: + condtion_operator = ""; + break; + case ALWAYS: + condtion_operator = "'#t"; + break; + case FLOAT_EQUAL: + condtion_operator = "=.f"; + break; + case FLOAT_NOT_EQUAL: + condtion_operator = "!=.f"; + break; + case FLOAT_LESS_THAN: + condtion_operator = "<.f"; + break; + case FLOAT_GEQ: + condtion_operator = ">=.f"; + break; + default: + assert(false); + } + + if (nargs == 2) { + return buildList(toForm(condtion_operator), src0->to_form(file), src1->to_form(file)); + } else if (nargs == 1) { + if (condtion_operator.empty()) { + return src0->to_form(file); + } else { + return buildList(toForm(condtion_operator), src0->to_form(file)); + } + } else if (nargs == 0) { + return toForm(condtion_operator); + } else { + assert(false); + } +} + +std::shared_ptr IR_Branch::to_form(const LinkedObjectFile& file) const { + return buildList(toForm(likely ? "bl!" : "b!"), condition.to_form(file), + toForm(file.get_label_name(dest_label_idx)), branch_delay.to_form(file)); +} + +std::shared_ptr IR_Compare::to_form(const LinkedObjectFile& file) const { + return condition.to_form(file); +} + +std::shared_ptr IR_Suspend::to_form(const LinkedObjectFile& file) const { + (void)file; + return buildList("suspend!"); +} \ No newline at end of file diff --git a/decompiler/IR/IR.h b/decompiler/IR/IR.h new file mode 100644 index 0000000000..e347afe9b5 --- /dev/null +++ b/decompiler/IR/IR.h @@ -0,0 +1,243 @@ +#ifndef JAK_IR_H +#define JAK_IR_H + +#include +#include "decompiler/Disasm/Register.h" +#include "decompiler/util/LispPrint.h" + +class LinkedObjectFile; + +class IR { + public: + virtual std::shared_ptr to_form(const LinkedObjectFile& file) const = 0; + std::string print(const LinkedObjectFile& file) const; + + bool is_basic_op = false; +}; + +class IR_Failed : public IR { + public: + IR_Failed() = default; + std::shared_ptr to_form(const LinkedObjectFile& file) const override; +}; + +class IR_Register : public IR { + public: + IR_Register(Register _reg, int _instr_idx) : reg(_reg), instr_idx(_instr_idx) {} + std::shared_ptr to_form(const LinkedObjectFile& file) const override; + Register reg; + int instr_idx = -1; +}; + +class IR_Set : public IR { + public: + enum Kind { + REG_64, + LOAD, + STORE, + SYM_LOAD, + SYM_STORE, + FPR_TO_GPR64, + GPR_TO_FPR, + REG_FLT, + REG_I128 + } kind; + IR_Set(Kind _kind, std::shared_ptr _dst, std::shared_ptr _src) + : kind(_kind), dst(std::move(_dst)), src(std::move(_src)) {} + std::shared_ptr to_form(const LinkedObjectFile& file) const override; + std::shared_ptr dst, src; + std::shared_ptr clobber = nullptr; +}; + +class IR_Store : public IR_Set { + public: + enum Kind { INTEGER, FLOAT } kind; + IR_Store(Kind _kind, std::shared_ptr _dst, std::shared_ptr _src, int _size) + : IR_Set(IR_Set::LOAD, std::move(_dst), std::move(_src)), kind(_kind), size(_size) {} + int size; + std::shared_ptr to_form(const LinkedObjectFile& file) const override; +}; + +class IR_Symbol : public IR { + public: + IR_Symbol(std::string _name) : name(std::move(_name)) {} + std::string name; + std::shared_ptr to_form(const LinkedObjectFile& file) const override; +}; + +class IR_SymbolValue : public IR { + public: + IR_SymbolValue(std::string _name) : name(std::move(_name)) {} + std::string name; + std::shared_ptr to_form(const LinkedObjectFile& file) const override; +}; + +class IR_StaticAddress : public IR { + public: + IR_StaticAddress(int _label_id) : label_id(_label_id) {} + int label_id = -1; + std::shared_ptr to_form(const LinkedObjectFile& file) const override; +}; + +class IR_Load : public IR { + public: + enum Kind { UNSIGNED, SIGNED, FLOAT } kind; + + IR_Load(Kind _kind, int _size, const std::shared_ptr& _location) + : kind(_kind), size(_size), location(_location) {} + int size; + std::shared_ptr location; + std::shared_ptr to_form(const LinkedObjectFile& file) const override; +}; + +class IR_FloatMath2 : public IR { + public: + enum Kind { DIV, MUL, ADD, SUB, MIN, MAX } kind; + IR_FloatMath2(Kind _kind, std::shared_ptr _arg0, std::shared_ptr _arg1) + : kind(_kind), arg0(std::move(_arg0)), arg1(std::move(_arg1)) {} + std::shared_ptr arg0, arg1; + std::shared_ptr to_form(const LinkedObjectFile& file) const override; +}; + +class IR_FloatMath1 : public IR { + public: + enum Kind { FLOAT_TO_INT, INT_TO_FLOAT, ABS, NEG, SQRT } kind; + IR_FloatMath1(Kind _kind, std::shared_ptr _arg) : kind(_kind), arg(std::move(_arg)) {} + std::shared_ptr arg; + std::shared_ptr to_form(const LinkedObjectFile& file) const override; +}; + +class IR_IntMath2 : public IR { + public: + enum Kind { + ADD, + SUB, + MUL_SIGNED, + DIV_SIGNED, + MOD_SIGNED, + DIV_UNSIGNED, + MOD_UNSIGNED, + OR, + AND, + NOR, + XOR, + LEFT_SHIFT, + RIGHT_SHIFT_ARITH, + RIGHT_SHIFT_LOGIC, + MUL_UNSIGNED + } kind; + IR_IntMath2(Kind _kind, std::shared_ptr _arg0, std::shared_ptr _arg1) + : kind(_kind), arg0(std::move(_arg0)), arg1(std::move(_arg1)) {} + std::shared_ptr arg0, arg1; + std::shared_ptr to_form(const LinkedObjectFile& file) const override; +}; + +class IR_IntMath1 : public IR { + public: + enum Kind { NOT } kind; + IR_IntMath1(Kind _kind, std::shared_ptr _arg) : kind(_kind), arg(std::move(_arg)) {} + std::shared_ptr arg; + std::shared_ptr to_form(const LinkedObjectFile& file) const override; +}; + +class IR_Call : public IR { + public: + IR_Call() = default; + std::shared_ptr to_form(const LinkedObjectFile& file) const override; +}; + +class IR_IntegerConstant : public IR { + public: + int64_t value; + explicit IR_IntegerConstant(int64_t _value) : value(_value) {} + std::shared_ptr to_form(const LinkedObjectFile& file) const override; +}; + +struct BranchDelay { + enum Kind { NOP, SET_REG_FALSE, SET_REG_TRUE, SET_REG_REG, UNKNOWN } kind; + std::shared_ptr destination = nullptr, source = nullptr; + BranchDelay(Kind _kind) : kind(_kind) {} + std::shared_ptr to_form(const LinkedObjectFile& file) const; +}; + +struct Condition { + enum Kind { + NOT_EQUAL, + EQUAL, + LESS_THAN_SIGNED, + GREATER_THAN_SIGNED, + LEQ_SIGNED, + GEQ_SIGNED, + LESS_THAN_UNSIGNED, + GREATER_THAN_UNSIGNED, + LEQ_UNSIGNED, + GEQ_UNSIGNED, + ZERO, + NONZERO, + FALSE, + TRUTHY, + ALWAYS, + FLOAT_EQUAL, + FLOAT_NOT_EQUAL, + FLOAT_LESS_THAN, + FLOAT_GEQ + } kind; + + Condition(Kind _kind, + std::shared_ptr _src0, + std::shared_ptr _src1, + std::shared_ptr _clobber) + : kind(_kind), src0(std::move(_src0)), src1(std::move(_src1)), clobber(std::move(_clobber)) { + int nargs = num_args(); + if (nargs == 2) { + assert(src0 && src1); + } else if (nargs == 1) { + assert(src0 && !src1); + } else if (nargs == 0) { + assert(!src0 && !src1); + } + } + + int num_args() const; + std::shared_ptr to_form(const LinkedObjectFile& file) const; + std::shared_ptr src0, src1, clobber; +}; + +class IR_Branch : public IR { + public: + IR_Branch(Condition _condition, int _dest_label_idx, BranchDelay _branch_delay, bool _likely) + : condition(std::move(_condition)), + dest_label_idx(_dest_label_idx), + branch_delay(std::move(_branch_delay)), + likely(_likely) {} + + Condition condition; + int dest_label_idx; + BranchDelay branch_delay; + bool likely; + + std::shared_ptr to_form(const LinkedObjectFile& file) const override; +}; + +class IR_Compare : public IR { + public: + explicit IR_Compare(Condition _condition) : condition(std::move(_condition)) {} + + Condition condition; + + std::shared_ptr to_form(const LinkedObjectFile& file) const override; +}; + +class IR_Nop : public IR { + public: + IR_Nop() = default; + std::shared_ptr to_form(const LinkedObjectFile& file) const override; +}; + +class IR_Suspend : public IR { + public: + IR_Suspend() = default; + std::shared_ptr to_form(const LinkedObjectFile& file) const override; +}; + +#endif // JAK_IR_H diff --git a/decompiler/ObjectFile/LinkedObjectFile.cpp b/decompiler/ObjectFile/LinkedObjectFile.cpp index be9eaa1de7..6f4249bd7f 100644 --- a/decompiler/ObjectFile/LinkedObjectFile.cpp +++ b/decompiler/ObjectFile/LinkedObjectFile.cpp @@ -483,6 +483,8 @@ void LinkedObjectFile::process_fp_relative_links() { if (pprev_instr && pprev_instr->kind == InstructionKind::LUI) { assert(pprev_instr->get_dst(0).get_reg() == offset_reg); additional_offset = (1 << 16) * pprev_instr->get_imm_src().get_imm(); + pprev_instr->get_imm_src().set_label( + get_label_id_for(seg, current_fp + atom.get_imm() + additional_offset)); } atom.set_label( get_label_id_for(seg, current_fp + atom.get_imm() + additional_offset)); @@ -554,6 +556,12 @@ std::string LinkedObjectFile::print_disassembly() { auto& word = words_by_seg[seg].at(func.start_word + i); append_word_to_string(result, word); } else { + if (func.has_basic_ops() && func.instr_starts_basic_op(i)) { + if (line.length() < 40) { + line.append(40 - line.length(), ' '); + } + line += ";; " + func.get_basic_op_at_instr(i)->print(*this); + } result += line + "\n"; } diff --git a/decompiler/ObjectFile/LinkedObjectFileCreation.cpp b/decompiler/ObjectFile/LinkedObjectFileCreation.cpp index 91cfa2b19f..936aefeb0b 100644 --- a/decompiler/ObjectFile/LinkedObjectFileCreation.cpp +++ b/decompiler/ObjectFile/LinkedObjectFileCreation.cpp @@ -8,7 +8,7 @@ #include #include "LinkedObjectFileCreation.h" #include "decompiler/config.h" -#include "decompiler/TypeSystem/TypeInfo.h" +#include "decompiler/util/DecompilerTypeSystem.h" // There are three link versions: // V2 - not really in use anymore, but V4 will resue logic from it (and the game didn't rename the @@ -86,8 +86,9 @@ static uint32_t c_symlink2(LinkedObjectFile& f, uint32_t link_ptr_offset, SymbolLinkKind kind, const char* name, - int seg_id) { - get_type_info().inform_symbol_with_no_type_info(name); + int seg_id, + DecompilerTypeSystem& dts) { + dts.add_symbol(name); auto initial_offset = code_ptr_offset; do { auto table_value = data.at(link_ptr_offset); @@ -130,7 +131,7 @@ static uint32_t c_symlink2(LinkedObjectFile& f, word_kind = LinkedWord::EMPTY_PTR; break; case SymbolLinkKind::TYPE: - get_type_info().inform_type(name); + dts.add_symbol(name, "type"); word_kind = LinkedWord::TYPE_PTR; break; default: @@ -162,8 +163,9 @@ static uint32_t c_symlink3(LinkedObjectFile& f, uint32_t link_ptr, SymbolLinkKind kind, const char* name, - int seg) { - get_type_info().inform_symbol_with_no_type_info(name); + int seg, + DecompilerTypeSystem& dts) { + dts.add_symbol(name); auto initial_offset = code_ptr; do { // seek, with a variable length encoding that sucks. @@ -187,7 +189,7 @@ static uint32_t c_symlink3(LinkedObjectFile& f, word_kind = LinkedWord::EMPTY_PTR; break; case SymbolLinkKind::TYPE: - get_type_info().inform_type(name); + dts.add_symbol(name, "type"); word_kind = LinkedWord::TYPE_PTR; break; default: @@ -223,7 +225,8 @@ static uint32_t align16(uint32_t in) { */ static void link_v4(LinkedObjectFile& f, const std::vector& data, - const std::string& name) { + const std::string& name, + DecompilerTypeSystem& dts) { // read the V4 header to find where the link data really is const auto* header = (const LinkHeaderV4*)&data.at(0); uint32_t link_data_offset = header->code_size + sizeof(LinkHeaderV4); // no basic offset @@ -358,7 +361,7 @@ static void link_v4(LinkedObjectFile& f, link_ptr_offset += strlen(s_name) + 1; f.stats.total_v2_symbol_count++; - link_ptr_offset = c_symlink2(f, data, code_offset, link_ptr_offset, kind, s_name, 0); + link_ptr_offset = c_symlink2(f, data, code_offset, link_ptr_offset, kind, s_name, 0, dts); if (data.at(link_ptr_offset) == 0) break; } @@ -384,7 +387,8 @@ static void assert_string_empty_after(const char* str, int size) { static void link_v5(LinkedObjectFile& f, const std::vector& data, - const std::string& name) { + const std::string& name, + DecompilerTypeSystem& dts) { auto header = (const LinkHeaderV5*)(&data.at(0)); if (header->n_segments == 1) { printf("abandon %s!\n", name.c_str()); @@ -539,10 +543,10 @@ static void link_v5(LinkedObjectFile& f, if (std::string("_empty_") == sname) { link_ptr = c_symlink2(f, data, segment_data_offsets[seg_id], link_ptr, - SymbolLinkKind::EMPTY_LIST, sname, seg_id); + SymbolLinkKind::EMPTY_LIST, sname, seg_id, dts); } else { link_ptr = c_symlink2(f, data, segment_data_offsets[seg_id], link_ptr, - SymbolLinkKind::SYMBOL, sname, seg_id); + SymbolLinkKind::SYMBOL, sname, seg_id, dts); } } else if ((reloc & 0x3f) == 0x3f) { assert(false); // todo, does this ever get hit? @@ -556,7 +560,7 @@ static void link_v5(LinkedObjectFile& f, const char* sname = (const char*)(&data.at(link_ptr)); link_ptr += strlen(sname) + 1; link_ptr = c_symlink2(f, data, segment_data_offsets[seg_id], link_ptr, - SymbolLinkKind::TYPE, sname, seg_id); + SymbolLinkKind::TYPE, sname, seg_id, dts); } sub_link_ptr = link_ptr; @@ -586,7 +590,8 @@ static void link_v5(LinkedObjectFile& f, static void link_v3(LinkedObjectFile& f, const std::vector& data, - const std::string& name) { + const std::string& name, + DecompilerTypeSystem& dts) { auto header = (const LinkHeaderV3*)(&data.at(0)); assert(name == header->name); assert(header->segments == 3); @@ -739,7 +744,7 @@ static void link_v3(LinkedObjectFile& f, // methods todo s_name = (const char*)(&data.at(link_ptr)); - get_type_info().inform_type_method_count(s_name, reloc & 0x7f); + // get_type_info().inform_type_method_count(s_name, reloc & 0x7f); todo kind = SymbolLinkKind::TYPE; } @@ -750,7 +755,7 @@ static void link_v3(LinkedObjectFile& f, link_ptr += strlen(s_name) + 1; f.stats.v3_symbol_count++; - link_ptr = c_symlink3(f, data, base_ptr, link_ptr, kind, s_name, seg_id); + link_ptr = c_symlink3(f, data, base_ptr, link_ptr, kind, s_name, seg_id, dts); } segment_link_ends[seg_id] = link_ptr; } @@ -775,19 +780,21 @@ static void link_v3(LinkedObjectFile& f, /*! * Main function to generate LinkedObjectFiles from raw object data. */ -LinkedObjectFile to_linked_object_file(const std::vector& data, const std::string& name) { +LinkedObjectFile to_linked_object_file(const std::vector& data, + const std::string& name, + DecompilerTypeSystem& dts) { LinkedObjectFile result; const auto* header = (const LinkHeaderCommon*)&data.at(0); // use appropriate linker if (header->version == 3) { assert(header->type_tag == 0); - link_v3(result, data, name); + link_v3(result, data, name, dts); } else if (header->version == 4) { assert(header->type_tag == 0xffffffff); - link_v4(result, data, name); + link_v4(result, data, name, dts); } else if (header->version == 5) { - link_v5(result, data, name); + link_v5(result, data, name, dts); } else { assert(false); } diff --git a/decompiler/ObjectFile/LinkedObjectFileCreation.h b/decompiler/ObjectFile/LinkedObjectFileCreation.h index 7faf3b602c..fde133275f 100644 --- a/decompiler/ObjectFile/LinkedObjectFileCreation.h +++ b/decompiler/ObjectFile/LinkedObjectFileCreation.h @@ -11,6 +11,9 @@ #include "LinkedObjectFile.h" -LinkedObjectFile to_linked_object_file(const std::vector& data, const std::string& name); +class DecompilerTypeSystem; +LinkedObjectFile to_linked_object_file(const std::vector& data, + const std::string& name, + DecompilerTypeSystem& dts); #endif // NEXT_LINKEDOBJECTFILECREATION_H diff --git a/decompiler/ObjectFile/ObjectFileDB.cpp b/decompiler/ObjectFile/ObjectFileDB.cpp index ec6bcfc700..8bdcb184e4 100644 --- a/decompiler/ObjectFile/ObjectFileDB.cpp +++ b/decompiler/ObjectFile/ObjectFileDB.cpp @@ -18,6 +18,7 @@ #include "common/util/Timer.h" #include "common/util/FileUtil.h" #include "decompiler/Function/BasicBlocks.h" +#include "decompiler/IR/BasicOpBuilder.h" /*! * Get a unique name for this object file. @@ -64,6 +65,8 @@ ObjectFileData& ObjectFileDB::lookup_record(ObjectFileRecord rec) { */ ObjectFileDB::ObjectFileDB(const std::vector& _dgos) { Timer timer; + printf("- Loading Types...\n"); + dts.parse_type_defs({"decompiler", "config", "all-types.gc"}); printf("- Initializing ObjectFileDB...\n"); for (auto& dgo : _dgos) { @@ -71,7 +74,7 @@ ObjectFileDB::ObjectFileDB(const std::vector& _dgos) { } printf("ObjectFileDB Initialized:\n"); - printf(" total dgos: %lld\n", _dgos.size()); + printf(" total dgos: %d\n", int(_dgos.size())); printf(" total data: %d bytes\n", stats.total_dgo_bytes); printf(" total objs: %d\n", stats.total_obj_files); printf(" unique objs: %d\n", stats.unique_obj_files); @@ -356,7 +359,7 @@ void ObjectFileDB::process_link_data() { LinkedObjectFile::Stats combined_stats; for_each_obj([&](ObjectFileData& obj) { - obj.linked_data = to_linked_object_file(obj.data, obj.record.name); + obj.linked_data = to_linked_object_file(obj.data, obj.record.name, dts); combined_stats.add(obj.linked_data.stats); }); @@ -543,7 +546,7 @@ void ObjectFileDB::analyze_functions() { auto& func = data.linked_data.functions_by_seg.at(2).front(); assert(func.guessed_name.empty()); func.guessed_name.set_as_top_level(); - func.find_global_function_defs(data.linked_data); + func.find_global_function_defs(data.linked_data, dts); func.find_method_defs(data.linked_data); } }); @@ -591,6 +594,8 @@ void ObjectFileDB::analyze_functions() { int total_nontrivial_functions = 0; int total_resolved_nontrivial_functions = 0; int total_named_functions = 0; + int total_basic_ops = 0; + int total_failed_basic_ops = 0; std::map> unresolved_by_length; if (get_config().find_basic_blocks) { @@ -601,10 +606,18 @@ void ObjectFileDB::analyze_functions() { total_basic_blocks += blocks.size(); func.basic_blocks = blocks; + total_functions++; if (!func.suspected_asm) { func.analyze_prologue(data.linked_data); func.cfg = build_cfg(data.linked_data, segment_id, func); - total_functions++; + for (auto& block : func.basic_blocks) { + if (block.end_word > block.start_word) { + add_basic_ops_to_block(&func, block, &data.linked_data); + } + } + total_basic_ops += func.get_basic_op_count(); + total_failed_basic_ops += func.get_failed_basic_op_count(); + if (func.cfg->is_fully_resolved()) { resolved_cfg_functions++; } @@ -640,11 +653,15 @@ void ObjectFileDB::analyze_functions() { total_nontrivial_functions, 100.f * float(total_resolved_nontrivial_functions) / float(total_nontrivial_functions)); - for (auto& kv : unresolved_by_length) { - printf("LEN %d\n", kv.first); - for (auto& x : kv.second) { - printf(" %s\n", x.c_str()); - } - } + int successful_basic_ops = total_basic_ops - total_failed_basic_ops; + printf(" %d/%d basic ops converted successfully (%.2f%%)\n", successful_basic_ops, + total_basic_ops, 100.f * float(successful_basic_ops) / float(total_basic_ops)); + + // for (auto& kv : unresolved_by_length) { + // printf("LEN %d\n", kv.first); + // for (auto& x : kv.second) { + // printf(" %s\n", x.c_str()); + // } + // } } } diff --git a/decompiler/ObjectFile/ObjectFileDB.h b/decompiler/ObjectFile/ObjectFileDB.h index 286005e93d..b9d8915f6f 100644 --- a/decompiler/ObjectFile/ObjectFileDB.h +++ b/decompiler/ObjectFile/ObjectFileDB.h @@ -15,6 +15,7 @@ #include #include #include "LinkedObjectFile.h" +#include "decompiler/util/DecompilerTypeSystem.h" /*! * A "record" which can be used to identify an object file. @@ -55,6 +56,7 @@ class ObjectFileDB { void write_disassembly(const std::string& output_dir, bool disassemble_objects_without_functions); void analyze_functions(); ObjectFileData& lookup_record(ObjectFileRecord rec); + DecompilerTypeSystem dts; private: void get_objs_from_dgo(const std::string& filename); diff --git a/decompiler/TypeSystem/GoalFunction.cpp b/decompiler/TypeSystem/GoalFunction.cpp deleted file mode 100644 index f27ac3fbcf..0000000000 --- a/decompiler/TypeSystem/GoalFunction.cpp +++ /dev/null @@ -1 +0,0 @@ -#include "GoalFunction.h" diff --git a/decompiler/TypeSystem/GoalFunction.h b/decompiler/TypeSystem/GoalFunction.h deleted file mode 100644 index c682ebc593..0000000000 --- a/decompiler/TypeSystem/GoalFunction.h +++ /dev/null @@ -1,17 +0,0 @@ -#pragma once - -#ifndef JAK_DISASSEMBLER_GOALFUNCTION_H -#define JAK_DISASSEMBLER_GOALFUNCTION_H - -class GoalFunction { - public: - // enum Kind { - // GLOBAL_FUNCTION, - // ANON_FUNCTION, - // METHOD, - // BEHAVIOR, - // UNKNOWN - // }; -}; - -#endif // JAK_DISASSEMBLER_GOALFUNCTION_H diff --git a/decompiler/TypeSystem/GoalSymbol.cpp b/decompiler/TypeSystem/GoalSymbol.cpp deleted file mode 100644 index f60dc6d825..0000000000 --- a/decompiler/TypeSystem/GoalSymbol.cpp +++ /dev/null @@ -1 +0,0 @@ -#include "GoalSymbol.h" diff --git a/decompiler/TypeSystem/GoalSymbol.h b/decompiler/TypeSystem/GoalSymbol.h deleted file mode 100644 index 5def7a1830..0000000000 --- a/decompiler/TypeSystem/GoalSymbol.h +++ /dev/null @@ -1,39 +0,0 @@ -#pragma once - -#ifndef JAK_DISASSEMBLER_GOALSYMBOL_H -#define JAK_DISASSEMBLER_GOALSYMBOL_H - -#include -#include -#include "TypeSpec.h" - -class GoalSymbol { - public: - GoalSymbol() = default; - explicit GoalSymbol(std::string name) : m_name(std::move(name)) {} - GoalSymbol(std::string name, TypeSpec ts) : m_name(std::move(name)), m_type(std::move(ts)) { - m_has_type_info = true; - } - - bool has_type_info() const { return m_has_type_info; } - - void set_type(TypeSpec ts) { - if (m_has_type_info) { - if (ts != m_type) { - printf("symbol %s %s -> %s", m_name.c_str(), m_type.to_string().c_str(), - ts.to_string().c_str()); - assert(false); - } - } - - m_has_type_info = true; - m_type = std::move(ts); - } - - private: - std::string m_name; - TypeSpec m_type; - bool m_has_type_info = false; -}; - -#endif // JAK_DISASSEMBLER_GOALSYMBOL_H diff --git a/decompiler/TypeSystem/GoalType.cpp b/decompiler/TypeSystem/GoalType.cpp deleted file mode 100644 index b0287dfcb7..0000000000 --- a/decompiler/TypeSystem/GoalType.cpp +++ /dev/null @@ -1,13 +0,0 @@ -#include "GoalType.h" - -void GoalType::set_methods(int n) { - if (m_method_count_set) { - if (m_method_count != n) { - printf("Type %s had %d methods, set_methods tried to change it to %d\n", m_name.c_str(), - m_method_count, n); - } - } else { - m_method_count = n; - m_method_count_set = true; - } -} \ No newline at end of file diff --git a/decompiler/TypeSystem/GoalType.h b/decompiler/TypeSystem/GoalType.h deleted file mode 100644 index 56853fcbef..0000000000 --- a/decompiler/TypeSystem/GoalType.h +++ /dev/null @@ -1,25 +0,0 @@ -#pragma once - -#ifndef JAK_DISASSEMBLER_GOALTYPE_H -#define JAK_DISASSEMBLER_GOALTYPE_H - -#include - -class GoalType { - public: - GoalType() = default; - GoalType(std::string name) : m_name(std::move(name)) {} - bool has_info() const { return m_has_info; } - - bool has_method_count() const { return m_method_count_set; } - - void set_methods(int n); - - private: - std::string m_name; - bool m_has_info = false; - bool m_method_count_set = false; - int m_method_count = -1; -}; - -#endif // JAK_DISASSEMBLER_GOALTYPE_H diff --git a/decompiler/TypeSystem/TypeInfo.cpp b/decompiler/TypeSystem/TypeInfo.cpp deleted file mode 100644 index db8e4127fd..0000000000 --- a/decompiler/TypeSystem/TypeInfo.cpp +++ /dev/null @@ -1,99 +0,0 @@ -#include "TypeInfo.h" - -#include - -namespace { -TypeInfo gTypeInfo; -} - -TypeInfo::TypeInfo() { - GoalType type_type("type"); - m_types["type"] = type_type; - GoalSymbol type_symbol("type"); - m_symbols["type"] = type_symbol; -} - -TypeInfo& get_type_info() { - return gTypeInfo; -} - -std::string TypeInfo::get_summary() { - int total_symbols = 0; - int syms_with_type_info = 0; - for (const auto& kv : m_symbols) { - total_symbols++; - if (kv.second.has_type_info()) { - syms_with_type_info++; - } - } - - int total_types = 0; - int types_with_info = 0; - int types_with_method_count = 0; - for (const auto& kv : m_types) { - total_types++; - if (kv.second.has_info()) { - types_with_info++; - } - if (kv.second.has_method_count()) { - types_with_method_count++; - } - } - - char buffer[1024]; - sprintf(buffer, - "TypeInfo Summary\n" - " Total Symbols: %d\n" - " with type info: %d (%.2f%%)\n" - " Total Types: %d\n" - " with info: %d (%.2f%%)\n" - " with method count: %d (%.2f%%)\n", - total_symbols, syms_with_type_info, - 100.f * float(syms_with_type_info) / float(total_symbols), total_types, types_with_info, - 100.f * float(types_with_info) / float(total_types), types_with_method_count, - 100.f * float(types_with_method_count) / float(total_types)); - - return {buffer}; -} - -/*! - * inform TypeInfo that there is a symbol with this name. - * Provides no type info - if some is already known there is no change. - */ -void TypeInfo::inform_symbol_with_no_type_info(const std::string& name) { - if (m_symbols.find(name) == m_symbols.end()) { - // only add it if we haven't seen this already. - GoalSymbol sym(name); - m_symbols[name] = sym; - } -} - -void TypeInfo::inform_symbol(const std::string& name, TypeSpec type) { - inform_symbol_with_no_type_info(name); - m_symbols.at(name).set_type(std::move(type)); -} - -void TypeInfo::inform_type(const std::string& name) { - if (m_types.find(name) == m_types.end()) { - GoalType typ(name); - m_types[name] = typ; - } - inform_symbol(name, TypeSpec("type")); -} - -void TypeInfo::inform_type_method_count(const std::string& name, int methods) { - // create type and symbol - inform_type(name); - m_types.at(name).set_methods(methods); -} - -std::string TypeInfo::get_all_symbols_debug() { - std::string result = "const char* all_syms[" + std::to_string(m_symbols.size()) + "] = {"; - for (auto& x : m_symbols) { - result += "\"" + x.first + "\","; - } - if (!result.empty()) { - result.pop_back(); - } - return result + "};"; -} \ No newline at end of file diff --git a/decompiler/TypeSystem/TypeInfo.h b/decompiler/TypeSystem/TypeInfo.h deleted file mode 100644 index 3c67bae707..0000000000 --- a/decompiler/TypeSystem/TypeInfo.h +++ /dev/null @@ -1,32 +0,0 @@ -#pragma once - -#ifndef JAK_DISASSEMBLER_TYPEINFO_H -#define JAK_DISASSEMBLER_TYPEINFO_H - -#include -#include "GoalType.h" -#include "GoalFunction.h" -#include "GoalSymbol.h" - -class TypeInfo { - public: - TypeInfo(); - - void inform_symbol(const std::string& name, TypeSpec type); - void inform_symbol_with_no_type_info(const std::string& name); - void inform_type(const std::string& name); - void inform_type_method_count(const std::string& name, int methods); - - std::string get_summary(); - std::string get_all_symbols_debug(); - - private: - std::unordered_map m_types; - std::unordered_map m_global_functions; - std::unordered_map m_symbols; -}; - -TypeInfo& get_type_info(); -void init_type_info(); - -#endif // JAK_DISASSEMBLER_TYPEINFO_H diff --git a/decompiler/TypeSystem/TypeSpec.cpp b/decompiler/TypeSystem/TypeSpec.cpp deleted file mode 100644 index 660f767ff5..0000000000 --- a/decompiler/TypeSystem/TypeSpec.cpp +++ /dev/null @@ -1,51 +0,0 @@ -#include "TypeSpec.h" - -std::string TypeSpec::to_string() const { - if (m_args.empty()) { - return m_base_type; - } else { - std::string result = "("; - result += m_base_type; - for (const auto& x : m_args) { - result += " "; - result += x.to_string(); - } - result += ")"; - return result; - } -} - -std::shared_ptr TypeSpec::to_form() const { - if (m_args.empty()) { - return toForm(m_base_type); - } else { - std::vector> all; - all.push_back(toForm(m_base_type)); - for (const auto& x : m_args) { - all.push_back(x.to_form()); - } - return buildList(all); - } -} - -bool TypeSpec::operator==(const TypeSpec& other) const { - if (m_base_type != other.m_base_type) { - return false; - } - - if (m_args.size() != other.m_args.size()) { - return false; - } - - for (size_t i = 0; i < m_args.size(); i++) { - if (m_args[i] != other.m_args[i]) { - return false; - } - } - - return true; -} - -bool TypeSpec::operator!=(const TypeSpec& other) const { - return !(*this == other); -} diff --git a/decompiler/TypeSystem/TypeSpec.h b/decompiler/TypeSystem/TypeSpec.h deleted file mode 100644 index 3ce0afa5e6..0000000000 --- a/decompiler/TypeSystem/TypeSpec.h +++ /dev/null @@ -1,28 +0,0 @@ -#pragma once - -#ifndef JAK_DISASSEMBLER_TYPESPEC_H -#define JAK_DISASSEMBLER_TYPESPEC_H - -#include -#include -#include "decompiler/util/LispPrint.h" - -class TypeSpec { - public: - TypeSpec() = default; - explicit TypeSpec(std::string base_type) : m_base_type(std::move(base_type)) {} - TypeSpec(std::string base_type, std::vector args) - : m_base_type(std::move(base_type)), m_args(std::move(args)) {} - - std::string to_string() const; - std::shared_ptr to_form() const; - - bool operator==(const TypeSpec& other) const; - bool operator!=(const TypeSpec& other) const; - - private: - std::string m_base_type; - std::vector m_args; -}; - -#endif // JAK_DISASSEMBLER_TYPESPEC_H diff --git a/decompiler/config/all-types.gc b/decompiler/config/all-types.gc new file mode 100644 index 0000000000..ba53994d70 --- /dev/null +++ b/decompiler/config/all-types.gc @@ -0,0 +1,7965 @@ +;; all-types.gc + +;; This contains all type information and should be compatible with both the compiler and decompiler + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; TYPES +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +(deftype bfloat (basic) + ((data float :offset-assert 4)) + ) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; SYMBOLS +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; GCOMMON +(define-extern identity (function object object)) +(define-extern + (function int int int)) + + +(define-extern function type) +(define-extern insert-cons! function) +(define-extern / function) +(define-extern 1/ function) +(define-extern lognot function) +(define-extern basic-type? function) +;;(define-extern pair object) ;; unknown type + +(define-extern qmem-copy->! function) +(define-extern mem-set32! function) +(define-extern delete-car! function) +(define-extern logxor function) +;;(define-extern inline-array-class object) ;; unknown type +(define-extern mem-print function) +;;(define-extern vec4s object) ;; unknown type +(define-extern array type) +(define-extern print-tree-bitmask function) +(define-extern logior function) +(define-extern quad-copy! function) +(define-extern assoc function) +(define-extern mem-or! function) +(define-extern fact function) +(define-extern max function) +(define-extern assoce function) +(define-extern mod function) +(define-extern false-func function) +(define-extern basic type) +(define-extern type-type? function) +(define-extern member function) +(define-extern nmember function) +(define-extern breakpoint-range-set! function) +(define-extern abs function) +(define-extern nassoc function) +;;(define-extern _format object) ;; unknown type +(define-extern logand function) +(define-extern find-parent-method function) +(define-extern true-func function) +(define-extern nassoce function) +(define-extern ref function) +;;(define-extern *print-column* object) ;; unknown type +(define-extern delete! function) +(define-extern qmem-copy<-! function) +(define-extern rem function) +(define-extern mem-copy! function) +(define-extern inspect function) +(define-extern type type) +;;(define-extern format object) ;; unknown type +;;(define-extern uint128 object) ;; unknown type +(define-extern append! function) +;;(define-extern *trace-list* object) ;; unknown type +(define-extern min function) +(define-extern last function) +(define-extern printl function) +(define-extern valid? function) +;;(define-extern nothing object) ;; unknown type +(define-extern ash function) +(define-extern lognor function) +(define-extern sort function) +;;(define-extern method-set! object) ;; unknown type +;;(define-extern *debug-segment* object) ;; unknown type +(define-extern bfloat type) +(define-extern * function) + +(define-extern print function) +(define-extern - function) +(define-extern string type) +;;(define-extern #t object) ;; unknown type +;;(define-extern integer object) ;; unknown type +(define-extern uint32 type) +(define-extern float type) +;;(define-extern uint16 object) ;; unknown type +(define-extern int32 type) +(define-extern uint8 type) +;;(define-extern int128 object) ;; unknown type +(define-extern symbol type) +(define-extern object type) +;;(define-extern uint64 object) ;; unknown type +;;(define-extern number object) ;; unknown type +(define-extern name= function) +;;(define-extern int64 object) ;; unknown type +;;(define-extern global object) ;; unknown type +;;(define-extern structure object) ;; unknown type +(define-extern int8 type) +;;(define-extern binteger object) ;; unknown type +;;(define-extern else object) ;; unknown type +(define-extern int16 type) + + +;;(define-extern stack-frame object) ;; unknown type +(define-extern state type) +;;(define-extern dead-pool-heap-rec object) ;; unknown type +;;(define-extern dead-pool object) ;; unknown type +;;(define-extern catch-frame object) ;; unknown type +;;(define-extern thread object) ;; unknown type +;;(define-extern handle object) ;; unknown type +;;(define-extern cpu-thread object) ;; unknown type +;;(define-extern dead-pool-heap object) ;; unknown type +(define-extern kernel-context type) +;;(define-extern protect-frame object) ;; unknown type +;;(define-extern event-message-block object) ;; unknown type +;;(define-extern process-tree object) ;; unknown type +;;(define-extern *listener-process* object) ;; unknown type +;;(define-extern *entity-pool* object) ;; unknown type +;;(define-extern *default-pool* object) ;; unknown type +(define-extern iterate-process-tree function) +;;(define-extern malloc object) ;; unknown type +;;(define-extern *deci-count* object) ;; unknown type +;;(define-extern ready object) ;; unknown type +;;(define-extern *camera-pool* object) ;; unknown type +(define-extern throw-dispatch function) +;;(define-extern game object) ;; unknown type +(define-extern run-function-in-process function) +(define-extern throw function) +;;(define-extern *nk-dead-pool* object) ;; unknown type +(define-extern kill-by-type function) +(define-extern search-process-tree function) +(define-extern change-to-last-brother function) +;;(define-extern *pickup-dead-pool* object) ;; unknown type +;;(define-extern *kernel-packages* object) ;; unknown type +;;(define-extern *camera-master-dead-pool* object) ;; unknown type +(define-extern load-package function) +(define-extern set-to-run function) +;;(define-extern *master-mode* object) ;; unknown type +;;(define-extern default-pool object) ;; unknown type +(define-extern return-from-thread-dead function) +;;(define-extern listener object) ;; unknown type +(define-extern process-count function) +;;(define-extern target-pool object) ;; unknown type +(define-extern set-to-run-bootstrap function) +(define-extern return-from-thread function) +;;(define-extern *camera-dead-pool* object) ;; unknown type +;;(define-extern *last-loado-debug-usage* object) ;; unknown type +;;(define-extern process object) ;; unknown type +(define-extern remove-exit function) +(define-extern previous-brother function) +(define-extern execute-process-tree function) +;;(define-extern dead-state object) ;; unknown type +;;(define-extern debug object) ;; unknown type +;;(define-extern *16k-dead-pool* object) ;; unknown type +(define-extern entity-deactivate-handler function) +;;(define-extern *null-process* object) ;; unknown type +(define-extern inspect-process-heap function) +(define-extern process-by-name function) +;;(define-extern *target-pool* object) ;; unknown type +;;(define-extern *global-search-name* object) ;; unknown type +;;(define-extern *kernel-boot-mode* object) ;; unknown type +;;(define-extern entity-pool object) ;; unknown type +(define-extern kill-not-type function) +;;(define-extern *kernel-context* object) ;; unknown type +;;(define-extern *kernel-boot-level* object) ;; unknown type +;;(define-extern main object) ;; unknown type +(define-extern change-brother function) +;;(define-extern *null-kernel-context* object) ;; unknown type +(define-extern kill-not-name function) +;;(define-extern *active-pool* object) ;; unknown type +;;(define-extern *dram-stack* object) ;; unknown type +;;(define-extern *irx-version* object) ;; unknown type +;;(define-extern *pause-lock* object) ;; unknown type +;;(define-extern display-pool object) ;; unknown type +(define-extern kill-by-name function) +;;(define-extern *target-dead-pool* object) ;; unknown type +;;(define-extern *vis-boot* object) ;; unknown type +;;(define-extern *debug-dead-pool* object) ;; unknown type +;;(define-extern *last-loado-length* object) ;; unknown type +;;(define-extern *4k-dead-pool* object) ;; unknown type +;;(define-extern *default-dead-pool* object) ;; unknown type +(define-extern kernel-dispatcher function) +;;(define-extern *8k-dead-pool* object) ;; unknown type +(define-extern unload-package function) +(define-extern reset-and-call function) +(define-extern process-not-name function) +;;(define-extern *display-pool* object) ;; unknown type +;;(define-extern *kernel-version* object) ;; unknown type +;;(define-extern active-pool object) ;; unknown type +;;(define-extern *dead-pool-list* object) ;; unknown type +;;(define-extern *global-search-count* object) ;; unknown type +;;(define-extern *last-loado-global-usage* object) ;; unknown type +(define-extern stream<-process-mask function) +(define-extern change-parent function) +(define-extern inspect-process-tree function) +;;(define-extern camera-pool object) ;; unknown type +;;(define-extern suspended object) ;; unknown type +;;(define-extern dgo-load object) ;; unknown type +;;(define-extern initialize-dead object) ;; unknown type +;;(define-extern #f object) ;; unknown type +;;(define-extern waiting-to-run object) ;; unknown type +;;(define-extern *stdcon0* object) ;; unknown type +;;(define-extern initialize-go object) ;; unknown type +;;(define-extern *stdcon* object) ;; unknown type +;;(define-extern trans object) ;; unknown type +;;(define-extern code object) ;; unknown type +;;(define-extern *listener-function* object) ;; unknown type +;;(define-extern *stdcon1* object) ;; unknown type +;;(define-extern initialize object) ;; unknown type +;;(define-extern *kernel-sp* object) ;; unknown type +(define-extern process-disconnect function) +;;(define-extern *debug-draw-pauseable* object) ;; unknown type +;;(define-extern _empty_ object) ;; unknown type +;;(define-extern running object) ;; unknown type +;;(define-extern *enable-method-set* object) ;; unknown type +;;(define-extern post object) ;; unknown type +;;(define-extern dead object) ;; unknown type +(define-extern install-default-debug-handler function) +(define-extern return-from-exception function) +;;(define-extern lowmemmap object) ;; unknown type +(define-extern kernel-write function) +(define-extern kernel-read function) +(define-extern deinstall-debug-handlers function) +(define-extern kernel-set-exception-vector function) +(define-extern kernel-copy-function function) +(define-extern kernel-check-hardwired-addresses function) +(define-extern kernel-set-level2-vector function) +(define-extern kernel-set-interrupt-vector function) +(define-extern kernel-read-function function) +(define-extern kernel-copy-to-kernel-ram function) +(define-extern kernel-write-function function) +(define-extern resend-exception function) +(define-extern deinstall-debug-handler function) +;;(define-extern install-debug-handler object) ;; unknown type +(define-extern copyn-string<-charp function) +(define-extern string<-charp function) +(define-extern string-get-arg!! function) +(define-extern string-get-float!! function) +(define-extern append-character-to-string function) +(define-extern string-get-int32!! function) +(define-extern charp-basename function) +(define-extern copy-charp<-charp function) +(define-extern string-skip-whitespace function) +(define-extern string-strip-whitespace! function) +(define-extern string=? function) +(define-extern string-charp= function) +(define-extern string->float function) +(define-extern cat-string<-string_to_charp function) +(define-extern string->int function) +(define-extern string<=? function) +(define-extern cat-string<-string function) +(define-extern clear function) +(define-extern string= function) +;;(define-extern *temp-string* object) ;; unknown type +(define-extern string-strip-leading-whitespace! function) +(define-extern catn-string<-charp function) +;;(define-extern *string-tmp-str* object) ;; unknown type +(define-extern string-suck-up! function) +(define-extern copy-string<-string function) +(define-extern string-skip-to-char function) +(define-extern string-strip-trailing-whitespace! function) +(define-extern string>? function) +(define-extern string-cat-to-last-char function) +;;(define-extern dgo-entry object) ;; unknown type +;;(define-extern dgo-file object) ;; unknown type +(define-extern enter-state function) +(define-extern send-event-function function) +(define-extern looping-code function) +(define-extern inherit-state function) +;;(define-extern time-frame object) ;; unknown type +;;(define-extern part-id object) ;; unknown type +(define-extern log2 function) +;;(define-extern xyzwh object) ;; unknown type +(define-extern rand-vu-init function) +(define-extern truncate function) +(define-extern rand-vu-nostep function) +(define-extern rand-vu function) +(define-extern lerp function) +(define-extern lerp-scale function) +(define-extern rand-vu-int-range function) +(define-extern lerp-clamp function) +;;(define-extern random-generator object) ;; unknown type +(define-extern integral? function) +(define-extern rand-uint31-gen function) +(define-extern rand-vu-int-count function) +(define-extern fractional-part function) +(define-extern seek function) +;;(define-extern xyzw object) ;; unknown type +(define-extern rand-vu-percent? function) +;;(define-extern *random-generator* object) ;; unknown type +(define-extern rand-vu-float-range function) +;;(define-extern rgba object) ;; unknown type +(define-extern seekl function) +;;(define-extern vector2h object) ;; unknown type +;;(define-extern vector4s-3 object) ;; unknown type +;;(define-extern *identity-vector* object) ;; unknown type +;;(define-extern vector4ub object) ;; unknown type +;;(define-extern vector2w object) ;; unknown type +;;(define-extern isphere object) ;; unknown type +(define-extern vector-dot-vu function) +;;(define-extern vertical-planes object) ;; unknown type +;;(define-extern cylinder object) ;; unknown type +;;(define-extern *x-vector* object) ;; unknown type +;;(define-extern *y-vector* object) ;; unknown type +;;(define-extern *z-vector* object) ;; unknown type +(define-extern vector-zero! function) +;;(define-extern bit-array object) ;; unknown type +(define-extern vector-! function) +;;(define-extern vector16b object) ;; unknown type +;;(define-extern vector-array object) ;; unknown type +;;(define-extern rgbaf object) ;; unknown type +;;(define-extern cylinder-flat object) ;; unknown type +;;(define-extern plane object) ;; unknown type +;;(define-extern vector3s object) ;; unknown type +(define-extern vector-dot function) +;;(define-extern *zero-vector* object) ;; unknown type +;;(define-extern vector4h object) ;; unknown type +;;(define-extern vector4w object) ;; unknown type +(define-extern box8s-array type) +;;(define-extern *null-vector* object) ;; unknown type +;;(define-extern qword object) ;; unknown type +;;(define-extern *up-vector* object) ;; unknown type +;;(define-extern vector4b object) ;; unknown type +;;(define-extern vector4w-4 object) ;; unknown type +;;(define-extern vertical-planes-array object) ;; unknown type +(define-extern vector4-dot function) +;;(define-extern vector2uh object) ;; unknown type +;;(define-extern sphere object) ;; unknown type +;;(define-extern vector3h object) ;; unknown type +;;(define-extern vector4w-3 object) ;; unknown type +(define-extern vector+! function) +(define-extern vector4-dot-vu function) +;;(define-extern box8s object) ;; unknown type +;;(define-extern vector3w object) ;; unknown type +(define-extern vector-reset! function) +;;(define-extern vector4w-2 object) ;; unknown type +;;(define-extern vector8h object) ;; unknown type +(define-extern vector-copy! function) +(define-extern vector type) +;;(define-extern bounding-box object) ;; unknown type +;;(define-extern bounding-box4w object) ;; unknown type +;;(define-extern bounding-box-both object) ;; unknown type +;;(define-extern matrix4h object) ;; unknown type +(define-extern matrix-copy! function) +;;(define-extern matrix3 object) ;; unknown type +;;(define-extern matrix object) ;; unknown type +;;(define-extern *unity-quaternion* object) ;; unknown type +;;(define-extern quaternion object) ;; unknown type +;;(define-extern euler-angles object) ;; unknown type +;;(define-extern EulNext object) ;; unknown type +;;(define-extern EulSafe object) ;; unknown type +;;(define-extern transform object) ;; unknown type +;;(define-extern trs object) ;; unknown type +;;(define-extern border-plane object) ;; unknown type +;;(define-extern curve object) ;; unknown type +;;(define-extern transformq object) ;; unknown type +;;(define-extern trsqv object) ;; unknown type +;;(define-extern trsq object) ;; unknown type +(define-extern deg-diff function) +(define-extern vector-y-angle function) +(define-extern box-vector-inside? function) +(define-extern box-vector-enside? function) +(define-extern vector3s-rotate*! function) +(define-extern matrix-inverse-of-rot-trans! function) +(define-extern matrix-3x3-determinant function) +(define-extern matrix-3x3-inverse-transpose! function) +(define-extern vector-matrix*! function) +(define-extern matrix-scale! function) +(define-extern column-scale-matrix! function) +(define-extern matrix-rotate-yx! function) +(define-extern matrix-y-angle function) +(define-extern matrix-3x3-inverse! function) +(define-extern matrix-rotate-z! function) +;;(define-extern *identity-matrix* object) ;; unknown type +(define-extern matrix-axis-angle! function) +(define-extern matrix-rotate-zyx! function) +(define-extern matrix-rotate-x! function) +(define-extern matrix+! function) +(define-extern matrix-rotate-yxy! function) +(define-extern matrix-identity! function) +(define-extern vector3s-matrix*! function) +(define-extern matrix-4x4-determinant function) +(define-extern matrix-inv-scale! function) +(define-extern matrix-rotate-yzx! function) +(define-extern matrix-axis-sin-cos! function) +(define-extern matrix-lerp! function) +(define-extern matrix-rotate-y! function) +(define-extern matrix*! function) +(define-extern matrix-rotate-xyz! function) +(define-extern scale-matrix! function) +(define-extern matrix-rotate-yxz! function) +(define-extern matrix-rotate-zxy! function) +(define-extern vector-rotate*! function) +(define-extern matrix3-determinant function) +(define-extern matrix3-inverse-transpose! function) +(define-extern matrix-translate+! function) +(define-extern matrix-transpose! function) +(define-extern matrix-4x4-inverse-transpose! function) +(define-extern matrixp*! function) +(define-extern matrix-axis-sin-cos-vu! function) +(define-extern matrix-translate! function) +(define-extern matrix-4x4-inverse! function) +(define-extern matrix-! function) +(define-extern atan function) +(define-extern vector-sincos! function) +(define-extern cos function) +(define-extern sin function) +(define-extern trs-matrix-calc! function) +(define-extern transform-matrix-parent-calc! function) +(define-extern transform-matrix-calc! function) +(define-extern vector-identity! function) +(define-extern quaternion-zero! function) +(define-extern quaternion-set! function) +(define-extern matrix->quaternion function) +(define-extern quaternion-exp! function) +(define-extern quaternion-axis-angle! function) +(define-extern quaternion-rotate-x! function) +(define-extern quaternion-validate function) +(define-extern quaternion-dot function) +(define-extern quaternion-normalize! function) +(define-extern vector-x-angle function) +(define-extern quaternion-k! function) +(define-extern quaternion-vector-len function) +(define-extern quaternion-rotate-local-x! function) +(define-extern matrix-with-scale->quaternion function) +(define-extern quaternion-rotate-y! function) +(define-extern vector-x-quaternion! function) +(define-extern quaternion-xz-angle function) +(define-extern quaternion-j! function) +(define-extern quaternion*! function) +(define-extern quaternion-right-mult-matrix! function) +(define-extern quaternion-left-mult-matrix! function) +(define-extern quaternion-negate! function) +(define-extern quaternion+! function) +(define-extern quaternion-norm function) +(define-extern quaternion-log! function) +(define-extern quaternion-rotate-local-z! function) +(define-extern quaternion-float*! function) +(define-extern quaternion-float/! function) +(define-extern quaternion-inverse! function) +(define-extern quaternion-pseudo-slerp! function) +(define-extern quaternion-vector-angle! function) +(define-extern quaterion<-rotate-y-vector function) +(define-extern quaternion-rotate-y-to-vector! function) +(define-extern quaternion-! function) +(define-extern vector-z-quaternion! function) +(define-extern quaternion-rotate-z! function) +(define-extern quaternion-slerp! function) +(define-extern quaternion->matrix function) +(define-extern quaternion-zxy! function) +(define-extern quaternion-delta-y function) +(define-extern vector-angle<-quaternion! function) +(define-extern quaternion-rotate-local-y! function) +(define-extern quaternion-norm2 function) +(define-extern quaternion-identity! function) +(define-extern quaternion-y-angle function) +(define-extern quaternion-vector-y-angle function) +(define-extern quaternion-copy! function) +(define-extern quaternion-conjugate! function) +(define-extern vector-y-quaternion! function) +(define-extern vector-rotate-y! function) +(define-extern quaternion-i! function) +(define-extern sincos-rad! function) +(define-extern vector-sincos-rad! function) +(define-extern vector-xz-normalize! function) +(define-extern atan-series-rad function) +(define-extern atan2-rad function) +(define-extern quaternion-from-two-vectors-max-angle! function) +(define-extern vector-length function) +(define-extern vector-rad<-vector-deg/2! function) +(define-extern vector-sin-rad! function) +(define-extern acos-rad function) +(define-extern vector-xz-length function) +(define-extern acos function) +(define-extern quat->eul function) +(define-extern set-eul! function) +(define-extern eul->matrix function) +(define-extern eul->quat function) +(define-extern matrix->eul function) +(define-extern vector-reflect-flat! function) +(define-extern forward-down->inv-matrix function) +(define-extern circle-test function) +(define-extern vector-line-distance-point! function) +(define-extern curve-evaluate! function) +(define-extern vector-reflect! function) +(define-extern matrix-from-two-vectors! function) +(define-extern matrix-from-two-vectors-partial-linear! function) +(define-extern forward-up->quaternion function) +(define-extern find-knot-span function) +(define-extern vector-vector-deg-slerp! function) +(define-extern matrix-from-two-vectors-max-angle! function) +(define-extern curve-length function) +(define-extern matrix-from-two-vectors-max-angle-partial! function) +(define-extern vector-deg-slerp function) +(define-extern vector-segment-distance-point! function) +(define-extern forward-up-nopitch->inv-matrix function) +(define-extern normal-of-plane function) +(define-extern vector-line-distance function) +(define-extern calculate-basis-functions-vector! function) +(define-extern vector-deg-seek function) +(define-extern point-in-plane-<-point+normal! function) +(define-extern matrix-rot-diff! function) +(define-extern point-in-triangle-cross function) +(define-extern matrix-remove-z-rot function) +(define-extern quaternion-seek function) +(define-extern vector-3pt-cross! function) +(define-extern vector-circle-tangent function) +(define-extern circle-circle-xz-intersect function) +(define-extern vector-plane-distance function) +(define-extern quaternion-from-two-vectors! function) +(define-extern closest-pt-in-triangle function) +(define-extern vector-flatten! function) +(define-extern vector-orient-by-quat! function) +(define-extern vector-reflect-true-flat! function) +(define-extern forward-up-nopitch->quaternion function) +(define-extern curve-copy! function) +(define-extern curve-get-pos! function) +(define-extern curve-closest-point function) +(define-extern forward-down-nopitch->inv-matrix function) +(define-extern vector-reflect-flat-above! function) +(define-extern vector-circle-tangent-new function) +(define-extern vector-vector-distance-squared function) +(define-extern vector-cross! function) +(define-extern vector+float*! function) +(define-extern vector-normalize! function) +(define-extern vector-negate! function) +(define-extern vector-vector-distance function) +(define-extern vector-normalize-ret-len! function) +(define-extern vector-normalize-copy! function) +(define-extern vector-float*! function) +(define-extern coserp function) +(define-extern sinerp-clamp function) +;;(define-extern exp-slead object) ;; unknown type +(define-extern coserp180-clamp function) +;;(define-extern *sin-poly-vec2* object) ;; unknown type +(define-extern exp function) +(define-extern deg-lerp-clamp function) +(define-extern deg- function) +(define-extern atan-rad function) +(define-extern deg-seek function) +(define-extern coserp180 function) +(define-extern sign function) +(define-extern sinerp function) +;;(define-extern *sin-poly-vec* object) ;; unknown type +(define-extern ease-in-out function) +(define-extern cos-rad function) +(define-extern atan0 function) +(define-extern asin function) +(define-extern vector-cos-rad! function) +;;(define-extern sincos-table object) ;; unknown type +;;(define-extern exp-strail object) ;; unknown type +(define-extern tan-rad function) +(define-extern coserp-clamp function) +(define-extern tan function) +(define-extern sin-rad function) +;;(define-extern float-type object) ;; unknown type +(define-extern deg-seek-smooth function) +;;(define-extern binary-table object) ;; unknown type +;;(define-extern *cos-poly-vec* object) ;; unknown type +(define-extern sincos! function) +(define-extern vector-rad<-vector-deg! function) +(define-extern radmod function) +;;(define-extern sound-rpc-set-falloff-curve object) ;; unknown type +;;(define-extern *sound-bank-2* object) ;; unknown type +;;(define-extern sound-rpc-reload-info object) ;; unknown type +;;(define-extern sound-rpc-stop-sound object) ;; unknown type +;;(define-extern sound-rpc-list-sounds object) ;; unknown type +;;(define-extern *current-sound-id* object) ;; unknown type +;;(define-extern sound-bank-id object) ;; unknown type +;;(define-extern sound-rpc-get-irx-version object) ;; unknown type +;;(define-extern sound-rpc-load-music object) ;; unknown type +;;(define-extern sound-rpc-set-ear-trans object) ;; unknown type +;;(define-extern ambient-sound object) ;; unknown type +;;(define-extern sound-rpc-pause-group object) ;; unknown type +;;(define-extern sound-rpc-shutdown object) ;; unknown type +;;(define-extern sound-rpc-unload-bank object) ;; unknown type +;;(define-extern sound-rpc-pause-sound object) ;; unknown type +;;(define-extern sound-id object) ;; unknown type +;;(define-extern sound-play-parms object) ;; unknown type +;;(define-extern sound-rpc-load-bank object) ;; unknown type +;;(define-extern sound-rpc-set-master-volume object) ;; unknown type +;;(define-extern sound-rpc-set-param object) ;; unknown type +;;(define-extern *sound-bank-1* object) ;; unknown type +;;(define-extern sound-rpc-stop-group object) ;; unknown type +;;(define-extern sound-rpc-play object) ;; unknown type +;;(define-extern sound-rpc-cmd object) ;; unknown type +(define-extern sound-spec type) +;;(define-extern sound-rpc-set-sound-falloff object) ;; unknown type +;;(define-extern sound-rpc-union object) ;; unknown type +;;(define-extern sound-rpc-unload-music object) ;; unknown type +;;(define-extern sound-rpc-set-language object) ;; unknown type +;;(define-extern sound-rpc-set-reverb object) ;; unknown type +;;(define-extern sound-rpc-sound-cmd object) ;; unknown type +;;(define-extern sound-rpc-group-cmd object) ;; unknown type +;;(define-extern sound-rpc-bank-cmd object) ;; unknown type +;;(define-extern sound-rpc-continue-sound object) ;; unknown type +;;(define-extern sound-rpc-set-flava object) ;; unknown type +;;(define-extern sound-name object) ;; unknown type +;;(define-extern sound-rpc-continue-group object) ;; unknown type +;;(define-extern timer-mode object) ;; unknown type +;;(define-extern timer-hold-bank object) ;; unknown type +;;(define-extern stopwatch object) ;; unknown type +;;(define-extern *ticks-per-frame* object) ;; unknown type +;;(define-extern profile-bar object) ;; unknown type +(define-extern timer-init function) +;;(define-extern timer-bank object) ;; unknown type +;;(define-extern profile-frame object) ;; unknown type +(define-extern stopwatch-init function) +(define-extern stopwatch-elapsed-seconds function) +(define-extern stopwatch-begin function) +(define-extern stopwatch-elapsed-ticks function) +(define-extern disable-irq function) +(define-extern timer-reset function) +(define-extern enable-irq function) +(define-extern stopwatch-start function) +(define-extern timer-count function) +(define-extern stopwatch-end function) +(define-extern stopwatch-stop function) +(define-extern stopwatch-reset function) +;;(define-extern vif-stat object) ;; unknown type +;;(define-extern vif-fbrst object) ;; unknown type +;;(define-extern vif-err object) ;; unknown type +;;(define-extern vif-bank object) ;; unknown type +(define-extern dma-count-until-done function) +;;(define-extern vif-tag object) ;; unknown type +(define-extern dma-send-no-scratch function) +;;(define-extern dma-tag object) ;; unknown type +;;(define-extern dma-chcr object) ;; unknown type +;;(define-extern dma-bank-spr object) ;; unknown type +;;(define-extern dma-bucket object) ;; unknown type +(define-extern dma-sync-with-count function) +;;(define-extern vu-code-block object) ;; unknown type +(define-extern dma-sync-fast function) +;;(define-extern vif-mask object) ;; unknown type +;;(define-extern dma-bank-control object) ;; unknown type +;;(define-extern vif-unpack-imm object) ;; unknown type +;;(define-extern dma-ctrl object) ;; unknown type +;;(define-extern dma-enable object) ;; unknown type +;;(define-extern vu-stat object) ;; unknown type +;;(define-extern dma-bank-source object) ;; unknown type +;;(define-extern dma-bank-vif object) ;; unknown type +;;(define-extern dma-sqwc object) ;; unknown type +;;(define-extern vif-stcycl-imm object) ;; unknown type +;;(define-extern dma-bank object) ;; unknown type +;;(define-extern flush-cache object) ;; unknown type +;;(define-extern *video-parms* object) ;; unknown type +;;(define-extern video-parms object) ;; unknown type +;;(define-extern generic-bucket-state object) ;; unknown type +;;(define-extern *vu1-enable-user-menu* object) ;; unknown type +(define-extern dma-foreground-sink type) +(define-extern dma-foreground-sink-group type) +;;(define-extern *vu1-enable-user* object) ;; unknown type +(define-extern generic-dma-foreground-sink type) +(define-extern reset-vif1-path function) +(define-extern dump-vu1-range function) +(define-extern symlink3 function) +(define-extern dma-sync-crash function) +(define-extern clear-vu0-mem function) +(define-extern dump-vu1-mem function) +(define-extern dma-send-from-spr function) +(define-extern dma-send-to-spr function) +(define-extern dma-sync-hang function) +(define-extern symlink2 function) +(define-extern ultimate-memcpy function) +(define-extern dma-send-to-spr-no-flush function) +(define-extern dma-initialize function) +(define-extern dma-send function) +(define-extern dma-send-chain-no-flush function) +(define-extern clear-vu1-mem function) +(define-extern dma-send-from-spr-no-flush function) +;;(define-extern *video-reset-parm* object) ;; unknown type +(define-extern dma-send-chain function) +(define-extern dma-send-chain-no-tte function) +;;(define-extern reset-path object) ;; unknown type +;;(define-extern reset-graph object) ;; unknown type +;;(define-extern dma-sync object) ;; unknown type +;;(define-extern dma-packet-array object) ;; unknown type +(define-extern dma-buffer-inplace-new function) +(define-extern dma-buffer-length function) +;;(define-extern dma-gif-packet object) ;; unknown type +(define-extern dma-buffer-free function) +(define-extern dma-buffer-add-vu-function function) +;;(define-extern dma-packet object) ;; unknown type +;;(define-extern dma-buffer object) ;; unknown type +(define-extern dma-buffer-send-chain function) +(define-extern dma-buffer-send function) +(define-extern dma-bucket-insert-tag function) +(define-extern dma-buffer-add-buckets function) +(define-extern dma-buffer-patch-buckets function) +;;(define-extern *vif-disasm-table* object) ;; unknown type +(define-extern disasm-vif-tag function) +(define-extern disasm-dma-tag function) +(define-extern disasm-vif-details function) +(define-extern vif-disasm-element type) +;;(define-extern *dma-disasm* object) ;; unknown type +(define-extern disasm-dma-list function) +;;(define-extern error object) ;; unknown type +;;(define-extern details object) ;; unknown type +(define-extern cpad-set-buzz! function) +;;(define-extern *cpad-debug* object) ;; unknown type +(define-extern analog-input function) +(define-extern buzz-stop! function) +;;(define-extern cpad-info object) ;; unknown type +;;(define-extern hw-cpad object) ;; unknown type +(define-extern cpad-invalid! function) +;;(define-extern cpad-list object) ;; unknown type +;;(define-extern *cheat-mode* object) ;; unknown type +;;(define-extern *cpad-list* object) ;; unknown type +(define-extern service-cpads function) +(define-extern get-integral-current-time function) +(define-extern get-current-time function) +;;(define-extern cpad-get-data object) ;; unknown type +;;(define-extern cpad-open object) ;; unknown type +(define-extern psm->string function) +;;(define-extern gs-trxreg object) ;; unknown type +;;(define-extern gif-packet object) ;; unknown type +;;(define-extern gs-fogcol object) ;; unknown type +;;(define-extern gs-zbuf object) ;; unknown type +;;(define-extern gif-bank object) ;; unknown type +;;(define-extern *fog-color* object) ;; unknown type +;;(define-extern gs-trxpos object) ;; unknown type +;;(define-extern gs-xy-offset object) ;; unknown type +;;(define-extern gs-tex1 object) ;; unknown type +;;(define-extern gs-prim object) ;; unknown type +;;(define-extern gif-tag object) ;; unknown type +;;(define-extern gs-display object) ;; unknown type +;;(define-extern gs-prmode-cont object) ;; unknown type +;;(define-extern gs-scissor object) ;; unknown type +;;(define-extern gs-st object) ;; unknown type +;;(define-extern gs-smode2 object) ;; unknown type +(define-extern add-reg-gif-packet function) +;;(define-extern draw-context object) ;; unknown type +;;(define-extern gs-texclut object) ;; unknown type +;;(define-extern gs-bgcolor object) ;; unknown type +(define-extern open-gif-packet function) +;;(define-extern gif-tag-count object) ;; unknown type +;;(define-extern gs-test object) ;; unknown type +;;(define-extern gs-tex0 object) ;; unknown type +;;(define-extern gif-tag64 object) ;; unknown type +;;(define-extern gs-alpha object) ;; unknown type +;;(define-extern gs-miptbp object) ;; unknown type +;;(define-extern gs-color-clamp object) ;; unknown type +;;(define-extern gif-p3cnt object) ;; unknown type +;;(define-extern gs-clamp object) ;; unknown type +;;(define-extern gs-uv object) ;; unknown type +;;(define-extern gif-stat object) ;; unknown type +(define-extern psm-page-height function) +;;(define-extern gif-mode object) ;; unknown type +(define-extern psm-size function) +;;(define-extern gs-trxdir object) ;; unknown type +;;(define-extern gs-xyzf object) ;; unknown type +;;(define-extern gs-csr object) ;; unknown type +(define-extern draw-context-set-xy function) +;;(define-extern *default-regs-buffer* object) ;; unknown type +;;(define-extern gs-frame object) ;; unknown type +;;(define-extern gs-texa object) ;; unknown type +;;(define-extern gs-bank object) ;; unknown type +;;(define-extern gif-cnt object) ;; unknown type +;;(define-extern gif-ctrl object) ;; unknown type +;;(define-extern gs-gif-tag object) ;; unknown type +;;(define-extern gs-pmode object) ;; unknown type +;;(define-extern gs-dthe object) ;; unknown type +;;(define-extern gs-fog object) ;; unknown type +;;(define-extern gs-xyz object) ;; unknown type +(define-extern default-buffer-init function) +;;(define-extern gif-tag-prim object) ;; unknown type +;;(define-extern gif-p3tag object) ;; unknown type +(define-extern close-gif-packet function) +;;(define-extern gs-display-fb object) ;; unknown type +;;(define-extern gs-bitbltbuf object) ;; unknown type +;;(define-extern gs-rgbaq object) ;; unknown type +;;(define-extern display-env object) ;; unknown type +;;(define-extern display-frame object) ;; unknown type +;;(define-extern display object) ;; unknown type +;;(define-extern *post-draw-hook* object) ;; unknown type +;;(define-extern virtual-frame object) ;; unknown type +(define-extern put-draw-env function) +;;(define-extern draw-env object) ;; unknown type +;;(define-extern *pre-draw-hook* object) ;; unknown type +(define-extern set-display function) +(define-extern vector4-lerp! function) +(define-extern rotate-y<-vector+vector function) +(define-extern rot-zxy-from-vector! function) +(define-extern vector3s-copy! function) +(define-extern vector-seek-2d-yz-smooth! function) +(define-extern vector-from-ups! function) +(define-extern vector-seek-2d-xz-smooth! function) +(define-extern vector/! function) +(define-extern rand-vu-sphere-point! function) +(define-extern vector-vector-xz-distance function) +(define-extern vector-v*float+! function) +(define-extern vector-length-max! function) +(define-extern vector*! function) +(define-extern vector+*! function) +(define-extern vector-deg-lerp-clamp! function) +(define-extern vector-negate-in-place! function) +(define-extern vector--float*! function) +(define-extern rot-zyx-from-vector! function) +(define-extern vector4-lerp-clamp! function) +(define-extern vector-seconds! function) +(define-extern vector-degmod function) +(define-extern vector-v*float++! function) +(define-extern vector-degi function) +(define-extern sphere<-vector+r! function) +(define-extern vector-xz-length-max! function) +(define-extern vector3s-! function) +(define-extern vector3s+! function) +(define-extern vector-average! function) +(define-extern vector-cvt.w.s! function) +(define-extern vector-v! function) +(define-extern vector-degf function) +(define-extern vector-vector-xz-distance-squared function) +(define-extern vector-xz-length-squared function) +(define-extern vector-lerp-clamp! function) +(define-extern vector-cvt.s.w! function) +(define-extern vector-to-ups! function) +(define-extern vector-seek! function) +(define-extern vector-seconds function) +(define-extern vector-deg-diff function) +(define-extern vector-delta function) +(define-extern vector+float! function) +(define-extern vector-v+! function) +(define-extern vector3s*float! function) +(define-extern spheres-overlap? function) +(define-extern vector-length-squared function) +(define-extern vector-lerp! function) +(define-extern vector-rotate-around-y! function) +(define-extern vector-*! function) +(define-extern seek-with-smooth function) +(define-extern vector-v*float! function) +(define-extern vector-v++! function) +(define-extern vector-seek-3d-smooth! function) +(define-extern sphere<-vector! function) +(define-extern vector-float/! function) +(define-extern vector= function) +;;(define-extern *display* object) ;; unknown type +(define-extern make-vfile-name function) +;;(define-extern file-stream object) ;; unknown type +(define-extern file-info type) +(define-extern make-file-name function) +(define-extern file-info-correct-version? function) +;;(define-extern *file-temp-string* object) ;; unknown type +(define-extern file-stream-read-string function) +;;(define-extern file-stream-length object) ;; unknown type +;;(define-extern file-stream-read object) ;; unknown type +;;(define-extern file-stream-open object) ;; unknown type +;;(define-extern load-dir object) ;; unknown type +;;(define-extern external-art-buffer object) ;; unknown type +;;(define-extern load-dir-art-group object) ;; unknown type +(define-extern spool-anim type) +;;(define-extern external-art-control object) ;; unknown type +(define-extern art-group type) +;;(define-extern texture-page-segment object) ;; unknown type +;;(define-extern *sky-base-block* object) ;; unknown type +;;(define-extern *depth-cue-base-block* object) ;; unknown type +;;(define-extern *depth-cue-base-vram-word* object) ;; unknown type +;;(define-extern *eyes-base-block* object) ;; unknown type +;;(define-extern *ocean-base-page* object) ;; unknown type +(define-extern adgif-shader-array type) +;;(define-extern adgif-shader object) ;; unknown type +(define-extern texture type) +;;(define-extern *texture-enable-user* object) ;; unknown type +;;(define-extern texture-page-dir-entry object) ;; unknown type +;;(define-extern texture-pool object) ;; unknown type +;;(define-extern *ocean-base-block* object) ;; unknown type +;;(define-extern *texture-page-dir* object) ;; unknown type +;;(define-extern *ocean-base-vram-word* object) ;; unknown type +;;(define-extern *texture-enable-user-menu* object) ;; unknown type +(define-extern texture-page type) +;;(define-extern *depth-cue-base-page* object) ;; unknown type +;;(define-extern texture-pool-segment object) ;; unknown type +;;(define-extern *texture-relocate-later* object) ;; unknown type +;;(define-extern *sky-base-vram-word* object) ;; unknown type +;;(define-extern texture-id object) ;; unknown type +;;(define-extern *sky-base-page* object) ;; unknown type +(define-extern texture-page-dir type) +;;(define-extern texture-relocate-later object) ;; unknown type +;;(define-extern texture-link object) ;; unknown type +(define-extern texture-mip->segment function) +;;(define-extern shader-ptr object) ;; unknown type +;;(define-extern *eyes-base-vram-word* object) ;; unknown type +;;(define-extern *eyes-base-page* object) ;; unknown type +;;(define-extern login-state object) ;; unknown type +(define-extern level-vis-info type) +(define-extern level-load-info type) +;;(define-extern *level* object) ;; unknown type +(define-extern level-group type) +(define-extern level type) +;;(define-extern reserved object) ;; unknown type +;;(define-extern default object) ;; unknown type +;;(define-extern inactive object) ;; unknown type +;;(define-extern cull-info object) ;; unknown type +;;(define-extern math-camera object) ;; unknown type +;;(define-extern vis-gif-tag object) ;; unknown type +;;(define-extern *math-camera* object) ;; unknown type +;;(define-extern *math-camera-fog-correction* object) ;; unknown type +(define-extern init-for-transform function) +(define-extern move-target-from-pad function) +(define-extern transform-point-vector! function) +(define-extern fog-corrector-setup function) +;;(define-extern fog-corrector object) ;; unknown type +(define-extern math-cam-start-smoothing function) +(define-extern update-math-camera function) +(define-extern transform-point-qword! function) +(define-extern transform-point-vector-scale! function) +(define-extern sprite-distorter-generate-tables function) +;;(define-extern ntsc object) ;; unknown type +;;(define-extern aspect4x3 object) ;; unknown type +;;(define-extern font-work object) ;; unknown type +(define-extern font-set-tex0 function) +;;(define-extern *font-default-matrix* object) ;; unknown type +;;(define-extern char-verts object) ;; unknown type +;;(define-extern char-color object) ;; unknown type +;;(define-extern font-context object) ;; unknown type +;;(define-extern *font-work* object) ;; unknown type +;;(define-extern decomp-work object) ;; unknown type +;;(define-extern install-handler object) ;; unknown type +;;(define-extern *oddeven* object) ;; unknown type +;;(define-extern *profile-y* object) ;; unknown type +(define-extern vif1-handler function) +;;(define-extern *pause-context* object) ;; unknown type +;;(define-extern *profile-h* object) ;; unknown type +;;(define-extern *profile-x* object) ;; unknown type +(define-extern set-draw-env-offset function) +;;(define-extern *vblank-counter* object) ;; unknown type +;;(define-extern *vu0-dma-list* object) ;; unknown type +;;(define-extern *profile-w* object) ;; unknown type +(define-extern set-display-gs-state function) +(define-extern draw-quad2d function) +(define-extern put-display-alpha-env function) +(define-extern set-display-gs-state-offset function) +(define-extern screen-gradient function) +(define-extern draw-sprite2d-xy function) +(define-extern set-draw-env function) +(define-extern reset-display-gs-state function) +(define-extern vblank-handler function) +;;(define-extern *profile-ticks* object) ;; unknown type +;;(define-extern *font-context* object) ;; unknown type +(define-extern vif1-handler-debug function) +(define-extern set-display-env function) +(define-extern set-display2 function) +(define-extern allocate-dma-buffers function) +(define-extern draw-string-xy function) +;;(define-extern end-draw object) ;; unknown type +(define-extern start function) +;;(define-extern pal object) ;; unknown type +(define-extern get-video-mode function) +;;(define-extern end-calc object) ;; unknown type +;;(define-extern engine object) ;; unknown type +;;(define-extern connectable object) ;; unknown type +(define-extern connection-process-apply function) +;;(define-extern connection object) ;; unknown type +;;(define-extern *common-text* object) ;; unknown type +;;(define-extern *common-text-heap* object) ;; unknown type +;;(define-extern kheap object) ;; unknown type +;;(define-extern *text-group-names* object) ;; unknown type +;;(define-extern game-text-info object) ;; unknown type +;;(define-extern game-text object) ;; unknown type +;;(define-extern scf-time object) ;; unknown type +;;(define-extern setting-data object) ;; unknown type +;;(define-extern setting-control object) ;; unknown type +(define-extern store-image function) +;;(define-extern gs-store-image-packet object) ;; unknown type +(define-extern gs-set-default-store-image function) +;;(define-extern file-stream-close object) ;; unknown type +;;(define-extern file-stream-write object) ;; unknown type +;;(define-extern write object) ;; unknown type +;;(define-extern gs-store-image object) ;; unknown type +;;(define-extern sync-path object) ;; unknown type +;;(define-extern *temp-mem-usage* object) ;; unknown type +;;(define-extern *mem-usage* object) ;; unknown type +;;(define-extern memory-usage-block object) ;; unknown type +;;(define-extern *dma-mem-usage* object) ;; unknown type +;;(define-extern memory-usage-info object) ;; unknown type +(define-extern upload-vram-pages function) +;;(define-extern *shader-list* object) ;; unknown type +(define-extern adgif-shader-login-no-remap-fast function) +;;(define-extern mt8-block-table object) ;; unknown type +(define-extern texture-bpp function) +(define-extern gs-blocks-used function) +(define-extern relocate-later function) +(define-extern gs-page-width function) +(define-extern upload-vram-pages-pris function) +;;(define-extern ct16s-block-table object) ;; unknown type +;;(define-extern *txt-dma-list* object) ;; unknown type +(define-extern adgif-shader-login-fast function) +(define-extern gs-page-height function) +;;(define-extern mz16s-block-table object) ;; unknown type +(define-extern lookup-texture-by-id function) +;;(define-extern *texture-pool* object) ;; unknown type +(define-extern dma-buffer-add-ref-texture function) +(define-extern link-texture-by-id function) +;;(define-extern mt4-block-table object) ;; unknown type +;;(define-extern *edit-shader* object) ;; unknown type +(define-extern adgif-shader-update! function) +;;(define-extern ct16-block-table object) ;; unknown type +(define-extern texture-page-common-boot-allocate function) +(define-extern gs-find-block function) +(define-extern texture-page-level-allocate function) +(define-extern texture-page-common-allocate function) +(define-extern texture-page-login function) +(define-extern texture-page-dir-inspect function) +(define-extern texture-qwc function) +(define-extern adgif-shader-login function) +(define-extern adgif-shader-login-no-remap function) +;;(define-extern mz16-block-table object) ;; unknown type +(define-extern gs-largest-block function) +;;(define-extern ct32-24-block-table object) ;; unknown type +(define-extern gs-block-width function) +(define-extern adgif-shader<-texture-simple! function) +(define-extern texture-relocate function) +(define-extern adgif-shader<-texture! function) +(define-extern update-vram-pages function) +(define-extern texture-page-near-allocate-0 function) +;;(define-extern mz32-24-block-table object) ;; unknown type +(define-extern texture-page-default-allocate function) +(define-extern texture-page-size-check function) +(define-extern gs-block-height function) +(define-extern physical-address function) +(define-extern upload-vram-data function) +(define-extern texture-page-near-allocate-1 function) +;;(define-extern *font-texture* object) ;; unknown type +(define-extern adgif-shader<-texture-with-update! function) +;;(define-extern full object) ;; unknown type +;;(define-extern active object) ;; unknown type +;;(define-extern loado object) ;; unknown type +(define-extern movie? function) +(define-extern level-remap-texture function) +;;(define-extern loading-level object) ;; unknown type +;;(define-extern *display-split-boxes* object) ;; unknown type +;;(define-extern frame-stats object) ;; unknown type +;;(define-extern *artist-fix-visible* object) ;; unknown type +;;(define-extern *ambient-sound-class* object) ;; unknown type +;;(define-extern *display-art-control* object) ;; unknown type +;;(define-extern *display-camera-info* object) ;; unknown type +;;(define-extern *display-profile* object) ;; unknown type +;;(define-extern *display-ambient-poi-marks* object) ;; unknown type +;;(define-extern *artist-all-visible* object) ;; unknown type +;;(define-extern *display-edge-collision-marks* object) ;; unknown type +;;(define-extern *stats-poly* object) ;; unknown type +;;(define-extern *dproc* object) ;; unknown type +;;(define-extern *display-ambient-light-marks* object) ;; unknown type +;;(define-extern *display-cam-other* object) ;; unknown type +;;(define-extern *frame-stats* object) ;; unknown type +;;(define-extern *display-lights* object) ;; unknown type +;;(define-extern *display-instance-info* object) ;; unknown type +;;(define-extern *stats-memory* object) ;; unknown type +;;(define-extern *display-ambient-music-marks* object) ;; unknown type +;;(define-extern *weather-off* object) ;; unknown type +;;(define-extern *debug-pause* object) ;; unknown type +;;(define-extern *progress-hook* object) ;; unknown type +;;(define-extern *display-ambient-dark-marks* object) ;; unknown type +;;(define-extern *time-of-day-effects* object) ;; unknown type +;;(define-extern *display-file-info* object) ;; unknown type +;;(define-extern *display-iop-info* object) ;; unknown type +;;(define-extern *display-geo-marks* object) ;; unknown type +;;(define-extern *ocean-subdivide-draw-mode* object) ;; unknown type +(define-extern screen-filter type) +;;(define-extern *time-of-day-fast* object) ;; unknown type +;;(define-extern *stats-dma-test* object) ;; unknown type +;;(define-extern *subdivide-draw-mode* object) ;; unknown type +;;(define-extern *display-split-box-info* object) ;; unknown type +;;(define-extern *display-ground-stats* object) ;; unknown type +;;(define-extern *teleport-count* object) ;; unknown type +;;(define-extern *stats-target* object) ;; unknown type +;;(define-extern *sync-dma* object) ;; unknown type +;;(define-extern *stats-memory-short* object) ;; unknown type +;;(define-extern *display-entity-errors* object) ;; unknown type +;;(define-extern *display-collide-history* object) ;; unknown type +;;(define-extern *display-sidekick-stats* object) ;; unknown type +;;(define-extern *display-nav-marks* object) ;; unknown type +;;(define-extern *display-camera-old-stats* object) ;; unknown type +;;(define-extern *display-perf-stats* object) ;; unknown type +;;(define-extern *draw-hook* object) ;; unknown type +;;(define-extern *stats-collide* object) ;; unknown type +;;(define-extern *display-cam-collide-history* object) ;; unknown type +;;(define-extern *debug-hook* object) ;; unknown type +;;(define-extern *artist-error-spheres* object) ;; unknown type +;;(define-extern *display-quad-stats* object) ;; unknown type +;;(define-extern *display-cam-los-info* object) ;; unknown type +;;(define-extern *display-camera-last-attacker* object) ;; unknown type +;;(define-extern *display-collide-cache* object) ;; unknown type +;;(define-extern *display-collision-marks* object) ;; unknown type +;;(define-extern *display-actor-anim* object) ;; unknown type +;;(define-extern *display-tri-stats* object) ;; unknown type +;;(define-extern *run* object) ;; unknown type +;;(define-extern *display-cam-coll-marks* object) ;; unknown type +;;(define-extern *display-ambient-hint-marks* object) ;; unknown type +;;(define-extern *display-cam-los-debug* object) ;; unknown type +;;(define-extern *display-strip-lines* object) ;; unknown type +;;(define-extern *display-process-anim* object) ;; unknown type +;;(define-extern *display-actor-marks* object) ;; unknown type +(define-extern *menu-hook* function) +;;(define-extern *display-load-boundaries* object) ;; unknown type +;;(define-extern *display-water-marks* object) ;; unknown type +;;(define-extern *artist-flip-visible* object) ;; unknown type +;;(define-extern *display-level-spheres* object) ;; unknown type +;;(define-extern *teleport* object) ;; unknown type +;;(define-extern *display-cam-master-marks* object) ;; unknown type +;;(define-extern *display-ambient-sound-marks* object) ;; unknown type +;;(define-extern *artist-fix-frustum* object) ;; unknown type +;;(define-extern *display-ambient-weather-off-marks* object) ;; unknown type +;;(define-extern *display-cam-los-marks* object) ;; unknown type +;;(define-extern *stats-bsp* object) ;; unknown type +;;(define-extern *display-ambient-ocean-near-off-marks* object) ;; unknown type +;;(define-extern *display-texture-download* object) ;; unknown type +;;(define-extern *artist-use-menu-subdiv* object) ;; unknown type +;;(define-extern *display-xyz-axes* object) ;; unknown type +;;(define-extern *record-cam-collide-history* object) ;; unknown type +;;(define-extern *display-deci-count* object) ;; unknown type +;;(define-extern *display-memcard-info* object) ;; unknown type +;;(define-extern *slow-frame-rate* object) ;; unknown type +;;(define-extern *display-ambient-ocean-off-marks* object) ;; unknown type +;;(define-extern *display-target-marks* object) ;; unknown type +;;(define-extern *camera-no-mip-correction* object) ;; unknown type +;;(define-extern *display-path-marks* object) ;; unknown type +;;(define-extern *dma-timeout-hook* object) ;; unknown type +;;(define-extern *display-camera-marks* object) ;; unknown type +;;(define-extern *display-level-border* object) ;; unknown type +;;(define-extern *display-hipri-collision-marks* object) ;; unknown type +;;(define-extern *display-sprite-info* object) ;; unknown type +;;(define-extern *display-actor-graph* object) ;; unknown type +;;(define-extern *stats-buffer* object) ;; unknown type +;;(define-extern *display-vol-marks* object) ;; unknown type +;;(define-extern *display-actor-vis* object) ;; unknown type +;;(define-extern *display-render-collision* object) ;; unknown type +;;(define-extern cspace object) ;; unknown type +;;(define-extern bone object) ;; unknown type +;;(define-extern cspace-array object) ;; unknown type +;;(define-extern bone-cache object) ;; unknown type +(define-extern joint type) +;;(define-extern skeleton object) ;; unknown type +;;(define-extern drawable-error object) ;; unknown type +;;(define-extern drawable object) ;; unknown type +;;(define-extern *collide-nodes* object) ;; unknown type +;;(define-extern drawable-group object) ;; unknown type +;;(define-extern drawable-inline-array object) ;; unknown type +;;(define-extern draw-node-dma object) ;; unknown type +(define-extern draw-node type) +(define-extern drawable-inline-array-node type) +(define-extern drawable-tree-array type) +;;(define-extern drawable-tree object) ;; unknown type +(define-extern drawable-actor type) +(define-extern drawable-tree-actor type) +(define-extern drawable-inline-array-actor type) +(define-extern drawable-ambient type) +;;(define-extern level-hint object) ;; unknown type +(define-extern drawable-inline-array-ambient type) +(define-extern drawable-tree-ambient type) +;;(define-extern ambient-list object) ;; unknown type +(define-extern level-hint-control type) +(define-extern task-hint-control type) +(define-extern task-hint-control-group type) +;;(define-extern generic-interp-job object) ;; unknown type +;;(define-extern ad-cmd object) ;; unknown type +;;(define-extern generic-strip object) ;; unknown type +;;(define-extern gsf-vertex object) ;; unknown type +;;(define-extern gsf-ik object) ;; unknown type +;;(define-extern generic-gif-tag object) ;; unknown type +;;(define-extern kmalloc object) ;; unknown type +;;(define-extern gsf-fx-vertex-array object) ;; unknown type +;;(define-extern generic-envmap-saves object) ;; unknown type +;;(define-extern generic-storage object) ;; unknown type +;;(define-extern gsf-vertex-array object) ;; unknown type +;;(define-extern gsf-info object) ;; unknown type +;;(define-extern gsf-buffer object) ;; unknown type +;;(define-extern generic-frag object) ;; unknown type +;;(define-extern generic-saves object) ;; unknown type +;;(define-extern gsf-header object) ;; unknown type +;;(define-extern gsf-fx-vertex object) ;; unknown type +;;(define-extern *gsf-buffer* object) ;; unknown type +;;(define-extern generic-consts object) ;; unknown type +;;(define-extern generic-envmap-consts object) ;; unknown type +;;(define-extern vu-lights object) ;; unknown type +;;(define-extern light-ellipse object) ;; unknown type +;;(define-extern light-array object) ;; unknown type +;;(define-extern light-volume-array object) ;; unknown type +;;(define-extern light-volume object) ;; unknown type +;;(define-extern light-group object) ;; unknown type +;;(define-extern light object) ;; unknown type +;;(define-extern light-volume-sphere object) ;; unknown type +;;(define-extern light-volume-planes object) ;; unknown type +(define-extern ocean-trans-indices type) +(define-extern ocean-work type) +;;(define-extern ocean-mid-upload object) ;; unknown type +;;(define-extern ocean-vertex object) ;; unknown type +;;(define-extern ocean-mid-mask object) ;; unknown type +;;(define-extern *ocean-facing* object) ;; unknown type +(define-extern ocean-mid-masks type) +;;(define-extern ocean-mid-vertex object) ;; unknown type +;;(define-extern *ocean-mid-off* object) ;; unknown type +;;(define-extern *ocean-verts* object) ;; unknown type +;;(define-extern ocean-trans-strip object) ;; unknown type +;;(define-extern *ocean-heights* object) ;; unknown type +;;(define-extern ocean-colors object) ;; unknown type +;;(define-extern ocean-vu0-work object) ;; unknown type +;;(define-extern ocean-corner object) ;; unknown type +;;(define-extern ocean-trans-index object) ;; unknown type +;;(define-extern ocean-texture-constants object) ;; unknown type +(define-extern ocean-map type) +;;(define-extern *ocean-near-off* object) ;; unknown type +(define-extern ocean-mid-indices type) +;;(define-extern ocean-trans-strip-array object) ;; unknown type +;;(define-extern ocean-mid-upload2 object) ;; unknown type +;;(define-extern ocean-near-upload object) ;; unknown type +;;(define-extern ocean-near-colors object) ;; unknown type +;;(define-extern ocean-texture-work object) ;; unknown type +;;(define-extern ocean-near-constants object) ;; unknown type +;;(define-extern ocean-near-index object) ;; unknown type +;;(define-extern ocean-wave-info object) ;; unknown type +;;(define-extern ocean-mid-work object) ;; unknown type +;;(define-extern *ocean-off* object) ;; unknown type +;;(define-extern ocean-near-work object) ;; unknown type +;;(define-extern *ocean-work* object) ;; unknown type +;;(define-extern ocean-wave-data object) ;; unknown type +(define-extern ocean-near-indices type) +;;(define-extern ocean-wave-frames object) ;; unknown type +;;(define-extern ocean-spheres object) ;; unknown type +;;(define-extern ocean-trans-mask object) ;; unknown type +;;(define-extern ocean-mid-constants object) ;; unknown type +;;(define-extern ocean-near-vertex object) ;; unknown type +;;(define-extern *ocean-trans-down-left-table* object) ;; unknown type +;;(define-extern *ocean-up-table* object) ;; unknown type +;;(define-extern *ocean-up-left-table* object) ;; unknown type +;;(define-extern *ocean-trans-up-left-table* object) ;; unknown type +;;(define-extern *ocean-trans-st-table* object) ;; unknown type +;;(define-extern *ocean-down-left-table* object) ;; unknown type +;;(define-extern *ocean-trans-down-table* object) ;; unknown type +;;(define-extern *ocean-trans-right-table* object) ;; unknown type +;;(define-extern *ocean-trans-down-right-table* object) ;; unknown type +;;(define-extern *ocean-trans-left-table* object) ;; unknown type +;;(define-extern *ocean-down-right-table* object) ;; unknown type +;;(define-extern *ocean-trans-up-right-table* object) ;; unknown type +;;(define-extern *ocean-trans-strip-array* object) ;; unknown type +;;(define-extern *ocean-left-table* object) ;; unknown type +;;(define-extern *ocean-trans-up-table* object) ;; unknown type +;;(define-extern *ocean-up-right-table* object) ;; unknown type +;;(define-extern *ocean-trans-corner-table* object) ;; unknown type +;;(define-extern *ocean-right-table* object) ;; unknown type +;;(define-extern *ocean-down-table* object) ;; unknown type +;;(define-extern *ocean-trans-indices-village2* object) ;; unknown type +;;(define-extern *ocean-trans-indices-village1* object) ;; unknown type +;;(define-extern *ocean-near-indices-village2* object) ;; unknown type +;;(define-extern *ocean-colors-village1* object) ;; unknown type +;;(define-extern *ocean-map-village2* object) ;; unknown type +;;(define-extern *ocean-trans-indices-sunken* object) ;; unknown type +;;(define-extern *ocean-map-sunken* object) ;; unknown type +;;(define-extern *ocean-mid-indices-sunken* object) ;; unknown type +;;(define-extern *ocean-mid-masks-village2* object) ;; unknown type +;;(define-extern *ocean-mid-indices-village1* object) ;; unknown type +;;(define-extern *ocean-near-indices-village1* object) ;; unknown type +;;(define-extern *ocean-spheres-village2* object) ;; unknown type +;;(define-extern *ocean-colors-village2* object) ;; unknown type +;;(define-extern *ocean-mid-masks-village1* object) ;; unknown type +;;(define-extern *ocean-near-indices-sunken* object) ;; unknown type +;;(define-extern *ocean-mid-indices-village2* object) ;; unknown type +;;(define-extern *ocean-mid-masks-sunken* object) ;; unknown type +;;(define-extern *ocean-map-village1* object) ;; unknown type +;;(define-extern *ocean-spheres-village1* object) ;; unknown type +;;(define-extern *ocean-wave-frames* object) ;; unknown type +;;(define-extern sky-color-hour object) ;; unknown type +;;(define-extern sky-circle-data object) ;; unknown type +;;(define-extern *sky-drawn* object) ;; unknown type +;;(define-extern sky-vertex object) ;; unknown type +;;(define-extern sky-sun-data object) ;; unknown type +;;(define-extern sky-color-day object) ;; unknown type +;;(define-extern *cloud-drawn* object) ;; unknown type +;;(define-extern sky-tng-data object) ;; unknown type +;;(define-extern sky-orbit object) ;; unknown type +;;(define-extern sky-upload-data object) ;; unknown type +;;(define-extern *sky-parms* object) ;; unknown type +;;(define-extern sky-moon-data object) ;; unknown type +;;(define-extern *sky-upload-data* object) ;; unknown type +;;(define-extern sky-work object) ;; unknown type +;;(define-extern sky-parms object) ;; unknown type +;;(define-extern mood-fog object) ;; unknown type +;;(define-extern mood-lights-table object) ;; unknown type +;;(define-extern mood-fog-table object) ;; unknown type +;;(define-extern mood-context object) ;; unknown type +;;(define-extern mood-sun-table object) ;; unknown type +;;(define-extern mood-lights object) ;; unknown type +;;(define-extern mood-sun object) ;; unknown type +(define-extern time-of-day-context type) +;;(define-extern *time-of-day-context* object) ;; unknown type +;;(define-extern palette-fade-control object) ;; unknown type +;;(define-extern *time-of-day-mode* object) ;; unknown type +;;(define-extern time-of-day-dma object) ;; unknown type +;;(define-extern palette-fade-controls object) ;; unknown type +;;(define-extern *palette-fade-controls* object) ;; unknown type +(define-extern time-of-day-palette type) +;;(define-extern time-of-day-proc object) ;; unknown type +(define-extern skeleton-group type) +(define-extern art-joint-anim type) +;;(define-extern joint-anim-compressed-control object) ;; unknown type +;;(define-extern joint-anim-matrix object) ;; unknown type +;;(define-extern art-mesh-geo object) ;; unknown type +;;(define-extern joint-anim-compressed-hdr object) ;; unknown type +;;(define-extern art-mesh-anim object) ;; unknown type +(define-extern joint-anim-compressed type) +;;(define-extern joint-anim-compressed-fixed object) ;; unknown type +;;(define-extern art-element object) ;; unknown type +;;(define-extern draw-control object) ;; unknown type +;;(define-extern joint-anim-compressed-frame object) ;; unknown type +;;(define-extern joint-anim-drawable object) ;; unknown type +;;(define-extern joint-anim object) ;; unknown type +(define-extern art-joint-geo type) +;;(define-extern art object) ;; unknown type +;;(define-extern lod-group object) ;; unknown type +;;(define-extern joint-anim-frame object) ;; unknown type +;;(define-extern joint-anim-transformq object) ;; unknown type +;;(define-extern lod-set object) ;; unknown type +;;(define-extern new-dynamic-structure object) ;; unknown type +;;(define-extern generic-pris-mtx-save object) ;; unknown type +;;(define-extern generic-constants object) ;; unknown type +;;(define-extern pris-mtx object) ;; unknown type +;;(define-extern merc-blend-data object) ;; unknown type +;;(define-extern mei-texture-scroll object) ;; unknown type +;;(define-extern merc-extra-info object) ;; unknown type +;;(define-extern merc-vu1-low-mem object) ;; unknown type +;;(define-extern merc-byte-header object) ;; unknown type +;;(define-extern merc-blend-ctrl object) ;; unknown type +;;(define-extern ripple-merc-query object) ;; unknown type +;;(define-extern merc-fragment-control object) ;; unknown type +;;(define-extern mei-ripple object) ;; unknown type +;;(define-extern merc-eye-ctrl object) ;; unknown type +;;(define-extern merc-effect object) ;; unknown type +;;(define-extern ripple-wave object) ;; unknown type +;;(define-extern merc-mat-dest object) ;; unknown type +(define-extern merc-fragment-fp-data function) +(define-extern ripple-wave-set type) +;;(define-extern merc-fragment object) ;; unknown type +;;(define-extern merc-vtx object) ;; unknown type +;;(define-extern merc-eye-anim-block object) ;; unknown type +;;(define-extern merc-fp-header object) ;; unknown type +;;(define-extern merc-ctrl-header object) ;; unknown type +;;(define-extern mei-envmap-tint object) ;; unknown type +(define-extern merc-ctrl type) +;;(define-extern ripple-control object) ;; unknown type +;;(define-extern merc-eye-anim-frame object) ;; unknown type +;;(define-extern merc-matrix object) ;; unknown type +;;(define-extern generic-merc-ctrl object) ;; unknown type +;;(define-extern generic-merc-tag object) ;; unknown type +;;(define-extern generic-merc-output object) ;; unknown type +;;(define-extern generic-merc-input object) ;; unknown type +;;(define-extern generic-merc-work object) ;; unknown type +;;(define-extern generic-merc-dcache object) ;; unknown type +;;(define-extern gm-shadow object) ;; unknown type +;;(define-extern generic-merc-ctrl-with-sfx object) ;; unknown type +;;(define-extern generic-tie-stats object) ;; unknown type +;;(define-extern generic-tie-run-control object) ;; unknown type +;;(define-extern generic-tie-matrix object) ;; unknown type +;;(define-extern generic-tie-interp-point object) ;; unknown type +;;(define-extern generic-tie-input object) ;; unknown type +;;(define-extern generic-tie-control object) ;; unknown type +;;(define-extern generic-tie-bps object) ;; unknown type +;;(define-extern generic-tie-shadow object) ;; unknown type +;;(define-extern generic-tie-work object) ;; unknown type +;;(define-extern generic-tie-instance object) ;; unknown type +;;(define-extern generic-tie-base-point object) ;; unknown type +;;(define-extern generic-tie-header object) ;; unknown type +;;(define-extern generic-tie-ips object) ;; unknown type +;;(define-extern generic-tie-normal object) ;; unknown type +;;(define-extern generic-tie-calls object) ;; unknown type +;;(define-extern generic-texbuf object) ;; unknown type +;;(define-extern generic-debug object) ;; unknown type +;;(define-extern generic-effect-work object) ;; unknown type +;;(define-extern generic-work object) ;; unknown type +;;(define-extern generic-vu1-header object) ;; unknown type +;;(define-extern generic-input-buffer object) ;; unknown type +;;(define-extern generic-effect-buffer object) ;; unknown type +;;(define-extern generic-vu1-texbuf object) ;; unknown type +;;(define-extern *generic-debug* object) ;; unknown type +(define-extern shadow-queue-append function) +;;(define-extern shadow-work object) ;; unknown type +;;(define-extern shadow-queue object) ;; unknown type +;;(define-extern *shadow-queue* object) ;; unknown type +;;(define-extern *shadow* object) ;; unknown type +;;(define-extern shadow-settings object) ;; unknown type +;;(define-extern *shadow-object* object) ;; unknown type +(define-extern shadow-queue-reset function) +;;(define-extern shadow-matrix-ref object) ;; unknown type +;;(define-extern *shadow-debug* object) ;; unknown type +(define-extern shadow-geo type) +;;(define-extern shadow-data object) ;; unknown type +;;(define-extern shadow-vertex object) ;; unknown type +;;(define-extern shadow-tri object) ;; unknown type +;;(define-extern shadow-header object) ;; unknown type +;;(define-extern shadow-run object) ;; unknown type +;;(define-extern shadow-edge object) ;; unknown type +(define-extern shadow-control type) +;;(define-extern mc-file-info object) ;; unknown type +(define-extern show-mc-info function) +;;(define-extern mc-handle object) ;; unknown type +;;(define-extern mc-slot-info object) ;; unknown type +(define-extern mc-sync function) +;;(define-extern mc-run object) ;; unknown type +;;(define-extern mc-get-slot-info object) ;; unknown type +;;(define-extern mc-check-result object) ;; unknown type +(define-extern game-bank type) +;;(define-extern load-state object) ;; unknown type +(define-extern continue-point type) +;;(define-extern *game-info* object) ;; unknown type +(define-extern game-info type) +;;(define-extern level-buffer-state object) ;; unknown type +;;(define-extern actor-id object) ;; unknown type +;;(define-extern *GAME-bank* object) ;; unknown type +;;(define-extern wind-work object) ;; unknown type +(define-extern wind-get-hashed-index function) +;;(define-extern *wind-scales* object) ;; unknown type +;;(define-extern wind-vector object) ;; unknown type +;;(define-extern *wind-work* object) ;; unknown type +(define-extern prototype-bucket-shrub type) +(define-extern prototype-bucket-tie type) +;;(define-extern instance object) ;; unknown type +;;(define-extern prototype-bucket object) ;; unknown type +(define-extern proxy-prototype-array-tie type) +(define-extern prototype-array-tie type) +(define-extern prototype-inline-array-shrub type) +(define-extern prototype-array-shrub-info type) +;;(define-extern joint-control object) ;; unknown type +;;(define-extern channel-upload-info object) ;; unknown type +;;(define-extern joint-control-channel object) ;; unknown type +;;(define-extern matrix-stack object) ;; unknown type +;;(define-extern joint-work object) ;; unknown type +(define-extern invalidate-cache-line function) +;;(define-extern merc-globals object) ;; unknown type +;;(define-extern bone-memory object) ;; unknown type +;;(define-extern bone-work object) ;; unknown type +;;(define-extern shadow-dma-packet object) ;; unknown type +;;(define-extern bone-layout object) ;; unknown type +;;(define-extern bone-debug object) ;; unknown type +;;(define-extern bone-regs object) ;; unknown type +;;(define-extern bone-buffer object) ;; unknown type +;;(define-extern merc-global-array object) ;; unknown type +;;(define-extern *merc-globals* object) ;; unknown type +;;(define-extern *matrix-engine* object) ;; unknown type +;;(define-extern camera-eng object) ;; unknown type +;;(define-extern *camera-engine* object) ;; unknown type +;;(define-extern *background-draw-engine* object) ;; unknown type +;;(define-extern draw object) ;; unknown type +;;(define-extern *debug-engine* object) ;; unknown type +;;(define-extern res-tag object) ;; unknown type +;;(define-extern *res-key-string* object) ;; unknown type +(define-extern res-lump type) +;;(define-extern *res-static-buf* object) ;; unknown type +(define-extern part-group-pointer? function) +(define-extern nav-mesh type) +(define-extern collide-mesh type) +;;(define-extern sinteger object) ;; unknown type +;;(define-extern uinteger object) ;; unknown type +;;(define-extern id object) ;; unknown type +;;(define-extern aid object) ;; unknown type +;;(define-extern interp object) ;; unknown type +;;(define-extern exact object) ;; unknown type +;;(define-extern process-type object) ;; unknown type +;;(define-extern task object) ;; unknown type +;;(define-extern base object) ;; unknown type +;;(define-extern rot object) ;; unknown type +(define-extern vu-lights-default! function) +(define-extern light-group-slerp function) +(define-extern light-slerp function) +(define-extern light-group-process! function) +;;(define-extern *default-lights* object) ;; unknown type +(define-extern vu-lights<-light-group! function) +(define-extern time-to-apex function) +(define-extern time-to-ground function) +;;(define-extern *standard-dynamics* object) ;; unknown type +(define-extern dynamics type) +;;(define-extern standard object) ;; unknown type +;;(define-extern *edge-surface* object) ;; unknown type +;;(define-extern *uppercut-jump-mods* object) ;; unknown type +;;(define-extern *forward-pole-jump-mods* object) ;; unknown type +;;(define-extern *flip-jump-mods* object) ;; unknown type +(define-extern surface-clamp-speed function) +;;(define-extern *flop-mods* object) ;; unknown type +(define-extern surface type) +;;(define-extern *smack-jump-mods* object) ;; unknown type +;;(define-extern *dive-mods* object) ;; unknown type +;;(define-extern *swim-surface* object) ;; unknown type +(define-extern calc-terminal2-vel function) +;;(define-extern *wade-surface* object) ;; unknown type +;;(define-extern *jump-mods* object) ;; unknown type +;;(define-extern *turn-around-mods* object) ;; unknown type +;;(define-extern *jump-attack-mods* object) ;; unknown type +;;(define-extern *grass-surface* object) ;; unknown type +;;(define-extern *dive-bottom-mods* object) ;; unknown type +;;(define-extern *tread-surface* object) ;; unknown type +(define-extern surface-mult! function) +;;(define-extern *forward-high-jump-mods* object) ;; unknown type +;;(define-extern *double-jump-mods* object) ;; unknown type +;;(define-extern edge-grab object) ;; unknown type +;;(define-extern *high-jump-mods* object) ;; unknown type +;;(define-extern *ice-surface* object) ;; unknown type +;;(define-extern *grab-mods* object) ;; unknown type +;;(define-extern *run-attack-mods* object) ;; unknown type +;;(define-extern *quicksand-surface* object) ;; unknown type +;;(define-extern *walk-no-turn-mods* object) ;; unknown type +(define-extern calc-terminal-vel function) +;;(define-extern *duck-mods* object) ;; unknown type +;;(define-extern *duck-attack-mods* object) ;; unknown type +;;(define-extern *slope-surface* object) ;; unknown type +(define-extern calc-terminal4-vel function) +;;(define-extern *edge-grab-mods* object) ;; unknown type +;;(define-extern *standard-ground-surface* object) ;; unknown type +;;(define-extern *flop-land-mods* object) ;; unknown type +;;(define-extern *wheel-mods* object) ;; unknown type +;;(define-extern *swim-mods* object) ;; unknown type +(define-extern surface-interp! function) +;;(define-extern *walk-mods* object) ;; unknown type +;;(define-extern *attack-mods* object) ;; unknown type +;;(define-extern *neutral-mods* object) ;; unknown type +;;(define-extern grab object) ;; unknown type +;;(define-extern *wade-mods* object) ;; unknown type +;;(define-extern *forward-jump-mods* object) ;; unknown type +;;(define-extern *stone-surface* object) ;; unknown type +;;(define-extern *launch-jump-mods* object) ;; unknown type +;;(define-extern *empty-mods* object) ;; unknown type +;;(define-extern *tar-surface* object) ;; unknown type +;;(define-extern *wheel-flip-mods* object) ;; unknown type +;;(define-extern *pole-mods* object) ;; unknown type +;;(define-extern pole object) ;; unknown type +;;(define-extern wheel-flip object) ;; unknown type +;;(define-extern swim-bottom object) ;; unknown type +;;(define-extern empty object) ;; unknown type +;;(define-extern duck object) ;; unknown type +(define-extern wheel type) +;;(define-extern air object) ;; unknown type +;;(define-extern dive object) ;; unknown type +;;(define-extern uppercut object) ;; unknown type +;;(define-extern high-jump object) ;; unknown type +;;(define-extern jump-double object) ;; unknown type +;;(define-extern jump object) ;; unknown type +;;(define-extern swim object) ;; unknown type +;;(define-extern walk object) ;; unknown type +;;(define-extern wade object) ;; unknown type +;;(define-extern attack object) ;; unknown type +;;(define-extern flop object) ;; unknown type +;;(define-extern launch-jump object) ;; unknown type +;;(define-extern run object) ;; unknown type +(define-extern pat-event->string function) +(define-extern pat-material->string function) +;;(define-extern pat-surface object) ;; unknown type +;;(define-extern pat-mode-info object) ;; unknown type +(define-extern pat-mode->string function) +;;(define-extern *pat-mode-info* object) ;; unknown type +;;(define-extern fact-info-target object) ;; unknown type +(define-extern pickup-type->string function) +(define-extern fact-bank type) +(define-extern fact-info type) +;;(define-extern fact-info-enemy object) ;; unknown type +;;(define-extern *FACT-bank* object) ;; unknown type +;;(define-extern cam-vert object) ;; unknown type +;;(define-extern idle-distance object) ;; unknown type +;;(define-extern options object) ;; unknown type +;;(define-extern notice-top object) ;; unknown type +;;(define-extern speed object) ;; unknown type +;;(define-extern cam-notice-dist object) ;; unknown type +;;(define-extern process-drawable-art-error object) ;; unknown type +;;(define-extern notice-bottom object) ;; unknown type +;;(define-extern eco-info object) ;; unknown type +;;(define-extern cam-horz object) ;; unknown type +;;(define-extern timeout object) ;; unknown type +;;(define-extern align-control object) ;; unknown type +;;(define-extern attack-info object) ;; unknown type +;;(define-extern process-drawable object) ;; unknown type +;;(define-extern *global-attack-id* object) ;; unknown type +;;(define-extern ground-tween-info object) ;; unknown type +;;(define-extern process-drawable-reserved object) ;; unknown type +;;(define-extern othercam object) ;; unknown type +;;(define-extern process-hidden object) ;; unknown type +;;(define-extern gui-query object) ;; unknown type +;;(define-extern manipy object) ;; unknown type +;;(define-extern camera-tracker object) ;; unknown type +(define-extern swingpole type) +;;(define-extern part-spawner object) ;; unknown type +;;(define-extern touch-tracker object) ;; unknown type +;;(define-extern part-tracker object) ;; unknown type +;;(define-extern pov-camera object) ;; unknown type +;;(define-extern delayed-rand-float object) ;; unknown type +;;(define-extern sync-info-paused object) ;; unknown type +;;(define-extern bouncing-float object) ;; unknown type +;;(define-extern delayed-rand-vector object) ;; unknown type +;;(define-extern sync-info object) ;; unknown type +;;(define-extern oscillating-vector object) ;; unknown type +;;(define-extern sync-info-eased object) ;; unknown type +;;(define-extern oscillating-float object) ;; unknown type +;;(define-extern smush-control object) ;; unknown type +;;(define-extern trajectory object) ;; unknown type +;;(define-extern debug-vertex-stats object) ;; unknown type +;;(define-extern debug-vertex object) ;; unknown type +;;(define-extern pos-history object) ;; unknown type +;;(define-extern joint-mod-wheel object) ;; unknown type +;;(define-extern joint-mod object) ;; unknown type +;;(define-extern joint-mod-set-local object) ;; unknown type +(define-extern joint-mod-set-local-callback function) +(define-extern joint-mod-blend-local-callback function) +;;(define-extern try-to-look-at-info object) ;; unknown type +(define-extern joint-mod-look-at-handler function) +(define-extern joint-mod-set-world-callback function) +;;(define-extern last-try-to-look-at-data object) ;; unknown type +;;(define-extern *joint-axis-vectors* object) ;; unknown type +;;(define-extern joint-mod-set-world object) ;; unknown type +(define-extern joint-mod-wheel-callback function) +(define-extern joint-mod-spinner-callback function) +(define-extern joint-mod-joint-set-handler function) +;;(define-extern joint-mod-spinner object) ;; unknown type +(define-extern joint-mod-debug-draw function) +;;(define-extern joint-mod-blend-local object) ;; unknown type +(define-extern joint-mod-world-look-at-handler function) +(define-extern joint-mod-rotate-handler function) +(define-extern joint-mod-joint-set*-handler function) +(define-extern add-debug-matrix function) +(define-extern vector<-cspace! function) +(define-extern cspace<-transformq! function) +(define-extern add-debug-text-sphere function) +;;(define-extern attacking object) ;; unknown type +;;(define-extern force object) ;; unknown type +(define-extern cspace<-parented-transformq-joint! function) +;;(define-extern target object) ;; unknown type +;;(define-extern collide-mesh-tri object) ;; unknown type +;;(define-extern *collide-mesh-cache* object) ;; unknown type +;;(define-extern collide-mesh-cache-tri object) ;; unknown type +;;(define-extern collide-mesh-cache object) ;; unknown type +;;(define-extern collide-tri-result object) ;; unknown type +;;(define-extern collide-player-list object) ;; unknown type +;;(define-extern collide-shape-moving object) ;; unknown type +;;(define-extern collide-shape-prim object) ;; unknown type +;;(define-extern *collide-usually-hit-by-player-list* object) ;; unknown type +(define-extern collide-shape-prim-mesh type) +;;(define-extern collide-shape-intersect object) ;; unknown type +;;(define-extern collide-hit-by-others-list object) ;; unknown type +;;(define-extern *collide-shape-prim-water* object) ;; unknown type +;;(define-extern *collide-player-list* object) ;; unknown type +;;(define-extern collide-shape-prim-sphere object) ;; unknown type +;;(define-extern collide-sticky-rider-group object) ;; unknown type +;;(define-extern collide-sticky-rider object) ;; unknown type +;;(define-extern *collide-shape-prim-backgnd* object) ;; unknown type +;;(define-extern collide-usually-hit-by-player-list object) ;; unknown type +;;(define-extern collide-prim-core object) ;; unknown type +;;(define-extern collide-shape-prim-group object) ;; unknown type +;;(define-extern pull-rider-info object) ;; unknown type +;;(define-extern collide-hit-by-player-list object) ;; unknown type +;;(define-extern collide-overlap-result object) ;; unknown type +;;(define-extern *collide-hit-by-others-list* object) ;; unknown type +;;(define-extern *collide-hit-by-player-list* object) ;; unknown type +;;(define-extern collide-shape object) ;; unknown type +;;(define-extern overlaps-others-params object) ;; unknown type +;;(define-extern camera object) ;; unknown type +;;(define-extern control-info object) ;; unknown type +;;(define-extern collide-history object) ;; unknown type +;;(define-extern touching-list object) ;; unknown type +;;(define-extern touching-shapes-entry object) ;; unknown type +;;(define-extern *touching-prims-entry-pool* object) ;; unknown type +;;(define-extern touching-prims-entry object) ;; unknown type +;;(define-extern touching-prims-entry-pool object) ;; unknown type +;;(define-extern *touching-list* object) ;; unknown type +;;(define-extern touching-prim object) ;; unknown type +;;(define-extern collide-edge-tri object) ;; unknown type +;;(define-extern *edge-grab-info* object) ;; unknown type +;;(define-extern collide-edge-edge object) ;; unknown type +;;(define-extern edge-grab-info object) ;; unknown type +;;(define-extern collide-edge-hold-list object) ;; unknown type +;;(define-extern collide-edge-work object) ;; unknown type +;;(define-extern *collide-edge-work* object) ;; unknown type +;;(define-extern collide-edge-hold-item object) ;; unknown type +(define-extern num-func-seek! function) +(define-extern cspace-index-by-name-no-fail function) +(define-extern num-func-blend-in! function) +(define-extern num-func-chan function) +(define-extern num-func-none function) +(define-extern num-func--! function) +(define-extern cspace-by-name-no-fail function) +(define-extern num-func-identity function) +(define-extern num-func-+! function) +(define-extern num-func-loop! function) +(define-extern cspace-by-name function) +(define-extern cspace-index-by-name function) +(define-extern joint-control-reset! function) +;;(define-extern effect-control object) ;; unknown type +;;(define-extern effect-name object) ;; unknown type +(define-extern drawable-inline-array-collide-fragment type) +(define-extern collide-frag-mesh type) +(define-extern collide-fragment type) +;;(define-extern collide-frag-vertex object) ;; unknown type +(define-extern drawable-tree-collide-fragment type) +;;(define-extern projectile-blue object) ;; unknown type +;;(define-extern projectile-yellow object) ;; unknown type +;;(define-extern projectile object) ;; unknown type +;;(define-extern *sidekick* object) ;; unknown type +;;(define-extern *target* object) ;; unknown type +;;(define-extern sidekick object) ;; unknown type +;;(define-extern depth-cue-work object) ;; unknown type +;;(define-extern depth-cue-data object) ;; unknown type +;;(define-extern perf-stat-array object) ;; unknown type +;;(define-extern perf-stat object) ;; unknown type +;;(define-extern tr-stat object) ;; unknown type +;;(define-extern merc-global-stats object) ;; unknown type +(define-extern bsp-header type) +;;(define-extern game-level object) ;; unknown type +(define-extern inspect-bsp-tree function) +(define-extern map-bsp-tree function) +;;(define-extern cl-stat object) ;; unknown type +;;(define-extern bsp-node object) ;; unknown type +;;(define-extern view-frustum object) ;; unknown type +;;(define-extern collide-stats object) ;; unknown type +;;(define-extern collide-cache-tri object) ;; unknown type +;;(define-extern *collide-cache* object) ;; unknown type +;;(define-extern collide-list-item object) ;; unknown type +;;(define-extern *collide-work* object) ;; unknown type +;;(define-extern collide-using-spheres-params object) ;; unknown type +;;(define-extern collide-puss-work object) ;; unknown type +;;(define-extern collide-puss-sphere object) ;; unknown type +;;(define-extern collide-puyp-work object) ;; unknown type +;;(define-extern *collide-list* object) ;; unknown type +;;(define-extern collide-work object) ;; unknown type +;;(define-extern collide-cache-prim object) ;; unknown type +;;(define-extern collide-list object) ;; unknown type +;;(define-extern collide-cache object) ;; unknown type +;;(define-extern *collide-test-flag* object) ;; unknown type +;;(define-extern *shrub-state* object) ;; unknown type +(define-extern generic-shrub-fragment type) +(define-extern instance-shrubbery type) +(define-extern shrubbery-login-post-texture function) +(define-extern shrubbery type) +(define-extern drawable-inline-array-instance-shrub type) +;;(define-extern instance-shrub-dma object) ;; unknown type +(define-extern drawable-tree-instance-shrub type) +;;(define-extern shrub-near-packet object) ;; unknown type +(define-extern billboard type) +(define-extern prototype-generic-shrub type) +;;(define-extern instance-shrub-work object) ;; unknown type +(define-extern prototype-trans-shrubbery type) +(define-extern prototype-shrubbery type) +;;(define-extern shrub-view-data object) ;; unknown type +;;(define-extern shrubbery-matrix object) ;; unknown type +(define-extern drawable-tree-instance-tie type) +(define-extern prototype-tie type) +;;(define-extern prototype-tie-work object) ;; unknown type +;;(define-extern prototype-tie-dma object) ;; unknown type +(define-extern drawable-inline-array-instance-tie type) +(define-extern tie-fragment type) +;;(define-extern instance-tie-dma object) ;; unknown type +;;(define-extern tie-matrix object) ;; unknown type +(define-extern instance-tie type) +;;(define-extern instance-tie-work object) ;; unknown type +;;(define-extern *instance-tie-work-copy* object) ;; unknown type +(define-extern drawable-tree-dirt-tfrag type) +(define-extern drawable-inline-array-trans-tfrag type) +(define-extern drawable-tree-ice-tfrag type) +;;(define-extern generic-tfragment object) ;; unknown type +(define-extern drawable-tree-lowres-tfrag type) +(define-extern drawable-tree-tfrag type) +(define-extern tfragment type) +;;(define-extern drawable-tree-lowres-trans-tfrag object) ;; unknown type +(define-extern drawable-tree-trans-tfrag type) +;;(define-extern tfragment-stats object) ;; unknown type +;;(define-extern tfrag-control object) ;; unknown type +;;(define-extern tfrag-stats object) ;; unknown type +(define-extern drawable-inline-array-tfrag type) +;;(define-extern tfrag-packet object) ;; unknown type +;;(define-extern tfrag-work object) ;; unknown type +;;(define-extern tfrag-dma object) ;; unknown type +;;(define-extern tfrag-data object) ;; unknown type +;;(define-extern tfragment-debug-data object) ;; unknown type +;;(define-extern tfrag-dists object) ;; unknown type +;;(define-extern background-work object) ;; unknown type +;;(define-extern subdivide-dists object) ;; unknown type +;;(define-extern work-area object) ;; unknown type +;;(define-extern subdivide-settings object) ;; unknown type +;;(define-extern terrain-bsp object) ;; unknown type +;;(define-extern gs-packed-stq object) ;; unknown type +;;(define-extern terrain-context object) ;; unknown type +;;(define-extern foreground-area object) ;; unknown type +;;(define-extern gs-packed-xyzw object) ;; unknown type +;;(define-extern gs-packed-gt4 object) ;; unknown type +;;(define-extern dma-area object) ;; unknown type +;;(define-extern background-area object) ;; unknown type +;;(define-extern *collide-stats* object) ;; unknown type +;;(define-extern ambient-area object) ;; unknown type +;;(define-extern terrain-stats object) ;; unknown type +;;(define-extern *terrain-stats* object) ;; unknown type +;;(define-extern gs-packed-rgba object) ;; unknown type +;;(define-extern gs-packed-gt object) ;; unknown type +;;(define-extern *generate-actor-vis-start* object) ;; unknown type +;;(define-extern *ACTOR-bank* object) ;; unknown type +(define-extern entity-actor type) +(define-extern entity-camera type) +;;(define-extern entity-perm-array object) ;; unknown type +;;(define-extern entity-links-array object) ;; unknown type +(define-extern entity-nav-login function) +(define-extern entity-ambient type) +;;(define-extern *generate-actor-vis-output* object) ;; unknown type +;;(define-extern entity-links object) ;; unknown type +;;(define-extern *generate-actor-vis* object) ;; unknown type +(define-extern entity-info type) +;;(define-extern entity object) ;; unknown type +;;(define-extern entity-perm object) ;; unknown type +;;(define-extern entity-ambient-data-array object) ;; unknown type +;;(define-extern entity-ambient-data object) ;; unknown type +(define-extern actor-bank type) +;;(define-extern sprite-array-3d object) ;; unknown type +;;(define-extern sprite-array-2d object) ;; unknown type +;;(define-extern sprite-vec-data-3d object) ;; unknown type +;;(define-extern sprite-vec-data-2d object) ;; unknown type +;;(define-extern fake-shadow-buffer object) ;; unknown type +;;(define-extern fake-shadow object) ;; unknown type +;;(define-extern *fake-shadow-buffer-1* object) ;; unknown type +;;(define-extern *fake-shadow-buffer* object) ;; unknown type +;;(define-extern *fake-shadow-buffer-2* object) ;; unknown type +(define-extern eye-control-array type) +;;(define-extern *eye-control-array* object) ;; unknown type +;;(define-extern eye object) ;; unknown type +;;(define-extern eye-work object) ;; unknown type +;;(define-extern eye-control object) ;; unknown type +;;(define-extern sp-field-init-spec object) ;; unknown type +(define-extern sparticle-launcher type) +(define-extern sparticle-launch-group type) +;;(define-extern sparticle-group-item object) ;; unknown type +;;(define-extern sparticle-launch-control object) ;; unknown type +;;(define-extern sparticle-launch-state object) ;; unknown type +;;(define-extern sparticle-system object) ;; unknown type +;;(define-extern *sp-60-hz* object) ;; unknown type +;;(define-extern *sp-frame-time* object) ;; unknown type +;;(define-extern sparticle-cpuinfo object) ;; unknown type +;;(define-extern sparticle-launchinfo object) ;; unknown type +(define-extern actor-link-subtask-complete-hook function) +(define-extern actor-link-dead-hook function) +(define-extern entity-actor-count function) +(define-extern alt-actor-list-subtask-incomplete-count function) +(define-extern entity-actor-lookup function) +;;(define-extern actor-link-info object) ;; unknown type +;;(define-extern next-actor object) ;; unknown type +;;(define-extern alt-actor object) ;; unknown type +(define-extern entity-by-name function) +(define-extern entity-by-aid function) +;;(define-extern prev-actor object) ;; unknown type +;;(define-extern cam-index object) ;; unknown type +;;(define-extern cam-vector-seeker object) ;; unknown type +;;(define-extern tracking-point object) ;; unknown type +;;(define-extern cam-float-seeker object) ;; unknown type +;;(define-extern camera-master object) ;; unknown type +;;(define-extern tracking-spline object) ;; unknown type +;;(define-extern camera-combiner object) ;; unknown type +;;(define-extern camera-slave object) ;; unknown type +(define-extern camera-bank type) +;;(define-extern tracking-spline-sampler object) ;; unknown type +;;(define-extern cam-rotation-tracker object) ;; unknown type +;;(define-extern *CAMERA-bank* object) ;; unknown type +;;(define-extern *greenline-table* object) ;; unknown type +;;(define-extern *timeplot-index* object) ;; unknown type +(define-extern float-lookup-greenline function) +;;(define-extern *greenline-index* object) ;; unknown type +(define-extern float-lookup-yellowline function) +(define-extern float-save-redline function) +(define-extern float-lookup-redline function) +;;(define-extern *blueline-table* object) ;; unknown type +;;(define-extern *timeplot-table* object) ;; unknown type +(define-extern float-save-greenline function) +(define-extern float-lookup-blueline function) +(define-extern float-save-blueline function) +(define-extern float-lookup-timeplot function) +;;(define-extern *redline-index* object) ;; unknown type +;;(define-extern *cam-layout* object) ;; unknown type +;;(define-extern *blueline-index* object) ;; unknown type +;;(define-extern *yellowline-table* object) ;; unknown type +(define-extern float-save-yellowline function) +;;(define-extern *yellowline-index* object) ;; unknown type +(define-extern float-save-timeplot function) +;;(define-extern *redline-table* object) ;; unknown type +;;(define-extern *camera-init-mat* object) ;; unknown type +;;(define-extern *camera-orbit-target* object) ;; unknown type +;;(define-extern *camera-combiner* object) ;; unknown type +;;(define-extern *camera-read-analog* object) ;; unknown type +;;(define-extern *camera* object) ;; unknown type +;;(define-extern *camera-read-buttons* object) ;; unknown type +;;(define-extern *cam-free-move-along-z* object) ;; unknown type +;;(define-extern *camera-other-trans* object) ;; unknown type +;;(define-extern *camera-other-root* object) ;; unknown type +;;(define-extern *camera-look-through-other* object) ;; unknown type +;;(define-extern *camera-other-fov* object) ;; unknown type +;;(define-extern *camera-other-matrix* object) ;; unknown type +;;(define-extern *camera-smush-control* object) ;; unknown type +;;(define-extern *external-cam-options* object) ;; unknown type +;;(define-extern *external-cam-mode* object) ;; unknown type +;;(define-extern __assert-info-private-struct object) ;; unknown type +;;(define-extern *__private-assert-info* object) ;; unknown type +(define-extern hud-icon type) +(define-extern hud-particle type) +;;(define-extern hud-parts object) ;; unknown type +;;(define-extern hud object) ;; unknown type +;;(define-extern *hud-parts* object) ;; unknown type +(define-extern game-option type) +;;(define-extern progress object) ;; unknown type +;;(define-extern *progress-process* object) ;; unknown type +;;(define-extern count-info object) ;; unknown type +(define-extern task-info-data type) +(define-extern game-count-info type) +;;(define-extern *progress-last-task-index* object) ;; unknown type +(define-extern level-tasks-info type) +;;(define-extern rpc-buffer object) ;; unknown type +;;(define-extern rpc-buffer-pair object) ;; unknown type +;;(define-extern rpc-busy? object) ;; unknown type +;;(define-extern rpc-call object) ;; unknown type +;;(define-extern curve-control object) ;; unknown type +;;(define-extern path-control object) ;; unknown type +;;(define-extern path-k object) ;; unknown type +;;(define-extern path-actor object) ;; unknown type +;;(define-extern path object) ;; unknown type +;;(define-extern string->symbol object) ;; unknown type +;;(define-extern nav-ray object) ;; unknown type +(define-extern nav-mesh-connect function) +;;(define-extern nav-poly object) ;; unknown type +;;(define-extern check-vector-collision-with-nav-spheres-info object) ;; unknown type +;;(define-extern nav-control object) ;; unknown type +;;(define-extern nav-gap-info object) ;; unknown type +;;(define-extern nav-node object) ;; unknown type +;;(define-extern nav-vertex object) ;; unknown type +;;(define-extern clip-travel-vector-to-mesh-return-info object) ;; unknown type +;;(define-extern nav-route-portal object) ;; unknown type +(define-extern has-nav-mesh? function) +;;(define-extern nav-sphere object) ;; unknown type +;;(define-extern nav-lookup-elem object) ;; unknown type +;;(define-extern nav-mesh-actor object) ;; unknown type +;;(define-extern *default-nav-mesh* object) ;; unknown type +;;(define-extern process-level-heap object) ;; unknown type +;;(define-extern nav-max-users object) ;; unknown type +;;(define-extern nav-engine object) ;; unknown type +;;(define-extern nearest-y-threshold object) ;; unknown type +(define-extern dgo-load-begin function) +(define-extern dgo-load-continue function) +(define-extern destroy-mem function) +(define-extern str-load function) +;;(define-extern *load-str-rpc* object) ;; unknown type +;;(define-extern load-chunk-msg object) ;; unknown type +;;(define-extern *dgo-name* object) ;; unknown type +(define-extern str-ambient-play function) +;;(define-extern *load-str-lock* object) ;; unknown type +(define-extern str-load-status function) +(define-extern str-load-cancel function) +(define-extern str-play-queue function) +(define-extern str-ambient-stop function) +(define-extern dgo-load-get-next function) +(define-extern find-temp-buffer function) +(define-extern str-play-kick function) +;;(define-extern load-dgo-msg object) ;; unknown type +;;(define-extern *load-dgo-rpc* object) ;; unknown type +;;(define-extern *que-str-lock* object) ;; unknown type +(define-extern dgo-load-cancel function) +(define-extern dgo-load-link function) +;;(define-extern *dgo-time* object) ;; unknown type +;;(define-extern dgo-header object) ;; unknown type +(define-extern str-play-async function) +(define-extern str-play-stop function) +;;(define-extern *play-str-rpc* object) ;; unknown type +(define-extern string->sound-name function) +;;(define-extern complete object) ;; unknown type +;;(define-extern busy object) ;; unknown type +;;(define-extern link-begin object) ;; unknown type +;;(define-extern *current-ramdisk-id* object) ;; unknown type +;;(define-extern ramdisk-rpc-load object) ;; unknown type +(define-extern ramdisk-load function) +;;(define-extern ramdisk-rpc-load-to-ee object) ;; unknown type +;;(define-extern *ramdisk-rpc* object) ;; unknown type +(define-extern ramdisk-sync function) +;;(define-extern ramdisk-rpc-fill object) ;; unknown type +(define-extern swap-sound-buffers function) +;;(define-extern misty object) ;; unknown type +(define-extern sound-group-stop function) +(define-extern sound-set-ear-trans function) +(define-extern sound-pause function) +(define-extern is-cd-in? function) +(define-extern sound-play-by-spec function) +;;(define-extern *sound-iop-info* object) ;; unknown type +(define-extern check-irx-version function) +(define-extern str-is-playing? function) +(define-extern free-last-sound-buffer-entry function) +(define-extern sound-volume-off function) +;;(define-extern *sound-player-rpc* object) ;; unknown type +;;(define-extern *sound-loader-rpc* object) ;; unknown type +;;(define-extern *flava-table* object) ;; unknown type +(define-extern sound-basic-cb function) +;;(define-extern sound-iop-info object) ;; unknown type +;;(define-extern beach object) ;; unknown type +;;(define-extern flava-table object) ;; unknown type +;;(define-extern empty2 object) ;; unknown type +(define-extern sound-bank-unload function) +(define-extern sound-stop function) +(define-extern get-sound-buffer-entry function) +(define-extern current-str-pos function) +(define-extern sound-play-by-name function) +;;(define-extern jungleb object) ;; unknown type +;;(define-extern snow object) ;; unknown type +;;(define-extern rolling object) ;; unknown type +(define-extern sound-set-falloff-curve function) +;;(define-extern jungle object) ;; unknown type +(define-extern sound-name= function) +(define-extern new-sound-id function) +(define-extern sound-set-reverb function) +(define-extern list-sounds function) +(define-extern show-iop-info function) +(define-extern sound-music-load function) +;;(define-extern finalboss object) ;; unknown type +(define-extern sound-trans-convert function) +(define-extern sound-set-sound-falloff function) +;;(define-extern flava-table-row object) ;; unknown type +;;(define-extern swamp object) ;; unknown type +;;(define-extern village1 object) ;; unknown type +(define-extern sound-group-continue function) +;;(define-extern village2 object) ;; unknown type +(define-extern sound-continue function) +;;(define-extern empty1 object) ;; unknown type +;;(define-extern village3 object) ;; unknown type +;;(define-extern *sound-player-enable* object) ;; unknown type +;;(define-extern firecanyon object) ;; unknown type +;;(define-extern citadel object) ;; unknown type +(define-extern show-iop-memory function) +(define-extern sound-set-volume function) +(define-extern sound-command->string function) +(define-extern make-sqrt-table function) +(define-extern flava-lookup function) +(define-extern sound-music-unload function) +;;(define-extern *ambient-spec* object) ;; unknown type +(define-extern sound-angle-convert function) +(define-extern ear-trans function) +;;(define-extern ogre object) ;; unknown type +;;(define-extern maincave object) ;; unknown type +;;(define-extern credits object) ;; unknown type +(define-extern sound-bank-load function) +;;(define-extern lavatube object) ;; unknown type +(define-extern sound-group-pause function) +(define-extern current-str-id function) +(define-extern sound-set-flava function) +(define-extern sound-buffer-dump function) +(define-extern sound-reload-info function) +(define-extern set-language function) +;;(define-extern *debug-effect-control* object) ;; unknown type +(define-extern math-camera-pos function) +;;(define-extern kset-language object) ;; unknown type +;;(define-extern effect-param object) ;; unknown type +;;(define-extern cycle-speed object) ;; unknown type +;;(define-extern *setting-control* object) ;; unknown type +(define-extern effect-param->sound-spec function) +;;(define-extern sfx-volume object) ;; unknown type +(define-extern target-pos function) +;;(define-extern music-volume object) ;; unknown type +(define-extern activate-progress function) +(define-extern camera-pos function) +;;(define-extern ambient-volume object) ;; unknown type +(define-extern matrix<-transformq+trans! function) +(define-extern matrix<-transformq+world-trans! function) +(define-extern matrix<-no-trans-transformq! function) +(define-extern transformq-copy! function) +(define-extern matrix<-parented-transformq! function) +(define-extern matrix<-transformq! function) +(define-extern moving-sphere-triangle-intersect function) +(define-extern ray-circle-intersect function) +(define-extern moving-sphere-moving-sphere-intersect function) +(define-extern ray-sphere-intersect function) +(define-extern raw-ray-sphere-intersect function) +(define-extern collide-do-primitives function) +(define-extern ray-triangle-intersect function) +(define-extern ray-plane-intersect function) +(define-extern ray-cylinder-intersect function) +(define-extern moving-sphere-sphere-intersect function) +(define-extern joint-control-channel-eval function) +(define-extern cspace<-transform-yxy! function) +(define-extern decompress-frame-data-to-accumulator function) +(define-extern matrix-from-joint-anim-frame function) +(define-extern matrix-from-control-pair! function) +(define-extern cspace<-cspace! function) +(define-extern cspace<-matrix-no-push-joint! function) +(define-extern jacc-mem-usage function) +(define-extern normalize-frame-quaternions function) +(define-extern joint-control-channel-eval! function) +(define-extern joint-anim-login function) +(define-extern joint-control-copy! function) +(define-extern matrix-from-control! function) +(define-extern cspace<-rot-yxy! function) +(define-extern cspace<-transformq+trans! function) +(define-extern joint-control-channel-group! function) +(define-extern joint-control-remap! function) +(define-extern cspace<-matrix-joint! function) +(define-extern calc-animation-from-spr function) +(define-extern decompress-fixed-data-to-accumulator function) +(define-extern cspace<-transformq+world-trans! function) +(define-extern cspace-calc-total-matrix! function) +(define-extern create-interpolated-joint-animation-frame function) +(define-extern matrix-from-control-channel! function) +(define-extern joint-anim-inspect-elt function) +(define-extern clear-frame-accumulator function) +(define-extern joint-control-channel-group-eval! function) +(define-extern flatten-joint-control-to-spr function) +(define-extern cspace<-parented-matrix-joint! function) +(define-extern make-joint-jump-tables function) +(define-extern decompress-frame-data-pair-to-accumulator function) +;;(define-extern stack object) ;; unknown type +;;(define-extern push1 object) ;; unknown type +(define-extern mem-size function) +;;(define-extern blend object) ;; unknown type +;;(define-extern push object) ;; unknown type +;;(define-extern stack1 object) ;; unknown type +;;(define-extern no-push object) ;; unknown type +;;(define-extern cylinder-verts object) ;; unknown type +;;(define-extern cylinder-flat-verts object) ;; unknown type +(define-extern ray-arbitrary-circle-intersect function) +(define-extern camera-line function) +(define-extern update-wind function) +(define-extern print-collide-stats function) +(define-extern mem-usage-bsp-tree function) +;;(define-extern *test-shrub* object) ;; unknown type +(define-extern clear-cl-stat function) +(define-extern bsp-camera-asm function) +(define-extern print-cl-stat function) +(define-extern update-subdivide-settings! function) +(define-extern foreground-engine-execute function) +;;(define-extern *subdivide-settings* object) ;; unknown type +;;(define-extern *stat-string-tfrag-near* object) ;; unknown type +(define-extern print-tr-stat function) +;;(define-extern *stat-string-total* object) ;; unknown type +;;(define-extern *perf-stats* object) ;; unknown type +(define-extern perf-stat-bucket->string function) +;;(define-extern GSH_ENABLE object) ;; unknown type +(define-extern print-terrain-stats function) +(define-extern start-perf-stat-collection function) +;;(define-extern GSH_WHICH_STAT object) ;; unknown type +;;(define-extern *merc-global-stats* object) ;; unknown type +;;(define-extern GSH_TIME object) ;; unknown type +(define-extern print-perf-stats function) +;;(define-extern *gomi-stats-hack* object) ;; unknown type +(define-extern clear-tr-stat function) +;;(define-extern GSH_MAX_DISPLAY object) ;; unknown type +;;(define-extern *terrain-context* object) ;; unknown type +;;(define-extern GSH_BUCKET object) ;; unknown type +(define-extern end-perf-stat-collection function) +;;(define-extern *stat-string-tfrag* object) ;; unknown type +(define-extern set-tfrag-dists! function) +;;(define-extern *tfrag-work* object) ;; unknown type +(define-extern sprite-add-frame-data function) +;;(define-extern *sprite-hvdf-control* object) ;; unknown type +;;(define-extern *sprite-aux-list* object) ;; unknown type +;;(define-extern sprite-aux-list object) ;; unknown type +(define-extern clear-sprite-aux-list function) +;;(define-extern sprite-hvdf-data object) ;; unknown type +(define-extern sprite-draw function) +(define-extern add-to-sprite-aux-list function) +;;(define-extern sprite-hvdf-control object) ;; unknown type +;;(define-extern sprite-vu1-block object) ;; unknown type +(define-extern sprite-add-2d-all function) +(define-extern sprite-add-2d-chunk function) +(define-extern sprite-setup-header function) +;;(define-extern *sprite-hvdf-data* object) ;; unknown type +(define-extern sprite-release-user-hvdf function) +;;(define-extern *sprite-array-3d* object) ;; unknown type +;;(define-extern sprite-frame-data object) ;; unknown type +(define-extern sprite-add-matrix-data function) +(define-extern sprite-get-user-hvdf function) +(define-extern sprite-add-3d-all function) +(define-extern sprite-get-3d-quaternion! function) +(define-extern sprite-set-3d-quaternion! function) +(define-extern sprite-add-shadow-all function) +(define-extern sprite-add-3d-chunk function) +;;(define-extern sprite-header object) ;; unknown type +(define-extern sprite-add-shadow-chunk function) +(define-extern sprite-setup-frame-data function) +;;(define-extern *sprite-array-2d* object) ;; unknown type +(define-extern sprite-allocate-user-hvdf function) +(define-extern sprite-draw-distorters function) +;;(define-extern *shadow-middot-texture* object) ;; unknown type +(define-extern sprite-init-distorter function) +;;(define-extern sprite-distorter-sine-tables object) ;; unknown type +;;(define-extern *sprite-distorter-sine-tables* object) ;; unknown type +;;(define-extern sprite-distort-vu1-block object) ;; unknown type +(define-extern make-debug-sphere-table function) +;;(define-extern *debug-sphere-table* object) ;; unknown type +(define-extern add-debug-sphere-from-table function) +(define-extern debug-sphere-table type) +(define-extern add-debug-line function) +(define-extern internal-draw-debug-text-3d function) +;;(define-extern debug-tracking-thang object) ;; unknown type +(define-extern add-debug-curve2 function) +(define-extern history-init function) +(define-extern debug-draw-buffers function) +(define-extern display-file-info function) +(define-extern add-debug-sphere function) +(define-extern add-debug-outline-triangle function) +(define-extern add-debug-x function) +(define-extern add-debug-points function) +(define-extern add-debug-text-3d function) +(define-extern add-debug-vector function) +(define-extern transform-float-point function) +(define-extern add-debug-curve function) +;;(define-extern debug-line object) ;; unknown type +;;(define-extern *debug-lines* object) ;; unknown type +;;(define-extern *debug-lines-trk* object) ;; unknown type +(define-extern add-debug-spheres function) +(define-extern debug-percent-bar function) +(define-extern history-draw-and-update function) +(define-extern add-debug-light function) +(define-extern add-debug-point function) +(define-extern debug-reset-buffers function) +(define-extern debug-pad-display function) +;;(define-extern *debug-text-3ds* object) ;; unknown type +(define-extern internal-draw-debug-line function) +;;(define-extern debug-text-3d object) ;; unknown type +(define-extern add-debug-circle function) +(define-extern add-debug-sphere-with-transform function) +;;(define-extern *debug-text-3d-trk* object) ;; unknown type +(define-extern add-debug-rot-matrix function) +(define-extern add-debug-lights function) +(define-extern drawable-frag-count function) +(define-extern get-debug-text-3d function) +(define-extern add-debug-arc function) +(define-extern add-debug-triangle-normal function) +(define-extern add-debug-yrot-vector function) +(define-extern dma-timeout-cam function) +(define-extern add-debug-box function) +(define-extern add-debug-flat-triangle function) +(define-extern get-debug-line function) +(define-extern add-debug-line2d function) +;;(define-extern menu object) ;; unknown type +;;(define-extern fade-depth object) ;; unknown type +;;(define-extern fade object) ;; unknown type +(define-extern draw-string function) +(define-extern debug-set-camera-pos-rot! function) +;;(define-extern merc-vu1-block object) ;; unknown type +(define-extern setup-blerc-chains-for-one-fragment function) +(define-extern dma-from-spr function) +;;(define-extern blerc-block object) ;; unknown type +(define-extern blerc-a-fragment function) +(define-extern merc-blend-shape function) +(define-extern setup-blerc-chains function) +(define-extern blerc-execute function) +;;(define-extern *stats-blerc* object) ;; unknown type +(define-extern blerc-stats-init function) +;;(define-extern blerc-globals object) ;; unknown type +(define-extern merc-dma-chain-to-spr function) +(define-extern blerc-init function) +;;(define-extern blerc-block-header object) ;; unknown type +;;(define-extern blerc-dcache object) ;; unknown type +;;(define-extern blerc-context object) ;; unknown type +;;(define-extern *blerc-globals* object) ;; unknown type +(define-extern merc-edge-stats function) +;;(define-extern *merc-ctrl-header* object) ;; unknown type +(define-extern merc-vu1-initialize-chain function) +(define-extern merc-vu1-add-vu-function function) +(define-extern merc-vu1-init-buffers function) +(define-extern merc-vu1-init-buffer function) +(define-extern merc-stats function) +(define-extern merc-stats-display function) +(define-extern get-eye-block function) +(define-extern ripple-execute-init function) +;;(define-extern *ripple-globals* object) ;; unknown type +(define-extern ripple-slow-add-sine-waves function) +;;(define-extern ripple-request object) ;; unknown type +(define-extern ripple-apply-wave-table function) +(define-extern ripple-find-height function) +(define-extern ripple-matrix-scale function) +(define-extern ripple-add-debug-sphere function) +(define-extern ripple-execute function) +(define-extern ripple-update-waveform-offs function) +(define-extern ripple-create-wave-table function) +(define-extern ripple-make-request function) +;;(define-extern ripple-globals object) ;; unknown type +(define-extern dump-qword function) +(define-extern bones-reset-sqwc function) +;;(define-extern bone-calculation-list object) ;; unknown type +;;(define-extern *use-generic* object) ;; unknown type +(define-extern bone-list-init function) +(define-extern draw-bones-check-longest-edge function) +(define-extern texscroll-execute function) +(define-extern bones-init function) +;;(define-extern merc-effect-bucket-info object) ;; unknown type +;;(define-extern *default-shadow-settings* object) ;; unknown type +;;(define-extern *merc-bucket-info* object) ;; unknown type +;;(define-extern *bone-calculation-list* object) ;; unknown type +(define-extern bones-set-sqwc function) +;;(define-extern *bones-first* object) ;; unknown type +(define-extern draw-bones-mtx-calc function) +(define-extern draw-bones-generic-merc function) +(define-extern draw-bones function) +;;(define-extern merc-bucket-info object) ;; unknown type +;;(define-extern *merc-global-array* object) ;; unknown type +(define-extern draw-bones-merc function) +;;(define-extern bones-vu0-block object) ;; unknown type +(define-extern texscroll-make-request function) +(define-extern draw-bones-check-longest-edge-asm function) +(define-extern bones-mtx-calc-execute function) +;;(define-extern *texscroll-globals* object) ;; unknown type +(define-extern bones-mtx-calc function) +(define-extern bones-debug function) +(define-extern dump-bone-mem function) +(define-extern draw-bones-hud function) +(define-extern bones-wrapup function) +;;(define-extern bone-calculation object) ;; unknown type +(define-extern draw-bones-shadow function) +;;(define-extern texscroll-globals object) ;; unknown type +(define-extern dump-mem function) +(define-extern paused? function) +;;(define-extern death-end object) ;; unknown type +;;(define-extern generic-vu0-block object) ;; unknown type +(define-extern generic-sink function) +;;(define-extern *generic-foreground-sinks* object) ;; unknown type +(define-extern generic-dma-foreground-sink-init function) +(define-extern generic-init-buffers function) +(define-extern generic-init-buf function) +(define-extern generic-reset-buffers function) +(define-extern generic-setup-constants function) +(define-extern generic-add-constants function) +;;(define-extern generic-vu1-block object) ;; unknown type +(define-extern generic-envmap-dproc function) +;;(define-extern *generic-consts* object) ;; unknown type +(define-extern generic-post-debug function) +(define-extern generic-light-proc function) +(define-extern generic-envmap-only-proc function) +(define-extern generic-envmap-proc function) +(define-extern generic-no-light-dproc function) +(define-extern generic-initialize-without-sink function) +(define-extern generic-debug-light-proc function) +(define-extern generic-dma-from-spr function) +(define-extern generic-wrapup function) +(define-extern generic-prepare-dma-single function) +(define-extern generic-no-light-proc function) +(define-extern generic-initialize function) +(define-extern generic-none-dma-wait function) +(define-extern generic-none function) +(define-extern generic-no-light function) +(define-extern upload-vu0-program function) +(define-extern generic-no-light-dproc-only function) +(define-extern generic-light function) +(define-extern generic-no-light+envmap function) +(define-extern generic-copy-vtx-dclr-dtex function) +(define-extern generic-interp-dproc function) +;;(define-extern *target-lock* object) ;; unknown type +(define-extern generic-prepare-dma-double function) +(define-extern generic-upload-vu0 function) +(define-extern generic-work-init function) +;;(define-extern *generic-envmap-texture* object) ;; unknown type +(define-extern mercneric-shader-asm function) +;;(define-extern *inv-init-table* object) ;; unknown type +(define-extern mercneric-bittable-asm function) +(define-extern high-speed-reject function) +(define-extern generic-merc-execute-asm function) +(define-extern generic-merc-execute-all function) +(define-extern generic-merc-add-to-cue function) +;;(define-extern mercneric-vu0-block object) ;; unknown type +;;(define-extern invinitdata object) ;; unknown type +(define-extern generic-merc-init-asm function) +(define-extern mercneric-matrix-asm function) +(define-extern mercneric-convert function) +(define-extern merc-death-spawn function) +(define-extern generic-tie-decompress function) +(define-extern generic-tie-dma-to-spad-sync function) +(define-extern generic-tie-display-stats function) +(define-extern generic-tie-execute function) +(define-extern generic-tie-convert-proc function) +(define-extern generic-tie-convert function) +(define-extern generic-tie-debug function) +(define-extern generic-tie-upload-next function) +(define-extern generic-tie-dma-to-spad function) +;;(define-extern *generic-tie* object) ;; unknown type +;;(define-extern shadow-vu0-block object) ;; unknown type +(define-extern shadow-init-vars function) +(define-extern shadow-add-double-edges function) +(define-extern shadow-calc-dual-verts function) +(define-extern shadow-add-double-tris function) +(define-extern shadow-execute-all function) +(define-extern shadow-find-facing-double-tris function) +(define-extern shadow-find-single-edges function) +;;(define-extern *shadow-data* object) ;; unknown type +;;(define-extern shadow-dcache object) ;; unknown type +(define-extern shadow-dma-end function) +(define-extern shadow-find-facing-single-tris function) +(define-extern shadow-execute function) +(define-extern shadow-vu0-upload function) +(define-extern shadow-add-single-edges function) +(define-extern shadow-dma-init function) +(define-extern shadow-scissor-edges function) +(define-extern shadow-add-verts function) +(define-extern shadow-xform-verts function) +;;(define-extern shadow-stats object) ;; unknown type +(define-extern shadow-find-double-edges function) +(define-extern shadow-scissor-top function) +(define-extern shadow-add-facing-single-tris function) +(define-extern shadow-vu1-init-buffer function) +;;(define-extern *shadow-vu1-tri-template* object) ;; unknown type +;;(define-extern shadow-vu1-constants object) ;; unknown type +;;(define-extern shadow-vu1-gifbuf-template object) ;; unknown type +(define-extern shadow-vu1-add-constants function) +(define-extern shadow-vu1-add-matrix function) +;;(define-extern shadow-vu1-block object) ;; unknown type +(define-extern depth-cue-draw-depth function) +(define-extern depth-cue-calc-z function) +(define-extern depth-cue-draw-front function) +;;(define-extern *depth-cue-work* object) ;; unknown type +(define-extern depth-cue function) +(define-extern depth-cue-set-stencil function) +(define-extern draw-string-adv function) +(define-extern get-string-length function) +;;(define-extern *font24-table* object) ;; unknown type +;;(define-extern *font12-table* object) ;; unknown type +;;(define-extern huf-dictionary-node object) ;; unknown type +(define-extern unpack-comp-huf function) +(define-extern unpack-comp-rle function) +;;(define-extern loading object) ;; unknown type +(define-extern upload-vis-bits function) +;;(define-extern background-vu0-block object) ;; unknown type +;;(define-extern *background-work* object) ;; unknown type +(define-extern background-upload-vu0 function) +(define-extern init-background function) +(define-extern finish-background function) +(define-extern draw-drawable-tree-ice-tfrag function) +(define-extern tie-near-make-perspective-matrix function) +(define-extern draw-drawable-tree-tfrag function) +;;(define-extern *instance-tie-work* object) ;; unknown type +(define-extern draw-drawable-tree-instance-shrub function) +(define-extern draw-drawable-tree-dirt-tfrag function) +(define-extern time-of-day-interp-colors-scratch function) +(define-extern draw-drawable-tree-instance-tie function) +;;(define-extern *instance-shrub-work* object) ;; unknown type +(define-extern time-of-day-interp-colors function) +(define-extern draw-drawable-tree-trans-tfrag function) +(define-extern draw-node-cull function) +(define-extern collide-cache-using-y-probe-test function) +(define-extern collide-cache-using-line-sphere-test function) +(define-extern collide-cache-using-box-test function) +(define-extern shrub-init-view-data function) +(define-extern shrub-upload-view-data function) +(define-extern mem-usage-shrub-walk function) +(define-extern shrub-upload-model function) +(define-extern shrub-make-perspective-matrix function) +(define-extern draw-prototype-inline-array-shrub function) +(define-extern shrub-time function) +;;(define-extern shrub-vu1-block object) ;; unknown type +(define-extern shrub-do-init-frame function) +(define-extern shrub-num-tris function) +(define-extern draw-inline-array-instance-shrub function) +(define-extern test-func function) +(define-extern shrub-upload-test function) +(define-extern shrub-init-frame function) +(define-extern upload-generic-shrub function) +(define-extern tfrag-details function) +(define-extern clip-restore function) +;;(define-extern tnear-vu1-block object) ;; unknown type +(define-extern draw-inline-array-tfrag-near function) +(define-extern tfrag-end-buffer function) +(define-extern tfrag-near-end-buffer function) +(define-extern add-tfrag-mtx-0 function) +(define-extern tfrag-init-buffer function) +(define-extern draw-inline-array-tfrag function) +;;(define-extern t-stat object) ;; unknown type +(define-extern tfrag-data-setup function) +(define-extern tfrag-near-init-buffer function) +;;(define-extern tfrag-vu1-block object) ;; unknown type +(define-extern tfrag-print-stats function) +(define-extern stats-tfrag-asm function) +(define-extern add-tfrag-data function) +;;(define-extern *tfrag-display-stats* object) ;; unknown type +(define-extern add-tfrag-mtx-1 function) +(define-extern edge-debug-lines function) +(define-extern vis-cull function) +;;(define-extern tie-vu1-block object) ;; unknown type +(define-extern tie-end-buffer function) +(define-extern tie-init-consts function) +(define-extern tie-float-reg function) +(define-extern tie-int-reg function) +(define-extern tie-ints function) +(define-extern tie-floats function) +;;(define-extern tie-consts object) ;; unknown type +(define-extern tie-init-engine function) +(define-extern tie-near-end-buffer function) +(define-extern tie-near-int-reg function) +;;(define-extern tie-near-vu1-block object) ;; unknown type +;;(define-extern tie-near-consts object) ;; unknown type +(define-extern tie-near-init-consts function) +(define-extern tie-near-init-engine function) +(define-extern tie-near-float-reg function) +;;(define-extern *prototype-tie-work* object) ;; unknown type +(define-extern draw-inline-array-prototype-tie-near-asm function) +(define-extern tie-test-cam-restore function) +(define-extern tie-debug-between function) +(define-extern tie-init-buffers function) +;;(define-extern *tie* object) ;; unknown type +;;(define-extern *pke-hack* object) ;; unknown type +(define-extern draw-inline-array-instance-tie function) +(define-extern draw-inline-array-prototype-tie-generic-asm function) +(define-extern tie-debug-one function) +(define-extern draw-inline-array-prototype-tie-asm function) +(define-extern walk-tie-generic-prototypes function) +;;(define-extern tie-instance-debug object) ;; unknown type +;;(define-extern set-fov object) ;; unknown type +;;(define-extern sync object) ;; unknown type +;;(define-extern *part-group-id-table* object) ;; unknown type +(define-extern lookup-part-group-pointer-by-name function) +(define-extern sp-rotate-system function) +(define-extern sp-launch-particles-death function) +;;(define-extern *sp-launch-queue* object) ;; unknown type +;;(define-extern *death-adgif* object) ;; unknown type +;;(define-extern sp-queued-launch-particles object) ;; unknown type +(define-extern unlink-part-group-by-heap function) +(define-extern sp-adjust-launch function) +(define-extern sp-clear-queue function) +(define-extern sp-queue-launch function) +(define-extern sp-relaunch-setup-fields function) +(define-extern sp-relaunch-particle-2d function) +(define-extern birth-func-copy-omega-to-z function) +(define-extern sparticle-track-root-prim function) +(define-extern particle-setup-adgif function) +;;(define-extern *sp-launcher-lock* object) ;; unknown type +(define-extern birth-func-copy-rot-color function) +;;(define-extern *part-id-table* object) ;; unknown type +;;(define-extern *particle-adgif-cache* object) ;; unknown type +;;(define-extern *global-toggle* object) ;; unknown type +(define-extern sp-launch-particles-var function) +;;(define-extern sparticle-birthinfo object) ;; unknown type +;;(define-extern *sp-launcher-enable* object) ;; unknown type +;;(define-extern particle-adgif-cache object) ;; unknown type +(define-extern birth-func-random-next-time function) +;;(define-extern *particle-300hz-timer* object) ;; unknown type +;;(define-extern sp-launch-queue object) ;; unknown type +(define-extern sp-euler-convert function) +(define-extern lookup-part-group-by-name function) +(define-extern particle-adgif function) +(define-extern sp-relaunch-particle-3d function) +(define-extern birth-func-copy2-rot-color function) +(define-extern sp-init-fields! function) +(define-extern sparticle-track-root function) +(define-extern sp-get-particle function) +;;(define-extern *sp-particle-system-2d* object) ;; unknown type +;;(define-extern *sp-particle-system-3d* object) ;; unknown type +(define-extern sphere-in-view-frustum? function) +(define-extern kill-all-particles-with-key function) +;;(define-extern *time-of-day-proc* object) ;; unknown type +(define-extern forall-particles-runner function) +(define-extern sp-process-block-2d function) +(define-extern sp-process-block-3d function) +(define-extern sp-copy-to-spr function) +(define-extern forall-particles function) +(define-extern sp-process-particle-system function) +(define-extern sparticle-kill-it-level1 function) +(define-extern sp-particle-copy! function) +(define-extern sp-copy-from-spr function) +(define-extern sp-get-approx-alloc-size function) +(define-extern forall-particles-with-key function) +(define-extern sparticle-kill-it-level0 function) +(define-extern sparticle-60-to-50 function) +(define-extern sp-get-block-size function) +(define-extern set-particle-frame-time function) +(define-extern all-particles-60-to-50 function) +(define-extern forall-particles-with-key-runner function) +(define-extern sparticle-kill-it function) +(define-extern kill-all-particles-in-level function) +(define-extern process-particles function) +(define-extern sparticle-50-to-60 function) +(define-extern sp-orbiter function) +(define-extern sp-free-particle function) +(define-extern memcpy function) +;;(define-extern *particles-flag* object) ;; unknown type +(define-extern all-particles-50-to-60 function) +(define-extern sp-kill-particle function) +(define-extern sp-process-block function) +(define-extern entity-info-lookup function) +;;(define-extern *entity-info* object) ;; unknown type +(define-extern crate type) +(define-extern bucket type) +(define-extern money type) +(define-extern springbox type) +(define-extern assistant-levitator type) +(define-extern buzzer type) +(define-extern fuel-cell type) +(define-extern ecovent type) +(define-extern water-vol type) +(define-extern sage-finalboss type) +(define-extern babak type) +(define-extern orb-cache-top type) +(define-extern target-start type) +(define-extern racer type) +(define-extern robotboss type) +(define-extern launcher type) +(define-extern eco type) +(define-extern pickup-spawner type) +(define-extern barrel type) +(define-extern ja-abort-spooled-anim function) +(define-extern art-group-load-check function) +(define-extern art-load function) +;;(define-extern *art-control* object) ;; unknown type +(define-extern ja-play-spooled-anim function) +;;(define-extern *preload-spool-anims* object) ;; unknown type +(define-extern drawable-load function) +;;(define-extern spooling object) ;; unknown type +(define-extern ja-channel-set! function) +(define-extern ja-channel-push! function) +;;(define-extern die object) ;; unknown type +;;(define-extern pending object) ;; unknown type +(define-extern kill-current-level-hint function) +;;(define-extern loaded object) ;; unknown type +;;(define-extern *stack-top* object) ;; unknown type +(define-extern ja-aframe-num function) +;;(define-extern locked object) ;; unknown type +;;(define-extern *load-state* object) ;; unknown type +(define-extern level-hint-surpress! function) +;;(define-extern link object) ;; unknown type +(define-extern task-cstage type) +;;(define-extern ambient-control object) ;; unknown type +;;(define-extern process-taskable object) ;; unknown type +(define-extern task-control type) +;;(define-extern *default-continue* object) ;; unknown type +(define-extern game-task->string function) +(define-extern trsq->continue-point function) +;;(define-extern load object) ;; unknown type +;;(define-extern game-task object) ;; unknown type +;;(define-extern allow-pause object) ;; unknown type +;;(define-extern reset-collide object) ;; unknown type +(define-extern get-game-count function) +;;(define-extern powerup object) ;; unknown type +;;(define-extern eco-blue object) ;; unknown type +;;(define-extern try object) ;; unknown type +;;(define-extern effect object) ;; unknown type +;;(define-extern vent object) ;; unknown type +(define-extern level-hint-spawn function) +(define-extern reset-all-hint-controls function) +;;(define-extern query object) ;; unknown type +;;(define-extern *level-task-data-remap* object) ;; unknown type +;;(define-extern exit object) ;; unknown type +(define-extern close-specific-task! function) +(define-extern touch-tracker-init function) +(define-extern position-in-front-of-camera! function) +;;(define-extern reset object) ;; unknown type +;;(define-extern *level-load-list* object) ;; unknown type +;;(define-extern life object) ;; unknown type +;;(define-extern *spawn-actors* object) ;; unknown type +;;(define-extern eco-pill object) ;; unknown type +(define-extern activate-orb-all function) +;;(define-extern eval object) ;; unknown type +;;(define-extern event object) ;; unknown type +;;(define-extern health object) ;; unknown type +(define-extern set-master-mode function) +;;(define-extern allow-progress object) ;; unknown type +(define-extern set-blackout-frames function) +(define-extern reset-actors function) +(define-extern get-task-control function) +;;(define-extern *kernel-boot-message* object) ;; unknown type +(define-extern play function) +(define-extern stop function) +(define-extern auto-save-check function) +;;(define-extern auto-save object) ;; unknown type +;;(define-extern game-save-tag object) ;; unknown type +(define-extern game-save-elt->string function) +(define-extern auto-save-command function) +;;(define-extern *auto-save-info* object) ;; unknown type +(define-extern auto-save-init-by-other function) +;;(define-extern game-save object) ;; unknown type +(define-extern auto-save-post function) +(define-extern progress-level-index->string function) +;;(define-extern read object) ;; unknown type +;;(define-extern mc-load object) ;; unknown type +;;(define-extern set object) ;; unknown type +;;(define-extern save object) ;; unknown type +;;(define-extern restore object) ;; unknown type +;;(define-extern mc-unformat object) ;; unknown type +(define-extern lookup-level-info function) +;;(define-extern done object) ;; unknown type +(define-extern get-aspect-ratio function) +(define-extern progress-allowed? function) +;;(define-extern *level-task-data* object) ;; unknown type +;;(define-extern format-card object) ;; unknown type +;;(define-extern training object) ;; unknown type +;;(define-extern mc-format object) ;; unknown type +(define-extern get-task-status function) +;;(define-extern create-file object) ;; unknown type +;;(define-extern process-mask object) ;; unknown type +;;(define-extern notify object) ;; unknown type +;;(define-extern unformat-card object) ;; unknown type +;;(define-extern mc-create-file object) ;; unknown type +;;(define-extern get-heap object) ;; unknown type +;;(define-extern mc-save object) ;; unknown type +(define-extern print-game-text function) +;;(define-extern scf-get-time object) ;; unknown type +(define-extern calculate-completion function) +;;(define-extern save-last object) ;; unknown type +;;(define-extern aspect16x9 object) ;; unknown type +;;(define-extern get-card object) ;; unknown type +;;(define-extern scf-get-language object) ;; unknown type +;;(define-extern scf-get-aspect object) ;; unknown type +;;(define-extern *boot-video-mode* object) ;; unknown type +;;(define-extern scf-get-volume object) ;; unknown type +;;(define-extern language object) ;; unknown type +;;(define-extern talking object) ;; unknown type +;;(define-extern hint object) ;; unknown type +(define-extern set-video-mode function) +;;(define-extern bg-a object) ;; unknown type +;;(define-extern bg-b object) ;; unknown type +;;(define-extern near object) ;; unknown type +;;(define-extern mid object) ;; unknown type +;;(define-extern rel object) ;; unknown type +;;(define-extern music object) ;; unknown type +;;(define-extern allow-look-around object) ;; unknown type +;;(define-extern sfx-volume-movie object) ;; unknown type +;;(define-extern bg-a-speed object) ;; unknown type +;;(define-extern sound-flava object) ;; unknown type +;;(define-extern ocean-off object) ;; unknown type +;;(define-extern common-page object) ;; unknown type +;;(define-extern ambient-volume-movie object) ;; unknown type +;;(define-extern dialog-volume-hint object) ;; unknown type +;;(define-extern movie object) ;; unknown type +;;(define-extern bg-a-force object) ;; unknown type +;;(define-extern bg-g object) ;; unknown type +;;(define-extern border-mode object) ;; unknown type +;;(define-extern bg-r object) ;; unknown type +;;(define-extern vibration object) ;; unknown type +;;(define-extern dialog-volume object) ;; unknown type +;;(define-extern ambient object) ;; unknown type +;;(define-extern play-hints object) ;; unknown type +;;(define-extern music-volume-movie object) ;; unknown type +(define-extern set-aspect-ratio function) +;;(define-extern *rolling-mood* object) ;; unknown type +;;(define-extern *misty-mood* object) ;; unknown type +;;(define-extern *ogre-mood-fog-table* object) ;; unknown type +;;(define-extern *citadel-mood-sun-table* object) ;; unknown type +;;(define-extern *lavatube-mood-lights-table* object) ;; unknown type +;;(define-extern *citadel-mood* object) ;; unknown type +;;(define-extern *swamp-mood-fog-table* object) ;; unknown type +;;(define-extern *firecanyon-mood-lights-table* object) ;; unknown type +;;(define-extern *sunken-mood-lights-table* object) ;; unknown type +;;(define-extern *training-mood-fog-table* object) ;; unknown type +;;(define-extern *ogre3-mood-fog-table* object) ;; unknown type +;;(define-extern *swamp-mood-sun-table* object) ;; unknown type +;;(define-extern *ogre2-mood-lights-table* object) ;; unknown type +;;(define-extern *finalboss-interp-table* object) ;; unknown type +;;(define-extern *firecanyon-mood-sun-table* object) ;; unknown type +;;(define-extern *firecanyon-mood-fog-table* object) ;; unknown type +;;(define-extern *darkcave-mood-fog-table* object) ;; unknown type +;;(define-extern *village1-mood* object) ;; unknown type +;;(define-extern *maincave-mood-fog-table* object) ;; unknown type +;;(define-extern *jungleb-mood-sun-table* object) ;; unknown type +;;(define-extern *village1-mood-sun-table* object) ;; unknown type +;;(define-extern *lavatube-mood-sun-table* object) ;; unknown type +;;(define-extern *village3-mood-fog-table* object) ;; unknown type +;;(define-extern *village1-mood-lights-table* object) ;; unknown type +;;(define-extern *rolling-mood-sun-table* object) ;; unknown type +;;(define-extern *ogre2-mood* object) ;; unknown type +;;(define-extern *lavatube-mood* object) ;; unknown type +;;(define-extern *misty-mood-fog-table* object) ;; unknown type +;;(define-extern *darkcave-mood-lights-table* object) ;; unknown type +;;(define-extern *maincave-mood-lights-table* object) ;; unknown type +(define-extern make-rolling-light-kit function) +;;(define-extern *jungleb-mood* object) ;; unknown type +;;(define-extern *default-interp-table* object) ;; unknown type +;;(define-extern *misty-mood-sun-table* object) ;; unknown type +;;(define-extern *village1-mood-fog-table* object) ;; unknown type +;;(define-extern *village1-palette-interp-table* object) ;; unknown type +;;(define-extern *robocave-mood* object) ;; unknown type +(define-extern make-village3-light-kit function) +;;(define-extern *sunken-mood-sun-table* object) ;; unknown type +;;(define-extern *village2-sky-texture-table* object) ;; unknown type +;;(define-extern *default-mood* object) ;; unknown type +;;(define-extern *snow-mood* object) ;; unknown type +;;(define-extern *sunkenb-mood* object) ;; unknown type +;;(define-extern *sunken-mood* object) ;; unknown type +;;(define-extern *jungle-mood* object) ;; unknown type +(define-extern update-mood-erase-color function) +(define-extern make-village1-light-kit function) +;;(define-extern *snow-mood-sun-table* object) ;; unknown type +;;(define-extern *citadel-mood-lights-table* object) ;; unknown type +;;(define-extern *finalboss-mood* object) ;; unknown type +;;(define-extern *firecanyon-palette-interp-table* object) ;; unknown type +(define-extern update-mood-erase-color2 function) +;;(define-extern *snow-mood-lights-table* object) ;; unknown type +;;(define-extern *maincave-mood* object) ;; unknown type +;;(define-extern *village2-mood* object) ;; unknown type +;;(define-extern *darkcave-mood* object) ;; unknown type +;;(define-extern *village3-mood* object) ;; unknown type +;;(define-extern *swamp-mood-lights-table* object) ;; unknown type +;;(define-extern *village2-mood-lights-table* object) ;; unknown type +;;(define-extern *village2-mood-sun-table* object) ;; unknown type +;;(define-extern *village3-mood-lights-table* object) ;; unknown type +;;(define-extern *ogre3-mood-lights-table* object) ;; unknown type +;;(define-extern *rolling-mood-lights-table* object) ;; unknown type +;;(define-extern *finalboss2-mood* object) ;; unknown type +;;(define-extern *rolling-palette-interp-table* object) ;; unknown type +;;(define-extern *beach-mood* object) ;; unknown type +;;(define-extern *ogre-mood* object) ;; unknown type +(define-extern update-mood-shadow-direction function) +(define-extern make-light-kit function) +;;(define-extern *jungleb-mood-lights-table* object) ;; unknown type +;;(define-extern *village2-mood-fog-table* object) ;; unknown type +;;(define-extern *swamp-mood* object) ;; unknown type +;;(define-extern *firecanyon-mood* object) ;; unknown type +;;(define-extern *lavatube-mood-fog-table* object) ;; unknown type +;;(define-extern *ogre-mood-lights-table* object) ;; unknown type +(define-extern make-village2-light-kit function) +;;(define-extern *misty-mood-lights-table* object) ;; unknown type +;;(define-extern *ogre3-mood* object) ;; unknown type +;;(define-extern *citadel-mood-fog-table* object) ;; unknown type +;;(define-extern *sunken-mood-fog-table* object) ;; unknown type +(define-extern make-misty-light-kit function) +;;(define-extern *snow-mood-fog-table* object) ;; unknown type +;;(define-extern *jungleb-mood-fog-table* object) ;; unknown type +;;(define-extern *misty-palette-interp-table* object) ;; unknown type +;;(define-extern *rolling-mood-fog-table* object) ;; unknown type +;;(define-extern *training-mood* object) ;; unknown type +;;(define-extern *finalboss-mood-fog-table* object) ;; unknown type +;;(define-extern *darkcave-mood-sun-table* object) ;; unknown type +;;(define-extern *maincave-mood-sun-table* object) ;; unknown type +;;(define-extern *robocave-mood-fog-table* object) ;; unknown type +;;(define-extern *finalboss-mood-sun-table* object) ;; unknown type +;;(define-extern *flash0* object) ;; unknown type +;;(define-extern *lava-time* object) ;; unknown type +;;(define-extern ogre-states object) ;; unknown type +(define-extern update-mood-robocave function) +(define-extern update-mood-maincave function) +(define-extern update-mood-citadel function) +;;(define-extern flames-state object) ;; unknown type +(define-extern update-mood-fog function) +;;(define-extern rolling-states object) ;; unknown type +(define-extern update-mood-prt-color function) +;;(define-extern *flash4* object) ;; unknown type +;;(define-extern robocave-states object) ;; unknown type +;;(define-extern lavatube-states object) ;; unknown type +(define-extern update-mood-rolling function) +;;(define-extern *rolling-spheres-on* object) ;; unknown type +(define-extern update-mood-village1 function) +;;(define-extern lightning-state object) ;; unknown type +;;(define-extern *flash3* object) ;; unknown type +;;(define-extern *rolling-spheres-light0* object) ;; unknown type +;;(define-extern *lightning-index* object) ;; unknown type +;;(define-extern finalboss-states object) ;; unknown type +(define-extern update-mood-village3 function) +;;(define-extern citadel-states object) ;; unknown type +(define-extern update-mood-snow function) +;;(define-extern maincave-states object) ;; unknown type +(define-extern update-mood-flames function) +(define-extern update-mood-default function) +(define-extern update-light-kit function) +(define-extern clear-mood-times function) +(define-extern update-mood-misty function) +;;(define-extern *rolling-spheres-light4* object) ;; unknown type +;;(define-extern *rolling-spheres-light3* object) ;; unknown type +(define-extern update-mood-ogre function) +;;(define-extern *thunder-id* object) ;; unknown type +(define-extern update-mood-lavatube function) +(define-extern update-mood-firecanyon function) +(define-extern update-mood-itimes function) +;;(define-extern *flash7* object) ;; unknown type +;;(define-extern *thunder-id1* object) ;; unknown type +;;(define-extern *lightning-frame-done* object) ;; unknown type +(define-extern update-mood-lightning function) +;;(define-extern *flash2* object) ;; unknown type +(define-extern update-mood-jungleb-blue function) +(define-extern update-mood-darkcave function) +;;(define-extern snow-states object) ;; unknown type +(define-extern update-mood-jungle function) +;;(define-extern lava-state object) ;; unknown type +(define-extern update-mood-sky-texture function) +(define-extern update-mood-training function) +(define-extern update-mood-palette function) +;;(define-extern training-states object) ;; unknown type +(define-extern update-mood-swamp function) +(define-extern update-mood-lava function) +(define-extern update-mood-jungleb function) +(define-extern update-mood-light function) +;;(define-extern light-time-state object) ;; unknown type +(define-extern update-mood-sunken function) +;;(define-extern *lightning-time* object) ;; unknown type +;;(define-extern *lightning-realtime-done* object) ;; unknown type +;;(define-extern *flash6* object) ;; unknown type +(define-extern update-mood-village2 function) +;;(define-extern *thunder-id0* object) ;; unknown type +;;(define-extern *rolling-spheres-light1* object) ;; unknown type +;;(define-extern *thunder-count* object) ;; unknown type +;;(define-extern *flash1* object) ;; unknown type +;;(define-extern swamp-village2-states object) ;; unknown type +;;(define-extern *lightning-time2* object) ;; unknown type +(define-extern update-mood-caustics function) +;;(define-extern sunken-states object) ;; unknown type +;;(define-extern firecanyon-states object) ;; unknown type +(define-extern update-mood-interp function) +;;(define-extern village1-states object) ;; unknown type +(define-extern set-target-light-index function) +;;(define-extern village3-states object) ;; unknown type +(define-extern update-mood-finalboss function) +;;(define-extern misty-states object) ;; unknown type +;;(define-extern *thunder-id2* object) ;; unknown type +;;(define-extern light-state object) ;; unknown type +(define-extern update-mood-quick function) +;;(define-extern jungle-states object) ;; unknown type +;;(define-extern *rolling-spheres-light2* object) ;; unknown type +;;(define-extern *flash5* object) ;; unknown type +(define-extern target-joint-pos function) +;;(define-extern target-continue object) ;; unknown type +(define-extern update-snow function) +;;(define-extern group-rain-screend-drop object) ;; unknown type +(define-extern check-drop-level-rain function) +(define-extern cam-master-effect function) +(define-extern update-rain function) +(define-extern sparticle-track-sun function) +;;(define-extern part-water-drip object) ;; unknown type +(define-extern matrix-local->world function) +;;(define-extern time-of-day-effect object) ;; unknown type +(define-extern init-time-of-day function) +(define-extern init-time-of-day-context function) +;;(define-extern time-of-day-tick object) ;; unknown type +(define-extern set-time-of-day function) +(define-extern update-time-of-day function) +(define-extern start-time-of-day function) +(define-extern time-of-day-setup function) +(define-extern time-of-day-update function) +(define-extern update-sky-tng-data function) +;;(define-extern sky-base-polygons object) ;; unknown type +(define-extern make-sky-textures function) +;;(define-extern sunken object) ;; unknown type +(define-extern sky-set-orbit function) +(define-extern sky-set-sun-colors-sun function) +(define-extern sky-set-sun-colors-halo function) +(define-extern sky-set-sun-radii function) +(define-extern sky-set-sun-colors function) +(define-extern sky-set-sun-colors-aurora function) +(define-extern sky-make-sun-data function) +;;(define-extern sky-frame-data object) ;; unknown type +;;(define-extern sky-vu1-block object) ;; unknown type +(define-extern sky-init-upload-data function) +(define-extern sky-upload function) +(define-extern sky-draw function) +(define-extern sky-add-frame-data function) +(define-extern sky-make-light function) +(define-extern sky-make-moon-data function) +(define-extern clip-polygon-against-negative-hyperplane function) +(define-extern render-sky-tng function) +(define-extern init-sky-tng-data function) +;;(define-extern sky-cloud-polygons object) ;; unknown type +(define-extern sky-tng-setup-cloud-layer function) +(define-extern copy-cloud-texture function) +;;(define-extern sky-cloud-polygon-indices object) ;; unknown type +(define-extern clip-polygon-against-positive-hyperplane function) +(define-extern sky-duplicate-polys function) +(define-extern sky-tng-setup-clouds function) +(define-extern init-sky-regs function) +;;(define-extern sky-roof-polygons object) ;; unknown type +(define-extern render-sky-tri function) +;;(define-extern *sky-work* object) ;; unknown type +(define-extern copy-sky-texture function) +(define-extern close-sky-buffer function) +(define-extern set-tex-offset function) +(define-extern draw-large-polygon function) +;;(define-extern *sky-tng-data* object) ;; unknown type +(define-extern render-sky-quad function) +;;(define-extern load-boundary object) ;; unknown type +;;(define-extern lbvtx object) ;; unknown type +;;(define-extern *load-boundary-list* object) ;; unknown type +;;(define-extern load-boundary-crossing-command object) ;; unknown type +;;(define-extern *load-boundary-target* object) ;; unknown type +(define-extern edit-load-boundaries function) +(define-extern fix-boundary-normals function) +(define-extern lb-set-player function) +(define-extern save-boundary-cmd function) +(define-extern command-get-int function) +(define-extern check-boundary function) +(define-extern load-state-want-vis function) +(define-extern add-boundary-shader function) +(define-extern load-state-want-levels function) +(define-extern lb-add-vtx-before function) +(define-extern draw-boundary-polygon function) +(define-extern load-boundary-from-template function) +(define-extern ---lb-save function) +(define-extern command-get-time function) +(define-extern format-boundary-cmd function) +(define-extern command-get-quoted-param function) +(define-extern copy-load-command! function) +(define-extern lb-add-load-plane function) +(define-extern triangulate-boundary function) +(define-extern render-boundaries function) +(define-extern replace-load-boundary function) +;;(define-extern *boundary-polygon* object) ;; unknown type +(define-extern command-get-float function) +(define-extern lb-set-camera function) +(define-extern draw-boundary-cap function) +(define-extern lb-add function) +(define-extern load-state-want-display-level function) +(define-extern render-boundary function) +(define-extern init-boundary-regs function) +(define-extern lb-del function) +(define-extern render-boundary-quad function) +(define-extern lb-flip function) +;;(define-extern lb-editor-parms object) ;; unknown type +;;(define-extern *triangulation-buffer* object) ;; unknown type +(define-extern check-open-boundary function) +(define-extern point-in-polygon function) +;;(define-extern *display-load-commands* object) ;; unknown type +(define-extern copy-load-boundary! function) +(define-extern render-boundary-tri function) +(define-extern command-list-get-process function) +(define-extern lb-del-vtx function) +(define-extern lb-add-load function) +(define-extern try-corner function) +(define-extern lb-add-plane function) +;;(define-extern *lb-editor-parms* object) ;; unknown type +(define-extern find-bounding-circle function) +(define-extern check-closed-boundary function) +(define-extern command-get-param function) +(define-extern draw-boundary-side function) +(define-extern lb-add-vtx-after function) +;;(define-extern *backup-load-state* object) ;; unknown type +(define-extern load-state-want-force-vis function) +(define-extern boundary-set-color function) +(define-extern split-monotone-polygon function) +(define-extern lb-copy function) +(define-extern ambient-hint-spawn function) +;;(define-extern shadow object) ;; unknown type +;;(define-extern special object) ;; unknown type +;;(define-extern want-force-inside object) ;; unknown type +;;(define-extern alive object) ;; unknown type +;;(define-extern self object) ;; unknown type +(define-extern process-by-ename function) +;;(define-extern set! object) ;; unknown type +;;(define-extern quote object) ;; unknown type +;;(define-extern teleport object) ;; unknown type +;;(define-extern deg object) ;; unknown type +;;(define-extern want-force-vis object) ;; unknown type +;;(define-extern static-vectorm object) ;; unknown type +(define-extern blackout function) +;;(define-extern setting-unset object) ;; unknown type +;;(define-extern parent object) ;; unknown type +;;(define-extern send-event object) ;; unknown type +;;(define-extern display-level object) ;; unknown type +;;(define-extern seconds object) ;; unknown type +;;(define-extern want-levels object) ;; unknown type +;;(define-extern kill object) ;; unknown type +(define-extern part-tracker-init function) +;;(define-extern time-of-day object) ;; unknown type +;;(define-extern want-vis object) ;; unknown type +;;(define-extern setting-reset object) ;; unknown type +;;(define-extern meters object) ;; unknown type +(define-extern entity-birth-no-kill function) +;;(define-extern *static-load-boundary-list* object) ;; unknown type +;;(define-extern swa object) ;; unknown type +;;(define-extern jub object) ;; unknown type +;;(define-extern fic object) ;; unknown type +;;(define-extern rob object) ;; unknown type +;;(define-extern sno object) ;; unknown type +;;(define-extern sub object) ;; unknown type +;;(define-extern dar object) ;; unknown type +;;(define-extern vi1 object) ;; unknown type +;;(define-extern ogr object) ;; unknown type +;;(define-extern vi2 object) ;; unknown type +;;(define-extern rol object) ;; unknown type +;;(define-extern cit object) ;; unknown type +;;(define-extern darkcave object) ;; unknown type +;;(define-extern bea object) ;; unknown type +;;(define-extern vi3 object) ;; unknown type +;;(define-extern fin object) ;; unknown type +;;(define-extern display-no-wait object) ;; unknown type +;;(define-extern sunkenb object) ;; unknown type +;;(define-extern jun object) ;; unknown type +;;(define-extern special-vis object) ;; unknown type +;;(define-extern robocave object) ;; unknown type +;;(define-extern mai object) ;; unknown type +;;(define-extern lav object) ;; unknown type +;;(define-extern sun object) ;; unknown type +;;(define-extern title object) ;; unknown type +;;(define-extern demo object) ;; unknown type +;;(define-extern default-level object) ;; unknown type +;;(define-extern intro object) ;; unknown type +;;(define-extern halfpipe object) ;; unknown type +;;(define-extern none object) ;; unknown type +;;(define-extern robocave-vis object) ;; unknown type +;;(define-extern tra object) ;; unknown type +;;(define-extern default-level-vis object) ;; unknown type +;;(define-extern lavatube-vis object) ;; unknown type +;;(define-extern maincave-vis object) ;; unknown type +;;(define-extern beach-vis object) ;; unknown type +;;(define-extern jungleb-vis object) ;; unknown type +;;(define-extern sunkenb-vis object) ;; unknown type +;;(define-extern mis object) ;; unknown type +;;(define-extern halfpipe-vis object) ;; unknown type +;;(define-extern ogre-vis object) ;; unknown type +;;(define-extern village3-vis object) ;; unknown type +;;(define-extern int object) ;; unknown type +;;(define-extern swamp-vis object) ;; unknown type +;;(define-extern tit object) ;; unknown type +;;(define-extern rolling-vis object) ;; unknown type +;;(define-extern firecanyon-vis object) ;; unknown type +;;(define-extern snow-vis object) ;; unknown type +;;(define-extern village2-vis object) ;; unknown type +;;(define-extern citadel-vis object) ;; unknown type +;;(define-extern misty-vis object) ;; unknown type +;;(define-extern dem object) ;; unknown type +;;(define-extern jungle-vis object) ;; unknown type +;;(define-extern sunken-vis object) ;; unknown type +;;(define-extern village1-vis object) ;; unknown type +;;(define-extern darkcave-vis object) ;; unknown type +;;(define-extern demo-vis object) ;; unknown type +;;(define-extern finalboss-vis object) ;; unknown type +;;(define-extern intro-vis object) ;; unknown type +;;(define-extern title-vis object) ;; unknown type +;;(define-extern training-vis object) ;; unknown type +(define-extern show-level function) +(define-extern bg function) +;;(define-extern *login-state* object) ;; unknown type +(define-extern load-vis-info function) +(define-extern level-update-after-load function) +(define-extern update-sound-banks function) +(define-extern remap-level-name function) +(define-extern add-bsp-drawable function) +;;(define-extern *print-login* object) ;; unknown type +;;(define-extern link-resume object) ;; unknown type +;;(define-extern display-self object) ;; unknown type +;;(define-extern loading-done object) ;; unknown type +;;(define-extern login object) ;; unknown type +;;(define-extern loading-bt object) ;; unknown type +;;(define-extern level-activate object) ;; unknown type +;;(define-extern unload object) ;; unknown type +;;(define-extern debug-boot object) ;; unknown type +(define-extern on function) +;;(define-extern level-deactivate object) ;; unknown type +(define-extern enable-level-text-file-loading function) +;;(define-extern text-is-loading object) ;; unknown type +(define-extern load-game-text-info function) +(define-extern load-level-text-files function) +(define-extern disable-level-text-file-loading function) +;;(define-extern *level-text-file-load-flag* object) ;; unknown type +;;(define-extern *game-text-word* object) ;; unknown type +(define-extern print-game-text-scaled function) +(define-extern set-font-color-alpha function) +;;(define-extern *game-text-line* object) ;; unknown type +(define-extern draw-debug-text-box function) +;;(define-extern scf-get-territory object) ;; unknown type +(define-extern probe-traverse-inline-array-node function) +(define-extern collide-upload-vu0 function) +(define-extern collide-probe-instance-tie-collide-frags function) +(define-extern misty-ambush-height-probe function) +(define-extern indent-to function) +(define-extern interpolate function) +(define-extern probe-traverse-collide-fragment function) +(define-extern pke-collide-test function) +;;(define-extern *collide-probe-stack* object) ;; unknown type +(define-extern misty-ambush-height function) +(define-extern collide-probe-make-list function) +(define-extern probe-traverse-draw-node function) +(define-extern collide-probe-collide-fragment-tree-make-list function) +(define-extern creates-new-method? function) +(define-extern collide-probe-instance-tie-tree-make-list function) +(define-extern collide-probe-instance-tie function) +(define-extern describe-methods function) +;;(define-extern collide-probe-stack-elem object) ;; unknown type +(define-extern collide-probe-node function) +;;(define-extern collide-probe-stack object) ;; unknown type +(define-extern print-out function) +(define-extern distc function) +(define-extern overrides-parent-method? function) +;;(define-extern collide-vu0-block object) ;; unknown type +(define-extern sphere-cull function) +;;(define-extern oot-work object) ;; unknown type +;;(define-extern spat-work object) ;; unknown type +;;(define-extern sopt-work object) ;; unknown type +;;(define-extern add-prims-touching-work object) ;; unknown type +;;(define-extern pbhp-stack-vars object) ;; unknown type +;;(define-extern *rotate-surface* object) ;; unknown type +;;(define-extern *no-walk-surface* object) ;; unknown type +;;(define-extern edge-grabbed object) ;; unknown type +;;(define-extern target-edge-grab-jump object) ;; unknown type +(define-extern target-attack-up function) +(define-extern debug-report-col-stats function) +(define-extern find-ground-point function) +;;(define-extern *frame-timer* object) ;; unknown type +;;(define-extern *col-timer-enable* object) ;; unknown type +(define-extern collide-shape-draw-debug-marks function) +;;(define-extern *col-timer* object) ;; unknown type +(define-extern simple-collision-reaction function) +(define-extern default-collision-reaction function) +;;(define-extern shove object) ;; unknown type +;;(define-extern collide-mesh-group object) ;; unknown type +;;(define-extern *race-track-surface* object) ;; unknown type +;;(define-extern attack-invinc object) ;; unknown type +;;(define-extern burnup object) ;; unknown type +;;(define-extern deadlyup object) ;; unknown type +;;(define-extern up object) ;; unknown type +;;(define-extern attack-or-shove object) ;; unknown type +;;(define-extern endlessfall object) ;; unknown type +;;(define-extern burn object) ;; unknown type +;;(define-extern deadly object) ;; unknown type +;;(define-extern melt object) ;; unknown type +;;(define-extern ridden object) ;; unknown type +;;(define-extern rotate-y-angle object) ;; unknown type +;;(define-extern *collide-vif0-init* object) ;; unknown type +(define-extern collide-planes-intersect function) +(define-extern collide-planes-test1 function) +(define-extern collide-planes-test0 function) +(define-extern collide-planes function) +(define-extern camera-bounding-box-draw function) +(define-extern camera-cross function) +;;(define-extern death-warp-in object) ;; unknown type +(define-extern death-info type) +;;(define-extern death-warp-out object) ;; unknown type +(define-extern birth-func-death-sparks function) +;;(define-extern death-default object) ;; unknown type +;;(define-extern death-beach-puppy object) ;; unknown type +;;(define-extern *merc-death-globals* object) ;; unknown type +;;(define-extern death-jungle-snake object) ;; unknown type +;;(define-extern warpgate-tele object) ;; unknown type +;;(define-extern temp-enemy-die object) ;; unknown type +;;(define-extern water-control object) ;; unknown type +(define-extern cam-state-from-entity function) +(define-extern parameter-ease-sqrt-clamp function) +(define-extern third-power function) +(define-extern parameter-ease-clamp function) +(define-extern cam-slave-get-float function) +(define-extern fourth-power function) +(define-extern cam-slave-init function) +(define-extern cam-standard-event-handler function) +(define-extern cam-slave-get-vector-with-offset function) +(define-extern vector-into-frustum-nosmooth! function) +(define-extern cam-slave-get-interp-time function) +(define-extern parameter-ease-none function) +(define-extern parameter-ease-sqr-clamp function) +(define-extern cam-curve-pos function) +(define-extern parameter-ease-sin-clamp function) +(define-extern slave-set-rotation! function) +(define-extern cam-slave-get-rot function) +(define-extern slave-matrix-blend-2 function) +(define-extern mat-remove-z-rot function) +(define-extern cam-slave-get-fov function) +(define-extern cam-calc-follow! function) +(define-extern v-slrp3! function) +(define-extern cam-slave-get-intro-step function) +(define-extern cam-curve-setup function) +(define-extern cam-slave-get-flags function) +(define-extern cam-slave-init-vars function) +(define-extern v-slrp2! function) +;;(define-extern *cam-res-string* object) ;; unknown type +(define-extern cam-slave-go function) +(define-extern parameter-ease-lerp-clamp function) +;;(define-extern cam-standoff-read-entity object) ;; unknown type +;;(define-extern -offset object) ;; unknown type +;;(define-extern cam-spline object) ;; unknown type +;;(define-extern change-state-no-go object) ;; unknown type +;;(define-extern slave-option? object) ;; unknown type +;;(define-extern pivot object) ;; unknown type +;;(define-extern target-swim-up object) ;; unknown type +;;(define-extern campoints object) ;; unknown type +;;(define-extern *camera-base-mode* object) ;; unknown type +;;(define-extern slave-activated object) ;; unknown type +;;(define-extern campath object) ;; unknown type +;;(define-extern cam-circular object) ;; unknown type +;;(define-extern point-of-interest object) ;; unknown type +;;(define-extern -off object) ;; unknown type +(define-extern camera-slave-debug function) +;;(define-extern cam-fixed-read-entity object) ;; unknown type +;;(define-extern interpTime object) ;; unknown type +;;(define-extern cam-voicebox object) ;; unknown type +;;(define-extern campath-k object) ;; unknown type +;;(define-extern change-state object) ;; unknown type +;;(define-extern intro-exitValue object) ;; unknown type +;;(define-extern intro-k object) ;; unknown type +;;(define-extern fov object) ;; unknown type +;;(define-extern -on object) ;; unknown type +;;(define-extern stringMaxLength object) ;; unknown type +;;(define-extern align object) ;; unknown type +(define-extern camera-line-rel-len function) +;;(define-extern intro-time object) ;; unknown type +;;(define-extern go object) ;; unknown type +(define-extern camera-teleport-to-entity function) +;;(define-extern *camera-dummy-vector* object) ;; unknown type +(define-extern matrix-world->local function) +(define-extern camera-angle function) +;;(define-extern teleport-to-transformq object) ;; unknown type +(define-extern master-track-target function) +(define-extern in-cam-entity-volume? function) +(define-extern master-switch-to-entity function) +(define-extern cam-master-init function) +(define-extern reset-target-tracking function) +(define-extern master-unset-region function) +(define-extern reset-drawable-tracking function) +(define-extern master-is-hopeful-better? function) +;;(define-extern list-keeper object) ;; unknown type +;;(define-extern cam-master-active object) ;; unknown type +(define-extern reset-follow function) +(define-extern master-check-regions function) +(define-extern master-base-region function) +(define-extern list-keeper-init function) +;;(define-extern list-keeper-active object) ;; unknown type +(define-extern camera-master-bank type) +(define-extern setup-slave-for-hopefull function) +;;(define-extern *CAMERA_MASTER-bank* object) ;; unknown type +(define-extern reset-drawable-follow function) +;;(define-extern cam-fixed object) ;; unknown type +;;(define-extern flags object) ;; unknown type +;;(define-extern query-state object) ;; unknown type +;;(define-extern stringCliffHeight object) ;; unknown type +;;(define-extern teleport-to-other-start-string object) ;; unknown type +;;(define-extern teleport-to-vector-start-string object) ;; unknown type +;;(define-extern yes-follow object) ;; unknown type +;;(define-extern cam-eye object) ;; unknown type +;;(define-extern toggle-slave-option object) ;; unknown type +;;(define-extern copy-tracking object) ;; unknown type +;;(define-extern damp-up object) ;; unknown type +;;(define-extern no-follow object) ;; unknown type +;;(define-extern set-slave-option object) ;; unknown type +;;(define-extern query-fov object) ;; unknown type +;;(define-extern intro-done? object) ;; unknown type +;;(define-extern pvol object) ;; unknown type +;;(define-extern reset-root object) ;; unknown type +;;(define-extern stringMaxHeight object) ;; unknown type +;;(define-extern start-tracking object) ;; unknown type +;;(define-extern no-intro object) ;; unknown type +;;(define-extern stringMinHeight object) ;; unknown type +;;(define-extern cam-string object) ;; unknown type +;;(define-extern cutoutvol object) ;; unknown type +;;(define-extern change-target-bone object) ;; unknown type +(define-extern target-cam-pos function) +;;(define-extern set-interpolation object) ;; unknown type +;;(define-extern force-blend object) ;; unknown type +;;(define-extern stop-tracking object) ;; unknown type +;;(define-extern cam-stick object) ;; unknown type +;;(define-extern clear-entity object) ;; unknown type +;;(define-extern alternates object) ;; unknown type +;;(define-extern tiltAdjust object) ;; unknown type +;;(define-extern blend-from-as-fixed object) ;; unknown type +;;(define-extern change-pov object) ;; unknown type +;;(define-extern dist-from-interp-dest object) ;; unknown type +;;(define-extern change-target object) ;; unknown type +;;(define-extern cam-free-floating object) ;; unknown type +;;(define-extern change-to-entity-by-name object) ;; unknown type +;;(define-extern cam-decel object) ;; unknown type +;;(define-extern vol object) ;; unknown type +;;(define-extern ease-in object) ;; unknown type +;;(define-extern name object) ;; unknown type +;;(define-extern interesting object) ;; unknown type +;;(define-extern clear-slave-option object) ;; unknown type +(define-extern camera-master-debug function) +;;(define-extern stringMinLength object) ;; unknown type +;;(define-extern dist-from-interp-src object) ;; unknown type +(define-extern cam-dist-analog-input function) +(define-extern cam-draw-collide-cache function) +(define-extern cam-calc-bike-follow! function) +(define-extern cam-circular-position function) +(define-extern dist-info-append function) +(define-extern cam-string-bank type) +(define-extern string-push-help function) +;;(define-extern cam-endlessfall object) ;; unknown type +(define-extern cam-string-find-hidden function) +;;(define-extern *CAM_BIKE-bank* object) ;; unknown type +(define-extern cam-string-joystick function) +(define-extern cam-stick-bank type) +(define-extern cam-stick-code function) +;;(define-extern cam-lookat object) ;; unknown type +(define-extern cam-string-line-of-sight function) +(define-extern dist-info-init function) +(define-extern cam-string-move function) +(define-extern cam-billy-bank type) +;;(define-extern *CAM_STICK-bank* object) ;; unknown type +(define-extern cam-bike-code function) +(define-extern dist-info-print function) +(define-extern cam-los-setup-lateral function) +;;(define-extern *CAM_BILLY-bank* object) ;; unknown type +(define-extern set-string-parms function) +;;(define-extern los-dist object) ;; unknown type +;;(define-extern cam-standoff object) ;; unknown type +(define-extern dist-info-valid? function) +(define-extern cam-string-follow function) +;;(define-extern collide-los-dist-info object) ;; unknown type +;;(define-extern cam-bike object) ;; unknown type +;;(define-extern cam-pov-track object) ;; unknown type +;;(define-extern cam-billy object) ;; unknown type +;;(define-extern cam-pov object) ;; unknown type +(define-extern cam-circular-position-into-max-angle function) +(define-extern cam-string-find-position-rel! function) +(define-extern cam-bike-bank type) +(define-extern cam-string-set-position-rel! function) +;;(define-extern *CAM_EYE-bank* object) ;; unknown type +;;(define-extern *CAM_STRING-bank* object) ;; unknown type +;;(define-extern collide-los-result object) ;; unknown type +(define-extern los-cw-ccw function) +(define-extern cam-string-code function) +(define-extern cam-circular-code function) +(define-extern cam-los-spline-collide function) +(define-extern cam-los-collide function) +(define-extern cam-standoff-calc-trans function) +(define-extern cam-eye-bank type) +;;(define-extern cam-pov180 object) ;; unknown type +;;(define-extern focalPull object) ;; unknown type +;;(define-extern focalpull object) ;; unknown type +;;(define-extern set-dist object) ;; unknown type +(define-extern cam-debug-reset-coll-tri function) +;;(define-extern normal object) ;; unknown type +(define-extern cam-debug-add-los-tri function) +(define-extern slave-los-state->string function) +;;(define-extern end-mode object) ;; unknown type +;;(define-extern outro-done object) ;; unknown type +;;(define-extern blocked-side? object) ;; unknown type +;;(define-extern spline-offset object) ;; unknown type +;;(define-extern spline-follow-dist object) ;; unknown type +;;(define-extern joystick object) ;; unknown type +;;(define-extern set-standoff-dist object) ;; unknown type +;;(define-extern maxAngle object) ;; unknown type +;;(define-extern set-standoff-height object) ;; unknown type +(define-extern cam-collision-record-save function) +;;(define-extern no-hit object) ;; unknown type +(define-extern CAM_ORBIT-bank type) +;;(define-extern camera-orbit-info object) ;; unknown type +;;(define-extern camera-free-floating-move-info object) ;; unknown type +;;(define-extern *CAM_ORBIT-bank* object) ;; unknown type +;;(define-extern cam-point-watch object) ;; unknown type +;;(define-extern *CAM_FREE-bank* object) ;; unknown type +;;(define-extern cam-orbit object) ;; unknown type +(define-extern cam-point-watch-bank type) +;;(define-extern *CAM_POINT_WATCH-bank* object) ;; unknown type +(define-extern cam-free-floating-move function) +(define-extern cam-free-bank type) +(define-extern cam-free-floating-input function) +;;(define-extern *camera-orbit-info* object) ;; unknown type +(define-extern cam-combiner-init function) +;;(define-extern cam-combiner-active object) ;; unknown type +;;(define-extern *timer-value* object) ;; unknown type +;;(define-extern *start-timer* object) ;; unknown type +;;(define-extern *save-camera-inv-rot* object) ;; unknown type +(define-extern plane-from-points function) +(define-extern update-camera function) +(define-extern update-view-planes function) +(define-extern set-point function) +(define-extern move-camera-from-pad function) +;;(define-extern *start-pos* object) ;; unknown type +;;(define-extern *update-leaf-when-outside-bsp* object) ;; unknown type +(define-extern update-visible function) +;;(define-extern pause object) ;; unknown type +;;(define-extern pad-1 object) ;; unknown type +;;(define-extern pad-0 object) ;; unknown type +;;(define-extern vol-control object) ;; unknown type +;;(define-extern plane-volume object) ;; unknown type +(define-extern cam-layout-do-menu function) +;;(define-extern *clm-intro-attr* object) ;; unknown type +;;(define-extern *volume-descriptor* object) ;; unknown type +;;(define-extern *volume-normal-current* object) ;; unknown type +(define-extern cam-layout-save-fov function) +(define-extern clmf-save-one function) +(define-extern cam-layout-init function) +;;(define-extern *clm* object) ;; unknown type +(define-extern clmf-cam-deg function) +(define-extern clmf-cam-fov function) +(define-extern cam-layout-entity-volume-info function) +(define-extern clm-item type) +(define-extern clmf-to-focalpull-attr function) +(define-extern cam-layout-save-align function) +(define-extern clm-list-item type) +(define-extern cam-layout-bank type) +(define-extern v-slrp! function) +;;(define-extern *volume-point* object) ;; unknown type +(define-extern clmf-to-edit-cam function) +(define-extern clmf-look-through function) +;;(define-extern *volume-point-current* object) ;; unknown type +(define-extern clmf-save-all function) +(define-extern cam-layout-save-interptime function) +(define-extern cam-layout-start function) +(define-extern cam-layout-save-tiltAdjust function) +(define-extern clmf-to-index-attr function) +(define-extern clmf-cam-float-adjust function) +;;(define-extern clmf-cam-flag-toggle-info object) ;; unknown type +;;(define-extern *clm-cam-lookthrough* object) ;; unknown type +;;(define-extern *camera-layout-blink* object) ;; unknown type +(define-extern cam-layout-save-splineoffset function) +(define-extern clmf-cam-string function) +;;(define-extern *clm-edit* object) ;; unknown type +(define-extern cam-layout-function-call function) +;;(define-extern cam-layout object) ;; unknown type +(define-extern clmf-to-select function) +;;(define-extern *clm-focalpull-attr* object) ;; unknown type +(define-extern clmf-cam-intro-time function) +(define-extern clm-basic type) +(define-extern clmf-save-single function) +(define-extern cam-layout-entity-volume-info-create function) +(define-extern clmf-cam-flag function) +(define-extern cam-layout-restart function) +(define-extern clmf-next-vol-dpad function) +;;(define-extern *clm-cam-attr* object) ;; unknown type +(define-extern cam-layout-save-interesting function) +(define-extern cam-layout-save-stringMinLength function) +(define-extern cam-layout-do-action function) +;;(define-extern *clm-vol-attr* object) ;; unknown type +(define-extern clmf-implement function) +(define-extern cam-layout-intersect-dist function) +(define-extern fov->maya function) +;;(define-extern *volume-normal* object) ;; unknown type +(define-extern clmf-cam-float function) +(define-extern cam-layout-save-flags function) +;;(define-extern cam-layout-active object) ;; unknown type +(define-extern cam-layout-save-introsplinetime function) +(define-extern cam-layout-save-focalpull function) +;;(define-extern *camera-layout-message-ypos* object) ;; unknown type +(define-extern cam-layout-save-focalpull-flags function) +(define-extern cam-layout-save-stringCliffHeight function) +(define-extern clmf-to-spline-attr function) +;;(define-extern *clm-spline-attr* object) ;; unknown type +(define-extern clmf-bna function) +;;(define-extern volume-descriptor-array object) ;; unknown type +(define-extern clmf-input function) +;;(define-extern *clm-select* object) ;; unknown type +(define-extern cam-layout-save-stringMinHeight function) +(define-extern cam-layout-save-cam-rot function) +(define-extern clmf-cam-interp-time function) +(define-extern clmf-to-intro-attr function) +(define-extern cam-layout-save-campoints-flags function) +(define-extern clmf-to-vol-attr function) +(define-extern cam-layout-stop function) +(define-extern cam-layout-save-pivot function) +;;(define-extern *clm-save-one* object) ;; unknown type +(define-extern cam-layout-save-stringMaxHeight function) +(define-extern cam-layout-save-campointsoffset function) +(define-extern clm type) +(define-extern cam-layout-save-introsplineexitval function) +(define-extern interp-test-deg function) +;;(define-extern *clm-save-all* object) ;; unknown type +(define-extern cam-layout-save-maxAngle function) +;;(define-extern *CAM_LAYOUT-bank* object) ;; unknown type +(define-extern clmf-to-edit function) +;;(define-extern *clm-index-attr* object) ;; unknown type +(define-extern cam-layout-save-stringMaxLength function) +(define-extern clmf-cam-flag-toggle function) +(define-extern cam-layout-save-cam-trans function) +(define-extern clmf-next-volume function) +(define-extern clmf-button-test function) +(define-extern cam-layout-save-spline-follow-dist-offset function) +(define-extern clmf-pos-rot function) +(define-extern cam-layout-entity-info function) +(define-extern cam-layout-print function) +;;(define-extern *volume-descriptor-current* object) ;; unknown type +(define-extern clm-item-action type) +(define-extern clmf-cam-meters function) +(define-extern clm-list type) +;;(define-extern interp-test-info object) ;; unknown type +;;(define-extern *last-cur-entity* object) ;; unknown type +(define-extern clmf-next-entity function) +(define-extern interp-test function) +;;(define-extern index object) ;; unknown type +;;(define-extern interpTime-offset object) ;; unknown type +;;(define-extern campoints-offset object) ;; unknown type +;;(define-extern interesting-offset object) ;; unknown type +;;(define-extern stringCliffHeight-offset object) ;; unknown type +(define-extern camera-line-draw function) +;;(define-extern volume object) ;; unknown type +(define-extern camera-fov-frame function) +;;(define-extern cutoutvol-flags object) ;; unknown type +;;(define-extern spline object) ;; unknown type +;;(define-extern stringMinLength-offset object) ;; unknown type +;;(define-extern translation_info object) ;; unknown type +(define-extern camera-line-setup function) +;;(define-extern rot-offset object) ;; unknown type +(define-extern cam-slave-options->string function) +;;(define-extern x object) ;; unknown type +;;(define-extern stringMinHeight-offset object) ;; unknown type +;;(define-extern vol-flags object) ;; unknown type +;;(define-extern spline-follow-dist-offset object) ;; unknown type +;;(define-extern circle object) ;; unknown type +;;(define-extern intro-time-offset object) ;; unknown type +;;(define-extern fov-offset object) ;; unknown type +;;(define-extern right object) ;; unknown type +;;(define-extern triangle object) ;; unknown type +;;(define-extern focalpull-flags object) ;; unknown type +;;(define-extern intro-exitValue-offset object) ;; unknown type +;;(define-extern pivot-offset object) ;; unknown type +;;(define-extern campoints-flags object) ;; unknown type +;;(define-extern tiltAdjust-offset object) ;; unknown type +;;(define-extern l2 object) ;; unknown type +;;(define-extern r2 object) ;; unknown type +(define-extern cam-index-options->string function) +;;(define-extern down object) ;; unknown type +;;(define-extern square object) ;; unknown type +;;(define-extern trans-offset object) ;; unknown type +;;(define-extern align-offset object) ;; unknown type +;;(define-extern left object) ;; unknown type +;;(define-extern stringMaxHeight-offset object) ;; unknown type +;;(define-extern stringMaxLength-offset object) ;; unknown type +;;(define-extern pvol-flags object) ;; unknown type +;;(define-extern maxAngle-offset object) ;; unknown type +;;(define-extern focalPull-offset object) ;; unknown type +(define-extern cam-debug-draw-tris function) +(define-extern bike-cam-limit function) +;;(define-extern *cam-debug-los-tri* object) ;; unknown type +;;(define-extern *camera-old-vu* object) ;; unknown type +;;(define-extern *camera-old-level* object) ;; unknown type +;;(define-extern cam-collision-record-array object) ;; unknown type +(define-extern cam-collision-record-draw function) +;;(define-extern *cam-debug-coll-tri-current* object) ;; unknown type +;;(define-extern *camera-old-cpu* object) ;; unknown type +(define-extern camera-sphere function) +;;(define-extern *cam-collision-record* object) ;; unknown type +;;(define-extern *cam-debug-coll-tri* object) ;; unknown type +;;(define-extern *cam-collision-record-last* object) ;; unknown type +(define-extern cam-line-dma function) +(define-extern cam-collision-record-step function) +(define-extern camera-plot-float-func function) +(define-extern external-cam-reset! function) +(define-extern camera-fov-draw function) +;;(define-extern cam-debug-tri object) ;; unknown type +(define-extern debug-euler function) +;;(define-extern *camera-old-stat-string-tfrag-near* object) ;; unknown type +;;(define-extern *cam-debug-los-tri-current* object) ;; unknown type +(define-extern camera-line-rel function) +;;(define-extern cam-dbg-scratch object) ;; unknown type +;;(define-extern *camera-old-stat-string-total* object) ;; unknown type +;;(define-extern *camera-old-stat-string-tfrag* object) ;; unknown type +(define-extern master-draw-coordinates function) +;;(define-extern *cam-collision-record-show* object) ;; unknown type +(define-extern cam-debug-add-coll-tri function) +;;(define-extern cam-collision-record object) ;; unknown type +;;(define-extern *camera-old-tfrag-bytes* object) ;; unknown type +(define-extern camera-line2d function) +;;(define-extern *cam-collision-record-first* object) ;; unknown type +(define-extern cam-stop function) +(define-extern cam-start function) +(define-extern reset-cameras function) +(define-extern process-drawable-valid? function) +(define-extern anim-loop function) +(define-extern fill-skeleton-cache function) +(define-extern ja-post function) +;;(define-extern *valid-con* object) ;; unknown type +(define-extern ja-max? function) +(define-extern ja-frame-num function) +(define-extern ja-done? function) +(define-extern process-drawable-birth-fuel-cell function) +(define-extern make-nodes-from-jg function) +(define-extern ja-blend-eval function) +(define-extern draw-joint-spheres function) +;;(define-extern process-drawable-idle object) ;; unknown type +(define-extern ja-aframe function) +(define-extern rider-trans function) +(define-extern cspace-children function) +(define-extern cspace-inspect-tree function) +(define-extern rider-post function) +(define-extern ja-num-frames function) +(define-extern process-drawable-delay-player function) +(define-extern ja-group-size function) +(define-extern pusher-post function) +(define-extern execute-math-engine function) +;;(define-extern *default-skel-template* object) ;; unknown type +(define-extern ja-eval function) +(define-extern vector<-cspace+vector! function) +(define-extern process-drawable-fuel-cell-handler function) +(define-extern ja-speed function) +(define-extern ja-min? function) +(define-extern ja-step function) +(define-extern transform-post function) +;;(define-extern *debug-vertex-stats* object) ;; unknown type +;;(define-extern drawable-vertex-ratio object) ;; unknown type +;;(define-extern drawable-tri-count object) ;; unknown type +;;(define-extern mesh object) ;; unknown type +;;(define-extern pickup object) ;; unknown type +(define-extern dma-add-process-drawable function) +;;(define-extern shadow-mask object) ;; unknown type +;;(define-extern texture-bucket object) ;; unknown type +;;(define-extern vis-dist object) ;; unknown type +;;(define-extern root object) ;; unknown type +(define-extern add-process-drawable function) +(define-extern process-release? function) +(define-extern merc-eye-anim function) +;;(define-extern joint-channel object) ;; unknown type +(define-extern process-grab? function) +;;(define-extern prejoint object) ;; unknown type +;;(define-extern lod-dist object) ;; unknown type +(define-extern process-entity-status! function) +(define-extern birth-pickup-at-point function) +;;(define-extern light-index object) ;; unknown type +(define-extern can-hint-be-played? function) +(define-extern update-task-hints function) +(define-extern increment-success-for-hint function) +(define-extern start-hint-timer function) +(define-extern find-hint-control-index function) +;;(define-extern *hint-semaphore* object) ;; unknown type +(define-extern ambient-type-sound function) +(define-extern level-hint-init-by-other function) +(define-extern ambient-inspect function) +(define-extern ambient-type-ocean-off function) +(define-extern ambient-type-sound-loop function) +(define-extern ambient-type-dark function) +(define-extern ambient-type-weather-off function) +;;(define-extern *execute-ambients* object) ;; unknown type +;;(define-extern level-hint-sidekick object) ;; unknown type +;;(define-extern level-hint-exit object) ;; unknown type +;;(define-extern level-hint-normal object) ;; unknown type +;;(define-extern level-hint-error object) ;; unknown type +;;(define-extern level-hint-ambient-sound object) ;; unknown type +(define-extern ambient-hint-init-by-other function) +(define-extern ambient-type-poi function) +(define-extern level-hint-process-cmd function) +(define-extern ambient-type-music function) +(define-extern level-hint-displayed? function) +(define-extern ambient-type-light function) +(define-extern ambient-type-error function) +(define-extern ambient-type-hint function) +(define-extern level-hint-task-process function) +(define-extern ambient-type-ocean-near-off function) +(define-extern can-grab-display? function) +;;(define-extern sound object) ;; unknown type +;;(define-extern poi object) ;; unknown type +;;(define-extern ocean-near-off object) ;; unknown type +;;(define-extern dark object) ;; unknown type +;;(define-extern entity-meters object) ;; unknown type +;;(define-extern weather-off object) ;; unknown type +;;(define-extern text-id object) ;; unknown type +;;(define-extern loc-name-id object) ;; unknown type +(define-extern voicebox-spawn function) +;;(define-extern flava object) ;; unknown type +(define-extern hide-bottom-hud function) +;;(define-extern play-mode object) ;; unknown type +;;(define-extern cmds object) ;; unknown type +;;(define-extern voicebox object) ;; unknown type +(define-extern task-known? function) +;;(define-extern stinger object) ;; unknown type +;;(define-extern look-around object) ;; unknown type +;;(define-extern target-look-around object) ;; unknown type +;;(define-extern priority object) ;; unknown type +(define-extern bottom-hud-hidden? function) +(define-extern __assert-min-max-range-float function) +(define-extern __assert-zero-lim-range-int function) +(define-extern __assert function) +;;(define-extern *run-time-assert-enable* object) ;; unknown type +(define-extern __assert-min-max-range-int function) +;;(define-extern launcher-active object) ;; unknown type +(define-extern command-get-process function) +(define-extern ja-anim-done? function) +;;(define-extern cam-launcher-longfall object) ;; unknown type +;;(define-extern launcher-idle object) ;; unknown type +;;(define-extern manipy-idle object) ;; unknown type +(define-extern process-drawable-pair-random-point! function) +(define-extern camera-change-to function) +(define-extern draw-eco-beam function) +(define-extern command-get-camera function) +(define-extern birth-func-set-quat function) +(define-extern cam-launcher-long-joystick function) +;;(define-extern swingpole-stance object) ;; unknown type +;;(define-extern launcher-deactivated object) ;; unknown type +;;(define-extern *particle-quat* object) ;; unknown type +;;(define-extern med-res-level-idle object) ;; unknown type +(define-extern manipy-init function) +;;(define-extern *lev-string* object) ;; unknown type +(define-extern camera-anim function) +(define-extern cam-launcher-joystick function) +;;(define-extern part-tracker-process object) ;; unknown type +;;(define-extern camera-tracker-process object) ;; unknown type +(define-extern launcher-init-by-other function) +(define-extern camera-tracker-init function) +;;(define-extern swingpole-active object) ;; unknown type +;;(define-extern touch-tracker-idle object) ;; unknown type +(define-extern process-drawable-random-point! function) +(define-extern camera-pov-from function) +;;(define-extern part-spawner-active object) ;; unknown type +(define-extern camera-start type) +(define-extern med-res-level type) +(define-extern command-get-trans function) +(define-extern part-tracker-notify function) +;;(define-extern cam-launcher-shortfall object) ;; unknown type +(define-extern clone-anim-once function) +(define-extern clone-anim function) +(define-extern camera-look-at function) +;;(define-extern wait object) ;; unknown type +;;(define-extern loop object) ;; unknown type +;;(define-extern max-vis-dist object) ;; unknown type +;;(define-extern look-at object) ;; unknown type +;;(define-extern play1 object) ;; unknown type +;;(define-extern clone-parent object) ;; unknown type +;;(define-extern art-name object) ;; unknown type +;;(define-extern fixed object) ;; unknown type +;;(define-extern spring-height object) ;; unknown type +;;(define-extern beach-part-grotto-1 object) ;; unknown type +(define-extern hide-hud-quick function) +;;(define-extern release object) ;; unknown type +;;(define-extern rot-quat object) ;; unknown type +;;(define-extern until object) ;; unknown type +;;(define-extern while object) ;; unknown type +;;(define-extern mode object) ;; unknown type +(define-extern process-drawable-from-entity! function) +;;(define-extern event-hook object) ;; unknown type +;;(define-extern work-set! object) ;; unknown type +;;(define-extern instant-death object) ;; unknown type +(define-extern convert-to-hud-object function) +;;(define-extern alive? object) ;; unknown type +;;(define-extern copy-parent object) ;; unknown type +;;(define-extern message? object) ;; unknown type +;;(define-extern wait-for object) ;; unknown type +;;(define-extern trans-hook object) ;; unknown type +;;(define-extern pole-grab object) ;; unknown type +;;(define-extern target-grab object) ;; unknown type +;;(define-extern mask object) ;; unknown type +;;(define-extern alt-vector object) ;; unknown type +;;(define-extern anim-mode object) ;; unknown type +;;(define-extern work object) ;; unknown type +;;(define-extern still object) ;; unknown type +;;(define-extern blend-shape object) ;; unknown type +;;(define-extern clone-copy-trans object) ;; unknown type +;;(define-extern not object) ;; unknown type +;;(define-extern set-frame-num object) ;; unknown type +;;(define-extern null object) ;; unknown type +;;(define-extern target-launch object) ;; unknown type +;;(define-extern post-hook object) ;; unknown type +;;(define-extern origin-joint-index object) ;; unknown type +;;(define-extern suspend object) ;; unknown type +;;(define-extern center-joint object) ;; unknown type +;;(define-extern launch object) ;; unknown type +;;(define-extern pov object) ;; unknown type +;;(define-extern change-mode object) ;; unknown type +;;(define-extern become-hud-object object) ;; unknown type +;;(define-extern touched object) ;; unknown type +;;(define-extern border object) ;; unknown type +;;(define-extern anim object) ;; unknown type +;;(define-extern attackable object) ;; unknown type +(define-extern line-in-view-frustum? function) +;;(define-extern message object) ;; unknown type +;;(define-extern touch object) ;; unknown type +;;(define-extern *target-shadow-control* object) ;; unknown type +(define-extern ground-tween-initialize function) +(define-extern can-hands? function) +(define-extern can-exit-duck? function) +(define-extern target-start-attack function) +(define-extern set-side-vel function) +(define-extern ground-tween-update function) +(define-extern can-play-stance-amibent? function) +(define-extern fall-test function) +(define-extern slide-down-test function) +(define-extern vector-local+! function) +(define-extern target-height-above-ground function) +(define-extern target-bank type) +(define-extern can-duck? function) +(define-extern target-collide-set! function) +(define-extern target-timed-invulnerable-off function) +(define-extern target-danger-set! function) +(define-extern set-forward-vel function) +(define-extern average-turn-angle function) +(define-extern delete-back-vel function) +(define-extern move-legs? function) +(define-extern smack-surface? function) +(define-extern can-feet? function) +;;(define-extern *jchar-sg* object) ;; unknown type +(define-extern can-jump? function) +(define-extern target-timed-invulnerable function) +(define-extern move-forward function) +(define-extern target-rot function) +(define-extern target-align-vel-z-adjust function) +(define-extern can-wheel? function) +;;(define-extern *TARGET-bank* object) ;; unknown type +;;(define-extern duck-spin object) ;; unknown type +;;(define-extern flop-down object) ;; unknown type +;;(define-extern flut object) ;; unknown type +;;(define-extern wheel-solid object) ;; unknown type +;;(define-extern harmless object) ;; unknown type +;;(define-extern spin-air object) ;; unknown type +;;(define-extern duck-slide object) ;; unknown type +;;(define-extern tube object) ;; unknown type +;;(define-extern punch object) ;; unknown type +;;(define-extern target-falling object) ;; unknown type +;;(define-extern target-slide-down object) ;; unknown type +;;(define-extern spin object) ;; unknown type +;;(define-extern flip object) ;; unknown type +;;(define-extern flut-attack object) ;; unknown type +;;(define-extern target-wheel-flip object) ;; unknown type +;;(define-extern roll object) ;; unknown type +(define-extern birth-func-copy-target-y-rot function) +(define-extern part-tracker-track-target-joint function) +(define-extern birth-func-vector-orient function) +(define-extern process-drawable-burn-effect function) +(define-extern birth-func-ground-orient function) +(define-extern birth-func-target-orient function) +(define-extern part-first-person-hud-selector-func function) +(define-extern part-first-person-hud-right-func function) +(define-extern part-first-person-hud-left-func function) +(define-extern collide-shape-moving-angle-set! function) +(define-extern target-collision-no-reaction function) +(define-extern target-collision-low-coverage function) +(define-extern poly-find-nearest-edge function) +(define-extern target-collision-reaction function) +(define-extern build-conversions function) +(define-extern target-compute-edge function) +(define-extern read-pad function) +(define-extern level-setup function) +(define-extern target-swim-post function) +(define-extern init-target function) +(define-extern target-compute-edge-rider function) +(define-extern target-no-ja-move-post function) +(define-extern target-move-dist function) +(define-extern reverse-conversions function) +(define-extern print-history function) +(define-extern turn-around? function) +(define-extern target-post function) +(define-extern target-compute-pole function) +(define-extern local-pad-angle function) +(define-extern joint-points function) +(define-extern target-no-stick-post function) +(define-extern target-slide-down-post function) +(define-extern post-flag-setup function) +(define-extern draw-history function) +(define-extern vector<-pad-in-surface! function) +(define-extern reset-target-state function) +(define-extern warp-vector-into-surface! function) +(define-extern flag-setup function) +(define-extern target-print-stats function) +(define-extern turn-to-vector function) +(define-extern do-rotations2 function) +(define-extern target-compute-slopes function) +(define-extern add-thrust function) +(define-extern bend-gravity function) +(define-extern target-calc-camera-pos function) +(define-extern target-no-move-post function) +(define-extern vector-turn-to function) +(define-extern do-rotations1 function) +(define-extern add-gravity function) +(define-extern target-real-post function) +(define-extern activate-hud function) +(define-extern target-powerup-process function) +;;(define-extern falling object) ;; unknown type +(define-extern target-generic-event-handler function) +;;(define-extern current object) ;; unknown type +;;(define-extern target-walk object) ;; unknown type +(define-extern init-sidekick function) +(define-extern target-exit function) +;;(define-extern level-enter object) ;; unknown type +;;(define-extern target-clone-anim object) ;; unknown type +(define-extern do-target-shadow function) +;;(define-extern *sidekick-sg* object) ;; unknown type +(define-extern cspace<-cspace+quaternion! function) +;;(define-extern sidekick-clone object) ;; unknown type +(define-extern starts function) +;;(define-extern *sidekick-remap* object) ;; unknown type +;;(define-extern play-anim object) ;; unknown type +;;(define-extern empty-state object) ;; unknown type +(define-extern voicebox-track function) +;;(define-extern camera-voicebox object) ;; unknown type +(define-extern voicebox-init-by-other function) +;;(define-extern *voicebox-sg* object) ;; unknown type +;;(define-extern enter object) ;; unknown type +;;(define-extern idle object) ;; unknown type +(define-extern target-walk-event-handler function) +(define-extern target-standard-event-handler function) +(define-extern target-send-attack function) +(define-extern target-effect-exit function) +(define-extern target-dangerous-event-handler function) +(define-extern target-apply-tongue function) +(define-extern target-shoved function) +(define-extern target-bonk-event-handler function) +(define-extern target-state-hook-exit function) +(define-extern target-attacked function) +(define-extern target-jump-event-handler function) +(define-extern get-intersect-point function) +;;(define-extern ground-height object) ;; unknown type +;;(define-extern neck object) ;; unknown type +(define-extern billy type) +;;(define-extern group-spin-hit object) ;; unknown type +;;(define-extern reset-pickup object) ;; unknown type +;;(define-extern target-stance object) ;; unknown type +;;(define-extern target-play-anim object) ;; unknown type +;;(define-extern no-look-around object) ;; unknown type +;;(define-extern get-attack-count object) ;; unknown type +;;(define-extern get-pickup object) ;; unknown type +;;(define-extern target-periscope object) ;; unknown type +;;(define-extern target-wade-stance object) ;; unknown type +;;(define-extern tongue object) ;; unknown type +;;(define-extern target-fishing object) ;; unknown type +;;(define-extern racing object) ;; unknown type +;;(define-extern target-pole-cycle object) ;; unknown type +;;(define-extern target-load-wait object) ;; unknown type +;;(define-extern no-load-wait object) ;; unknown type +;;(define-extern group-uppercut-hit object) ;; unknown type +;;(define-extern darkeco object) ;; unknown type +;;(define-extern target-tube-start object) ;; unknown type +;;(define-extern damage object) ;; unknown type +;;(define-extern target-snowball-start object) ;; unknown type +;;(define-extern reset-height object) ;; unknown type +;;(define-extern target-swim-stance object) ;; unknown type +;;(define-extern target-jump object) ;; unknown type +;;(define-extern target-billy-game object) ;; unknown type +;;(define-extern target-eco-powerup object) ;; unknown type +;;(define-extern dry object) ;; unknown type +;;(define-extern final-door object) ;; unknown type +;;(define-extern target-hit object) ;; unknown type +;;(define-extern target-racing-start object) ;; unknown type +;;(define-extern target-edge-grab object) ;; unknown type +(define-extern target-powerup-effect function) +;;(define-extern fishing object) ;; unknown type +;;(define-extern target-stance-look-around object) ;; unknown type +;;(define-extern bonk object) ;; unknown type +(define-extern periscope type) +;;(define-extern continue object) ;; unknown type +;;(define-extern target-final-door object) ;; unknown type +;;(define-extern do-effect object) ;; unknown type +;;(define-extern group-flop-hit object) ;; unknown type +;;(define-extern snowball object) ;; unknown type +;;(define-extern target-flut-start object) ;; unknown type +;;(define-extern target-duck-stance object) ;; unknown type +;;(define-extern target-high-jump object) ;; unknown type +;;(define-extern target-flop-hit-ground object) ;; unknown type +;;(define-extern target-duck-walk object) ;; unknown type +;;(define-extern target-wheel object) ;; unknown type +(define-extern mod-var-jump function) +(define-extern target-hit-ground-anim function) +(define-extern target-falling-anim function) +;;(define-extern target-attack-uppercut-jump object) ;; unknown type +(define-extern target-falling-anim-trans function) +(define-extern target-falling-trans function) +;;(define-extern target-running-attack object) ;; unknown type +(define-extern init-var-jump function) +;;(define-extern target-attack object) ;; unknown type +;;(define-extern target-duck-high-jump object) ;; unknown type +;;(define-extern target-flop object) ;; unknown type +;;(define-extern target-double-jump object) ;; unknown type +;;(define-extern target-turn-around object) ;; unknown type +;;(define-extern target-hit-ground object) ;; unknown type +;;(define-extern target-attack-uppercut object) ;; unknown type +;;(define-extern target-attack-air object) ;; unknown type +;;(define-extern target-startup object) ;; unknown type +;;(define-extern target-jump-forward object) ;; unknown type +;;(define-extern target-duck-high-jump-jump object) ;; unknown type +;;(define-extern target-yellow-blast object) ;; unknown type +;;(define-extern swim-flop object) ;; unknown type +;;(define-extern target-ice-stance object) ;; unknown type +;;(define-extern collide-offset object) ;; unknown type +;;(define-extern target-ice-walk object) ;; unknown type +;;(define-extern target-swim-down object) ;; unknown type +;;(define-extern stuck object) ;; unknown type +;;(define-extern target-yellow-jump-blast object) ;; unknown type +;;(define-extern target-stance-ambient object) ;; unknown type +;;(define-extern target-wade-walk object) ;; unknown type +(define-extern target-land-effect function) +;;(define-extern group-blue-hit-ground-effect object) ;; unknown type +;;(define-extern group-red-eco-strike-ground object) ;; unknown type +;;(define-extern flop-forward object) ;; unknown type +;;(define-extern group-red-eco-spinkick object) ;; unknown type +;;(define-extern target-hit-ground-hard object) ;; unknown type +;;(define-extern target-swim-jump object) ;; unknown type +(define-extern first-person-hud-init-by-other function) +;;(define-extern target-pole-flip-forward-jump object) ;; unknown type +;;(define-extern target-edge-grab-off object) ;; unknown type +;;(define-extern hud-normal object) ;; unknown type +;;(define-extern target-pole-flip-forward object) ;; unknown type +;;(define-extern hud-waiting object) ;; unknown type +;;(define-extern first-person-hud object) ;; unknown type +;;(define-extern hud-coming-in object) ;; unknown type +;;(define-extern target-swim-jump-jump object) ;; unknown type +;;(define-extern *fp-hud-stack* object) ;; unknown type +;;(define-extern hud-going-out object) ;; unknown type +(define-extern look-for-points-of-interest function) +;;(define-extern *yellow-jump-mods* object) ;; unknown type +;;(define-extern target-pole-flip-up-jump object) ;; unknown type +;;(define-extern target-swim-walk object) ;; unknown type +(define-extern target-swim-tilt function) +;;(define-extern target-pole-flip-up object) ;; unknown type +;;(define-extern progress-gone object) ;; unknown type +;;(define-extern shock-out object) ;; unknown type +;;(define-extern min-max object) ;; unknown type +;;(define-extern drown-death object) ;; unknown type +(define-extern projectile-init-by-other function) +(define-extern enable-hud function) +;;(define-extern progress-going-out object) ;; unknown type +;;(define-extern stance object) ;; unknown type +;;(define-extern drown object) ;; unknown type +;;(define-extern go-away object) ;; unknown type +(define-extern disable-hud function) +;;(define-extern shock-in object) ;; unknown type +;;(define-extern generic object) ;; unknown type +;;(define-extern target-death object) ;; unknown type +(define-extern target-death-anim function) +(define-extern target-hit-push function) +;;(define-extern *death-spool-array* object) ;; unknown type +(define-extern death-movie-remap function) +(define-extern target-hit-setup-anim function) +;;(define-extern *smack-mods* object) ;; unknown type +;;(define-extern *auto-continue* object) ;; unknown type +;;(define-extern *smack-up-mods* object) ;; unknown type +;;(define-extern *deathcam-sg* object) ;; unknown type +(define-extern target-hit-orient function) +(define-extern velocity-set-to-target! function) +(define-extern target-hit-move function) +(define-extern target-hit-effect function) +(define-extern next-level function) +;;(define-extern lava object) ;; unknown type +(define-extern task-closed? function) +;;(define-extern music-movie-volume object) ;; unknown type +;;(define-extern sfx-movie-volume object) ;; unknown type +(define-extern sharkey type) +;;(define-extern up-forward object) ;; unknown type +(define-extern dark-eco-pool type) +;;(define-extern abort-request object) ;; unknown type +;;(define-extern death object) ;; unknown type +;;(define-extern ogreboss-super-boulder object) ;; unknown type +(define-extern start-sequence-a function) +(define-extern pov-camera-init-by-other function) +;;(define-extern back object) ;; unknown type +;;(define-extern target-title object) ;; unknown type +;;(define-extern target-demo object) ;; unknown type +;;(define-extern target-warp-in object) ;; unknown type +;;(define-extern tar object) ;; unknown type +;;(define-extern group-smack-surface-dizzy object) ;; unknown type +;;(define-extern front object) ;; unknown type +;;(define-extern group-smack-surface object) ;; unknown type +;;(define-extern hidden-other object) ;; unknown type +(define-extern plant-boss type) +(define-extern debug-menu-item-flag-msg function) +(define-extern debug-menu-append-item function) +(define-extern debug-menu-render function) +(define-extern debug-menu-rebuild function) +(define-extern debug-menu-item-send-msg function) +(define-extern debug-menus-active function) +(define-extern debug-menu-context-select-next-or-prev-item function) +(define-extern debug-menu-context-render function) +;;(define-extern debug-menu-item-submenu object) ;; unknown type +(define-extern debug-menu-item-function-render function) +(define-extern debug-menu-item-var-render function) +(define-extern debug-menu-find-from-template function) +(define-extern debug-menu-item-submenu-render function) +(define-extern debug-menu-context-close-submenu function) +(define-extern debug-menu-make-from-template function) +(define-extern debug-menu-item-render function) +(define-extern debug-menu-context-set-root-menu function) +;;(define-extern debug-menu-item object) ;; unknown type +(define-extern debug-menus-handler function) +(define-extern debug-menu-item-var-joypad-handler function) +;;(define-extern debug-menu-item-flag object) ;; unknown type +(define-extern debug-menu-item-function-msg function) +(define-extern debug-menu-context-grab-joypad function) +(define-extern debug-menu-item-submenu-msg function) +(define-extern debug-menu-item-var-make-float function) +;;(define-extern debug-menu-context object) ;; unknown type +(define-extern debug-menu-context-default-selection function) +;;(define-extern debug-menu-item-var object) ;; unknown type +(define-extern debug-menu-context-activate-selection function) +(define-extern debug-menus-default-joypad-func function) +(define-extern debug-menu-item-var-make-int function) +(define-extern debug-menu-remove-all-items function) +;;(define-extern debug-menu object) ;; unknown type +(define-extern debug-menu-item-var-update-display-str function) +(define-extern debug-menu-item-var-msg function) +(define-extern debug-menu-context-send-msg function) +(define-extern debug-menu-item-flag-render function) +(define-extern debug-menu-func-decode function) +;;(define-extern debug-menu-node object) ;; unknown type +(define-extern debug-menu-context-release-joypad function) +(define-extern debug-menu-context-open-submenu function) +;;(define-extern debug-menu-item-function object) ;; unknown type +(define-extern debug-menu-send-msg function) +(define-extern debug-menu-item-get-max-width function) +(define-extern debug-menu-context-select-new-item function) +;;(define-extern var object) ;; unknown type +;;(define-extern flag object) ;; unknown type +;;(define-extern float-var object) ;; unknown type +;;(define-extern int-var object) ;; unknown type +;;(define-extern main-menu object) ;; unknown type +;;(define-extern hex-var object) ;; unknown type +;;(define-extern int-var-gat1 object) ;; unknown type +;;(define-extern invalid object) ;; unknown type +;;(define-extern float-fixed-var object) ;; unknown type +(define-extern prototype-bucket-type function) +(define-extern real-main-draw-hook function) +(define-extern gregs-village1-cam-restore function) +;;(define-extern *hud-lights* object) ;; unknown type +(define-extern display-frame-finish function) +(define-extern swap-display function) +(define-extern gregs-texture2-cam-restore function) +(define-extern paals-cam-restore function) +;;(define-extern *add-sphere* object) ;; unknown type +(define-extern gregs-texture-cam-restore function) +;;(define-extern *instance-mem-usage* object) ;; unknown type +(define-extern display-sync function) +(define-extern main-draw-hook function) +(define-extern gregs-jungle-cam-restore function) +(define-extern eddie-cam-restore function) +;;(define-extern *screen-shot* object) ;; unknown type +(define-extern find-instance-by-name function) +(define-extern prototype-bucket-recalc-fields function) +(define-extern cave-cam-restore function) +;;(define-extern *surrogate-dma-buffer* object) ;; unknown type +(define-extern dma-add-process-drawable-hud function) +(define-extern find-instance-by-index function) +(define-extern main-debug-hook function) +(define-extern marks-cam-restore function) +(define-extern determine-pause-mode function) +(define-extern guard-band-cull function) +(define-extern debug-init-buffer function) +(define-extern error-sphere function) +(define-extern display-frame-start function) +;;(define-extern *edit-instance* object) ;; unknown type +;;(define-extern *generic-effect-mode* object) ;; unknown type +(define-extern draw-instance-info function) +(define-extern update-eyes function) +(define-extern draw-ocean function) +;;(define-extern syncv object) ;; unknown type +(define-extern toggle-pause function) +(define-extern deactivate-progress function) +(define-extern swap-fake-shadow-buffers function) +;;(define-extern put-display-env object) ;; unknown type +(define-extern update-ocean function) +(define-extern instance-tfragment-add-debug-sphere function) +(define-extern instance-sphere-box-intersect? function) +(define-extern drawable-sphere-box-intersect? function) +(define-extern set-hud-aspect-ratio function) +(define-extern main-cheats function) +;;(define-extern *progress-cheat* object) ;; unknown type +(define-extern display-loop function) +(define-extern letterbox function) +;;(define-extern *cheat-temp* object) ;; unknown type +;;(define-extern *master-exit* object) ;; unknown type +;;(define-extern *last-master-mode* object) ;; unknown type +(define-extern off function) +;;(define-extern *screen-filter* object) ;; unknown type +(define-extern set-letterbox-frames function) +(define-extern entity-by-type function) +;;(define-extern scf-get-timeout object) ;; unknown type +(define-extern pause-allowed? function) +;;(define-extern kernel-shutdown object) ;; unknown type +;;(define-extern unknown-cpu-time object) ;; unknown type +(define-extern hide-progress-screen function) +;;(define-extern scf-get-inactive-timeout object) ;; unknown type +(define-extern make-current-level-available-to-progress function) +(define-extern menu-respond-to-pause function) +(define-extern test-closest-pt-in-triangle function) +(define-extern make-collide-list-using-line-sphere-inst-test function) +;;(define-extern *already-printed-exeeded-max-cache-tris* object) ;; unknown type +;;(define-extern lsmi-work object) ;; unknown type +;;(define-extern collide-puls-work object) ;; unknown type +;;(define-extern *max-dma* object) ;; unknown type +(define-extern entity-task-complete-off function) +(define-extern entity-remap-names function) +;;(define-extern *compact-actors* object) ;; unknown type +(define-extern update-actor-vis-box function) +(define-extern entity-process-count function) +(define-extern entity-count function) +;;(define-extern *vis-actors* object) ;; unknown type +(define-extern entity-task-complete-on function) +(define-extern entity-speed-test function) +(define-extern entity-by-meters function) +(define-extern init-entity function) +(define-extern process-status-bits function) +(define-extern expand-vis-box-with-point function) +;;(define-extern visvol object) ;; unknown type +;;(define-extern box object) ;; unknown type +;;(define-extern vis object) ;; unknown type +;;(define-extern actor object) ;; unknown type +(define-extern birth-viewer function) +(define-extern task-control-reset function) +(define-extern plane-volume-intersect-dist function) +(define-extern inc-mod3 function) +;;(define-extern *edge-vert0-table* object) ;; unknown type +(define-extern add-collide-shape-spheres function) +;;(define-extern *color-dark-green* object) ;; unknown type +;;(define-extern *color-cyan* object) ;; unknown type +(define-extern nav-mesh-lookup-route function) +;;(define-extern *test-ray-start-poly-id* object) ;; unknown type +(define-extern nav-mesh-update-route-table function) +;;(define-extern *debug-nav-travel* object) ;; unknown type +;;(define-extern *debug-ray-test-capture-output* object) ;; unknown type +;;(define-extern *debug-traverse* object) ;; unknown type +;;(define-extern *color-dark-cyan* object) ;; unknown type +(define-extern circle-triangle-intersection? function) +(define-extern debug-report-nav-stats function) +;;(define-extern *nav-patch-route-table* object) ;; unknown type +;;(define-extern *clip-for-spheres-timer* object) ;; unknown type +;;(define-extern *color-dark-magenta* object) ;; unknown type +(define-extern choose-travel-portal-vertex function) +(define-extern clip-vector-to-halfspace! function) +;;(define-extern *color-black* object) ;; unknown type +;;(define-extern *color-yellow* object) ;; unknown type +;;(define-extern *color-light-yellow* object) ;; unknown type +;;(define-extern *color-blue* object) ;; unknown type +;;(define-extern *edge-mask-table* object) ;; unknown type +(define-extern compute-dir-parm function) +;;(define-extern *debug-nav* object) ;; unknown type +;;(define-extern *color-orange* object) ;; unknown type +;;(define-extern *test-ray-src-pos* object) ;; unknown type +;;(define-extern *debug-offset* object) ;; unknown type +;;(define-extern *color-dark-yellow* object) ;; unknown type +;;(define-extern *nav-last-triangle-test-count* object) ;; unknown type +(define-extern ray-ccw-line-segment-intersection? function) +(define-extern find-closest-circle-ray-intersection function) +(define-extern init-ray-dir-local function) +;;(define-extern *color-light-cyan* object) ;; unknown type +;;(define-extern *travel-timer* object) ;; unknown type +;;(define-extern *debug-nav-ray* object) ;; unknown type +(define-extern add-nav-sphere function) +(define-extern point-inside-poly? function) +(define-extern end-collect-nav function) +;;(define-extern *debug-ray-test* object) ;; unknown type +;;(define-extern *color-light-blue* object) ;; unknown type +(define-extern sign-bit function) +(define-extern init-ray function) +;;(define-extern *nav-update-route-table-route-count* object) ;; unknown type +;;(define-extern *color-light-green* object) ;; unknown type +;;(define-extern *nav-timer-enable* object) ;; unknown type +;;(define-extern *nav-timer* object) ;; unknown type +(define-extern start-collect-nav function) +(define-extern debug-nav-validate-current-poly function) +;;(define-extern *color-gray* object) ;; unknown type +;;(define-extern *nav-triangle-test-count* object) ;; unknown type +;;(define-extern *nav-one-third* object) ;; unknown type +(define-extern circle-tangent-directions function) +;;(define-extern *color-magenta* object) ;; unknown type +(define-extern recursive-inside-poly function) +(define-extern nav-sphere-from-cam function) +;;(define-extern *color-red* object) ;; unknown type +(define-extern init-ray-local function) +;;(define-extern *color-light-red* object) ;; unknown type +;;(define-extern *find-poly-timer* object) ;; unknown type +;;(define-extern *debug-ray-test-capture-mode* object) ;; unknown type +(define-extern circle-triangle-intersection-proc? function) +(define-extern point-inside-rect? function) +;;(define-extern cfs-work object) ;; unknown type +;;(define-extern *edge-vert1-table* object) ;; unknown type +(define-extern nav-ray-test function) +;;(define-extern *debug-output* object) ;; unknown type +;;(define-extern *color-dark-red* object) ;; unknown type +;;(define-extern *debug-tests* object) ;; unknown type +;;(define-extern cfs-travel-vec object) ;; unknown type +;;(define-extern *color-green* object) ;; unknown type +(define-extern nav-ray-test-local? function) +;;(define-extern *nav-update-route-table-ray-count* object) ;; unknown type +(define-extern test-xz-point-on-line-segment? function) +(define-extern vu-point-triangle-intersection? function) +(define-extern point-triangle-distance-min function) +;;(define-extern nav-control-cfs-work object) ;; unknown type +;;(define-extern *color-dark-blue* object) ;; unknown type +(define-extern dec-mod3 function) +;;(define-extern *color-light-magenta* object) ;; unknown type +;;(define-extern *debug-ray-offset* object) ;; unknown type +;;(define-extern *color-white* object) ;; unknown type +(define-extern ray-line-segment-intersection? function) +;;(define-extern *test-ray-dest-pos* object) ;; unknown type +(define-extern pke-nav-hack function) +;;(define-extern nav-mesh-sphere object) ;; unknown type +(define-extern sound-name-with-material function) +;;(define-extern *footstep-surface* object) ;; unknown type +;;(define-extern group-just-poof-dpsnow object) ;; unknown type +;;(define-extern group-just-poof-grass object) ;; unknown type +;;(define-extern group-just-poof-straw object) ;; unknown type +;;(define-extern group-just-footprint-dirt object) ;; unknown type +;;(define-extern group-just-poof-snow object) ;; unknown type +;;(define-extern effect-run-step-left object) ;; unknown type +;;(define-extern land object) ;; unknown type +;;(define-extern effect-run-poof object) ;; unknown type +;;(define-extern death-start object) ;; unknown type +;;(define-extern group-run-poof-wood object) ;; unknown type +;;(define-extern group-land-poof-dpsnow object) ;; unknown type +;;(define-extern group-run-poof-grass object) ;; unknown type +;;(define-extern group-land-poof-neutral object) ;; unknown type +;;(define-extern group-just-footprint-ice object) ;; unknown type +;;(define-extern zoom-land object) ;; unknown type +;;(define-extern group-slide-poof-tar object) ;; unknown type +;;(define-extern group-land-poof-straw object) ;; unknown type +;;(define-extern group-just-poof-swamp object) ;; unknown type +;;(define-extern group-just-footprint-water object) ;; unknown type +;;(define-extern group-run-poof-sand object) ;; unknown type +;;(define-extern group-slide-poof-dpsnow object) ;; unknown type +;;(define-extern effect-just-footprint object) ;; unknown type +;;(define-extern group-land-poof-pcmetal object) ;; unknown type +;;(define-extern group-just-footprint-snow object) ;; unknown type +;;(define-extern group-slide-poof-dirt object) ;; unknown type +;;(define-extern group-land-poof-grass object) ;; unknown type +;;(define-extern group-land-poof-snow object) ;; unknown type +;;(define-extern effect-zoom-land object) ;; unknown type +;;(define-extern group-run-poof-water object) ;; unknown type +;;(define-extern effect-slide object) ;; unknown type +;;(define-extern group-slide-poof-stone object) ;; unknown type +;;(define-extern group-run-poof-pcmetal object) ;; unknown type +;;(define-extern group-slide-poof-straw object) ;; unknown type +;;(define-extern effect-walk-step-left object) ;; unknown type +;;(define-extern group-run-poof-metal object) ;; unknown type +;;(define-extern effect-slide-poof object) ;; unknown type +;;(define-extern group-just-footprint-tar object) ;; unknown type +;;(define-extern group-slide-poof-gravel object) ;; unknown type +;;(define-extern group-just-poof-wood object) ;; unknown type +;;(define-extern group-just-footprint-straw object) ;; unknown type +;;(define-extern group-land-poof-swamp object) ;; unknown type +;;(define-extern group-run-poof-crwood object) ;; unknown type +;;(define-extern group-just-poof-ice object) ;; unknown type +;;(define-extern effect-flut-land object) ;; unknown type +;;(define-extern group-just-poof-sand object) ;; unknown type +;;(define-extern group-just-poof-water object) ;; unknown type +;;(define-extern effect-walk-step-right object) ;; unknown type +;;(define-extern group-run-poof-snow object) ;; unknown type +;;(define-extern group-land-poof-wood object) ;; unknown type +;;(define-extern group-slide-poof-metal object) ;; unknown type +;;(define-extern effect-droppings object) ;; unknown type +;;(define-extern group-slide-poof-snow object) ;; unknown type +;;(define-extern group-slide-poof-wood object) ;; unknown type +;;(define-extern group-just-poof-dirt object) ;; unknown type +;;(define-extern group-just-poof-gravel object) ;; unknown type +;;(define-extern camera-shake object) ;; unknown type +;;(define-extern group-just-poof-crwood object) ;; unknown type +;;(define-extern group-just-footprint-pcmetal object) ;; unknown type +;;(define-extern group-just-footprint-swamp object) ;; unknown type +;;(define-extern group-land-poof-sand object) ;; unknown type +;;(define-extern group-run-poof-stone object) ;; unknown type +;;(define-extern effect-jump-droppings object) ;; unknown type +;;(define-extern effect-zoom-hit object) ;; unknown type +;;(define-extern group-just-footprint-dpsnow object) ;; unknown type +;;(define-extern group-land-poof-crwood object) ;; unknown type +;;(define-extern group-slide-poof-pcmetal object) ;; unknown type +;;(define-extern group-slide-poof-water object) ;; unknown type +;;(define-extern effect-just-poof object) ;; unknown type +;;(define-extern group-slide-poof-neutral object) ;; unknown type +;;(define-extern group-just-poof-metal object) ;; unknown type +;;(define-extern group-just-footprint-grass object) ;; unknown type +;;(define-extern effect-roll object) ;; unknown type +;;(define-extern group-slide-poof-crwood object) ;; unknown type +;;(define-extern flut-land object) ;; unknown type +;;(define-extern effect-land object) ;; unknown type +;;(define-extern group-slide-poof-ice object) ;; unknown type +;;(define-extern group-just-poof-stone object) ;; unknown type +;;(define-extern zoom-hit object) ;; unknown type +;;(define-extern group-just-poof-tar object) ;; unknown type +;;(define-extern slide object) ;; unknown type +;;(define-extern group-land-poof-water object) ;; unknown type +;;(define-extern group-run-poof-neutral object) ;; unknown type +;;(define-extern group-run-poof-dpsnow object) ;; unknown type +;;(define-extern group-just-footprint-metal object) ;; unknown type +;;(define-extern group-land-poof-ice object) ;; unknown type +;;(define-extern group-run-poof-ice object) ;; unknown type +;;(define-extern group-just-footprint-crwood object) ;; unknown type +;;(define-extern group-just-footprint-wood object) ;; unknown type +;;(define-extern group-land-poof-dirt object) ;; unknown type +;;(define-extern effect-land-poof object) ;; unknown type +;;(define-extern effect-run-step-right object) ;; unknown type +;;(define-extern group-just-footprint-gravel object) ;; unknown type +;;(define-extern group-land-poof-metal object) ;; unknown type +;;(define-extern group-run-poof-tar object) ;; unknown type +;;(define-extern group-just-footprint-stone object) ;; unknown type +;;(define-extern group-run-poof-swamp object) ;; unknown type +;;(define-extern group-slide-poof-grass object) ;; unknown type +;;(define-extern group-land-poof-tar object) ;; unknown type +;;(define-extern group-just-footprint-neutral object) ;; unknown type +;;(define-extern group-just-poof-pcmetal object) ;; unknown type +;;(define-extern group-slide-poof-swamp object) ;; unknown type +;;(define-extern group-land-poof-stone object) ;; unknown type +;;(define-extern group-just-footprint-sand object) ;; unknown type +;;(define-extern group-land-poof-gravel object) ;; unknown type +;;(define-extern group-slide-poof-sand object) ;; unknown type +;;(define-extern group-run-poof-dirt object) ;; unknown type +;;(define-extern group-run-poof-straw object) ;; unknown type +;;(define-extern effect-joint object) ;; unknown type +;;(define-extern group-run-poof-gravel object) ;; unknown type +;;(define-extern group-just-poof-neutral object) ;; unknown type +;;(define-extern effect-land-water object) ;; unknown type +(define-extern part-water-splash-callback function) +(define-extern check-water-level-drop-and-die function) +(define-extern check-water-level-above-and-die function) +(define-extern check-water-level-drop function) +(define-extern splash-spawn function) +(define-extern birth-func-y->userdata function) +(define-extern birth-func-ocean-height function) +(define-extern water-vol-init-by-other function) +;;(define-extern update object) ;; unknown type +;;(define-extern water-vol-startup object) ;; unknown type +;;(define-extern heat object) ;; unknown type +;;(define-extern water-vol-idle object) ;; unknown type +(define-extern ocean-get-height function) +;;(define-extern swim-stroke object) ;; unknown type +;;(define-extern attack-event object) ;; unknown type +;;(define-extern water-height object) ;; unknown type +(define-extern eco-fadeout function) +(define-extern eco-track-root-prim-fadeout function) +(define-extern part-tracker-track-root function) +(define-extern sparticle-track-root-money function) +(define-extern part-tracker-move-to-target function) +(define-extern part-tracker-track-target function) +;;(define-extern hud-money object) ;; unknown type +;;(define-extern ecovalve-idle object) ;; unknown type +;;(define-extern ventyellow object) ;; unknown type +;;(define-extern eco-yellow object) ;; unknown type +;;(define-extern fuel-cell-clone-anim object) ;; unknown type +(define-extern add-blue-motion function) +(define-extern check-blue-suck function) +;;(define-extern *fuel-cell-tune-pos* object) ;; unknown type +;;(define-extern eco-collectable object) ;; unknown type +(define-extern money-init-by-other-no-bob function) +;;(define-extern *ecovalve-sg* object) ;; unknown type +(define-extern fuel-cell-pick-anim function) +(define-extern money-init-by-other function) +(define-extern fuel-cell-animate function) +;;(define-extern ecovalve object) ;; unknown type +(define-extern initialize-eco-by-other function) +(define-extern fuel-cell-init-as-clone function) +;;(define-extern vent-blocked object) ;; unknown type +;;(define-extern vent-pickup object) ;; unknown type +(define-extern vent-standard-event-handler function) +(define-extern ventblue type) +;;(define-extern *buzzer-sg* object) ;; unknown type +(define-extern ecovalve-init-by-other function) +;;(define-extern *fuel-cell-sg* object) ;; unknown type +(define-extern buzzer-init-by-other function) +;;(define-extern collectable object) ;; unknown type +(define-extern fuel-cell-init-by-other function) +;;(define-extern vent-wait-for-touch object) ;; unknown type +;;(define-extern eco-red object) ;; unknown type +;;(define-extern *eco-pill-count* object) ;; unknown type +(define-extern add-blue-shake function) +;;(define-extern *money-sg* object) ;; unknown type +;;(define-extern ventred object) ;; unknown type +;;(define-extern eco-bg-blue object) ;; unknown type +;;(define-extern pickup-radius object) ;; unknown type +;;(define-extern stop-cloning object) ;; unknown type +;;(define-extern show object) ;; unknown type +(define-extern othercam-init-by-other function) +;;(define-extern show-particles object) ;; unknown type +;;(define-extern movie-pos object) ;; unknown type +;;(define-extern hide object) ;; unknown type +;;(define-extern eco-bg-red object) ;; unknown type +;;(define-extern notice-blue object) ;; unknown type +;;(define-extern eco-bg-yellow object) ;; unknown type +;;(define-extern set-movie-pos object) ;; unknown type +;;(define-extern eco-bg-green object) ;; unknown type +;;(define-extern blocked object) ;; unknown type +(define-extern eco-blue-glow function) +;;(define-extern actor-pause object) ;; unknown type +;;(define-extern movie-mask object) ;; unknown type +;;(define-extern *sage-tasks* object) ;; unknown type +(define-extern task-exists? function) +;;(define-extern *citb-redsage-tasks* object) ;; unknown type +(define-extern sages-kidnapped? function) +;;(define-extern *citb-yellowsage-tasks* object) ;; unknown type +;;(define-extern *citb-bluesage-tasks* object) ;; unknown type +;;(define-extern *oracle-village3-tasks* object) ;; unknown type +;;(define-extern *null-task-control* object) ;; unknown type +;;(define-extern *mayor-tasks* object) ;; unknown type +;;(define-extern *sage-bluehut-tasks* object) ;; unknown type +;;(define-extern *miners-tasks* object) ;; unknown type +;;(define-extern *oracle-village1-tasks* object) ;; unknown type +;;(define-extern *gambler-tasks* object) ;; unknown type +;;(define-extern *sage-villagec-tasks* object) ;; unknown type +;;(define-extern *assistant-tasks* object) ;; unknown type +;;(define-extern *assistant-village2-tasks* object) ;; unknown type +(define-extern task-status->string function) +;;(define-extern *oracle-village2-tasks* object) ;; unknown type +;;(define-extern *task-controls* object) ;; unknown type +;;(define-extern *citb-greensage-tasks* object) ;; unknown type +;;(define-extern *geologist-tasks* object) ;; unknown type +(define-extern open-specific-task! function) +(define-extern vector-for-ambient function) +(define-extern process-taskable-hide-handler function) +(define-extern process-taskable-hide-exit function) +;;(define-extern othercam-running object) ;; unknown type +(define-extern process-taskable-play-anim-trans function) +(define-extern process-taskable-play-anim-enter function) +(define-extern process-taskable-anim-loop function) +(define-extern process-taskable-hide-enter function) +(define-extern process-taskable-clean-up-after-talking function) +(define-extern process-taskable-play-anim-exit function) +(define-extern othercam-calc function) +(define-extern process-taskable-play-anim-code function) +;;(define-extern be-clone object) ;; unknown type +;;(define-extern lose object) ;; unknown type +;;(define-extern undecided object) ;; unknown type +(define-extern logo type) +;;(define-extern no object) ;; unknown type +(define-extern hud-hidden? function) +;;(define-extern hidden object) ;; unknown type +;;(define-extern play-accept object) ;; unknown type +;;(define-extern yes object) ;; unknown type +;;(define-extern enter-playing object) ;; unknown type +(define-extern hide-hud function) +;;(define-extern shadow-min-max object) ;; unknown type +;;(define-extern play-reject object) ;; unknown type +;;(define-extern clone object) ;; unknown type +;;(define-extern give-cell object) ;; unknown type +(define-extern pov-camera-play-and-reposition function) +;;(define-extern abort object) ;; unknown type +;;(define-extern pov-camera-start-playing object) ;; unknown type +;;(define-extern pov-camera-abort object) ;; unknown type +;;(define-extern pov-camera-startup object) ;; unknown type +;;(define-extern pov-camera-playing object) ;; unknown type +;;(define-extern pov-camera-done-playing object) ;; unknown type +(define-extern cloud-track function) +;;(define-extern *crate-darkeco-sg* object) ;; unknown type +;;(define-extern *crate-wood-sg* object) ;; unknown type +;;(define-extern *crate-iron-sg* object) ;; unknown type +(define-extern crate-init-by-other function) +(define-extern crate-standard-event-handler function) +(define-extern crate-bank type) +(define-extern crate-post function) +;;(define-extern *CRATE-bank* object) ;; unknown type +;;(define-extern *crate-bucket-sg* object) ;; unknown type +;;(define-extern crate-buzzer object) ;; unknown type +;;(define-extern *crate-steel-sg* object) ;; unknown type +;;(define-extern *crate-barrel-sg* object) ;; unknown type +;;(define-extern explode object) ;; unknown type +;;(define-extern special-contents-die object) ;; unknown type +;;(define-extern wake object) ;; unknown type +;;(define-extern steel object) ;; unknown type +;;(define-extern bounce-on object) ;; unknown type +;;(define-extern flut-bonk object) ;; unknown type +;;(define-extern iron object) ;; unknown type +;;(define-extern wood object) ;; unknown type +;;(define-extern crate-type object) ;; unknown type +;;(define-extern hud-arriving object) ;; unknown type +;;(define-extern hud-leaving object) ;; unknown type +;;(define-extern hud-hidden object) ;; unknown type +;;(define-extern hud-in object) ;; unknown type +(define-extern send-hud-increment-event function) +(define-extern hud-init-by-other function) +;;(define-extern hud-collecting object) ;; unknown type +;;(define-extern increment object) ;; unknown type +;;(define-extern enable object) ;; unknown type +;;(define-extern hide-quick object) ;; unknown type +;;(define-extern disable object) ;; unknown type +(define-extern part-hud-health-03-func function) +(define-extern part-hud-health-02-func function) +;;(define-extern hud-fuel-cell object) ;; unknown type +(define-extern part-hud-eco-timer-func function) +;;(define-extern hud-health object) ;; unknown type +(define-extern fuel-cell-hud-center-callback function) +;;(define-extern hud-buzzers object) ;; unknown type +;;(define-extern hud-money-all object) ;; unknown type +;;(define-extern hud-power object) ;; unknown type +(define-extern calculate-rotation-and-color-for-slice function) +(define-extern part-hud-health-01-func function) +(define-extern part-hud-eco-timer-02-func function) +(define-extern show-hud function) +;;(define-extern hud-pickups object) ;; unknown type +(define-extern part-hud-eco-timer-03-func function) +(define-extern part-hud-eco-timer-01-func function) +(define-extern fuel-cell-hud-starburst-4-callback function) +(define-extern part-hud-eco-timer-backing-func function) +;;(define-extern *fuelcell-naked-sg* object) ;; unknown type +(define-extern part-hud-buzzer-func function) +(define-extern fuel-cell-hud-starburst-3-callback function) +(define-extern fuel-cell-hud-orbit-callback function) +;;(define-extern *game-counts* object) ;; unknown type +;;(define-extern *main-options-demo* object) ;; unknown type +;;(define-extern *graphic-title-options-pal* object) ;; unknown type +;;(define-extern *task-egg-starting-x* object) ;; unknown type +;;(define-extern *game-options-demo* object) ;; unknown type +;;(define-extern *options-remap* object) ;; unknown type +;;(define-extern *main-options* object) ;; unknown type +;;(define-extern *game-options-japan* object) ;; unknown type +;;(define-extern *language-name-remap* object) ;; unknown type +;;(define-extern *game-options* object) ;; unknown type +;;(define-extern *load-options* object) ;; unknown type +;;(define-extern *ok-options* object) ;; unknown type +;;(define-extern *save-options* object) ;; unknown type +;;(define-extern *yes-no-options* object) ;; unknown type +;;(define-extern *main-options-demo-shared* object) ;; unknown type +;;(define-extern *title* object) ;; unknown type +;;(define-extern *options* object) ;; unknown type +;;(define-extern *save-options-title* object) ;; unknown type +;;(define-extern *graphic-options* object) ;; unknown type +;;(define-extern *sound-options* object) ;; unknown type +(define-extern part-progress-hud-button-func function) +(define-extern part-progress-card-cell-func function) +(define-extern part-progress-hud-buzzer-func function) +(define-extern part-progress-card-slot-02-func function) +(define-extern fuel-cell-progress-hud-orbit-callback function) +(define-extern part-progress-hud-left-func function) +(define-extern part-progress-hud-orb-func function) +(define-extern part-progress-save-icon-func function) +(define-extern part-progress-card-slot-03-func function) +(define-extern part-progress-hud-right-func function) +(define-extern part-progress-card-slot-01-func function) +(define-extern part-progress-card-slot-04-func function) +(define-extern part-progress-hud-tint-func function) +(define-extern print-language-name function) +(define-extern draw-percent-bar function) +(define-extern adjust-pos function) +(define-extern hide-progress-icons function) +;;(define-extern progress-debug object) ;; unknown type +;;(define-extern *progress-save-info* object) ;; unknown type +;;(define-extern progress-normal object) ;; unknown type +(define-extern progress-global-state type) +(define-extern get-next-level-up function) +;;(define-extern *progress-stack* object) ;; unknown type +;;(define-extern progress-waiting object) ;; unknown type +;;(define-extern *progress-state* object) ;; unknown type +(define-extern make-levels-with-tasks-available-to-progress function) +(define-extern get-next-task-up function) +(define-extern init-game-options function) +(define-extern progress-init-by-other function) +(define-extern get-next-task-down function) +(define-extern get-next-level-down function) +;;(define-extern progress-coming-in object) ;; unknown type +;;(define-extern demo-shared object) ;; unknown type +(define-extern draw-title-credits function) +;;(define-extern *title-credits-spacing* object) ;; unknown type +(define-extern set-credits-font-color function) +(define-extern draw-end-credits function) +;;(define-extern *title-credits-scale* object) ;; unknown type +(define-extern find-nearest-attackable function) +(define-extern projectile-update-velocity-space-wars function) +(define-extern projectile-collision-reaction function) +;;(define-extern search-info object) ;; unknown type +(define-extern spawn-projectile-blue function) +;;(define-extern *search-info* object) ;; unknown type +;;(define-extern projectile-dissipate object) ;; unknown type +(define-extern find-ground-and-draw-shadow function) +;;(define-extern projectile-impact object) ;; unknown type +;;(define-extern projectile-die object) ;; unknown type +;;(define-extern projectile-moving object) ;; unknown type +(define-extern mother-spider type) +(define-extern render-ocean-quad function) +;;(define-extern *swamp-low-ocean-marker* object) ;; unknown type +(define-extern init-ocean-far-regs function) +(define-extern draw-ocean-far function) +(define-extern draw-large-polygon-ocean function) +(define-extern ocean-init-buffer function) +(define-extern ocean-end-buffer function) +(define-extern render-ocean-far function) +;;(define-extern *ocean-map* object) ;; unknown type +(define-extern ocean-generate-verts function) +(define-extern draw-ocean-near function) +(define-extern draw-ocean-mid function) +(define-extern draw-ocean-texture function) +(define-extern ocean-interp-wave function) +;;(define-extern ocean-vu0-block object) ;; unknown type +;;(define-extern *ocean-vu0-work* object) ;; unknown type +(define-extern ocean-texture-add-call-done function) +(define-extern ocean-texture-add-verts-last function) +(define-extern ocean-texture-add-call-rest function) +(define-extern ocean-texture-add-constants function) +(define-extern ocean-texture-add-verts function) +(define-extern ocean-texture-add-call-start function) +;;(define-extern ocean-texture-vu1-block object) ;; unknown type +(define-extern ocean-texture-setup-constants function) +(define-extern ocean-texture-add-envmap function) +;;(define-extern *ocean-texture-work* object) ;; unknown type +(define-extern ocean-mid-camera-masks-set! function) +(define-extern ocean-mid-add-call-flush function) +(define-extern ocean-mid-add-upload-top function) +(define-extern ocean-mid-mask-ptrs-bit? function) +(define-extern ocean-vector-matrix*! function) +(define-extern ocean-mid-camera-masks-bit? function) +(define-extern ocean-mid-add-constants function) +(define-extern ocean-mid-add-call function) +(define-extern ocean-mid-add-upload function) +(define-extern ocean-mid-add-upload-table function) +(define-extern draw-ocean-mid-seams function) +(define-extern ocean-mid-check function) +(define-extern ocean-mid-setup-constants function) +(define-extern ocean-mid-add-upload-bottom function) +(define-extern ocean-mid-add-matrices function) +(define-extern ocean-mid-add-upload-middle function) +(define-extern ocean-matrix*! function) +(define-extern ocean-seams-add-constants function) +;;(define-extern ocean-mid-block object) ;; unknown type +(define-extern draw-ocean-transition function) +(define-extern ocean-trans-mask-ptrs-bit? function) +(define-extern ocean-trans-add-upload function) +(define-extern ocean-trans-add-upload-table function) +(define-extern ocean-trans-add-constants function) +(define-extern ocean-make-trans-camera-masks function) +(define-extern draw-ocean-transition-seams function) +(define-extern ocean-trans-add-upload-strip function) +(define-extern ocean-trans-camera-masks-bit? function) +(define-extern ocean-trans-mask-ptrs-set! function) +(define-extern ocean-transition-check function) +(define-extern ocean-near-add-upload function) +(define-extern ocean-near-setup-constants function) +(define-extern ocean-near-add-constants function) +(define-extern ocean-near-add-call-flush function) +(define-extern ocean-near-add-call function) +;;(define-extern ocean-near-block object) ;; unknown type +(define-extern ocean-near-add-heights function) +(define-extern ocean-near-add-matrices function) +(define-extern draw-shadow function) +(define-extern add-fake-shadow-to-buffer function) +(define-extern compute-and-draw-shadow function) +(define-extern convert-eye-data function) +(define-extern render-eyes function) +;;(define-extern *eye-work* object) ;; unknown type +;;(define-extern glst-named-node object) ;; unknown type +(define-extern glst-head function) +(define-extern glst-tail function) +(define-extern glst-empty? function) +(define-extern glst-node-name function) +(define-extern glst-end-of-list? function) +(define-extern glst-prev function) +;;(define-extern glst-list object) ;; unknown type +(define-extern glst-set-name! function) +(define-extern glst-next function) +(define-extern glst-start-of-list? function) +;;(define-extern glst-node object) ;; unknown type +(define-extern glst-num-elements function) +(define-extern glst-get-node-index function) +(define-extern glst-remove-tail function) +(define-extern glst-find-node-by-name function) +(define-extern glst-remove-head function) +(define-extern glst-add-head function) +(define-extern glst-insert-before function) +(define-extern glst-add-tail function) +(define-extern glst-init-list! function) +(define-extern glst-remove function) +(define-extern glst-insert-after function) +(define-extern glst-length-of-longest-name function) +(define-extern glst-get-node-by-index function) +(define-extern anim-tester-start function) +;;(define-extern *DISP_LIST-bank* object) ;; unknown type +(define-extern anim-test-obj-remove-invalid function) +(define-extern anim-test-sequence-list-handler function) +(define-extern anim-tester-add-newobj function) +;;(define-extern anim-tester object) ;; unknown type +;;(define-extern *ANIM_TESTER-bank* object) ;; unknown type +(define-extern anim-test-sequence-init function) +(define-extern anim-tester-reset function) +(define-extern anim-test-seq-mark-as-edited function) +(define-extern anim-tester-string-get-frame!! function) +(define-extern anim-tester-standard-event-handler function) +(define-extern display-list-control function) +(define-extern anim-tester-save-object-seqs function) +;;(define-extern anim-test-field-highlight-lw object) ;; unknown type +(define-extern anim-tester-real-post function) +(define-extern anim-tester-update-anim-info function) +(define-extern initialize-anim-tester function) +;;(define-extern anim-test-sequence object) ;; unknown type +(define-extern anim-tester-set-name function) +(define-extern anim-tester-bank type) +(define-extern anim-test-obj-list-handler function) +(define-extern anim-tester-save-all-objects function) +;;(define-extern list-field object) ;; unknown type +(define-extern anim-tester-load-object-seqs function) +(define-extern anim-tester-post function) +(define-extern anim-test-seq-item-copy! function) +;;(define-extern anim-test-seq-item object) ;; unknown type +(define-extern anim-tester-stop function) +(define-extern anim-tester-add-object function) +(define-extern DISP_LIST-bank type) +(define-extern anim-tester-pick-item-setup function) +(define-extern anim-tester-disp-frame-num function) +(define-extern anim-test-obj-item-valid? function) +(define-extern anim-test-obj-init function) +(define-extern anim-test-anim-list-handler function) +(define-extern anim-tester-add-sequence function) +(define-extern anim-tester-num-print function) +;;(define-extern *anim-tester* object) ;; unknown type +;;(define-extern list-control object) ;; unknown type +(define-extern anim-test-edit-seq-insert-item function) +(define-extern anim-tester-interface function) +(define-extern anim-tester-adjust-frame function) +;;(define-extern anim-tester-process object) ;; unknown type +;;(define-extern anim-test-obj object) ;; unknown type +(define-extern anim-test-edit-sequence-list-handler function) +(define-extern anim-tester-get-playing-item function) +;;(define-extern *debug-menu-context* object) ;; unknown type +;;(define-extern save-sequences object) ;; unknown type +;;(define-extern pick-sequence object) ;; unknown type +;;(define-extern edit-sequence object) ;; unknown type +;;(define-extern change-anim object) ;; unknown type +;;(define-extern pick-joint-anim object) ;; unknown type +;;(define-extern pick-object object) ;; unknown type +;;(define-extern viewer-ja-name object) ;; unknown type +(define-extern actor-get-arg! function) +(define-extern art-part-name function) +(define-extern init-viewer-for-other function) +;;(define-extern viewer-geo-name object) ;; unknown type +;;(define-extern viewer-process object) ;; unknown type +;;(define-extern viewer-string object) ;; unknown type +(define-extern init-viewer function) +(define-extern add-a-bunch function) +;;(define-extern viewer object) ;; unknown type +;;(define-extern *viewer-sg* object) ;; unknown type +;;(define-extern *viewer* object) ;; unknown type +;;(define-extern part-tester object) ;; unknown type +(define-extern part-tester-init-by-other function) +;;(define-extern *debug-part-dead-pool* object) ;; unknown type +;;(define-extern part-tester-idle object) ;; unknown type +(define-extern start-part function) +;;(define-extern *part-tester-name* object) ;; unknown type +;;(define-extern *part-tester* object) ;; unknown type +(define-extern dm-current-continue function) +(define-extern dm-time-of-day-func function) +(define-extern dm-give-all-cells function) +(define-extern debug-menu-make-instance-menu function) +(define-extern dm-time-of-day-pick-func function) +;;(define-extern *instance-shrub-menu* object) ;; unknown type +(define-extern debug-menu-make-task-menu function) +(define-extern debug-menu-make-task-need-resolution-menu function) +(define-extern dm-time-of-day-func2 function) +(define-extern dm-cam-render-float function) +(define-extern debug-menu-make-task-unknown-menu function) +(define-extern debug-menu-make-camera-menu function) +(define-extern debug-menu-make-task-need-introduction-menu function) +(define-extern dm-instance-pick-func function) +(define-extern build-instance-list function) +(define-extern debug-create-cam-restore function) +(define-extern dm-task-introduction function) +(define-extern dm-subdiv-int function) +(define-extern dm-strip-lines-toggle-pick-func function) +(define-extern dm-cam-externalize function) +(define-extern dm-subdiv-draw-func function) +(define-extern dm-task-reward-speech function) +(define-extern dm-task-resolution function) +;;(define-extern *enable-instance-tie-menu* object) ;; unknown type +(define-extern dm-edit-instance-toggle-pick-func function) +(define-extern debug-menu-make-shader-menu function) +(define-extern dm-cam-settings-func function) +(define-extern build-shader-list function) +(define-extern dm-anim-tester-func function) +;;(define-extern *dm-cam-mode-interpolation* object) ;; unknown type +(define-extern dm-compact-actor-pick-func function) +(define-extern dm-game-mode-pick-func function) +(define-extern dm-boolean-toggle-pick-func function) +(define-extern all-texture-tweak-adjust function) +(define-extern dm-lavabike-ready function) +(define-extern dm-texture-user-set-pick-func function) +(define-extern dm-levitator-ready function) +(define-extern build-continue-menu function) +(define-extern dm-cam-settings-func-int function) +(define-extern debug-menu-make-task-need-reminder-a-menu function) +(define-extern dm-actor-marks-pick-func function) +(define-extern dm-task-unknown function) +(define-extern dm-setting-language function) +(define-extern dm-subdiv-float function) +(define-extern dm-task-reminder-a function) +(define-extern dm-strip-lines-set-pick-func function) +(define-extern debug-menu-make-task-need-reward-speech-menu function) +(define-extern dm-task-get-money function) +(define-extern dm-actor-vis-pick-func function) +(define-extern popup-menu-context-make-default-menus function) +(define-extern dm-enable-instance-func function) +(define-extern dm-task-reminder function) +;;(define-extern *instance-tie-menu* object) ;; unknown type +(define-extern dm-ocean-subdiv-draw-func function) +;;(define-extern *popup-menu-context* object) ;; unknown type +(define-extern dm-shader-pick-func function) +(define-extern dm-cam-mode-func function) +(define-extern dm-task-hint function) +(define-extern dm-vu1-user-set-pick-func function) +(define-extern debug-menu-make-task-need-reminder-menu function) +(define-extern dm-vu1-user-toggle-pick-func function) +(define-extern debug-menu-nodeprocess-safe function) +(define-extern babak-with-cannon-ride-cannon-post function) +(define-extern babak-with-cannon-compute-cannon-dir function) +(define-extern beachcam-spawn function) +(define-extern mistycam-spawn function) +(define-extern point-in-air-box? function) +;;(define-extern air-box object) ;; unknown type +(define-extern point-in-air-box-area? function) +(define-extern add-debug-air-box function) +(define-extern points-in-air? function) +(define-extern point-in-air? function) +;;(define-extern wobbler object) ;; unknown type +;;(define-extern twist-joint object) ;; unknown type +;;(define-extern twister object) ;; unknown type +(define-extern move-grottopole function) +;;(define-extern *flutflut-naked-sg* object) ;; unknown type +;;(define-extern *bladeassm-sg* object) ;; unknown type +;;(define-extern *windmill-one-sg* object) ;; unknown type +;;(define-extern *flutflutegg-sg* object) ;; unknown type +;;(define-extern flutflutegg-physics object) ;; unknown type +;;(define-extern grottopole-idle object) ;; unknown type +;;(define-extern *grottopole-sg* object) ;; unknown type +(define-extern move-grottopole-to-position function) +;;(define-extern grottopole-moving-up object) ;; unknown type +(define-extern bladeassm type) +;;(define-extern flying-rock-idle object) ;; unknown type +;;(define-extern harvester-idle object) ;; unknown type +;;(define-extern ecoventrock-break object) ;; unknown type +(define-extern flying-rock-init-by-other function) +;;(define-extern windmill-one-idle object) ;; unknown type +;;(define-extern *kickrock-sg* object) ;; unknown type +;;(define-extern ecoventrock-idle object) ;; unknown type +(define-extern grottopole type) +;;(define-extern *ecoventrock-sg* object) ;; unknown type +;;(define-extern grottopole-moving-down object) ;; unknown type +;;(define-extern bladeassm-idle object) ;; unknown type +(define-extern ecoventrock type) +;;(define-extern *beachcam-sg* object) ;; unknown type +(define-extern spawn-flying-rock function) +(define-extern bladeassm-prebind-function function) +;;(define-extern harvester-inflate object) ;; unknown type +;;(define-extern flutflutegg-break object) ;; unknown type +;;(define-extern *harvester-sg* object) ;; unknown type +(define-extern beachcam type) +;;(define-extern flutflutegg-idle object) ;; unknown type +(define-extern windmill-one type) +;;(define-extern flying-rock-rolling object) ;; unknown type +(define-extern flutflutegg-hit-sounds function) +;;(define-extern flutflutegg-physics-fall object) ;; unknown type +;;(define-extern flying-rock object) ;; unknown type +(define-extern flutflutegg type) +(define-extern harvester type) +;;(define-extern num-positions object) ;; unknown type +(define-extern bird-lady type) +;;(define-extern *bird-lady-sg* object) ;; unknown type +(define-extern bird-lady-beach type) +;;(define-extern *bird-lady-beach-sg* object) ;; unknown type +;;(define-extern *mayor-sg* object) ;; unknown type +(define-extern mayor type) +(define-extern mayor-lurkerm-reward-speech function) +(define-extern sculptor type) +(define-extern muse-to-idle function) +;;(define-extern *sculptor-muse-sg* object) ;; unknown type +;;(define-extern *sculptor-sg* object) ;; unknown type +(define-extern pelican-fly function) +;;(define-extern pelican-dive object) ;; unknown type +;;(define-extern pelican-fly-to-end object) ;; unknown type +(define-extern pelican-post function) +(define-extern pelican-path-update function) +(define-extern pelican type) +;;(define-extern *PELICAN-bank* object) ;; unknown type +;;(define-extern pelican-wait-at-nest object) ;; unknown type +;;(define-extern pelican-circle object) ;; unknown type +;;(define-extern pelican-to-nest object) ;; unknown type +;;(define-extern pelican-spit object) ;; unknown type +;;(define-extern pelican-wait-at-end object) ;; unknown type +;;(define-extern *pelican-sg* object) ;; unknown type +(define-extern pelican-bank type) +;;(define-extern pelican-explode object) ;; unknown type +;;(define-extern pelican-from-nest object) ;; unknown type +;;(define-extern got-cell? object) ;; unknown type +;;(define-extern zero-func object) ;; unknown type +;;(define-extern position object) ;; unknown type +(define-extern lurkerworm type) +;;(define-extern lurkerworm-strike object) ;; unknown type +;;(define-extern lurkerworm-rise object) ;; unknown type +;;(define-extern lurkerworm-sink object) ;; unknown type +;;(define-extern lurkerworm-idle object) ;; unknown type +;;(define-extern lurkerworm-die object) ;; unknown type +(define-extern lurkerworm-default-post-behavior function) +(define-extern lurkerworm-default-event-handler function) +;;(define-extern *lurkerworm-sg* object) ;; unknown type +(define-extern lurkerworm-joint-callback function) +;;(define-extern lurkerworm-spot object) ;; unknown type +;;(define-extern lurkerworm-rest object) ;; unknown type +(define-extern lurkerworm-prebind-function function) +;;(define-extern *lurkercrab-sg* object) ;; unknown type +(define-extern lurkercrab-vulnerable function) +(define-extern lurkercrab type) +;;(define-extern *lurkercrab-nav-enemy-info* object) ;; unknown type +(define-extern lurkercrab-invulnerable function) +;;(define-extern lurkercrab-pushed object) ;; unknown type +;;(define-extern *lurkerpuppy-nav-enemy-info* object) ;; unknown type +;;(define-extern *lurkerpuppy-sg* object) ;; unknown type +(define-extern lurkerpuppy type) +(define-extern lrocklrg type) +;;(define-extern *lrocklrg-sg* object) ;; unknown type +;;(define-extern beach-rock object) ;; unknown type +;;(define-extern fallen object) ;; unknown type +;;(define-extern seagull-landing object) ;; unknown type +(define-extern seagull-reaction function) +;;(define-extern sound-seagull-squall object) ;; unknown type +(define-extern seagull-init-by-other function) +;;(define-extern *seagull-sg* object) ;; unknown type +;;(define-extern seagull-flying object) ;; unknown type +;;(define-extern seagull-idle object) ;; unknown type +;;(define-extern seagull-soaring object) ;; unknown type +(define-extern seagull-post function) +(define-extern beach-rock-trigger function) +(define-extern seagullflock type) +;;(define-extern seagull object) ;; unknown type +;;(define-extern *seagull-boxes* object) ;; unknown type +;;(define-extern seagullflock-idle object) ;; unknown type +;;(define-extern seagullflock-at-waterfall object) ;; unknown type +;;(define-extern seagull-takeoff object) ;; unknown type +;;(define-extern aybabtu object) ;; unknown type +;;(define-extern sound-beach-waterfall object) ;; unknown type +(define-extern beach-part type) +;;(define-extern babak-breathin object) ;; unknown type +;;(define-extern babak-breathout object) ;; unknown type +;;(define-extern babak-charge object) ;; unknown type +;;(define-extern babak-chest object) ;; unknown type +;;(define-extern babak-dies object) ;; unknown type +;;(define-extern babak-giveup object) ;; unknown type +;;(define-extern babak-roar object) ;; unknown type +;;(define-extern babak-taunt object) ;; unknown type +;;(define-extern babak-win object) ;; unknown type +;;(define-extern babk-taunt object) ;; unknown type +;;(define-extern jump-low object) ;; unknown type +;;(define-extern run-step-right object) ;; unknown type +;;(define-extern slide-poof object) ;; unknown type +;;(define-extern walk-step-left object) ;; unknown type +;;(define-extern walk-step-right object) ;; unknown type +;;(define-extern egg-crack object) ;; unknown type +;;(define-extern rope-stretch object) ;; unknown type +;;(define-extern EFEFCT(8 object) ;; unknown type +;;(define-extern crab-slide object) ;; unknown type +;;(define-extern crab-walk1 object) ;; unknown type +;;(define-extern crab-walk2 object) ;; unknown type +;;(define-extern crab-walk2) object) ;; unknown type +;;(define-extern crab-walk3 object) ;; unknown type +;;(define-extern lurkercrab-dies object) ;; unknown type +;;(define-extern shell-down object) ;; unknown type +;;(define-extern shell-up object) ;; unknown type +;;(define-extern snap object) ;; unknown type +;;(define-extern 8) object) ;; unknown type +;;(define-extern TIME_PEROIOD(8 object) ;; unknown type +;;(define-extern lurkerdog-bite object) ;; unknown type +;;(define-extern lurkerdog-dies object) ;; unknown type +;;(define-extern lurkerdog-idle object) ;; unknown type +;;(define-extern puppy-bark object) ;; unknown type +;;(define-extern run-step-left object) ;; unknown type +;;(define-extern worm-bite object) ;; unknown type +;;(define-extern worm-dies object) ;; unknown type +;;(define-extern worm-sink object) ;; unknown type +;;(define-extern mayor-step-carp object) ;; unknown type +;;(define-extern mayor-step-wood object) ;; unknown type +;;(define-extern pelican-flap object) ;; unknown type +;;(define-extern pelican-gulp object) ;; unknown type +;;(define-extern walk-straw1 object) ;; unknown type +;;(define-extern walk-straw2 object) ;; unknown type +;;(define-extern fuse object) ;; unknown type +;;(define-extern sack-land object) ;; unknown type +;;(define-extern hammer-tap object) ;; unknown type +;;(define-extern TIME_PE0IOD_LOOP object) ;; unknown type +;;(define-extern bird object) ;; unknown type +;;(define-extern bird-2 object) ;; unknown type +;;(define-extern campath-time object) ;; unknown type +;;(define-extern campoints-flags-off object) ;; unknown type +;;(define-extern campoints-flags-on object) ;; unknown type +;;(define-extern flags-off object) ;; unknown type +;;(define-extern flags-on object) ;; unknown type +;;(define-extern focalpull-flags-off object) ;; unknown type +;;(define-extern focalpull-flags-on object) ;; unknown type +;;(define-extern tower-wind2 object) ;; unknown type +;;(define-extern tower-wind3 object) ;; unknown type +;;(define-extern tower-winds object) ;; unknown type +;;(define-extern tower-winds3 object) ;; unknown type +;;(define-extern water-lap object) ;; unknown type +;;(define-extern waterfall object) ;; unknown type +(define-extern village-cam type) +(define-extern get-next-slot-down function) +(define-extern get-next-slot-up function) +;;(define-extern *village-cam-sg* object) ;; unknown type +;;(define-extern *warp-gate-switch-sg* object) ;; unknown type +(define-extern warpgate type) +(define-extern print-level-name function) +(define-extern warp-gate-switch type) +(define-extern warp-gate-init-by-other function) +;;(define-extern trigger-actor object) ;; unknown type +;;(define-extern *oracle-sg* object) ;; unknown type +(define-extern oracle type) +;;(define-extern alt-task object) ;; unknown type +(define-extern battlecontroller-spawn-creature function) +(define-extern battlecontroller-set-task-completed function) +;;(define-extern battlecontroller object) ;; unknown type +;;(define-extern battlecontroller-spawner object) ;; unknown type +(define-extern battlecontroller-camera-on function) +(define-extern battlecontroller-task-completed? function) +(define-extern battlecontroller-update-spawners function) +(define-extern battlecontroller-battle-end function) +(define-extern battlecontroller-draw-debug function) +(define-extern battlecontroller-fill-all-spawners function) +(define-extern battlecontroller-default-event-handler function) +(define-extern battlecontroller-special-contents? function) +(define-extern battlecontroller-spawners-full? function) +;;(define-extern battlecontroller-creature-type object) ;; unknown type +(define-extern battlecontroller-special-contents-collected? function) +(define-extern battlecontroller-spawn-creature-random-spawner function) +(define-extern battlecontroller-off function) +(define-extern battlecontroller-camera-off function) +(define-extern battlecontroller-spawn-creature-at-spawner function) +(define-extern battlecontroller-disable-ocean function) +(define-extern battlecontroller-battle-begin function) +(define-extern battlecontroller-set-special-contents-collected function) +;;(define-extern num-lurkers object) ;; unknown type +;;(define-extern danger object) ;; unknown type +;;(define-extern pathb object) ;; unknown type +;;(define-extern pathg object) ;; unknown type +;;(define-extern fade-actor object) ;; unknown type +;;(define-extern pathd object) ;; unknown type +;;(define-extern percent object) ;; unknown type +;;(define-extern pickup-type object) ;; unknown type +;;(define-extern kill-actor object) ;; unknown type +;;(define-extern spawn object) ;; unknown type +;;(define-extern spawner-blocker-actor object) ;; unknown type +;;(define-extern battlecontroller-active object) ;; unknown type +;;(define-extern patha object) ;; unknown type +;;(define-extern lurker-type object) ;; unknown type +;;(define-extern battlecontroller-die object) ;; unknown type +;;(define-extern pathf object) ;; unknown type +;;(define-extern spawner-trigger-actor object) ;; unknown type +;;(define-extern pathc object) ;; unknown type +;;(define-extern pickup-percent object) ;; unknown type +;;(define-extern battlecontroller-play-intro-camera object) ;; unknown type +;;(define-extern final-pickup object) ;; unknown type +;;(define-extern max-pickup-count object) ;; unknown type +;;(define-extern pathh object) ;; unknown type +;;(define-extern pathspawn object) ;; unknown type +;;(define-extern pathe object) ;; unknown type +;;(define-extern battlecontroller-idle object) ;; unknown type +(define-extern birth-func-random-rot function) +(define-extern citb-part type) +(define-extern check-drop-level-firehose-pops function) +;;(define-extern *citb-arm-c-sg* object) ;; unknown type +;;(define-extern *citb-arm-d-sg* object) ;; unknown type +;;(define-extern *citb-robotboss-leftarm-sg* object) ;; unknown type +(define-extern citb-arm-c type) +;;(define-extern citb-hose-die object) ;; unknown type +;;(define-extern *citb-robotboss-head-sg* object) ;; unknown type +;;(define-extern citb-robotboss-idle object) ;; unknown type +;;(define-extern *citb-disc-b-sg* object) ;; unknown type +;;(define-extern citb-coil-break object) ;; unknown type +;;(define-extern *citb-arm-shoulder-a-sg* object) ;; unknown type +(define-extern citb-launcher type) +;;(define-extern citb-arm object) ;; unknown type +;;(define-extern *citb-robotboss-leftshoulder-sg* object) ;; unknown type +(define-extern citadelcam type) +;;(define-extern citb-hose-idle object) ;; unknown type +;;(define-extern citb-arm-section object) ;; unknown type +;;(define-extern *citb-hose-sg* object) ;; unknown type +;;(define-extern citadelcam-idle object) ;; unknown type +(define-extern citb-generator-trigger-others function) +;;(define-extern *citb-generator-sg* object) ;; unknown type +(define-extern citb-arm-b type) +(define-extern citb-hose type) +;;(define-extern *citb-launcher-sg* object) ;; unknown type +;;(define-extern citb-generator-broken object) ;; unknown type +;;(define-extern citb-disc-idle object) ;; unknown type +;;(define-extern *citb-robotboss-rightshoulder-sg* object) ;; unknown type +;;(define-extern citb-hose-spawn object) ;; unknown type +(define-extern citb-generator type) +;;(define-extern *citb-robotboss-sg* object) ;; unknown type +;;(define-extern *citb-iris-door-sg* object) ;; unknown type +(define-extern citb-hose-event-handler function) +(define-extern citb-button type) +(define-extern citb-arm-shoulder-b type) +;;(define-extern citb-generator-break object) ;; unknown type +;;(define-extern *citb-disc-c-sg* object) ;; unknown type +(define-extern citb-robotboss type) +;;(define-extern citb-arm-shoulder object) ;; unknown type +;;(define-extern *citb-robotboss-belly-sg* object) ;; unknown type +;;(define-extern *citb-robotboss-gun-sg* object) ;; unknown type +;;(define-extern *citb-arm-shoulder-b-sg* object) ;; unknown type +(define-extern citb-arm-shoulder-a type) +;;(define-extern citb-robotboss-die object) ;; unknown type +(define-extern citb-arm-d type) +;;(define-extern *citadelcam-sg* object) ;; unknown type +;;(define-extern *citb-disc-a-sg* object) ;; unknown type +(define-extern citb-disc-a type) +(define-extern citb-iris-door type) +(define-extern citb-arm-a type) +;;(define-extern citb-disc object) ;; unknown type +;;(define-extern *citb-button-sg* object) ;; unknown type +(define-extern citb-disc-b type) +(define-extern citb-chains type) +(define-extern citb-disc-c type) +;;(define-extern citadelcam-stair-plats object) ;; unknown type +;;(define-extern citb-coil-idle object) ;; unknown type +;;(define-extern citb-generator-idle object) ;; unknown type +(define-extern citb-disc-d type) +;;(define-extern *citb-coil-sg* object) ;; unknown type +;;(define-extern *citb-robotboss-rightarm-sg* object) ;; unknown type +(define-extern citb-battlecontroller type) +;;(define-extern citb-coil-broken object) ;; unknown type +;;(define-extern *citb-arm-a-sg* object) ;; unknown type +(define-extern citb-coil type) +;;(define-extern *citb-generator-broken-sg* object) ;; unknown type +;;(define-extern *citb-arm-b-sg* object) ;; unknown type +;;(define-extern *citb-disc-d-sg* object) ;; unknown type +;;(define-extern *citb-robotboss-nose-sg* object) ;; unknown type +;;(define-extern open object) ;; unknown type +;;(define-extern open-actor object) ;; unknown type +;;(define-extern shield-off object) ;; unknown type +;;(define-extern shield-on object) ;; unknown type +(define-extern citb-plat-eco type) +;;(define-extern citb-base-plat object) ;; unknown type +;;(define-extern citb-chain-plat-settle object) ;; unknown type +;;(define-extern *citb-rotatebox-sg* object) ;; unknown type +;;(define-extern citb-exit-plat-idle object) ;; unknown type +(define-extern citb-firehose type) +;;(define-extern *plat-citb-sg* object) ;; unknown type +;;(define-extern *citb-chain-plat-sg* object) ;; unknown type +;;(define-extern *citb-stopbox-sg* object) ;; unknown type +(define-extern citb-rotatebox type) +(define-extern citb-stair-plat type) +(define-extern citb-exit-plat-move-player function) +;;(define-extern *plat-eco-citb-unlit-sg* object) ;; unknown type +(define-extern citb-firehose-blast-particles function) +(define-extern citb-exit-plat type) +;;(define-extern citb-firehose-blast object) ;; unknown type +(define-extern citb-donut type) +(define-extern citb-plat type) +;;(define-extern citb-firehose-idle object) ;; unknown type +;;(define-extern *citb-donut-sg* object) ;; unknown type +;;(define-extern *citb-chain-plat-constants* object) ;; unknown type +(define-extern citb-stopbox type) +;;(define-extern *citb-firehose-sg* object) ;; unknown type +;;(define-extern citb-firehose-active object) ;; unknown type +(define-extern citb-chain-plat type) +;;(define-extern citb-exit-plat-rise object) ;; unknown type +;;(define-extern *plat-eco-citb-lit-sg* object) ;; unknown type +;;(define-extern *citb-exit-plat-sg* object) ;; unknown type +;;(define-extern height-info object) ;; unknown type +;;(define-extern citb-base-plat-idle object) ;; unknown type +;;(define-extern citb-base-plat-active object) ;; unknown type +(define-extern citb-sage-draw-beam function) +;;(define-extern citb-sagecage-idle object) ;; unknown type +;;(define-extern *evilbro-citadel-sg* object) ;; unknown type +;;(define-extern *citb-sagecage-sg* object) ;; unknown type +(define-extern blue-sagecage type) +;;(define-extern citb-sage object) ;; unknown type +(define-extern citb-sagecage-draw-bars function) +;;(define-extern *redsage-sg* object) ;; unknown type +(define-extern green-sagecage type) +;;(define-extern *yellowsage-sg* object) ;; unknown type +(define-extern citb-sagecage-init-by-other function) +;;(define-extern *green-sagecage-sg* object) ;; unknown type +;;(define-extern citb-sagecage object) ;; unknown type +;;(define-extern *evilsis-citadel-sg* object) ;; unknown type +(define-extern citb-sagecage-update-collision function) +(define-extern yellow-sagecage type) +;;(define-extern *bluesage-sg* object) ;; unknown type +(define-extern red-sagecage type) +;;(define-extern enable-bars object) ;; unknown type +;;(define-extern start-cloning object) ;; unknown type +;;(define-extern disable-bars object) ;; unknown type +;;(define-extern *robotboss-sg* object) ;; unknown type +;;(define-extern spawn-robot object) ;; unknown type +(define-extern snow-bunny-initialize-jump function) +;;(define-extern *snow-bunny-sg* object) ;; unknown type +(define-extern snow-bunny-execute-jump function) +(define-extern snow-bunny-default-event-handler function) +;;(define-extern snow-bunny-retreat-work object) ;; unknown type +;;(define-extern *snow-bunny-nav-enemy-info* object) ;; unknown type +(define-extern snow-bunny type) +;;(define-extern snow-bunny-tune-spheres object) ;; unknown type +;;(define-extern snow-bunny-nav-resume object) ;; unknown type +;;(define-extern snow-bunny-retreat-hop object) ;; unknown type +;;(define-extern snow-bunny-patrol-hop object) ;; unknown type +;;(define-extern *snow-bunny* object) ;; unknown type +;;(define-extern snow-bunny-attack object) ;; unknown type +;;(define-extern snow-bunny-chase-hop object) ;; unknown type +;;(define-extern snow-bunny-patrol-idle object) ;; unknown type +;;(define-extern snow-bunny-lunge object) ;; unknown type +;;(define-extern snow-bunny-defend object) ;; unknown type +;;(define-extern *citb-bunny-sg* object) ;; unknown type +(define-extern citb-bunny type) +;;(define-extern *citb-bunny-nav-enemy-info* object) ;; unknown type +(define-extern citb-drop-plat-spawn-children function) +(define-extern citb-drop-plat-drop-children function) +;;(define-extern drop-plat-spawn object) ;; unknown type +(define-extern drop-plat-init-by-other function) +;;(define-extern drop-plat-idle object) ;; unknown type +(define-extern drop-plat-set-fade function) +;;(define-extern citb-drop-plat-active object) ;; unknown type +;;(define-extern drop-plat-die object) ;; unknown type +;;(define-extern *citb-drop-plat-red-sg* object) ;; unknown type +;;(define-extern drop-plat-drop object) ;; unknown type +;;(define-extern handle-inline-array object) ;; unknown type +;;(define-extern *citb-drop-plat-yellow-sg* object) ;; unknown type +;;(define-extern drop-plat-rise object) ;; unknown type +(define-extern citb-drop-plat type) +(define-extern citb-drop-plat-drop-all-children function) +;;(define-extern drop-plat object) ;; unknown type +;;(define-extern *citb-drop-plat-green-sg* object) ;; unknown type +;;(define-extern *citb-drop-plat-sg* object) ;; unknown type +;;(define-extern citb-drop-plat-idle object) ;; unknown type +;;(define-extern *citb-drop-plat-blue-sg* object) ;; unknown type +;;(define-extern plat-type object) ;; unknown type +;;(define-extern player-stepped object) ;; unknown type +;;(define-extern count object) ;; unknown type +;;(define-extern drop object) ;; unknown type +;;(define-extern *assistant-lavatube-end-sg* object) ;; unknown type +(define-extern assistant-lavatube-end type) +;;(define-extern snow-bunny1 object) ;; unknown type +;;(define-extern snow-bunny2 object) ;; unknown type +;;(define-extern prec-button2 object) ;; unknown type +;;(define-extern irisdoor2 object) ;; unknown type +;;(define-extern assembly-moves object) ;; unknown type +;;(define-extern teleporter-on object) ;; unknown type +;;(define-extern continue-name object) ;; unknown type +;;(define-extern fire-loop object) ;; unknown type +;;(define-extern notice object) ;; unknown type +;;(define-extern robot-arm object) ;; unknown type +;;(define-extern warpgate-loop object) ;; unknown type +(define-extern cavecrystal type) +;;(define-extern *cavecrystal-sg* object) ;; unknown type +;;(define-extern cavecrystal-active object) ;; unknown type +;;(define-extern cavecrystal-idle object) ;; unknown type +;;(define-extern *cavecrystal-light-control* object) ;; unknown type +;;(define-extern bab-spid-dies object) ;; unknown type +;;(define-extern bab-spid-roar object) ;; unknown type +;;(define-extern eggs-hatch object) ;; unknown type +;;(define-extern spider-step object) ;; unknown type +;;(define-extern cavelevator object) ;; unknown type +;;(define-extern cave-spatula object) ;; unknown type +;;(define-extern trapdoor object) ;; unknown type +;;(define-extern mom-spid-dies object) ;; unknown type +;;(define-extern mom-spid-grunt object) ;; unknown type +;;(define-extern spider-mom-t1 object) ;; unknown type +;;(define-extern cavewind object) ;; unknown type +;;(define-extern crystal-light object) ;; unknown type +(define-extern baby-spider type) +(define-extern cave-water type) +(define-extern caveelevator type) +(define-extern cavespatula type) +(define-extern cavetrapdoor type) +(define-extern dark-crystal type) +(define-extern static-screen-spawn function) +;;(define-extern static-screen object) ;; unknown type +(define-extern static-screen-init-by-other function) +;;(define-extern robotboss-dda object) ;; unknown type +(define-extern target-has-all-the-cells? function) +(define-extern check-drop-level-eichar-lighteco-pops function) +(define-extern check-drop-level-bigdoor-open-pops function) +;;(define-extern light-eco-mother-active object) ;; unknown type +(define-extern light-eco-child-init-by-other function) +(define-extern check-drop-level-lighteco-big-pops function) +;;(define-extern light-eco-child-appear object) ;; unknown type +;;(define-extern light-eco-child-grabbed object) ;; unknown type +(define-extern check-drop-level-lighteco-pops function) +;;(define-extern light-eco-child-die object) ;; unknown type +(define-extern light-eco-mother-init-by-other function) +(define-extern light-eco-mother-default-event-handler function) +;;(define-extern *light-eco-big-sg* object) ;; unknown type +;;(define-extern light-eco-mother object) ;; unknown type +;;(define-extern light-eco-mother-discipate object) ;; unknown type +;;(define-extern light-eco-child object) ;; unknown type +;;(define-extern light-eco-mother-appear object) ;; unknown type +;;(define-extern light-eco-child-hit-ground object) ;; unknown type +;;(define-extern *light-eco-small-sg* object) ;; unknown type +;;(define-extern light-eco-child-idle object) ;; unknown type +(define-extern light-eco-child-default-event-handler function) +;;(define-extern white-eco-picked-up object) ;; unknown type +;;(define-extern beam-off object) ;; unknown type +;;(define-extern darkecobomb object) ;; unknown type +(define-extern darkecobomb-init-by-other function) +(define-extern arcing-shot-setup function) +;;(define-extern darkecobomb-countdown object) ;; unknown type +;;(define-extern arcing-shot-debug-trajectory object) ;; unknown type +;;(define-extern torus-verts object) ;; unknown type +;;(define-extern greenshot object) ;; unknown type +(define-extern darkecobomb-explode-if-player-high-enough function) +;;(define-extern *greenshot-sg* object) ;; unknown type +;;(define-extern darkecobomb-explode object) ;; unknown type +(define-extern redshot-init-by-other function) +(define-extern arcing-shot-calculate function) +;;(define-extern redshot-explode object) ;; unknown type +(define-extern redshot-particle-callback function) +(define-extern darkecobomb-handler function) +;;(define-extern yellowshot object) ;; unknown type +;;(define-extern yellowshot-idle object) ;; unknown type +;;(define-extern redshot object) ;; unknown type +(define-extern yellowshot-init-by-other function) +(define-extern greenshot-init-by-other function) +;;(define-extern greenshot-idle object) ;; unknown type +;;(define-extern arcing-shot object) ;; unknown type +;;(define-extern darkecobomb-idle object) ;; unknown type +;;(define-extern torus object) ;; unknown type +(define-extern redshot-trans function) +;;(define-extern *redring-sg* object) ;; unknown type +;;(define-extern darkecobomb-land object) ;; unknown type +(define-extern arcing-shot-draw function) +(define-extern redshot-handler function) +;;(define-extern *darkecobomb-sg* object) ;; unknown type +;;(define-extern redshot-idle object) ;; unknown type +;;(define-extern redshot-wait object) ;; unknown type +;;(define-extern bomb-going object) ;; unknown type +;;(define-extern flash object) ;; unknown type +;;(define-extern hit-jak object) ;; unknown type +;;(define-extern bomb-done object) ;; unknown type +;;(define-extern missed-jak object) ;; unknown type +;;(define-extern ecoclaw-activate object) ;; unknown type +(define-extern ecoclaw-beam-particle-callback function) +;;(define-extern ecoclaw-part-info object) ;; unknown type +(define-extern ecoclaw type) +(define-extern ecoclaw-handler function) +;;(define-extern *silodoor-sg* object) ;; unknown type +(define-extern finalbosscam-init-by-other function) +;;(define-extern finalbosscam object) ;; unknown type +;;(define-extern *ecoclaw-sg* object) ;; unknown type +;;(define-extern ecoclaw-idle object) ;; unknown type +;;(define-extern *finalbosscam-sg* object) ;; unknown type +(define-extern robotboss-manipy-trans-hook function) +;;(define-extern *med-res-snow1-sg* object) ;; unknown type +(define-extern silodoor type) +;;(define-extern set-pivot object) ;; unknown type +;;(define-extern *ecoclaw* object) ;; unknown type +;;(define-extern beam-on object) ;; unknown type +;;(define-extern green-eco-lurker object) ;; unknown type +;;(define-extern *green-eco-lurker-sg* object) ;; unknown type +(define-extern green-eco-lurker-gen-init-by-other function) +;;(define-extern *green-eco-lurker-nav-enemy-info* object) ;; unknown type +;;(define-extern green-eco-lurker-gen object) ;; unknown type +;;(define-extern green-eco-lurker-appear object) ;; unknown type +;;(define-extern green-eco-lurker-wait-to-appear object) ;; unknown type +(define-extern green-eco-lurker-init-by-other function) +;;(define-extern green-eco-lurker-appear-land object) ;; unknown type +;;(define-extern spawn-minions object) ;; unknown type +;;(define-extern green-eco-lurker-tune-spheres object) ;; unknown type +;;(define-extern blob-died object) ;; unknown type +;;(define-extern blob-hit-jak object) ;; unknown type +;;(define-extern redshot-launch-info object) ;; unknown type +;;(define-extern redshot-launch-array object) ;; unknown type +;;(define-extern *robotboss-redeco-sg* object) ;; unknown type +(define-extern robotboss-yellow-eco-off function) +(define-extern robotboss-yellow-eco-on function) +(define-extern robotboss-anim-blend-loop function) +;;(define-extern robotboss-red-dark-bomb-wait object) ;; unknown type +;;(define-extern robotboss-green object) ;; unknown type +(define-extern robotboss-yellowshot function) +(define-extern robotboss-bomb-handler function) +;;(define-extern robotboss-green-dark-bomb-wait object) ;; unknown type +(define-extern robotboss-greenshot function) +(define-extern robotboss-always-trans function) +;;(define-extern robotboss-green-wait object) ;; unknown type +;;(define-extern robotboss-daxter-sacrifice-movie object) ;; unknown type +(define-extern robotboss-blue-done function) +;;(define-extern robotboss-red object) ;; unknown type +;;(define-extern robotboss-blue-wait object) ;; unknown type +;;(define-extern robotboss-yellow object) ;; unknown type +;;(define-extern robotboss-green-dark-bomb object) ;; unknown type +(define-extern robotboss-is-red-hit function) +(define-extern robotboss-redshot function) +(define-extern robotboss-is-yellow-hit function) +;;(define-extern robotboss-red-dark-bomb object) ;; unknown type +;;(define-extern robotboss-blue-dark-bomb object) ;; unknown type +(define-extern robotboss-position function) +(define-extern robotboss-blue-beam function) +;;(define-extern *robotboss-blueeco-sg* object) ;; unknown type +(define-extern robotboss-time-to-shoot-yellow function) +;;(define-extern *robotboss-yelloweco-sg* object) ;; unknown type +(define-extern robotboss-shooting-trans function) +(define-extern robotboss-cut-cam function) +;;(define-extern robotboss-yellow-dark-bomb-wait object) ;; unknown type +(define-extern robotboss-cut-cam-exit function) +;;(define-extern robotboss-yellow-wait object) ;; unknown type +(define-extern robotboss-darkecobomb function) +;;(define-extern robotboss-yellow-dark-bomb object) ;; unknown type +(define-extern robotboss-redshot-fill-array function) +(define-extern robotboss-set-dda function) +;;(define-extern robotboss-white-eco-movie object) ;; unknown type +(define-extern robotboss-setup-for-hits function) +;;(define-extern robotboss-red-wait object) ;; unknown type +;;(define-extern robotboss-blue-dark-bomb-wait object) ;; unknown type +(define-extern robotboss-handler function) +(define-extern power-left type) +;;(define-extern *powercellalt-sg* object) ;; unknown type +;;(define-extern powercellalt object) ;; unknown type +;;(define-extern *power-left-sg* object) ;; unknown type +;;(define-extern *power-right-sg* object) ;; unknown type +(define-extern power-right type) +;;(define-extern fin-door object) ;; unknown type +(define-extern powercellalt-init-by-other function) +;;(define-extern brightness object) ;; unknown type +;;(define-extern *robotboss-cinematic-sg* object) ;; unknown type +;;(define-extern *plat-eco-finalboss-unlit-sg* object) ;; unknown type +;;(define-extern sage-finalboss-credits object) ;; unknown type +;;(define-extern sage-finalboss-particle object) ;; unknown type +(define-extern sage-finalboss-extra-enter function) +;;(define-extern *plat-eco-finalboss-lit-sg* object) ;; unknown type +;;(define-extern *jak-white-sg* object) ;; unknown type +(define-extern sage-finalboss-extra-trans function) +(define-extern sage-finalboss-credit-particle function) +(define-extern plat-eco-finalboss type) +;;(define-extern *sage-finalboss-sg* object) ;; unknown type +(define-extern ogreboss type) +;;(define-extern activate-particle object) ;; unknown type +;;(define-extern deactivate-particle object) ;; unknown type +;;(define-extern babak-alarmed object) ;; unknown type +;;(define-extern blob-dies object) ;; unknown type +;;(define-extern blob-land object) ;; unknown type +;;(define-extern blob-roar object) ;; unknown type +;;(define-extern bfg-fizzle object) ;; unknown type +;;(define-extern dark-eco-buzz object) ;; unknown type +;;(define-extern dark-eco-fire object) ;; unknown type +;;(define-extern explod-bfg object) ;; unknown type +;;(define-extern explosion2 object) ;; unknown type +;;(define-extern robo-servo2 object) ;; unknown type +;;(define-extern robo-servo3 object) ;; unknown type +;;(define-extern robo-servo5 object) ;; unknown type +;;(define-extern robo-servo6 object) ;; unknown type +;;(define-extern robo-servo9 object) ;; unknown type +;;(define-extern robo-yell object) ;; unknown type +;;(define-extern *evilbro-intro-sg* object) ;; unknown type +(define-extern evilsis type) +;;(define-extern *evilsis-intro-sg* object) ;; unknown type +(define-extern evilbro type) +(define-extern misty-part type) +;;(define-extern eggtop-idle object) ;; unknown type +(define-extern eggtop type) +;;(define-extern eggtop-close object) ;; unknown type +;;(define-extern *jng-iris-door-sg* object) ;; unknown type +;;(define-extern *eggtop-sg* object) ;; unknown type +(define-extern jng-iris-door type) +(define-extern plat-flip type) +;;(define-extern *plat-flip-sg* object) ;; unknown type +;;(define-extern plat-flip-idle object) ;; unknown type +;;(define-extern sync-percent object) ;; unknown type +;;(define-extern *aphid-sg* object) ;; unknown type +(define-extern aphid-vulnerable function) +;;(define-extern aphid object) ;; unknown type +(define-extern aphid-init-by-other function) +;;(define-extern *aphid-nav-enemy-info* object) ;; unknown type +(define-extern aphid-invulnerable function) +;;(define-extern plant-boss-root-idle object) ;; unknown type +;;(define-extern plant-boss-intro object) ;; unknown type +;;(define-extern plant-boss-reset object) ;; unknown type +;;(define-extern plant-boss-root-die object) ;; unknown type +;;(define-extern plant-boss-dead-bounce object) ;; unknown type +;;(define-extern plant-boss-dead-idle object) ;; unknown type +(define-extern plant-boss-back-arms-init function) +;;(define-extern plant-boss-vulnerable object) ;; unknown type +;;(define-extern plant-boss-spawn object) ;; unknown type +;;(define-extern plant-boss-hit object) ;; unknown type +(define-extern plant-boss-root-init function) +;;(define-extern *plant-boss-vine-sg* object) ;; unknown type +;;(define-extern *plant-boss-back-arms-sg* object) ;; unknown type +;;(define-extern plant-boss-arm object) ;; unknown type +;;(define-extern plant-boss-back-arms-hit object) ;; unknown type +;;(define-extern plant-boss-vine-idle object) ;; unknown type +;;(define-extern *plant-boss-sg* object) ;; unknown type +(define-extern plant-boss-vine-init function) +;;(define-extern *plant-boss-shadow-control* object) ;; unknown type +;;(define-extern *plant-boss-leaf-sg* object) ;; unknown type +;;(define-extern plant-boss-idle object) ;; unknown type +(define-extern plant-boss-generic-event-handler function) +;;(define-extern plant-boss-arm-hit object) ;; unknown type +;;(define-extern plant-boss-arm-die object) ;; unknown type +;;(define-extern plant-boss-leaf object) ;; unknown type +;;(define-extern plant-boss-vine-hit object) ;; unknown type +;;(define-extern plant-boss-leaf-open object) ;; unknown type +(define-extern plant-boss-leaf-init function) +;;(define-extern plant-boss-eat object) ;; unknown type +(define-extern plant-boss-default-event-handler function) +;;(define-extern *plant-boss-arm-sg* object) ;; unknown type +;;(define-extern plant-boss-back-arms-die object) ;; unknown type +;;(define-extern plant-boss-attack object) ;; unknown type +(define-extern plant-boss-post function) +;;(define-extern *plant-boss-root-sg* object) ;; unknown type +;;(define-extern plant-boss-leaf-idle object) ;; unknown type +;;(define-extern plant-boss-leaf-die object) ;; unknown type +(define-extern plant-boss-arm-init function) +;;(define-extern plant-boss-dead object) ;; unknown type +;;(define-extern plant-boss-leaf-bounce object) ;; unknown type +;;(define-extern plant-boss-leaf-close object) ;; unknown type +;;(define-extern plant-boss-far-idle object) ;; unknown type +;;(define-extern plant-boss-back-arms-idle object) ;; unknown type +;;(define-extern plant-boss-leaf-open-idle object) ;; unknown type +;;(define-extern plant-boss-arm-idle object) ;; unknown type +;;(define-extern plant-boss-vine-die object) ;; unknown type +;;(define-extern hit object) ;; unknown type +;;(define-extern aphid-dies object) ;; unknown type +;;(define-extern aphid-roar object) ;; unknown type +;;(define-extern aphid-step object) ;; unknown type +;;(define-extern darkvine-down object) ;; unknown type +;;(define-extern darkvine-move object) ;; unknown type +;;(define-extern darkvine-up object) ;; unknown type +;;(define-extern irisdoor1 object) ;; unknown type +;;(define-extern plant-chomp object) ;; unknown type +;;(define-extern plant-eye object) ;; unknown type +;;(define-extern plant-fall object) ;; unknown type +;;(define-extern plant-laugh object) ;; unknown type +;;(define-extern plant-ouch object) ;; unknown type +;;(define-extern plant-recover object) ;; unknown type +;;(define-extern plant-roar object) ;; unknown type +;;(define-extern extra-count object) ;; unknown type +(define-extern darkvine type) +(define-extern jungle-elevator type) +;;(define-extern bouncer-smush object) ;; unknown type +;;(define-extern bouncer-fire object) ;; unknown type +;;(define-extern bouncer-wait object) ;; unknown type +;;(define-extern *bouncer-sg* object) ;; unknown type +;;(define-extern *hopper-nav-enemy-info* object) ;; unknown type +(define-extern hopper-do-jump function) +(define-extern hopper-jump-to function) +(define-extern hopper type) +;;(define-extern *hopper-sg* object) ;; unknown type +(define-extern hopper-find-ground function) +;;(define-extern junglesnake-tilt-joint object) ;; unknown type +;;(define-extern junglesnake-tracking object) ;; unknown type +;;(define-extern *junglesnake-twist-max-deltas* object) ;; unknown type +(define-extern junglesnake-default-event-handler function) +(define-extern junglesnake type) +;;(define-extern junglesnake-wake object) ;; unknown type +;;(define-extern junglesnake-die object) ;; unknown type +;;(define-extern junglesnake-attack object) ;; unknown type +;;(define-extern junglesnake-sleeping object) ;; unknown type +(define-extern junglesnake-joint-callback function) +;;(define-extern junglesnake-give-up object) ;; unknown type +;;(define-extern junglesnake-twist-joint object) ;; unknown type +;;(define-extern *junglesnake-sg* object) ;; unknown type +;;(define-extern *darkvine-sg* object) ;; unknown type +;;(define-extern darkvine-idle object) ;; unknown type +(define-extern darkvine-event-handler function) +;;(define-extern darkvine-retreat object) ;; unknown type +;;(define-extern darkvine-die object) ;; unknown type +;;(define-extern precurbridge-idle object) ;; unknown type +;;(define-extern *maindoor-sg* object) ;; unknown type +(define-extern lurkerm-tall-sail type) +;;(define-extern precurbridge-span object) ;; unknown type +;;(define-extern precurbridge-active object) ;; unknown type +;;(define-extern lurkerm-tall-sail-idle object) ;; unknown type +;;(define-extern *lurkerm-tall-sail-sg* object) ;; unknown type +(define-extern logtrap type) +;;(define-extern *accordian-sg* object) ;; unknown type +(define-extern accordian type) +;;(define-extern lurkerm-short-sail-idle object) ;; unknown type +(define-extern maindoor type) +;;(define-extern maindoor-closed object) ;; unknown type +;;(define-extern *logtrap-sg* object) ;; unknown type +;;(define-extern *junglecam-sg* object) ;; unknown type +;;(define-extern *med-res-firecanyon-sg* object) ;; unknown type +;;(define-extern *jungle-camera-sg* object) ;; unknown type +(define-extern precurbridge type) +(define-extern lurkerm-piston type) +;;(define-extern *sidedoor-sg* object) ;; unknown type +;;(define-extern jngpusher-idle object) ;; unknown type +;;(define-extern precurbridge-activate object) ;; unknown type +;;(define-extern lurkerm-short-sail object) ;; unknown type +(define-extern sidedoor type) +(define-extern junglecam type) +;;(define-extern *towertop-sg* object) ;; unknown type +(define-extern towertop type) +;;(define-extern accordian-idle object) ;; unknown type +(define-extern jungle-water type) +;;(define-extern *lurkerm-piston-sg* object) ;; unknown type +;;(define-extern towertop-idle object) ;; unknown type +;;(define-extern *jngpusher-sg* object) ;; unknown type +;;(define-extern *lurkerm-short-sail-sg* object) ;; unknown type +;;(define-extern precurbridgecam object) ;; unknown type +;;(define-extern maindoor-open object) ;; unknown type +;;(define-extern lurkerm-piston-idle object) ;; unknown type +;;(define-extern ripple-for-jungle-water object) ;; unknown type +;;(define-extern *precurbridge-sg* object) ;; unknown type +;;(define-extern jngpusher object) ;; unknown type +(define-extern peri-beamcam-init-by-other function) +;;(define-extern reflector object) ;; unknown type +;;(define-extern periscope-activate object) ;; unknown type +;;(define-extern reflector-mirror-idle object) ;; unknown type +(define-extern reflector-init-by-other function) +(define-extern periscope-debug-trans function) +;;(define-extern *reflector-mirror-sg* object) ;; unknown type +(define-extern periscope-post function) +(define-extern periscope-has-power-input? function) +(define-extern periscope-test-task-complete? function) +(define-extern periscope-update-joints function) +;;(define-extern reflector-idle object) ;; unknown type +(define-extern periscope-draw-beam function) +;;(define-extern *periscope-base-sg* object) ;; unknown type +;;(define-extern *periscope-mirror-sg* object) ;; unknown type +(define-extern reflector-origin-update function) +;;(define-extern periscope-idle object) ;; unknown type +(define-extern reflector-origin type) +;;(define-extern cam-periscope object) ;; unknown type +;;(define-extern periscope-player-control object) ;; unknown type +;;(define-extern periscope-wait-for-player object) ;; unknown type +(define-extern periscope-crosshair function) +(define-extern periscope-find-aim-at-angles function) +(define-extern periscope-find-next function) +(define-extern draw-power-beam function) +(define-extern periscope-set-target-direction function) +(define-extern periscope-find-reflection-angles function) +;;(define-extern periscope-power-on object) ;; unknown type +(define-extern reflector-mirror type) +(define-extern periscope-draw-beam-impact function) +;;(define-extern periscope-wait-for-power-input object) ;; unknown type +;;(define-extern *reflector-mirror-break-sg* object) ;; unknown type +(define-extern target-close-to-point? function) +;;(define-extern reflector-origin-idle object) ;; unknown type +;;(define-extern reflector-mirror-broken object) ;; unknown type +;;(define-extern activate object) ;; unknown type +(define-extern junglefish type) +;;(define-extern *junglefish-sg* object) ;; unknown type +;;(define-extern *junglefish-nav-enemy-info* object) ;; unknown type +(define-extern fisher-fish-move function) +(define-extern fisher-spawn-ambient function) +;;(define-extern *fish-net-sg* object) ;; unknown type +;;(define-extern fisher-fish-die object) ;; unknown type +;;(define-extern *fisher-sg* object) ;; unknown type +;;(define-extern *catch-fishc-sg* object) ;; unknown type +;;(define-extern *fisher-params* object) ;; unknown type +;;(define-extern *catch-fisha-sg* object) ;; unknown type +(define-extern fisher-game-update function) +;;(define-extern fisher-fish-fall object) ;; unknown type +;;(define-extern fisher-fish-caught object) ;; unknown type +;;(define-extern fisher-fish object) ;; unknown type +;;(define-extern fisher-params object) ;; unknown type +;;(define-extern fisher-done object) ;; unknown type +(define-extern fisher-fish-water function) +(define-extern fisher-bank type) +;;(define-extern *catch-fishb-sg* object) ;; unknown type +(define-extern fisher-fish-init-by-other function) +;;(define-extern fisher-playing object) ;; unknown type +(define-extern fisher-draw-display function) +;;(define-extern *FISHER-bank* object) ;; unknown type +(define-extern fisher type) +;;(define-extern emissive-off object) ;; unknown type +;;(define-extern bounce object) ;; unknown type +;;(define-extern emissive-on object) ;; unknown type +;;(define-extern bad object) ;; unknown type +;;(define-extern fishgame object) ;; unknown type +(define-extern jungle-part type) +;;(define-extern launcherdoor-closed object) ;; unknown type +;;(define-extern *launcherdoor-maincave-sg* object) ;; unknown type +;;(define-extern *launcherdoor-sg* object) ;; unknown type +;;(define-extern launcherdoor-open object) ;; unknown type +(define-extern launcherdoor type) +;;(define-extern accordian-pump object) ;; unknown type +;;(define-extern bounceytarp object) ;; unknown type +;;(define-extern frog-dies object) ;; unknown type +;;(define-extern frog-idle object) ;; unknown type +;;(define-extern frog-jump object) ;; unknown type +;;(define-extern frogspeak object) ;; unknown type +;;(define-extern lurkerfish-bite object) ;; unknown type +;;(define-extern lurkerfish-dies object) ;; unknown type +;;(define-extern lurkerfish-swim object) ;; unknown type +;;(define-extern snake-bite object) ;; unknown type +;;(define-extern snake-idle object) ;; unknown type +;;(define-extern snake-rattle object) ;; unknown type +;;(define-extern logtrap1 object) ;; unknown type +;;(define-extern logtrap2 object) ;; unknown type +;;(define-extern lurkerm-squeak object) ;; unknown type +;;(define-extern prec-button3 object) ;; unknown type +;;(define-extern pc-bridge object) ;; unknown type +;;(define-extern floating-rings object) ;; unknown type +;;(define-extern bridge-hover object) ;; unknown type +;;(define-extern heart-drone object) ;; unknown type +;;(define-extern jungle-river object) ;; unknown type +;;(define-extern jungle-shores object) ;; unknown type +;;(define-extern lurkerm-hum object) ;; unknown type +;;(define-extern steam-release object) ;; unknown type +;;(define-extern wind-loop object) ;; unknown type +(define-extern racer-bank type) +;;(define-extern racer-info object) ;; unknown type +;;(define-extern *balloon-sg* object) ;; unknown type +;;(define-extern *RACER-bank* object) ;; unknown type +(define-extern zoomer-heat-slice-color function) +(define-extern part-hud-zoomer-heat-slice-03-func function) +;;(define-extern hud-bike-speed object) ;; unknown type +(define-extern part-hud-racer-speed-func function) +(define-extern part-hud-zoomer-heat-slice-02-func function) +(define-extern part-hud-racer-heat-func function) +(define-extern part-hud-zoomer-heat-slice-01-func function) +;;(define-extern hud-bike-heat object) ;; unknown type +(define-extern racer-effect function) +;;(define-extern *racer-explode-sg* object) ;; unknown type +;;(define-extern *racer-shadow-control* object) ;; unknown type +;;(define-extern *racer-sg* object) ;; unknown type +;;(define-extern wait-for-start object) ;; unknown type +(define-extern blocking-plane-destroy function) +(define-extern blocking-plane-spawn function) +;;(define-extern wait-for-return object) ;; unknown type +(define-extern racer-on-ground? function) +(define-extern racer-xz function) +;;(define-extern *racer-air-mods* object) ;; unknown type +(define-extern racer-collision function) +(define-extern racer-sounds function) +(define-extern racer-find-prop-point function) +(define-extern target-racing-turn-anim function) +(define-extern racer-integrate function) +(define-extern racer-effects function) +(define-extern racer-service-slide function) +(define-extern target-racing-post function) +(define-extern racer-buzz function) +(define-extern target-racing-center-anim function) +(define-extern racer-cushion function) +(define-extern racer-thrust function) +;;(define-extern *racer-mods* object) ;; unknown type +(define-extern target-racing-land-anim function) +(define-extern target-racing-jump-anim function) +(define-extern racer-calc-gravity function) +(define-extern racer-bend-gravity function) +;;(define-extern target-racing-falling object) ;; unknown type +;;(define-extern target-racing-jump object) ;; unknown type +;;(define-extern target-racing-bounce object) ;; unknown type +(define-extern racer-collision-reaction function) +;;(define-extern boost object) ;; unknown type +;;(define-extern target-racing-smack object) ;; unknown type +;;(define-extern target-racing object) ;; unknown type +;;(define-extern target-racing-death object) ;; unknown type +;;(define-extern target-racing-grab object) ;; unknown type +(define-extern target-racing-smack-check function) +;;(define-extern target-racing-get-on object) ;; unknown type +;;(define-extern target-racing-get-off-jump object) ;; unknown type +;;(define-extern target-racing-clone-anim object) ;; unknown type +;;(define-extern target-racing-get-off object) ;; unknown type +;;(define-extern target-racing-get-off-hit-ground object) ;; unknown type +;;(define-extern target-racing-hit object) ;; unknown type +(define-extern balloonlurker type) +;;(define-extern smack object) ;; unknown type +;;(define-extern group-target-hit object) ;; unknown type +;;(define-extern *ef-plane-sg* object) ;; unknown type +;;(define-extern blocking-plane-idle object) ;; unknown type +(define-extern blocking-plane-init-by-other function) +;;(define-extern blocking-plane object) ;; unknown type +(define-extern flutflut-effect function) +(define-extern flutflut type) +;;(define-extern *flutflut-shadow-control* object) ;; unknown type +;;(define-extern *flutflut-sg* object) ;; unknown type +(define-extern target-flut-hit-ground-anim function) +;;(define-extern target-flut-get-on object) ;; unknown type +;;(define-extern target-flut-air-attack-hit-ground object) ;; unknown type +;;(define-extern *flut-walk-mods* object) ;; unknown type +(define-extern target-flut-dangerous-event-handler function) +;;(define-extern target-flut-hit object) ;; unknown type +(define-extern target-flut-standard-event-handler function) +;;(define-extern target-flut-stance object) ;; unknown type +;;(define-extern target-flut-hit-ground object) ;; unknown type +(define-extern flut-bank type) +(define-extern target-flut-post-post function) +;;(define-extern target-flut-grab object) ;; unknown type +;;(define-extern target-flut-falling object) ;; unknown type +;;(define-extern target-flut-death object) ;; unknown type +;;(define-extern target-flut-air-attack object) ;; unknown type +;;(define-extern *flut-air-attack-mods* object) ;; unknown type +;;(define-extern *flut-jump-mods* object) ;; unknown type +;;(define-extern target-flut-double-jump object) ;; unknown type +;;(define-extern flut-info object) ;; unknown type +(define-extern target-flut-falling-anim-trans function) +;;(define-extern target-flut-get-off-jump object) ;; unknown type +;;(define-extern target-flut-jump object) ;; unknown type +;;(define-extern target-flut-walk object) ;; unknown type +(define-extern target-flut-post function) +;;(define-extern *flut-double-jump-mods* object) ;; unknown type +;;(define-extern target-flut-get-off object) ;; unknown type +;;(define-extern target-flut-running-attack object) ;; unknown type +;;(define-extern *flut-run-attack-mods* object) ;; unknown type +;;(define-extern *FLUT-bank* object) ;; unknown type +;;(define-extern target-flut-get-off-hit-ground object) ;; unknown type +;;(define-extern target-flut-clone-anim object) ;; unknown type +;;(define-extern group-flut-attack-strike-ground object) ;; unknown type +;;(define-extern flut-death object) ;; unknown type +;;(define-extern long-jump object) ;; unknown type +;;(define-extern *farmer-sg* object) ;; unknown type +(define-extern farmer type) +(define-extern explorer type) +;;(define-extern *explorer-sg* object) ;; unknown type +;;(define-extern *assistant-sg* object) ;; unknown type +(define-extern assistant type) +(define-extern check-drop-level-assistant function) +(define-extern sage type) +;;(define-extern *sage-sg* object) ;; unknown type +;;(define-extern yakow-kicked object) ;; unknown type +;;(define-extern yakow-idle object) ;; unknown type +;;(define-extern yakow-walk-to object) ;; unknown type +(define-extern yakow-common-post function) +;;(define-extern *yakow-sg* object) ;; unknown type +(define-extern yakow-bank type) +(define-extern yakow-post function) +(define-extern yakow-facing-player? function) +;;(define-extern *YAKOW-bank* object) ;; unknown type +;;(define-extern yakow-notice object) ;; unknown type +(define-extern yakow-blend-walk-run function) +;;(define-extern *village1cam-sg* object) ;; unknown type +(define-extern yakow-facing-point? function) +;;(define-extern yakow-graze-kicked object) ;; unknown type +(define-extern yakow-run-post function) +;;(define-extern yakow-run-away object) ;; unknown type +(define-extern yakow-simple-post function) +;;(define-extern yakow-graze object) ;; unknown type +(define-extern yakow-facing-direction? function) +;;(define-extern yakow-die object) ;; unknown type +(define-extern yakow-default-event-handler function) +(define-extern yakow-task-complete? function) +(define-extern yakow-cam function) +(define-extern yakow type) +(define-extern yakow-generate-travel-vector function) +;;(define-extern yakow-2 object) ;; unknown type +;;(define-extern yakow-1 object) ;; unknown type +;;(define-extern hutlamp-idle object) ;; unknown type +(define-extern revcycleprop type) +;;(define-extern *hutlamp-sg* object) ;; unknown type +;;(define-extern windmill-sail-idle object) ;; unknown type +;;(define-extern *med-res-village13-sg* object) ;; unknown type +;;(define-extern starfish object) ;; unknown type +(define-extern reflector-middle type) +;;(define-extern *starfish-sg* object) ;; unknown type +;;(define-extern starfish-patrol object) ;; unknown type +;;(define-extern *med-res-training-sg* object) ;; unknown type +;;(define-extern villa-starfish-idle object) ;; unknown type +;;(define-extern *med-res-beach3-sg* object) ;; unknown type +(define-extern windmill-sail type) +;;(define-extern *windmill-sail-sg* object) ;; unknown type +;;(define-extern mayorgears-idle object) ;; unknown type +(define-extern villa-starfish type) +;;(define-extern sagesail-idle object) ;; unknown type +;;(define-extern *med-res-beach-sg* object) ;; unknown type +;;(define-extern village-fish object) ;; unknown type +;;(define-extern *reflector-middle-sg* object) ;; unknown type +(define-extern hutlamp type) +(define-extern update-clock function) +;;(define-extern *revcycleprop-sg* object) ;; unknown type +(define-extern starfish-spawn-child function) +;;(define-extern villa-fisha object) ;; unknown type +;;(define-extern cyclegen object) ;; unknown type +(define-extern revcycle type) +;;(define-extern windspinner-idle object) ;; unknown type +;;(define-extern villa-fishb object) ;; unknown type +;;(define-extern *mayorgears-sg* object) ;; unknown type +(define-extern process-drawable-child-count function) +;;(define-extern ripple-for-villagea-water object) ;; unknown type +(define-extern sagesail type) +;;(define-extern *revcycle-sg* object) ;; unknown type +;;(define-extern village-fish-idle object) ;; unknown type +;;(define-extern reflector-middle-idle object) ;; unknown type +(define-extern starfish-init-by-other function) +;;(define-extern *med-res-village11-sg* object) ;; unknown type +(define-extern villagea-water type) +;;(define-extern *med-res-beach1-sg* object) ;; unknown type +(define-extern reflector-end type) +;;(define-extern *med-res-jungle1-sg* object) ;; unknown type +;;(define-extern *med-res-jungle2-sg* object) ;; unknown type +;;(define-extern reflector-end-idle object) ;; unknown type +;;(define-extern *sagesail-sg* object) ;; unknown type +(define-extern set-period function) +;;(define-extern *med-res-jungle-sg* object) ;; unknown type +;;(define-extern *starfish-nav-enemy-info* object) ;; unknown type +;;(define-extern *med-res-village12-sg* object) ;; unknown type +;;(define-extern *med-res-misty-sg* object) ;; unknown type +;;(define-extern starfish-idle object) ;; unknown type +;;(define-extern *med-res-beach2-sg* object) ;; unknown type +(define-extern windspinner type) +;;(define-extern *windspinner-sg* object) ;; unknown type +(define-extern mayorgears type) +;;(define-extern fishermans-boat-player-control object) ;; unknown type +;;(define-extern fishermans-boat-measurements object) ;; unknown type +(define-extern fishermans-boat-play-sounds function) +(define-extern fishermans-boat-reset-physics function) +(define-extern fishermans-boat type) +(define-extern fishermans-boat-set-dock-point function) +;;(define-extern vehicle-path object) ;; unknown type +;;(define-extern *boat-throttle-control-table* object) ;; unknown type +;;(define-extern fishermans-boat-ride-to-village1 object) ;; unknown type +;;(define-extern *fb-evilsis-sg* object) ;; unknown type +;;(define-extern *boat-turning-radius-table* object) ;; unknown type +(define-extern fishermans-boat-wave function) +(define-extern fishermans-boat-enter-dock? function) +;;(define-extern boat-stabilizer object) ;; unknown type +;;(define-extern fishermans-boat-entering-village object) ;; unknown type +;;(define-extern *fishermans-boat-constants* object) ;; unknown type +(define-extern fishermans-boat-set-throttle-by-speed function) +(define-extern fishermans-boat-post function) +(define-extern fishermans-boat-set-path-point function) +;;(define-extern fishermans-boat-docked-village object) ;; unknown type +(define-extern fishermans-boat-leave-dock? function) +(define-extern fishermans-boat-spawn-particles function) +;;(define-extern *fb-evilbro-sg* object) ;; unknown type +;;(define-extern fishermans-boat-entering-misty object) ;; unknown type +;;(define-extern *fishermans-boat-sg* object) ;; unknown type +;;(define-extern fishermans-boat-leaving-misty object) ;; unknown type +;;(define-extern vehicle-controller object) ;; unknown type +;;(define-extern fishermans-boat-docked-misty object) ;; unknown type +;;(define-extern fishermans-boat-ride-to-misty object) ;; unknown type +;;(define-extern fishermans-boat-leaving-village object) ;; unknown type +(define-extern fishermans-boat-next-path-point function) +(define-extern bird-bob-func function) +(define-extern villagea-part type) +(define-extern check-drop-level-village1-fountain-nosplash function) +(define-extern check-drop-level-village1-fountain function) +(define-extern sparticle-seagull-moon function) +(define-extern check-drop-level-sagehut function) +;;(define-extern sequenceA-village1 object) ;; unknown type +(define-extern sequenceA-village1-init-by-other function) +(define-extern sequenceA-village1-trans-hook function) +;;(define-extern sidekick-human object) ;; unknown type +;;(define-extern *sidekick-human-sg* object) ;; unknown type +;;(define-extern *tra-pontoon-sg* object) ;; unknown type +;;(define-extern *training-cam-sg* object) ;; unknown type +;;(define-extern *scarecrow-a-sg* object) ;; unknown type +(define-extern scarecrow-a type) +(define-extern tra-pontoon type) +(define-extern tra-iris-door type) +(define-extern training-cam type) +(define-extern scarecrow-b type) +;;(define-extern *scarecrow-a-break-sg* object) ;; unknown type +;;(define-extern *scarecrow-b-break-sg* object) ;; unknown type +;;(define-extern ripple-for-training-water object) ;; unknown type +;;(define-extern *scarecrow-b-sg* object) ;; unknown type +(define-extern training-water type) +;;(define-extern *tra-iris-door-sg* object) ;; unknown type +;;(define-extern *tra-pontoon-constants* object) ;; unknown type +;;(define-extern group-scarecrow-explode object) ;; unknown type +;;(define-extern group-scarecrow-hit object) ;; unknown type +;;(define-extern group-scarecrow-joint-explode object) ;; unknown type +(define-extern check-drop-level-training-spout-rain function) +(define-extern check-drop-level-training-mist function) +(define-extern tra-sparticle-seagull-moon function) +(define-extern training-part type) +(define-extern tra-bird-bob-func function) +(define-extern breakaway-left type) +(define-extern misty-cam-restore function) +(define-extern actor-wait-for-period function) +(define-extern mistycam type) +(define-extern boatpaddle type) +;;(define-extern breakaway-about-to-fall object) ;; unknown type +(define-extern mis-bone-bridge type) +;;(define-extern *breakaway-left-sg* object) ;; unknown type +(define-extern boat-fuelcell type) +;;(define-extern mis-bone-bridge-idle object) ;; unknown type +;;(define-extern *bone-platform-constants* object) ;; unknown type +;;(define-extern *mis-bone-platform-sg* object) ;; unknown type +;;(define-extern *breakaway-mid-sg* object) ;; unknown type +;;(define-extern mis-bone-bridge-hit object) ;; unknown type +(define-extern breakaway-right type) +;;(define-extern breakaway-fall object) ;; unknown type +;;(define-extern breakaway object) ;; unknown type +(define-extern breakaway-mid type) +;;(define-extern mis-bone-bridge-bump object) ;; unknown type +(define-extern bone-platform type) +;;(define-extern mis-bone-bridge-fall object) ;; unknown type +;;(define-extern boat-fuelcell-die object) ;; unknown type +(define-extern misty-battlecontroller type) +;;(define-extern *boatpaddle-sg* object) ;; unknown type +;;(define-extern boat-fuelcell-idle object) ;; unknown type +(define-extern mis-bone-bridge-event-handler function) +;;(define-extern boatpaddle-idle object) ;; unknown type +(define-extern windturbine type) +;;(define-extern breakaway-idle object) ;; unknown type +;;(define-extern windturbine-idle object) ;; unknown type +;;(define-extern *breakaway-right-sg* object) ;; unknown type +;;(define-extern boat-fuelcell-spawn object) ;; unknown type +;;(define-extern *mistycam-sg* object) ;; unknown type +;;(define-extern *mis-bone-bridge-sg* object) ;; unknown type +;;(define-extern *windturbine-sg* object) ;; unknown type +;;(define-extern task-complete object) ;; unknown type +;;(define-extern particle-select object) ;; unknown type +;;(define-extern animation-select object) ;; unknown type +;;(define-extern *rounddoor-sg* object) ;; unknown type +;;(define-extern silostep-camera object) ;; unknown type +(define-extern misty-camera-view function) +(define-extern silostep type) +;;(define-extern silostep-rise object) ;; unknown type +;;(define-extern silostep-idle object) ;; unknown type +;;(define-extern *silostep-sg* object) ;; unknown type +(define-extern rounddoor type) +;;(define-extern trigger-rise object) ;; unknown type +;;(define-extern keg-conveyor-idle object) ;; unknown type +(define-extern keg-conveyor type) +(define-extern keg-conveyor-spawn-keg function) +;;(define-extern keg-on-path object) ;; unknown type +;;(define-extern keg-conveyor-paddle-idle object) ;; unknown type +(define-extern keg-conveyor-paddle-init-by-other function) +;;(define-extern *keg-conveyor-paddle-sg* object) ;; unknown type +(define-extern keg-update-smush function) +(define-extern keg-post function) +;;(define-extern *keg-sg* object) ;; unknown type +;;(define-extern keg object) ;; unknown type +;;(define-extern keg-on-paddle object) ;; unknown type +(define-extern keg-conveyor-spawn-bouncing-keg function) +;;(define-extern keg-conveyor-paddle object) ;; unknown type +;;(define-extern keg-in-chute object) ;; unknown type +(define-extern keg-bounce-set-particle-rotation-callback function) +;;(define-extern keg-die object) ;; unknown type +;;(define-extern *keg-conveyor-keg-spawn-table* object) ;; unknown type +;;(define-extern keg-paddle-to-path object) ;; unknown type +;;(define-extern *keg-conveyor-sg* object) ;; unknown type +(define-extern keg-event-handler function) +(define-extern keg-init-by-other function) +;;(define-extern detach object) ;; unknown type +;;(define-extern ripple-for-small-mud object) ;; unknown type +(define-extern mud type) +;;(define-extern ripple-for-mud object) ;; unknown type +;;(define-extern water-anim-fade-dist object) ;; unknown type +(define-extern muse type) +;;(define-extern muse-idle object) ;; unknown type +;;(define-extern *muse-nav-enemy-info* object) ;; unknown type +(define-extern muse-check-dest-point function) +(define-extern analyze-point-on-path-segment function) +(define-extern muse-get-path-point function) +;;(define-extern point-on-path-segment-info object) ;; unknown type +;;(define-extern muse-caught object) ;; unknown type +;;(define-extern *muse-sg* object) ;; unknown type +;;(define-extern *bonelurker-sg* object) ;; unknown type +(define-extern bonelurker-push-post function) +(define-extern bonelurker type) +;;(define-extern *bonelurker-nav-enemy-info* object) ;; unknown type +(define-extern bonelurker-stunned-event-handler function) +(define-extern bonelurker-set-small-bounds-sphere function) +;;(define-extern bonelurker-stun object) ;; unknown type +(define-extern bonelurker-set-large-bounds-sphere function) +;;(define-extern quicksandlurker-missile-init-data object) ;; unknown type +;;(define-extern quicksandlurker-attack object) ;; unknown type +;;(define-extern quicksandlurker-missile-idle object) ;; unknown type +(define-extern spawn-quicksandlurker-missile function) +;;(define-extern quicksandlurker-yawn object) ;; unknown type +;;(define-extern quicksandlurker-hide object) ;; unknown type +(define-extern intersects-nav-mesh? function) +(define-extern quicksandlurker-check-hide-transition function) +;;(define-extern quicksandlurker-die object) ;; unknown type +(define-extern get-height-over-navmesh! function) +;;(define-extern *quicksandlurker-sg* object) ;; unknown type +;;(define-extern quicksandlurker-missile object) ;; unknown type +;;(define-extern quicksandlurker-victory object) ;; unknown type +(define-extern quicksandlurker-default-event-handler function) +;;(define-extern quicksandlurker-idle object) ;; unknown type +(define-extern quicksandlurker-spit function) +;;(define-extern quicksandlurker-missile-impact object) ;; unknown type +(define-extern orient-to-face-target function) +;;(define-extern quicksandlurker-popup object) ;; unknown type +(define-extern quicksandlurker-post function) +(define-extern quicksandlurker-missile-init-by-other function) +;;(define-extern quicksandlurker-wait object) ;; unknown type +;;(define-extern quicksandlurker-track object) ;; unknown type +(define-extern quicksandlurker type) +(define-extern inc-angle function) +;;(define-extern victory object) ;; unknown type +(define-extern teetertotter type) +;;(define-extern *teetertotter-sg* object) ;; unknown type +;;(define-extern teetertotter-launch object) ;; unknown type +;;(define-extern teetertotter-idle object) ;; unknown type +(define-extern target-on-end-of-teetertotter? function) +;;(define-extern teetertotter-bend object) ;; unknown type +(define-extern balloonlurker-bank type) +;;(define-extern *BALLOONLURKER-bank* object) ;; unknown type +;;(define-extern *balloonlurker-sg* object) ;; unknown type +(define-extern balloonlurker-get-path-point function) +;;(define-extern balloonlurker-pilot object) ;; unknown type +(define-extern balloonlurker-post function) +;;(define-extern balloonlurker-pilot-idle object) ;; unknown type +;;(define-extern *balloonlurker-pilot-sg* object) ;; unknown type +(define-extern balloonlurker-snap-to-path-point function) +(define-extern balloonlurker-player-impulse function) +;;(define-extern balloonlurker-mine-explode object) ;; unknown type +;;(define-extern *balloonlurker-constants* object) ;; unknown type +(define-extern balloonlurker-pilot-init-by-other function) +(define-extern balloonlurker-get-next-path-point function) +;;(define-extern balloonlurker-pilot-die object) ;; unknown type +;;(define-extern *balloonlurker-rudder-joint-home* object) ;; unknown type +;;(define-extern balloonlurker-die object) ;; unknown type +(define-extern balloonlurker-play-sounds function) +(define-extern balloonlurker-find-nearest-path-point function) +;;(define-extern balloonlurker-patrol object) ;; unknown type +(define-extern balloonlurker-event-handler function) +;;(define-extern *lurker-army* object) ;; unknown type +(define-extern army-info type) +(define-extern sequenceA type) +(define-extern sequenceC-can-trans-hook-2 function) +(define-extern sequenceC-trans-hook function) +(define-extern sequenceC type) +;;(define-extern *darkecocan-sg* object) ;; unknown type +;;(define-extern *evilsis-sg* object) ;; unknown type +(define-extern sequenceB type) +(define-extern evilsib-trans-hook-hover function) +(define-extern evilsib-trans-hook-wait function) +;;(define-extern *darkecocan-glow-sg* object) ;; unknown type +;;(define-extern *evilbro-sg* object) ;; unknown type +(define-extern sequenceC-can-trans-hook function) +;;(define-extern offset-army object) ;; unknown type +(define-extern firecanyon-part type) +;;(define-extern *assistant-firecanyon-sg* object) ;; unknown type +(define-extern assistant-firecanyon type) +(define-extern check-drop-level-sagehut2 function) +(define-extern villageb-part type) +;;(define-extern *ogreboss-village2-sg* object) ;; unknown type +;;(define-extern *med-res-rolling-sg* object) ;; unknown type +;;(define-extern *village2cam-sg* object) ;; unknown type +(define-extern pontoonten type) +(define-extern exit-chamber-dummy type) +;;(define-extern *fireboulder-sg* object) ;; unknown type +(define-extern ceilingflag type) +(define-extern ogreboss-village2-trans function) +;;(define-extern ceilingflag-idle object) ;; unknown type +(define-extern villageb-ogreboss type) +;;(define-extern *allpontoons-sg* object) ;; unknown type +(define-extern boulder3-trans-2 function) +;;(define-extern allpontoons-idle object) ;; unknown type +;;(define-extern *pontoonten-constants* object) ;; unknown type +(define-extern boulder3-trans function) +(define-extern allpontoons type) +(define-extern boulder4-trans-3 function) +;;(define-extern *exit-chamber-dummy-sg* object) ;; unknown type +;;(define-extern exit-chamber-dummy-idle object) ;; unknown type +;;(define-extern ogreboss-village2 object) ;; unknown type +;;(define-extern village2cam object) ;; unknown type +;;(define-extern *med-res-village2-sg* object) ;; unknown type +;;(define-extern *pontoonfive-sg* object) ;; unknown type +;;(define-extern pontoon-die object) ;; unknown type +(define-extern fireboulder type) +;;(define-extern fireboulder-be-clone object) ;; unknown type +(define-extern boulder2-trans-2 function) +;;(define-extern ripple-for-villageb-water object) ;; unknown type +;;(define-extern fireboulder-idle object) ;; unknown type +;;(define-extern ogreboss-village2-throw object) ;; unknown type +(define-extern boulder2-trans function) +(define-extern villageb-water type) +;;(define-extern pontoon object) ;; unknown type +;;(define-extern *ceilingflag-sg* object) ;; unknown type +(define-extern fireboulder-disable-blocking-collision function) +;;(define-extern *pontoonfive-constants* object) ;; unknown type +;;(define-extern allpontoons-be-clone object) ;; unknown type +(define-extern pontoonfive type) +(define-extern boulder1-trans function) +(define-extern boulder4-trans-2 function) +;;(define-extern *pontoonten-sg* object) ;; unknown type +;;(define-extern *med-res-rolling1-sg* object) ;; unknown type +(define-extern fireboulder-hover-stuff function) +(define-extern boulder4-trans function) +;;(define-extern ogreboss-village2-idle object) ;; unknown type +;;(define-extern exit-chamber-dummy-wait-to-appear object) ;; unknown type +;;(define-extern pontoon-hidden object) ;; unknown type +;;(define-extern fireboulder-hover object) ;; unknown type +;;(define-extern *gambler-sg* object) ;; unknown type +(define-extern gambler type) +;;(define-extern *warrior-sg* object) ;; unknown type +(define-extern warrior type) +;;(define-extern *geologist-sg* object) ;; unknown type +(define-extern geologist type) +;;(define-extern swamp-rope-idle-arm object) ;; unknown type +(define-extern swamp-rope-init-by-other function) +;;(define-extern *precursor-arm-sg* object) ;; unknown type +(define-extern tetherrock-get-info function) +;;(define-extern swamp-blimp-bye-bye object) ;; unknown type +(define-extern swamp-rope-update-bounding-spheres function) +(define-extern swamp-blimp-setup function) +(define-extern blimp-trans function) +;;(define-extern *swamp-blimp-sg* object) ;; unknown type +;;(define-extern *swamp-tetherrock-explode-sg* object) ;; unknown type +(define-extern swamp-blimp type) +;;(define-extern swamp-rope-idle-rock object) ;; unknown type +;;(define-extern swamp-tetherrock-hide object) ;; unknown type +(define-extern precursor-arm-slip function) +;;(define-extern swamp-blimp-rand-vector object) ;; unknown type +(define-extern swamp-tetherrock type) +;;(define-extern *swamp-tetherrock-sg* object) ;; unknown type +;;(define-extern tetherrock-info object) ;; unknown type +;;(define-extern precursor-arm-idle object) ;; unknown type +;;(define-extern swamp-rope-oscillator object) ;; unknown type +;;(define-extern swamp-blimp-oscillator object) ;; unknown type +(define-extern swamp-rope-trans function) +;;(define-extern precursor-arm-die object) ;; unknown type +(define-extern swamp-rope-break-code function) +;;(define-extern *SWAMP_BLIMP-bank* object) ;; unknown type +(define-extern swamp-blimp-bank type) +;;(define-extern swamp-tetherrock-die object) ;; unknown type +(define-extern bustarock function) +;;(define-extern swamp-rope-break object) ;; unknown type +;;(define-extern swamp-tetherrock-idle object) ;; unknown type +;;(define-extern swamp-blimp-idle object) ;; unknown type +(define-extern precursor-arm type) +;;(define-extern swamp-tetherrock-break object) ;; unknown type +;;(define-extern precursor-arm-sink object) ;; unknown type +(define-extern swamp-rope-post function) +;;(define-extern swamp-rope-rand-float object) ;; unknown type +;;(define-extern swamp-rope object) ;; unknown type +;;(define-extern *swamp-rope-sg* object) ;; unknown type +;;(define-extern tetherrock-break-evt object) ;; unknown type +;;(define-extern arm-sink-evt object) ;; unknown type +;;(define-extern *sage-bluehut-sg* object) ;; unknown type +(define-extern sage-bluehut type) +(define-extern assistant-bluehut type) +(define-extern flutflut-bluehut type) +;;(define-extern *flutflut-bluehut-sg* object) ;; unknown type +(define-extern assistant-levitator-blue-beam function) +;;(define-extern just-particles object) ;; unknown type +;;(define-extern *assistant-village2-sg* object) ;; unknown type +(define-extern assistant-levitator-blue-glow function) +(define-extern check-drop-level-assistant-bluehut function) +;;(define-extern *jaws-sg* object) ;; unknown type +;;(define-extern *sunken-elevator-sg* object) ;; unknown type +(define-extern sunken-elevator type) +(define-extern swampgate type) +;;(define-extern *swamp-spike-sg* object) ;; unknown type +;;(define-extern *balance-plat-sg* object) ;; unknown type +(define-extern tar-plat type) +(define-extern swampcam type) +(define-extern swamp-barrel type) +;;(define-extern *tar-plat-sg* object) ;; unknown type +(define-extern balance-plat type) +(define-extern swamp-spike-set-particle-rotation-callback function) +;;(define-extern *tar-plat-constants* object) ;; unknown type +(define-extern swamp-rock-init-by-other function) +;;(define-extern swamp-spike-gate-down object) ;; unknown type +(define-extern swamp-spike-default-event-handler function) +;;(define-extern *swampcam-sg* object) ;; unknown type +(define-extern swamp-spike-post function) +;;(define-extern balance-plat-idle object) ;; unknown type +;;(define-extern *swamp-rock-sg* object) ;; unknown type +;;(define-extern swamp-spike-gate-up object) ;; unknown type +(define-extern swamp-battlecontroller type) +(define-extern swamp-spike type) +;;(define-extern swamp-spike-idle object) ;; unknown type +;;(define-extern swamp-rock-idle object) ;; unknown type +;;(define-extern swamp-rock-break object) ;; unknown type +(define-extern swamp-rock type) +;;(define-extern grow object) ;; unknown type +;;(define-extern scale-factor object) ;; unknown type +;;(define-extern swamp-bat-slave object) ;; unknown type +;;(define-extern *swamp-bat-slave-sg* object) ;; unknown type +;;(define-extern swamp-bat-slave-swoop object) ;; unknown type +(define-extern swamp-bat-launch-slave function) +;;(define-extern swamp-bat-slave-return object) ;; unknown type +;;(define-extern swamp-bat-idle-path object) ;; unknown type +;;(define-extern swamp-bat-idle object) ;; unknown type +(define-extern swamp-bat-debug function) +;;(define-extern swamp-bat-slave-strafe object) ;; unknown type +(define-extern swamp-bat-make-path-select-plane function) +(define-extern swamp-bat-slave-post function) +(define-extern swamp-bat-check-slave-paths-match? function) +;;(define-extern swamp-bat-slave-launch object) ;; unknown type +;;(define-extern swamp-bat-slave-idle object) ;; unknown type +;;(define-extern swamp-bat-slave-die object) ;; unknown type +(define-extern swamp-bat-slave-get-new-path function) +(define-extern swamp-bat type) +(define-extern swamp-bat-setup-new-path function) +;;(define-extern swamp-bat-launch-slaves object) ;; unknown type +(define-extern swamp-bat-update-path function) +(define-extern swamp-bat-slave-init-by-other function) +(define-extern swamp-bat-slave-event-handler function) +(define-extern swamp-bat-slave-path-post function) +;;(define-extern swamp-rat-spawn object) ;; unknown type +(define-extern swamp-rat-update-wiggle-target function) +(define-extern swamp-rat-update-wiggle-params function) +(define-extern swamp-rat-default-event-handler function) +;;(define-extern *swamp-rat-nav-enemy-info* object) ;; unknown type +(define-extern swamp-rat type) +;;(define-extern *swamp-rat-sg* object) ;; unknown type +(define-extern swamp-rat-init-by-other function) +;;(define-extern pointer object) ;; unknown type +;;(define-extern *swamp-rat-nest-dummy-b-sg* object) ;; unknown type +(define-extern swamp-rat-nest-dummy-draw-spawn-joints function) +(define-extern swamp-rat-nest-pick-spawn-joint function) +;;(define-extern swamp-rat-nest-gestate object) ;; unknown type +(define-extern swamp-rat-nest-default-event-handler function) +(define-extern swamp-rat-nest-spawn-rat function) +;;(define-extern swamp-rat-nest-dummy object) ;; unknown type +;;(define-extern swamp-rat-nest-active object) ;; unknown type +;;(define-extern swamp-rat-nest-dummy-shake object) ;; unknown type +;;(define-extern swamp-rat-nest-dummy-die object) ;; unknown type +(define-extern swamp-rat-nest-check-dummy function) +;;(define-extern swamp-rat-nest-dummy-c object) ;; unknown type +(define-extern swamp-rat-nest-dummy-init-by-other function) +;;(define-extern swamp-rat-nest-dummy-idle object) ;; unknown type +;;(define-extern swamp-rat-nest-dummy-a object) ;; unknown type +;;(define-extern *swamp-rat-nest-dummy-a-sg* object) ;; unknown type +(define-extern swamp-rat-nest-dummy-event-handler function) +;;(define-extern swamp-rat-nest-victory object) ;; unknown type +(define-extern swamp-rat-nest type) +(define-extern swamp-rat-nest-dummy-take-damage function) +;;(define-extern swamp-rat-nest-dummy-hit object) ;; unknown type +;;(define-extern *swamp-rat-nest-dummy-c-sg* object) ;; unknown type +;;(define-extern swamp-rat-nest-idle object) ;; unknown type +;;(define-extern swamp-rat-nest-dummy-b object) ;; unknown type +;;(define-extern swamp-rat-nest-die object) ;; unknown type +;;(define-extern shake object) ;; unknown type +(define-extern kermit-post function) +(define-extern kermit-player-target-pos function) +(define-extern kermit-disable-tongue function) +;;(define-extern *kermit-nav-enemy-info* object) ;; unknown type +(define-extern kermit-short-hop function) +;;(define-extern kermit-patrol object) ;; unknown type +;;(define-extern kermit-idle object) ;; unknown type +(define-extern kermit-pulse-init-by-other function) +(define-extern spawn-kermit-pulse function) +(define-extern kermit-hop function) +;;(define-extern kermit-notice object) ;; unknown type +;;(define-extern kermit-pulse-impact object) ;; unknown type +(define-extern kermit-enable-tongue function) +(define-extern kermit-check-tongue-is-clear? function) +(define-extern kermit-check-to-hit-player? function) +;;(define-extern kermit-retract-tongue object) ;; unknown type +(define-extern build-matrix-from-up-and-forward-axes! function) +;;(define-extern kermit-attack object) ;; unknown type +(define-extern kermit-tongue-pos function) +;;(define-extern kermit-tongue-stuck object) ;; unknown type +(define-extern kermit-get-new-patrol-point function) +;;(define-extern joint-mod-tracker object) ;; unknown type +(define-extern kermit-get-tongue-target-callback function) +(define-extern kermit type) +;;(define-extern *kermit-sg* object) ;; unknown type +;;(define-extern kermit-give-up object) ;; unknown type +(define-extern kermit-long-hop function) +(define-extern kermit-set-nav-mesh-target function) +(define-extern kermit-get-head-dir-xz function) +;;(define-extern kermit-chase object) ;; unknown type +;;(define-extern kermit-pulse-idle object) ;; unknown type +(define-extern kermit-set-rotate-dir-to-player function) +(define-extern joint-mod-tracker-callback function) +;;(define-extern kermit-chase-new-position object) ;; unknown type +;;(define-extern kermit-pulse object) ;; unknown type +(define-extern kermit-get-head-dir function) +(define-extern kermit-simple-post function) +(define-extern kermit-set-rotate-dir-to-nav-target function) +(define-extern swamp-part type) +;;(define-extern billy-rat-salivate object) ;; unknown type +;;(define-extern *billy-sg* object) ;; unknown type +;;(define-extern billy-playing object) ;; unknown type +;;(define-extern billy-snack-eat object) ;; unknown type +;;(define-extern billy-rat object) ;; unknown type +;;(define-extern billy-snack object) ;; unknown type +;;(define-extern billy-rat-eat object) ;; unknown type +;;(define-extern billy-done object) ;; unknown type +(define-extern billy-kill-all-but-farthy function) +(define-extern rat-about-to-eat? function) +(define-extern billy-snack-init-by-other function) +;;(define-extern billy-snack-idle object) ;; unknown type +(define-extern billy-rat-init-by-other function) +(define-extern billy-game-update-wave function) +(define-extern billy-game-update function) +;;(define-extern *billy-sidekick-sg* object) ;; unknown type +;;(define-extern *farthy-snack-sg* object) ;; unknown type +;;(define-extern billy-rat-die object) ;; unknown type +;;(define-extern eat object) ;; unknown type +;;(define-extern billy-rat-needs-destination object) ;; unknown type +;;(define-extern cavecrystal-light object) ;; unknown type +;;(define-extern *cavecrystal-engine* object) ;; unknown type +(define-extern cavecrystal-light-control type) +(define-extern cavecrystal-light-control-default-callback function) +(define-extern cavecrystal-light-control-caveelevator-callback function) +;;(define-extern *cavespatulatwo-sg* object) ;; unknown type +;;(define-extern maincavecam object) ;; unknown type +;;(define-extern *maincavecam-sg* object) ;; unknown type +;;(define-extern caveelevator-cycle-active object) ;; unknown type +;;(define-extern caveelevator-one-way-travel-to-end object) ;; unknown type +(define-extern cavecrusher type) +(define-extern caveflamepots type) +;;(define-extern *cavetrapdoor-sg* object) ;; unknown type +(define-extern caveelevator-joint-callback function) +;;(define-extern *cavecrusher-sg* object) ;; unknown type +;;(define-extern caveelevator-one-way-idle-end object) ;; unknown type +;;(define-extern ripple-for-cave-water object) ;; unknown type +(define-extern cavespatulatwo type) +;;(define-extern caveelevator-one-way-idle-start object) ;; unknown type +;;(define-extern caveflamepots-active object) ;; unknown type +;;(define-extern cavespatula-idle object) ;; unknown type +;;(define-extern *caveelevator-sg* object) ;; unknown type +;;(define-extern *cavespatula-darkcave-sg* object) ;; unknown type +;;(define-extern *cavespatula-sg* object) ;; unknown type +;;(define-extern caveelevator-one-way-travel-to-start object) ;; unknown type +;;(define-extern cavecrusher-idle object) ;; unknown type +;;(define-extern cavespatulatwo-idle object) ;; unknown type +;;(define-extern darkcave-part object) ;; unknown type +(define-extern maincave-part type) +(define-extern check-drop-level-maincave-drip function) +;;(define-extern spiderwebs-bounce object) ;; unknown type +(define-extern spiderwebs type) +;;(define-extern spiderwebs-idle object) ;; unknown type +(define-extern spiderwebs-default-event-handler function) +;;(define-extern *spiderwebs-sg* object) ;; unknown type +;;(define-extern *spider-jump-mods* object) ;; unknown type +;;(define-extern *dark-crystal-flash-delays* object) ;; unknown type +;;(define-extern dark-crystal-idle object) ;; unknown type +;;(define-extern *dark-crystal-explode-sg* object) ;; unknown type +;;(define-extern *dark-crystal-exploder-params* object) ;; unknown type +;;(define-extern dark-crystal-activate object) ;; unknown type +;;(define-extern dark-crystal-explode object) ;; unknown type +;;(define-extern *dark-crystal-sg* object) ;; unknown type +;;(define-extern dark-crystal-spawn-fuel-cell object) ;; unknown type +;;(define-extern extra-radius object) ;; unknown type +;;(define-extern *baby-spider-nav-enemy-info-for-cave-trap* object) ;; unknown type +;;(define-extern baby-spider-die-fast object) ;; unknown type +;;(define-extern *baby-spider-nav-enemy-info* object) ;; unknown type +;;(define-extern *baby-spider-sg* object) ;; unknown type +;;(define-extern baby-spider-resume object) ;; unknown type +;;(define-extern baby-spider-spawn-params object) ;; unknown type +;;(define-extern baby-spider-hatching object) ;; unknown type +(define-extern baby-spider-init-by-other function) +(define-extern baby-spider-default-event-handler function) +(define-extern cave-trap type) +;;(define-extern mother-spider-thread object) ;; unknown type +;;(define-extern mother-spider-history-array object) ;; unknown type +;;(define-extern mother-spider-leg object) ;; unknown type +;;(define-extern mother-spider-leg-info object) ;; unknown type +;;(define-extern mother-spider-history object) ;; unknown type +;;(define-extern mother-spider-egg-falling object) ;; unknown type +;;(define-extern mother-spider-egg-die-exit object) ;; unknown type +;;(define-extern mother-spider-egg-hatch object) ;; unknown type +;;(define-extern mother-spider-egg object) ;; unknown type +;;(define-extern mother-spider-egg-die-while-falling object) ;; unknown type +(define-extern mother-spider-egg-init-by-other function) +;;(define-extern mother-spider-egg-on-ground object) ;; unknown type +;;(define-extern *mother-spider-egg-unbroken-sg* object) ;; unknown type +;;(define-extern mother-spider-egg-die object) ;; unknown type +;;(define-extern *mother-spider-egg-broken-sg* object) ;; unknown type +(define-extern mother-spider-proj-update-velocity function) +;;(define-extern mother-spider-proj object) ;; unknown type +;;(define-extern mother-spider-hit-while-tracking object) ;; unknown type +;;(define-extern wait-for-children object) ;; unknown type +;;(define-extern mother-spider-spit object) ;; unknown type +(define-extern mother-spider-default-event-handler function) +;;(define-extern mother-spider-stop-traveling object) ;; unknown type +;;(define-extern mother-spider-tracking object) ;; unknown type +;;(define-extern mother-spider-die-wait-for-children object) ;; unknown type +;;(define-extern mother-spider-hit-while-birthing object) ;; unknown type +;;(define-extern mother-spider-birth-baby object) ;; unknown type +;;(define-extern mother-spider-die-from-uppercut object) ;; unknown type +;;(define-extern mother-spider-idle object) ;; unknown type +;;(define-extern mother-spider-traveling object) ;; unknown type +(define-extern mother-spider-death-event-handler function) +;;(define-extern mother-spider-leg-flying object) ;; unknown type +(define-extern mother-spider-leg-init-by-other function) +(define-extern mother-spider-full-joint-callback function) +;;(define-extern *mother-spider-sg* object) ;; unknown type +;;(define-extern *mother-spider-leg-sg* object) ;; unknown type +;;(define-extern mother-spider-die object) ;; unknown type +;;(define-extern *mother-spider-threads* object) ;; unknown type +;;(define-extern mother-spider-birthing object) ;; unknown type +;;(define-extern *mother-spider-leg-infos* object) ;; unknown type +;;(define-extern gnawer-wait-to-run object) ;; unknown type +;;(define-extern *gnawer-sg* object) ;; unknown type +;;(define-extern *gnawer-segment-infos* object) ;; unknown type +(define-extern gnawer type) +;;(define-extern gnawer-falling-segment object) ;; unknown type +(define-extern gnawer-falling-segment-init-by-other function) +;;(define-extern gnawer-retreat-into-post object) ;; unknown type +;;(define-extern gnawer-route object) ;; unknown type +;;(define-extern gnawer-segment object) ;; unknown type +;;(define-extern gnawer-die object) ;; unknown type +;;(define-extern *gnawer-segment-sg* object) ;; unknown type +;;(define-extern gnawer-chewing-on-post object) ;; unknown type +;;(define-extern gnawer-run object) ;; unknown type +;;(define-extern gnawer-give-fuel-cell object) ;; unknown type +;;(define-extern gnawer-put-items-at-dest object) ;; unknown type +(define-extern gnawer-joint-callback function) +;;(define-extern gnawer-dying-give-pickups object) ;; unknown type +;;(define-extern gnawer-segment-info object) ;; unknown type +;;(define-extern driller-lurker-idle-drilling object) ;; unknown type +;;(define-extern driller-lurker-patrol object) ;; unknown type +;;(define-extern *driller-lurker-sg* object) ;; unknown type +;;(define-extern driller-lurker-jammed-standing object) ;; unknown type +(define-extern driller-lurker-default-event-handler function) +;;(define-extern driller-lurker-debug-play-anims object) ;; unknown type +;;(define-extern driller-lurker-die object) ;; unknown type +;;(define-extern *driller-lurker-shadow-control* object) ;; unknown type +;;(define-extern driller-lurker-patrol-pause object) ;; unknown type +(define-extern driller-lurker type) +;;(define-extern driller-lurker-attack object) ;; unknown type +;;(define-extern driller-lurker-chase object) ;; unknown type +(define-extern sunken-part type) +;;(define-extern target-tube object) ;; unknown type +;;(define-extern *TUBE-bank* object) ;; unknown type +;;(define-extern *tube-hit-mods* object) ;; unknown type +;;(define-extern tube-info object) ;; unknown type +;;(define-extern *tube-surface* object) ;; unknown type +(define-extern tube-thrust function) +;;(define-extern target-tube-hit object) ;; unknown type +(define-extern slide-control type) +(define-extern target-tube-turn-anim function) +;;(define-extern *tube-jump-mods* object) ;; unknown type +;;(define-extern target-tube-death object) ;; unknown type +;;(define-extern target-tube-jump object) ;; unknown type +;;(define-extern *tube-mods* object) ;; unknown type +(define-extern tube-sounds function) +(define-extern tube-bank type) +(define-extern distance-from-tangent function) +(define-extern target-tube-post function) +(define-extern find-target-point function) +;;(define-extern slide-control-watch object) ;; unknown type +;;(define-extern slide-control-ride object) ;; unknown type +;;(define-extern *side-to-side-plat-sg* object) ;; unknown type +;;(define-extern sunkencam object) ;; unknown type +;;(define-extern water-vol-deadly object) ;; unknown type +;;(define-extern *seaweed-sg* object) ;; unknown type +;;(define-extern seaweed-idle object) ;; unknown type +;;(define-extern *sunkencam-sg* object) ;; unknown type +(define-extern seaweed type) +(define-extern side-to-side-plat type) +;;(define-extern *seaweed* object) ;; unknown type +;;(define-extern shover-idle object) ;; unknown type +(define-extern shover type) +;;(define-extern *shover-sg* object) ;; unknown type +;;(define-extern *shover* object) ;; unknown type +;;(define-extern collision-mesh-id object) ;; unknown type +;;(define-extern square-platform-lowering object) ;; unknown type +(define-extern square-platform-master type) +(define-extern square-platform type) +;;(define-extern *square-platform-sg* object) ;; unknown type +(define-extern square-platform-button type) +;;(define-extern square-platform-lowered object) ;; unknown type +;;(define-extern square-platform-master-idle object) ;; unknown type +;;(define-extern square-platform-master-activate object) ;; unknown type +;;(define-extern square-platform-raised object) ;; unknown type +;;(define-extern square-platform-rising object) ;; unknown type +;;(define-extern sun-iris-door-closing object) ;; unknown type +(define-extern sun-iris-door type) +;;(define-extern sun-iris-door-opening object) ;; unknown type +;;(define-extern sun-iris-door-closed object) ;; unknown type +;;(define-extern sun-iris-door-open object) ;; unknown type +;;(define-extern *sun-iris-door-sg* object) ;; unknown type +(define-extern sun-iris-door-init-by-other function) +;;(define-extern proximity object) ;; unknown type +;;(define-extern orbit-plat-bottom-idle object) ;; unknown type +;;(define-extern orbit-plat-idle object) ;; unknown type +;;(define-extern orbit-plat-reset object) ;; unknown type +;;(define-extern orbit-plat-riding object) ;; unknown type +(define-extern orbit-plat type) +(define-extern orbit-plat-bottom-init-by-other function) +;;(define-extern *orbit-plat-bottom-sg* object) ;; unknown type +;;(define-extern orbit-plat-wait-for-other object) ;; unknown type +;;(define-extern orbit-plat-still object) ;; unknown type +;;(define-extern orbit-plat-rotating object) ;; unknown type +;;(define-extern *orbit-plat-sg* object) ;; unknown type +(define-extern get-nav-point! function) +(define-extern get-rotate-point! function) +;;(define-extern orbit-plat-bottom object) ;; unknown type +;;(define-extern query-reset object) ;; unknown type +;;(define-extern wedge-plat-idle object) ;; unknown type +(define-extern wedge-plat type) +;;(define-extern wedge-plat-tip object) ;; unknown type +;;(define-extern wedge-plat-outer-tip object) ;; unknown type +(define-extern wedge-plat-master type) +;;(define-extern wedge-plat-outer-idle object) ;; unknown type +(define-extern wedge-plat-outer type) +;;(define-extern wedge-plat-master-idle object) ;; unknown type +;;(define-extern *wedge-plat-outer-sg* object) ;; unknown type +;;(define-extern *wedge-plat-sg* object) ;; unknown type +;;(define-extern wall-plat-sync-idle object) ;; unknown type +;;(define-extern wall-plat-retracting object) ;; unknown type +;;(define-extern *wall-plat-sg* object) ;; unknown type +;;(define-extern wall-plat-extending object) ;; unknown type +(define-extern wall-plat type) +;;(define-extern wall-plat-extended object) ;; unknown type +;;(define-extern wall-plat-retracted object) ;; unknown type +;;(define-extern tunemeters object) ;; unknown type +;;(define-extern qbert-plat-master-do-door object) ;; unknown type +;;(define-extern qbert-plat-master-wait-for-door object) ;; unknown type +(define-extern qbert-plat-event-handler function) +;;(define-extern qbert-plat-on object) ;; unknown type +;;(define-extern *qbert-plat-on-sg* object) ;; unknown type +;;(define-extern *qbert-plat-constants* object) ;; unknown type +;;(define-extern qbert-plat-master-idle object) ;; unknown type +;;(define-extern *qbert-plat-sg* object) ;; unknown type +(define-extern qbert-plat-on-init-by-other function) +;;(define-extern qbert-plat-on-mimic object) ;; unknown type +(define-extern qbert-plat-master type) +(define-extern qbert-plat type) +;;(define-extern qbert-plat-on-die object) ;; unknown type +;;(define-extern qbert-plat-wait-for-master object) ;; unknown type +(define-extern steam-cap type) +;;(define-extern steam-cap-idle object) ;; unknown type +;;(define-extern *steam-cap-sg* object) ;; unknown type +;;(define-extern steam-cap-control-pt object) ;; unknown type +;;(define-extern exit-chamber-charger-puzzle object) ;; unknown type +;;(define-extern blue-eco-charger-close object) ;; unknown type +;;(define-extern *blue-eco-charger-sg* object) ;; unknown type +;;(define-extern blue-eco-charger-orb-idle object) ;; unknown type +;;(define-extern blue-eco-charger-open object) ;; unknown type +;;(define-extern exit-chamber-items object) ;; unknown type +(define-extern blue-eco-charger type) +;;(define-extern blue-eco-charger-stuck-open object) ;; unknown type +;;(define-extern exit-chamber-charger-puzzle-beaten object) ;; unknown type +;;(define-extern exit-chamber-lower object) ;; unknown type +;;(define-extern blue-eco-charger-orb-active object) ;; unknown type +(define-extern blue-eco-charger-orb-init-by-other function) +;;(define-extern blue-eco-charger-idle object) ;; unknown type +;;(define-extern *exit-chamber-sg* object) ;; unknown type +;;(define-extern exit-chamber-button object) ;; unknown type +(define-extern exit-chamber-button-init-by-other function) +(define-extern exit-chamber type) +;;(define-extern *blue-eco-charger-orb-sg* object) ;; unknown type +;;(define-extern exit-chamber-idle-in-sunken object) ;; unknown type +;;(define-extern exit-chamber-rise object) ;; unknown type +;;(define-extern exit-chamber-idle-in-village object) ;; unknown type +;;(define-extern blue-eco-charger-orb object) ;; unknown type +;;(define-extern floating-launcher-idle object) ;; unknown type +;;(define-extern floating-launcher-ready object) ;; unknown type +;;(define-extern floating-launcher-lowering object) ;; unknown type +;;(define-extern *floating-launcher-sg* object) ;; unknown type +(define-extern floating-launcher type) +;;(define-extern trigger-height object) ;; unknown type +;;(define-extern ripple-for-sunken-water object) ;; unknown type +(define-extern sunken-water type) +(define-extern whirlpool type) +;;(define-extern whirlpool-idle object) ;; unknown type +;;(define-extern *whirlpool-sg* object) ;; unknown type +;;(define-extern sunken-pipegame-prize object) ;; unknown type +;;(define-extern sunken-pipegame-idle object) ;; unknown type +;;(define-extern sunken-pipegame-start-up object) ;; unknown type +;;(define-extern sunken-pipegame-button object) ;; unknown type +(define-extern sunken-pipegame type) +;;(define-extern sunken-pipegame-beat-challenge object) ;; unknown type +;;(define-extern sunken-pipegame-begin-play object) ;; unknown type +;;(define-extern sunken-pipegame-end-play object) ;; unknown type +(define-extern sunken-pipegame-button-init-by-other function) +(define-extern bully-broken-cage-init-by-other function) +;;(define-extern bully-notice object) ;; unknown type +;;(define-extern bully-die object) ;; unknown type +;;(define-extern bully-broken-cage-explode object) ;; unknown type +;;(define-extern bully-stop-spinning object) ;; unknown type +(define-extern bully-default-event-handler function) +;;(define-extern bully-start-spinning object) ;; unknown type +;;(define-extern *bully-broken-cage-sg* object) ;; unknown type +(define-extern bully type) +;;(define-extern *bully-shadow-control* object) ;; unknown type +;;(define-extern bully-idle object) ;; unknown type +;;(define-extern *bully-sg* object) ;; unknown type +(define-extern bully-post function) +;;(define-extern bully-broken-cage object) ;; unknown type +;;(define-extern double-lurker-top-on-shoulders-die object) ;; unknown type +;;(define-extern double-lurker-waiting-to-die object) ;; unknown type +;;(define-extern double-lurker-knocked-back object) ;; unknown type +;;(define-extern double-lurker-top object) ;; unknown type +;;(define-extern *double-lurker-top-sg* object) ;; unknown type +(define-extern double-lurker-top-init-by-other function) +;;(define-extern *double-lurker-sg* object) ;; unknown type +;;(define-extern double-lurker-buddy-was-hit object) ;; unknown type +;;(define-extern *double-lurker-nav-enemy-info* object) ;; unknown type +;;(define-extern double-lurker-resume object) ;; unknown type +;;(define-extern double-lurker-show-anims object) ;; unknown type +;;(define-extern double-lurker-both-knocked-back object) ;; unknown type +;;(define-extern double-lurker-top-resume object) ;; unknown type +(define-extern double-lurker type) +;;(define-extern *double-lurker-top-nav-enemy-info* object) ;; unknown type +;;(define-extern double-lurker-top-on-shoulders object) ;; unknown type +;;(define-extern *double-lurker-when-both-nav-enemy-info* object) ;; unknown type +;;(define-extern double-lurker-top-knocked-down object) ;; unknown type +(define-extern double-lurker-default-event-handler function) +;;(define-extern double-lurker-break-apart object) ;; unknown type +;;(define-extern helix-button-startup object) ;; unknown type +;;(define-extern *helix-slide-door-sg* object) ;; unknown type +;;(define-extern helix-button-quick-activate object) ;; unknown type +(define-extern helix-water type) +;;(define-extern helix-slide-door-idle-closed object) ;; unknown type +;;(define-extern helix-button-idle-down object) ;; unknown type +;;(define-extern helix-water-idle object) ;; unknown type +(define-extern helix-slide-door type) +;;(define-extern helix-button-idle-up object) ;; unknown type +(define-extern helix-button type) +;;(define-extern helix-slide-door-close object) ;; unknown type +;;(define-extern helix-dark-eco object) ;; unknown type +;;(define-extern helix-water-activated object) ;; unknown type +;;(define-extern *helix-button-sg* object) ;; unknown type +;;(define-extern helix-slide-door-idle-open object) ;; unknown type +;;(define-extern helix-button-activate object) ;; unknown type +;;(define-extern *helix-button* object) ;; unknown type +;;(define-extern *helix-slide-door* object) ;; unknown type +;;(define-extern *helix-water* object) ;; unknown type +(define-extern puffer-default-event-handler function) +;;(define-extern puffer-die object) ;; unknown type +(define-extern puffer-post function) +;;(define-extern *puffer-mean-sg* object) ;; unknown type +;;(define-extern pick-patrol-point-away-from-buddy-work object) ;; unknown type +;;(define-extern *puffer-sg* object) ;; unknown type +;;(define-extern puffer-attack object) ;; unknown type +;;(define-extern puffer-patrol object) ;; unknown type +;;(define-extern puffer-idle object) ;; unknown type +(define-extern puffer type) +(define-extern sunkenfisha type) +(define-extern sunkenfisha-init-by-other function) +;;(define-extern *sunkenfisha-red-yellow-sg* object) ;; unknown type +;;(define-extern sunkenfisha-idle object) ;; unknown type +;;(define-extern *sunkenfisha-yellow-eye-sg* object) ;; unknown type +;;(define-extern *sunkenfisha-yellow-blue-sg* object) ;; unknown type +;;(define-extern path-max-offset object) ;; unknown type +;;(define-extern path-trans-offset object) ;; unknown type +(define-extern gorge-in-front function) +(define-extern happy-plant type) +;;(define-extern rolling-start object) ;; unknown type +(define-extern gorge-start-draw-time function) +(define-extern pusher type) +(define-extern rolling-start-init-by-other function) +(define-extern race-time-copy! function) +;;(define-extern dark-plant-idle object) ;; unknown type +(define-extern dark-plant-has-bad-neighbor function) +(define-extern dark-plants-all-done function) +;;(define-extern gorge-start-race-finished object) ;; unknown type +;;(define-extern *dark-plant-sg* object) ;; unknown type +(define-extern gorge-behind function) +;;(define-extern *rollingcam-sg* object) ;; unknown type +;;(define-extern gorge-abort-idle object) ;; unknown type +(define-extern race-time-save function) +(define-extern gorge-finish-init-by-other function) +(define-extern gorge-pusher type) +;;(define-extern *happy-plant-sg* object) ;; unknown type +;;(define-extern dark-plant-death object) ;; unknown type +(define-extern race-time-read function) +(define-extern gorge-start-launch-start-banner function) +;;(define-extern gorge-start-idle object) ;; unknown type +;;(define-extern happy-plant-opening object) ;; unknown type +;;(define-extern gorge-pusher-idle object) ;; unknown type +;;(define-extern race-time object) ;; unknown type +(define-extern rollingcam type) +(define-extern race-time->seconds function) +(define-extern dark-plant-trans function) +;;(define-extern ripple-for-rolling-water object) ;; unknown type +;;(define-extern gorge-finish object) ;; unknown type +(define-extern gorge-trans function) +;;(define-extern rolling-start-whole object) ;; unknown type +(define-extern dark-plant-check-target function) +;;(define-extern rolling-start-break object) ;; unknown type +;;(define-extern happy-plant-opened object) ;; unknown type +;;(define-extern gorge-start-racing object) ;; unknown type +;;(define-extern pusher-base object) ;; unknown type +;;(define-extern *rolling-start-whole-sg* object) ;; unknown type +;;(define-extern happy-plant-init object) ;; unknown type +(define-extern race-time->string function) +(define-extern gorge-abort-init-by-other function) +;;(define-extern gorge-finish-idle object) ;; unknown type +;;(define-extern pusher-idle object) ;; unknown type +;;(define-extern gorge-start-race-aborted object) ;; unknown type +;;(define-extern gorge-abort object) ;; unknown type +;;(define-extern *pusher-sg* object) ;; unknown type +;;(define-extern rolling-part object) ;; unknown type +(define-extern rolling-water type) +;;(define-extern dark-plant-startup object) ;; unknown type +;;(define-extern gorge-start-ready object) ;; unknown type +(define-extern gorge-init function) +(define-extern seconds->race-time function) +(define-extern pusher-base-init function) +;;(define-extern gorge object) ;; unknown type +(define-extern dark-plant-randomize function) +;;(define-extern dark-plant-sprout object) ;; unknown type +(define-extern race-time-less-than function) +(define-extern dark-plant type) +(define-extern gorge-start type) +;;(define-extern dark-plant-gone object) ;; unknown type +;;(define-extern *rolling-start-broken-sg* object) ;; unknown type +;;(define-extern finished object) ;; unknown type +;;(define-extern min-frame object) ;; unknown type +;;(define-extern break object) ;; unknown type +;;(define-extern unbreak object) ;; unknown type +;;(define-extern aborted object) ;; unknown type +;;(define-extern break-and-die object) ;; unknown type +;;(define-extern max-frame object) ;; unknown type +(define-extern lightning-mole type) +;;(define-extern lightning-mole-dive object) ;; unknown type +;;(define-extern *lightning-mole-nav-enemy-info* object) ;; unknown type +(define-extern find-adjacent-bounds-one function) +;;(define-extern fleeing-nav-enemy-debug object) ;; unknown type +;;(define-extern *lightning-mole-hole* object) ;; unknown type +;;(define-extern lightning-mole-gone object) ;; unknown type +(define-extern lightning-mole-hole-post function) +;;(define-extern fleeing-nav-enemy-info object) ;; unknown type +(define-extern lightning-mole-task-complete? function) +(define-extern check-drop-level-rolling-dirt function) +(define-extern find-adjacent-bounds function) +;;(define-extern peeper-up object) ;; unknown type +;;(define-extern lightning-mole-debug-run object) ;; unknown type +(define-extern fleeing-nav-enemy-adjust-nav-info function) +(define-extern fleeing-nav-enemy-adjust-travel function) +(define-extern fleeing-nav-enemy-chase-post function) +;;(define-extern lightning-mole-yelp object) ;; unknown type +(define-extern lightning-mole-run-code function) +;;(define-extern lightning-mole-head-for-hole object) ;; unknown type +;;(define-extern *lightning-mole-sg* object) ;; unknown type +;;(define-extern peeper-hide object) ;; unknown type +;;(define-extern peeper-down object) ;; unknown type +(define-extern check-drop-level-rolling-dirt-finish function) +;;(define-extern peeper-wait object) ;; unknown type +(define-extern fleeing-nav-enemy-chase-post-func function) +;;(define-extern lightning-mole-debug-blend object) ;; unknown type +;;(define-extern lightning-mole-hiding object) ;; unknown type +(define-extern peeper type) +(define-extern fleeing-nav-enemy-clip-travel function) +;;(define-extern fleeing-nav-enemy object) ;; unknown type +;;(define-extern robber-flee object) ;; unknown type +;;(define-extern robber-die object) ;; unknown type +(define-extern robber-find-ground function) +;;(define-extern robber-initial object) ;; unknown type +;;(define-extern *robber-sg* object) ;; unknown type +(define-extern robber-rotate function) +;;(define-extern fuel-cell-spline-slider object) ;; unknown type +(define-extern robber-event-handler function) +;;(define-extern robber-got-away object) ;; unknown type +(define-extern fuel-cell-init-as-spline-slider function) +;;(define-extern robber-tired object) ;; unknown type +(define-extern robber-calc-speed function) +;;(define-extern robber-initial-notice object) ;; unknown type +;;(define-extern robber-idle object) ;; unknown type +(define-extern robber-move function) +(define-extern robber type) +(define-extern robber-task-complete? function) +;;(define-extern robber-debug object) ;; unknown type +(define-extern robber-calc-anim-speed function) +;;(define-extern robber-dead object) ;; unknown type +;;(define-extern initial-spline-pos object) ;; unknown type +;;(define-extern race-ring-active object) ;; unknown type +(define-extern race-ring type) +(define-extern race-ring-set-particle-rotation-callback function) +(define-extern last-ring? function) +(define-extern race-ring-blue-set-particle-rotation-callback function) +(define-extern first-ring? function) +;;(define-extern race-ring-idle object) ;; unknown type +;;(define-extern *race-ring-sg* object) ;; unknown type +;;(define-extern race-ring-wait object) ;; unknown type +(define-extern balloon type) +;;(define-extern balloon-idle object) ;; unknown type +;;(define-extern *crate-darkeco-cluster-sg* object) ;; unknown type +;;(define-extern spike-down object) ;; unknown type +(define-extern spike type) +;;(define-extern spike-up object) ;; unknown type +;;(define-extern spike-idle object) ;; unknown type +;;(define-extern balloon-popping object) ;; unknown type +(define-extern crate-darkeco-cluster type) +;;(define-extern *spike-sg* object) ;; unknown type +;;(define-extern go-spike-up object) ;; unknown type +(define-extern ogre-part type) +;;(define-extern ogreboss-idle object) ;; unknown type +;;(define-extern *ogreboss-shoot-boulder-sg* object) ;; unknown type +(define-extern ogreboss-shoot-boulder function) +;;(define-extern ogreboss-stage1 object) ;; unknown type +;;(define-extern ogreboss-stage3-hit object) ;; unknown type +(define-extern ogreboss-super-boulder-event-handler function) +(define-extern ogreboss-move-near function) +;;(define-extern ogreboss-super-boulder-throw object) ;; unknown type +(define-extern ogreboss-update-shuffling function) +;;(define-extern *ogreboss-super-boulder-sg* object) ;; unknown type +;;(define-extern ogreboss-missile-idle object) ;; unknown type +;;(define-extern ogreboss-super-boulder-die object) ;; unknown type +(define-extern ogreboss-debug-adjust-difficulty function) +(define-extern ogreboss-roll-boulder function) +(define-extern ogreboss-super-boulder-play-hit-anim function) +(define-extern ogreboss-inc-try-count function) +;;(define-extern ogreboss-stage2 object) ;; unknown type +(define-extern ogreboss-post function) +;;(define-extern *ogreboss-shoot-boulder-break-sg* object) ;; unknown type +(define-extern ogreboss-super-boulder-impact-effect function) +(define-extern ogreboss-pick-target function) +(define-extern ogreboss-get-targets function) +(define-extern ogreboss-move-far function) +;;(define-extern ogreboss-missile object) ;; unknown type +;;(define-extern ogreboss-wait-for-player object) ;; unknown type +;;(define-extern *ogreboss-bounce-boulder-sg* object) ;; unknown type +;;(define-extern ogreboss-stage3-throw object) ;; unknown type +;;(define-extern *ogreboss-column-sg* object) ;; unknown type +;;(define-extern ogreboss-super-boulder-hit object) ;; unknown type +(define-extern ogreboss-spawn-super-boulder function) +;;(define-extern ogreboss-die object) ;; unknown type +;;(define-extern ogreboss-super-boulder-land object) ;; unknown type +;;(define-extern *ogreboss-sg* object) ;; unknown type +(define-extern ogreboss-player-inside-range? function) +;;(define-extern *ogreboss-missile-shadow-control* object) ;; unknown type +(define-extern ogreboss-bounce-boulder-init-by-other function) +(define-extern ogreboss-update-super-boulder function) +(define-extern ogreboss-super-boulder-init-by-other function) +(define-extern ogreboss-reset-camera function) +(define-extern ogreboss-trigger-steps function) +(define-extern ogreboss-bounce-boulder-event-handler function) +(define-extern ogreboss-blend-hit-anim function) +(define-extern ogreboss-missile-init-by-other function) +;;(define-extern ogreboss-super-boulder-roll object) ;; unknown type +(define-extern ogreboss-set-stage2-camera function) +(define-extern ogreboss-attack-event-handler function) +(define-extern ogreboss-missile-scale-explosion function) +(define-extern ogreboss-submerge function) +;;(define-extern ogreboss-super-boulder-idle object) ;; unknown type +(define-extern ogreboss-set-stage1-camera function) +(define-extern ogreboss-emerge function) +;;(define-extern ogreboss-dead object) ;; unknown type +;;(define-extern ogreboss-intro object) ;; unknown type +;;(define-extern *ogreboss-cam-sg* object) ;; unknown type +;;(define-extern ogreboss-stage3-shuffle object) ;; unknown type +;;(define-extern ogreboss-missile-impact object) ;; unknown type +(define-extern ogreboss-rock-explosion-effect function) +;;(define-extern *ogreboss-shadow-control* object) ;; unknown type +;;(define-extern ogreboss-super-boulder-killed-player object) ;; unknown type +;;(define-extern ogreboss-bounce-boulder-idle object) ;; unknown type +;;(define-extern ogreboss-missile-init-data object) ;; unknown type +;;(define-extern ogreboss-missile-seek object) ;; unknown type +(define-extern ogreboss-idle-loop function) +;;(define-extern ogreboss-bounce-boulder object) ;; unknown type +;;(define-extern go-hit object) ;; unknown type +;;(define-extern submerge1 object) ;; unknown type +;;(define-extern boulder object) ;; unknown type +;;(define-extern next-stage object) ;; unknown type +;;(define-extern submerge2 object) ;; unknown type +;;(define-extern emerge1 object) ;; unknown type +;;(define-extern emerge2 object) ;; unknown type +;;(define-extern target-actor object) ;; unknown type +;;(define-extern go-die object) ;; unknown type +;;(define-extern grow-faster object) ;; unknown type +;;(define-extern go-throw object) ;; unknown type +;;(define-extern break-no-damage object) ;; unknown type +;;(define-extern lava-ripple object) ;; unknown type +;;(define-extern speedup object) ;; unknown type +;;(define-extern *ogreboss* object) ;; unknown type +;;(define-extern *ogre-step-a-sg* object) ;; unknown type +;;(define-extern *shortcut-boulder-broken-sg* object) ;; unknown type +(define-extern ogre-bridge type) +;;(define-extern *ogre-bridgeend-sg* object) ;; unknown type +;;(define-extern ripple-for-ogre-lava object) ;; unknown type +;;(define-extern shortcut-boulder-idle object) ;; unknown type +;;(define-extern ogre-bridge-activated object) ;; unknown type +(define-extern tntbarrel type) +;;(define-extern ogre-bridgeend-idle object) ;; unknown type +(define-extern ogre-step-a type) +;;(define-extern *ogre-step-c-sg* object) ;; unknown type +(define-extern ogre-step-b type) +;;(define-extern ogre-bridge-activate object) ;; unknown type +;;(define-extern ogre-step object) ;; unknown type +;;(define-extern *ogre-bridge-joint-array* object) ;; unknown type +;;(define-extern *med-res-snow-sg* object) ;; unknown type +(define-extern ogre-step-c type) +(define-extern ogre-bridge-update-joints function) +(define-extern ogre-step-d type) +(define-extern shortcut-boulder type) +;;(define-extern *ogre-isle-b-sg* object) ;; unknown type +;;(define-extern *ogre-bridge-sg* object) ;; unknown type +(define-extern ogre-isle-b type) +;;(define-extern shortcut-boulder-break object) ;; unknown type +(define-extern ogre-isle-c type) +;;(define-extern *ogre-isle-a-sg* object) ;; unknown type +(define-extern ogre-isle-d type) +;;(define-extern ogre-bridge-idle object) ;; unknown type +;;(define-extern *ogre-isle-d-sg* object) ;; unknown type +;;(define-extern *shortcut-boulder-whole-sg* object) ;; unknown type +;;(define-extern *ogre-isle-constants* object) ;; unknown type +;;(define-extern *ogre-step-b-sg* object) ;; unknown type +;;(define-extern ogre-isle object) ;; unknown type +(define-extern ogre-bridgeend type) +;;(define-extern ogre-bridge-break object) ;; unknown type +;;(define-extern *tntbarrel-sg* object) ;; unknown type +;;(define-extern *ogre-isle-c-sg* object) ;; unknown type +;;(define-extern ogre-plat object) ;; unknown type +(define-extern ogre-lava type) +;;(define-extern *ogre-step-constants* object) ;; unknown type +;;(define-extern splash object) ;; unknown type +;;(define-extern die-big object) ;; unknown type +;;(define-extern flying-lurker-fly object) ;; unknown type +;;(define-extern flying-lurker-die object) ;; unknown type +;;(define-extern *plunger-lurker-sg* object) ;; unknown type +(define-extern flying-lurker-move function) +;;(define-extern flying-lurker-idle object) ;; unknown type +(define-extern flying-lurker-calc-anim-speed function) +(define-extern flying-lurker-handler function) +(define-extern flying-lurker-play-intro function) +;;(define-extern plunger-lurker-die object) ;; unknown type +;;(define-extern *ogrecam-sg* object) ;; unknown type +;;(define-extern flying-lurker-sleep object) ;; unknown type +(define-extern plunger-lurker type) +;;(define-extern flying-lurker-clone object) ;; unknown type +(define-extern flying-lurker-rotate function) +;;(define-extern *flying-lurker-sg* object) ;; unknown type +;;(define-extern flying-lurker-start object) ;; unknown type +(define-extern flying-lurker-calc-speed function) +(define-extern flying-lurker-inc-try-count function) +;;(define-extern plunger-lurker-flee object) ;; unknown type +(define-extern first? function) +;;(define-extern plunger-lurker-plunge object) ;; unknown type +(define-extern flying-lurker type) +(define-extern play-movie? function) +;;(define-extern plunger-lurker-idle object) ;; unknown type +;;(define-extern saw-player object) ;; unknown type +;;(define-extern clone-and-kill-links object) ;; unknown type +;;(define-extern sleep object) ;; unknown type +;;(define-extern plunge object) ;; unknown type +;;(define-extern fly-away object) ;; unknown type +(define-extern villagec-part type) +;;(define-extern *gondola-sg* object) ;; unknown type +(define-extern pistons type) +;;(define-extern *med-res-ogre2-sg* object) ;; unknown type +;;(define-extern *med-res-ogre-sg* object) ;; unknown type +;;(define-extern *med-res-finalboss-sg* object) ;; unknown type +;;(define-extern *pistons-sg* object) ;; unknown type +(define-extern gondola type) +(define-extern villagec-lava type) +;;(define-extern *gondolacables-sg* object) ;; unknown type +;;(define-extern ripple-for-villagec-lava object) ;; unknown type +;;(define-extern *med-res-ogre3-sg* object) ;; unknown type +(define-extern gondolacables type) +;;(define-extern ride-up object) ;; unknown type +;;(define-extern ride-down object) ;; unknown type +;;(define-extern *minecartsteel-sg* object) ;; unknown type +(define-extern minecartsteel-initialize-by-other function) +(define-extern minecartsteel type) +(define-extern minershort-trans-hook function) +(define-extern minertall type) +(define-extern miners-anim-loop function) +(define-extern cavegem type) +;;(define-extern *minertall-sg* object) ;; unknown type +(define-extern minershort type) +;;(define-extern *minershort-sg* object) ;; unknown type +;;(define-extern *cavegem-sg* object) ;; unknown type +(define-extern assistant-villagec type) +;;(define-extern *assistant-village3-sg* object) ;; unknown type +;;(define-extern *evilsis-village3-sg* object) ;; unknown type +;;(define-extern *evilbro-village3-sg* object) ;; unknown type +(define-extern sage-villagec type) +;;(define-extern *sage-village3-sg* object) ;; unknown type +(define-extern spider-vent type) +(define-extern cave-trap-default-event-handler function) +;;(define-extern cave-trap-idle object) ;; unknown type +;;(define-extern spawn-baby-spider-best object) ;; unknown type +;;(define-extern cave-trap-give-up object) ;; unknown type +;;(define-extern spider-vent-idle object) ;; unknown type +;;(define-extern cave-trap-active object) ;; unknown type +;;(define-extern spawn-baby-spider-work object) ;; unknown type +;;(define-extern can-spawn? object) ;; unknown type +(define-extern spider-egg type) +;;(define-extern notify-spawned object) ;; unknown type +;;(define-extern spider-egg-die object) ;; unknown type +;;(define-extern *spider-egg-broken-sg* object) ;; unknown type +;;(define-extern spider-egg-idle object) ;; unknown type +;;(define-extern spider-egg-hatch object) ;; unknown type +;;(define-extern *spider-egg-unbroken-sg* object) ;; unknown type +(define-extern robocave-part type) +(define-extern target-snowball-post function) +;;(define-extern snowball-info object) ;; unknown type +;;(define-extern *SNOWBALL-bank* object) ;; unknown type +;;(define-extern target-snowball object) ;; unknown type +(define-extern snowball-bank type) +(define-extern ice-cube-default-event-handler function) +;;(define-extern ice-cube-appear-land object) ;; unknown type +;;(define-extern ice-cube-retract-spikes object) ;; unknown type +;;(define-extern *ice-cube-nav-enemy-info* object) ;; unknown type +;;(define-extern *ice-cube-break-sg* object) ;; unknown type +;;(define-extern ice-cube-mean-turn-to-charge object) ;; unknown type +;;(define-extern *ice-cube-sg* object) ;; unknown type +;;(define-extern ice-cube-mean-charge-done object) ;; unknown type +;;(define-extern ice-cube-face-player object) ;; unknown type +;;(define-extern ice-cube-become-mean object) ;; unknown type +;;(define-extern ice-cube-trying-to-appear object) ;; unknown type +;;(define-extern ice-cube-shatter object) ;; unknown type +;;(define-extern ice-cube-tired object) ;; unknown type +;;(define-extern ice-cube-appear object) ;; unknown type +;;(define-extern ice-cube-mean-charge object) ;; unknown type +(define-extern ice-cube type) +(define-extern snow-ball-roller-path-update function) +;;(define-extern snow-ball-path-info object) ;; unknown type +;;(define-extern snow-ball-junction object) ;; unknown type +(define-extern snow-ball-roller-init-by-other function) +(define-extern snow-ball-roller-path-init function) +(define-extern snow-ball-shadow-init-by-other function) +;;(define-extern *snow-ball-shadow-control* object) ;; unknown type +;;(define-extern snow-ball-roller object) ;; unknown type +(define-extern snow-ball type) +;;(define-extern snow-ball-idle object) ;; unknown type +;;(define-extern *snow-ball-shadow-sg* object) ;; unknown type +;;(define-extern snow-ball-shadow object) ;; unknown type +;;(define-extern snow-ball-shadow-idle object) ;; unknown type +;;(define-extern *snow-ball-sg* object) ;; unknown type +;;(define-extern snow-ball-roller-idle object) ;; unknown type +;;(define-extern *snowpusher-sg* object) ;; unknown type +;;(define-extern snow-log-button-idle-up object) ;; unknown type +;;(define-extern snowcam object) ;; unknown type +;;(define-extern snow-gears-stopped object) ;; unknown type +;;(define-extern snow-gears-halt object) ;; unknown type +;;(define-extern snowpusher-idle object) ;; unknown type +;;(define-extern snow-log-button-idle-down object) ;; unknown type +(define-extern snow-fort-gate type) +;;(define-extern *snow-fort-gate-sg* object) ;; unknown type +(define-extern snow-log-button-event-handler function) +;;(define-extern snow-log-button-activate object) ;; unknown type +;;(define-extern snow-log-wait-for-master object) ;; unknown type +;;(define-extern snow-eggtop-idle-down object) ;; unknown type +;;(define-extern snow-fort-gate-idle-open object) ;; unknown type +;;(define-extern *snow-gears-sg* object) ;; unknown type +;;(define-extern *snow-eggtop-sg* object) ;; unknown type +;;(define-extern snow-switch-idle-down object) ;; unknown type +(define-extern snow-switch-event-handler function) +;;(define-extern snow-switch-activate object) ;; unknown type +(define-extern snow-log type) +(define-extern snowpusher type) +;;(define-extern *snow-switch-sg* object) ;; unknown type +(define-extern snow-switch type) +;;(define-extern snow-fort-gate-activate object) ;; unknown type +;;(define-extern snow-log-hidden object) ;; unknown type +;;(define-extern snow-eggtop-activate object) ;; unknown type +;;(define-extern snow-spatula-idle object) ;; unknown type +(define-extern snow-eggtop type) +;;(define-extern snow-gears-activate object) ;; unknown type +;;(define-extern snow-switch-idle-up object) ;; unknown type +;;(define-extern snow-log-activate object) ;; unknown type +(define-extern snow-gears type) +(define-extern snow-log-button type) +;;(define-extern *snowcam-sg* object) ;; unknown type +;;(define-extern snow-gears-idle object) ;; unknown type +(define-extern snow-spatula type) +;;(define-extern *snow-spatula-sg* object) ;; unknown type +;;(define-extern snow-fort-gate-idle-closed object) ;; unknown type +;;(define-extern *snow-log-sg* object) ;; unknown type +;;(define-extern snow-eggtop-idle-up object) ;; unknown type +;;(define-extern snow-log-active object) ;; unknown type +;;(define-extern cut object) ;; unknown type +;;(define-extern flutflut-plat-hide object) ;; unknown type +;;(define-extern elevator-travel-to-cave object) ;; unknown type +(define-extern flutflut-plat-small type) +;;(define-extern snow-button-deactivate object) ;; unknown type +;;(define-extern flutflut-plat object) ;; unknown type +;;(define-extern *flutflut-plat-small-sg* object) ;; unknown type +;;(define-extern flutflut-plat-appear object) ;; unknown type +;;(define-extern *flutflut-plat-large-sg* object) ;; unknown type +;;(define-extern elevator-idle-at-cave object) ;; unknown type +;;(define-extern *flutflut-plat-med-sg* object) ;; unknown type +;;(define-extern elevator-idle-at-fort object) ;; unknown type +;;(define-extern snow-button-activate object) ;; unknown type +(define-extern flutflut-plat-med type) +;;(define-extern snow-button-up-idle object) ;; unknown type +(define-extern flutflut-plat-large type) +;;(define-extern *snow-button-sg* object) ;; unknown type +;;(define-extern elevator-travel-to-fort object) ;; unknown type +;;(define-extern flutflut-plat-hidden-idle object) ;; unknown type +(define-extern snow-button type) +;;(define-extern snow-bumper-active-far-idle object) ;; unknown type +;;(define-extern snow-bumper-active-close-idle object) ;; unknown type +(define-extern snow-bumper type) +;;(define-extern snow-bumper-spawn-fuel-cell object) ;; unknown type +;;(define-extern *snow-bumper-sg* object) ;; unknown type +;;(define-extern snow-bumper-deactivate object) ;; unknown type +;;(define-extern snow-bumper-inactive-idle object) ;; unknown type +(define-extern ram type) +;;(define-extern ram-boss-forward-defend-block object) ;; unknown type +;;(define-extern *ram-boss-sg* object) ;; unknown type +;;(define-extern ram-boss-jump-down-hit-ground object) ;; unknown type +;;(define-extern ram-boss object) ;; unknown type +;;(define-extern ram-boss-proj-launch object) ;; unknown type +;;(define-extern ram-boss-tracking object) ;; unknown type +;;(define-extern *ram-boss-nav-enemy-info-no-shield* object) ;; unknown type +;;(define-extern ram-boss-up-defend-block object) ;; unknown type +;;(define-extern ram-boss-jump-down object) ;; unknown type +;;(define-extern ram-boss-already-down object) ;; unknown type +(define-extern snow-ram-proj-update-velocity function) +(define-extern ram-boss-on-ground-event-handler function) +(define-extern ram-boss-init-by-other function) +;;(define-extern ram-boss-show-anims object) ;; unknown type +;;(define-extern ram-boss-proj-growing object) ;; unknown type +;;(define-extern *ram-boss-nav-enemy-info* object) ;; unknown type +;;(define-extern ram-boss-nav-resume object) ;; unknown type +;;(define-extern ram-boss-throw object) ;; unknown type +;;(define-extern ram-boss-lose-shield object) ;; unknown type +;;(define-extern ram-boss-idle object) ;; unknown type +;;(define-extern ram-boss-nav-start object) ;; unknown type +;;(define-extern ram-boss-proj object) ;; unknown type +;;(define-extern snow-ram-proj object) ;; unknown type +;;(define-extern ram-idle object) ;; unknown type +;;(define-extern ram-fun-idle object) ;; unknown type +;;(define-extern *ram-sg* object) ;; unknown type +;;(define-extern ram-give-fuel-cell object) ;; unknown type +(define-extern sparticle-snow-birds-moon function) +(define-extern snow-part type) +(define-extern snow-bird-bob-func function) +;;(define-extern *yeti-nav-enemy-info* object) ;; unknown type +(define-extern yeti-slave-default-event-handler function) +;;(define-extern yeti-slave-appear-land object) ;; unknown type +;;(define-extern yeti-first-time-start object) ;; unknown type +(define-extern yeti-slave-init-by-other function) +;;(define-extern *yeti-sg* object) ;; unknown type +;;(define-extern yeti-slave object) ;; unknown type +;;(define-extern yeti-slave-appear-jump-up object) ;; unknown type +;;(define-extern yeti-resuming-start object) ;; unknown type +(define-extern yeti type) +;;(define-extern yeti-idle object) ;; unknown type +;;(define-extern yeti-slave-show-anims object) ;; unknown type +;;(define-extern spin-pole object) ;; unknown type +;;(define-extern iceskate object) ;; unknown type +(define-extern lavafallsewerb type) +;;(define-extern lavafall-idle object) ;; unknown type +(define-extern lavabase type) +;;(define-extern lavashortcut-idle object) ;; unknown type +;;(define-extern *lavafallsewerb-sg* object) ;; unknown type +(define-extern lavaballoon type) +(define-extern darkecobarrel-base-pos function) +(define-extern darkecobarrel-base-init function) +;;(define-extern darkecobarrel-mover-die object) ;; unknown type +;;(define-extern darkecobarrel-mover-move object) ;; unknown type +(define-extern lavatube-lava type) +;;(define-extern *darkecobarrel-sg* object) ;; unknown type +;;(define-extern darkecobarrel-spawner object) ;; unknown type +;;(define-extern lavafallsewera-idle object) ;; unknown type +(define-extern lavayellowtarp type) +;;(define-extern *lavayellowtarp-sg* object) ;; unknown type +(define-extern lavashortcut type) +;;(define-extern lavayellowtarp-idle object) ;; unknown type +(define-extern darkecobarrel-mover-init-by-other function) +(define-extern darkecobarrel-advance-curspawn function) +;;(define-extern lavafallsewerb-idle object) ;; unknown type +;;(define-extern darkecobarrel-leak object) ;; unknown type +(define-extern lavafall type) +;;(define-extern *lavabase-sg* object) ;; unknown type +;;(define-extern lavabase-idle object) ;; unknown type +;;(define-extern ripple-for-lavatube-lava object) ;; unknown type +(define-extern chainmine type) +;;(define-extern darkecobarrel-mover object) ;; unknown type +;;(define-extern darkecobarrel-base object) ;; unknown type +;;(define-extern *lavafall-sg* object) ;; unknown type +;;(define-extern *lavashortcut-sg* object) ;; unknown type +(define-extern darkecobarrel type) +(define-extern darkecobarrel-base-done? function) +(define-extern darkecobarrel-mover-pos function) +(define-extern lavafallsewera type) +;;(define-extern *lavafallsewera-sg* object) ;; unknown type +;;(define-extern *chainmine-sg* object) ;; unknown type +;;(define-extern *lavaballoon-sg* object) ;; unknown type +(define-extern darkecobarrel-base-time function) +(define-extern darkecobarrel-cycle-time function) +(define-extern energyhub-set-lava-height function) +;;(define-extern energybase-stopping object) ;; unknown type +;;(define-extern *energylava-sg* object) ;; unknown type +;;(define-extern energyhub-idle object) ;; unknown type +;;(define-extern energydoor-opened object) ;; unknown type +;;(define-extern energydoor-closed-till-task object) ;; unknown type +;;(define-extern energybase-idle object) ;; unknown type +(define-extern energydoor-closed-handler function) +;;(define-extern energyarm-no-ball object) ;; unknown type +;;(define-extern energyhub-stopped object) ;; unknown type +;;(define-extern energyball object) ;; unknown type +;;(define-extern energylava object) ;; unknown type +;;(define-extern *energydoor-sg* object) ;; unknown type +;;(define-extern energyball-idle object) ;; unknown type +;;(define-extern *energyhub-sg* object) ;; unknown type +;;(define-extern energyarm object) ;; unknown type +;;(define-extern *energyball-sg* object) ;; unknown type +(define-extern energyball-init function) +(define-extern energyarm-trans function) +(define-extern energyarm-init function) +(define-extern energydoor-open-handler function) +(define-extern energydoor type) +;;(define-extern *energybase-sg* object) ;; unknown type +(define-extern energyhub-trans function) +;;(define-extern energyhub-stop object) ;; unknown type +;;(define-extern energydoor-closed-till-near object) ;; unknown type +;;(define-extern energyarm-idle object) ;; unknown type +;;(define-extern energydoor-opening object) ;; unknown type +;;(define-extern energyarm-stop object) ;; unknown type +;;(define-extern energyarm-fall object) ;; unknown type +;;(define-extern energydoor-closing object) ;; unknown type +(define-extern energyarm-init-by-other function) +(define-extern energybase type) +;;(define-extern energylava-idle object) ;; unknown type +;;(define-extern *energyarm-sg* object) ;; unknown type +;;(define-extern energybase-stopped object) ;; unknown type +(define-extern energydoor-player-dist function) +(define-extern energyball-init-by-other function) +(define-extern energyhub type) +;;(define-extern open? object) ;; unknown type +(define-extern lavatube-part type) +;;(define-extern *assistant-lavatube-start-sg* object) ;; unknown type +(define-extern assistant-lavatube-start type) +;;(define-extern bubling-lava object) ;; unknown type +;;(define-extern lava-amb object) ;; unknown type +;;(define-extern lava-steam object) ;; unknown type +;;(define-extern lav-spin-gen object) ;; unknown type +;;(define-extern dril-step object) ;; unknown type +;;(define-extern drill-hit object) ;; unknown type +;;(define-extern drill-stop object) ;; unknown type +;;(define-extern drlurker-roar object) ;; unknown type +;;(define-extern gnawer-dies object) ;; unknown type +;;(define-extern gnawer-taunt object) ;; unknown type +;;(define-extern sounds object) ;; unknown type +;;(define-extern balloon-dies object) ;; unknown type +;;(define-extern binelurk-roar object) ;; unknown type +;;(define-extern bone-bigswing object) ;; unknown type +;;(define-extern bone-freehead object) ;; unknown type +;;(define-extern bone-helmet object) ;; unknown type +;;(define-extern bone-smallswing object) ;; unknown type +;;(define-extern bone-stepl object) ;; unknown type +;;(define-extern bone-stepr object) ;; unknown type +;;(define-extern bonelurk-raor object) ;; unknown type +;;(define-extern bonelurk-roar object) ;; unknown type +;;(define-extern bonelurker-dies object) ;; unknown type +;;(define-extern bonebridge-fall object) ;; unknown type +;;(define-extern muse-taunt-1 object) ;; unknown type +;;(define-extern muse-taunt-2 object) ;; unknown type +;;(define-extern walk-sand2 object) ;; unknown type +;;(define-extern mud-lurk-inhale object) ;; unknown type +;;(define-extern mud-lurk-laugh object) ;; unknown type +;;(define-extern mudlurker-dies object) ;; unknown type +;;(define-extern mudlurker-idle object) ;; unknown type +;;(define-extern qsl-fire object) ;; unknown type +;;(define-extern spooge1 object) ;; unknown type +;;(define-extern teeter-launch object) ;; unknown type +;;(define-extern teeter-rockland object) ;; unknown type +;;(define-extern teeter-wobble object) ;; unknown type +;;(define-extern teeter_rockup object) ;; unknown type +;;(define-extern walk-wood1 object) ;; unknown type +;;(define-extern arena object) ;; unknown type +;;(define-extern large-steam-lp object) ;; unknown type +;;(define-extern paddle-boat object) ;; unknown type +;;(define-extern flylurk-plane object) ;; unknown type +;;(define-extern flylurk-taunt object) ;; unknown type +;;(define-extern bridge-appears object) ;; unknown type +;;(define-extern bridge-breaks object) ;; unknown type +;;(define-extern rock-in-lava object) ;; unknown type +;;(define-extern group-ogreboss-boulder-splash object) ;; unknown type +;;(define-extern group-ogreboss-bounce-boulder-splash object) ;; unknown type +;;(define-extern group-ogreboss-column-break object) ;; unknown type +;;(define-extern group-ogreboss-lava-splash object) ;; unknown type +;;(define-extern hits-head object) ;; unknown type +;;(define-extern ogre-boulder object) ;; unknown type +;;(define-extern ogre-dies object) ;; unknown type +;;(define-extern ogre-roar2 object) ;; unknown type +;;(define-extern ogre-roar3 object) ;; unknown type +;;(define-extern ogre-throw object) ;; unknown type +;;(define-extern ogre-walk object) ;; unknown type +;;(define-extern ogre-windup object) ;; unknown type +;;(define-extern ogreboss-out object) ;; unknown type +;;(define-extern lava-loop object) ;; unknown type +;;(define-extern ogre-amb object) ;; unknown type +;;(define-extern village2-amb object) ;; unknown type +;;(define-extern plant-dies object) ;; unknown type +;;(define-extern plant-move object) ;; unknown type +;;(define-extern get-mole object) ;; unknown type +;;(define-extern mole-taunt-1 object) ;; unknown type +;;(define-extern mole-taunt-2 object) ;; unknown type +;;(define-extern piston-open object) ;; unknown type +;;(define-extern robber-dies object) ;; unknown type +;;(define-extern robber-flap object) ;; unknown type +;;(define-extern robber-taunt object) ;; unknown type +;;(define-extern mole-dig object) ;; unknown type +;;(define-extern roling-amb object) ;; unknown type +;;(define-extern #t) object) ;; unknown type +;;(define-extern group-ice-cube-foot-puff object) ;; unknown type +;;(define-extern ice-breathin object) ;; unknown type +;;(define-extern ice-monster1 object) ;; unknown type +;;(define-extern ice-monster2 object) ;; unknown type +;;(define-extern ice-monster4 object) ;; unknown type +;;(define-extern ice-spike-in object) ;; unknown type +;;(define-extern ice-spike-out object) ;; unknown type +;;(define-extern icelurk-land object) ;; unknown type +;;(define-extern icelurk-step object) ;; unknown type +;;(define-extern group-ram-boss-foot-puff object) ;; unknown type +;;(define-extern ice-monster3 object) ;; unknown type +;;(define-extern ramboss-land object) ;; unknown type +;;(define-extern ramboss-laugh object) ;; unknown type +;;(define-extern ramboss-shield object) ;; unknown type +;;(define-extern ramboss-step object) ;; unknown type +;;(define-extern ramboss-yell object) ;; unknown type +;;(define-extern babak-death object) ;; unknown type +;;(define-extern burst-out object) ;; unknown type +;;(define-extern winter-amb object) ;; unknown type +;;(define-extern bully-dies object) ;; unknown type +;;(define-extern bully-jump object) ;; unknown type +;;(define-extern bully-land object) ;; unknown type +;;(define-extern bully-spin1 object) ;; unknown type +;;(define-extern bully-spin2 object) ;; unknown type +;;(define-extern split-steps object) ;; unknown type +;;(define-extern splitb-breathin object) ;; unknown type +;;(define-extern splitb-dies object) ;; unknown type +;;(define-extern splitb-roar object) ;; unknown type +;;(define-extern splitb-roars object) ;; unknown type +;;(define-extern splitb-spot object) ;; unknown type +;;(define-extern splitb-taunt object) ;; unknown type +;;(define-extern splita-charge object) ;; unknown type +;;(define-extern splita-dies object) ;; unknown type +;;(define-extern splita-roar object) ;; unknown type +;;(define-extern splita-spot object) ;; unknown type +;;(define-extern splita-taunt object) ;; unknown type +;;(define-extern chamber-land object) ;; unknown type +;;(define-extern chamber-lift object) ;; unknown type +;;(define-extern submerge object) ;; unknown type +;;(define-extern puffer-change object) ;; unknown type +;;(define-extern puffer-wing object) ;; unknown type +;;(define-extern path1 object) ;; unknown type +;;(define-extern path1-k object) ;; unknown type +;;(define-extern path2 object) ;; unknown type +;;(define-extern path2-k object) ;; unknown type +;;(define-extern path3 object) ;; unknown type +;;(define-extern path3-k object) ;; unknown type +;;(define-extern path4 object) ;; unknown type +;;(define-extern path4-k object) ;; unknown type +;;(define-extern path5 object) ;; unknown type +;;(define-extern path5-k object) ;; unknown type +;;(define-extern path6 object) ;; unknown type +;;(define-extern path6-k object) ;; unknown type +;;(define-extern path7 object) ;; unknown type +;;(define-extern path7-k object) ;; unknown type +;;(define-extern path8 object) ;; unknown type +;;(define-extern path8-k object) ;; unknown type +;;(define-extern sunken-amb object) ;; unknown type +;;(define-extern kermit-dies object) ;; unknown type +;;(define-extern kermit-letgo object) ;; unknown type +;;(define-extern kermit-shoot object) ;; unknown type +;;(define-extern kermit-speak1 object) ;; unknown type +;;(define-extern kermit-speak2 object) ;; unknown type +;;(define-extern bat-celebrate object) ;; unknown type +;;(define-extern lurkbat-dies object) ;; unknown type +;;(define-extern lurkbat-idle object) ;; unknown type +;;(define-extern lurkbat-wing object) ;; unknown type +;;(define-extern -2 object) ;; unknown type +;;(define-extern 0 object) ;; unknown type +;;(define-extern 1 object) ;; unknown type +;;(define-extern 100 object) ;; unknown type +;;(define-extern 3 object) ;; unknown type +;;(define-extern 4 object) ;; unknown type +;;(define-extern 5 object) ;; unknown type +;;(define-extern 6 object) ;; unknown type +;;(define-extern lurkrat-bounce object) ;; unknown type +;;(define-extern lurkrat-dies object) ;; unknown type +;;(define-extern lurkrat-fall object) ;; unknown type +;;(define-extern lurkrat-idle object) ;; unknown type +;;(define-extern lurkrat-notice object) ;; unknown type +;;(define-extern lurkrat-walk object) ;; unknown type +;;(define-extern rat-celebrate object) ;; unknown type +;;(define-extern pole-down object) ;; unknown type +;;(define-extern pole-up object) ;; unknown type +;;(define-extern pathb-k object) ;; unknown type +;;(define-extern swamp-amb object) ;; unknown type +(define-extern logo-slave-init-by-other function) +;;(define-extern target-title-wait object) ;; unknown type +;;(define-extern *logo-sg* object) ;; unknown type +;;(define-extern target-title-play object) ;; unknown type +;;(define-extern *logo-japan-sg* object) ;; unknown type +;;(define-extern logo-slave object) ;; unknown type +;;(define-extern *ndi-volumes-sg* object) ;; unknown type +;;(define-extern *logo-black-sg* object) ;; unknown type +;;(define-extern *ndi-cam-sg* object) ;; unknown type +(define-extern logo-init-by-other function) +;;(define-extern *logo-volumes-sg* object) ;; unknown type +;;(define-extern *ndi-sg* object) ;; unknown type +;;(define-extern *logo-cam-sg* object) ;; unknown type +;;(define-extern *logo-volumes-japan-sg* object) ;; unknown type +;;(define-extern ndi object) ;; unknown type +;;(define-extern startup object) ;; unknown type +;;(define-extern break-dummy object) ;; unknown type +;;(define-extern training-amb object) ;; unknown type +;;(define-extern water-lap-cls object) ;; unknown type +;;(define-extern walk-wood2 object) ;; unknown type +;;(define-extern yakow-grazing object) ;; unknown type +;;(define-extern 11 object) ;; unknown type +;;(define-extern 12 object) ;; unknown type +;;(define-extern 50 object) ;; unknown type +;;(define-extern bird-1 object) ;; unknown type +;;(define-extern bird-3 object) ;; unknown type +;;(define-extern bird-4 object) ;; unknown type +;;(define-extern bird-house object) ;; unknown type +;;(define-extern bubbling-still object) ;; unknown type +;;(define-extern cage-bird-2 object) ;; unknown type +;;(define-extern cage-bird-4 object) ;; unknown type +;;(define-extern cage-bird-5 object) ;; unknown type +;;(define-extern fire-bubble object) ;; unknown type +;;(define-extern fire-crackle object) ;; unknown type +;;(define-extern fly1 object) ;; unknown type +;;(define-extern fly2 object) ;; unknown type +;;(define-extern fly3 object) ;; unknown type +;;(define-extern fly4 object) ;; unknown type +;;(define-extern fly5 object) ;; unknown type +;;(define-extern fly6 object) ;; unknown type +;;(define-extern fly7 object) ;; unknown type +;;(define-extern fly8 object) ;; unknown type +;;(define-extern fountain object) ;; unknown type +;;(define-extern gear-creak object) ;; unknown type +;;(define-extern hover-bike-hum object) ;; unknown type +;;(define-extern seagulls-2 object) ;; unknown type +(define-extern evilplant type) +;;(define-extern meteor object) ;; unknown type +;;(define-extern v2ogre-roar1 object) ;; unknown type +;;(define-extern v2ogre-roar2 object) ;; unknown type +;;(define-extern control-panel object) ;; unknown type +;;(define-extern fire-boulder object) ;; unknown type +;;(define-extern flame-pot object) ;; unknown type +;;(define-extern sages-machine object) ;; unknown type +;;(define-extern wind-chimes object) ;; unknown type +;;(define-extern lava-erupt object) ;; unknown type +;;(define-extern miners-fire object) ;; unknown type +;;(define-extern small-steam object) ;; unknown type +;;(define-extern steam-large object) ;; unknown type +;;(define-extern steam-medium object) ;; unknown type +;;(define-extern steam-small object) ;; unknown type +;;(define-extern sulphur object) ;; unknown type +(define-extern lavaspoutdrip type) +;;(define-extern ripple-for-lava object) ;; unknown type + diff --git a/decompiler/config/jak1_ntsc_black_label.jsonc b/decompiler/config/jak1_ntsc_black_label.jsonc index e1b8dd8a0f..ee8b6740ca 100644 --- a/decompiler/config/jak1_ntsc_black_label.jsonc +++ b/decompiler/config/jak1_ntsc_black_label.jsonc @@ -3,13 +3,14 @@ { "game_version":1, // the order here matters. KERNEL and GAME should go first - "dgo_names":["CGO/KERNEL.CGO" - , "CGO/GAME.CGO", "CGO/ENGINE.CGO" + "dgo_names":["CGO/KERNEL.CGO", "CGO/GAME.CGO"], + /*, "CGO/ENGINE.CGO" , "CGO/ART.CGO", "DGO/BEA.DGO", "DGO/CIT.DGO", "CGO/COMMON.CGO", "DGO/DAR.DGO", "DGO/DEM.DGO", "DGO/FIN.DGO", "DGO/INT.DGO", "DGO/JUB.DGO", "DGO/JUN.DGO", "CGO/JUNGLE.CGO", "CGO/L1.CGO", "DGO/FIC.DGO", "DGO/LAV.DGO", "DGO/MAI.DGO", "CGO/MAINCAVE.CGO", "DGO/MIS.DGO", "DGO/OGR.DGO", "CGO/RACERP.CGO", "DGO/ROB.DGO", "DGO/ROL.DGO", "DGO/SNO.DGO", "DGO/SUB.DGO", "DGO/SUN.DGO", "CGO/SUNKEN.CGO", "DGO/SWA.DGO", "DGO/TIT.DGO", "DGO/TRA.DGO", "DGO/VI1.DGO", - "DGO/VI2.DGO", "DGO/VI3.DGO", "CGO/VILLAGEP.CGO", "CGO/WATER-AN.CGO"], + "DGO/VI2.DGO", "DGO/VI3.DGO", "CGO/VILLAGEP.CGO", "CGO/WATER-AN.CGO" + ],*/ "write_disassembly":true, "write_hex_near_instructions":false, @@ -29,9 +30,16 @@ "asm_functions_by_name":[ // gcommon - "ash", "abs", "min", "max", "collide-do-primitives", "draw-bones-check-longest-edge-asm", + "ash", "abs", "min", "max", "(method 2 vec4s)", "quad-copy!", "(method 3 vec4s)", "breakpoint-range-set!", + + // pskernel + "resend-exception", "kernel-set-interrupt-vector", "kernel-set-exception-vector", "return-from-exception", + "kernel-read", "kernel-read-function", "kernel-write", "kernel-write-function", "kernel-copy-to-kernel-ram", + + "collide-do-primitives", "draw-bones-check-longest-edge-asm", "sp-launch-particles-var", "(method 15 collide-shape-prim-mesh)", "(method 15 collide-shape-prim-sphere)", - "(method 45 collide-shape)", "cam-layout-save-cam-trans", "kernel-copy-function", "dma-sync-hang", "generic-no-light-dproc", "dma-sync-fast", "bsp-camera-asm", + "(method 45 collide-shape)", "cam-layout-save-cam-trans", "kernel-copy-function", "dma-sync-hang", "generic-no-light-dproc", + "dma-sync-fast", "bsp-camera-asm", "generic-none-dma-wait", "unpack-comp-rle", "level-remap-texture", "(method 10 collide-edge-hold-list)" ] } \ No newline at end of file diff --git a/decompiler/main.cpp b/decompiler/main.cpp index 85d63c64a2..1119924e4b 100644 --- a/decompiler/main.cpp +++ b/decompiler/main.cpp @@ -4,7 +4,7 @@ #include "ObjectFile/ObjectFileDB.h" #include "config.h" #include "util/FileIO.h" -#include "TypeSystem/TypeInfo.h" + #include "common/util/FileUtil.h" int main(int argc, char** argv) { @@ -48,8 +48,9 @@ int main(int argc, char** argv) { db.write_disassembly(out_folder, get_config().disassemble_objects_without_functions); } - printf("%s\n", get_type_info().get_summary().c_str()); - // printf("%d\n", InstructionKind::EE_OP_MAX); - // printf("%s\n", get_type_info().get_all_symbols_debug().c_str()); + // todo print type summary + // printf("%s\n", get_type_info().get_summary().c_str()); + + file_util::write_text_file(combine_path(out_folder, "all-syms.gc"), db.dts.dump_symbol_types()); return 0; } diff --git a/decompiler/util/DecompilerTypeSystem.cpp b/decompiler/util/DecompilerTypeSystem.cpp new file mode 100644 index 0000000000..e748b3492b --- /dev/null +++ b/decompiler/util/DecompilerTypeSystem.cpp @@ -0,0 +1,78 @@ +#include "DecompilerTypeSystem.h" +#include "common/goos/Reader.h" +#include "common/type_system/deftype.h" + +DecompilerTypeSystem::DecompilerTypeSystem() { + ts.add_builtin_types(); +} + +namespace { +// some utilities for parsing the type def file + +goos::Object& car(goos::Object& pair) { + if (pair.is_pair()) { + return pair.as_pair()->car; + } else { + throw std::runtime_error("car called on something that wasn't a pair: " + pair.print()); + } +} + +goos::Object& cdr(goos::Object& pair) { + if (pair.is_pair()) { + return pair.as_pair()->cdr; + } else { + throw std::runtime_error("cdr called on something that wasn't a pair"); + } +} + +template +void for_each_in_list(goos::Object& list, T f) { + goos::Object* iter = &list; + while (iter->is_pair()) { + f(car(*iter)); + iter = &cdr(*iter); + } + + if (!iter->is_empty_list()) { + throw std::runtime_error("malformed list"); + } +} +} // namespace + +void DecompilerTypeSystem::parse_type_defs(const std::vector& file_path) { + goos::Reader reader; + auto read = reader.read_from_file(file_path); + auto data = cdr(read); + + for_each_in_list(data, [&](goos::Object& o) { + if (car(o).as_symbol()->name == "define-extern") { + auto* rest = &cdr(o); + auto sym_name = car(*rest); + rest = &cdr(*rest); + auto sym_type = car(*rest); + if (!cdr(*rest).is_empty_list()) { + throw std::runtime_error("malformed define-extern"); + } + add_symbol(sym_name.as_symbol()->name, parse_typespec(&ts, sym_type)); + + } else if (car(o).as_symbol()->name == "deftype") { + parse_deftype(cdr(o), &ts); + } else { + throw std::runtime_error("Decompiler cannot parse " + car(o).print()); + } + }); +} + +std::string DecompilerTypeSystem::dump_symbol_types() { + assert(symbol_add_order.size() == symbols.size()); + std::string result; + for (auto& symbol_name : symbol_add_order) { + auto skv = symbol_types.find(symbol_name); + if (skv == symbol_types.end()) { + result += fmt::format(";;(define-extern {} object) ;; unknown type\n", symbol_name); + } else { + result += fmt::format("(define-extern {} {})\n", symbol_name, skv->second.print()); + } + } + return result; +} \ No newline at end of file diff --git a/decompiler/util/DecompilerTypeSystem.h b/decompiler/util/DecompilerTypeSystem.h new file mode 100644 index 0000000000..a38d447837 --- /dev/null +++ b/decompiler/util/DecompilerTypeSystem.h @@ -0,0 +1,46 @@ +#ifndef JAK_DECOMPILERTYPESYSTEM_H +#define JAK_DECOMPILERTYPESYSTEM_H + +#include "common/type_system/TypeSystem.h" +#include "third-party/fmt/format.h" + +class DecompilerTypeSystem { + public: + DecompilerTypeSystem(); + TypeSystem ts; + std::unordered_map symbol_types; + std::unordered_set symbols; + std::vector symbol_add_order; + + void add_symbol(const std::string& name) { + if (symbols.find(name) == symbols.end()) { + symbols.insert(name); + symbol_add_order.push_back(name); + } + } + + void add_symbol(const std::string& name, const std::string& base_type) { + add_symbol(name, TypeSpec(base_type)); + } + + void add_symbol(const std::string& name, const TypeSpec& type_spec) { + add_symbol(name); + auto skv = symbol_types.find(name); + if (skv == symbol_types.end() || skv->second == type_spec) { + symbol_types[name] = type_spec; + } else { + if (ts.typecheck(type_spec, skv->second, "", false, false)) { + } else { + fmt::print("Attempting to redefine type of symbol {} from {} to {}\n", name, + skv->second.print(), type_spec.print()); + throw std::runtime_error("Type redefinition"); + } + } + } + + void parse_type_defs(const std::vector& file_path); + + std::string dump_symbol_types(); +}; + +#endif // JAK_DECOMPILERTYPESYSTEM_H diff --git a/decompiler/util/LispPrint.cpp b/decompiler/util/LispPrint.cpp index 3031cd7ead..3e0919a954 100644 --- a/decompiler/util/LispPrint.cpp +++ b/decompiler/util/LispPrint.cpp @@ -514,3 +514,14 @@ std::shared_ptr buildList(std::vector>& forms) { } return buildList(forms.data(), forms.size()); } + +std::shared_ptr buildList(std::vector& forms) { + if (forms.empty()) { + return gSymbolTable.getEmptyPair(); + } + std::vector> f; + for (auto& x : forms) { + f.push_back(toForm(x)); + } + return buildList(f.data(), f.size()); +} \ No newline at end of file diff --git a/decompiler/util/LispPrint.h b/decompiler/util/LispPrint.h index a1b964dbdd..58fd68feae 100644 --- a/decompiler/util/LispPrint.h +++ b/decompiler/util/LispPrint.h @@ -122,6 +122,7 @@ std::shared_ptr buildList(const std::string& str); std::shared_ptr buildList(std::shared_ptr form); std::shared_ptr buildList(std::vector>& forms); std::shared_ptr buildList(std::shared_ptr* forms, int count); +std::shared_ptr buildList(std::vector& forms); template std::shared_ptr buildList(const std::string& str, Args... rest) {