diff --git a/.github/scripts/releases/error-code-metadata.json b/.github/scripts/releases/error-code-metadata.json index d06a55b30e..b0654425a5 100644 --- a/.github/scripts/releases/error-code-metadata.json +++ b/.github/scripts/releases/error-code-metadata.json @@ -16,5 +16,8 @@ }, "4020": { "msg": "Validation Failed: ISO Extraction failed, output directory did not contain expected files" + }, + "4030": { + "msg": "Decompilation Failed: An error occurred" } } diff --git a/.vs/launch.vs.json b/.vs/launch.vs.json index 2aee440c17..1f9e767917 100644 --- a/.vs/launch.vs.json +++ b/.vs/launch.vs.json @@ -138,7 +138,7 @@ "project" : "CMakeLists.txt", "projectTarget" : "extractor.exe (bin\\extractor.exe)", "name" : "Run - Extractor - Extract", - "args" : [ "\"E:\\ISOs\\Jak\\Jak 1.iso\"", "--extract", "--proj-path", "C:\\Users\\xtvas\\Repositories\\opengoal\\launcher\\bundle-test\\data"] + "args" : [ "\"C:\\Game\\PS2SMB\\DVD\\SCPS_150.21.Jak & Daxter - TPL (NTSC-J).iso\""] } ] } diff --git a/CMakeLists.txt b/CMakeLists.txt index a8a81a781a..116d7a0ba0 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -164,6 +164,7 @@ add_subdirectory(third-party/lzokay EXCLUDE_FROM_ALL) add_subdirectory(third-party/fmt EXCLUDE_FROM_ALL) add_subdirectory(third-party/stb_image EXCLUDE_FROM_ALL) add_subdirectory(third-party/tiny_gltf EXCLUDE_FROM_ALL) +add_subdirectory(third-party/xdelta3 EXCLUDE_FROM_ALL) # discord rich presence diff --git a/common/serialization/subtitles/subtitles.cpp b/common/serialization/subtitles/subtitles.cpp index 075a6d496a..26a9699a01 100644 --- a/common/serialization/subtitles/subtitles.cpp +++ b/common/serialization/subtitles/subtitles.cpp @@ -6,7 +6,8 @@ #include "common/util/json_util.h" static const std::unordered_map s_text_ver_enum_map = { - {"jak1-v1", GameTextVersion::JAK1_V1}}; + {"jak1-v1", GameTextVersion::JAK1_V1}, + {"jak1-v2", GameTextVersion::JAK1_V2}}; // TODO - why not just return the inputs instead of passing in an empty one? void open_text_project(const std::string& kind, @@ -27,6 +28,10 @@ void open_text_project(const std::string& kind, auto& ver = o.as_pair()->car.as_symbol()->name; auto& in = o.as_pair()->cdr.as_pair()->car.as_string()->data; + if (s_text_ver_enum_map.count(ver) == 0) { + throw std::runtime_error(fmt::format("unknown text version {}", ver)); + } + inputs[s_text_ver_enum_map.at(ver)].push_back(in); }); } @@ -77,7 +82,7 @@ void parse_text(const goos::Object& data, GameTextVersion text_ver, GameTextDB& for_each_in_list(data.as_pair()->cdr, [&](const goos::Object& obj) { if (obj.is_pair()) { auto& head = car(obj); - if (head.is_symbol() && head.as_symbol()->name == "language-id") { + if (head.is_symbol("language-id")) { if (banks.size() != 0) { throw std::runtime_error("Languages have been set multiple times."); } @@ -99,7 +104,7 @@ void parse_text(const goos::Object& data, GameTextVersion text_ver, GameTextDB& banks.push_back(db.bank_by_id(possible_group_name, lang)); } }); - } else if (head.is_symbol() && head.as_symbol()->name == "group-name") { + } else if (head.is_symbol("group-name")) { if (!possible_group_name.empty()) { throw std::runtime_error("group-name has been set multiple times."); } @@ -113,6 +118,56 @@ void parse_text(const goos::Object& data, GameTextVersion text_ver, GameTextDB& if (!cdr(cdr(obj)).is_empty_list()) { throw std::runtime_error("group-name has too many arguments"); } + } else if (head.is_symbol("credits")) { + // parse a "credits" object. it's a list of lines where the ID automatically increments, and + // empty lines are skipped + if (banks.size() == 0) { + throw std::runtime_error("At least one language must be set before defining entries."); + } + + if (cdr(obj).is_empty_list() || cdr(cdr(obj)).is_empty_list() || + !car(cdr(obj)).is_symbol(":begin") || !car(cdr(cdr(obj))).is_int()) { + throw std::runtime_error("Invalid credits begin param"); + } + + const auto& it = cdr(cdr(obj)); + int begin_id = car(it).as_int(); + int id = begin_id - 1; + for_each_in_list(cdr(it), [&](const goos::Object& entry) { + ++id; + if (entry.is_string()) { + if (entry.as_string()->data.empty()) { + // empty string! just advance + return; + } + + auto line = font->convert_utf8_to_game(entry.as_string()->data); + // add to all langs + for (auto& bank : banks) { + bank->set_line(id, line); + } + } else if (entry.is_pair()) { + int b_i = 0; + for_each_in_list(entry, [&](const goos::Object& entry) { + if (entry.is_string()) { + if (b_i >= int(banks.size())) { + throw std::runtime_error(fmt::format("Too many strings in text id #x{:x}", id)); + } + + auto line = font->convert_utf8_to_game(entry.as_string()->data); + banks[b_i++]->set_line(id, line); + } else { + throw std::runtime_error(fmt::format("Non-string value in text id #x{:x}", id)); + } + }); + if (b_i != int(banks.size())) { + throw std::runtime_error( + fmt::format("Not enough strings specified in text id #x{:x}", id)); + } + } else { + throw std::runtime_error(fmt::format("Non-string value in text id #x{:x}", id)); + } + }); } else if (head.is_int()) { diff --git a/common/util/FontUtils.cpp b/common/util/FontUtils.cpp index a48c236995..83faf654ab 100644 --- a/common/util/FontUtils.cpp +++ b/common/util/FontUtils.cpp @@ -502,6 +502,240 @@ GameTextFontBank g_font_bank_jak1(GameTextVersion::JAK1_V1, &g_replace_info_jak1, &passthrus); +/*! + * ================================ + * GAME TEXT FONT BANK - JAK 1 (v2) + * ================================ + * This font is used in: + * - Jak & Daxter: The Precursor Legacy (PAL) + * + * It is the same as v1, but _ has been fixed and no longer overlaps 掘 + */ + +static std::vector g_encode_info_jak1_v2 = { + // random + {"_", {0x03}}, // large space + {"ˇ", {0x10}}, // caron + {"`", {0x11}}, // grave accent + {"'", {0x12}}, // apostrophe + {"^", {0x13}}, // circumflex + {"", {0x14}}, // tilde + {"¨", {0x15}}, // umlaut + {"º", {0x16}}, // numero/overring + {"¡", {0x17}}, // inverted exclamation mark + {"¿", {0x18}}, // inverted question mark + + {"海", {0x1a}}, // umi + {"Æ", {0x1b}}, // aesc + {"界", {0x1c}}, // kai + {"Ç", {0x1d}}, // c-cedilla + {"学", {0x1e}}, // gaku + {"ß", {0x1f}}, // eszett + + {"\"", {0x22}}, // double-quotes + + {"ワ", {0x24}}, // wa + + {"ヲ", {0x26}}, // wo + {"ン", {0x27}}, // -n + + {"岩", {0x5c}}, // iwa + {"旧", {0x5d}}, // kyuu + {"空", {0x5e}}, // sora + {"掘", {0x5f}}, // horu + + {"ヮ", {0x60}}, // -wa + {"撃", {0x61}}, // utsu + {"賢", {0x62}}, // kashikoi + {"湖", {0x63}}, // mizuumi + {"口", {0x64}}, // kuchi + {"行", {0x65}}, // iku + {"合", {0x66}}, // ai + {"士", {0x67}}, // shi + {"寺", {0x68}}, // tera + {"山", {0x69}}, // yama + {"者", {0x6a}}, // mono + {"所", {0x6b}}, // tokoro + {"書", {0x6c}}, // kaku + {"小", {0x6d}}, // shou + {"沼", {0x6e}}, // numa + {"上", {0x6f}}, // ue + {"城", {0x70}}, // shiro + {"場", {0x71}}, // ba + {"出", {0x72}}, // shutsu + {"闇", {0x73}}, // yami + {"遺", {0x74}}, // nokosu + {"黄", {0x75}}, // ki + {"屋", {0x76}}, // ya + {"下", {0x77}}, // shita + {"家", {0x78}}, // ie + {"火", {0x79}}, // hi + {"花", {0x7a}}, // hana + {"レ", {0x7b}}, // re + {"Œ", {0x7c}}, // oe + {"ロ", {0x7d}}, // ro + + {"青", {0x7f}}, // ao + + {"・", {0x90}}, // nakaguro + {"゛", {0x91}}, // dakuten + {"゜", {0x92}}, // handakuten + {"ー", {0x93}}, // chouompu + {"『", {0x94}}, // nijuukagikakko left + {"』", {0x95}}, // nijuukagikakko right + // hiragana + {"ぁ", {0x96}}, // -a + {"あ", {0x97}}, // a + {"ぃ", {0x98}}, // -i + {"い", {0x99}}, // i + {"ぅ", {0x9a}}, // -u + {"う", {0x9b}}, // u + {"ぇ", {0x9c}}, // -e + {"え", {0x9d}}, // e + {"ぉ", {0x9e}}, // -o + {"お", {0x9f}}, // o + {"か", {0xa0}}, // ka + {"き", {0xa1}}, // ki + {"く", {0xa2}}, // ku + {"け", {0xa3}}, // ke + {"こ", {0xa4}}, // ko + {"さ", {0xa5}}, // sa + {"し", {0xa6}}, // shi + {"す", {0xa7}}, // su + {"せ", {0xa8}}, // se + {"そ", {0xa9}}, // so + {"た", {0xaa}}, // ta + {"ち", {0xab}}, // chi + {"っ", {0xac}}, // sokuon + {"つ", {0xad}}, // tsu + {"て", {0xae}}, // te + {"と", {0xaf}}, // to + {"な", {0xb0}}, // na + {"に", {0xb1}}, // ni + {"ぬ", {0xb2}}, // nu + {"ね", {0xb3}}, // ne + {"の", {0xb4}}, // no + {"は", {0xb5}}, // ha + {"ひ", {0xb6}}, // hi + {"ふ", {0xb7}}, // hu + {"へ", {0xb8}}, // he + {"ほ", {0xb9}}, // ho + {"ま", {0xba}}, // ma + {"み", {0xbb}}, // mi + {"む", {0xbc}}, // mu + {"め", {0xbd}}, // me + {"も", {0xbe}}, // mo + {"ゃ", {0xbf}}, // youon ya + {"や", {0xc0}}, // ya + {"ゅ", {0xc1}}, // youon yu + {"ゆ", {0xc2}}, // yu + {"ょ", {0xc3}}, // youon yo + {"よ", {0xc4}}, // yo + {"ら", {0xc5}}, // ra + {"り", {0xc6}}, // ri + {"る", {0xc7}}, // ru + {"れ", {0xc8}}, // re + {"ろ", {0xc9}}, // ro + {"ゎ", {0xca}}, // -wa + {"わ", {0xcb}}, // wa + {"を", {0xcc}}, // wo + {"ん", {0xcd}}, // -n + // katakana + {"ァ", {0xce}}, // -a + {"ア", {0xcf}}, // a + {"ィ", {0xd0}}, // -i + {"イ", {0xd1}}, // i + {"ゥ", {0xd2}}, // -u + {"ウ", {0xd3}}, // u + {"ェ", {0xd4}}, // -e + {"エ", {0xd5}}, // e + {"ォ", {0xd6}}, // -o + {"オ", {0xd7}}, // o + {"カ", {0xd8}}, // ka + {"キ", {0xd9}}, // ki + {"ク", {0xda}}, // ku + {"ケ", {0xdb}}, // ke + {"コ", {0xdc}}, // ko + {"サ", {0xdd}}, // sa + {"シ", {0xde}}, // shi + {"ス", {0xdf}}, // su + {"セ", {0xe0}}, // se + {"ソ", {0xe1}}, // so + {"タ", {0xe2}}, // ta + {"チ", {0xe3}}, // chi + {"ッ", {0xe4}}, // sokuon + {"ツ", {0xe5}}, // tsu + {"テ", {0xe6}}, // te + {"ト", {0xe7}}, // to + {"ナ", {0xe8}}, // na + {"ニ", {0xe9}}, // ni + {"ヌ", {0xea}}, // nu + {"ネ", {0xeb}}, // ne + {"ノ", {0xec}}, // no + {"ハ", {0xed}}, // ha + {"ヒ", {0xee}}, // hi + {"フ", {0xef}}, // hu + {"ヘ", {0xf0}}, // he + {"ホ", {0xf1}}, // ho + {"マ", {0xf2}}, // ma + {"ミ", {0xf3}}, // mi + {"ム", {0xf4}}, // mu + {"メ", {0xf5}}, // me + {"モ", {0xf6}}, // mo + {"ャ", {0xf7}}, // youon ya + {"ヤ", {0xf8}}, // ya + {"ュ", {0xf9}}, // youon yu + {"ユ", {0xfa}}, // yu + {"ョ", {0xfb}}, // youon yo + {"ヨ", {0xfc}}, // yo + {"ラ", {0xfd}}, // ra + {"リ", {0xfe}}, // ri + {"ル", {0xff}}, // ru + // kanji 2 + {"宝", {1, 0x01}}, // takara + + {"石", {1, 0x10}}, // ishi + {"赤", {1, 0x11}}, // aka + {"跡", {1, 0x12}}, // ato + {"川", {1, 0x13}}, // kawa + {"戦", {1, 0x14}}, // ikusa + {"村", {1, 0x15}}, // mura + {"隊", {1, 0x16}}, // tai + {"台", {1, 0x17}}, // utena + {"長", {1, 0x18}}, // osa + {"鳥", {1, 0x19}}, // tori + {"艇", {1, 0x1a}}, // tei + {"洞", {1, 0x1b}}, // hora + {"道", {1, 0x1c}}, // michi + {"発", {1, 0x1d}}, // hatsu + {"飛", {1, 0x1e}}, // tobu + {"噴", {1, 0x1f}}, // fuku + + {"池", {1, 0xa0}}, // ike + {"中", {1, 0xa1}}, // naka + {"塔", {1, 0xa2}}, // tou + {"島", {1, 0xa3}}, // shima + {"部", {1, 0xa4}}, // bu + {"砲", {1, 0xa5}}, // hou + {"産", {1, 0xa6}}, // san + {"眷", {1, 0xa7}}, // kaerimiru + {"力", {1, 0xa8}}, // chikara + {"緑", {1, 0xa9}}, // midori + {"岸", {1, 0xaa}}, // kishi + {"像", {1, 0xab}}, // zou + {"谷", {1, 0xac}}, // tani + {"心", {1, 0xad}}, // kokoro + {"森", {1, 0xae}}, // mori + {"水", {1, 0xaf}}, // mizu + {"船", {1, 0xb0}}, // fune + {"™", {1, 0xb1}}, // trademark +}; + +GameTextFontBank g_font_bank_jak1_v2(GameTextVersion::JAK1_V2, + &g_encode_info_jak1_v2, + &g_replace_info_jak1, + &passthrus); + /*! * ======================== * GAME TEXT FONT BANK LIST @@ -510,7 +744,8 @@ GameTextFontBank g_font_bank_jak1(GameTextVersion::JAK1_V1, */ std::map g_font_banks = { - {GameTextVersion::JAK1_V1, &g_font_bank_jak1}}; + {GameTextVersion::JAK1_V1, &g_font_bank_jak1}, + {GameTextVersion::JAK1_V2, &g_font_bank_jak1_v2}}; const GameTextFontBank* get_font_bank(GameTextVersion version) { return g_font_banks.at(version); diff --git a/common/util/read_iso_file.cpp b/common/util/read_iso_file.cpp index 85ef213c60..6e65ddf43f 100644 --- a/common/util/read_iso_file.cpp +++ b/common/util/read_iso_file.cpp @@ -1,5 +1,5 @@ #include "read_iso_file.h" -#include "third-party/fmt/core.h" +#include "common/log/log.h" #include "common/common_types.h" #include "common/util/Assert.h" #include "common/util/FileUtil.h" @@ -79,14 +79,18 @@ void add_from_dir(FILE* fp, u32 sector, u32 size, IsoFile::Entry* parent) { void unpack_entry(FILE* fp, IsoFile& iso, const IsoFile::Entry& entry, - const std::filesystem::path& dest) { + const std::filesystem::path& dest, + bool print_progress) { std::filesystem::path path_to_entry = dest / entry.name; if (entry.is_dir) { std::filesystem::create_directory(path_to_entry); for (const auto& child : entry.children) { - unpack_entry(fp, iso, child, path_to_entry); + unpack_entry(fp, iso, child, path_to_entry, print_progress); } } else { + if (print_progress) { + lg::info("Extracting {}...", entry.name); + } std::vector buffer(entry.size); if (fseek(fp, entry.offset_in_file, SEEK_SET)) { ASSERT_MSG(false, "Failed to fseek iso when unpacking"); @@ -113,13 +117,19 @@ IsoFile find_files_in_iso(FILE* fp) { return result; } -void unpack_iso_files(FILE* fp, IsoFile& layout, const std::filesystem::path& dest) { - unpack_entry(fp, layout, layout.root, dest); +void unpack_iso_files(FILE* fp, + IsoFile& layout, + const std::filesystem::path& dest, + bool print_progress) { + unpack_entry(fp, layout, layout.root, dest, print_progress); } -IsoFile unpack_iso_files(FILE* fp, const std::filesystem::path& dest, const bool hashFiles) { +IsoFile unpack_iso_files(FILE* fp, + const std::filesystem::path& dest, + bool print_progress, + const bool hashFiles) { auto file = find_files_in_iso(fp); file.shouldHash = hashFiles; - unpack_iso_files(fp, file, dest); + unpack_iso_files(fp, file, dest, print_progress); return file; } diff --git a/common/util/read_iso_file.h b/common/util/read_iso_file.h index e71a4a7c19..6109d90cce 100644 --- a/common/util/read_iso_file.h +++ b/common/util/read_iso_file.h @@ -34,4 +34,7 @@ struct IsoFile { IsoFile find_files_in_iso(FILE* fp); void unpack_iso_files(FILE* fp, IsoFile& layout, const std::filesystem::path& dest); -IsoFile unpack_iso_files(FILE* fp, const std::filesystem::path& dest, const bool hashFiles = false); +IsoFile unpack_iso_files(FILE* fp, + const std::filesystem::path& dest, + bool print_progress, + const bool hashFiles = false); diff --git a/common/util/xdelta3_util.h b/common/util/xdelta3_util.h deleted file mode 100644 index 4f15fed520..0000000000 --- a/common/util/xdelta3_util.h +++ /dev/null @@ -1,12 +0,0 @@ -#pragma once - -/*! - * @file xdelta3.h - * Interface around including xdelta3. - * C library weirdness. - */ - -#define SIZEOF_SIZE_T 8 -#define SIZEOF_UNSIGNED_LONG_LONG 8 -#include "third-party/xdelta3/xdelta3/xdelta3.h" -#include "third-party/xdelta3/xdelta3/xdelta3.c" diff --git a/decompiler/CMakeLists.txt b/decompiler/CMakeLists.txt index 82754934f4..9badadbdf2 100644 --- a/decompiler/CMakeLists.txt +++ b/decompiler/CMakeLists.txt @@ -84,6 +84,7 @@ target_link_libraries(decomp common fmt stb_image + xdelta3 ) add_executable(decompiler diff --git a/decompiler/ObjectFile/ObjectFileDB.cpp b/decompiler/ObjectFile/ObjectFileDB.cpp index c3d182d54a..1748df3eb4 100644 --- a/decompiler/ObjectFile/ObjectFileDB.cpp +++ b/decompiler/ObjectFile/ObjectFileDB.cpp @@ -27,6 +27,7 @@ #include "common/log/log.h" #include "common/util/json_util.h" #include "common/util/crc32.h" +#include "third-party/xdelta3/xdelta3.h" namespace decompiler { namespace { @@ -140,6 +141,59 @@ ObjectFileDB::ObjectFileDB(const std::vector& _dgos, for (auto& obj : object_files) { auto data = file_util::read_binary_file(obj); auto name = obj_filename_to_name(obj); + if (auto it = config.object_patches.find(name); it != config.object_patches.end()) { + // print the file CRC + fmt::print("CRC for {} is: 0x{:X}\n", name, crc32(data.data(), data.size())); + // write patch file if necessary + if (config.write_patches) { + // this is the "target" file we want to patch to + auto data2 = file_util::read_binary_file( + (file_util::get_jak_project_dir() / it->second.target_file).string()); + // we need to allocate a buffer to store the delta patch + // we make it 2x the source file's size because... it seems like a good size? + // ideally the delta patch should never be that big. + int buf_sz = data.size() * 2; + u8* out_buf = (u8*)malloc(buf_sz); + size_t out_sz = 0; // this is where the actual used size of the delta patch will be stored + int xd3_res = xd3_encode_memory(data2.data(), data2.size(), data.data(), data.size(), + out_buf, &out_sz, buf_sz, 0); + if (xd3_res) { + lg::error("error patching {} with {} (out {}): {}", name, it->second.target_file, + it->second.patch_file, xd3_strerror(xd3_res)); + } else { + std::vector patch_data(out_sz); + memcpy(patch_data.data(), out_buf, patch_data.size()); + file_util::write_binary_file( + (file_util::get_jak_project_dir() / it->second.patch_file).string(), + patch_data.data(), patch_data.size()); + } + free(out_buf); + } + + // apply patch file if necessary + // note that xd3 doesnt really have any safety against bad files so we check crc ourselves + if (config.apply_patches && it->second.crc == crc32(data.data(), data.size())) { + // this is the delta patch file + auto data2 = file_util::read_binary_file( + (file_util::get_jak_project_dir() / it->second.patch_file).string()); + // we need to allocate a buffer to store the patched file + // the delta patch isn't gonna be this big but we allocate 2x the source file's size + the + // delta patch's size + int buf_sz = data.size() * 2 + data2.size(); + u8* out_buf = (u8*)malloc(buf_sz); + size_t out_sz = 0; + int xd3_res = xd3_decode_memory(data2.data(), data2.size(), data.data(), data.size(), + out_buf, &out_sz, buf_sz, 0); + if (xd3_res) { + lg::error("error patching {} with {} (out {}): {}", name, it->second.target_file, + it->second.patch_file, xd3_strerror(xd3_res)); + } else { + data.resize(out_sz); + memcpy(data.data(), out_buf, data.size()); + } + free(out_buf); + } + } add_obj_from_dgo(name, name, data.data(), data.size(), "NO-XGO", config); } @@ -220,7 +274,8 @@ void ObjectFileDB::get_objs_from_dgo(const std::string& filename, const Config& if (i == header.object_count - 1) { if (reader.bytes_left() == obj_header.object_count - 0x30) { if (config.is_pal) { - lg::warn("Skipping {} because it is a broken PAL object", obj_header.name); + lg::warn("Skipping {} in {} because it is a broken PAL object", obj_header.name, + dgo_base_name); reader.ffwd(reader.bytes_left()); continue; } else { @@ -646,7 +701,7 @@ std::string ObjectFileDB::process_game_text_files(const Config& cfg) { if (text_by_language_by_id.empty()) { return {}; } - return write_game_text(cfg, text_by_language_by_id); + return write_game_text(cfg.text_version, text_by_language_by_id); } std::string ObjectFileDB::process_game_count_file() { diff --git a/decompiler/config.cpp b/decompiler/config.cpp index f9031422d0..b161bbe001 100644 --- a/decompiler/config.cpp +++ b/decompiler/config.cpp @@ -240,6 +240,17 @@ Config read_config_file(const std::string& path_to_config_file, config.import_deps_by_file = import_deps.get>>(); + config.write_patches = cfg.at("write_patches").get(); + config.apply_patches = cfg.at("apply_patches").get(); + const auto& object_patches = cfg.at("object_patches"); + for (auto& [obj, pch] : object_patches.items()) { + ObjectPatchInfo new_pch; + new_pch.crc = (u32)std::stoull(pch.at("crc32").get(), nullptr, 16); + new_pch.target_file = pch.at("in").get(); + new_pch.patch_file = pch.at("out").get(); + config.object_patches.insert({obj, new_pch}); + } + return config; } diff --git a/decompiler/config.h b/decompiler/config.h index 1f3c9b0c71..b9bab1243d 100644 --- a/decompiler/config.h +++ b/decompiler/config.h @@ -8,6 +8,7 @@ #include "decompiler/Disasm/Register.h" #include "decompiler/data/game_text.h" #include "common/versions.h" +#include "common/common_types.h" namespace decompiler { struct RegisterTypeCast { @@ -82,6 +83,12 @@ struct DecompileHacks { std::unordered_map>> missing_textures_by_level; }; +struct ObjectPatchInfo { + u32 crc; + std::string target_file; + std::string patch_file; +}; + struct Config { GameVersion game_version = GameVersion::Jak1; std::vector dgo_names; @@ -115,6 +122,10 @@ struct Config { bool generate_symbol_definition_map = false; bool is_pal = false; + + bool write_patches = false; + bool apply_patches = false; + std::string game_name; std::string expected_elf_name; GameTextVersion text_version = GameTextVersion::JAK1_V1; @@ -134,6 +145,7 @@ struct Config { std::unordered_map> label_types; std::unordered_map> stack_structure_hints_by_function; + std::unordered_map object_patches; std::unordered_map bad_format_strings; diff --git a/decompiler/config/all-types.gc b/decompiler/config/all-types.gc index af19b732b9..b96a3ee1f1 100644 --- a/decompiler/config/all-types.gc +++ b/decompiler/config/all-types.gc @@ -2946,9 +2946,7 @@ (define-extern exp (function float float)) (define-extern sinerp-clamp (function float float float float)) (define-extern coserp-clamp (function float float float float)) -;; ;; unknown type (define-extern coserp180-clamp (function float float float float)) - ;; unknown type (define-extern ease-in-out (function int int float)) ;; - Symbols @@ -4009,7 +4007,7 @@ ;; - Symbols -(define-extern *vif-disasm-table* (array vif-disasm-element)) ;; unknown type +(define-extern *vif-disasm-table* (array vif-disasm-element)) (define-extern *dma-disasm* symbol) @@ -4856,8 +4854,8 @@ (define-extern set-display (function display int int int int int display)) (define-extern put-draw-env (function (pointer gif-tag) none)) -(define-extern *pre-draw-hook* (function object none)) ;; unknown type -(define-extern *post-draw-hook* (function dma-buffer none)) ;; unknown type +(define-extern *pre-draw-hook* (function object none)) +(define-extern *post-draw-hook* (function dma-buffer none)) ;; ---------------------- @@ -5664,8 +5662,8 @@ ;; - Symbols -(define-extern *math-camera* math-camera) ;; unknown type -(define-extern *math-camera-fog-correction* fog-corrector) ;; unknown type +(define-extern *math-camera* math-camera) +(define-extern *math-camera-fog-correction* fog-corrector) ;; ---------------------- @@ -5841,8 +5839,8 @@ ;; - Symbols -(define-extern *font-default-matrix* matrix) ;; unknown type -(define-extern *font-work* font-work) ;; unknown type +(define-extern *font-default-matrix* matrix) +(define-extern *font-work* font-work) ;; ---------------------- @@ -6268,7 +6266,7 @@ (define-extern *texture-pool* texture-pool) (define-extern *font-texture* texture) (define-extern global kheap) -(define-extern *txt-dma-list* dma-buffer) ;; unknown type +(define-extern *txt-dma-list* dma-buffer) (define-extern ct32-24-block-table (array int32)) (define-extern ct16-block-table (array int32)) (define-extern ct16s-block-table (array int32)) @@ -6277,7 +6275,7 @@ (define-extern mz16s-block-table (array int32)) (define-extern mt8-block-table (array int32)) (define-extern mt4-block-table (array int32)) -(define-extern *shader-list* pair) ;; unknown type +(define-extern *shader-list* pair) (define-extern *edit-shader* texture-id) @@ -11993,6 +11991,7 @@ ) ) +;; NOTE : type has been PAL patched (deftype control-info (collide-shape-moving) ( (unknown-vector00 vector :inline :offset 448) ;; from - logic-target::build-conversions @@ -12114,6 +12113,7 @@ (unknown-uint30 uint32 :offset 2188) ;; from target::(code target-running-attack) (unknown-float121 float :offset 2188) ;; from target::mod-var-jump (unknown-uint31 uint32 :offset 2192) ;; from target::(trans target-running-attack) + (unknown-int37 int32 :offset 2192) (unknown-float122 float :offset 2196) ;; from target::(trans target-jump) (unknown-float123 float :offset 2200) ;; from target::mod-var-jump (unknown-float124 float :offset 2204) ;; from target::init-var-jump @@ -12152,10 +12152,15 @@ (wall-pat pat-surface :offset 18976) ;; pat information for wall-check collision (unknown-soundid00 sound-id :offset 18980) ;; from powerups::target-powerup-process (unknown-float141 float :offset 18984) ;; from powerups::target-powerup-process + ;; PAL patch here + (unknown-soundid01 sound-id :offset 18988) + (unknown-int34 int32 :offset 18992) + (unknown-int35 int32 :offset 18996) + (unknown-int36 int32 :offset 19000) ) - :size-assert #x4a2c + :size-assert #x4a3c ;; #x4a2c :method-count-assert 65 - :flag-assert #x4100004a2c + :flag-assert #x4100004a3c ;; #x4100004a2c ) ;; ---------------------- @@ -12595,39 +12600,41 @@ (declare-type tube-info basic) (declare-type racer-info basic) (declare-type flut-info basic) +;; NOTE : type has been PAL patched. (deftype target (process-drawable) - ((self-override target :score 100 :offset 28) + ((self-override target :score 100 :offset 28) (control control-info :score 100 :offset 112) (fact-info-target fact-info-target :score 100 :offset 144) (skel2 basic :offset-assert 176) (racer racer-info :offset-assert 180) (game game-info :offset-assert 184) (neck joint-mod :offset-assert 188) - (state-hook-time time-frame :offset-assert 192) + (state-hook-time time-frame :offset-assert 192) (state-hook (function none :behavior target) :offset-assert 200) (cam-user-mode symbol :offset-assert 204) - (sidekick (pointer sidekick) :offset-assert 208) - (manipy (pointer manipy) :offset-assert 212) + (sidekick (pointer sidekick) :offset-assert 208) + (manipy (pointer manipy) :offset-assert 212) (attack-info attack-info :inline :offset-assert 224) (attack-info-rec attack-info :inline :offset-assert 336) (anim-seed uint64 :offset-assert 440) (alt-cam-pos vector :inline :offset-assert 448) - (snowball snowball-info :offset-assert 464) - (tube tube-info :offset-assert 468) - (flut flut-info :offset-assert 472) + (snowball snowball-info :offset-assert 464) + (tube tube-info :offset-assert 468) + (flut flut-info :offset-assert 472) (current-level level :offset-assert 476) (saved-pos transformq :inline :offset-assert 480) (saved-owner uint64 :offset-assert 528) (alt-neck-pos vector :inline :offset-assert 544) (fp-hud handle :offset-assert 560) - (no-load-wait time-frame :offset-assert 568) - (no-look-around-wait time-frame :offset-assert 576) - ;;(burn-proc handle :offset-assert 584) ;; PAL only + (no-load-wait time-frame :offset-assert 568) + (no-look-around-wait time-frame :offset-assert 576) + ;; PAL patch here + (burn-proc handle :offset-assert 584) ) :heap-base #x1e0 :method-count-assert 21 - :size-assert #x248 ;;#x250 - :flag-assert #x1501e00248 ;;#x1501e00250 + :size-assert #x250 ;;#x248 + :flag-assert #x1501e00250 ;;#x1501e00248 (:methods (find-edge-grabs! (_type_ collide-cache) object 20) ;; none or #f ) @@ -13158,9 +13165,9 @@ ;; - Symbols -(define-extern *collide-work* collide-work) ;; unknown type -(define-extern *collide-cache* collide-cache) ;; unknown type -(define-extern *collide-list* collide-list) ;; unknown type +(define-extern *collide-work* collide-work) +(define-extern *collide-cache* collide-cache) +(define-extern *collide-list* collide-list) ;; ---------------------- @@ -16116,8 +16123,8 @@ ;; - Symbols -(define-extern process-level-heap kheap) ;; unknown type -(define-extern *default-nav-mesh* nav-mesh) ;; unknown type +(define-extern process-level-heap kheap) +(define-extern *default-nav-mesh* nav-mesh) ;; ---------------------- @@ -16347,7 +16354,7 @@ (define-extern sound-set-sound-falloff (function sound-name int int int int)) (define-extern sound-set-flava (function uint int)) (define-extern sound-volume-off (function int)) -(define-extern sound-set-fps (function uint int)) +(define-extern sound-set-fps (function int int)) (define-extern show-iop-info (function dma-buffer int)) (define-extern show-iop-memory (function dma-buffer int)) (define-extern make-sqrt-table (function int)) @@ -16355,14 +16362,14 @@ ;; - Symbols -(define-extern *flava-table* flava-table) ;; unknown type -(define-extern *sound-iop-info* sound-iop-info) ;; unknown type -(define-extern *ambient-spec* sound-spec) ;; unknown type -(define-extern *debug-effect-control* symbol) ;; unknown type +(define-extern *flava-table* flava-table) +(define-extern *sound-iop-info* sound-iop-info) +(define-extern *ambient-spec* sound-spec) +(define-extern *debug-effect-control* symbol) (define-extern *setting-control* setting-control) -(define-extern *sound-player-enable* symbol) ;; unknown type -(define-extern *sound-player-rpc* rpc-buffer-pair) ;; unknown type -(define-extern *sound-loader-rpc* rpc-buffer-pair) ;; unknown type +(define-extern *sound-player-enable* symbol) +(define-extern *sound-player-rpc* rpc-buffer-pair) +(define-extern *sound-loader-rpc* rpc-buffer-pair) ;; ---------------------- @@ -17131,7 +17138,7 @@ ;; - Unknowns -(define-extern generic-vu0-block vu-function) ;; unknown type +(define-extern generic-vu0-block vu-function) ;; ---------------------- @@ -17149,7 +17156,7 @@ ;; - Symbols -(define-extern *generic-foreground-sinks* (array generic-dma-foreground-sink)) ;; unknown type +(define-extern *generic-foreground-sinks* (array generic-dma-foreground-sink)) ;; ---------------------- @@ -17205,12 +17212,12 @@ ;; - Symbols -(define-extern *generic-envmap-texture* texture) ;; unknown type +(define-extern *generic-envmap-texture* texture) ;; - Unknowns -(define-extern *generic-consts* generic-consts) ;; unknown type -(define-extern *target-lock* symbol) ;; unknown type +(define-extern *generic-consts* generic-consts) +(define-extern *target-lock* symbol) ;; ---------------------- @@ -17246,8 +17253,8 @@ ;; - Unknowns -(define-extern mercneric-vu0-block vu-function) ;; unknown type -(define-extern *inv-init-table* (inline-array invinitdata)) ;; unknown type +(define-extern mercneric-vu0-block vu-function) +(define-extern *inv-init-table* (inline-array invinitdata)) ;; ---------------------- @@ -17270,7 +17277,7 @@ ;; - Unknowns -(define-extern *generic-tie* symbol) ;; unknown type +(define-extern *generic-tie* symbol) ;; ---------------------- @@ -17348,7 +17355,7 @@ ;; - Unknowns -(define-extern shadow-vu0-block vu-function) ;; unknown type +(define-extern shadow-vu0-block vu-function) ;; ---------------------- @@ -17398,7 +17405,7 @@ ;; - Unknowns (define-extern shadow-vu1-block vu-function) -(define-extern *shadow-vu1-tri-template* shadow-vu1-gifbuf-template) ;; unknown type +(define-extern *shadow-vu1-tri-template* shadow-vu1-gifbuf-template) ;; ---------------------- @@ -17809,7 +17816,7 @@ ;; - Unknowns -(define-extern *global-toggle* int) ;; unknown type +(define-extern *global-toggle* int) (define-extern *part-id-table* (array sparticle-launcher)) (define-extern *particle-300hz-timer* int) (define-extern *sp-launch-queue* sp-launch-queue) @@ -18798,11 +18805,11 @@ ;; - Unknowns -(define-extern *sky-work* sky-work) ;; unknown type -(define-extern *sky-tng-data* sky-tng-data) ;; unknown type -(define-extern sky-roof-polygons (inline-array sky-vertex)) ;; unknown type -(define-extern sky-cloud-polygons (inline-array sky-vertex)) ;; unknown type -(define-extern sky-cloud-polygon-indices (pointer uint8)) ;; unknown type +(define-extern *sky-work* sky-work) +(define-extern *sky-tng-data* sky-tng-data) +(define-extern sky-roof-polygons (inline-array sky-vertex)) +(define-extern sky-cloud-polygons (inline-array sky-vertex)) +(define-extern sky-cloud-polygon-indices (pointer uint8)) ;; ---------------------- @@ -18890,7 +18897,7 @@ ;; - Unknowns (define-extern *load-boundary-list* load-boundary) ;; guess for now -(define-extern *load-boundary-target* (inline-array lbvtx)) ;; unknown type +(define-extern *load-boundary-target* (inline-array lbvtx)) ;; ---------------------- @@ -18985,7 +18992,7 @@ ;; - Unknowns -(define-extern *static-load-boundary-list* (array array)) ;; unknown type +(define-extern *static-load-boundary-list* (array array)) ;; ---------------------- @@ -19127,7 +19134,7 @@ ;; - Unknowns -(define-extern collide-vu0-block vu-function) ;; unknown type +(define-extern collide-vu0-block vu-function) (define-extern *collide-probe-stack* collide-probe-stack) ;; scratchpad pointer? @@ -19217,8 +19224,8 @@ ;; - Unknowns -(define-extern *rotate-surface* surface) ;; unknown type -(define-extern *no-walk-surface* surface) ;; unknown type +(define-extern *rotate-surface* surface) +(define-extern *no-walk-surface* surface) ;; ---------------------- @@ -19238,9 +19245,9 @@ ;; - Unknowns -(define-extern *col-timer-enable* symbol) ;; unknown type -(define-extern *frame-timer* stopwatch) ;; unknown type -(define-extern *col-timer* stopwatch) ;; unknown type +(define-extern *col-timer-enable* symbol) +(define-extern *frame-timer* stopwatch) +(define-extern *col-timer* stopwatch) (define-extern *race-track-surface* surface) @@ -19252,7 +19259,7 @@ ;; - Unknowns -(define-extern *collide-vif0-init* (array uint32)) ;; unknown type +(define-extern *collide-vif0-init* (array uint32)) ;; ---------------------- @@ -19298,12 +19305,12 @@ ;; - Unknowns -(define-extern *merc-death-globals* vector) ;; unknown type -(define-extern death-beach-puppy death-info) ;; unknown type -(define-extern death-jungle-snake death-info) ;; unknown type -(define-extern death-default death-info) ;; unknown type -(define-extern death-warp-in death-info) ;; unknown type -(define-extern death-warp-out death-info) ;; unknown type +(define-extern *merc-death-globals* vector) +(define-extern death-beach-puppy death-info) +(define-extern death-jungle-snake death-info) +(define-extern death-default death-info) +(define-extern death-warp-in death-info) +(define-extern death-warp-out death-info) ;; ---------------------- @@ -19681,11 +19688,11 @@ ;; - Unknowns -(define-extern *CAM_BIKE-bank* cam-bike-bank) ;; unknown type -(define-extern *CAM_STICK-bank* cam-stick-bank) ;; unknown type -(define-extern *CAM_STRING-bank* cam-string-bank) ;; unknown type -(define-extern *CAM_BILLY-bank* cam-billy-bank) ;; unknown type -(define-extern *CAM_EYE-bank* cam-eye-bank) ;; unknown type +(define-extern *CAM_BIKE-bank* cam-bike-bank) +(define-extern *CAM_STICK-bank* cam-stick-bank) +(define-extern *CAM_STRING-bank* cam-string-bank) +(define-extern *CAM_BILLY-bank* cam-billy-bank) +(define-extern *CAM_EYE-bank* cam-eye-bank) ;; ---------------------- @@ -19759,9 +19766,9 @@ ;; - Unknowns -(define-extern *camera-orbit-info* camera-orbit-info) ;; unknown type -(define-extern *CAM_ORBIT-bank* CAM_ORBIT-bank) ;; unknown type -(define-extern *CAM_POINT_WATCH-bank* cam-point-watch-bank) ;; unknown type +(define-extern *camera-orbit-info* camera-orbit-info) +(define-extern *CAM_ORBIT-bank* CAM_ORBIT-bank) +(define-extern *CAM_POINT_WATCH-bank* cam-point-watch-bank) ;; ---------------------- @@ -20116,28 +20123,28 @@ ;; - Unknowns -(define-extern *camera-layout-blink* symbol) ;; unknown type -(define-extern *last-cur-entity* int) ;; unknown type -(define-extern *clm-select* clm) ;; unknown type -(define-extern *clm* clm) ;; unknown type -(define-extern *camera-layout-message-ypos* int) ;; unknown type -(define-extern *CAM_LAYOUT-bank* cam-layout-bank) ;; unknown type -(define-extern *clm-edit* clm) ;; unknown type -(define-extern *clm-focalpull-attr* clm) ;; unknown type -(define-extern *clm-index-attr* clm) ;; unknown type -(define-extern *clm-intro-attr* clm) ;; unknown type -(define-extern *clm-spline-attr* clm) ;; unknown type -(define-extern *clm-vol-attr* clm) ;; unknown type -(define-extern *volume-descriptor-current* int) ;; unknown type -(define-extern *volume-point-current* int) ;; unknown type -(define-extern *volume-normal-current* int) ;; unknown type -(define-extern *volume-descriptor* vol-control) ;; unknown type -(define-extern *volume-point* vector-array) ;; unknown type -(define-extern *volume-normal* vector-array) ;; unknown type -(define-extern *clm-cam-attr* clm) ;; unknown type -(define-extern *clm-cam-lookthrough* clm) ;; unknown type -(define-extern *clm-save-all* clm) ;; unknown type -(define-extern *clm-save-one* clm) ;; unknown type +(define-extern *camera-layout-blink* symbol) +(define-extern *last-cur-entity* int) +(define-extern *clm-select* clm) +(define-extern *clm* clm) +(define-extern *camera-layout-message-ypos* int) +(define-extern *CAM_LAYOUT-bank* cam-layout-bank) +(define-extern *clm-edit* clm) +(define-extern *clm-focalpull-attr* clm) +(define-extern *clm-index-attr* clm) +(define-extern *clm-intro-attr* clm) +(define-extern *clm-spline-attr* clm) +(define-extern *clm-vol-attr* clm) +(define-extern *volume-descriptor-current* int) +(define-extern *volume-point-current* int) +(define-extern *volume-normal-current* int) +(define-extern *volume-descriptor* vol-control) +(define-extern *volume-point* vector-array) +(define-extern *volume-normal* vector-array) +(define-extern *clm-cam-attr* clm) +(define-extern *clm-cam-lookthrough* clm) +(define-extern *clm-save-all* clm) +(define-extern *clm-save-one* clm) ;; ---------------------- @@ -20230,21 +20237,21 @@ ;; - Unknowns -(define-extern *camera-old-level* string) ;; unknown type -(define-extern *camera-old-cpu* int) ;; unknown type -(define-extern *camera-old-vu* int) ;; unknown type -(define-extern *camera-old-tfrag-bytes* int) ;; unknown type -(define-extern *camera-old-stat-string-tfrag-near* string) ;; unknown type -(define-extern *camera-old-stat-string-tfrag* string) ;; unknown type -(define-extern *camera-old-stat-string-total* string) ;; unknown type -(define-extern *cam-collision-record-show* int) ;; unknown type -(define-extern *cam-collision-record* cam-collision-record-array) ;; unknown type -(define-extern *cam-collision-record-last* int) ;; unknown type -(define-extern *cam-collision-record-first* int) ;; unknown type -(define-extern *cam-debug-los-tri* (inline-array cam-debug-tri)) ;; unknown type -(define-extern *cam-debug-los-tri-current* int) ;; unknown type -(define-extern *cam-debug-coll-tri* (inline-array cam-debug-tri)) ;; unknown type -(define-extern *cam-debug-coll-tri-current* int) ;; unknown type +(define-extern *camera-old-level* string) +(define-extern *camera-old-cpu* int) +(define-extern *camera-old-vu* int) +(define-extern *camera-old-tfrag-bytes* int) +(define-extern *camera-old-stat-string-tfrag-near* string) +(define-extern *camera-old-stat-string-tfrag* string) +(define-extern *camera-old-stat-string-total* string) +(define-extern *cam-collision-record-show* int) +(define-extern *cam-collision-record* cam-collision-record-array) +(define-extern *cam-collision-record-last* int) +(define-extern *cam-collision-record-first* int) +(define-extern *cam-debug-los-tri* (inline-array cam-debug-tri)) +(define-extern *cam-debug-los-tri-current* int) +(define-extern *cam-debug-coll-tri* (inline-array cam-debug-tri)) +(define-extern *cam-debug-coll-tri-current* int) ;; ---------------------- @@ -20723,7 +20730,7 @@ ;; - Unknowns (define-extern *sidekick-sg* skeleton-group) -(define-extern *sidekick-remap* pair) ;; unknown type +(define-extern *sidekick-remap* pair) ;; ---------------------- @@ -20863,8 +20870,8 @@ ;; - Unknowns -(define-extern *yellow-jump-mods* surface) ;; unknown type -(define-extern *fp-hud-stack* pointer) ;; first-person-hud maybe? +(define-extern *yellow-jump-mods* surface) +(define-extern *fp-hud-stack* pointer) ;; ---------------------- @@ -20890,11 +20897,11 @@ ;; - Unknowns -(define-extern *death-spool-array* (array spool-anim)) ;; unknown type +(define-extern *death-spool-array* (array spool-anim)) (define-extern *deathcam-sg* skeleton-group) -(define-extern *smack-mods* surface) ;; unknown type -(define-extern *smack-up-mods* surface) ;; unknown type -(define-extern *auto-continue* symbol) ;; unknown type +(define-extern *smack-mods* surface) +(define-extern *smack-up-mods* surface) +(define-extern *auto-continue* symbol) ;; ---------------------- @@ -21452,7 +21459,7 @@ ;; - Unknowns -(define-extern *footstep-surface* int) ;; unknown type +(define-extern *footstep-surface* int) ;; ---------------------- @@ -22269,8 +22276,8 @@ ;; - Unknowns -(define-extern *ocean-vu0-work* ocean-vu0-work) ;; unknown type -(define-extern ocean-vu0-block vu-function) ;; unknown type +(define-extern *ocean-vu0-work* ocean-vu0-work) +(define-extern ocean-vu0-block vu-function) ;; ---------------------- @@ -22293,7 +22300,7 @@ ;; - Unknowns (define-extern ocean-texture-vu1-block vu-function) -(define-extern *ocean-texture-work* ocean-texture-work) ;; unknown type +(define-extern *ocean-texture-work* ocean-texture-work) ;; ---------------------- @@ -22326,7 +22333,7 @@ ;; - Unknowns -(define-extern ocean-mid-block vu-function) ;; unknown type +(define-extern ocean-mid-block vu-function) ;; ---------------------- @@ -22367,7 +22374,7 @@ ;; - Unknowns -(define-extern ocean-near-block vu-function) ;; unknown type +(define-extern ocean-near-block vu-function) ;; ---------------------- @@ -24031,7 +24038,7 @@ ;; - Unknowns -(define-extern *ropebridge-tunings* (inline-array ropebridge-tuning)) ;; unknown type +(define-extern *ropebridge-tunings* (inline-array ropebridge-tuning)) (define-extern *ropebridge-70-rest-state* (inline-array vector)) ;; can't find ropebridges with these ids in the game?? (define-extern *ropebridge-52-rest-state* (inline-array vector)) (define-extern *ropebridge-32-rest-state* (inline-array vector)) @@ -26828,7 +26835,7 @@ ;; - Unknowns (define-extern *plant-boss-sg* skeleton-group) -(define-extern *plant-boss-shadow-control* shadow-control) ;; unknown type +(define-extern *plant-boss-shadow-control* shadow-control) (define-extern *plant-boss-leaf-sg* skeleton-group) (define-extern *plant-boss-root-sg* skeleton-group) (define-extern *plant-boss-vine-sg* skeleton-group) @@ -27193,7 +27200,7 @@ ;; - Unknowns -(define-extern ripple-for-jungle-water ripple-wave-set) ;; unknown type +(define-extern ripple-for-jungle-water ripple-wave-set) (define-extern *jngpusher-sg* skeleton-group) (define-extern *sidedoor-sg* skeleton-group) (define-extern *maindoor-sg* skeleton-group) @@ -27448,8 +27455,8 @@ (define-extern *fish-net-sg* skeleton-group) (define-extern *fisher-sg* skeleton-group) -(define-extern *FISHER-bank* fisher-bank) ;; unknown type -(define-extern *fisher-params* (array (inline-array fisher-params))) ;; unknown type +(define-extern *FISHER-bank* fisher-bank) +(define-extern *fisher-params* (array (inline-array fisher-params))) (define-extern *catch-fishc-sg* skeleton-group) (define-extern *catch-fishb-sg* skeleton-group) (define-extern *catch-fisha-sg* skeleton-group) @@ -27632,7 +27639,7 @@ ;; - Unknowns -(define-extern *RACER-bank* racer-bank) ;; unknown type +(define-extern *RACER-bank* racer-bank) (define-extern *balloon-sg* skeleton-group) @@ -27745,8 +27752,8 @@ ;; - Unknowns -(define-extern *racer-mods* surface) ;; unknown type -(define-extern *racer-air-mods* surface) ;; unknown type +(define-extern *racer-mods* surface) +(define-extern *racer-air-mods* surface) ;; ---------------------- @@ -27878,12 +27885,12 @@ ;; - Unknowns -(define-extern *flut-air-attack-mods* surface) ;; unknown type -(define-extern *FLUT-bank* flut-bank) ;; unknown type -(define-extern *flut-run-attack-mods* surface) ;; unknown type -(define-extern *flut-jump-mods* surface) ;; unknown type -(define-extern *flut-walk-mods* surface) ;; unknown type -(define-extern *flut-double-jump-mods* surface) ;; unknown type +(define-extern *flut-air-attack-mods* surface) +(define-extern *FLUT-bank* flut-bank) +(define-extern *flut-run-attack-mods* surface) +(define-extern *flut-jump-mods* surface) +(define-extern *flut-walk-mods* surface) +(define-extern *flut-double-jump-mods* surface) ;; ---------------------- @@ -28261,6 +28268,17 @@ :flag-assert #x1e007000dc ) +(deftype evilplant (process-drawable) + () + :method-count-assert 21 + :size-assert #xb0 + :heap-base #x40 + :flag-assert #x15004000b0 + (:methods + (idle () _type_ :state 20) + ) + ) + ;; - Functions (define-extern set-period (function cyclegen int float)) @@ -28271,7 +28289,7 @@ ;; - Unknowns -(define-extern ripple-for-villagea-water ripple-wave-set) ;; unknown type +(define-extern ripple-for-villagea-water ripple-wave-set) (define-extern *revcycle-sg* skeleton-group) (define-extern *revcycleprop-sg* skeleton-group) (define-extern *hutlamp-sg* skeleton-group) @@ -28294,6 +28312,7 @@ (define-extern *med-res-village12-sg* skeleton-group) (define-extern *med-res-village13-sg* skeleton-group) (define-extern *med-res-training-sg* skeleton-group) +(define-extern *evilplant-sg* skeleton-group) ;; ---------------------- @@ -28427,9 +28446,9 @@ (define-extern *fb-evilbro-sg* skeleton-group) (define-extern *fb-evilsis-sg* skeleton-group) (define-extern *fishermans-boat-sg* skeleton-group) -(define-extern *boat-turning-radius-table* (pointer float)) ;; unknown type -(define-extern *boat-throttle-control-table* (pointer float)) ;; unknown type -(define-extern *fishermans-boat-constants* rigid-body-platform-constants) ;; unknown type +(define-extern *boat-turning-radius-table* (pointer float)) +(define-extern *boat-throttle-control-table* (pointer float)) +(define-extern *fishermans-boat-constants* rigid-body-platform-constants) ;; ---------------------- @@ -28581,9 +28600,9 @@ (define-extern *scarecrow-a-break-sg* skeleton-group) (define-extern *tra-iris-door-sg* skeleton-group) (define-extern *tra-pontoon-sg* skeleton-group) -(define-extern *tra-pontoon-constants* rigid-body-platform-constants) ;; unknown type +(define-extern *tra-pontoon-constants* rigid-body-platform-constants) (define-extern *training-cam-sg* skeleton-group) -(define-extern ripple-for-training-water ripple-wave-set) ;; unknown type +(define-extern ripple-for-training-water ripple-wave-set) ;; ---------------------- @@ -28745,7 +28764,7 @@ (define-extern *mistycam-sg* skeleton-group) (define-extern *mis-bone-platform-sg* skeleton-group) -(define-extern *bone-platform-constants* rigid-body-platform-constants) ;; unknown type +(define-extern *bone-platform-constants* rigid-body-platform-constants) (define-extern *breakaway-left-sg* skeleton-group) (define-extern *breakaway-mid-sg* skeleton-group) (define-extern *breakaway-right-sg* skeleton-group) @@ -28863,7 +28882,7 @@ (define-extern *keg-conveyor-sg* skeleton-group) (define-extern *keg-conveyor-paddle-sg* skeleton-group) -(define-extern *keg-conveyor-keg-spawn-table* (array int8)) ;; unknown type +(define-extern *keg-conveyor-keg-spawn-table* (array int8)) (define-extern *keg-sg* skeleton-group) @@ -28885,8 +28904,8 @@ ;; - Unknowns -(define-extern ripple-for-mud ripple-wave-set) ;; unknown type -(define-extern ripple-for-small-mud ripple-wave-set) ;; unknown type +(define-extern ripple-for-mud ripple-wave-set) +(define-extern ripple-for-small-mud ripple-wave-set) ;; ---------------------- @@ -29175,10 +29194,10 @@ ;; - Unknowns (define-extern *balloonlurker-sg* skeleton-group) -(define-extern *balloonlurker-constants* rigid-body-platform-constants) ;; unknown type +(define-extern *balloonlurker-constants* rigid-body-platform-constants) (define-extern *balloonlurker-pilot-sg* skeleton-group) -(define-extern *BALLOONLURKER-bank* balloonlurker-bank) ;; unknown type -(define-extern *balloonlurker-rudder-joint-home* vector) ;; unknown type +(define-extern *BALLOONLURKER-bank* balloonlurker-bank) +(define-extern *balloonlurker-rudder-joint-home* vector) ;; ---------------------- @@ -29259,7 +29278,7 @@ (define-extern *darkecocan-sg* skeleton-group) (define-extern *darkecocan-glow-sg* skeleton-group) -(define-extern *lurker-army* (array army-info)) ;; unknown type +(define-extern *lurker-army* (array army-info)) (define-extern *evilbro-sg* skeleton-group) (define-extern *evilsis-sg* skeleton-group) @@ -29467,16 +29486,16 @@ ;; - Unknowns -(define-extern ripple-for-villageb-water ripple-wave-set) ;; unknown type +(define-extern ripple-for-villageb-water ripple-wave-set) (define-extern *ogreboss-village2-sg* skeleton-group) (define-extern *fireboulder-sg* skeleton-group) (define-extern *exit-chamber-dummy-sg* skeleton-group) (define-extern *ceilingflag-sg* skeleton-group) (define-extern *allpontoons-sg* skeleton-group) (define-extern *pontoonten-sg* skeleton-group) -(define-extern *pontoonten-constants* rigid-body-platform-constants) ;; unknown type +(define-extern *pontoonten-constants* rigid-body-platform-constants) (define-extern *pontoonfive-sg* skeleton-group) -(define-extern *pontoonfive-constants* rigid-body-platform-constants) ;; unknown type +(define-extern *pontoonfive-constants* rigid-body-platform-constants) (define-extern *village2cam-sg* skeleton-group) (define-extern *med-res-rolling-sg* skeleton-group) (define-extern *med-res-rolling1-sg* skeleton-group) @@ -29762,7 +29781,7 @@ ;; - Unknowns (define-extern *swamp-blimp-sg* skeleton-group) -(define-extern *SWAMP_BLIMP-bank* swamp-blimp-bank) ;; unknown type +(define-extern *SWAMP_BLIMP-bank* swamp-blimp-bank) (define-extern *swamp-rope-sg* skeleton-group) (define-extern *precursor-arm-sg* skeleton-group) (define-extern *swamp-tetherrock-sg* skeleton-group) @@ -29989,7 +30008,7 @@ (define-extern *swampcam-sg* skeleton-group) (define-extern *tar-plat-sg* skeleton-group) -(define-extern *tar-plat-constants* rigid-body-platform-constants) ;; unknown type +(define-extern *tar-plat-constants* rigid-body-platform-constants) (define-extern *swamp-rock-sg* skeleton-group) (define-extern *balance-plat-sg* skeleton-group) (define-extern *swamp-spike-sg* skeleton-group) @@ -30473,7 +30492,7 @@ ;; - Unknowns -(define-extern *cavecrystal-engine* engine) ;; unknown type +(define-extern *cavecrystal-engine* engine) ;; ---------------------- @@ -30608,7 +30627,7 @@ (define-extern *cavespatula-sg* skeleton-group) (define-extern *cavetrapdoor-sg* skeleton-group) (define-extern *cavecrusher-sg* skeleton-group) -(define-extern ripple-for-cave-water ripple-wave-set) ;; unknown type +(define-extern ripple-for-cave-water ripple-wave-set) (define-extern *maincavecam-sg* skeleton-group) @@ -30709,8 +30728,8 @@ (define-extern *dark-crystal-sg* skeleton-group) (define-extern *dark-crystal-explode-sg* skeleton-group) -(define-extern *dark-crystal-exploder-params* joint-exploder-static-params) ;; unknown type -(define-extern *dark-crystal-flash-delays* (array int32)) ;; unknown type +(define-extern *dark-crystal-exploder-params* joint-exploder-static-params) +(define-extern *dark-crystal-flash-delays* (array int32)) ;; ---------------------- @@ -31006,8 +31025,8 @@ ;; - Unknowns (define-extern *mother-spider-sg* skeleton-group) -(define-extern *mother-spider-threads* (inline-array mother-spider-thread)) ;; unknown type -(define-extern *mother-spider-leg-infos* (inline-array mother-spider-leg-info)) ;; unknown type +(define-extern *mother-spider-threads* (inline-array mother-spider-thread)) +(define-extern *mother-spider-leg-infos* (inline-array mother-spider-leg-info)) (define-extern *mother-spider-leg-sg* skeleton-group) @@ -31127,7 +31146,7 @@ ;; - Unknowns (define-extern *gnawer-sg* skeleton-group) -(define-extern *gnawer-segment-infos* (inline-array gnawer-segment-info)) ;; unknown type +(define-extern *gnawer-segment-infos* (inline-array gnawer-segment-info)) (define-extern *gnawer-segment-sg* skeleton-group) @@ -31198,7 +31217,7 @@ ;; - Unknowns (define-extern *driller-lurker-sg* skeleton-group) -(define-extern *driller-lurker-shadow-control* shadow-control) ;; unknown type +(define-extern *driller-lurker-shadow-control* shadow-control) ;; ---------------------- @@ -31284,11 +31303,11 @@ ;; - Unknowns -(define-extern *tube-jump-mods* surface) ;; unknown type -(define-extern *tube-mods* surface) ;; unknown type -(define-extern *tube-surface* surface) ;; unknown type -(define-extern *tube-hit-mods* surface) ;; unknown type -(define-extern *TUBE-bank* tube-bank) ;; unknown type +(define-extern *tube-jump-mods* surface) +(define-extern *tube-mods* surface) +(define-extern *tube-surface* surface) +(define-extern *tube-hit-mods* surface) +(define-extern *TUBE-bank* tube-bank) ;; ---------------------- @@ -31339,7 +31358,7 @@ ;; - Unknowns (define-extern *seaweed-sg* skeleton-group) -(define-extern *seaweed* seaweed) ;; unknown type +(define-extern *seaweed* seaweed) (define-extern *side-to-side-plat-sg* skeleton-group) (define-extern *sunkencam-sg* skeleton-group) @@ -31367,7 +31386,7 @@ ;; - Unknowns (define-extern *shover-sg* skeleton-group) -(define-extern *shover* shover) ;; unknown type +(define-extern *shover* shover) ;; ---------------------- @@ -31700,7 +31719,7 @@ ;; - Unknowns (define-extern *qbert-plat-sg* skeleton-group) -(define-extern *qbert-plat-constants* rigid-body-platform-constants) ;; unknown type +(define-extern *qbert-plat-constants* rigid-body-platform-constants) (define-extern *qbert-plat-on-sg* skeleton-group) @@ -31924,7 +31943,7 @@ ;; - Unknowns -(define-extern ripple-for-sunken-water ripple-wave-set) ;; unknown type +(define-extern ripple-for-sunken-water ripple-wave-set) ;; ---------------------- @@ -32224,11 +32243,11 @@ ;; - Unknowns -(define-extern *helix-water* helix-water) ;; unknown type +(define-extern *helix-water* helix-water) (define-extern *helix-button-sg* skeleton-group) -(define-extern *helix-button* helix-button) ;; unknown type +(define-extern *helix-button* helix-button) (define-extern *helix-slide-door-sg* skeleton-group) -(define-extern *helix-slide-door* helix-slide-door) ;; unknown type +(define-extern *helix-slide-door* helix-slide-door) ;; ---------------------- @@ -32550,14 +32569,18 @@ (define-extern gorge-trans (function none)) (define-extern gorge-start-draw-time (function symbol symbol none :behavior gorge-start)) (define-extern gorge-behind (function gorge symbol)) -(define-extern seconds->race-time (function race-time time-frame int)) -(define-extern race-time-read (function race-time int task-control time-frame symbol)) +(define-extern seconds->race-time (function race-time time-frame none)) +;; PAL version is better +;;(define-extern race-time-read (function race-time int task-control time-frame none)) +(define-extern race-time-read (function race-time task-control time-frame none)) (define-extern rolling-start-init-by-other (function vector float none :behavior rolling-start)) (define-extern gorge-finish-init-by-other (function vector vector float none :behavior gorge-finish)) (define-extern gorge-abort-init-by-other (function vector vector float none :behavior gorge-abort)) (define-extern race-time->string (function race-time string)) (define-extern race-time-less-than (function race-time race-time symbol)) -(define-extern race-time-save (function race-time int task-control symbol)) +;; PAL version is better +;;(define-extern race-time-save (function race-time int task-control symbol)) +(define-extern race-time-save (function race-time task-control symbol)) (define-extern dark-plants-all-done (function dark-plant symbol)) (define-extern dark-plant-randomize (function dark-plant vector)) (define-extern dark-plant-check-target (function dark-plant symbol)) @@ -32569,7 +32592,7 @@ ;; - Unknowns -(define-extern ripple-for-rolling-water object) ;; unknown type +(define-extern ripple-for-rolling-water object) (define-extern *rolling-start-whole-sg* skeleton-group) (define-extern *rolling-start-broken-sg* skeleton-group) (define-extern *happy-plant-sg* skeleton-group) @@ -32678,7 +32701,7 @@ (define-extern *lightning-mole-sg* skeleton-group) (define-extern *lightning-mole-nav-enemy-info* nav-enemy-info) -(define-extern *lightning-mole-hole* vector) ;; unknown type +(define-extern *lightning-mole-hole* vector) ;; ---------------------- @@ -33002,7 +33025,7 @@ (define-extern ogreboss-bounce-boulder-init-by-other (function int entity-actor none :behavior ogreboss-bounce-boulder)) (define-extern ogreboss-set-stage1-camera (function none)) (define-extern ogreboss-move-near (function time-frame float none :behavior ogreboss)) -(define-extern ogreboss-shoot-boulder (function int none :behavior ogreboss)) +(define-extern ogreboss-shoot-boulder (function pickup-type none :behavior ogreboss)) (define-extern ogreboss-inc-try-count (function none :behavior ogreboss)) (define-extern ogreboss-emerge (function float none :behavior ogreboss)) (define-extern ogreboss-pick-target (function int :behavior ogreboss)) @@ -33020,15 +33043,15 @@ ;; - Unknowns (define-extern *ogreboss-sg* skeleton-group) -(define-extern *ogreboss* ogreboss) ;; unknown type +(define-extern *ogreboss* ogreboss) (define-extern *ogreboss-cam-sg* skeleton-group) (define-extern *ogreboss-column-sg* skeleton-group) (define-extern *ogreboss-bounce-boulder-sg* skeleton-group) (define-extern *ogreboss-super-boulder-sg* skeleton-group) (define-extern *ogreboss-shoot-boulder-sg* skeleton-group) -(define-extern *ogreboss-missile-shadow-control* shadow-control) ;; unknown type +(define-extern *ogreboss-missile-shadow-control* shadow-control) (define-extern *ogreboss-shoot-boulder-break-sg* skeleton-group) -(define-extern *ogreboss-shadow-control* shadow-control) ;; unknown type +(define-extern *ogreboss-shadow-control* shadow-control) ;; ---------------------- @@ -33194,17 +33217,17 @@ (define-extern *shortcut-boulder-whole-sg* skeleton-group) (define-extern *shortcut-boulder-broken-sg* skeleton-group) -(define-extern ripple-for-ogre-lava ripple-wave-set) ;; unknown type +(define-extern ripple-for-ogre-lava ripple-wave-set) (define-extern *ogre-bridgeend-sg* skeleton-group) (define-extern *ogre-bridge-sg* skeleton-group) -(define-extern *ogre-bridge-joint-array* (array uint8)) ;; unknown type +(define-extern *ogre-bridge-joint-array* (array uint8)) (define-extern *ogre-isle-d-sg* skeleton-group) (define-extern *ogre-isle-b-sg* skeleton-group) -(define-extern *ogre-isle-constants* rigid-body-platform-constants) ;; unknown type +(define-extern *ogre-isle-constants* rigid-body-platform-constants) (define-extern *ogre-step-b-sg* skeleton-group) (define-extern *ogre-step-c-sg* skeleton-group) (define-extern *ogre-step-a-sg* skeleton-group) -(define-extern *ogre-step-constants* rigid-body-platform-constants) ;; unknown type +(define-extern *ogre-step-constants* rigid-body-platform-constants) (define-extern *tntbarrel-sg* skeleton-group) (define-extern *med-res-snow-sg* skeleton-group) (define-extern *ogre-isle-a-sg* skeleton-group) @@ -33367,7 +33390,7 @@ (define-extern *gondolacables-sg* skeleton-group) (define-extern *pistons-sg* skeleton-group) (define-extern *gondola-sg* skeleton-group) -(define-extern ripple-for-villagec-lava ripple-wave-set) ;; unknown type +(define-extern ripple-for-villagec-lava ripple-wave-set) (define-extern *med-res-ogre-sg* skeleton-group) (define-extern *med-res-ogre2-sg* skeleton-group) (define-extern *med-res-ogre3-sg* skeleton-group) @@ -33796,7 +33819,7 @@ (define-extern *snow-ball-sg* skeleton-group) (define-extern *snow-ball-shadow-sg* skeleton-group) -(define-extern *snow-ball-shadow-control* shadow-control) ;; unknown type +(define-extern *snow-ball-shadow-control* shadow-control) ;; ---------------------- @@ -33993,6 +34016,7 @@ (deftype snow-button (process-drawable) ((root-override collide-shape-moving :score 100 :offset 112) (wiggled? symbol :offset-assert 176) + (trying-for-fuel-cell? symbol :offset-assert 180) ;; PAL patch here (timeout time-frame :offset-assert 184) (delay-til-wiggle time-frame :offset-assert 192) (prev-button entity-actor :offset-assert 200) @@ -34185,7 +34209,7 @@ ;; - Unknowns -(define-extern *ram-boss-nav-enemy-info-no-shield* nav-enemy-info) ;; unknown type +(define-extern *ram-boss-nav-enemy-info-no-shield* nav-enemy-info) (define-extern *ram-boss-sg* skeleton-group) (define-extern *ram-boss-nav-enemy-info* nav-enemy-info) diff --git a/decompiler/config/decompiler-only-types.gc b/decompiler/config/decompiler-only-types.gc deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/decompiler/config/jak1_jp.jsonc b/decompiler/config/jak1_jp.jsonc new file mode 100644 index 0000000000..4432c38b04 --- /dev/null +++ b/decompiler/config/jak1_jp.jsonc @@ -0,0 +1,116 @@ +{ + "game_version": 1, + "text_version": 11, + "game_name": "jak1_jp", + "expected_elf_name": "SCPS_150.21", + + // if you want to filter to only some object names. + // it will make the decompiler much faster. + "allowed_objects": [], + "banned_objects": [], + + //////////////////////////// + // CODE ANALYSIS OPTIONS + //////////////////////////// + + // set to true to generate plain .asm files with MIPS disassembly, with no fancy decompilation. + // this is fast and should succeed 100% of the time. + "disassemble_code": false, + + // Run the decompiler + "decompile_code": false, + + // run the first pass of the decompiler + "find_functions": true, + + //////////////////////////// + // DATA ANALYSIS OPTIONS + //////////////////////////// + + // set to true to generate plain .asm files for data files. + // this will display most data as hex, but will add labels/references/type pointers/strings + // this generates a huge amount of output if you run it on the entire game. + "disassemble_data": false, + + // unpack textures to assets folder + "process_tpages": true, + // unpack game text to assets folder + "process_game_text": true, + // unpack game count to assets folder + "process_game_count": true, + // write goal imports for art groups + "process_art_groups": true, + + /////////////////////////// + // WEIRD OPTIONS + /////////////////////////// + + // these options are used rarely and should usually be left at false + + // generate the symbol_map.json file. + // this is a guess at where each symbol is first defined/used. + "generate_symbol_definition_map": false, + + // debug option for instruction decoder + "write_hex_near_instructions": false, + + // experimental tool to extract linked lists used for region scripting in Jak 2 and Jak 3. + "write_scripts": false, + + // hex dump of code/data files. + "hexdump_code": false, + "hexdump_data": false, + // dump raw obj files + "dump_objs": true, + // print control flow graph + "print_cfgs": false, + + // set to true for PAL versions. this will forcefully skip files that have some data missing at the end. + "is_pal": false, + + //////////////////////////// + // CONFIG FILES + //////////////////////////// + + "type_casts_file": "decompiler/config/jak1_pal/type_casts.jsonc", + "anonymous_function_types_file": "decompiler/config/jak1_ntsc_black_label/anonymous_function_types.jsonc", + "var_names_file": "decompiler/config/jak1_ntsc_black_label/var_names.jsonc", + "label_types_file": "decompiler/config/jak1_jp/label_types.jsonc", + "stack_structures_file": "decompiler/config/jak1_ntsc_black_label/stack_structures.jsonc", + "hacks_file": "decompiler/config/jak1_pal/hacks.jsonc", + "inputs_file": "decompiler/config/jak1_ntsc_black_label/inputs.jsonc", + "art_info_file": "decompiler/config/jak1_ntsc_black_label/art_info.jsonc", + "import_deps_file": "decompiler/config/jak1_ntsc_black_label/import_deps.jsonc", + "all_types_file": "decompiler/config/all-types.gc", + + // optional: a predetermined object file name map from a file. + // this will make decompilation naming consistent even if you only run on some objects. + "obj_file_name_map_file": "goal_src/build/all_objs_jak1_jp.json", + + //////////////////////////// + // LEVEL EXTRACTION + //////////////////////////// + + // turn this on to extract level background graphics data + "levels_extract": true, + // turn this on if you want extracted levels to be saved out as .obj files + "levels_convert_to_obj": false, + // should we extract collision meshes? + // these can be displayed in game, but makes the .fr3 files slightly larger + "extract_collision": true, + + //////////////////////////// + // PATCHING OPTIONS + //////////////////////////// + + // these are options related to xdelta3 patches on specific objects + // this allows us to get a more consistent input + + // set to true to write new patch files + "write_patches": false, + // set to true to apply patch files + "apply_patches": true, + // what to patch an object to and the patch file is + "object_patches": { + } +} diff --git a/decompiler/config/jak1_jp/label_types.jsonc b/decompiler/config/jak1_jp/label_types.jsonc new file mode 100644 index 0000000000..ef7e508fa6 --- /dev/null +++ b/decompiler/config/jak1_jp/label_types.jsonc @@ -0,0 +1,2152 @@ +// the format is [label_name, type, special] + +// if the type is pointer or inline array, special should be an integer size. +// if the type is a value type (like rgba), special should be true. + +{ + "vector-h": [ + ["L32", "vector"], + ["L31", "vector"], + ["L30", "vector"], + ["L29", "vector"], + ["L28", "vector"], + ["L27", "vector"], + ["L26", "vector"] + ], + + "quaternion-h": [["L1", "quaternion"]], + + "quaternion": [ + ["L67", "vector"], + ["L68", "vector"], + ["L69", "vector"], + ["L70", "vector"], + ["L71", "vector"], + ["L72", "vector"] + ], + + "geometry": [["L112", "vector"]], + + "trigonometry": [ + ["L98", "(pointer float)", 32], + ["L99", "(pointer float)", 32], + ["L102", "vector"], + ["L101", "vector"], + ["L100", "vector"] + ], + + "video-h": [["L1", "video-parms"]], + + "font-h": [ + ["L18", "matrix"], + ["L17", "font-work"] + ], + + "display": [["L76", "(pointer uint32)", 2]], + + "capture": [["L12", "gs-store-image-packet"]], + + "main-h": [["L1", "frame-stats"]], + + "ocean-trans-tables": [ + ["L1", "(inline-array vector)", 4], + ["L2", "(pointer float)", 160], + ["L3", "(pointer float)", 100], + ["L4", "(pointer float)", 72], + ["L5", "(pointer float)", 72], + ["L6", "(pointer float)", 72], + ["L7", "(pointer float)", 72], + ["L8", "(pointer float)", 44], + ["L9", "(pointer float)", 44], + ["L10", "(pointer float)", 44], + ["L11", "(pointer float)", 44], + ["L12", "(pointer float)", 40], + ["L13", "(pointer float)", 40], + ["L14", "(pointer float)", 40], + ["L15", "(pointer float)", 40], + ["L16", "(pointer float)", 28], + ["L17", "(pointer float)", 28], + ["L18", "(pointer float)", 28], + ["L19", "(pointer float)", 28] + ], + + "pat-h": [["L1", "(inline-array pat-mode-info)", 4]], + + "joint-mod-h": [ + ["L89", "(inline-array vector)", 6], + ["L90", "(inline-array vector)", 3] + ], + + "collide-edge-grab-h": [["L1", "collide-edge-work"]], + + "assert-h": [["L4", "__assert-info-private-struct"]], + + "hud-h": [["L1", "hud-parts"]], + + "transformq": [ + ["L39", "vector"], + ["L40", "vector"] + ], + + "cylinder": [ + ["L54", "vector"], + ["L57", "vector"], + ["L56", "vector"], + ["L53", "vector"] + ], + + "sprite": [["L58", "vu-function"]], + + "sprite-distort": [["L27", "vu-function"]], + + "merc-vu1": [["L1", "vu-function"]], + + "background": [["L51", "vu-function"]], + + "debug": [ + ["L179", "vector2h"], + ["L176", "(inline-array vector)", 8], + ["L180", "vector"], + ["L181", "vector"], + ["L182", "vector"], + ["L183", "vector"], + ["L223", "rgba", true], + ["L225", "rgba", true], + ["L224", "rgba", true], + ["L222", "rgba", true], + ["L226", "rgba", true] + ], + + "shrub-work": [["L3", "instance-shrub-work"]], + + "game-info": [ + ["L468", "rgba", true], + ["L470", "rgba", true], + ["L464", "vector2h"], + ["L469", "rgba", true] + ], + + "tfrag-work": [["L1", "tfrag-work"]], + + "tie-work": [ + ["L1", "prototype-tie-work"], + ["L2", "instance-tie-work"] + ], + + "mood": [ + ["L256", "vector"], + ["L257", "vector"], + ["L258", "vector"], + ["L259", "vector"], + ["L260", "vector"], + ["L261", "vector"], + ["L262", "(inline-array vector)", 2], + ["L263", "light-ellipse"], + ["L264", "(inline-array vector)", 4], + ["L265", "vector"], + ["L266", "(inline-array vector)", 11], + ["L267", "vector"], + ["L268", "vector"], + ["L269", "vector"], + ["L270", "vector"], + ["L271", "vector"], + ["L272", "vector"], + ["L273", "vector"], + ["L274", "vector"], + ["L275", "vector"], + ["L276", "vector"], + ["L277", "vector"], + ["L278", "vector"], + ["L279", "vector"], + ["L280", "(array float)"], + ["L281", "(array float)"], + ["L282", "(array float)"], + ["L283", "(array float)"], + ["L284", "(array float)"], + ["L285", "(array float)"], + ["L286", "(array float)"], + ["L287", "(array float)"] + ], + + "mood-tables": [ + ["L12", "mood-sun-table"], + ["L13", "mood-lights-table"], + ["L14", "mood-fog-table"], + ["L15", "mood-fog-table"], + ["L16", "mood-sun-table"], + ["L17", "mood-sun-table"], + ["L18", "mood-lights-table"], + ["L19", "mood-fog-table"], + ["L20", "mood-lights-table"], + ["L21", "mood-fog-table"], + ["L22", "mood-lights-table"], + ["L23", "mood-fog-table"], + ["L24", "mood-lights-table"], + ["L25", "mood-lights-table"], + ["L26", "mood-fog-table"], + ["L27", "mood-sun-table"], + ["L28", "mood-lights-table"], + ["L29", "mood-fog-table"], + ["L30", "mood-sun-table"], + ["L31", "mood-lights-table"], + ["L32", "mood-fog-table"], + ["L33", "mood-sun-table"], + ["L34", "mood-lights-table"], + ["L35", "mood-fog-table"], + ["L36", "mood-sun-table"], + ["L37", "mood-lights-table"], + ["L38", "mood-fog-table"], + ["L39", "mood-sun-table"], + ["L40", "mood-lights-table"], + ["L41", "mood-fog-table"], + ["L42", "mood-sun-table"], + ["L43", "mood-lights-table"], + ["L44", "mood-fog-table"], + ["L45", "mood-sun-table"], + ["L46", "mood-lights-table"], + ["L47", "mood-fog-table"], + ["L48", "mood-fog-table"], + ["L49", "mood-sun-table"], + ["L50", "mood-lights-table"], + ["L51", "mood-fog-table"], + ["L52", "mood-sun-table"], + ["L53", "mood-lights-table"], + ["L54", "mood-fog-table"], + ["L55", "mood-sun-table"], + ["L56", "mood-lights-table"], + ["L57", "mood-fog-table"], + ["L58", "mood-fog-table"], + ["L59", "mood-sun-table"], + ["L60", "mood-lights-table"], + ["L61", "mood-fog-table"], + ["L62", "sky-color-day"], + ["L63", "sky-color-day"], + ["L64", "sky-color-day"], + ["L65", "sky-color-day"], + ["L66", "sky-color-day"], + ["L67", "sky-color-day"], + ["L68", "sky-color-day"] + ], + + "camera": [ + ["L257", "(inline-array qword)", 1], + ["L258", "(inline-array qword)", 1] + ], + + "target-util": [ + ["L180", "vector"], + ["L181", "vector"], + ["L182", "vector"], + ["L183", "vector"], + ["L184", "vector"], + ["L186", "vector"], + ["L187", "vector"], + ["L188", "vector"], + ["L189", "vector"], + ["L190", "vector"], + ["L225", "rgba", true] + ], + + "logic-target": [ + ["L227", "attack-info"], + ["L231", "(pointer uint64)", 1] + ], + + "progress-static": [ + ["L121", "(array game-text-id)"], + ["L195", "(array game-option)"], + ["L190", "(array game-option)"], + ["L185", "(array game-option)"], + ["L180", "(array game-option)"], + ["L174", "(array game-option)"], + ["L169", "(array game-option)"], + ["L165", "(array game-option)"], + ["L161", "(array game-option)"], + ["L157", "(array game-option)"], + ["L152", "(array game-option)"], + ["L147", "(array game-option)"], + ["L145", "(array game-option)"], + ["L143", "(array game-option)"], + ["L137", "(array game-option)"], + ["L131", "(array game-option)"], + ["L124", "(array game-option)"], + ["L123", "(array (array game-option))"], + ["L122", "(array int32)"], + ["L3", "(array level-tasks-info)"], + ["L2", "(array int32)"] + ], + + "rigid-body": [["L89", "rigid-body-platform-constants"]], + + "nav-enemy": [["L349", "attack-info"]], + + "basebutton": [ + ["L97", "vector"], + ["L102", "vector"] + ], + + "bird-lady": [["L29", "vector"]], + + "bird-lady-beach": [["L26", "vector"]], + + "mayor": [["L57", "vector"]], + + "sculptor": [["L89", "vector"]], + + "oracle": [ + ["L55", "vector"], + ["L56", "vector"], + ["L58", "vector"] + ], + + "evilbro": [ + ["L25", "vector"], + ["L30", "vector"] + ], + + "explorer": [["L77", "vector"]], + + "sage": [["L91", "vector"]], + + "misty-teetertotter": [ + ["L26", "attack-info"], + ["L27", "attack-info"] + ], + + "farmer": [["L28", "vector"]], + + "gambler": [["L52", "vector"]], + + "warrior": [["L30", "vector"]], + + "geologist": [["L38", "vector"]], + + "font": [ + ["L95", "(inline-array vector)", 250], + ["L94", "(inline-array vector)", 289] + ], + + "text": [ + ["L66", "vector"], + ["L67", "matrix"], + ["L68", "vector4w"] + ], + + "ocean-tables": [ + // see comment in ocean-tables.gc + ["L26", "ocean-spheres"], + ["L25", "ocean-colors"], + ["L23", "ocean-near-indices"], // ok + ["L22", "ocean-trans-indices"], + ["L21", "ocean-mid-indices"], + ["L19", "ocean-mid-masks"], + ["L18", "ocean-spheres"], + ["L17", "ocean-colors"], + ["L15", "ocean-near-indices"], + ["L9", "ocean-near-indices"], + + ["L14", "ocean-trans-indices"], + ["L8", "ocean-trans-indices"], + + ["L13", "ocean-mid-indices"], + ["L7", "ocean-mid-indices"], + + ["L11", "ocean-mid-masks"], + ["L5", "ocean-mid-masks"], + ["L4", "ocean-map"], + ["L3", "ocean-map"], + ["L2", "ocean-map"] + ], + + "ocean-frames": [["L1", "(pointer uint32)", 16384]], + + "shadow-cpu": [ + ["L122", "shadow-data"], + ["L121", "vu-function"] + ], + + "default-menu": [ + ["L6251", "float", true], + ["L6252", "float", true], + ["L6253", "float", true], + ["L6254", "float", true], + ["L6256", "float", true], + ["L6257", "float", true], + ["L6264", "float", true], + ["L6267", "float", true], + ["L6265", "float", true], + ["L6266", "float", true], + ["L6259", "float", true], + ["L6268", "float", true], + ["L6263", "float", true], + ["L6262", "float", true], + ["L6261", "float", true], + ["L6255", "float", true], + ["L6260", "float", true], + ["L6258", "float", true], + ["L6272", "uint64", true], + ["L6273", "uint64", true], + ["L6270", "uint64", true], + ["L6269", "uint64", true], + ["L6271", "uint64", true] + // ["L6268", "(array int)", true, 1] // printed as a float + ], + + // "default-menu": [ + // ["L519", "pair", true], + // ["L1550", "pair", true], + // ["L1552", "pair", true] + // ], + + // "generic-vu1": [ + // ["L12", "gif-tag64", true], + // ["L15", "gif-tag64", true], + // ["L14", "gif-tag-regs", true] + // ], + + "merc-blend-shape": [["L62", "(pointer int16)", 32]], + + "miners": [ + ["L111", "vector"], + ["L281", "vector"] + ], + + "entity": [ + ["L483", "vector2h"], + ["L482", "vector2h"], + ["L480", "vector2h"], + ["L479", "vector2h"], + ["L478", "vector2h"], + ["L477", "vector2h"], + ["L476", "vector2h"], + ["L475", "vector4w"], + ["L474", "vector4w"], + ["L473", "vector4w"], + ["L472", "vector4w"], + ["L471", "vector4w"] + ], + + "assistant": [["L71", "vector"]], + + "target-part": [ + ["L336", "float", true], + ["L337", "float", true], + ["L338", "float", true], + ["L339", "float", true], + ["L340", "float", true], + ["L341", "uint64", true] + ], + + "projectiles": [["L150", "attack-info"]], + "blocking-plane": [ + ["L18", "vector"], + ["L19", "vector"], + ["L20", "vector"] + ], + + "sidekick-human": [ + ["L131", "vector"], + ["L350", "vector"], + ["L940", "float", true], + ["L941", "float", true], + ["L942", "float", true], + ["L943", "float", true], + ["L944", "float", true], + ["L945", "float", true], + ["L946", "float", true], + ["L990", "float", true], + ["L991", "uint64", true], + ["L992", "uint64", true], + ["L993", "uint64", true], + ["L994", "uint64", true] + ], + + "assistant-firecanyon": [["L71", "vector"]], + + "sage-bluehut": [["L82", "vector"]], + + "flutflut-bluehut": [["L34", "vector"]], + + "sharkey": [["L101", "attack-info"]], + + "assistant-citadel": [["L28", "vector"]], + + "robotboss-h": [ + ["L67", "float", true], + ["L68", "uint64", true], + ["L69", "uint64", true] + ], + + "final-door": [ + ["L59", "vector"], + ["L60", "vector"] + ], + + "crates": [ + ["L171", "attack-info"], + ["L175", "attack-info"], + ["L181", "attack-info"], + ["L242", "float", true], + ["L243", "float", true], + ["L245", "float", true], + ["L263", "float", true] + ], + + "hint-control": [ + ["L45", "(array task-hint-control-group)"], + ["L100", "(array level-hint-control)"] + ], + + "cam-master": [ + ["L356", "vector"], + ["L357", "vector"] + ], + + "cam-states": [ + ["L630", "vector"], + ["L631", "vector"], + ["L632", "vector"], + ["L633", "vector"], + ["L672", "float", true], + ["L673", "float", true], + ["L674", "float", true], + ["L675", "float", true], + ["L676", "float", true], + ["L677", "float", true], + ["L678", "float", true], + ["L679", "float", true], + ["L680", "float", true], + ["L681", "float", true], + ["L682", "float", true], + ["L683", "float", true], + ["L684", "float", true], + ["L685", "float", true], + ["L686", "float", true], + ["L687", "float", true], + ["L688", "float", true], + ["L689", "float", true], + ["L690", "float", true], + ["L691", "float", true], + ["L692", "float", true], + ["L693", "float", true], + ["L694", "float", true], + ["L695", "float", true], + ["L696", "float", true], + ["L697", "float", true], + ["L698", "float", true], + ["L699", "float", true], + ["L700", "float", true], + ["L701", "float", true], + ["L702", "float", true], + ["L703", "float", true], + ["L704", "float", true], + ["L705", "float", true], + ["L706", "float", true], + ["L707", "float", true], + ["L708", "float", true], + ["L709", "float", true], + ["L710", "float", true], + ["L711", "float", true], + ["L712", "float", true], + ["L713", "float", true], + ["L714", "float", true], + ["L715", "float", true], + ["L716", "float", true], + ["L717", "float", true], + ["L718", "float", true], + ["L719", "float", true], + ["L720", "float", true], + ["L721", "float", true], + ["L722", "float", true], + ["L723", "float", true], + ["L724", "float", true], + ["L725", "float", true], + ["L726", "float", true], + ["L727", "float", true], + ["L728", "float", true], + ["L729", "float", true], + ["L730", "float", true], + ["L731", "float", true], + ["L732", "float", true], + ["L733", "float", true], + ["L734", "float", true], + ["L735", "float", true], + ["L736", "float", true], + ["L737", "float", true], + ["L738", "float", true], + ["L739", "float", true], + ["L740", "float", true], + ["L741", "float", true], + ["L742", "float", true], + ["L743", "float", true], + ["L744", "float", true], + ["L745", "float", true], + ["L790", "uint64", true], + ["L791", "uint64", true], + ["L792", "uint64", true], + ["L793", "uint64", true] + ], + + "cam-states-dbg": [["L78", "camera-orbit-info"]], + + "cam-layout": [ + ["L766", "quaternion"], + ["L768", "vector"], + ["L775", "vector4w"], + ["L777", "vector4w"], + ["L779", "vector4w"], + ["L781", "vector4w"], + ["L783", "vector4w"], + ["L785", "vector4w"], + ["L787", "vector4w"], + ["L788", "vector4w"], + ["L789", "vector4w"], + ["L790", "vector4w"], + ["L791", "vector"], + ["L792", "vector"], + ["L793", "vector4w"], + ["L794", "vector"], + ["L795", "vector4w"], + ["L796", "vector"], + ["L797", "vector"], + ["L798", "vector4w"], + ["L799", "vector"], + ["L800", "vector4w"], + ["L801", "vector"], + ["L802", "vector"], + ["L803", "vector4w"], + ["L804", "vector"], + ["L805", "vector"], + ["L806", "vector4w"], + ["L807", "vector4w"], + ["L808", "vector"], + ["L809", "vector"], + ["L810", "vector4w"], + ["L811", "vector4w"], + ["L812", "vector"], + ["L813", "vector"], + ["L814", "vector4w"], + ["L815", "vector"], + ["L816", "vector"], + ["L817", "vector4w"], + ["L818", "vector"], + ["L819", "vector"], + ["L820", "vector4w"], + ["L821", "vector"], + ["L822", "vector"], + ["L823", "vector"], + ["L824", "vector"], + ["L832", "vector4w"], + ["L872", "float", true], + ["L873", "float", true], + ["L874", "float", true], + ["L875", "float", true], + ["L876", "float", true], + ["L877", "float", true], + ["L878", "float", true], + ["L879", "float", true], + ["L880", "float", true], + ["L881", "float", true], + ["L882", "float", true], + ["L883", "float", true], + ["L884", "float", true], + ["L885", "float", true], + ["L886", "float", true], + ["L887", "float", true], + ["L888", "float", true], + ["L889", "float", true], + ["L890", "float", true], + ["L891", "float", true], + ["L892", "float", true], + ["L893", "float", true], + ["L894", "float", true], + ["L895", "float", true], + ["L896", "float", true], + ["L897", "float", true], + ["L898", "float", true], + ["L899", "float", true], + ["L900", "float", true], + ["L901", "uint64", true], + ["L904", "uint64", true], + ["L905", "uint64", true], + ["L906", "uint64", true], + ["L907", "uint64", true], + ["L908", "uint64", true], + ["L909", "uint64", true], + ["L910", "uint64", true] + ], + + "process-taskable": [["L251", "attack-info"]], + + "babak-with-cannon": [["L92", "vector"]], + + "flutflut": [["L94", "vector"]], + + "fishermans-boat": [ + ["L210", "vector"], + ["L410", "attack-info"], + ["L411", "vector"], + ["L412", "vector"], + ["L413", "vector"], + ["L431", "(pointer float)", 32], + ["L432", "(pointer float)", 32], + ["L434", "rigid-body-platform-constants"] + ], + + "training-obs": [["L175", "rigid-body-platform-constants"]], + + "bonelurker": [ + ["L72", "attack-info"], + ["L73", "attack-info"] + ], + + "balloonlurker": [ + ["L99", "vector"], + ["L105", "vector"], + ["L107", "attack-info"], + ["L108", "attack-info"], + ["L113", "rigid-body-platform-constants"] + ], + + "assistant-village2": [ + ["L177", "vector"], + ["L219", "attack-info"], + ["L268", "vector"] + ], + + "citb-plat": [ + ["L136", "attack-info"], + ["L155", "rigid-body-platform-constants"] + ], + + "qbert-plat": [["L99", "rigid-body-platform-constants"]], + + "misty-conveyor": [ + ["L60", "vector"], + ["L65", "vector"], + ["L66", "vector"], + ["L71", "vector"], + ["L73", "attack-info"] + ], + + "swamp-bat": [ + ["L88", "matrix"], + ["L99", "vector"], + ["L102", "vector"], + ["L103", "attack-info"] + ], + + "cavecrystal-light": [ + ["L45", "vector"], + ["L46", "vector"] + ], + + "gnawer": [ + ["L195", "attack-info"], + ["L196", "attack-info"], + ["L200", "attack-info"], + ["L216", "(inline-array gnawer-segment-info)", 10] + ], + + "target-tube": [["L142", "vector"]], + + "assistant-village3": [["L43", "vector"]], + + "sage-village3": [["L74", "vector"]], + + "target-snowball": [["L23", "vector"]], + + "ice-cube": [ + ["L210", "vector"], + ["L212", "attack-info"], + ["L213", "attack-info"], + ["L215", "attack-info"] + ], + + "assistant-lavatube": [["L30", "vector"]], + + "citadel-part": [ + ["L235", "float", true], + ["L236", "float", true], + ["L237", "float", true], + ["L238", "float", true], + ["L242", "uint64", true] + ], + + "village1-part": [ + ["L238", "float", true], + ["L239", "float", true], + ["L240", "float", true], + ["L241", "float", true], + ["L245", "uint64", true] + ], + + "sunken-part": [["L220", "uint64", true]], + + "ogre-part": [["L93", "uint64", true]], + + "collectables-part": [ + ["L309", "float", true], + ["L310", "float", true] + ], + + "village1-part2": [ + ["L122", "float", true], + ["L123", "float", true], + ["L124", "float", true], + ["L125", "uint64", true] + ], + + "village2-part": [ + ["L226", "float", true], + ["L227", "float", true], + ["L228", "float", true], + ["L229", "uint64", true], + ["L233", "uint64", true] + ], + + "village3-part": [["L244", "uint64", true]], + + "lavatube-part": [["L110", "uint64", true]], + + "hud-classes": [ + ["L279", "vector"], + ["L310", "vector"], + ["L318", "vector"] + ], + + "sky": [["L13", "vu-function"]], + + "sky-tng": [ + ["L82", "sky-work"], + // 576 bytes, 32 bytes each + ["L81", "(inline-array sky-vertex)", 12], + ["L80", "(inline-array sky-vertex)", 12], + ["L79", "(inline-array sky-vertex)", 72], + ["L78", "(pointer uint8)", 48], + ["L77", "vector"], + ["L76", "vector"] + ], + + "effect-control": [ + ["L300", "float", true], + ["L301", "float", true], + ["L302", "float", true], + ["L306", "float", true], + ["L307", "float", true], + ["L309", "float", true], + ["L310", "float", true], + ["L312", "float", true], + ["L314", "float", true] + ], + + "seagull": [["L226", "(inline-array air-box)", 10]], + + "rolling-race-ring": [ + ["L94", "vector"], + ["L95", "vector"], + ["L96", "vector"], + ["L97", "vector"], + ["L98", "vector"], + ["L99", "vector"], + ["L100", "vector"] + ], + + "anim-tester": [ + ["L509", "(inline-array list-field)", 12], + ["L523", "vector"], + ["L524", "vector"], + ["L649", "float", true], + ["L650", "float", true], + ["L651", "float", true], + ["L652", "float", true], + ["L653", "float", true], + ["L654", "float", true], + ["L655", "float", true], + ["L656", "float", true], + ["L657", "uint64", true], + ["L658", "uint64", true], + ["L663", "uint64", true], + ["L664", "uint64", true], + ["L665", "uint64", true], + ["L666", "uint64", true], + ["L667", "uint64", true], + ["L668", "uint64", true], + ["L669", "uint64", true], + ["L670", "uint64", true] + ], + + "fisher": [ + ["L262", "vector"], + ["L463", "(array (inline-array fisher-params))"] + ], + "fisher-OLD": [ + ["L262", "vector"], + ["L463", "(array (inline-array fisher-params))"] + ], + + "robotboss-weapon": [ + ["L122", "attack-info"], + ["L127", "attack-info"], + ["L138", "attack-info"], + ["L144", "vector4w"], + ["L145", "vector"] + ], + + "robotboss-misc": [["L99", "vector"]], + + "robotboss": [ + ["L646", "attack-info"], + ["L647", "attack-info"], + ["L651", "vector"], + ["L654", "vector"], + ["L655", "vector"], + ["L656", "vector"], + ["L657", "vector"], + ["L658", "vector"], + ["L659", "vector"], + ["L660", "vector"], + ["L661", "vector"], + ["L662", "vector"], + ["L678", "vector"], + ["L669", "vector"], + ["L701", "vector"], + ["L702", "vector"], + ["L703", "vector"], + ["L705", "vector"], + ["L642", "robotboss-dda"], + ["L643", "robotboss-dda"], + ["L644", "robotboss-dda"], + ["L645", "robotboss-dda"], + ["L632", "robotboss-dda"], + ["L713", "float", true], + ["L714", "float", true], + ["L715", "float", true], + ["L716", "float", true], + ["L717", "float", true], + ["L718", "float", true], + ["L719", "float", true], + ["L720", "float", true], + ["L721", "float", true], + ["L722", "float", true], + ["L723", "float", true], + ["L724", "float", true], + ["L725", "float", true], + ["L726", "float", true], + ["L727", "float", true], + ["L728", "float", true], + ["L729", "float", true], + ["L730", "float", true], + ["L731", "float", true], + ["L732", "float", true], + ["L733", "float", true], + ["L734", "float", true], + ["L735", "float", true], + ["L736", "float", true], + ["L737", "float", true], + ["L738", "float", true], + ["L739", "float", true], + ["L740", "float", true], + ["L741", "float", true], + ["L742", "float", true], + ["L743", "float", true], + ["L744", "float", true], + ["L745", "float", true], + ["L746", "float", true], + ["L747", "float", true], + ["L748", "float", true], + ["L749", "float", true], + ["L750", "float", true], + ["L751", "float", true], + ["L752", "float", true], + ["L753", "float", true], + ["L754", "float", true], + ["L755", "float", true], + ["L756", "float", true], + ["L757", "float", true], + ["L758", "float", true], + ["L759", "float", true], + ["L760", "float", true], + ["L761", "float", true], + ["L762", "float", true], + ["L763", "float", true], + ["L764", "float", true], + ["L765", "float", true], + ["L766", "float", true], + ["L767", "float", true], + ["L768", "float", true], + ["L769", "float", true], + ["L770", "float", true], + ["L771", "float", true], + ["L772", "float", true], + ["L773", "float", true], + ["L774", "float", true], + ["L775", "float", true], + ["L776", "float", true], + ["L777", "float", true], + ["L778", "float", true], + ["L779", "float", true], + ["L780", "float", true], + ["L781", "float", true], + ["L782", "float", true], + ["L783", "float", true], + ["L784", "float", true], + ["L785", "float", true], + ["L786", "float", true], + ["L787", "float", true], + ["L788", "float", true], + ["L789", "float", true], + ["L790", "float", true], + ["L791", "float", true], + ["L792", "float", true], + ["L793", "float", true], + ["L794", "float", true], + ["L795", "float", true], + ["L796", "float", true], + ["L797", "float", true], + ["L798", "float", true], + ["L799", "float", true], + ["L800", "float", true], + ["L801", "uint64", true], + ["L802", "uint64", true], + ["L803", "uint64", true], + ["L804", "uint64", true], + ["L814", "float", true], + ["L815", "uint64", true], + ["L816", "uint64", true] + ], + + "sage-finalboss": [ + ["L528", "vector"], + ["L272", "vector"], + ["L527", "quaternion"] + ], + + "sage-finalboss-OLD": [ + ["L528", "vector"], + ["L272", "vector"], + ["L527", "quaternion"] + ], + + "part-tester": [ + ["L27", "rgba", true], + ["L32", "uint64", true] + ], + + "process-drawable": [ + ["L242", "vector"], + ["L241", "vector"] + ], + + "ocean-texture": [ + ["L14", "vu-function"], + ["L15", "ocean-texture-work"] + ], + + "cavegeyserrock": [ + ["L56", "attack-info"], + ["L54", "vector"], + ["L53", "vector"], + ["L52", "vector"] + ], + + "junglesnake": [ + ["L93", "(pointer float)", 28], + ["L100", "attack-info"], + ["L101", "attack-info"] + ], + + "jungleb-obs": [["L34", "vector"]], + + "jungle-obs": [["L164", "attack-info"]], + + "misty-obs": [["L135", "rigid-body-platform-constants"]], + + "village2-obs": [ + ["L274", "rigid-body-platform-constants"], + ["L275", "rigid-body-platform-constants"], + ["L288", "vector"] + ], + + "swamp-obs": [ + ["L85", "rigid-body-platform-constants"], + ["L109", "attack-info"] + ], + + "maincave-obs": [ + ["L159", "vector"], + ["L160", "vector"], + ["L175", "attack-info"], + ["L176", "attack-info"] + ], + + "sunken-obs": [ + ["L43", "vector"], + ["L45", "vector"], + ["L47", "vector"], + ["L49", "vector"], + ["L51", "vector"] + ], + + "rolling-obs": [ + ["L234", "vector"], + ["L238", "vector"], + ["L239", "vector"], + ["L240", "vector"], + ["L241", "vector"], + ["L242", "vector"], + ["L243", "vector"], + ["L244", "vector"], + ["L245", "vector"], + ["L246", "vector"], + ["L247", "vector"], + ["L248", "vector"], + ["L257", "vector"] + ], + + "firecanyon-obs": [["L57", "attack-info"]], + + "ogre-obs": [ + ["L141", "rigid-body-platform-constants"], + ["L142", "rigid-body-platform-constants"], + ["L156", "attack-info"] + ], + + "snow-obs": [["L201", "vector"]], + + "lavatube-obs": [ + ["L162", "attack-info"], + ["L194", "attack-info"] + ], + + "tfrag": [ + ["L107", "vu-function"], + ["L106", "vector"], + ["L105", "vector"] + ], + + "generic-obs": [ + ["L455", "quaternion"], + ["L457", "attack-info"] + ], + + "collectables": [ + ["L533", "vector"], + ["L606", "float", true], + ["L607", "float", true], + ["L608", "float", true], + ["L609", "float", true], + ["L610", "float", true], + ["L611", "float", true], + ["L612", "float", true], + ["L613", "float", true], + ["L614", "float", true], + ["L615", "float", true], + ["L616", "float", true], + ["L617", "float", true], + ["L618", "float", true], + ["L619", "float", true], + ["L620", "float", true], + ["L621", "float", true], + ["L622", "float", true], + ["L623", "float", true], + ["L624", "float", true], + ["L625", "float", true], + ["L626", "float", true], + ["L627", "float", true], + ["L628", "float", true], + ["L629", "float", true], + ["L630", "float", true], + ["L631", "float", true], + ["L632", "float", true], + ["L633", "float", true], + ["L634", "float", true], + ["L635", "float", true], + ["L636", "float", true], + ["L637", "float", true], + ["L638", "float", true], + ["L639", "float", true], + ["L640", "float", true], + ["L641", "float", true], + ["L642", "float", true], + ["L643", "float", true], + ["L644", "float", true], + ["L645", "float", true], + ["L646", "float", true], + ["L647", "float", true], + ["L648", "float", true], + ["L649", "float", true], + ["L650", "float", true], + ["L651", "float", true], + ["L652", "float", true], + ["L653", "float", true], + ["L654", "float", true], + ["L655", "float", true], + ["L656", "float", true], + ["L657", "float", true], + ["L658", "float", true], + ["L659", "float", true], + ["L660", "float", true], + ["L661", "float", true], + ["L662", "float", true], + ["L663", "float", true], + ["L664", "uint64", true], + ["L666", "uint64", true], + ["L665", "uint64", true], + ["L667", "uint64", true], + ["L668", "uint64", true], + ["L669", "uint64", true], + ["L670", "uint64", true], + ["L671", "uint64", true], + ["L672", "uint64", true], + ["L585", "vector"], + ["L725", "float", true], + ["L726", "float", true], + ["L727", "float", true], + ["L728", "uint64", true], + ["L729", "uint64", true], + ["L730", "uint64", true], + ["L731", "uint64", true], + ["L732", "uint64", true], + ["L733", "uint64", true] + ], + + "plant-boss": [ + ["L343", "vector"], + ["L344", "vector"], + ["L345", "vector"], + ["L346", "vector"], + ["L347", "vector"], + ["L348", "vector"], + ["L349", "vector"], + ["L350", "vector"], + ["L351", "vector"], + ["L352", "vector"], + ["L353", "vector"], + ["L354", "vector"], + ["L355", "vector"], + ["L356", "vector"], + ["L357", "vector"], + ["L358", "vector"], + ["L359", "vector"], + ["L360", "vector"], + ["L361", "vector"], + ["L362", "vector"], + ["L363", "vector"], + ["L364", "vector"], + ["L375", "attack-info"], + ["L377", "attack-info"], + ["L399", "attack-info"], + ["L403", "attack-info"], + ["L412", "float", true], + ["L413", "float", true], + ["L414", "float", true], + ["L415", "float", true], + ["L416", "float", true], + ["L417", "float", true], + ["L418", "float", true], + ["L419", "float", true], + ["L420", "float", true], + ["L421", "float", true], + ["L422", "float", true], + ["L423", "float", true], + ["L424", "float", true], + ["L425", "float", true], + ["L426", "float", true], + ["L427", "float", true], + ["L428", "float", true], + ["L429", "float", true], + ["L430", "float", true], + ["L431", "float", true], + ["L432", "float", true], + ["L433", "float", true], + ["L434", "float", true], + ["L435", "float", true], + ["L436", "float", true], + ["L437", "float", true], + ["L438", "float", true], + ["L439", "float", true], + ["L440", "float", true], + ["L441", "float", true], + ["L442", "float", true], + ["L443", "float", true], + ["L444", "float", true], + ["L445", "float", true], + ["L446", "float", true], + ["L447", "float", true], + ["L448", "float", true], + ["L449", "float", true], + ["L450", "float", true], + ["L451", "float", true], + ["L452", "float", true], + ["L453", "float", true], + ["L454", "float", true], + ["L455", "float", true], + ["L456", "float", true], + ["L457", "float", true], + ["L458", "float", true], + ["L459", "float", true], + ["L460", "float", true], + ["L461", "float", true], + ["L462", "float", true], + ["L463", "float", true], + ["L464", "float", true], + ["L465", "float", true], + ["L466", "float", true], + ["L467", "float", true], + ["L468", "float", true], + ["L469", "float", true], + ["L470", "uint64", true], + ["L498", "float", true], + ["L499", "uint64", true], + ["L500", "uint64", true], + ["L501", "uint64", true] + ], + + "ropebridge": [ + ["L97", "(inline-array ropebridge-tuning)", 6], + ["L104", "(inline-array vector)", 18], // 70/72 words + ["L105", "(inline-array vector)", 16], // 62/64 words + ["L106", "(inline-array vector)", 26], // 102/104 words + ["L107", "(inline-array vector)", 35] // 138/140 words + ], + + "double-lurker": [ + ["L109", "vector"], + ["L122", "attack-info"], + ["L123", "attack-info"], + ["L128", "attack-info"] + ], + + "billy": [["L234", "vector"]], + + "lurkerworm": [["L56", "attack-info"]], + + "pelican": [ + ["L199", "vector"], + ["L225", "vector"] + ], + + "citadel-sages": [ + ["L179", "vector"], + ["L623", "vector"], + ["L651", "vector"], + ["L701", "vector"] + ], + + "shover": [ + ["L13", "attack-info"], + ["L14", "attack-info"] + ], + + "steam-cap": [["L51", "attack-info"]], + + "sidekick": [["L29", "vector"]], + + "target-handler": [ + ["L195", "attack-info"], + ["L197", "float", true], + ["L198", "float", true], + ["L199", "float", true], + ["L200", "float", true], + ["L201", "float", true], + ["L202", "float", true], + ["L203", "float", true], + ["L204", "float", true], + ["L205", "uint64", true], + ["L206", "uint64", true], + ["L207", "uint64", true], + ["L208", "uint64", true], + ["L209", "uint64", true] + ], + + "water": [ + ["L148", "attack-info"], + ["L149", "attack-info"], + ["L150", "attack-info"] + ], + + "racer": [["L106", "vector"]], + + "target-racer": [ + ["L237", "attack-info"], + ["L238", "attack-info"], + ["L240", "vector"] + ], + + "rolling-lightning-mole": [ + ["L181", "vector"], + ["L185", "vector4w"], + ["L186", "vector4w"], + ["L187", "vector4w"], + ["L189", "vector4w"], + ["L195", "vector"], + ["L201", "vector4w"], + ["L202", "vector4w"], + ["L203", "vector4w"], + ["L204", "vector4w"], + ["L205", "vector4w"], + ["L206", "vector4w"] + ], + + "rolling-robber": [ + ["L127", "vector"], + ["L139", "vector"], + ["L140", "vector"], + ["L145", "vector"] + ], + + "target-flut": [ + ["L399", "attack-info"], + ["L406", "float", true], + ["L407", "float", true], + ["L408", "float", true], + ["L409", "float", true], + ["L410", "float", true], + ["L411", "float", true], + ["L412", "float", true], + ["L413", "float", true], + ["L414", "float", true], + ["L415", "float", true], + ["L416", "float", true], + ["L417", "float", true], + ["L418", "float", true], + ["L419", "float", true], + ["L420", "float", true], + ["L421", "float", true], + ["L422", "float", true], + ["L423", "float", true], + ["L424", "float", true], + ["L425", "float", true], + ["L426", "float", true], + ["L427", "float", true], + ["L428", "float", true], + ["L429", "float", true], + ["L430", "float", true], + ["L431", "float", true], + ["L432", "float", true], + ["L433", "float", true], + ["L434", "float", true], + ["L435", "float", true], + ["L436", "float", true], + ["L437", "float", true], + ["L438", "float", true], + ["L439", "float", true], + ["L440", "float", true], + ["L441", "float", true], + ["L442", "float", true], + ["L443", "float", true], + ["L444", "float", true], + ["L445", "float", true], + ["L446", "float", true], + ["L447", "float", true], + ["L448", "float", true], + ["L449", "float", true], + ["L450", "float", true], + ["L451", "float", true], + ["L452", "float", true], + ["L453", "float", true], + ["L454", "float", true], + ["L455", "float", true], + ["L456", "float", true], + ["L457", "float", true], + ["L458", "uint64", true], + ["L459", "uint64", true], + ["L460", "uint64", true], + ["L461", "uint64", true], + ["L462", "uint64", true], + ["L463", "uint64", true], + ["L464", "uint64", true], + ["L465", "uint64", true], + ["L483", "uint64", true], + ["L484", "uint64", true] + ], + + "collide-shape": [ + ["L399", "attack-info"], + ["L408", "vector"], + ["L410", "vector"], + ["L411", "vector"], + ["L413", "attack-info"], + ["L414", "attack-info"], + ["L415", "attack-info"], + ["L416", "attack-info"], + ["L417", "vector"], + ["L418", "attack-info"], + ["L419", "attack-info"], + ["L420", "vector"], + ["L421", "vector"] + ], + + "collide-planes": [ + ["L53", "vector4w"], + ["L54", "vector4w"], + ["L55", "vector4w"], + ["L56", "vector4w"], + ["L57", "vector4w"], + ["L58", "vector4w"], + ["L59", "vector4w"], + ["L60", "vector4w"], + ["L63", "vector4w"], + ["L64", "vector4w"], + ["L65", "vector4w"], + ["L66", "vector4w"] + ], + + "collide-probe": [ + ["L100", "vector"], + ["L102", "vector"] + ], + + "collide-cache": [ + ["L304", "vector"], + ["L303", "vector4w"] + ], + + "load-boundary-data": [["L2", "(array array)"]], + + "tfrag-near": [["L1", "vu-function"]], + + "snow-ram-boss": [ + ["L220", "attack-info"], + ["L221", "attack-info"], + ["L222", "attack-info"], + ["L223", "attack-info"], + ["L225", "attack-info"] + ], + + "snow-ram": [["L73", "attack-info"]], + + "snow-bumper": [["L54", "attack-info"]], + + "snow-ball": [ + ["L86", "(pointer float)", 8], + ["L87", "(pointer float)", 8], + ["L89", "attack-info"] + ], + + "puffer": [["L170", "attack-info"]], + + "driller-lurker": [ + ["L174", "attack-info"], + ["L175", "attack-info"] + ], + + "dark-crystal": [["L36", "attack-info"]], + + "kermit": [["L164", "attack-info"]], + + "swamp-blimp": [ + ["L177", "vector"], + ["L182", "vector"], + ["L187", "vector"], + ["L198", "tetherrock-info"], + ["L200", "tetherrock-info"], + ["L203", "tetherrock-info"], + ["L206", "tetherrock-info"], + ["L209", "tetherrock-info"] + ], + + "mistycannon": [["L199", "attack-info"]], + + "darkvine": [["L41", "attack-info"]], + + "jungle-mirrors": [ + ["L325", "vector"], + ["L326", "vector4w-4"] + ], + + "quicksandlurker": [["L111", "attack-info"]], + + "voicebox": [ + ["L47", "vector"], + ["L48", "vector"], + ["L49", "vector"], + ["L50", "vector"], + ["L51", "vector"] + ], + + "mother-spider": [ + ["L278", "vector"], + ["L279", "vector"], + ["L288", "attack-info"], + ["L301", "(inline-array mother-spider-leg-info)", 8], + ["L302", "(inline-array mother-spider-thread)", 9] + ], + + "bully": [ + ["L90", "attack-info"], + ["L91", "attack-info"], + ["L93", "attack-info"] + ], + + "bones": [ + ["L159", "shadow-settings"], + ["L161", "vector"], + ["L162", "vu-function"] + ], + + "tie": [["L43", "vu-function"]], + + "tie-near": [["L91", "vu-function"]], + + "depth-cue": [["L17", "depth-cue-work"]], + + "navigate": [ + ["L402", "vector"], + ["L403", "vector"], + ["L404", "vector"], + ["L405", "vector"], + ["L406", "vector"], + ["L422", "vector"], + ["L419", "(pointer uint8)", 4], + ["L425", "float", true], + ["L426", "float", true], + ["L429", "float", true], + ["L430", "float", true], + ["L436", "float", true], + ["L438", "float", true], + ["L444", "float", true], + ["L442", "float", true], + ["L520", "vector"], + ["L522", "float", true], // TODO - meters + ["L523", "float", true] // TODO - meters + ], + + "eye": [ + ["L36", "eye-work"], + ["L38", "float", true], + ["L40", "float", true], + ["L44", "uint64", true] + ], + + "snow-bunny": [["L190", "attack-info"]], + + "ocean-vu0": [ + ["L8", "vu-function"], + ["L9", "ocean-vu0-work"] + ], + + "ocean-near": [ + ["L35", "vu-function"], + ["L37", "float", true], + ["L44", "float", true] + ], + + "ocean-mid": [["L150", "vu-function"]], + + "generic-merc": [ + ["L161", "(inline-array invinitdata)", 8], + ["L162", "vu-function"] + ], + + "generic-vu0": [["L1", "vu-function"]], + + "generic-vu1": [ + ["L8", "vector4w"], + ["L9", "vector4w"], + ["L10", "vu-function"] + ], + + "generic-effect": [["L95", "generic-consts"]], + + "shadow-vu1": [ + ["L5", "vu-function"], + ["L6", "shadow-vu1-gifbuf-template"] + ], + + "generic-vu0": [["L1", "vu-function"]], + "shrubbery": [["L133", "vu-function"]], + + "credits": [ + ["L32", "(array int32)"], + ["L33", "(array float)"] + ], + +// BEGIN + "ambient": [ + ["L334", "vector2h"], + ["L332", "vector2h"], + ["L331", "vector2h"], + ["L330", "vector2h"], + ["L329", "vector2h"], + ["L328", "vector2h"] + ], + + "sparticle-launcher": [["L193", "adgif-shader"]], + + "load-boundary": [ + ["L328", "(inline-array lbvtx)", 12], + ["L325", "vector"] + ], + + "cam-debug": [ + ["L172", "vector4w"], + ["L173", "vector4w"], + ["L174", "vector4w"], + ["L175", "vector4w"], + ["L176", "vector4w"], + ["L207", "vector4w"], + ["L208", "vector4w"], + ["L209", "vector4w"], + ["L210", "vector4w"], + ["L211", "vector4w"], + ["L212", "vector4w"], + ["L213", "vector4w"], + ["L214", "vector4w"], + ["L215", "vector4w"], + ["L216", "vector4w"], + ["L217", "vector4w"], + ["L218", "vector4w"], + ["L219", "vector4w"], + ["L220", "vector4w"], + ["L221", "vector4w"], + ["L222", "vector4w"], + ["L223", "vector4w"], + ["L224", "vector4w"], + ["L225", "vector4w"], + ["L226", "vector4w"], + ["L227", "vector4w"], + ["L228", "vector4w"], + ["L229", "vector4w"], + ["L230", "vector4w"], + ["L231", "vector4w"], + ["L232", "vector4w"], + ["L237", "vector4w"], + ["L238", "vector4w"], + ["L239", "vector4w"], + ["L240", "vector4w"], + ["L241", "vector"], + ["L242", "vector"], + ["L243", "vector4w"], + ["L244", "vector"], + ["L245", "vector"], + ["L252", "vector"], + ["L253", "vector"], + ["L254", "vector"], + ["L255", "vector"], + ["L261", "vector4w"] + ], + + "sequence-a-village1": [["L40", "vector"]], + + "ogreboss": [ + ["L360", "attack-info"], + ["L368", "attack-info"], + ["L371", "attack-info"], + ["L372", "attack-info"], + ["L385", "float", true], + ["L386", "float", true], + ["L387", "float", true], + ["L388", "float", true], + ["L389", "float", true], + ["L390", "float", true], + ["L391", "float", true], + ["L392", "float", true], + ["L393", "float", true], + ["L394", "float", true], + ["L395", "float", true], + ["L396", "float", true], + ["L397", "float", true], + ["L398", "float", true], + ["L399", "float", true], + ["L400", "float", true], + ["L401", "float", true], + ["L402", "float", true], + ["L403", "float", true], + ["L404", "float", true], + ["L405", "float", true], + ["L406", "float", true], + ["L407", "float", true], + ["L408", "float", true], + ["L409", "float", true], + ["L410", "float", true], + ["L411", "float", true], + ["L412", "float", true], + ["L413", "float", true], + ["L414", "float", true], + ["L415", "float", true], + ["L416", "float", true], + ["L417", "float", true], + ["L418", "float", true], + ["L419", "float", true], + ["L420", "float", true], + ["L421", "float", true], + ["L422", "float", true], + ["L423", "float", true], + ["L424", "float", true], + ["L425", "float", true], + ["L426", "float", true], + ["L427", "float", true], + ["L428", "float", true], + ["L429", "float", true], + ["L430", "float", true], + ["L431", "float", true], + ["L432", "float", true], + ["L433", "float", true], + ["L434", "float", true], + ["L435", "float", true], + ["L436", "float", true], + ["L437", "float", true], + ["L438", "float", true], + ["L439", "float", true], + ["L440", "float", true], + ["L441", "float", true], + ["L442", "float", true], + ["L443", "float", true], + ["L444", "float", true], + ["L445", "float", true], + ["L446", "float", true], + ["L447", "float", true], + ["L448", "float", true], + ["L449", "float", true], + ["L450", "float", true], + ["L451", "float", true], + ["L452", "float", true], + ["L453", "float", true], + ["L454", "float", true], + ["L455", "float", true], + ["L456", "float", true], + ["L457", "float", true], + ["L458", "float", true], + ["L459", "float", true], + ["L460", "float", true], + ["L461", "float", true], + ["L462", "rgba", true], + ["L463", "uint64", true], + ["L464", "uint64", true], + ["L465", "uint64", true], + ["L466", "uint64", true], + ["L467", "uint64", true], + ["L526", "float", true], + ["L527", "uint64", true], + ["L528", "uint64", true], + ["L529", "uint64", true], + ["L530", "uint64", true], + ["L531", "uint64", true] + ], + + "flying-lurker": [ + ["L200", "attack-info"], + ["L190", "vector"] + ], + + "target": [ + ["L728", "float", true], + ["L729", "float", true], + ["L730", "float", true], + ["L731", "float", true], + ["L732", "float", true], + ["L733", "float", true], + ["L734", "float", true], + ["L735", "float", true], + ["L736", "float", true], + ["L737", "float", true], + ["L738", "float", true], + ["L739", "float", true], + ["L740", "float", true], + ["L741", "float", true], + ["L742", "float", true], + ["L743", "float", true], + ["L744", "float", true], + ["L745", "float", true], + ["L746", "float", true], + ["L747", "float", true], + ["L748", "float", true], + ["L749", "float", true], + ["L750", "float", true], + ["L751", "float", true], + ["L752", "float", true], + ["L753", "float", true], + ["L754", "float", true], + ["L755", "float", true], + ["L756", "float", true], + ["L757", "float", true], + ["L758", "float", true], + ["L759", "float", true], + ["L760", "float", true], + ["L761", "float", true], + ["L762", "float", true], + ["L763", "float", true], + ["L764", "float", true], + ["L765", "float", true], + ["L766", "float", true], + ["L767", "float", true], + ["L768", "float", true], + ["L769", "float", true], + ["L770", "float", true], + ["L771", "float", true], + ["L772", "float", true], + ["L773", "float", true], + ["L774", "float", true], + ["L775", "float", true], + ["L776", "float", true], + ["L777", "float", true], + ["L778", "float", true], + ["L779", "float", true], + ["L780", "float", true], + ["L781", "float", true], + ["L782", "float", true], + ["L783", "float", true], + ["L784", "float", true], + ["L785", "float", true], + ["L786", "float", true], + ["L787", "float", true], + ["L788", "float", true], + ["L789", "float", true], + ["L790", "float", true], + ["L791", "float", true], + ["L792", "float", true], + ["L793", "float", true], + ["L794", "float", true], + ["L795", "float", true], + ["L796", "float", true], + ["L797", "float", true], + ["L798", "float", true], + ["L799", "float", true], + ["L800", "float", true], + ["L801", "float", true], + ["L802", "float", true], + ["L803", "float", true], + ["L804", "float", true], + ["L805", "float", true], + ["L806", "float", true], + ["L807", "float", true], + ["L808", "float", true], + ["L809", "float", true], + ["L810", "float", true], + ["L811", "float", true], + ["L812", "float", true], + ["L813", "float", true], + ["L814", "float", true], + ["L815", "float", true], + ["L816", "float", true], + ["L817", "float", true], + ["L818", "float", true], + ["L819", "float", true], + ["L820", "float", true], + ["L821", "float", true], + ["L822", "float", true], + ["L823", "uint64", true], + ["L824", "uint64", true] + ], + + "target2": [ + ["L615", "attack-info"], + ["L656", "float", true], + ["L657", "float", true], + ["L658", "float", true], + ["L659", "float", true], + ["L660", "float", true], + ["L661", "float", true], + ["L662", "float", true], + ["L663", "float", true], + ["L664", "float", true], + ["L665", "float", true], + ["L666", "float", true], + ["L667", "float", true], + ["L668", "float", true], + ["L669", "float", true], + ["L670", "float", true], + ["L671", "float", true], + ["L672", "float", true], + ["L673", "float", true], + ["L674", "float", true], + ["L675", "float", true], + ["L676", "float", true], + ["L677", "float", true], + ["L678", "float", true], + ["L679", "float", true], + ["L680", "float", true], + ["L681", "float", true], + ["L682", "float", true], + ["L683", "float", true], + ["L684", "float", true], + ["L685", "float", true], + ["L686", "float", true], + ["L687", "float", true], + ["L688", "float", true], + ["L689", "float", true], + ["L690", "float", true], + ["L691", "float", true], + ["L692", "float", true], + ["L693", "float", true], + ["L694", "float", true], + ["L695", "float", true], + ["L696", "float", true], + ["L697", "float", true], + ["L698", "float", true], + ["L699", "float", true], + ["L700", "float", true], + ["L701", "float", true], + ["L702", "float", true], + ["L703", "float", true], + ["L704", "float", true], + ["L705", "float", true], + ["L706", "float", true], + ["L707", "float", true], + ["L708", "float", true], + ["L709", "float", true], + ["L710", "float", true], + ["L711", "float", true], + ["L712", "float", true], + ["L713", "float", true], + ["L714", "float", true], + ["L715", "float", true], + ["L716", "float", true], + ["L717", "float", true], + ["L718", "float", true], + ["L719", "float", true], + ["L720", "float", true], + ["L721", "float", true], + ["L722", "float", true], + ["L723", "float", true], + ["L724", "float", true], + ["L725", "float", true], + ["L726", "float", true], + ["L727", "float", true], + ["L728", "float", true], + ["L729", "float", true], + ["L730", "float", true], + ["L731", "float", true], + ["L732", "float", true], + ["L733", "float", true], + ["L734", "float", true], + ["L735", "float", true], + ["L736", "float", true], + ["L737", "float", true], + ["L738", "float", true], + ["L739", "float", true], + ["L740", "float", true], + ["L741", "float", true], + ["L742", "float", true], + ["L743", "float", true], + ["L744", "float", true], + ["L745", "float", true], + ["L746", "float", true], + ["L747", "float", true], + ["L748", "uint64", true], + ["L759", "uint64", true] + ], + + "target-death": [ + ["L314", "vector"], + ["L322", "float", true], + ["L323", "float", true], + ["L324", "float", true], + ["L325", "float", true], + ["L326", "float", true], + ["L327", "float", true], + ["L328", "float", true], + ["L329", "float", true], + ["L330", "float", true], + ["L331", "float", true], + ["L332", "float", true], + ["L333", "float", true], + ["L334", "float", true], + ["L335", "float", true], + ["L336", "float", true], + ["L337", "float", true], + ["L338", "float", true], + ["L339", "float", true], + ["L340", "float", true], + ["L341", "float", true], + ["L342", "float", true], + ["L343", "float", true], + ["L344", "float", true], + ["L345", "float", true], + ["L346", "float", true], + ["L347", "float", true], + ["L348", "float", true], + ["L349", "float", true], + ["L350", "uint64", true], + ["L351", "uint64", true], + ["L352", "uint64", true], + ["L353", "uint64", true], + ["L354", "uint64", true], + ["L355", "uint64", true], + ["L356", "uint64", true], + ["L357", "uint64", true], + ["L358", "uint64", true], + ["L361", "float", true] + ], + + "progress": [ + ["L574", "vector"], + ["L576", "vector"], + ["L578", "vector"], + ["L580", "vector"], + ["L582", "vector"], + ["L584", "vector"], + ["L587", "float", true], + ["L588", "float", true], + ["L589", "float", true], + ["L590", "float", true], + ["L591", "float", true], + ["L592", "float", true], + ["L593", "float", true], + ["L594", "float", true], + ["L595", "float", true], + ["L596", "float", true], + ["L597", "float", true], + ["L598", "float", true], + ["L599", "float", true], + ["L600", "float", true], + ["L601", "float", true], + ["L602", "float", true], + ["L603", "float", true], + ["L604", "float", true], + ["L605", "float", true], + ["L606", "float", true], + ["L607", "float", true], + ["L608", "float", true], + ["L609", "float", true], + ["L610", "float", true], + ["L611", "float", true], + ["L612", "float", true], + ["L613", "float", true], + ["L614", "float", true], + ["L615", "float", true], + ["L617", "float", true], + ["L616", "float", true], + ["L618", "float", true], + ["L619", "float", true], + ["L620", "float", true], + ["L621", "float", true], + ["L622", "float", true], + ["L623", "float", true], + ["L624", "float", true], + ["L625", "float", true], + ["L626", "float", true], + ["L627", "float", true], + ["L628", "float", true], + ["L629", "float", true], + ["L630", "float", true], + ["L631", "float", true], + ["L632", "float", true], + ["L633", "float", true], + ["L634", "float", true], + ["L635", "float", true], + ["L636", "float", true], + ["L637", "uint64", true], + ["L638", "uint64", true], + ["L639", "uint64", true], + ["L640", "uint64", true], + ["L641", "uint64", true], + ["L642", "uint64", true], + ["L643", "uint64", true], + ["L644", "uint64", true], + ["L645", "uint64", true], + ["L646", "uint64", true], + ["L647", "uint64", true], + ["L648", "uint64", true], + ["L649", "uint64", true], + ["L650", "uint64", true], + ["L668", "uint64", true] + ], + + "citadel-obs": [["L267", "attack-info"]], + + // please do not add things after this entry! git is dumb. + "object-file-that-doesnt-actually-exist-and-i-just-put-this-here-to-prevent-merge-conflicts-with-this-file": [] +} diff --git a/decompiler/config/jak1_ntsc_black_label.jsonc b/decompiler/config/jak1_ntsc_black_label.jsonc index 285fa3d14e..54687de809 100644 --- a/decompiler/config/jak1_ntsc_black_label.jsonc +++ b/decompiler/config/jak1_ntsc_black_label.jsonc @@ -97,5 +97,56 @@ "levels_convert_to_obj": false, // should we extract collision meshes? // these can be displayed in game, but makes the .fr3 files slightly larger - "extract_collision": true + "extract_collision": true, + + //////////////////////////// + // PATCHING OPTIONS + //////////////////////////// + + // these are options related to xdelta3 patches on specific objects + // this allows us to get a more consistent input + + // set to true to write new patch files + "write_patches": false, + // set to true to apply patch files + "apply_patches": true, + // what to patch an object to and the patch file is + "object_patches": { + "0COMMON": { + "crc32": "DD2CD7E2", + "in": "decompiler_out/jak1_pal/raw_obj/0COMMON.go", + "out": "game/assets/jak1/patches/0common.xd3" + }, + "1COMMON": { + "crc32": "2B9C79F9", + "in": "decompiler_out/jak1_pal/raw_obj/1COMMON.go", + "out": "game/assets/jak1/patches/1common.xd3" + }, + "2COMMON": { + "crc32": "DA35C5F3", + "in": "decompiler_out/jak1_pal/raw_obj/2COMMON.go", + "out": "game/assets/jak1/patches/2common.xd3" + }, + "3COMMON": { + "crc32": "50C4A6A0", + "in": "decompiler_out/jak1_pal/raw_obj/3COMMON.go", + "out": "game/assets/jak1/patches/3common.xd3" + }, + "4COMMON": { + "crc32": "C475F525", + "in": "decompiler_out/jak1_pal/raw_obj/4COMMON.go", + "out": "game/assets/jak1/patches/4common.xd3" + }, + "5COMMON": { + "crc32": "92D44110", + "in": "decompiler_out/jak1_pal/raw_obj/5COMMON.go", + "out": "game/assets/jak1/patches/5common.xd3" + }, + "6COMMON": { + "crc32": "85B23FEE", + "in": "decompiler_out/jak1_pal/raw_obj/6COMMON.go", + "out": "game/assets/jak1/patches/6common.xd3" + } + } + } diff --git a/decompiler/config/jak1_ntsc_black_label/anonymous_function_types.jsonc b/decompiler/config/jak1_ntsc_black_label/anonymous_function_types.jsonc index ce9fd6224c..50f4d8ab12 100644 --- a/decompiler/config/jak1_ntsc_black_label/anonymous_function_types.jsonc +++ b/decompiler/config/jak1_ntsc_black_label/anonymous_function_types.jsonc @@ -875,7 +875,7 @@ ], "target2": [ - [11, "(function vector time-frame float symbol :behavior target)"], + [11, "(function vector time-frame float symbol :behavior process)"], [99, "(function symbol)"] ], @@ -890,5 +890,7 @@ "seagull": [[30, "(function process symbol)"]], + "yakow": [[29, "(function none :behavior process)"]], + "placeholder-do-not-add-below": [] } diff --git a/decompiler/config/jak1_ntsc_black_label/label_types.jsonc b/decompiler/config/jak1_ntsc_black_label/label_types.jsonc index ff53c9e3cb..c2fab39ce2 100644 --- a/decompiler/config/jak1_ntsc_black_label/label_types.jsonc +++ b/decompiler/config/jak1_ntsc_black_label/label_types.jsonc @@ -1645,7 +1645,6 @@ ["L370", "attack-info"], ["L371", "attack-info"], ["L384", "float", true], - ["L384", "float", true], ["L385", "float", true], ["L386", "float", true], ["L387", "float", true], diff --git a/decompiler/config/jak1_ntsc_black_label/stack_structures.jsonc b/decompiler/config/jak1_ntsc_black_label/stack_structures.jsonc index 21b5550e2d..eb6772b784 100644 --- a/decompiler/config/jak1_ntsc_black_label/stack_structures.jsonc +++ b/decompiler/config/jak1_ntsc_black_label/stack_structures.jsonc @@ -2245,7 +2245,11 @@ "(code nav-enemy-give-up babak)": [[16, "vector"]], - "(method 10 gui-query)": [[16, "font-context"]], + "(method 10 gui-query)": [ + [16, "font-context"], + [112, "font-context"], + [208, "font-context"] + ], "(method 46 process-taskable)": [ [16, "vector"], @@ -5492,5 +5496,7 @@ [128, "vector"] ], + "(trans fisher-done)": [[16, "font-context"]], + "placeholder-do-not-add-below!": [] } diff --git a/decompiler/config/jak1_ntsc_black_label/var_names.jsonc b/decompiler/config/jak1_ntsc_black_label/var_names.jsonc index 7abc82803d..a9dd69ef14 100644 --- a/decompiler/config/jak1_ntsc_black_label/var_names.jsonc +++ b/decompiler/config/jak1_ntsc_black_label/var_names.jsonc @@ -4054,5 +4054,11 @@ } }, + "(code ogreboss-stage1)": { + "vars": { + "s5-0": ["boulder-pickup", "pickup-type"] + } + }, + "aaaaaaaaaaaaaaaaaaaaaaa": {} } diff --git a/decompiler/config/jak1_pal.jsonc b/decompiler/config/jak1_pal.jsonc index 190e3b6b8a..9621d7d2bc 100644 --- a/decompiler/config/jak1_pal.jsonc +++ b/decompiler/config/jak1_pal.jsonc @@ -1,5 +1,8 @@ { "game_version": 1, + "text_version": 11, + "game_name": "jak1_pal", + "expected_elf_name": "SCES_503.61", // if you want to filter to only some object names. // it will make the decompiler much faster. @@ -15,7 +18,10 @@ "disassemble_code": false, // Run the decompiler - "decompile_code": true, + "decompile_code": false, + + // run the first pass of the decompiler + "find_functions": true, //////////////////////////// // DATA ANALYSIS OPTIONS @@ -27,11 +33,13 @@ "disassemble_data": false, // unpack textures to assets folder - "process_tpages": false, + "process_tpages": true, // unpack game text to assets folder - "process_game_text": false, + "process_game_text": true, // unpack game count to assets folder - "process_game_count": false, + "process_game_count": true, + // write goal imports for art groups + "process_art_groups": true, /////////////////////////// // WEIRD OPTIONS @@ -39,9 +47,6 @@ // these options are used rarely and should usually be left at false - // output a file type_defs.gc which is used for the types part of all-types.gc - "regenerate_all_types": false, - // generate the symbol_map.json file. // this is a guess at where each symbol is first defined/used. "generate_symbol_definition_map": false, @@ -56,7 +61,7 @@ "hexdump_code": false, "hexdump_data": false, // dump raw obj files - "dump_objs": false, + "dump_objs": true, // print control flow graph "print_cfgs": false, @@ -68,14 +73,44 @@ //////////////////////////// "type_casts_file": "decompiler/config/jak1_pal/type_casts.jsonc", - "anonymous_function_types_file": "decompiler/config/jak1_pal/anonymous_function_types.jsonc", - "var_names_file": "decompiler/config/jak1_pal/var_names.jsonc", + "anonymous_function_types_file": "decompiler/config/jak1_ntsc_black_label/anonymous_function_types.jsonc", + "var_names_file": "decompiler/config/jak1_ntsc_black_label/var_names.jsonc", "label_types_file": "decompiler/config/jak1_pal/label_types.jsonc", - "stack_structures_file": "decompiler/config/jak1_pal/stack_structures.jsonc", + "stack_structures_file": "decompiler/config/jak1_ntsc_black_label/stack_structures.jsonc", "hacks_file": "decompiler/config/jak1_pal/hacks.jsonc", - "inputs_file": "decompiler/config/jak1_pal/inputs.jsonc", + "inputs_file": "decompiler/config/jak1_ntsc_black_label/inputs.jsonc", + "art_info_file": "decompiler/config/jak1_ntsc_black_label/art_info.jsonc", + "import_deps_file": "decompiler/config/jak1_ntsc_black_label/import_deps.jsonc", + "all_types_file": "decompiler/config/all-types.gc", // optional: a predetermined object file name map from a file. // this will make decompilation naming consistent even if you only run on some objects. - "obj_file_name_map_file": "" + "obj_file_name_map_file": "goal_src/build/all_objs_jak1_pal.json", + + //////////////////////////// + // LEVEL EXTRACTION + //////////////////////////// + + // turn this on to extract level background graphics data + "levels_extract": true, + // turn this on if you want extracted levels to be saved out as .obj files + "levels_convert_to_obj": false, + // should we extract collision meshes? + // these can be displayed in game, but makes the .fr3 files slightly larger + "extract_collision": true, + + //////////////////////////// + // PATCHING OPTIONS + //////////////////////////// + + // these are options related to xdelta3 patches on specific objects + // this allows us to get a more consistent input + + // set to true to write new patch files + "write_patches": false, + // set to true to apply patch files + "apply_patches": true, + // what to patch an object to and the patch file is + "object_patches": { + } } diff --git a/decompiler/config/jak1_pal/anonymous_function_types.jsonc b/decompiler/config/jak1_pal/anonymous_function_types.jsonc deleted file mode 100644 index dd06f46574..0000000000 --- a/decompiler/config/jak1_pal/anonymous_function_types.jsonc +++ /dev/null @@ -1,776 +0,0 @@ -{ - "gkernel": [ - [16, "(function process symbol)"], - [22, "(function process symbol)"], - [25, "(function process symbol)"], - [28, "(function process symbol)"], - [30, "(function process symbol)"], - [32, "(function process symbol)"] - ], - - "hud": [ - [10, "(function none :behavior hud)"] - ], - - "main": [[4, "(function none :behavior process)"]], - - "process-drawable": [[29, "(function string symbol)"]], - - "task-control": [ - [9, "(function task-control symbol)"], - [10, "(function task-control symbol)"], - [11, "(function task-control symbol)"], - [12, "(function task-control symbol)"], - [13, "(function task-control symbol)"], - [14, "(function task-control symbol)"], - [15, "(function task-control symbol)"], - [16, "(function task-control symbol)"], - [17, "(function task-control symbol)"], - [18, "(function task-control symbol)"], - [19, "(function task-control symbol)"], - [20, "(function task-control symbol)"], - [21, "(function task-control symbol)"], - [22, "(function task-control symbol)"], - [23, "(function task-control symbol)"], - [24, "(function task-control symbol)"], - [25, "(function task-control symbol)"], - [26, "(function task-control symbol)"], - [27, "(function task-control symbol)"], - [28, "(function task-control symbol)"], - [29, "(function task-control symbol)"], - [30, "(function task-control symbol)"], - [31, "(function task-control symbol)"], - [32, "(function task-control symbol)"], - [33, "(function task-control symbol)"], - [34, "(function task-control symbol)"], - [35, "(function task-control symbol)"], - [36, "(function task-control symbol)"], - [37, "(function task-control symbol)"], - [38, "(function task-control symbol)"], - [39, "(function task-control symbol)"], - [40, "(function task-control symbol)"], - [41, "(function task-control symbol)"], - [42, "(function task-control symbol)"], - [43, "(function task-control symbol)"], - [44, "(function task-control symbol)"], - [45, "(function task-control symbol)"], - [46, "(function task-control symbol)"], - [47, "(function task-control symbol)"], - [48, "(function task-control symbol)"], - [49, "(function task-control symbol)"], - [50, "(function task-control symbol)"], - [51, "(function task-control symbol)"], - [52, "(function task-control symbol)"], - [53, "(function task-control symbol)"], - [54, "(function task-control symbol)"], - [55, "(function task-control symbol)"], - [56, "(function task-control symbol)"], - [57, "(function task-control symbol)"], - [58, "(function task-control symbol)"], - [59, "(function task-control symbol)"], - [60, "(function task-control symbol)"], - [61, "(function task-control symbol)"], - [62, "(function task-control symbol)"], - [63, "(function task-control symbol)"], - [64, "(function task-control symbol)"], - [65, "(function task-control symbol)"], - [66, "(function task-control symbol)"], - [67, "(function task-control symbol)"], - [68, "(function task-control symbol)"], - [69, "(function task-control symbol)"], - [70, "(function task-control symbol)"], - [71, "(function task-control symbol)"], - [72, "(function task-control symbol)"], - [73, "(function task-control symbol)"], - [74, "(function task-control symbol)"], - [75, "(function task-control symbol)"], - [76, "(function task-control symbol)"], - [77, "(function task-control symbol)"], - [78, "(function task-control symbol)"], - [79, "(function task-control symbol)"], - [80, "(function task-control symbol)"], - [81, "(function task-control symbol)"], - [82, "(function task-control symbol)"], - [83, "(function task-control symbol)"], - [84, "(function task-control symbol)"], - [85, "(function task-control symbol)"], - [86, "(function task-control symbol)"], - [87, "(function task-control symbol)"], - [88, "(function task-control symbol)"], - [89, "(function task-control symbol)"], - [90, "(function task-control symbol)"], - [91, "(function task-control symbol)"], - [92, "(function task-control symbol)"], - [93, "(function task-control symbol)"], - [94, "(function task-control symbol)"], - [95, "(function task-control symbol)"], - [96, "(function task-control symbol)"], - [97, "(function task-control symbol)"], - [98, "(function task-control symbol)"], - [99, "(function task-control symbol)"], - [100, "(function task-control symbol)"], - [101, "(function task-control symbol)"], - [102, "(function task-control symbol)"], - [103, "(function task-control symbol)"], - [104, "(function task-control symbol)"], - [105, "(function task-control symbol)"], - [106, "(function task-control symbol)"], - [107, "(function task-control symbol)"], - [108, "(function task-control symbol)"], - [109, "(function task-control symbol)"], - [110, "(function task-control symbol)"], - [111, "(function task-control symbol)"], - [112, "(function task-control symbol)"], - [113, "(function task-control symbol)"], - [114, "(function task-control symbol)"], - [115, "(function task-control symbol)"], - [116, "(function task-control symbol)"], - [117, "(function task-control symbol)"], - [118, "(function task-control symbol)"], - [119, "(function task-control symbol)"], - [120, "(function task-control symbol)"], - [121, "(function task-control symbol)"], - [122, "(function task-control symbol)"], - [123, "(function task-control symbol)"], - [124, "(function task-control symbol)"], - [125, "(function task-control symbol)"], - [126, "(function task-control symbol)"], - [127, "(function task-control symbol)"], - [128, "(function task-control symbol)"], - [129, "(function task-control symbol)"], - [130, "(function task-control symbol)"], - [131, "(function task-control symbol)"], - [132, "(function task-control symbol)"], - [133, "(function task-control symbol)"], - [134, "(function task-control symbol)"], - [135, "(function task-control symbol)"], - [136, "(function task-control symbol)"], - [137, "(function task-control symbol)"], - [138, "(function task-control symbol)"], - [139, "(function task-control symbol)"], - [140, "(function task-control symbol)"], - [141, "(function task-control symbol)"], - [142, "(function task-control symbol)"], - [143, "(function task-control symbol)"], - [144, "(function task-control symbol)"], - [145, "(function task-control symbol)"], - [146, "(function task-control symbol)"], - [147, "(function task-control symbol)"], - [148, "(function task-control symbol)"], - [149, "(function task-control symbol)"], - [150, "(function task-control symbol)"], - [151, "(function task-control symbol)"], - [152, "(function task-control symbol)"], - [153, "(function task-control symbol)"], - [154, "(function task-control symbol)"], - [155, "(function task-control symbol)"], - [156, "(function task-control symbol)"], - [157, "(function task-control symbol)"], - [158, "(function task-control symbol)"], - [159, "(function task-control symbol)"], - [160, "(function task-control symbol)"], - [161, "(function task-control symbol)"], - [162, "(function task-control symbol)"], - [163, "(function task-control symbol)"], - [164, "(function task-control symbol)"], - [165, "(function task-control symbol)"], - [166, "(function task-control symbol)"], - [167, "(function task-control symbol)"], - [168, "(function task-control symbol)"], - [169, "(function task-control symbol)"], - [170, "(function task-control symbol)"], - [171, "(function task-control symbol)"], - [172, "(function task-control symbol)"], - [173, "(function task-control symbol)"], - [174, "(function task-control symbol)"], - [175, "(function task-control symbol)"], - [176, "(function task-control symbol)"], - [177, "(function task-control symbol)"], - [178, "(function task-control symbol)"], - [179, "(function task-control symbol)"], - [180, "(function task-control symbol)"], - [181, "(function task-control symbol)"], - [182, "(function task-control symbol)"], - [183, "(function task-control symbol)"], - [184, "(function task-control symbol)"], - [185, "(function task-control symbol)"], - [186, "(function task-control symbol)"], - [187, "(function task-control symbol)"], - [188, "(function task-control symbol)"], - [189, "(function task-control symbol)"], - [190, "(function task-control symbol)"], - [191, "(function task-control symbol)"], - [192, "(function task-control symbol)"], - [193, "(function task-control symbol)"], - [194, "(function task-control symbol)"], - [195, "(function task-control symbol)"], - [196, "(function task-control symbol)"], - [197, "(function task-control symbol)"], - [198, "(function task-control symbol)"], - [199, "(function task-control symbol)"], - [200, "(function task-control symbol)"], - [201, "(function task-control symbol)"], - [202, "(function task-control symbol)"], - [203, "(function task-control symbol)"], - [204, "(function task-control symbol)"], - [205, "(function task-control symbol)"], - [206, "(function task-control symbol)"], - [207, "(function task-control symbol)"], - [208, "(function task-control symbol)"], - [209, "(function task-control symbol)"], - [210, "(function task-control symbol)"], - [211, "(function task-control symbol)"], - [212, "(function task-control symbol)"], - [213, "(function task-control symbol)"], - [214, "(function task-control symbol)"], - [215, "(function task-control symbol)"], - [216, "(function task-control symbol)"], - [217, "(function task-control symbol)"], - [218, "(function task-control symbol)"], - [219, "(function task-control symbol)"], - [220, "(function task-control symbol)"], - [221, "(function task-control symbol)"], - [222, "(function task-control symbol)"], - [223, "(function task-control symbol)"], - [224, "(function task-control symbol)"], - [225, "(function task-control symbol)"], - [226, "(function task-control symbol)"], - [227, "(function task-control symbol)"], - [228, "(function task-control symbol)"], - [229, "(function task-control symbol)"], - [230, "(function task-control symbol)"], - [231, "(function task-control symbol)"], - [232, "(function task-control symbol)"], - [233, "(function task-control symbol)"], - [234, "(function task-control symbol)"], - [235, "(function task-control symbol)"], - [236, "(function task-control symbol)"], - [237, "(function task-control symbol)"], - [238, "(function task-control symbol)"], - [239, "(function task-control symbol)"], - [240, "(function task-control symbol)"], - [241, "(function task-control symbol)"], - [242, "(function task-control symbol)"], - [243, "(function task-control symbol)"], - [244, "(function task-control symbol)"], - [245, "(function task-control symbol)"], - [246, "(function task-control symbol)"], - [247, "(function task-control symbol)"], - [248, "(function task-control symbol)"], - [249, "(function task-control symbol)"], - [250, "(function task-control symbol)"], - [251, "(function task-control symbol)"], - [252, "(function task-control symbol)"], - [253, "(function task-control symbol)"], - [254, "(function task-control symbol)"], - [255, "(function task-control symbol)"], - [256, "(function task-control symbol)"], - [257, "(function task-control symbol)"], - [258, "(function task-control symbol)"], - [259, "(function task-control symbol)"], - [260, "(function task-control symbol)"], - [261, "(function task-control symbol)"], - [262, "(function task-control symbol)"], - [263, "(function task-control symbol)"], - [264, "(function task-control symbol)"], - [265, "(function task-control symbol)"], - [266, "(function task-control symbol)"], - [267, "(function task-control symbol)"], - [268, "(function task-control symbol)"], - [269, "(function task-control symbol)"], - [270, "(function task-control symbol)"], - [271, "(function task-control symbol)"], - [272, "(function task-control symbol)"], - [273, "(function task-control symbol)"], - [274, "(function task-control symbol)"], - [275, "(function task-control symbol)"], - [276, "(function task-control symbol)"], - [277, "(function task-control symbol)"], - [278, "(function task-control symbol)"], - [279, "(function task-control symbol)"], - [280, "(function task-control symbol)"], - [281, "(function task-control symbol)"], - [282, "(function task-control symbol)"], - [283, "(function task-control symbol)"], - [284, "(function task-control symbol)"], - [285, "(function task-control symbol)"], - [286, "(function task-control symbol)"], - [287, "(function task-control symbol)"], - [288, "(function task-control symbol)"], - [289, "(function task-control symbol)"], - [290, "(function task-control symbol)"], - [291, "(function task-control symbol)"], - [292, "(function task-control symbol)"], - [293, "(function task-control symbol)"], - [294, "(function task-control symbol)"], - [295, "(function task-control symbol)"], - [296, "(function task-control symbol)"], - [297, "(function task-control symbol)"], - [298, "(function task-control symbol)"], - [299, "(function task-control symbol)"], - [300, "(function task-control symbol)"], - [301, "(function task-control symbol)"], - [302, "(function task-control symbol)"], - [303, "(function task-control symbol)"], - [304, "(function task-control symbol)"], - [305, "(function task-control symbol)"], - [306, "(function task-control symbol)"], - [307, "(function task-control symbol)"], - [308, "(function task-control symbol)"], - [309, "(function task-control symbol)"], - [310, "(function task-control symbol)"], - [311, "(function task-control symbol)"], - [312, "(function task-control symbol)"], - [313, "(function task-control symbol)"], - [314, "(function task-control symbol)"], - [315, "(function task-control symbol)"], - [316, "(function task-control symbol)"], - [317, "(function task-control symbol)"], - [318, "(function task-control symbol)"], - [319, "(function task-control symbol)"], - [320, "(function task-control symbol)"], - [321, "(function task-control symbol)"], - [322, "(function task-control symbol)"], - [323, "(function task-control symbol)"], - [324, "(function task-control symbol)"], - [325, "(function task-control symbol)"], - [326, "(function task-control symbol)"], - [327, "(function task-control symbol)"], - [328, "(function task-control symbol)"], - [329, "(function task-control symbol)"], - [330, "(function task-control symbol)"], - [331, "(function task-control symbol)"], - [332, "(function task-control symbol)"], - [333, "(function task-control symbol)"], - [334, "(function task-control symbol)"], - [335, "(function task-control symbol)"], - [336, "(function task-control task-control symbol)"], - [337, "(function task-control task-control symbol)"], - [338, "(function task-control symbol)"], - [339, "(function task-control symbol)"], - [340, "(function task-control symbol)"], - [341, "(function task-control symbol)"], - [342, "(function task-control symbol)"], - [343, "(function task-control symbol)"], - [344, "(function task-control symbol)"], - [345, "(function task-control symbol)"], - [346, "(function task-control symbol)"], - [347, "(function task-control symbol)"], - [348, "(function task-control symbol)"], - [349, "(function task-control symbol)"], - [350, "(function task-control symbol)"], - [351, "(function task-control symbol)"], - [352, "(function task-control symbol)"], - [353, "(function task-control symbol)"], - [354, "(function task-control symbol)"], - [355, "(function task-control symbol)"], - [356, "(function task-control symbol)"], - [357, "(function task-control symbol)"], - [358, "(function task-control symbol)"], - [359, "(function task-control symbol)"], - [360, "(function task-control symbol)"], - [361, "(function task-control symbol)"], - [362, "(function task-control task-control symbol)"], - [363, "(function task-control task-control symbol)"], - [364, "(function task-control task-control symbol)"], - [365, "(function task-control task-control symbol)"], - [366, "(function task-control symbol)"], - [367, "(function task-control symbol)"], - [368, "(function task-control symbol)"], - [369, "(function task-control symbol)"], - [370, "(function task-control symbol)"], - [371, "(function task-control symbol)"], - [372, "(function task-control symbol)"], - [373, "(function task-control symbol)"], - [374, "(function task-control symbol)"], - [375, "(function task-control symbol)"], - [376, "(function task-control symbol)"], - [377, "(function task-control symbol)"], - [378, "(function task-control symbol)"], - [379, "(function task-control symbol)"], - [380, "(function task-control symbol)"], - [381, "(function task-control symbol)"], - [382, "(function task-control symbol)"], - [383, "(function task-control symbol)"], - [384, "(function task-control symbol)"], - [385, "(function task-control symbol)"], - [386, "(function task-control symbol)"], - [387, "(function task-control symbol)"], - [388, "(function task-control symbol)"], - [389, "(function task-control symbol)"], - [390, "(function task-control symbol)"], - [391, "(function task-control symbol)"], - [392, "(function task-control symbol)"], - [393, "(function task-control symbol)"], - [394, "(function task-control symbol)"], - [395, "(function task-control symbol)"], - [396, "(function task-control symbol)"], - [397, "(function task-control symbol)"], - [398, "(function task-control symbol)"], - [399, "(function task-control symbol)"], - [400, "(function task-control symbol)"], - [401, "(function task-control symbol)"], - [402, "(function task-control symbol)"], - [403, "(function task-control symbol)"], - [404, "(function task-control symbol)"], - [405, "(function task-control symbol)"], - [406, "(function task-control symbol)"], - [407, "(function task-control symbol)"], - [408, "(function task-control symbol)"], - [409, "(function task-control symbol)"], - [410, "(function task-control symbol)"], - [411, "(function task-control symbol)"], - [412, "(function task-control symbol)"], - [413, "(function task-control symbol)"], - [414, "(function task-control task-control symbol)"], - [415, "(function task-control task-control symbol)"], - [416, "(function task-control symbol)"], - [417, "(function task-control symbol)"], - [418, "(function task-control symbol)"], - [419, "(function task-control symbol)"], - [420, "(function task-control symbol)"], - [421, "(function task-control symbol)"], - [422, "(function task-control symbol)"], - [423, "(function task-control symbol)"], - [424, "(function task-control symbol)"], - [425, "(function task-control task-control symbol)"], - [426, "(function task-control task-control symbol)"], - [427, "(function task-control symbol)"], - [428, "(function task-control symbol)"], - [429, "(function task-control symbol)"], - [430, "(function task-control symbol)"], - [431, "(function task-control symbol)"], - [432, "(function task-control task-control symbol)"], - [433, "(function task-control task-control symbol)"], - [434, "(function task-control task-control symbol)"], - [435, "(function task-control symbol)"], - [436, "(function task-control task-control symbol)"], - [437, "(function task-control task-control symbol)"], - [438, "(function task-control task-control symbol)"], - [439, "(function task-control symbol)"], - [440, "(function task-control symbol)"], - [441, "(function task-control symbol)"], - [442, "(function task-control symbol)"], - [443, "(function task-control task-control symbol)"], - [444, "(function task-control task-control symbol)"], - [445, "(function task-control symbol)"], - [446, "(function task-control task-control symbol)"], - [447, "(function task-control task-control symbol)"], - [448, "(function task-control task-control symbol)"], - [449, "(function task-control symbol)"], - [450, "(function task-control symbol)"], - [451, "(function task-control symbol)"], - [452, "(function task-control symbol)"], - [453, "(function task-control task-control symbol)"], - [454, "(function task-control task-control symbol)"], - [455, "(function task-control symbol)"], - [456, "(function task-control task-control symbol)"], - [457, "(function task-control task-control symbol)"], - [458, "(function task-control task-control symbol)"], - [459, "(function task-control symbol)"], - [460, "(function task-control symbol)"], - [461, "(function task-control symbol)"], - [462, "(function task-control symbol)"], - [463, "(function task-control symbol)"], - [464, "(function task-control symbol)"], - [465, "(function task-control symbol)"], - [466, "(function task-control symbol)"], - [467, "(function task-control symbol)"], - [468, "(function task-control symbol)"], - [469, "(function task-control symbol)"], - [470, "(function task-control symbol)"], - [471, "(function task-control symbol)"], - [472, "(function task-control symbol)"], - [473, "(function task-control symbol)"], - [474, "(function task-control task-control symbol)"], - [475, "(function task-control task-control symbol)"], - [476, "(function task-control task-control symbol)"], - [477, "(function task-control task-control symbol)"], - [478, "(function task-control symbol)"], - [479, "(function task-control symbol)"], - [480, "(function task-control symbol)"], - [481, "(function task-control symbol)"], - [482, "(function task-control symbol)"], - [483, "(function task-control symbol)"], - [484, "(function task-control symbol)"], - [485, "(function task-control symbol)"], - [486, "(function task-control symbol)"], - [487, "(function task-control symbol)"], - [488, "(function task-control symbol)"], - [489, "(function task-control symbol)"], - [490, "(function task-control symbol)"], - [491, "(function task-control symbol)"], - [492, "(function task-control symbol)"], - [493, "(function task-control symbol)"], - [494, "(function task-control symbol)"], - [495, "(function task-control symbol)"], - [496, "(function task-control symbol)"] - ], - - "game-info": [ - [17, "(function symbol symbol continue-point symbol none)"], - [6, "(function process-drawable none)"], - [7, "(function none :behavior process-drawable)"], - [8, "(function object)"] - ], - - "default-menu": [ - [3, "(function none)"], - [4, "(function int int symbol)"], // TODO - first arg is ignored - i think there's a decomp bug here - [5, "(function int int symbol)"], // TODO - first arg is ignored - [6, "(function int int target)"], // TODO - first arg is ignored - [8, "(function int)"], - [9, "(function continue-point)"], - [10, "(function none)"], - [11, "(function object)"], - [12, "(function object)"], - [13, "(function object)"], - [14, "(function quaternion)"], - [15, "(function quaternion)"], - [16, "(function int int basic)"], // TODO - first arg is ignored - [17, "(function int)"], - [18, "(function int)"], - [19, "(function int)"], - [20, "(function none)"], - [21, "(function int int basic)"], // TODO - first arg is ignored - [22, "(function int int basic)"], // TODO - first arg is ignored - [23, "(function int int basic)"], // TODO - first arg is ignored - [24, "(function int int float float)"], // TODO - first arg is ignored - [25, "(function int int float float)"], // TODO - first arg is ignored - [26, "(function int int float float)"], // TODO - first arg is ignored - [27, "(function int int target)"], // TODO - first arg is ignored - [28, "(function none)"], - [29, "(function none)"], - [30, "(function none)"], - [31, "(function none)"], - [32, "(function none)"], - [33, "(function none)"], - [34, "(function int)"], - [35, "(function int)"], - [60, "(function debug-menu int float float object)"], // TODO - instance type blocking this one, not 100% sure about the debug-menu, but it has a string at offset 0 - [61, "(function debug-menu int float float object)"], // TODO - instance type blocking this one, not 100% sure about the debug-menu, but it has a string at offset 0 - [63, "(function symbol int int basic object)"], // TODO - i don't know the first (is a basic/struct with an int32 at offset 0) and a3 is a default return value it seems - [64, "(function symbol int int basic object)"], // TODO - i don't know the first (is a basic/struct with an int32 at offset 0) and a3 is a default return value it seems - [65, "(function symbol int int basic object)"], // TODO - i don't know the first (is a basic/struct with an int32 at offset 0) and a3 is a default return value it seems - [66, "(function symbol int int basic object)"], // TODO - i don't know the first (is a basic/struct with an int32 at offset 0) and a3 is a default return value it seems - [67, "(function symbol int int basic object)"], // TODO - i don't know the first (is a basic/struct with an int32 at offset 0) and a3 is a default return value it seems - [68, "(function symbol int int basic object)"], // TODO - i don't know the first (is a basic/struct with an int32 at offset 0) and a3 is a default return value it seems - [69, "(function symbol int int basic object)"], // TODO - i don't know the first (is a basic/struct with an int32 at offset 0) and a3 is a default return value it seems - [70, "(function symbol int int basic object)"], // TODO - i don't know the first (is a basic/struct with an int32 at offset 0) and a3 is a default return value it seems - [71, "(function symbol int int basic object)"], // TODO - i don't know the first (is a basic/struct with an int32 at offset 0) and a3 is a default return value it seems - [72, "(function symbol int int basic object)"], // TODO - i don't know the first (is a basic/struct with an int32 at offset 0) and a3 is a default return value it seems - [73, "(function symbol int int basic object)"], // TODO - i don't know the first (is a basic/struct with an int32 at offset 0) and a3 is a default return value it seems - [74, "(function symbol int int basic object)"], // TODO - i don't know the first (is a basic/struct with an int32 at offset 0) and a3 is a default return value it seems - [75, "(function symbol int int basic object)"], // TODO - i don't know the first (is a basic/struct with an int32 at offset 0) and a3 is a default return value it seems - [76, "(function symbol int int basic object)"], // TODO - i don't know the first (is a basic/struct with an int32 at offset 0) and a3 is a default return value it seems - [77, "(function symbol int int basic object)"], // TODO - i don't know the first (is a basic/struct with an int32 at offset 0) and a3 is a default return value it seems - [78, "(function symbol int int basic object)"], // TODO - i don't know the first (is a basic/struct with an int32 at offset 0) and a3 is a default return value it seems - [79, "(function symbol int int basic object)"], // TODO - i don't know the first (is a basic/struct with an int32 at offset 0) and a3 is a default return value it seems - [80, "(function object)"], - [81, "(function object)"], - [82, "(function symbol int float float none)"], // TODO - i don't know the first (is a basic/struct with an int32 at offset 0) - [84, "(function symbol int none)"], // TODO - i don't know the first (is a basic/struct with an int32 at offset 0) - [88, "(function debug-menu debug-menu symbol)"], // not 100% sure about the debug-menu, but it has a string at offset 0 - [89, "(function debug-menu debug-menu symbol)"], // not 100% sure about the debug-menu, but it has a string at offset 0 - [90, "(function debug-menu debug-menu symbol)"] // not 100% sure about the debug-menu, but it has a string at offset 0 - ], - - "memory-usage": [ - [3, "(function basic symbol)"], - [2, "(function process symbol)"] - ], - - "anim-tester": [ - [11, "(function none :behavior anim-tester)"], - [12, "(function none :behavior anim-tester)"], - [13, "(function none :behavior anim-tester)"] - ], - - "cam-combiner": [ - [1, "(function none :behavior camera-combiner)"], - [2, "(function basic int basic event-message-block object :behavior camera-combiner)"] - ], - - "title-obs": [ - [0, "(function none)"] - ], - - "misty-warehouse": [ - [3, "(function symbol none :behavior silostep)"], - [4, "(function none :behavior silostep)"], - [6, "(function none :behavior camera-tracker)"], - [7, "(function none :behavior silostep)"], - [8, "(function process int symbol event-message-block none :behavior silostep)"] - ], - - "rigid-body": [ - [5, "(function none :behavior rigid-body-platform)"], - [6, "(function none :behavior rigid-body-platform)"], - [7, "(function none :behavior rigid-body-platform)"], - [8, "(function none :behavior rigid-body-platform)"] - ], - - "sunken-elevator": [ - [3, "(function object :behavior sunken-elevator)"], - [4, "(function int :behavior sunken-elevator)"], - [5, "(function symbol :behavior sunken-elevator)"], - [6, "(function int :behavior sunken-elevator)"] - ], - - "nav-enemy": [ - [8, "(function none :behavior nav-enemy)"], - [9, "(function none)"], // stubbed - [10, "(function uint :behavior nav-enemy)"], - [11, "(function object :behavior nav-enemy)"], - [12, "(function none :behavior nav-enemy)"], - [13, "(function object :behavior nav-enemy)"], - [14, "(function uint :behavior nav-enemy)"], - [15, "(function object :behavior nav-enemy)"], - [16, "(function object :behavior nav-enemy)"], - [17, "(function vector :behavior nav-enemy)"], - [19, "(function object :behavior nav-enemy)"], - [20, "(function uint :behavior nav-enemy)"], - [21, "(function none :behavior nav-enemy)"], - [28, "(function symbol :behavior nav-enemy)"], - [29, "(function symbol :behavior nav-enemy)"], - [30, "(function object :behavior nav-enemy)"], - [31, "(function object :behavior nav-enemy)"], - [32, "(function vector :behavior nav-enemy)"], - [33, "(function object :behavior nav-enemy)"], - [34, "(function object :behavior nav-enemy)"], - [35, "(function object :behavior nav-enemy)"], - [36, "(function uint :behavior nav-enemy)"], - [37, "(function object :behavior nav-enemy)"], - [38, "(function object :behavior nav-enemy)"], - [39, "(function uint :behavior nav-enemy)"], - [40, "(function vector :behavior nav-enemy)"], - [41, "(function none :behavior nav-enemy)"], - [42, "(function object :behavior nav-enemy)"], - [43, "(function uint :behavior nav-enemy)"], - [44, "(function none :behavior nav-enemy)"], - [45, "(function object :behavior nav-enemy)"], - [46, "(function none :behavior nav-enemy)"], - [50, "(function none :behavior nav-enemy)"], - [51, "(function object :behavior nav-enemy)"], - [52, "(function uint :behavior nav-enemy)"], - [54, "(function object :behavior nav-enemy)"], - [55, "(function uint :behavior nav-enemy)"], - [56, "(function none :behavior nav-enemy)"], - [57, "(function object :behavior nav-enemy)"], - [58, "(function uint :behavior nav-enemy)"], - [59, "(function uint :behavior nav-enemy)"], - [60, "(function none :behavior nav-enemy)"], - [61, "(function object :behavior nav-enemy)"], - [62, "(function int :behavior nav-enemy)"] - ], - - "oracle": [ - [1, "(function sparticle-launch-group :behavior oracle)"], - [2, "(function sparticle-launch-group :behavior oracle)"], - [3, "(function none :behavior oracle)"] - ], - - "time-of-day": [ - [10, "(function none :behavior time-of-day-proc)"], - [12, "(function sparticle-system sparticle-cpuinfo none)"] - ], - - "basebutton": [ - [1, "(function symbol :behavior target)"] - ], - - "entity": [ - [10, "(function process-drawable none)"] - ], - - "beach-rocks": [ - [2, "(function none :behavior beach-rock)"], - [3, "(function none :behavior beach-rock)"], - [4, "(function none :behavior beach-rock)"], - [5, "(function none :behavior beach-rock)"], - [6, "(function none :behavior beach-rock)"], - [7, "(function process int symbol event-message-block none :behavior beach-rock)"] - ], - - "projectiles": [ - [27, "(function projectile int)"] - ], - - "sidekick-human": [ - [7, "(function sparticle-launch-control :behavior sequenceC)"], - [15, "(function sparticle-launch-control :behavior sequenceB)"], - [16, "(function sparticle-launch-control :behavior sequenceB)"] - ], - - "demo-obs": [ - [1, "(function target)"] - ], - - "final-door": [ - [11, "(function final-door symbol)"], - [12, "(function final-door symbol)"] - ], - - "plat-eco": [ - [4, "(function none :behavior plat-eco)"], // trans - [5, "(function int float :behavior plat-eco)"], // enter - [6, "(function none :behavior plat-eco)"], // post - [7, "(function handle none :behavior plat-eco)"], // code - [8, "(function none :behavior plat-eco)"], // trans - [9, "(function process int symbol event-message-block object :behavior plat-eco)"], // event - [10, "(function symbol :behavior plat-eco)"], // code - [11, "(function none :behavior plat-eco)"], // trans - [12, "(function int :behavior plat-eco)"], // enter - [13, "(function process int symbol event-message-block object :behavior plat-eco)"] // event - ], - - "plat-flip": [ - [1, "(function none :behavior plat-flip)"], // code - [2, "(function process int symbol event-message-block object :behavior plat-flip)"] // event - ], - - "flying-lurker": [ - [37, "(function uint :behavior manipy)"], - [12, "(function uint :behavior manipy)"], - [11, "(function none :behavior process)"] - ], - - "ambient": [ - [29, "(function process int symbol event-message-block object :behavior level-hint)"] - ], - - "process-taskable": [ - [46, "(function process-taskable symbol)"] - ], - - "fishermans-boat": [ - [5, "(function none :behavior fishermans-boat)"], - [21, "(function none :behavior fishermans-boat)"], - [29, "(function none :behavior fishermans-boat)"] - ], - - "muse": [ - [3, "(function none :behavior muse)"] - ], - - "relocate": [ - [6, "(function sparticle-system sparticle-cpuinfo none)"] - ], - - "yakow": [ - [29, "(function none)"] - ], - - "fisher": [ - [27, "(function none :behavior process)"], - [28, "(function none :behavior fisher)"], - [20, "(function none :behavior fisher-fish)"], - [1, "(function none :behavior target)"] - ], - - "robotboss-misc": [ - [5, "(function sparticle-launch-control :behavior finalbosscam)"] - ], - - "placeholder-do-not-add-below": [] -} diff --git a/decompiler/config/jak1_pal/hacks.jsonc b/decompiler/config/jak1_pal/hacks.jsonc index 3193f29140..4c8465a0ac 100644 --- a/decompiler/config/jak1_pal/hacks.jsonc +++ b/decompiler/config/jak1_pal/hacks.jsonc @@ -18,7 +18,8 @@ "cond_with_else_max_lengths": [ ["(method 20 res-lump)", "b0", 2], ["(method 11 res-lump)", "b0", 1], - ["(method 12 res-lump)", "b0", 1] + ["(method 12 res-lump)", "b0", 1], + ["(method 31 progress)", "b35", 1] ], // if a cond with an else case is being used a value in a place where it looks wrong @@ -94,6 +95,9 @@ "vif1-handler", // F: weird asm for interrupt handler "vif1-handler-debug", + // texture + "adgif-shader<-texture!", + // vector "vector=", // asm branching @@ -127,13 +131,7 @@ "ripple-execute-init", // bones - "draw-bones-hud", - "draw-bones", - "draw-bones-check-longest-edge-asm", - "draw-bones-merc", - "bones-mtx-calc-execute", "bones-mtx-calc", - "texscroll-execute", // generic-effect "generic-debug-light-proc", @@ -143,11 +141,8 @@ "generic-envmap-only-proc", "generic-no-light", "generic-no-light+envmap", - "generic-no-light-dproc", "generic-no-light-dproc-only", "generic-no-light-proc", - "generic-interp-dproc", - "generic-envmap-dproc", "generic-prepare-dma-single", "generic-prepare-dma-double", "generic-envmap-proc", @@ -156,8 +151,7 @@ "upload-vu0-program", // generic-merc - "generic-merc-execute-all", - "generic-merc-execute-asm", + "generic-merc-execute-asm", // CFG "high-speed-reject", "mercneric-convert", "mercneric-bittable-asm", @@ -166,14 +160,11 @@ "generic-merc-init-asm", // generic-tie - "generic-tie-convert", "generic-tie-convert-proc", "generic-tie-upload-next", "generic-tie-decompress", - "generic-tie-dma-to-spad-sync", // shadow-cpu - "shadow-execute", "shadow-add-double-edges", "shadow-add-double-tris", "shadow-add-single-edges", @@ -194,8 +185,7 @@ "draw-node-cull", // shrubbery - "test-func", - "draw-inline-array-instance-shrub", + "draw-inline-array-instance-shrub", // CFG // tfrag "stats-tfrag-asm", @@ -205,8 +195,6 @@ // tie-methods "draw-inline-array-prototype-tie-near-asm", "draw-inline-array-prototype-tie-asm", - "draw-inline-array-prototype-tie-generic-asm", - "draw-inline-array-instance-tie", // sparticle-launcher "sp-init-fields!", @@ -234,139 +222,35 @@ "draw-boundary-polygon", // collide-probe - "collide-probe-instance-tie", - "collide-probe-node", - - // collide-mesh - "(method 10 collide-mesh)", - "(method 13 collide-mesh)", - "(method 9 collide-mesh-cache)", - "(method 15 collide-mesh)", - "(method 14 collide-mesh)", - "(method 11 collide-mesh)", - "(method 12 collide-mesh)", + "collide-probe-instance-tie", // CFG + "collide-probe-node", // CFG // collide-edge-grab - "(method 13 collide-edge-work)", - "(method 17 collide-edge-work)", - "(method 15 collide-edge-work)", - "(method 16 collide-edge-work)", - "(method 9 edge-grab-info)", // maybe bug - "(method 18 collide-edge-work)", - "(method 10 collide-edge-hold-list)", + "(method 15 collide-edge-work)", // CFG - // collide-shape - "(method 15 collide-shape-prim-mesh)", // BUG: - "(method 15 collide-shape-prim-sphere)", // BUG: - "(method 16 collide-shape-prim)", - "(method 15 collide-shape-prim-group)", - "(method 45 collide-shape)", - "(method 28 collide-shape-prim-mesh)", // BUG: - "(method 29 collide-shape-prim-group)", - "(method 20 collide-shape-prim-group)", - "(method 19 collide-shape-prim-sphere)", - "(method 18 collide-shape-prim-sphere)", - "(method 23 collide-shape-prim-sphere)", - "(method 23 collide-shape-prim-mesh)", // BUG: maybe - "(method 24 collide-shape-prim)", - "(method 23 collide-shape-prim-group)", - "(method 42 collide-shape)", - - // collide-shape-rider - "(method 35 collide-shape)", - - // cam-master BUG - "master-is-hopeful-better?", - - // cam-layout BUG - "cam-layout-save-cam-trans", + "(method 12 collide-mesh)", // process-drawable BUG - "cspace-inspect-tree", // BUG: - "process-drawable-birth-fuel-cell", // BUG: - "(method 19 process-drawable)", + "cspace-inspect-tree", + //"(method 19 process-drawable)", // ambient "ambient-inspect", - // generic-obs BUG - "camera-change-to", - - // target BUG - "target-falling-anim-trans", - // target2 BUG - "(anon-function 33 target2)", // BUG: - "(anon-function 67 target2)", // BUG: - "look-for-points-of-interest", - - // drawable-tree - "(method 16 drawable-tree)", + "look-for-points-of-interest", // Failed to split nested sc - looks like dead code to me // collide-cache - "(method 10 collide-puss-work)", - "(method 9 collide-puss-work)", - "(method 19 collide-cache)", - "(method 10 collide-cache-prim)", - "(method 9 collide-cache-prim)", - "(method 30 collide-cache)", - "(method 13 collide-shape-prim-group)", - "(method 13 collide-shape-prim-sphere)", - "(method 13 collide-shape-prim-mesh)", - "(method 14 collide-shape-prim-group)", - "(method 14 collide-shape-prim-sphere)", - "(method 14 collide-shape-prim-mesh)", - "(method 12 collide-shape-prim-group)", // BUG: maybe - "(method 12 collide-shape-prim-sphere)", - "(method 12 collide-shape-prim-mesh)", - "(method 29 collide-cache)", - "(method 27 collide-cache)", - "(method 14 collide-cache)", - "(method 28 collide-cache)", - "(method 26 collide-cache)", - "(method 21 collide-cache)", - "(method 32 collide-cache)", - - // memory-usage BUG - //"(method 14 level)", - - // navigate BUG - "(method 32 nav-control)", - - // collectables BUG - "add-blue-motion", + "(method 10 collide-puss-work)", // CFG + "(method 9 collide-puss-work)", // decompiler crash + "(method 32 collide-cache)", // CFG // ocean - "draw-large-polygon-ocean", + "draw-large-polygon-ocean", // CFG // ocean-vu0 - "ocean-generate-verts", - "ocean-interp-wave", - - // nav-enemy BUG - // "(anon-function 28 nav-enemy)", - - // orb-cache BUG - "(method 27 orb-cache-top)", - - // ropebridge BUG - "(method 27 ropebridge)", - - // all unchecked and in level DGO code - "(anon-function 21 plant-boss)", - "(anon-function 10 ice-cube)", - "(anon-function 15 ice-cube)", - "(anon-function 45 lavatube-energy)", - "mistycannon-find-best-solution", - "target-flut-falling-anim-trans", - "kermit-check-to-hit-player?", - "(anon-function 6 title-obs)", - "(anon-function 36 mistycannon)", - "(anon-function 43 maincave-obs)", - "(anon-function 2 target-tube)", - "(anon-function 5 orbit-plat)", - "(anon-function 2 ogreboss)" - + "ocean-generate-verts", // crash + "ocean-interp-wave" ], // these functions use pairs and the decompiler @@ -412,7 +296,17 @@ "(method 21 swamp-rat-nest-dummy-a)", "(method 21 swamp-rat-nest-dummy-b)", "(method 21 swamp-rat-nest-dummy-c)", - "(method 27 battlecontroller)" + "(method 27 battlecontroller)", + "load-boundary-from-template", + "command-get-time", + "command-get-param", + "command-get-quoted-param", + "command-get-trans", + "command-get-camera", + "(method 14 camera-tracker)", + "(enter billy-playing)", + "(code target-continue)", + "next-level" ], // If format is used with the wrong number of arguments, @@ -437,11 +331,13 @@ " pris-geo ~192H~5DK ~280Hpris-fragment~456H~5DK~%": 2, " pris-anim ~192H~5DK ~280Hpris-generic~456H~5DK~%": 2, " textures ~192H~5DK ~280Htextures~456H~5DK~%": 2, - " entity ~192H~5DK~%": 2, + " entity ~192H~5DK~%": 1, " misc ~192H~5DK ~280Hsprite~456H~5DK~%": 2, "ERROR: ~A in spool anim loop for ~A ~D, but not loaded.~": 3, "~0k~5d/~d ~6d/~d ~6d/~d ": 6, - "~0k~s~%": 1 + "~0k~s~%": 1, + "money ~A was killed in pickup~%": 0, + " id address name aid tsk lev status x y z address name state heap flags~%": 3 }, "blocks_ending_in_asm_branch": { @@ -449,25 +345,12 @@ // this one is all asm branches "circle-circle-xz-intersect": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14 + 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 ], "find-knot-span": [0, 1, 2, 3, 5, 6, 7, 8, 9], - "curve-evaluate!": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], + "curve-evaluate!": [0, 2, 5, 6, 7, 8, 9], "(method 9 texture-page-dir)": [4, 5], @@ -475,7 +358,7 @@ "display-loop": [44, 49, 66, 99], - "load-game-text-info": [12, 13, 14, 18], + "load-game-text-info": [12, 13, 14, 16, 17, 18], "real-main-draw-hook": [75, 77], @@ -489,19 +372,116 @@ "start-perf-stat-collection": [26], "end-perf-stat-collection": [0], "sprite-draw-distorters": [4, 5], - "draw-string":[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189], - "get-string-length":[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50], - "unpack-comp-rle":[1, 3, 5, 6], - "(method 16 level)":[ 1, 5, 13, 14, 15, 19, 26, 53], - "unpack-comp-huf":[2, 4, 5, 6, 7, 8, 9], - "blerc-execute":[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33], - "(method 11 fact-info-target)":[42], - "(anon-function 9 game-save)":[3, 4, 5, 6, 7, 8], + "draw-string": [ + 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, + 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, + 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, + 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, + 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, + 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, + 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, + 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, + 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, + 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185, 186, 187, 188, 189 + ], + "get-string-length": [ + 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, + 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, + 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50 + ], + "unpack-comp-rle": [1, 3, 5, 6], + "(method 16 level)": [1, 5, 13, 14, 15, 19, 26, 53], + "unpack-comp-huf": [2, 4, 5, 6, 7, 8, 9], + "blerc-execute": [ + 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, + 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33 + ], + "(method 11 fact-info-target)": [42], + "(anon-function 9 game-save)": [3, 4, 5, 6, 7, 8, 10], //"(anon-function 9 game-save)":[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14], - "particle-adgif":[0, 1, 2, 3, 4, 5, 7], - "sp-launch-particles-var":[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66], - "(method 11 sparticle-launch-control)": [ 27, 28, 35, 46, 48, 49, 77], - "upload-vis-bits":[0,1,2,3,4,5, 6] + "particle-adgif": [0, 1, 2, 3, 4, 5, 7], + "sp-launch-particles-var": [ + 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, + 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, + 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, + 57, 58, 59, 60, 61, 62, 63, 64, 65, 66 + ], + "(method 11 sparticle-launch-control)": [27, 28, 38, 49, 51, 52, 80], + "upload-vis-bits": [0, 1, 2, 3, 4, 5, 6], + + "draw-drawable-tree-tfrag": [6, 8, 13, 15], + "draw-drawable-tree-trans-tfrag": [6, 8, 13, 15], + "draw-drawable-tree-dirt-tfrag": [6, 8, 13, 15], + "draw-drawable-tree-ice-tfrag": [6, 8, 13, 15], + "draw-drawable-tree-instance-tie": [10, 12, 18, 20, 26, 28, 37, 39], + "draw-drawable-tree-instance-shrub": [5, 7, 9, 11], + + "birth-pickup-at-point": [0], + "draw-bones": [0, 1, 2, 8, 81], + "draw-bones-hud": [7, 8], + "(method 16 drawable-tree)": [7, 9, 10], + "(method 21 collide-cache)": [3, 5, 19, 20, 24, 25, 28, 29], + "(method 14 collide-cache)": [0, 1, 2, 3, 4, 5], + "(method 9 collide-mesh-cache)": [0, 1, 2, 5], + "(method 42 collide-shape)": [0, 1, 2, 3, 4, 7], + "(method 23 collide-shape-prim-group)": [1, 2, 3, 4, 5], + "(method 23 collide-shape-prim-mesh)": [ + 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 + ], + "(method 23 collide-shape-prim-sphere)": [ + 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 + ], + "(method 18 collide-shape-prim-sphere)": [1, 3, 4, 5, 7], + "(method 45 collide-shape)": [0, 16, 42, 67, 92], + "(method 24 collide-shape-prim)": [2, 3, 4, 5, 1], + "(method 20 collide-shape-prim-group)": [11], + "(method 28 collide-shape-prim-mesh)": [10], + "(method 40 collide-shape)": [0, 2, 5, 6, 7, 11, 12, 28, 43, 58, 63], + "(method 15 collide-shape-prim-group)": [1, 2, 3, 4, 5, 6], + "(method 16 collide-shape-prim)": [1, 2, 3, 4, 5, 6], + "(method 15 collide-shape-prim-sphere)": [ + 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19 + ], + "(method 15 collide-shape-prim-mesh)": [ + 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 29 + ], + "(method 35 collide-shape)": [1], + "(method 22 collide-cache)": [2, 3, 4, 13, 14, 15, 23, 24, 25, 33, 34, 35], + "(method 12 collide-shape-prim-sphere)": [0, 1], + "(method 12 collide-shape-prim-group)": [1, 2, 3, 4], + "(method 24 collide-cache)": [2, 3, 4, 13, 14, 15, 23, 24, 25, 33, 34, 35], + "(method 14 collide-shape-prim-sphere)": [0, 1, 2, 3], + "(method 14 collide-shape-prim-group)": [0, 1, 2, 3, 4], + "(method 23 collide-cache)": [2, 3, 4, 13, 14, 15, 23, 24, 25, 33, 34, 35], + "(method 13 collide-shape-prim-sphere)": [0, 1, 2], + "(method 13 collide-shape-prim-group)": [0, 1, 2, 3, 4], + "(method 19 collide-cache)": [0, 1, 3, 4, 5, 18, 19], + "(method 10 collide-mesh)": [1, 2, 4, 5], + "(method 19 process-drawable)": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13], + "(anon-function 9 racer)": [75], + "(method 13 collide-edge-work)": [0, 2], + "(method 17 collide-edge-work)": [0, 1, 2, 3, 4], + "(method 9 edge-grab-info)": [15, 16, 18, 19, 21, 22, 24], + // "(method 18 collide-edge-work)" : [1, 2, 3, 4, 5, 6, 8, 9, 10, 11, 12, 13, 14, 16, 17, 18, 19, 20, 21, 22, 23, 24], + "target-falling-anim-trans": [5, 6], + "(method 27 nav-mesh)": [8], + "(method 32 nav-control)": [12, 21, 32], + "start-collect-nav": [0], + "end-collect-nav": [0], + "robotboss-always-trans": [9, 10, 11, 12, 13, 14, 15, 18, 29, 36, 45, 48], + "target-flut-falling-anim-trans": [5, 6], + "(method 27 ropebridge)": [5, 7], + "(anon-function 5 orbit-plat)": [4, 5, 11], + "(anon-function 21 plant-boss)": [0, 1, 3, 4], + "(method 55 ram-boss)": [5], + "(method 60 ice-cube)": [8], + "(anon-function 2 snow-ball)": [22], + "draw-bones-merc": [1, 3, 5, 7, 8, 10, 11, 12, 13], + "(anon-function 48 lavatube-energy)": [13], + "generic-tie-execute": [4, 9], + "generic-merc-execute-all": [3, 7, 12] }, // Sometimes the game might use format strings that are fetched dynamically, @@ -510,37 +490,26 @@ // e.g. "function-name":[[op, argc], [op, argc], ...] // where "op" is the op number for the call to format. "dynamic_format_arg_counts": { - "(method 35 progress)":[ + "(method 35 progress)": [ [44, 1], [92, 1] ], - "(method 49 progress)":[ - [35, 1] - ], - "(method 37 progress)":[ - [41, 1] - ], - "(method 38 progress)":[ - [106, 1] - ], - "(method 39 progress)":[ + "(method 49 progress)": [[35, 1]], + "(method 37 progress)": [[41, 1]], + "(method 38 progress)": [[106, 1]], + "(method 39 progress)": [ [56, 1], [83, 1] ], - "(method 41 progress)":[ - [73, 1] - ], - "(method 42 progress)":[ - [41, 1] - ], - "(method 43 progress)":[ + "(method 41 progress)": [[73, 1]], + "(method 42 progress)": [[41, 1]], + "(method 43 progress)": [ [51, 1], [94, 1] - ], - "":[] + ] }, - "mips2c_functions_by_name":[ + "mips2c_functions_by_name": [ "sp-init-fields!", "particle-adgif", "sp-launch-particles-var", @@ -553,8 +522,155 @@ "render-sky-tri", "init-sky-regs", "set-tex-offset", - "adgif-shader<-texture-with-update!" + "adgif-shader<-texture-with-update!", + "init-boundary-regs", + "draw-boundary-polygon", + "render-boundary-quad", + "render-boundary-tri", + "draw-inline-array-tfrag", + "stats-tfrag-asm", + "time-of-day-interp-colors-scratch", + "normalize-frame-quaternions", + "collide-do-primitives", + "moving-sphere-triangle-intersect", + "(method 12 collide-mesh)", + "(method 11 collide-mesh)", + "collide-probe-node", + "collide-probe-instance-tie", + "(method 32 collide-cache)", + "(method 28 collide-cache)", + "(method 26 collide-cache)", + "(method 27 collide-cache)", + "(method 29 collide-cache)", + "(method 12 collide-shape-prim-mesh)", + "(method 14 collide-shape-prim-mesh)", + "(method 13 collide-shape-prim-mesh)", + "(method 30 collide-cache)", + "(method 9 collide-cache-prim)", + "(method 10 collide-cache-prim)", + "(method 9 collide-puss-work)", + "(method 10 collide-puss-work)", + + // these could easily be goal, but probably faster/easier this way. + "(method 14 collide-mesh)", + "(method 15 collide-mesh)", + + "(method 16 collide-edge-work)", + "(method 10 collide-edge-hold-list)", + "(method 15 collide-edge-work)", + "(method 18 collide-edge-work)", + "normalize-frame-quaternions", + "calc-animation-from-spr", + "clear-frame-accumulator", + "bones-mtx-calc", + "cspace<-parented-transformq-joint!", + "draw-bones-merc", + "draw-bones-check-longest-edge-asm", + "setup-blerc-chains-for-one-fragment", + "blerc-execute", + + "generic-merc-execute-asm", + "high-speed-reject", + "mercneric-convert", + "mercneric-bittable-asm", + "mercneric-shader-asm", + "mercneric-matrix-asm", + "generic-merc-init-asm", + "generic-prepare-dma-double", + "generic-light-proc", + "generic-envmap-proc", + "draw-bones-generic-merc", + "generic-prepare-dma-single", + + "ripple-matrix-scale", + "ripple-apply-wave-table", + "ripple-create-wave-table", + "ripple-execute-init", + + // ocean + "init-ocean-far-regs", + "draw-large-polygon-ocean", + "render-ocean-quad", + "ocean-generate-verts", + "ocean-interp-wave", + + // shadow + "shadow-execute", + "shadow-add-double-edges", + "shadow-add-double-tris", + "shadow-add-single-edges", + "shadow-add-facing-single-tris", + "shadow-add-verts", + "shadow-find-double-edges", + "shadow-find-facing-double-tris", + "shadow-find-single-edges", + "shadow-find-facing-single-tris", + "shadow-init-vars", + "shadow-scissor-top", + "shadow-scissor-edges", + "shadow-calc-dual-verts", + "shadow-xform-verts", + + // generic tie + "draw-inline-array-instance-tie", + "generic-tie-dma-to-spad-sync", + "draw-inline-array-prototype-tie-generic-asm", + "generic-interp-dproc", + "generic-no-light-dproc", + "generic-envmap-dproc", + "generic-tie-convert" + ], + + "mips2c_jump_table_functions": { + "decompress-fixed-data-to-accumulator": [ + 108, 199, 233, 286, 301, 366, 387, 100, 155, 199, 261, 286, 335, 366, 402, + 100 + ], + "decompress-frame-data-to-accumulator": [ + 84, 92, 119, 140, 205, 220, 273, 307, 84, 107, 119, 174, 205, 248, 273, + 354 + ], + "decompress-frame-data-pair-to-accumulator": [ + 117, 125, 169, 197, 293, 318, 408, 459, 117, 150, 169, 248, 293, 366, 408, + 533 + ] + }, + + // there are some missing textures. I don't know what the game actually does here. + // the format for entries is [level, tpage, index] + "missing_textures": [["finalboss", 1419, 3]], + + // some object files have garbage pad data at the end which makes the decompiler + // assume they must be different files, such as the art group for orb-cache-top. + // this just suppresses a message. + "expected_merged_objs": [ + "orb-cache-top-ag", + "ecovalve-ag", + "barrel-ag", + "sack-ag", + "sharkey-ag", + "warp-gate-switch-ag", + "baby-spider-ag", + "cavetrapdoor-ag", + "spider-egg-ag", + "darkvine-ag", + "jng-iris-door-ag", + "eichar-fish+0-ag", + "launcherdoor-ag", + "plat-eco-ag", + "eichar-tube+0-ag", + "eichar-pole+0-ag", + "crate-darkeco-cluster-ag", + "ef-plane-ag", + "racer-ag", + "flut-saddle-ag", + "shover-ag", + "steam-cap-ag", + "sunkencam-ag", + "swampcam-ag", + "pontoonfive-ag", + "oracle-ag", + "village-cam-ag", + "plat-ag" ] } - - diff --git a/decompiler/config/jak1_pal/inputs.jsonc b/decompiler/config/jak1_pal/inputs.jsonc deleted file mode 100644 index b2ba6c38b3..0000000000 --- a/decompiler/config/jak1_pal/inputs.jsonc +++ /dev/null @@ -1,269 +0,0 @@ -{ - ////////////////////// - // INPUT FILES - ////////////////////// - - // input is GOAL object files, possibly in containers. - // most objects are part of CGO/DGO files (both go in dgo_names). This includes levels and the engine - // the DGOs will be processed in this order. Usually it's best to have KERNEL, ENGINE, then the levels when - // you want to run on the entire game. - "dgo_names": [ - "CGO/KERNEL.CGO", - "CGO/ENGINE.CGO", - "CGO/GAME.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" - ], - - // some objects are part of STR files (streaming data). In Jak 1 this is just animations - "str_file_names": [ - "STR/BAFCELL.STR", - "STR/SWTE4.STR", - "STR/SWTE3.STR", - "STR/SWTE2.STR", - "STR/SWTE1.STR", - "STR/SNRBSBFC.STR", - "STR/SNRBIPFC.STR", - "STR/SNRBICFC.STR", - "STR/ORR3.STR", - "STR/ORR2.STR", - "STR/MICANNON.STR", - "STR/BECANNON.STR", - "STR/SWTS4.STR", - "STR/SWTS3.STR", - "STR/SWTS2.STR", - "STR/SW4.STR", - "STR/SW3.STR", - "STR/SW2.STR", - "STR/SWTS1.STR", - "STR/ORREYE.STR", - "STR/ORLEYE.STR", - "STR/SW1.STR", - "STR/MAGFCELL.STR", - "STR/GNFCELL.STR", - "STR/ORRE3.STR", - "STR/ORRE2.STR", - "STR/ORRE1.STR", - "STR/ORR1.STR", - "STR/ORLE3.STR", - "STR/ORLE2.STR", - "STR/ORI3.STR", - "STR/ORI2.STR", - "STR/DE0202.STR", - "STR/RARSANIM.STR", - "STR/RARANIM.STR", - "STR/EIFISH.STR", - "STR/ORLE1.STR", - "STR/SWTEF4.STR", - "STR/SWTEF3.STR", - "STR/SWTEF2.STR", - "STR/SWTEF1.STR", - "STR/ORI1.STR", - "STR/EIICE.STR", - "STR/EIA3.STR", - "STR/DE0191.STR", - "STR/DE0186.STR", - "STR/DE0187.STR", - "STR/EIA4.STR", - "STR/EIPOLE.STR", - "STR/RARASECO.STR", - "STR/RARA2.STR", - "STR/DE0184.STR", - "STR/DE0181.STR", - "STR/PESEXT.STR", - "STR/DE0195.STR", - "STR/EIA2.STR", - "STR/FIR1.STR", - "STR/DE0182.STR", - "STR/BIR1.STR", - "STR/HAPOPEN.STR", - "STR/EITUBE.STR", - "STR/SCR1.STR", - "STR/DE0197.STR", - "STR/DE0193.STR", - "STR/EIA1.STR", - "STR/FAR2.STR", - "STR/FAR1.STR", - "STR/DE0199.STR", - "STR/GERMONEY.STR", - "STR/BIRESOLU.STR", - "STR/GARMONEY.STR", - "STR/BIADVENT.STR", - "STR/FUCRV1.STR", - "STR/BIREJECT.STR", - "STR/WAR1.STR", - "STR/BIACCEPT.STR", - "STR/SA3R1DEC.STR", - "STR/ASR1GENE.STR", - "STR/FIREJECT.STR", - "STR/GARRACE.STR", - "STR/GEZMONEY.STR", - "STR/LRFALLIN.STR", - "STR/EXR2.STR", - "STR/GERMOLES.STR", - "STR/FUCVICTO.STR", - "STR/MIR1ORBS.STR", - "STR/SA3R1RAM.STR", - "STR/AS2R1FLU.STR", - "STR/FUCV2.STR", - "STR/MIR1GNAW.STR", - "STR/GAZMONEY.STR", - "STR/AS3REMIN.STR", - "STR/SIHISA.STR", - "STR/FIACCEPT.STR", - "STR/FIWECO.STR", - "STR/FARESOLU.STR", - "STR/ASR1RBIK.STR", - "STR/MARDONAT.STR", - "STR/GAZRACE.STR", - "STR/FUCFV1.STR", - "STR/FUCV5.STR", - "STR/SABR1CDU.STR", - "STR/FLLINTRO.STR", - "STR/SAR1ECOR.STR", - "STR/AS2R1ROB.STR", - "STR/MIR2ORBS.STR", - "STR/MARBEAMS.STR", - "STR/LOI2.STR", - "STR/SAR1GENE.STR", - "STR/BILR1.STR", - "STR/AS2R1ROO.STR", - "STR/ASR1BESW.STR", - "STR/LOLOOP.STR", - "STR/FAINTROD.STR", - "STR/GEZMOLES.STR", - "STR/V1IN.STR", - "STR/FUCV4.STR", - "STR/SAIECORO.STR", - "STR/MIR1SWIT.STR", - "STR/LOINTRO.STR", - "STR/SAR2GENE.STR", - "STR/MUVICTOR.STR", - "STR/SAR1MCAN.STR", - "STR/FUCV7.STR", - "STR/MIZ1ORBS.STR", - "STR/FUCV8.STR", - "STR/BILR2.STR", - "STR/FUCV6.STR", - "STR/FUCV3.STR", - "STR/PLLBLOWU.STR", - "STR/PLBMAIN.STR", - "STR/WARESOLU.STR", - "STR/EIRACER.STR", - "STR/MAZDONAT.STR", - "STR/MAZBEAMS.STR", - "STR/MIISWITC.STR", - "STR/FIBRTVIL.STR", - "STR/FIBRTMIS.STR", - "STR/SABR1PAR.STR", - "STR/NDINTRO.STR", - "STR/GORDOWN.STR", - "STR/GORUP.STR", - "STR/SA3IRAMS.STR", - "STR/YERESOLU.STR", - "STR/EIFLUT.STR", - "STR/GRSDSACR.STR", - "STR/EXR1.STR", - "STR/SCRESOLU.STR", - "STR/FIRESOLU.STR", - "STR/SIHITEST.STR", - "STR/GAI1.STR", - "STR/EXRESOLU.STR", - "STR/MIZ2ORBS.STR", - "STR/ASIRBIKE.STR", - "STR/GRSOBBEC.STR", - "STR/BIINTROD.STR", - "STR/GRSOBBNC.STR", - "STR/AS2IROBB.STR", - "STR/GRSOBFIN.STR", - "STR/RERESOLU.STR", - "STR/BLRESOLU.STR", - "STR/SABIPARM.STR", - "STR/EVMEND.STR", - "STR/AS2RESOL.STR", - "STR/SAIMCANN.STR", - "STR/MIIGNAWE.STR", - "STR/GRSOBBA.STR", - "STR/GRSINTRO.STR", - "STR/SAISE.STR", - "STR/SA3IDECO.STR", - "STR/ASFRESOL.STR", - "STR/EXINTROD.STR", - "STR/BILINTRO.STR", - "STR/FIINTROD.STR", - "STR/MAINTROD.STR", - "STR/SCINTROD.STR", - "STR/AS2IFLUT.STR", - "STR/ASLERESO.STR", - "STR/ASLSRESO.STR", - "STR/AS2IROOM.STR", - "STR/GRSRESOL.STR", - "STR/SABICDUS.STR", - "STR/SIHISB.STR", - "STR/ASIBESWI.STR", - "STR/BILBRESO.STR", - "STR/FIBRT1AL.STR", - "STR/AS2INTRO.STR", - "STR/GEINTROD.STR", - "STR/SAISD1.STR", - "STR/SAISA.STR", - "STR/SIHISC.STR", - "STR/MIIORBS.STR", - "STR/WAINTROD.STR", - "STR/SAISD2.STR", - "STR/GRSOPREB.STR", - "STR/GRSOBBB.STR", - "STR/SA3INTRO.STR" - ], - - // some objects are directly stored as files on the DVD. This is just text files. - "object_file_names": [ - "TEXT/0COMMON.TXT", - "TEXT/1COMMON.TXT", - "TEXT/2COMMON.TXT", - "TEXT/3COMMON.TXT", - "TEXT/4COMMON.TXT", - "TEXT/5COMMON.TXT", - "TEXT/6COMMON.TXT" - ], - - // uncomment the next line to extract audio to wave files. - //"audio_dir_file_name": "jak1/VAG", - "audio_dir_file_name": "", - - "streamed_audio_file_names": [ - "VAGWAD.ENG", - "VAGWAD.JAP" - ] -} diff --git a/decompiler/config/jak1_pal/label_types.jsonc b/decompiler/config/jak1_pal/label_types.jsonc index e31781ce92..bf5b071280 100644 --- a/decompiler/config/jak1_pal/label_types.jsonc +++ b/decompiler/config/jak1_pal/label_types.jsonc @@ -1,10 +1,9 @@ - // the format is [label_name, type, special] +// the format is [label_name, type, special] - // if the type is pointer or inline array, special should be an integer size. - // if the type is a value type (like rgba), special should be true. +// if the type is pointer or inline array, special should be an integer size. +// if the type is a value type (like rgba), special should be true. { - "vector-h": [ ["L32", "vector"], ["L31", "vector"], @@ -17,7 +16,6 @@ "quaternion-h": [["L1", "quaternion"]], - "quaternion": [ ["L67", "vector"], ["L68", "vector"], @@ -27,9 +25,7 @@ ["L72", "vector"] ], - "geometry": [ - ["L112", "(pointer float)", 4] - ], + "geometry": [["L112", "vector"]], "trigonometry": [ ["L98", "(pointer float)", 32], @@ -46,13 +42,9 @@ ["L17", "font-work"] ], - "display": [ - ["L76", "(pointer uint32)", 2] - ], + "display": [["L76", "(pointer uint32)", 2]], - "capture": [ - ["L12", "gs-store-image-packet"] - ], + "capture": [["L12", "gs-store-image-packet"]], "main-h": [["L1", "frame-stats"]], @@ -103,21 +95,13 @@ ["L53", "vector"] ], - "sprite": [ - ["L58", "vu-function"] - ], + "sprite": [["L58", "vu-function"]], - "sprite-distort": [ - ["L27", "vu-function"] - ], + "sprite-distort": [["L27", "vu-function"]], - "merc-vu1": [ - ["L1", "vu-function"] - ], + "merc-vu1": [["L1", "vu-function"]], - "background": [ - ["L51", "vu-function"] - ], + "background": [["L51", "vu-function"]], "debug": [ ["L179", "vector2h"], @@ -173,7 +157,15 @@ ["L276", "vector"], ["L277", "vector"], ["L278", "vector"], - ["L279", "vector"] + ["L279", "vector"], + ["L280", "(array float)"], + ["L281", "(array float)"], + ["L282", "(array float)"], + ["L283", "(array float)"], + ["L284", "(array float)"], + ["L285", "(array float)"], + ["L286", "(array float)"], + ["L287", "(array float)"] ], "mood-tables": [ @@ -261,37 +253,45 @@ ], "progress-static": [ - ["L121", "(array game-text-id)"] + ["L121", "(array game-text-id)"], + ["L195", "(array game-option)"], + ["L190", "(array game-option)"], + ["L185", "(array game-option)"], + ["L180", "(array game-option)"], + ["L174", "(array game-option)"], + ["L169", "(array game-option)"], + ["L165", "(array game-option)"], + ["L161", "(array game-option)"], + ["L157", "(array game-option)"], + ["L152", "(array game-option)"], + ["L147", "(array game-option)"], + ["L145", "(array game-option)"], + ["L143", "(array game-option)"], + ["L137", "(array game-option)"], + ["L131", "(array game-option)"], + ["L124", "(array game-option)"], + ["L123", "(array (array game-option))"], + ["L122", "(array int32)"], + ["L3", "(array level-tasks-info)"], + ["L2", "(array int32)"] ], - "rigid-body": [ - ["L89", "rigid-body-platform-constants"] - ], + "rigid-body": [["L89", "rigid-body-platform-constants"]], - "nav-enemy": [ - ["L349", "attack-info"] - ], + "nav-enemy": [["L349", "attack-info"]], "basebutton": [ ["L97", "vector"], ["L102", "vector"] ], - "bird-lady": [ - ["L29", "vector"] - ], + "bird-lady": [["L29", "vector"]], - "bird-lady-beach": [ - ["L26", "vector"] - ], + "bird-lady-beach": [["L26", "vector"]], - "mayor": [ - ["L57", "vector"] - ], + "mayor": [["L57", "vector"]], - "sculptor": [ - ["L89", "vector"] - ], + "sculptor": [["L89", "vector"]], "oracle": [ ["L55", "vector"], @@ -304,34 +304,22 @@ ["L30", "vector"] ], - "explorer": [ - ["L77", "vector"] - ], + "explorer": [["L77", "vector"]], - "sage": [ - ["L91", "vector"] - ], + "sage": [["L91", "vector"]], "misty-teetertotter": [ ["L26", "attack-info"], ["L27", "attack-info"] ], - "farmer": [ - ["L28", "vector"] - ], + "farmer": [["L28", "vector"]], - "gambler": [ - ["L52", "vector"] - ], + "gambler": [["L52", "vector"]], - "warrior": [ - ["L30", "vector"] - ], + "warrior": [["L30", "vector"]], - "geologist": [ - ["L38", "vector"] - ], + "geologist": [["L38", "vector"]], "font": [ ["L95", "(inline-array vector)", 250], @@ -372,16 +360,9 @@ "ocean-frames": [["L1", "(pointer uint32)", 16384]], - "eye": [["L36", "eye-work"]], - - "shadow-cpu": [["L122", "shadow-data"]], - - "load-boundary": [ - ["L328", "(inline-array lbvtx)", 3] - ], - - "anim-tester": [ - ["L509", "(inline-array list-field)", 12] + "shadow-cpu": [ + ["L122", "shadow-data"], + ["L121", "vu-function"] ], "default-menu": [ @@ -423,9 +404,7 @@ // ["L14", "gif-tag-regs", true] // ], - "merc-blend-shape": [ - ["L62", "(pointer int16)", 32] - ], + "merc-blend-shape": [["L62", "(pointer int16)", 32]], "miners": [ ["L111", "vector"], @@ -447,83 +426,7 @@ ["L471", "vector4w"] ], - "assistant": [ - ["L71", "vector"] - ], - - "progress": [ - ["L670", "uint64", true], - ["L589", "float", true], - ["L590", "float", true], - ["L591", "float", true], - ["L592", "float", true], - ["L593", "float", true], - ["L594", "float", true], - ["L595", "float", true], - ["L596", "float", true], - ["L597", "float", true], - ["L598", "float", true], - ["L599", "float", true], - ["L600", "float", true], - ["L601", "float", true], - ["L602", "float", true], - ["L603", "float", true], - ["L604", "float", true], - ["L605", "float", true], - ["L606", "float", true], - ["L607", "float", true], - ["L608", "float", true], - ["L609", "float", true], - ["L610", "float", true], - ["L611", "float", true], - ["L612", "float", true], - ["L613", "float", true], - ["L614", "float", true], - ["L615", "float", true], - ["L617", "float", true], - ["L616", "float", true], - ["L618", "float", true], - ["L619", "float", true], - ["L620", "float", true], - ["L621", "float", true], - ["L622", "float", true], - ["L623", "float", true], - ["L624", "float", true], - ["L625", "float", true], - ["L626", "float", true], - ["L627", "float", true], - ["L628", "float", true], - ["L629", "float", true], - ["L630", "float", true], - ["L631", "float", true], - ["L632", "float", true], - ["L633", "float", true], - ["L634", "float", true], - ["L635", "float", true], - ["L636", "float", true], - ["L637", "float", true], - ["L638", "float", true], - ["L586", "vector"], - ["L584", "vector"], - ["L582", "vector"], - ["L580", "vector"], - ["L576", "vector"], - ["L578", "vector"], - ["L639", "uint64", true], - ["L640", "uint64", true], - ["L641", "uint64", true], - ["L642", "uint64", true], - ["L643", "uint64", true], - ["L644", "uint64", true], - ["L645", "uint64", true], - ["L646", "uint64", true], - ["L647", "uint64", true], - ["L648", "uint64", true], - ["L649", "uint64", true], - ["L650", "uint64", true], - ["L651", "uint64", true], - ["L652", "uint64", true] - ], + "assistant": [["L71", "vector"]], "target-part": [ ["L336", "float", true], @@ -534,14 +437,7 @@ ["L341", "uint64", true] ], - "projectiles": [ - ["L150", "attack-info"] - ], - - "generic-obs": [ - ["L455", "quaternion"] - ], - + "projectiles": [["L150", "attack-info"]], "blocking-plane": [ ["L18", "vector"], ["L19", "vector"], @@ -565,25 +461,15 @@ ["L994", "uint64", true] ], - "assistant-firecanyon": [ - ["L71", "vector"] - ], + "assistant-firecanyon": [["L71", "vector"]], - "sage-bluehut": [ - ["L82", "vector"] - ], + "sage-bluehut": [["L82", "vector"]], - "flutflut-bluehut": [ - ["L34", "vector"] - ], + "flutflut-bluehut": [["L34", "vector"]], - "sharkey": [ - ["L101", "attack-info"] - ], + "sharkey": [["L101", "attack-info"]], - "assistant-citadel": [ - ["L28", "vector"] - ], + "assistant-citadel": [["L28", "vector"]], "robotboss-h": [ ["L67", "float", true], @@ -597,44 +483,204 @@ ], "crates": [ + ["L171", "attack-info"], + ["L175", "attack-info"], + ["L181", "attack-info"], ["L242", "float", true], ["L243", "float", true], ["L245", "float", true], ["L263", "float", true] ], - "flying-lurker": [ - ["L200", "(pointer uint32)", 26], - ["L190", "vector"] - ], - - "ambient": [ - ["L334", "vector2h"], - ["L330", "vector2h"], - ["L329", "vector2h"], - ["L332", "vector2h"], - ["L331", "vector2h"] - ], - "hint-control": [ - ["L45", "(array task-hint-control-group)"] + ["L45", "(array task-hint-control-group)"], + ["L100", "(array level-hint-control)"] ], - "sparticle-launcher": [ - ["L193", "adgif-shader"] + "cam-master": [ + ["L356", "vector"], + ["L357", "vector"] ], - "process-taskable": [ - ["L251", "attack-info"] + "cam-states": [ + ["L630", "vector"], + ["L631", "vector"], + ["L632", "vector"], + ["L633", "vector"], + ["L672", "float", true], + ["L673", "float", true], + ["L674", "float", true], + ["L675", "float", true], + ["L676", "float", true], + ["L677", "float", true], + ["L678", "float", true], + ["L679", "float", true], + ["L680", "float", true], + ["L681", "float", true], + ["L682", "float", true], + ["L683", "float", true], + ["L684", "float", true], + ["L685", "float", true], + ["L686", "float", true], + ["L687", "float", true], + ["L688", "float", true], + ["L689", "float", true], + ["L690", "float", true], + ["L691", "float", true], + ["L692", "float", true], + ["L693", "float", true], + ["L694", "float", true], + ["L695", "float", true], + ["L696", "float", true], + ["L697", "float", true], + ["L698", "float", true], + ["L699", "float", true], + ["L700", "float", true], + ["L701", "float", true], + ["L702", "float", true], + ["L703", "float", true], + ["L704", "float", true], + ["L705", "float", true], + ["L706", "float", true], + ["L707", "float", true], + ["L708", "float", true], + ["L709", "float", true], + ["L710", "float", true], + ["L711", "float", true], + ["L712", "float", true], + ["L713", "float", true], + ["L714", "float", true], + ["L715", "float", true], + ["L716", "float", true], + ["L717", "float", true], + ["L718", "float", true], + ["L719", "float", true], + ["L720", "float", true], + ["L721", "float", true], + ["L722", "float", true], + ["L723", "float", true], + ["L724", "float", true], + ["L725", "float", true], + ["L726", "float", true], + ["L727", "float", true], + ["L728", "float", true], + ["L729", "float", true], + ["L730", "float", true], + ["L731", "float", true], + ["L732", "float", true], + ["L733", "float", true], + ["L734", "float", true], + ["L735", "float", true], + ["L736", "float", true], + ["L737", "float", true], + ["L738", "float", true], + ["L739", "float", true], + ["L740", "float", true], + ["L741", "float", true], + ["L742", "float", true], + ["L743", "float", true], + ["L744", "float", true], + ["L745", "float", true], + ["L790", "uint64", true], + ["L791", "uint64", true], + ["L792", "uint64", true], + ["L793", "uint64", true] ], - "babak-with-cannon": [ - ["L92", "vector"] + "cam-states-dbg": [["L78", "camera-orbit-info"]], + + "cam-layout": [ + ["L766", "quaternion"], + ["L768", "vector"], + ["L775", "vector4w"], + ["L777", "vector4w"], + ["L779", "vector4w"], + ["L781", "vector4w"], + ["L783", "vector4w"], + ["L785", "vector4w"], + ["L787", "vector4w"], + ["L788", "vector4w"], + ["L789", "vector4w"], + ["L790", "vector4w"], + ["L791", "vector"], + ["L792", "vector"], + ["L793", "vector4w"], + ["L794", "vector"], + ["L795", "vector4w"], + ["L796", "vector"], + ["L797", "vector"], + ["L798", "vector4w"], + ["L799", "vector"], + ["L800", "vector4w"], + ["L801", "vector"], + ["L802", "vector"], + ["L803", "vector4w"], + ["L804", "vector"], + ["L805", "vector"], + ["L806", "vector4w"], + ["L807", "vector4w"], + ["L808", "vector"], + ["L809", "vector"], + ["L810", "vector4w"], + ["L811", "vector4w"], + ["L812", "vector"], + ["L813", "vector"], + ["L814", "vector4w"], + ["L815", "vector"], + ["L816", "vector"], + ["L817", "vector4w"], + ["L818", "vector"], + ["L819", "vector"], + ["L820", "vector4w"], + ["L821", "vector"], + ["L822", "vector"], + ["L823", "vector"], + ["L824", "vector"], + ["L832", "vector4w"], + ["L872", "float", true], + ["L873", "float", true], + ["L874", "float", true], + ["L875", "float", true], + ["L876", "float", true], + ["L877", "float", true], + ["L878", "float", true], + ["L879", "float", true], + ["L880", "float", true], + ["L881", "float", true], + ["L882", "float", true], + ["L883", "float", true], + ["L884", "float", true], + ["L885", "float", true], + ["L886", "float", true], + ["L887", "float", true], + ["L888", "float", true], + ["L889", "float", true], + ["L890", "float", true], + ["L891", "float", true], + ["L892", "float", true], + ["L893", "float", true], + ["L894", "float", true], + ["L895", "float", true], + ["L896", "float", true], + ["L897", "float", true], + ["L898", "float", true], + ["L899", "float", true], + ["L900", "float", true], + ["L901", "uint64", true], + ["L904", "uint64", true], + ["L905", "uint64", true], + ["L906", "uint64", true], + ["L907", "uint64", true], + ["L908", "uint64", true], + ["L909", "uint64", true], + ["L910", "uint64", true] ], - "flutflut": [ - ["L94", "vector"] - ], + "process-taskable": [["L251", "attack-info"]], + + "babak-with-cannon": [["L92", "vector"]], + + "flutflut": [["L94", "vector"]], "fishermans-boat": [ ["L210", "vector"], @@ -647,9 +693,7 @@ ["L434", "rigid-body-platform-constants"] ], - "training-obs": [ - ["L175", "rigid-body-platform-constants"] - ], + "training-obs": [["L175", "rigid-body-platform-constants"]], "bonelurker": [ ["L72", "attack-info"], @@ -657,7 +701,10 @@ ], "balloonlurker": [ + ["L99", "vector"], ["L105", "vector"], + ["L107", "attack-info"], + ["L108", "attack-info"], ["L113", "rigid-body-platform-constants"] ], @@ -668,12 +715,11 @@ ], "citb-plat": [ + ["L136", "attack-info"], ["L155", "rigid-body-platform-constants"] ], - "qbert-plat": [ - ["L99", "rigid-body-platform-constants"] - ], + "qbert-plat": [["L99", "rigid-body-platform-constants"]], "misty-conveyor": [ ["L60", "vector"], @@ -696,34 +742,28 @@ ], "gnawer": [ + ["L195", "attack-info"], + ["L196", "attack-info"], + ["L200", "attack-info"], ["L216", "(inline-array gnawer-segment-info)", 10] ], - "target-tube": [ - ["L142", "vector"] - ], + "target-tube": [["L142", "vector"]], - "assistant-village3": [ - ["L43", "vector"] - ], + "assistant-village3": [["L43", "vector"]], - "sage-village3": [ - ["L74", "vector"] - ], + "sage-village3": [["L74", "vector"]], - "target-snowball": [ - ["L23", "vector"] - ], + "target-snowball": [["L23", "vector"]], "ice-cube": [ + ["L210", "vector"], ["L212", "attack-info"], ["L213", "attack-info"], ["L215", "attack-info"] ], - "assistant-lavatube": [ - ["L30", "vector"] - ], + "assistant-lavatube": [["L30", "vector"]], "citadel-part": [ ["L235", "float", true], @@ -741,13 +781,9 @@ ["L245", "uint64", true] ], - "sunken-part": [ - ["L220", "uint64", true] - ], + "sunken-part": [["L220", "uint64", true]], - "ogre-part": [ - ["L93", "uint64", true] - ], + "ogre-part": [["L93", "uint64", true]], "collectables-part": [ ["L309", "float", true], @@ -769,13 +805,9 @@ ["L233", "uint64", true] ], - "village3-part": [ - ["L244", "uint64", true] - ], + "village3-part": [["L244", "uint64", true]], - "lavatube-part": [ - ["L110", "uint64", true] - ], + "lavatube-part": [["L110", "uint64", true]], "hud-classes": [ ["L279", "vector"], @@ -783,29 +815,7 @@ ["L318", "vector"] ], - "collectables": [ - ["L611", "(pointer float)", true, 1], - ["L649", "(pointer float)", true, 1], - ["L656", "(pointer float)", true, 1], - ["L657", "(pointer float)", true, 1], - ["L658", "(pointer float)", true, 1], - ["L660", "(pointer float)", true, 1], - ["L663", "(pointer float)", true, 1], - ["L585", "vector"], - ["L725", "float", true], - ["L726", "float", true], - ["L727", "float", true], - ["L728", "uint64", true], - ["L729", "uint64", true], - ["L730", "uint64", true], - ["L731", "uint64", true], - ["L732", "uint64", true], - ["L733", "uint64", true] - ], - - "sky": [ - ["L13", "vu-function"] - ], + "sky": [["L13", "vu-function"]], "sky-tng": [ ["L82", "sky-work"], @@ -830,9 +840,7 @@ ["L314", "float", true] ], - "seagull": [ - ["L226", "(inline-array air-box)", 20] - ], + "seagull": [["L226", "(inline-array air-box)", 10]], "rolling-race-ring": [ ["L94", "vector"], @@ -844,22 +852,18 @@ ["L100", "vector"] ], - "part-tester": [ - ["L32", "uint64", true] - ], - "anim-tester": [ ["L509", "(inline-array list-field)", 12], ["L523", "vector"], ["L524", "vector"], - ["L649", "(pointer float)", 1], - ["L650", "(pointer float)", 1], - ["L651", "(pointer float)", 1], - ["L652", "(pointer float)", 1], - ["L653", "(pointer float)", 1], - ["L654", "(pointer float)", 1], - ["L655", "(pointer float)", 1], - ["L656", "(pointer float)", 1], + ["L649", "float", true], + ["L650", "float", true], + ["L651", "float", true], + ["L652", "float", true], + ["L653", "float", true], + ["L654", "float", true], + ["L655", "float", true], + ["L656", "float", true], ["L657", "uint64", true], ["L658", "uint64", true], ["L663", "uint64", true], @@ -876,6 +880,10 @@ ["L262", "vector"], ["L463", "(array (inline-array fisher-params))"] ], + "fisher-OLD": [ + ["L262", "vector"], + ["L463", "(array (inline-array fisher-params))"] + ], "robotboss-weapon": [ ["L122", "attack-info"], @@ -885,9 +893,7 @@ ["L145", "vector"] ], - "robotboss-misc": [ - ["L99", "vector"] - ], + "robotboss-misc": [["L99", "vector"]], "robotboss": [ ["L646", "attack-info"], @@ -968,7 +974,7 @@ ["L765", "float", true], ["L766", "float", true], ["L767", "float", true], - ["L768", "(pointer float)", 1], + ["L768", "float", true], ["L769", "float", true], ["L770", "float", true], ["L771", "float", true], @@ -1010,6 +1016,1137 @@ ["L816", "uint64", true] ], + "sage-finalboss": [ + ["L528", "vector"], + ["L272", "vector"], + ["L527", "quaternion"] + ], + + "sage-finalboss-OLD": [ + ["L528", "vector"], + ["L272", "vector"], + ["L527", "quaternion"] + ], + + "part-tester": [ + ["L27", "rgba", true], + ["L32", "uint64", true] + ], + + "process-drawable": [ + ["L242", "vector"], + ["L241", "vector"] + ], + + "ocean-texture": [ + ["L14", "vu-function"], + ["L15", "ocean-texture-work"] + ], + + "cavegeyserrock": [ + ["L56", "attack-info"], + ["L54", "vector"], + ["L53", "vector"], + ["L52", "vector"] + ], + + "junglesnake": [ + ["L93", "(pointer float)", 28], + ["L100", "attack-info"], + ["L101", "attack-info"] + ], + + "citadel-obs": [["L265", "attack-info"]], + + "jungleb-obs": [["L34", "vector"]], + + "jungle-obs": [["L164", "attack-info"]], + + "misty-obs": [["L135", "rigid-body-platform-constants"]], + + "village2-obs": [ + ["L274", "rigid-body-platform-constants"], + ["L275", "rigid-body-platform-constants"], + ["L288", "vector"] + ], + + "swamp-obs": [ + ["L85", "rigid-body-platform-constants"], + ["L109", "attack-info"] + ], + + "maincave-obs": [ + ["L159", "vector"], + ["L160", "vector"], + ["L175", "attack-info"], + ["L176", "attack-info"] + ], + + "sunken-obs": [ + ["L43", "vector"], + ["L45", "vector"], + ["L47", "vector"], + ["L49", "vector"], + ["L51", "vector"] + ], + + "rolling-obs": [ + ["L234", "vector"], + ["L238", "vector"], + ["L239", "vector"], + ["L240", "vector"], + ["L241", "vector"], + ["L242", "vector"], + ["L243", "vector"], + ["L244", "vector"], + ["L245", "vector"], + ["L246", "vector"], + ["L247", "vector"], + ["L248", "vector"], + ["L257", "vector"] + ], + + "firecanyon-obs": [["L57", "attack-info"]], + + "ogre-obs": [ + ["L141", "rigid-body-platform-constants"], + ["L142", "rigid-body-platform-constants"], + ["L156", "attack-info"] + ], + + "snow-obs": [["L201", "vector"]], + + "lavatube-obs": [ + ["L162", "attack-info"], + ["L194", "attack-info"] + ], + + "tfrag": [ + ["L107", "vu-function"], + ["L106", "vector"], + ["L105", "vector"] + ], + + "generic-obs": [ + ["L455", "quaternion"], + ["L457", "attack-info"] + ], + + "collectables": [ + ["L533", "vector"], + ["L606", "float", true], + ["L607", "float", true], + ["L608", "float", true], + ["L609", "float", true], + ["L610", "float", true], + ["L611", "float", true], + ["L612", "float", true], + ["L613", "float", true], + ["L614", "float", true], + ["L615", "float", true], + ["L616", "float", true], + ["L617", "float", true], + ["L618", "float", true], + ["L619", "float", true], + ["L620", "float", true], + ["L621", "float", true], + ["L622", "float", true], + ["L623", "float", true], + ["L624", "float", true], + ["L625", "float", true], + ["L626", "float", true], + ["L627", "float", true], + ["L628", "float", true], + ["L629", "float", true], + ["L630", "float", true], + ["L631", "float", true], + ["L632", "float", true], + ["L633", "float", true], + ["L634", "float", true], + ["L635", "float", true], + ["L636", "float", true], + ["L637", "float", true], + ["L638", "float", true], + ["L639", "float", true], + ["L640", "float", true], + ["L641", "float", true], + ["L642", "float", true], + ["L643", "float", true], + ["L644", "float", true], + ["L645", "float", true], + ["L646", "float", true], + ["L647", "float", true], + ["L648", "float", true], + ["L649", "float", true], + ["L650", "float", true], + ["L651", "float", true], + ["L652", "float", true], + ["L653", "float", true], + ["L654", "float", true], + ["L655", "float", true], + ["L656", "float", true], + ["L657", "float", true], + ["L658", "float", true], + ["L659", "float", true], + ["L660", "float", true], + ["L661", "float", true], + ["L662", "float", true], + ["L663", "float", true], + ["L664", "uint64", true], + ["L666", "uint64", true], + ["L665", "uint64", true], + ["L667", "uint64", true], + ["L668", "uint64", true], + ["L669", "uint64", true], + ["L670", "uint64", true], + ["L671", "uint64", true], + ["L672", "uint64", true], + ["L585", "vector"], + ["L725", "float", true], + ["L726", "float", true], + ["L727", "float", true], + ["L728", "uint64", true], + ["L729", "uint64", true], + ["L730", "uint64", true], + ["L731", "uint64", true], + ["L732", "uint64", true], + ["L733", "uint64", true] + ], + + "plant-boss": [ + ["L343", "vector"], + ["L344", "vector"], + ["L345", "vector"], + ["L346", "vector"], + ["L347", "vector"], + ["L348", "vector"], + ["L349", "vector"], + ["L350", "vector"], + ["L351", "vector"], + ["L352", "vector"], + ["L353", "vector"], + ["L354", "vector"], + ["L355", "vector"], + ["L356", "vector"], + ["L357", "vector"], + ["L358", "vector"], + ["L359", "vector"], + ["L360", "vector"], + ["L361", "vector"], + ["L362", "vector"], + ["L363", "vector"], + ["L364", "vector"], + ["L375", "attack-info"], + ["L377", "attack-info"], + ["L399", "attack-info"], + ["L403", "attack-info"], + ["L412", "float", true], + ["L413", "float", true], + ["L414", "float", true], + ["L415", "float", true], + ["L416", "float", true], + ["L417", "float", true], + ["L418", "float", true], + ["L419", "float", true], + ["L420", "float", true], + ["L421", "float", true], + ["L422", "float", true], + ["L423", "float", true], + ["L424", "float", true], + ["L425", "float", true], + ["L426", "float", true], + ["L427", "float", true], + ["L428", "float", true], + ["L429", "float", true], + ["L430", "float", true], + ["L431", "float", true], + ["L432", "float", true], + ["L433", "float", true], + ["L434", "float", true], + ["L435", "float", true], + ["L436", "float", true], + ["L437", "float", true], + ["L438", "float", true], + ["L439", "float", true], + ["L440", "float", true], + ["L441", "float", true], + ["L442", "float", true], + ["L443", "float", true], + ["L444", "float", true], + ["L445", "float", true], + ["L446", "float", true], + ["L447", "float", true], + ["L448", "float", true], + ["L449", "float", true], + ["L450", "float", true], + ["L451", "float", true], + ["L452", "float", true], + ["L453", "float", true], + ["L454", "float", true], + ["L455", "float", true], + ["L456", "float", true], + ["L457", "float", true], + ["L458", "float", true], + ["L459", "float", true], + ["L460", "float", true], + ["L461", "float", true], + ["L462", "float", true], + ["L463", "float", true], + ["L464", "float", true], + ["L465", "float", true], + ["L466", "float", true], + ["L467", "float", true], + ["L468", "float", true], + ["L469", "float", true], + ["L470", "uint64", true], + ["L498", "float", true], + ["L499", "uint64", true], + ["L500", "uint64", true], + ["L501", "uint64", true] + ], + + "ropebridge": [ + ["L97", "(inline-array ropebridge-tuning)", 6], + ["L104", "(inline-array vector)", 18], // 70/72 words + ["L105", "(inline-array vector)", 16], // 62/64 words + ["L106", "(inline-array vector)", 26], // 102/104 words + ["L107", "(inline-array vector)", 35] // 138/140 words + ], + + "double-lurker": [ + ["L109", "vector"], + ["L122", "attack-info"], + ["L123", "attack-info"], + ["L128", "attack-info"] + ], + + "billy": [["L234", "vector"]], + + "lurkerworm": [["L56", "attack-info"]], + + "pelican": [ + ["L199", "vector"], + ["L225", "vector"] + ], + + "citadel-sages": [ + ["L179", "vector"], + ["L623", "vector"], + ["L651", "vector"], + ["L701", "vector"] + ], + + "shover": [ + ["L13", "attack-info"], + ["L14", "attack-info"] + ], + + "steam-cap": [["L51", "attack-info"]], + + "sidekick": [["L29", "vector"]], + + "target-handler": [ + ["L195", "attack-info"], + ["L197", "float", true], + ["L198", "float", true], + ["L199", "float", true], + ["L200", "float", true], + ["L201", "float", true], + ["L202", "float", true], + ["L203", "float", true], + ["L204", "float", true], + ["L205", "uint64", true], + ["L206", "uint64", true], + ["L207", "uint64", true], + ["L208", "uint64", true], + ["L209", "uint64", true] + ], + + "water": [ + ["L148", "attack-info"], + ["L149", "attack-info"], + ["L150", "attack-info"] + ], + + "racer": [["L106", "vector"]], + + "target-racer": [ + ["L237", "attack-info"], + ["L238", "attack-info"], + ["L240", "vector"] + ], + + "rolling-lightning-mole": [ + ["L181", "vector"], + ["L185", "vector4w"], + ["L186", "vector4w"], + ["L187", "vector4w"], + ["L189", "vector4w"], + ["L195", "vector"], + ["L201", "vector4w"], + ["L202", "vector4w"], + ["L203", "vector4w"], + ["L204", "vector4w"], + ["L205", "vector4w"], + ["L206", "vector4w"] + ], + + "rolling-robber": [ + ["L127", "vector"], + ["L139", "vector"], + ["L140", "vector"], + ["L145", "vector"] + ], + + "target-flut": [ + ["L399", "attack-info"], + ["L406", "float", true], + ["L407", "float", true], + ["L408", "float", true], + ["L409", "float", true], + ["L410", "float", true], + ["L411", "float", true], + ["L412", "float", true], + ["L413", "float", true], + ["L414", "float", true], + ["L415", "float", true], + ["L416", "float", true], + ["L417", "float", true], + ["L418", "float", true], + ["L419", "float", true], + ["L420", "float", true], + ["L421", "float", true], + ["L422", "float", true], + ["L423", "float", true], + ["L424", "float", true], + ["L425", "float", true], + ["L426", "float", true], + ["L427", "float", true], + ["L428", "float", true], + ["L429", "float", true], + ["L430", "float", true], + ["L431", "float", true], + ["L432", "float", true], + ["L433", "float", true], + ["L434", "float", true], + ["L435", "float", true], + ["L436", "float", true], + ["L437", "float", true], + ["L438", "float", true], + ["L439", "float", true], + ["L440", "float", true], + ["L441", "float", true], + ["L442", "float", true], + ["L443", "float", true], + ["L444", "float", true], + ["L445", "float", true], + ["L446", "float", true], + ["L447", "float", true], + ["L448", "float", true], + ["L449", "float", true], + ["L450", "float", true], + ["L451", "float", true], + ["L452", "float", true], + ["L453", "float", true], + ["L454", "float", true], + ["L455", "float", true], + ["L456", "float", true], + ["L457", "float", true], + ["L458", "uint64", true], + ["L459", "uint64", true], + ["L460", "uint64", true], + ["L461", "uint64", true], + ["L462", "uint64", true], + ["L463", "uint64", true], + ["L464", "uint64", true], + ["L465", "uint64", true], + ["L483", "uint64", true], + ["L484", "uint64", true] + ], + + "collide-shape": [ + ["L399", "attack-info"], + ["L408", "vector"], + ["L410", "vector"], + ["L411", "vector"], + ["L413", "attack-info"], + ["L414", "attack-info"], + ["L415", "attack-info"], + ["L416", "attack-info"], + ["L417", "vector"], + ["L418", "attack-info"], + ["L419", "attack-info"], + ["L420", "vector"], + ["L421", "vector"] + ], + + "collide-planes": [ + ["L53", "vector4w"], + ["L54", "vector4w"], + ["L55", "vector4w"], + ["L56", "vector4w"], + ["L57", "vector4w"], + ["L58", "vector4w"], + ["L59", "vector4w"], + ["L60", "vector4w"], + ["L63", "vector4w"], + ["L64", "vector4w"], + ["L65", "vector4w"], + ["L66", "vector4w"] + ], + + "collide-probe": [ + ["L100", "vector"], + ["L102", "vector"] + ], + + "collide-cache": [ + ["L304", "vector"], + ["L303", "vector4w"] + ], + + "load-boundary-data": [["L2", "(array array)"]], + + "tfrag-near": [["L1", "vu-function"]], + + "snow-ram-boss": [ + ["L220", "attack-info"], + ["L221", "attack-info"], + ["L222", "attack-info"], + ["L223", "attack-info"], + ["L225", "attack-info"] + ], + + "snow-ram": [["L73", "attack-info"]], + + "snow-bumper": [["L54", "attack-info"]], + + "snow-ball": [ + ["L86", "(pointer float)", 8], + ["L87", "(pointer float)", 8], + ["L89", "attack-info"] + ], + + "puffer": [["L170", "attack-info"]], + + "driller-lurker": [ + ["L174", "attack-info"], + ["L175", "attack-info"] + ], + + "dark-crystal": [["L36", "attack-info"]], + + "kermit": [["L164", "attack-info"]], + + "swamp-blimp": [ + ["L177", "vector"], + ["L182", "vector"], + ["L187", "vector"], + ["L198", "tetherrock-info"], + ["L200", "tetherrock-info"], + ["L203", "tetherrock-info"], + ["L206", "tetherrock-info"], + ["L209", "tetherrock-info"] + ], + + "mistycannon": [["L199", "attack-info"]], + + "darkvine": [["L41", "attack-info"]], + + "jungle-mirrors": [ + ["L325", "vector"], + ["L326", "vector4w-4"] + ], + + "quicksandlurker": [["L111", "attack-info"]], + + "voicebox": [ + ["L47", "vector"], + ["L48", "vector"], + ["L49", "vector"], + ["L50", "vector"], + ["L51", "vector"] + ], + + "mother-spider": [ + ["L278", "vector"], + ["L279", "vector"], + ["L288", "attack-info"], + ["L301", "(inline-array mother-spider-leg-info)", 8], + ["L302", "(inline-array mother-spider-thread)", 9] + ], + + "bully": [ + ["L90", "attack-info"], + ["L91", "attack-info"], + ["L93", "attack-info"] + ], + + "bones": [ + ["L159", "shadow-settings"], + ["L161", "vector"], + ["L162", "vu-function"] + ], + + "tie": [["L43", "vu-function"]], + + "tie-near": [["L91", "vu-function"]], + + "depth-cue": [["L17", "depth-cue-work"]], + + "navigate": [ + ["L402", "vector"], + ["L403", "vector"], + ["L404", "vector"], + ["L405", "vector"], + ["L406", "vector"], + ["L422", "vector"], + ["L419", "(pointer uint8)", 4], + ["L425", "float", true], + ["L426", "float", true], + ["L429", "float", true], + ["L430", "float", true], + ["L436", "float", true], + ["L438", "float", true], + ["L444", "float", true], + ["L442", "float", true], + ["L520", "vector"], + ["L522", "float", true], // TODO - meters + ["L523", "float", true] // TODO - meters + ], + + "eye": [ + ["L36", "eye-work"], + ["L38", "float", true], + ["L40", "float", true], + ["L44", "uint64", true] + ], + + "snow-bunny": [["L190", "attack-info"]], + + "ocean-vu0": [ + ["L8", "vu-function"], + ["L9", "ocean-vu0-work"] + ], + + "ocean-near": [ + ["L35", "vu-function"], + ["L37", "float", true], + ["L44", "float", true] + ], + + "ocean-mid": [["L150", "vu-function"]], + + "generic-merc": [ + ["L161", "(inline-array invinitdata)", 8], + ["L162", "vu-function"] + ], + + "generic-vu0": [["L1", "vu-function"]], + + "generic-vu1": [ + ["L8", "vector4w"], + ["L9", "vector4w"], + ["L10", "vu-function"] + ], + + "generic-effect": [["L95", "generic-consts"]], + + "shadow-vu1": [ + ["L5", "vu-function"], + ["L6", "shadow-vu1-gifbuf-template"] + ], + + "generic-vu0": [["L1", "vu-function"]], + "shrubbery": [["L133", "vu-function"]], + + "credits": [ + ["L32", "(array int32)"], + ["L33", "(array float)"] + ], + +// BEGIN + "ambient": [ + ["L334", "vector2h"], + ["L332", "vector2h"], + ["L331", "vector2h"], + ["L330", "vector2h"], + ["L329", "vector2h"], + ["L328", "vector2h"] + ], + + "sparticle-launcher": [["L193", "adgif-shader"]], + + "load-boundary": [ + ["L328", "(inline-array lbvtx)", 12], + ["L325", "vector"] + ], + + "cam-debug": [ + ["L172", "vector4w"], + ["L173", "vector4w"], + ["L174", "vector4w"], + ["L175", "vector4w"], + ["L176", "vector4w"], + ["L207", "vector4w"], + ["L208", "vector4w"], + ["L209", "vector4w"], + ["L210", "vector4w"], + ["L211", "vector4w"], + ["L212", "vector4w"], + ["L213", "vector4w"], + ["L214", "vector4w"], + ["L215", "vector4w"], + ["L216", "vector4w"], + ["L217", "vector4w"], + ["L218", "vector4w"], + ["L219", "vector4w"], + ["L220", "vector4w"], + ["L221", "vector4w"], + ["L222", "vector4w"], + ["L223", "vector4w"], + ["L224", "vector4w"], + ["L225", "vector4w"], + ["L226", "vector4w"], + ["L227", "vector4w"], + ["L228", "vector4w"], + ["L229", "vector4w"], + ["L230", "vector4w"], + ["L231", "vector4w"], + ["L232", "vector4w"], + ["L237", "vector4w"], + ["L238", "vector4w"], + ["L239", "vector4w"], + ["L240", "vector4w"], + ["L241", "vector"], + ["L242", "vector"], + ["L243", "vector4w"], + ["L244", "vector"], + ["L245", "vector"], + ["L252", "vector"], + ["L253", "vector"], + ["L254", "vector"], + ["L255", "vector"], + ["L261", "vector4w"] + ], + + "sequence-a-village1": [["L40", "vector"]], + + "ogreboss": [ + ["L360", "attack-info"], + ["L368", "attack-info"], + ["L371", "attack-info"], + ["L372", "attack-info"], + ["L385", "float", true], + ["L386", "float", true], + ["L387", "float", true], + ["L388", "float", true], + ["L389", "float", true], + ["L390", "float", true], + ["L391", "float", true], + ["L392", "float", true], + ["L393", "float", true], + ["L394", "float", true], + ["L395", "float", true], + ["L396", "float", true], + ["L397", "float", true], + ["L398", "float", true], + ["L399", "float", true], + ["L400", "float", true], + ["L401", "float", true], + ["L402", "float", true], + ["L403", "float", true], + ["L404", "float", true], + ["L405", "float", true], + ["L406", "float", true], + ["L407", "float", true], + ["L408", "float", true], + ["L409", "float", true], + ["L410", "float", true], + ["L411", "float", true], + ["L412", "float", true], + ["L413", "float", true], + ["L414", "float", true], + ["L415", "float", true], + ["L416", "float", true], + ["L417", "float", true], + ["L418", "float", true], + ["L419", "float", true], + ["L420", "float", true], + ["L421", "float", true], + ["L422", "float", true], + ["L423", "float", true], + ["L424", "float", true], + ["L425", "float", true], + ["L426", "float", true], + ["L427", "float", true], + ["L428", "float", true], + ["L429", "float", true], + ["L430", "float", true], + ["L431", "float", true], + ["L432", "float", true], + ["L433", "float", true], + ["L434", "float", true], + ["L435", "float", true], + ["L436", "float", true], + ["L437", "float", true], + ["L438", "float", true], + ["L439", "float", true], + ["L440", "float", true], + ["L441", "float", true], + ["L442", "float", true], + ["L443", "float", true], + ["L444", "float", true], + ["L445", "float", true], + ["L446", "float", true], + ["L447", "float", true], + ["L448", "float", true], + ["L449", "float", true], + ["L450", "float", true], + ["L451", "float", true], + ["L452", "float", true], + ["L453", "float", true], + ["L454", "float", true], + ["L455", "float", true], + ["L456", "float", true], + ["L457", "float", true], + ["L458", "float", true], + ["L459", "float", true], + ["L460", "float", true], + ["L461", "float", true], + ["L462", "rgba", true], + ["L463", "uint64", true], + ["L464", "uint64", true], + ["L465", "uint64", true], + ["L466", "uint64", true], + ["L467", "uint64", true], + ["L526", "float", true], + ["L527", "uint64", true], + ["L528", "uint64", true], + ["L529", "uint64", true], + ["L530", "uint64", true], + ["L531", "uint64", true] + ], + + "flying-lurker": [ + ["L200", "attack-info"], + ["L190", "vector"] + ], + + "target": [ + ["L728", "float", true], + ["L729", "float", true], + ["L730", "float", true], + ["L731", "float", true], + ["L732", "float", true], + ["L733", "float", true], + ["L734", "float", true], + ["L735", "float", true], + ["L736", "float", true], + ["L737", "float", true], + ["L738", "float", true], + ["L739", "float", true], + ["L740", "float", true], + ["L741", "float", true], + ["L742", "float", true], + ["L743", "float", true], + ["L744", "float", true], + ["L745", "float", true], + ["L746", "float", true], + ["L747", "float", true], + ["L748", "float", true], + ["L749", "float", true], + ["L750", "float", true], + ["L751", "float", true], + ["L752", "float", true], + ["L753", "float", true], + ["L754", "float", true], + ["L755", "float", true], + ["L756", "float", true], + ["L757", "float", true], + ["L758", "float", true], + ["L759", "float", true], + ["L760", "float", true], + ["L761", "float", true], + ["L762", "float", true], + ["L763", "float", true], + ["L764", "float", true], + ["L765", "float", true], + ["L766", "float", true], + ["L767", "float", true], + ["L768", "float", true], + ["L769", "float", true], + ["L770", "float", true], + ["L771", "float", true], + ["L772", "float", true], + ["L773", "float", true], + ["L774", "float", true], + ["L775", "float", true], + ["L776", "float", true], + ["L777", "float", true], + ["L778", "float", true], + ["L779", "float", true], + ["L780", "float", true], + ["L781", "float", true], + ["L782", "float", true], + ["L783", "float", true], + ["L784", "float", true], + ["L785", "float", true], + ["L786", "float", true], + ["L787", "float", true], + ["L788", "float", true], + ["L789", "float", true], + ["L790", "float", true], + ["L791", "float", true], + ["L792", "float", true], + ["L793", "float", true], + ["L794", "float", true], + ["L795", "float", true], + ["L796", "float", true], + ["L797", "float", true], + ["L798", "float", true], + ["L799", "float", true], + ["L800", "float", true], + ["L801", "float", true], + ["L802", "float", true], + ["L803", "float", true], + ["L804", "float", true], + ["L805", "float", true], + ["L806", "float", true], + ["L807", "float", true], + ["L808", "float", true], + ["L809", "float", true], + ["L810", "float", true], + ["L811", "float", true], + ["L812", "float", true], + ["L813", "float", true], + ["L814", "float", true], + ["L815", "float", true], + ["L816", "float", true], + ["L817", "float", true], + ["L818", "float", true], + ["L819", "float", true], + ["L820", "float", true], + ["L821", "float", true], + ["L822", "float", true], + ["L823", "uint64", true], + ["L824", "uint64", true] + ], + + "target2": [ + ["L615", "attack-info"], + ["L656", "float", true], + ["L657", "float", true], + ["L658", "float", true], + ["L659", "float", true], + ["L660", "float", true], + ["L661", "float", true], + ["L662", "float", true], + ["L663", "float", true], + ["L664", "float", true], + ["L665", "float", true], + ["L666", "float", true], + ["L667", "float", true], + ["L668", "float", true], + ["L669", "float", true], + ["L670", "float", true], + ["L671", "float", true], + ["L672", "float", true], + ["L673", "float", true], + ["L674", "float", true], + ["L675", "float", true], + ["L676", "float", true], + ["L677", "float", true], + ["L678", "float", true], + ["L679", "float", true], + ["L680", "float", true], + ["L681", "float", true], + ["L682", "float", true], + ["L683", "float", true], + ["L684", "float", true], + ["L685", "float", true], + ["L686", "float", true], + ["L687", "float", true], + ["L688", "float", true], + ["L689", "float", true], + ["L690", "float", true], + ["L691", "float", true], + ["L692", "float", true], + ["L693", "float", true], + ["L694", "float", true], + ["L695", "float", true], + ["L696", "float", true], + ["L697", "float", true], + ["L698", "float", true], + ["L699", "float", true], + ["L700", "float", true], + ["L701", "float", true], + ["L702", "float", true], + ["L703", "float", true], + ["L704", "float", true], + ["L705", "float", true], + ["L706", "float", true], + ["L707", "float", true], + ["L708", "float", true], + ["L709", "float", true], + ["L710", "float", true], + ["L711", "float", true], + ["L712", "float", true], + ["L713", "float", true], + ["L714", "float", true], + ["L715", "float", true], + ["L716", "float", true], + ["L717", "float", true], + ["L718", "float", true], + ["L719", "float", true], + ["L720", "float", true], + ["L721", "float", true], + ["L722", "float", true], + ["L723", "float", true], + ["L724", "float", true], + ["L725", "float", true], + ["L726", "float", true], + ["L727", "float", true], + ["L728", "float", true], + ["L729", "float", true], + ["L730", "float", true], + ["L731", "float", true], + ["L732", "float", true], + ["L733", "float", true], + ["L734", "float", true], + ["L735", "float", true], + ["L736", "float", true], + ["L737", "float", true], + ["L738", "float", true], + ["L739", "float", true], + ["L740", "float", true], + ["L741", "float", true], + ["L742", "float", true], + ["L743", "float", true], + ["L744", "float", true], + ["L745", "float", true], + ["L746", "float", true], + ["L747", "float", true], + ["L748", "uint64", true], + ["L759", "uint64", true] + ], + + "target-death": [ + ["L314", "vector"], + ["L322", "float", true], + ["L323", "float", true], + ["L324", "float", true], + ["L325", "float", true], + ["L326", "float", true], + ["L327", "float", true], + ["L328", "float", true], + ["L329", "float", true], + ["L330", "float", true], + ["L331", "float", true], + ["L332", "float", true], + ["L333", "float", true], + ["L334", "float", true], + ["L335", "float", true], + ["L336", "float", true], + ["L337", "float", true], + ["L338", "float", true], + ["L339", "float", true], + ["L340", "float", true], + ["L341", "float", true], + ["L342", "float", true], + ["L343", "float", true], + ["L344", "float", true], + ["L345", "float", true], + ["L346", "float", true], + ["L347", "float", true], + ["L348", "float", true], + ["L349", "float", true], + ["L350", "uint64", true], + ["L351", "uint64", true], + ["L352", "uint64", true], + ["L353", "uint64", true], + ["L354", "uint64", true], + ["L355", "uint64", true], + ["L356", "uint64", true], + ["L357", "uint64", true], + ["L358", "uint64", true], + ["L361", "float", true] + ], + + "progress": [ + ["L576", "vector"], + ["L578", "vector"], + ["L580", "vector"], + ["L582", "vector"], + ["L584", "vector"], + ["L586", "vector"], + ["L589", "float", true], + ["L590", "float", true], + ["L591", "float", true], + ["L592", "float", true], + ["L593", "float", true], + ["L594", "float", true], + ["L595", "float", true], + ["L596", "float", true], + ["L597", "float", true], + ["L598", "float", true], + ["L599", "float", true], + ["L600", "float", true], + ["L601", "float", true], + ["L602", "float", true], + ["L603", "float", true], + ["L604", "float", true], + ["L605", "float", true], + ["L606", "float", true], + ["L607", "float", true], + ["L608", "float", true], + ["L609", "float", true], + ["L610", "float", true], + ["L611", "float", true], + ["L612", "float", true], + ["L613", "float", true], + ["L614", "float", true], + ["L615", "float", true], + ["L617", "float", true], + ["L616", "float", true], + ["L618", "float", true], + ["L619", "float", true], + ["L620", "float", true], + ["L621", "float", true], + ["L622", "float", true], + ["L623", "float", true], + ["L624", "float", true], + ["L625", "float", true], + ["L626", "float", true], + ["L627", "float", true], + ["L628", "float", true], + ["L629", "float", true], + ["L630", "float", true], + ["L631", "float", true], + ["L632", "float", true], + ["L633", "float", true], + ["L634", "float", true], + ["L635", "float", true], + ["L636", "float", true], + ["L637", "float", true], + ["L638", "float", true], + ["L639", "uint64", true], + ["L640", "uint64", true], + ["L641", "uint64", true], + ["L642", "uint64", true], + ["L643", "uint64", true], + ["L644", "uint64", true], + ["L645", "uint64", true], + ["L646", "uint64", true], + ["L647", "uint64", true], + ["L648", "uint64", true], + ["L649", "uint64", true], + ["L650", "uint64", true], + ["L651", "uint64", true], + ["L652", "uint64", true], + ["L670", "uint64", true] + ], + // please do not add things after this entry! git is dumb. "object-file-that-doesnt-actually-exist-and-i-just-put-this-here-to-prevent-merge-conflicts-with-this-file": [] } diff --git a/decompiler/config/jak1_pal/stack_structures.jsonc b/decompiler/config/jak1_pal/stack_structures.jsonc deleted file mode 100644 index 59ce0b6146..0000000000 --- a/decompiler/config/jak1_pal/stack_structures.jsonc +++ /dev/null @@ -1,2978 +0,0 @@ -{ - "run-function-in-process": [ - [16, ["array", "uint64", 6]], - [64, "catch-frame"] - ], - - "matrixp*!": [[16, "matrix"]], - - "vector3s-matrix*!": [[16, "vector"]], - - "vector3s-rotate*!": [[16, "vector"]], - - "matrix-rotate-zyx!": [ - [16, "matrix"], - [80, "matrix"] - ], - - "matrix-rotate-xyz!": [ - [16, "matrix"], - [80, "matrix"] - ], - - "matrix-rotate-zxy!": [ - [16, "matrix"], - [80, "matrix"] - ], - - "matrix-rotate-yxz!": [ - [16, "matrix"], - [80, "matrix"] - ], - - "matrix-rotate-yzx!": [ - [16, "matrix"], - [80, "matrix"] - ], - - "matrix-rotate-yxy!": [ - [16, "vector"], - [32, "vector"], - [48, "vector"] - ], - - "matrix-rotate-yx!": [[16, "matrix"]], - - "transform-matrix-calc!": [ - [16, "matrix"], - [80, "matrix"] - ], - - "transform-matrix-parent-calc!": [ - [16, "matrix"], - [80, "matrix"] - ], - - "matrix-with-scale->quaternion": [[16, "matrix"]], - - "quaternion-exp!": [[16, "vector"]], - "quaternion-slerp!": [[16, "vector"]], - "quaternion-zxy!": [ - [16, "vector"], - [32, "vector"], - [48, "vector"] - ], - - "vector-x-quaternion!": [[16, "matrix"]], - "vector-y-quaternion!": [[16, "matrix"]], - "vector-z-quaternion!": [[16, "matrix"]], - - "quaternion-y-angle": [[16, "vector"]], - "quaternion-rotate-local-x!": [[16, "quaternion"]], - "quaternion-rotate-local-y!": [[16, "quaternion"]], - "quaternion-rotate-local-z!": [[16, "quaternion"]], - "quaternion-rotate-y!": [[16, "quaternion"]], - "quaternion-rotate-x!": [ - [16, "quaternion"], - [32, "vector"] - ], - "quaternion-rotate-z!": [ - [16, "quaternion"], - [32, "vector"] - ], - "quaternion-delta-y": [ - [16, "vector"], - [32, "vector"] - ], - "quaternion-rotate-y-to-vector!": [ - [16, "quaternion"], - [32, "vector"], - [48, "quaternion"] - ], - "quaternion-xz-angle": [ - [16, "matrix"], - [80, "vector"] - ], - "vector-rotate-y!": [ - [16, "quaternion"], - [32, "matrix"] - ], - - "eul->matrix": [[16, "vector"]], - "eul->quat": [[16, "matrix"]], - "quat->eul": [[16, "matrix"]], - - "vector-line-distance": [ - [16, "vector"], - [32, "vector"], - [48, "vector"], - [64, "vector"] - ], - "vector-line-distance-point!": [ - [16, "vector"], - [32, "vector"], - [48, "vector"], - [64, "vector"] - ], - - "forward-up-nopitch->inv-matrix": [[16, "vector"]], - - "forward-up-nopitch->quaternion": [[16, "matrix"]], - - "forward-up->quaternion": [ - [16, "matrix"], - [80, "vector"] - ], - - "quaternion-from-two-vectors!": [[16, "vector"]], - - "quaternion-from-two-vectors-max-angle!": [[16, "vector"]], - - "matrix-from-two-vectors!": [[16, "vector"]], - "matrix-from-two-vectors-max-angle!": [[16, "vector"]], - "matrix-from-two-vectors-max-angle-partial!": [[16, "vector"]], - "matrix-from-two-vectors-partial-linear!": [[16, "vector"]], - "matrix-remove-z-rot": [ - [16, "vector"], - [32, "matrix"] - ], - - "matrix-rot-diff!": [ - [16, "quaternion"], - [32, "quaternion"], - [48, "quaternion"] - ], - - "quaternion-seek": [ - [16, "matrix"], - [80, "matrix"], - [144, "quaternion"] - ], - "vector-deg-seek": [[16, "matrix"]], - "vector-deg-slerp": [ - [16, "matrix"], - [80, "vector"], - [96, "vector"] - ], - - "circle-test": [ - [16, "sphere"], - [32, "sphere"], - [48, "vector"], - [64, "vector"] - ], - - "move-target-from-pad": [ - [16, "vector"], - [32, "vector"], - [48, "matrix"] - ], - - "draw-sprite2d-xy": [[16, "draw-context"]], - "screen-gradient": [[16, "draw-context"]], - - "(method 10 oscillating-vector)": [[16, "vector"]], - - "show-mc-info": [[16, "mc-slot-info"]], - - "update-mood-erase-color2": [[16, "mood-fog"]], - - "make-light-kit": [[16, "matrix"]], - - "matrix<-parented-transformq!": [[16, "vector"]], - - "(method 20 trsqv)": [[16, "vector"]], - - "(method 19 trsqv)": [[16, "vector"]], - - "(method 17 trsqv)": [ - [16, "quaternion"], - [32, "vector"], - [48, "vector"], - [64, "vector"], - [80, "vector"] - ], - - "(method 25 trsqv)": [ - [16, "vector"], - [32, "vector"], - [48, "vector"], - [64, "vector"] - ], - - "(method 16 trsqv)": [ - [16, "matrix"], - [80, "matrix"] - ], - - "(method 14 trsqv)": [[16, "vector"]], - - "(method 13 trsqv)": [[16, "vector"]], - - "(method 12 trsqv)": [ - [16, "vector"], - [32, "vector"] - ], - - "(method 11 trsqv)": [[16, "vector"]], - - "(method 10 trsqv)": [ - [16, "vector"], - [32, "vector"] - ], - - "(method 23 trsqv)": [[16, "vector"]], - "(method 24 trsqv)": [[16, "vector"]], - - "vector-sincos!": [[16, "vector"]], - - "init-for-transform": [ - [16, "matrix"], - [80, "matrix"], - [144, "vector4s-3"], - [192, "vector"], - [208, "vector4s-3"] - ], - - "string->sound-name": [[16, "qword"]], - - "(method 15 trajectory)": [ - [16, "vector"], - [32, "vector"] - ], - - "ripple-add-debug-sphere": [[16, "vector"]], - - "camera-teleport-to-entity": [ - [16, "transformq"], - [64, "event-message-block"] - ], - - "(method 10 cam-vector-seeker)": [[16, "vector"]], - - "joint-mod-look-at-handler": [ - [16, "vector"], - [32, "vector"], - [64, "vector"], - [80, "vector"], - [96, "vector"] - ], - - "joint-mod-world-look-at-handler": [ - [16, "vector"], - [32, "vector"], - [64, "vector"], - [80, "matrix"], - [144, "vector"], - [160, "vector"], - [176, "matrix"] - ], - - "joint-mod-rotate-handler": [ - [16, "quaternion"], - [32, "quaternion"], - [48, "quaternion"] - ], - - "joint-mod-wheel-callback": [ - [16, "vector"], - [32, "vector"], - [48, "vector"] - ], - - "draw-end-credits": [[16, "font-context"]], - - "draw-title-credits": [[16, "font-context"]], - - "moving-sphere-sphere-intersect": [[16, "vector"]], - - "moving-sphere-moving-sphere-intersect": [ - [16, "vector"], - [32, "vector"] - ], - - "(method 9 cylinder-flat)": [ - [16, "vector"], - [32, "vector"], - [48, "cylinder-flat-verts"], - [208, "cylinder-flat-verts"], - [368, "matrix"], - [432, "vector"] - ], - - "(method 9 cylinder)": [ - [16, "vector"], - [32, "vector"], - [48, "cylinder-verts"], - [432, "cylinder-verts"], - [816, "matrix"], - [880, "matrix"] - ], - - "ray-arbitrary-circle-intersect": [ - [16, "vector"], - [32, "vector"] - ], - - "(method 10 cylinder-flat)": [ - [16, "vector"], - [32, "vector"] - ], - - "(method 10 cylinder)": [ - [16, "vector"], - [32, "vector"] - ], - - "add-debug-sphere-from-table": [ - [16, "vector"], - [32, "vector"], - [48, "vector"] - ], - - "make-debug-sphere-table": [ - [16, "vector"], - [32, "vector"], - [48, "vector"], - [64, "vector"] - ], - - "(method 20 actor-link-info)": [[16, "event-message-block"]], - "(method 21 actor-link-info)": [[16, "event-message-block"]], - "(method 23 actor-link-info)": [[16, "event-message-block"]], - - "(method 24 actor-link-info)": [[16, "event-message-block"]], - - "internal-draw-debug-line": [ - [16, "vector4w-2"], - [48, "vector4w-2"] - ], - "internal-draw-debug-text-3d": [ - [16, "vector4w"], - [32, "font-context"] - ], - "add-debug-triangle-normal": [ - [16, "vector"], - [32, "vector"] - ], - "add-debug-flat-triangle": [ - [16, "vector4w-3"], - [64, "vector4w-3"] - ], - "add-debug-point": [[16, "vector4w-2"]], - "add-debug-line2d": [ - [16, "vector4w"], - [32, "vector4w"] - ], - "add-debug-box": [ - [16, "vector"], - [32, "vector"] - ], - "add-debug-x": [ - [16, "vector"], - [32, "vector"] - ], - "add-debug-sphere-with-transform": [[16, "vector"]], - "add-debug-circle": [ - [16, "vector"], - [32, "vector"] - ], - "add-debug-vector": [[16, "vector"]], - "add-debug-yrot-vector": [[16, "vector"]], - "add-debug-arc": [ - [16, "vector"], - [32, "vector"] - ], - "add-debug-curve": [ - [16, "vector"], - [32, "vector"] - ], - "add-debug-points": [[16, "vector"]], - "add-debug-light": [[16, "vector"]], - "dma-timeout-cam": [ - [16, "vector"], - [32, "matrix"] - ], - - "(method 18 tracking-spline)": [ - [16, "tracking-spline-sampler"], - [32, "tracking-spline-sampler"] - ], - - "draw-ocean-transition": [ - [16, "sphere"] - ], - - "dm-cam-mode-func": [[16, "event-message-block"]], - "ocean-trans-add-upload-table": [ - [16, "vector"] - ], - - "dm-cam-settings-func": [[16, "event-message-block"]], - - "dm-cam-render-float": [[16, "event-message-block"]], - - "debug-create-cam-restore": [[16, "euler-angles"]], - - "dm-task-resolution": [[16, "event-message-block"]], - - "dm-task-get-money": [[16, "event-message-block"]], - - "dm-give-all-cells": [[16, "event-message-block"]], - - "dm-give-cell": [[16, "event-message-block"]], - - "(anon-function 13 default-menu)": [[16, "event-message-block"]], - - "(anon-function 12 default-menu)": [[16, "event-message-block"]], - - "(anon-function 11 default-menu)": [[16, "event-message-block"]], - - "(method 22 level)": [[16, "event-message-block"]], - "(method 9 level)": [[16, "event-message-block"]], - "(method 10 load-state)": [[16, "event-message-block"]], - "cam-slave-get-rot": [[16, "quaternion"]], - - "draw-joint-spheres": [[16, "vector"]], - "(method 16 process-drawable)": [ - [16, "matrix"], - [80, "matrix"], - [144, "vector"], - [160, "vector"] - ], - - "(anon-function 494 task-control)": [[16, "event-message-block"]], - "(anon-function 493 task-control)": [[16, "event-message-block"]], - "(anon-function 480 task-control)": [[16, "event-message-block"]], - "(anon-function 477 task-control)": [[16, "event-message-block"]], - "(anon-function 476 task-control)": [[16, "event-message-block"]], - "(anon-function 475 task-control)": [[16, "event-message-block"]], - "(anon-function 474 task-control)": [[16, "event-message-block"]], - "(anon-function 455 task-control)": [[16, "event-message-block"]], - "(anon-function 445 task-control)": [[16, "event-message-block"]], - "(anon-function 435 task-control)": [[16, "event-message-block"]], - "(anon-function 426 task-control)": [[16, "event-message-block"]], - "(anon-function 425 task-control)": [[16, "event-message-block"]], - "(anon-function 415 task-control)": [[16, "event-message-block"]], - "(anon-function 414 task-control)": [[16, "event-message-block"]], - "(anon-function 403 task-control)": [[16, "event-message-block"]], - "(anon-function 400 task-control)": [[16, "event-message-block"]], - "(anon-function 393 task-control)": [[16, "event-message-block"]], - "(anon-function 390 task-control)": [[16, "event-message-block"]], - "(anon-function 383 task-control)": [[16, "event-message-block"]], - "(anon-function 380 task-control)": [[16, "event-message-block"]], - "(anon-function 369 task-control)": [[16, "event-message-block"]], - "(anon-function 368 task-control)": [[16, "event-message-block"]], - "(anon-function 367 task-control)": [[16, "event-message-block"]], - "(anon-function 366 task-control)": [[16, "event-message-block"]], - "(anon-function 365 task-control)": [[16, "event-message-block"]], - "(anon-function 364 task-control)": [[16, "event-message-block"]], - "(anon-function 363 task-control)": [[16, "event-message-block"]], - "(anon-function 362 task-control)": [[16, "event-message-block"]], - "(anon-function 337 task-control)": [[16, "event-message-block"]], - "(anon-function 336 task-control)": [[16, "event-message-block"]], - "(anon-function 286 task-control)": [[16, "event-message-block"]], - "(anon-function 227 task-control)": [[16, "event-message-block"]], - "(anon-function 38 task-control)": [[16, "event-message-block"]], - "(anon-function 28 task-control)": [[16, "event-message-block"]], - "(method 10 border-plane)": [[16, "vector"]], - "(method 9 game-info)": [[16, "event-message-block"]], - "(method 9 continue-point)": [[16, "vector"]], - "(method 9 game-save)": [[16, "file-stream"]], - "(method 10 game-save)": [[16, "file-stream"]], - "vector-vector-deg-slerp!": [ - [16, "vector"], - [32, "vector"], - [48, "quaternion"], - [64, "quaternion"], - [80, "quaternion"], - [96, "vector"] - ], - - "closest-pt-in-triangle": [ - [16, "vector"], - [32, "vector"], - [48, "vector"] - ], - - "vector-circle-tangent-new": [ - [16, "sphere"], - [32, "vector"], - [48, "vector"] - ], - - "vector-circle-tangent": [ - [16, "sphere"], - [32, "vector"], - [48, "vector"], - [64, "vector"] - ], - - "vector-plane-distance": [[16, "vector"]], - - "curve-length": [ - [16, "vector"], - [32, "vector"] - ], - - "curve-closest-point": [ - [16, "vector"], - [32, "vector"] - ], - - "(method 27 seagull)": [ - [16, "vector"], - [32, "vector"] - ], - - "add-debug-air-box": [ - [16, "vector"], - [32, "vector"] - ], - - "mem-size": [[16, "memory-usage-block"]], - - "display-loop": [[16, "sphere"]], - - "(method 14 curve-control)": [[16, "vector"]], - - "(method 19 path-control)": [ - [16, "vector"], - [32, "vector"], - [48, "vector"], - [64, "vector"] - ], - - "progress-allowed?": [[16, "event-message-block"]], - - "(method 9 align-control)": [ - [16, "matrix"], - [80, "quaternion"] - ], - - "(method 10 align-control)": [[16, "vector"]], - - "(method 15 load-state)": [ - [16, "event-message-block"], - [96, "event-message-block"] - ], - - "(method 43 farmer)": [ - [16, "vector"] - ], - - "yakow-post": [ - [16, "vector"], - [32, "vector"], - [48, "vector"], - [64, "vector"], - [80, "vector"], - [96, "vector"] - ], - - "anim-tester-save-object-seqs": [ - [16, "file-stream"] - ], - - "anim-test-obj-list-handler": [[16, "event-message-block"]], - "anim-test-anim-list-handler": [[16, "event-message-block"]], - "anim-test-sequence-list-handler": [[16, "event-message-block"]], - "anim-test-edit-sequence-list-handler": [[16, "event-message-block"]], - "anim-test-edit-seq-insert-item": [[16, "event-message-block"]], - "anim-test-edit-sequence-list-handler": [ - [112, "event-message-block"], - [16, "font-context"] - ], - "anim-tester-add-newobj": [[16, "event-message-block"]], - "anim-tester-start": [[16, "event-message-block"]], - "anim-tester-add-sequence": [[16, "event-message-block"]], - - "(anon-function 28 task-control)": [[16, "event-message-block"]], - - "instance-tfragment-add-debug-sphere": [ - [16, "vector"] - ], - - "(method 10 game-save)": [[16, "file-stream"]], - - "cam-state-from-entity": [[16, "curve"]], - - "(method 9 cam-index)": [[16, "vector"]], - - "(method 10 cam-index)": [[16, "vector"]], - - "(method 15 tracking-spline)": [ - [16, "tracking-spline-sampler"], - [32, "tracking-point"] - ], - - "(method 16 tracking-spline)": [ - [16, "tracking-spline-sampler"], - [32, "vector"] - ], - - "(method 18 tracking-spline)": [ - [16, "tracking-spline-sampler"], - [32, "vector"] - ], - - "(method 20 tracking-spline)": [ - [16, "vector"], - [32, "vector"] - ], - - "(method 21 tracking-spline)": [ - [16, "tracking-spline-sampler"], - [32, "vector"] - ], - - "(method 22 tracking-spline)": [ - [16, "tracking-spline-sampler"], - [32, "vector"] - ], - - "cam-slave-init": [[16, "event-message-block"]], - - "cam-curve-pos": [ - [16, "vector"], - [32, "vector"], - [48, "vector"] - ], - - "curve-length": [ - [16, "vector"], - [32, "vector"] - ], - - "curve-closest-point": [ - [16, "vector"], - [32, "vector"] - ], - - "cam-calc-follow!": [ - [16, "event-message-block"], - [96, "vector"], - [112, "vector"], - [128, "vector"], - [144, "vector"] - ], - - "mat-remove-z-rot": [ - [16, "vector"], - [32, "matrix"] - ], - - "slave-matrix-blend-2": [ - [16, "vector"], - [32, "quaternion"], - [48, "quaternion"], - [64, "quaternion"] - ], - - "vector-into-frustum-nosmooth!": [ - [16, "matrix"], - [80, "vector"], - [96, "vector"] - ], - - "slave-set-rotation!": [ - [16, "vector"], - [32, "matrix"], - [96, "vector"], - [112, "matrix"], // guess - [176, "vector"] // guess - ], - - "v-slrp2!": [ - [16, "vector"], - [32, "vector"], - [48, "vector"], - [64, "matrix"], - [128, "vector"] - ], - - "v-slrp3!": [ - [16, "vector"], - [32, "vector"], - [48, "vector"], - [64, "matrix"], - [128, "vector"] - ], - - "(code cam-combiner-active)": [ - [16, "vector"], - [32, "matrix"], - [80, "vector"], - [96, "matrix"] - ], - - "cam-master-init": [ - [16, "vector"], - [32, "vector"] - ], - - "plane-from-points": [[16, "vector"]], - - "update-view-planes": [ - [16, "view-frustum"], - [144, "vector"], - [160, "vector"], - [176, "vector"], - [192, "vector"], - [208, "vector"], - [224, "vector"] - ], - - "move-camera-from-pad": [[16, "vector"]], - - "cam-free-floating-move": [[16, "camera-free-floating-move-info"]], - - "update-camera": [ - [16, "vector"], - [32, "quaternion"], - [48, "vector"] - ], - - "ocean-make-trans-camera-masks": [ - [16, "vector"], - [32, "vector"] - ], - - "(anon-function 28 task-control)": [[16, "event-message-block"]], - - "update-mood-prt-color": [ - [16, "vector"] - ], - - "update-mood-swamp": [ - [16, "vector"] - ], - - "update-mood-village1": [ - [16, "vector"] - ], - - "update-mood-maincave": [ - [16, "vector"] - ], - - "update-mood-ogre": [ - [16, "vector"] - ], - - "update-mood-finalboss": [ - [16, "vector"], - [32, "vector"] - ], - - "update-mood-darkcave": [ - [16, "vector"], - [32, "vector"] - ], - - "update-mood-citadel": [ - [16, "vector"], - [32, "vector"], - [48, "vector"], - [64, "vector"], - [80, "vector"], - [96, "vector"], - [112, "vector"], - [128, "vector"] - ], - - "update-mood-jungleb": [ - [16, "vector"], - [32, "vector"], - [48, "vector"] - ], - - "update-mood-sunken": [ - [16, "vector"], - [32, "vector"], - [48, "vector"], - [64, "vector"] - ], - - "update-mood-village2": [ - [16, "vector"], - [32, "vector"], - [48, "vector"], - [64, "vector"] - ], - - "update-mood-rolling": [ - [16, "vector"] // TODO - really not sure about this one - ], - - "update-mood-village3": [ - [16, "vector"], - [32, "vector"], - [48, "vector"], - [64, "vector"], - [80, "vector"], - [96, "vector"] - ], - - "ocean-transition-check": [ - [16, "vector"] - ], - - "ocean-trans-add-upload-strip": [ - [16, "vector"] - ], - - "draw-ocean-transition-seams": [ - [16, "sphere"] - ], - - "(method 32 mayor)": [ - [16, "event-message-block"] - ], - - "(method 43 mayor)": [ - [16, "vector"] - ], - - "(method 10 tippy)": [ - [16, "vector"] - ], - - "compute-and-draw-shadow": [ - [16, "vector"], - [32, "vector"], - [48, "sparticle-cpuinfo"] // kinda a guess - ], - - "find-ground-and-draw-shadow": [ - [16, "vector"], - [32, "vector"], - [48, "collide-tri-result"] - ], - - "(method 20 collide-cache)": [ - [16, "vector"] - ], - - "(method 12 wobbler)": [ - [16, "vector"] - ], - - "(method 12 twister)": [ - [16, "matrix"] - ], - - "target-on-end-of-teetertotter?": [ - [16, "vector"], - [32, "vector"] - ], - - "(event teetertotter-launch)": [ - [16, "event-message-block"] - ], - - "(method 17 rigid-body)": [ - [16, "vector"] - ], - - "matrix-3x3-triple-transpose-product": [ - [16, "matrix"], - [80, "matrix"] - ], - - "(method 10 rigid-body)": [ - [16, "quaternion"] - ], - - "(method 13 rigid-body)": [ - [16, "vector"], - [32, "vector"] - ], - - "(method 16 rigid-body)": [ - [16, "vector"], - [32, "vector"] - ], - - "(method 14 rigid-body)": [ - [16, "vector"], - [32, "vector"] - ], - - "(method 18 rigid-body)": [ - [16, "vector"] - ], - - "(method 24 rigid-body-platform)": [ - [16, "vector"] - ], - - "(method 26 rigid-body-platform)": [ - [16, "vector"] - ], - - "(method 27 rigid-body-platform)": [ - [16, "vector"] - ], - - "(method 22 water-anim)": [ - [16, "vector"] - ], - - "(anon-function 9 plat-eco)": [ - [16, "event-message-block"] - ], - - "default-collision-reaction": [ - [16, "vector"], - [32, "vector"], - [48, "vector"], - [96, "vector"] - ], - - "(trans plat-button-move-downward sunken-elevator)": [ - [16, "vector"], - [32, "vector"], - [48, "event-message-block"] - ], - - "(method 29 sunken-elevator)": [ - [16, "vector"] - ], - "(anon-function 0 title-obs)": [ - [16, "font-context"] - ], - - "print-game-text": [ - [16, "font-context"] - ], - - "draw-string-xy": [ - [16, "font-context"] - ], - - "(method 50 nav-enemy)": [ - [16, "vector"] - ], - - "nav-enemy-init-by-other": [ - [16, "vector"] - ], - - "nav-enemy-turn-to-face-point": [ - [16, "vector"] - ], - - "nav-enemy-facing-point?": [ - [16, "vector"] - ], - - "nav-enemy-jump-post": [ - [16, "vector"] - ], - - "(method 41 nav-enemy)": [ - [16, "vector"], - [32, "vector"] - ], - - "nav-enemy-falling-post": [ - [16, "vector"] // TODO - check collide-shape-moving::62(type, vector, float) - ], - - "nav-enemy-death-post": [ - [16, "vector"] // TODO - check collide-shape-moving::62(type, vector, float) - ], - - "nav-enemy-jump-land-post": [ - [16, "vector"], - [32, "vector"] - ], - - "nav-enemy-facing-direction?": [ - [16, "vector"], - [32, "vector"] - ], - - "nav-enemy-initialize-custom-jump": [ - [16, "vector"], - [32, "vector"] - ], - - "nav-enemy-flee-post": [ - [16, "vector"], - [32, "vector"] - ], - - "(enter nav-enemy-jump-land nav-enemy)": [ - [16, "vector"] - ], - "(code nav-enemy-die nav-enemy)": [ - [16, "event-message-block"] - ], - "(enter nav-enemy-die nav-enemy)": [ - [16, "event-message-block"] - ], - "(trans nav-enemy-flee nav-enemy)": [ - [16, "event-message-block"] - ], - "(trans nav-enemy-patrol nav-enemy)": [ - [16, "event-message-block"] - ], - - "(method 73 nav-enemy)": [ - [16, "event-message-block"] - ], - - "(method 43 nav-enemy)": [ - [16, "event-message-block"] - ], - - "nav-enemy-send-attack": [ - [16, "event-message-block"] - ], - - "birth-pickup-at-point": [ - [16, "vector"] - ], - - "merc-blend-shape": [ - [16, ["array", "int16", 128]] - ], - - "(method 43 bird-lady)": [ - [16, "vector"] - ], - - "(method 32 bird-lady-beach)": [ - [16, "event-message-block"] - ], - - "muse-to-idle": [ - [16, "event-message-block"] - ], - - "(method 32 sculptor)": [ - [16, "event-message-block"] - ], - - "(method 43 sculptor)": [ - [16, "vector"] - ], - - "(method 32 geologist)": [ - [16, "event-message-block"] - ], - - "(method 43 geologist)": [ - [16, "vector"] - ], - - "(method 32 oracle)": [ - [16, "event-message-block"] - ], - - "(method 11 oracle)": [ - [16, "vector"], - [32, "event-message-block"] - ], - - "(method 32 explorer)": [ - [16, "event-message-block"] - ], - - "(method 43 explorer)": [ - [16, "vector"] - ], - - "(method 32 assistant)": [ - [16, "event-message-block"] - ], - - "(method 43 assistant)": [ - [16, "vector"] - ], - - "(code idle assistant)": [ - [16, "vector"], - [32, "vector"] - ], - - "check-drop-level-assistant": [ - [16, "vector"] - ], - - "(method 32 sage)": [ - [16, "event-message-block"] - ], - - "(method 43 sage)": [ - [16, "vector"] - ], - - "(trans idle sage)": [ - [16, "event-message-block"] - ], - - "(method 32 gambler)": [ - [16, "event-message-block"] - ], - - "(method 43 gambler)": [ - [16, "vector"] - ], - - "(method 32 warrior)": [ - [16, "event-message-block"] - ], - - "(method 43 warrior)": [ - [16, "vector"] - ], - - "(exit play-anim warrior)": [ - [16, "event-message-block"] - ], - - "minershort-trans-hook": [ - [16, "vector"] - ], - - "(method 32 minershort)": [ - [16, "event-message-block"] - ], - - "(exit play-anim minershort)": [ - [16, "event-message-block"] - ], - - "(method 43 minershort)": [ - [16, "vector"] - ], - - "(method 33 progress)": [[16, "event-message-block"]], - "hide-progress-screen": [[16, "event-message-block"]], - "progress-init-by-other": [[16, "quaternion"]], - "(post progress-debug)": [[16, "font-context"]], - "(post progress-normal)": [[16, "font-context"]], - "(code progress-normal)": [[16, "event-message-block"]], - "fuel-cell-progress-hud-orbit-callback": [ - [16, "vector"], - [32, "vector"] - ], - "(method 24 progress)": [[16, "font-context"]], - "(method 25 progress)": [[16, "font-context"]], - "(method 26 progress)": [[16, "font-context"]], - "(method 17 progress)": [[16, "font-context"]], - "(method 28 progress)": [[16, "font-context"]], - "(method 27 progress)": [[16, "font-context"]], - - "(method 11 fact-info-target)": [ - [16, "event-message-block"] - ], - - "(anon-function 6 game-info)": [ - [16, "event-message-block"] - ], - - "(anon-function 8 game-info)": [ - [16, "event-message-block"] - ], - - "(method 24 game-info)": [ - [16, "scf-time"] - ], - - "auto-save-post": [ - [16, "font-context"], - [112, "font-context"] - ], - - "auto-save-init-by-other":[ - [16, "event-message-block"] - ], - - "(code error auto-save)": [ - [16, "event-message-block"] - ], - - "(code done auto-save)": [ - [16, "event-message-block"] - ], - - "update-time-of-day": [ - [16, "(array float)"], // TODO - broken! - [48, "vector"] - ], - - "check-drop-level-rain": [ - [16, "vector"] - ], - - "update-rain": [ - [16, "vector"], - [32, "vector"], - [48, "event-message-block"] - ], - - "sparticle-track-sun": [ - [16, "vector"] - ], - - "draw-joint-spheres": [[16, "vector"]], - "(method 16 process-drawable)": [[16, "matrix"], [80, "matrix"], [144, "vector"], [160, "vector"]], - - "(method 16 target)": [ - [16, "vector"], - [32, "vector"], - [48, "vector"] - ], - - "vector-local+!": [ - [16, "vector"] - ], - - "move-forward": [ - [16, "vector"], - [32, "vector"] - ], - - "set-forward-vel": [ - [16, "vector"] - ], - - "delete-back-vel": [ - [16, "vector"], - [32, "vector"] - ], - - "set-side-vel": [ - [16, "vector"] - ], - - "build-conversions": [ - [16, "vector"] - ], - - "vector-turn-to": [ - [16, "vector"], - [32, "vector"] - ], - - "warp-vector-into-surface!": [ - [16, "matrix"] - ], - - "vector<-pad-in-surface!": [ - [16, "vector"] - ], - - "local-pad-angle": [ - [16, "vector"], - [32, "vector"] - ], - - "turn-around?": [ - [16, "vector"], - [32, "vector"] - ], - - "target-move-dist": [ - [16, "vector"] - ], - - "turn-to-vector": [ - [16, "vector"], - [32, "vector"] - ], - - "add-thrust": [ - [16, "vector"], - [32, "vector"], - [48, "vector"], - [64, "vector"], - [80, "vector"], - [96, "vector"], - [112, "vector"], - [128, "vector"], - [144, "vector"], - [160, "vector"], - [176, "vector"], - [192, "vector"], - [208, "vector"], - [224, "vector"] - ], - - "add-gravity": [ - [16, "vector"], - [32, "vector"], - [48, "vector"], - [64, "vector"] - ], - - "target-compute-slopes": [ - [16, "vector"], - [32, "vector"], - [48, "matrix"] - ], - - "do-rotations2": [ - [16, "vector"], - [32, "quaternion"], - [48, "quaternion"] - ], - - "level-setup": [ - [16, "event-message-block"] - ], - - "flag-setup": [ - [16, "vector"], - [32, "event-message-block"], - [112, "vector"], - [128, "vector"], - [144, "vector"], - [160, "vector"] - ], - - "target-compute-edge": [ - [16, "event-message-block"], - [96, "vector"], - [112, "vector"] - ], - - "target-compute-edge-rider": [ - [16, "event-message-block"], - [96, "vector"] - ], - - "target-calc-camera-pos": [ - [16, "vector"] - ], - - "joint-points": [ - [16, "vector"], - [32, "vector"] - ], - - "target-real-post": [ - [16, "vector"], - [32, "vector"], - [48, "vector"] - ], - - "target-swim-post": [ - [16, "vector"] - ], - - "target-no-stick-post": [ - [16, "vector"] - ], - - "target-no-move-post": [ - [16, "collide-edge-hold-list"] // a total guess - ], - - "target-slide-down-post": [ - [16, "vector"], - [32, "vector"], - [48, "vector"], - [64, "matrix"] - ], - - "target-no-ja-move-post": [ - [16, "collide-edge-hold-list"] // a total guess - ], - - "target-print-stats": [ - [16, "vector"], - [32, "vector"], - [48, "vector"] - ], - - "target-compute-pole": [ - [16, "vector"], - [32, "vector"], - [48, "vector"], - [64, "vector"], - [80, "event-message-block"], - [160, "vector"], - [176, "vector"], - [192, "vector"] - ], - - "can-exit-duck?": [ - [16, "collide-using-spheres-params"], - [48, ["inline-array", "sphere", 2]] - ], - - "(method 32 evilbro)": [ - [16, "event-message-block"] - ], - - "(exit play-anim evilbro)": [ - [16, "event-message-block"] - ], - - "(method 29 basebutton)": [ - [16, "event-message-block"] - ], - - "(code use warp-gate)": [ - [16, "event-message-block"] - ], - - "(trans use warp-gate)": [ - [16, "event-message-block"] - ], - - "(anon-function 1 basebutton)": [ - [16, "vector"], - [32, "vector"], - [48, "event-message-block"] - ], - - "(code target-warp-out)": [ - [16, "event-message-block"], - [96, "vector"], - [112, "vector"] - ], - - "dm-anim-tester-func": [ - [16, "event-message-block"] - ], - - "update-actor-vis-box": [ - [16, "vector"] - ], - - "(method 14 level-group)":[ - [16, "vector"], - [32, "vector"] - ], - - "(trans falling beach-rock)": [ - [16, "vector"], - [32, "vector"], - [48, "vector"], - [64, "vector"], - [80, "vector"], - [96, "vector"] - ], - - "(code falling beach-rock)": [ - [16, "event-message-block"] - ], - - "(method 11 beach-rock)": [ - [16, "vector"] - ], - - "birth-func-copy-target-y-rot": [ - [16, "matrix"] - ], - - "birth-func-ground-orient": [ - [16, "vector"], - [32, "collide-tri-result"], - [128, "vector"], - [144, "quaternion"], - [160, "quaternion"] - ], - - "birth-func-target-orient": [ - [32, "vector"], - [48, "vector"], // unused - [64, "quaternion"], - [80, "quaternion"] - ], - - "birth-func-vector-orient": [ - [16, "vector"], - [32, "vector"], // unused - [48, "quaternion"] - ], - - "part-tracker-track-target-joint": [ - [16, "vector"] - ], - - "process-drawable-burn-effect": [ - [16, "rgbaf"], - [32, "rgbaf"], - [48, "vector"] - ], - - "(anon-function 27 projectiles)": [ - [16, "vector"] - ], - - "projectile-collision-reaction": [ - [16, "vector"], - [32, "vector"], - [48, "matrix"], - [96, "vector"], - [112, "event-message-block"], - [192, "vector"], - [208, "vector"] - ], - - "(event projectile-moving projectile)": [ - [16, "event-message-block"] - ], - - "(code projectile-moving projectile)": [ - [16, "vector"] - ], - - "projectile-update-velocity-space-wars": [ - [16, "vector"], - [32, "vector"], - [48, "vector"], - [64, "vector"] - ], - - "(code projectile-die projectile)": [ - [16, "event-message-block"] - ], - - "projectile-init-by-other": [ - [16, "collide-edge-hold-list"] - ], - - "(method 27 projectile-yellow)": [ - [16, "vector"] - ], - - "spawn-projectile-blue": [ - [16, "vector"], - [32, "vector"] - ], - - "(enter plat-button-move-downward jungle-elevator)": [ - [16, "event-message-block"] - ], - - "(trans plat-button-move-downward jungle-elevator)": [ - [16, "vector"], - [32, "vector"], - [48, "event-message-block"] - ], - - "(method 29 jungle-elevator)": [ - [16, "vector"] - ], - - "(event bouncer-wait)": [ - [16, "event-message-block"] - ], - - "hopper-find-ground": [ - [16, "vector"], - [32, "collide-tri-result"] - ], - - "blocking-plane-init-by-other": [ - [16, "matrix"] - ], - - "evilsib-trans-hook-wait": [ - [16, "event-message-block"] - ], - - "(method 32 sequenceB)": [ - [16, "event-message-block"] - ], - - "(event play-anim sequenceB)": [ - [16, "event-message-block"] - ], - - "(exit play-anim sequenceB)": [ - [16, "event-message-block"] - ], - - "sequenceC-can-trans-hook-2": [ - [16, "vector"], - [32, "event-message-block"] - ], - - "sequenceC-can-trans-hook": [ - [16, "event-message-block"] - ], - - "(method 32 sequenceC)": [ - [16, "event-message-block"] - ], - - "sequenceC-trans-hook": [ - [16, "vector"] - ], - - "(trans hidden assistant-firecanyon)": [ - [16, "font-context"] - ], - - "(method 32 sage-bluehut)": [ - [16, "event-message-block"] - ], - - "(exit play-anim sage-bluehut)": [ - [16, "event-message-block"] - ], - - "(method 43 sage-bluehut)": [ - [16, "vector"] - ], - - "(method 37 sharkey)": [ - [16, "vector"] - ], - - "(method 39 sharkey)": [ - [16, "vector"] - ], - - "sharkey-notice-player?": [ - [16, "event-message-block"] - ], - - "sharkey-move-to-attack-position": [ - [16, "vector"], - [32, "vector"], - [48, "vector"] - ], - - "(code nav-enemy-attack sharkey)": [ - [16, "vector"], - [32, "vector"], - [48, "event-message-block"] - ], - - "(trans nav-enemy-chase sharkey)": [ - [16, "event-message-block"] - ], - - "(method 43 lurkercrab)": [ - [16, "vector"], - [32, "vector"] - ], - - "(enter idle assistant-lavatube-end)": [ - [16, "event-message-block"] - ], - - "target-has-all-the-cells?": [ - [16, "event-message-block"] - ], - - "(code idle power-left)": [ - [16, "event-message-block"] - ], - - "(code jump powercellalt)": [ - [16, "trajectory"] - ], - - "(enter target-final-door)": [ - [16, "event-message-block"] - ], - - "(exit target-final-door)": [ - [16, "event-message-block"] - ], - - "(code target-final-door)": [ - [16, "vector"], - [32, "vector"], - [48, "vector"], - [64, "event-message-block"] - ], - - "(method 43 aphid)": [ - [16, "event-message-block"] - ], - - "(code nav-enemy-give-up aphid)": [ - [16, "vector"] - ], - - "aphid-init-by-other": [ - [16, "vector"], - [32, "event-message-block"] - ], - - "voicebox-track": [ - [16, "vector"], - [32, "vector"], - [48, "vector"] - ], - - "crate-standard-event-handler": [ - [16, "event-message-block"] - ], - - "plat-trans": [ - [16, "vector"] - ], - - "(code door-closing eco-door)": [ - [16, "overlaps-others-params"] - ], - - "(code door-open eco-door)": [ - [16, "event-message-block"] - ], - - "(code door-opening eco-door)": [ - [16, "event-message-block"] - ], - - "(code door-closed eco-door)": [ - [16, "event-message-block"] - ], - - "(code plat-button-teleport-to-other-end plat-button)": [ - [16, "vector"] - ], - - "plat-button-camera-on": [ - [16, "event-message-block"] - ], - - "plat-button-camera-off": [ - [16, "event-message-block"] - ], - - "(trans plat-button-move-downward plat-button)": [ - [16, "vector"] - ], - - "(trans plat-button-move-upward plat-button)": [ - [16, "vector"] - ], - - "(event plat-idle plat-eco)": [ - [16, "event-message-block"] - ], - - "(trans plat-idle plat-eco)": [ - [16, "vector"] - ], - - "(anon-function 8 plat-eco)": [ - [16, "event-message-block"] - ], - - "(anon-function 7 plat-eco)": [ - [16, "vector"] // code - ], - - "(event drop-plat-idle)": [ - [16, "event-message-block"] - ], - - "(code drop-plat-rise)": [ - [16, "vector"] - ], - - "(post drop-plat-rise)": [ - [16, "quaternion"] - ], - - "(code drop-plat-drop)": [ - [16, "vector"] - ], - - "(post drop-plat-drop)": [ - [16, "quaternion"] - ], - - "(method 21 drop-plat)": [ - [16, "vector"], - [32, "vector"], - [48, "vector"] - ], - - "citb-drop-plat-spawn-children": [ - [16, "vector"], - [32, "vector"] - ], - - "citb-drop-plat-drop-all-children": [ - [16, "event-message-block"] - ], - - "citb-drop-plat-drop-children": [ - [16, "event-message-block"] - ], - - "(event plat-flip-idle)": [ - [16, "event-message-block"] - ], - - "(code plat-flip-idle)": [ - [16, "vector"] - ], - - "(method 27 square-platform)": [ - [16, "vector"], - [32, "vector"] - ], - - "(event wedge-plat-tip)": [ - [16, "event-message-block"] - ], - - "(event wedge-plat-outer-tip)": [ - [16, "event-message-block"] - ], - - "(event wall-plat-extending)": [ - [16, "event-message-block"] - ], - - "(code wall-plat-extending)": [ - [16, "vector"] - ], - - "(event wall-plat-retracting)": [ - [16, "event-message-block"] - ], - - "(code wall-plat-retracting)": [ - [16, "vector"] - ], - - "(event wall-plat-sync-idle)": [ - [16, "event-message-block"] - ], - - "(code wall-plat-sync-idle)": [ - [16, "vector"] - ], - - "(method 11 wall-plat)": [ - [16, "vector"] - ], - - "(code plunger-lurker-plunge)": [[16, "event-message-block"]], - "(event flying-lurker-fly)": [[16, "event-message-block"]], - "(trans flying-lurker-fly)": [[16, "event-message-block"]], - "flying-lurker-handler": [[16, "event-message-block"]], - "flying-lurker-play-intro": [[16, "event-message-block"]], - "(code flying-lurker-start)": [[16, "event-message-block"]], - "(event flying-lurker-clone)": [[16, "event-message-block"]], - "(event flying-lurker-idle)": [[16, "event-message-block"]], - "(code flying-lurker-idle)": [[16, "event-message-block"]], - "flying-lurker-calc-speed": [ - [16, "vector"], - [32, "vector"] - ], - "(method 20 flying-lurker)": [ - [16, "collide-mesh-cache-tri"], - [112, "vector"], - [128, "vector"], - [144, "bounding-box"], - [176, "vector"] - ], - "flying-lurker-rotate": [ - [16, "matrix"], - [80, "matrix"], - [144, "vector"], - [160, "vector"] - ], - - "(method 18 collide-cache)": [[16, "collide-cache-prim"]], - - "kill-current-level-hint": [[16, "event-message-block"]], - "(exit level-hint-sidekick)": [[16, "event-message-block"]], - "(method 14 level-hint)": [[16, "font-context"]], - "(code level-hint-error)": [[16, "font-context"]], - "ambient-type-hint": [[16, "font-context"]], - "ambient-type-sound": [[32, "sound-spec"]], - "ambient-type-sound-loop": [[16, "sound-spec"]], - - "sp-relaunch-particle-3d": [ - [16, "quaternion"], - [32, "vector"], - [48, "quaternion"] - ], - - "sp-adjust-launch": [ - [16, "sparticle-launchinfo"], - [64, "matrix"], - [128, "vector"], - [144, "matrix"] - ], - - "(method 10 sparticle-launch-control)":[ - [16, "vector"] - ], - - "sparticle-50-to-60":[ - [16, "quaternion"] - ], - - - "sparticle-60-to-50":[ - [16, "quaternion"] - ], - - "sp-orbiter":[ - [16, "vector"], - [32, "vector"], - [48, "matrix"] - ], - - "sp-euler-convert":[ - [16, "vector"], - [32, "quaternion"] - ], - - "sp-rotate-system": [ - [16, "matrix"], - [80, "quaternion"] - ], - - "sp-launch-particles-death": [ - [16, "sprite-vec-data-2d"] // TODO this is probably wrong. - ], - - "birth-func-copy-rot-color": [ - [16, "vector"] - ], - - "birth-func-copy2-rot-color": [ - [16, "vector"], - [32, "vector"] - ], - - "(code nav-enemy-give-up babak)": [ - [16, "vector"] - ], - - "(method 10 gui-query)": [ - [16, "font-context"] - ], - - "(method 46 process-taskable)": [ - [16, "vector"], - [32, "vector"] - ], - - "(trans release process-taskable)": [ - [16, "event-message-block"] - ], - - "(trans give-cell process-taskable)": [ - [16, "event-message-block"] - ], - - "process-taskable-play-anim-code": [ - [16, "event-message-block"] - ], - - "(event idle process-taskable)": [ - [16, "event-message-block"] - ], - - "(trans idle process-taskable)": [ - [16, "font-context"], - [112, "event-message-block"] - ], - - "(post idle process-taskable)": [ - [16, "vector"] - ], - - "babak-with-cannon-ride-cannon-post": [ - [16, "vector"] - ], - - "(code babak-with-cannon-jump-onto-cannon)": [ - [16, "vector"] - ], - - "(code othercam-running)": [ - [16, "vector"], - [32, "vector"] - ], - - "(code wait-for-start flutflut)": [ - [16, "event-message-block"], - [96, "vector"] - ], - - "(code idle flutflut)": [ - [16, "font-context"], - [112, "event-message-block"] - ], - - "(event wait-for-return flutflut)": [ - [16, "event-message-block"] - ], - - "yakow-generate-travel-vector": [ - [16, "vector"], - [32, "vector"] - ], - - "yakow-facing-direction?": [ - [16, "vector"], - [32, "vector"] - ], - - "yakow-facing-point?": [ - [16, "vector"] - ], - - "(enter yakow-graze)": [ - [16, "event-message-block"] - ], - - "(method 13 vehicle-path)": [ - [16, "vector"], - [32, "vector"], - [48, "vector"] - ], - - "(method 12 vehicle-controller)": [ - [16, "vector"], - [32, "vector"] - ], - - "(method 14 vehicle-controller)": [ - [16, "vector"], - [32, "vector"] - ], - - "(method 10 vehicle-controller)": [ - [16, "vector"] - ], - - "(method 23 fishermans-boat)": [ - [16, "vector"], - [32, "vector"], - [48, "vector"], - [64, "vector"], - [80, "vector"], - [96, "vector"], - [112, "vector"] - ], - - "fishermans-boat-wave": [ - [16, "vector"] - ], - - "fishermans-boat-spawn-particles": [ - [16, "vector"] - ], - - "fishermans-boat-play-sounds": [ - [16, "vector"] - ], - - "fishermans-boat-post": [ - [16, "event-message-block"] - ], - - "(code fishermans-boat-leaving-village)": [ - [16, "event-message-block"] - ], - - "(trans fishermans-boat-entering-village)": [ - [16, "event-message-block"] - ], - - "(code fishermans-boat-leaving-misty)": [ - [16, "event-message-block"] - ], - - "(trans fishermans-boat-entering-misty)": [ - [16, "event-message-block"] - ], - - "(exit fishermans-boat-player-control)": [ - [16, "event-message-block"] - ], - - "(code fishermans-boat-player-control)": [ - [16, "event-message-block"] - ], - - "(code fishermans-boat-ride-to-misty)": [ - [16, "event-message-block"] - ], - - "(event fishermans-boat-ride-to-village1)": [ - [16, "event-message-block"] - ], - - "(code fishermans-boat-ride-to-village1)": [ - [16, "event-message-block"] - ], - - "fishermans-boat-leave-dock?": [ - [16, "font-context"] - ], - - "(trans fishermans-boat-player-control)": [ - [16, "vector"] - ], - - "(code fishermans-boat-measurements)": [ - [16, "vector"] - ], - - "(method 15 vehicle-controller)": [ - [16, "vector"], - [32, "vector"], - [48, "vector"], - [64, "vector"] - ], - - "analyze-point-on-path-segment": [ - [16, "vector"] - ], - - "(method 51 muse)": [ - [16, "vector"] - ], - - "muse-check-dest-point": [ - [16, "point-on-path-segment-info"] - ], - - "(code muse-caught)": [ - [16, "event-message-block"] - ], - - "(method 43 bonelurker)": [ - [16, "event-message-block"] - ], - - "bonelurker-stunned-event-handler": [ - [16, "event-message-block"] - ], - - "bonelurker-push-post": [ - [16, "vector"] - ], - - "(code nav-enemy-give-up bonelurker)": [ - [16, "vector"] - ], - - "(code bonelurker-stun)": [ - [16, "vector"] - ], - - "(method 32 assistant-bluehut)": [ - [16, "event-message-block"] - ], - - "(trans idle assistant-bluehut)": [ - [16, "event-message-block"] - ], - - "(exit play-anim assistant-bluehut)": [ - [16, "event-message-block"] - ], - - "(method 32 assistant-levitator)": [ - [16, "event-message-block"] - ], - - "(exit play-anim assistant-levitator)": [ - [16, "event-message-block"] - ], - - "(method 47 assistant-bluehut)": [ - [16, "vector"], - [32, "vector"] - ], - - "(method 43 assistant-bluehut)": [ - [16, "vector"] - ], - - "check-drop-level-assistant-bluehut": [ - [16, "vector"] - ], - - "assistant-levitator-blue-glow": [ - [16, "vector"] - ], - - "(code idle assistant-bluehut)": [ - [16, "vector"], - [32, "vector"], - [48, "vector"] - ], - - "assistant-levitator-blue-beam": [ - [16, "vector"], - [32, "vector"], - [48, "vector"], - [64, "collide-mesh-cache-tri"], - [160, "event-message-block"] - ], - - "(trans hidden assistant-levitator)": [ - [16, "font-context"] - ], - - "(event square-platform-lowering)": [ - [16, "event-message-block"] - ], - - "(method 33 qbert-plat)": [ - [16, "event-message-block"] - ], - - "(method 32 qbert-plat)": [ - [16, "event-message-block"] - ], - - "(event qbert-plat-master-idle)": [ - [16, "event-message-block"] - ], - - "(code qbert-plat-master-do-door)": [ - [16, "event-message-block"] - ], - - "(code qbert-plat-master-wait-for-door)": [ - [16, "event-message-block"] - ], - - "(code qbert-plat-master-idle)": [ - [16, "event-message-block"], - [96, "vector"], - [112, "vector"] - ], - - "keg-event-handler": [ - [16, "event-message-block"] - ], - - "(code keg-paddle-to-path)": [ - [16, "vector"], - [32, "vector"], - [48, "quaternion"], - [64, "quaternion"], - [80, "vector"] - ], - - "(code keg-on-path)": [ - [16, "vector"], - [32, "vector3s"] - ], - - "(code keg-in-chute)": [ - [16, "vector"], - [32, "vector"] - ], - - "keg-init-by-other": [ - [16, "vector"], - [32, "vector"], - [48, "vector"] - ], - - "(code keg-conveyor-paddle-idle)": [ - [16, "event-message-block"] - ], - - "(method 11 keg-conveyor)": [ - [16, "vector"], - [32, "matrix"] - ], - - "swamp-bat-slave-event-handler": [ - [16, "event-message-block"] - ], - - "swamp-bat-launch-slave": [ - [16, "event-message-block"] - ], - - "swamp-bat-slave-path-post": [ - [16, "vector"], - [32, "vector"], - [48, "vector"] - ], - - "(code swamp-bat-slave-idle)": [ - [16, "vector"], - [32, "quaternion"], - [48, "quaternion"], - [64, "vector"] - ], - - "(code swamp-bat-slave-launch)": [ - [16, "vector"], - [32, "vector"] - ], - - "(code swamp-bat-slave-die)": [ - [16, "vector"] - ], - - "swamp-bat-make-path-select-plane": [ - [16, "vector"] - ], - - "(method 44 swamp-rat)": [ - [16, "event-message-block"] - ], - - "(method 39 swamp-rat)": [ - [16, "vector"] - ], - - "(method 38 swamp-rat)": [ - [16, "vector"] - ], - - "(code swamp-rat-spawn)": [ - [16, "vector"] - ], - - "swamp-rat-update-wiggle-target": [ - [16, "vector"], - [32, "vector"], - [48, "vector"] - ], - - "swamp-rat-nest-dummy-event-handler": [ - [16, "event-message-block"] - ], - - "(trans swamp-rat-nest-gestate)": [ - [16, "event-message-block"] - ], - - "(code swamp-rat-nest-victory)": [ - [16, "event-message-block"] - ], - - "swamp-rat-nest-pick-spawn-joint": [ - [16, "vector"], - [32, "vector"], - [48, "vector"] - ], - - "swamp-rat-nest-spawn-rat": [ - [16, "vector"], - [32, "vector"] - ], - - "cavecrystal-light-control-default-callback": [ - [16, "vector"] - ], - - "spiderwebs-default-event-handler": [ - [16, "event-message-block"] - ], - - "(enter nav-enemy-die baby-spider)": [ - [16, "event-message-block"] - ], - - "(code baby-spider-die-fast)": [ - [16, "event-message-block"] - ], - - "(method 39 baby-spider)": [ - [16, "vector"] - ], - - "(enter nav-enemy-idle baby-spider)": [ - [16, "vector"] - ], - - "(method 52 baby-spider)": [ - [16, "vector"], - [32, "vector"], - [48, "vector"] - ], - - "mother-spider-proj-update-velocity": [ - [16, "vector"], - [32, "vector"], - [48, "vector"], - [64, "vector"] - ], - - "(method 28 mother-spider-proj)": [ - [16, "vector"] - ], - - "(code blue-eco-charger-orb-active)": [ - [16, "vector"], - [32, "vector"], - [48, "vector"] - ], - - "(method 21 blue-eco-charger)": [ - [16, "event-message-block"] - ], - - "(method 20 blue-eco-charger)": [ - [16, "event-message-block"] - ], - - "(code blue-eco-charger-idle)": [ - [16, "event-message-block"] - ], - - "(code exit-chamber-charger-puzzle-beaten)": [ - [16, "event-message-block"] - ], - - "(code exit-chamber-idle-in-sunken)": [ - [16, "event-message-block"] - ], - - "(event exit-chamber-idle-in-sunken)": [ - [16, "event-message-block"], - [32, "event-message-block"] - ], - - "(method 24 exit-chamber)": [ - [16, "vector"] - ], - - "(method 23 exit-chamber)": [ - [16, "vector"], - [32, "vector"], - [48, "exit-chamber-items"], - [128, "event-message-block"], - [208, "vector"] - ], - - "tube-thrust": [ - [16, "vector"], - [32, "vector"], - [48, "vector"], - [64, "vector"], - [80, "vector"], - [96, "vector"] - ], - - "target-tube-post": [ - [16, "vector"], - [32, "event-message-block"], - [112, "vector"] - ], - - "(event target-tube-start)": [ - [16, "event-message-block"] - ], - - "(exit target-tube-start)": [ - [16, "event-message-block"] - ], - - "(code target-tube-start)": [ - [16, "event-message-block"], - [96, "vector"] - ], - - "(method 21 sunkenfisha)": [ - [16, "vector"], - [32, "vector"] - ], - - "(method 24 sunkenfisha)": [ - [16, "vector"], - [32, "matrix"], - [96, "vector"] - ], - - "(method 23 sunkenfisha)": [ - [16, "vector"] - ], - - "(trans sunkenfisha-idle)": [ - [16, "vector"] - ], - - "(method 27 sunkenfisha)": [ - [64, "vector"] - ], - - "(event idle minecartsteel)": [ - [16, "collide-overlap-result"] - ], - - "(method 43 assistant-villagec)": [ - [16, "vector"] - ], - - "(method 32 sage-villagec)": [ - [16, "event-message-block"] - ], - - "(method 43 sage-villagec)": [ - [16, "vector"] - ], - - "(trans idle sage-villagec)": [ - [16, "event-message-block"] - ], - - "(exit play-anim sage-villagec)": [ - [16, "event-message-block"] - ], - - "(method 20 cave-trap)": [ - [16, "spawn-baby-spider-work"], - [80, "vector"], - [96, "event-message-block"], - [176, "vector"], - [192, "vector"], - [208, "vector"] - ], - - "(trans cave-trap-idle)": [ - [16, "event-message-block"] - ], - - "ice-cube-default-event-handler": [ - [16, "event-message-block"] - ], - - "(trans yeti-slave-appear-jump-up)": [ - [16, "vector"] - ], - - "(code nav-enemy-give-up yeti-slave)": [ - [16, "vector"] - ], - - "(code yeti-resuming-start)": [ - [16, "vector"], - [32, "vector"] - ], - - "(code yeti-idle)": [ - [16, "vector"], - [32, "vector"] - ], - - "(trans hidden assistant-lavatube-start)": [ - [16, "font-context"] - ], - - "(method 18 nav-control)": [ - [16, "vector"] - ], - - "check-drop-level-firehose-pops": [ - [16, "vector"] - ], - - "birth-func-random-rot": [ - [16, "matrix"], - [80, "vector"], - [96, "vector"] - ], - - "check-drop-level-bigdoor-open-pops": [ - [16, "vector"] - ], - - "check-drop-level-eichar-lighteco-pops": [ - [16, "vector"] - ], - - "check-drop-level-maincave-drip": [ - [16, "vector"] - ], - - "part-tracker-move-to-target": [ - [16, "vector"] - ], - - "part-tracker-track-target": [ - [16, "vector"] - ], - - "check-drop-level-village1-fountain-nosplash": [ - [16, "vector"] - ], - - "check-drop-level-village1-fountain": [ - [16, "vector"] - ], - - "check-drop-level-sagehut": [ - [16, "vector"] - ], - - "check-drop-level-training-mist": [ - [16, "vector"] - ], - - "check-drop-level-training-spout-rain": [ - [16, "vector"] - ], - - "check-drop-level-sagehut2": [ - [16, "vector"] - ], - - "(method 15 hud-money-all)": [ - [16, "font-context"] - ], - - "(method 20 hud-money-all)": [ - [16, "event-message-block"] - ], - - "(method 20 hud-money)": [ - [16, "event-message-block"] - ], - - "fuel-cell-hud-orbit-callback": [ - [16, "vector"], - [32, "vector"] - ], - - "(method 19 hud-fuel-cell)": [ - [16, "vector"] - ], - - "(method 20 hud-fuel-cell)": [ - [16, "event-message-block"], - [96, "quaternion"] - ], - - "hide-hud": [ - [16, "event-message-block"] - ], - - "hide-bottom-hud": [ - [16, "event-message-block"] - ], - - "disable-hud": [ - [16, "event-message-block"] - ], - - "enable-hud": [ - [16, "event-message-block"] - ], - - "hide-hud-quick": [ - [16, "event-message-block"] - ], - - "show-hud": [ - [16, "event-message-block"] - ], - - "convert-to-hud-object": [ - [16, "vector"] - ], - - "(method 16 hud)": [ - [16, "event-message-block"] - ], - - "(enter hud-hidden)": [ - [16, "event-message-block"] - ], - - "(enter hud-arriving)": [ - [16, "event-message-block"] - ], - - "send-hud-increment-event": [ - [16, "event-message-block"] - ], - - "(code hud-collecting)": [ - [16, "vector"] - ], - - "battlecontroller-fill-all-spawners": [ - [16, "vector"], - [32, "event-message-block"] - ], - - "battlecontroller-camera-on": [ - [16, "event-message-block"] - ], - - "(code battlecontroller-die battlecontroller)": [ - [16, "event-message-block"] - ], - - "battlecontroller-battle-begin": [ - [16, "event-message-block"] - ], - - "battlecontroller-update-spawners": [ - [16, "vector"], - [32, "event-message-block"] - ], - - "battlecontroller-spawn-creature-at-spawner": [ - [16, "vector"], - [32, "vector"] - ], - - "battlecontroller-camera-off": [ - [16, "event-message-block"] - ], - - "battlecontroller-spawn-creature-random-spawner": [ - [16, "event-message-block"] - ], - - "(method 10 effect-control)": [ - [16, "event-message-block"], - [96, "vector"], - [112, "vector"], - [128, "vector"], - [144, "vector"] - ], - - "(method 11 effect-control)": [ - [16, "vector"], - [32, "vector"] - ], - - "(method 12 effect-control)": [ - [16, "sound-spec"], - [96, "vector"] - ], - - "(code helix-button-startup)": [ - [16, "vector"] - ], - - "(method 43 green-eco-lurker)": [ - [16, "event-message-block"] - ], - - "(method 73 green-eco-lurker)": [ - [16, "event-message-block"] - ], - - "citb-sagecage-draw-bars": [ - [16, "vector"], - [32, "vector"], - [48, "vector"] - ], - - "(code sunken-pipegame-start-up)": [ - [16, "event-message-block"] - ], - - "(code race-ring-active)": [ - [16, "event-message-block"], - [96, "vector"] - ], - - "(method 11 race-ring)": [ - [16, "vector"], - [32, "vector"] - ], - - "init-sky-regs": [ - [16, "vector"] - ], - - "set-tex-offset": [ - [16, "vector"] - ], - - "sky-tng-setup-cloud-layer": [ - [16,["inline-array", "sky-vertex", 12]] - ], - - "fisher-fish-move": [[16, "vector"]], - "fisher-fish-water": [[16, "vector"]], - "(trans play-accept fisher)": [[16, "vector"]], - "(method 11 fisher)": [[16, "vector"]], - "(code fisher-fish-caught)": [[16, "event-message-block"]], - "(code fisher-fish-die)": [[16, "event-message-block"]], - "(exit fisher-done)": [[16, "event-message-block"]], - "(enter fisher-done)": [[16, "event-message-block"]], - "(event fisher-playing)": [[16, "event-message-block"]], - "(enter fisher-playing)": [[16, "event-message-block"]], - "(exit fisher-playing)": [[16, "event-message-block"]], - "(trans enter-playing fisher)": [[16, "event-message-block"]], - "(code target-fishing)": [ - [16, "event-message-block"], - [96, "vector"], - [112, "quaternion"], - [128, "quaternion"], - [144, "quaternion"] - ], - "(method 43 fisher)": [ - [16, "vector"], - [32, "vector"] - ], - "fisher-draw-display": [[16, "font-context"]], - "(trans fisher-done)": [[16, "font-context"]], - - "(method 10 torus)": [ - [16, "vector"], - [32, "vector"] - ], - "(method 12 torus)": [[16, "matrix"]], - "redshot-trans": [[16, "matrix"]], - "(trans redshot-explode)": [ - [16, "vector"], - [32, "event-message-block"], - [112, "vector"] - ], - "(code darkecobomb-explode)": [[16, "event-message-block"]], - "(event yellowshot-idle)": [[16, "event-message-block"]], - "(trans yellowshot-idle)": [[16, "event-message-block"]], - "(trans darkecobomb-countdown)": [[16, "vector"]], - - "arcing-shot-draw": [ - [16, "vector"], - [32, "vector"] - ], - - "(method 9 torus)": [ - [16, "vector"], - [32, "vector"], - [48, "vector"], - [64, "matrix"], - [128, ["inline-array", "vector", 8]] - ], - - "(method 32 finalbosscam)": [[16, "event-message-block"]], - - "(code cam-robotboss)": [ - [16, "vector"], - [32, "vector"] - ], - - "ecoclaw-beam-particle-callback": [[16, "vector"]], - "robotboss-manipy-trans-hook": [[16, "vector"]], - "robotboss-redshot": [[16, "vector"]], - "robotboss-cut-cam": [[16, "vector"]], - - "robotboss-yellowshot": [ - [16, "vector"], - [32, "vector"], - [48, "event-message-block"] - ], - - "(trans robotboss-white-eco-movie)": [[16, "vector"]], - - "(code robotboss-red-wait)": [ - [16, "vector"], - [32, "redshot-launch-info"] - ], - - "(trans robotboss-yellow-wait)": [ - [16, "vector"], - [32, "event-message-block"], - [112, "vector"] - ], - - "robotboss-setup-for-hits": [ - [16, "sphere"], - [32, "event-message-block"] - ], - - "robotboss-position": [ - [16, "vector"], - [32, "matrix"], - [96, "event-message-block"], - [176, "vector"] - ], - - "robotboss-shooting-trans": [ - [16, "vector"], - [32, "event-message-block"] - ], - - "robotboss-darkecobomb": [ - [16, "vector"], - [32, "vector"] - ], - - "robotboss-redshot-fill-array": [ - [16, "vector"], - [32, "vector"] - ], - - "robotboss-blue-beam": [ - [16, "vector"], - [32, "vector"], - [48, "vector"], - [64, "collide-mesh-cache-tri"], - [160, "vector"], - [176, "event-message-block"] - ], - - "robotboss-bomb-handler": [[16, "event-message-block"]], - "robotboss-blue-done": [[16, "event-message-block"]], - "(exit robotboss-blue-wait)": [[16, "event-message-block"]], - "(enter robotboss-blue-wait)": [[16, "event-message-block"]], - "(exit robotboss-green-wait)": [[16, "event-message-block"]], - "(event robotboss-green-wait)": [[16, "event-message-block"]], - - "(trans robotboss-red-wait)": [ - [16, "event-message-block"], - [96, "vector"] - ], - - "(exit robotboss-red-wait)": [[16, "event-message-block"]], - "(exit robotboss-yellow-wait)": [[16, "event-message-block"]], - "(code robotboss-white-eco-movie)": [[16, "event-message-block"]], - "(event robotboss-yellow-dark-bomb-wait)": [[16, "event-message-block"]], - "(exit robotboss-yellow-dark-bomb-wait)": [[16, "event-message-block"]], - "(code robotboss-daxter-sacrifice-movie)": [[16, "event-message-block"]], - - "robotboss-greenshot": [ - [16, "vector"], - [32, "vector"] - ], - - "(trans robotboss-blue-wait)": [ - [16, "vector"], - [32, "event-message-block"], - [112, "vector"] - ], - - "(code robotboss-blue-wait)": [[16, "event-message-block"]], - - "(method 44 green-eco-lurker)": [[16, "event-message-block"]], - "(method 72 green-eco-lurker)": [[16, "event-message-block"]], - "(enter nav-enemy-die green-eco-lurker)": [[16, "event-message-block"]], - "(event spawn-minions)": [[16, "event-message-block"]], - "(method 51 green-eco-lurker)": [[16, "vector"]], - "(enter green-eco-lurker-appear)": [ - [16, "vector"], - [32, "vector"] - ], - "(code spawn-minions)": [ - [16, "vector"], - [32, "event-message-block"] - ], - - "check-drop-level-lighteco-big-pops": [[16, "vector"]], - "check-drop-level-lighteco-pops": [[16, "vector"]], - "(method 20 light-eco-child)": [[16, "vector"]], - "light-eco-child-default-event-handler": [[16, "event-message-block"]], - "(code light-eco-child-die)": [[16, "event-message-block"]], - "light-eco-mother-default-event-handler": [[16, "event-message-block"]], - "(trans light-eco-child-hit-ground)": [[16, "vector"]], - "(method 21 light-eco-mother)": [[16, "vector"]], - "(method 20 light-eco-mother)": [[16, "vector"]], - - "placeholder-do-not-add-below!": [] -} diff --git a/decompiler/config/jak1_pal/type_casts.jsonc b/decompiler/config/jak1_pal/type_casts.jsonc index d6e6956738..20fc75e2c3 100644 --- a/decompiler/config/jak1_pal/type_casts.jsonc +++ b/decompiler/config/jak1_pal/type_casts.jsonc @@ -1,19 +1,4 @@ -// This file replaces type_hints.jsonc. -// Functions are identified by their "unique name". This is the name after ".function" in the IR2 file. -// Each cast entry represents an override of a register's type at a certain point the function. -// These modifications do not propagate like normal types, so you may have to apply these modifications -// over a range of indices. - -// Entry format: [index, register, override] -// - The index can either be specified as a single integer, or as [min, max]. -// In the case of [min, max], the min index is included, but the max is not. ([1, 4] = 1, 2, 3). -// - The register is a string with the plain PS2 register name. -// - The type is a string with a valid GOAL typespec. -// It is parsed exactly like the compiler, so you can use compound types. -// You should only use register types here. - { - // GCOMMON "(method 2 array)": [ [23, "gp", "(array int32)"], [43, "gp", "(array uint32)"], @@ -30,14 +15,13 @@ [249, "gp", "(array basic)"], [258, "gp", "(array basic)"] ], - "(method 3 array)": [ [44, "gp", "(array int32)"], [62, "gp", "(array uint32)"], [80, "gp", "(array int64)"], [98, "gp", "(array uint64)"], [115, "gp", "(array int8)"], - [132, "gp", "(array int8)"], // bug in game + [132, "gp", "(array int8)"], [150, "gp", "(array int16)"], [168, "gp", "(array uint16)"], [191, "gp", "(array uint128)"], @@ -45,46 +29,34 @@ [226, "gp", "(array float)"], [243, "gp", "(array basic)"] ], - - // GKERNEL "(method 0 cpu-thread)": [[[13, 28], "v0", "cpu-thread"]], - "(method 0 process)": [ [12, "a0", "int"], [[13, 43], "v0", "process"] ], - "(method 0 dead-pool-heap)": [ - [60, "v0", "int"], // a lie, actually the 115 is an align16 constant propagated on addr of heap start. - //[63, "a0", "pointer"], + [60, "v0", "int"], [[61, 73], "v0", "dead-pool-heap"] ], - "(method 21 dead-pool-heap)": [ [5, "v1", "pointer"], [13, "a0", "pointer"], [25, "v1", "pointer"] ], - "(method 5 dead-pool-heap)": [ [3, "v1", "int"], [3, "a0", "int"] ], - "(method 0 protect-frame)": [ [0, "a0", "int"], [[1, 8], "v0", "protect-frame"] ], - "(method 10 process)": [[[24, 30], "s4", "protect-frame"]], - "(method 9 process)": [[43, "s5", "process"]], - "(method 14 dead-pool)": [ [[24, 25], "v1", "(pointer process)"], [[30, 39], "s4", "(pointer process)"] ], - "inspect-process-heap": [ [[4, 11], "s5", "basic"], [17, "s5", "pointer"] @@ -97,14 +69,18 @@ [26, "a1", "symbol"], [42, "a0", "symbol"] ], - "string-cat-to-last-char": [ [3, "s5", "(pointer uint8)"], [4, "s5", "string"] ], // GSTATE - "enter-state": [[68, "s0", "protect-frame"], [101, "t9", "(function object object object object object object none)"]], + "enter-state": [ + [68, "s0", "protect-frame"], + [101, "t9", "(function object object object object object object none)"] + ], + + "send-event-function": [[[7, 12], "a0", "process"]], // MATH "log2": [[3, "v1", "int"]], @@ -128,31 +104,21 @@ [6, "a0", "vif-bank"], [13, "a0", "vif-bank"] ], - "clear-vu1-mem": [[[0, 11], "v1", "(pointer uint32)"]], "clear-vu0-mem": [[[0, 11], "v1", "(pointer uint32)"]], - "dump-vu1-mem": [[[0, 49], "gp", "(pointer uint32)"]], - "dump-vu1-range": [[[0, 54], "s4", "(pointer uint32)"]], - "ultimate-memcpy": [ [[0, 54], "s4", "dma-bank-spr"], [[0, 54], "s3", "dma-bank-spr"] ], - - // dma-buffer "dma-buffer-add-vu-function": [[[9, 33], "t2", "dma-packet"]], - - // dma-bucket "dma-buffer-add-buckets": [ [[1, 4], "v1", "dma-bucket"], [5, "v1", "pointer"], [[9, 11], "v1", "dma-bucket"], [11, "v1", "pointer"] - //[[6, 15], "v1", "dma-bucket"] ], - "dma-buffer-patch-buckets": [ [7, "a0", "(inline-array dma-bucket)"], [8, "a3", "pointer"], @@ -162,12 +128,10 @@ [13, "a0", "(inline-array dma-bucket)"], [19, "a0", "(inline-array dma-bucket)"] ], - "dma-bucket-insert-tag": [ [[2, 6], "v1", "dma-bucket"], [3, "a0", "dma-bucket"] ], - "disasm-vif-details": [ [[62, 94], "s3", "(pointer uint32)"], [[98, 130], "s3", "(pointer uint16)"], @@ -175,25 +139,19 @@ [[168, 198], "s3", "(pointer uint16)"], [[202, 225], "s3", "(pointer uint16)"] ], - "disasm-vif-tag": [ [[81, 85], "t1", "vif-stcycl-imm"], [242, "a0", "vif-unpack-imm"] ], - "disasm-dma-list": [ [25, "v1", "dma-tag"], - [153, "v1", "dma-packet"], [189, "v1", "dma-packet"], [229, "v1", "dma-packet"], [258, "v1", "dma-packet"], [302, "v1", "dma-packet"], [308, "v1", "dma-packet"], - - //[133, "v1", "(pointer uint64)"], [152, "v1", "(pointer uint64)"], - [167, "v1", "(pointer uint64)"], [176, "v1", "(pointer uint64)"], [198, "v1", "(pointer uint64)"], @@ -205,7 +163,6 @@ [324, "v1", "(pointer uint64)"], [334, "v1", "(pointer uint64)"] ], - "default-buffer-init": [ [[8, 15], "a1", "dma-gif-packet"], [[18, 24], "a1", "gs-gif-tag"], @@ -229,16 +186,11 @@ [63, "a1", "(pointer gs-reg64)"], [[69, 72], "a0", "dma-packet"] ], - - // LEVEL "lookup-level-info": [ [3, "a1", "symbol"], [[4, 16], "a1", "level-load-info"] ], - - // DISPLAY "put-display-alpha-env": [[[0, 5], "v1", "gs-bank"]], - "(method 13 profile-bar)": [ [[27, 43], "t2", "dma-packet"], [[46, 56], "t2", "gs-gif-tag"], @@ -247,7 +199,6 @@ [79, "t3", "(pointer gs-xyzf)"], [110, "t2", "(pointer gs-xyzf)"] ], - "draw-sprite2d-xy": [ [[41, 45], "a3", "dma-packet"], [[51, 54], "a3", "gs-gif-tag"], @@ -258,7 +209,6 @@ [[106, 117], "v1", "(pointer dma-tag)"], [109, "a2", "dma-tag"] ], - "draw-quad2d": [ [[22, 28], "t1", "dma-packet"], [[31, 37], "t1", "gs-gif-tag"], @@ -275,7 +225,6 @@ [[120, 131], "v1", "(pointer dma-tag)"], [123, "a2", "dma-tag"] ], - "set-display-gs-state": [ [[3, 10], "t3", "dma-packet"], [[13, 19], "t3", "gs-gif-tag"], @@ -294,7 +243,6 @@ [61, "t3", "(pointer uint64)"], [63, "t3", "(pointer gs-reg64)"] ], - "set-display-gs-state-offset": [ [[3, 10], "t5", "dma-packet"], [[13, 19], "t5", "gs-gif-tag"], @@ -313,7 +261,6 @@ [68, "t5", "(pointer uint64)"], [70, "t5", "(pointer gs-reg64)"] ], - "reset-display-gs-state": [ [[9, 16], "t0", "dma-packet"], [[19, 25], "t0", "gs-gif-tag"], @@ -323,7 +270,6 @@ [46, "a3", "(pointer gs-reg64)"], [51, "a3", "(pointer gs-frame)"], [53, "a3", "(pointer gs-reg64)"], - [55, "a3", "(pointer gs-test)"], [57, "a3", "(pointer gs-reg64)"], [60, "a3", "(pointer gs-texa)"], @@ -333,11 +279,8 @@ [67, "a3", "(pointer uint64)"], [69, "a3", "(pointer gs-reg64)"] ], - "(method 9 connection)": [[8, "a0", "pointer"]], - "(method 10 connection)": [[8, "a0", "pointer"]], - "(method 0 engine)": [[39, "v0", "pointer"]], "(method 12 engine)": [ @@ -351,56 +294,35 @@ ], "(method 15 engine)": [[[0, 36], "v1", "connection"]], - "(method 19 engine)": [[8, "a0", "connection"]], - "(method 20 engine)": [[8, "a0", "connection"]], - "gs-set-default-store-image": [ [9, "t4", "gif-tag64"], [9, "v1", "gif-tag-regs"] ], - "dma-buffer-add-ref-texture": [ [[25, 29], "a3", "dma-packet"], [[32, 44], "a3", "gs-gif-tag"], [[47, 62], "a2", "dma-packet"] ], - "(method 11 level)": [ [[13, 18], "a1", "dma-packet"], - //[19, "a0", "(pointer uint32)"], [[20, 26], "a0", "dma-packet"], - [[50, 55], "a1", "dma-packet"], - // [56, "a0", "(pointer uint32)"], [[60, 63], "a0", "dma-packet"], - [[87, 92], "a1", "dma-packet"], - // [93, "a0", "(pointer uint32)"], [[97, 100], "a0", "dma-packet"], - [[124, 129], "a1", "dma-packet"], - // [130, "a0", "(pointer uint32)"], [[134, 137], "a0", "dma-packet"], - [[162, 167], "a1", "dma-packet"], - // [168, "a0", "(pointer uint32)"], [[172, 175], "a0", "dma-packet"], - [[199, 204], "a1", "dma-packet"], - // [205, "a0", "(pointer uint32)"], [[209, 212], "a0", "dma-packet"], - [[236, 241], "a1", "dma-packet"], - // [242, "a0", "(pointer uint32)"], [[246, 249], "a0", "dma-packet"], - [[273, 278], "a1", "dma-packet"], - // [279, "a0", "(pointer uint32)"], [[283, 286], "a0", "dma-packet"] ], - "(method 14 texture-page)": [ [[18, 22], "a0", "dma-packet"], [[28, 31], "a0", "gs-gif-tag"], @@ -409,7 +331,6 @@ [[44, 45], "a0", "dma-packet"], [45, "a0", "(pointer uint64)"] ], - "(method 13 texture-page)": [ [[45, 49], "a0", "dma-packet"], [[55, 58], "a0", "gs-gif-tag"], @@ -473,11 +394,9 @@ [527, "a0", "(pointer gs-fogcol)"], [[588, 591], "v1", "dma-packet"], - [[678, 681], "v1", "dma-packet"] + [[672, 675], "v1", "dma-packet"] ], - "load-game-text-info": [[4, "v1", "game-text-info"]], - "texture-relocate": [ [[17, 21], "t4", "dma-packet"], [[27, 30], "t4", "gs-gif-tag"], @@ -491,7 +410,6 @@ [77, "t4", "(pointer gs-reg64)"], [[98, 102], "a2", "dma-packet"], [[108, 111], "a2", "gs-gif-tag"], - [132, "a2", "(pointer gs-bitbltbuf)"], [134, "a2", "(pointer gs-reg64)"], [135, "a2", "(pointer gs-trxpos)"], @@ -500,7 +418,6 @@ [141, "a2", "(pointer gs-reg64)"], [143, "a2", "(pointer gs-trxdir)"], [145, "a2", "(pointer gs-reg64)"], - [[157, 161], "a2", "dma-packet"], [[167, 170], "a2", "gs-gif-tag"], [191, "a2", "(pointer gs-bitbltbuf)"], @@ -512,7 +429,6 @@ [202, "a2", "(pointer gs-trxdir)"], [204, "a2", "(pointer gs-reg64)"] ], - "(method 11 texture-pool)": [ [[119, 123], "a0", "dma-packet"], [[129, 132], "a0", "gs-gif-tag"], @@ -521,9 +437,7 @@ [145, "a0", "dma-packet"], [146, "a0", "(pointer uint64)"] ], - "texture-page-login": [[[34, 45], "s2", "texture-page"]], - "upload-vram-data": [ [[9, 15], "a0", "dma-packet"], [[18, 24], "a0", "gs-gif-tag"], @@ -536,9 +450,7 @@ [45, "a0", "(pointer gs-trxdir)"], [47, "a0", "(pointer gs-reg64)"] ], - "texture-page-dir-inspect": [[[133, 136], "v1", "adgif-shader"]], - "upload-vram-pages": [ [[135, 140], "a0", "dma-packet"], [[144, 149], "a0", "gs-gif-tag"], @@ -546,7 +458,6 @@ [154, "a0", "(pointer uint64)"], [[162, 165], "v1", "dma-packet"] ], - "upload-vram-pages-pris": [ [[128, 134], "a0", "dma-packet"], [[137, 143], "a0", "gs-gif-tag"], @@ -554,8 +465,6 @@ [150, "a0", "(pointer gs-reg64)"], [[154, 159], "v1", "dma-packet"] ], - - // RES "(method 19 res-lump)": [ [46, "t2", "(pointer uint64)"], [100, "t3", "(pointer uint64)"], @@ -601,61 +510,35 @@ [[102, 120], "s0", "basic"], [[147, 150], "s0", "collide-mesh"], [[157, 200], "s0", "(array object)"], - //[[197, 199], "s0", "(array basic)"], - //[[236, 240], "a0", "basic"] [235, "s0", "basic"] ], - - // SHADOW-CPU-H "(method 10 shadow-control)": [[1, "v1", "int"]], - - // FACT-H - "(method 0 fact-info-enemy)": [ - [[3, 92], "gp", "fact-info-enemy"] - ], - + "(method 0 fact-info-enemy)": [[[3, 92], "gp", "fact-info-enemy"]], "(method 0 fact-info)": [ //[16, "t9", "(function string none)"], ["_stack_", 16, "res-tag"], [[32, 43], "v1", "(pointer int32)"], [86, "gp", "fact-info"] ], - "(method 0 fact-info-target)": [[[3, 20], "gp", "fact-info-target"]], - "(method 0 align-control)": [[[14, 18], "v0", "align-control"]], - "str-load": [[[20, 36], "s2", "load-chunk-msg"]], - "str-load-status": [ [[18, 22], "v1", "load-chunk-msg"], [26, "v1", "load-chunk-msg"] ], - "str-play-async": [[[8, 16], "s4", "load-chunk-msg"]], - "str-play-stop": [[[7, 14], "s5", "load-chunk-msg"]], - "str-play-queue": [[[19, 27], "s5", "load-chunk-msg"]], - "str-ambient-play": [[[7, 15], "s5", "load-chunk-msg"]], - "str-ambient-stop": [[[7, 16], "s5", "load-chunk-msg"]], - "dgo-load-begin": [[[21, 40], "s2", "load-dgo-msg"]], - "dgo-load-get-next": [[[14, 31], "v1", "load-dgo-msg"]], - "dgo-load-continue": [[[5, 21], "gp", "load-dgo-msg"]], - "string->sound-name": [[[2, 18], "a1", "(pointer uint8)"]], - "ramdisk-load": [[[8, 12], "v1", "ramdisk-rpc-load"]], - "(method 3 generic-tie-interp-point)": [[15, "gp", "(pointer uint128)"]], - "ripple-find-height": [[[22, 72], "s4", "mei-ripple"]], - "(method 0 collide-shape-prim-sphere)": [ [[4, 8], "v0", "collide-shape-prim-sphere"] ], @@ -665,48 +548,34 @@ "(method 0 collide-shape-prim-group)": [ [[11, 18], "v0", "collide-shape-prim-group"] ], - "entity-actor-count": [["_stack_", 16, "res-tag"]], - "entity-actor-lookup": [ ["_stack_", 16, "res-tag"], [[10, 33], "v1", "(pointer uint32)"] ], - "(method 11 joint-mod)": [ [15, "s3", "process-drawable"], [[26, 66], "s3", "fact-info-enemy"] ], - "joint-mod-look-at-handler": [[[2, 254], "gp", "joint-mod"]], - "joint-mod-world-look-at-handler": [[[0, 254], "gp", "joint-mod"]], - "joint-mod-rotate-handler": [[[2, 77], "s4", "joint-mod"]], - "joint-mod-joint-set-handler": [[[2, 13], "s4", "joint-mod"]], - "joint-mod-joint-set*-handler": [[[2, 31], "s5", "joint-mod"]], "joint-mod-wheel-callback": [[[2, 63], "s4", "joint-mod-wheel"]], "joint-mod-set-local-callback": [[[0, 23], "v1", "joint-mod-set-local"]], "joint-mod-set-world-callback": [[[0, 23], "v1", "joint-mod-set-world"]], "joint-mod-blend-local-callback": [[[2, 63], "gp", "joint-mod-blend-local"]], "joint-mod-spinner-callback": [[[2, 63], "gp", "joint-mod-spinner"]], - "(method 11 touching-prims-entry-pool)": [ [[0, 8], "v1", "touching-prims-entry"], [8, "v1", "pointer"], [[9, 11], "v1", "touching-prims-entry"], [[1, 20], "a1", "touching-prims-entry"] ], - "(method 0 touching-list)": [[[6, 9], "v0", "touching-list"]], - "num-func-chan": [[8, "v1", "joint-control-channel"]], - "shrubbery-login-post-texture": [ - //[[13, 41], "a3", "qword"], - // [[13, 41], "a2", "qword"] [[13, 15], "a3", "qword"], [16, "a3", "pointer"], [24, "a3", "pointer"], @@ -718,22 +587,16 @@ [[35, 37], "a3", "qword"], [[35, 37], "a2", "qword"] ], - "(method 3 sparticle-cpuinfo)": [[106, "f0", "float"]], - "camera-teleport-to-entity": [[9, "a0", "transform"]], - "add-debug-sphere-from-table": [[[9, 18], "s1", "(inline-array vector)"]], - "(method 14 actor-link-info)": [[5, "v1", "entity-links"]], "(method 15 actor-link-info)": [[5, "v1", "entity-links"]], - "(method 23 actor-link-info)": [[4, "v1", "entity-links"]], "(method 24 actor-link-info)": [[4, "v1", "entity-links"]], "(method 9 actor-link-info)": [[[0, 36], "s3", "entity-actor"]], "alt-actor-list-subtask-incomplete-count": [[19, "a0", "entity-links"]], "actor-link-dead-hook": [[1, "v1", "entity-links"]], - "check-irx-version": [[[6, 37], "gp", "sound-rpc-get-irx-version"]], "sound-bank-load": [[[9, 11], "v1", "sound-rpc-load-bank"]], "sound-bank-unload": [[[7, 9], "v1", "sound-rpc-unload-bank"]], @@ -762,7 +625,6 @@ "sound-set-falloff-curve": [[[7, 19], "v1", "sound-rpc-set-falloff-curve"]], "sound-set-sound-falloff": [[[8, 13], "v1", "sound-rpc-set-sound-falloff"]], "sound-set-flava": [[[5, 7], "v1", "sound-rpc-set-flava"]], - "sound-set-fps": [[[5, 7], "v1", "sound-rpc-set-fps"]], "(method 0 ambient-sound)": [ [136, "v1", "sound-spec"], [143, "v1", "sound-spec"], @@ -781,7 +643,6 @@ "(method 12 ambient-sound)": [[[8, 20], "v1", "sound-rpc-set-param"]], "sound-buffer-dump": [[[14, 25], "s3", "sound-rpc-play"]], "actor-link-subtask-complete-hook": [[1, "v1", "entity-links"]], - "(method 0 vol-control)": [ [30, "s5", "res-lump"], [36, "s5", "res-lump"], @@ -792,35 +653,18 @@ [113, "s5", "res-lump"], [117, "s5", "res-lump"] ], - "point-in-air-box?": [[5, "f1", "float"]], - "(method 3 air-box)": [ [16, "f0", "float"], [22, "f0", "float"], [28, "f0", "float"] ], - "joint-anim-inspect-elt": [ [9, "gp", "joint-anim-matrix"], [26, "gp", "joint-anim-transformq"] ], "(method 12 art-group)": [[13, "a0", "art-joint-anim"]], - "(method 0 path-control)": [["_stack_", 16, "res-tag"]], - - "(method 0 curve-control)": [[[13, 55], "s3", "entity"]], - - "nav-mesh-connect": [ - [[4, 15], "s2", "entity-actor"], - [19, "v1", "entity"], - [20, "v1", "entity-links"], - [72, "v1", "entity"], - [73, "v1", "entity-links"], - [76, "a0", "entity"], - [77, "a0", "entity-links"] - ], - "add-debug-point": [ [125, "a3", "pointer"], [[27, 144], "a0", "(pointer uint64)"], @@ -873,18 +717,13 @@ "(method 13 drawable-inline-array-collide-fragment)": [ [[1, 5], "v1", "collide-fragment"] ], - "(method 12 drawable-inline-array-collide-fragment)": [ [[1, 5], "v1", "collide-fragment"] ], - "(method 11 drawable-inline-array-collide-fragment)": [ [[1, 5], "v1", "collide-fragment"] ], - - "main-cheats": [ - [[1327, 1330], "v1", "dma-packet"] - ], + "main-cheats": [[[1123, 1126], "v1", "dma-packet"]], "on": [[33, "t9", "(function cpu-thread function none)"]], "bg": [[37, "a0", "symbol"]], @@ -894,9 +733,7 @@ [[121, 146], "s1", "drawable-inline-array-tfrag"], [[150, 151], "s1", "drawable-tree-instance-tie"] ], - "(method 11 setting-control)": [[[3, 25], "s4", "connection"]], - "(method 9 setting-data)": [ [[4, 345], "s3", "connection"], [[9, 12], "v1", "symbol"], @@ -954,42 +791,17 @@ [[334, 337], "a0", "int"], [[341, 344], "a0", "uint"] ], - "(method 12 level)": [[151, "a0", "symbol"]], "(method 26 level-group)": [[[65, 96], "v0", "level"]], "update-sound-banks": [[[21, 52], "t0", "symbol"]], "(method 16 level-group)": [ [[122, 146], "s1", "continue-point"], - [[115, 154], "s3", "continue-point"] + [[115, 154], "s3", "continue-point"], + [444, "v1", "symbol"] ], "(method 20 level)": [[[43, 45], "s3", "ramdisk-rpc-fill"]], - "(anon-function 29 process-drawable)": [ - [[0, 99999], "s6", "process-drawable"] - ], - - "ja-done?": [[[0, 999], "s6", "process-drawable"]], - "ja-min?": [[[0, 999], "s6", "process-drawable"]], - "ja-max?": [[[0, 999], "s6", "process-drawable"]], - "ja-num-frames": [[[0, 999], "s6", "process-drawable"]], - "ja-frame-num": [[[0, 999], "s6", "process-drawable"]], - "ja-aframe-num": [[[0, 999], "s6", "process-drawable"]], - "ja-aframe": [[[0, 999], "s6", "process-drawable"]], - "ja-step": [[[0, 999], "s6", "process-drawable"]], - "ja-channel-set!": [[[0, 999], "s6", "process-drawable"]], - "ja-channel-push!": [[[0, 999], "s6", "process-drawable"]], - "ja-group-size": [[[0, 999], "s6", "process-drawable"]], - "ja-eval": [[[0, 999], "s6", "process-drawable"]], - "ja-blend-eval": [[[0, 999], "s6", "process-drawable"]], - "ja-post": [ - [[0, 999], "s6", "process-drawable"], - [54, "a1", "process"] - ], - "transform-post": [[[0, 999], "s6", "process-drawable"]], - "rider-trans": [[[0, 999], "s6", "process-drawable"]], - "rider-post": [[[0, 999], "s6", "process-drawable"]], - "pusher-post": [[[0, 999], "s6", "process-drawable"]], - "process-drawable-delay-player": [[[0, 999], "s6", "process-drawable"]], + "ja-post": [[54, "a1", "process"]], "upload-generic-shrub": [ [[3, 13], "t0", "dma-packet"], @@ -1001,91 +813,27 @@ [[128, 152], "a2", "dma-packet"], [[157, 162], "a1", "dma-packet"] ], - "(top-level-login task-control)": [[165, "v1", "symbol"]], - - "task-control-reset": [ - [[7, 13], "a0", "task-control"], - [[17, 21], "a0", "task-control"] - ], - - "(anon-function 494 task-control)": [[32, "v0", "float"]], - "(anon-function 493 task-control)": [[32, "v0", "float"]], - "(anon-function 480 task-control)": [[13, "v0", "float"]], - "(anon-function 477 task-control)": [[38, "v0", "float"]], - "(anon-function 476 task-control)": [[38, "v0", "float"]], - "(anon-function 475 task-control)": [ - [37, "v0", "float"], - [81, "v0", "float"] - ], - "(anon-function 474 task-control)": [ - [37, "v0", "float"], - [81, "v0", "float"] - ], - "(anon-function 426 task-control)": [[32, "v0", "float"]], - "(anon-function 425 task-control)": [[32, "v0", "float"]], - "(anon-function 415 task-control)": [[32, "v0", "float"]], - "(anon-function 414 task-control)": [[32, "v0", "float"]], - "(anon-function 365 task-control)": [[32, "v0", "float"]], - "(anon-function 364 task-control)": [[32, "v0", "float"]], - "(anon-function 363 task-control)": [[32, "v0", "float"]], - "(anon-function 362 task-control)": [[32, "v0", "float"]], - "(anon-function 337 task-control)": [[32, "v0", "float"]], - "(anon-function 336 task-control)": [[32, "v0", "float"]], - "(anon-function 227 task-control)": [ - [[14, 16], "t9", "(function process event-message-block float)"] - ], - "(anon-function 286 task-control)": [ - [[14, 16], "t9", "(function process event-message-block float)"] - ], - "(anon-function 366 task-control)": [ - [[14, 16], "t9", "(function process event-message-block float)"] - ], - "(anon-function 367 task-control)": [ - [[14, 16], "t9", "(function process event-message-block float)"] - ], - "(anon-function 368 task-control)": [ - [[14, 16], "t9", "(function process event-message-block float)"] - ], - "(anon-function 369 task-control)": [ - [[14, 16], "t9", "(function process event-message-block float)"] - ], - "(anon-function 380 task-control)": [ - [[14, 16], "t9", "(function process event-message-block float)"] - ], - "(anon-function 383 task-control)": [ - [[14, 16], "t9", "(function process event-message-block float)"] - ], - "(anon-function 390 task-control)": [ - [[14, 16], "t9", "(function process event-message-block float)"] - ], - "(anon-function 393 task-control)": [ - [[14, 16], "t9", "(function process event-message-block float)"] - ], - "(anon-function 400 task-control)": [ - [[14, 16], "t9", "(function process event-message-block float)"] - ], - "(anon-function 403 task-control)": [ - [[14, 16], "t9", "(function process event-message-block float)"] - ], - "(anon-function 435 task-control)": [ - [[14, 16], "t9", "(function process event-message-block float)"] - ], - "(anon-function 445 task-control)": [ - [[14, 16], "t9", "(function process event-message-block float)"] - ], - "(anon-function 455 task-control)": [ - [[14, 16], "t9", "(function process event-message-block float)"] - ], - "(anon-function 38 task-control)": [[13, "v0", "float"]], - "(anon-function 28 task-control)": [[13, "v0", "float"]], - + "(anon-function 227 task-control)": [[17, "v1", "float"]], + "(anon-function 286 task-control)": [[17, "v1", "float"]], + "(anon-function 366 task-control)": [[17, "v1", "float"]], + "(anon-function 367 task-control)": [[17, "v1", "float"]], + "(anon-function 368 task-control)": [[17, "v1", "float"]], + "(anon-function 369 task-control)": [[17, "v1", "float"]], + "(anon-function 380 task-control)": [[17, "v1", "float"]], + "(anon-function 383 task-control)": [[17, "v1", "float"]], + "(anon-function 390 task-control)": [[17, "v1", "float"]], + "(anon-function 393 task-control)": [[17, "v1", "float"]], + "(anon-function 400 task-control)": [[17, "v1", "float"]], + "(anon-function 403 task-control)": [[17, "v1", "float"]], + "(anon-function 435 task-control)": [[17, "v1", "float"]], + "(anon-function 445 task-control)": [[17, "v1", "float"]], + "(anon-function 455 task-control)": [[17, "v1", "float"]], "(method 18 game-info)": [ [4, "v1", "symbol"], [5, "v1", "level-load-info"], [10, "s3", "continue-point"] ], - "(method 9 game-info)": [ [ [270, 286], @@ -1093,43 +841,41 @@ "(function cpu-thread function object object object object pointer)" ] ], - "(method 25 game-info)": [ [4, "v1", "game-save-tag"], - [69, "v1", "pointer"], - [[7, 69], "v1", "game-save-tag"], - [[88, 154], "s4", "game-save-tag"], - [170, "s4", "pointer"], - [[182, 221], "s4", "game-save-tag"], - [222, "s4", "pointer"], - [514, "s4", "pointer"], - [223, "a1", "(pointer uint8)"], + [53, "v1", "pointer"], + [[7, 53], "v1", "game-save-tag"], + [[72, 138], "s4", "game-save-tag"], + [154, "s4", "pointer"], + [[166, 205], "s4", "game-save-tag"], + [206, "s4", "pointer"], + [498, "s4", "pointer"], + [207, "a1", "(pointer uint8)"], + [[219, 220], "s4", "game-save-tag"], + [223, "s4", "pointer"], + [224, "a1", "(pointer uint8)"], [[235, 236], "s4", "game-save-tag"], - [239, "s4", "pointer"], - [240, "a1", "(pointer uint8)"], - [[251, 252], "s4", "game-save-tag"], - [265, "s4", "pointer"], - [[277, 278], "s4", "game-save-tag"], - [291, "s4", "pointer"], - [309, "s4", "game-save-tag"], - [318, "s4", "pointer"], - [319, "a2", "(pointer uint8)"], - [331, "s4", "game-save-tag"], - [335, "s4", "pointer"], - [359, "v1", "(pointer uint8)"], - [368, "v1", "(pointer uint8)"], - [[376, 436], "s4", "game-save-tag"], - [439, "s4", "pointer"], - [440, "a1", "(pointer uint8)"], - [452, "s4", "game-save-tag"], - [456, "s4", "pointer"], - [472, "s4", "game-save-tag"], - [476, "s4", "pointer"], - [492, "s4", "game-save-tag"], - [496, "s4", "pointer"], - [[509, 511], "s4", "game-save-tag"] + [249, "s4", "pointer"], + [[261, 262], "s4", "game-save-tag"], + [275, "s4", "pointer"], + [293, "s4", "game-save-tag"], + [302, "s4", "pointer"], + [303, "a2", "(pointer uint8)"], + [315, "s4", "game-save-tag"], + [319, "s4", "pointer"], + [343, "v1", "(pointer uint8)"], + [352, "v1", "(pointer uint8)"], + [[360, 420], "s4", "game-save-tag"], + [423, "s4", "pointer"], + [424, "a1", "(pointer uint8)"], + [436, "s4", "game-save-tag"], + [440, "s4", "pointer"], + [456, "s4", "game-save-tag"], + [460, "s4", "pointer"], + [476, "s4", "game-save-tag"], + [480, "s4", "pointer"], + [[493, 495], "s4", "game-save-tag"] ], - "(method 11 game-save)": [ [126, "v1", "pointer"], [213, "s4", "pointer"], @@ -1145,7 +891,6 @@ [196, "s4", "pointer"], [[203, 210], "s4", "game-save-tag"] ], - "drawable-load": [ [17, "s5", "drawable"], [18, "s5", "drawable"], @@ -1174,7 +919,6 @@ [177, "s4", "external-art-buffer"], [183, "s4", "external-art-buffer"], [190, "s4", "external-art-buffer"], - [233, "s4", "spool-anim"], [240, "s4", "spool-anim"], [243, "s4", "spool-anim"], @@ -1183,14 +927,11 @@ [253, "s4", "spool-anim"], [257, "s4", "spool-anim"] ], - - "(method 10 external-art-control)": [[18, "v1", "spool-anim"]], - + "(method 10 external-art-control)": [[18, "v1", "pointer"]], "(method 16 external-art-control)": [ [37, "a0", "process"], [17, "s5", "process-drawable"] ], - "ja-play-spooled-anim": [ [154, "a0", "process"], [286, "s2", "art-joint-anim"], @@ -1200,26 +941,21 @@ [320, "s2", "art-joint-anim"], [324, "s2", "art-joint-anim"] ], - "(method 11 external-art-control)": [ [127, "a0", "process"], [151, "a0", "process"], [168, "a0", "process"], [18, "s5", "process-drawable"] ], - "debug-menu-item-var-update-display-str": [ [[44, 49], "v1", "int"], [[61, 69], "v1", "int"] ], - "debug-menu-item-get-max-width": [[[18, 27], "a0", "debug-menu-item-var"]], - "debug-menu-send-msg": [ [[3, 14], "s2", "debug-menu-item"], [[14, 21], "s2", "debug-menu-item-submenu"] ], - "debug-menu-item-var-joypad-handler": [ [[39, 42], "a2", "int"], [[40, 42], "a3", "int"], @@ -1232,7 +968,6 @@ [[190, 194], "a0", "int"], [[193, 195], "v1", "int"] ], - "debug-menu-find-from-template": [ [3, "s4", "debug-menu"], [[4, 8], "s4", "debug-menu-item"], @@ -1243,20 +978,13 @@ "debug-menu-func-decode": [[[12, 14], "a0", "symbol"]], - "dm-cam-render-float": [[[71, 72], "v0", "float"]], - - "can-hint-be-played?": [ - [[25, 28], "a0", "level-hint"] // kinda a guess, but its the only process that makes sense - ], + "dm-cam-render-float": [[72, "v1", "float"]], + "can-hint-be-played?": [[[25, 28], "a0", "level-hint"]], "debug-menu-rebuild": [[[4, 13], "a0", "debug-menu-item"]], - "debug-menu-item-submenu-render": [[[39, 44], "v1", "dma-packet"]], - "debug-menu-item-function-render": [[[46, 51], "v1", "dma-packet"]], - "debug-menu-item-flag-render": [[[44, 49], "v1", "dma-packet"]], - "debug-menu-render": [ [[45, 48], "v1", "dma-packet"], [[106, 110], "v1", "dma-packet"] @@ -1268,72 +996,58 @@ [[8, 20], "v1", "(pointer float)"], [[0, 60], "f1", "float"] ], - "(anon-function 2 memory-usage)": [ [[171, 415], "s5", "process-drawable"], [[212, 213], "v1", "collide-shape"] ], - "(method 8 process-tree)": [ [31, "v1", "symbol"], [6, "a3", "symbol"] ], - "(method 9 align-control)": [ [[27, 31], "t9", "(function object object object object)"] ], - "(method 8 tie-fragment)": [ [150, "a0", "(pointer int32)"], [[157, 160], "a0", "basic"] ], - "letterbox": [[[29, 33], "v1", "dma-packet"]], - "blackout": [[[20, 24], "v1", "dma-packet"]], - - "(method 10 external-art-control)": [[18, "v1", "pointer"]], - "(method 15 load-state)": [ [31, "t9", "(function int)"], - [291, "s5", "entity-actor"], - [370, "s3", "process-drawable"] + [[291, 303], "s5", "entity-actor"], + [370, "s3", "process-drawable"], + [343, "s5", "symbol"], + [21, "s5", "symbol"] ], - "yakow-default-event-handler": [ [27, "a0", "collide-shape"], [32, "a0", "collide-shape"] ], - "(method 11 yakow)": [ [184, "v1", "vector"], [186, "v1", "vector"], [189, "v1", "vector"] ], - "yakow-post": [ [114, "a0", "collide-shape-moving"], [130, "a0", "collide-shape-moving"] ], - "raw-ray-sphere-intersect": [ [23, "v1", "float"], [36, "v1", "uint"] ], - "(method 0 anim-test-obj)": [ [9, "s4", "anim-test-obj"], [10, "s4", "anim-test-obj"], [13, "s4", "anim-test-obj"], [15, "s4", "anim-test-obj"] ], - "(method 0 anim-test-sequence)": [ [8, "s5", "anim-test-sequence"], [11, "s5", "anim-test-sequence"], [13, "s5", "anim-test-sequence"] ], - "(method 0 anim-test-seq-item)": [ [7, "v0", "anim-test-seq-item"], [8, "v1", "anim-test-seq-item"], @@ -1342,7 +1056,6 @@ [14, "v0", "anim-test-seq-item"], [17, "v0", "anim-test-seq-item"] ], - "(method 3 anim-tester)": [ [12, "s5", "anim-test-obj"], [15, "s5", "anim-test-obj"], @@ -1366,7 +1079,6 @@ [126, "s3", "anim-test-seq-item"], [128, "s3", "anim-test-seq-item"] ], - "anim-test-obj-item-valid?": [ [5, "s5", "anim-test-sequence"], [12, "s5", "anim-test-sequence"], @@ -1377,7 +1089,6 @@ [26, "v1", "anim-test-seq-item"], [28, "v1", "anim-test-seq-item"] ], - "anim-test-obj-remove-invalid": [ [84, "v1", "anim-test-sequence"], [88, "v1", "anim-test-sequence"], @@ -1405,7 +1116,6 @@ [36, "s3", "anim-test-seq-item"], [61, "a0", "anim-test-seq-item"] ], - "anim-tester-reset": [ [14, "v1", "anim-test-obj"], [30, "v1", "anim-test-obj"], @@ -1414,12 +1124,10 @@ [43, "v1", "anim-test-obj"], [[50, 53], "v1", "anim-test-obj"] ], - "anim-tester-save-all-objects": [ [[4, 19], "gp", "anim-test-obj"], [17, "v1", "anim-test-obj"] ], - "anim-tester-save-object-seqs": [ [63, "s5", "anim-test-sequence"], [69, "s5", "anim-test-sequence"], @@ -1441,7 +1149,6 @@ [121, "v1", "anim-test-seq-item"], [122, "s4", "anim-test-seq-item"] ], - "anim-test-obj-list-handler": [ [25, "s5", "anim-test-obj"], [31, "s5", "anim-test-obj"], @@ -1451,7 +1158,6 @@ [112, "v1", "anim-tester"], [[202, 205], "v1", "dma-packet"] ], - "anim-test-anim-list-handler": [ [2, "s5", "anim-test-obj"], [25, "s5", "anim-test-obj"], @@ -1472,7 +1178,6 @@ [173, "v1", "anim-test-obj"], [[263, 266], "v1", "dma-packet"] ], - "anim-test-sequence-list-handler": [ [2, "s5", "anim-test-sequence"], [25, "s5", "anim-test-sequence"], @@ -1490,7 +1195,6 @@ [151, "v1", "anim-test-sequence"], [[267, 270], "v1", "dma-packet"] ], - "anim-test-edit-sequence-list-handler": [ [[82, 85], "v1", "dma-packet"], [[148, 151], "v1", "dma-packet"], @@ -1508,7 +1212,6 @@ [491, "s3", "anim-test-seq-item"], [502, "s3", "anim-test-seq-item"] ], - "anim-tester-interface": [ [[34, 48], "gp", "anim-test-obj"], [[70, 73], "v1", "dma-packet"], @@ -1519,7 +1222,6 @@ [[156, 160], "v1", "anim-test-obj"], [[162, 165], "v1", "anim-test-sequence"] ], - "anim-tester-get-playing-item": [ [4, "t9", "(function glst-list int anim-test-seq-item)"], [20, "t9", "(function glst-list int anim-test-seq-item)"], @@ -1528,7 +1230,6 @@ [25, "v0", "anim-test-seq-item"], [5, "v0", "anim-test-seq-item"] ], - "anim-tester-add-newobj": [ ["_stack_", 128, "anim-test-obj"], [[2, 185], "s2", "anim-test-obj"], @@ -1543,22 +1244,16 @@ [171, "v1", "anim-test-seq-item"], [173, "v1", "anim-test-seq-item"] ], - - "anim-tester-start": [[20, "t9", "(function process function none)"]], - "anim-tester-set-name": [ [[34, 51], "s3", "anim-test-obj"], [[40, 63], "s5", "anim-test-sequence"] ], - "anim-tester-add-sequence": [[[33, 102], "s5", "anim-test-obj"]], - "(anon-function 11 anim-tester)": [ [[23, 113], "s4", "anim-test-obj"], [[83, 338], "gp", "anim-test-sequence"], [[123, 187], "s4", "art-joint-anim"] ], - "(method 10 bsp-header)": [ [[51, 61], "a0", "(pointer uint128)"], [[51, 61], "a1", "(pointer uint128)"], @@ -1568,34 +1263,30 @@ [5, "a0", "terrain-bsp"], [8, "a0", "terrain-bsp"] ], - "(method 15 bsp-header)": [ [5, "a0", "terrain-bsp"], [8, "a0", "terrain-bsp"] ], "upload-vis-bits": [ - [[4,16], "a1", "(pointer uint128)"], + [[4, 16], "a1", "(pointer uint128)"], [[12, 14], "a0", "(pointer uint128)"], - [[20,22], "a2", "(pointer uint128)"], + [[20, 22], "a2", "(pointer uint128)"], [[28, 30], "a0", "(pointer uint128)"], [[32, 34], "a2", "(pointer uint128)"] ], - "bsp-camera-asm": [ [[4, 14], "a1", "bsp-node"], [[0, 9], "v1", "bsp-node"], [[12, 16], "v1", "bsp-node"] ], - "level-remap-texture": [ [15, "t0", "(pointer int32)"], [21, "t0", "(pointer int32)"], [19, "t0", "(pointer uint64)"], [12, "v1", "int"] ], - "sprite-add-matrix-data": [ [[5, 15], "a2", "dma-packet"], [[24, 29], "a1", "matrix"], @@ -1603,9 +1294,7 @@ [[60, 97], "a1", "matrix"], [[116, 129], "a1", "vector"] ], - "sprite-add-frame-data": [[[8, 16], "a0", "dma-packet"]], - "sprite-add-2d-chunk": [ [[12, 20], "a0", "dma-packet"], [[45, 52], "a0", "dma-packet"], @@ -1613,7 +1302,6 @@ [[80, 87], "v1", "dma-packet"], [65, "a3", "int"] ], - "sprite-add-3d-chunk": [ [[11, 19], "a0", "dma-packet"], [[44, 51], "a0", "dma-packet"], @@ -1621,7 +1309,6 @@ [[79, 87], "v1", "dma-packet"], [65, "a3", "int"] ], - "sprite-add-shadow-chunk": [ [[11, 19], "a0", "dma-packet"], [[37, 44], "a0", "dma-packet"], @@ -1630,7 +1317,6 @@ [[105, 121], "s1", "adgif-shader"], [[130, 138], "v1", "dma-packet"] ], - "sprite-draw": [ [[33, 37], "a0", "dma-packet"], [[43, 46], "a0", "gs-gif-tag"], @@ -1643,7 +1329,6 @@ [[125, 129], "a0", "dma-packet"], [[143, 146], "v1", "dma-packet"] ], - "sprite-init-distorter": [ [59, "a3", "uint"], [[3, 7], "a2", "dma-packet"], @@ -1662,7 +1347,6 @@ [51, "a2", "(pointer gs-reg64)"], [[62, 67], "a1", "dma-packet"] ], - "sprite-draw-distorters": [ [[70, 90], "a0", "vector"], [72, "v1", "vector"], @@ -1715,7 +1399,6 @@ ], "cam-standard-event-handler": [ - [[0, 999], "s6", "camera-slave"], [[16, 30], "s5", "state"], [41, "a0", "vector"], [[5, 8], "t9", "(function object)"], @@ -1723,31 +1406,12 @@ [[30, 32], "t9", "(function object)"] ], - "cam-curve-pos": [[[0, 224], "s6", "camera-slave"]], - - "cam-combiner-init": [ - [[0, 999], "s6", "camera-combiner"] - ], - - "(code cam-combiner-active)": [[[0, 999], "s6", "camera-combiner"]], - "(event cam-combiner-active)": [ [10, "a0", "vector"], - [[0, 20], "s6", "camera-slave"], - [[20, 231], "s6", "camera-combiner"], [[99, 127], "gp", "camera-slave"], [[187, 231], "gp", "camera-slave"] ], - "cam-master-init": [ - [[0, 999], "s6", "camera-master"], - [[111, 115], "t9", "(function cpu-thread function)"], - [[139, 145], "t9", "(function cpu-thread function object object)"], - [[163, 167], "t9", "(function object)"] - ], - - "cam-curve-setup": [[[0, 82], "s6", "camera-slave"]], - "(method 15 tracking-spline)": [ [[57, 59], "a2", "vector"], [[57, 59], "a3", "vector"] @@ -1758,25 +1422,16 @@ [[40, 42], "a1", "vector"] ], - "cam-slave-init-vars": [[[0, 999], "s6", "camera-slave"]], - "cam-slave-get-vector-with-offset": [[[52, 65], "s3", "vector"]], "cam-slave-go": [[[3, 6], "t9", "(function object)"]], "cam-slave-init": [ - [[0, 999], "s6", "camera-slave"], [[47, 50], "t9", "(function object object)"], [[54, 58], "t9", "(function object object)"] ], - "update-mood-village3": [ - [[236, 245], "s0", "(array float)"], - [245, "s0", "(array int8)"], - [[246, 297], "s0", "(array float)"], - [[297, 309], "s0", "(array uint8)"], - [[309, 314], "s0", "matrix"] // TODO - there is no way this is correct lol - ], + "update-mood-village3": [[[245, 311], "s0", "village3-states"]], "update-mood-citadel": [ [291, "s5", "(pointer float)"], @@ -1808,10 +1463,11 @@ [144, "s4", "(pointer float)"] ], - "update-mood-snow": [ - [93, "s5", "vector"], - [110, "s5", "vector"] - ], + "update-mood-snow": [[[30, 111], "s5", "snow-states"]], + + "update-mood-ogre": [[[53, 145], "s4", "ogre-states"]], + + "update-mood-finalboss": [[[40, 348], "s4", "finalboss-states"]], "ocean-trans-add-upload-table": [ [44, "a0", "dma-packet"], @@ -1884,22 +1540,16 @@ [[78, 79], "a0", "dma-packet"], [79, "a0", "(pointer uint64)"] ], - "(event water-vol-idle water-anim)": [ - [6, "a0", "vector"] - ], + "(event water-vol-idle water-anim)": [[6, "a0", "vector"]], - "(method 22 water-anim)": [ - [25, "s3", "basic"] - ], + "(method 22 water-anim)": [[25, "s3", "basic"]], "(method 25 water-anim)": [ [25, "v0", "(pointer float)"], ["_stack_", 16, "res-tag"] ], - "(method 22 rigid-body-platform)": [ - [26, "f0", "float"] - ], + "(method 22 rigid-body-platform)": [[26, "f0", "float"]], "rigid-body-platform-event-handler": [ [28, "v1", "process-drawable"], @@ -1923,13 +1573,9 @@ [14, "t9", "(function process-drawable int process-drawable)"] ], - "(method 10 rigid-body)": [ - [50, "v1", "vector"] - ], + "(method 10 rigid-body)": [[50, "v1", "vector"]], - "(method 22 mud)": [ - [35, "v0", "(pointer float)"] - ], + "(method 22 mud)": [[35, "v0", "(pointer float)"]], "(method 11 twister)": [ [7, "s4", "twist-joint"], @@ -1944,21 +1590,11 @@ [82, "s4", "twist-joint"] ], - "(code teetertotter-launch)": [ - [11, "v1", "art-joint-anim"] - ], + "(code teetertotter-launch)": [[11, "v1", "art-joint-anim"]], - "(code teetertotter-bend)": [ - [10, "v1", "art-joint-anim"] - ], + "(code teetertotter-bend)": [[10, "v1", "art-joint-anim"]], - "misty-camera-view": [ - [25, "v1", "handle"] - ], - - "(method 11 silostep)": [ - [100, "v1", "art-joint-anim"] - ], + "(method 11 silostep)": [[100, "v1", "art-joint-anim"]], "(enter plat-button-pressed sunken-elevator)": [ [40, "v1", "village2cam"], @@ -1973,9 +1609,7 @@ [13, "v0", "(state sunken-elevator)"] ], - "(method 27 sunken-elevator)": [ - [37, "v1", "art-joint-anim"] - ], + "(method 27 sunken-elevator)": [[37, "v1", "art-joint-anim"]], "nav-enemy-set-base-collide-sphere-collide-with": [ [19, "v1", "collide-shape-prim-group"], @@ -1991,16 +1625,10 @@ [55, "s5", "collide-shape-prim"] ], - "nav-enemy-jump-land-anim": [ - [39, "v1", "art-joint-anim"] - ], + "nav-enemy-jump-land-anim": [[39, "v1", "art-joint-anim"]], - "(code nav-enemy-victory nav-enemy)": [ - [27, "v1", "art-joint-anim"] - ], - "(code nav-enemy-notice nav-enemy)": [ - [27, "v1", "art-joint-anim"] - ], + "(code nav-enemy-victory nav-enemy)": [[27, "v1", "art-joint-anim"]], + "(code nav-enemy-notice nav-enemy)": [[27, "v1", "art-joint-anim"]], "(code nav-enemy-patrol nav-enemy)": [ [23, "v1", "art-joint-anim"], [105, "v1", "art-joint-anim"], @@ -2013,12 +1641,8 @@ [91, "v1", "art-joint-anim"] ], - "nav-enemy-set-hit-from-direction": [ - [19, "v1", "process-drawable"] - ], - "(method 45 nav-enemy)": [ - [14, "v1", "process-mask"] - ], + "nav-enemy-set-hit-from-direction": [[19, "v1", "process-drawable"]], + "(method 45 nav-enemy)": [[14, "v1", "process-mask"]], "nav-enemy-default-event-handler": [ [62, "a0", "vector"], @@ -2031,13 +1655,9 @@ [19, "t9", "(function process-drawable int none)"] ], - "(enter nav-enemy-patrol nav-enemy)": [ - [8, "v1", "int"] - ], + "(enter nav-enemy-patrol nav-enemy)": [[8, "v1", "int"]], - "(code nav-enemy-fuel-cell nav-enemy)": [ - [31, "v1", "int"] - ], + "(code nav-enemy-fuel-cell nav-enemy)": [[31, "v1", "int"]], "(method 16 level)": [ [252, "v1", "(pointer uint128)"], @@ -2056,13 +1676,13 @@ [140, "s1", "(pointer uint128)"] ], - "unpack-comp-huf": [ - [[21, 23], "t3", "(pointer uint16)"] - ], + "(method 15 level)": [[[21, 60], "v1", "(inline-array box8s)"]], - "(method 9 merc-fragment)": [ - [[13,161], "s3", "adgif-shader"] - ], + "(method 27 level)": [[[23, 68], "s2", "(inline-array box8s)"]], + + "unpack-comp-huf": [[[21, 23], "t3", "(pointer uint16)"]], + + "(method 9 merc-fragment)": [[[13, 161], "s3", "adgif-shader"]], "(method 9 merc-effect)": [ [49, "s4", "pointer"], @@ -2077,7 +1697,7 @@ [[12, 18], "gp", "(pointer vif-tag)"] ], - "merc-vu1-init-buffer":[ + "merc-vu1-init-buffer": [ [[27, 31], "a0", "dma-packet"], [[37, 40], "a0", "gs-gif-tag"], [44, "a0", "(pointer gs-test)"], @@ -2092,41 +1712,23 @@ [103, "a1", "pointer"] ], - "merc-edge-stats": [ - [[33, 35], "v1", "merc-ctrl"] - ], + "merc-edge-stats": [[[33, 35], "v1", "merc-ctrl"]], - "(method 9 screen-filter)": [ - [[23, 26], "v1", "dma-packet"] - ], + "(method 9 screen-filter)": [[[23, 26], "v1", "dma-packet"]], - "(method 48 mayor)": [ - [32, "a0", "int"] - ], + "(method 48 mayor)": [[32, "a0", "int"]], - "(method 43 mayor)": [ - [19, "v1", "float"] - ], + "(method 43 mayor)": [[19, "v1", "float"]], - "(post idle mayor)": [ - [4, "t9", "(function none)"] - ], + "(post idle mayor)": [[4, "t9", "(function none)"]], - "(method 43 bird-lady)": [ - [19, "v1", "float"] - ], + "(method 43 bird-lady)": [[19, "v1", "float"]], - "muse-to-idle": [ - [57, "v1", "muse"] - ], + "muse-to-idle": [[57, "v1", "muse"]], - "(method 32 sculptor)": [ - [87, "v1", "muse"] - ], + "(method 32 sculptor)": [[87, "v1", "muse"]], - "(method 43 sculptor)": [ - [19, "v1", "float"] - ], + "(method 43 sculptor)": [[19, "v1", "float"]], "(code idle sculptor)": [ [71, "v1", "art-joint-anim"], @@ -2152,21 +1754,13 @@ [936, "v1", "art-joint-anim"] ], - "(method 43 geologist)": [ - [19, "v1", "float"] - ], + "(method 43 geologist)": [[19, "v1", "float"]], - "(anon-function 3 oracle)": [ - [11, "v1", "collide-shape"] - ], + "(anon-function 3 oracle)": [[11, "v1", "collide-shape"]], - "(method 43 farmer)": [ - [19, "v1", "float"] - ], + "(method 43 farmer)": [[19, "v1", "float"]], - "(method 43 explorer)": [ - [19, "v1", "float"] - ], + "(method 43 explorer)": [[19, "v1", "float"]], "(code idle explorer)": [ [36, "v1", "float"], @@ -2189,13 +1783,9 @@ [783, "v1", "art-joint-anim"] ], - "(method 32 assistant)": [ - [39, "v1", "float"] - ], + "(method 32 assistant)": [[39, "v1", "float"]], - "(method 43 assistant)": [ - [19, "v1", "float"] - ], + "(method 43 assistant)": [[19, "v1", "float"]], "(code idle assistant)": [ [35, "v1", "float"], @@ -2211,56 +1801,66 @@ [602, "v1", "art-joint-anim"] ], - "check-drop-level-assistant": [ - [17, "v1", "float"] - ], + "check-drop-level-assistant": [[17, "v1", "float"]], "(method 32 sage)": [ [76, "v1", "float"], [262, "v1", "assistant"] ], - "(method 43 sage)": [ - [19, "v1", "float"] - ], + "(method 43 sage)": [[19, "v1", "float"]], "(code idle sage)": [ [35, "v1", "float"], [155, "v1", "art-joint-anim"] ], - "(method 43 gambler)": [ - [19, "v1", "float"] - ], + "(method 43 gambler)": [[19, "v1", "float"]], - "(code idle gambler)": [ - [93, "v1", "float"] - ], + "(code idle gambler)": [[93, "v1", "float"]], - "(method 32 warrior)": [ - [76, "v1", "handle"] - ], + "(method 32 warrior)": [[76, "v1", "handle"]], - "(method 43 warrior)": [ - [19, "v1", "float"] - ], + "(method 43 warrior)": [[19, "v1", "float"]], "(method 32 minershort)": [ [44, "v1", "float"], [112, "v1", "float"] ], - "(method 43 minershort)": [ - [19, "v1", "float"] - ], + "(method 43 minershort)": [[19, "v1", "float"]], "(method 33 progress)": [ - [30, "t9", "(function process function object object object object object)"], - [159, "t9", "(function process function object object object object object)"], - [288, "t9", "(function process function object object object object object)"], - [417, "t9", "(function process function object object object object object)"], - [546, "t9", "(function process function object object object object object)"], - [675, "t9", "(function process function object object object object object)"], + [ + 30, + "t9", + "(function process function object object object object object)" + ], + [ + 159, + "t9", + "(function process function object object object object object)" + ], + [ + 288, + "t9", + "(function process function object object object object object)" + ], + [ + 417, + "t9", + "(function process function object object object object object)" + ], + [ + 546, + "t9", + "(function process function object object object object object)" + ], + [ + 675, + "t9", + "(function process function object object object object object)" + ], [35, "a0", "manipy"], [38, "v1", "manipy"], [50, "v1", "manipy"], @@ -2292,9 +1892,7 @@ [4, "f0", "float"] ], - "(method 7 progress)": [ - [16, "a2", "pointer"] - ], + "(method 7 progress)": [[16, "a2", "pointer"]], "(method 17 progress)": [ [[466, 471], "v1", "dma-packet"], @@ -2308,24 +1906,16 @@ [[198, 203], "v1", "dma-packet"] ], - "(method 23 progress)": [ - [103, "v1", "float"] - ], + "(method 23 progress)": [[103, "v1", "float"]], - "(post progress-normal)": [ - [416, "a0", "float"] - ], + "(post progress-normal)": [[416, "a0", "float"]], - "(method 53 progress)": [ - [[0, 999], "gp", "progress-screen"] - ], + "(method 53 progress)": [[[0, 999], "gp", "progress-screen"]], "(method 35 progress)": [[38, "s4", "game-text-id"]], "(method 43 progress)": [[45, "s4", "game-text-id"]], "(method 38 progress)": [[58, "a1", "game-text-id"]], - "draw-percent-bar": [ - [[33, 38], "v1", "dma-packet"] - ], + "draw-percent-bar": [[[33, 38], "v1", "dma-packet"]], "(method 11 fact-info-target)": [ [135, "v1", "target"], @@ -2344,20 +1934,18 @@ [[47, 88], "v1", "connection"] ], - "(anon-function 7 game-info)": [ - [2, "v1", "collide-shape"] - ], + "(anon-function 7 game-info)": [[2, "v1", "collide-shape"]], "(method 24 game-info)": [ [112, "s3", "pointer"], [[113, 165], "a0", "game-save-tag"], [[148, 166], "s2", "game-save-tag"], [[148, 168], "s4", "game-save-tag"], - [[171, 222], "a0", "game-save-tag"], - [[234, 241], "a0", "game-save-tag"], + [[171, 221], "a0", "game-save-tag"], + [[234, 240], "a0", "game-save-tag"], [[253, 276], "a0", "game-save-tag"], [[283, 302], "a0", "game-save-tag"], - [[319, 325], "a1", "game-save-tag"], + [[319, 324], "a1", "game-save-tag"], [[342, 348], "a1", "game-save-tag"], [[395, 468], "a0", "game-save-tag"], [[480, 488], "a0", "game-save-tag"], @@ -2367,13 +1955,11 @@ // [329, "a0", "pointer"], // [338, "a0", "pointer"], // [[173, 230], "a0", "game-save-tag"], - [252, "a0", "(pointer int32)"], + [252, "a0", "(pointer int32)"], [654, "a0", "pointer"] ], - "auto-save-post":[ - [138, "t9", "(function object string object none)"] - ], + "auto-save-post": [[138, "t9", "(function object string object none)"]], "target-compute-pole": [ [12, "s4", "swingpole"], @@ -2386,13 +1972,9 @@ [87, "s4", "swingpole"] ], - "(method 10 target)": [ - [[10, 13], "t9", "(function process-drawable none)"] - ], + "(method 10 target)": [[[10, 13], "t9", "(function process-drawable none)"]], - "draw-history": [ - [[99, 101], "v1", "int"] - ], + "draw-history": [[[99, 101], "v1", "int"]], "(method 9 attack-info)": [ [82, "v1", "process-drawable"], @@ -2401,6 +1983,8 @@ [118, "a0", "process-drawable"] ], + "dm-task-get-money": [[32, "v1", "float"]], + "ground-tween-update": [ [16, "f1", "float"], [20, "f2", "float"], @@ -2408,9 +1992,7 @@ [38, "f1", "float"] ], - "(method 32 evilbro)": [ - [20, "v1", "handle"] - ], + "(method 32 evilbro)": [[20, "v1", "handle"]], "(code idle evilbro)": [ [27, "v1", "art-joint-anim"], @@ -2419,7 +2001,8 @@ ], "all-texture-tweak-adjust": [ - [[35, 44], "s0", "adgif-shader"] + [38, "s0", "adgif-shader"], + [42, "s0", "adgif-shader"] ], "build-instance-list": [ @@ -2556,9 +2139,7 @@ [[5, 15], "v1", "level-load-info"] ], - "(method 26 basebutton)": [ - [31, "v1", "art-joint-anim"] - ], + "(method 26 basebutton)": [[31, "v1", "art-joint-anim"]], "debug-menu-item-var-make-float": [ [30, "t9", "(function int debug-menu-msg float float int)"] @@ -2569,17 +2150,11 @@ [39, "a2", "int"] ], - "process-status-bits": [ - [[15, 59], "s3", "process-drawable"] - ], + "process-status-bits": [[[15, 59], "s3", "process-drawable"]], - "(method 13 level-group)": [ - [[56, 61], "a0", "entity-actor"] - ], + "(method 13 level-group)": [[[56, 61], "a0", "entity-actor"]], - "(method 24 entity)": [ - [[39, 45], "a0", "entity-actor"] - ], + "(method 24 entity)": [[[39, 45], "a0", "entity-actor"]], "(method 23 level-group)": [ [53, "a0", "entity-actor"], @@ -2604,44 +2179,37 @@ [[123, 127], "a0", "process-drawable"] ], - "(method 3 entity)": [ - [7, "t9", "(function entity entity)"] - ], + "(method 3 entity)": [[7, "t9", "(function entity entity)"]], "(method 3 entity-actor)": [ [7, "t9", "(function entity-actor entity-actor)"] ], + "(method 10 drawable-group)": [[19, "s5", "drawable-group"]], + + "(method 15 drawable-group)": [[19, "s5", "drawable-group"]], + "(method 14 level-group)": [ [[54, 164], "s1", "process-drawable"], + [[107, 127], "s0", "(pointer int32)"], + [[153, 162], "v0", "symbol"], [[319, 342], "s0", "process-drawable"], [368, "v1", "(pointer process-drawable)"], [[384, 494], "s5", "process-drawable"] ], - "(method 22 level-group)": [ - [[28, 30], "v0", "(inline-array vector)"] - ], + "(method 22 level-group)": [[[28, 30], "v0", "(inline-array vector)"]], - "expand-vis-box-with-point": [ - [10, "v0", "(inline-array vector)"] - ], + "expand-vis-box-with-point": [[10, "v0", "(inline-array vector)"]], - "(method 28 entity-ambient)": [ - [79, "v1", "int"] - ], + "(method 28 entity-ambient)": [[79, "v1", "int"]], "(method 27 entity-ambient)": [ - [[15, 250], "s5", "symbol"] + [[15, 250], "s5", "symbol"], + [32, "v0", "symbol"] ], - "cam-master-effect": [ - [[0, 999], "s6", "camera-master"] - ], - - "birth-func-vector-orient": [ - [[7, 24], "s3", "sprite-vec-data-2d"] - ], + "birth-func-vector-orient": [[[7, 24], "s3", "sprite-vec-data-2d"]], "process-drawable-burn-effect": [ [28, "a0", "process-drawable"], @@ -2650,21 +2218,17 @@ [64, "a0", "process-drawable"] ], - "process-drawable-random-point!": [ - [[28, 40], "s4", "collide-shape"] - ], - - "(anon-function 0 dark-eco-pool)": [ - [2, "v1", "state"] - ], + "(anon-function 0 dark-eco-pool)": [[2, "v1", "state"]], "(method 25 dark-eco-pool)": [ - [22, "t9", "(function res-lump symbol symbol float structure (pointer res-tag) pointer object)"] + [ + 22, + "t9", + "(function res-lump symbol symbol float structure (pointer res-tag) pointer object)" + ] ], - "(top-level-login beach-rocks)": [ - [78, "v1", "state"] - ], + "(top-level-login beach-rocks)": [[78, "v1", "state"]], "(method 7 beach-rock)": [ [5, "v1", "int"], @@ -2672,9 +2236,7 @@ [19, "t9", "(function process-drawable int none)"] ], - "(method 10 beach-rock)": [ - [21, "t9", "(function process-drawable none)"] - ], + "(method 10 beach-rock)": [[21, "t9", "(function process-drawable none)"]], "(code falling beach-rock)": [ [138, "gp", "handle"], @@ -2682,18 +2244,14 @@ [[158, 165], "s5", "handle"] ], - "(method 11 beach-rock)": [ - [77, "v1", "int"] - ], + "(method 11 beach-rock)": [[77, "v1", "int"]], "(anon-function 27 projectiles)": [ [27, "s4", "collide-shape"], [36, "s4", "collide-shape"] ], - "projectile-update-velocity-space-wars": [ - [60, "a0", "target"] - ], + "projectile-update-velocity-space-wars": [[60, "a0", "target"]], "projectile-init-by-other": [ [70, "v1", "process-drawable"], @@ -2717,18 +2275,21 @@ ], "spawn-projectile-blue": [ - [69, "s2", "(function process function object object object object object object)"] + [ + 69, + "s2", + "(function process function object object object object object object)" + ] ], - "(method 28 projectile-blue)": [ - [27, "v1", "process-drawable"] - ], + "(method 28 projectile-blue)": [[27, "v1", "process-drawable"]], - "(method 27 projectile-yellow)": [ - [70, "v1", "process-mask"] - ], + "(method 27 projectile-yellow)": [[70, "v1", "process-mask"]], - "manipy-init": [[143, "a0", "collide-shape"]], + "manipy-init": [ + [143, "a0", "collide-shape"], + [145, "a0", "collide-shape"] + ], "forall-particles-with-key-runner": [ [32, "s3", "(inline-array sparticle-cpuinfo)"], @@ -2743,13 +2304,9 @@ [43, "t9", "(function none :behavior plat-button)"] ], - "(code bouncer-fire)": [ - [17, "v1", "art-joint-anim"] - ], + "(code bouncer-fire)": [[17, "v1", "art-joint-anim"]], - "(method 39 hopper)": [ - [16, "t9", "(function nav-enemy none)"] - ], + "(method 39 hopper)": [[16, "t9", "(function nav-enemy none)"]], "(code nav-enemy-idle hopper)": [ [16, "v1", "art-joint-anim"], @@ -2766,9 +2323,7 @@ [105, "v1", "art-joint-anim"] ], - "(method 39 junglefish)": [ - [12, "t9", "(function nav-enemy none)"] - ], + "(method 39 junglefish)": [[12, "t9", "(function nav-enemy none)"]], "(code nav-enemy-patrol junglefish)": [ [27, "v1", "art-joint-anim"], @@ -2777,9 +2332,7 @@ [251, "v1", "art-joint-anim"] ], - "(code nav-enemy-attack junglefish)": [ - [14, "v1", "art-joint-anim"] - ], + "(code nav-enemy-attack junglefish)": [[14, "v1", "art-joint-anim"]], "(code nav-enemy-victory junglefish)": [ [14, "v1", "art-joint-anim"], @@ -2800,9 +2353,7 @@ [298, "gp", "evilsis"] ], - "sequenceC-can-trans-hook": [ - [12, "v1", "process-taskable"] - ], + "sequenceC-can-trans-hook": [[12, "v1", "process-taskable"]], "(anon-function 7 sidekick-human)": [ [2, "v1", "process-taskable"], @@ -2837,9 +2388,7 @@ [23, "gp", "assistant-bluehut"] ], - "(method 43 sage-bluehut)": [ - [19, "v1", "float"] - ], + "(method 43 sage-bluehut)": [[19, "v1", "float"]], "(code idle sage-bluehut)": [ [34, "v1", "float"], @@ -2853,29 +2402,17 @@ [329, "v1", "art-joint-anim"] ], - "(method 39 sharkey)": [ - [71, "t9", "(function nav-enemy none)"] - ], + "(method 39 sharkey)": [[71, "t9", "(function nav-enemy none)"]], - "(code nav-enemy-patrol sharkey)": [ - [27, "v1", "art-joint-anim"] - ], + "(code nav-enemy-patrol sharkey)": [[27, "v1", "art-joint-anim"]], - "(code nav-enemy-attack sharkey)": [ - [144, "v1", "art-joint-anim"] - ], + "(code nav-enemy-attack sharkey)": [[144, "v1", "art-joint-anim"]], - "(code nav-enemy-chase sharkey)": [ - [40, "v1", "art-joint-anim"] - ], + "(code nav-enemy-chase sharkey)": [[40, "v1", "art-joint-anim"]], - "(code nav-enemy-stop-chase sharkey)": [ - [22, "v1", "art-joint-anim"] - ], + "(code nav-enemy-stop-chase sharkey)": [[22, "v1", "art-joint-anim"]], - "(code nav-enemy-victory sharkey)": [ - [24, "v1", "art-joint-anim"] - ], + "(code nav-enemy-victory sharkey)": [[24, "v1", "art-joint-anim"]], "(code nav-enemy-chase lurkercrab)": [ [17, "v1", "art-joint-anim"], @@ -2889,13 +2426,9 @@ [191, "v1", "art-joint-anim"] ], - "(code nav-enemy-notice lurkerpuppy)": [ - [24, "v1", "art-joint-anim"] - ], + "(code nav-enemy-notice lurkerpuppy)": [[24, "v1", "art-joint-anim"]], - "(code nav-enemy-victory lurkerpuppy)": [ - [20, "v1", "art-joint-anim"] - ], + "(code nav-enemy-victory lurkerpuppy)": [[20, "v1", "art-joint-anim"]], "(code nav-enemy-give-up lurkerpuppy)": [ [18, "v1", "art-joint-anim"], @@ -2913,56 +2446,33 @@ ], "(code target-demo)": [ - [66, "v1", "handle"], - [69, "v1", "handle"], - [96, "v1", "handle"], - [99, "v1", "handle"], - [126, "v1", "handle"], - [163, "v1", "handle"], - [196, "v1", "handle"], - [229, "v1", "handle"], - [262, "v1", "handle"], - [293, "v1", "handle"], - [323, "v1", "handle"], - [357, "v1", "handle"], - [390, "v1", "handle"], - [423, "v1", "handle"], - [456, "v1", "handle"], - [487, "v1", "handle"], - [518, "v1", "handle"], - [548, "v1", "handle"], - [578, "v1", "handle"], - [129, "v1", "handle"], - [166, "v1", "handle"], - [199, "v1", "handle"], - [232, "v1", "handle"], - [261, "v1", "handle"], - [265, "v1", "handle"], - [296, "v1", "handle"], - [298, "v1", "handle"], - [326, "v1", "handle"], - [360, "v1", "handle"], - [393, "v1", "handle"], - [426, "v1", "handle"], - [459, "v1", "handle"], - [490, "v1", "handle"], - [521, "v1", "handle"], - [551, "v1", "handle"], - [581, "v1", "handle"] + [[65, 73], "v1", "handle"], + [[95, 103], "v1", "handle"], + [[125, 133], "v1", "handle"], + [[162, 170], "v1", "handle"], + [[195, 203], "v1", "handle"], + [[228, 236], "v1", "handle"], + [[261, 269], "v1", "handle"], + [[292, 300], "v1", "handle"], + [[322, 330], "v1", "handle"], + [[356, 364], "v1", "handle"], + [[389, 397], "v1", "handle"], + [[422, 430], "v1", "handle"], + [[455, 463], "v1", "handle"], + [[486, 494], "v1", "handle"], + [[517, 525], "v1", "handle"], + [[548, 555], "v1", "handle"], + [[577, 585], "v1", "handle"] ], - "target-has-all-the-cells?": [ - [17, "v1", "float"] - ], + "target-has-all-the-cells?": [[17, "v1", "float"]], "(code open final-door)": [ [13, "v1", "art-joint-anim"], [66, "v1", "art-joint-anim"] ], - "(code idle powercellalt)": [ - [8, "a1", "process-drawable"] - ], + "(code idle powercellalt)": [[8, "a1", "process-drawable"]], "(code target-final-door)": [ [85, "gp", "handle"], @@ -2992,17 +2502,9 @@ [101, "v1", "art-joint-anim"] ], - "voicebox-track": [ - [4, "a0", "target"] - ], + "(method 27 plat-button)": [[37, "v1", "art-joint-anim"]], - "(method 27 plat-button)": [ - [37, "v1", "art-joint-anim"] - ], - - "(method 11 plat-button)": [ - [17, "v1", "vector"] - ], + "(method 11 plat-button)": [[17, "v1", "vector"]], "(trans plat-button-move-downward plat-button)": [ [[92, 999], "gp", "sound-rpc-set-param"] @@ -3012,17 +2514,11 @@ [[92, 999], "gp", "sound-rpc-set-param"] ], - "(anon-function 7 plat-eco)": [ - [22, "v1", "target"] - ], + "(anon-function 7 plat-eco)": [[22, "v1", "target"]], - "drop-plat-set-fade": [ - [7, "v1", "process-drawable"] - ], + "drop-plat-set-fade": [[7, "v1", "process-drawable"]], - "(code drop-plat-spawn)": [ - [3, "v1", "process-drawable"] - ], + "(code drop-plat-spawn)": [[3, "v1", "process-drawable"]], "(code drop-plat-rise)": [ [10, "v1", "process-drawable"], @@ -3031,29 +2527,21 @@ [85, "v1", "process-drawable"] ], - "(post drop-plat-rise)": [ - [12, "v1", "process-drawable"] - ], + "(post drop-plat-rise)": [[12, "v1", "process-drawable"]], "(code drop-plat-drop)": [ [2, "v1", "process-drawable"], [85, "v1", "process-drawable"] ], - "(post drop-plat-drop)": [ - [12, "v1", "process-drawable"] - ], + "(post drop-plat-drop)": [[12, "v1", "process-drawable"]], - "drop-plat-init-by-other": [ - [22, "v1", "process-drawable"] - ], + "drop-plat-init-by-other": [[22, "v1", "process-drawable"]], - "citb-drop-plat-drop-children": [ - [[23,29], "a0", "drop-plat"] - ], + "citb-drop-plat-drop-children": [[[23, 29], "a0", "drop-plat"]], "citb-drop-plat-spawn-children": [ - [98, "t9", "(function process function vector uint uint int)"] + [98, "t9", "(function process function vector int int int none)"] ], "(method 11 citb-drop-plat)": [ @@ -3075,9 +2563,7 @@ [192, "v1", "(pointer float)"] ], - "(method 27 square-platform)": [ - [[26, 33], "a0", "water-vol"] - ], + "(method 27 square-platform)": [[[26, 33], "a0", "water-vol"]], "(method 27 wedge-plat)": [ [4, "v1", "process-drawable"], @@ -3109,22 +2595,16 @@ [60, "v1", "art-joint-anim"] ], - "(code plunger-lurker-idle)": [ - [10, "v1", "art-joint-anim"] - ], + "(code plunger-lurker-idle)": [[10, "v1", "art-joint-anim"]], - "(code flying-lurker-idle)": [ - [92, "v1", "art-joint-anim"] - ], + "(code flying-lurker-idle)": [[92, "v1", "art-joint-anim"]], "(code flying-lurker-fly)": [ [56, "v1", "art-joint-anim"], [110, "v1", "float"] ], - "(code flying-lurker-start)": [ - [36, "v1", "float"] - ], + "(code flying-lurker-start)": [[36, "v1", "float"]], "(method 18 collide-cache)": [ [44, "v1", "collide-shape-prim-sphere"], @@ -3152,13 +2632,9 @@ [109, "v1", "manipy"] ], - "level-hint-task-process": [ - ["_stack_", 16, "res-tag"] - ], + "level-hint-task-process": [["_stack_", 16, "res-tag"]], - "kill-current-level-hint": [ - [[13, 33], "s4", "level-hint"] - ], + "kill-current-level-hint": [[[13, 33], "s4", "level-hint"]], "level-hint-init-by-other": [ [[54, 75], "a0", "string"], @@ -3201,34 +2677,28 @@ [57, "v0", "symbol"] ], "forall-particles-runner": [ - [[19,28], "s4", "sparticle-cpuinfo"], + [[19, 28], "s4", "sparticle-cpuinfo"], [34, "s4", "pointer"], [35, "s3", "pointer"] ], - "(method 2 sparticle-cpuinfo)": [ - [14, "f0", "float"] - ], + "(method 2 sparticle-cpuinfo)": [[14, "f0", "float"]], "sp-kill-particle": [ [7, "a1", "uint"], [7, "v1", "uint"] ], - "sparticle-track-root":[ - [2, "v1", "process-drawable"] - ], + "sparticle-track-root": [[2, "v1", "process-drawable"]], - "sparticle-track-root-prim":[ + "sparticle-track-root-prim": [ [2, "v1", "process-drawable"], [3, "v1", "collide-shape"] ], - "sp-orbiter":[ - [[73, 82], "v1", "sprite-vec-data-2d"] - ], + "sp-orbiter": [[[73, 82], "v1", "sprite-vec-data-2d"]], - "finish-background":[ + "finish-background": [ [249, "a0", "terrain-context"], [297, "a0", "terrain-context"], [307, "a0", "terrain-context"], @@ -3250,55 +2720,34 @@ [[598, 603], "v1", "dma-packet"] ], - "(method 11 drawable-inline-array-node)":[ - [[1, 6], "v1", "drawable"] - ], + "(method 11 drawable-inline-array-node)": [[[1, 6], "v1", "drawable"]], - "(method 12 drawable-inline-array-node)":[ - [[1, 6], "v1", "drawable"] - ], + "(method 12 drawable-inline-array-node)": [[[1, 6], "v1", "drawable"]], - "(method 13 drawable-inline-array-node)":[ - [[1, 6], "v1", "drawable"] - ], + "(method 13 drawable-inline-array-node)": [[[1, 6], "v1", "drawable"]], - "(method 17 drawable-inline-array-node)":[ - [[1, 6], "v1", "drawable"] - ], + "(method 17 drawable-inline-array-node)": [[[1, 6], "v1", "drawable"]], "(code nav-enemy-patrol babak)": [ [25, "v1", "art-joint-anim"], [79, "t9", "(function none)"] ], - "(code nav-enemy-chase babak)": [ - [55, "v1", "art-joint-anim"] - ], + "(code nav-enemy-chase babak)": [[55, "v1", "art-joint-anim"]], - "(code nav-enemy-stare babak)": [ - [154, "v1", "art-joint-anim"] - ], + "(code nav-enemy-stare babak)": [[154, "v1", "art-joint-anim"]], "(code nav-enemy-give-up babak)": [ [43, "v1", "art-joint-anim"], [101, "v1", "art-joint-anim"] ], - "(method 33 process-taskable)": [ - [15, "s5", "spool-anim"] - ], + "(method 33 process-taskable)": [[15, "s5", "spool-anim"]], - "(method 51 process-taskable)": [ - [18, "v1", "spool-anim"] - ], + "(method 51 process-taskable)": [[18, "v1", "spool-anim"]], - "(method 35 process-taskable)": [ - [15, "s5", "spool-anim"] - ] - , - "(method 37 process-taskable)": [ - [15, "s5", "spool-anim"] - ], + "(method 35 process-taskable)": [[15, "s5", "spool-anim"]], + "(method 37 process-taskable)": [[15, "s5", "spool-anim"]], "process-taskable-play-anim-code": [ [68, "gp", "spool-anim"], @@ -3315,29 +2764,17 @@ [24, "a0", "float"] ], - "(event othercam-running)": [ - [23, "v1", "process-taskable"] - ], + "(event othercam-running)": [[23, "v1", "process-taskable"]], - "(code nav-enemy-idle babak-with-cannon)": [ - [22, "v1", "art-joint-anim"] - ], + "(code nav-enemy-idle babak-with-cannon)": [[22, "v1", "art-joint-anim"]], - "(code babak-run-to-cannon)": [ - [14, "v1", "art-joint-anim"] - ], + "(code babak-run-to-cannon)": [[14, "v1", "art-joint-anim"]], - "(code babak-with-cannon-jump-onto-cannon)": [ - [118, "v1", "art-joint-anim"] - ], + "(code babak-with-cannon-jump-onto-cannon)": [[118, "v1", "art-joint-anim"]], - "(code babak-with-cannon-jump-off-cannon)": [ - [28, "v1", "art-joint-anim"] - ], + "(code babak-with-cannon-jump-off-cannon)": [[28, "v1", "art-joint-anim"]], - "(trans nav-enemy-die babak-with-cannon)": [ - [40, "v0", "(state nav-enemy)"] - ], + "(trans nav-enemy-die babak-with-cannon)": [[40, "v0", "(state nav-enemy)"]], "(enter othercam-running)": [ [50, "gp", "process-taskable"], @@ -3352,11 +2789,6 @@ [47, "s2", "process-taskable"] ], - "(method 10 gui-query)": [ - [[84, 88], "v1", "dma-packet"], - [[131, 135], "v1", "dma-packet"] - ], - "(code yakow-idle)": [ [46, "v1", "art-joint-anim"], [102, "v1", "art-joint-anim"] @@ -3367,13 +2799,9 @@ [131, "v1", "art-joint-anim"] ], - "(code yakow-graze-kicked)": [ - [10, "v1", "art-joint-anim"] - ], + "(code yakow-graze-kicked)": [[10, "v1", "art-joint-anim"]], - "(code yakow-kicked)": [ - [81, "v1", "art-joint-anim"] - ], + "(code yakow-kicked)": [[81, "v1", "art-joint-anim"]], "(method 7 fishermans-boat)": [ [20, "t9", "(function rigid-body-platform int rigid-body-platform)"] @@ -3384,13 +2812,9 @@ [87, "v1", "art-joint-anim"] ], - "(code nav-enemy-chase muse)": [ - [35, "v1", "art-joint-anim"] - ], + "(code nav-enemy-chase muse)": [[35, "v1", "art-joint-anim"]], - "(code nav-enemy-jump-land muse)": [ - [31, "v1", "art-joint-anim"] - ], + "(code nav-enemy-jump-land muse)": [[31, "v1", "art-joint-anim"]], "(code muse-caught)": [ [50, "v0", "vector"], @@ -3415,13 +2839,9 @@ [334, "v1", "art-joint-anim"] ], - "(code nav-enemy-stare bonelurker)": [ - [130, "v1", "art-joint-anim"] - ], + "(code nav-enemy-stare bonelurker)": [[130, "v1", "art-joint-anim"]], - "(code bonelurker-stun)": [ - [29, "v1", "art-joint-anim"] - ], + "(code bonelurker-stun)": [[29, "v1", "art-joint-anim"]], "(code nav-enemy-give-up bonelurker)": [ [43, "v1", "art-joint-anim"], @@ -3443,13 +2863,9 @@ [53, "s5", "sage-bluehut"] ], - "(method 43 assistant-bluehut)": [ - [19, "v1", "float"] - ], + "(method 43 assistant-bluehut)": [[19, "v1", "float"]], - "check-drop-level-assistant-bluehut": [ - [17, "v1", "float"] - ], + "check-drop-level-assistant-bluehut": [[17, "v1", "float"]], "(code idle assistant-bluehut)": [ [31, "v1", "art-joint-anim"], @@ -3461,9 +2877,7 @@ [554, "v1", "art-joint-anim"] ], - "assistant-levitator-blue-beam": [ - [15, "v1", "fireboulder"] - ], + "assistant-levitator-blue-beam": [[15, "v1", "fireboulder"]], "(code idle assistant-levitator)": [ [32, "v1", "art-joint-anim"], @@ -3473,13 +2887,9 @@ [311, "v1", "art-joint-anim"] ], - "(event square-platform-lowered)": [ - [8, "a0", "square-platform-master"] - ], + "(event square-platform-lowered)": [[8, "a0", "square-platform-master"]], - "(event square-platform-master-idle)": [ - [6, "a0", "square-platform-button"] - ], + "(event square-platform-master-idle)": [[6, "a0", "square-platform-button"]], "(method 7 square-platform)": [ [24, "t9", "(function baseplat int baseplat)"] @@ -3504,9 +2914,7 @@ [27, "gp", "(pointer rigid-body-platform)"] ], - "(method 32 qbert-plat)": [ - [[4, 10], "a0", "qbert-plat-master"] - ], + "(method 32 qbert-plat)": [[[4, 10], "a0", "qbert-plat-master"]], "(post rigid-body-platform-float qbert-plat)": [ [3, "t9", "(function none :behavior qbert-plat)"] @@ -3539,9 +2947,7 @@ [9, "v1", "process-drawable"] ], - "keg-init-by-other": [ - [142, "v1", "process-drawable"] - ], + "keg-init-by-other": [[142, "v1", "process-drawable"]], "(method 7 keg-conveyor)": [ [14, "t9", "(function process-drawable int process-drawable)"] @@ -3551,9 +2957,7 @@ [26, "t9", "(function process-drawable int process-drawable)"] ], - "(code swamp-bat-slave-die)": [ - [21, "v1", "swamp-bat"] - ], + "(code swamp-bat-slave-die)": [[21, "v1", "swamp-bat"]], // these casts should not be required "swamp-bat-check-slave-paths-match?": [ @@ -3561,63 +2965,39 @@ [7, "a1", "swamp-bat-slave"] ], - "(method 39 swamp-rat)": [ - [37, "t9", "(function nav-enemy none)"] - ], + "(method 39 swamp-rat)": [[37, "t9", "(function nav-enemy none)"]], - "(code nav-enemy-patrol swamp-rat)": [ - [23, "v1", "art-joint-anim"] - ], + "(code nav-enemy-patrol swamp-rat)": [[23, "v1", "art-joint-anim"]], - "(code nav-enemy-stare swamp-rat)": [ - [26, "v1", "art-joint-anim"] - ], + "(code nav-enemy-stare swamp-rat)": [[26, "v1", "art-joint-anim"]], "(code nav-enemy-give-up swamp-rat)": [ [14, "v1", "art-joint-anim"], [72, "v1", "art-joint-anim"] ], - "(code nav-enemy-attack swamp-rat)": [ - [14, "v1", "art-joint-anim"] - ], + "(code nav-enemy-attack swamp-rat)": [[14, "v1", "art-joint-anim"]], - "(code swamp-rat-spawn)": [ - [119, "v1", "art-joint-anim"] - ], + "(code swamp-rat-spawn)": [[119, "v1", "art-joint-anim"]], - "(code spiderwebs-bounce)": [ - [80, "v1", "art-joint-anim"] - ], + "(code spiderwebs-bounce)": [[80, "v1", "art-joint-anim"]], - "(method 39 baby-spider)": [ - [37, "t9", "(function nav-enemy none)"] - ], + "(method 39 baby-spider)": [[37, "t9", "(function nav-enemy none)"]], - "(code baby-spider-hatching)": [ - [14, "v1", "art-joint-anim"] - ], + "(code baby-spider-hatching)": [[14, "v1", "art-joint-anim"]], - "(code nav-enemy-attack baby-spider)": [ - [14, "v1", "art-joint-anim"] - ], + "(code nav-enemy-attack baby-spider)": [[14, "v1", "art-joint-anim"]], "(code nav-enemy-give-up baby-spider)": [ [14, "v1", "art-joint-anim"], [72, "v1", "art-joint-anim"] ], - "(code nav-enemy-patrol baby-spider)": [ - [23, "v1", "art-joint-anim"] - ], + "(code nav-enemy-patrol baby-spider)": [[23, "v1", "art-joint-anim"]], - "(code nav-enemy-notice baby-spider)": [ - [24, "v1", "art-joint-anim"] - ], + "(code nav-enemy-notice baby-spider)": [[24, "v1", "art-joint-anim"]], - "(code nav-enemy-stare baby-spider)": [ - [26, "v1", "art-joint-anim"] - ], + "(code nav-enemy-stare baby-spider)": [[26, "v1", "art-joint-anim"]], "(method 24 mother-spider-proj)": [ [[11, 46], "s5", "sound-rpc-set-param"], @@ -3625,12 +3005,16 @@ [33, "s4", "process-drawable"] ], - "(method 23 exit-chamber)": [ - [107, "a1", "fuel-cell"] - ], + "(method 23 exit-chamber)": [[113, "a0", "fuel-cell"]], "(code exit-chamber-rise)": [ - [15, "v1", "fuel-cell"] + [15, "v1", "fuel-cell"], + [64, "v1", "sunkencam"], + [81, "v1", "art-joint-anim"], + [157, "v1", "art-joint-anim"], + [211, "v1", "art-joint-anim"], + [292, "v1", "art-joint-anim"], + [424, "v1", "fuel-cell"] ], "(method 25 sunken-water)": [ @@ -3638,9 +3022,7 @@ [126, "v1", "uint"] ], - "(code sunkenfisha-idle)": [ - [10, "v1", "art-joint-anim"] - ], + "(code sunkenfisha-idle)": [[10, "v1", "art-joint-anim"]], "(method 27 sunkenfisha)": [ ["_stack_", 16, "res-tag"], @@ -3651,9 +3033,7 @@ [174, "v0", "(pointer float)"] ], - "(method 43 assistant-villagec)": [ - [19, "v1", "float"] - ], + "(method 43 assistant-villagec)": [[19, "v1", "float"]], "(code idle assistant-villagec)": [ [32, "v1", "art-joint-anim"], @@ -3661,19 +3041,16 @@ [176, "v1", "float"] ], - "(method 32 sage-villagec)": [ - [278, "v1", "float"] - ], + "(method 32 sage-villagec)": [[278, "v1", "float"]], - "(method 43 sage-villagec)": [ - [19, "v1", "float"] - ], + "(method 43 sage-villagec)": [[19, "v1", "float"]], "(method 20 cave-trap)": [ [77, "s2", "process-drawable"], [95, "s2", "process-drawable"], [181, "s3", "process-drawable"], - [221, "s3", "process-drawable"] + [221, "s3", "process-drawable"], + [230, "v1", "baby-spider"] ], "(method 7 cave-trap)": [ @@ -3681,24 +3058,22 @@ ], "(method 57 ice-cube)": [ - [16, "v1", "collide-shape-prim-sphere"] + [16, "v1", "collide-shape-prim-group"], + [26, "v1", "collide-shape-prim-group"] ], - "(code yeti-slave-appear-jump-up)": [ - [14, "v1", "art-joint-anim"] + "(method 58 ice-cube)": [ + [16, "v1", "collide-shape-prim-group"], + [26, "v1", "collide-shape-prim-group"] ], - "(code yeti-slave-appear-land)": [ - [14, "v1", "art-joint-anim"] - ], + "(code yeti-slave-appear-jump-up)": [[14, "v1", "art-joint-anim"]], - "(code nav-enemy-chase yeti-slave)": [ - [55, "v1", "art-joint-anim"] - ], + "(code yeti-slave-appear-land)": [[14, "v1", "art-joint-anim"]], - "(code nav-enemy-stare yeti-slave)": [ - [154, "v1", "art-joint-anim"] - ], + "(code nav-enemy-chase yeti-slave)": [[55, "v1", "art-joint-anim"]], + + "(code nav-enemy-stare yeti-slave)": [[154, "v1", "art-joint-anim"]], "(code nav-enemy-give-up yeti-slave)": [ [43, "v1", "art-joint-anim"], @@ -3712,42 +3087,26 @@ [238, "v1", "art-joint-anim"] ], - "(method 7 yeti-slave)": [ - [14, "t9", "(function nav-enemy int nav-enemy)"] - ], + "(method 7 yeti-slave)": [[14, "t9", "(function nav-enemy int nav-enemy)"]], - "(method 21 yeti)": [ - [5, "s5", "(pointer yeti-slave)"] - ], + "(method 21 yeti)": [[5, "s5", "(pointer yeti-slave)"]], "(code idle assistant-lavatube-start)": [ [32, "v1", "float"], [118, "v1", "art-joint-anim"] ], - "check-drop-level-maincave-drip": [ - [17, "v1", "float"] - ], + "check-drop-level-maincave-drip": [[17, "v1", "float"]], - "snow-bird-bob-func": [ - [3, "v1", "process-drawable"] - ], + "snow-bird-bob-func": [[3, "v1", "process-drawable"]], - "bird-bob-func": [ - [3, "v1", "process-drawable"] - ], + "bird-bob-func": [[3, "v1", "process-drawable"]], - "part-tracker-track-root": [ - [2, "v1", "process-drawable"] - ], + "part-tracker-track-root": [[2, "v1", "process-drawable"]], - "sparticle-track-root-money": [ - [5, "v1", "process-drawable"] - ], + "sparticle-track-root-money": [[5, "v1", "process-drawable"]], - "eco-fadeout": [ - [2, "v1", "process-drawable"] - ], + "eco-fadeout": [[2, "v1", "process-drawable"]], "eco-track-root-prim-fadeout": [ [2, "v1", "process-drawable"], @@ -3755,21 +3114,13 @@ [11, "v1", "process-drawable"] ], - "check-drop-level-sagehut": [ - [18, "v1", "float"] - ], + "check-drop-level-sagehut": [[18, "v1", "float"]], - "check-drop-level-training-spout-rain": [ - [17, "v1", "float"] - ], + "check-drop-level-training-spout-rain": [[17, "v1", "float"]], - "check-drop-level-sagehut2": [ - [18, "v1", "float"] - ], + "check-drop-level-sagehut2": [[18, "v1", "float"]], - "tra-bird-bob-func": [ - [3, "v1", "process-drawable"] - ], + "tra-bird-bob-func": [[3, "v1", "process-drawable"]], "(anon-function 6 relocate)": [ [3, "a0", "int"], @@ -3787,6 +3138,8 @@ [93, "v1", "process-drawable"] ], + "(code part-tester-idle)": [[[16, 22], "s5", "process-drawable"]], + "(method 20 hud-money)": [ [35, "a0", "process-drawable"], [38, "v1", "process-drawable"], @@ -3816,9 +3169,7 @@ [15, "v1", "uint"] ], - "hide-bottom-hud": [ - [22, "v1", "(pointer hud)"] - ], + "hide-bottom-hud": [[22, "v1", "(pointer hud)"]], "disable-hud": [ [22, "a0", "(pointer hud)"], @@ -3826,29 +3177,17 @@ [57, "v1", "(pointer hud)"] ], - "enable-hud": [ - [20, "v1", "(pointer hud)"] - ], + "enable-hud": [[20, "v1", "(pointer hud)"]], - "hide-hud-quick": [ - [20, "v1", "(pointer hud)"] - ], + "hide-hud-quick": [[20, "v1", "(pointer hud)"]], - "set-hud-aspect-ratio": [ - [17, "v1", "(pointer hud)"] - ], + "set-hud-aspect-ratio": [[17, "v1", "(pointer hud)"]], - "hud-hidden?": [ - [14, "v1", "(pointer hud)"] - ], + "hud-hidden?": [[14, "v1", "(pointer hud)"]], - "bottom-hud-hidden?": [ - [16, "v1", "(pointer hud)"] - ], + "bottom-hud-hidden?": [[16, "v1", "(pointer hud)"]], - "show-hud": [ - [31, "v1", "(pointer hud)"] - ], + "show-hud": [[31, "v1", "(pointer hud)"]], "fuel-cell-hud-orbit-callback": [ [12, "s3", "hud-fuel-cell"], @@ -3865,13 +3204,9 @@ [52, "v1", "dma-packet"] ], - "(method 15 hud-money)": [ - [[50, 53], "v1", "dma-packet"] - ], + "(method 15 hud-money)": [[[50, 53], "v1", "dma-packet"]], - "(method 15 hud-money-all)": [ - [[125, 128], "v1", "dma-packet"] - ], + "(method 15 hud-money-all)": [[[125, 128], "v1", "dma-packet"]], "(method 15 hud-buzzers)": [ [58, "v1", "dma-packet"], @@ -3887,9 +3222,7 @@ [311, "v0", "sound-rpc-set-param"] ], - "battlecontroller-default-event-handler": [ - [9, "a0", "process-drawable"] - ], + "battlecontroller-default-event-handler": [[9, "a0", "process-drawable"]], "battlecontroller-update-spawners": [ [19, "s4", "nav-enemy"], @@ -3918,13 +3251,9 @@ [2, "v1", "(pointer process-drawable)"] ], - "update-time-of-day": [ - [46, "v0", "(array float)"] - ], + "update-time-of-day": [[46, "v0", "(array float)"]], - "sky-make-light": [ - [[10, 23], "a0", "sky-sun-data"] - ], + "sky-make-light": [[[10, 23], "a0", "sky-sun-data"]], "make-sky-textures": [ [[90, 94], "a0", "dma-packet"], @@ -4011,20 +3340,15 @@ [4, "t9", "(function none :behavior helix-dark-eco)"] ], - "(code helix-slide-door-close)": [ - [10, "v1", "art-joint-anim"] - ], + "(code helix-slide-door-close)": [[10, "v1", "art-joint-anim"]], - "(code helix-button-startup)": [ - [39, "v1", "process-drawable"] - ], + "(code helix-button-startup)": [[39, "v1", "collectable"]], - "(method 73 green-eco-lurker)": [ - [6, "a1", "touching-shapes-entry"] - ], + "(method 73 green-eco-lurker)": [[6, "a1", "touching-shapes-entry"]], "citb-sagecage-update-collision": [ - [2, "a0", "collide-shape-prim-group"] + [2, "a0", "collide-shape-prim-mesh"], + [9, "a0", "collide-shape-prim-mesh"] ], "race-ring-set-particle-rotation-callback": [ @@ -4036,16 +3360,12 @@ ], "(code race-ring-active)": [ - [242, "v1", "handle"], - [245, "v1", "handle"], + [[241, 249], "v1", "handle"], [253, "gp", "handle"], - [269, "s5", "handle"], - [272, "s5", "handle"] + [[269, 276], "s5", "handle"] ], - "(trans race-ring-active)": [ - [26, "a0", "part-tracker"] - ], + "(trans race-ring-active)": [[26, "a0", "part-tracker"]], "(code anim-tester-process)": [ [41, "v1", "anim-test-obj"], @@ -4060,8 +3380,298 @@ [[423, 426], "v1", "dma-packet"] ], - "anim-tester-disp-frame-num": [ - [[75, 78], "v1", "dma-packet"] + "anim-tester-disp-frame-num": [[[75, 78], "v1", "dma-packet"]], + + "reset-drawable-tracking": [ + [3, "gp", "target"], + [10, "gp", "target"], + [14, "gp", "target"], + [42, "gp", "target"], + [48, "gp", "target"] + ], + "reset-drawable-follow": [ + [3, "v1", "target"], + [10, "v1", "target"], + [16, "v1", "target"] + ], + "master-track-target": [ + [62, "gp", "target"], + [65, "gp", "target"], + [96, "gp", "target"], + [103, "gp", "target"], + [423, "f0", "float"] + ], + + "master-switch-to-entity": [ + ["_stack_", 16, "res-tag"], + [88, "v0", "(pointer string)"], + [233, "v1", "camera-slave"] + ], + + "master-check-regions": [[119, "v1", "connection"]], + "(anon-function 71 cam-states)": [ + [13, "a1", "pov-camera"], + [20, "v1", "pov-camera"], + [41, "v1", "pov-camera"], + [52, "v1", "pov-camera"], + [71, "a1", "pov-camera"] + ], + "(anon-function 68 cam-states)": [[13, "a1", "pov-camera"]], + "(anon-function 75 cam-states)": [ + [13, "a1", "pov-camera"], + [21, "a0", "pov-camera"] + ], + + "(event cam-master-active)": [ + [95, "gp", "matrix"], + [184, "v1", "vector"], + [235, "v1", "process"], + [239, "v1", "process"], + [240, "v1", "process"], + [262, "v1", "process"], + [270, "v1", "process"], + [279, "v1", "process"], + [280, "v1", "process"], + [329, "v1", "float"], + [335, "a0", "float"], + [457, "v1", "camera-slave"], + [511, "v1", "camera-slave"], + [524, "v0", "camera-slave"], + [560, "a0", "camera-slave"], + [570, "v1", "camera-slave"], + [629, "v1", "camera-slave"], + [679, "a0", "camera-slave"], + [690, "v1", "camera-slave"], + [771, "v1", "camera-slave"], + [875, "v1", "camera-slave"], + [928, "v1", "camera-slave"], + [947, "v1", "camera-slave"], + [966, "v1", "camera-slave"], + [994, "v1", "camera-slave"], + [999, "a0", "camera-slave"], + [1011, "a0", "camera-slave"], + [1023, "v1", "projectile"], + [1033, "a0", "camera-slave"], + [1035, "a0", "camera-slave"], + [1049, "v1", "float"], + [1053, "v1", "float"], + [1062, "v1", "float"], + [1066, "v1", "float"], + [1071, "a0", "vector"], + [1368, "v1", "float"], + [1371, "v1", "float"] + ], + + "(code cam-pov)": [ + [13, "a1", "pov-camera"], + [21, "a0", "pov-camera"] + ], + + "(code cam-pov-track)": [[13, "a1", "pov-camera"]], + + "(code cam-pov180)": [ + [13, "a1", "pov-camera"], + [20, "v1", "pov-camera"], + [41, "v1", "pov-camera"], + [52, "v1", "pov-camera"], + [71, "a1", "pov-camera"] + ], + + "cam-los-spline-collide": [ + [[52, 83], "s3", "(inline-array collide-cache-tri)"] + ], + + "(event cam-string)": [ + [15, "v1", "float"], + [18, "v1", "float"], + [31, "a0", "vector"], + [35, "a0", "vector"] + ], + + "cam-draw-collide-cache": [ + [[2, 13], "gp", "(inline-array collide-cache-tri)"] + ], + + "cam-los-collide": [[[50, 197], "s1", "(inline-array collide-cache-tri)"]], + + "(anon-function 1 pov-camera)": [ + [9, "v1", "float"], + [16, "v1", "float"] + ], + + "camera-fov-frame": [ + [87, "a0", "vector"], + [128, "a0", "vector"], + [169, "a0", "vector"] + ], + + "camera-sphere": [[[39, 46], "v1", "cam-dbg-scratch"]], + + "camera-line-draw": [ + [34, "a0", "cam-dbg-scratch"], + [42, "a0", "cam-dbg-scratch"] + ], + + "camera-plot-float-func": [ + [54, "v1", "cam-dbg-scratch"], + [62, "a0", "cam-dbg-scratch"], + [66, "a0", "cam-dbg-scratch"], + [103, "v1", "cam-dbg-scratch"], + [240, "v1", "cam-dbg-scratch"] + ], + + "cam-line-dma": [ + [32, "t0", "vector"], + [36, "t0", "vector"], + [45, "t0", "vector"], + [50, "t0", "vector"], + [[12, 16], "a3", "dma-packet"], + [[22, 25], "a3", "gs-gif-tag"], + [[33, 38], "a3", "(pointer uint128)"], + [[46, 52], "a1", "(pointer uint128)"], + [[60, 65], "a0", "dma-packet"], + [[65, 74], "a0", "(pointer uint64)"], + [[77, 80], "a0", "dma-packet"] + ], + + "v-slrp!": [ + [54, "s3", "float"], + [65, "s3", "float"] + ], + + "clmf-pos-rot": [ + [60, "a1", "int"], + [70, "a2", "symbol"], + [71, "a1", "res-tag"], + [132, "a0", "int"], + [141, "s0", "res-tag"] + ], + + "clmf-next-entity": [[38, "a0", "connection"]], + + "cam-layout-init": [[10, "v1", "connection"]], + + "clmf-save-all": [[18, "v1", "connection"]], + + "cam-layout-save-cam-rot": [[14, "v0", "vector"]], + + "cam-layout-save-campointsoffset": [[13, "v0", "vector"]], + + "cam-layout-entity-info": [ + [205, "v1", "vector"], + [495, "v1", "vector"] + ], + + "cam-layout-save-pivot": [ + [14, "v0", "vector"], + [40, "v0", "vector"] + ], + + "cam-layout-save-interesting": [ + [14, "v0", "vector"], + [40, "v0", "vector"] + ], + + "cam-layout-save-align": [ + [14, "v0", "vector"], + [40, "v0", "vector"] + ], + + "cam-layout-save-splineoffset": [[40, "v0", "vector"]], + + "cam-layout-save-cam-trans": [ + [65, "s5", "vector"], + [67, "s5", "vector"], + [69, "s5", "vector"], + [75, "s5", "vector"], + [77, "s2", "vector"], + [82, "s2", "vector"], + [84, "s2", "vector"], + [86, "s2", "vector"], + [92, "s2", "vector"], + [94, "s5", "vector"], + [95, "s5", "symbol"], + [96, "s2", "symbol"], + [97, "s2", "symbol"], + [110, "s5", "vector"], + [113, "s5", "vector"], + [115, "s5", "vector"], + [117, "s5", "vector"] + ], + + "clmf-cam-flag-toggle": [ + [119, "a0", "int"], + [124, "v1", "int"], + [138, "v0", "int"], + [153, "a0", "int"], + [158, "v1", "int"], + [172, "v0", "int"], + [195, "a0", "int"], + [200, "v1", "int"], + [214, "v0", "int"], + [233, "a0", "int"], + [238, "v1", "int"], + [252, "v0", "int"] + ], + + "clmf-cam-float-adjust": [[49, "a1", "int"]], + + "cam-layout-do-action": [ + [66, "s5", "basic"], + [74, "s5", "basic"], + [80, "s5", "(function object symbol symbol)"] + ], + + "cam-layout-function-call": [ + [11, "gp", "basic"], + [15, "gp", "(function string int basic none)"] + ], + + "cam-layout-do-menu": [ + [[130, 176], "s3", "clm-list"], + [203, "a0", "clm-item"], + [213, "v1", "clm-item"], + [228, "s3", "clm-item"], + [233, "v1", "clm-item"], + [238, "s3", "clm-item"], + [275, "s4", "clm-list"], + [277, "s4", "clm-list"], + [279, "s4", "clm-list"], + [283, "s4", "clm-list"], + [289, "s4", "clm-list"], + [291, "s4", "clm-list"], + [303, "s4", "clm-list"], + [305, "s4", "clm-list"], + [345, "s4", "clm-list"], + [347, "s4", "clm-list"], + [350, "s4", "clm-list"], + [352, "s4", "clm-list"], + [353, "s4", "clm-list"], + [356, "s4", "clm-list"], + [357, "s4", "clm-list"], + [369, "v1", "clm-item"] + ], + + "cam-layout-print": [[[21, 24], "v1", "dma-packet"]], + + "cam-layout-entity-volume-info": [ + [58, "s4", "vector"], + [59, "s4", "vector"], + [61, "s4", "(inline-array plane-volume)"] + ], + + "cam-layout-entity-volume-info-create": [ + ["_stack_", 16, "res-tag"], + [16, "v0", "(inline-array vector)"] + ], + + "clmf-cam-string": [["_stack_", 16, "res-tag"]], + + "in-cam-entity-volume?": [ + ["_stack_", 16, "res-tag"], + [22, "v1", "(inline-array vector)"], + [29, "v1", "(inline-array vector)"], + [34, "v1", "(inline-array vector)"] ], "fisher-fish-move": [ @@ -4075,9 +3685,7 @@ [79, "v1", "fisher"] ], - "(code fisher-fish-caught)": [ - [169, "v1", "fisher"] - ], + "(code fisher-fish-caught)": [[169, "v1", "fisher"]], "(code fisher-fish-die)": [ [35, "v1", "fisher"], @@ -4097,9 +3705,7 @@ [79, "v1", "float"] ], - "(method 38 fisher)": [ - [33, "t9", "(function fisher none)"] - ], + "(method 38 fisher)": [[33, "t9", "(function fisher none)"]], "(enter fisher-done)": [ [137, "f0", "float"], @@ -4107,22 +3713,16 @@ [213, "f0", "float"] ], - "fisher-spawn-ambient": [ - [8, "v1", "float"] - ], + "fisher-spawn-ambient": [[8, "v1", "float"]], "(method 43 fisher)": [ [27, "v1", "float"], [69, "v1", "float"] ], - "(trans play-accept fisher)": [ - [101, "v0", "state"] - ], + "(trans play-accept fisher)": [[101, "v0", "state"]], - "(trans idle fisher)": [ - [4, "v0", "state"] - ], + "(trans idle fisher)": [[4, "v0", "state"]], "(code idle fisher)": [ [132, "v1", "art-joint-anim"], @@ -4134,9 +3734,7 @@ [290, "v1", "art-joint-anim"] ], - "(method 11 torus)": [ - [[5, 22], "s4", "collide-shape-prim-group"] - ], + "(method 11 torus)": [[[5, 22], "s4", "collide-shape-prim-group"]], "(method 12 torus)": [ [11, "v1", "float"], @@ -4148,55 +3746,35 @@ [75, "v1", "art-joint-anim"] ], - "(code darkecobomb-land)": [ - [36, "v1", "art-joint-anim"] - ], + "(code darkecobomb-land)": [[36, "v1", "art-joint-anim"]], "(code darkecobomb-idle)": [ [10, "v1", "art-joint-anim"], [60, "v1", "art-joint-anim"] ], - "redshot-particle-callback": [ - [2, "v1", "(pointer redshot)"] - ], + "redshot-particle-callback": [[2, "v1", "(pointer redshot)"]], - "(event cam-robotboss)": [ - [5, "v1", "vector"] - ], + "(event cam-robotboss)": [[5, "v1", "vector"]], - "ecoclaw-handler": [ - [73, "v1", "vector"] - ], + "ecoclaw-handler": [[73, "v1", "vector"]], - "(event idle silodoor)": [ - [4, "v1", "float"] - ], + "(event idle silodoor)": [[4, "v1", "float"]], "ecoclaw-beam-particle-callback": [ [1, "a0", "(pointer projectile)"], [3, "a0", "(pointer projectile)"] ], - "(method 32 finalbosscam)": [ - [156, "v1", "robotboss"] - ], + "(method 32 finalbosscam)": [[156, "v1", "robotboss"]], - "(trans ecoclaw-activate)": [ - [30, "a0", "part-tracker"] - ], + "(trans ecoclaw-activate)": [[30, "a0", "part-tracker"]], - "robotboss-position": [ - [109, "a0", "process-drawable"] - ], + "robotboss-position": [[109, "a0", "process-drawable"]], - "robotboss-bomb-handler": [ - [6, "v1", "float"] - ], + "robotboss-bomb-handler": [[6, "v1", "float"]], - "robotboss-handler": [ - [6, "v1", "float"] - ], + "robotboss-handler": [[6, "v1", "float"]], "(event robotboss-red-wait)": [ [12, "v1", "float"], @@ -4208,12 +3786,7 @@ [68, "v1", "float"] ], - "(code robotboss-white-eco-movie)": [ - [189, "v1", "handle"], - [192, "v1", "handle"], - [208, "gp", "handle"], - [211, "gp", "handle"] - ], + "(code robotboss-white-eco-movie)": [[[188, 215], "gp", "handle"]], "(code robotboss-yellow-wait)": [ [336, "v1", "float"], @@ -4266,17 +3839,13 @@ [137, "v1", "float"] ], - "(trans robotboss-blue-wait)": [ - [254, "v1", "float"] - ], + "(trans robotboss-blue-wait)": [[254, "v1", "float"]], - "(code robotboss-blue-wait)": [ - [14, "v1", "art-joint-anim"] - ], + "(code robotboss-blue-wait)": [[14, "v1", "art-joint-anim"]], "(enter green-eco-lurker-appear)": [ - [12, "v1", "robotboss"], - [17, "v1", "robotboss"] + [12, "v1", "green-eco-lurker-gen"], + [17, "v1", "green-eco-lurker-gen"] ], "(code green-eco-lurker-appear)": [ @@ -4284,17 +3853,11 @@ [93, "v1", "art-joint-anim"] ], - "(code green-eco-lurker-appear-land)": [ - [74, "v1", "art-joint-anim"] - ], + "(code green-eco-lurker-appear-land)": [[74, "v1", "art-joint-anim"]], - "(code nav-enemy-chase green-eco-lurker)": [ - [55, "v1", "art-joint-anim"] - ], + "(code nav-enemy-chase green-eco-lurker)": [[55, "v1", "art-joint-anim"]], - "(code nav-enemy-patrol green-eco-lurker)": [ - [8, "t9", "(function none)"] - ], + "(code nav-enemy-patrol green-eco-lurker)": [[8, "t9", "(function none)"]], "(trans light-eco-child-hit-ground)": [ [63, "v1", "light-eco-mother"], @@ -4302,5 +3865,3847 @@ [88, "a1", "light-eco-mother"] ], + "(event plat-path-active plat-eco-finalboss)": [[10, "v1", "float"]], + + "(method 45 sage-finalboss)": [[[40, 57], "s5", "manipy"]], + + "(method 32 sage-finalboss)": [ + [[241, 245], "v1", "manipy"], + [[309, 313], "v1", "manipy"], + [313, "v1", "silodoor"] + ], + + "(trans play-anim sage-finalboss)": [ + [186, "v1", "process-drawable"], + [223, "v1", "process-drawable"], + [300, "v1", "process-drawable"], + [339, "v1", "process-drawable"], + [376, "v1", "process-drawable"], + [399, "gp", "final-door"], + [401, "a0", "final-door"] + // [[179, 183], "a0", "manipy"], + // [[182, 187], "v1", "manipy"], + // [[216, 220], "a0", "manipy"], + // [[295, 299], "a1", "manipy"], + // [[334, 338], "a1", "manipy"], + // [[371, 375], "a1", "manipy"], + // [391, "v0", "final-door"], + // [396, "v0", "final-door"] + ], + + "load-boundary-from-template": [ + [[2, 60], "s5", "(array float)"], + [42, "a0", "pair"], + [54, "a0", "pair"] + ], + + "command-get-int": [[27, "gp", "bfloat"]], + + "command-get-float": [[30, "gp", "bfloat"]], + + "command-get-time": [[46, "gp", "bfloat"]], + + "command-get-param": [[125, "gp", "bfloat"]], + + "command-list-get-process": [[[78, 88], "s4", "process-drawable"]], + + "add-boundary-shader": [ + [[5, 8], "a1", "gs-gif-tag"], + [[11, 35], "s5", "adgif-shader"] + ], + + "render-boundary": [ + [[22, 26], "a0", "dma-packet"], + [[32, 35], "a0", "gs-gif-tag"], + + [40, "a0", "(pointer gs-zbuf)"], + [42, "a0", "(pointer gs-reg64)"], + [44, "a0", "(pointer gs-test)"], + [46, "a0", "(pointer gs-reg64)"], + [48, "a0", "(pointer gs-alpha)"], + [50, "a0", "(pointer gs-reg64)"], + [[110, 117], "s2", "dma-packet"], + [[120, 123], "v1", "dma-packet"] + ], + + "real-main-draw-hook": [ + [[225, 229], "a0", "dma-packet"], + [[235, 238], "a0", "gs-gif-tag"], + [243, "a0", "(pointer gs-zbuf)"], + [245, "a0", "(pointer gs-reg64)"], + [247, "a0", "(pointer gs-test)"], + [249, "a0", "(pointer gs-reg64)"], + [251, "a0", "(pointer gs-alpha)"], + [253, "a0", "(pointer gs-reg64)"], + [[270, 273], "v1", "dma-packet"], + [[312, 316], "a0", "dma-packet"], + [[322, 325], "a0", "gs-gif-tag"], + [330, "a0", "(pointer gs-zbuf)"], + [332, "a0", "(pointer gs-reg)"], + [334, "a0", "(pointer gs-test)"], + [336, "a0", "(pointer gs-reg64)"], + [338, "a0", "(pointer gs-alpha)"], + [340, "a0", "(pointer gs-reg64)"], + [[357, 360], "v1", "dma-packet"] + ], + + "(event target-racing-start)": [ + [35, "v1", "float"], + [121, "v1", "attack-info"], + [125, "v1", "attack-info"], + [130, "v1", "attack-info"], + [148, "v1", "float"], + [206, "v1", "float"], + [251, "a0", "process-drawable"] + ], + + "(anon-function 46 racer-states)": [[[4, 32], "v1", "target"]], + + "(anon-function 45 racer-states)": [ + [19, "a0", "target"], + [31, "a0", "target"], + [42, "v1", "target"] + ], + + "(code target-racing-smack)": [[30, "v1", "art-joint-anim"]], + + "(code target-racing-hit)": [[186, "v1", "art-joint-anim"]], + + "(code target-racing-death)": [[242, "v1", "art-joint-anim"]], + + "(code target-racing-get-on)": [[59, "s3", "racer"]], + + "(code target-racing-get-off-jump)": [ + [67, "s2", "racer"], + [145, "v1", "art-joint-anim"] + ], + + "(code target-racing-get-off-hit-ground)": [[13, "v1", "art-joint-anim"]], + + "(event target-racing-grab)": [[24, "a0", "process-drawable"]], + + "cam-collision-record-draw": [[[44, 275], "s5", "cam-collision-record"]], + "cam-collision-record-save": [[[8, 56], "v1", "cam-collision-record"]], + + "(method 9 lod-set)": [["_stack_", 16, "res-tag"]], + + "execute-math-engine": [ + [12, "a1", "process"], + [15, "a1", "process"], + [[18, 21], "a0", "process-drawable"] + ], + + "(method 18 process-drawable)": [[[8, 11], "a0", "collide-shape"]], + + "ja-post": [[[42, 45], "a0", "collide-shape"]], + "transform-post": [[[3, 6], "a0", "collide-shape"]], + "rider-trans": [[[1, 4], "a0", "collide-shape"]], + "rider-post": [ + [[4, 7], "a0", "collide-shape"], + [[9, 12], "a0", "collide-shape"], + [[13, 16], "gp", "collide-shape"], + [8, "gp", "collide-shape"], + [3, "gp", "collide-shape"] + ], + "pusher-post": [ + [4, "a0", "collide-shape"], + [3, "gp", "collide-shape"], + [[8, 11], "gp", "collide-shape"] + ], + + "(method 14 process-drawable)": [ + [[322, 336], "gp", "collide-shape"], + [320, "v1", "vector"] + ], + + "(method 9 joint-control)": [ + [[14, 61], "gp", "(pointer float)"], + [[13, 59], "s4", "joint-control-channel"] + ], + + "ja-blend-eval": [[[3, 31], "s5", "joint-control-channel"]], + + "joint-control-reset!": [ + [4, "a1", "pointer"], + [6, "a0", "pointer"], + [9, "a1", "pointer"], + [[14, 37], "v1", "joint-control-channel"] + ], + + "ja-channel-push!": [ + [38, "v1", "pointer"], + [38, "a0", "pointer"] + ], + + "fill-skeleton-cache": [[[11, 33], "a2", "bone-cache"]], + + "dma-add-process-drawable-hud": [[[12, 27], "v1", "vu-lights"]], + + "dma-add-process-drawable": [ + [12, "a0", "terrain-context"], + [15, "a0", "terrain-context"], + [276, "a0", "terrain-context"], + [[15, 251], "s2", "vu-lights"], + [21, "s4", "vector"], + [277, "s4", "vector"], + [290, "v1", "vector"], + [292, "v1", "vector"], + [297, "v1", "vector"] + ], + + "(code notice-blue crate)": [ + [22, "v1", "process-drawable"], + [36, "v1", "collide-shape"] + ], + + "(method 17 process-drawable)": [ + [36, "a0", "terrain-context"], + [82, "t9", "(function cspace pointer none)"], + [104, "t9", "(function cspace matrix none)"], + [63, "t9", "(function cspace basic basic int)"] + ], + + "joint-control-copy!": [ + [8, "a0", "pointer"], + [8, "a2", "pointer"] + ], + + "matrix-from-control!": [ + [23, "v1", "pointer"], + [36, "v1", "pointer"], + [39, "v1", "pointer"], + [69, "v1", "pointer"], + [78, "v1", "pointer"], + [81, "v1", "pointer"], + [58, "v1", "matrix"], + [[45, 49], "v1", "matrix"] + ], + + "cloud-track": [ + [26, "s1", "handle"], + [39, "s2", "handle"], + [74, "s1", "handle"], + [76, "s2", "handle"], + [101, "s2", "handle"] + ], + + "(method 7 cavegeyserrock)": [ + [14, "t9", "(function process-drawable int process-drawable)"] + ], + + "(trans junglesnake-wake)": [[15, "v1", "collide-shape-prim-group"]], + + "(trans junglesnake-attack)": [[15, "v1", "collide-shape-prim-group"]], + + "(method 23 junglesnake)": [[6, "v1", "collide-shape-prim-group"]], + + "(method 24 junglesnake)": [[5, "v1", "collide-shape-prim-group"]], + + "(trans junglesnake-tracking)": [[79, "v1", "collide-shape-prim-group"]], + + "(code junglesnake-wake)": [[10, "v1", "art-joint-anim"]], + + "(code junglesnake-tracking)": [[51, "v1", "art-joint-anim"]], + + "(code junglesnake-die)": [[23, "v1", "art-joint-anim"]], + + "(code junglesnake-give-up)": [[29, "v1", "art-joint-anim"]], + + "(code junglesnake-attack)": [[43, "v1", "art-joint-anim"]], + + "(method 21 junglesnake)": [ + [15, "v1", "junglesnake-tilt-joint"], + [18, "v1", "junglesnake-twist-joint"] + ], + + "(method 11 viewer)": [[1, "a1", "entity-actor"]], + + "(code windmill-one-idle)": [[10, "v1", "art-joint-anim"]], + + "(code harvester-inflate)": [ + [11, "v1", "art-joint-anim"], + [61, "v1", "art-joint-anim"] + ], + + "(code flutflutegg-break)": [ + [38, "v1", "art-joint-anim"], + [91, "v1", "art-joint-anim"], + [191, "v1", "art-joint-anim"] + ], + + "(method 7 flutflutegg)": [ + [14, "t9", "(function process-drawable int process-drawable)"] + ], + + "(event flutflutegg-idle)": [[30, "gp", "process-drawable"]], + + "(event flutflutegg-physics)": [[37, "gp", "process-drawable"]], + + "(trans flutflutegg-idle)": [[17, "v1", "float"]], + + "beachcam-spawn": [ + [[57, 85], "gp", "handle"], + [[68, 76], "v1", "handle"], + [80, "v1", "pov-camera"], + [[84, 92], "v1", "handle"], + [[103, 110], "s5", "handle"] + ], + + "(code ecoventrock-break)": [[338, "gp", "handle"]], + + "(code target-warp-in)": [[192, "v1", "art-joint-anim"]], + + "(method 26 warp-gate-switch)": [[60, "v1", "art-joint-anim"]], + + "(method 31 warp-gate-switch)": [ + [61, "t9", "(function basebutton symbol none)"] + ], + + "(code basebutton-going-down warp-gate-switch)": [ + [79, "v0", "(state basebutton)"], + [81, "t9", "(function none :behavior basebutton)"] + ], + + "(method 11 village-cam)": [[21, "s5", "entity-actor"]], + + "(code idle warp-gate)": [[35, "a0", "symbol"]], + + "(method 21 citb-arm)": [[7, "t9", "(function citb-arm-section none)"]], + + "(method 21 citb-arm-shoulder)": [ + [7, "t9", "(function citb-arm-section none)"] + ], + + "(method 21 citb-arm-a)": [[14, "t9", "(function citb-arm none)"]], + + "(method 21 citb-arm-b)": [[14, "t9", "(function citb-arm none)"]], + + "(method 21 citb-arm-c)": [[14, "t9", "(function citb-arm none)"]], + + "(method 21 citb-arm-d)": [[14, "t9", "(function citb-arm none)"]], + + "(method 21 citb-arm-shoulder-a)": [[14, "t9", "(function citb-arm none)"]], + + "(method 21 citb-arm-shoulder-b)": [[14, "t9", "(function citb-arm none)"]], + + "(method 26 citb-button)": [[31, "v1", "art-joint-anim"]], + + "(code citb-coil-break)": [[19, "v1", "art-joint-anim"]], + + "(code citb-coil-broken)": [[10, "v1", "art-joint-anim"]], + + "(code citb-hose-idle)": [[10, "v1", "art-joint-anim"]], + + "(code citb-hose-spawn)": [[14, "v1", "art-joint-anim"]], + + "(code citb-hose-die)": [[19, "v1", "art-joint-anim"]], + + "(code citadelcam-stair-plats)": [[79, "gp", "handle"]], + + "(code battlecontroller-play-intro-camera citb-battlecontroller)": [ + [55, "gp", "handle"], + [76, "gp", "handle"] + ], + + "(post plat-path-active citb-launcher)": [ + [4, "t9", "(function none :behavior citb-launcher)"] + ], + + "(code battlecontroller-die citb-battlecontroller)": [ + [9, "v0", "(state battlecontroller)"], + [11, "t9", "(function none :behavior battlecontroller)"] + ], + + "(method 27 citb-battlecontroller)": [ + [7, "t9", "(function battlecontroller none)"] + ], + + "(code eggtop-close)": [ + [108, "v1", "art-joint-anim"], + [176, "v1", "art-joint-anim"] + ], + + "(code idle logtrap)": [[12, "v1", "art-joint-anim"]], + + "(code towertop-idle)": [[10, "v1", "art-joint-anim"]], + + "(code lurkerm-tall-sail-idle)": [[10, "v1", "art-joint-anim"]], + + "(code lurkerm-short-sail-idle)": [[10, "v1", "art-joint-anim"]], + + "(code lurkerm-piston-idle)": [[10, "v1", "art-joint-anim"]], + + "(code precurbridge-activate)": [[31, "v1", "art-joint-anim"]], + + "(event precurbridge-active)": [[4, "gp", "touching-shapes-entry"]], + + "(method 7 jngpusher)": [ + [14, "t9", "(function process-drawable int process-drawable)"] + ], + + "(method 11 lurkerm-piston)": [ + ["_stack_", 16, "res-tag"], + ["_stack_", 32, "res-tag"], + [148, "v0", "(pointer float)"] + ], + + "(code starfish-patrol)": [[16, "v1", "art-joint-anim"]], + + "(method 7 hutlamp)": [ + [14, "t9", "(function process-drawable int process-drawable)"] + ], + + "(code mis-bone-bridge-bump)": [[10, "v1", "art-joint-anim"]], + + "(code mis-bone-bridge-hit)": [[21, "v1", "art-joint-anim"]], + + "(code mis-bone-bridge-fall)": [[50, "v1", "art-joint-anim"]], + + "(method 23 bone-platform)": [ + [9, "t9", "(function rigid-body-platform basic none)"] + ], + + "mistycam-spawn": [ + [[68, 76], "v1", "handle"], + [80, "v1", "pov-camera"], + [[84, 92], "v1", "handle"], + [[102, 110], "s5", "handle"] + ], + + "(code battlecontroller-play-intro-camera misty-battlecontroller)": [ + [34, "gp", "handle"] + ], + + "(method 27 misty-battlecontroller)": [ + [7, "t9", "(function battlecontroller none)"] + ], + + "(code boat-fuelcell-spawn)": [[50, "gp", "handle"]], + + "(code pov-camera-playing village2cam)": [ + [12, "v1", "art-joint-anim"], + [65, "v1", "art-joint-anim"] + ], + + "(method 23 pontoon)": [ + [9, "t9", "(function rigid-body-platform basic none)"] + ], + + "fireboulder-disable-blocking-collision": [ + [5, "v1", "collide-shape-prim-group"], + [14, "v1", "collide-shape-prim-group"] + ], + + "fireboulder-hover-stuff": [[20, "v1", "(pointer part-tracker)"]], + + "(code ogreboss-village2-throw)": [ + [179, "v1", "art-joint-anim"], + [227, "v1", "float"], + [434, "v1", "art-joint-anim"] + ], + + "(code ogreboss-village2-idle)": [ + [136, "v1", "art-joint-anim"], + [194, "v1", "art-joint-anim"], + [247, "v1", "art-joint-anim"], + [299, "v1", "float"], + [319, "v1", "art-joint-anim"] + ], + + "(code fireboulder-idle)": [[58, "a0", "(pointer part-tracker)"]], + + "(code swamp-spike-idle)": [ + [119, "v1", "art-joint-anim"], + [203, "v1", "art-joint-anim"], + [312, "v1", "art-joint-anim"] + ], + + "(code swamp-spike-gate-up)": [[60, "v1", "art-joint-anim"]], + + "(method 23 tar-plat)": [ + [9, "t9", "(function rigid-body-platform basic none)"] + ], + + "(code battlecontroller-play-intro-camera swamp-battlecontroller)": [ + [38, "gp", "handle"] + ], + + "(code battlecontroller-die swamp-battlecontroller)": [ + [8, "t9", "(function none :behavior battlecontroller)"] + ], + + "swamp-spike-set-particle-rotation-callback": [ + [3, "v1", "(pointer swamp-spike)"] + ], + + "(code pov-camera-playing maincavecam)": [[[40, 54], "gp", "handle"]], + + "(code cavecrusher-idle)": [[10, "v1", "art-joint-anim"]], + + "(code idle cavetrapdoor)": [[10, "v1", "art-joint-anim"]], + + "(code caveelevator-one-way-idle-end)": [[19, "v1", "art-joint-anim"]], + + "(code trigger cavetrapdoor)": [ + [23, "v1", "art-joint-anim"], + [157, "v1", "art-joint-anim"], + [247, "v1", "art-joint-anim"] + ], + + "(method 11 caveflamepots)": [ + ["_stack_", 16, "res-tag"], + ["_stack_", 32, "res-tag"], + ["_stack_", 48, "res-tag"], + [258, "s4", "vector"], + [281, "s4", "collide-shape-prim-group"], + [290, "s4", "collide-shape-prim-group"], + [311, "v0", "(pointer float)"], + [342, "v0", "(pointer float)"], + [372, "v0", "(pointer float)"] + ], + + "(code pov-camera-playing sunkencam)": [ + [12, "v1", "art-joint-anim"], + [62, "v1", "art-joint-anim"], + [120, "v1", "art-joint-anim"], + [174, "v1", "art-joint-anim"], + [236, "v1", "art-joint-anim"], + [294, "v1", "art-joint-anim"], + [348, "v1", "art-joint-anim"], + [452, "v1", "art-joint-anim"], + [502, "v1", "art-joint-anim"] + ], + + "(code seaweed-idle)": [[36, "v1", "art-joint-anim"]], + + "(code dark-plant-death)": [[36, "v1", "art-joint-anim"]], + + "(code dark-plant-sprout)": [[34, "v1", "art-joint-anim"]], + + "(code happy-plant-opened)": [[10, "v1", "art-joint-anim"]], + + "(code rolling-start-whole)": [[16, "v1", "art-joint-anim"]], + + "(code rolling-start-break)": [ + [11, "v1", "art-joint-anim"], + [67, "v1", "art-joint-anim"], + [117, "v1", "art-joint-anim"] + ], + + "(code dark-plant-startup)": [ + [10, "v1", "art-joint-anim"], + [26, "v1", "float"] + ], + + "(code dark-plant-idle)": [ + [85, "v1", "art-joint-anim"], + [101, "v1", "float"], + [139, "v1", "float"] + ], + + "(code dark-plant-gone)": [[14, "v1", "float"]], + + "dark-plants-all-done": [[25, "v1", "dark-plant"]], + + "(code happy-plant-opening)": [ + [76, "gp", "handle"], + [84, "gp", "handle"], + [145, "gp", "handle"], + [[167, 175], "v1", "handle"], + [179, "gp", "handle"], + [[185, 192], "s5", "handle"] + ], + + "(trans spike-idle)": [[70, "v1", "float"]], + + "(method 23 ogre-plat)": [ + [9, "t9", "(function rigid-body-platform basic none)"] + ], + + "(method 31 ogre-step)": [[23, "t9", "(function ogre-plat none)"]], + + "(method 31 ogre-step-a)": [[25, "t9", "(function ogre-step none)"]], + + "(method 31 ogre-step-b)": [[25, "t9", "(function ogre-step none)"]], + + "(method 31 ogre-step-c)": [[25, "t9", "(function ogre-step none)"]], + + "(method 31 ogre-step-d)": [[25, "t9", "(function ogre-step none)"]], + + "(method 31 ogre-isle)": [[17, "t9", "(function ogre-plat none)"]], + + "(method 31 ogre-isle-b)": [[31, "t9", "(function ogre-isle none)"]], + + "(method 31 ogre-isle-c)": [[31, "t9", "(function ogre-isle none)"]], + + "(method 31 ogre-isle-d)": [[37, "t9", "(function ogre-isle none)"]], + + "(method 7 ogre-bridge)": [ + [26, "t9", "(function process-drawable int process-drawable)"] + ], + + "(code ogre-bridge-activate)": [[33, "v1", "art-joint-anim"]], + + "(code water-vol-idle ogre-lava)": [[36, "v1", "art-joint-anim"]], + + "(code ogre-bridge-break)": [[10, "v1", "art-joint-anim"]], + + "(code ogre-bridge-activated)": [[13, "v1", "art-joint-anim"]], + + "(code snow-eggtop-activate)": [ + [56, "v1", "snowcam"], + [87, "v1", "art-joint-anim"] + ], + + "(code snow-eggtop-idle-down)": [[32, "v1", "art-joint-anim"]], + + "(code snow-log-active)": [[30, "v1", "art-joint-anim"]], + + "(code snow-log-activate)": [[25, "v1", "art-joint-anim"]], + + "(code snow-gears-activate)": [ + [25, "v1", "art-joint-anim"], + [75, "v1", "art-joint-anim"] + ], + + "(code snow-gears-halt)": [ + [10, "v1", "art-joint-anim"], + [85, "v1", "art-joint-anim"] + ], + + "(code pov-camera-playing snowcam)": [ + [12, "v1", "art-joint-anim"], + [62, "v1", "art-joint-anim"], + [112, "v1", "art-joint-anim"], + [[242, 249], "gp", "handle"], + [274, "v1", "art-joint-anim"], + [346, "v1", "art-joint-anim"] + ], + + "(method 7 snow-fort-gate)": [ + [19, "t9", "(function process-drawable int process-drawable)"] + ], + + "(code snow-button-activate)": [[25, "v1", "art-joint-anim"]], + + "(code snow-button-deactivate)": [[26, "v1", "art-joint-anim"]], + + "(code plat-startup flutflut-plat)": [ + [62, "t9", "(function none :behavior plat)"] + ], + + "(method 7 darkecobarrel)": [ + [14, "t9", "(function darkecobarrel-base int darkecobarrel-base)"] + ], + + "(event darkecobarrel-mover-move)": [[76, "v1", "process-drawable"]], + + "(code darkecobarrel-mover-move)": [ + [10, "v1", "float"], + [29, "v1", "float"] + ], + + "(post water-vol-idle lavatube-lava)": [ + [4, "t9", "(function none :behavior lavatube-lava)"] + ], + + "darkecobarrel-mover-pos": [[135, "v1", "uint"]], + + "(code startup logo)": [[352, "v1", "art-joint-anim"]], + + "(code idle logo)": [[78, "v1", "art-joint-anim"]], + + "(method 11 training-cam)": [[21, "s5", "entity-actor"]], + + "(method 23 tra-pontoon)": [ + [9, "t9", "(function rigid-body-platform float none)"] + ], + + "(event idle scarecrow-a)": [ + [75, "v1", "process-drawable"], + [135, "gp", "target"], + [142, "gp", "target"] + ], + + "(code idle scarecrow-a)": [[14, "v1", "art-joint-anim"]], + + "(code idle scarecrow-b)": [[14, "v1", "art-joint-anim"]], + + "(code hit scarecrow-a)": [ + [30, "v1", "art-joint-anim"], + [92, "v1", "art-joint-anim"], + [143, "v1", "art-joint-anim"] + ], + + "(code hit scarecrow-b)": [ + [30, "v1", "art-joint-anim"], + [92, "v1", "art-joint-anim"], + [143, "v1", "art-joint-anim"] + ], + + "(method 27 orb-cache-top)": [[155, "a0", "process-drawable"]], + + "(method 9 art)": [[9, "v1", "(pointer res-tag)"]], + + "(method 9 art-joint-anim)": [[9, "v1", "(pointer res-tag)"]], + + "draw-drawable-tree-tfrag": [ + [[16, 32], "v1", "drawable-inline-array-node"], + [18, "a0", "drawable-inline-array-node"], + [142, "v1", "terrain-context"], + [238, "v1", "terrain-context"], + [[38, 40], "v1", "drawable-inline-array-tfrag"], + [22, "a2", "terrain-context"], + [25, "a2", "terrain-context"], + [44, "a0", "terrain-context"], + [[128, 131], "v1", "dma-packet"], + [[224, 227], "v1", "dma-packet"] + ], + + "draw-drawable-tree-trans-tfrag": [ + [[16, 32], "v1", "drawable-inline-array-node"], + [22, "a2", "terrain-context"], + [25, "a2", "terrain-context"], + [44, "a0", "terrain-context"], + [18, "a0", "drawable-inline-array-node"], + [134, "v1", "terrain-context"], + [230, "v1", "terrain-context"], + [[120, 123], "v1", "dma-packet"], + [[216, 219], "v1", "dma-packet"] + ], + + "draw-drawable-tree-dirt-tfrag": [ + [[16, 32], "v1", "drawable-inline-array-node"], + [22, "a2", "terrain-context"], + [25, "a2", "terrain-context"], + [44, "a0", "terrain-context"], + [18, "a0", "drawable-inline-array-node"], + [134, "v1", "terrain-context"], + [230, "v1", "terrain-context"], + [[120, 123], "v1", "dma-packet"], + [[216, 219], "v1", "dma-packet"] + ], + + "draw-drawable-tree-ice-tfrag": [ + [[16, 32], "v1", "drawable-inline-array-node"], + [22, "a2", "terrain-context"], + [25, "a2", "terrain-context"], + [44, "a0", "terrain-context"], + [18, "a0", "drawable-inline-array-node"], + [134, "v1", "terrain-context"], + [230, "v1", "terrain-context"], + [[120, 123], "v1", "dma-packet"], + [[216, 219], "v1", "dma-packet"] + ], + + "(method 10 drawable-tree-tfrag)": [[3, "a1", "terrain-context"]], + + "(method 10 drawable-tree-trans-tfrag)": [[3, "a1", "terrain-context"]], + + "(method 10 drawable-tree-dirt-tfrag)": [[3, "a1", "terrain-context"]], + + "(method 10 drawable-tree-ice-tfrag)": [[3, "a1", "terrain-context"]], + + "(method 10 drawable-tree-lowres-tfrag)": [[3, "a1", "terrain-context"]], + + "(method 10 drawable-tree-lowres-trans-tfrag)": [ + [3, "a1", "terrain-context"] + ], + + "(method 15 drawable-tree-array)": [[11, "s5", "drawable-tree-array"]], + + "tfrag-near-end-buffer": [ + [[3, 7], "a1", "dma-packet"], + [[15, 20], "a0", "(pointer vif-tag)"], + [[20, 24], "a0", "(pointer uint32)"], + [[25, 31], "a0", "(pointer vif-tag)"] + ], + + "tfrag-near-init-buffer": [ + [[11, 15], "a0", "dma-packet"], + [[21, 24], "a0", "gs-gif-tag"], + [28, "a0", "(pointer gs-test)"], + [30, "a0", "(pointer gs-reg64)"], + [[45, 50], "v1", "dma-packet"] + ], + + "tfrag-end-buffer": [ + [[3, 7], "a1", "dma-packet"], + [[13, 20], "a0", "(pointer vif-tag)"], + [[20, 24], "a0", "(pointer uint32)"], + [[25, 31], "a0", "(pointer vif-tag)"] + ], + + "tfrag-init-buffer": [ + [[11, 15], "a0", "dma-packet"], + [[21, 24], "a0", "gs-gif-tag"], + [28, "a0", "(pointer gs-test)"], + [30, "a0", "(pointer gs-reg64)"], + [[45, 50], "v1", "dma-packet"] + ], + + "add-tfrag-data": [ + [[8, 16], "a0", "dma-packet"], + [[26, 30], "v1", "dma-packet"] + ], + + "add-tfrag-mtx-1": [[[8, 16], "a0", "dma-packet"]], + "add-tfrag-mtx-0": [[[8, 16], "a0", "dma-packet"]], + + "(method 11 swingpole)": [[27, "s5", "entity-actor"]], + + "(anon-function 54 generic-obs)": [ + [57, "v1", "process-drawable"], + [66, "a0", "collide-shape"] + ], + + "(code manipy-idle)": [ + [58, "a1", "process-drawable"], + [73, "gp", "process-drawable"], + [79, "gp", "process-drawable"], + [109, "v1", "(pointer process)"] + ], + + "(anon-function 49 generic-obs)": [ + [25, "gp", "process-drawable"], + [30, "gp", "process-drawable"] + ], + + "ja-anim-done?": [[27, "gp", "process-drawable"]], + + "camera-pov-from": [ + [23, "gp", "process-drawable"], + [26, "gp", "process-drawable"] + ], + + "process-drawable-random-point!": [ + [29, "s4", "collide-shape"], + [33, "s4", "collide-shape"] + ], + + "launcher-init-by-other": [[134, "v0", "vector"]], + + "(method 11 launcher)": [[130, "v0", "vector"]], + + "(method 11 part-spawner)": [ + ["_stack_", 16, "res-tag"], + [62, "v0", "(pointer (pointer sparticle-launch-group))"] + ], + + "(method 11 med-res-level)": [ + ["_stack_", 16, "res-tag"], + [21, "v0", "(pointer symbol)"], + [57, "s4", "(pointer sparticle-launch-group)"] + ], + + "(anon-function 28 generic-obs)": [ + [25, "v1", "quaternion"] // code + ], + + "camera-tracker-init": [[69, "v1", "process"]], + + "camera-anim": [ + [26, "t9", "(function process function object object object object object)"] + ], + + "(event manipy-idle)": [ + [59, "t9", "(function manipy none)"], + [118, "v1", "float"], + [131, "a0", "process"], + [151, "v1", "process-drawable"], + [160, "a0", "process"], + [177, "a0", "collide-shape"], + [180, "a0", "collide-shape"], + [185, "v1", "vector"], + [313, "a0", "float"] + ], + + "command-get-trans": [[29, "s4", "target"]], + + "(trans manipy-idle)": [ + [57, "v1", "process-drawable"], + [[66, 73], "a0", "collide-shape"] + ], + + "(method 14 camera-tracker)": [ + [196, "s4", "basic"], + [202, "s4", "(function camera-tracker symbol)"], + [270, "v0", "target"] + ], + + "(event touch-tracker-idle)": [ + [105, "a0", "process"], + [129, "t9", "(function touch-tracker none)"] + ], + + "(code touch-tracker-idle)": [ + [25, "a0", "process-drawable"], + [38, "a0", "collide-shape"] + ], + + "(code part-tracker-process)": [ + [25, "gp", "process-drawable"], + [30, "gp", "process-drawable"] + ], + + "(event part-spawner-active)": [[25, "v1", "vector"]], + + "(exit launcher-active)": [[2, "v0", "sound-rpc-set-param"]], + + "command-get-camera": [[27, "gp", "symbol"]], + + "(method 7 plant-boss)": [ + [47, "t9", "(function process-drawable int process-drawable)"] + ], + + "(code plant-boss-arm-hit)": [[88, "v1", "art-joint-anim"]], + + "(code plant-boss-arm-die)": [ + [3, "v1", "collide-shape-prim-group"], + [[11, 26], "a0", "collide-shape-prim-mesh"], + [58, "v1", "art-joint-anim"], + [109, "v1", "art-joint-anim"], + [165, "v1", "art-joint-anim"], + [186, "v1", "art-joint-anim"] + ], + + "(code plant-boss-back-arms-idle)": [[10, "v1", "art-joint-anim"]], + + "(code plant-boss-vine-hit)": [[88, "v1", "art-joint-anim"]], + + "(code plant-boss-dead-bounce)": [[79, "v1", "art-joint-anim"]], + + "(code plant-boss-vine-die)": [[46, "v1", "art-joint-anim"]], + + "(code plant-boss-dead-idle)": [[16, "v1", "art-joint-anim"]], + + "(code plant-boss-dead)": [ + [45, "v1", "art-joint-anim"], + [113, "v1", "art-joint-anim"] + ], + + "(code plant-boss-root-idle)": [[17, "v1", "art-joint-anim"]], + + "(code plant-boss-eat)": [ + [22, "v1", "float"], + [274, "v1", "art-joint-anim"] + ], + + "(code plant-boss-vulnerable)": [ + [149, "v1", "art-joint-anim"], + [221, "v1", "art-joint-anim"] + ], + + "(code plant-boss-far-idle)": [[62, "v1", "art-joint-anim"]], + + "(code plant-boss-idle)": [ + [25, "v1", "art-joint-anim"], + [177, "v1", "art-joint-anim"], + [271, "v1", "art-joint-anim"], + [304, "v1", "art-joint-anim"], + [366, "v1", "art-joint-anim"], + [404, "v1", "art-joint-anim"] + ], + + "(code plant-boss-leaf-close)": [ + [34, "v1", "art-joint-anim"], + [98, "v1", "art-joint-anim"] + ], + + "(code plant-boss-leaf-bounce)": [ + [17, "v1", "art-joint-anim"], + [72, "v1", "art-joint-anim"] + ], + + "(code plant-boss-leaf-open)": [ + [98, "v1", "art-joint-anim"], + [227, "v1", "art-joint-anim"] + ], + + "(code plant-boss-leaf-idle)": [ + [15, "v1", "art-joint-anim"], + [74, "v1", "art-joint-anim"] + ], + + "(code plant-boss-vine-idle)": [[17, "v1", "art-joint-anim"]], + + "(code plant-boss-back-arms-die)": [ + [20, "v1", "art-joint-anim"], + [82, "v1", "art-joint-anim"] + ], + + "(code plant-boss-back-arms-hit)": [[149, "v1", "art-joint-anim"]], + + "(method 7 ice-cube)": [[24, "t9", "(function nav-enemy int nav-enemy)"]], + + "(code ice-cube-appear)": [[14, "v1", "art-joint-anim"]], + + "(code ice-cube-tired)": [ + [14, "v1", "art-joint-anim"], + [68, "v1", "art-joint-anim"] + ], + + "(code ice-cube-become-mean)": [[15, "v1", "art-joint-anim"]], + + "(code ice-cube-retract-spikes)": [[22, "v1", "art-joint-anim"]], + + "(code ice-cube-mean-turn-to-charge)": [ + [15, "v1", "art-joint-anim"], + [187, "v1", "art-joint-anim"] + ], + + "(code ice-cube-face-player)": [ + [15, "v1", "art-joint-anim"], + [187, "v1", "art-joint-anim"] + ], + + "(code ice-cube-appear-land)": [[37, "v1", "art-joint-anim"]], + + "(code nav-enemy-patrol ice-cube)": [[8, "t9", "(function none)"]], + + "(event double-lurker-top-on-shoulders)": [ + [5, "a0", "vector"], + [22, "v1", "vector"], + [24, "v1", "vector"] + ], + + "(code double-lurker-top-on-shoulders-die)": [[18, "v1", "art-joint-anim"]], + + "(code double-lurker-top-knocked-down)": [[51, "v1", "art-joint-anim"]], + + "(code double-lurker-both-knocked-back)": [[14, "v1", "art-joint-anim"]], + + "(code double-lurker-knocked-back)": [[14, "v1", "art-joint-anim"]], + + "(code double-lurker-break-apart)": [[10, "v1", "art-joint-anim"]], + + "(code nav-enemy-patrol double-lurker-top)": [[27, "t9", "(function none)"]], + + "(code nav-enemy-patrol double-lurker)": [[27, "t9", "(function none)"]], + + "double-lurker-default-event-handler": [[95, "gp", "target"]], + + "(method 51 double-lurker)": [ + [6, "v1", "collide-shape-prim-group"], + [18, "v1", "collide-shape-prim-group"], + [22, "v1", "collide-shape-prim-group"] + ], + + "(method 7 billy)": [ + [26, "t9", "(function process-drawable int process-drawable)"] + ], + + "(method 38 billy)": [[33, "t9", "(function nav-enemy none)"]], + + "(enter nav-enemy-victory billy-rat)": [[4, "v0", "(state nav-enemy)"]], + + "(code billy-rat-salivate)": [[43, "v1", "art-joint-anim"]], + + "(code idle billy)": [ + [35, "v1", "float"], + [132, "v1", "art-joint-anim"] + ], + + "(enter billy-done)": [[191, "v1", "float"]], + + "(method 43 billy)": [[19, "v1", "float"]], + + "(event billy-done)": [ + [15, "v1", "billy-rat"], + [19, "v1", "billy-rat"] + ], + + "(event billy-playing)": [ + [14, "v1", "float"], + [93, "s5", "billy-rat"], + [103, "v1", "float"], + [169, "v1", "billy-snack"], + [216, "v1", "billy-snack"], + [219, "v1", "billy-snack"], + [223, "v1", "billy-snack"], + [240, "s5", "billy-snack"], + [248, "v1", "handle"], + [249, "s5", "billy-snack"], + [251, "s5", "billy-snack"], + [255, "s5", "billy-snack"] + ], + + "(code lurkerworm-rise)": [[13, "v1", "art-joint-anim"]], + + "(code lurkerworm-sink)": [[10, "v1", "art-joint-anim"]], + + "(code lurkerworm-die)": [[19, "v1", "art-joint-anim"]], + + "(code lurkerworm-rest)": [ + [10, "v1", "float"], + [35, "v1", "art-joint-anim"], + [89, "v1", "float"] + ], + + "(method 7 pelican)": [ + [36, "t9", "(function process-drawable int process-drawable)"] + ], + + "pelican-fly": [ + [61, "v1", "art-joint-anim"], + [186, "v1", "art-joint-anim"] + ], + + "(code pelican-dive)": [[161, "v1", "art-joint-anim"]], + + "(code pelican-wait-at-nest)": [ + [30, "v1", "art-joint-anim"], + [118, "v1", "art-joint-anim"], + [197, "v1", "art-joint-anim"] + ], + + "(event pelican-wait-at-nest)": [[49, "v1", "process-drawable"]], + + "(code pelican-explode)": [[71, "a0", "process-drawable"]], + + "(event pelican-circle)": [[23, "v1", "float"]], + + "(code pelican-spit)": [ + [42, "gp", "handle"], + [50, "gp", "handle"], + [121, "gp", "handle"], + [143, "gp", "handle"], + [155, "gp", "handle"], + [161, "s4", "handle"], + [173, "s4", "handle"] + ], + + "(trans energyarm-no-ball)": [ + [27, "v1", "float"], + [57, "v1", "float"] + ], + + "(trans energyarm-idle)": [[21, "v1", "float"]], + + "(code energyhub-stopped)": [[11, "v1", "float"]], + + "(code energyhub-stop)": [[11, "v1", "float"]], + + "(code energyhub-idle)": [[11, "v1", "float"]], + + "(code energyarm-idle)": [ + [13, "v1", "float"], + [36, "v1", "float"] + ], + + "energyhub-set-lava-height": [ + [25, "v1", "process-drawable"], + [28, "v1", "process-drawable"] + ], + + "(post idle citb-sage)": [[3, "t9", "(function none :behavior citb-sage)"]], + + "(method 44 red-sagecage)": [[35, "t9", "(function citb-sage none)"]], + + "(method 44 blue-sagecage)": [[35, "t9", "(function citb-sage none)"]], + + "(method 44 yellow-sagecage)": [[35, "t9", "(function citb-sage none)"]], + + "(method 44 green-sagecage)": [[35, "t9", "(function citb-sage none)"]], + + "(method 43 red-sagecage)": [[24, "v1", "float"]], + + "(method 43 blue-sagecage)": [[24, "v1", "float"]], + + "(method 43 yellow-sagecage)": [[24, "v1", "float"]], + + "(event play-anim green-sagecage)": [[128, "s5", "process-drawable"]], + + "(method 21 citb-sagecage)": [[[27, 97], "v1", "vector"]], + + "(code citb-sagecage-idle)": [ + [9, "gp", "citb-sage"], + [15, "gp", "citb-sage"] + ], + + "add-blue-motion": [ + [25, "v1", "process-drawable"], + [34, "gp", "collide-shape"] + ], + + "(event wait eco-collectable)": [ + [118, "a0", "vector"], + [136, "a0", "vector"] + ], + + "(event pickup eco-collectable)": [ + [18, "a0", "vector"], + [[15, 21], "v1", "vector"] + ], + + "(event fuel-cell-clone-anim)": [[35, "a0", "vector"]], + + "fuel-cell-animate": [[9, "gp", "fuel-cell"]], + + "(event wait fuel-cell)": [[95, "a0", "vector"]], + + "(enter pickup fuel-cell)": [[9, "v0", "(state eco-collectable)"]], + + "(code ecovalve-idle)": [[41, "v1", "process-drawable"]], + + "(code vent-pickup)": [ + [25, "gp", "process-drawable"], + [59, "s5", "collide-shape"] + ], + + "(anon-function 69 collectables)": [ + [2, "v1", "handle"], + [5, "v1", "handle"], + [8, "v1", "handle"], + [13, "s5", "eco-collectable"], + [33, "v1", "target"], + [38, "v1", "target"], + [50, "s5", "eco-collectable"] + ], + + "fuel-cell-init-by-other": [ + [108, "v0", "fact-options"], + [118, "gp", "vector"] + ], + + "ecovalve-init-by-other": [ + [95, "a0", "process-drawable"], + [144, "v1", "process-drawable"] + ], + + "(method 11 shover)": [ + ["_stack_", 16, "res-tag"], + [120, "v0", "(pointer float)"] + ], + + "(method 11 sun-iris-door)": [ + ["_stack_", 16, "res-tag"], + [153, "v0", "(pointer float)"] + ], + + "(event sun-iris-door-closed)": [[14, "a0", "vector"]], + + "(event sun-iris-door-opening)": [[14, "a0", "vector"]], + + "(event sun-iris-door-closing)": [[14, "a0", "vector"]], + + "(event sun-iris-door-open)": [[20, "a0", "vector"]], + + "sun-iris-door-init-by-other": [[97, "v1", "art-joint-anim"]], + + "(method 7 steam-cap)": [ + [19, "t9", "(function process-drawable int process-drawable)"] + ], + + "(method 11 steam-cap)": [ + ["_stack_", 16, "res-tag"], + [139, "v0", "(pointer float)"] + ], + + "(method 11 whirlpool)": [ + ["_stack_", 16, "res-tag"], + [92, "v0", "(pointer float)"] + ], + + "(method 21 collectable)": [ + [20, "v1", "int"], + [20, "a0", "int"], + [24, "a0", "int"] + ], + + "check-blue-suck": [[25, "v1", "collide-shape"]], + + "(code die eco)": [[53, "v1", "float"]], + + "(trans pickup fuel-cell)": [ + [92, "v1", "float"], + [130, "v0", "fact-options"] + ], + + "(enter notice-blue eco-collectable)": [[13, "v1", "float"]], + + "(code pickup fuel-cell)": [ + ["_stack_", 96, "res-tag"], + [[131, 143], "v1", "(inline-array vector)"], + [438, "a0", "game-task"], + [456, "a0", "game-task"], + [474, "a0", "game-task"], + [492, "a0", "game-task"], + [509, "v1", "game-task"], + [513, "v1", "game-task"], + [517, "v1", "game-task"], + [521, "v1", "game-task"] + ], + + "(method 11 eco)": [[13, "v0", "pickup-type"]], + + "target-powerup-process": [[[200, 215], "v1", "sound-rpc-set-param"]], + + "(method 14 touching-list)": [[[0, 11], "s5", "touching-shapes-entry"]], + + "(method 13 touching-list)": [ + [[0, 51], "v0", "touching-shapes-entry"] + // [5, "v0", "touching-shapes-entry"], + // [10, "v0", "touching-shapes-entry"], + // [17, "v0", "touching-shapes-entry"], + // [26, "v0", "touching-shapes-entry"], + // [46, "v0", "touching-shapes-entry"], + // [47, "v0", "touching-shapes-entry"], + // [48, "v0", "touching-shapes-entry"], + // [50, "v0", "touching-shapes-entry"] + ], + + "(method 11 touching-list)": [ + [8, "s5", "touching-shapes-entry"], + [10, "s5", "touching-shapes-entry"], + [11, "s5", "touching-shapes-entry"], + [13, "s5", "touching-shapes-entry"], + [32, "s5", "touching-shapes-entry"], + [47, "s5", "touching-shapes-entry"], + [49, "s5", "touching-shapes-entry"], + [51, "s5", "touching-shapes-entry"] + ], + + "(method 12 touching-list)": [ + [[4, 67], "gp", "touching-shapes-entry"], + [67, "gp", "(inline-array touching-shapes-entry)"] + ], + + "(method 35 collide-shape)": [ + [23, "v1", "connection"], + [24, "s2", "collide-shape"], + [33, "s2", "collide-shape"], + [48, "s2", "collide-shape"], + [62, "v1", "process-drawable"], + [80, "s2", "collide-shape"], + [117, "v1", "connection"], + [118, "s2", "collide-shape"], + [127, "s2", "collide-shape"], + [142, "s2", "collide-shape"], + [174, "s2", "collide-shape"], + [209, "v1", "connection"], + [210, "s2", "collide-shape"], + [219, "s2", "collide-shape"], + [234, "s2", "collide-shape"], + [266, "s2", "collide-shape"], + [301, "v1", "connection"], + [302, "s2", "collide-shape"], + [311, "s2", "collide-shape"], + [326, "s2", "collide-shape"], + [358, "s2", "collide-shape"] + ], + + "(method 56 collide-shape-moving)": [[89, "v1", "target"]], + + "(method 20 collide-shape-prim-group)": [ + [40, "a0", "collide-shape-prim-group"] + ], + + "(method 25 collide-shape-prim)": [ + [43, "gp", "collide-shape-prim-group"], + [47, "gp", "collide-shape-prim-group"] + ], + + "(method 29 collide-shape-prim-group)": [ + [13, "a0", "collide-shape-prim-group"] + ], + + "(method 28 collide-shape-prim-mesh)": [ + [[22, 45], "s4", "(array collide-mesh)"] + ], + + "(method 53 collide-shape)": [[[24, 40], "v1", "collide-shape-prim-group"]], + + "(method 54 collide-shape)": [[[18, 33], "v1", "collide-shape-prim-group"]], + + "(method 45 collide-shape)": [ + [18, "v1", "connection"], + [[19, 146], "s3", "collide-shape-moving"], + [146, "v1", "connection"], + [[147, 272], "s3", "collide-shape-moving"], + [272, "v1", "connection"], + [[273, 398], "s3", "collide-shape-moving"], + [398, "v1", "connection"], + [[399, 497], "s3", "collide-shape-moving"] + ], + + "(method 55 collide-shape)": [ + [33, "s5", "process-drawable"], + [54, "s5", "process-drawable"], + [59, "s5", "process-drawable"], + [68, "s5", "process-drawable"] + ], + + "collide-shape-draw-debug-marks": [ + [24, "v1", "connection"], + [[33, 55], "s5", "collide-shape"], + [72, "v1", "connection"], + [[81, 103], "s5", "collide-shape"], + [120, "v1", "connection"], + [[129, 151], "s5", "collide-shape"], + [168, "v1", "connection"], + [[177, 199], "s5", "collide-shape"] + ], + + "(method 9 collide-edge-work)": [ + [[5, 52], "s3", "collide-edge-edge"], + [[5, 52], "s4", "collide-edge-hold-item"] + ], + + "(method 19 collide-edge-work)": [ + [150, "a1", "int"], + [150, "v1", "int"] + //[[149, 162], "a0", "collide-shape-prim-group"] + ], + + "collide-probe-make-list": [ + [18, "v1", "drawable-group"], + [29, "v1", "drawable-group"], + [45, "v1", "drawable-group"] + ], + + "(method 11 instance-tie)": [ + [28, "s1", "collide-fragment"], + [38, "s1", "collide-fragment"], + [45, "s1", "(inline-array collide-fragment)"] + ], + + "(method 12 instance-tie)": [ + [21, "s1", "collide-fragment"], + [31, "s1", "collide-fragment"], + [38, "s1", "(inline-array collide-fragment)"] + ], + + "(method 13 instance-tie)": [ + [21, "s1", "collide-fragment"], + [29, "s1", "collide-fragment"], + [36, "s1", "(inline-array collide-fragment)"] + ], + + "(method 20 collide-cache)": [ + [18, "s2", "collide-cache-prim"], + [23, "s2", "collide-cache-prim"], + [27, "s2", "collide-cache-prim"], + [33, "s2", "collide-cache-prim"], + [37, "s2", "collide-cache-prim"], + [38, "v1", "collide-shape-prim-sphere"], // could be sphere or mesh...? + [45, "s2", "collide-cache-prim"], + [48, "s2", "(inline-array collide-cache-prim)"] + ], + + "test-closest-pt-in-triangle": [ + [19, "s5", "collide-cache-tri"], + [20, "s5", "collide-cache-tri"], + [21, "s5", "collide-cache-tri"], + [26, "s5", "collide-cache-tri"], + [47, "s5", "collide-cache-tri"], + [48, "s5", "(inline-array collide-cache-tri)"] + ], + + "(method 9 collide-cache)": [ + [[1, 29], "gp", "collide-cache-tri"], + [[29, 56], "gp", "collide-cache-prim"], + [35, "gp", "collide-cache-prim"], + [50, "gp", "collide-cache-prim"], + [51, "gp", "collide-cache-prim"], + [55, "gp", "collide-cache-prim"], + [36, "v1", "collide-shape-prim-sphere"] + ], + + "(method 9 collide-mesh)": [ + [[17, 62], "s5", "collide-mesh-tri"], + [62, "s5", "(inline-array collide-mesh-tri)"] + ], + + "(method 22 collide-shape-prim-mesh)": [ + [10, "s4", "collide-shape-prim-group"], + [41, "s4", "collide-shape-prim-group"] + ], + + "(method 44 collide-shape)": [[26, "a0", "process-drawable"]], + + "(method 43 collide-shape)": [ + [58, "gp", "collide-shape-moving"], + [88, "gp", "collide-shape-moving"] + ], + + "find-instance-by-name": [ + [21, "v1", "drawable-tree-instance-shrub"], + [48, "v1", "drawable-tree-instance-tie"] + ], + + "(method 63 collide-shape-moving)": [ + [[33, 53], "s0", "collide-cache-prim"], + [53, "s0", "(inline-array collide-cache-prim)"] + ], + + "target-falling-anim": [ + [51, "v1", "art-joint-anim"], + [160, "v1", "art-joint-anim"] + ], + + "target-hit-ground-anim": [ + [55, "v1", "float"], + [79, "v1", "art-joint-anim"], + [312, "v1", "art-joint-anim"], + [389, "v1", "art-joint-anim"], + [441, "v1", "art-joint-anim"], + [520, "v1", "art-joint-anim"], + [578, "v1", "art-joint-anim"], + [660, "v1", "float"], + [675, "v1", "art-joint-anim"], + [736, "v1", "art-joint-anim"], + [846, "v1", "art-joint-anim"] + ], + + "(code target-stance)": [ + [48, "v1", "art-joint-anim"], + [117, "v1", "art-joint-anim"], + [170, "v1", "art-joint-anim"], + [234, "v1", "art-joint-anim"], + [298, "v1", "art-joint-anim"], + [389, "v1", "art-joint-anim"], + [503, "v1", "art-joint-anim"], + [626, "v1", "float"] + ], + + "(code target-walk)": [ + [146, "v1", "art-joint-anim"], + [243, "v1", "art-joint-anim"], + [527, "v1", "float"], + [591, "v1", "float"] + ], + + "(code target-slide-down)": [[26, "v1", "art-joint-anim"]], + + "(code target-jump-forward)": [[13, "v1", "art-joint-anim"]], + "(code target-jump)": [[127, "v1", "float"]], + + "(code target-double-jump)": [[24, "v1", "art-joint-anim"]], + + "(code target-attack-air)": [ + [14, "v1", "art-joint-anim"], + [167, "v1", "art-joint-anim"] + ], + + "(code target-attack)": [[14, "v1", "art-joint-anim"]], + + "(code target-flop)": [[13, "v1", "art-joint-anim"]], + + "(code target-duck-stance)": [ + [21, "v1", "art-joint-anim"], + [116, "v1", "art-joint-anim"], + [168, "v1", "art-joint-anim"] + ], + + "(code target-attack-uppercut)": [[39, "v1", "float"]], + + "mod-var-jump": [ + [77, "f0", "float"], + [80, "f0", "float"], + [159, "v0", "vector"] + ], + + "(code target-duck-high-jump-jump)": [[8, "v1", "float"]], + + "(event target-running-attack)": [ + [41, "v1", "process-drawable"], + [50, "s5", "collide-shape"] + ], + + "(enter target-jump)": [[53, "v1", "vector"]], + + "(enter target-high-jump)": [[21, "v1", "vector"]], + + "(enter target-double-jump)": [[15, "v1", "vector"]], + + // TODO - these shouldnt be required, but are here because `go/enter-state` returns none + "(event target-flop)": [ + [34, "t9", "(function object :behavior target)"], + [40, "t9", "(function symbol object :behavior target)"] + ], + + "target-powerup-effect": [ + [267, "a0", "symbol"], + [307, "a0", "vector"] + ], + + "(method 10 water-control)": [ + [71, "a0", "collide-shape-moving"], + [147, "v1", "collide-shape-moving"], + [179, "v1", "collide-shape-moving"], + [461, "v1", "control-info"], + [473, "a0", "collide-shape-moving"], + [488, "v1", "collide-shape-moving"], + [502, "v1", "collide-shape-moving"], + [508, "v1", "collide-shape-moving"], + [580, "v1", "collide-shape-moving"], + [600, "s4", "collide-shape-moving"], + [609, "s4", "collide-shape-moving"], + [622, "s4", "collide-shape-moving"], + [627, "s4", "collide-shape-moving"], + [629, "s4", "collide-shape-moving"], + [716, "s5", "collide-shape-moving"], + [720, "s5", "collide-shape-moving"], + [721, "s5", "collide-shape-moving"], + [728, "s5", "collide-shape-moving"], + [730, "s5", "collide-shape-moving"], + [731, "s5", "collide-shape-moving"], + [744, "v1", "collide-shape-moving"], + [751, "a0", "collide-shape-moving"], + [775, "v1", "collide-shape-moving"], + [824, "a1", "collide-shape-moving"], + [826, "a0", "collide-shape-moving"], + [831, "v1", "collide-shape-moving"] + ], + + "part-water-splash-callback": [[3, "v1", "float"]], + + "(method 15 water-control)": [[42, "v1", "float"]], + + "(method 27 water-vol)": [[16, "v1", "target"]], + + "(method 26 water-vol)": [ + [19, "v1", "target"], + [33, "v1", "target"] + ], + + "(method 29 water-vol)": [ + ["_stack_", 16, "res-tag"], + [46, "v0", "(pointer float)"] + ], + + "(enter pickup racer)": [[1, "t9", "(function none :behavior racer)"]], + + "target-racing-jump-anim": [[36, "v1", "art-joint-anim"]], + + "target-racing-land-anim": [ + [23, "v1", "art-joint-anim"], + [82, "v1", "art-joint-anim"], + [144, "v1", "art-joint-anim"] + ], + + "(post target-racing-get-off-jump)": [[191, "f0", "float"]], + + "check-drop-level-rolling-dirt-finish": [[17, "v1", "float"]], + + "(code peeper-down)": [[24, "v1", "float"]], + + "(code nav-enemy-notice fleeing-nav-enemy)": [[27, "v1", "art-joint-anim"]], + + "(code lightning-mole-dive)": [[39, "v1", "art-joint-anim"]], + + "(code lightning-mole-yelp)": [[19, "v1", "art-joint-anim"]], + + "(code peeper-up)": [[10, "v1", "art-joint-anim"]], + + "(code robber-idle)": [[14, "v1", "art-joint-anim"]], + + "(code robber-initial)": [[14, "v1", "art-joint-anim"]], + + "(code robber-initial-notice)": [[43, "v1", "art-joint-anim"]], + + "(code robber-tired)": [ + [69, "v1", "art-joint-anim"], + [136, "v1", "float"] + ], + + "(code robber-flee)": [ + [69, "v1", "art-joint-anim"], + [136, "v1", "float"] + ], + + "(code robber-die)": [ + [71, "f0", "float"], + [104, "v1", "art-joint-anim"] + ], + + "target-flut-hit-ground-anim": [ + [131, "v1", "art-joint-anim"], + [204, "v1", "art-joint-anim"] + ], + + "target-flut-standard-event-handler": [[164, "a0", "process-drawable"]], + + "(code target-flut-stance)": [ + [81, "v1", "art-joint-anim"], + [145, "v1", "art-joint-anim"] + ], + + "(code target-flut-walk)": [[60, "v1", "art-joint-anim"]], + + "(code target-flut-air-attack)": [[98, "v1", "art-joint-anim"]], + + "(code target-flut-air-attack-hit-ground)": [[86, "v1", "art-joint-anim"]], + + "(code target-flut-death)": [[224, "v1", "art-joint-anim"]], + + "(code target-flut-get-off-hit-ground)": [[13, "v1", "art-joint-anim"]], + + "(code target-flut-running-attack)": [ + [53, "v1", "float"], + [181, "f30", "float"], + [246, "f1", "float"], + [247, "f0", "float"], + [247, "f30", "float"], + [350, "v1", "art-joint-anim"], + [381, "f30", "float"] + ], + + "(code target-flut-double-jump)": [ + [14, "v1", "art-joint-anim"], + [78, "v1", "art-joint-anim"] + ], + + "(trans target-flut-walk)": [ + [147, "f0", "float"], + [152, "f1", "float"], + [203, "f0", "float"] + ], + + "(event target-flut-running-attack)": [ + [41, "v1", "process-drawable"], + [53, "v1", "collide-shape"], + [59, "v1", "collide-shape"] + ], + + "(code target-flut-get-on)": [ + [62, "s4", "process-drawable"], + [69, "s4", "process-drawable"], + [88, "s4", "process-drawable"], + [93, "s4", "process-drawable"] + ], + + "(code target-flut-get-off-jump)": [ + [55, "s3", "process-drawable"], + [59, "s3", "process-drawable"], + [74, "s3", "process-drawable"], + [93, "s3", "process-drawable"], + [98, "s3", "process-drawable"], + [145, "v1", "art-joint-anim"] + ], + + "(event target-flut-grab)": [[24, "a0", "process-drawable"]], + + "(post target-racing-get-on)": [ + [76, "f0", "float"], + [88, "f0", "float"], + [92, "f1", "float"] + ], + + "target-death-anim": [[18, "v1", "art-joint-anim"]], + + "target-hit-setup-anim": [ + [90, "v1", "art-joint-anim"], + [164, "v1", "art-joint-anim"] + ], + + "(anon-function 1 target-death)": [ + [12, "gp", "process-drawable"], + [16, "gp", "process-drawable"] + ], + + "next-level": [ + [7, "a1", "level-load-info"], + [10, "a1", "level-load-info"] + ], + + "target-generic-event-handler": [ + [10, "v1", "float"], + [297, "v1", "float"], + [308, "a0", "vector"], + [562, "v1", "(state object object object object target)"] + ], + + "target-standard-event-handler": [ + [167, "a0", "process"], + [182, "a0", "process"], + [197, "a0", "process"], + [223, "a0", "process"], + [242, "a0", "process"], + [257, "a0", "process"], + [272, "a0", "process"], + [280, "a1", "process"], + [303, "a0", "process"], + [330, "a0", "process"] + ], + + "(code target-load-wait)": [ + [21, "v1", "art-joint-anim"], + [138, "v1", "art-joint-anim"], + [196, "v1", "art-joint-anim"] + ], + + "(code target-grab)": [ + [133, "v1", "art-joint-anim"], + [185, "v1", "art-joint-anim"], + [322, "v1", "art-joint-anim"], + [475, "v1", "art-joint-anim"] + ], + + "(code target-pole-cycle)": [ + [87, "v1", "art-joint-anim"], + [148, "v1", "art-joint-anim"] + ], + + "(code target-pole-flip-up)": [[13, "v1", "art-joint-anim"]], + + "(code target-edge-grab-jump)": [[34, "v1", "art-joint-anim"]], + + "(code target-eco-powerup)": [ + [32, "v1", "art-joint-anim"], + [47, "v1", "float"], + [215, "v1", "float"] + ], + + "(code target-swim-stance)": [ + [31, "v1", "art-joint-anim"], + [52, "v1", "float"], + [89, "v1", "float"] + ], + + "(event target-swim-down)": [ + [9, "v1", "attack-info"], + [13, "v1", "attack-info"], + [18, "v1", "attack-info"], + [23, "v1", "attack-info"], + [38, "v1", "attack-info"], + [39, "v1", "attack-info"], + [41, "v1", "attack-info"] + ], + + "(code target-swim-walk)": [ + [54, "v1", "art-joint-anim"], + [140, "v1", "art-joint-anim"] + ], + + "(code target-yellow-jump-blast)": [[184, "v1", "art-joint-anim"]], + + "(code target-swim-down)": [[52, "v1", "art-joint-anim"]], + + "(code target-play-anim)": [[8, "v0", "art-joint-anim"]], + + "(code target-look-around)": [[20, "v0", "float"]], + + "(code target-stance-look-around)": [ + [10, "v0", "float"], + [36, "t9", "(function none :behavior target)"] + ], + + "part-first-person-hud-selector-func": [[16, "v1", "first-person-hud"]], + + "part-first-person-hud-right-func": [ + [16, "s5", "first-person-hud"], + [42, "s5", "first-person-hud"], + [46, "s5", "first-person-hud"], + [50, "s5", "first-person-hud"], + [59, "s5", "first-person-hud"] + ], + + "part-first-person-hud-left-func": [ + [16, "s5", "first-person-hud"], + [43, "s5", "first-person-hud"], + [47, "s5", "first-person-hud"], + [51, "s5", "first-person-hud"], + [60, "s5", "first-person-hud"] + ], + + "(event target-grab)": [ + [30, "a0", "process"], + [48, "a0", "process"], + [56, "a1", "process"] + ], + + "(code target-periscope)": [ + [25, "v1", "process-drawable"], + [49, "v1", "art-joint-anim"], + [130, "v1", "art-joint-anim"] + ], + + "(code target-swim-up)": [[17, "v1", "art-joint-anim"]], + + "(code target-yellow-blast)": [ + [161, "gp", "handle"], + [176, "v1", "art-joint-anim"], + [219, "gp", "handle"] + ], + + "(code target-edge-grab)": [ + [143, "v1", "art-joint-anim"], + [198, "v1", "art-joint-anim"] + ], + + "(method 10 first-person-hud)": [[32, "t9", "(function process none)"]], + + "(code target-pole-flip-forward-jump)": [ + [40, "t9", "(function none :behavior target)"] + ], + + "tfrag-details": [[49, "gp", "(pointer uint32)"]], + + "flatten-joint-control-to-spr": [ + [14, "a1", "pointer"], + [[66, 108], "a1", "(inline-array vector)"], + [[36, 38], "a1", "(inline-array vector)"], + [[39, 60], "a1", "(inline-array vector)"], + [38, "a1", "pointer"], + [[15, 37], "a1", "(inline-array vector)"], + [56, "a2", "(pointer float)"], + [120, "a0", "terrain-context"], + [154, "a0", "terrain-context"], + [189, "a1", "terrain-context"], + [184, "v1", "terrain-context"], + [172, "a1", "terrain-context"] + ], + + "matrix-from-control-pair!": [[18, "a0", "terrain-context"]], + + "cspace<-matrix-no-push-joint!": [[4, "a0", "terrain-context"]], + + "make-joint-jump-tables": [ + [5, "a0", "terrain-context"], + [11, "a0", "terrain-context"], + [17, "a0", "terrain-context"], + [23, "a0", "terrain-context"], + [29, "a0", "terrain-context"], + [35, "a0", "terrain-context"], + [41, "a0", "terrain-context"], + [47, "a0", "terrain-context"], + [53, "a0", "terrain-context"], + [59, "a0", "terrain-context"], + [65, "a0", "terrain-context"], + [71, "a0", "terrain-context"], + [77, "a0", "terrain-context"], + [83, "a0", "terrain-context"], + [89, "a0", "terrain-context"], + [95, "a0", "terrain-context"], + [101, "a0", "terrain-context"], + [107, "a0", "terrain-context"], + [113, "a0", "terrain-context"], + [119, "a0", "terrain-context"], + [125, "a0", "terrain-context"], + [131, "a0", "terrain-context"], + [137, "a0", "terrain-context"], + [143, "a0", "terrain-context"], + [149, "a0", "terrain-context"], + [155, "a0", "terrain-context"], + [161, "a0", "terrain-context"], + [167, "a0", "terrain-context"], + [173, "a0", "terrain-context"], + [179, "a0", "terrain-context"], + [185, "a0", "terrain-context"], + [191, "a0", "terrain-context"], + [197, "a0", "terrain-context"], + [203, "a0", "terrain-context"], + [209, "a0", "terrain-context"], + [215, "a0", "terrain-context"], + [221, "a0", "terrain-context"], + [227, "a0", "terrain-context"], + [233, "a0", "terrain-context"], + [239, "a0", "terrain-context"], + [245, "a0", "terrain-context"], + [251, "a0", "terrain-context"], + [257, "a0", "terrain-context"], + [263, "a0", "terrain-context"], + [269, "a0", "terrain-context"], + [275, "a0", "terrain-context"], + [281, "a0", "terrain-context"], + [287, "a0", "terrain-context"] + ], + + "find-instance-by-index": [ + [26, "t1", "drawable-tree-instance-shrub"], + [40, "t1", "drawable-tree-instance-tie"] + ], + + "draw-instance-info": [ + [224, "s1", "drawable-group"], + [143, "v1", "prototype-shrubbery"], + [148, "v1", "prototype-shrubbery"], + [299, "v1", "prototype-tie"], + [318, "v1", "prototype-tie"] + ], + + "(method 24 ram-boss-proj)": [ + [64, "v0", "sound-rpc-set-param"], + [83, "gp", "process-drawable"], + [86, "gp", "process-drawable"] + ], + + "ram-boss-on-ground-event-handler": [[260, "v1", "ram-boss-proj"]], + + "(method 52 ram-boss)": [ + [11, "v1", "(array collide-shape-prim)"], + [21, "v1", "(array collide-shape-prim)"], + [31, "v1", "(array collide-shape-prim)"], + [41, "v1", "(array collide-shape-prim)"] + ], + + "(method 53 ram-boss)": [ + [2, "v1", "(array collide-shape-prim)"], + [5, "v1", "(array collide-shape-prim)"], + [8, "v1", "(array collide-shape-prim)"], + [11, "v1", "(array collide-shape-prim)"] + ], + + "(code ram-boss-idle)": [[38, "v1", "collide-shape-prim-group"]], + + "(code ram-boss-jump-down)": [[14, "v1", "art-joint-anim"]], + + "(code ram-boss-jump-down-hit-ground)": [[23, "v1", "art-joint-anim"]], + + "(code ram-boss-forward-defend-block)": [[14, "v1", "art-joint-anim"]], + + "(code ram-boss-up-defend-block)": [[14, "v1", "art-joint-anim"]], + + "(code nav-enemy-victory ram-boss)": [[28, "v1", "art-joint-anim"]], + + "(code ram-boss-lose-shield)": [[29, "v1", "art-joint-anim"]], + + "(code ram-boss-throw)": [ + [16, "v1", "art-joint-anim"], + [67, "v1", "art-joint-anim"] + ], + + "(method 56 ram-boss)": [[58, "v1", "(pointer ram-boss-proj)"]], + + "(code ram-idle)": [ + [28, "v1", "art-joint-anim"], + [98, "v1", "art-joint-anim"] + ], + + "(code ram-give-fuel-cell)": [[69, "v1", "(pointer snowcam)"]], + + "(code snow-bumper-deactivate)": [ + [29, "v1", "art-joint-anim"], + [106, "v1", "art-joint-anim"] + ], + + "(code snow-bumper-spawn-fuel-cell)": [[16, "v1", "art-joint-anim"]], + + "(code snow-bumper-inactive-idle)": [[19, "v1", "art-joint-anim"]], + + "(method 7 snow-bumper)": [ + [14, "t9", "(function process-drawable int process-drawable)"] + ], + + "(method 11 snow-bumper)": [ + ["_stack_", 16, "res-tag"], + [216, "v0", "(pointer float)"] + ], + + "(code spider-egg-idle)": [ + [20, "v1", "art-joint-anim"], + [97, "v1", "art-joint-anim"], + [153, "v1", "art-joint-anim"] + ], + + "(code spider-egg-hatch)": [[62, "v1", "art-joint-anim"]], + + "(code spider-egg-die)": [[79, "v1", "art-joint-anim"]], + + "(code puffer-die)": [[33, "v1", "art-joint-anim"]], + + "puffer-default-event-handler": [ + [28, "v1", "process-drawable"], + [34, "v1", "process-drawable"] + ], + + "(method 22 puffer)": [[10, "v1", "process-drawable"]], + + "(method 25 puffer)": [ + [49, "v1", "puffer"], + [56, "v1", "puffer"] + ], + + "(method 23 puffer)": [[18, "v1", "process-drawable"]], + + "(trans puffer-attack)": [[23, "v1", "collide-shape-prim-group"]], + + "(method 30 puffer)": [[16, "v1", "(array collide-shape-prim)"]], + + "(method 31 puffer)": [[16, "v1", "(array collide-shape-prim)"]], + + "(method 7 puffer)": [ + [14, "t9", "(function process-drawable int process-drawable)"] + ], + + "(method 11 puffer)": [ + ["_stack_", 16, "res-tag"], + [213, "v0", "(pointer float)"] + ], + + "driller-lurker-default-event-handler": [ + [[51, 87], "s1", "touching-shapes-entry"] + ], + + "(code driller-lurker-idle-drilling)": [[33, "v1", "art-joint-anim"]], + + "(code driller-lurker-jammed-standing)": [[14, "v1", "art-joint-anim"]], + + "(code driller-lurker-die)": [[28, "v1", "art-joint-anim"]], + + "(method 7 driller-lurker)": [ + [24, "t9", "(function process-drawable int process-drawable)"] + ], + + "(method 11 driller-lurker)": [ + ["_stack_", 16, "res-tag"], + [373, "v0", "(pointer float)"] + ], + + "kermit-short-hop": [[10, "v1", "art-joint-anim"]], + + "kermit-long-hop": [[10, "v1", "art-joint-anim"]], + + "(code kermit-patrol)": [[10, "v1", "art-joint-anim"]], + + "(code kermit-chase-new-position)": [[16, "v1", "art-joint-anim"]], + + "(code kermit-chase)": [[14, "v1", "art-joint-anim"]], + + "(code kermit-attack)": [[22, "v1", "art-joint-anim"]], + + "(code kermit-tongue-stuck)": [[14, "v1", "art-joint-anim"]], + + "(code kermit-retract-tongue)": [ + [14, "v1", "art-joint-anim"], + [90, "v1", "art-joint-anim"] + ], + + "(method 39 kermit)": [[7, "t9", "(function nav-enemy none)"]], + + "(code falling gnawer-falling-segment)": [ + [16, "v1", "art-joint-anim"], + [70, "v1", "art-joint-anim"] + ], + + "(method 22 gnawer)": [[18, "f0", "float"]], + + "(code gnawer-chewing-on-post)": [ + [139, "v1", "art-joint-anim"], + [210, "v1", "art-joint-anim"], + [272, "v1", "art-joint-anim"], + [363, "v1", "art-joint-anim"], + [451, "v1", "art-joint-anim"] + ], + + "(code gnawer-retreat-into-post)": [[18, "v1", "art-joint-anim"]], + + "(code gnawer-die)": [[28, "v1", "art-joint-anim"]], + + "(event gnawer-run)": [[54, "a2", "touching-shapes-entry"]], + + "(method 7 gnawer)": [[19, "t9", "(function nav-enemy int nav-enemy)"]], + + "(code gnawer-give-fuel-cell)": [ + [43, "v0", "maincavecam"], + [64, "v1", "maincavecam"] + ], + + "(method 11 gnawer)": [ + ["_stack_", 16, "res-tag"], + ["_stack_", 32, "res-tag"], + ["_stack_", 48, "res-tag"], + [361, "v0", "(pointer float)"], + [426, "v0", "(pointer int32)"], + [446, "v0", "(pointer int32)"] + ], + + "(code mother-spider-egg-falling)": [[14, "v1", "art-joint-anim"]], + + "(code mother-spider-egg-hatch)": [[65, "v1", "art-joint-anim"]], + + "(code mother-spider-egg-die)": [[63, "v1", "art-joint-anim"]], + + "(code mother-spider-egg-die-while-falling)": [[63, "v1", "art-joint-anim"]], + + "(code mother-spider-egg-on-ground)": [ + [50, "v1", "art-joint-anim"], + [124, "v1", "art-joint-anim"] + ], + + "(method 7 swamp-blimp)": [ + [19, "t9", "(function process-drawable int process-drawable)"] + ], + + "(code swamp-tetherrock-break)": [ + [238, "s4", "handle"], + [261, "s4", "handle"], + [283, "s4", "handle"], + [300, "s4", "handle"], + [373, "a0", "swamp-blimp"] + ], + + "(event swamp-tetherrock-idle)": [[55, "gp", "process-drawable"]], + + "(code swamp-rope-break)": [ + [10, "v1", "float"], + [26, "v1", "float"], + [48, "v1", "float"], + [64, "v1", "art-joint-anim"] + ], + + "swamp-rope-trans": [ + [40, "v1", "swamp-rope"], + [48, "v1", "swamp-rope"] + ], + + "(code swamp-rope-idle-arm)": [[13, "v1", "swamp-rope"]], + + "swamp-blimp-setup": [[[26, 117], "s4", "swamp-rope"]], + + "(code swamp-rope-idle-rock)": [ + [32, "a0", "swamp-rope"], + [33, "a0", "swamp-rope"] + ], + + "(code mistycannon-missile-idle)": [ + [110, "v0", "sound-rpc-set-param"], + [207, "v1", "art-joint-anim"], + [257, "v1", "art-joint-anim"] + ], + + "(event mistycannon-missile-explode)": [[16, "v1", "mistycannon-missile"]], + + "(code cam-mistycannon)": [ + [3, "a1", "mistycannon"], + [9, "v1", "mistycannon"] + ], + + "(method 26 citb-plat)": [ + [18, "v1", "vector"], + [47, "v1", "vector"] + ], + + "(method 23 citb-chain-plat)": [ + [9, "t9", "(function rigid-body-platform float none)"] + ], + + "(code citb-firehose-blast)": [ + [10, "v1", "art-joint-anim"], + [86, "v1", "art-joint-anim"], + [157, "v1", "art-joint-anim"] + ], + + "(trans plat-button-move-downward citb-exit-plat)": [ + [10, "v0", "(state plat-button)"] + ], + + "(trans plat-button-move-upward citb-exit-plat)": [ + [10, "v0", "(state plat-button)"] + ], + + "(code darkvine-idle)": [[32, "v1", "art-joint-anim"]], + + "(code darkvine-retreat)": [ + [23, "v1", "art-joint-anim"], + [138, "v1", "art-joint-anim"] + ], + + "(enter cam-periscope)": [ + [7, "a1", "periscope"], + [13, "a1", "periscope"], + [16, "v1", "periscope"] + ], + + "(code cam-periscope)": [ + [2, "v1", "periscope"], + [4, "v1", "periscope"], + [12, "v1", "periscope"], + [71, "v1", "periscope"], + [79, "v1", "periscope"] + ], + + "periscope-crosshair": [[50, "v1", "periscope"]], + + "periscope-find-next": [[58, "v1", "vector"]], + + "(code reflector-origin-idle)": [[60, "v1", "periscope"]], + + "(code periscope-player-control)": [ + [41, "v0", "(pointer float)"], + [508, "gp", "handle"] + ], + + "quicksandlurker-post": [ + [50, "a0", "water-anim"], + [54, "a0", "water-anim"] + ], + + "(code quicksandlurker-wait)": [ + [33, "v1", "art-joint-anim"], + [89, "v1", "art-joint-anim"] + ], + + "(code quicksandlurker-yawn)": [[10, "v1", "art-joint-anim"]], + + "(code quicksandlurker-track)": [[29, "v1", "art-joint-anim"]], + + "(code quicksandlurker-attack)": [[12, "v1", "art-joint-anim"]], + + "(code quicksandlurker-hide)": [[14, "v1", "art-joint-anim"]], + + "(code quicksandlurker-popup)": [[38, "v1", "art-joint-anim"]], + + "(code quicksandlurker-die)": [[18, "v1", "art-joint-anim"]], + + "(code quicksandlurker-victory)": [ + [18, "v1", "art-joint-anim"], + [69, "v1", "art-joint-anim"] + ], + + "(method 7 balloonlurker)": [ + [29, "t9", "(function process-drawable int process-drawable)"] + ], + + "(code balloonlurker-pilot-die)": [[58, "v1", "art-joint-anim"]], + + "(code orbit-plat-bottom-idle)": [ + [29, "v1", "orbit-plat"], + [35, "v1", "orbit-plat"], + [109, "v1", "orbit-plat"], + [126, "v1", "orbit-plat"] + ], + + "(method 27 orbit-plat)": [ + [20, "s5", "orbit-plat"], + [29, "s5", "orbit-plat"], + [33, "s5", "orbit-plat"], + [40, "s5", "orbit-plat"], + [44, "s5", "orbit-plat"], + [72, "a2", "orbit-plat"], + [153, "a1", "orbit-plat"] + ], + + "(code mother-spider-leg-flying)": [ + [21, "v1", "art-joint-anim"], + [80, "v1", "art-joint-anim"] + ], + + "(code mother-spider-stop-traveling)": [[14, "v1", "art-joint-anim"]], + + "(code mother-spider-hit-while-birthing)": [ + [14, "v1", "art-joint-anim"], + [68, "v1", "art-joint-anim"] + ], + + "(code mother-spider-birthing)": [[53, "v1", "art-joint-anim"]], + + "(code mother-spider-die)": [[36, "v1", "art-joint-anim"]], + + "(code mother-spider-die-from-uppercut)": [[31, "v1", "art-joint-anim"]], + + "(code mother-spider-spit)": [[15, "v1", "art-joint-anim"]], + + "(code mother-spider-birth-baby)": [[15, "v1", "art-joint-anim"]], + + "(code mother-spider-hit-while-tracking)": [ + [14, "v1", "art-joint-anim"], + [68, "v1", "art-joint-anim"] + ], + + "(code mother-spider-tracking)": [[53, "v1", "art-joint-anim"]], + + "mother-spider-default-event-handler": [ + [52, "a0", "process-drawable"], + [138, "a0", "process-drawable"] + ], + + "mother-spider-death-event-handler": [[7, "a0", "process-drawable"]], + + "(code bully-broken-cage-explode)": [[14, "v1", "art-joint-anim"]], + + "(code bully-notice)": [[148, "v1", "art-joint-anim"]], + + "(code bully-start-spinning)": [[14, "v1", "art-joint-anim"]], + + "(code bully-die)": [[70, "v1", "art-joint-anim"]], + + "bully-default-event-handler": [[21, "gp", "process-drawable"]], + + "(trans bully-notice)": [[10, "v1", "collide-shape-prim-group"]], + + "(trans bully-start-spinning)": [[10, "v1", "collide-shape-prim-group"]], + + "(trans bully-stop-spinning)": [[10, "v1", "collide-shape-prim-group"]], + + "(method 7 bully)": [ + [14, "t9", "(function process-drawable int process-drawable)"] + ], + + "(enter seagull-idle)": [[20, "v1", "float"]], + + "seagull-init-by-other": [[96, "v1", "float"]], + + "seagull-reaction": [ + [36, "s4", "seagull"], + [38, "s4", "seagull"] + ], + + "beach-rock-trigger": [[5, "v0", "seagullflock"]], + + "(method 11 seagullflock)": [ + [80, "v1", "float"], + [99, "v1", "float"] + ], + + "(code seagull-flying)": [ + [13, "v1", "art-joint-anim"], + [373, "v1", "float"] + ], + + "(code seagull-soaring)": [ + [15, "v1", "art-joint-anim"], + [296, "v1", "float"] + ], + + "(method 26 seagull)": [ + [12, "v1", "float"], + [33, "v1", "float"], + [54, "v1", "float"] + ], + + "(code seagull-idle)": [ + [51, "v1", "float"], + [67, "v1", "float"], + [143, "v1", "float"], + [218, "v1", "float"] + ], + + "(code target-ice-stance)": [ + [42, "v1", "art-joint-anim"], + [108, "v1", "art-joint-anim"], + [159, "v1", "art-joint-anim"], + [221, "v1", "art-joint-anim"], + [283, "v1", "art-joint-anim"], + [370, "v1", "art-joint-anim"], + [479, "v1", "art-joint-anim"] + ], + + "bones-set-sqwc": [[2, "v1", "dma-bank-control"]], + "bones-reset-sqwc": [[2, "v1", "dma-bank-control"]], + + "bones-init": [ + [2, "a2", "terrain-context"], + [59, "a0", "(pointer int64)"], + [9, "a2", "bone-memory"], + [13, "a2", "bone-memory"], + [17, "a2", "bone-memory"], + [21, "a2", "bone-memory"], + [25, "a2", "bone-memory"], + [29, "a2", "bone-memory"], + [[31, 39], "v1", "bone-memory"] + ], + + "draw-bones-mtx-calc": [[[5, 8], "t2", "bone-memory"]], + + "bones-mtx-calc-execute": [ + [[18, 45], "v1", "bone-memory"], + [[90, 108], "v1", "(inline-array matrix)"], + [47, "a0", "dma-bank-control"], + [118, "a0", "dma-bank-control"], + [[89, 112], "a1", "(inline-array vector)"] + ], + + "bones-wrapup": [ + [[3, 26], "v1", "bone-memory"], + [[9, 12], "a1", "dma-packet"] + ], + + "texscroll-make-request": [[[9, 39], "a1", "mei-texture-scroll"]], + + "texscroll-execute": [ + [[25, 31], "a1", "mei-texture-scroll"], + [[15, 52], "a2", "merc-fragment-control"], + [[20, 24], "t1", "merc-fragment"], + [[26, 40], "t1", "(pointer int8)"], + [19, "t1", "pointer"] + ], + + "draw-bones": [ + [[50, 53], "t4", "bone-memory"], + [[110, 123], "v1", "vu-lights"], + [199, "v1", "mei-texture-scroll"], + [334, "v1", "merc-extra-info"], + [357, "a0", "(pointer int8)"], + [[38, 43], "a2", "bone-regs"], + [545, "s2", "int"], + [49, "a1", "bone-calculation"], + [262, "s2", "(pointer uint32)"], + [89, "at", "terrain-context"], + [[312, 334], "v1", "mei-envmap-tint"], + [363, "a0", "(pointer uint8)"] + ], + + "draw-bones-hud": [ + [[14, 19], "t0", "bone-regs"], + [25, "a2", "bone-calculation"], + [[26, 29], "t6", "bone-memory"], + [[73, 89], "t2", "vu-lights"], + [89, "t1", "vu-lights"], + [78, "t1", "pointer"], + [49, "at", "terrain-context"] + ], + + "joint-mod-tracker-callback": [[[3, 99], "s4", "joint-mod-tracker"]], + + "(method 7 snow-ball)": [ + [26, "t9", "(function process-drawable int process-drawable)"] + ], + + "(method 11 mistycannon)": [ + ["_stack_", 16, "res-tag"], + ["_stack_", 32, "res-tag"], + ["_stack_", 48, "res-tag"], + [337, "v0", "(pointer float)"], + [367, "v0", "(pointer float)"] + ], + + "quicksandlurker-missile-init-by-other": [[76, "a0", "process-drawable"]], + + "mother-spider-full-joint-callback": [ + [[10, 48], "v1", "mother-spider-thread"] + ], + + "(method 11 mother-spider)": [ + ["_stack_", 16, "res-tag"], + [[500, 525], "v0", "(pointer float)"] + ], + + "(method 21 mother-spider)": [[179, "s3", "collide-shape-prim-group"]], + + "(method 11 plane-volume)": [[14, "f2", "float"]], + + "(method 9 plane-volume)": [[245, "f2", "float"]], + + "(method 21 helix-water)": [[27, "a0", "process-drawable"]], + + "(method 7 helix-water)": [ + [14, "t9", "(function process-drawable int process-drawable)"] + ], + + "(code helix-button-activate)": [[58, "v1", "(pointer sunkencam)"]], + + "(code target-flut-jump)": [[137, "v1", "float"]], + + "tie-init-engine": [ + [[14, 18], "a0", "dma-packet"], + [[24, 28], "a0", "gs-gif-tag"], + [31, "a0", "(pointer gs-test)"], + [33, "a0", "(pointer gs-reg64)"], + [[43, 51], "a0", "dma-packet"], + [[64, 69], "a0", "dma-packet"], + [[74, 78], "a0", "dma-packet"], + [[82, 89], "v1", "(inline-array vector4w)"], + [[89, 97], "v1", "(pointer vif-tag)"] + ], + + "tie-end-buffer": [ + [[6, 10], "a1", "dma-packet"], + [[16, 19], "a1", "gs-gif-tag"], + [24, "a1", "(pointer gs-test)"], + [26, "a1", "(pointer gs-reg64)"], + [[32, 36], "a1", "dma-packet"], + [[41, 52], "a0", "(pointer vif-tag)"] + ], + + "tie-ints": [[[3, 30], "gp", "(pointer uint32)"]], + + "tie-floats": [[[3, 73], "gp", "(pointer uint32)"]], + + "tie-init-buffers": [ + [[29, 32], "v1", "dma-packet"], + [[59, 62], "a0", "dma-packet"], + [65, "a0", "(pointer uint32)"], + [[96, 99], "v1", "dma-packet"], + [[126, 129], "a0", "dma-packet"], + [132, "a0", "(pointer uint32)"], + [[163, 166], "v1", "dma-packet"], + [[193, 196], "a0", "dma-packet"], + [199, "a0", "(pointer uint32)"], + [[230, 233], "v1", "dma-packet"], + [[260, 263], "a0", "dma-packet"], + [266, "a0", "(pointer uint32)"] + ], + + "draw-drawable-tree-instance-tie": [ + [[23, 36], "v1", "drawable-inline-array-node"], + [25, "a0", "drawable-inline-array-node"], + [61, "v1", "drawable-inline-array-instance-tie"], + [74, "v1", "drawable-inline-array-node"], + [84, "v1", "int"], + [86, "a0", "int"], + [66, "a1", "terrain-context"], + [[363, 366], "v1", "dma-packet"], + [[484, 487], "v1", "dma-packet"] + ], + + "(method 10 drawable-tree-instance-tie)": [[3, "a1", "terrain-context"]], + + "(method 14 drawable-tree-instance-tie)": [ + [[47, 62], "t1", "tie-fragment"], + [[102, 117], "t1", "tie-fragment"], + [[150, 165], "a1", "tie-fragment"] + ], + + "(method 11 drawable-inline-array-instance-tie)": [ + [[1, 6], "v1", "instance-tie"] + ], + + "(method 12 drawable-inline-array-instance-tie)": [ + [[1, 6], "v1", "instance-tie"] + ], + + "(method 13 drawable-inline-array-instance-tie)": [ + [[1, 6], "v1", "instance-tie"] + ], + + "(method 10 drawable-tree-array)": [[4, "v1", "terrain-context"]], + + "(method 16 drawable-tree)": [ + [[1, 4], "v1", "drawable-inline-array-node"], + //[4, "a1", "int"], + [11, "v1", "(pointer int8)"], + [[29, 34], "t0", "drawable-inline-array-node"], + [31, "t2", "drawable-inline-array-node"], + //[[34,36], "a1", "int"], + [36, "t1", "(pointer int8)"], + [[9, 42], "a2", "(pointer int8)"] + ], + + "(event sunken-pipegame-idle)": [[6, "a0", "sunken-pipegame-button"]], + + "(method 11 sunken-pipegame)": [ + [189, "a1", "collectable"], + [280, "s0", "collectable"], + [371, "s0", "collectable"], + [[407, 409], "v1", "(pointer sunken-pipegame-button)"] + ], + + "(method 7 sunken-pipegame)": [ + [33, "t9", "(function process-drawable int process-drawable)"] + ], + + "(code sunken-pipegame-begin-play)": [ + [179, "v1", "float"], + [260, "v1", "float"], + [519, "v1", "float"], + [596, "v1", "float"] + ], + + "(method 22 sunken-pipegame)": [ + [20, "v1", "collectable"], + [25, "v1", "collectable"], + [54, "v1", "collectable"], + [59, "v1", "collectable"] + ], + + "(enter exit-chamber-lower)": [[14, "v1", "fuel-cell"]], + + "(code exit-chamber-lower)": [ + [29, "v1", "sunkencam"], + [50, "v1", "art-joint-anim"], + [162, "v1", "art-joint-anim"], + [241, "v1", "art-joint-anim"], + [308, "v1", "fuel-cell"] + ], + + "(method 11 exit-chamber)": [[190, "v1", "art-joint-anim"]], + + "ray-cylinder-intersect": [ + [20, "v1", "uint"], + [20, "a0", "uint"] + ], + + "(anon-function 15 pelican)": [[24, "v1", "collectable"]], + + "(method 11 darkecobarrel)": [["_stack_", 16, "res-tag"]], + + "(method 11 snowpusher)": [ + ["_stack_", 16, "res-tag"], + [19, "v0", "(pointer int32)"] + ], + + "(code snow-switch-activate)": [[53, "v1", "snowcam"]], + + "(method 32 sequenceA-village1)": [ + [[103, 111], "v1", "handle"], + [[125, 133], "v1", "handle"] + ], + + "(exit play-anim sequenceA-village1)": [ + [[12, 20], "v1", "handle"], + [[28, 36], "v1", "handle"] + ], + + "(event play-anim sequenceA-village1)": [ + [[64, 72], "v1", "handle"], + [[86, 94], "v1", "handle"], + [[108, 116], "v1", "handle"] + ], + + "(code hud-collecting)": [ + [[2, 10], "v1", "handle"], + [13, "s4", "hud"], + [25, "s4", "hud"], + [27, "s4", "hud"] + ], + + "(code caveelevator-one-way-idle-start)": [[10, "v1", "art-joint-anim"]], + + "(method 11 caveelevator)": [ + ["_stack_", 16, "res-tag"], + [109, "v0", "(pointer float)"] + ], + + "(trans energyhub-idle)": [[31, "s4", "energyarm"]], + + "(method 0 joint-exploder-tuning)": [ + [[6, 50], "v0", "joint-exploder-tuning"] + ], + + "(method 23 joint-exploder)": [ + [[12, 102], "s3", "joint-exploder-joint"], + [[144, 146], "v1", "joint-exploder-list"], + [148, "v1", "matrix"], + [152, "v1", "matrix"] + ], + + "(method 20 joint-exploder)": [ + [[8, 10], "a3", "joint-exploder-joint"], + [15, "v1", "joint-exploder-joint"] + ], + + "(method 27 joint-exploder)": [ + [41, "s0", "joint-exploder-joint"], + [90, "s0", "joint-exploder-joint"], + [139, "s0", "joint-exploder-joint"] + ], + + "(method 25 joint-exploder)": [[[16, 54], "s2", "joint-exploder-joint"]], + + "(method 22 joint-exploder)": [[[18, 78], "s5", "joint-exploder-joint"]], + + "joint-exploder-joint-callback": [[[10, 18], "v1", "joint-exploder-joint"]], + + "(method 24 joint-exploder)": [[[12, 19], "v1", "joint-exploder-joint"]], + + "(method 26 joint-exploder)": [ + [[5, 8], "a2", "joint-exploder-joint"], + [18, "v1", "joint-exploder-joint"], + [28, "v1", "joint-exploder-joint"] + ], + + "racer-effects": [[739, "v0", "sound-rpc-set-param"]], + + "(code target-tube)": [[31, "v1", "art-joint-anim"]], + + "(event slide-control-ride slide-control)": [ + [24, "gp", "process-drawable"], + [31, "v1", "vector"], + [35, "v1", "vector"], + [39, "v1", "vector"] + ], + + "(code target-tube-start)": [[110, "v1", "float"]], + + "depth-cue-set-stencil": [ + [[1, 7], "t1", "dma-packet"], + [[10, 16], "t1", "gs-gif-tag"], + [27, "t1", "(pointer gs-xy-offset)"], + [29, "t1", "(pointer gs-reg64)"], + [34, "t1", "(pointer gs-frame)"], + [36, "t1", "(pointer gs-reg64)"], + [38, "t1", "(pointer gs-test)"], + [40, "t1", "(pointer gs-reg64)"], + [[43, 53], "a3", "(inline-array vector4w)"], + [[52, 80], "v0", "(inline-array vector4w)"] + ], + + "depth-cue-draw-front": [ + [[26, 32], "t6", "dma-packet"], + [[33, 41], "t6", "gs-gif-tag"], + [49, "t6", "(pointer gs-xy-offset)"], + [51, "t6", "(pointer gs-reg64)"], + [56, "t6", "(pointer gs-frame)"], + [58, "t6", "(pointer gs-reg64)"], + [64, "t6", "(pointer gs-tex0)"], + [66, "t6", "(pointer gs-reg64)"], + [68, "t6", "(pointer gs-test)"], + [70, "t6", "(pointer gs-reg64)"], + [71, "t6", "(pointer gs-alpha)"], + [73, "t6", "(pointer gs-reg64)"], + [[76, 109], "t5", "(inline-array vector4w)"], + [112, "t5", "depth-cue-work"], + [[115, 121], "t6", "dma-packet"], + [[122, 130], "t6", "gs-gif-tag"], + [137, "t6", "(pointer gs-xy-offset)"], + [139, "t6", "(pointer gs-reg64)"], + [144, "t6", "(pointer gs-frame)"], + [146, "t6", "(pointer gs-reg64)"], + [148, "t6", "(pointer gs-texa)"], + [150, "t6", "(pointer gs-reg64)"], + [156, "t6", "(pointer gs-tex0)"], + [158, "t6", "(pointer gs-reg64)"], + [160, "t6", "(pointer gs-alpha)"], + [162, "t6", "(pointer gs-reg64)"], + [[165, 190], "t5", "(inline-array vector4w)"], + [[191, 201], "t5", "vector4w"], + [201, "t5", "depth-cue-work"] + ], + + "depth-cue-draw-depth": [ + [[26, 32], "t6", "dma-packet"], + [[33, 41], "t6", "gs-gif-tag"], + [49, "t6", "(pointer gs-xy-offset)"], + [51, "t6", "(pointer gs-reg64)"], + [56, "t6", "(pointer gs-frame)"], + [58, "t6", "(pointer gs-reg64)"], + [64, "t6", "(pointer gs-tex0)"], + [66, "t6", "(pointer gs-reg64)"], + [68, "t6", "(pointer gs-test)"], + [70, "t6", "(pointer gs-reg64)"], + [[73, 106], "t5", "(inline-array vector4w)"], + [109, "t5", "depth-cue-work"], + [[112, 118], "t6", "dma-packet"], + [[121, 127], "t6", "gs-gif-tag"], + [134, "t6", "(pointer gs-xy-offset)"], + [136, "t6", "(pointer gs-reg64)"], + [141, "t6", "(pointer gs-frame)"], + [143, "t6", "(pointer gs-reg64)"], + [149, "t6", "(pointer gs-tex0)"], + [151, "t6", "(pointer gs-reg64)"], + [153, "t6", "(pointer gs-test)"], + [155, "t6", "(pointer gs-reg64)"], + [[158, 183], "t5", "(inline-array vector4w)"], + [[184, 193], "t5", "vector4w"], + [194, "t5", "depth-cue-work"] + ], + + "depth-cue": [ + [[22, 28], "a2", "dma-packet"], + [[31, 37], "a2", "gs-gif-tag"], + [42, "a2", "(pointer gs-test)"], + [44, "a2", "(pointer gs-reg64)"], + [46, "a2", "(pointer gs-zbuf)"], + [48, "a2", "(pointer gs-reg64)"], + [50, "a2", "(pointer gs-reg64)"], + [52, "a2", "(pointer gs-reg64)"], + [53, "a2", "(pointer gs-tex1)"], + [55, "a2", "(pointer gs-reg64)"], + [62, "a2", "(pointer gs-clamp)"], + [64, "a2", "(pointer gs-reg64)"], + [66, "a2", "(pointer gs-reg64)"], + [68, "a2", "(pointer gs-reg64)"], + [[94, 100], "a0", "dma-packet"], + [[103, 109], "a0", "gs-gif-tag"], + [120, "a0", "(pointer gs-xy-offset)"], + [122, "a0", "(pointer gs-reg64)"], + [127, "a0", "(pointer gs-frame)"], + [129, "a0", "(pointer gs-reg64)"], + [[133, 138], "v1", "dma-packet"] + ], + + "collide-probe-collide-fragment-tree-make-list": [ + [5, "v1", "drawable-inline-array-node"] + ], + + "collide-probe-instance-tie-tree-make-list": [ + [[5, 7], "v1", "drawable-inline-array-node"], + [[18, 20], "v1", "drawable-inline-array-instance-tie"] + ], + + "collide-upload-vu0": [ + [16, "a0", "dma-packet"], + [17, "a0", "(pointer uint64)"] + ], + + "collide-probe-make-list": [ + [[20, 22], "v1", "drawable-inline-array-node"], + [[31, 33], "v1", "drawable-inline-array-instance-tie"], + [[47, 49], "v1", "drawable-inline-array-node"] + ], + + "(method 21 collide-cache)": [ + [114, "a0", "(pointer int32)"], + [156, "t0", "(pointer int32)"], + [190, "v1", "(pointer int32)"], + [147, "v1", "collide-list-item"], + [148, "v1", "collide-list-item"], + [[91, 95], "v1", "dma-packet"], + [[112, 141], "v1", "dma-bank-spr"], + [[154, 188], "a2", "dma-bank-spr"], + [[217, 227], "s3", "collide-list-item"] + ], + + "(method 23 collide-shape-prim-sphere)": [ + [[74, 114], "s4", "collide-shape-prim-mesh"] + ], + + "(method 13 collide-mesh)": [ + [[0, 60], "a3", "(inline-array vector)"], + [[61, 123], "v1", "collide-mesh-tri"] + ], + + "(method 20 collide-shape-prim-group)": [ + [5, "gp", "pointer"], + [6, "v1", "(pointer collide-shape-prim)"], + [[7, 14], "a0", "collide-shape-prim"], + [32, "gp", "pointer"], + [33, "v1", "(pointer collide-shape-prim)"], + [[34, 40], "a0", "collide-shape-prim"], + [[40, 46], "a0", "collide-shape-prim-group"] + ], + + "(method 29 collide-shape-prim-group)": [ + [5, "gp", "pointer"], + [6, "v1", "(pointer collide-shape-prim)"], + [[13, 19], "a0", "collide-shape-prim-group"] + ], + + "(method 40 collide-shape)": [ + [21, "a0", "connection"], + [[22, 40], "a0", "collide-shape-moving"], + [85, "a0", "connection"], + [[86, 104], "a0", "collide-shape-moving"], + [147, "a0", "connection"], + [[148, 166], "a0", "collide-shape-moving"], + [209, "a0", "connection"], + [[210, 228], "a0", "collide-shape-moving"] + ], + + "(method 15 collide-shape-prim-sphere)": [ + [[16, 55], "gp", "collide-shape-prim-mesh"] + ], + + "(method 25 collide-cache)": [ + [[83, 104], "a2", "(inline-array collide-cache-tri)"] + ], + + "(method 22 collide-cache)": [ + [14, "v1", "connection"], + [[15, 31], "v1", "collide-shape"], + [74, "v1", "connection"], + [[75, 91], "v1", "collide-shape"], + [130, "v1", "connection"], + [[131, 148], "v1", "collide-shape"], + [187, "v1", "connection"], + [[188, 205], "v1", "collide-shape"] + ], + + "(method 12 collide-shape-prim-sphere)": [ + [[13, 23], "t0", "collide-cache-prim"] + ], + + "(method 24 collide-cache)": [ + [14, "v1", "connection"], + [[15, 31], "v1", "collide-shape"], + [74, "v1", "connection"], + [[75, 91], "v1", "collide-shape"], + [130, "v1", "connection"], + [[131, 148], "v1", "collide-shape"], + [187, "v1", "connection"], + [[188, 205], "v1", "collide-shape"] + ], + + "(method 14 collide-shape-prim-sphere)": [ + [[11, 23], "t0", "collide-cache-prim"] + ], + + "(method 23 collide-cache)": [ + [20, "v1", "connection"], + [[21, 43], "v1", "collide-shape"], + [86, "v1", "connection"], + [[87, 109], "v1", "collide-shape"], + [148, "v1", "connection"], + [[149, 174], "v1", "collide-shape"], + [211, "v1", "connection"], + [[212, 235], "v1", "collide-shape"] + ], + + "(method 13 collide-shape-prim-sphere)": [ + [[11, 23], "t0", "collide-cache-prim"] + ], + + "(method 31 collide-cache)": [[22, "v1", "collide-shape-prim-sphere"]], + + "(method 19 collide-cache)": [ + [[52, 94], "s4", "collide-cache-prim"], + [[1, 100], "s5", "collide-puss-work"] + ], + + "ogreboss-rock-explosion-effect": [[83, "v1", "manipy"]], + + "ogreboss-missile-scale-explosion": [ + [11, "gp", "process-drawable"], + [22, "gp", "process-drawable"] + ], + + "(event ogreboss-missile-impact)": [[76, "t1", "target"]], + + "(code ogreboss-super-boulder-throw)": [[16, "v1", "art-joint-anim"]], + + "ogreboss-emerge": [[47, "v1", "art-joint-anim"]], + + "(code ogreboss-die)": [[35, "v1", "art-joint-anim"]], + + "ogreboss-super-boulder-play-hit-anim": [[15, "v1", "art-joint-anim"]], + + "(code ogreboss-stage3-hit)": [[47, "v1", "art-joint-anim"]], + + "(code ogreboss-stage3-throw)": [ + [33, "v1", "art-joint-anim"], + [89, "v1", "art-joint-anim"] + ], + + "ogreboss-shoot-boulder": [[41, "a1", "process-drawable"]], + + "(method 7 ogreboss-super-boulder)": [ + [14, "t9", "(function process-drawable int process-drawable)"] + ], + + "ogreboss-bounce-boulder-init-by-other": [[112, "v1", "float"]], + + "(code ogreboss-stage3-shuffle)": [ + [33, "v1", "art-joint-anim"], + [121, "v1", "art-joint-anim"], + [177, "v1", "art-joint-anim"], + [247, "v1", "art-joint-anim"], + [299, "v1", "art-joint-anim"], + [355, "v1", "art-joint-anim"], + [425, "v1", "art-joint-anim"] + ], + + "(code ogreboss-stage2)": [ + [26, "v1", "art-joint-anim"], + [104, "v1", "art-joint-anim"], + [158, "v1", "art-joint-anim"] + ], + + "ogreboss-update-super-boulder": [[12, "a1", "ogreboss-super-boulder"]], + + "(trans ogreboss-stage3-shuffle)": [[13, "v1", "ogreboss-super-boulder"]], + + "(code ogreboss-stage1)": [ + [36, "v1", "art-joint-anim"], + [93, "v1", "art-joint-anim"], + [172, "v1", "art-joint-anim"], + [273, "v1", "art-joint-anim"], + [329, "v1", "art-joint-anim"], + [386, "v1", "art-joint-anim"] + ], + + "(code ogreboss-bounce-boulder-idle)": [[81, "v1", "art-joint-anim"]], + + "ogreboss-idle-loop": [ + [145, "v1", "art-joint-anim"], + [206, "v1", "art-joint-anim"], + [261, "v1", "art-joint-anim"] + ], + + "(code ogreboss-super-boulder-roll)": [[123, "v1", "art-joint-anim"]], + + "(code ogreboss-intro)": [[92, "v1", "art-joint-anim"]], + + "ogreboss-submerge": [[130, "v1", "art-joint-anim"]], + + "(code nav-enemy-notice snow-bunny)": [[145, "v1", "art-joint-anim"]], + + "(code snow-bunny-lunge snow-bunny)": [[22, "v1", "art-joint-anim"]], + + "(code snow-bunny-attack snow-bunny)": [[20, "v1", "art-joint-anim"]], + + "ogreboss-pick-target": [[31, "s3", "process-drawable"]], + + "(method 29 progress)": [ + [290, "a0", "(pointer symbol)"], + [299, "v1", "(pointer symbol)"], + [308, "a0", "(pointer symbol)"], + [317, "v1", "(pointer symbol)"], + [326, "a0", "(pointer symbol)"], + [589, "a0", "(pointer symbol)"], + [599, "v1", "(pointer symbol)"], + [608, "a1", "(pointer symbol)"], + [617, "v1", "(pointer symbol)"], + [626, "a1", "(pointer symbol)"], + [883, "a0", "(pointer language-enum)"], + [894, "a0", "(pointer symbol)"], + [921, "a0", "(pointer symbol)"] + ], + + "(method 9 edge-grab-info)": [ + [23, "a0", "int"], + [[24, 31], "s5", "collide-shape-prim"], + [29, "a0", "process-drawable"], + [156, "s5", "collide-shape-prim"] + ], + "circle-triangle-intersection-proc?": [[[113, 134], "v1", "vector"]], + + "(method 28 nav-control)": [ + [170, "v1", "connection"], + [[170, 245], "s0", "collide-shape"] + ], + + "(method 29 nav-mesh)": [ + [38, "v1", "int"], + [40, "v1", "int"], + [41, "v1", "int"], + [64, "f1", "float"], + [63, "v1", "float"] + ], + + "nav-mesh-update-route-table": [ + [19, "a3", "(pointer uint8)"], + [24, "a0", "(pointer uint8)"] + ], + + "nav-mesh-lookup-route": [[6, "a0", "(pointer uint8)"]], + + "(method 11 nav-mesh)": [[12, "a2", "(pointer uint8)"]], + + "(method 12 nav-mesh)": [[13, "a2", "(pointer uint8)"]], + + "recursive-inside-poly": [ + [16, "a0", "(pointer nav-node)"], + [29, "v1", "(pointer nav-node)"] + ], + + "entity-nav-login": [["_stack_", 16, "res-tag"]], + + "(method 18 nav-mesh)": [[34, "v1", "nav-poly"]], + + "foreground-engine-execute": [[114, "v1", "(pointer uint32)"]], + + "(event ropebridge-idle)": [ + [64, "gp", "touching-shapes-entry"], + [65, "v1", "touching-shapes-entry"], + [12, "v1", "float"] + ], + + "(method 23 ropebridge)": [[[1, 9], "v1", "ropebridge-spring-point"]], + + "(method 21 ropebridge)": [ + [20, "v1", "process-drawable"], + [[4, 50], "s5", "collide-sticky-rider"] + ], + + "(method 24 ropebridge)": [[[3, 22], "s5", "ropebridge-spring-point"]], + + "(method 25 ropebridge)": [ + [[4, 24], "a1", "vector"], + [[3, 24], "v1", "ropebridge-spring-point"], + [[30, 42], "v1", "ropebridge-spring-point"] + ], + + "(method 11 ropebridge)": [[[17, 21], "s4", "symbol"]], + + "ropebridge-joint-callback": [ + [[27, 70], "s5", "(inline-array ropebridge-spring-point)"], + [[23, 24], "s3", "ropebridge-spring-point"] + ], + + "(code orbit-plat-rotating)": [[12, "a2", "orbit-plat"]], + + "(code notice-blue plat-eco)": [ + [22, "v1", "process-drawable"], + [36, "v1", "collide-shape"] + ], + + "snow-bunny-default-event-handler": [[52, "v1", "vector"]], + + "(method 15 snow-ball)": [ + [3, "v1", "(pointer snow-ball-roller)"], + [25, "v1", "(pointer snow-ball-roller)"], + [34, "v1", "(pointer snow-ball-roller)"], + [36, "v1", "(pointer snow-ball-roller)"], + [28, "a3", "(inline-array snow-ball-junction)"], + [7, "a3", "(inline-array snow-ball-junction)"], + [13, "a3", "(inline-array snow-ball-junction)"], + [20, "a3", "(inline-array snow-ball-junction)"] + ], + + "(trans snow-ball-shadow-idle)": [[4, "a0", "process-drawable"]], + + "snow-ball-shadow-init-by-other": [[20, "a0", "process-drawable"]], + + "curve-evaluate!": [[62, "s5", "pointer"]], + + "setup-blerc-chains": [ + [43, "v1", "int"], + [80, "s0", "int"], + [83, "a0", "int"], + [[30, 40], "s1", "merc-fragment-control"], + [41, "v1", "merc-fragment"], + [46, "v1", "(pointer uint8)"], + [59, "a0", "merc-blend-ctrl"], + [[64, 76], "s1", "merc-fragment-control"], + [77, "a1", "merc-blend-ctrl"] + ], + + "blerc-execute": [ + [20, "a0", "(pointer int32)"], + [26, "v1", "(pointer int32)"], + [59, "a2", "(pointer int32)"], + [65, "a1", "(pointer int32)"] + ], + + "update-mood-flames": [[[6, 88], "s5", "flames-state"]], + + "update-mood-lava": [[[4, 81], "s4", "lava-state"]], + + "(method 27 ropebridge)": [ + [101, "a0", "(inline-array vector)"], + [102, "a0", "(inline-array vector)"], + [105, "a0", "(inline-array vector)"], + [106, "a0", "(inline-array vector)"] + ], + + "update-eyes": [ + [[19, 25], "a0", "dma-packet"], + [[28, 34], "a0", "gs-gif-tag"], + [39, "a0", "(pointer gs-test)"], + [41, "a0", "(pointer gs-reg64)"], + [[45, 50], "v1", "dma-packet"], + [[83, 89], "a0", "dma-packet"], + [[92, 98], "a0", "gs-gif-tag"], + [103, "a0", "(pointer gs-test)"], + [105, "a0", "(pointer gs-reg64)"], + [[109, 114], "v1", "dma-packet"], + [[147, 153], "a0", "dma-packet"], + [[156, 162], "a0", "gs-gif-tag"], + [167, "a0", "(pointer gs-test)"], + [169, "a0", "(pointer gs-reg64)"], + [[173, 178], "v1", "dma-packet"], + [212, "v1", "process-drawable"], + [218, "v1", "process-drawable"], + [[281, 286], "v1", "dma-packet"], + [[319, 324], "v1", "dma-packet"], + [[356, 362], "a0", "dma-packet"], + [[365, 371], "a0", "gs-gif-tag"], + [376, "a0", "(pointer gs-reg64)"], + [378, "a0", "(pointer gs-reg64)"], + [[382, 387], "v1", "dma-packet"], + [[415, 421], "a0", "dma-packet"], + [[424, 430], "a0", "gs-gif-tag"], + [435, "a0", "(pointer gs-reg64)"], + [437, "a0", "(pointer gs-reg64)"], + [[441, 446], "v1", "dma-packet"], + [[474, 480], "a0", "dma-packet"], + [[483, 489], "a0", "gs-gif-tag"], + [494, "a0", "(pointer gs-reg64)"], + [496, "a0", "(pointer gs-reg64)"], + [[500, 505], "v1", "dma-packet"] + ], + + "render-eyes": [ + [[45, 52], "v1", "dma-gif-packet"], + [[52, 64], "s0", "adgif-shader"], + [[68, 74], "a0", "dma-packet"], + [[77, 83], "a0", "gs-gif-tag"], + [95, "a0", "(pointer gs-scissor)"], + [97, "a0", "(pointer gs-reg64)"], + [[100, 135], "v1", "(inline-array vector4w)"], + [145, "v1", "(inline-array vector4w)"], + [[164, 170], "a2", "dma-packet"], + [[173, 179], "a2", "gs-gif-tag"], + [191, "a2", "(pointer gs-scissor)"], + [193, "a2", "(pointer gs-reg64)"], + [[199, 244], "a1", "(inline-array vector4w)"], + [250, "a1", "(inline-array vector4w)"], + [[253, 259], "a2", "dma-packet"], + [[262, 268], "a2", "gs-gif-tag"], + [280, "a2", "(pointer gs-scissor)"], + [282, "a2", "(pointer gs-reg64)"], + [[288, 337], "a1", "(inline-array vector4w)"], + [343, "v1", "(inline-array vector4w)"], + [[346, 352], "a0", "dma-packet"], + [[355, 361], "a0", "gs-gif-tag"], + [366, "a0", "(pointer gs-test)"], + [368, "a0", "(pointer gs-reg64)"], + [[373, 380], "v1", "(inline-array vector4w)"], + [[380, 392], "s0", "adgif-shader"], + [[412, 418], "a2", "dma-packet"], + [[421, 427], "a2", "gs-gif-tag"], + [439, "a2", "(pointer gs-scissor)"], + [441, "a2", "(pointer gs-reg64)"], + [[447, 497], "a1", "(inline-array vector4w)"], + [498, "a1", "(inline-array vector4w)"], + [[501, 507], "a2", "dma-packet"], + [[510, 516], "a2", "gs-gif-tag"], + [528, "a2", "(pointer gs-scissor)"], + [530, "a2", "(pointer gs-reg64)"], + [[536, 585], "a1", "(inline-array vector4w)"], + [591, "v1", "(inline-array vector4w)"], + [[594, 600], "a0", "dma-packet"], + [[603, 609], "a0", "gs-gif-tag"], + [614, "a0", "(pointer gs-test)"], + [616, "a0", "(pointer gs-reg64)"], + [[621, 628], "v1", "dma-gif-packet"], + [[628, 640], "s0", "adgif-shader"], + [641, "v1", "(inline-array dma-gif-packet)"], + [[673, 679], "a2", "dma-packet"], + [[682, 688], "a2", "gs-gif-tag"], + [700, "a2", "(pointer gs-scissor)"], + [702, "a2", "(pointer gs-reg64)"], + [[712, 759], "a1", "(inline-array vector4w)"], + [765, "a1", "(inline-array vector4w)"], + [[781, 787], "a2", "dma-packet"], + [[790, 796], "a2", "gs-gif-tag"], + [808, "a2", "(pointer gs-scissor)"], + [810, "a2", "(pointer gs-reg64)"], + [[820, 868], "a1", "(inline-array vector4w)"], + [874, "v1", "(inline-array vector4w)"] + ], + + "merc-eye-anim": [ + // [[81, 86], "v1", "(pointer int64)"], + // [[89, 94], "v1", "(pointer int64)"], + // [[119, 125], "v1", "(pointer int64)"], + // [[128, 134], "v1", "(pointer int64)"] + ], + + "ocean-near-add-call": [ + [3, "a0", "dma-packet"], + [8, "a0", "dma-packet"], + [10, "a0", "dma-packet"] + ], + + "ocean-near-add-call-flush": [ + [3, "a0", "dma-packet"], + [8, "a0", "dma-packet"], + [10, "a0", "dma-packet"] + ], + + "ocean-near-add-matrices": [ + [7, "a0", "dma-packet"], + [12, "a0", "dma-packet"], + [14, "a0", "dma-packet"], + [19, "a0", "dma-packet"], + [20, "a0", "vector"], + [22, "s4", "matrix"], + [23, "s4", "matrix"], + [47, "v1", "matrix"], + [[40, 46], "s3", "vector"] + ], + + "ocean-near-add-constants": [[[8, 16], "a0", "dma-packet"]], + + "draw-ocean-near": [ + [2, "a0", "dma-packet"], + [4, "a0", "dma-packet"], + [5, "a0", "dma-packet"], + [7, "a0", "dma-packet"], + [8, "a0", "dma-packet"], + [11, "a0", "dma-packet"], + [[14, 17], "a0", "gs-gif-tag"], + // [14, "a0", "dma-packet"], + // [16, "a0", "dma-packet"], + // [17, "a0", "dma-packet"], + [18, "a0", "dma-packet"], + [20, "a0", "dma-packet"], + [22, "a0", "(pointer gs-test)"], + [24, "a0", "(pointer gs-reg64)"], + [25, "a0", "dma-packet"], + [26, "a0", "dma-packet"], + [35, "a0", "dma-packet"], + [37, "a0", "dma-packet"], + [39, "a0", "dma-packet"], + [40, "a0", "dma-packet"], + [41, "a0", "dma-packet"], + [89, "a1", "(pointer int16)"] + ], + + "generic-reset-buffers": [ + [6, "t1", "dma-packet"], + [8, "t1", "dma-packet"], + [10, "t1", "dma-packet"], + [12, "t1", "dma-packet"], + [14, "t1", "dma-packet"], + [15, "t0", "dma-packet"] + ], + + "shadow-vu1-add-constants": [ + [2, "a1", "dma-packet"], + [7, "a1", "dma-packet"], + [9, "a1", "dma-packet"], + [14, "a1", "dma-packet"], + [[21, 58], "v1", "shadow-vu1-constants"], + [61, "a1", "dma-packet"], + [63, "a1", "dma-packet"], + [65, "a1", "dma-packet"], + [67, "a1", "dma-packet"], + [71, "a1", "dma-packet"], + [[73, 85], "a1", "shadow-vu1-gifbuf-template"] + ], + + "shadow-vu1-add-matrix": [ + [6, "a3", "dma-packet"], + [11, "a3", "dma-packet"], + [13, "a3", "dma-packet"], + [18, "a3", "dma-packet"], + [19, "a3", "dma-packet"], + [21, "v1", "dma-packet"], + [[26, 31], "v1", "matrix"] + ], + + "shadow-vu1-init-buffer": [ + [14, "a0", "dma-packet"], + [16, "a0", "dma-packet"], + [22, "a0", "dma-packet"], + [24, "a0", "dma-packet"] + ], + + "draw-bones-generic-merc": [ + [11, "v1", "generic-merc-ctrl"], + [198, "v1", "generic-merc-ctrl"], + [274, "a0", "generic-merc-ctrl"], + [277, "a0", "pointer"], + [278, "a0", "merc-fragment-control"], + [[270, 274], "a0", "dma-packet"], + [[258, 262], "a0", "dma-packet"], + [280, "a0", "pointer"], + [[303, 306], "gp", "dma-packet"], + [281, "v1", "merc-fragment"] + ], + + "generic-merc-execute-all": [ + [[165, 170], "v1", "terrain-context"], + [92, "a0", "terrain-context"], + [96, "v1", "terrain-context"], + [100, "v1", "terrain-context"], + [103, "a0", "generic-envmap-saves"], + [105, "v1", "(pointer int32)"], + [47, "v1", "terrain-context"], + [49, "v1", "terrain-context"], + [51, "v1", "terrain-context"], + [66, "a0", "terrain-context"], + [[114, 117], "v1", "dma-packet"] + ], + + "generic-initialize-without-sink": [ + [8, "a0", "terrain-context"], + [32, "a0", "terrain-context"] + ], + + "generic-work-init": [ + [10, "a0", "terrain-context"], + [13, "a0", "terrain-context"], + [16, "a0", "terrain-context"], + [18, "a0", "terrain-context"], + [[21, 42], "gp", "adgif-shader"] + ], + + "render-ocean-far": [[[23, 588], "s5", "(inline-array ocean-vertex)"]], + + "draw-ocean-far": [[[65, 72], "gp", "dma-packet"]], + + "ocean-init-buffer": [ + [[9, 14], "a2", "dma-packet"], + [[19, 22], "a2", "gs-gif-tag"], + [27, "s4", "(pointer gs-test)"], + [29, "s4", "(pointer gs-reg64)"], + [31, "s4", "(pointer gs-alpha)"], + [33, "s4", "(pointer gs-reg64)"], + [49, "s4", "(pointer gs-tex0)"], + [51, "s4", "(pointer gs-reg64)"], + [53, "s4", "(pointer gs-tex1)"], + [55, "s4", "(pointer gs-reg64)"], + [57, "s4", "(pointer gs-texa)"], + [59, "s4", "(pointer gs-reg64)"], + [71, "s4", "(pointer gs-miptbp)"], + [73, "s4", "(pointer gs-reg64)"], + [87, "s4", "(pointer gs-miptbp)"], + [89, "s4", "(pointer gs-reg64)"], + [90, "s4", "(pointer gs-clamp)"], + [92, "s4", "(pointer gs-reg64)"], + [94, "s4", "(pointer gs-fogcol)"], + [96, "s4", "(pointer gs-reg64)"] + ], + + "ocean-end-buffer": [ + [[3, 7], "a1", "dma-packet"], + [[13, 16], "a1", "gs-gif-tag"], + [22, "a0", "(pointer gs-texa)"], + [24, "a0", "(pointer gs-reg64)"] + ], + + "draw-ocean": [ + [[166, 169], "v1", "dma-packet"], + [[114, 117], "v1", "dma-packet"] + ], + + "ocean-texture-add-constants": [[[8, 16], "a0", "dma-packet"]], + + "ocean-texture-add-envmap": [[[1, 8], "v1", "(pointer uint128)"]], + + "ocean-texture-add-verts": [[[6, 11], "a0", "dma-packet"]], + + "ocean-texture-add-verts-last": [ + [[6, 11], "a3", "dma-packet"], + [[19, 24], "a0", "dma-packet"] + ], + + "ocean-texture-add-call-start": [[[3, 8], "a0", "dma-packet"]], + + "ocean-texture-add-call-rest": [[[3, 8], "a0", "dma-packet"]], + + "ocean-texture-add-call-done": [[[3, 8], "a0", "dma-packet"]], + + "draw-ocean-texture": [ + [[24, 29], "a0", "dma-packet"], + [[92, 96], "a0", "dma-packet"], + [[102, 105], "a0", "gs-gif-tag"], + [110, "s0", "(pointer gs-test)"], + [112, "s0", "(pointer gs-reg64)"], + [114, "s0", "(pointer gs-alpha)"], + [116, "s0", "(pointer gs-reg64)"], + [133, "s0", "(pointer gs-tex0)"], + [135, "s0", "(pointer gs-reg64)"], + [137, "s0", "(pointer gs-tex1)"], + [139, "s0", "(pointer gs-reg64)"], + [140, "s0", "(pointer gs-clamp)"], + [142, "s0", "(pointer gs-reg64)"], + [143, "s0", "(pointer uint64)"], + [145, "s0", "(pointer gs-reg64)"], + [[151, 155], "v1", "(pointer uint128)"], + [[156, 164], "a0", "vector4w"], + [[165, 169], "a0", "vector4w"], + [[170, 175], "a0", "vector4w"], + [[176, 182], "a0", "vector4w"], + [[183, 191], "v1", "vector4w"], + [[204, 208], "a0", "dma-packet"], + [[214, 217], "a0", "gs-gif-tag"], + [237, "s2", "(pointer gs-tex0)"], + [239, "s2", "(pointer gs-reg64)"], + [240, "s2", "(pointer uint64)"], + [242, "s2", "(pointer gs-reg64)"], + [251, "v1", "(pointer uint128)"], + [[253, 260], "a0", "vector4w"], + [[261, 265], "a0", "vector4w"], + [[266, 271], "a0", "vector4w"], + [[272, 278], "a0", "vector4w"], + [[279, 286], "v1", "vector4w"], + [[292, 296], "a0", "dma-packet"], + [[302, 305], "a0", "gs-gif-tag"], + [325, "s3", "(pointer gs-tex0)"], + [327, "s3", "(pointer gs-reg64)"], + [328, "s3", "(pointer uint64)"], + [330, "s3", "(pointer gs-reg64)"], + [339, "v1", "(pointer uint128)"], + [[341, 348], "a0", "vector4w"], + [[349, 367], "a0", "vector4w"], + [[368, 375], "v1", "vector4w"], + [[381, 385], "a0", "dma-packet"], + [[391, 394], "a0", "gs-gif-tag"], + [415, "s3", "(pointer gs-tex0)"], + [417, "s3", "(pointer gs-reg64)"], + [418, "s3", "(pointer uint64)"], + [420, "s3", "(pointer gs-reg64)"], + [429, "v1", "(pointer uint128)"], + [[431, 457], "a0", "vector4w"], + [[458, 466], "v1", "vector4w"], + [[471, 475], "a0", "dma-packet"], + [[481, 484], "a0", "gs-gif-tag"], + [505, "s3", "(pointer gs-tex0)"], + [507, "s3", "(pointer gs-reg64)"], + [508, "s3", "(pointer uint64)"], + [510, "s3", "(pointer gs-reg64)"], + [519, "v1", "(pointer uint128)"], + [[521, 547], "a0", "vector4w"], + [[548, 555], "v1", "vector4w"], + [[561, 565], "a0", "dma-packet"], + [[571, 574], "a0", "gs-gif-tag"], + [595, "s3", "(pointer gs-tex0)"], + [597, "s3", "(pointer gs-reg64)"], + [598, "s3", "(pointer uint64)"], + [600, "s3", "(pointer gs-reg64)"], + [609, "v1", "(pointer uint128)"], + [[611, 638], "a0", "vector4w"], + [[639, 646], "v1", "vector4w"], + [[652, 656], "a0", "dma-packet"], + [57, "v1", "(inline-array vector)"] + ], + + "ocean-near-add-upload": [ + [[40, 48], "a0", "dma-packet"], + [64, "a2", "(pointer int16)"], + [[81, 89], "a1", "vector4w"], + [[90, 98], "v1", "vector4w"], + [[111, 127], "t0", "vector4w"], + [[132, 146], "a1", "vector"], + [[250, 272], "a1", "(inline-array vector)"] + ], + + "draw-ocean-mid": [ + [169, "t3", "(pointer uint8)"], + [[23, 28], "a0", "dma-packet"] + ], + + "ocean-seams-add-constants": [ + [[7, 15], "a1", "dma-packet"], + [[19, 27], "a1", "vector"], + [[28, 36], "a1", "vector"], + [[37, 45], "a1", "vector"], + [[46, 55], "v1", "vector"] + ], + + "ocean-mid-add-upload-table": [ + [[44, 52], "a0", "dma-packet"], + [[54, 59], "v1", "vector4w"], + [[62, 75], "v1", "(pointer uint128)"], + [[158, 166], "a0", "dma-packet"], + [[138, 145], "v1", "(pointer uint128)"] + ], + + "ocean-mid-camera-masks-set!": [ + [30, "a2", "(pointer uint8)"], + [41, "a2", "(pointer uint8)"], + [49, "v1", "(pointer uint8)"] + ], + + "ocean-mid-mask-ptrs-bit?": [[31, "a0", "(pointer uint8)"]], + + "ocean-mid-camera-masks-bit?": [[25, "a0", "(pointer uint8)"]], + + "ocean-mid-add-upload": [ + [[48, 62], "a2", "dma-packet"], + [[76, 81], "a0", "dma-packet"], + [95, "v1", "(pointer uint64)"] + ], + + "ocean-mid-add-call-flush": [[[3, 11], "a0", "dma-packet"]], + + "ocean-mid-add-call": [[[3, 11], "a0", "dma-packet"]], + + "ocean-mid-add-matrices": [ + [[12, 20], "a0", "dma-packet"], + [[30, 34], "v1", "matrix"], + [[41, 46], "s3", "vector"] + ], + + "ocean-mid-add-constants": [[[8, 16], "a0", "dma-packet"]], + + "ocean-near-add-heights": [ + [26, "a1", "int"], + [[11, 19], "a3", "dma-packet"], + [[30, 38], "a2", "dma-packet"] + ], + + "draw-bones-shadow": [ + [10, "t0", "terrain-context"], + [[36, 100], "t0", "shadow-dma-packet"], + [[53, 58], "t6", "(inline-array vector)"], + [[64, 71], "a0", "vector"], + [[103, 106], "v1", "dma-packet"] + ], + + "shadow-execute-all": [ + [108, "gp", "shadow-dcache"], + [113, "gp", "shadow-dcache"], + [118, "gp", "shadow-dcache"], + [123, "gp", "shadow-dcache"], + [[54, 58], "v1", "shadow-dcache"], + [[86, 89], "v1", "dma-packet"] + ], + + "shadow-dma-init": [ + [[25, 29], "t6", "dma-packet"], + [[34, 37], "t6", "gs-gif-tag"], + [41, "t4", "(pointer gs-reg)"], + [43, "t4", "(pointer gs-reg)"], + [45, "t4", "(pointer gs-test)"], + [47, "t4", "(pointer gs-reg)"], + [49, "t4", "(pointer gs-alpha)"], + [51, "t4", "(pointer gs-reg)"], + [56, "t4", "(pointer gs-frame)"], + [58, "t4", "(pointer gs-reg)"], + [60, "t4", "(pointer gs-zbuf)"], + [62, "t4", "(pointer gs-reg)"], + [69, "t4", "(pointer gs-xy-offset)"], + [71, "t4", "(pointer gs-reg)"], + [77, "t4", "(pointer gs-tex0)"], + [79, "t4", "(pointer gs-reg)"], + [80, "t4", "(pointer gs-tex1)"], + [82, "t4", "(pointer gs-reg)"], + [83, "t4", "(pointer gs-miptbp)"], + [85, "t4", "(pointer gs-reg)"], + [94, "t4", "(pointer gs-clamp)"], + [101, "t3", "gs-gif-tag"], + [103, "t3", "gs-gif-tag"], + [109, "t3", "(pointer gs-prim)"], + [111, "t3", "(pointer gs-rgbaq)"], + [[120, 123], "t3", "gs-gif-tag"], + [141, "t5", "(pointer gs-xyzf)"], + [154, "t5", "(pointer gs-xyzf)"], + [[165, 168], "a3", "gs-gif-tag"], + [175, "a3", "(pointer gs-test)"], + [177, "a3", "(pointer gs-reg64)"], + [179, "a3", "(pointer gs-zbuf)"], + [181, "a3", "(pointer gs-reg64)"], + [186, "a3", "(pointer gs-frame)"], + [188, "a3", "(pointer gs-reg64)"], + [189, "a3", "(pointer uint64)"], + [191, "a3", "(pointer gs-reg64)"], + [198, "a3", "(pointer gs-test)"], + [200, "a3", "(pointer gs-reg64)"], + [202, "a3", "(pointer gs-zbuf)"], + [204, "a3", "(pointer gs-reg64)"], + [209, "a3", "(pointer gs-frame)"], + [211, "a3", "(pointer gs-reg64)"], + [212, "a3", "(pointer uint64)"], + [214, "a3", "(pointer gs-reg64)"], + [[223, 234], "v1", "(pointer uint64)"] + ], + + "shadow-dma-end": [ + [137, "f2", "int"], + [[27, 32], "t3", "dma-packet"], + [[38, 41], "t3", "gs-gif-tag"], + [45, "t3", "(pointer uint64)"], + [47, "t3", "(pointer gs-reg64)"], + [49, "t3", "(pointer gs-test)"], + [51, "t3", "(pointer gs-reg64)"], + [56, "t3", "(pointer gs-frame)"], + [58, "t3", "(pointer gs-reg64)"], + [59, "t3", "(pointer uint64)"], + [61, "t3", "(pointer gs-reg64)"], + [[68, 73], "t4", "dma-packet"], + [[111, 114], "t4", "gs-gif-tag"], + [115, "t4", "(pointer gs-prim)"], + [[107, 117], "t5", "gs-rgbaq"], + // [[75, 106], "t4", "gs-rgbaq"] + [116, "t4", "(pointer gs-rgbaq)"], + [[121, 124], "t4", "(inline-array gs-gif-tag)"], + [165, "t7", "(pointer gs-xyzf)"], + [184, "t7", "(pointer gs-st)"], + [197, "t7", "(pointer gs-xyzf)"], + [[216, 222], "t2", "(pointer uint64)"], + [[228, 232], "t0", "dma-packet"], + [[238, 241], "t0", "gs-gif-tag"], + [246, "t0", "(pointer gs-test)"], + [248, "t0", "(pointer gs-reg64)"], + [255, "t0", "(pointer gs-xy-offset)"], + [257, "t0", "(pointer gs-reg64)"], + [259, "t0", "(pointer gs-alpha)"], + [261, "t0", "(pointer gs-reg64)"], + [266, "t0", "(pointer gs-frame)"], + [268, "t0", "(pointer gs-reg64)"], + [270, "t0", "(pointer gs-zbuf)"], + [272, "t0", "(pointer gs-reg64)"], + [273, "t0", "(pointer uint64)"], + [275, "t0", "(pointer gs-reg64)"] + ], + "test-func": [[7, "f1", "float"]], + + "(method 14 drawable-tree-instance-shrub)": [ + [[12, 151], "gp", "prototype-bucket-shrub"], + [15, "a1", "drawable-group"], + [39, "v1", "drawable-group"], + [61, "s3", "shrubbery"], + [85, "v1", "drawable-group"], + [107, "s3", "shrubbery"], + [151, "gp", "(inline-array prototype-bucket-shrub)"] + ], + + "(method 10 drawable-tree-instance-shrub)": [[3, "a1", "terrain-context"]], + + "draw-prototype-inline-array-shrub": [ + [[13, 55], "v1", "prototype-bucket-shrub"], + [[15, 30], "a2", "vector4w"], + [[42, 51], "a2", "vector4w"], + [[87, 93], "a0", "dma-packet"], + [[96, 102], "a0", "gs-gif-tag"], + [107, "a1", "gs-test"], + [107, "a0", "(pointer gs-test)"], + [109, "a0", "(pointer gs-reg64)"], + [[117, 136], "v1", "matrix3"], + [[140, 145], "v1", "dma-packet"], + [[238, 247], "a0", "dma-packet"], + [[261, 266], "v1", "dma-packet"], + [[359, 368], "a0", "dma-packet"], + [[382, 387], "v1", "dma-packet"], + [[451, 457], "a1", "dma-packet"], + [[460, 466], "a1", "dma-packet"], + [[524, 530], "a0", "dma-packet"], + [55, "v1", "(inline-array prototype-bucket-shrub)"], + [156, "v1", "terrain-context"], + [212, "gp", "prototype-bucket-shrub"], + [333, "gp", "prototype-bucket-shrub"], + [[479, 518], "gp", "prototype-bucket-shrub"], + [518, "gp", "(inline-array prototype-bucket-shrub)"], + [223, "v1", "drawable-group"], + [277, "v1", "terrain-context"], + [344, "v1", "drawable-group"], + [398, "v1", "terrain-context"], + [[498, 507], "a1", "prototype-bucket-shrub"], + [540, "v1", "terrain-context"] + ], + + "(method 8 drawable-tree-instance-shrub)": [[54, "v1", "drawable-group"]], + + "draw-drawable-tree-instance-shrub": [[85, "a0", "drawable-group"]], + + "shrub-init-frame": [ + [[6, 12], "a0", "dma-packet"], + [[13, 21], "a0", "gs-gif-tag"], + [24, "v1", "(pointer gs-test)"], + [26, "v1", "(pointer gs-reg64)"] + ], + + "shrub-do-init-frame": [ + [[10, 21], "a0", "dma-packet"], + [[24, 29], "a0", "dma-packet"], + [33, "v1", "(pointer vif-tag)"], + [[35, 41], "v1", "(pointer uint32)"], + [42, "v1", "(pointer vif-tag)"], + [[43, 51], "v1", "(pointer uint32)"], + [52, "v1", "(pointer vif-tag)"], + [54, "v1", "(pointer uint32)"] + ], + + "shrub-upload-view-data": [[[3, 16], "a0", "dma-packet"]], + + "shrub-upload-model": [ + [[17, 26], "a3", "dma-packet"], + [[33, 41], "a0", "dma-packet"], + [[47, 55], "a0", "dma-packet"] + ], + + "(method 12 effect-control)": [["_stack_", 112, "res-tag"]], + + "generic-tie-execute": [ + [118, "v1", "terrain-context"], + [124, "v1", "terrain-context"] + ], + +// BEGIN + "(code target-title)": [ + // [[23, 26], "v1", "handle"], + [[61, 69], "v1", "handle"], + [[73, 81], "v1", "handle"], + [218, "s5", "handle"] + ], + + "(method 10 gui-query)": [], + + "(trans fisher-done)": [], + + "(code target-duck-high-jump)": [[77, "v0", "sound-rpc-set-param"]], + "(trans target-duck-high-jump-jump)": [[9, "v0", "sound-rpc-set-param"]], + + "(anon-function 11 target2)": [ + [[15, 135], "s4", "target"] // confusing -- the parent of a target is a target? + ], + + "(code target-death)": [ + [561, "v1", "art-joint-anim"], + [683, "v0", "int"], + [719, "v1", "process-drawable"], + [[985, 1063], "s5", "handle"] + ], + + "sound-set-fps": [[[3, 7], "v1", "sound-rpc-set-fps"]], + "placeholder-do-not-add-below": [] } diff --git a/decompiler/config/jak1_pal/var_names.jsonc b/decompiler/config/jak1_pal/var_names.jsonc deleted file mode 100644 index b4cdc6bcf1..0000000000 --- a/decompiler/config/jak1_pal/var_names.jsonc +++ /dev/null @@ -1,3560 +0,0 @@ -{ - "identity": { - "args": ["obj"] - }, - - "1/": { - "args": ["x"] - }, - - "+": { - "args": ["x", "y"] - }, - - "-": { - "args": ["x", "y"] - }, - - "*": { - "args": ["x", "y"] - }, - - "/": { - "args": ["x", "y"] - }, - - "ash": { - "args": ["value", "shift-amount"] - }, - - "mod": { - "args": ["x", "y"] - }, - - "rem": { - "args": ["x", "y"] - }, - - "abs": { - "args": ["x"] - }, - - "min": { - "args": ["x", "y"] - }, - - "max": { - "args": ["x", "y"] - }, - - "logior": { - "args": ["x", "y"] - }, - - "logand": { - "args": ["x", "y"] - }, - - "lognor": { - "args": ["x", "y"] - }, - - "logxor": { - "args": ["x", "y"] - }, - - "lognot": { - "args": ["x"] - }, - - "basic-type?": { - "args": ["obj", "parent-type"], - "vars": { "v1-0": "obj-type", "a0-1": "end-type" } - }, - - "type-type?": { - "args": ["child-type", "parent-type"], - "vars": { "v1-0": "end-type" } - }, - - "find-parent-method": { - "args": ["child-type", "method-id"], - "vars": { - "v0-0": "current-method", - "v1-2": "original-method", - "v1-5": "unused1" - } - }, - - "ref": { - "args": ["lst", "index"], - "vars": { "v1-0": "count" } - }, - - "(method 4 pair)": { - "vars": { "v0-0": "result", "v1-1": "iter" } - }, - - "last": { - "args": ["lst"], - "vars": { "v0-0": "iter" } - }, - "member": { - "args": ["obj", "lst"], - "vars": { "v1-0": "iter" } - }, - "nmember": { - "args": ["obj", "lst"] - }, - "assoc": { - "args": ["item", "alist"], - "vars": { "v1-0": "iter" } - }, - "assoce": { - "args": ["item", "alist"], - "vars": { "v1-0": "iter" } - }, - "nassoc": { - "args": ["item-name", "alist"], - "vars": { "a1-1": "key" } - }, - "nassoce": { - "args": ["item-name", "alist"], - "vars": { "s4-0": "key" } - }, - "append!": { - "args": ["front", "back"], - "vars": { "v1-1": "iter" } - }, - "delete!": { - "args": ["item", "lst"], - "vars": { "a2-0": "iter", "v1-1": "iter-prev" } - }, - "delete-car!": { - "args": ["item", "lst"], - "vars": { "a2-0": "iter", "v1-2": "iter-prev" } - }, - "insert-cons!": { - "args": ["kv", "alist"], - "vars": { "a3-0": "updated-list" } - }, - "sort": { - "args": ["lst", "compare-func"], - "vars": { - "s4-0": "unsorted-count", - "s3-0": "iter", - "s2-0": "first-elt", - "s1-0": "second-elt", - "v1-1": "compare-result" - } - }, - "(method 0 inline-array-class)": { - "args": ["allocation", "type-to-make", "size"], - "vars": { "v0-0": "obj" } - }, - "(method 0 array)": { - "args": ["allocation", "type-to-make", "content-type", "len"], - "vars": { "v0-1": "obj" } - }, - - "(method 2 array)": { - "vars": { "v1-1": "content-type-sym" } - }, - - "(method 3 array)": { - "vars": { "v1-1": "content-type-sym" } - }, - - "mem-copy!": { - "args": ["dst", "src", "size"], - "vars": { "v0-0": "result", "v1-0": "i" } - }, - "qmem-copy<-!": { - "args": ["dst", "src", "size"], - "vars": { "v0-0": "result", "v1-1": "qwc", "a2-1": "value" } - }, - "qmem-copy->!": { - "args": ["dst", "src", "size"], - "vars": { - "v0-0": "result", - "v1-1": "qwc", - "a1-1": "src-ptr", - "a0-1": "dst-ptr", - "a2-3": "value" - } - }, - "mem-set32!": { - "args": ["dst", "size", "value"], - "vars": { "v0-0": "result", "v1-0": "i" } - }, - "mem-or!": { - "args": ["dst", "src", "size"], - "vars": { "v0-0": "result", "v1-0": "i" } - }, - "fact": { - "args": ["x"] - }, - "mem-print": { - "args": ["data", "word-count"], - "vars": { "s4-0": "current-qword" } - }, - "print-tree-bitmask": { - "args": ["bits", "count"], - "vars": { "s4-0": "i" } - }, - "valid?": { - "args": ["obj", "expected-type", "name", "allow-false", "print-dest"], - "vars": { "v1-1": "in-goal-mem" } - }, - - // GKERNEL - - "(method 0 cpu-thread)": { - "vars": { "v0-0": ["obj", "cpu-thread"] } - }, - - "inspect-process-heap": { - "vars": { "s5-0": ["obj", "pointer"] } - }, - - "(method 23 dead-pool-heap)": { - "args": ["this", "rec"] - }, - - "(method 0 dead-pool-heap)": { - "vars": { "v0-0": ["obj", "dead-pool-heap"] } - }, - - "seek": { - "args": ["x", "target", "diff"], - "vars": { "f2-0": "err" } - }, - - "lerp": { - "args": ["minimum", "maximum", "amount"] - }, - - "lerp-scale": { - "args": ["min-out", "max-out", "in", "min-in", "max-in"], - "vars": { "f0-1": "scale" } - }, - - "lerp-clamp": { - "args": ["minimum", "maximum", "amount"] - }, - - "rand-vu-int-range": { - "args": ["first", "second"], - "vars": { "f0-4": "float-in-range" } - }, - - "(method 0 bit-array)": { - "args": ["allocation", "type-to-make", "length"], - "vars": { "v0-0": "obj" } - }, - - "(method 12 bit-array)": { - "vars": { "v1-2": "idx" } - }, - - "box-vector-enside?": { - "args": ["box", "pt"] - }, - - "box-vector-inside?": { - "args": ["box", "pt"] - }, - - "string=": { - "args": ["str-a", "str-b"], - "vars": { "a2-0": "a-ptr", "v1-0": "b-ptr" } - }, - - "string-charp=": { - "args": ["str", "charp"], - "vars": { "v1-0": "str-ptr" } - }, - - "copyn-string<-charp": { - "args": ["str", "charp", "len"], - "vars": { "a3-0": "i", "v1-0": "str-ptr" } - }, - - "string<-charp": { - "args": ["str", "charp"], - "vars": { "v1-0": "str-ptr" } - }, - - "charp<-string": { - "args": ["charp", "str"], - "vars": { "v1-0": "str-ptr" } - }, - - "copy-charp<-charp": { - "args": ["dst", "src"] - }, - - "cat-string<-string": { - "args": ["a", "b"], - "vars": { "v1-0": "a-ptr", "a1-1": "b-ptr" } - }, - - "catn-string<-charp": { - "args": ["a", "b", "len"], - "vars": { "v1-0": "a-ptr", "a3-2": "i" } - }, - - "cat-string<-string_to_charp": { - "args": ["a", "b", "end-ptr"], - "vars": { "v1-0": "b-ptr", "v0-0": "a-ptr" } - }, - - "append-character-to-string": { - "args": ["str", "char"], - "vars": { "v1-0": "str-ptr" } - }, - - "charp-basename": { - "args": ["charp"], - "vars": { "v1-0": "ptr" } - }, - - "string?": { - "args": ["a", "b"], - "vars": { "s4-1": "len", "v1-4": "i" } - }, - "string<=?": { - "args": ["a", "b"], - "vars": { "s4-1": "len", "v1-4": "i" } - }, - "string>=?": { - "args": ["a", "b"], - "vars": { "s4-1": "len", "v1-4": "i" } - }, - "string-cat-to-last-char": { - "args": ["base-str", "append-str", "char"], - "vars": { "s4-0": "end-of-append", "v1-0": "location-of-char" } - }, - "string-suck-up!": { - "args": ["str", "location"], - "vars": { "v1-2": "str-ptr" } - }, - "string-strip-trailing-whitespace!": { - "args": ["str"], - "vars": { "v1-6": "ptr" } - }, - - "string-get-arg!!": { - "args": ["a-str", "arg"], - "vars": { "s4-0": "arg-word-start", "s4-1": "arg-end", "v1-3": "arg-start" } - }, - - "string->int": { - "args": ["str"], - "vars": { - "a0-1": "str-ptr", - "v0-0": "result", - "a0-2": "next-char-1", - "a0-3": "next-char-2" - } - }, - - "string-get-flag!!": { - "args": ["result", "in", "first-flag", "second-flag"] - }, - - "(method 0 state)": { - "args": [ - "allocation", - "type-to-make", - "name", - "code", - "trans", - "enter", - "exit", - "event" - ], - "vars": { "v0-0": "obj" } - }, - - "previous-brother": { - "args": ["proc"], - "vars": { "v1-0": "parent", "v1-2": "child" } - }, - - // Matrix - "matrix-identity": { - "args": ["mat"], - "vars": { "f0-0": "one" } - }, - - "matrix+!": { - "args": ["dst", "src1", "src2"], - "vars": { "v1-0": "i" } - }, - - "matrix-!": { - "args": ["dst", "src1", "src2"], - "vars": { "v1-0": "i" } - }, - - "matrix*!": { - "args": ["dst", "src1", "src2"] - }, - - "matrixp*!": { - "args": ["dst", "src1", "src2"], - "vars": { "s5-0": "temp-mat" } - }, - - "vector-matrix*!": { - "args": ["dst", "vec", "mat"] - }, - - "vector-rotate*!": { - "args": ["dst", "vec", "mat"] - }, - - "vector3s-matrix*!": { - "args": ["dst", "vec", "mat"], - "vars": { "s5-0": "temp-vec3" } - }, - - "vector3s-rotate*!": { - "args": ["dst", "vec", "mat"], - "vars": { "s5-0": "temp-vec3" } - }, - - "matrix-transpose!": { - "args": ["dst", "src"] - }, - - "matrix-inverse-of-rot-trans!": { - "args": ["dst", "src"] - }, - - "matrix-4x4-inverse!": { - "args": ["dst", "src"] - }, - - "matrix-translate!": { - "args": ["dst", "trans"] - }, - - "matrix-translate+!": { - "args": ["dst", "src", "trans"] - }, - - "matrix-scale!": { - "args": ["dst", "scale"] - }, - - "scale-matrix!": { - "args": ["dst", "scale", "src"] - }, - - "matrix-inv-scale!": { - "args": ["dst", "scale"] - }, - - "column-scale-matrix!": { - "args": ["dst", "scale", "src"] - }, - - "matrix-rotate-x!": { - "args": ["dst", "rot-deg"], - "vars": { "f30-0": "rot-sin", "f0-0": "rot-cos" } - }, - - "matrix-rotate-y!": { - "args": ["dst", "rot-deg"], - "vars": { "f30-0": "rot-sin", "f0-0": "rot-cos" } - }, - - "matrix-rotate-z!": { - "args": ["dst", "rot-deg"], - "vars": { "f30-0": "rot-sin", "f0-0": "rot-cos" } - }, - - "matrix-rotate-zyx!": { - "args": ["dst", "rot-xyz-deg"], - "vars": { "gp-0": "temp-mat", "s5-0": "rot-mat" } - }, - - "matrix-rotate-xyz!": { - "args": ["dst", "rot-xyz-deg"], - "vars": { "gp-0": "temp-mat", "s5-0": "rot-mat" } - }, - - "matrix-rotate-zxy!": { - "args": ["dst", "rot-xyz-deg"], - "vars": { "gp-0": "temp-mat", "s5-0": "rot-mat" } - }, - - "matrix-rotate-yxz!": { - "args": ["dst", "rot-xyz-deg"], - "vars": { "gp-0": "temp-mat", "s5-0": "rot-mat" } - }, - - "matrix-rotate-yzx!": { - "args": ["dst", "rot-xyz-deg"], - "vars": { "gp-0": "temp-mat", "s5-0": "rot-mat" } - }, - - "matrix-rotate-yxy!": { - "args": ["dst", "rots-deg"], - "vars": { - "a2-0": "sincos-input", - "s5-0": "sin-vec", - "s4-0": "cos-vec", - "f1-1": "cos-y", - "f0-5": "sin-y", - "f2-0": "cos-x", - "f5-0": "sin-x", - "f3-0": "cos-z", - "f4-0": "sin-z" - } - }, - - "matrix-rotate-yx!": { - "args": ["dst", "rot-y-deg", "rot-x-deg"] - }, - - "matrix-axis-angle!": { - "args": ["dst", "axis", "angle-deg"] - }, - - "matrix-lerp!": { - "args": ["dst", "src1", "src2", "alpha"] - }, - - "matrix-3x3-determinant": { - "args": ["mat"] - }, - - "matrix-3x3-inverse!": { - "args": ["dst", "src"] - }, - - "matrix-3x3-inverse-transpose!": { - "args": ["dst", "src"] - }, - - "matrix3-inverse-transpose!": { - "args": ["dst", "src"] - }, - - "matrix-4x4-determinant": { - "args": ["dst", "src"] - }, - - "matrix-4x4-inverse-transpose!": { - "args": ["dst", "src"] - }, - - "matrix-y-angle": { - "args": ["mat"], - "vars": { "v1-0": "z-row" } - }, - - "(method 0 trs)": { - "vars": { "gp-0": "obj" } - }, - - "transform-matrix-calc!": { - "args": ["tf", "dst-mat"] - }, - - "transform-matrix-parent-calc!": { - "args": ["tf", "dst-mat", "inv-scale"] - }, - - "trs-matrix-calc!": { - "args": ["tf", "dst-mat"] - }, - - "quaternion-axis-angle!": { - "args": ["quat", "x", "y", "z", "angle"] - }, - - "quaternion-vector-angle!": { - "args": ["quat", "axis", "angle"] - }, - - "vector-flatten!": { - "args": ["dst", "src", "plane-normal"] - }, - - "vector-reflect!": { - "args": ["dst", "src", "plane-normal"] - }, - - "vector-reflect-flat!": { - "args": ["dst", "src", "plane-normal"] - }, - - "vector-reflect-true-flat!": { - "args": ["dst", "src", "plane-normal"] - }, - - "vector-reflect-flat-above!": { - "args": ["dst", "src", "plane-normal"] - }, - - "deg-seek": { - "args": ["in", "target", "max-diff"], - "vars": { - "v1-1": "in-int", - "a0-2": "target-int", - "a1-2": "max-diff-int", - "a2-1": "diff", - "a3-0": "abs-diff" - } - }, - - "deg-seek-smooth": { - "args": ["in", "target", "max-diff", "amount"], - "vars": { "f0-1": "step" } - }, - - "deg-lerp-clamp": { - "args": ["min-val", "max-val", "in"] - }, - - "sinerp-clamp": { - "args": ["minimum", "maximum", "amount"] - }, - - "coserp-clamp": { - "args": ["minimum", "maximum", "amount"] - }, - "coserp": { - "args": ["minimum", "maximum", "amount"] - }, - - "coserp180-clamp": { - "args": ["minimum", "maximum", "amount"] - }, - "coserp180": { - "args": ["minimum", "maximum", "amount"] - }, - "ease-in-out": { - "args": ["total", "progress"] - }, - "dma-send-to-spr": { - "args": ["sadr", "madr", "qwc", "sync"] - }, - "dma-send-to-spr-no-flush": { - "args": ["sadr", "madr", "qwc", "sync"] - }, - "dma-send-from-spr": { - "args": ["madr", "sadr", "qwc", "sync"] - }, - "dma-send-from-spr-no-flush": { - "args": ["madr", "sadr", "qwc", "sync"] - }, - "dump-vu1-range": { - "args": ["start", "total-count"] - }, - "ultimate-memcpy": { - "args": ["dst", "src", "size-bytes"], - "vars": { - "s2-0": "qwc-remaining", - "s1-0": "qwc-transferred-now", - "s4-0": "spr-to-bank", - "s3-0": "spr-from-bank" - } - }, - - "dma-buffer-add-vu-function": { - "args": ["dma-buf", "vu-func"], - "vars": { - "t1-1": "dma-buf-2", - "v1-0": "func-ptr", - "a3-0": "qlen", - "a1-1": "origin", - "t0-1": "qwc-now", - "t2-0": ["buf-ptr", "dma-packet"] - } - }, - - "dma-buffer-add-buckets": { - "args": ["dma-buf", "count"], - "vars": { "a2-0": "i", "v1-0": ["current-bucket", "dma-bucket"] } - }, - - "dma-buffer-patch-buckets": { - "args": ["bucket", "count"], - "vars": { "v1-1": "i" } - }, - - "dma-bucket-insert-tag": { - "args": ["base", "idx", "tag-start", "tag-end"], - "vars": { "v1-1": "bucket" } - }, - - "disasm-vif-details": { - "args": ["stream", "data", "kind", "count"], - "vars": { "s4-0": "count2", "s3-0": "data-ptr", "s2-0": "i" } - }, - - "disasm-vif-tag": { - "args": ["data", "words", "stream", "details"], - "vars": { - "gp-0": "byte-idx", - "v1-0": "cmd-template-idx", - "a0-12": "print-kind", - "s1-0": "first-tag", - "s0-0": "packet-size", - "t1-1": ["stcycl-imm", "vif-stcycl-imm"], - "sv-16": "cmd", - "sv-32": "data-ptr", - "sv-48": "data-idx", - "sv-64": "unpack-imm" - } - }, - - "disasm-dma-list": { - "args": ["data", "mode", "verbose", "stream", "expected-size"], - "vars": { - "sv-16": "addr", - "sv-32": "data-2", - "sv-48": "qwc", - "sv-64": "ra-1", - "sv-80": "ra-2", - "sv-96": "call-depth", - "sv-112": "current-tag", - "s2-0": "mode-2", - "s3-0": "verbose-2", - "gp-0": "stream-2", - "s1-0": "expected-size-2", - "s0-0": "end-condition", - "s4-0": "total-qwc", - "s5-0": "total-tags" - } - }, - - "cpad-invalid!": { - "args": ["pad"] - }, - - "(method 0 cpad-info)": { - "args": ["alloction", "type-to-make", "idx"], - "vars": { "s5-0": "obj" } - }, - - "analog-input": { - "args": ["in", "offset", "center-val", "max-val", "out-range"], - "vars": { - "f1-1": "offset-in", - "f0-3": "magnitude", - "v1-0": "max-magnitude" - } - }, - - "cpad-set-buzz!": { - "args": ["pad", "buzz-idx", "buzz-amount", "duration"] - }, - - "service-cpads": { - "vars": { - "gp-0": "pad-list", - "s5-0": "pad-idx", - "s4-0": "pad", - "s3-0": "buzz-idx", - "v1-29": "current-button0" - } - }, - - "buzz-stop!": { - "args": ["idx"] - }, - - "default-buffer-init": { - "args": ["buff"], - "vars": { - "v1-0": "buff-ptr", - "v1-1": "buff-ptr2", - "v1-3": "buff-ptr3", - "v1-4": "buff-ptr4", - "a1-4": ["packet", "dma-gif-packet"], - "a1-6": ["gif-tag", "gs-gif-tag"], - "a1-8": ["data", "(pointer uint64)"], - "a0-1": ["ret-packet", "dma-packet"], - "v1-2": "buff-ptr5" - } - }, - - "add-reg-gif-packet": { - "args": ["packet", "reg-idx", "reg-val"], - "vars": { "v1-0": "tag" } - }, - - "(method 9 font-context)": { - "args": ["obj", "mat"] - }, - "(method 10 font-context)": { - "args": ["obj", "x", "y"] - }, - "(method 11 font-context)": { - "args": ["obj", "z"] - }, - "(method 12 font-context)": { - "args": ["obj", "w"] - }, - "(method 13 font-context)": { - "args": ["obj", "width"] - }, - "(method 14 font-context)": { - "args": ["obj", "height"] - }, - "(method 15 font-context)": { - "args": ["obj", "proj"] - }, - "(method 16 font-context)": { - "args": ["obj", "color"] - }, - "(method 17 font-context)": { - "args": ["obj", "flags"] - }, - "(method 18 font-context)": { - "args": ["obj", "start-line"] - }, - "(method 19 font-context)": { - "args": ["obj", "scale"] - }, - "(method 0 font-context)": { - "args": [ - "allocation", - "type-to-make", - "mat", - "x", - "y", - "z", - "color", - "flags" - ], - "vars": { "v0-0": "obj" } - }, - "font-set-tex0": { - "args": ["ptr-tex0", "tex", "tex-addr", "psm", "clut-addr"] - }, - - "(method 0 display-frame)": { - "vars": { "gp-0": "obj" } - }, - - "(method 0 draw-context)": { - "args": [ - "allocation", - "type-to-make", - "org-x", - "org-y", - "width", - "height", - "color-0" - ] - }, - - "(method 0 display)": { - "args": ["allocation", "type-to-make", "psm", "w", "h", "ztest", "zpsm"], - "vars": { "gp-0": "obj" } - }, - - "(method 0 ripple-control)": { - "vars": { "v0-0": "obj" } - }, - - "vector-seek-2d-xz-smooth!": { - "args": ["vec", "target", "max-step", "alpha"], - "vars": { - "f0-1": "x-diff", - "f2-1": "z-diff", - "f1-5": "x-step", - "f0-3": "z-step", - "f2-4": "step-len" - } - }, - - "vector-seek-2d-yz-smooth!": { - "args": ["vec", "target", "max-step", "alpha"], - "vars": { - "f0-1": "y-diff", - "f2-1": "z-diff", - "f1-5": "y-step", - "f0-3": "z-step", - "f2-4": "step-len", - "f2-6": "step-scale" - } - }, - - "vector-seek-3d-smooth!": { - "args": ["vec", "target", "max-step", "alpha"], - "vars": { - "f0-1": "x-diff", - "f1-2": "y-diff", - "f3-1": "z-diff", - "f2-6": "x-step", - "f1-3": "y-step", - "f0-4": "z-step", - "f3-5": "step-len", - "f3-7": "step-scale" - } - }, - - "seek-with-smooth": { - "args": ["value", "target", "max-step", "alpha", "deadband"], - "vars": { "f0-1": "diff", "f0-2": "step", "f1-4": "min-step" } - }, - - "vector-v+!": { - "args": ["result", "position", "velocity"] - }, - - "vector-v*float+!": { - "args": ["result", "position", "velocity", "velocity-scale"] - }, - - "vector-v++!": { - "args": ["position", "velocity"] - }, - - "vector-v*float!": { - "args": ["delta-p", "velocity", "scale"] - }, - - "vector-v*float++!": { - "args": ["position", "velocity", "scale"] - }, - - "vector-lerp!": { - "args": ["out", "a", "b", "alpha"] - }, - - "vector-lerp-clamp!": { - "args": ["out", "a", "b", "alpha"] - }, - - "vector4-lerp!": { - "args": ["out", "a", "b", "alpha"] - }, - - "vector4-lerp-clamp!": { - "args": ["out", "a", "b", "alpha"] - }, - - "vector-deg-lerp-clamp!": { - "args": ["out", "min-val", "max-val", "in"] - }, - - "make-file-name": { - "args": ["kind", "name", "art-group-version"] - }, - - "make-vfile-name": { - "args": ["kind", "name"] - }, - - "file-info-correct-version?": { - "args": ["info", "kind", "version-override"], - "vars": { "s5-0": "expected-version", "s4-0": "kind-name" } - }, - - "(method 0 load-dir)": { - "args": ["allocation", "type-to-make", "length", "unk"], - "vars": { "s4-0": "obj" } - }, - - "(method 0 load-dir-art-group)": { - "args": ["allocation", "type-to-make", "length", "unk"], - "vars": { "v0-0": "obj" } - }, - - "(method 0 external-art-buffer)": { - "args": ["allocation", "type-to-make", "idx"], - "vars": { "v0-0": "obj" } - }, - - "(method 0 external-art-control)": { - "vars": { "gp-0": "obj", "s4-0": "buff-idx", "v1-9": "rec-idx" } - }, - - "(method 9 display)": { - "args": ["obj", "slowdown"], - "vars": { "gp-0": "obj", "s5-0": "ratio" } - }, - - "set-draw-env-offset": { - "args": ["env", "x", "y"] - }, - - "set-display-env": { - "args": ["env", "psm", "width", "height", "dx", "dy", "fbp"] - }, - - "set-draw-env": { - "args": ["env", "psm", "width", "height", "ztest", "zpsm", "fbp"] - }, - - "set-display": { - "args": ["disp", "psm", "w", "h", "ztest", "zpsm"] - }, - - "set-display2": { - "args": ["disp", "psm", "w", "h", "ztest", "zpsm"] - }, - - "(method 11 profile-bar)": { - "args": ["obj", "name", "color"], - "vars": { "s5-0": "new-frame" } - }, - - "(method 12 profile-bar)": { - "args": ["obj", "name", "color"], - "vars": { "v0-0": "new-frame" } - }, - - "gs-set-default-store-image": { - "args": [ - "packet", - "src-fbp", - "src-w", - "src-psm", - "ssax", - "ssay", - "rrw", - "rrh" - ] - }, - - "store-image": { - "args": ["oddeven"], - "vars": { - "s4-0": "buff0", - "s1-0": "buff1", - "s0-0": "packet", - "gp-0": "file", - "s3-0": "width", - "s2-0": "height", - "s0-1": "ptr-0", - "sv-16": "ptr-1", - "sv-32": "y-idx", - "sv-48": "y-idx-2" - } - }, - - "(method 0 draw-context)": { - "args": [ - "allocation", - "type-to-make", - "org-x", - "org-y", - "width", - "height", - "color-0" - ], - "vars": { "v0-0": "obj" } - }, - - "draw-context-set-xy": { - "args": ["ctxt", "x", "y"] - }, - - "texture-qwc": { - "args": ["w", "h", "tex-format"] - }, - - "gs-find-block": { - "args": ["bx", "by", "tex-format"] - }, - - "gs-largest-block": { - "args": ["tex-width", "tex-height", "tex-format"], - "vars": { - "s5-0": "block-width", - "v1-0": "block-height", - "a0-6": "real-width", - "a1-4": "real-height", - "s5-1": "width-blocks", - "s3-1": "height-blocks", - "s2-0": "x", - "s1-0": "y", - "s4-1": "max-block" - } - }, - - "gs-blocks-used": { - "args": ["tex-width", "tex-height", "tex-format"], - "vars": { - "s4-0": "page-width", - "v1-0": "page-height", - "a0-6": "real-width", - "a1-4": "real-height", - "s3-0": "width-blocks", - "s1-0": "height-blocks" - } - }, - - "dma-buffer-add-ref-texture": { - "args": ["buf", "data", "tex-w", "tex-h", "tex-format"], - "vars": { - "s5-0": "data-ptr", - "v1-0": "qwc", - "a0-4": "qwc-this-time", - "a1-3": "eop", - "a3-1": ["setup-dma", "dma-packet"], - "a3-3": ["setup-dif", "gs-gif-tag"], - "a2-4": ["data-dma", "dma-packet"] - } - }, - - "(method 15 texture-pool)": { - "args": ["obj", "word-count"] - }, - - "(method 22 texture-pool)": { - "args": ["obj", "tpage-id"] - }, - - "(method 10 texture-page)": { - "args": ["obj", "segment-count", "additional-size"] - }, - - "(method 16 texture-pool)": { - "args": ["obj", "segment", "size"] - }, - - "(method 9 texture-page)": { - "args": ["obj", "seg"] - }, - - "texture-page-default-allocate": { - "args": ["pool", "page", "seg", "tpage-id"], - "vars": { "s3-0": "seg-id" } - }, - - "texture-page-common-allocate": { - "args": ["pool", "page", "seg", "tpage-id"], - "vars": { "s4-0": "seg-id" } - }, - - "(method 12 texture-page)": { - "args": ["obj", "new-dest", "seg-id"], - "vars": { - "a3-4": "dst-block", - "t0-1": "tex-id", - "t1-6": "tex", - "t2-0": "num-mips", - "t3-4": "mip-id" - } - }, - - "texture-page-common-boot-allocate": { - "args": ["pool", "page", "heap", "tpage-id"], - "vars": { "s2-0": "tex-id" } - }, - - "upload-vram-data": { - "args": ["buf", "dest", "tex-data", "tex-h"], - "vars": { - "a3-2": "height-this-time", - "a0-1": ["dma", "dma-packet"], - "a0-3": ["gif", "gs-gif-tag"], - "a0-5": "gs-data" - } - }, - - "upload-vram-pages": { - "args": ["pool", "segment", "page", "mode", "bucket-idx"], - "vars": { - "s3-0": "dma-buf", - "sv-16": "tex-data", - "sv-20": "tex-dest-base-chunk", - "sv-24": "chunk-count", - "sv-48": "tex-id", - "s1-0": "upload-chunk-idx", - "v1-24": "current-dest-chunk", - "sv-32": "chunks-to-upload-count", - "sv-40": "first-chunk-idx-to-upload", - "gp-0": "total-upload-size", - "s4-0": "dma-start", - "a0-26": ["dma", "dma-packet"], - "a0-28": ["gif", "gs-gif-tag"], - "a0-30": "gif-data", - "v1-50": ["dma-end", "dma-packet"] - } - }, - - "update-vram-pages": { - "args": ["pool", "pool-segment", "page", "mode"], - "vars": { - "t1-0": "dest-block", - "t2-0": "sz", - "t0-1": "page-id", - "a1-4": "upload-chunks", - "a2-3": "chunk-idx", - "v1-2": "modified-chunk-count", - "a3-8": "vram-chunk" - } - }, - - "upload-vram-pages-pris": { - "args": ["pool", "segment", "page", "bucket-idx", "allow-cache-mask"], - "vars": { - "s3-0": "dma-buf", - "sv-16": "tex-data", - "sv-20": "tex-dest-base-chunk", - "sv-24": "chunk-count", - "sv-32": "chunks-to-upload-count", - "sv-40": "first-chunk-idx-to-upload", - "sv-48": "page-id", - "s0-0": "upload-chunk-idx", - "sv-52": "current-dest-chunk", - "sv-56": "need-tex", - "gp-0": "total-upload-size", - "a0-21": ["dma", "dma-packet"], - "a0-23": ["gif", "gs-gif-tag"], - "v1-55": ["dma-end", "dma-packet"] - } - }, - - "texture-page-near-allocate-0": { - "args": ["pool", "page", "heap", "mode"], - "vars": { - "s3-0": "common-dest", - "s2-0": "page-seg-idx", - "a1-5": "page-seg-2-size", - "v1-15": "after-seg-2-data", - "a0-8": "seg-2-data" - } - }, - - "texture-page-near-allocate-1": { - "args": ["pool", "page", "heap", "mode"], - "vars": { - "s4-0": "seg2-size", - "a1-1": "seg2-dest", - "s2-0": "common-dest", - "s1-0": "page-seg-idx" - } - }, - - "texture-page-level-allocate": { - "args": ["pool", "page", "heap", "mode"], - "vars": { - "s2-0": "common-id", - "v1-6": "level-idx" - } - }, - - "texture-page-dir-inspect": { - "args": ["dir", "mode"], - "vars": { - "v1-0": "pool", - "s4-0": "level-idx", - "a1-3": "lev", - "s4-1": "entry-idx", - "s3-0": "entry-page", - "s2-0": "entry-link", - "s1-0": "entry-list-length" - } - }, - - "texture-page-size-check": { - "args": ["pool", "level", "hide-prints"], - "vars": { - "gp-0": "oversize", - "s3-0": "tfrag-page", - "v1-0": "tfrag-mip0-size", - "v1-3": "pris-page", - "v1-5": "shrub-page", - "v1-7": "alpha-page", - "v1-9": "water-page" - } - }, - - "(method 13 texture-pool)": { - "args": ["obj", "level", "max-page-kind", "id-array"], - "vars": { - "v1-0": "page-idx", - "v1-5": "tfrag-dir-entry", - "v1-7": "pris-dir-entry", - "v1-9": "shrub-dir-entry", - "v1-11": "alpha-dir-entry", - "v1-13": "water-dir-entry", - "a2-7": "overflow-bits" - } - }, - - "(method 14 texture-pool)": { - "args": ["obj", "level", "tex-page-kind"], - "vars": { - "s3-0": "tfrag-page", - "s2-0": "tfrag-bucket", - "f30-0": "distance", - "a2-4": "pris-page", - "a3-3": "pris-bucket", - "a2-5": "shrub-page", - "f0-5": "shrub-closest", - "t0-4": "shrub-bucket", - "a3-4": "shrub-mode", - "s3-1": "alpha-page", - "f0-6": "alpha-closest", - "s2-1": "alpha-bucket", - "s1-3": "alpha-mode", - "s0-0": "alpha-dest-chunk", - "a2-7": "water-page", - "a3-6": "water-bucket" - } - }, - - "(method 13 texture-page)": { - "args": ["obj", "dma-buff", "mode"], - "vars": { - "sv-16": "total-size", - "v1-7": "start-segment", - "s5-0": "chunk-count", - "s4-0": "current-dest", - "s3-0": "current-data", - "a3-1": "chunks-now", - "a0-1": ["pkt", "dma-packet"], - "a0-3": ["gs-tag", "gs-gif-tag"], - "a0-5": "gs-reg-data" - } - }, - - "texture-relocate": { - "args": ["dma-buff", "tex", "dest-loc", "dest-fmt", "clut-dst"], - "vars": { - "v1-0": "mip-level", - "t1-1": "mip-w", - "t2-3": "mip-h", - "t4-0": ["dma-pkt", "dma-packet"], - "t4-2": ["gs-pkt", "gs-gif-tag"] - } - }, - - "(method 11 texture-pool)": { - "vars": { - "s3-0": "font-clut", - "sv-16": "heap-before-font-tex", - "sv-20": "clut-dest-addr", - "s4-0": "dma-buff", - "s5-0": "main-font-tx", - "s2-0": "font-tx-1", - "s1-0": "font-tx-1-dest", - "s0-0": "font-tx-1-fmt", - "s2-1": "font-tx-0", - "s1-1": "font-tx-0-dest", - "s0-1": "font-tx-0-fmt", - "s2-2": "font-tx-3", - "s1-2": "font-tx-3-dest", - "s0-2": "font-tx-3-fmt", - "s2-3": "font-tx-2", - "s1-3": "font-tx-2-dest", - "s0-3": "font-tx-2-fmt" - } - }, - - "link-texture-by-id": { - "vars": { - "s4-0": "dir-entry" - } - }, - - "(method 9 texture-page-dir)": { - "args": ["obj", "heap"], - "vars": { - "v1-0": "mem-start", - "a1-1": "mem-end", - "a2-0": "entry-idx", - "t1-0": "entry", - "t0-0": "tex-page", - "a3-4": "link-arr", - "t0-3": "tex-count", - "t1-4": "tex-idx", - "t2-0": "link-slot", - "t3-2": ["shader", "adgif-shader"], - "t4-1": "dist-past-end" - } - }, - - "display-loop": { - "vars": { - "s3-0": "debug-buf", - "gp-0": "disp", - "s5-2": "debug-txt-buf" - } - }, - - "adgif-shader-login": { - "args": "shader", - "vars": { - "s5-0": "tex" - } - }, - - "adgif-shader-login-fast": { - "args": ["shader"], - "vars": { - "v1-4": "tex-id", - "a0-9": "dir-entry", - "s5-0": "tex" - } - }, - - "texture-page-login": { - "args": ["id", "alloc-func", "heap"], - "vars": { - "s5-0": "dir-entry", - "s4-0": "old-alloc-func", - "s3-0": "file-name" - } - }, - - "(method 9 __assert-info-private-struct)": { - "args": ["obj", "filename", "line-num", "column-num"] - }, - - "__assert": { - "args": ["exp", "msg"] - }, - - "__assert-min-max-range-float": { - "args": ["exp", "minimum", "maximum", "msg-exp", "msg-min", "msg-max"] - }, - - "__assert-min-max-range-int": { - "args": ["exp", "minimum", "maximum", "msg-exp", "msg-min", "msg-max"] - }, - - "__assert-zero-lim-range-int": { - "args": ["exp", "maximum", "msg-exp", "msg-max"] - }, - - "fog-corrector-setup": { - "args": ["corrector", "math-cam"] - }, - - "update-math-camera": { - "args": ["math-cam", "video-mode", "aspect"], - "vars": { - "f0-4": "temp1", - "v1-1": "elim1", - "f0-6": "temp2", - "v1-2": "elim2", - "f1-3": "x-rat", - "f0-7": "y-rat", - "v1-3": "cull-info", - "f2-2": "unused-x-thing", - "f2-5": "y-thing", - "f3-11": "one-plus-2x-squared", - "f3-14": "one-plus-2y-squared", - "f2-9": "temp3", - "a0-2": "elim3", - "f2-11": "near-x", - "f1-5": "near-y", - "f0-10": "near-corner-dist-sqr", - "f2-8": "unused-thing-2", - "f1-8": "near-z", - "f0-12": "temp4", - "a0-6": "elim4", - "f1-12": "dx-rat-2", - "f0-14": "d-temp-2", - "f2-13": "dx-rat-times-4", - "f3-21": "d-temp-3", - "f4-21": "inverse-x-len", - "f5-11": "inverse-x-len-2", - "f0-16": "temp5", - "a0-7": "elim5", - "f1-15": "dy-rat", - "f0-18": "d-temp-4", - "f2-15": "dy-rat-times-4", - "f3-22": "d-temp-5", - "f4-26": "inverse-y-len", - "f5-16": "inverse-y-len-2", - "f0-20": "temp6", - "v1-4": "elim6", - "v0-2": "cam-mat", - "f2-16": "fog-constant-1", - "f3-23": "fog-constant-2", - "f0-12": "fog-contsant-3", - "f0-24": "fog-at-near-plane", - "f1-22": "fog-factor-2", - "f4-35": "cam-fov-mult", - "f5-19": "corrected-fog", - "f5-23": "hvdf-x", - "f6-29": "hvdf-y", - "f2-18": "hvdf-z", - "f4-40": "hvdf-w", - "f2-19": "persp-xx", - "f3-36": "persp-yy", - "f1-32": "persp-x", - "v1-11": "sprite-row-0", - "v1-12": "sprite-row-1", - "v1-13": "sprite-row-2", - "v1-14": "sprite-row-3", - "f1-37": "temp7", - "v1-16": "elim7", - "v1-24": "pfog", - "a0-12": "vis-gif-0", - "a0-13": "vis-gif-1", - "a0-14": "vis-gif-1-again", - "a0-15": "vis-gif-1-again-again" - } - }, - - "move-target-from-pad": { - "args": ["trans", "pad-idx"], - "vars": { - "s4-0": "local-trans", - "a0-5": "inv-cam-rot", - "s3-0": "cam-rot-mat" - } - }, - - "(method 13 profile-bar)": { - "args": ["obj", "buf", "bar-pos"], - "vars": { - "v1-1": "height", - "a1-4": "block-idx", - "a2-1": "block-count", - "t0-0": "left", - "v1-3": "end-time", - "s4-0": "worst-time-cache", - "a3-1": "screen-y", - "t2-0": ["direct-tag", "dma-packet"], - "t2-2": ["start-gif-tag", "gs-gif-tag"], - "t1-4": "block" - } - }, - - "draw-sprite2d-xy": { - "args": ["buf", "x", "y", "w", "h", "color"], - "vars": { - "t2-1": "context", - "a0-3": "draw-x", - "a1-9": "draw-y", - "t1-2": "draw-w", - "t0-2": "draw-h", - "a3-2": ["dma", "dma-packet"], - "a3-4": ["gif", "gs-gif-tag"], - "v1-10": ["end-dma", "dma-packet"], - "a0-13": "total-qwc", - "a3-6": "gif-buf" - } - }, - - "draw-quad2d": { - "args": ["buf", "context"], - "vars": { - "a2-1": "draw-x", - "a3-7": "draw-y", - "t3-0": "draw-w", - "t2-0": "draw-h", - "v1-8": "end-dma", - "t1-0": ["dma", "dma-packet"], - "t1-2": ["gif", "gs-gif-tag"], - "t1-4": "gif-buf", - "a1-11": "total-qwc" - } - }, - - "set-display-gs-state": { - "args": ["dma-buf", "fbp", "scx", "scy", "fb-msk", "psm"], - "vars": { - "t3-0": ["dma", "dma-packet"], - "t3-2": ["gif", "gs-gif-tag"], - "t3-4": "gif-buf", - "t2-0": "fbw" - } - }, - - "set-display-gs-state-offset": { - "args": [ - "dma-buf", - "fbp", - "width", - "height", - "fb-msk", - "psm", - "off-x", - "off-y" - ], - "vars": { - "t4-0": "fbw", - "t5-0": ["dma", "dma-packet"], - "t5-2": ["gif", "gs-gif-tag"], - "t5-4": ["gif-data", "(pointer uint64)"] - } - }, - - "reset-display-gs-state": { - "args": ["disp", "dma-buf", "oddeven"], - "vars": { - "a3-0": "onscreen", - "v1-0": "hoff", - "a2-6": "fbp", - "t0-0": ["dma", "dma-packet"], - "t0-2": ["gif", "gs-gif-tag"], - "a3-3": ["gif-data", "(pointer uint64)"] - } - }, - - "(method 0 engine)": { - "args": ["allocation", "type-to-make", "name", "length"], - "vars": { "v0-0": "obj", "v1-11": "idx-to-link", "a0-1": "end-idx" } - }, - - "(method 10 engine)": { - "args": ["obj", "f"], - "vars": { "a0-1": "current", "s4-0": "next" } - }, - - "(method 11 engine)": { - "args": ["obj", "f"], - "vars": { "s4-0": "iter" } - }, - - "(method 12 engine)": { - "vars": { "s4-0": ["ct", "connection"] } - }, - - "(method 13 engine)": { - "vars": { "s4-0": ["ct", "connection"], "v1-2": "result" } - }, - - "(method 19 engine)": { - "args": ["obj", "p1-value"], - "vars": { "a0-1": "current", "s4-0": "next" } - }, - - "(method 20 engine)": { - "args": ["obj", "p2-value"], - "vars": { "a0-1": "current", "s4-0": "next" } - }, - - "connection-process-apply": { - "args": ["proc", "func"], - "vars": { "s5-0": "iter" } - }, - - "(method 15 engine)": { - "args": ["obj", "proc", "func", "p1", "p2", "p3"], - "vars": { "v1-0": "con" } - }, - - "surface-interp!": { - "args": ["dst", "src0", "src1", "amount"] - }, - - "surface-mult!": { - "args": ["dst", "src0", "src1"] - }, - - "(method 0 collide-shape-prim)": { - "args": ["allocation", "type-to-make", "cshape", "prim-id", "size-bytes"] - }, - - "(method 0 collide-shape-prim-sphere)": { - "args": ["allocation", "type-to-make", "cshape", "prim-id"], - "vars": { "v0-0": ["obj", "collide-shape-prim-sphere"] } - }, - "(method 0 collide-shape-prim-mesh)": { - "args": ["allocation", "type-to-make", "cshape", "mesh-id", "prim-id"], - "vars": { "v0-0": ["obj", "collide-shape-prim-mesh"] } - }, - "(method 0 collide-shape-prim-group)": { - "args": ["allocation", "type-to-make", "cshape", "elt-count", "prim-id"], - "vars": { "v0-0": ["obj", "collide-shape-prim-group"] } - }, - "(method 0 collide-shape)": { - "args": [ - "allocation", - "type-to-make", - "proc", - "collide-list-kind", - "prim-id" - ], - "vars": { "s5-0": "obj" } - }, - "(method 0 collide-sticky-rider-group)": { - "vars": { "v0-0": "obj" } - }, - "(method 11 touching-prims-entry-pool)": { - "vars": { "a1-0": "current", "v1-0": "prev", "a2-0": "next" } - }, - "(method 0 touching-list)": { - "vars": { "v0-0": ["obj", "touching-list"] } - }, - - "cspace-by-name-no-fail": { - "vars": { "v0-0": ["result", "cspace"] } - }, - - "num-func-loop!": { - "args": ["chan", "inc"], - "vars": { "f0-1": "duration", "f1-2": "after-inc", "f0-3": "wrapped" } - }, - - "shrubbery-login-post-texture": { - "args": ["obj"], - "vars": { - "v1-1": "shader-count", - "a1-1": ["dst", "qword"], - "a2-5": ["tex-dst", "qword"], - "a3-0": ["src", "qword"], - "a2-6": ["text-dst2", "qword"], - "a3-1": ["src-2", "qword"], - "a3-2": ["src-3", "qword"] - } - }, - - "(method 20 actor-link-info)": { - "args": ["obj", "message"], - "vars": { - "s4-0": "iter", - "s5-0": "result", - "a0-1": "proc", - "a1-1": "msg-block" - } - }, - - // LEVEL - "lookup-level-info": { - "args": ["name"], - "vars": { - "a1-1": ["info", "level-load-info"], - "v1-0": "rest", - "a1-0": "current-sym" - } - }, - - "(method 21 level-group)": { - "args": ["obj", "name", "cmd-idx"], - "vars": { "v1-1": "cmd-lst" } - }, - - // SHADOW-CPU-H - "(method 0 shadow-control)": { - "args": [ - "allocation", - "type-to-make", - "bottom-offset", - "top-offset", - "dir", - "center", - "fade" - ], - "vars": { "v0-0": "obj" } - }, - - // RES - "(method 0 res-lump)": { - "args": ["allocation", "type-to-make", "data-count", "data-size"], - "vars": { "v0-0": "obj" } - }, - "(method 20 res-lump)": { - "args": ["obj", "time", "result", "buf"], - "vars": { - "t0-2": "tag-lo", - "t1-2": "tag-hi", - "v1-6": "elt-count", - "f0-2": "interp", - "a1-6": "src-lo", - "a2-13": "src-hi" - } - }, - "(method 3 res-lump)": { - "vars": { "s5-0": "i" } - }, - "(method 9 res-lump)": { - "args": ["obj", "name", "mode", "time", "default", "tag-addr", "buf-addr"], - "vars": { "s3-0": "tag-pair" } - }, - "(method 10 res-lump)": { - "args": ["obj", "name", "mode", "time", "default", "tag-addr", "buf-addr"], - "vars": { "s3-0": "tag-pair", "v1-4": "tag" } - }, - "(method 11 res-lump)": { - "args": ["obj", "name", "mode", "time", "default", "tag-addr", "buf-addr"], - "vars": { - "a2-1": "tag-pair", - "s1-0": "tag", - "s0-0": "tag-type", - "gp-1": "data" - } - }, - "(method 12 res-lump)": { - "args": ["obj", "name", "mode", "time", "default", "tag-addr", "buf-addr"], - "vars": { - "a2-1": "tag-pair", - "s1-0": "tag", - "s0-0": "tag-type", - "gp-1": "data" - } - }, - "(method 16 res-lump)": { - "vars": { - "v1-0": "tags-sorted", - "a1-0": "i", - "a2-1": "tag-stop", - "a3-2": "tag1", - "t0-3": "tag2", - "t1-6": "tag-name1", - "t2-6": "tag-name2" - } - }, - "(method 15 res-lump)": { - "vars": { - "s5-0": ["tag-pair", "res-tag-pair"], - "s2-0": "existing-tag", - "s3-0": "data-size", - "v1-25": "resource-mem" - } - }, - - "(method 17 res-lump)": { - "vars": { - "a0-2": "new-tag", - "s4-0": "tag-mem" - } - }, - - "(method 8 res-lump)": { - "args": ["obj", "block", "flags"], - "vars": { - "s3-0": "mem-use-id", - "s2-0": "mem-use-name", - "v1-22": "obj-size", - "s1-0": "tag-idx", - "s0-0": "tag-data" - } - }, - - // FACT-H - "(method 0 fact-info-target)": { - "vars": { "gp-0": "obj" } - }, - "(method 0 fact-info-enemy)": { - "vars": { - "gp-0": "obj", - "s5-0": "entity" - } - }, - - "(method 0 fact-info)": { - "args": ["allocation", "type-to-make", "proc", "pkup-type", "pkup-amount"], - "vars": { - "gp-0": ["obj", "fact-info"], - "s5-0": "ent", - "sv-16": "tag" - } - }, - - "(method 0 align-control)": { - "vars": { "v0-0": ["obj", "align-control"] } - }, - - "str-load": { - "args": ["name", "chunk-id", "address", "len"], - "vars": { "s2-0": ["cmd", "load-chunk-msg"] } - }, - - "str-load-status": { - "args": ["length-out"], - "vars": { "v1-7": "response" } - }, - - "str-play-async": { - "args": ["name", "addr"], - "vars": { "s4-0": "cmd" } - }, - - "str-play-stop": { - "args": ["name"], - "vars": { "s5-0": "cmd" } - }, - - "str-play-queue": { - "args": ["name"], - "vars": { "s5-0": "cmd" } - }, - - "str-ambient-play": { - "args": ["name"], - "vars": { "s5-0": "cmd" } - }, - - "str-ambient-stop": { - "args": ["name"], - "vars": { "s5-0": "cmd" } - }, - - "string->sound-name": { - "args": ["str"], - "vars": { - "v1-0": "snd-name", - "a1-0": ["out-ptr", "(pointer uint8)"], - "a2-0": "in-ptr" - } - }, - "dgo-load-begin": { - "args": ["name", "buffer1", "buffer2", "current-heap"], - "vars": { "s2-0": "cmd" } - }, - - "dgo-load-get-next": { - "args": ["last-object"], - "vars": { "gp-0": ["load-location", "pointer"], "v1-5": "response" } - }, - - "dgo-load-continue": { - "args": ["current-heap"], - "vars": { "gp-0": "cmd" } - }, - "dgo-load-cancel": { - "vars": { "a2-0": "cmd" } - }, - - "find-temp-buffer": { - "args": ["size"], - "vars": { "gp-0": "qwc" } - }, - - "dgo-load-link": { - "args": ["obj-file", "heap", "print-login", "last-object"], - "vars": { "s4-0": "obj-data" } - }, - - "ramdisk-load": { - "args": ["file-id", "offset", "length", "buffer"], - "vars": { "v1-1": "cmd" } - }, - - "show-mc-info": { - "args": ["dma-buf"], - "vars": { "s5-0": "info", "s4-0": "slot-idx" } - }, - - "(method 19 res-lump)": { - "args": ["obj", "name-sym", "mode", "time"], - "vars": { - "t2-4": "type-chars", - "t3-1": "max-search", - "t4-0": "min-search", - "t6-5": "diff", - "t5-2": "check-idx", - "t4-1": "tag-idx", - "t3-13": "interp-tag-idx", - "t4-4": "tag-ptr", - "t0-6": "lo-tag-idx-out", - "v1-14": "hi-tag-idx-out", - "t1-0": "most-recent-invalid-time-idx" - } - }, - - "entity-actor-count": { - "args": ["res", "name"], - "vars": { - "sv-16": "tag" - } - }, - - "(method 0 joint-mod)": { - "args": ["allocation", "type-to-make", "mode", "proc", "joint-idx"], - "vars": { - "gp-0": "obj", - "v1-7": "twist-max" - } - }, - - "joint-mod-debug-draw": { - "args": ["mod"] - }, - - "(method 9 joint-mod)": { - "args": ["obj", "handler-mode"], - "vars": { "v1-0": "joint", "a0-1": "mode" } - }, - - "(method 10 joint-mod)": { - "args": ["obj", "target-trans"], - "vars": { "f0-0": "distance" } - }, - - "(method 13 joint-mod)": { "args": ["obj", "x", "y", "z"] }, - "(method 14 joint-mod)": { "args": ["obj", "trans", "rot", "scale"] }, - "(method 11 joint-mod)": { - "args": ["obj", "target-trans", "option", "proc"], - "vars": { - "s1-0": "proc-drawable", - "s3-1": ["enemy-facts", "fact-info-enemy"], - "f30-0": "dist" - } - }, - - "joint-mod-look-at-handler": { "args": ["csp", "xform", "mat"] }, - "(method 9 collide-history)": { - "args": ["obj", "cshape", "xs", "transv", "transv-out"] - }, - - "add-debug-sphere-from-table": { - "vars": { "s1-0": ["points", "(inline-array vector)"] } - }, - - "entity-actor-lookup": { - "args": ["lump", "name", "idx"] - }, - - "(method 0 actor-link-info)": { - "args": ["allocation", "type-to-make", "proc"], - "vars": { "s5-0": "obj", "a0-1": "ent" } - }, - - "(method 25 actor-link-info)": { - "vars": { "s5-0": "actor", "gp-0": "count" } - }, - - "(method 9 actor-link-info)": { - "args": ["obj", "matching-type"], - "vars": { "s3-0": "actor", "s5-0": "mask", "s4-0": "current-bit" } - }, - - "(method 10 actor-link-info)": { - "vars": { "s5-0": "this-actor", "s4-0": "actor", "gp-0": "count" } - }, - - "alt-actor-list-subtask-incomplete-count": { - "vars": { - "s4-0": "alt-actor-count", - "gp-0": "incomplete-count", - "s3-0": "alt-actor-idx" - } - }, - - "check-irx-version": { - "vars": { "gp-0": ["cmd", "sound-rpc-get-irx-version"] } - }, - "sound-bank-load": { - "vars": { "v1-1": ["cmd", "sound-rpc-load-bank"] } - }, - "sound-bank-unload": { - "vars": { "v1-1": ["cmd", "sound-rpc-unload-bank"] } - }, - "sound-music-load": { - "vars": { "v1-1": ["cmd", "sound-rpc-load-music"] } - }, - "sound-music-unload": { - "vars": { "v1-1": ["cmd", "sound-rpc-unload-music"] } - }, - "sound-reload-info": { - "vars": { "v1-1": ["cmd", "sound-rpc-reload-info"] } - }, - "set-language": { - "vars": { "v1-1": ["cmd", "sound-rpc-set-language"] } - }, - "list-sounds": { - "vars": { "v1-1": ["cmd", "sound-rpc-list-sounds"] } - }, - "sound-set-volume": { - "vars": { "v1-0": ["cmd", "sound-rpc-set-master-volume"] } - }, - "sound-set-reverb": { - "vars": { "v1-0": ["cmd", "sound-rpc-set-reverb"] } - }, - "sound-set-ear-trans": { - "vars": { "gp-0": ["cmd", "sound-rpc-set-ear-trans"] } - }, - "sound-play-by-name": { - "args": ["name", "id", "vol", "pitch", "bend", "group", "trans"], - "vars": { - "s5-0": ["cmd", "sound-rpc-play"], - "s3-1": ["proc", "process-drawable"], - "s4-0": "sound-trans" - } - }, - "sound-play-by-spec": { - "args": ["spec", "id", "trans"], - "vars": { - "s5-0": ["cmd", "sound-rpc-play"], - "s3-1": ["proc", "process-drawable"] - } - }, - "sound-pause": { - "vars": { "v1-0": ["cmd", "sound-rpc-pause-sound"] } - }, - "sound-stop": { - "vars": { "v1-0": ["cmd", "sound-rpc-stop-sound"] } - }, - "sound-continue": { - "vars": { "v1-0": ["cmd", "sound-rpc-continue-sound"] } - }, - "sound-group-pause": { - "vars": { "v1-0": ["cmd", "sound-rpc-pause-group"] } - }, - "sound-group-stop": { - "vars": { "v1-0": ["cmd", "sound-rpc-stop-group"] } - }, - "sound-group-continue": { - "vars": { "v1-0": ["cmd", "sound-rpc-continue-group"] } - }, - "sound-set-falloff-curve": { - "vars": { "v1-0": ["cmd", "sound-rpc-set-falloff-curve"] } - }, - "sound-set-sound-falloff": { - "vars": { "v1-0": ["cmd", "sound-rpc-set-sound-falloff"] } - }, - "sound-set-flava": { - "vars": { "v1-0": ["cmd", "sound-rpc-set-flava"] } - }, - "sound-set-fps": { - "vars": { "v1-0": ["cmd", "sound-rpc-set-fps"] } - }, - "(method 0 ambient-sound)": { - "vars": { "s5-1": ["obj", "ambient-sound"], "v1-2": "bc" } - }, - "(method 9 ambient-sound)": { - "vars": { "s5-1": "spec", "s4-2": "spec-volume" } - }, - "(method 11 ambient-sound)": { - "vars": { "gp-0": ["cmd", "sound-rpc-set-param"] } - }, - "(method 12 ambient-sound)": { - "vars": { "v1-2": ["cmd", "sound-rpc-set-param"] } - }, - "sound-buffer-dump": { - "vars": { "s3-0": ["cmd", "sound-rpc-play"] } - }, - - "(method 0 path-control)": { - "args": ["allocation", "type-to-make", "proc", "name", "time"], - "vars": { - "gp-0": ["obj", "path-control"], - "s3-1": "ent", - "v1-7": "lookup-entity", - "sv-16": "tag", - "v1-9": "data" - } - }, - - "(method 0 curve-control)": { - "args": ["allocation", "type-to-make", "proc", "name", "time"], - "vars": { "gp-0": "obj", "s3-1": "ent", "v1-3": "lookup-entity" } - }, - - "nav-mesh-connect": { - "args": ["proc", "trans", "nav-cont"], - "vars": { - "s2-0": "ent", - "v0-0": "lookup-entity", - "s3-0": "entity-nav-mesh" - } - }, - - "(method 0 nav-control)": { - "args": [ - "allocation", - "type-to-make", - "shape", - "sphere-count", - "nearest-y-threshold-default" - ], - "vars": { "s5-0": ["obj", "nav-control"], "a0-3": "ent" } - }, - - "add-debug-point": { - "args": ["enable-draw", "bucket", "pt"], - "vars": { - "a0-6": ["a0-6", "(pointer uint64)"], - "a0-7": ["a0-7", "dma-packet"], - "a3-0": ["a3-0", "dma-packet"], - "a3-2": ["a3-2", "gs-gif-tag"], - "a3-4": ["a3-4", "vector4w-2"], - "a3-6": ["a3-6", "vector4w-2"], - "a3-8": ["a3-8", "vector4w-2"], - "a1-30": ["a1-30", "vector4w-2"], - "v1-7": "buf" - } - }, - "internal-draw-debug-line": { - "vars": { - "s2-0": ["s2-0", "rgba"], - "s5-0": ["s5-0", "rgba"], - "a3-1": ["a3-1", "dma-packet"], - "a3-3": ["a3-3", "gs-gif-tag"], - "a1-43": ["a1-43", "(inline-array vector4w-2)"], - "a0-31": ["a0-31", "(pointer uint64)"], - "a0-32": ["a0-32", "dma-packet"] - } - }, - "add-debug-flat-triangle": { - "vars": { - "a3-1": ["a3-1", "dma-packet"], - "a3-3": ["a3-3", "gs-gif-tag"], - "a3-5": ["a3-5", "(inline-array vector4w-3)"], - "a0-9": ["a0-9", "(pointer uint64)"], - "a0-10": ["a0-10", "dma-packet"] - } - }, - "add-debug-line2d": { - "vars": { - "a2-3": ["a2-3", "dma-packet"], - "a2-5": ["a2-5", "gs-gif-tag"], - "a2-7": ["a2-7", "(inline-array vector4w)"], - "a2-9": ["a2-9", "(inline-array vector4w)"], - "a0-20": ["a0-20", "(pointer uint64)"], - "v1-10": ["v1-10", "dma-packet"] - } - }, - "debug-percent-bar": { - "vars": { - "v1-5": ["v1-5", "dma-packet"] - } - }, - "debug-pad-display": { - "vars": { - "v1-12": ["v1-12", "dma-packet"] - } - }, - "internal-draw-debug-text-3d": { - "vars": { - "v1-11": ["v1-11", "dma-packet"] - } - }, - - "generic-init-buffers": { - "vars": { - "v1-8": ["packet", "dma-packet"], - "gp-0": ["gp-0", "gs-zbuf"], - "s5-0": ["s5-0", "gs-zbuf"] - } - }, - - "level-update-after-load": { - "args": ["loaded-level", "level-login-state"], - "vars": { - "s3-0": "level-drawable-trees", - "s5-0": "initial-timer", - "v1-4": "current-timer", - "v1-5": "elapsed-timer", - "s2-0": "current-login-pos", - "s2-1": ["current-drawable", "drawable-tree"], - "s1-0": "idx-in-drawable" - } - }, - - "(method 9 setting-data)": { - "vars": { - "s3-0": ["conn", "connection"] - } - }, - - "(method 12 level)": { - "vars": { - "s5-3": ["s5-3", "pair"] - } - }, - - "update-sound-banks": { - "vars": { - "t0-0": ["t0-0", "symbol"] - } - }, - - "(method 16 level-group)": { - "vars": { - "s1-0": ["s1-0", "continue-point"] - } - }, - - "(method 20 level)": { - "vars": { - "s3-0": ["s3-0", "ramdisk-rpc-fill"] - } - }, - - "(method 9 game-info)": { - "args": ["obj", "cause", "save-to-load", "continue-point-override"], - "vars": { - "v1-0": "selected-cause", - "s4-1": "lev-info" - } - }, - - "(method 10 game-info)": { - "args": ["obj", "item", "amount", "source"], - "vars": { - "v1-10": "proc", - "s4-1": "level-idx", - "a0-35": "buzz-task", - "s4-2": "buzz-index", - "f30-0": "buzz-count", - "s3-0": "ctrl", - "s5-2": "buzz-bits" - } - }, - - "(method 14 game-info)": { - "args": ["obj", "lev"], - "vars": { - "s5-0": "perms", - "s4-0": "lev-entities", - "s3-0": "lev-entity-idx", - "s2-0": "lev-entity-perm", - "v1-8": "info-entity-perm" - } - }, - - "(method 15 game-info)": { - "args": ["obj", "lev"], - "vars": { - "s5-0": "lev-entities", - "s4-0": "lev-entity-idx", - "s3-0": "lev-entity-perm", - "v1-7": "info-entity-perm" - } - }, - - "(method 25 game-info)": { - "args": ["obj", "save"], - "vars": { - "v1-0": ["save-data", "game-save-tag"], - "s4-0": ["data", "game-save-tag"], - "v1-9": "old-base-frame", - "v1-10": "frame-counter-diff" - } - }, - - "(method 10 game-save)": { - "args": ["obj", "filename"], - "vars": { - "s5-0": "stream", - "s3-0": "in-size", - "s4-0": "my-size" - } - }, - - "(method 11 game-save)": { - "args": ["obj", "detail"], - "vars": { - "s4-0": ["tag", "game-save-tag"], - "s3-0": "tag-idx", - "s2-1": "prog-lev-idx", - "a2-13": "lev-name" - } - }, - - "debug-menu-func-decode": { - "vars": { - "v0-0": ["ret-val", "symbol"] - } - }, - - "letterbox": { - "vars": { - "s5-0": "dma-buf", - "v1-5": ["pkt", "dma-packet"] - } - }, - - "blackout": { - "vars": { - "s5-0": "dma-buf", - "gp-0": "sprite-dma-data", - "v1-4": ["pkt", "dma-packet"] - } - }, - - "set-master-mode": { - "args": ["new-mode"], - "vars": { "v1-3": "mode" } - }, - - "main-cheats": { - "vars": { - "v1-13": "cheatmode-state", - "v1-158": "cheatmode-debug-state", - "v1-303": "cheat-language-state", - "v1-394": "cheat-pal-state", - "s5-11": "dma-buff", - "gp-11": "dma-start", - "v1-626": ["dma-pkt", "dma-packet"], - "gp-12": "timeout", - "v1-641": "inactive-timeout", - "gp-13": "game-end-proc" - } - }, - - "load-game-text-info": { - "args": ["txt-name", "curr-text", "heap"], - "vars": { - "sv-16": "heap-sym-heap", - "sv-24": "lang", - "sv-32": "load-status", - "sv-40": "heap-free" - } - }, - - "(method 13 art-group)": { - "vars": { - "s3-0": "art-elt", - "s4-0": "janim", - "v1-9": "janim-group", - "s2-0": "success" - } - }, - - "(method 14 art-group)": { - "vars": { - "s3-0": "art-elt", - "s4-0": "janim", - "v1-9": "janim-group", - "s3-1": "success" - } - }, - - "(method 16 process-drawable)": { - "vars": { - "s3-0": "body-T-world", - "s0-0": "world-T-body", - "s2-0": "grav-rt-body", - "a1-5": "vel-rt-body" - } - }, - - "(method 11 cam-float-seeker)": { - "args": ["obj", "offset"], - "vars": { - "f1-2": "pos-error", - "f0-5": "partial-velocity-limit", - "f1-3": "daccel", - "f1-6": "abs-vel", - "f0-6": "abs-vel-limit", - "f0-10": "dpos" - } - }, - - "(method 9 trsqv)": { - "args": ["obj", "dir", "vel", "frame-count"], - "vars": { - "f0-0": "yaw-error", - "f1-2": "yaw-limit", - "f30-0": "saturated-yaw", - "a1-2": "quat", - "f0-2": "old-diff" - } - }, - - "(method 13 trsqv)": { - "args": ["obj", "yaw", "vel", "frame-count"] - }, - - "(method 16 trsqv)": { - "vars": { - "s5-0": "quat", - "s1-0": "grav", - "s3-0": "rot-mat", - "s4-0": "dir-z", - "a0-4": "dir-x" - } - }, - - "(method 25 trsqv)": { - "vars": { - "s5-0": "quat", - "gp-0": "dir-z", - "s5-1": "dir-y", - "a1-2": "dir-grav", - "v1-2": "grav-z-plane", - "f0-1": "grav-dot" - } - }, - - "(method 17 trsqv)": { - "args": ["obj", "target", "y-rate", "z-rate"], - "vars": { - "gp-0": "quat", - "s5-0": "temp-quat" - } - }, - - "raw-ray-sphere-intersect": { - "vars": { - "v0-0": ["result", "float"], - "v1-0": ["v1-0", "float"] - } - }, - - "ray-sphere-intersect": { - "args": ["ray-origin", "ray-dir", "sph-origin", "radius"] - }, - - "ray-circle-intersect": { - "args": ["ray-origin", "ray-dir", "circle-origin", "radius"] - }, - - "ray-cylinder-intersect": { - "args": [ - "ray-origin", - "ray-dir", - "cyl-origin", - "cyl-axis", - "cyl-rad", - "cyl-len" - ] - }, - - "(method 10 cylinder)": { - "args": ["obj", "probe-origin", "probe-dir"], - "vars": { - "f30-0": "result", - "f0-5": "u-origin-sph", - "s4-0": "end-pt", - "f0-8": "u-end-sphere" - } - }, - - "(method 10 cylinder-flat)": { - "args": ["obj", "probe-origin", "probe-dir"], - "vars": { - "f30-0": "result", - "f0-5": "u-origin-circle", - "s5-0": "end-pt", - "f0-8": "u-end-circle" - } - }, - - "ray-arbitrary-circle-intersect": { - "args": [ - "probe-origin", - "probe-dir", - "circle-origin", - "circle-normal", - "radius" - ] - }, - - "print-tr-stat": { - "args": ["stat", "name", "dest"] - }, - - "update-subdivide-settings!": { - "args": ["settings", "math-cam", "idx"] - }, - - "start-perf-stat-collection": { - "vars": { - "v1-2": "frame-idx", - "v1-5": "bucket", - "a0-2": "which-stat", - "a0-7": "stat-idx" - } - }, - - "ja-play-spooled-anim": { - "vars": { - "sv-16": "spool-part", - "sv-28": "old-skel-status", - "sv-64": "spool-sound" - } - }, - - "(method 3 anim-tester)": { - "vars": { - "s5-0": ["s5-0", "anim-test-obj"], - "s4-0": ["s4-0", "anim-test-sequence"], - "s3-0": ["s3-0", "anim-test-seq-item"] - } - }, - - "anim-test-obj-item-valid?": { - "vars": { - "s5-0": ["s5-0", "anim-test-sequence"] - } - }, - - "anim-test-obj-remove-invalid": { - "vars": { - //"s5-0": ["s5-0", "anim-test-sequence"], - "v1-31": ["v1-31", "anim-test-sequence"], - "s3-0": ["s3-0", "anim-test-seq-item"], - "s2-0": ["s2-0", "anim-test-seq-item"] - } - }, - - "anim-tester-reset": { - "vars": { - "v1-1": ["v1-1", "anim-test-obj"] - } - }, - - "anim-tester-save-object-seqs": { - "vars": { - "s4-2": ["s4-2", "anim-test-seq-item"] - } - }, - - "sprite-setup-header": { - "args": ["hdr", "num-sprites"] - }, - - "(method 0 sprite-aux-list)": { - "args": ["allocation", "type-to-make", "size"] - }, - - "sprite-setup-frame-data": { - "args": ["data", "tbp-offset"] - }, - - "(method 0 sprite-array-2d)": { - "args": ["allocation", "type-to-make", "group-0-size", "group-1-size"], - "vars": { - "v1-0": "sprite-count", - "s4-0": "vec-data-size", - "a2-3": "adgif-data-size" - } - }, - - "(method 0 sprite-array-3d)": { - "args": ["allocation", "type-to-make", "group-0-size", "group-1-size"], - "vars": { - "v1-0": "sprite-count", - "s4-0": "vec-data-size", - "a2-3": "adgif-data-size" - } - }, - - "sprite-set-3d-quaternion": { - "args": ["data", "quat"] - }, - "sprite-get-3d-quaternion": { - "args": ["data", "quat"] - }, - "sprite-add-matrix-data": { - "args": ["dma-buff", "matrix-mode"], - "vars": { - "v1-0": "count", - "a2-1": ["pkt1", "dma-packet"], - "a1-2": ["mtx", "matrix"], - "a2-9": ["pkt2", "dma-packet"], - "a1-11": "mtx2", - "a1-20": "hvdf-idx" - } - }, - - "sprite-add-frame-data": { - "args": ["dma-buff", "tbp-offset"], - "vars": { - "a0-1": ["pkt", "dma-packet"] - } - }, - - "sprite-add-2d-chunk": { - "args": [ - "sprites", - "start-sprite-idx", - "num-sprites", - "dma-buff", - "mscal-addr" - ], - "vars": { - "a0-1": ["pkt1", "dma-packet"], - "s1-0": "qwc-pkt1", - "a1-7": "qwc-pkt2", - "a0-5": ["pkt2", "dma-packet"], - "a1-11": "qwc-pkt3", - "a0-7": ["pkt3", "dma-packet"], - "v1-7": ["pkt4", "dma-packet"] - } - }, - - "sprite-add-2d-all": { - "args": ["sprites", "dma-buff", "group-idx"], - "vars": { - "s4-0": "current-sprite-idx", - "s2-0": "remaining-sprites", - "s3-0": "mscal-addr" - } - }, - - "sprite-add-3d-chunk": { - "args": ["sprites", "start-sprite-idx", "num-sprites", "dma-buff"], - "vars": { - "a0-1": ["pkt1", "dma-packet"], - "s2-0": "qwc-pkt1", - "a1-7": "qwc-pkt2", - "a0-5": ["pkt2", "dma-packet"], - "a1-11": "qwc-pkt3", - "a0-7": ["pkt3", "dma-packet"], - "v1-7": ["pkt4", "dma-packet"] - } - }, - - "sprite-add-3d-all": { - "args": ["sprites", "dma-buff", "group-idx"], - "vars": { - "s4-0": "current-sprite-idx", - "s3-0": "remaining-sprites" - } - }, - - "sprite-add-shadow-chunk": { - "args": ["shadow-buff", "start-idx", "num-sprites", "dma-buff"], - "vars": { - "s2-0": "qwc-pkt1", - "a0-1": ["pkt1", "dma-packet"], - "a1-7": "qwc-pkt2", - "a0-5": ["pkt2", "dma-packet"], - "v1-5": "sprite-idx", - "a0-7": "dma-vec-data", - "a1-14": "in-vec-data", - "a1-15": "qwc-pkt3", - "a0-11": ["pkt3", "dma-packet"], - "s2-1": "si", - "s1-0": "dma-adgif-data", - "s0-0": "in-adgif-data", - "v1-21": ["pkt4", "dma-packet"] - } - }, - - "sprite-add-shadow-all": { - "args": ["shadow-buff", "dma-buff"], - "vars": { - "s4-0": "current-shadow", - "s3-0": "remaining-shadows" - } - }, - - "sprite-draw": { - "args": "disp", - "vars": { - "gp-0": "dma-mem-begin", - "s4-0": "dma-buff", - "s5-0": "dma-bucket-begin", - "a0-9": ["pkt1", "dma-packet"], - "a0-11": ["giftag", "gs-gif-tag"], - "a0-17": ["pkt2", "dma-packet"], - "a0-19": ["pkt3", "dma-packet"], - "a0-26": ["pkt4", "dma-packet"], - "v1-26": ["pkt5", "dma-packet"], - "v1-31": "mem-use" - } - }, - - "mem-usage-bsp-tree": { - "args": ["header", "node", "mem-use", "flags"] - }, - - "(method 8 bsp-header)": { - "args": ["obj", "mem-use", "flags"] - }, - - "(method 10 bsp-header)": { - "args": ["obj", "other-draw", "disp-frame"], - "vars": { - "s4-0": "lev", - "a2-3": "vis-list-qwc", - "v1-15": "vis-list-qwc2", - "a0-9": ["vis-list-spad", "(pointer uint128)"], - "a1-5": ["vis-list-lev", "(pointer uint128)"], - "a2-4": "current-qw" - } - }, - - "bsp-camera-asm": { - "args": ["bsp-hdr", "camera-pos"], - "vars": { - "v1-0": ["next-node", "bsp-node"], - "a1-1": "real-node" - } - }, - - "level-remap-texture": { - "args": ["tex-id"], - "vars": { - "v1-1": "bsp-hdr", - "a3-0": "table-size", - "v1-2": ["table-data-start", "(pointer uint64)"], - "t0-0": "table-data-ptr", - "a1-1": "mask1", - "a2-1": "masked-tex-id", - "a3-2": "table-data-end", - "t0-3": "midpoint", - "t1-1": "diff" - } - }, - - "debug-menu-make-from-template": { - "vars": { - "s5-1": ["s5-1", "string"] - } - }, - - "debug-menu-item-var-render": { - "vars": { - "v1-14": ["v1-14", "dma-packet"] - } - }, - - "generic-add-constants": { - "vars": { - "a0-1": ["a0-1", "dma-packet"] - } - }, - - "generic-init-buf": { - "vars": { - "a0-2": ["a0-2", "dma-packet"], - "a0-4": ["a0-4", "gs-gif-tag"], - "a0-9": ["a0-9", "dma-packet"], - "v1-7": ["v1-7", "(pointer int32)"] - } - }, - - "(anon-function 1 cam-combiner)": { - "vars": { - "pp": ["pp", "process"] - } - }, - - "(anon-function 2 cam-combiner)": { - "vars": { - "a0-3": ["vec", "(pointer vector)"] - } - }, - - "(method 14 sync-info)": { - "args": ["obj", "period", "phase"], - "vars": { - "f0-1": "period-float", - "f1-1": "value" - } - }, - - "(method 14 sync-info-eased)": { - "args": ["obj", "period", "phase", "out-param", "in-param"], - "vars": { - "f0-9": "total-easing-phase", - "f1-11": "total-normal-phase", - "f0-1": "period-float", - "f1-1": "value", - "f3-4": "y-end" - } - }, - - "(method 14 sync-info-paused)": { - "args": ["obj", "period", "phase", "out-param", "in-param"] - }, - - "(method 15 sync-info)": { - "args": [ - "obj", - "proc", - "default-period", - "default-phase", - "default-out", - "default-in" - ] - }, - - "(method 15 sync-info-eased)": { - "args": [ - "obj", - "proc", - "default-period", - "default-phase", - "default-out", - "default-in" - ] - }, - - "(method 15 sync-info-paused)": { - "args": [ - "obj", - "proc", - "default-period", - "default-phase", - "default-out", - "default-in" - ] - }, - - "(method 10 sync-info)": { - "vars": { - "v1-0": "period", - "f0-1": "period-float", - "f1-2": "current-time" - } - }, - - "(method 16 sync-info)": { - "args": ["obj", "user-time-offset"], - "vars": { - "a2-0": "period", - "f0-1": "period-float", - "v1-0": "wrapped-user-offset", - "f1-4": "current-time", - "f1-6": "current-time-wrapped", - "f1-10": "combined-offset", - "f0-3": "combined-offset-wrapped" - } - }, - - "(method 11 sync-info)": { - "vars": { - "v1-0": "period", - "f0-1": "period-float", - "f1-2": "current-time" - } - }, - - "(method 11 sync-info-paused)": { - "vars": { - "v1-0": "period", - "f1-0": "period-float", - "f0-1": "max-phase", - "f2-2": "current-time" - } - }, - - "(method 9 sync-info)": { - "args": ["obj", "max-val"], - "vars": { - "v1-0": "period", - "f0-1": "period-float", - "f1-2": "current-time" - } - }, - - "(method 13 sync-info)": { - "args": ["obj"], - "vars": { - "v1-0": "period", - "f1-0": "period-float", - "f2-2": "current-time", - "f0-1": "max-val", - "f0-2": "phase-out-of-2" - } - }, - - "(method 13 sync-info-eased)": { - "args": ["obj"], - "vars": { - "v1-0": "period", - "f1-0": "period-float", - "f0-1": "max-val", - "f2-2": "current-time", - "f0-2": "current-val", - "v1-2": "in-mirror?", - "f1-4": "tlo", - "f0-7": "eased-phase" - } - }, - - "(method 12 sync-info)": { - "args": ["obj", "max-out-val"], - "vars": { - "v1-0": "period", - "f1-0": "period-float", - "f0-1": "max-val", - "f2-2": "current-time", - "f0-2": "current-val" - } - }, - - "(method 12 sync-info-eased)": { - "args": ["obj", "max-out-val"] - }, - "(method 12 sync-info-paused)": { - "args": ["obj", "max-out-val"] - }, - - "(method 9 delayed-rand-float)": { - "args": ["obj", "min-tim", "max-time", "max-times-two"] - }, - - "(method 10 oscillating-float)": { - "args": ["obj", "target-offset"], - "vars": { "f0-3": "acc" } - }, - - "(method 9 oscillating-float)": { - "args": ["obj", "init-val", "accel", "max-vel", "damping"] - }, - - "(method 9 bouncing-float)": { - "args": [ - "obj", - "init-val", - "max-val", - "min-val", - "elast", - "accel", - "max-vel", - "damping" - ] - }, - - "(method 9 delayed-rand-vector)": { - "args": ["obj", "min-time", "max-time", "xz-range", "y-range"] - }, - - "(method 9 oscillating-vector)": { - "args": ["obj", "init-val", "accel", "max-vel", "damping"] - }, - - "(method 10 oscillating-vector)": { - "args": ["obj", "target-offset"], - "vars": { "f0-2": "vel" } - }, - - "(method 9 trajectory)": { - "args": ["obj", "time", "result"] - }, - - "(method 10 trajectory)": { - "args": ["obj", "time", "result"] - }, - - "(method 11 trajectory)": { - "args": ["obj", "from", "to", "duration", "grav"], - "vars": { "f0-3": "xz-vel" } - }, - - "(method 12 trajectory)": { - "args": ["obj", "from", "to", "xz-vel", "grav"], - "vars": { "f0-1": "duration" } - }, - - "(method 13 trajectory)": { - "args": ["obj", "from", "to", "y-vel", "grav"] - }, - - "(method 15 trajectory)": { - "vars": { - "s5-0": "prev-pos", - "s4-0": "pos", - "s3-0": "num-segments", - "f0-1": "t-eval" - } - }, - - "set-font-color-alpha": { - "args": ["idx", "alpha"] - }, - - "print-game-text-scaled": { - "args": ["str", "scale", "font-ctxt", "alpha"] - }, - - "print-game-text": { - "args": ["str", "font-ctxt", "alpha", "offset-thing"] - }, - - "display-frame-start": { - "args": ["disp", "new-frame-idx", "odd-even"], - "vars": { - "f30-0": "time-ratio", - "s3-0": "scaled-seconds", - "s3-1": "new-frame" - } - }, - - "display-frame-finish": { - "args": ["disp"], - "vars": { - "s4-0": "this-frame", - "s5-0": "this-calc-buf", - "s3-0": "bucket-idx", - "v1-7": "this-global-buf", - "a0-16": "global-buf", - "v1-19": "calc-current", - "a2-1": "calc-start", - "s4-1": "global-current", - "s5-1": "global-start", - "s3-1": "global-end" - } - }, - - "display-sync": { - "args": ["disp"], - "vars": { - "s4-0": "frame-idx", - "s5-0": "syncv-result", - "s3-0": "dma-buf-to-send", - "a1-4": "next-frame" - } - }, - - "draw-string": { - "args": ["str-in", "context"], - "vars": { - "v1-5": "fw", - "a1-1": "dma-out", - "t2-0": "flags", - "a3-0": "has-flag-size24", - "a3-1": "font-table-12", - "a3-2": "font-table-to-use", - "t0-0": "q-lo-tmpl", - "t1-0": "q-hi-tmpl", - "t3-0": "in-color", - "t3-1": "color-array-prod", - "t4-0": "fw+col", - "t3-2": "q-verts-0p", - "t5-0": "q-verts-1p", - "t3-3": "q-verts-2p", - "t4-1": "q-verts-3p", - "t5-1": "q-verts-1t", - "t5-2": "q-verts-1", - "t3-4": "q-verts-2t", - "t3-5": "q-verts-2", - "t6-0": "q-verts-0t", - "t6-1": "q-verts-0", - "t4-2": "q-verts-3t", - "t4-3": "q-verts-3", - "t3-6": "fw2", - "t4-4": "str-char", - "t5-3": "not-sc-lit1", - "t5-4": "not-sc-~", - "t4-14": "fc-cr", - "r0-0": "r0", - "r0-1": "r0", - "r0-2": "r0", - "r0-3": "r0" - } - }, - - "add-debug-outline-triangle": { - "args":["enable", "bucket", "p0", "p1", "p2", "color"] - }, - - "unpack-comp-rle": { - "args":["out", "in"], - "vars":{ - "v1-2":"current-input", - "a2-0":"repeated-value", - "v1-3":"copy-length", - "a2-1":"src-val" - } - }, - - "(method 16 level)": { - "args":["obj", "vis-info"], - "vars":{ - "a0-1":"cam-leaf-idx", - "v1-1":"curr-vis-str", - "s4-0":"desired-vis-str", - "s4-1":"vis-buffer", - "s3-1":"vis-load-result", - "v1-28":"dest-bits", - "a1-3":"len", - "a0-19":"bsp-bits", - "a1-5":"len-qw", - "s2-0":"lower-flag-bits", - "s1-0":"spad-start", - "s0-0":"spad-end", - "s3-2":"list-len", - "v1-49":"list-qwc", - "v0-1":"result" - } - }, - - "(method 9 merc-fragment)": { - "vars":{ - "s5-0":"fp-data", - "s4-0":"eye-ctrl", - "s3-0":"shader", - "v1-7":"eye-tex-block", - "v1-34":"eye-tex-block-2", - "v1-57":"tex", - "a0-36":"seg" - } - }, - - "(method 9 merc-effect)": { - "vars":{ - "v1-0":"data", - "v1-1":"tex", - "a0-8":"seg", - "s3-0":"frag-idx", - "s2-0":"ctrl-size", - "s1-0":"geo-size", - "s4-0":["geo", "merc-fragment"], - "s5-0":["ctrl", "merc-fragment-control"] - } - }, - - "merc-vu1-add-vu-function": { - "args":["dma", "func", "flush-mode"], - "vars": { - "v1-0":"func-data", - "a3-0":"qwc", - "a1-1":"dst", - "t0-1":"qwc-this-time" - } - }, - - "(method 8 merc-ctrl)": { - "vars": { - "s4-0":"ctrl-mem", - "s3-0":"effect-idx", - "s2-0":["fctrl", "merc-fragment-control"], - "s1-0":"frag-idx", - "v1-35":"effect-mem", - "a0-15":"effect-idx2", - "a1-9":["bctrl", "merc-blend-ctrl"], - "a2-1":"blend-frag-idx" - } - }, - - "(method 9 merc-ctrl)": { - "vars":{ - "v1-3":"seg", - "s5-0":"effect-idx", - "a0-4":"idx-with-bit1", - "a0-7":"this-effect", - "a1-5":"last-effect", - "a2-6":"copy-idx" - } - }, - - "merc-vu1-init-buffer": { - "args":["dma-bucket", "test"], - "vars": { - "gp-0":"bucket", - "s4-0":"dma-buf" - } - }, - - "(method 9 screen-filter)": { - "vars": { - "v1-4":["v1-4", "dma-packet"], - "s5-0":"buf" - } - }, - - "(method 11 fact-info-target)": { - "args":["obj", "kind", "amount", "source-handle"], - "vars":{"f0-29":"buzz-count","f30-0":"eco-lev"} - }, - - "auto-save-init-by-other": { - "args":["desired-mode", "notify-proc", "card-idx", "file-idx"] - }, - - "debug-menu-item-var-make-int": { - "args":["item", "callback", "inc", "has-range", "range-min", "range-max", "hex"] - }, - - "debug-menu-item-var-make-float": { - "args":["item", "callback", "inc", "has-range", "range-min", "range-max", "precision"] - }, - - "(method 0 debug-menu-item-var)": { - "args":["allocation", "type-to-make", "name", "id", "max-width"] - }, - - "debug-menu-context-grab-joypad": { - "args":["menu", "callback-arg", "callback-func"] - }, - - "debug-menu-context-default-selection": { - "args": ["ctxt", "keep-current"], - "vars": { - "s5-0":"menu", - "s4-0":"currently-active" - } - }, - - "debug-menu-rebuild": { - "args":["menu"], - "vars": { - "s4-0":"max-width", - "s5-0":"entry-count", - "s3-0":"iter", - "a0-1":"current-item" - } - }, - - "debug-menu-context-set-root-menu":{ - "args":["context", "menu"], - "vars":{ - "s4-0":"active" - } - }, - - "debug-menu-append-item": { - "args":["menu", "item"], - "vars": { - "gp-0":"context", - "s4-0":"was-active" - } - }, - - "(anon-function 82 default-menu)": { - "vars":{"s4-0":["s4-0", "texture-id"]} - }, - - "process-status-bits": { - "vars":{"s3-0":["proc-draw", "process-drawable"]} - }, - - "(method 29 entity-actor)":{ - "args":["obj", "mode", "expected-type"] - }, - - "(method 13 level-group)":{ - "args":["obj", "mode", "expected-type"] - }, - - "(method 24 entity)": { - "args":["obj", "lev-group", "lev", "aid"], - "vars":{ - "v1-4":"level-link", - "t0-5":"other-prev", - "t1-1":"other-front" - } - }, - - "update-actor-vis-box": { - "args":["proc", "min-pt", "max-pt"], - "vars":{"v1-4":"world-bounds-origin", "f0-0":"radius"} - }, - - "init-entity": { - "args":["proc", "ent"] - }, - - "(method 22 entity-actor)": { - "vars":{ - "s5-0":"entity-type", - "v1-0":"info", - "s4-0":"entity-process" - } - }, - - "(method 18 bsp-header)": { - "vars":{ - "a2-0":"existing-actor-count", - "s4-0":"birth-idx", - "a0-4":"idx-to-birth", - "v1-25":"actor-to-birth", - "a2-5":"existing-amb-count", - "s4-1":"amb-array", - "s3-0":"bsp-ambs", - "a0-10":"amb-to-birth", - "s4-2":"cams" - } - }, - - "(code falling beach-rock)": { - "vars": { - "gp-2": ["gp-2", "handle"], - "s5-1": ["s5-1", "handle"] - } - }, - - "draw-percent-bar": { - "vars": { - "v1-3": ["v1-3", "dma-packet"] - } - }, - - "(dummy-17 progress)": { - "vars": { - "v1-20": ["v1-20", "dma-packet"], - "v1-81": ["v1-81", "dma-packet"] - } - }, - - "make-current-level-available-to-progress": { - "vars": { - "a0-0": "cur-lev", - "v1-7": "lev-idx" - } - }, - - "make-levels-with-tasks-available-to-progress": { - "vars": { - "gp-0": "i", - "s4-0": "ii", - "s5-0": "tasks" - } - }, - - "get-next-task-up": { - "args": ["cur-task-idx", "lev-idx"] - }, - "get-next-task-down": { - "args": ["cur-task-idx", "lev-idx"] - }, - "get-next-level-up": { - "args": ["lev-idx"] - }, - "get-next-level-down": { - "args": ["lev-idx"] - }, - - "calculate-completion": { - "args": ["the-progress"], - "vars": { - "sv-40":"total-cells", - "sv-48":"total-buzzers", - "sv-56":"total-orbs", - "sv-16":"current-cells", - "sv-24":"current-buzzers", - "sv-32":"current-orbs" - } - }, - - "(method 48 progress)": { - "args": ["obj", "screen", "option"] - }, - - "activate-progress": { - "args": ["creator", "screen"] - }, - - "(method 23 progress)": { - "args": ["obj", "aspect", "video-mode"] - }, - - "(method 35 progress)": { - "vars": { - "s4-0": ["s4-0", "game-text-id"] - } - }, - - "(method 43 progress)": { - "vars": { - "s4-0": ["s4-0", "game-text-id"] - } - }, - - "(method 38 progress)": { - "vars": { - "a1-1": ["a1-1", "game-text-id"] - } - }, - - "(post progress-debug)": { - "vars": { - "v1-7": ["v1-7", "dma-packet"], - "v1-16": ["v1-16", "dma-packet"], - "v1-25": ["v1-25", "dma-packet"], - "v1-34": ["v1-34", "dma-packet"] - } - }, - - "voicebox-track": { - "vars": { - "a0-1": "target" - } - }, - - "citb-drop-plat-drop-children": { - "vars": { - "v1-4": ["v1-4", "handle"] - } - }, - - "(code plunger-lurker-plunge)": { - "vars": { - "gp-1": ["gp-1", "handle"], - "s5-0": ["s5-0", "othercam"] - } - }, - - "flying-lurker-play-intro": { - "vars": { - "gp-1": ["gp-1", "handle"] - } - }, - - "(code flying-lurker-start)": { - "vars": { - "v1-9": ["v1-9", "float"] - } - }, - - "(code flying-lurker-fly)": { - "vars": { - "v1-42": ["v1-42", "float"] - } - }, - - "(method 14 level-group)": { - "vars": { - "s1-1": ["s1-1", "process-drawable"] - } - }, - - "level-hint-displayed?": { - "vars": { - "a0-1": ["a0-1", "level-hint"] - } - }, - - "level-hint-init-by-other": { - "vars": { - "a0-6": ["a0-6", "string"] - } - }, - - "(method 27 entity-ambient)": { - "vars": { - "s5-0": ["s5-0", "symbol"] - } - }, - - "upload-vis-bits": { - "vars": { - "v1-2":"qwc", - "a0-1":["lev-vis-bits", "(pointer uint128)"], - "a1-1":["all-vis", "(pointer uint128)"], - "a2-2":["spad-vis", "(pointer uint128)"] - } - }, - - "(event be-clone process-taskable)": { - "vars": { - "v0-0": ["v0-0", "shadow-geo"] - } - }, - - "(event idle process-taskable)": { - "vars": { - "v0-0": ["v0-0", "symbol"] - } - }, - - "(method 9 load-dir-art-group)":{ - "args":["obj", "art-name", "do-reload", "heap", "version"] - }, - - "(method 15 hud-money)": { - "vars": { - "v1-8": ["v1-8", "dma-packet"] - } - }, - - "(method 15 hud-money-all)": { - "vars": { - "v1-32": ["v1-32", "dma-packet"] - } - }, - - "anim-tester-get-playing-item": { - "vars": { - "v0-0": ["v0-0", "anim-test-seq-item"] - } - }, - - "aaaaaaaaaaaaaaaaaaaaaaa": {} -} diff --git a/decompiler/data/game_text.cpp b/decompiler/data/game_text.cpp index 6f94a8fb5b..74f5c6dfb2 100644 --- a/decompiler/data/game_text.cpp +++ b/decompiler/data/game_text.cpp @@ -24,6 +24,10 @@ DecompilerLabel get_label(ObjectFileData& data, const LinkedWord& word) { return data.linked_data.labels.at(word.label_id()); } +static const std::unordered_map> sTextCreditsIDs = { + {GameTextVersion::JAK1_V1, {0xb00, 0xf00}}, + {GameTextVersion::JAK1_V2, {0xb00, 0xf00}}}; + } // namespace /* @@ -133,7 +137,7 @@ GameTextResult process_game_text(ObjectFileData& data, GameTextVersion version) } std::string write_game_text( - const Config& /*cfg*/, + GameTextVersion version, const std::unordered_map>& data) { // first sort languages: std::vector languages; @@ -144,9 +148,30 @@ std::string write_game_text( // build map std::map> text_by_id; + std::map> text_by_id_credits; + std::map> text_by_id_post_credits; + int last_credits_id = 0; + int credits_begin = 0; + int credits_end = 0; + if (auto it = sTextCreditsIDs.find(version); it != sTextCreditsIDs.end()) { + credits_begin = it->second.first; + credits_end = it->second.second; + } for (auto lang : languages) { - for (auto& text : data.at(lang)) { - text_by_id[text.first].push_back(text.second); + for (auto& [id, text] : data.at(lang)) { + if (id < credits_begin) { + // comes before credits + text_by_id[id].push_back(text); + } else if (id < credits_end) { + // comes before credits + text_by_id_credits[id].push_back(text); + if (id > last_credits_id) { + last_credits_id = id; + } + } else { + // comes after credits + text_by_id_post_credits[id].push_back(text); + } } } @@ -165,6 +190,48 @@ std::string write_game_text( } result += ")\n\n"; } + if (text_by_id_credits.size() > 0) { + result += fmt::format("(credits :begin #x{:04x}\n ", sTextCreditsIDs.at(version).first); + + for (int id = sTextCreditsIDs.at(version).first; id <= last_credits_id; ++id) { + // check if the line exists first + if (text_by_id_credits.count(id) == 0) { + result += fmt::format("\"\"\n "); + continue; + } + // check if all lines are identical first + bool diff_langs = false; + bool is_first = true; + std::string last_lang; + for (auto& y : text_by_id_credits.at(id)) { + if (is_first) { + is_first = false; + } else if (last_lang != y) { + diff_langs = true; + break; + } + last_lang = y; + } + // now write them + if (!diff_langs) { + result += fmt::format("\"{}\"\n ", last_lang); + } else { + result += fmt::format("("); + for (auto& y : text_by_id_credits.at(id)) { + result += fmt::format("\"{}\"\n ", y); + } + result += ")\n "; + } + } + result += ")\n\n"; + } + for (auto& x : text_by_id_post_credits) { + result += fmt::format("(#x{:04x}\n ", x.first); + for (auto& y : x.second) { + result += fmt::format("\"{}\"\n ", y); + } + result += ")\n\n"; + } return result; } diff --git a/decompiler/data/game_text.h b/decompiler/data/game_text.h index 01fc17c234..1d3a1f54b7 100644 --- a/decompiler/data/game_text.h +++ b/decompiler/data/game_text.h @@ -5,7 +5,6 @@ namespace decompiler { struct ObjectFileData; -struct Config; struct GameTextResult { int total_text = 0; @@ -16,6 +15,6 @@ struct GameTextResult { GameTextResult process_game_text(ObjectFileData& data, GameTextVersion version); std::string write_game_text( - const Config& cfg, + GameTextVersion version, const std::unordered_map>& data); } // namespace decompiler diff --git a/decompiler/extractor/main.cpp b/decompiler/extractor/main.cpp index 8698b2b813..0e799cfe9c 100644 --- a/decompiler/extractor/main.cpp +++ b/decompiler/extractor/main.cpp @@ -16,7 +16,8 @@ enum class ExtractorErrorCode { VALIDATION_ELF_MISSING_FROM_DB = 4002, VALIDATION_BAD_ISO_CONTENTS = 4010, VALIDATION_INCORRECT_EXTRACTION_COUNT = 4011, - VALIDATION_BAD_EXTRACTION = 4020 + VALIDATION_BAD_EXTRACTION = 4020, + DECOMPILATION_GENERIC_ERROR = 4030 }; struct ISOMetadata { @@ -31,11 +32,19 @@ struct ISOMetadata { // this will let the installer reject (or gracefully handle) jak2 isos on the jak1 page, etc. // { SERIAL : { ELF_HASH : ISOMetadataDatabase } } -static std::map> isoDatabase{ +static const std::map> isoDatabase{ {"SCUS-97124", {{7280758013604870207U, - {"Jak and Daxter: The Precursor Legacy - Black Label", "NTSC-U", 337, 11363853835861842434U, - "jak1_ntsc_black_label"}}}}}; + {"Jak & Daxter™: The Precursor Legacy (Black Label)", "NTSC-U", 337, 11363853835861842434U, + "jak1_ntsc_black_label"}}}}, + {"SCES-50361", + {{12150718117852276522U, + {"Jak & Daxter™: The Precursor Legacy (PAL)", "PAL", 338, 16850370297611763875U, + "jak1_pal"}}}}, + {"SCPS-15021", + {{16909372048085114219U, + {"ジャックXダクスター ~ 旧世界の遺産", "NTSC-J", 338, 1262350561338887717, + "jak1_jp"}}}}}; void setup_global_decompiler_stuff(std::optional project_path_override) { decompiler::init_opcode_info(); @@ -50,7 +59,7 @@ IsoFile extract_files(std::filesystem::path data_dir_path, auto fp = fopen(data_dir_path.string().c_str(), "rb"); ASSERT_MSG(fp, "failed to open input ISO file\n"); - IsoFile iso = unpack_iso_files(fp, extracted_iso_path, true); + IsoFile iso = unpack_iso_files(fp, extracted_iso_path, true, true); fclose(fp); return iso; } @@ -108,8 +117,7 @@ ExtractorErrorCode validate(const IsoFile& iso_file, } // Find the game in our tracking database - auto dbEntry = isoDatabase.find(serial.value()); - if (dbEntry == isoDatabase.end()) { + if (auto dbEntry = isoDatabase.find(serial.value()); dbEntry == isoDatabase.end()) { fmt::print(stderr, "ERROR: Serial '{}' not found in the validation database\n", serial.value()); if (!error_code.has_value()) { error_code = std::make_optional(ExtractorErrorCode::VALIDATION_SERIAL_MISSING_FROM_DB); @@ -176,7 +184,7 @@ ExtractorErrorCode validate(const IsoFile& iso_file, } else { fmt::print(stderr, "Validation has failed to match with expected values, see the above errors for " - "specific. This may be an error in the validation database!\n"); + "specifics. This may be an error in the validation database!\n"); } return error_code.value(); } @@ -242,7 +250,7 @@ void decompile(std::filesystem::path jak1_input_files) { // grab all the object files we need (just text) for (const auto& obj_name : config.object_file_names) { if (obj_name.length() > 3 && obj_name.substr(obj_name.length() - 3) == "TXT") { - // ends in DGO, it's a level + // ends in TXT objs.push_back((jak1_input_files / obj_name).string()); } } @@ -349,6 +357,12 @@ int main(int argc, char** argv) { fmt::print("Running all steps, no flags provided!\n"); flag_runall = true; } + if (flag_runall) { + flag_extract = true; + flag_decompile = true; + flag_compile = true; + flag_play = true; + } // todo: print revision here. if (!project_path_override.empty()) { @@ -357,8 +371,7 @@ int main(int argc, char** argv) { setup_global_decompiler_stuff(std::nullopt); } - std::filesystem::path path_to_iso_files = file_util::get_jak_project_dir() / "iso_data" / "jak1"; - std::filesystem::create_directories(path_to_iso_files); + std::filesystem::path path_to_iso_files = file_util::get_jak_project_dir() / "iso_data" / "_temp"; // make sure the input looks right if (!std::filesystem::exists(data_dir_path)) { @@ -366,7 +379,13 @@ int main(int argc, char** argv) { return 1; } - if (flag_runall || flag_extract) { + if (flag_extract) { + if (data_dir_path != path_to_iso_files) { + // in case input is also output, don't just wipe everything (weird) + std::filesystem::remove_all(path_to_iso_files); + } + std::filesystem::create_directories(path_to_iso_files); + if (std::filesystem::is_regular_file(data_dir_path)) { // it's a file, treat it as an ISO auto iso_file = extract_files(data_dir_path, path_to_iso_files); @@ -387,15 +406,20 @@ int main(int argc, char** argv) { } } - if (flag_runall || flag_decompile) { - decompile(path_to_iso_files); + if (flag_decompile) { + try { + decompile(path_to_iso_files); + } catch (std::exception& e) { + lg::error("Error during decompile: {}", e.what()); + return static_cast(ExtractorErrorCode::DECOMPILATION_GENERIC_ERROR); + } } - if (flag_runall || flag_compile) { + if (flag_compile) { compile(path_to_iso_files); } - if (flag_runall || flag_play) { + if (flag_play) { launch_game(); } diff --git a/game/assets/game_text.gp b/game/assets/game_text.gp index 30511466b0..ec8a8531f8 100644 --- a/game/assets/game_text.gp +++ b/game/assets/game_text.gp @@ -4,10 +4,13 @@ ;; you can find the game-text-version parsing in .cpp and an enum in goal-lib.gc (text - (jak1-v1 "assets/game_text.txt") ;; this is the decompiler-generated file! + ;; NOTE : we compile using the fixed v2 encoding because it's what we use. + (jak1-v2 "assets/game_text.txt") ;; this is the decompiler-generated file! + ;; "patch" files so we can fix some errors and perhaps maintain consistency + (jak1-v2 "game/assets/jak1/text/text_patch_ja.gs") ;; add custom files down here - (jak1-v1 "game/assets/jak1/text/game_text_en.gs") - (jak1-v1 "game/assets/jak1/text/game_text_ja.gs") + (jak1-v2 "game/assets/jak1/text/game_text_en.gs") + (jak1-v2 "game/assets/jak1/text/game_text_ja.gs") ) diff --git a/game/assets/jak1/patches/0common.xd3 b/game/assets/jak1/patches/0common.xd3 new file mode 100644 index 0000000000..380f9dcb6e Binary files /dev/null and b/game/assets/jak1/patches/0common.xd3 differ diff --git a/game/assets/jak1/patches/1common.xd3 b/game/assets/jak1/patches/1common.xd3 new file mode 100644 index 0000000000..f040c5feb4 Binary files /dev/null and b/game/assets/jak1/patches/1common.xd3 differ diff --git a/game/assets/jak1/patches/2common.xd3 b/game/assets/jak1/patches/2common.xd3 new file mode 100644 index 0000000000..cfff284d43 Binary files /dev/null and b/game/assets/jak1/patches/2common.xd3 differ diff --git a/game/assets/jak1/patches/3common.xd3 b/game/assets/jak1/patches/3common.xd3 new file mode 100644 index 0000000000..d778ffca75 Binary files /dev/null and b/game/assets/jak1/patches/3common.xd3 differ diff --git a/game/assets/jak1/patches/4common.xd3 b/game/assets/jak1/patches/4common.xd3 new file mode 100644 index 0000000000..0c6333c677 Binary files /dev/null and b/game/assets/jak1/patches/4common.xd3 differ diff --git a/game/assets/jak1/patches/5common.xd3 b/game/assets/jak1/patches/5common.xd3 new file mode 100644 index 0000000000..acda99d385 Binary files /dev/null and b/game/assets/jak1/patches/5common.xd3 differ diff --git a/game/assets/jak1/patches/6common.xd3 b/game/assets/jak1/patches/6common.xd3 new file mode 100644 index 0000000000..123fce695f Binary files /dev/null and b/game/assets/jak1/patches/6common.xd3 differ diff --git a/game/assets/jak1/text/game_text_ja.gs b/game/assets/jak1/text/game_text_ja.gs index 25ae462180..5c8d0456b6 100644 --- a/game/assets/jak1/text/game_text_ja.gs +++ b/game/assets/jak1/text/game_text_ja.gs @@ -1,13 +1,6 @@ (group-name "common") (language-id 5) -;; ----------------- -;; fixes - - ; 闇の眷者 ゴルとマイアの城 -(#x122 "闇の賢者 ゴルとマイアの城") -(#x801 "闇の賢者 ゴルとマイアの城") - ;; ----------------- ;; progress menu (insanity) diff --git a/game/assets/jak1/text/text_patch_ja.gs b/game/assets/jak1/text/text_patch_ja.gs new file mode 100644 index 0000000000..3fafe0fb97 --- /dev/null +++ b/game/assets/jak1/text/text_patch_ja.gs @@ -0,0 +1,9 @@ +(group-name "common") +(language-id 5) + +;; ----------------- +;; fixes + + ; 闇の眷者 ゴルとマイアの城 +(#x122 "闇の賢者 ゴルとマイアの城") +(#x801 "闇の賢者 ゴルとマイアの城") diff --git a/game/main.cpp b/game/main.cpp index 744f239bb5..0ca9d8aad2 100644 --- a/game/main.cpp +++ b/game/main.cpp @@ -81,7 +81,7 @@ int main(int argc, char** argv) { #ifndef __AVX2__ if (get_cpu_info().has_avx2) { - printf("Note: your CPU supports AVX2, but this build was not compiled with AVX2 support\n"); + // printf("Note: your CPU supports AVX2, but this build was not compiled with AVX2 support\n"); get_cpu_info().has_avx2 = false; } #endif diff --git a/goal_src/build/all_objs_jak1_jp.json b/goal_src/build/all_objs_jak1_jp.json new file mode 100644 index 0000000000..a32e40c804 --- /dev/null +++ b/goal_src/build/all_objs_jak1_jp.json @@ -0,0 +1,2132 @@ +[["gcommon", "gcommon", 3, ["KERNEL"], ""], +["gstring-h", "gstring-h", 3, ["KERNEL"], ""], +["gkernel-h", "gkernel-h", 3, ["KERNEL"], ""], +["gkernel", "gkernel", 3, ["KERNEL"], ""], +["pskernel", "pskernel", 3, ["KERNEL"], ""], +["gstring", "gstring", 3, ["KERNEL"], ""], +["dgo-h", "dgo-h", 3, ["KERNEL"], ""], +["gstate", "gstate", 3, ["KERNEL"], ""], +["types-h", "types-h", 3, ["ENGINE", "GAME"], ""], +["vu1-macros", "vu1-macros", 3, ["ENGINE", "GAME"], ""], +["math", "math", 3, ["ENGINE", "GAME"], ""], +["vector-h", "vector-h", 3, ["ENGINE", "GAME"], ""], +["gravity-h", "gravity-h", 3, ["ENGINE", "GAME"], ""], +["bounding-box-h", "bounding-box-h", 3, ["ENGINE", "GAME"], ""], +["matrix-h", "matrix-h", 3, ["ENGINE", "GAME"], ""], +["quaternion-h", "quaternion-h", 3, ["ENGINE", "GAME"], ""], +["euler-h", "euler-h", 3, ["ENGINE", "GAME"], ""], +["transform-h", "transform-h", 3, ["ENGINE", "GAME"], ""], +["geometry-h", "geometry-h", 3, ["ENGINE", "GAME"], ""], +["trigonometry-h", "trigonometry-h", 3, ["ENGINE", "GAME"], ""], +["transformq-h", "transformq-h", 3, ["ENGINE", "GAME"], ""], +["bounding-box", "bounding-box", 3, ["ENGINE", "GAME"], ""], +["matrix", "matrix", 3, ["ENGINE", "GAME"], ""], +["transform", "transform", 3, ["ENGINE", "GAME"], ""], +["quaternion", "quaternion", 3, ["ENGINE", "GAME"], ""], +["euler", "euler", 3, ["ENGINE", "GAME"], ""], +["geometry", "geometry", 3, ["ENGINE", "GAME"], ""], +["trigonometry", "trigonometry", 3, ["ENGINE", "GAME"], ""], +["gsound-h", "gsound-h", 3, ["ENGINE", "GAME"], ""], +["timer-h", "timer-h", 3, ["ENGINE", "GAME"], ""], +["timer", "timer", 3, ["ENGINE", "GAME"], ""], +["vif-h", "vif-h", 3, ["ENGINE", "GAME"], ""], +["dma-h", "dma-h", 3, ["ENGINE", "GAME"], ""], +["video-h", "video-h", 3, ["ENGINE", "GAME"], ""], +["vu1-user-h", "vu1-user-h", 3, ["ENGINE", "GAME"], ""], +["dma", "dma", 3, ["ENGINE", "GAME"], ""], +["dma-buffer", "dma-buffer", 3, ["ENGINE", "GAME"], ""], +["dma-bucket", "dma-bucket", 3, ["ENGINE", "GAME"], ""], +["dma-disasm", "dma-disasm", 3, ["ENGINE", "GAME"], ""], +["pad", "pad", 3, ["ENGINE", "GAME"], ""], +["gs", "gs", 3, ["ENGINE", "GAME"], ""], +["display-h", "display-h", 3, ["ENGINE", "GAME"], ""], +["vector", "vector", 3, ["ENGINE", "GAME"], ""], +["file-io", "file-io", 3, ["ENGINE", "GAME"], ""], +["loader-h", "loader-h", 3, ["ENGINE", "GAME"], ""], +["texture-h", "texture-h", 3, ["ENGINE", "GAME"], ""], +["level-h", "level-h", 3, ["ENGINE", "GAME"], ""], +["math-camera-h", "math-camera-h", 3, ["ENGINE", "GAME"], ""], +["math-camera", "math-camera", 3, ["ENGINE", "GAME"], ""], +["font-h", "font-h", 3, ["ENGINE", "GAME"], ""], +["decomp-h", "decomp-h", 3, ["ENGINE", "GAME"], ""], +["display", "display", 3, ["ENGINE", "GAME"], ""], +["connect", "connect", 3, ["ENGINE", "GAME"], ""], +["text-h", "text-h", 3, ["ENGINE", "GAME"], ""], +["settings-h", "settings-h", 3, ["ENGINE", "GAME"], ""], +["capture", "capture", 3, ["ENGINE", "GAME"], ""], +["memory-usage-h", "memory-usage-h", 3, ["ENGINE", "GAME"], ""], +["texture", "texture", 3, ["ENGINE", "GAME"], ""], +["main-h", "main-h", 3, ["ENGINE", "GAME"], ""], +["mspace-h", "mspace-h", 3, ["ENGINE", "GAME"], ""], +["drawable-h", "drawable-h", 3, ["ENGINE", "GAME"], ""], +["drawable-group-h", "drawable-group-h", 3, ["ENGINE", "GAME"], ""], +["drawable-inline-array-h", "drawable-inline-array-h", 3, ["ENGINE", "GAME"], ""], +["draw-node-h", "draw-node-h", 3, ["ENGINE", "GAME"], ""], +["drawable-tree-h", "drawable-tree-h", 3, ["ENGINE", "GAME"], ""], +["drawable-actor-h", "drawable-actor-h", 3, ["ENGINE", "GAME"], ""], +["drawable-ambient-h", "drawable-ambient-h", 3, ["ENGINE", "GAME"], ""], +["game-task-h", "game-task-h", 3, ["ENGINE", "GAME"], ""], +["hint-control-h", "hint-control-h", 3, ["ENGINE", "GAME"], ""], +["generic-h", "generic-h", 3, ["ENGINE", "GAME"], ""], +["lights-h", "lights-h", 3, ["ENGINE", "GAME"], ""], +["ocean-h", "ocean-h", 3, ["ENGINE", "GAME"], ""], +["ocean-trans-tables", "ocean-trans-tables", 3, ["ENGINE", "GAME"], ""], +["ocean-tables", "ocean-tables", 3, ["ENGINE", "GAME"], ""], +["ocean-frames", "ocean-frames", 3, ["ENGINE", "GAME"], ""], +["sky-h", "sky-h", 3, ["ENGINE", "GAME"], ""], +["mood-h", "mood-h", 3, ["ENGINE", "GAME"], ""], +["time-of-day-h", "time-of-day-h", 3, ["ENGINE", "GAME"], ""], +["art-h", "art-h", 3, ["ENGINE", "GAME"], ""], +["generic-vu1-h", "generic-vu1-h", 3, ["ENGINE", "GAME"], ""], +["merc-h", "merc-h", 3, ["ENGINE", "GAME"], ""], +["generic-merc-h", "generic-merc-h", 3, ["ENGINE", "GAME"], ""], +["generic-tie-h", "generic-tie-h", 3, ["ENGINE", "GAME"], ""], +["generic-work-h", "generic-work-h", 3, ["ENGINE", "GAME"], ""], +["shadow-cpu-h", "shadow-cpu-h", 3, ["ENGINE", "GAME"], ""], +["shadow-vu1-h", "shadow-vu1-h", 3, ["ENGINE", "GAME"], ""], +["memcard-h", "memcard-h", 3, ["ENGINE", "GAME"], ""], +["game-info-h", "game-info-h", 3, ["ENGINE", "GAME"], ""], +["wind-h", "wind-h", 3, ["ENGINE", "GAME"], ""], +["prototype-h", "prototype-h", 3, ["ENGINE", "GAME"], ""], +["joint-h", "joint-h", 3, ["ENGINE", "GAME"], ""], +["bones-h", "bones-h", 3, ["ENGINE", "GAME"], ""], +["engines", "engines", 3, ["ENGINE", "GAME"], ""], +["res-h", "res-h", 3, ["ENGINE", "GAME"], ""], +["res", "res", 3, ["ENGINE", "GAME"], ""], +["lights", "lights", 3, ["ENGINE", "GAME"], ""], +["dynamics-h", "dynamics-h", 3, ["ENGINE", "GAME"], ""], +["surface-h", "surface-h", 3, ["ENGINE", "GAME"], ""], +["pat-h", "pat-h", 3, ["ENGINE", "GAME"], ""], +["fact-h", "fact-h", 3, ["ENGINE", "GAME"], ""], +["aligner-h", "aligner-h", 3, ["ENGINE", "GAME"], ""], +["game-h", "game-h", 3, ["ENGINE", "GAME"], ""], +["generic-obs-h", "generic-obs-h", 3, ["ENGINE", "GAME"], ""], +["pov-camera-h", "pov-camera-h", 3, ["ENGINE", "GAME"], ""], +["sync-info-h", "sync-info-h", 3, ["ENGINE", "GAME"], ""], +["smush-control-h", "smush-control-h", 3, ["ENGINE", "GAME"], ""], +["trajectory-h", "trajectory-h", 3, ["ENGINE", "GAME"], ""], +["debug-h", "debug-h", 3, ["ENGINE", "GAME"], ""], +["joint-mod-h", "joint-mod-h", 3, ["ENGINE", "GAME"], ""], +["collide-func-h", "collide-func-h", 3, ["ENGINE", "GAME"], ""], +["collide-mesh-h", "collide-mesh-h", 3, ["ENGINE", "GAME"], ""], +["collide-shape-h", "collide-shape-h", 3, ["ENGINE", "GAME"], ""], +["collide-target-h", "collide-target-h", 3, ["ENGINE", "GAME"], ""], +["collide-touch-h", "collide-touch-h", 3, ["ENGINE", "GAME"], ""], +["collide-edge-grab-h", "collide-edge-grab-h", 3, ["ENGINE", "GAME"], ""], +["process-drawable-h", "process-drawable-h", 3, ["ENGINE", "GAME"], ""], +["effect-control-h", "effect-control-h", 3, ["ENGINE", "GAME"], ""], +["collide-frag-h", "collide-frag-h", 3, ["ENGINE", "GAME"], ""], +["projectiles-h", "projectiles-h", 3, ["ENGINE", "GAME"], ""], +["target-h", "target-h", 3, ["ENGINE", "GAME"], ""], +["depth-cue-h", "depth-cue-h", 3, ["ENGINE", "GAME"], ""], +["stats-h", "stats-h", 3, ["ENGINE", "GAME"], ""], +["bsp-h", "bsp-h", 3, ["ENGINE", "GAME"], ""], +["collide-cache-h", "collide-cache-h", 3, ["ENGINE", "GAME"], ""], +["collide-h", "collide-h", 3, ["ENGINE", "GAME"], ""], +["shrubbery-h", "shrubbery-h", 3, ["ENGINE", "GAME"], ""], +["tie-h", "tie-h", 3, ["ENGINE", "GAME"], ""], +["tfrag-h", "tfrag-h", 3, ["ENGINE", "GAME"], ""], +["background-h", "background-h", 3, ["ENGINE", "GAME"], ""], +["subdivide-h", "subdivide-h", 3, ["ENGINE", "GAME"], ""], +["entity-h", "entity-h", 3, ["ENGINE", "GAME"], ""], +["sprite-h", "sprite-h", 3, ["ENGINE", "GAME"], ""], +["shadow-h", "shadow-h", 3, ["ENGINE", "GAME"], ""], +["eye-h", "eye-h", 3, ["ENGINE", "GAME"], ""], +["sparticle-launcher-h", "sparticle-launcher-h", 3, ["ENGINE", "GAME"], ""], +["sparticle-h", "sparticle-h", 3, ["ENGINE", "GAME"], ""], +["actor-link-h", "actor-link-h", 3, ["ENGINE", "GAME"], ""], +["camera-h", "camera-h", 3, ["ENGINE", "GAME"], ""], +["cam-debug-h", "cam-debug-h", 3, ["ENGINE", "GAME"], ""], +["cam-interface-h", "cam-interface-h", 3, ["ENGINE", "GAME"], ""], +["cam-update-h", "cam-update-h", 3, ["ENGINE", "GAME"], ""], +["assert-h", "assert-h", 3, ["ENGINE", "GAME"], ""], +["hud-h", "hud-h", 3, ["ENGINE", "GAME"], ""], +["progress-h", "progress-h", 3, ["ENGINE", "GAME"], ""], +["rpc-h", "rpc-h", 3, ["ENGINE", "GAME"], ""], +["path-h", "path-h", 3, ["ENGINE", "GAME"], ""], +["navigate-h", "navigate-h", 3, ["ENGINE", "GAME"], ""], +["load-dgo", "load-dgo", 3, ["ENGINE", "GAME"], ""], +["ramdisk", "ramdisk", 3, ["ENGINE", "GAME"], ""], +["gsound", "gsound", 3, ["ENGINE", "GAME"], ""], +["transformq", "transformq", 3, ["ENGINE", "GAME"], ""], +["collide-func", "collide-func", 3, ["ENGINE", "GAME"], ""], +["joint", "joint", 3, ["ENGINE", "GAME"], ""], +["cylinder", "cylinder", 3, ["ENGINE", "GAME"], ""], +["wind", "wind", 3, ["ENGINE", "GAME"], ""], +["bsp", "bsp", 3, ["ENGINE", "GAME"], ""], +["subdivide", "subdivide", 3, ["ENGINE", "GAME"], ""], +["sprite", "sprite", 3, ["ENGINE", "GAME"], ""], +["sprite-distort", "sprite-distort", 3, ["ENGINE", "GAME"], ""], +["debug-sphere", "debug-sphere", 3, ["ENGINE", "GAME"], ""], +["debug", "debug", 3, ["ENGINE", "GAME"], ""], +["merc-vu1", "merc-vu1", 3, ["ENGINE", "GAME"], ""], +["merc-blend-shape", "merc-blend-shape", 3, ["ENGINE", "GAME"], ""], +["merc", "merc", 3, ["ENGINE", "GAME"], ""], +["ripple", "ripple", 3, ["ENGINE", "GAME"], ""], +["bones", "bones", 3, ["ENGINE", "GAME"], ""], +["generic-vu0", "generic-vu0", 3, ["ENGINE", "GAME"], ""], +["generic", "generic", 3, ["ENGINE", "GAME"], ""], +["generic-vu1", "generic-vu1", 3, ["ENGINE", "GAME"], ""], +["generic-effect", "generic-effect", 3, ["ENGINE", "GAME"], ""], +["generic-merc", "generic-merc", 3, ["ENGINE", "GAME"], ""], +["generic-tie", "generic-tie", 3, ["ENGINE", "GAME"], ""], +["shadow-cpu", "shadow-cpu", 3, ["ENGINE", "GAME"], ""], +["shadow-vu1", "shadow-vu1", 3, ["ENGINE", "GAME"], ""], +["depth-cue", "depth-cue", 3, ["ENGINE", "GAME"], ""], +["font", "font", 3, ["ENGINE", "GAME"], ""], +["decomp", "decomp", 3, ["ENGINE", "GAME"], ""], +["background", "background", 3, ["ENGINE", "GAME"], ""], +["draw-node", "draw-node", 3, ["ENGINE", "GAME"], ""], +["shrubbery", "shrubbery", 3, ["ENGINE", "GAME"], ""], +["shrub-work", "shrub-work", 3, ["ENGINE", "GAME"], ""], +["tfrag-near", "tfrag-near", 3, ["ENGINE", "GAME"], ""], +["tfrag", "tfrag", 3, ["ENGINE", "GAME"], ""], +["tfrag-methods", "tfrag-methods", 3, ["ENGINE", "GAME"], ""], +["tfrag-work", "tfrag-work", 3, ["ENGINE", "GAME"], ""], +["tie", "tie", 3, ["ENGINE", "GAME"], ""], +["tie-near", "tie-near", 3, ["ENGINE", "GAME"], ""], +["tie-work", "tie-work", 3, ["ENGINE", "GAME"], ""], +["tie-methods", "tie-methods", 3, ["ENGINE", "GAME"], ""], +["sync-info", "sync-info", 3, ["ENGINE", "GAME"], ""], +["trajectory", "trajectory", 3, ["ENGINE", "GAME"], ""], +["sparticle-launcher", "sparticle-launcher", 3, ["ENGINE", "GAME"], ""], +["sparticle", "sparticle", 3, ["ENGINE", "GAME"], ""], +["entity-table", "entity-table", 3, ["ENGINE", "GAME"], ""], +["loader", "loader", 3, ["ENGINE", "GAME"], ""], +["task-control-h", "task-control-h", 3, ["ENGINE", "GAME"], ""], +["game-info", "game-info", 3, ["ENGINE", "GAME"], ""], +["game-save", "game-save", 3, ["ENGINE", "GAME"], ""], +["settings", "settings", 3, ["ENGINE", "GAME"], ""], +["mood-tables", "mood-tables", 3, ["ENGINE", "GAME"], ""], +["mood", "mood", 3, ["ENGINE", "GAME"], ""], +["weather-part", "weather-part", 3, ["ENGINE", "GAME"], ""], +["time-of-day", "time-of-day", 3, ["ENGINE", "GAME"], ""], +["sky-utils", "sky-utils", 3, ["ENGINE", "GAME"], ""], +["sky", "sky", 3, ["ENGINE", "GAME"], ""], +["sky-tng", "sky-tng", 3, ["ENGINE", "GAME"], ""], +["load-boundary-h", "load-boundary-h", 3, ["ENGINE", "GAME"], ""], +["load-boundary", "load-boundary", 3, ["ENGINE", "GAME"], ""], +["load-boundary-data", "load-boundary-data", 3, ["ENGINE", "GAME"], ""], +["level-info", "level-info", 3, ["ENGINE", "GAME"], ""], +["level", "level", 3, ["ENGINE", "GAME"], ""], +["text", "text", 3, ["ENGINE", "GAME"], ""], +["collide-probe", "collide-probe", 3, ["ENGINE", "GAME"], ""], +["collide-frag", "collide-frag", 3, ["ENGINE", "GAME"], ""], +["collide-mesh", "collide-mesh", 3, ["ENGINE", "GAME"], ""], +["collide-touch", "collide-touch", 3, ["ENGINE", "GAME"], ""], +["collide-edge-grab", "collide-edge-grab", 3, ["ENGINE", "GAME"], ""], +["collide-shape", "collide-shape", 3, ["ENGINE", "GAME"], ""], +["collide-shape-rider", "collide-shape-rider", 3, ["ENGINE", "GAME"], ""], +["collide", "collide", 3, ["ENGINE", "GAME"], ""], +["collide-planes", "collide-planes", 3, ["ENGINE", "GAME"], ""], +["merc-death", "merc-death", 3, ["ENGINE", "GAME"], ""], +["water-h", "water-h", 3, ["ENGINE", "GAME"], ""], +["camera", "camera", 3, ["ENGINE", "GAME"], ""], +["cam-interface", "cam-interface", 3, ["ENGINE", "GAME"], ""], +["cam-master", "cam-master", 3, ["ENGINE", "GAME"], ""], +["cam-states", "cam-states", 3, ["ENGINE", "GAME"], ""], +["cam-states-dbg", "cam-states-dbg", 3, ["ENGINE", "GAME"], ""], +["cam-combiner", "cam-combiner", 3, ["ENGINE", "GAME"], ""], +["cam-update", "cam-update", 3, ["ENGINE", "GAME"], ""], +["vol-h", "vol-h", 3, ["ENGINE", "GAME"], ""], +["cam-layout", "cam-layout", 3, ["ENGINE", "GAME"], ""], +["cam-debug", "cam-debug", 3, ["ENGINE", "GAME"], ""], +["cam-start", "cam-start", 3, ["ENGINE", "GAME"], ""], +["process-drawable", "process-drawable", 3, ["ENGINE", "GAME"], ""], +["hint-control", "hint-control", 3, ["ENGINE", "GAME"], ""], +["ambient", "ambient", 3, ["ENGINE", "GAME"], ""], +["assert", "assert", 3, ["ENGINE", "GAME"], ""], +["generic-obs", "generic-obs", 3, ["ENGINE", "GAME"], ""], +["target-util", "target-util", 3, ["ENGINE", "GAME"], ""], +["target-part", "target-part", 3, ["ENGINE", "GAME"], ""], +["collide-reaction-target", "collide-reaction-target", 3, ["ENGINE", "GAME"], ""], +["logic-target", "logic-target", 3, ["ENGINE", "GAME"], ""], +["sidekick", "sidekick", 3, ["ENGINE", "GAME"], ""], +["voicebox", "voicebox", 3, ["ENGINE", "GAME"], ""], +["target-handler", "target-handler", 3, ["ENGINE", "GAME"], ""], +["target", "target", 3, ["ENGINE", "GAME"], ""], +["target2", "target2", 3, ["ENGINE", "GAME"], ""], +["target-death", "target-death", 3, ["ENGINE", "GAME"], ""], +["menu", "menu", 3, ["ENGINE", "GAME"], ""], +["drawable", "drawable", 3, ["ENGINE", "GAME"], ""], +["drawable-group", "drawable-group", 3, ["ENGINE", "GAME"], ""], +["drawable-inline-array", "drawable-inline-array", 3, ["ENGINE", "GAME"], ""], +["drawable-tree", "drawable-tree", 3, ["ENGINE", "GAME"], ""], +["prototype", "prototype", 3, ["ENGINE", "GAME"], ""], +["main-collide", "main-collide", 3, ["ENGINE", "GAME"], ""], +["video", "video", 3, ["ENGINE", "GAME"], ""], +["main", "main", 3, ["ENGINE", "GAME"], ""], +["collide-cache", "collide-cache", 3, ["ENGINE", "GAME"], ""], +["relocate", "relocate", 3, ["ENGINE", "GAME"], ""], +["memory-usage", "memory-usage", 3, ["ENGINE", "GAME"], ""], +["entity", "entity", 3, ["ENGINE", "GAME"], ""], +["path", "path", 3, ["ENGINE", "GAME"], ""], +["vol", "vol", 3, ["ENGINE", "GAME"], ""], +["navigate", "navigate", 3, ["ENGINE", "GAME"], ""], +["aligner", "aligner", 3, ["ENGINE", "GAME"], ""], +["effect-control", "effect-control", 3, ["ENGINE", "GAME"], ""], +["water", "water", 3, ["ENGINE", "GAME"], ""], +["collectables-part", "collectables-part", 3, ["ENGINE", "GAME"], ""], +["collectables", "collectables", 3, ["ENGINE", "GAME"], ""], +["task-control", "task-control", 3, ["ENGINE", "GAME"], ""], +["process-taskable", "process-taskable", 3, ["ENGINE", "GAME"], ""], +["pov-camera", "pov-camera", 3, ["ENGINE", "GAME"], ""], +["powerups", "powerups", 3, ["ENGINE", "GAME"], ""], +["crates", "crates", 3, ["ENGINE", "GAME"], ""], +["hud", "hud", 3, ["ENGINE", "GAME"], ""], +["hud-classes", "hud-classes", 3, ["ENGINE", "GAME"], ""], +["progress-static", "progress-static", 3, ["ENGINE", "GAME"], ""], +["progress-part", "progress-part", 3, ["ENGINE", "GAME"], ""], +["progress-draw", "progress-draw", 3, ["ENGINE", "GAME"], ""], +["progress", "progress", 3, ["ENGINE", "GAME"], ""], +["credits", "credits", 3, ["ENGINE", "GAME"], ""], +["projectiles", "projectiles", 3, ["ENGINE", "GAME"], ""], +["ocean", "ocean", 3, ["ENGINE", "GAME"], ""], +["ocean-vu0", "ocean-vu0", 3, ["ENGINE", "GAME"], ""], +["ocean-texture", "ocean-texture", 3, ["ENGINE", "GAME"], ""], +["ocean-mid", "ocean-mid", 3, ["ENGINE", "GAME"], ""], +["ocean-transition", "ocean-transition", 3, ["ENGINE", "GAME"], ""], +["ocean-near", "ocean-near", 3, ["ENGINE", "GAME"], ""], +["shadow", "shadow", 3, ["ENGINE", "GAME"], ""], +["eye", "eye", 3, ["ENGINE", "GAME"], ""], +["glist-h", "glist-h", 3, ["ENGINE", "GAME"], ""], +["glist", "glist", 3, ["ENGINE", "GAME"], ""], +["anim-tester", "anim-tester", 3, ["ENGINE", "GAME"], ""], +["viewer", "viewer", 3, ["ENGINE", "GAME"], ""], +["part-tester", "part-tester", 3, ["ENGINE", "GAME"], ""], +["default-menu", "default-menu", 3, ["ENGINE", "GAME"], ""], +["dir-tpages", "dir-tpages", 4, ["GAME", "ART"], ""], +["tpage-463", "tpage-463", 4, ["GAME", "ART"], ""], +["tpage-2", "tpage-2", 4, ["GAME", "ART"], ""], +["tpage-880", "tpage-880", 4, ["GAME", "ART"], ""], +["tpage-256", "tpage-256", 4, ["GAME", "ART"], ""], +["tpage-1278", "tpage-1278", 4, ["GAME", "ART"], ""], +["texture-upload", "texture-upload", 3, ["GAME", "ART"], ""], +["tpage-1032", "tpage-1032", 4, ["GAME", "ART"], ""], +["tpage-62", "tpage-62", 4, ["GAME", "ART"], ""], +["tpage-1532", "tpage-1532", 4, ["GAME", "ART"], ""], +["fuel-cell-ag", "fuel-cell", 4, ["GAME", "ART"], ""], +["money-ag", "money", 4, ["GAME", "ART"], ""], +["buzzer-ag", "buzzer", 4, ["GAME", "ART"], ""], +["ecovalve-ag", "ecovalve", 4, ["GAME", "ART"], ""], +["ecovalve-ag", "ecovalve", 4, ["BEA"], ""], +["ecovalve-ag", "ecovalve", 4, ["CIT"], ""], +["ecovalve-ag", "ecovalve", 4, ["FIN"], ""], +["ecovalve-ag", "ecovalve", 4, ["JUB", "JUN"], ""], +["ecovalve-ag", "ecovalve", 4, ["FIC", "OGR"], ""], +["ecovalve-ag", "ecovalve", 4, ["LAV"], ""], +["ecovalve-ag", "ecovalve", 4, ["MAI"], ""], +["ecovalve-ag", "ecovalve", 4, ["ROB"], ""], +["ecovalve-ag", "ecovalve", 4, ["ROL"], ""], +["ecovalve-ag", "ecovalve", 4, ["SNO"], ""], +["ecovalve-ag", "ecovalve", 4, ["SUB"], ""], +["ecovalve-ag", "ecovalve", 4, ["SWA"], ""], +["ecovalve-ag", "ecovalve", 4, ["TRA"], ""], +["crate-ag", "crate", 4, ["GAME", "ART"], ""], +["speaker-ag", "speaker", 4, ["GAME", "ART"], ""], +["fuelcell-naked-ag", "fuelcell-naked", 4, ["GAME", "ART"], ""], +["eichar-ag", "eichar", 4, ["GAME", "ART"], ""], +["sidekick-ag", "sidekick", 4, ["GAME", "ART"], ""], +["deathcam-ag", "deathcam", 4, ["GAME", "ART"], ""], +["game-cnt", "game-cnt", 4, ["GAME", "ART"], ""], +["rigid-body-h", "rigid-body-h", 3, ["GAME", "COMMON", "L1"], ""], +["water-anim", "water-anim", 3, ["GAME", "COMMON", "L1", "WATER-AN"], ""], +["dark-eco-pool", "dark-eco-pool", 3, ["GAME", "COMMON", "L1"], ""], +["rigid-body", "rigid-body", 3, ["GAME", "COMMON", "L1"], ""], +["nav-enemy-h", "nav-enemy-h", 3, ["GAME", "COMMON", "L1"], ""], +["nav-enemy", "nav-enemy", 3, ["GAME", "COMMON", "L1"], ""], +["baseplat", "baseplat", 3, ["GAME", "COMMON", "L1"], ""], +["basebutton", "basebutton", 3, ["GAME", "COMMON", "L1"], ""], +["tippy", "tippy", 3, ["GAME", "COMMON", "L1"], ""], +["joint-exploder", "joint-exploder", 3, ["GAME", "COMMON", "L1"], ""], +["babak", "babak", 3, ["GAME", "COMMON", "L1"], ""], +["sharkey", "sharkey", 3, ["GAME", "COMMON", "L1"], ""], +["orb-cache", "orb-cache", 3, ["GAME", "COMMON", "L1"], ""], +["plat", "plat", 3, ["GAME", "COMMON", "L1"], ""], +["plat-button", "plat-button", 3, ["GAME", "COMMON", "L1"], ""], +["plat-eco", "plat-eco", 3, ["GAME", "COMMON", "L1"], ""], +["ropebridge", "ropebridge", 3, ["GAME", "COMMON", "L1"], ""], +["ticky", "ticky", 3, ["GAME", "COMMON", "L1"], ""], +["mistycannon", "mistycannon", 3, ["BEA", "L1", "MIS"], ""], +["babak-with-cannon", "babak-with-cannon", 3, ["BEA", "L1", "MIS"], ""], +["air-h", "air-h", 3, ["BEA", "L1"], ""], +["air", "air", 3, ["BEA", "L1"], ""], +["wobbler", "wobbler", 3, ["BEA", "L1"], ""], +["twister", "twister", 3, ["BEA", "L1"], ""], +["beach-obs", "beach-obs", 3, ["BEA", "L1"], ""], +["bird-lady", "bird-lady", 3, ["BEA", "L1"], ""], +["bird-lady-beach", "bird-lady-beach", 3, ["BEA", "L1"], ""], +["mayor", "mayor", 3, ["BEA", "L1"], ""], +["sculptor", "sculptor", 3, ["BEA", "L1"], ""], +["pelican", "pelican", 3, ["BEA", "L1"], ""], +["lurkerworm", "lurkerworm", 3, ["BEA", "L1"], ""], +["lurkercrab", "lurkercrab", 3, ["BEA", "L1"], ""], +["lurkerpuppy", "lurkerpuppy", 3, ["BEA", "L1"], ""], +["beach-rocks", "beach-rocks", 3, ["BEA", "L1"], ""], +["seagull", "seagull", 3, ["BEA", "L1"], ""], +["beach-part", "beach-part", 3, ["BEA", "L1"], ""], +["tpage-212", "tpage-212", 4, ["BEA"], ""], +["tpage-214", "tpage-214", 4, ["BEA"], ""], +["tpage-213", "tpage-213", 4, ["BEA"], ""], +["tpage-215", "tpage-215", 4, ["BEA"], ""], +["babak-ag", "babak", 4, ["BEA", "CIT", "JUN", "FIC", "MIS", "ROB", "ROL", "SNO", "SUB", "SUN", "SWA"], ""], +["barrel-ag", "barrel", 4, ["BEA"], ""], +["barrel-ag", "barrel", 4, ["VI2"], ""], +["beachcam-ag", "beachcam", 4, ["BEA"], ""], +["bird-lady-ag", "bird-lady", 4, ["BEA"], ""], +["bird-lady-beach-ag", "bird-lady-beach", 4, ["BEA"], ""], +["bladeassm-ag", "bladeassm", 4, ["BEA"], ""], +["ecoventrock-ag", "ecoventrock", 4, ["BEA"], ""], +["flutflut-ag", "flutflut", 4, ["BEA"], ""], +["flutflutegg-ag", "flutflutegg", 4, ["BEA"], ""], +["grottopole-ag", "grottopole", 4, ["BEA"], ""], +["harvester-ag", "harvester", 4, ["BEA"], ""], +["kickrock-ag", "kickrock", 4, ["BEA"], ""], +["lrocklrg-ag", "lrocklrg", 4, ["BEA"], ""], +["lurkercrab-ag", "lurkercrab", 4, ["BEA"], ""], +["lurkerpuppy-ag", "lurkerpuppy", 4, ["BEA"], ""], +["lurkerworm-ag", "lurkerworm", 4, ["BEA"], ""], +["mayor-ag", "mayor", 4, ["BEA"], ""], +["mistycannon-ag", "mistycannon", 4, ["BEA", "MIS"], ""], +["orb-cache-top-ag", "orb-cache-top", 4, ["BEA"], ""], +["orb-cache-top-ag", "orb-cache-top", 4, ["CIT"], ""], +["orb-cache-top-ag", "orb-cache-top", 4, ["JUN"], ""], +["orb-cache-top-ag", "orb-cache-top", 4, ["MIS"], ""], +["orb-cache-top-ag", "orb-cache-top", 4, ["SNO"], ""], +["orb-cache-top-ag", "orb-cache-top", 4, ["SUN"], ""], +["orb-cache-top-ag", "orb-cache-top", 4, ["VI1"], ""], +["orb-cache-top-ag", "orb-cache-top", 4, ["VI2"], ""], +["pelican-ag", "pelican", 4, ["BEA"], ""], +["sack-ag", "sack", 4, ["BEA"], ""], +["sack-ag", "sack", 4, ["MIS"], ""], +["sculptor-ag", "sculptor", 4, ["BEA"], ""], +["sculptor-muse-ag", "sculptor-muse", 4, ["BEA"], ""], +["seagull-ag", "seagull", 4, ["BEA"], ""], +["sharkey-ag", "sharkey", 4, ["BEA", "TRA", "VI2"], ""], +["sharkey-ag", "sharkey", 4, ["JUN", "MIS"], ""], +["sharkey-ag", "sharkey", 4, ["SWA"], ""], +["sharkey-ag", "sharkey", 4, ["VI1"], ""], +["windmill-one-ag", "windmill-one", 4, ["BEA"], ""], +["beach-vis", "beach-vis", 4, ["BEA"], ""], +["villagep-obs", "villagep-obs", 3, ["CIT", "L1", "VI1", "VI2", "VI3", "VILLAGEP"], ""], +["oracle", "oracle", 3, ["CIT", "L1", "VI1", "VI2", "VI3", "VILLAGEP"], ""], +["battlecontroller", "battlecontroller", 3, ["CIT", "L1", "MIS", "SWA"], ""], +["citadel-part", "citadel-part", 3, ["CIT", "L1"], ""], +["citadel-obs", "citadel-obs", 3, ["CIT"], ""], +["citadel-obs-OLD", "citadel-obs", 3, ["L1"], ""], +["citb-plat", "citb-plat", 3, ["CIT", "L1"], ""], +["citadel-sages", "citadel-sages", 3, ["CIT"], ""], +["citadel-sages-OLD", "citadel-sages", 3, ["L1"], ""], +["snow-bunny", "snow-bunny", 3, ["CIT", "L1", "SNO"], ""], +["citb-bunny", "citb-bunny", 3, ["CIT", "L1"], ""], +["citb-drop-plat", "citb-drop-plat", 3, ["CIT", "L1"], ""], +["assistant-citadel", "assistant-citadel", 3, ["CIT", "L1"], ""], +["tpage-1415", "tpage-1415", 4, ["CIT"], ""], +["tpage-1417", "tpage-1417", 4, ["CIT"], ""], +["tpage-1416", "tpage-1416", 4, ["CIT"], ""], +["tpage-1414", "tpage-1414", 4, ["CIT"], ""], +["assistant-lavatube-end-ag", "assistant-lavatube-end", 4, ["CIT"], ""], +["bluesage-ag", "bluesage", 4, ["CIT"], ""], +["citadelcam-ag", "citadelcam", 4, ["CIT"], ""], +["citb-arm-ag", "citb-arm", 4, ["CIT"], ""], +["citb-arm-shoulder-ag", "citb-arm-shoulder", 4, ["CIT"], ""], +["citb-bunny-ag", "citb-bunny", 4, ["CIT"], ""], +["citb-button-ag", "citb-button", 4, ["CIT"], ""], +["citb-chain-plat-ag", "citb-chain-plat", 4, ["CIT"], ""], +["citb-chains-ag", "citb-chains", 4, ["CIT"], ""], +["citb-coil-ag", "citb-coil", 4, ["CIT"], ""], +["citb-disc-ag", "citb-disc", 4, ["CIT"], ""], +["citb-donut-ag", "citb-donut", 4, ["CIT"], ""], +["citb-drop-plat-ag", "citb-drop-plat", 4, ["CIT"], ""], +["citb-exit-plat-ag", "citb-exit-plat", 4, ["CIT"], ""], +["citb-firehose-ag", "citb-firehose", 4, ["CIT"], ""], +["citb-generator-ag", "citb-generator", 4, ["CIT"], ""], +["citb-hose-ag", "citb-hose", 4, ["CIT"], ""], +["citb-iris-door-ag", "citb-iris-door", 4, ["CIT"], ""], +["citb-launcher-ag", "citb-launcher", 4, ["CIT"], ""], +["citb-robotboss-ag", "citb-robotboss", 4, ["CIT"], ""], +["citb-rotatebox-ag", "citb-rotatebox", 4, ["CIT"], ""], +["citb-sagecage-ag", "citb-sagecage", 4, ["CIT"], ""], +["citb-stopbox-ag", "citb-stopbox", 4, ["CIT"], ""], +["evilbro-citadel-ag", "evilbro-citadel", 4, ["CIT"], ""], +["evilsis-citadel-ag", "evilsis-citadel", 4, ["CIT"], ""], +["green-sagecage-ag", "green-sagecage", 4, ["CIT", "FIN"], ""], +["plat-citb-ag", "plat-citb", 4, ["CIT"], ""], +["plat-eco-citb-ag", "plat-eco-citb", 4, ["CIT"], ""], +["redsage-ag", "redsage", 4, ["CIT"], ""], +["warp-gate-switch-ag", "warp-gate-switch", 4, ["CIT"], ""], +["warp-gate-switch-ag", "warp-gate-switch", 4, ["TRA"], ""], +["warp-gate-switch-ag", "warp-gate-switch", 4, ["VI1", "VI3"], ""], +["warp-gate-switch-ag", "warp-gate-switch", 4, ["VI2"], ""], +["warpgate-ag", "warpgate", 4, ["CIT", "TRA", "VI1", "VI2", "VI3"], ""], +["yellowsage-ag", "yellowsage", 4, ["CIT"], ""], +["citadel-vis", "citadel-vis", 4, ["CIT"], ""], +["darkcave-obs", "darkcave-obs", 3, ["DAR", "L1"], ""], +["tpage-1306", "tpage-1306", 4, ["DAR"], ""], +["tpage-1307", "tpage-1307", 4, ["DAR"], ""], +["tpage-1305", "tpage-1305", 4, ["DAR"], ""], +["tpage-1304", "tpage-1304", 4, ["DAR"], ""], +["tpage-1352", "tpage-1352", 4, ["DAR"], ""], +["baby-spider-ag", "baby-spider", 4, ["DAR"], ""], +["baby-spider-ag", "baby-spider", 4, ["MAI"], ""], +["baby-spider-ag", "baby-spider", 4, ["ROB"], ""], +["cavecrystal-ag", "cavecrystal", 4, ["DAR"], ""], +["caveelevator-ag", "caveelevator", 4, ["DAR", "ROB"], ""], +["cavespatula-darkcave-ag", "cavespatula-darkcave", 4, ["DAR"], ""], +["cavetrapdoor-ag", "cavetrapdoor", 4, ["DAR"], ""], +["cavetrapdoor-ag", "cavetrapdoor", 4, ["MAI"], ""], +["cavetrapdoor-ag", "cavetrapdoor", 4, ["ROB"], ""], +["dark-crystal-ag", "dark-crystal", 4, ["DAR", "MAI"], ""], +["mother-spider-ag", "mother-spider", 4, ["DAR", "MAI"], ""], +["spider-egg-ag", "spider-egg", 4, ["DAR", "MAI"], ""], +["spider-egg-ag", "spider-egg", 4, ["ROB"], ""], +["water-anim-darkcave-ag", "water-anim-darkcave", 4, ["DAR"], ""], +["darkcave-vis", "darkcave-vis", 4, ["DAR"], ""], +["demo-obs", "demo-obs", 3, ["DEM", "L1"], ""], +["tpage-1485", "tpage-1485", 4, ["DEM", "L1"], ""], +["tpage-1486", "tpage-1486", 4, ["DEM", "L1"], ""], +["tpage-1487", "tpage-1487", 4, ["DEM", "L1"], ""], +["tpage-1599", "tpage-1599", 4, ["DEM", "L1"], ""], +["tpage-1600", "tpage-1600", 4, ["DEM", "L1"], ""], +["tpage-1601", "tpage-1601", 4, ["DEM", "L1"], ""], +["tpage-1602", "tpage-1602", 4, ["DEM", "L1"], ""], +["tpage-1603", "tpage-1603", 4, ["DEM", "L1"], ""], +["tpage-1604", "tpage-1604", 4, ["DEM", "L1"], ""], +["tpage-1605", "tpage-1605", 4, ["DEM", "L1"], ""], +["tpage-1606", "tpage-1606", 4, ["DEM", "L1"], ""], +["tpage-1607", "tpage-1607", 4, ["DEM", "L1"], ""], +["static-screen", "static-screen", 3, ["DEM", "L1", "TIT"], ""], +["tpage-1480", "tpage-1480", 4, ["DEM"], ""], +["tpage-1479", "tpage-1479", 4, ["DEM"], ""], +["demo-vis", "demo-vis", 4, ["DEM"], ""], +["robotboss-h", "robotboss-h", 3, ["FIN", "L1"], ""], +["robotboss-part", "robotboss-part", 3, ["FIN", "L1"], ""], +["sage-finalboss-part", "sage-finalboss-part", 3, ["FIN", "L1"], ""], +["light-eco", "light-eco", 3, ["FIN", "L1"], ""], +["robotboss-weapon", "robotboss-weapon", 3, ["FIN", "L1"], ""], +["robotboss-misc", "robotboss-misc", 3, ["FIN", "L1"], ""], +["green-eco-lurker", "green-eco-lurker", 3, ["FIN", "L1"], ""], +["robotboss", "robotboss", 3, ["FIN", "L1"], ""], +["final-door", "final-door", 3, ["FIN", "L1"], ""], +["sage-finalboss", "sage-finalboss", 3, ["FIN", "L1"], ""], +["tpage-1419", "tpage-1419", 4, ["FIN"], ""], +["tpage-1420", "tpage-1420", 4, ["FIN"], ""], +["tpage-634", "tpage-634", 4, ["FIN"], ""], +["tpage-1418", "tpage-1418", 4, ["FIN"], ""], +["tpage-545", "tpage-545", 4, ["FIN"], ""], +["darkecobomb-ag", "darkecobomb", 4, ["FIN"], ""], +["ecoclaw-ag", "ecoclaw", 4, ["FIN"], ""], +["finalbosscam-ag", "finalbosscam", 4, ["FIN"], ""], +["green-eco-lurker-ag", "green-eco-lurker", 4, ["FIN"], ""], +["greenshot-ag", "greenshot", 4, ["FIN"], ""], +["jak-white-ag", "jak-white", 4, ["FIN"], ""], +["light-eco-ag", "light-eco", 4, ["FIN"], ""], +["plat-eco-finalboss-ag", "plat-eco-finalboss", 4, ["FIN"], ""], +["power-left-ag", "power-left", 4, ["FIN"], ""], +["power-right-ag", "power-right", 4, ["FIN"], ""], +["powercellalt-ag", "powercellalt", 4, ["FIN"], ""], +["redring-ag", "redring", 4, ["FIN"], ""], +["robotboss-ag", "robotboss", 4, ["FIN"], ""], +["robotboss-blueeco-ag", "robotboss-blueeco", 4, ["FIN"], ""], +["robotboss-cinematic-ag", "robotboss-cinematic", 4, ["FIN"], ""], +["robotboss-redeco-ag", "robotboss-redeco", 4, ["FIN"], ""], +["robotboss-yelloweco-ag", "robotboss-yelloweco", 4, ["FIN"], ""], +["silodoor-ag", "silodoor", 4, ["FIN"], ""], +["water-anim-finalboss-ag", "water-anim-finalboss", 4, ["FIN"], ""], +["finalboss-vis", "finalboss-vis", 4, ["FIN"], ""], +["evilbro", "evilbro", 3, ["INT", "L1"], ""], +["tpage-1455", "tpage-1455", 4, ["INT"], ""], +["tpage-1457", "tpage-1457", 4, ["INT"], ""], +["tpage-1456", "tpage-1456", 4, ["INT"], ""], +["tpage-1454", "tpage-1454", 4, ["INT"], ""], +["evilbro-ag", "evilbro", 4, ["INT"], ""], +["evilsis-ag", "evilsis", 4, ["INT"], ""], +["intro-vis", "intro-vis", 4, ["INT"], ""], +["jungleb-obs", "jungleb-obs", 3, ["JUB", "L1"], ""], +["plat-flip", "plat-flip", 3, ["JUB", "L1"], ""], +["plant-boss-main+0-ag", "plant-boss-main+0", 4, ["JUB", "L1"], ""], +["aphid", "aphid", 3, ["JUB", "L1"], ""], +["plant-boss", "plant-boss", 3, ["JUB", "L1"], ""], +["tpage-485", "tpage-485", 4, ["JUB"], ""], +["tpage-510", "tpage-510", 4, ["JUB"], ""], +["tpage-507", "tpage-507", 4, ["JUB"], ""], +["tpage-966", "tpage-966", 4, ["JUB"], ""], +["aphid-lurker-ag", "aphid-lurker", 4, ["JUB"], ""], +["darkvine-ag", "darkvine", 4, ["JUB"], ""], +["darkvine-ag", "darkvine", 4, ["JUN"], ""], +["eggtop-ag", "eggtop", 4, ["JUB"], ""], +["jng-iris-door-ag", "jng-iris-door", 4, ["JUB"], ""], +["jng-iris-door-ag", "jng-iris-door", 4, ["TRA"], ""], +["plant-boss-ag", "plant-boss", 4, ["JUB"], ""], +["plat-flip-ag", "plat-flip", 4, ["JUB"], ""], +["plat-jungleb-ag", "plat-jungleb", 4, ["JUB"], ""], +["jungleb-vis", "jungleb-vis", 4, ["JUB"], ""], +["eichar-fish+0-ag", "eichar-fish+0", 4, ["JUN"], ""], +["eichar-fish+0-ag", "eichar-fish+0", 4, ["JUNGLE"], ""], +["eichar-fish+0-ag", "eichar-fish+0", 4, ["L1"], ""], +["jungle-elevator", "jungle-elevator", 3, ["JUN", "JUNGLE", "L1"], ""], +["bouncer", "bouncer", 3, ["JUN", "JUNGLE", "L1"], ""], +["hopper", "hopper", 3, ["JUN", "JUNGLE", "L1"], ""], +["junglesnake", "junglesnake", 3, ["JUN", "JUNGLE", "L1"], ""], +["darkvine", "darkvine", 3, ["JUN", "JUNGLE", "L1"], ""], +["jungle-obs", "jungle-obs", 3, ["JUN", "JUNGLE", "L1"], ""], +["jungle-mirrors", "jungle-mirrors", 3, ["JUN", "JUNGLE", "L1"], ""], +["junglefish", "junglefish", 3, ["JUN", "JUNGLE", "L1"], ""], +["fisher", "fisher", 3, ["JUN", "JUNGLE", "L1"], ""], +["jungle-part", "jungle-part", 3, ["JUN", "JUNGLE", "L1"], ""], +["launcherdoor", "launcherdoor", 3, ["JUN", "JUNGLE", "L1", "MAI", "MAINCAVE", "SUN", "SUNKEN"], ""], +["tpage-385", "tpage-385", 4, ["JUN"], ""], +["tpage-531", "tpage-531", 4, ["JUN"], ""], +["tpage-386", "tpage-386", 4, ["JUN"], ""], +["tpage-388", "tpage-388", 4, ["JUN"], ""], +["tpage-765", "tpage-765", 4, ["JUN"], ""], +["accordian-ag", "accordian", 4, ["JUN"], ""], +["bounceytarp-ag", "bounceytarp", 4, ["JUN"], ""], +["catch-fisha-ag", "catch-fisha", 4, ["JUN"], ""], +["catch-fishb-ag", "catch-fishb", 4, ["JUN"], ""], +["catch-fishc-ag", "catch-fishc", 4, ["JUN"], ""], +["fish-net-ag", "fish-net", 4, ["JUN"], ""], +["fisher-ag", "fisher", 4, ["JUN"], ""], +["hopper-ag", "hopper", 4, ["JUN"], ""], +["junglecam-ag", "junglecam", 4, ["JUN"], ""], +["junglefish-ag", "junglefish", 4, ["JUN"], ""], +["junglesnake-ag", "junglesnake", 4, ["JUN"], ""], +["launcherdoor-ag", "launcherdoor", 4, ["JUN"], ""], +["launcherdoor-ag", "launcherdoor", 4, ["SUN"], ""], +["logtrap-ag", "logtrap", 4, ["JUN"], ""], +["lurkerm-piston-ag", "lurkerm-piston", 4, ["JUN"], ""], +["lurkerm-tall-sail-ag", "lurkerm-tall-sail", 4, ["JUN"], ""], +["maindoor-ag", "maindoor", 4, ["JUN"], ""], +["medres-firecanyon-ag", "medres-firecanyon", 4, ["JUN"], ""], +["periscope-ag", "periscope", 4, ["JUN"], ""], +["plat-button-ag", "plat-button", 4, ["JUN"], ""], +["plat-eco-ag", "plat-eco", 4, ["JUN"], ""], +["plat-eco-ag", "plat-eco", 4, ["MIS"], ""], +["plat-eco-ag", "plat-eco", 4, ["ROB"], ""], +["plat-eco-ag", "plat-eco", 4, ["TRA"], ""], +["precurbridge-ag", "precurbridge", 4, ["JUN"], ""], +["reflector-mirror-ag", "reflector-mirror", 4, ["JUN"], ""], +["ropebridge-52-ag", "ropebridge-52", 4, ["JUN"], ""], +["ropebridge-70-ag", "ropebridge-70", 4, ["JUN"], ""], +["sidedoor-ag", "sidedoor", 4, ["JUN"], ""], +["towertop-ag", "towertop", 4, ["JUN"], ""], +["water-anim-jungle-ag", "water-anim-jungle", 4, ["JUN"], ""], +["jungle-vis", "jungle-vis", 4, ["JUN"], ""], +["target-racer-h", "target-racer-h", 3, ["FIC", "LAV", "MIS", "OGR", "ROL"], ""], +["target-racer-h-OLD", "target-racer-h", 3, ["L1", "RACERP"], ""], +["racer-part", "racer-part", 3, ["L1", "FIC", "LAV", "MIS", "OGR", "RACERP", "ROL"], ""], +["racer", "racer", 3, ["L1", "FIC", "LAV", "MIS", "OGR", "RACERP", "ROL"], ""], +["target-racer", "target-racer", 3, ["L1", "FIC", "LAV", "MIS", "OGR", "RACERP", "ROL"], ""], +["racer-states", "racer-states", 3, ["L1", "FIC", "LAV", "MIS", "OGR", "RACERP", "ROL"], ""], +["collide-reaction-racer", "collide-reaction-racer", 3, ["L1", "FIC", "LAV", "MIS", "OGR", "RACERP", "ROL"], ""], +["eichar-racer+0-ag", "eichar-racer+0", 4, ["L1", "FIC", "LAV", "MIS", "OGR", "RACERP", "ROL"], ""], +["tpage-1119", "tpage-1119", 4, ["L1", "FIC", "LAV", "MIS", "OGR", "RACERP", "ROL"], ""], +["blocking-plane", "blocking-plane", 3, ["L1", "FIC", "LAV", "MIS", "OGR", "RACERP", "ROL", "SNO", "SWA"], ""], +["flut-part", "flut-part", 3, ["L1", "SNO", "SWA"], ""], +["flutflut", "flutflut", 3, ["L1", "SNO", "SWA"], ""], +["target-flut", "target-flut", 3, ["L1", "SNO", "SWA"], ""], +["eichar-flut+0-ag", "eichar-flut+0", 4, ["L1", "SNO", "SWA"], ""], +["farmer", "farmer", 3, ["L1", "VI1"], ""], +["explorer", "explorer", 3, ["L1", "VI1"], ""], +["assistant", "assistant", 3, ["L1", "VI1"], ""], +["sage", "sage", 3, ["L1", "VI1"], ""], +["yakow", "yakow", 3, ["VI1"], ""], +["yakow-OLD", "yakow", 3, ["L1"], ""], +["village-obs", "village-obs", 3, ["L1", "VI1"], ""], +["fishermans-boat", "fishermans-boat", 3, ["L1", "VI1"], ""], +["village1-part", "village1-part", 3, ["L1", "VI1"], ""], +["village1-part2", "village1-part2", 3, ["L1", "VI1"], ""], +["sequence-a-village1", "sequence-a-village1", 3, ["L1", "VI1"], ""], +["training-obs", "training-obs", 3, ["L1", "TRA"], ""], +["training-part", "training-part", 3, ["L1", "TRA"], ""], +["misty-obs", "misty-obs", 3, ["L1", "MIS"], ""], +["misty-warehouse", "misty-warehouse", 3, ["L1", "MIS"], ""], +["misty-conveyor", "misty-conveyor", 3, ["L1", "MIS"], ""], +["mud", "mud", 3, ["L1", "MIS"], ""], +["muse", "muse", 3, ["L1", "MIS"], ""], +["bonelurker", "bonelurker", 3, ["L1", "MIS"], ""], +["quicksandlurker", "quicksandlurker", 3, ["L1", "MIS"], ""], +["misty-teetertotter", "misty-teetertotter", 3, ["L1", "MIS"], ""], +["balloonlurker", "balloonlurker", 3, ["L1", "MIS"], ""], +["misty-part", "misty-part", 3, ["L1", "MIS"], ""], +["sidekick-human", "sidekick-human", 3, ["L1", "MIS"], ""], +["firecanyon-part", "firecanyon-part", 3, ["L1", "FIC"], ""], +["assistant-firecanyon", "assistant-firecanyon", 3, ["L1", "FIC"], ""], +["village2-part", "village2-part", 3, ["L1", "VI2"], ""], +["village2-obs", "village2-obs", 3, ["L1", "VI2"], ""], +["village2-part2", "village2-part2", 3, ["L1", "VI2"], ""], +["gambler", "gambler", 3, ["L1", "VI2"], ""], +["warrior", "warrior", 3, ["L1", "VI2"], ""], +["geologist", "geologist", 3, ["L1", "VI2"], ""], +["swamp-blimp", "swamp-blimp", 3, ["L1", "VI2"], ""], +["sage-bluehut", "sage-bluehut", 3, ["L1", "VI2"], ""], +["flutflut-bluehut", "flutflut-bluehut", 3, ["L1", "VI2"], ""], +["assistant-village2", "assistant-village2", 3, ["L1", "VI2"], ""], +["sunken-elevator", "sunken-elevator", 3, ["L1", "VI2"], ""], +["swamp-obs", "swamp-obs", 3, ["L1", "SWA"], ""], +["swamp-bat", "swamp-bat", 3, ["L1", "SWA"], ""], +["swamp-rat", "swamp-rat", 3, ["L1", "SWA"], ""], +["swamp-rat-nest", "swamp-rat-nest", 3, ["L1", "SWA"], ""], +["kermit", "kermit", 3, ["L1", "SWA"], ""], +["swamp-part", "swamp-part", 3, ["L1", "SWA"], ""], +["billy", "billy", 3, ["L1", "SWA"], ""], +["cavecrystal-light", "cavecrystal-light", 3, ["L1", "MAI", "MAINCAVE"], ""], +["maincave-obs", "maincave-obs", 3, ["L1", "MAI", "MAINCAVE"], ""], +["maincave-part", "maincave-part", 3, ["L1", "MAI", "MAINCAVE"], ""], +["spiderwebs", "spiderwebs", 3, ["L1", "MAI", "MAINCAVE"], ""], +["dark-crystal", "dark-crystal", 3, ["L1", "MAI", "MAINCAVE"], ""], +["baby-spider", "baby-spider", 3, ["L1", "MAI", "MAINCAVE"], ""], +["mother-spider-h", "mother-spider-h", 3, ["L1", "MAI", "MAINCAVE"], ""], +["mother-spider-egg", "mother-spider-egg", 3, ["L1", "MAI", "MAINCAVE"], ""], +["mother-spider-proj", "mother-spider-proj", 3, ["L1", "MAI", "MAINCAVE"], ""], +["mother-spider", "mother-spider", 3, ["L1", "MAI", "MAINCAVE"], ""], +["gnawer", "gnawer", 3, ["L1", "MAI", "MAINCAVE"], ""], +["driller-lurker", "driller-lurker", 3, ["L1", "MAI", "MAINCAVE"], ""], +["sunken-part", "sunken-part", 3, ["L1", "SUN", "SUNKEN"], ""], +["sunken-part2", "sunken-part2", 3, ["L1", "SUN", "SUNKEN"], ""], +["sunken-part3", "sunken-part3", 3, ["L1", "SUN", "SUNKEN"], ""], +["sunken-part4", "sunken-part4", 3, ["L1", "SUN", "SUNKEN"], ""], +["sunken-part5", "sunken-part5", 3, ["L1", "SUN", "SUNKEN"], ""], +["target-tube", "target-tube", 3, ["L1", "SUN", "SUNKEN"], ""], +["eichar-tube+0-ag", "eichar-tube+0", 4, ["L1", "SUNKEN"], ""], +["eichar-tube+0-ag", "eichar-tube+0", 4, ["SUN"], ""], +["sunken-obs", "sunken-obs", 3, ["L1", "SUN", "SUNKEN"], ""], +["shover", "shover", 3, ["L1", "SUN", "SUNKEN"], ""], +["square-platform", "square-platform", 3, ["L1", "SUN", "SUNKEN"], ""], +["sun-iris-door", "sun-iris-door", 3, ["L1", "SUN", "SUNKEN"], ""], +["orbit-plat", "orbit-plat", 3, ["L1", "SUN", "SUNKEN"], ""], +["wedge-plats", "wedge-plats", 3, ["L1", "SUN", "SUNKEN"], ""], +["wall-plat", "wall-plat", 3, ["L1", "SUN", "SUNKEN"], ""], +["qbert-plat", "qbert-plat", 3, ["L1", "SUN", "SUNKEN"], ""], +["steam-cap", "steam-cap", 3, ["L1", "SUN", "SUNKEN"], ""], +["sun-exit-chamber", "sun-exit-chamber", 3, ["L1", "SUN", "SUNKEN"], ""], +["floating-launcher", "floating-launcher", 3, ["L1", "SUN", "SUNKEN"], ""], +["sunken-water", "sunken-water", 3, ["L1", "SUN", "SUNKEN"], ""], +["whirlpool", "whirlpool", 3, ["L1", "SUN", "SUNKEN"], ""], +["sunken-pipegame", "sunken-pipegame", 3, ["L1", "SUN", "SUNKEN"], ""], +["bully", "bully", 3, ["L1", "SUN", "SUNKEN"], ""], +["double-lurker", "double-lurker", 3, ["L1", "SUN", "SUNKEN"], ""], +["helix-water", "helix-water", 3, ["L1", "SUN", "SUNKEN"], ""], +["puffer", "puffer", 3, ["L1", "SUN", "SUNKEN"], ""], +["sunken-fish", "sunken-fish", 3, ["L1", "SUN", "SUNKEN"], ""], +["rolling-obs", "rolling-obs", 3, ["L1", "ROL"], ""], +["rolling-lightning-mole", "rolling-lightning-mole", 3, ["L1", "ROL"], ""], +["rolling-robber", "rolling-robber", 3, ["L1", "ROL"], ""], +["rolling-race-ring", "rolling-race-ring", 3, ["L1", "ROL"], ""], +["firecanyon-obs", "firecanyon-obs", 3, ["L1", "FIC", "OGR"], ""], +["ogre-part", "ogre-part", 3, ["L1", "OGR"], ""], +["ogreboss", "ogreboss", 3, ["L1", "OGR"], ""], +["ogre-obs", "ogre-obs", 3, ["L1", "OGR"], ""], +["flying-lurker", "flying-lurker", 3, ["L1", "OGR"], ""], +["village3-part", "village3-part", 3, ["L1", "VI3"], ""], +["village3-obs", "village3-obs", 3, ["L1", "VI3"], ""], +["minecart", "minecart", 3, ["L1", "VI3"], ""], +["miners", "miners", 3, ["L1", "VI3"], ""], +["assistant-village3", "assistant-village3", 3, ["L1", "VI3"], ""], +["sage-village3", "sage-village3", 3, ["L1", "VI3"], ""], +["cave-trap", "cave-trap", 3, ["L1", "ROB"], ""], +["spider-egg", "spider-egg", 3, ["L1", "ROB"], ""], +["robocave-part", "robocave-part", 3, ["L1", "ROB"], ""], +["target-snowball", "target-snowball", 3, ["L1", "SNO"], ""], +["target-ice", "target-ice", 3, ["L1", "SNO"], ""], +["ice-cube", "ice-cube", 3, ["L1", "SNO"], ""], +["snow-ball", "snow-ball", 3, ["L1", "SNO"], ""], +["snow-obs", "snow-obs", 3, ["L1", "SNO"], ""], +["snow-flutflut-obs", "snow-flutflut-obs", 3, ["L1", "SNO"], ""], +["snow-bumper", "snow-bumper", 3, ["L1", "SNO"], ""], +["snow-ram-h", "snow-ram-h", 3, ["L1", "SNO"], ""], +["snow-ram-boss", "snow-ram-boss", 3, ["L1", "SNO"], ""], +["snow-ram", "snow-ram", 3, ["L1", "SNO"], ""], +["snow-part", "snow-part", 3, ["L1", "SNO"], ""], +["yeti", "yeti", 3, ["L1", "SNO"], ""], +["eichar-pole+0-ag", "eichar-pole+0", 4, ["L1"], ""], +["eichar-pole+0-ag", "eichar-pole+0", 4, ["ROB"], ""], +["eichar-pole+0-ag", "eichar-pole+0", 4, ["SNO"], ""], +["eichar-pole+0-ag", "eichar-pole+0", 4, ["SWA"], ""], +["eichar-ice+0-ag", "eichar-ice+0", 4, ["L1", "SNO"], ""], +["lavatube-obs", "lavatube-obs", 3, ["L1", "LAV"], ""], +["lavatube-energy", "lavatube-energy", 3, ["L1", "LAV"], ""], +["lavatube-part", "lavatube-part", 3, ["L1", "LAV"], ""], +["assistant-lavatube", "assistant-lavatube", 3, ["L1", "LAV"], ""], +["tpage-815", "tpage-815", 4, ["FIC"], ""], +["tpage-822", "tpage-822", 4, ["FIC"], ""], +["tpage-854", "tpage-854", 4, ["FIC"], ""], +["tpage-1123", "tpage-1123", 4, ["FIC"], ""], +["assistant-firecanyon-ag", "assistant-firecanyon", 4, ["FIC"], ""], +["balloon-ag", "balloon", 4, ["FIC"], ""], +["crate-darkeco-cluster-ag", "crate-darkeco-cluster", 4, ["FIC"], ""], +["crate-darkeco-cluster-ag", "crate-darkeco-cluster", 4, ["OGR"], ""], +["ef-plane-ag", "ef-plane", 4, ["FIC", "LAV", "OGR", "ROL", "SNO", "SWA"], ""], +["ef-plane-ag", "ef-plane", 4, ["MIS"], ""], +["racer-ag", "racer", 4, ["FIC", "ROL"], ""], +["racer-ag", "racer", 4, ["LAV"], ""], +["racer-ag", "racer", 4, ["MIS"], ""], +["racer-ag", "racer", 4, ["OGR"], ""], +["spike-ag", "spike", 4, ["FIC"], ""], +["firecanyon-vis", "firecanyon-vis", 4, ["FIC"], ""], +["tpage-1338", "tpage-1338", 4, ["LAV"], ""], +["tpage-1340", "tpage-1340", 4, ["LAV"], ""], +["tpage-1339", "tpage-1339", 4, ["LAV"], ""], +["tpage-1337", "tpage-1337", 4, ["LAV"], ""], +["assistant-lavatube-start-ag", "assistant-lavatube-start", 4, ["LAV"], ""], +["chainmine-ag", "chainmine", 4, ["LAV"], ""], +["darkecobarrel-ag", "darkecobarrel", 4, ["LAV"], ""], +["energyarm-ag", "energyarm", 4, ["LAV"], ""], +["energyball-ag", "energyball", 4, ["LAV"], ""], +["energybase-ag", "energybase", 4, ["LAV"], ""], +["energydoor-ag", "energydoor", 4, ["LAV"], ""], +["energyhub-ag", "energyhub", 4, ["LAV"], ""], +["lavaballoon-ag", "lavaballoon", 4, ["LAV"], ""], +["lavabase-ag", "lavabase", 4, ["LAV"], ""], +["lavafall-ag", "lavafall", 4, ["LAV"], ""], +["lavafallsewera-ag", "lavafallsewera", 4, ["LAV"], ""], +["lavafallsewerb-ag", "lavafallsewerb", 4, ["LAV"], ""], +["lavashortcut-ag", "lavashortcut", 4, ["LAV"], ""], +["lavayellowtarp-ag", "lavayellowtarp", 4, ["LAV"], ""], +["water-anim-lavatube-ag", "water-anim-lavatube", 4, ["LAV"], ""], +["lavatube-vis", "lavatube-vis", 4, ["LAV"], ""], +["tpage-1313", "tpage-1313", 4, ["MAI"], ""], +["tpage-1315", "tpage-1315", 4, ["MAI"], ""], +["tpage-1314", "tpage-1314", 4, ["MAI"], ""], +["tpage-1312", "tpage-1312", 4, ["MAI"], ""], +["tpage-767", "tpage-767", 4, ["MAI"], ""], +["driller-lurker-ag", "driller-lurker", 4, ["MAI", "ROB"], ""], +["gnawer-ag", "gnawer", 4, ["MAI"], ""], +["launcherdoor-maincave-ag", "launcherdoor-maincave", 4, ["MAI"], ""], +["maincavecam-ag", "maincavecam", 4, ["MAI"], ""], +["plat-ag", "plat", 4, ["MAI"], ""], +["plat-ag", "plat", 4, ["ROB"], ""], +["spiderwebs-ag", "spiderwebs", 4, ["MAI", "ROB"], ""], +["water-anim-maincave-ag", "water-anim-maincave", 4, ["MAI"], ""], +["water-anim-maincave-water-ag", "water-anim-maincave-water", 4, ["MAI"], ""], +["maincave-vis", "maincave-vis", 4, ["MAI"], ""], +["tpage-516", "tpage-516", 4, ["MIS"], ""], +["tpage-521", "tpage-521", 4, ["MIS"], ""], +["tpage-518", "tpage-518", 4, ["MIS"], ""], +["tpage-520", "tpage-520", 4, ["MIS"], ""], +["balloonlurker-ag", "balloonlurker", 4, ["MIS"], ""], +["boatpaddle-ag", "boatpaddle", 4, ["MIS"], ""], +["bonelurker-ag", "bonelurker", 4, ["MIS"], ""], +["breakaway-left-ag", "breakaway-left", 4, ["MIS"], ""], +["breakaway-mid-ag", "breakaway-mid", 4, ["MIS"], ""], +["breakaway-right-ag", "breakaway-right", 4, ["MIS"], ""], +["darkecocan-ag", "darkecocan", 4, ["MIS"], ""], +["keg-ag", "keg", 4, ["MIS"], ""], +["keg-conveyor-ag", "keg-conveyor", 4, ["MIS"], ""], +["keg-conveyor-paddle-ag", "keg-conveyor-paddle", 4, ["MIS"], ""], +["mis-bone-bridge-ag", "mis-bone-bridge", 4, ["MIS"], ""], +["mis-bone-platform-ag", "mis-bone-platform", 4, ["MIS"], ""], +["mistycam-ag", "mistycam", 4, ["MIS"], ""], +["muse-ag", "muse", 4, ["MIS"], ""], +["quicksandlurker-ag", "quicksandlurker", 4, ["MIS"], ""], +["ropebridge-36-ag", "ropebridge-36", 4, ["MIS"], ""], +["rounddoor-ag", "rounddoor", 4, ["MIS"], ""], +["sidekick-human-ag", "sidekick-human", 4, ["MIS"], ""], +["silostep-ag", "silostep", 4, ["MIS"], ""], +["teetertotter-ag", "teetertotter", 4, ["MIS"], ""], +["water-anim-misty-ag", "water-anim-misty", 4, ["MIS"], ""], +["wheel-ag", "wheel", 4, ["MIS"], ""], +["windturbine-ag", "windturbine", 4, ["MIS"], ""], +["misty-vis", "misty-vis", 4, ["MIS"], ""], +["tpage-875", "tpage-875", 4, ["OGR"], ""], +["tpage-967", "tpage-967", 4, ["OGR"], ""], +["tpage-884", "tpage-884", 4, ["OGR"], ""], +["tpage-1117", "tpage-1117", 4, ["OGR"], ""], +["flying-lurker-ag", "flying-lurker", 4, ["OGR"], ""], +["medres-snow-ag", "medres-snow", 4, ["OGR"], ""], +["ogre-bridge-ag", "ogre-bridge", 4, ["OGR"], ""], +["ogre-bridgeend-ag", "ogre-bridgeend", 4, ["OGR"], ""], +["ogre-isle-ag", "ogre-isle", 4, ["OGR"], ""], +["ogre-step-ag", "ogre-step", 4, ["OGR"], ""], +["ogreboss-ag", "ogreboss", 4, ["OGR"], ""], +["ogrecam-ag", "ogrecam", 4, ["OGR"], ""], +["plunger-lurker-ag", "plunger-lurker", 4, ["OGR"], ""], +["shortcut-boulder-ag", "shortcut-boulder", 4, ["OGR"], ""], +["tntbarrel-ag", "tntbarrel", 4, ["OGR"], ""], +["water-anim-ogre-ag", "water-anim-ogre", 4, ["OGR"], ""], +["ogre-vis", "ogre-vis", 4, ["OGR"], ""], +["tpage-1318", "tpage-1318", 4, ["ROB"], ""], +["tpage-1319", "tpage-1319", 4, ["ROB"], ""], +["tpage-1317", "tpage-1317", 4, ["ROB"], ""], +["tpage-1316", "tpage-1316", 4, ["ROB"], ""], +["cavecrusher-ag", "cavecrusher", 4, ["ROB"], ""], +["cavespatulatwo-ag", "cavespatulatwo", 4, ["ROB"], ""], +["water-anim-robocave-ag", "water-anim-robocave", 4, ["ROB"], ""], +["robocave-vis", "robocave-vis", 4, ["ROB"], ""], +["tpage-923", "tpage-923", 4, ["ROL"], ""], +["tpage-926", "tpage-926", 4, ["ROL"], ""], +["tpage-924", "tpage-924", 4, ["ROL"], ""], +["tpage-925", "tpage-925", 4, ["ROL"], ""], +["tpage-1353", "tpage-1353", 4, ["ROL"], ""], +["dark-plant-ag", "dark-plant", 4, ["ROL"], ""], +["happy-plant-ag", "happy-plant", 4, ["ROL"], ""], +["lightning-mole-ag", "lightning-mole", 4, ["ROL"], ""], +["pusher-ag", "pusher", 4, ["ROL"], ""], +["race-ring-ag", "race-ring", 4, ["ROL"], ""], +["robber-ag", "robber", 4, ["ROL"], ""], +["rolling-start-ag", "rolling-start", 4, ["ROL"], ""], +["rollingcam-ag", "rollingcam", 4, ["ROL"], ""], +["water-anim-rolling-ag", "water-anim-rolling", 4, ["ROL"], ""], +["rolling-vis", "rolling-vis", 4, ["ROL"], ""], +["tpage-710", "tpage-710", 4, ["SNO"], ""], +["tpage-842", "tpage-842", 4, ["SNO"], ""], +["tpage-711", "tpage-711", 4, ["SNO"], ""], +["tpage-712", "tpage-712", 4, ["SNO"], ""], +["flut-saddle-ag", "flut-saddle", 4, ["SNO"], ""], +["flut-saddle-ag", "flut-saddle", 4, ["SWA"], ""], +["flutflut-plat-large-ag", "flutflut-plat-large", 4, ["SNO"], ""], +["flutflut-plat-med-ag", "flutflut-plat-med", 4, ["SNO"], ""], +["flutflut-plat-small-ag", "flutflut-plat-small", 4, ["SNO"], ""], +["ice-cube-ag", "ice-cube", 4, ["SNO"], ""], +["ice-cube-break-ag", "ice-cube-break", 4, ["SNO"], ""], +["ram-ag", "ram", 4, ["SNO"], ""], +["ram-boss-ag", "ram-boss", 4, ["SNO"], ""], +["snow-ball-ag", "snow-ball", 4, ["SNO"], ""], +["snow-bridge-36-ag", "snow-bridge-36", 4, ["SNO"], ""], +["snow-bumper-ag", "snow-bumper", 4, ["SNO"], ""], +["snow-bunny-ag", "snow-bunny", 4, ["SNO"], ""], +["snow-button-ag", "snow-button", 4, ["SNO"], ""], +["snow-eggtop-ag", "snow-eggtop", 4, ["SNO"], ""], +["snow-fort-gate-ag", "snow-fort-gate", 4, ["SNO"], ""], +["snow-gears-ag", "snow-gears", 4, ["SNO"], ""], +["snow-log-ag", "snow-log", 4, ["SNO"], ""], +["snow-spatula-ag", "snow-spatula", 4, ["SNO"], ""], +["snow-switch-ag", "snow-switch", 4, ["SNO"], ""], +["snowcam-ag", "snowcam", 4, ["SNO"], ""], +["snowpusher-ag", "snowpusher", 4, ["SNO"], ""], +["yeti-ag", "yeti", 4, ["SNO"], ""], +["snow-vis", "snow-vis", 4, ["SNO"], ""], +["tpage-163", "tpage-163", 4, ["SUB"], ""], +["tpage-164", "tpage-164", 4, ["SUB"], ""], +["tpage-166", "tpage-166", 4, ["SUB"], ""], +["tpage-162", "tpage-162", 4, ["SUB"], ""], +["tpage-764", "tpage-764", 4, ["SUB"], ""], +["blue-eco-charger-ag", "blue-eco-charger", 4, ["SUB"], ""], +["blue-eco-charger-orb-ag", "blue-eco-charger-orb", 4, ["SUB"], ""], +["bully-ag", "bully", 4, ["SUB", "SUN"], ""], +["floating-launcher-ag", "floating-launcher", 4, ["SUB"], ""], +["helix-button-ag", "helix-button", 4, ["SUB"], ""], +["helix-slide-door-ag", "helix-slide-door", 4, ["SUB"], ""], +["shover-ag", "shover", 4, ["SUB"], ""], +["shover-ag", "shover", 4, ["SUN"], ""], +["steam-cap-ag", "steam-cap", 4, ["SUB"], ""], +["steam-cap-ag", "steam-cap", 4, ["SUN"], ""], +["sunkencam-ag", "sunkencam", 4, ["SUB"], ""], +["sunkencam-ag", "sunkencam", 4, ["SUN"], ""], +["sunkenfisha-ag", "sunkenfisha", 4, ["SUB", "SUN"], ""], +["wall-plat-ag", "wall-plat", 4, ["SUB", "SUN"], ""], +["water-anim-sunken-ag", "water-anim-sunken", 4, ["SUB", "SUN"], ""], +["water-anim-sunken-dark-eco-ag", "water-anim-sunken-dark-eco", 4, ["SUB", "SUN"], ""], +["sunkenb-vis", "sunkenb-vis", 4, ["SUB"], ""], +["tpage-661", "tpage-661", 4, ["SUN"], ""], +["tpage-663", "tpage-663", 4, ["SUN"], ""], +["tpage-714", "tpage-714", 4, ["SUN"], ""], +["tpage-662", "tpage-662", 4, ["SUN"], ""], +["tpage-766", "tpage-766", 4, ["SUN"], ""], +["double-lurker-ag", "double-lurker", 4, ["SUN"], ""], +["double-lurker-top-ag", "double-lurker-top", 4, ["SUN"], ""], +["exit-chamber-ag", "exit-chamber", 4, ["SUN"], ""], +["generic-button-ag", "generic-button", 4, ["SUN"], ""], +["orbit-plat-ag", "orbit-plat", 4, ["SUN"], ""], +["orbit-plat-bottom-ag", "orbit-plat-bottom", 4, ["SUN"], ""], +["plat-sunken-ag", "plat-sunken", 4, ["SUN"], ""], +["puffer-ag", "puffer", 4, ["SUN"], ""], +["qbert-plat-ag", "qbert-plat", 4, ["SUN"], ""], +["qbert-plat-on-ag", "qbert-plat-on", 4, ["SUN"], ""], +["seaweed-ag", "seaweed", 4, ["SUN"], ""], +["side-to-side-plat-ag", "side-to-side-plat", 4, ["SUN"], ""], +["square-platform-ag", "square-platform", 4, ["SUN"], ""], +["sun-iris-door-ag", "sun-iris-door", 4, ["SUN"], ""], +["wedge-plat-ag", "wedge-plat", 4, ["SUN"], ""], +["wedge-plat-outer-ag", "wedge-plat-outer", 4, ["SUN"], ""], +["whirlpool-ag", "whirlpool", 4, ["SUN"], ""], +["sunken-vis", "sunken-vis", 4, ["SUN"], ""], +["tpage-358", "tpage-358", 4, ["SWA"], ""], +["tpage-659", "tpage-659", 4, ["SWA"], ""], +["tpage-629", "tpage-629", 4, ["SWA"], ""], +["tpage-630", "tpage-630", 4, ["SWA"], ""], +["balance-plat-ag", "balance-plat", 4, ["SWA"], ""], +["billy-ag", "billy", 4, ["SWA"], ""], +["billy-sidekick-ag", "billy-sidekick", 4, ["SWA"], ""], +["farthy-snack-ag", "farthy-snack", 4, ["SWA"], ""], +["kermit-ag", "kermit", 4, ["SWA"], ""], +["swamp-bat-ag", "swamp-bat", 4, ["SWA"], ""], +["swamp-rat-ag", "swamp-rat", 4, ["SWA"], ""], +["swamp-rat-nest-ag", "swamp-rat-nest", 4, ["SWA"], ""], +["swamp-rock-ag", "swamp-rock", 4, ["SWA"], ""], +["swamp-spike-ag", "swamp-spike", 4, ["SWA"], ""], +["swampcam-ag", "swampcam", 4, ["SWA"], ""], +["swampcam-ag", "swampcam", 4, ["VI2"], ""], +["tar-plat-ag", "tar-plat", 4, ["SWA"], ""], +["swamp-vis", "swamp-vis", 4, ["SWA"], ""], +["title-obs", "title-obs", 3, ["TIT"], ""], +["tpage-1609", "tpage-1609", 4, ["TIT"], ""], +["tpage-416", "tpage-416", 4, ["TIT"], ""], +["tpage-415", "tpage-415", 4, ["TIT"], ""], +["tpage-397", "tpage-397", 4, ["TIT"], ""], +["tpage-1499", "tpage-1499", 4, ["TIT"], ""], +["logo-ag", "logo", 4, ["TIT"], ""], +["logo-black-ag", "logo-black", 4, ["TIT"], ""], +["logo-cam-ag", "logo-cam", 4, ["TIT"], ""], +["logo-volumes-ag", "logo-volumes", 4, ["TIT"], ""], +["ndi-ag", "ndi", 4, ["TIT"], ""], +["ndi-cam-ag", "ndi-cam", 4, ["TIT"], ""], +["ndi-volumes-ag", "ndi-volumes", 4, ["TIT"], ""], +["title-vis", "title-vis", 4, ["TIT"], ""], +["tpage-1309", "tpage-1309", 4, ["TRA"], ""], +["tpage-1311", "tpage-1311", 4, ["TRA"], ""], +["tpage-1310", "tpage-1310", 4, ["TRA"], ""], +["tpage-1308", "tpage-1308", 4, ["TRA"], ""], +["tpage-775", "tpage-775", 4, ["TRA"], ""], +["pontoonfive-ag", "pontoonfive", 4, ["TRA"], ""], +["pontoonfive-ag", "pontoonfive", 4, ["VI2"], ""], +["scarecrow-a-ag", "scarecrow-a", 4, ["TRA"], ""], +["scarecrow-b-ag", "scarecrow-b", 4, ["TRA"], ""], +["trainingcam-ag", "trainingcam", 4, ["TRA"], ""], +["water-anim-training-ag", "water-anim-training", 4, ["TRA"], ""], +["training-vis", "training-vis", 4, ["TRA"], ""], +["tpage-398", "tpage-398", 4, ["VI1"], ""], +["tpage-400", "tpage-400", 4, ["VI1"], ""], +["tpage-399", "tpage-399", 4, ["VI1"], ""], +["tpage-401", "tpage-401", 4, ["VI1"], ""], +["tpage-1470", "tpage-1470", 4, ["VI1"], ""], +["assistant-ag", "assistant", 4, ["VI1"], ""], +["evilplant-ag", "evilplant", 4, ["VI1"], ""], +["explorer-ag", "explorer", 4, ["VI1"], ""], +["farmer-ag", "farmer", 4, ["VI1"], ""], +["fishermans-boat-ag", "fishermans-boat", 4, ["VI1"], ""], +["hutlamp-ag", "hutlamp", 4, ["VI1"], ""], +["mayorgears-ag", "mayorgears", 4, ["VI1"], ""], +["medres-beach-ag", "medres-beach", 4, ["VI1"], ""], +["medres-beach1-ag", "medres-beach1", 4, ["VI1"], ""], +["medres-beach2-ag", "medres-beach2", 4, ["VI1"], ""], +["medres-beach3-ag", "medres-beach3", 4, ["VI1"], ""], +["medres-jungle-ag", "medres-jungle", 4, ["VI1"], ""], +["medres-jungle1-ag", "medres-jungle1", 4, ["VI1"], ""], +["medres-jungle2-ag", "medres-jungle2", 4, ["VI1"], ""], +["medres-misty-ag", "medres-misty", 4, ["VI1"], ""], +["medres-training-ag", "medres-training", 4, ["VI1"], ""], +["medres-village11-ag", "medres-village11", 4, ["VI1"], ""], +["medres-village12-ag", "medres-village12", 4, ["VI1"], ""], +["medres-village13-ag", "medres-village13", 4, ["VI1"], ""], +["oracle-ag", "oracle", 4, ["VI1"], ""], +["oracle-ag", "oracle", 4, ["VI2"], ""], +["oracle-ag", "oracle", 4, ["VI3"], ""], +["reflector-middle-ag", "reflector-middle", 4, ["VI1"], ""], +["revcycle-ag", "revcycle", 4, ["VI1"], ""], +["revcycleprop-ag", "revcycleprop", 4, ["VI1"], ""], +["ropebridge-32-ag", "ropebridge-32", 4, ["VI1"], ""], +["sage-ag", "sage", 4, ["VI1"], ""], +["sagesail-ag", "sagesail", 4, ["VI1"], ""], +["villa-starfish-ag", "villa-starfish", 4, ["VI1"], ""], +["village-cam-ag", "village-cam", 4, ["VI1"], ""], +["village-cam-ag", "village-cam", 4, ["VI2"], ""], +["village-cam-ag", "village-cam", 4, ["VI3"], ""], +["village1cam-ag", "village1cam", 4, ["VI1"], ""], +["water-anim-village1-ag", "water-anim-village1", 4, ["VI1"], ""], +["windmill-sail-ag", "windmill-sail", 4, ["VI1"], ""], +["windspinner-ag", "windspinner", 4, ["VI1"], ""], +["yakow-ag", "yakow", 4, ["VI1"], ""], +["village1-vis", "village1-vis", 4, ["VI1"], ""], +["tpage-919", "tpage-919", 4, ["VI2"], ""], +["tpage-922", "tpage-922", 4, ["VI2"], ""], +["tpage-920", "tpage-920", 4, ["VI2"], ""], +["tpage-921", "tpage-921", 4, ["VI2"], ""], +["tpage-1476", "tpage-1476", 4, ["VI2"], ""], +["allpontoons-ag", "allpontoons", 4, ["VI2"], ""], +["assistant-village2-ag", "assistant-village2", 4, ["VI2"], ""], +["ceilingflag-ag", "ceilingflag", 4, ["VI2"], ""], +["exit-chamber-dummy-ag", "exit-chamber-dummy", 4, ["VI2"], ""], +["fireboulder-ag", "fireboulder", 4, ["VI2"], ""], +["flutflut-bluehut-ag", "flutflut-bluehut", 4, ["VI2"], ""], +["gambler-ag", "gambler", 4, ["VI2"], ""], +["geologist-ag", "geologist", 4, ["VI2"], ""], +["jaws-ag", "jaws", 4, ["VI2"], ""], +["medres-rolling-ag", "medres-rolling", 4, ["VI2"], ""], +["medres-rolling1-ag", "medres-rolling1", 4, ["VI2"], ""], +["medres-village2-ag", "medres-village2", 4, ["VI2"], ""], +["ogreboss-village2-ag", "ogreboss-village2", 4, ["VI2"], ""], +["pontoonten-ag", "pontoonten", 4, ["VI2"], ""], +["precursor-arm-ag", "precursor-arm", 4, ["VI2"], ""], +["sage-bluehut-ag", "sage-bluehut", 4, ["VI2"], ""], +["sunken-elevator-ag", "sunken-elevator", 4, ["VI2"], ""], +["swamp-blimp-ag", "swamp-blimp", 4, ["VI2"], ""], +["swamp-rope-ag", "swamp-rope", 4, ["VI2"], ""], +["swamp-tetherrock-ag", "swamp-tetherrock", 4, ["VI2"], ""], +["swamp-tetherrock-explode-ag", "swamp-tetherrock-explode", 4, ["VI2"], ""], +["village2cam-ag", "village2cam", 4, ["VI2"], ""], +["warrior-ag", "warrior", 4, ["VI2"], ""], +["water-anim-village2-ag", "water-anim-village2", 4, ["VI2"], ""], +["village2-vis", "village2-vis", 4, ["VI2"], ""], +["tpage-1208", "tpage-1208", 4, ["VI3"], ""], +["tpage-1210", "tpage-1210", 4, ["VI3"], ""], +["tpage-1209", "tpage-1209", 4, ["VI3"], ""], +["tpage-1194", "tpage-1194", 4, ["VI3"], ""], +["assistant-village3-ag", "assistant-village3", 4, ["VI3"], ""], +["cavegem-ag", "cavegem", 4, ["VI3"], ""], +["evilbro-village3-ag", "evilbro-village3", 4, ["VI3"], ""], +["evilsis-village3-ag", "evilsis-village3", 4, ["VI3"], ""], +["gondola-ag", "gondola", 4, ["VI3"], ""], +["gondolacables-ag", "gondolacables", 4, ["VI3"], ""], +["lavaspoutdrip-ag", "lavaspoutdrip", 4, ["VI3"], ""], +["medres-finalboss-ag", "medres-finalboss", 4, ["VI3"], ""], +["medres-ogre-ag", "medres-ogre", 4, ["VI3"], ""], +["medres-ogre2-ag", "medres-ogre2", 4, ["VI3"], ""], +["medres-ogre3-ag", "medres-ogre3", 4, ["VI3"], ""], +["minecartsteel-ag", "minecartsteel", 4, ["VI3"], ""], +["minershort-ag", "minershort", 4, ["VI3"], ""], +["minertall-ag", "minertall", 4, ["VI3"], ""], +["pistons-ag", "pistons", 4, ["VI3"], ""], +["sage-village3-ag", "sage-village3", 4, ["VI3"], ""], +["vil3-bridge-36-ag", "vil3-bridge-36", 4, ["VI3"], ""], +["water-anim-village3-ag", "water-anim-village3", 4, ["VI3"], ""], +["village3-vis", "village3-vis", 4, ["VI3"], ""], +["lava", "lava", 3, ["WATER-AN"], ""], +["0COMMON", "0COMMON", 2, ["NO-XGO"], ""], +["1COMMON", "1COMMON", 2, ["NO-XGO"], ""], +["2COMMON", "2COMMON", 2, ["NO-XGO"], ""], +["3COMMON", "3COMMON", 2, ["NO-XGO"], ""], +["4COMMON", "4COMMON", 2, ["NO-XGO"], ""], +["5COMMON", "5COMMON", 2, ["NO-XGO"], ""], +["6COMMON", "6COMMON", 2, ["NO-XGO"], ""], +["balloon-fuel-cell+0", "balloon-fuel-cell+0", 2, ["NO-XGO"], ""], +["swamp-tetherrock-explode-4+0", "swamp-tetherrock-explode-4+0", 2, ["NO-XGO"], ""], +["swamp-tetherrock-explode-3+0", "swamp-tetherrock-explode-3+0", 2, ["NO-XGO"], ""], +["swamp-tetherrock-explode-2+0", "swamp-tetherrock-explode-2+0", 2, ["NO-XGO"], ""], +["swamp-tetherrock-explode-1+0", "swamp-tetherrock-explode-1+0", 2, ["NO-XGO"], ""], +["snowcam-ram-boss-snow-ball-fuel-cell+0", "snowcam-ram-boss-snow-ball-fuel-cell+0", 2, ["NO-XGO"], ""], +["snowcam-ram-boss-ice-pond-fuel-cell+0", "snowcam-ram-boss-ice-pond-fuel-cell+0", 2, ["NO-XGO"], ""], +["snowcam-ram-boss-in-cave-fuel-cell+0", "snowcam-ram-boss-in-cave-fuel-cell+0", 2, ["NO-XGO"], ""], +["oracle-reminder-3+0", "oracle-reminder-3+0", 2, ["NO-XGO"], ""], +["oracle-reminder-3+1", "oracle-reminder-3+1", 2, ["NO-XGO"], ""], +["oracle-reminder-2+0", "oracle-reminder-2+0", 2, ["NO-XGO"], ""], +["oracle-reminder-2+1", "oracle-reminder-2+1", 2, ["NO-XGO"], ""], +["mistycam-cannon+0", "mistycam-cannon+0", 2, ["NO-XGO"], ""], +["beachcam-cannon+0", "beachcam-cannon+0", 2, ["NO-XGO"], ""], +["swamp-tetherrock-swamprockexplode-4+0", "swamp-tetherrock-swamprockexplode-4+0", 2, ["NO-XGO"], ""], +["swamp-tetherrock-swamprockexplode-3+0", "swamp-tetherrock-swamprockexplode-3+0", 2, ["NO-XGO"], ""], +["swamp-tetherrock-swamprockexplode-2+0", "swamp-tetherrock-swamprockexplode-2+0", 2, ["NO-XGO"], ""], +["swamprockexplode-4+0", "swamprockexplode-4+0", 2, ["NO-XGO"], ""], +["swamprockexplode-3+0", "swamprockexplode-3+0", 2, ["NO-XGO"], ""], +["swamprockexplode-2+0", "swamprockexplode-2+0", 2, ["NO-XGO"], ""], +["swamp-tetherrock-swamprockexplode-1+0", "swamp-tetherrock-swamprockexplode-1+0", 2, ["NO-XGO"], ""], +["oracle-right-eye+0", "oracle-right-eye+0", 2, ["NO-XGO"], ""], +["oracle-left-eye+0", "oracle-left-eye+0", 2, ["NO-XGO"], ""], +["swamprockexplode-1+0", "swamprockexplode-1+0", 2, ["NO-XGO"], ""], +["maincavecam-gnawer-fuel-cell+0", "maincavecam-gnawer-fuel-cell+0", 2, ["NO-XGO"], ""], +["gnawer-fuel-cell+0", "gnawer-fuel-cell+0", 2, ["NO-XGO"], ""], +["oracle-right-eye-3+0", "oracle-right-eye-3+0", 2, ["NO-XGO"], ""], +["oracle-right-eye-3+1", "oracle-right-eye-3+1", 2, ["NO-XGO"], ""], +["oracle-right-eye-2+0", "oracle-right-eye-2+0", 2, ["NO-XGO"], ""], +["oracle-right-eye-2+1", "oracle-right-eye-2+1", 2, ["NO-XGO"], ""], +["oracle-right-eye-1+0", "oracle-right-eye-1+0", 2, ["NO-XGO"], ""], +["oracle-right-eye-1+1", "oracle-right-eye-1+1", 2, ["NO-XGO"], ""], +["oracle-reminder-1+0", "oracle-reminder-1+0", 2, ["NO-XGO"], ""], +["oracle-reminder-1+1", "oracle-reminder-1+1", 2, ["NO-XGO"], ""], +["oracle-reminder-1+2", "oracle-reminder-1+2", 2, ["NO-XGO"], ""], +["oracle-reminder-1+3", "oracle-reminder-1+3", 2, ["NO-XGO"], ""], +["oracle-left-eye-3+0", "oracle-left-eye-3+0", 2, ["NO-XGO"], ""], +["oracle-left-eye-3+1", "oracle-left-eye-3+1", 2, ["NO-XGO"], ""], +["oracle-left-eye-2+0", "oracle-left-eye-2+0", 2, ["NO-XGO"], ""], +["oracle-left-eye-2+1", "oracle-left-eye-2+1", 2, ["NO-XGO"], ""], +["oracle-intro-3+0", "oracle-intro-3+0", 2, ["NO-XGO"], ""], +["oracle-intro-3+1", "oracle-intro-3+1", 2, ["NO-XGO"], ""], +["oracle-intro-3+2", "oracle-intro-3+2", 2, ["NO-XGO"], ""], +["oracle-intro-3+3", "oracle-intro-3+3", 2, ["NO-XGO"], ""], +["oracle-intro-2+0", "oracle-intro-2+0", 2, ["NO-XGO"], ""], +["oracle-intro-2+1", "oracle-intro-2+1", 2, ["NO-XGO"], ""], +["oracle-intro-2+2", "oracle-intro-2+2", 2, ["NO-XGO"], ""], +["oracle-intro-2+3", "oracle-intro-2+3", 2, ["NO-XGO"], ""], +["death-0202+0", "death-0202+0", 2, ["NO-XGO"], ""], +["race-ring-second-anim+0", "race-ring-second-anim+0", 2, ["NO-XGO"], ""], +["race-ring-second-anim+1", "race-ring-second-anim+1", 2, ["NO-XGO"], ""], +["race-ring-anim+0", "race-ring-anim+0", 2, ["NO-XGO"], ""], +["race-ring-anim+1", "race-ring-anim+1", 2, ["NO-XGO"], ""], +["eichar-fish+0", "eichar-fish+0", 2, ["NO-XGO"], ""], +["oracle-left-eye-1+0", "oracle-left-eye-1+0", 2, ["NO-XGO"], ""], +["oracle-left-eye-1+1", "oracle-left-eye-1+1", 2, ["NO-XGO"], ""], +["swamp-tetherrock-explode-final-4+0", "swamp-tetherrock-explode-final-4+0", 2, ["NO-XGO"], ""], +["swamp-tetherrock-explode-final-4+1", "swamp-tetherrock-explode-final-4+1", 2, ["NO-XGO"], ""], +["swamp-tetherrock-explode-final-4+2", "swamp-tetherrock-explode-final-4+2", 2, ["NO-XGO"], ""], +["swamp-tetherrock-explode-final-3+0", "swamp-tetherrock-explode-final-3+0", 2, ["NO-XGO"], ""], +["swamp-tetherrock-explode-final-3+1", "swamp-tetherrock-explode-final-3+1", 2, ["NO-XGO"], ""], +["swamp-tetherrock-explode-final-3+2", "swamp-tetherrock-explode-final-3+2", 2, ["NO-XGO"], ""], +["swamp-tetherrock-explode-final-2+0", "swamp-tetherrock-explode-final-2+0", 2, ["NO-XGO"], ""], +["swamp-tetherrock-explode-final-2+1", "swamp-tetherrock-explode-final-2+1", 2, ["NO-XGO"], ""], +["swamp-tetherrock-explode-final-2+2", "swamp-tetherrock-explode-final-2+2", 2, ["NO-XGO"], ""], +["swamp-tetherrock-explode-final-1+0", "swamp-tetherrock-explode-final-1+0", 2, ["NO-XGO"], ""], +["swamp-tetherrock-explode-final-1+1", "swamp-tetherrock-explode-final-1+1", 2, ["NO-XGO"], ""], +["swamp-tetherrock-explode-final-1+2", "swamp-tetherrock-explode-final-1+2", 2, ["NO-XGO"], ""], +["oracle-intro-1+0", "oracle-intro-1+0", 2, ["NO-XGO"], ""], +["oracle-intro-1+1", "oracle-intro-1+1", 2, ["NO-XGO"], ""], +["oracle-intro-1+2", "oracle-intro-1+2", 2, ["NO-XGO"], ""], +["oracle-intro-1+3", "oracle-intro-1+3", 2, ["NO-XGO"], ""], +["oracle-intro-1+4", "oracle-intro-1+4", 2, ["NO-XGO"], ""], +["eichar-ice+0", "eichar-ice+0", 2, ["NO-XGO"], ""], +["eichar-ambient-3+0", "eichar-ambient-3+0", 2, ["NO-XGO"], ""], +["death-0191+0", "death-0191+0", 2, ["NO-XGO"], ""], +["death-0186+0", "death-0186+0", 2, ["NO-XGO"], ""], +["death-0187+0", "death-0187+0", 2, ["NO-XGO"], ""], +["eichar-ambient-4+0", "eichar-ambient-4+0", 2, ["NO-XGO"], ""], +["eichar-pole+0", "eichar-pole+0", 2, ["NO-XGO"], ""], +["race-ring-anim-second+0", "race-ring-anim-second+0", 2, ["NO-XGO"], ""], +["race-ring-anim-second+1", "race-ring-anim-second+1", 2, ["NO-XGO"], ""], +["race-ring-anim-2+0", "race-ring-anim-2+0", 2, ["NO-XGO"], ""], +["race-ring-anim-2+1", "race-ring-anim-2+1", 2, ["NO-XGO"], ""], +["death-0184+0", "death-0184+0", 2, ["NO-XGO"], ""], +["death-0181+0", "death-0181+0", 2, ["NO-XGO"], ""], +["pelican-spit-ext+0", "pelican-spit-ext+0", 2, ["NO-XGO"], ""], +["pelican-spit-ext+1", "pelican-spit-ext+1", 2, ["NO-XGO"], ""], +["death-0195+0", "death-0195+0", 2, ["NO-XGO"], ""], +["eichar-ambient-2+0", "eichar-ambient-2+0", 2, ["NO-XGO"], ""], +["fisher-reminder-1+0", "fisher-reminder-1+0", 2, ["NO-XGO"], ""], +["death-0182+0", "death-0182+0", 2, ["NO-XGO"], ""], +["billy-reminder-1+0", "billy-reminder-1+0", 2, ["NO-XGO"], ""], +["billy-reminder-1+1", "billy-reminder-1+1", 2, ["NO-XGO"], ""], +["happy-plant-open+0", "happy-plant-open+0", 2, ["NO-XGO"], ""], +["happy-plant-open+1", "happy-plant-open+1", 2, ["NO-XGO"], ""], +["eichar-tube+0", "eichar-tube+0", 2, ["NO-XGO"], ""], +["sculptor-reminder-1+0", "sculptor-reminder-1+0", 2, ["NO-XGO"], ""], +["sculptor-reminder-1+1", "sculptor-reminder-1+1", 2, ["NO-XGO"], ""], +["death-0197+0", "death-0197+0", 2, ["NO-XGO"], ""], +["death-0197+1", "death-0197+1", 2, ["NO-XGO"], ""], +["death-0193+0", "death-0193+0", 2, ["NO-XGO"], ""], +["death-0193+1", "death-0193+1", 2, ["NO-XGO"], ""], +["eichar-ambient-1+0", "eichar-ambient-1+0", 2, ["NO-XGO"], ""], +["farmer-reminder-2+0", "farmer-reminder-2+0", 2, ["NO-XGO"], ""], +["farmer-reminder-2+1", "farmer-reminder-2+1", 2, ["NO-XGO"], ""], +["farmer-reminder-1+0", "farmer-reminder-1+0", 2, ["NO-XGO"], ""], +["farmer-reminder-1+1", "farmer-reminder-1+1", 2, ["NO-XGO"], ""], +["death-0199+0", "death-0199+0", 2, ["NO-XGO"], ""], +["death-0199+1", "death-0199+1", 2, ["NO-XGO"], ""], +["geologist-reminder-money+0", "geologist-reminder-money+0", 2, ["NO-XGO"], ""], +["geologist-reminder-money+1", "geologist-reminder-money+1", 2, ["NO-XGO"], ""], +["billy-resolution+0", "billy-resolution+0", 2, ["NO-XGO"], ""], +["billy-resolution+1", "billy-resolution+1", 2, ["NO-XGO"], ""], +["gambler-reminder-money+0", "gambler-reminder-money+0", 2, ["NO-XGO"], ""], +["gambler-reminder-money+1", "gambler-reminder-money+1", 2, ["NO-XGO"], ""], +["big-adventure+0", "big-adventure+0", 2, ["NO-XGO"], ""], +["big-adventure+1", "big-adventure+1", 2, ["NO-XGO"], ""], +["big-adventure+2", "big-adventure+2", 2, ["NO-XGO"], ""], +["big-adventure+3", "big-adventure+3", 2, ["NO-XGO"], ""], +["big-adventure+4", "big-adventure+4", 2, ["NO-XGO"], ""], +["big-adventure+5", "big-adventure+5", 2, ["NO-XGO"], ""], +["big-adventure+6", "big-adventure+6", 2, ["NO-XGO"], ""], +["big-adventure+7", "big-adventure+7", 2, ["NO-XGO"], ""], +["fuel-cell-racer-victory-1+0", "fuel-cell-racer-victory-1+0", 2, ["NO-XGO"], ""], +["fuel-cell-racer-victory-1+1", "fuel-cell-racer-victory-1+1", 2, ["NO-XGO"], ""], +["billy-reject+0", "billy-reject+0", 2, ["NO-XGO"], ""], +["billy-reject+1", "billy-reject+1", 2, ["NO-XGO"], ""], +["billy-reject+2", "billy-reject+2", 2, ["NO-XGO"], ""], +["warrior-reminder-1+0", "warrior-reminder-1+0", 2, ["NO-XGO"], ""], +["warrior-reminder-1+1", "warrior-reminder-1+1", 2, ["NO-XGO"], ""], +["warrior-reminder-1+2", "warrior-reminder-1+2", 2, ["NO-XGO"], ""], +["billy-accept+0", "billy-accept+0", 2, ["NO-XGO"], ""], +["billy-accept+1", "billy-accept+1", 2, ["NO-XGO"], ""], +["billy-accept+2", "billy-accept+2", 2, ["NO-XGO"], ""], +["sage-village3-reminder-1-dark-eco+0", "sage-village3-reminder-1-dark-eco+0", 2, ["NO-XGO"], ""], +["sage-village3-reminder-1-dark-eco+1", "sage-village3-reminder-1-dark-eco+1", 2, ["NO-XGO"], ""], +["assistant-reminder-1-generic+0", "assistant-reminder-1-generic+0", 2, ["NO-XGO"], ""], +["assistant-reminder-1-generic+1", "assistant-reminder-1-generic+1", 2, ["NO-XGO"], ""], +["fisher-reject+0", "fisher-reject+0", 2, ["NO-XGO"], ""], +["fisher-reject+1", "fisher-reject+1", 2, ["NO-XGO"], ""], +["gambler-reminder-race+0", "gambler-reminder-race+0", 2, ["NO-XGO"], ""], +["gambler-reminder-race+1", "gambler-reminder-race+1", 2, ["NO-XGO"], ""], +["geologist-resolution-money+0", "geologist-resolution-money+0", 2, ["NO-XGO"], ""], +["geologist-resolution-money+1", "geologist-resolution-money+1", 2, ["NO-XGO"], ""], +["lrocklrg-falling+0", "lrocklrg-falling+0", 2, ["NO-XGO"], ""], +["lrocklrg-falling+1", "lrocklrg-falling+1", 2, ["NO-XGO"], ""], +["lrocklrg-falling+2", "lrocklrg-falling+2", 2, ["NO-XGO"], ""], +["lrocklrg-falling+3", "lrocklrg-falling+3", 2, ["NO-XGO"], ""], +["explorer-reminder-2+0", "explorer-reminder-2+0", 2, ["NO-XGO"], ""], +["explorer-reminder-2+1", "explorer-reminder-2+1", 2, ["NO-XGO"], ""], +["explorer-reminder-2+2", "explorer-reminder-2+2", 2, ["NO-XGO"], ""], +["geologist-reminder-moles+0", "geologist-reminder-moles+0", 2, ["NO-XGO"], ""], +["geologist-reminder-moles+1", "geologist-reminder-moles+1", 2, ["NO-XGO"], ""], +["geologist-reminder-moles+2", "geologist-reminder-moles+2", 2, ["NO-XGO"], ""], +["fuel-cell-victory+0", "fuel-cell-victory+0", 2, ["NO-XGO"], ""], +["fuel-cell-victory+1", "fuel-cell-victory+1", 2, ["NO-XGO"], ""], +["minershort-reminder-1-orbs+0", "minershort-reminder-1-orbs+0", 2, ["NO-XGO"], ""], +["minershort-reminder-1-orbs+1", "minershort-reminder-1-orbs+1", 2, ["NO-XGO"], ""], +["minershort-reminder-1-orbs+2", "minershort-reminder-1-orbs+2", 2, ["NO-XGO"], ""], +["sage-village3-reminder-1-rams+0", "sage-village3-reminder-1-rams+0", 2, ["NO-XGO"], ""], +["sage-village3-reminder-1-rams+1", "sage-village3-reminder-1-rams+1", 2, ["NO-XGO"], ""], +["sage-village3-reminder-1-rams+2", "sage-village3-reminder-1-rams+2", 2, ["NO-XGO"], ""], +["assistant-village2-reminder-1-flutflut+0", "assistant-village2-reminder-1-flutflut+0", 2, ["NO-XGO"], ""], +["assistant-village2-reminder-1-flutflut+1", "assistant-village2-reminder-1-flutflut+1", 2, ["NO-XGO"], ""], +["assistant-village2-reminder-1-flutflut+2", "assistant-village2-reminder-1-flutflut+2", 2, ["NO-XGO"], ""], +["fuel-cell-victory-2+0", "fuel-cell-victory-2+0", 2, ["NO-XGO"], ""], +["fuel-cell-victory-2+1", "fuel-cell-victory-2+1", 2, ["NO-XGO"], ""], +["minershort-reminder-1-gnawers+0", "minershort-reminder-1-gnawers+0", 2, ["NO-XGO"], ""], +["minershort-reminder-1-gnawers+1", "minershort-reminder-1-gnawers+1", 2, ["NO-XGO"], ""], +["minershort-reminder-1-gnawers+2", "minershort-reminder-1-gnawers+2", 2, ["NO-XGO"], ""], +["gambler-resolution-money+0", "gambler-resolution-money+0", 2, ["NO-XGO"], ""], +["gambler-resolution-money+1", "gambler-resolution-money+1", 2, ["NO-XGO"], ""], +["assistant-village3-reminder+0", "assistant-village3-reminder+0", 2, ["NO-XGO"], ""], +["assistant-village3-reminder+1", "assistant-village3-reminder+1", 2, ["NO-XGO"], ""], +["assistant-village3-reminder+2", "assistant-village3-reminder+2", 2, ["NO-XGO"], ""], +["sidekick-human-intro-sequence-a+0", "sidekick-human-intro-sequence-a+0", 2, ["NO-XGO"], ""], +["sidekick-human-intro-sequence-a+1", "sidekick-human-intro-sequence-a+1", 2, ["NO-XGO"], ""], +["sidekick-human-intro-sequence-a+2", "sidekick-human-intro-sequence-a+2", 2, ["NO-XGO"], ""], +["sidekick-human-intro-sequence-a+3", "sidekick-human-intro-sequence-a+3", 2, ["NO-XGO"], ""], +["sidekick-human-intro-sequence-a+4", "sidekick-human-intro-sequence-a+4", 2, ["NO-XGO"], ""], +["sidekick-human-intro-sequence-a+5", "sidekick-human-intro-sequence-a+5", 2, ["NO-XGO"], ""], +["sidekick-human-intro-sequence-a+6", "sidekick-human-intro-sequence-a+6", 2, ["NO-XGO"], ""], +["sidekick-human-intro-sequence-a+7", "sidekick-human-intro-sequence-a+7", 2, ["NO-XGO"], ""], +["sidekick-human-intro-sequence-a+8", "sidekick-human-intro-sequence-a+8", 2, ["NO-XGO"], ""], +["sidekick-human-intro-sequence-a+9", "sidekick-human-intro-sequence-a+9", 2, ["NO-XGO"], ""], +["sidekick-human-intro-sequence-a+10", "sidekick-human-intro-sequence-a+10", 2, ["NO-XGO"], ""], +["sidekick-human-intro-sequence-a+11", "sidekick-human-intro-sequence-a+11", 2, ["NO-XGO"], ""], +["sidekick-human-intro-sequence-a+12", "sidekick-human-intro-sequence-a+12", 2, ["NO-XGO"], ""], +["sidekick-human-intro-sequence-a+13", "sidekick-human-intro-sequence-a+13", 2, ["NO-XGO"], ""], +["sidekick-human-intro-sequence-a+14", "sidekick-human-intro-sequence-a+14", 2, ["NO-XGO"], ""], +["sidekick-human-intro-sequence-a+15", "sidekick-human-intro-sequence-a+15", 2, ["NO-XGO"], ""], +["sidekick-human-intro-sequence-a+16", "sidekick-human-intro-sequence-a+16", 2, ["NO-XGO"], ""], +["sidekick-human-intro-sequence-a+17", "sidekick-human-intro-sequence-a+17", 2, ["NO-XGO"], ""], +["sidekick-human-intro-sequence-a+18", "sidekick-human-intro-sequence-a+18", 2, ["NO-XGO"], ""], +["sidekick-human-intro-sequence-a+19", "sidekick-human-intro-sequence-a+19", 2, ["NO-XGO"], ""], +["sidekick-human-intro-sequence-a+20", "sidekick-human-intro-sequence-a+20", 2, ["NO-XGO"], ""], +["sidekick-human-intro-sequence-a+21", "sidekick-human-intro-sequence-a+21", 2, ["NO-XGO"], ""], +["fisher-accept+0", "fisher-accept+0", 2, ["NO-XGO"], ""], +["fisher-accept+1", "fisher-accept+1", 2, ["NO-XGO"], ""], +["fisher-accept+2", "fisher-accept+2", 2, ["NO-XGO"], ""], +["fisher-accept+3", "fisher-accept+3", 2, ["NO-XGO"], ""], +["fisher-accept+4", "fisher-accept+4", 2, ["NO-XGO"], ""], +["fisher-accept+5", "fisher-accept+5", 2, ["NO-XGO"], ""], +["finalbosscam-white-eco+0", "finalbosscam-white-eco+0", 2, ["NO-XGO"], ""], +["finalbosscam-white-eco+1", "finalbosscam-white-eco+1", 2, ["NO-XGO"], ""], +["finalbosscam-white-eco+2", "finalbosscam-white-eco+2", 2, ["NO-XGO"], ""], +["farmer-resolution+0", "farmer-resolution+0", 2, ["NO-XGO"], ""], +["farmer-resolution+1", "farmer-resolution+1", 2, ["NO-XGO"], ""], +["farmer-resolution+2", "farmer-resolution+2", 2, ["NO-XGO"], ""], +["farmer-resolution+3", "farmer-resolution+3", 2, ["NO-XGO"], ""], +["assistant-reminder-1-race-bike+0", "assistant-reminder-1-race-bike+0", 2, ["NO-XGO"], ""], +["assistant-reminder-1-race-bike+1", "assistant-reminder-1-race-bike+1", 2, ["NO-XGO"], ""], +["assistant-reminder-1-race-bike+2", "assistant-reminder-1-race-bike+2", 2, ["NO-XGO"], ""], +["mayor-reminder-donation+0", "mayor-reminder-donation+0", 2, ["NO-XGO"], ""], +["mayor-reminder-donation+1", "mayor-reminder-donation+1", 2, ["NO-XGO"], ""], +["mayor-reminder-donation+2", "mayor-reminder-donation+2", 2, ["NO-XGO"], ""], +["gambler-resolution-race+0", "gambler-resolution-race+0", 2, ["NO-XGO"], ""], +["gambler-resolution-race+1", "gambler-resolution-race+1", 2, ["NO-XGO"], ""], +["gambler-resolution-race+2", "gambler-resolution-race+2", 2, ["NO-XGO"], ""], +["fuel-cell-flut-victory-1+0", "fuel-cell-flut-victory-1+0", 2, ["NO-XGO"], ""], +["fuel-cell-flut-victory-1+1", "fuel-cell-flut-victory-1+1", 2, ["NO-XGO"], ""], +["fuel-cell-victory-5+0", "fuel-cell-victory-5+0", 2, ["NO-XGO"], ""], +["fuel-cell-victory-5+1", "fuel-cell-victory-5+1", 2, ["NO-XGO"], ""], +["sage-bluehut-reminder-1-crop-dusting+0", "sage-bluehut-reminder-1-crop-dusting+0", 2, ["NO-XGO"], ""], +["sage-bluehut-reminder-1-crop-dusting+1", "sage-bluehut-reminder-1-crop-dusting+1", 2, ["NO-XGO"], ""], +["sage-bluehut-reminder-1-crop-dusting+2", "sage-bluehut-reminder-1-crop-dusting+2", 2, ["NO-XGO"], ""], +["flying-lurker-intro+0", "flying-lurker-intro+0", 2, ["NO-XGO"], ""], +["flying-lurker-intro+1", "flying-lurker-intro+1", 2, ["NO-XGO"], ""], +["sage-reminder-1-ecorocks+0", "sage-reminder-1-ecorocks+0", 2, ["NO-XGO"], ""], +["sage-reminder-1-ecorocks+1", "sage-reminder-1-ecorocks+1", 2, ["NO-XGO"], ""], +["sage-reminder-1-ecorocks+2", "sage-reminder-1-ecorocks+2", 2, ["NO-XGO"], ""], +["sage-reminder-1-ecorocks+3", "sage-reminder-1-ecorocks+3", 2, ["NO-XGO"], ""], +["assistant-village2-reminder-1-robbers+0", "assistant-village2-reminder-1-robbers+0", 2, ["NO-XGO"], ""], +["assistant-village2-reminder-1-robbers+1", "assistant-village2-reminder-1-robbers+1", 2, ["NO-XGO"], ""], +["assistant-village2-reminder-1-robbers+2", "assistant-village2-reminder-1-robbers+2", 2, ["NO-XGO"], ""], +["minershort-reminder-2-orbs+0", "minershort-reminder-2-orbs+0", 2, ["NO-XGO"], ""], +["minershort-reminder-2-orbs+1", "minershort-reminder-2-orbs+1", 2, ["NO-XGO"], ""], +["mayor-reminder-beams+0", "mayor-reminder-beams+0", 2, ["NO-XGO"], ""], +["mayor-reminder-beams+1", "mayor-reminder-beams+1", 2, ["NO-XGO"], ""], +["mayor-reminder-beams+2", "mayor-reminder-beams+2", 2, ["NO-XGO"], ""], +["logo-intro-2+0", "logo-intro-2+0", 2, ["NO-XGO"], ""], +["logo-intro-2+1", "logo-intro-2+1", 2, ["NO-XGO"], ""], +["logo-intro-2+2", "logo-intro-2+2", 2, ["NO-XGO"], ""], +["logo-intro-2+3", "logo-intro-2+3", 2, ["NO-XGO"], ""], +["logo-intro-2+4", "logo-intro-2+4", 2, ["NO-XGO"], ""], +["logo-intro-2+5", "logo-intro-2+5", 2, ["NO-XGO"], ""], +["logo-intro-2+6", "logo-intro-2+6", 2, ["NO-XGO"], ""], +["logo-intro-2+7", "logo-intro-2+7", 2, ["NO-XGO"], ""], +["logo-intro-2+8", "logo-intro-2+8", 2, ["NO-XGO"], ""], +["logo-intro-2+9", "logo-intro-2+9", 2, ["NO-XGO"], ""], +["logo-intro-2+10", "logo-intro-2+10", 2, ["NO-XGO"], ""], +["logo-intro-2+11", "logo-intro-2+11", 2, ["NO-XGO"], ""], +["logo-intro-2+12", "logo-intro-2+12", 2, ["NO-XGO"], ""], +["logo-intro-2+13", "logo-intro-2+13", 2, ["NO-XGO"], ""], +["logo-intro-2+14", "logo-intro-2+14", 2, ["NO-XGO"], ""], +["sage-reminder-1-generic+0", "sage-reminder-1-generic+0", 2, ["NO-XGO"], ""], +["sage-reminder-1-generic+1", "sage-reminder-1-generic+1", 2, ["NO-XGO"], ""], +["sage-reminder-1-generic+2", "sage-reminder-1-generic+2", 2, ["NO-XGO"], ""], +["bird-lady-reminder-1+0", "bird-lady-reminder-1+0", 2, ["NO-XGO"], ""], +["bird-lady-reminder-1+1", "bird-lady-reminder-1+1", 2, ["NO-XGO"], ""], +["bird-lady-reminder-1+2", "bird-lady-reminder-1+2", 2, ["NO-XGO"], ""], +["bird-lady-reminder-1+3", "bird-lady-reminder-1+3", 2, ["NO-XGO"], ""], +["assistant-village2-reminder-1-room+0", "assistant-village2-reminder-1-room+0", 2, ["NO-XGO"], ""], +["assistant-village2-reminder-1-room+1", "assistant-village2-reminder-1-room+1", 2, ["NO-XGO"], ""], +["assistant-village2-reminder-1-room+2", "assistant-village2-reminder-1-room+2", 2, ["NO-XGO"], ""], +["assistant-reminder-1-blue-eco-switch+0", "assistant-reminder-1-blue-eco-switch+0", 2, ["NO-XGO"], ""], +["assistant-reminder-1-blue-eco-switch+1", "assistant-reminder-1-blue-eco-switch+1", 2, ["NO-XGO"], ""], +["assistant-reminder-1-blue-eco-switch+2", "assistant-reminder-1-blue-eco-switch+2", 2, ["NO-XGO"], ""], +["logo-loop+0", "logo-loop+0", 2, ["NO-XGO"], ""], +["logo-loop+1", "logo-loop+1", 2, ["NO-XGO"], ""], +["logo-loop+2", "logo-loop+2", 2, ["NO-XGO"], ""], +["logo-loop+3", "logo-loop+3", 2, ["NO-XGO"], ""], +["logo-loop+4", "logo-loop+4", 2, ["NO-XGO"], ""], +["logo-loop+5", "logo-loop+5", 2, ["NO-XGO"], ""], +["logo-loop+6", "logo-loop+6", 2, ["NO-XGO"], ""], +["logo-loop+7", "logo-loop+7", 2, ["NO-XGO"], ""], +["logo-loop+8", "logo-loop+8", 2, ["NO-XGO"], ""], +["logo-loop+9", "logo-loop+9", 2, ["NO-XGO"], ""], +["logo-loop+10", "logo-loop+10", 2, ["NO-XGO"], ""], +["logo-loop+11", "logo-loop+11", 2, ["NO-XGO"], ""], +["logo-loop+12", "logo-loop+12", 2, ["NO-XGO"], ""], +["logo-loop+13", "logo-loop+13", 2, ["NO-XGO"], ""], +["logo-loop+14", "logo-loop+14", 2, ["NO-XGO"], ""], +["logo-loop+15", "logo-loop+15", 2, ["NO-XGO"], ""], +["logo-loop+16", "logo-loop+16", 2, ["NO-XGO"], ""], +["farmer-introduction+0", "farmer-introduction+0", 2, ["NO-XGO"], ""], +["farmer-introduction+1", "farmer-introduction+1", 2, ["NO-XGO"], ""], +["farmer-introduction+2", "farmer-introduction+2", 2, ["NO-XGO"], ""], +["farmer-introduction+3", "farmer-introduction+3", 2, ["NO-XGO"], ""], +["farmer-introduction+4", "farmer-introduction+4", 2, ["NO-XGO"], ""], +["geologist-resolution-moles+0", "geologist-resolution-moles+0", 2, ["NO-XGO"], ""], +["geologist-resolution-moles+1", "geologist-resolution-moles+1", 2, ["NO-XGO"], ""], +["geologist-resolution-moles+2", "geologist-resolution-moles+2", 2, ["NO-XGO"], ""], +["v1-in+0", "v1-in+0", 2, ["NO-XGO"], ""], +["v1-in+1", "v1-in+1", 2, ["NO-XGO"], ""], +["fuel-cell-victory-4+0", "fuel-cell-victory-4+0", 2, ["NO-XGO"], ""], +["fuel-cell-victory-4+1", "fuel-cell-victory-4+1", 2, ["NO-XGO"], ""], +["sage-introduction-ecorocks+0", "sage-introduction-ecorocks+0", 2, ["NO-XGO"], ""], +["sage-introduction-ecorocks+1", "sage-introduction-ecorocks+1", 2, ["NO-XGO"], ""], +["sage-introduction-ecorocks+2", "sage-introduction-ecorocks+2", 2, ["NO-XGO"], ""], +["sage-introduction-ecorocks+3", "sage-introduction-ecorocks+3", 2, ["NO-XGO"], ""], +["sage-introduction-ecorocks+4", "sage-introduction-ecorocks+4", 2, ["NO-XGO"], ""], +["sage-introduction-ecorocks+5", "sage-introduction-ecorocks+5", 2, ["NO-XGO"], ""], +["sage-introduction-ecorocks+6", "sage-introduction-ecorocks+6", 2, ["NO-XGO"], ""], +["sage-introduction-ecorocks+7", "sage-introduction-ecorocks+7", 2, ["NO-XGO"], ""], +["minershort-reminder-1-switch+0", "minershort-reminder-1-switch+0", 2, ["NO-XGO"], ""], +["minershort-reminder-1-switch+1", "minershort-reminder-1-switch+1", 2, ["NO-XGO"], ""], +["minershort-reminder-1-switch+2", "minershort-reminder-1-switch+2", 2, ["NO-XGO"], ""], +["minershort-reminder-1-switch+3", "minershort-reminder-1-switch+3", 2, ["NO-XGO"], ""], +["minershort-reminder-1-switch+4", "minershort-reminder-1-switch+4", 2, ["NO-XGO"], ""], +["logo-intro+0", "logo-intro+0", 2, ["NO-XGO"], ""], +["logo-intro+1", "logo-intro+1", 2, ["NO-XGO"], ""], +["logo-intro+2", "logo-intro+2", 2, ["NO-XGO"], ""], +["sage-reminder-2-generic+0", "sage-reminder-2-generic+0", 2, ["NO-XGO"], ""], +["sage-reminder-2-generic+1", "sage-reminder-2-generic+1", 2, ["NO-XGO"], ""], +["sage-reminder-2-generic+2", "sage-reminder-2-generic+2", 2, ["NO-XGO"], ""], +["sage-reminder-2-generic+3", "sage-reminder-2-generic+3", 2, ["NO-XGO"], ""], +["muse-victory+0", "muse-victory+0", 2, ["NO-XGO"], ""], +["muse-victory+1", "muse-victory+1", 2, ["NO-XGO"], ""], +["sage-reminder-1-misty-cannon+0", "sage-reminder-1-misty-cannon+0", 2, ["NO-XGO"], ""], +["sage-reminder-1-misty-cannon+1", "sage-reminder-1-misty-cannon+1", 2, ["NO-XGO"], ""], +["sage-reminder-1-misty-cannon+2", "sage-reminder-1-misty-cannon+2", 2, ["NO-XGO"], ""], +["sage-reminder-1-misty-cannon+3", "sage-reminder-1-misty-cannon+3", 2, ["NO-XGO"], ""], +["sage-reminder-1-misty-cannon+4", "sage-reminder-1-misty-cannon+4", 2, ["NO-XGO"], ""], +["fuel-cell-victory-7+0", "fuel-cell-victory-7+0", 2, ["NO-XGO"], ""], +["fuel-cell-victory-7+1", "fuel-cell-victory-7+1", 2, ["NO-XGO"], ""], +["minershort-resolution-1-orbs+0", "minershort-resolution-1-orbs+0", 2, ["NO-XGO"], ""], +["minershort-resolution-1-orbs+1", "minershort-resolution-1-orbs+1", 2, ["NO-XGO"], ""], +["fuel-cell-victory-8+0", "fuel-cell-victory-8+0", 2, ["NO-XGO"], ""], +["fuel-cell-victory-8+1", "fuel-cell-victory-8+1", 2, ["NO-XGO"], ""], +["bird-lady-reminder-2+0", "bird-lady-reminder-2+0", 2, ["NO-XGO"], ""], +["bird-lady-reminder-2+1", "bird-lady-reminder-2+1", 2, ["NO-XGO"], ""], +["bird-lady-reminder-2+2", "bird-lady-reminder-2+2", 2, ["NO-XGO"], ""], +["bird-lady-reminder-2+3", "bird-lady-reminder-2+3", 2, ["NO-XGO"], ""], +["bird-lady-reminder-2+4", "bird-lady-reminder-2+4", 2, ["NO-XGO"], ""], +["fuel-cell-victory-6+0", "fuel-cell-victory-6+0", 2, ["NO-XGO"], ""], +["fuel-cell-victory-6+1", "fuel-cell-victory-6+1", 2, ["NO-XGO"], ""], +["fuel-cell-victory-3+0", "fuel-cell-victory-3+0", 2, ["NO-XGO"], ""], +["fuel-cell-victory-3+1", "fuel-cell-victory-3+1", 2, ["NO-XGO"], ""], +["plunger-lurker-blowup+0", "plunger-lurker-blowup+0", 2, ["NO-XGO"], ""], +["plunger-lurker-blowup+1", "plunger-lurker-blowup+1", 2, ["NO-XGO"], ""], +["plunger-lurker-blowup+2", "plunger-lurker-blowup+2", 2, ["NO-XGO"], ""], +["plunger-lurker-blowup+3", "plunger-lurker-blowup+3", 2, ["NO-XGO"], ""], +["plant-boss-main+0", "plant-boss-main+0", 2, ["NO-XGO"], ""], +["warrior-resolution+0", "warrior-resolution+0", 2, ["NO-XGO"], ""], +["warrior-resolution+1", "warrior-resolution+1", 2, ["NO-XGO"], ""], +["warrior-resolution+2", "warrior-resolution+2", 2, ["NO-XGO"], ""], +["warrior-resolution+3", "warrior-resolution+3", 2, ["NO-XGO"], ""], +["warrior-resolution+4", "warrior-resolution+4", 2, ["NO-XGO"], ""], +["warrior-resolution+5", "warrior-resolution+5", 2, ["NO-XGO"], ""], +["eichar-racer+0", "eichar-racer+0", 2, ["NO-XGO"], ""], +["mayor-resolution-donation+0", "mayor-resolution-donation+0", 2, ["NO-XGO"], ""], +["mayor-resolution-donation+1", "mayor-resolution-donation+1", 2, ["NO-XGO"], ""], +["mayor-resolution-donation+2", "mayor-resolution-donation+2", 2, ["NO-XGO"], ""], +["mayor-resolution-donation+3", "mayor-resolution-donation+3", 2, ["NO-XGO"], ""], +["mayor-resolution-donation+4", "mayor-resolution-donation+4", 2, ["NO-XGO"], ""], +["mayor-resolution-beams+0", "mayor-resolution-beams+0", 2, ["NO-XGO"], ""], +["mayor-resolution-beams+1", "mayor-resolution-beams+1", 2, ["NO-XGO"], ""], +["mayor-resolution-beams+2", "mayor-resolution-beams+2", 2, ["NO-XGO"], ""], +["mayor-resolution-beams+3", "mayor-resolution-beams+3", 2, ["NO-XGO"], ""], +["mayor-resolution-beams+4", "mayor-resolution-beams+4", 2, ["NO-XGO"], ""], +["mayor-resolution-beams+5", "mayor-resolution-beams+5", 2, ["NO-XGO"], ""], +["minershort-introduction-switch+0", "minershort-introduction-switch+0", 2, ["NO-XGO"], ""], +["minershort-introduction-switch+1", "minershort-introduction-switch+1", 2, ["NO-XGO"], ""], +["minershort-introduction-switch+2", "minershort-introduction-switch+2", 2, ["NO-XGO"], ""], +["minershort-introduction-switch+3", "minershort-introduction-switch+3", 2, ["NO-XGO"], ""], +["minershort-introduction-switch+4", "minershort-introduction-switch+4", 2, ["NO-XGO"], ""], +["minershort-introduction-switch+5", "minershort-introduction-switch+5", 2, ["NO-XGO"], ""], +["minershort-introduction-switch+6", "minershort-introduction-switch+6", 2, ["NO-XGO"], ""], +["fishermans-boat-ride-to-village1+0", "fishermans-boat-ride-to-village1+0", 2, ["NO-XGO"], ""], +["fishermans-boat-ride-to-village1+1", "fishermans-boat-ride-to-village1+1", 2, ["NO-XGO"], ""], +["fishermans-boat-ride-to-village1+2", "fishermans-boat-ride-to-village1+2", 2, ["NO-XGO"], ""], +["fishermans-boat-ride-to-misty+0", "fishermans-boat-ride-to-misty+0", 2, ["NO-XGO"], ""], +["fishermans-boat-ride-to-misty+1", "fishermans-boat-ride-to-misty+1", 2, ["NO-XGO"], ""], +["fishermans-boat-ride-to-misty+2", "fishermans-boat-ride-to-misty+2", 2, ["NO-XGO"], ""], +["sage-bluehut-reminder-1-prec-arm+0", "sage-bluehut-reminder-1-prec-arm+0", 2, ["NO-XGO"], ""], +["sage-bluehut-reminder-1-prec-arm+1", "sage-bluehut-reminder-1-prec-arm+1", 2, ["NO-XGO"], ""], +["sage-bluehut-reminder-1-prec-arm+2", "sage-bluehut-reminder-1-prec-arm+2", 2, ["NO-XGO"], ""], +["sage-bluehut-reminder-1-prec-arm+3", "sage-bluehut-reminder-1-prec-arm+3", 2, ["NO-XGO"], ""], +["ndi-intro+0", "ndi-intro+0", 2, ["NO-XGO"], ""], +["ndi-intro+1", "ndi-intro+1", 2, ["NO-XGO"], ""], +["ndi-intro+2", "ndi-intro+2", 2, ["NO-XGO"], ""], +["ndi-intro+3", "ndi-intro+3", 2, ["NO-XGO"], ""], +["gondola-ride-down+0", "gondola-ride-down+0", 2, ["NO-XGO"], ""], +["gondola-ride-down+1", "gondola-ride-down+1", 2, ["NO-XGO"], ""], +["gondola-ride-down+2", "gondola-ride-down+2", 2, ["NO-XGO"], ""], +["gondola-ride-up+0", "gondola-ride-up+0", 2, ["NO-XGO"], ""], +["gondola-ride-up+1", "gondola-ride-up+1", 2, ["NO-XGO"], ""], +["gondola-ride-up+2", "gondola-ride-up+2", 2, ["NO-XGO"], ""], +["sage-village3-introduction-rams+0", "sage-village3-introduction-rams+0", 2, ["NO-XGO"], ""], +["sage-village3-introduction-rams+1", "sage-village3-introduction-rams+1", 2, ["NO-XGO"], ""], +["sage-village3-introduction-rams+2", "sage-village3-introduction-rams+2", 2, ["NO-XGO"], ""], +["sage-village3-introduction-rams+3", "sage-village3-introduction-rams+3", 2, ["NO-XGO"], ""], +["sage-village3-introduction-rams+4", "sage-village3-introduction-rams+4", 2, ["NO-XGO"], ""], +["sage-village3-introduction-rams+5", "sage-village3-introduction-rams+5", 2, ["NO-XGO"], ""], +["yellowsage-resolution+0", "yellowsage-resolution+0", 2, ["NO-XGO"], ""], +["yellowsage-resolution+1", "yellowsage-resolution+1", 2, ["NO-XGO"], ""], +["yellowsage-resolution+2", "yellowsage-resolution+2", 2, ["NO-XGO"], ""], +["yellowsage-resolution+3", "yellowsage-resolution+3", 2, ["NO-XGO"], ""], +["yellowsage-resolution+4", "yellowsage-resolution+4", 2, ["NO-XGO"], ""], +["yellowsage-resolution+5", "yellowsage-resolution+5", 2, ["NO-XGO"], ""], +["eichar-flut+0", "eichar-flut+0", 2, ["NO-XGO"], ""], +["green-sagecage-daxter-sacrifice+0", "green-sagecage-daxter-sacrifice+0", 2, ["NO-XGO"], ""], +["green-sagecage-daxter-sacrifice+1", "green-sagecage-daxter-sacrifice+1", 2, ["NO-XGO"], ""], +["green-sagecage-daxter-sacrifice+2", "green-sagecage-daxter-sacrifice+2", 2, ["NO-XGO"], ""], +["green-sagecage-daxter-sacrifice+3", "green-sagecage-daxter-sacrifice+3", 2, ["NO-XGO"], ""], +["green-sagecage-daxter-sacrifice+4", "green-sagecage-daxter-sacrifice+4", 2, ["NO-XGO"], ""], +["green-sagecage-daxter-sacrifice+5", "green-sagecage-daxter-sacrifice+5", 2, ["NO-XGO"], ""], +["explorer-reminder-1+0", "explorer-reminder-1+0", 2, ["NO-XGO"], ""], +["explorer-reminder-1+1", "explorer-reminder-1+1", 2, ["NO-XGO"], ""], +["explorer-reminder-1+2", "explorer-reminder-1+2", 2, ["NO-XGO"], ""], +["explorer-reminder-1+3", "explorer-reminder-1+3", 2, ["NO-XGO"], ""], +["explorer-reminder-1+4", "explorer-reminder-1+4", 2, ["NO-XGO"], ""], +["sculptor-resolution+0", "sculptor-resolution+0", 2, ["NO-XGO"], ""], +["sculptor-resolution+1", "sculptor-resolution+1", 2, ["NO-XGO"], ""], +["sculptor-resolution+2", "sculptor-resolution+2", 2, ["NO-XGO"], ""], +["sculptor-resolution+3", "sculptor-resolution+3", 2, ["NO-XGO"], ""], +["fisher-resolution+0", "fisher-resolution+0", 2, ["NO-XGO"], ""], +["fisher-resolution+1", "fisher-resolution+1", 2, ["NO-XGO"], ""], +["fisher-resolution+2", "fisher-resolution+2", 2, ["NO-XGO"], ""], +["fisher-resolution+3", "fisher-resolution+3", 2, ["NO-XGO"], ""], +["sidekick-human-intro-test+0", "sidekick-human-intro-test+0", 2, ["NO-XGO"], ""], +["sidekick-human-intro-test+1", "sidekick-human-intro-test+1", 2, ["NO-XGO"], ""], +["sidekick-human-intro-test+2", "sidekick-human-intro-test+2", 2, ["NO-XGO"], ""], +["sidekick-human-intro-test+3", "sidekick-human-intro-test+3", 2, ["NO-XGO"], ""], +["sidekick-human-intro-test+4", "sidekick-human-intro-test+4", 2, ["NO-XGO"], ""], +["sidekick-human-intro-test+5", "sidekick-human-intro-test+5", 2, ["NO-XGO"], ""], +["gambler-introduction-1+0", "gambler-introduction-1+0", 2, ["NO-XGO"], ""], +["gambler-introduction-1+1", "gambler-introduction-1+1", 2, ["NO-XGO"], ""], +["gambler-introduction-1+2", "gambler-introduction-1+2", 2, ["NO-XGO"], ""], +["gambler-introduction-1+3", "gambler-introduction-1+3", 2, ["NO-XGO"], ""], +["gambler-introduction-1+4", "gambler-introduction-1+4", 2, ["NO-XGO"], ""], +["gambler-introduction-1+5", "gambler-introduction-1+5", 2, ["NO-XGO"], ""], +["gambler-introduction-1+6", "gambler-introduction-1+6", 2, ["NO-XGO"], ""], +["gambler-introduction-1+7", "gambler-introduction-1+7", 2, ["NO-XGO"], ""], +["gambler-introduction-1+8", "gambler-introduction-1+8", 2, ["NO-XGO"], ""], +["explorer-resolution+0", "explorer-resolution+0", 2, ["NO-XGO"], ""], +["explorer-resolution+1", "explorer-resolution+1", 2, ["NO-XGO"], ""], +["explorer-resolution+2", "explorer-resolution+2", 2, ["NO-XGO"], ""], +["explorer-resolution+3", "explorer-resolution+3", 2, ["NO-XGO"], ""], +["explorer-resolution+4", "explorer-resolution+4", 2, ["NO-XGO"], ""], +["minershort-resolution-2-orbs+0", "minershort-resolution-2-orbs+0", 2, ["NO-XGO"], ""], +["minershort-resolution-2-orbs+1", "minershort-resolution-2-orbs+1", 2, ["NO-XGO"], ""], +["minershort-resolution-2-orbs+2", "minershort-resolution-2-orbs+2", 2, ["NO-XGO"], ""], +["minershort-resolution-2-orbs+3", "minershort-resolution-2-orbs+3", 2, ["NO-XGO"], ""], +["minershort-resolution-2-orbs+4", "minershort-resolution-2-orbs+4", 2, ["NO-XGO"], ""], +["minershort-resolution-2-orbs+5", "minershort-resolution-2-orbs+5", 2, ["NO-XGO"], ""], +["assistant-introduction-race-bike+0", "assistant-introduction-race-bike+0", 2, ["NO-XGO"], ""], +["assistant-introduction-race-bike+1", "assistant-introduction-race-bike+1", 2, ["NO-XGO"], ""], +["assistant-introduction-race-bike+2", "assistant-introduction-race-bike+2", 2, ["NO-XGO"], ""], +["assistant-introduction-race-bike+3", "assistant-introduction-race-bike+3", 2, ["NO-XGO"], ""], +["assistant-introduction-race-bike+4", "assistant-introduction-race-bike+4", 2, ["NO-XGO"], ""], +["assistant-introduction-race-bike+5", "assistant-introduction-race-bike+5", 2, ["NO-XGO"], ""], +["green-sagecage-outro-beat-boss-enough-cells+0", "green-sagecage-outro-beat-boss-enough-cells+0", 2, ["NO-XGO"], ""], +["green-sagecage-outro-beat-boss-enough-cells+1", "green-sagecage-outro-beat-boss-enough-cells+1", 2, ["NO-XGO"], ""], +["green-sagecage-outro-beat-boss-enough-cells+2", "green-sagecage-outro-beat-boss-enough-cells+2", 2, ["NO-XGO"], ""], +["green-sagecage-outro-beat-boss-enough-cells+3", "green-sagecage-outro-beat-boss-enough-cells+3", 2, ["NO-XGO"], ""], +["green-sagecage-outro-beat-boss-enough-cells+4", "green-sagecage-outro-beat-boss-enough-cells+4", 2, ["NO-XGO"], ""], +["green-sagecage-outro-beat-boss-enough-cells+5", "green-sagecage-outro-beat-boss-enough-cells+5", 2, ["NO-XGO"], ""], +["billy-introduction+0", "billy-introduction+0", 2, ["NO-XGO"], ""], +["billy-introduction+1", "billy-introduction+1", 2, ["NO-XGO"], ""], +["billy-introduction+2", "billy-introduction+2", 2, ["NO-XGO"], ""], +["billy-introduction+3", "billy-introduction+3", 2, ["NO-XGO"], ""], +["billy-introduction+4", "billy-introduction+4", 2, ["NO-XGO"], ""], +["billy-introduction+5", "billy-introduction+5", 2, ["NO-XGO"], ""], +["billy-introduction+6", "billy-introduction+6", 2, ["NO-XGO"], ""], +["billy-introduction+7", "billy-introduction+7", 2, ["NO-XGO"], ""], +["billy-introduction+8", "billy-introduction+8", 2, ["NO-XGO"], ""], +["billy-introduction+9", "billy-introduction+9", 2, ["NO-XGO"], ""], +["billy-introduction+10", "billy-introduction+10", 2, ["NO-XGO"], ""], +["billy-introduction+11", "billy-introduction+11", 2, ["NO-XGO"], ""], +["billy-introduction+12", "billy-introduction+12", 2, ["NO-XGO"], ""], +["billy-introduction+13", "billy-introduction+13", 2, ["NO-XGO"], ""], +["green-sagecage-outro-beat-boss-need-cells+0", "green-sagecage-outro-beat-boss-need-cells+0", 2, ["NO-XGO"], ""], +["green-sagecage-outro-beat-boss-need-cells+1", "green-sagecage-outro-beat-boss-need-cells+1", 2, ["NO-XGO"], ""], +["green-sagecage-outro-beat-boss-need-cells+2", "green-sagecage-outro-beat-boss-need-cells+2", 2, ["NO-XGO"], ""], +["green-sagecage-outro-beat-boss-need-cells+3", "green-sagecage-outro-beat-boss-need-cells+3", 2, ["NO-XGO"], ""], +["green-sagecage-outro-beat-boss-need-cells+4", "green-sagecage-outro-beat-boss-need-cells+4", 2, ["NO-XGO"], ""], +["green-sagecage-outro-beat-boss-need-cells+5", "green-sagecage-outro-beat-boss-need-cells+5", 2, ["NO-XGO"], ""], +["green-sagecage-outro-beat-boss-need-cells+6", "green-sagecage-outro-beat-boss-need-cells+6", 2, ["NO-XGO"], ""], +["green-sagecage-outro-beat-boss-need-cells+7", "green-sagecage-outro-beat-boss-need-cells+7", 2, ["NO-XGO"], ""], +["assistant-village2-introduction-robbers+0", "assistant-village2-introduction-robbers+0", 2, ["NO-XGO"], ""], +["assistant-village2-introduction-robbers+1", "assistant-village2-introduction-robbers+1", 2, ["NO-XGO"], ""], +["assistant-village2-introduction-robbers+2", "assistant-village2-introduction-robbers+2", 2, ["NO-XGO"], ""], +["assistant-village2-introduction-robbers+3", "assistant-village2-introduction-robbers+3", 2, ["NO-XGO"], ""], +["assistant-village2-introduction-robbers+4", "assistant-village2-introduction-robbers+4", 2, ["NO-XGO"], ""], +["assistant-village2-introduction-robbers+5", "assistant-village2-introduction-robbers+5", 2, ["NO-XGO"], ""], +["green-sagecage-outro-big-finish+0", "green-sagecage-outro-big-finish+0", 2, ["NO-XGO"], ""], +["green-sagecage-outro-big-finish+1", "green-sagecage-outro-big-finish+1", 2, ["NO-XGO"], ""], +["green-sagecage-outro-big-finish+2", "green-sagecage-outro-big-finish+2", 2, ["NO-XGO"], ""], +["green-sagecage-outro-big-finish+3", "green-sagecage-outro-big-finish+3", 2, ["NO-XGO"], ""], +["green-sagecage-outro-big-finish+4", "green-sagecage-outro-big-finish+4", 2, ["NO-XGO"], ""], +["green-sagecage-outro-big-finish+5", "green-sagecage-outro-big-finish+5", 2, ["NO-XGO"], ""], +["green-sagecage-outro-big-finish+6", "green-sagecage-outro-big-finish+6", 2, ["NO-XGO"], ""], +["redsage-resolution+0", "redsage-resolution+0", 2, ["NO-XGO"], ""], +["redsage-resolution+1", "redsage-resolution+1", 2, ["NO-XGO"], ""], +["redsage-resolution+2", "redsage-resolution+2", 2, ["NO-XGO"], ""], +["redsage-resolution+3", "redsage-resolution+3", 2, ["NO-XGO"], ""], +["redsage-resolution+4", "redsage-resolution+4", 2, ["NO-XGO"], ""], +["redsage-resolution+5", "redsage-resolution+5", 2, ["NO-XGO"], ""], +["redsage-resolution+6", "redsage-resolution+6", 2, ["NO-XGO"], ""], +["redsage-resolution+7", "redsage-resolution+7", 2, ["NO-XGO"], ""], +["redsage-resolution+8", "redsage-resolution+8", 2, ["NO-XGO"], ""], +["bluesage-resolution+0", "bluesage-resolution+0", 2, ["NO-XGO"], ""], +["bluesage-resolution+1", "bluesage-resolution+1", 2, ["NO-XGO"], ""], +["bluesage-resolution+2", "bluesage-resolution+2", 2, ["NO-XGO"], ""], +["bluesage-resolution+3", "bluesage-resolution+3", 2, ["NO-XGO"], ""], +["bluesage-resolution+4", "bluesage-resolution+4", 2, ["NO-XGO"], ""], +["bluesage-resolution+5", "bluesage-resolution+5", 2, ["NO-XGO"], ""], +["bluesage-resolution+6", "bluesage-resolution+6", 2, ["NO-XGO"], ""], +["bluesage-resolution+7", "bluesage-resolution+7", 2, ["NO-XGO"], ""], +["bluesage-resolution+8", "bluesage-resolution+8", 2, ["NO-XGO"], ""], +["sage-bluehut-introduction-prec-arm+0", "sage-bluehut-introduction-prec-arm+0", 2, ["NO-XGO"], ""], +["sage-bluehut-introduction-prec-arm+1", "sage-bluehut-introduction-prec-arm+1", 2, ["NO-XGO"], ""], +["sage-bluehut-introduction-prec-arm+2", "sage-bluehut-introduction-prec-arm+2", 2, ["NO-XGO"], ""], +["sage-bluehut-introduction-prec-arm+3", "sage-bluehut-introduction-prec-arm+3", 2, ["NO-XGO"], ""], +["sage-bluehut-introduction-prec-arm+4", "sage-bluehut-introduction-prec-arm+4", 2, ["NO-XGO"], ""], +["sage-bluehut-introduction-prec-arm+5", "sage-bluehut-introduction-prec-arm+5", 2, ["NO-XGO"], ""], +["sage-bluehut-introduction-prec-arm+6", "sage-bluehut-introduction-prec-arm+6", 2, ["NO-XGO"], ""], +["sage-bluehut-introduction-prec-arm+7", "sage-bluehut-introduction-prec-arm+7", 2, ["NO-XGO"], ""], +["evilbro-misty-end+0", "evilbro-misty-end+0", 2, ["NO-XGO"], ""], +["evilbro-misty-end+1", "evilbro-misty-end+1", 2, ["NO-XGO"], ""], +["evilbro-misty-end+2", "evilbro-misty-end+2", 2, ["NO-XGO"], ""], +["evilbro-misty-end+3", "evilbro-misty-end+3", 2, ["NO-XGO"], ""], +["evilbro-misty-end+4", "evilbro-misty-end+4", 2, ["NO-XGO"], ""], +["evilbro-misty-end+5", "evilbro-misty-end+5", 2, ["NO-XGO"], ""], +["evilbro-misty-end+6", "evilbro-misty-end+6", 2, ["NO-XGO"], ""], +["evilbro-misty-end+7", "evilbro-misty-end+7", 2, ["NO-XGO"], ""], +["evilbro-misty-end+8", "evilbro-misty-end+8", 2, ["NO-XGO"], ""], +["assistant-village2-resolution+0", "assistant-village2-resolution+0", 2, ["NO-XGO"], ""], +["assistant-village2-resolution+1", "assistant-village2-resolution+1", 2, ["NO-XGO"], ""], +["assistant-village2-resolution+2", "assistant-village2-resolution+2", 2, ["NO-XGO"], ""], +["assistant-village2-resolution+3", "assistant-village2-resolution+3", 2, ["NO-XGO"], ""], +["assistant-village2-resolution+4", "assistant-village2-resolution+4", 2, ["NO-XGO"], ""], +["assistant-village2-resolution+5", "assistant-village2-resolution+5", 2, ["NO-XGO"], ""], +["assistant-village2-resolution+6", "assistant-village2-resolution+6", 2, ["NO-XGO"], ""], +["sage-introduction-misty-cannon+0", "sage-introduction-misty-cannon+0", 2, ["NO-XGO"], ""], +["sage-introduction-misty-cannon+1", "sage-introduction-misty-cannon+1", 2, ["NO-XGO"], ""], +["sage-introduction-misty-cannon+2", "sage-introduction-misty-cannon+2", 2, ["NO-XGO"], ""], +["sage-introduction-misty-cannon+3", "sage-introduction-misty-cannon+3", 2, ["NO-XGO"], ""], +["sage-introduction-misty-cannon+4", "sage-introduction-misty-cannon+4", 2, ["NO-XGO"], ""], +["sage-introduction-misty-cannon+5", "sage-introduction-misty-cannon+5", 2, ["NO-XGO"], ""], +["sage-introduction-misty-cannon+6", "sage-introduction-misty-cannon+6", 2, ["NO-XGO"], ""], +["sage-introduction-misty-cannon+7", "sage-introduction-misty-cannon+7", 2, ["NO-XGO"], ""], +["sage-introduction-misty-cannon+8", "sage-introduction-misty-cannon+8", 2, ["NO-XGO"], ""], +["sage-introduction-misty-cannon+9", "sage-introduction-misty-cannon+9", 2, ["NO-XGO"], ""], +["sage-introduction-misty-cannon+10", "sage-introduction-misty-cannon+10", 2, ["NO-XGO"], ""], +["sage-introduction-misty-cannon+11", "sage-introduction-misty-cannon+11", 2, ["NO-XGO"], ""], +["minershort-introduction-gnawers+0", "minershort-introduction-gnawers+0", 2, ["NO-XGO"], ""], +["minershort-introduction-gnawers+1", "minershort-introduction-gnawers+1", 2, ["NO-XGO"], ""], +["minershort-introduction-gnawers+2", "minershort-introduction-gnawers+2", 2, ["NO-XGO"], ""], +["minershort-introduction-gnawers+3", "minershort-introduction-gnawers+3", 2, ["NO-XGO"], ""], +["minershort-introduction-gnawers+4", "minershort-introduction-gnawers+4", 2, ["NO-XGO"], ""], +["minershort-introduction-gnawers+5", "minershort-introduction-gnawers+5", 2, ["NO-XGO"], ""], +["minershort-introduction-gnawers+6", "minershort-introduction-gnawers+6", 2, ["NO-XGO"], ""], +["minershort-introduction-gnawers+7", "minershort-introduction-gnawers+7", 2, ["NO-XGO"], ""], +["green-sagecage-outro-beat-boss-a+0", "green-sagecage-outro-beat-boss-a+0", 2, ["NO-XGO"], ""], +["green-sagecage-outro-beat-boss-a+1", "green-sagecage-outro-beat-boss-a+1", 2, ["NO-XGO"], ""], +["green-sagecage-outro-beat-boss-a+2", "green-sagecage-outro-beat-boss-a+2", 2, ["NO-XGO"], ""], +["green-sagecage-outro-beat-boss-a+3", "green-sagecage-outro-beat-boss-a+3", 2, ["NO-XGO"], ""], +["green-sagecage-outro-beat-boss-a+4", "green-sagecage-outro-beat-boss-a+4", 2, ["NO-XGO"], ""], +["green-sagecage-outro-beat-boss-a+5", "green-sagecage-outro-beat-boss-a+5", 2, ["NO-XGO"], ""], +["green-sagecage-outro-beat-boss-a+6", "green-sagecage-outro-beat-boss-a+6", 2, ["NO-XGO"], ""], +["green-sagecage-outro-beat-boss-a+7", "green-sagecage-outro-beat-boss-a+7", 2, ["NO-XGO"], ""], +["green-sagecage-introduction+0", "green-sagecage-introduction+0", 2, ["NO-XGO"], ""], +["green-sagecage-introduction+1", "green-sagecage-introduction+1", 2, ["NO-XGO"], ""], +["green-sagecage-introduction+2", "green-sagecage-introduction+2", 2, ["NO-XGO"], ""], +["green-sagecage-introduction+3", "green-sagecage-introduction+3", 2, ["NO-XGO"], ""], +["green-sagecage-introduction+4", "green-sagecage-introduction+4", 2, ["NO-XGO"], ""], +["green-sagecage-introduction+5", "green-sagecage-introduction+5", 2, ["NO-XGO"], ""], +["green-sagecage-introduction+6", "green-sagecage-introduction+6", 2, ["NO-XGO"], ""], +["green-sagecage-introduction+7", "green-sagecage-introduction+7", 2, ["NO-XGO"], ""], +["green-sagecage-introduction+8", "green-sagecage-introduction+8", 2, ["NO-XGO"], ""], +["green-sagecage-introduction+9", "green-sagecage-introduction+9", 2, ["NO-XGO"], ""], +["green-sagecage-introduction+10", "green-sagecage-introduction+10", 2, ["NO-XGO"], ""], +["green-sagecage-introduction+11", "green-sagecage-introduction+11", 2, ["NO-XGO"], ""], +["sage-intro-sequence-e+0", "sage-intro-sequence-e+0", 2, ["NO-XGO"], ""], +["sage-intro-sequence-e+1", "sage-intro-sequence-e+1", 2, ["NO-XGO"], ""], +["sage-intro-sequence-e+2", "sage-intro-sequence-e+2", 2, ["NO-XGO"], ""], +["sage-intro-sequence-e+3", "sage-intro-sequence-e+3", 2, ["NO-XGO"], ""], +["sage-intro-sequence-e+4", "sage-intro-sequence-e+4", 2, ["NO-XGO"], ""], +["sage-intro-sequence-e+5", "sage-intro-sequence-e+5", 2, ["NO-XGO"], ""], +["sage-intro-sequence-e+6", "sage-intro-sequence-e+6", 2, ["NO-XGO"], ""], +["sage-intro-sequence-e+7", "sage-intro-sequence-e+7", 2, ["NO-XGO"], ""], +["sage-intro-sequence-e+8", "sage-intro-sequence-e+8", 2, ["NO-XGO"], ""], +["sage-intro-sequence-e+9", "sage-intro-sequence-e+9", 2, ["NO-XGO"], ""], +["sage-intro-sequence-e+10", "sage-intro-sequence-e+10", 2, ["NO-XGO"], ""], +["sage-intro-sequence-e+11", "sage-intro-sequence-e+11", 2, ["NO-XGO"], ""], +["sage-intro-sequence-e+12", "sage-intro-sequence-e+12", 2, ["NO-XGO"], ""], +["sage-village3-introduction-dark-eco+0", "sage-village3-introduction-dark-eco+0", 2, ["NO-XGO"], ""], +["sage-village3-introduction-dark-eco+1", "sage-village3-introduction-dark-eco+1", 2, ["NO-XGO"], ""], +["sage-village3-introduction-dark-eco+2", "sage-village3-introduction-dark-eco+2", 2, ["NO-XGO"], ""], +["sage-village3-introduction-dark-eco+3", "sage-village3-introduction-dark-eco+3", 2, ["NO-XGO"], ""], +["sage-village3-introduction-dark-eco+4", "sage-village3-introduction-dark-eco+4", 2, ["NO-XGO"], ""], +["sage-village3-introduction-dark-eco+5", "sage-village3-introduction-dark-eco+5", 2, ["NO-XGO"], ""], +["sage-village3-introduction-dark-eco+6", "sage-village3-introduction-dark-eco+6", 2, ["NO-XGO"], ""], +["sage-village3-introduction-dark-eco+7", "sage-village3-introduction-dark-eco+7", 2, ["NO-XGO"], ""], +["sage-village3-introduction-dark-eco+8", "sage-village3-introduction-dark-eco+8", 2, ["NO-XGO"], ""], +["assistant-firecanyon-resolution+0", "assistant-firecanyon-resolution+0", 2, ["NO-XGO"], ""], +["assistant-firecanyon-resolution+1", "assistant-firecanyon-resolution+1", 2, ["NO-XGO"], ""], +["assistant-firecanyon-resolution+2", "assistant-firecanyon-resolution+2", 2, ["NO-XGO"], ""], +["assistant-firecanyon-resolution+3", "assistant-firecanyon-resolution+3", 2, ["NO-XGO"], ""], +["assistant-firecanyon-resolution+4", "assistant-firecanyon-resolution+4", 2, ["NO-XGO"], ""], +["assistant-firecanyon-resolution+5", "assistant-firecanyon-resolution+5", 2, ["NO-XGO"], ""], +["assistant-firecanyon-resolution+6", "assistant-firecanyon-resolution+6", 2, ["NO-XGO"], ""], +["assistant-firecanyon-resolution+7", "assistant-firecanyon-resolution+7", 2, ["NO-XGO"], ""], +["assistant-firecanyon-resolution+8", "assistant-firecanyon-resolution+8", 2, ["NO-XGO"], ""], +["assistant-firecanyon-resolution+9", "assistant-firecanyon-resolution+9", 2, ["NO-XGO"], ""], +["assistant-firecanyon-resolution+10", "assistant-firecanyon-resolution+10", 2, ["NO-XGO"], ""], +["explorer-introduction+0", "explorer-introduction+0", 2, ["NO-XGO"], ""], +["explorer-introduction+1", "explorer-introduction+1", 2, ["NO-XGO"], ""], +["explorer-introduction+2", "explorer-introduction+2", 2, ["NO-XGO"], ""], +["explorer-introduction+3", "explorer-introduction+3", 2, ["NO-XGO"], ""], +["explorer-introduction+4", "explorer-introduction+4", 2, ["NO-XGO"], ""], +["explorer-introduction+5", "explorer-introduction+5", 2, ["NO-XGO"], ""], +["explorer-introduction+6", "explorer-introduction+6", 2, ["NO-XGO"], ""], +["explorer-introduction+7", "explorer-introduction+7", 2, ["NO-XGO"], ""], +["explorer-introduction+8", "explorer-introduction+8", 2, ["NO-XGO"], ""], +["explorer-introduction+9", "explorer-introduction+9", 2, ["NO-XGO"], ""], +["explorer-introduction+10", "explorer-introduction+10", 2, ["NO-XGO"], ""], +["bird-lady-introduction+0", "bird-lady-introduction+0", 2, ["NO-XGO"], ""], +["bird-lady-introduction+1", "bird-lady-introduction+1", 2, ["NO-XGO"], ""], +["bird-lady-introduction+2", "bird-lady-introduction+2", 2, ["NO-XGO"], ""], +["bird-lady-introduction+3", "bird-lady-introduction+3", 2, ["NO-XGO"], ""], +["bird-lady-introduction+4", "bird-lady-introduction+4", 2, ["NO-XGO"], ""], +["bird-lady-introduction+5", "bird-lady-introduction+5", 2, ["NO-XGO"], ""], +["bird-lady-introduction+6", "bird-lady-introduction+6", 2, ["NO-XGO"], ""], +["bird-lady-introduction+7", "bird-lady-introduction+7", 2, ["NO-XGO"], ""], +["bird-lady-introduction+8", "bird-lady-introduction+8", 2, ["NO-XGO"], ""], +["bird-lady-introduction+9", "bird-lady-introduction+9", 2, ["NO-XGO"], ""], +["bird-lady-introduction+10", "bird-lady-introduction+10", 2, ["NO-XGO"], ""], +["fisher-introduction+0", "fisher-introduction+0", 2, ["NO-XGO"], ""], +["fisher-introduction+1", "fisher-introduction+1", 2, ["NO-XGO"], ""], +["fisher-introduction+2", "fisher-introduction+2", 2, ["NO-XGO"], ""], +["fisher-introduction+3", "fisher-introduction+3", 2, ["NO-XGO"], ""], +["fisher-introduction+4", "fisher-introduction+4", 2, ["NO-XGO"], ""], +["fisher-introduction+5", "fisher-introduction+5", 2, ["NO-XGO"], ""], +["fisher-introduction+6", "fisher-introduction+6", 2, ["NO-XGO"], ""], +["fisher-introduction+7", "fisher-introduction+7", 2, ["NO-XGO"], ""], +["fisher-introduction+8", "fisher-introduction+8", 2, ["NO-XGO"], ""], +["mayor-introduction+0", "mayor-introduction+0", 2, ["NO-XGO"], ""], +["mayor-introduction+1", "mayor-introduction+1", 2, ["NO-XGO"], ""], +["mayor-introduction+2", "mayor-introduction+2", 2, ["NO-XGO"], ""], +["mayor-introduction+3", "mayor-introduction+3", 2, ["NO-XGO"], ""], +["mayor-introduction+4", "mayor-introduction+4", 2, ["NO-XGO"], ""], +["mayor-introduction+5", "mayor-introduction+5", 2, ["NO-XGO"], ""], +["mayor-introduction+6", "mayor-introduction+6", 2, ["NO-XGO"], ""], +["mayor-introduction+7", "mayor-introduction+7", 2, ["NO-XGO"], ""], +["mayor-introduction+8", "mayor-introduction+8", 2, ["NO-XGO"], ""], +["mayor-introduction+9", "mayor-introduction+9", 2, ["NO-XGO"], ""], +["mayor-introduction+10", "mayor-introduction+10", 2, ["NO-XGO"], ""], +["mayor-introduction+11", "mayor-introduction+11", 2, ["NO-XGO"], ""], +["mayor-introduction+12", "mayor-introduction+12", 2, ["NO-XGO"], ""], +["mayor-introduction+13", "mayor-introduction+13", 2, ["NO-XGO"], ""], +["mayor-introduction+14", "mayor-introduction+14", 2, ["NO-XGO"], ""], +["mayor-introduction+15", "mayor-introduction+15", 2, ["NO-XGO"], ""], +["sculptor-introduction+0", "sculptor-introduction+0", 2, ["NO-XGO"], ""], +["sculptor-introduction+1", "sculptor-introduction+1", 2, ["NO-XGO"], ""], +["sculptor-introduction+2", "sculptor-introduction+2", 2, ["NO-XGO"], ""], +["sculptor-introduction+3", "sculptor-introduction+3", 2, ["NO-XGO"], ""], +["sculptor-introduction+4", "sculptor-introduction+4", 2, ["NO-XGO"], ""], +["sculptor-introduction+5", "sculptor-introduction+5", 2, ["NO-XGO"], ""], +["sculptor-introduction+6", "sculptor-introduction+6", 2, ["NO-XGO"], ""], +["sculptor-introduction+7", "sculptor-introduction+7", 2, ["NO-XGO"], ""], +["sculptor-introduction+8", "sculptor-introduction+8", 2, ["NO-XGO"], ""], +["sculptor-introduction+9", "sculptor-introduction+9", 2, ["NO-XGO"], ""], +["sculptor-introduction+10", "sculptor-introduction+10", 2, ["NO-XGO"], ""], +["sculptor-introduction+11", "sculptor-introduction+11", 2, ["NO-XGO"], ""], +["sculptor-introduction+12", "sculptor-introduction+12", 2, ["NO-XGO"], ""], +["sculptor-introduction+13", "sculptor-introduction+13", 2, ["NO-XGO"], ""], +["assistant-village2-introduction-flutflut+0", "assistant-village2-introduction-flutflut+0", 2, ["NO-XGO"], ""], +["assistant-village2-introduction-flutflut+1", "assistant-village2-introduction-flutflut+1", 2, ["NO-XGO"], ""], +["assistant-village2-introduction-flutflut+2", "assistant-village2-introduction-flutflut+2", 2, ["NO-XGO"], ""], +["assistant-village2-introduction-flutflut+3", "assistant-village2-introduction-flutflut+3", 2, ["NO-XGO"], ""], +["assistant-village2-introduction-flutflut+4", "assistant-village2-introduction-flutflut+4", 2, ["NO-XGO"], ""], +["assistant-village2-introduction-flutflut+5", "assistant-village2-introduction-flutflut+5", 2, ["NO-XGO"], ""], +["assistant-village2-introduction-flutflut+6", "assistant-village2-introduction-flutflut+6", 2, ["NO-XGO"], ""], +["assistant-village2-introduction-flutflut+7", "assistant-village2-introduction-flutflut+7", 2, ["NO-XGO"], ""], +["assistant-lavatube-end-resolution+0", "assistant-lavatube-end-resolution+0", 2, ["NO-XGO"], ""], +["assistant-lavatube-end-resolution+1", "assistant-lavatube-end-resolution+1", 2, ["NO-XGO"], ""], +["assistant-lavatube-end-resolution+2", "assistant-lavatube-end-resolution+2", 2, ["NO-XGO"], ""], +["assistant-lavatube-end-resolution+3", "assistant-lavatube-end-resolution+3", 2, ["NO-XGO"], ""], +["assistant-lavatube-end-resolution+4", "assistant-lavatube-end-resolution+4", 2, ["NO-XGO"], ""], +["assistant-lavatube-end-resolution+5", "assistant-lavatube-end-resolution+5", 2, ["NO-XGO"], ""], +["assistant-lavatube-end-resolution+6", "assistant-lavatube-end-resolution+6", 2, ["NO-XGO"], ""], +["assistant-lavatube-end-resolution+7", "assistant-lavatube-end-resolution+7", 2, ["NO-XGO"], ""], +["assistant-lavatube-end-resolution+8", "assistant-lavatube-end-resolution+8", 2, ["NO-XGO"], ""], +["assistant-lavatube-end-resolution+9", "assistant-lavatube-end-resolution+9", 2, ["NO-XGO"], ""], +["assistant-lavatube-end-resolution+10", "assistant-lavatube-end-resolution+10", 2, ["NO-XGO"], ""], +["assistant-lavatube-start-resolution+0", "assistant-lavatube-start-resolution+0", 2, ["NO-XGO"], ""], +["assistant-lavatube-start-resolution+1", "assistant-lavatube-start-resolution+1", 2, ["NO-XGO"], ""], +["assistant-lavatube-start-resolution+2", "assistant-lavatube-start-resolution+2", 2, ["NO-XGO"], ""], +["assistant-lavatube-start-resolution+3", "assistant-lavatube-start-resolution+3", 2, ["NO-XGO"], ""], +["assistant-lavatube-start-resolution+4", "assistant-lavatube-start-resolution+4", 2, ["NO-XGO"], ""], +["assistant-lavatube-start-resolution+5", "assistant-lavatube-start-resolution+5", 2, ["NO-XGO"], ""], +["assistant-lavatube-start-resolution+6", "assistant-lavatube-start-resolution+6", 2, ["NO-XGO"], ""], +["assistant-lavatube-start-resolution+7", "assistant-lavatube-start-resolution+7", 2, ["NO-XGO"], ""], +["assistant-lavatube-start-resolution+8", "assistant-lavatube-start-resolution+8", 2, ["NO-XGO"], ""], +["assistant-lavatube-start-resolution+9", "assistant-lavatube-start-resolution+9", 2, ["NO-XGO"], ""], +["assistant-lavatube-start-resolution+10", "assistant-lavatube-start-resolution+10", 2, ["NO-XGO"], ""], +["assistant-village2-introduction-room+0", "assistant-village2-introduction-room+0", 2, ["NO-XGO"], ""], +["assistant-village2-introduction-room+1", "assistant-village2-introduction-room+1", 2, ["NO-XGO"], ""], +["assistant-village2-introduction-room+2", "assistant-village2-introduction-room+2", 2, ["NO-XGO"], ""], +["assistant-village2-introduction-room+3", "assistant-village2-introduction-room+3", 2, ["NO-XGO"], ""], +["assistant-village2-introduction-room+4", "assistant-village2-introduction-room+4", 2, ["NO-XGO"], ""], +["assistant-village2-introduction-room+5", "assistant-village2-introduction-room+5", 2, ["NO-XGO"], ""], +["assistant-village2-introduction-room+6", "assistant-village2-introduction-room+6", 2, ["NO-XGO"], ""], +["assistant-village2-introduction-room+7", "assistant-village2-introduction-room+7", 2, ["NO-XGO"], ""], +["assistant-village2-introduction-room+8", "assistant-village2-introduction-room+8", 2, ["NO-XGO"], ""], +["assistant-village2-introduction-room+9", "assistant-village2-introduction-room+9", 2, ["NO-XGO"], ""], +["green-sagecage-resolution+0", "green-sagecage-resolution+0", 2, ["NO-XGO"], ""], +["green-sagecage-resolution+1", "green-sagecage-resolution+1", 2, ["NO-XGO"], ""], +["green-sagecage-resolution+2", "green-sagecage-resolution+2", 2, ["NO-XGO"], ""], +["green-sagecage-resolution+3", "green-sagecage-resolution+3", 2, ["NO-XGO"], ""], +["green-sagecage-resolution+4", "green-sagecage-resolution+4", 2, ["NO-XGO"], ""], +["green-sagecage-resolution+5", "green-sagecage-resolution+5", 2, ["NO-XGO"], ""], +["green-sagecage-resolution+6", "green-sagecage-resolution+6", 2, ["NO-XGO"], ""], +["green-sagecage-resolution+7", "green-sagecage-resolution+7", 2, ["NO-XGO"], ""], +["green-sagecage-resolution+8", "green-sagecage-resolution+8", 2, ["NO-XGO"], ""], +["green-sagecage-resolution+9", "green-sagecage-resolution+9", 2, ["NO-XGO"], ""], +["green-sagecage-resolution+10", "green-sagecage-resolution+10", 2, ["NO-XGO"], ""], +["green-sagecage-resolution+11", "green-sagecage-resolution+11", 2, ["NO-XGO"], ""], +["sage-bluehut-introduction-crop-dusting+0", "sage-bluehut-introduction-crop-dusting+0", 2, ["NO-XGO"], ""], +["sage-bluehut-introduction-crop-dusting+1", "sage-bluehut-introduction-crop-dusting+1", 2, ["NO-XGO"], ""], +["sage-bluehut-introduction-crop-dusting+2", "sage-bluehut-introduction-crop-dusting+2", 2, ["NO-XGO"], ""], +["sage-bluehut-introduction-crop-dusting+3", "sage-bluehut-introduction-crop-dusting+3", 2, ["NO-XGO"], ""], +["sage-bluehut-introduction-crop-dusting+4", "sage-bluehut-introduction-crop-dusting+4", 2, ["NO-XGO"], ""], +["sage-bluehut-introduction-crop-dusting+5", "sage-bluehut-introduction-crop-dusting+5", 2, ["NO-XGO"], ""], +["sage-bluehut-introduction-crop-dusting+6", "sage-bluehut-introduction-crop-dusting+6", 2, ["NO-XGO"], ""], +["sage-bluehut-introduction-crop-dusting+7", "sage-bluehut-introduction-crop-dusting+7", 2, ["NO-XGO"], ""], +["sage-bluehut-introduction-crop-dusting+8", "sage-bluehut-introduction-crop-dusting+8", 2, ["NO-XGO"], ""], +["sage-bluehut-introduction-crop-dusting+9", "sage-bluehut-introduction-crop-dusting+9", 2, ["NO-XGO"], ""], +["sage-bluehut-introduction-crop-dusting+10", "sage-bluehut-introduction-crop-dusting+10", 2, ["NO-XGO"], ""], +["sage-bluehut-introduction-crop-dusting+11", "sage-bluehut-introduction-crop-dusting+11", 2, ["NO-XGO"], ""], +["sidekick-human-intro-sequence-b+0", "sidekick-human-intro-sequence-b+0", 2, ["NO-XGO"], ""], +["sidekick-human-intro-sequence-b+1", "sidekick-human-intro-sequence-b+1", 2, ["NO-XGO"], ""], +["sidekick-human-intro-sequence-b+2", "sidekick-human-intro-sequence-b+2", 2, ["NO-XGO"], ""], +["sidekick-human-intro-sequence-b+3", "sidekick-human-intro-sequence-b+3", 2, ["NO-XGO"], ""], +["sidekick-human-intro-sequence-b+4", "sidekick-human-intro-sequence-b+4", 2, ["NO-XGO"], ""], +["sidekick-human-intro-sequence-b+5", "sidekick-human-intro-sequence-b+5", 2, ["NO-XGO"], ""], +["sidekick-human-intro-sequence-b+6", "sidekick-human-intro-sequence-b+6", 2, ["NO-XGO"], ""], +["sidekick-human-intro-sequence-b+7", "sidekick-human-intro-sequence-b+7", 2, ["NO-XGO"], ""], +["sidekick-human-intro-sequence-b+8", "sidekick-human-intro-sequence-b+8", 2, ["NO-XGO"], ""], +["sidekick-human-intro-sequence-b+9", "sidekick-human-intro-sequence-b+9", 2, ["NO-XGO"], ""], +["sidekick-human-intro-sequence-b+10", "sidekick-human-intro-sequence-b+10", 2, ["NO-XGO"], ""], +["assistant-introduction-blue-eco-switch+0", "assistant-introduction-blue-eco-switch+0", 2, ["NO-XGO"], ""], +["assistant-introduction-blue-eco-switch+1", "assistant-introduction-blue-eco-switch+1", 2, ["NO-XGO"], ""], +["assistant-introduction-blue-eco-switch+2", "assistant-introduction-blue-eco-switch+2", 2, ["NO-XGO"], ""], +["assistant-introduction-blue-eco-switch+3", "assistant-introduction-blue-eco-switch+3", 2, ["NO-XGO"], ""], +["assistant-introduction-blue-eco-switch+4", "assistant-introduction-blue-eco-switch+4", 2, ["NO-XGO"], ""], +["assistant-introduction-blue-eco-switch+5", "assistant-introduction-blue-eco-switch+5", 2, ["NO-XGO"], ""], +["assistant-introduction-blue-eco-switch+6", "assistant-introduction-blue-eco-switch+6", 2, ["NO-XGO"], ""], +["assistant-introduction-blue-eco-switch+7", "assistant-introduction-blue-eco-switch+7", 2, ["NO-XGO"], ""], +["assistant-introduction-blue-eco-switch+8", "assistant-introduction-blue-eco-switch+8", 2, ["NO-XGO"], ""], +["assistant-introduction-blue-eco-switch+9", "assistant-introduction-blue-eco-switch+9", 2, ["NO-XGO"], ""], +["assistant-introduction-blue-eco-switch+10", "assistant-introduction-blue-eco-switch+10", 2, ["NO-XGO"], ""], +["bird-lady-beach-resolution+0", "bird-lady-beach-resolution+0", 2, ["NO-XGO"], ""], +["bird-lady-beach-resolution+1", "bird-lady-beach-resolution+1", 2, ["NO-XGO"], ""], +["bird-lady-beach-resolution+2", "bird-lady-beach-resolution+2", 2, ["NO-XGO"], ""], +["bird-lady-beach-resolution+3", "bird-lady-beach-resolution+3", 2, ["NO-XGO"], ""], +["bird-lady-beach-resolution+4", "bird-lady-beach-resolution+4", 2, ["NO-XGO"], ""], +["bird-lady-beach-resolution+5", "bird-lady-beach-resolution+5", 2, ["NO-XGO"], ""], +["bird-lady-beach-resolution+6", "bird-lady-beach-resolution+6", 2, ["NO-XGO"], ""], +["bird-lady-beach-resolution+7", "bird-lady-beach-resolution+7", 2, ["NO-XGO"], ""], +["bird-lady-beach-resolution+8", "bird-lady-beach-resolution+8", 2, ["NO-XGO"], ""], +["bird-lady-beach-resolution+9", "bird-lady-beach-resolution+9", 2, ["NO-XGO"], ""], +["fishermans-boat-ride-to-village1-alt+0", "fishermans-boat-ride-to-village1-alt+0", 2, ["NO-XGO"], ""], +["fishermans-boat-ride-to-village1-alt+1", "fishermans-boat-ride-to-village1-alt+1", 2, ["NO-XGO"], ""], +["fishermans-boat-ride-to-village1-alt+2", "fishermans-boat-ride-to-village1-alt+2", 2, ["NO-XGO"], ""], +["fishermans-boat-ride-to-village1-alt+3", "fishermans-boat-ride-to-village1-alt+3", 2, ["NO-XGO"], ""], +["fishermans-boat-ride-to-village1-alt+4", "fishermans-boat-ride-to-village1-alt+4", 2, ["NO-XGO"], ""], +["fishermans-boat-ride-to-village1-alt+5", "fishermans-boat-ride-to-village1-alt+5", 2, ["NO-XGO"], ""], +["fishermans-boat-ride-to-village1-alt+6", "fishermans-boat-ride-to-village1-alt+6", 2, ["NO-XGO"], ""], +["fishermans-boat-ride-to-village1-alt+7", "fishermans-boat-ride-to-village1-alt+7", 2, ["NO-XGO"], ""], +["fishermans-boat-ride-to-village1-alt+8", "fishermans-boat-ride-to-village1-alt+8", 2, ["NO-XGO"], ""], +["fishermans-boat-ride-to-village1-alt+9", "fishermans-boat-ride-to-village1-alt+9", 2, ["NO-XGO"], ""], +["fishermans-boat-ride-to-village1-alt+10", "fishermans-boat-ride-to-village1-alt+10", 2, ["NO-XGO"], ""], +["fishermans-boat-ride-to-village1-alt+11", "fishermans-boat-ride-to-village1-alt+11", 2, ["NO-XGO"], ""], +["assistant-village2-introduction+0", "assistant-village2-introduction+0", 2, ["NO-XGO"], ""], +["assistant-village2-introduction+1", "assistant-village2-introduction+1", 2, ["NO-XGO"], ""], +["assistant-village2-introduction+2", "assistant-village2-introduction+2", 2, ["NO-XGO"], ""], +["assistant-village2-introduction+3", "assistant-village2-introduction+3", 2, ["NO-XGO"], ""], +["assistant-village2-introduction+4", "assistant-village2-introduction+4", 2, ["NO-XGO"], ""], +["assistant-village2-introduction+5", "assistant-village2-introduction+5", 2, ["NO-XGO"], ""], +["assistant-village2-introduction+6", "assistant-village2-introduction+6", 2, ["NO-XGO"], ""], +["assistant-village2-introduction+7", "assistant-village2-introduction+7", 2, ["NO-XGO"], ""], +["assistant-village2-introduction+8", "assistant-village2-introduction+8", 2, ["NO-XGO"], ""], +["assistant-village2-introduction+9", "assistant-village2-introduction+9", 2, ["NO-XGO"], ""], +["assistant-village2-introduction+10", "assistant-village2-introduction+10", 2, ["NO-XGO"], ""], +["assistant-village2-introduction+11", "assistant-village2-introduction+11", 2, ["NO-XGO"], ""], +["assistant-village2-introduction+12", "assistant-village2-introduction+12", 2, ["NO-XGO"], ""], +["assistant-village2-introduction+13", "assistant-village2-introduction+13", 2, ["NO-XGO"], ""], +["assistant-village2-introduction+14", "assistant-village2-introduction+14", 2, ["NO-XGO"], ""], +["assistant-village2-introduction+15", "assistant-village2-introduction+15", 2, ["NO-XGO"], ""], +["geologist-introduction+0", "geologist-introduction+0", 2, ["NO-XGO"], ""], +["geologist-introduction+1", "geologist-introduction+1", 2, ["NO-XGO"], ""], +["geologist-introduction+2", "geologist-introduction+2", 2, ["NO-XGO"], ""], +["geologist-introduction+3", "geologist-introduction+3", 2, ["NO-XGO"], ""], +["geologist-introduction+4", "geologist-introduction+4", 2, ["NO-XGO"], ""], +["geologist-introduction+5", "geologist-introduction+5", 2, ["NO-XGO"], ""], +["geologist-introduction+6", "geologist-introduction+6", 2, ["NO-XGO"], ""], +["geologist-introduction+7", "geologist-introduction+7", 2, ["NO-XGO"], ""], +["geologist-introduction+8", "geologist-introduction+8", 2, ["NO-XGO"], ""], +["geologist-introduction+9", "geologist-introduction+9", 2, ["NO-XGO"], ""], +["geologist-introduction+10", "geologist-introduction+10", 2, ["NO-XGO"], ""], +["geologist-introduction+11", "geologist-introduction+11", 2, ["NO-XGO"], ""], +["geologist-introduction+12", "geologist-introduction+12", 2, ["NO-XGO"], ""], +["sage-intro-sequence-d1+0", "sage-intro-sequence-d1+0", 2, ["NO-XGO"], ""], +["sage-intro-sequence-d1+1", "sage-intro-sequence-d1+1", 2, ["NO-XGO"], ""], +["sage-intro-sequence-d1+2", "sage-intro-sequence-d1+2", 2, ["NO-XGO"], ""], +["sage-intro-sequence-d1+3", "sage-intro-sequence-d1+3", 2, ["NO-XGO"], ""], +["sage-intro-sequence-d1+4", "sage-intro-sequence-d1+4", 2, ["NO-XGO"], ""], +["sage-intro-sequence-d1+5", "sage-intro-sequence-d1+5", 2, ["NO-XGO"], ""], +["sage-intro-sequence-d1+6", "sage-intro-sequence-d1+6", 2, ["NO-XGO"], ""], +["sage-intro-sequence-d1+7", "sage-intro-sequence-d1+7", 2, ["NO-XGO"], ""], +["sage-intro-sequence-d1+8", "sage-intro-sequence-d1+8", 2, ["NO-XGO"], ""], +["sage-intro-sequence-d1+9", "sage-intro-sequence-d1+9", 2, ["NO-XGO"], ""], +["sage-intro-sequence-d1+10", "sage-intro-sequence-d1+10", 2, ["NO-XGO"], ""], +["sage-intro-sequence-d1+11", "sage-intro-sequence-d1+11", 2, ["NO-XGO"], ""], +["sage-intro-sequence-d1+12", "sage-intro-sequence-d1+12", 2, ["NO-XGO"], ""], +["sage-intro-sequence-d1+13", "sage-intro-sequence-d1+13", 2, ["NO-XGO"], ""], +["sage-intro-sequence-d1+14", "sage-intro-sequence-d1+14", 2, ["NO-XGO"], ""], +["sage-intro-sequence-d1+15", "sage-intro-sequence-d1+15", 2, ["NO-XGO"], ""], +["sage-intro-sequence-d1+16", "sage-intro-sequence-d1+16", 2, ["NO-XGO"], ""], +["sage-intro-sequence-a+0", "sage-intro-sequence-a+0", 2, ["NO-XGO"], ""], +["sage-intro-sequence-a+1", "sage-intro-sequence-a+1", 2, ["NO-XGO"], ""], +["sage-intro-sequence-a+2", "sage-intro-sequence-a+2", 2, ["NO-XGO"], ""], +["sage-intro-sequence-a+3", "sage-intro-sequence-a+3", 2, ["NO-XGO"], ""], +["sage-intro-sequence-a+4", "sage-intro-sequence-a+4", 2, ["NO-XGO"], ""], +["sage-intro-sequence-a+5", "sage-intro-sequence-a+5", 2, ["NO-XGO"], ""], +["sage-intro-sequence-a+6", "sage-intro-sequence-a+6", 2, ["NO-XGO"], ""], +["sage-intro-sequence-a+7", "sage-intro-sequence-a+7", 2, ["NO-XGO"], ""], +["sage-intro-sequence-a+8", "sage-intro-sequence-a+8", 2, ["NO-XGO"], ""], +["sage-intro-sequence-a+9", "sage-intro-sequence-a+9", 2, ["NO-XGO"], ""], +["sage-intro-sequence-a+10", "sage-intro-sequence-a+10", 2, ["NO-XGO"], ""], +["sage-intro-sequence-a+11", "sage-intro-sequence-a+11", 2, ["NO-XGO"], ""], +["sage-intro-sequence-a+12", "sage-intro-sequence-a+12", 2, ["NO-XGO"], ""], +["sage-intro-sequence-a+13", "sage-intro-sequence-a+13", 2, ["NO-XGO"], ""], +["sage-intro-sequence-a+14", "sage-intro-sequence-a+14", 2, ["NO-XGO"], ""], +["sage-intro-sequence-a+15", "sage-intro-sequence-a+15", 2, ["NO-XGO"], ""], +["sage-intro-sequence-a+16", "sage-intro-sequence-a+16", 2, ["NO-XGO"], ""], +["sage-intro-sequence-a+17", "sage-intro-sequence-a+17", 2, ["NO-XGO"], ""], +["sage-intro-sequence-a+18", "sage-intro-sequence-a+18", 2, ["NO-XGO"], ""], +["sage-intro-sequence-a+19", "sage-intro-sequence-a+19", 2, ["NO-XGO"], ""], +["sage-intro-sequence-a+20", "sage-intro-sequence-a+20", 2, ["NO-XGO"], ""], +["sage-intro-sequence-a+21", "sage-intro-sequence-a+21", 2, ["NO-XGO"], ""], +["sidekick-human-intro-sequence-c+0", "sidekick-human-intro-sequence-c+0", 2, ["NO-XGO"], ""], +["sidekick-human-intro-sequence-c+1", "sidekick-human-intro-sequence-c+1", 2, ["NO-XGO"], ""], +["sidekick-human-intro-sequence-c+2", "sidekick-human-intro-sequence-c+2", 2, ["NO-XGO"], ""], +["sidekick-human-intro-sequence-c+3", "sidekick-human-intro-sequence-c+3", 2, ["NO-XGO"], ""], +["sidekick-human-intro-sequence-c+4", "sidekick-human-intro-sequence-c+4", 2, ["NO-XGO"], ""], +["sidekick-human-intro-sequence-c+5", "sidekick-human-intro-sequence-c+5", 2, ["NO-XGO"], ""], +["sidekick-human-intro-sequence-c+6", "sidekick-human-intro-sequence-c+6", 2, ["NO-XGO"], ""], +["sidekick-human-intro-sequence-c+7", "sidekick-human-intro-sequence-c+7", 2, ["NO-XGO"], ""], +["sidekick-human-intro-sequence-c+8", "sidekick-human-intro-sequence-c+8", 2, ["NO-XGO"], ""], +["sidekick-human-intro-sequence-c+9", "sidekick-human-intro-sequence-c+9", 2, ["NO-XGO"], ""], +["sidekick-human-intro-sequence-c+10", "sidekick-human-intro-sequence-c+10", 2, ["NO-XGO"], ""], +["sidekick-human-intro-sequence-c+11", "sidekick-human-intro-sequence-c+11", 2, ["NO-XGO"], ""], +["sidekick-human-intro-sequence-c+12", "sidekick-human-intro-sequence-c+12", 2, ["NO-XGO"], ""], +["sidekick-human-intro-sequence-c+13", "sidekick-human-intro-sequence-c+13", 2, ["NO-XGO"], ""], +["sidekick-human-intro-sequence-c+14", "sidekick-human-intro-sequence-c+14", 2, ["NO-XGO"], ""], +["sidekick-human-intro-sequence-c+15", "sidekick-human-intro-sequence-c+15", 2, ["NO-XGO"], ""], +["sidekick-human-intro-sequence-c+16", "sidekick-human-intro-sequence-c+16", 2, ["NO-XGO"], ""], +["sidekick-human-intro-sequence-c+17", "sidekick-human-intro-sequence-c+17", 2, ["NO-XGO"], ""], +["sidekick-human-intro-sequence-c+18", "sidekick-human-intro-sequence-c+18", 2, ["NO-XGO"], ""], +["sidekick-human-intro-sequence-c+19", "sidekick-human-intro-sequence-c+19", 2, ["NO-XGO"], ""], +["sidekick-human-intro-sequence-c+20", "sidekick-human-intro-sequence-c+20", 2, ["NO-XGO"], ""], +["sidekick-human-intro-sequence-c+21", "sidekick-human-intro-sequence-c+21", 2, ["NO-XGO"], ""], +["minershort-introduction-orbs+0", "minershort-introduction-orbs+0", 2, ["NO-XGO"], ""], +["minershort-introduction-orbs+1", "minershort-introduction-orbs+1", 2, ["NO-XGO"], ""], +["minershort-introduction-orbs+2", "minershort-introduction-orbs+2", 2, ["NO-XGO"], ""], +["minershort-introduction-orbs+3", "minershort-introduction-orbs+3", 2, ["NO-XGO"], ""], +["minershort-introduction-orbs+4", "minershort-introduction-orbs+4", 2, ["NO-XGO"], ""], +["minershort-introduction-orbs+5", "minershort-introduction-orbs+5", 2, ["NO-XGO"], ""], +["minershort-introduction-orbs+6", "minershort-introduction-orbs+6", 2, ["NO-XGO"], ""], +["minershort-introduction-orbs+7", "minershort-introduction-orbs+7", 2, ["NO-XGO"], ""], +["minershort-introduction-orbs+8", "minershort-introduction-orbs+8", 2, ["NO-XGO"], ""], +["minershort-introduction-orbs+9", "minershort-introduction-orbs+9", 2, ["NO-XGO"], ""], +["minershort-introduction-orbs+10", "minershort-introduction-orbs+10", 2, ["NO-XGO"], ""], +["minershort-introduction-orbs+11", "minershort-introduction-orbs+11", 2, ["NO-XGO"], ""], +["minershort-introduction-orbs+12", "minershort-introduction-orbs+12", 2, ["NO-XGO"], ""], +["minershort-introduction-orbs+13", "minershort-introduction-orbs+13", 2, ["NO-XGO"], ""], +["minershort-introduction-orbs+14", "minershort-introduction-orbs+14", 2, ["NO-XGO"], ""], +["minershort-introduction-orbs+15", "minershort-introduction-orbs+15", 2, ["NO-XGO"], ""], +["warrior-introduction+0", "warrior-introduction+0", 2, ["NO-XGO"], ""], +["warrior-introduction+1", "warrior-introduction+1", 2, ["NO-XGO"], ""], +["warrior-introduction+2", "warrior-introduction+2", 2, ["NO-XGO"], ""], +["warrior-introduction+3", "warrior-introduction+3", 2, ["NO-XGO"], ""], +["warrior-introduction+4", "warrior-introduction+4", 2, ["NO-XGO"], ""], +["warrior-introduction+5", "warrior-introduction+5", 2, ["NO-XGO"], ""], +["warrior-introduction+6", "warrior-introduction+6", 2, ["NO-XGO"], ""], +["warrior-introduction+7", "warrior-introduction+7", 2, ["NO-XGO"], ""], +["warrior-introduction+8", "warrior-introduction+8", 2, ["NO-XGO"], ""], +["warrior-introduction+9", "warrior-introduction+9", 2, ["NO-XGO"], ""], +["warrior-introduction+10", "warrior-introduction+10", 2, ["NO-XGO"], ""], +["warrior-introduction+11", "warrior-introduction+11", 2, ["NO-XGO"], ""], +["warrior-introduction+12", "warrior-introduction+12", 2, ["NO-XGO"], ""], +["warrior-introduction+13", "warrior-introduction+13", 2, ["NO-XGO"], ""], +["warrior-introduction+14", "warrior-introduction+14", 2, ["NO-XGO"], ""], +["warrior-introduction+15", "warrior-introduction+15", 2, ["NO-XGO"], ""], +["warrior-introduction+16", "warrior-introduction+16", 2, ["NO-XGO"], ""], +["warrior-introduction+17", "warrior-introduction+17", 2, ["NO-XGO"], ""], +["warrior-introduction+18", "warrior-introduction+18", 2, ["NO-XGO"], ""], +["warrior-introduction+19", "warrior-introduction+19", 2, ["NO-XGO"], ""], +["warrior-introduction+20", "warrior-introduction+20", 2, ["NO-XGO"], ""], +["warrior-introduction+21", "warrior-introduction+21", 2, ["NO-XGO"], ""], +["warrior-introduction+22", "warrior-introduction+22", 2, ["NO-XGO"], ""], +["warrior-introduction+23", "warrior-introduction+23", 2, ["NO-XGO"], ""], +["warrior-introduction+24", "warrior-introduction+24", 2, ["NO-XGO"], ""], +["warrior-introduction+25", "warrior-introduction+25", 2, ["NO-XGO"], ""], +["warrior-introduction+26", "warrior-introduction+26", 2, ["NO-XGO"], ""], +["warrior-introduction+27", "warrior-introduction+27", 2, ["NO-XGO"], ""], +["warrior-introduction+28", "warrior-introduction+28", 2, ["NO-XGO"], ""], +["sage-intro-sequence-d2+0", "sage-intro-sequence-d2+0", 2, ["NO-XGO"], ""], +["sage-intro-sequence-d2+1", "sage-intro-sequence-d2+1", 2, ["NO-XGO"], ""], +["sage-intro-sequence-d2+2", "sage-intro-sequence-d2+2", 2, ["NO-XGO"], ""], +["sage-intro-sequence-d2+3", "sage-intro-sequence-d2+3", 2, ["NO-XGO"], ""], +["sage-intro-sequence-d2+4", "sage-intro-sequence-d2+4", 2, ["NO-XGO"], ""], +["sage-intro-sequence-d2+5", "sage-intro-sequence-d2+5", 2, ["NO-XGO"], ""], +["sage-intro-sequence-d2+6", "sage-intro-sequence-d2+6", 2, ["NO-XGO"], ""], +["sage-intro-sequence-d2+7", "sage-intro-sequence-d2+7", 2, ["NO-XGO"], ""], +["sage-intro-sequence-d2+8", "sage-intro-sequence-d2+8", 2, ["NO-XGO"], ""], +["sage-intro-sequence-d2+9", "sage-intro-sequence-d2+9", 2, ["NO-XGO"], ""], +["sage-intro-sequence-d2+10", "sage-intro-sequence-d2+10", 2, ["NO-XGO"], ""], +["sage-intro-sequence-d2+11", "sage-intro-sequence-d2+11", 2, ["NO-XGO"], ""], +["sage-intro-sequence-d2+12", "sage-intro-sequence-d2+12", 2, ["NO-XGO"], ""], +["sage-intro-sequence-d2+13", "sage-intro-sequence-d2+13", 2, ["NO-XGO"], ""], +["sage-intro-sequence-d2+14", "sage-intro-sequence-d2+14", 2, ["NO-XGO"], ""], +["sage-intro-sequence-d2+15", "sage-intro-sequence-d2+15", 2, ["NO-XGO"], ""], +["sage-intro-sequence-d2+16", "sage-intro-sequence-d2+16", 2, ["NO-XGO"], ""], +["sage-intro-sequence-d2+17", "sage-intro-sequence-d2+17", 2, ["NO-XGO"], ""], +["sage-intro-sequence-d2+18", "sage-intro-sequence-d2+18", 2, ["NO-XGO"], ""], +["sage-intro-sequence-d2+19", "sage-intro-sequence-d2+19", 2, ["NO-XGO"], ""], +["green-sagecage-outro-preboss+0", "green-sagecage-outro-preboss+0", 2, ["NO-XGO"], ""], +["green-sagecage-outro-preboss+1", "green-sagecage-outro-preboss+1", 2, ["NO-XGO"], ""], +["green-sagecage-outro-preboss+2", "green-sagecage-outro-preboss+2", 2, ["NO-XGO"], ""], +["green-sagecage-outro-preboss+3", "green-sagecage-outro-preboss+3", 2, ["NO-XGO"], ""], +["green-sagecage-outro-preboss+4", "green-sagecage-outro-preboss+4", 2, ["NO-XGO"], ""], +["green-sagecage-outro-preboss+5", "green-sagecage-outro-preboss+5", 2, ["NO-XGO"], ""], +["green-sagecage-outro-preboss+6", "green-sagecage-outro-preboss+6", 2, ["NO-XGO"], ""], +["green-sagecage-outro-preboss+7", "green-sagecage-outro-preboss+7", 2, ["NO-XGO"], ""], +["green-sagecage-outro-preboss+8", "green-sagecage-outro-preboss+8", 2, ["NO-XGO"], ""], +["green-sagecage-outro-preboss+9", "green-sagecage-outro-preboss+9", 2, ["NO-XGO"], ""], +["green-sagecage-outro-preboss+10", "green-sagecage-outro-preboss+10", 2, ["NO-XGO"], ""], +["green-sagecage-outro-preboss+11", "green-sagecage-outro-preboss+11", 2, ["NO-XGO"], ""], +["green-sagecage-outro-preboss+12", "green-sagecage-outro-preboss+12", 2, ["NO-XGO"], ""], +["green-sagecage-outro-preboss+13", "green-sagecage-outro-preboss+13", 2, ["NO-XGO"], ""], +["green-sagecage-outro-preboss+14", "green-sagecage-outro-preboss+14", 2, ["NO-XGO"], ""], +["green-sagecage-outro-preboss+15", "green-sagecage-outro-preboss+15", 2, ["NO-XGO"], ""], +["green-sagecage-outro-preboss+16", "green-sagecage-outro-preboss+16", 2, ["NO-XGO"], ""], +["green-sagecage-outro-preboss+17", "green-sagecage-outro-preboss+17", 2, ["NO-XGO"], ""], +["green-sagecage-outro-preboss+18", "green-sagecage-outro-preboss+18", 2, ["NO-XGO"], ""], +["green-sagecage-outro-preboss+19", "green-sagecage-outro-preboss+19", 2, ["NO-XGO"], ""], +["green-sagecage-outro-preboss+20", "green-sagecage-outro-preboss+20", 2, ["NO-XGO"], ""], +["green-sagecage-outro-preboss+21", "green-sagecage-outro-preboss+21", 2, ["NO-XGO"], ""], +["green-sagecage-outro-beat-boss-b+0", "green-sagecage-outro-beat-boss-b+0", 2, ["NO-XGO"], ""], +["green-sagecage-outro-beat-boss-b+1", "green-sagecage-outro-beat-boss-b+1", 2, ["NO-XGO"], ""], +["green-sagecage-outro-beat-boss-b+2", "green-sagecage-outro-beat-boss-b+2", 2, ["NO-XGO"], ""], +["green-sagecage-outro-beat-boss-b+3", "green-sagecage-outro-beat-boss-b+3", 2, ["NO-XGO"], ""], +["green-sagecage-outro-beat-boss-b+4", "green-sagecage-outro-beat-boss-b+4", 2, ["NO-XGO"], ""], +["green-sagecage-outro-beat-boss-b+5", "green-sagecage-outro-beat-boss-b+5", 2, ["NO-XGO"], ""], +["green-sagecage-outro-beat-boss-b+6", "green-sagecage-outro-beat-boss-b+6", 2, ["NO-XGO"], ""], +["green-sagecage-outro-beat-boss-b+7", "green-sagecage-outro-beat-boss-b+7", 2, ["NO-XGO"], ""], +["green-sagecage-outro-beat-boss-b+8", "green-sagecage-outro-beat-boss-b+8", 2, ["NO-XGO"], ""], +["green-sagecage-outro-beat-boss-b+9", "green-sagecage-outro-beat-boss-b+9", 2, ["NO-XGO"], ""], +["green-sagecage-outro-beat-boss-b+10", "green-sagecage-outro-beat-boss-b+10", 2, ["NO-XGO"], ""], +["green-sagecage-outro-beat-boss-b+11", "green-sagecage-outro-beat-boss-b+11", 2, ["NO-XGO"], ""], +["green-sagecage-outro-beat-boss-b+12", "green-sagecage-outro-beat-boss-b+12", 2, ["NO-XGO"], ""], +["green-sagecage-outro-beat-boss-b+13", "green-sagecage-outro-beat-boss-b+13", 2, ["NO-XGO"], ""], +["green-sagecage-outro-beat-boss-b+14", "green-sagecage-outro-beat-boss-b+14", 2, ["NO-XGO"], ""], +["green-sagecage-outro-beat-boss-b+15", "green-sagecage-outro-beat-boss-b+15", 2, ["NO-XGO"], ""], +["green-sagecage-outro-beat-boss-b+16", "green-sagecage-outro-beat-boss-b+16", 2, ["NO-XGO"], ""], +["green-sagecage-outro-beat-boss-b+17", "green-sagecage-outro-beat-boss-b+17", 2, ["NO-XGO"], ""], +["green-sagecage-outro-beat-boss-b+18", "green-sagecage-outro-beat-boss-b+18", 2, ["NO-XGO"], ""], +["green-sagecage-outro-beat-boss-b+19", "green-sagecage-outro-beat-boss-b+19", 2, ["NO-XGO"], ""], +["green-sagecage-outro-beat-boss-b+20", "green-sagecage-outro-beat-boss-b+20", 2, ["NO-XGO"], ""], +["green-sagecage-outro-beat-boss-b+21", "green-sagecage-outro-beat-boss-b+21", 2, ["NO-XGO"], ""], +["green-sagecage-outro-beat-boss-b+22", "green-sagecage-outro-beat-boss-b+22", 2, ["NO-XGO"], ""], +["green-sagecage-outro-beat-boss-b+23", "green-sagecage-outro-beat-boss-b+23", 2, ["NO-XGO"], ""], +["green-sagecage-outro-beat-boss-b+24", "green-sagecage-outro-beat-boss-b+24", 2, ["NO-XGO"], ""], +["green-sagecage-outro-beat-boss-b+25", "green-sagecage-outro-beat-boss-b+25", 2, ["NO-XGO"], ""], +["green-sagecage-outro-beat-boss-b+26", "green-sagecage-outro-beat-boss-b+26", 2, ["NO-XGO"], ""], +["sage-village3-introduction+0", "sage-village3-introduction+0", 2, ["NO-XGO"], ""], +["sage-village3-introduction+1", "sage-village3-introduction+1", 2, ["NO-XGO"], ""], +["sage-village3-introduction+2", "sage-village3-introduction+2", 2, ["NO-XGO"], ""], +["sage-village3-introduction+3", "sage-village3-introduction+3", 2, ["NO-XGO"], ""], +["sage-village3-introduction+4", "sage-village3-introduction+4", 2, ["NO-XGO"], ""], +["sage-village3-introduction+5", "sage-village3-introduction+5", 2, ["NO-XGO"], ""], +["sage-village3-introduction+6", "sage-village3-introduction+6", 2, ["NO-XGO"], ""], +["sage-village3-introduction+7", "sage-village3-introduction+7", 2, ["NO-XGO"], ""], +["sage-village3-introduction+8", "sage-village3-introduction+8", 2, ["NO-XGO"], ""], +["sage-village3-introduction+9", "sage-village3-introduction+9", 2, ["NO-XGO"], ""], +["sage-village3-introduction+10", "sage-village3-introduction+10", 2, ["NO-XGO"], ""], +["sage-village3-introduction+11", "sage-village3-introduction+11", 2, ["NO-XGO"], ""], +["sage-village3-introduction+12", "sage-village3-introduction+12", 2, ["NO-XGO"], ""], +["sage-village3-introduction+13", "sage-village3-introduction+13", 2, ["NO-XGO"], ""], +["sage-village3-introduction+14", "sage-village3-introduction+14", 2, ["NO-XGO"], ""], +["sage-village3-introduction+15", "sage-village3-introduction+15", 2, ["NO-XGO"], ""], +["sage-village3-introduction+16", "sage-village3-introduction+16", 2, ["NO-XGO"], ""], +["sage-village3-introduction+17", "sage-village3-introduction+17", 2, ["NO-XGO"], ""], +["sage-village3-introduction+18", "sage-village3-introduction+18", 2, ["NO-XGO"], ""], +["sage-village3-introduction+19", "sage-village3-introduction+19", 2, ["NO-XGO"], ""], +["sage-village3-introduction+20", "sage-village3-introduction+20", 2, ["NO-XGO"], ""], +["sage-village3-introduction+21", "sage-village3-introduction+21", 2, ["NO-XGO"], ""], +["sage-village3-introduction+22", "sage-village3-introduction+22", 2, ["NO-XGO"], ""], +["sage-village3-introduction+23", "sage-village3-introduction+23", 2, ["NO-XGO"], ""], +["sage-village3-introduction+24", "sage-village3-introduction+24", 2, ["NO-XGO"], ""], +["sage-village3-introduction+25", "sage-village3-introduction+25", 2, ["NO-XGO"], ""], +["sage-village3-introduction+26", "sage-village3-introduction+26", 2, ["NO-XGO"], ""], +["sage-village3-introduction+27", "sage-village3-introduction+27", 2, ["NO-XGO"], ""], +["sage-village3-introduction+28", "sage-village3-introduction+28", 2, ["NO-XGO"], ""], +["sage-village3-introduction+29", "sage-village3-introduction+29", 2, ["NO-XGO"], ""], +["sage-village3-introduction+30", "sage-village3-introduction+30", 2, ["NO-XGO"], ""], +["sage-village3-introduction+31", "sage-village3-introduction+31", 2, ["NO-XGO"], ""], +["sage-village3-introduction+32", "sage-village3-introduction+32", 2, ["NO-XGO"], ""], +["sage-village3-introduction+33", "sage-village3-introduction+33", 2, ["NO-XGO"], ""], +["sage-village3-introduction+34", "sage-village3-introduction+34", 2, ["NO-XGO"], ""], +["sage-village3-introduction+35", "sage-village3-introduction+35", 2, ["NO-XGO"], ""], +["sage-village3-introduction+36", "sage-village3-introduction+36", 2, ["NO-XGO"], ""], +["sage-village3-introduction+37", "sage-village3-introduction+37", 2, ["NO-XGO"], ""], +["sage-village3-introduction+38", "sage-village3-introduction+38", 2, ["NO-XGO"], ""], +["sage-village3-introduction+39", "sage-village3-introduction+39", 2, ["NO-XGO"], ""], +["sage-village3-introduction+40", "sage-village3-introduction+40", 2, ["NO-XGO"], ""], +["sage-village3-introduction+41", "sage-village3-introduction+41", 2, ["NO-XGO"], ""], +["sage-village3-introduction+42", "sage-village3-introduction+42", 2, ["NO-XGO"], ""], +["sage-village3-introduction+43", "sage-village3-introduction+43", 2, ["NO-XGO"], ""], +["sage-village3-introduction+44", "sage-village3-introduction+44", 2, ["NO-XGO"], ""], +["sage-village3-introduction+45", "sage-village3-introduction+45", 2, ["NO-XGO"], ""], +["sage-village3-introduction+46", "sage-village3-introduction+46", 2, ["NO-XGO"], ""], +["sage-village3-introduction+47", "sage-village3-introduction+47", 2, ["NO-XGO"], ""], +["sage-village3-introduction+48", "sage-village3-introduction+48", 2, ["NO-XGO"], ""], +["sage-village3-introduction+49", "sage-village3-introduction+49", 2, ["NO-XGO"], ""], +["sage-village3-introduction+50", "sage-village3-introduction+50", 2, ["NO-XGO"], ""], +["sage-village3-introduction+51", "sage-village3-introduction+51", 2, ["NO-XGO"], ""], +["sage-village3-introduction+52", "sage-village3-introduction+52", 2, ["NO-XGO"], ""], +["sage-village3-introduction+53", "sage-village3-introduction+53", 2, ["NO-XGO"], ""], +["sage-village3-introduction+54", "sage-village3-introduction+54", 2, ["NO-XGO"], ""], +["sage-village3-introduction+55", "sage-village3-introduction+55", 2, ["NO-XGO"], ""], +["sage-village3-introduction+56", "sage-village3-introduction+56", 2, ["NO-XGO"], ""], +["sage-village3-introduction+57", "sage-village3-introduction+57", 2, ["NO-XGO"], ""]] diff --git a/goal_src/build/all_objs_jak1_pal.json b/goal_src/build/all_objs_jak1_pal.json new file mode 100644 index 0000000000..2a247c1169 --- /dev/null +++ b/goal_src/build/all_objs_jak1_pal.json @@ -0,0 +1,2128 @@ +[["gcommon", "gcommon", 3, ["KERNEL"], ""], +["gstring-h", "gstring-h", 3, ["KERNEL"], ""], +["gkernel-h", "gkernel-h", 3, ["KERNEL"], ""], +["gkernel", "gkernel", 3, ["KERNEL"], ""], +["pskernel", "pskernel", 3, ["KERNEL"], ""], +["gstring", "gstring", 3, ["KERNEL"], ""], +["dgo-h", "dgo-h", 3, ["KERNEL"], ""], +["gstate", "gstate", 3, ["KERNEL"], ""], +["types-h", "types-h", 3, ["ENGINE", "GAME"], ""], +["vu1-macros", "vu1-macros", 3, ["ENGINE", "GAME"], ""], +["math", "math", 3, ["ENGINE", "GAME"], ""], +["vector-h", "vector-h", 3, ["ENGINE", "GAME"], ""], +["gravity-h", "gravity-h", 3, ["ENGINE", "GAME"], ""], +["bounding-box-h", "bounding-box-h", 3, ["ENGINE", "GAME"], ""], +["matrix-h", "matrix-h", 3, ["ENGINE", "GAME"], ""], +["quaternion-h", "quaternion-h", 3, ["ENGINE", "GAME"], ""], +["euler-h", "euler-h", 3, ["ENGINE", "GAME"], ""], +["transform-h", "transform-h", 3, ["ENGINE", "GAME"], ""], +["geometry-h", "geometry-h", 3, ["ENGINE", "GAME"], ""], +["trigonometry-h", "trigonometry-h", 3, ["ENGINE", "GAME"], ""], +["transformq-h", "transformq-h", 3, ["ENGINE", "GAME"], ""], +["bounding-box", "bounding-box", 3, ["ENGINE", "GAME"], ""], +["matrix", "matrix", 3, ["ENGINE", "GAME"], ""], +["transform", "transform", 3, ["ENGINE", "GAME"], ""], +["quaternion", "quaternion", 3, ["ENGINE", "GAME"], ""], +["euler", "euler", 3, ["ENGINE", "GAME"], ""], +["geometry", "geometry", 3, ["ENGINE", "GAME"], ""], +["trigonometry", "trigonometry", 3, ["ENGINE", "GAME"], ""], +["gsound-h", "gsound-h", 3, ["ENGINE", "GAME"], ""], +["timer-h", "timer-h", 3, ["ENGINE", "GAME"], ""], +["timer", "timer", 3, ["ENGINE", "GAME"], ""], +["vif-h", "vif-h", 3, ["ENGINE", "GAME"], ""], +["dma-h", "dma-h", 3, ["ENGINE", "GAME"], ""], +["video-h", "video-h", 3, ["ENGINE", "GAME"], ""], +["vu1-user-h", "vu1-user-h", 3, ["ENGINE", "GAME"], ""], +["dma", "dma", 3, ["ENGINE", "GAME"], ""], +["dma-buffer", "dma-buffer", 3, ["ENGINE", "GAME"], ""], +["dma-bucket", "dma-bucket", 3, ["ENGINE", "GAME"], ""], +["dma-disasm", "dma-disasm", 3, ["ENGINE", "GAME"], ""], +["pad", "pad", 3, ["ENGINE", "GAME"], ""], +["gs", "gs", 3, ["ENGINE", "GAME"], ""], +["display-h", "display-h", 3, ["ENGINE", "GAME"], ""], +["vector", "vector", 3, ["ENGINE", "GAME"], ""], +["file-io", "file-io", 3, ["ENGINE", "GAME"], ""], +["loader-h", "loader-h", 3, ["ENGINE", "GAME"], ""], +["texture-h", "texture-h", 3, ["ENGINE", "GAME"], ""], +["level-h", "level-h", 3, ["ENGINE", "GAME"], ""], +["math-camera-h", "math-camera-h", 3, ["ENGINE", "GAME"], ""], +["math-camera", "math-camera", 3, ["ENGINE", "GAME"], ""], +["font-h", "font-h", 3, ["ENGINE", "GAME"], ""], +["decomp-h", "decomp-h", 3, ["ENGINE", "GAME"], ""], +["display", "display", 3, ["ENGINE", "GAME"], ""], +["connect", "connect", 3, ["ENGINE", "GAME"], ""], +["text-h", "text-h", 3, ["ENGINE", "GAME"], ""], +["settings-h", "settings-h", 3, ["ENGINE", "GAME"], ""], +["capture", "capture", 3, ["ENGINE", "GAME"], ""], +["memory-usage-h", "memory-usage-h", 3, ["ENGINE", "GAME"], ""], +["texture", "texture", 3, ["ENGINE", "GAME"], ""], +["main-h", "main-h", 3, ["ENGINE", "GAME"], ""], +["mspace-h", "mspace-h", 3, ["ENGINE", "GAME"], ""], +["drawable-h", "drawable-h", 3, ["ENGINE", "GAME"], ""], +["drawable-group-h", "drawable-group-h", 3, ["ENGINE", "GAME"], ""], +["drawable-inline-array-h", "drawable-inline-array-h", 3, ["ENGINE", "GAME"], ""], +["draw-node-h", "draw-node-h", 3, ["ENGINE", "GAME"], ""], +["drawable-tree-h", "drawable-tree-h", 3, ["ENGINE", "GAME"], ""], +["drawable-actor-h", "drawable-actor-h", 3, ["ENGINE", "GAME"], ""], +["drawable-ambient-h", "drawable-ambient-h", 3, ["ENGINE", "GAME"], ""], +["game-task-h", "game-task-h", 3, ["ENGINE", "GAME"], ""], +["hint-control-h", "hint-control-h", 3, ["ENGINE", "GAME"], ""], +["generic-h", "generic-h", 3, ["ENGINE", "GAME"], ""], +["lights-h", "lights-h", 3, ["ENGINE", "GAME"], ""], +["ocean-h", "ocean-h", 3, ["ENGINE", "GAME"], ""], +["ocean-trans-tables", "ocean-trans-tables", 3, ["ENGINE", "GAME"], ""], +["ocean-tables", "ocean-tables", 3, ["ENGINE", "GAME"], ""], +["ocean-frames", "ocean-frames", 3, ["ENGINE", "GAME"], ""], +["sky-h", "sky-h", 3, ["ENGINE", "GAME"], ""], +["mood-h", "mood-h", 3, ["ENGINE", "GAME"], ""], +["time-of-day-h", "time-of-day-h", 3, ["ENGINE", "GAME"], ""], +["art-h", "art-h", 3, ["ENGINE", "GAME"], ""], +["generic-vu1-h", "generic-vu1-h", 3, ["ENGINE", "GAME"], ""], +["merc-h", "merc-h", 3, ["ENGINE", "GAME"], ""], +["generic-merc-h", "generic-merc-h", 3, ["ENGINE", "GAME"], ""], +["generic-tie-h", "generic-tie-h", 3, ["ENGINE", "GAME"], ""], +["generic-work-h", "generic-work-h", 3, ["ENGINE", "GAME"], ""], +["shadow-cpu-h", "shadow-cpu-h", 3, ["ENGINE", "GAME"], ""], +["shadow-vu1-h", "shadow-vu1-h", 3, ["ENGINE", "GAME"], ""], +["memcard-h", "memcard-h", 3, ["ENGINE", "GAME"], ""], +["game-info-h", "game-info-h", 3, ["ENGINE", "GAME"], ""], +["wind-h", "wind-h", 3, ["ENGINE", "GAME"], ""], +["prototype-h", "prototype-h", 3, ["ENGINE", "GAME"], ""], +["joint-h", "joint-h", 3, ["ENGINE", "GAME"], ""], +["bones-h", "bones-h", 3, ["ENGINE", "GAME"], ""], +["engines", "engines", 3, ["ENGINE", "GAME"], ""], +["res-h", "res-h", 3, ["ENGINE", "GAME"], ""], +["res", "res", 3, ["ENGINE", "GAME"], ""], +["lights", "lights", 3, ["ENGINE", "GAME"], ""], +["dynamics-h", "dynamics-h", 3, ["ENGINE", "GAME"], ""], +["surface-h", "surface-h", 3, ["ENGINE", "GAME"], ""], +["pat-h", "pat-h", 3, ["ENGINE", "GAME"], ""], +["fact-h", "fact-h", 3, ["ENGINE", "GAME"], ""], +["aligner-h", "aligner-h", 3, ["ENGINE", "GAME"], ""], +["game-h", "game-h", 3, ["ENGINE", "GAME"], ""], +["generic-obs-h", "generic-obs-h", 3, ["ENGINE", "GAME"], ""], +["pov-camera-h", "pov-camera-h", 3, ["ENGINE", "GAME"], ""], +["sync-info-h", "sync-info-h", 3, ["ENGINE", "GAME"], ""], +["smush-control-h", "smush-control-h", 3, ["ENGINE", "GAME"], ""], +["trajectory-h", "trajectory-h", 3, ["ENGINE", "GAME"], ""], +["debug-h", "debug-h", 3, ["ENGINE", "GAME"], ""], +["joint-mod-h", "joint-mod-h", 3, ["ENGINE", "GAME"], ""], +["collide-func-h", "collide-func-h", 3, ["ENGINE", "GAME"], ""], +["collide-mesh-h", "collide-mesh-h", 3, ["ENGINE", "GAME"], ""], +["collide-shape-h", "collide-shape-h", 3, ["ENGINE", "GAME"], ""], +["collide-target-h", "collide-target-h", 3, ["ENGINE", "GAME"], ""], +["collide-touch-h", "collide-touch-h", 3, ["ENGINE", "GAME"], ""], +["collide-edge-grab-h", "collide-edge-grab-h", 3, ["ENGINE", "GAME"], ""], +["process-drawable-h", "process-drawable-h", 3, ["ENGINE", "GAME"], ""], +["effect-control-h", "effect-control-h", 3, ["ENGINE", "GAME"], ""], +["collide-frag-h", "collide-frag-h", 3, ["ENGINE", "GAME"], ""], +["projectiles-h", "projectiles-h", 3, ["ENGINE", "GAME"], ""], +["target-h", "target-h", 3, ["ENGINE", "GAME"], ""], +["depth-cue-h", "depth-cue-h", 3, ["ENGINE", "GAME"], ""], +["stats-h", "stats-h", 3, ["ENGINE", "GAME"], ""], +["bsp-h", "bsp-h", 3, ["ENGINE", "GAME"], ""], +["collide-cache-h", "collide-cache-h", 3, ["ENGINE", "GAME"], ""], +["collide-h", "collide-h", 3, ["ENGINE", "GAME"], ""], +["shrubbery-h", "shrubbery-h", 3, ["ENGINE", "GAME"], ""], +["tie-h", "tie-h", 3, ["ENGINE", "GAME"], ""], +["tfrag-h", "tfrag-h", 3, ["ENGINE", "GAME"], ""], +["background-h", "background-h", 3, ["ENGINE", "GAME"], ""], +["subdivide-h", "subdivide-h", 3, ["ENGINE", "GAME"], ""], +["entity-h", "entity-h", 3, ["ENGINE", "GAME"], ""], +["sprite-h", "sprite-h", 3, ["ENGINE", "GAME"], ""], +["shadow-h", "shadow-h", 3, ["ENGINE", "GAME"], ""], +["eye-h", "eye-h", 3, ["ENGINE", "GAME"], ""], +["sparticle-launcher-h", "sparticle-launcher-h", 3, ["ENGINE", "GAME"], ""], +["sparticle-h", "sparticle-h", 3, ["ENGINE", "GAME"], ""], +["actor-link-h", "actor-link-h", 3, ["ENGINE", "GAME"], ""], +["camera-h", "camera-h", 3, ["ENGINE", "GAME"], ""], +["cam-debug-h", "cam-debug-h", 3, ["ENGINE", "GAME"], ""], +["cam-interface-h", "cam-interface-h", 3, ["ENGINE", "GAME"], ""], +["cam-update-h", "cam-update-h", 3, ["ENGINE", "GAME"], ""], +["assert-h", "assert-h", 3, ["ENGINE", "GAME"], ""], +["hud-h", "hud-h", 3, ["ENGINE", "GAME"], ""], +["progress-h", "progress-h", 3, ["ENGINE", "GAME"], ""], +["rpc-h", "rpc-h", 3, ["ENGINE", "GAME"], ""], +["path-h", "path-h", 3, ["ENGINE", "GAME"], ""], +["navigate-h", "navigate-h", 3, ["ENGINE", "GAME"], ""], +["load-dgo", "load-dgo", 3, ["ENGINE", "GAME"], ""], +["ramdisk", "ramdisk", 3, ["ENGINE", "GAME"], ""], +["gsound", "gsound", 3, ["ENGINE", "GAME"], ""], +["transformq", "transformq", 3, ["ENGINE", "GAME"], ""], +["collide-func", "collide-func", 3, ["ENGINE", "GAME"], ""], +["joint", "joint", 3, ["ENGINE", "GAME"], ""], +["cylinder", "cylinder", 3, ["ENGINE", "GAME"], ""], +["wind", "wind", 3, ["ENGINE", "GAME"], ""], +["bsp", "bsp", 3, ["ENGINE", "GAME"], ""], +["subdivide", "subdivide", 3, ["ENGINE", "GAME"], ""], +["sprite", "sprite", 3, ["ENGINE", "GAME"], ""], +["sprite-distort", "sprite-distort", 3, ["ENGINE", "GAME"], ""], +["debug-sphere", "debug-sphere", 3, ["ENGINE", "GAME"], ""], +["debug", "debug", 3, ["ENGINE", "GAME"], ""], +["merc-vu1", "merc-vu1", 3, ["ENGINE", "GAME"], ""], +["merc-blend-shape", "merc-blend-shape", 3, ["ENGINE", "GAME"], ""], +["merc", "merc", 3, ["ENGINE", "GAME"], ""], +["ripple", "ripple", 3, ["ENGINE", "GAME"], ""], +["bones", "bones", 3, ["ENGINE", "GAME"], ""], +["generic-vu0", "generic-vu0", 3, ["ENGINE", "GAME"], ""], +["generic", "generic", 3, ["ENGINE", "GAME"], ""], +["generic-vu1", "generic-vu1", 3, ["ENGINE", "GAME"], ""], +["generic-effect", "generic-effect", 3, ["ENGINE", "GAME"], ""], +["generic-merc", "generic-merc", 3, ["ENGINE", "GAME"], ""], +["generic-tie", "generic-tie", 3, ["ENGINE", "GAME"], ""], +["shadow-cpu", "shadow-cpu", 3, ["ENGINE", "GAME"], ""], +["shadow-vu1", "shadow-vu1", 3, ["ENGINE", "GAME"], ""], +["depth-cue", "depth-cue", 3, ["ENGINE", "GAME"], ""], +["font", "font", 3, ["ENGINE", "GAME"], ""], +["decomp", "decomp", 3, ["ENGINE", "GAME"], ""], +["background", "background", 3, ["ENGINE", "GAME"], ""], +["draw-node", "draw-node", 3, ["ENGINE", "GAME"], ""], +["shrubbery", "shrubbery", 3, ["ENGINE", "GAME"], ""], +["shrub-work", "shrub-work", 3, ["ENGINE", "GAME"], ""], +["tfrag-near", "tfrag-near", 3, ["ENGINE", "GAME"], ""], +["tfrag", "tfrag", 3, ["ENGINE", "GAME"], ""], +["tfrag-methods", "tfrag-methods", 3, ["ENGINE", "GAME"], ""], +["tfrag-work", "tfrag-work", 3, ["ENGINE", "GAME"], ""], +["tie", "tie", 3, ["ENGINE", "GAME"], ""], +["tie-near", "tie-near", 3, ["ENGINE", "GAME"], ""], +["tie-work", "tie-work", 3, ["ENGINE", "GAME"], ""], +["tie-methods", "tie-methods", 3, ["ENGINE", "GAME"], ""], +["sync-info", "sync-info", 3, ["ENGINE", "GAME"], ""], +["trajectory", "trajectory", 3, ["ENGINE", "GAME"], ""], +["sparticle-launcher", "sparticle-launcher", 3, ["ENGINE", "GAME"], ""], +["sparticle", "sparticle", 3, ["ENGINE", "GAME"], ""], +["entity-table", "entity-table", 3, ["ENGINE", "GAME"], ""], +["loader", "loader", 3, ["ENGINE", "GAME"], ""], +["task-control-h", "task-control-h", 3, ["ENGINE", "GAME"], ""], +["game-info", "game-info", 3, ["ENGINE", "GAME"], ""], +["game-save", "game-save", 3, ["ENGINE", "GAME"], ""], +["settings", "settings", 3, ["ENGINE", "GAME"], ""], +["mood-tables", "mood-tables", 3, ["ENGINE", "GAME"], ""], +["mood", "mood", 3, ["ENGINE", "GAME"], ""], +["weather-part", "weather-part", 3, ["ENGINE", "GAME"], ""], +["time-of-day", "time-of-day", 3, ["ENGINE", "GAME"], ""], +["sky-utils", "sky-utils", 3, ["ENGINE", "GAME"], ""], +["sky", "sky", 3, ["ENGINE", "GAME"], ""], +["sky-tng", "sky-tng", 3, ["ENGINE", "GAME"], ""], +["load-boundary-h", "load-boundary-h", 3, ["ENGINE", "GAME"], ""], +["load-boundary", "load-boundary", 3, ["ENGINE", "GAME"], ""], +["load-boundary-data", "load-boundary-data", 3, ["ENGINE", "GAME"], ""], +["level-info", "level-info", 3, ["ENGINE", "GAME"], ""], +["level", "level", 3, ["ENGINE", "GAME"], ""], +["text", "text", 3, ["ENGINE", "GAME"], ""], +["collide-probe", "collide-probe", 3, ["ENGINE", "GAME"], ""], +["collide-frag", "collide-frag", 3, ["ENGINE", "GAME"], ""], +["collide-mesh", "collide-mesh", 3, ["ENGINE", "GAME"], ""], +["collide-touch", "collide-touch", 3, ["ENGINE", "GAME"], ""], +["collide-edge-grab", "collide-edge-grab", 3, ["ENGINE", "GAME"], ""], +["collide-shape", "collide-shape", 3, ["ENGINE", "GAME"], ""], +["collide-shape-rider", "collide-shape-rider", 3, ["ENGINE", "GAME"], ""], +["collide", "collide", 3, ["ENGINE", "GAME"], ""], +["collide-planes", "collide-planes", 3, ["ENGINE", "GAME"], ""], +["merc-death", "merc-death", 3, ["ENGINE", "GAME"], ""], +["water-h", "water-h", 3, ["ENGINE", "GAME"], ""], +["camera", "camera", 3, ["ENGINE", "GAME"], ""], +["cam-interface", "cam-interface", 3, ["ENGINE", "GAME"], ""], +["cam-master", "cam-master", 3, ["ENGINE", "GAME"], ""], +["cam-states", "cam-states", 3, ["ENGINE", "GAME"], ""], +["cam-states-dbg", "cam-states-dbg", 3, ["ENGINE", "GAME"], ""], +["cam-combiner", "cam-combiner", 3, ["ENGINE", "GAME"], ""], +["cam-update", "cam-update", 3, ["ENGINE", "GAME"], ""], +["vol-h", "vol-h", 3, ["ENGINE", "GAME"], ""], +["cam-layout", "cam-layout", 3, ["ENGINE", "GAME"], ""], +["cam-debug", "cam-debug", 3, ["ENGINE", "GAME"], ""], +["cam-start", "cam-start", 3, ["ENGINE", "GAME"], ""], +["process-drawable", "process-drawable", 3, ["ENGINE", "GAME"], ""], +["hint-control", "hint-control", 3, ["ENGINE", "GAME"], ""], +["ambient", "ambient", 3, ["ENGINE", "GAME"], ""], +["assert", "assert", 3, ["ENGINE", "GAME"], ""], +["generic-obs", "generic-obs", 3, ["ENGINE", "GAME"], ""], +["target-util", "target-util", 3, ["ENGINE", "GAME"], ""], +["target-part", "target-part", 3, ["ENGINE", "GAME"], ""], +["collide-reaction-target", "collide-reaction-target", 3, ["ENGINE", "GAME"], ""], +["logic-target", "logic-target", 3, ["ENGINE", "GAME"], ""], +["sidekick", "sidekick", 3, ["ENGINE", "GAME"], ""], +["voicebox", "voicebox", 3, ["ENGINE", "GAME"], ""], +["target-handler", "target-handler", 3, ["ENGINE", "GAME"], ""], +["target", "target", 3, ["ENGINE", "GAME"], ""], +["target2", "target2", 3, ["ENGINE", "GAME"], ""], +["target-death", "target-death", 3, ["ENGINE", "GAME"], ""], +["menu", "menu", 3, ["ENGINE", "GAME"], ""], +["drawable", "drawable", 3, ["ENGINE", "GAME"], ""], +["drawable-group", "drawable-group", 3, ["ENGINE", "GAME"], ""], +["drawable-inline-array", "drawable-inline-array", 3, ["ENGINE", "GAME"], ""], +["drawable-tree", "drawable-tree", 3, ["ENGINE", "GAME"], ""], +["prototype", "prototype", 3, ["ENGINE", "GAME"], ""], +["main-collide", "main-collide", 3, ["ENGINE", "GAME"], ""], +["video", "video", 3, ["ENGINE", "GAME"], ""], +["main", "main", 3, ["ENGINE", "GAME"], ""], +["collide-cache", "collide-cache", 3, ["ENGINE", "GAME"], ""], +["relocate", "relocate", 3, ["ENGINE", "GAME"], ""], +["memory-usage", "memory-usage", 3, ["ENGINE", "GAME"], ""], +["entity", "entity", 3, ["ENGINE", "GAME"], ""], +["path", "path", 3, ["ENGINE", "GAME"], ""], +["vol", "vol", 3, ["ENGINE", "GAME"], ""], +["navigate", "navigate", 3, ["ENGINE", "GAME"], ""], +["aligner", "aligner", 3, ["ENGINE", "GAME"], ""], +["effect-control", "effect-control", 3, ["ENGINE", "GAME"], ""], +["water", "water", 3, ["ENGINE", "GAME"], ""], +["collectables-part", "collectables-part", 3, ["ENGINE", "GAME"], ""], +["collectables", "collectables", 3, ["ENGINE", "GAME"], ""], +["task-control", "task-control", 3, ["ENGINE", "GAME"], ""], +["process-taskable", "process-taskable", 3, ["ENGINE", "GAME"], ""], +["pov-camera", "pov-camera", 3, ["ENGINE", "GAME"], ""], +["powerups", "powerups", 3, ["ENGINE", "GAME"], ""], +["crates", "crates", 3, ["ENGINE", "GAME"], ""], +["hud", "hud", 3, ["ENGINE", "GAME"], ""], +["hud-classes", "hud-classes", 3, ["ENGINE", "GAME"], ""], +["progress-static", "progress-static", 3, ["ENGINE", "GAME"], ""], +["progress-part", "progress-part", 3, ["ENGINE", "GAME"], ""], +["progress-draw", "progress-draw", 3, ["ENGINE", "GAME"], ""], +["progress", "progress", 3, ["ENGINE", "GAME"], ""], +["credits", "credits", 3, ["ENGINE", "GAME"], ""], +["projectiles", "projectiles", 3, ["ENGINE", "GAME"], ""], +["ocean", "ocean", 3, ["ENGINE", "GAME"], ""], +["ocean-vu0", "ocean-vu0", 3, ["ENGINE", "GAME"], ""], +["ocean-texture", "ocean-texture", 3, ["ENGINE", "GAME"], ""], +["ocean-mid", "ocean-mid", 3, ["ENGINE", "GAME"], ""], +["ocean-transition", "ocean-transition", 3, ["ENGINE", "GAME"], ""], +["ocean-near", "ocean-near", 3, ["ENGINE", "GAME"], ""], +["shadow", "shadow", 3, ["ENGINE", "GAME"], ""], +["eye", "eye", 3, ["ENGINE", "GAME"], ""], +["glist-h", "glist-h", 3, ["ENGINE", "GAME"], ""], +["glist", "glist", 3, ["ENGINE", "GAME"], ""], +["anim-tester", "anim-tester", 3, ["ENGINE", "GAME"], ""], +["viewer", "viewer", 3, ["ENGINE", "GAME"], ""], +["part-tester", "part-tester", 3, ["ENGINE", "GAME"], ""], +["default-menu", "default-menu", 3, ["GAME"], ""], +["dir-tpages", "dir-tpages", 4, ["GAME", "ART"], ""], +["tpage-463", "tpage-463", 4, ["GAME", "ART"], ""], +["tpage-2", "tpage-2", 4, ["GAME", "ART"], ""], +["tpage-880", "tpage-880", 4, ["GAME", "ART"], ""], +["tpage-256", "tpage-256", 4, ["GAME", "ART"], ""], +["tpage-1278", "tpage-1278", 4, ["GAME", "ART"], ""], +["texture-upload", "texture-upload", 3, ["GAME", "ART"], ""], +["tpage-1032", "tpage-1032", 4, ["GAME", "ART"], ""], +["tpage-62", "tpage-62", 4, ["GAME", "ART"], ""], +["tpage-1532", "tpage-1532", 4, ["GAME", "ART"], ""], +["fuel-cell-ag", "fuel-cell", 4, ["GAME", "ART"], ""], +["money-ag", "money", 4, ["GAME", "ART"], ""], +["buzzer-ag", "buzzer", 4, ["GAME", "ART"], ""], +["ecovalve-ag", "ecovalve", 4, ["GAME", "ART"], ""], +["ecovalve-ag", "ecovalve", 4, ["BEA"], ""], +["ecovalve-ag", "ecovalve", 4, ["CIT"], ""], +["ecovalve-ag", "ecovalve", 4, ["FIN"], ""], +["ecovalve-ag", "ecovalve", 4, ["JUB", "JUN"], ""], +["ecovalve-ag", "ecovalve", 4, ["FIC", "OGR"], ""], +["ecovalve-ag", "ecovalve", 4, ["LAV"], ""], +["ecovalve-ag", "ecovalve", 4, ["MAI"], ""], +["ecovalve-ag", "ecovalve", 4, ["ROB"], ""], +["ecovalve-ag", "ecovalve", 4, ["ROL"], ""], +["ecovalve-ag", "ecovalve", 4, ["SNO"], ""], +["ecovalve-ag", "ecovalve", 4, ["SUB"], ""], +["ecovalve-ag", "ecovalve", 4, ["SWA"], ""], +["ecovalve-ag", "ecovalve", 4, ["TRA"], ""], +["crate-ag", "crate", 4, ["GAME", "ART"], ""], +["speaker-ag", "speaker", 4, ["GAME", "ART"], ""], +["fuelcell-naked-ag", "fuelcell-naked", 4, ["GAME", "ART"], ""], +["eichar-ag", "eichar", 4, ["GAME", "ART"], ""], +["sidekick-ag", "sidekick", 4, ["GAME", "ART"], ""], +["deathcam-ag", "deathcam", 4, ["GAME", "ART"], ""], +["game-cnt", "game-cnt", 4, ["GAME", "ART"], ""], +["rigid-body-h", "rigid-body-h", 3, ["GAME", "COMMON", "L1"], ""], +["water-anim", "water-anim", 3, ["GAME", "COMMON", "L1", "WATER-AN"], ""], +["dark-eco-pool", "dark-eco-pool", 3, ["GAME", "COMMON", "L1"], ""], +["rigid-body", "rigid-body", 3, ["GAME", "COMMON", "L1"], ""], +["nav-enemy-h", "nav-enemy-h", 3, ["GAME", "COMMON", "L1"], ""], +["nav-enemy", "nav-enemy", 3, ["GAME", "COMMON", "L1"], ""], +["baseplat", "baseplat", 3, ["GAME", "COMMON", "L1"], ""], +["basebutton", "basebutton", 3, ["GAME", "COMMON", "L1"], ""], +["tippy", "tippy", 3, ["GAME", "COMMON", "L1"], ""], +["joint-exploder", "joint-exploder", 3, ["GAME", "COMMON", "L1"], ""], +["babak", "babak", 3, ["GAME", "COMMON", "L1"], ""], +["sharkey", "sharkey", 3, ["GAME", "COMMON", "L1"], ""], +["orb-cache", "orb-cache", 3, ["GAME", "COMMON", "L1"], ""], +["plat", "plat", 3, ["GAME", "COMMON", "L1"], ""], +["plat-button", "plat-button", 3, ["GAME", "COMMON", "L1"], ""], +["plat-eco", "plat-eco", 3, ["GAME", "COMMON", "L1"], ""], +["ropebridge", "ropebridge", 3, ["GAME", "COMMON", "L1"], ""], +["mistycannon", "mistycannon", 3, ["BEA", "L1", "MIS"], ""], +["babak-with-cannon", "babak-with-cannon", 3, ["BEA", "L1", "MIS"], ""], +["air-h", "air-h", 3, ["BEA", "L1"], ""], +["air", "air", 3, ["BEA", "L1"], ""], +["wobbler", "wobbler", 3, ["BEA", "L1"], ""], +["twister", "twister", 3, ["BEA", "L1"], ""], +["beach-obs", "beach-obs", 3, ["BEA", "L1"], ""], +["bird-lady", "bird-lady", 3, ["BEA", "L1"], ""], +["bird-lady-beach", "bird-lady-beach", 3, ["BEA", "L1"], ""], +["mayor", "mayor", 3, ["BEA", "L1"], ""], +["sculptor", "sculptor", 3, ["BEA", "L1"], ""], +["pelican", "pelican", 3, ["BEA", "L1"], ""], +["lurkerworm", "lurkerworm", 3, ["BEA", "L1"], ""], +["lurkercrab", "lurkercrab", 3, ["BEA", "L1"], ""], +["lurkerpuppy", "lurkerpuppy", 3, ["BEA", "L1"], ""], +["beach-rocks", "beach-rocks", 3, ["BEA", "L1"], ""], +["seagull", "seagull", 3, ["BEA", "L1"], ""], +["beach-part", "beach-part", 3, ["BEA", "L1"], ""], +["tpage-212", "tpage-212", 4, ["BEA"], ""], +["tpage-214", "tpage-214", 4, ["BEA"], ""], +["tpage-213", "tpage-213", 4, ["BEA"], ""], +["tpage-215", "tpage-215", 4, ["BEA"], ""], +["babak-ag", "babak", 4, ["BEA", "CIT", "JUN", "FIC", "MIS", "ROB", "ROL", "SNO", "SUB", "SUN", "SWA"], ""], +["barrel-ag", "barrel", 4, ["BEA"], ""], +["barrel-ag", "barrel", 4, ["VI2"], ""], +["beachcam-ag", "beachcam", 4, ["BEA"], ""], +["bird-lady-ag", "bird-lady", 4, ["BEA"], ""], +["bird-lady-beach-ag", "bird-lady-beach", 4, ["BEA"], ""], +["bladeassm-ag", "bladeassm", 4, ["BEA"], ""], +["ecoventrock-ag", "ecoventrock", 4, ["BEA"], ""], +["flutflut-ag", "flutflut", 4, ["BEA"], ""], +["flutflutegg-ag", "flutflutegg", 4, ["BEA"], ""], +["grottopole-ag", "grottopole", 4, ["BEA"], ""], +["harvester-ag", "harvester", 4, ["BEA"], ""], +["kickrock-ag", "kickrock", 4, ["BEA"], ""], +["lrocklrg-ag", "lrocklrg", 4, ["BEA"], ""], +["lurkercrab-ag", "lurkercrab", 4, ["BEA"], ""], +["lurkerpuppy-ag", "lurkerpuppy", 4, ["BEA"], ""], +["lurkerworm-ag", "lurkerworm", 4, ["BEA"], ""], +["mayor-ag", "mayor", 4, ["BEA"], ""], +["mistycannon-ag", "mistycannon", 4, ["BEA", "MIS"], ""], +["orb-cache-top-ag", "orb-cache-top", 4, ["BEA"], ""], +["orb-cache-top-ag", "orb-cache-top", 4, ["CIT"], ""], +["orb-cache-top-ag", "orb-cache-top", 4, ["JUN"], ""], +["orb-cache-top-ag", "orb-cache-top", 4, ["MIS"], ""], +["orb-cache-top-ag", "orb-cache-top", 4, ["SNO"], ""], +["orb-cache-top-ag", "orb-cache-top", 4, ["SUN"], ""], +["orb-cache-top-ag", "orb-cache-top", 4, ["VI1"], ""], +["orb-cache-top-ag", "orb-cache-top", 4, ["VI2"], ""], +["pelican-ag", "pelican", 4, ["BEA"], ""], +["sack-ag", "sack", 4, ["BEA"], ""], +["sack-ag", "sack", 4, ["MIS"], ""], +["sculptor-ag", "sculptor", 4, ["BEA"], ""], +["sculptor-muse-ag", "sculptor-muse", 4, ["BEA"], ""], +["seagull-ag", "seagull", 4, ["BEA"], ""], +["sharkey-ag", "sharkey", 4, ["BEA", "TRA", "VI2"], ""], +["sharkey-ag", "sharkey", 4, ["JUN", "MIS"], ""], +["sharkey-ag", "sharkey", 4, ["SWA"], ""], +["sharkey-ag", "sharkey", 4, ["VI1"], ""], +["windmill-one-ag", "windmill-one", 4, ["BEA"], ""], +["beach-vis", "beach-vis", 4, ["BEA"], ""], +["villagep-obs", "villagep-obs", 3, ["CIT", "L1", "VI1", "VI2", "VI3", "VILLAGEP"], ""], +["oracle", "oracle", 3, ["CIT", "L1", "VI1", "VI2", "VI3", "VILLAGEP"], ""], +["battlecontroller", "battlecontroller", 3, ["CIT", "L1", "MIS", "SWA"], ""], +["citadel-part", "citadel-part", 3, ["CIT", "L1"], ""], +["citadel-obs", "citadel-obs", 3, ["CIT", "L1"], ""], +["citb-plat", "citb-plat", 3, ["CIT", "L1"], ""], +["citadel-sages", "citadel-sages", 3, ["CIT", "L1"], ""], +["snow-bunny", "snow-bunny", 3, ["CIT", "L1", "SNO"], ""], +["citb-bunny", "citb-bunny", 3, ["CIT", "L1"], ""], +["citb-drop-plat", "citb-drop-plat", 3, ["CIT", "L1"], ""], +["assistant-citadel", "assistant-citadel", 3, ["CIT", "L1"], ""], +["tpage-1415", "tpage-1415", 4, ["CIT"], ""], +["tpage-1417", "tpage-1417", 4, ["CIT"], ""], +["tpage-1416", "tpage-1416", 4, ["CIT"], ""], +["tpage-1414", "tpage-1414", 4, ["CIT"], ""], +["assistant-lavatube-end-ag", "assistant-lavatube-end", 4, ["CIT"], ""], +["bluesage-ag", "bluesage", 4, ["CIT"], ""], +["citadelcam-ag", "citadelcam", 4, ["CIT"], ""], +["citb-arm-ag", "citb-arm", 4, ["CIT"], ""], +["citb-arm-shoulder-ag", "citb-arm-shoulder", 4, ["CIT"], ""], +["citb-bunny-ag", "citb-bunny", 4, ["CIT"], ""], +["citb-button-ag", "citb-button", 4, ["CIT"], ""], +["citb-chain-plat-ag", "citb-chain-plat", 4, ["CIT"], ""], +["citb-chains-ag", "citb-chains", 4, ["CIT"], ""], +["citb-coil-ag", "citb-coil", 4, ["CIT"], ""], +["citb-disc-ag", "citb-disc", 4, ["CIT"], ""], +["citb-donut-ag", "citb-donut", 4, ["CIT"], ""], +["citb-drop-plat-ag", "citb-drop-plat", 4, ["CIT"], ""], +["citb-exit-plat-ag", "citb-exit-plat", 4, ["CIT"], ""], +["citb-firehose-ag", "citb-firehose", 4, ["CIT"], ""], +["citb-generator-ag", "citb-generator", 4, ["CIT"], ""], +["citb-hose-ag", "citb-hose", 4, ["CIT"], ""], +["citb-iris-door-ag", "citb-iris-door", 4, ["CIT"], ""], +["citb-launcher-ag", "citb-launcher", 4, ["CIT"], ""], +["citb-robotboss-ag", "citb-robotboss", 4, ["CIT"], ""], +["citb-rotatebox-ag", "citb-rotatebox", 4, ["CIT"], ""], +["citb-sagecage-ag", "citb-sagecage", 4, ["CIT"], ""], +["citb-stopbox-ag", "citb-stopbox", 4, ["CIT"], ""], +["evilbro-citadel-ag", "evilbro-citadel", 4, ["CIT"], ""], +["evilsis-citadel-ag", "evilsis-citadel", 4, ["CIT"], ""], +["green-sagecage-ag", "green-sagecage", 4, ["CIT", "FIN"], ""], +["plat-citb-ag", "plat-citb", 4, ["CIT"], ""], +["plat-eco-citb-ag", "plat-eco-citb", 4, ["CIT"], ""], +["redsage-ag", "redsage", 4, ["CIT"], ""], +["warp-gate-switch-ag", "warp-gate-switch", 4, ["CIT"], ""], +["warp-gate-switch-ag", "warp-gate-switch", 4, ["TRA"], ""], +["warp-gate-switch-ag", "warp-gate-switch", 4, ["VI1", "VI3"], ""], +["warp-gate-switch-ag", "warp-gate-switch", 4, ["VI2"], ""], +["warpgate-ag", "warpgate", 4, ["CIT", "TRA", "VI1", "VI2", "VI3"], ""], +["yellowsage-ag", "yellowsage", 4, ["CIT"], ""], +["citadel-vis", "citadel-vis", 4, ["CIT"], ""], +["ticky", "ticky", 3, ["COMMON", "L1"], ""], +["darkcave-obs", "darkcave-obs", 3, ["DAR", "L1"], ""], +["tpage-1306", "tpage-1306", 4, ["DAR"], ""], +["tpage-1307", "tpage-1307", 4, ["DAR"], ""], +["tpage-1305", "tpage-1305", 4, ["DAR"], ""], +["tpage-1304", "tpage-1304", 4, ["DAR"], ""], +["tpage-1352", "tpage-1352", 4, ["DAR"], ""], +["baby-spider-ag", "baby-spider", 4, ["DAR"], ""], +["baby-spider-ag", "baby-spider", 4, ["MAI"], ""], +["baby-spider-ag", "baby-spider", 4, ["ROB"], ""], +["cavecrystal-ag", "cavecrystal", 4, ["DAR"], ""], +["caveelevator-ag", "caveelevator", 4, ["DAR", "ROB"], ""], +["cavespatula-darkcave-ag", "cavespatula-darkcave", 4, ["DAR"], ""], +["cavetrapdoor-ag", "cavetrapdoor", 4, ["DAR"], ""], +["cavetrapdoor-ag", "cavetrapdoor", 4, ["MAI"], ""], +["cavetrapdoor-ag", "cavetrapdoor", 4, ["ROB"], ""], +["dark-crystal-ag", "dark-crystal", 4, ["DAR", "MAI"], ""], +["mother-spider-ag", "mother-spider", 4, ["DAR", "MAI"], ""], +["spider-egg-ag", "spider-egg", 4, ["DAR", "MAI"], ""], +["spider-egg-ag", "spider-egg", 4, ["ROB"], ""], +["water-anim-darkcave-ag", "water-anim-darkcave", 4, ["DAR"], ""], +["darkcave-vis", "darkcave-vis", 4, ["DAR"], ""], +["demo-obs", "demo-obs", 3, ["DEM", "L1"], ""], +["tpage-1485", "tpage-1485", 4, ["DEM", "L1"], ""], +["tpage-1486", "tpage-1486", 4, ["DEM", "L1"], ""], +["tpage-1487", "tpage-1487", 4, ["DEM", "L1"], ""], +["tpage-1599", "tpage-1599", 4, ["DEM", "L1"], ""], +["tpage-1600", "tpage-1600", 4, ["DEM", "L1"], ""], +["tpage-1601", "tpage-1601", 4, ["DEM", "L1"], ""], +["tpage-1602", "tpage-1602", 4, ["DEM", "L1"], ""], +["tpage-1603", "tpage-1603", 4, ["DEM", "L1"], ""], +["tpage-1604", "tpage-1604", 4, ["DEM", "L1"], ""], +["tpage-1605", "tpage-1605", 4, ["DEM", "L1"], ""], +["tpage-1606", "tpage-1606", 4, ["DEM", "L1"], ""], +["tpage-1607", "tpage-1607", 4, ["DEM", "L1"], ""], +["static-screen", "static-screen", 3, ["DEM", "L1", "TIT"], ""], +["tpage-1480", "tpage-1480", 4, ["DEM"], ""], +["tpage-1479", "tpage-1479", 4, ["DEM"], ""], +["demo-vis", "demo-vis", 4, ["DEM"], ""], +["robotboss-h", "robotboss-h", 3, ["FIN", "L1"], ""], +["robotboss-part", "robotboss-part", 3, ["FIN", "L1"], ""], +["sage-finalboss-part", "sage-finalboss-part", 3, ["FIN", "L1"], ""], +["light-eco", "light-eco", 3, ["FIN", "L1"], ""], +["robotboss-weapon", "robotboss-weapon", 3, ["FIN", "L1"], ""], +["robotboss-misc", "robotboss-misc", 3, ["FIN", "L1"], ""], +["green-eco-lurker", "green-eco-lurker", 3, ["FIN", "L1"], ""], +["robotboss", "robotboss", 3, ["FIN", "L1"], ""], +["final-door", "final-door", 3, ["FIN", "L1"], ""], +["sage-finalboss", "sage-finalboss", 3, ["FIN", "L1"], ""], +["tpage-1419", "tpage-1419", 4, ["FIN"], ""], +["tpage-1420", "tpage-1420", 4, ["FIN"], ""], +["tpage-634", "tpage-634", 4, ["FIN"], ""], +["tpage-1418", "tpage-1418", 4, ["FIN"], ""], +["tpage-545", "tpage-545", 4, ["FIN"], ""], +["darkecobomb-ag", "darkecobomb", 4, ["FIN"], ""], +["ecoclaw-ag", "ecoclaw", 4, ["FIN"], ""], +["finalbosscam-ag", "finalbosscam", 4, ["FIN"], ""], +["green-eco-lurker-ag", "green-eco-lurker", 4, ["FIN"], ""], +["greenshot-ag", "greenshot", 4, ["FIN"], ""], +["jak-white-ag", "jak-white", 4, ["FIN"], ""], +["light-eco-ag", "light-eco", 4, ["FIN"], ""], +["plat-eco-finalboss-ag", "plat-eco-finalboss", 4, ["FIN"], ""], +["power-left-ag", "power-left", 4, ["FIN"], ""], +["power-right-ag", "power-right", 4, ["FIN"], ""], +["powercellalt-ag", "powercellalt", 4, ["FIN"], ""], +["redring-ag", "redring", 4, ["FIN"], ""], +["robotboss-ag", "robotboss", 4, ["FIN"], ""], +["robotboss-blueeco-ag", "robotboss-blueeco", 4, ["FIN"], ""], +["robotboss-cinematic-ag", "robotboss-cinematic", 4, ["FIN"], ""], +["robotboss-redeco-ag", "robotboss-redeco", 4, ["FIN"], ""], +["robotboss-yelloweco-ag", "robotboss-yelloweco", 4, ["FIN"], ""], +["silodoor-ag", "silodoor", 4, ["FIN"], ""], +["water-anim-finalboss-ag", "water-anim-finalboss", 4, ["FIN"], ""], +["finalboss-vis", "finalboss-vis", 4, ["FIN"], ""], +["evilbro", "evilbro", 3, ["INT", "L1"], ""], +["tpage-1455", "tpage-1455", 4, ["INT"], ""], +["tpage-1457", "tpage-1457", 4, ["INT"], ""], +["tpage-1456", "tpage-1456", 4, ["INT"], ""], +["tpage-1454", "tpage-1454", 4, ["INT"], ""], +["evilbro-ag", "evilbro", 4, ["INT"], ""], +["evilsis-ag", "evilsis", 4, ["INT"], ""], +["intro-vis", "intro-vis", 4, ["INT"], ""], +["jungleb-obs", "jungleb-obs", 3, ["JUB", "L1"], ""], +["plat-flip", "plat-flip", 3, ["JUB", "L1"], ""], +["plant-boss-main+0-ag", "plant-boss-main+0", 4, ["JUB", "L1"], ""], +["aphid", "aphid", 3, ["JUB", "L1"], ""], +["plant-boss", "plant-boss", 3, ["JUB", "L1"], ""], +["tpage-485", "tpage-485", 4, ["JUB"], ""], +["tpage-510", "tpage-510", 4, ["JUB"], ""], +["tpage-507", "tpage-507", 4, ["JUB"], ""], +["tpage-966", "tpage-966", 4, ["JUB"], ""], +["aphid-lurker-ag", "aphid-lurker", 4, ["JUB"], ""], +["darkvine-ag", "darkvine", 4, ["JUB"], ""], +["darkvine-ag", "darkvine", 4, ["JUN"], ""], +["eggtop-ag", "eggtop", 4, ["JUB"], ""], +["jng-iris-door-ag", "jng-iris-door", 4, ["JUB"], ""], +["jng-iris-door-ag", "jng-iris-door", 4, ["TRA"], ""], +["plant-boss-ag", "plant-boss", 4, ["JUB"], ""], +["plat-flip-ag", "plat-flip", 4, ["JUB"], ""], +["plat-jungleb-ag", "plat-jungleb", 4, ["JUB"], ""], +["jungleb-vis", "jungleb-vis", 4, ["JUB"], ""], +["eichar-fish+0-ag", "eichar-fish+0", 4, ["JUN"], ""], +["eichar-fish+0-ag", "eichar-fish+0", 4, ["JUNGLE"], ""], +["eichar-fish+0-ag", "eichar-fish+0", 4, ["L1"], ""], +["jungle-elevator", "jungle-elevator", 3, ["JUN", "JUNGLE", "L1"], ""], +["bouncer", "bouncer", 3, ["JUN", "JUNGLE", "L1"], ""], +["hopper", "hopper", 3, ["JUN", "JUNGLE", "L1"], ""], +["junglesnake", "junglesnake", 3, ["JUN", "JUNGLE", "L1"], ""], +["darkvine", "darkvine", 3, ["JUN", "JUNGLE", "L1"], ""], +["jungle-obs", "jungle-obs", 3, ["JUN", "JUNGLE", "L1"], ""], +["jungle-mirrors", "jungle-mirrors", 3, ["JUN", "JUNGLE", "L1"], ""], +["junglefish", "junglefish", 3, ["JUN", "JUNGLE", "L1"], ""], +["fisher", "fisher", 3, ["JUN", "JUNGLE", "L1"], ""], +["jungle-part", "jungle-part", 3, ["JUN", "JUNGLE", "L1"], ""], +["launcherdoor", "launcherdoor", 3, ["JUN", "JUNGLE", "L1", "MAI", "MAINCAVE", "SUN", "SUNKEN"], ""], +["tpage-385", "tpage-385", 4, ["JUN"], ""], +["tpage-531", "tpage-531", 4, ["JUN"], ""], +["tpage-386", "tpage-386", 4, ["JUN"], ""], +["tpage-388", "tpage-388", 4, ["JUN"], ""], +["tpage-765", "tpage-765", 4, ["JUN"], ""], +["accordian-ag", "accordian", 4, ["JUN"], ""], +["bounceytarp-ag", "bounceytarp", 4, ["JUN"], ""], +["catch-fisha-ag", "catch-fisha", 4, ["JUN"], ""], +["catch-fishb-ag", "catch-fishb", 4, ["JUN"], ""], +["catch-fishc-ag", "catch-fishc", 4, ["JUN"], ""], +["fish-net-ag", "fish-net", 4, ["JUN"], ""], +["fisher-ag", "fisher", 4, ["JUN"], ""], +["hopper-ag", "hopper", 4, ["JUN"], ""], +["junglecam-ag", "junglecam", 4, ["JUN"], ""], +["junglefish-ag", "junglefish", 4, ["JUN"], ""], +["junglesnake-ag", "junglesnake", 4, ["JUN"], ""], +["launcherdoor-ag", "launcherdoor", 4, ["JUN"], ""], +["launcherdoor-ag", "launcherdoor", 4, ["SUN"], ""], +["logtrap-ag", "logtrap", 4, ["JUN"], ""], +["lurkerm-piston-ag", "lurkerm-piston", 4, ["JUN"], ""], +["lurkerm-tall-sail-ag", "lurkerm-tall-sail", 4, ["JUN"], ""], +["maindoor-ag", "maindoor", 4, ["JUN"], ""], +["medres-firecanyon-ag", "medres-firecanyon", 4, ["JUN"], ""], +["periscope-ag", "periscope", 4, ["JUN"], ""], +["plat-button-ag", "plat-button", 4, ["JUN"], ""], +["plat-eco-ag", "plat-eco", 4, ["JUN"], ""], +["plat-eco-ag", "plat-eco", 4, ["MIS"], ""], +["plat-eco-ag", "plat-eco", 4, ["ROB"], ""], +["plat-eco-ag", "plat-eco", 4, ["TRA"], ""], +["precurbridge-ag", "precurbridge", 4, ["JUN"], ""], +["reflector-mirror-ag", "reflector-mirror", 4, ["JUN"], ""], +["ropebridge-52-ag", "ropebridge-52", 4, ["JUN"], ""], +["ropebridge-70-ag", "ropebridge-70", 4, ["JUN"], ""], +["sidedoor-ag", "sidedoor", 4, ["JUN"], ""], +["towertop-ag", "towertop", 4, ["JUN"], ""], +["water-anim-jungle-ag", "water-anim-jungle", 4, ["JUN"], ""], +["jungle-vis", "jungle-vis", 4, ["JUN"], ""], +["target-racer-h", "target-racer-h", 3, ["L1", "FIC", "LAV", "MIS", "OGR", "RACERP", "ROL"], ""], +["racer-part", "racer-part", 3, ["L1", "FIC", "LAV", "MIS", "OGR", "RACERP", "ROL"], ""], +["racer", "racer", 3, ["L1", "FIC", "LAV", "MIS", "OGR", "RACERP", "ROL"], ""], +["target-racer", "target-racer", 3, ["L1", "FIC", "LAV", "MIS", "OGR", "RACERP", "ROL"], ""], +["racer-states", "racer-states", 3, ["L1", "FIC", "LAV", "MIS", "OGR", "RACERP", "ROL"], ""], +["collide-reaction-racer", "collide-reaction-racer", 3, ["L1", "FIC", "LAV", "MIS", "OGR", "RACERP", "ROL"], ""], +["eichar-racer+0-ag", "eichar-racer+0", 4, ["L1", "FIC", "LAV", "MIS", "OGR", "RACERP", "ROL"], ""], +["tpage-1119", "tpage-1119", 4, ["L1", "FIC", "LAV", "MIS", "OGR", "RACERP", "ROL"], ""], +["blocking-plane", "blocking-plane", 3, ["L1", "FIC", "LAV", "MIS", "OGR", "RACERP", "ROL", "SNO", "SWA"], ""], +["flut-part", "flut-part", 3, ["L1", "SNO", "SWA"], ""], +["flutflut", "flutflut", 3, ["L1", "SNO", "SWA"], ""], +["target-flut", "target-flut", 3, ["L1", "SNO", "SWA"], ""], +["eichar-flut+0-ag", "eichar-flut+0", 4, ["L1", "SNO", "SWA"], ""], +["farmer", "farmer", 3, ["L1", "VI1"], ""], +["explorer", "explorer", 3, ["L1", "VI1"], ""], +["assistant", "assistant", 3, ["L1", "VI1"], ""], +["sage", "sage", 3, ["L1", "VI1"], ""], +["yakow", "yakow", 3, ["L1", "VI1"], ""], +["village-obs", "village-obs", 3, ["L1", "VI1"], ""], +["fishermans-boat", "fishermans-boat", 3, ["L1", "VI1"], ""], +["village1-part", "village1-part", 3, ["L1", "VI1"], ""], +["village1-part2", "village1-part2", 3, ["L1", "VI1"], ""], +["sequence-a-village1", "sequence-a-village1", 3, ["L1", "VI1"], ""], +["training-obs", "training-obs", 3, ["L1", "TRA"], ""], +["training-part", "training-part", 3, ["L1", "TRA"], ""], +["misty-obs", "misty-obs", 3, ["L1", "MIS"], ""], +["misty-warehouse", "misty-warehouse", 3, ["L1", "MIS"], ""], +["misty-conveyor", "misty-conveyor", 3, ["L1", "MIS"], ""], +["mud", "mud", 3, ["L1", "MIS"], ""], +["muse", "muse", 3, ["L1", "MIS"], ""], +["bonelurker", "bonelurker", 3, ["L1", "MIS"], ""], +["quicksandlurker", "quicksandlurker", 3, ["L1", "MIS"], ""], +["misty-teetertotter", "misty-teetertotter", 3, ["L1", "MIS"], ""], +["balloonlurker", "balloonlurker", 3, ["L1", "MIS"], ""], +["misty-part", "misty-part", 3, ["L1", "MIS"], ""], +["sidekick-human", "sidekick-human", 3, ["L1", "MIS"], ""], +["firecanyon-part", "firecanyon-part", 3, ["L1", "FIC"], ""], +["assistant-firecanyon", "assistant-firecanyon", 3, ["L1", "FIC"], ""], +["village2-part", "village2-part", 3, ["L1", "VI2"], ""], +["village2-obs", "village2-obs", 3, ["L1", "VI2"], ""], +["village2-part2", "village2-part2", 3, ["L1", "VI2"], ""], +["gambler", "gambler", 3, ["L1", "VI2"], ""], +["warrior", "warrior", 3, ["L1", "VI2"], ""], +["geologist", "geologist", 3, ["L1", "VI2"], ""], +["swamp-blimp", "swamp-blimp", 3, ["L1", "VI2"], ""], +["sage-bluehut", "sage-bluehut", 3, ["L1", "VI2"], ""], +["flutflut-bluehut", "flutflut-bluehut", 3, ["L1", "VI2"], ""], +["assistant-village2", "assistant-village2", 3, ["L1", "VI2"], ""], +["sunken-elevator", "sunken-elevator", 3, ["L1", "VI2"], ""], +["swamp-obs", "swamp-obs", 3, ["L1", "SWA"], ""], +["swamp-bat", "swamp-bat", 3, ["L1", "SWA"], ""], +["swamp-rat", "swamp-rat", 3, ["L1", "SWA"], ""], +["swamp-rat-nest", "swamp-rat-nest", 3, ["L1", "SWA"], ""], +["kermit", "kermit", 3, ["L1", "SWA"], ""], +["swamp-part", "swamp-part", 3, ["L1", "SWA"], ""], +["billy", "billy", 3, ["L1", "SWA"], ""], +["cavecrystal-light", "cavecrystal-light", 3, ["L1", "MAI", "MAINCAVE"], ""], +["maincave-obs", "maincave-obs", 3, ["L1", "MAI", "MAINCAVE"], ""], +["maincave-part", "maincave-part", 3, ["L1", "MAI", "MAINCAVE"], ""], +["spiderwebs", "spiderwebs", 3, ["L1", "MAI", "MAINCAVE"], ""], +["dark-crystal", "dark-crystal", 3, ["L1", "MAI", "MAINCAVE"], ""], +["baby-spider", "baby-spider", 3, ["L1", "MAI", "MAINCAVE"], ""], +["mother-spider-h", "mother-spider-h", 3, ["L1", "MAI", "MAINCAVE"], ""], +["mother-spider-egg", "mother-spider-egg", 3, ["L1", "MAI", "MAINCAVE"], ""], +["mother-spider-proj", "mother-spider-proj", 3, ["L1", "MAI", "MAINCAVE"], ""], +["mother-spider", "mother-spider", 3, ["L1", "MAI", "MAINCAVE"], ""], +["gnawer", "gnawer", 3, ["L1", "MAI", "MAINCAVE"], ""], +["driller-lurker", "driller-lurker", 3, ["L1", "MAI", "MAINCAVE"], ""], +["sunken-part", "sunken-part", 3, ["L1", "SUN", "SUNKEN"], ""], +["sunken-part2", "sunken-part2", 3, ["L1", "SUN", "SUNKEN"], ""], +["sunken-part3", "sunken-part3", 3, ["L1", "SUN", "SUNKEN"], ""], +["sunken-part4", "sunken-part4", 3, ["L1", "SUN", "SUNKEN"], ""], +["sunken-part5", "sunken-part5", 3, ["L1", "SUN", "SUNKEN"], ""], +["target-tube", "target-tube", 3, ["L1", "SUN", "SUNKEN"], ""], +["eichar-tube+0-ag", "eichar-tube+0", 4, ["L1", "SUNKEN"], ""], +["eichar-tube+0-ag", "eichar-tube+0", 4, ["SUN"], ""], +["sunken-obs", "sunken-obs", 3, ["L1", "SUN", "SUNKEN"], ""], +["shover", "shover", 3, ["L1", "SUN", "SUNKEN"], ""], +["square-platform", "square-platform", 3, ["L1", "SUN", "SUNKEN"], ""], +["sun-iris-door", "sun-iris-door", 3, ["L1", "SUN", "SUNKEN"], ""], +["orbit-plat", "orbit-plat", 3, ["L1", "SUN", "SUNKEN"], ""], +["wedge-plats", "wedge-plats", 3, ["L1", "SUN", "SUNKEN"], ""], +["wall-plat", "wall-plat", 3, ["L1", "SUN", "SUNKEN"], ""], +["qbert-plat", "qbert-plat", 3, ["L1", "SUN", "SUNKEN"], ""], +["steam-cap", "steam-cap", 3, ["L1", "SUN", "SUNKEN"], ""], +["sun-exit-chamber", "sun-exit-chamber", 3, ["L1", "SUN", "SUNKEN"], ""], +["floating-launcher", "floating-launcher", 3, ["L1", "SUN", "SUNKEN"], ""], +["sunken-water", "sunken-water", 3, ["L1", "SUN", "SUNKEN"], ""], +["whirlpool", "whirlpool", 3, ["L1", "SUN", "SUNKEN"], ""], +["sunken-pipegame", "sunken-pipegame", 3, ["L1", "SUN", "SUNKEN"], ""], +["bully", "bully", 3, ["L1", "SUN", "SUNKEN"], ""], +["double-lurker", "double-lurker", 3, ["L1", "SUN", "SUNKEN"], ""], +["helix-water", "helix-water", 3, ["L1", "SUN", "SUNKEN"], ""], +["puffer", "puffer", 3, ["L1", "SUN", "SUNKEN"], ""], +["sunken-fish", "sunken-fish", 3, ["L1", "SUN", "SUNKEN"], ""], +["rolling-obs", "rolling-obs", 3, ["L1", "ROL"], ""], +["rolling-lightning-mole", "rolling-lightning-mole", 3, ["L1", "ROL"], ""], +["rolling-robber", "rolling-robber", 3, ["L1", "ROL"], ""], +["rolling-race-ring", "rolling-race-ring", 3, ["L1", "ROL"], ""], +["firecanyon-obs", "firecanyon-obs", 3, ["L1", "FIC", "OGR"], ""], +["ogre-part", "ogre-part", 3, ["L1", "OGR"], ""], +["ogreboss", "ogreboss", 3, ["L1", "OGR"], ""], +["ogre-obs", "ogre-obs", 3, ["L1", "OGR"], ""], +["flying-lurker", "flying-lurker", 3, ["L1", "OGR"], ""], +["village3-part", "village3-part", 3, ["L1", "VI3"], ""], +["village3-obs", "village3-obs", 3, ["L1", "VI3"], ""], +["minecart", "minecart", 3, ["L1", "VI3"], ""], +["miners", "miners", 3, ["L1", "VI3"], ""], +["assistant-village3", "assistant-village3", 3, ["L1", "VI3"], ""], +["sage-village3", "sage-village3", 3, ["L1", "VI3"], ""], +["cave-trap", "cave-trap", 3, ["L1", "ROB"], ""], +["spider-egg", "spider-egg", 3, ["L1", "ROB"], ""], +["robocave-part", "robocave-part", 3, ["L1", "ROB"], ""], +["target-snowball", "target-snowball", 3, ["L1", "SNO"], ""], +["target-ice", "target-ice", 3, ["L1", "SNO"], ""], +["ice-cube", "ice-cube", 3, ["L1", "SNO"], ""], +["snow-ball", "snow-ball", 3, ["L1", "SNO"], ""], +["snow-obs", "snow-obs", 3, ["L1", "SNO"], ""], +["snow-flutflut-obs", "snow-flutflut-obs", 3, ["L1", "SNO"], ""], +["snow-bumper", "snow-bumper", 3, ["L1", "SNO"], ""], +["snow-ram-h", "snow-ram-h", 3, ["L1", "SNO"], ""], +["snow-ram-boss", "snow-ram-boss", 3, ["L1", "SNO"], ""], +["snow-ram", "snow-ram", 3, ["L1", "SNO"], ""], +["snow-part", "snow-part", 3, ["L1", "SNO"], ""], +["yeti", "yeti", 3, ["L1", "SNO"], ""], +["eichar-pole+0-ag", "eichar-pole+0", 4, ["L1"], ""], +["eichar-pole+0-ag", "eichar-pole+0", 4, ["ROB"], ""], +["eichar-pole+0-ag", "eichar-pole+0", 4, ["SNO"], ""], +["eichar-pole+0-ag", "eichar-pole+0", 4, ["SWA"], ""], +["eichar-ice+0-ag", "eichar-ice+0", 4, ["L1", "SNO"], ""], +["lavatube-obs", "lavatube-obs", 3, ["L1", "LAV"], ""], +["lavatube-energy", "lavatube-energy", 3, ["L1", "LAV"], ""], +["lavatube-part", "lavatube-part", 3, ["L1", "LAV"], ""], +["assistant-lavatube", "assistant-lavatube", 3, ["L1", "LAV"], ""], +["tpage-815", "tpage-815", 4, ["FIC"], ""], +["tpage-822", "tpage-822", 4, ["FIC"], ""], +["tpage-854", "tpage-854", 4, ["FIC"], ""], +["tpage-1123", "tpage-1123", 4, ["FIC"], ""], +["assistant-firecanyon-ag", "assistant-firecanyon", 4, ["FIC"], ""], +["balloon-ag", "balloon", 4, ["FIC"], ""], +["crate-darkeco-cluster-ag", "crate-darkeco-cluster", 4, ["FIC"], ""], +["crate-darkeco-cluster-ag", "crate-darkeco-cluster", 4, ["OGR"], ""], +["ef-plane-ag", "ef-plane", 4, ["FIC", "LAV", "OGR", "ROL", "SNO", "SWA"], ""], +["ef-plane-ag", "ef-plane", 4, ["MIS"], ""], +["racer-ag", "racer", 4, ["FIC", "ROL"], ""], +["racer-ag", "racer", 4, ["LAV"], ""], +["racer-ag", "racer", 4, ["MIS"], ""], +["racer-ag", "racer", 4, ["OGR"], ""], +["spike-ag", "spike", 4, ["FIC"], ""], +["firecanyon-vis", "firecanyon-vis", 4, ["FIC"], ""], +["tpage-1338", "tpage-1338", 4, ["LAV"], ""], +["tpage-1340", "tpage-1340", 4, ["LAV"], ""], +["tpage-1339", "tpage-1339", 4, ["LAV"], ""], +["tpage-1337", "tpage-1337", 4, ["LAV"], ""], +["assistant-lavatube-start-ag", "assistant-lavatube-start", 4, ["LAV"], ""], +["chainmine-ag", "chainmine", 4, ["LAV"], ""], +["darkecobarrel-ag", "darkecobarrel", 4, ["LAV"], ""], +["energyarm-ag", "energyarm", 4, ["LAV"], ""], +["energyball-ag", "energyball", 4, ["LAV"], ""], +["energybase-ag", "energybase", 4, ["LAV"], ""], +["energydoor-ag", "energydoor", 4, ["LAV"], ""], +["energyhub-ag", "energyhub", 4, ["LAV"], ""], +["lavaballoon-ag", "lavaballoon", 4, ["LAV"], ""], +["lavabase-ag", "lavabase", 4, ["LAV"], ""], +["lavafall-ag", "lavafall", 4, ["LAV"], ""], +["lavafallsewera-ag", "lavafallsewera", 4, ["LAV"], ""], +["lavafallsewerb-ag", "lavafallsewerb", 4, ["LAV"], ""], +["lavashortcut-ag", "lavashortcut", 4, ["LAV"], ""], +["lavayellowtarp-ag", "lavayellowtarp", 4, ["LAV"], ""], +["water-anim-lavatube-ag", "water-anim-lavatube", 4, ["LAV"], ""], +["lavatube-vis", "lavatube-vis", 4, ["LAV"], ""], +["tpage-1313", "tpage-1313", 4, ["MAI"], ""], +["tpage-1315", "tpage-1315", 4, ["MAI"], ""], +["tpage-1314", "tpage-1314", 4, ["MAI"], ""], +["tpage-1312", "tpage-1312", 4, ["MAI"], ""], +["tpage-767", "tpage-767", 4, ["MAI"], ""], +["driller-lurker-ag", "driller-lurker", 4, ["MAI", "ROB"], ""], +["gnawer-ag", "gnawer", 4, ["MAI"], ""], +["launcherdoor-maincave-ag", "launcherdoor-maincave", 4, ["MAI"], ""], +["maincavecam-ag", "maincavecam", 4, ["MAI"], ""], +["plat-ag", "plat", 4, ["MAI"], ""], +["plat-ag", "plat", 4, ["ROB"], ""], +["spiderwebs-ag", "spiderwebs", 4, ["MAI", "ROB"], ""], +["water-anim-maincave-ag", "water-anim-maincave", 4, ["MAI"], ""], +["water-anim-maincave-water-ag", "water-anim-maincave-water", 4, ["MAI"], ""], +["maincave-vis", "maincave-vis", 4, ["MAI"], ""], +["tpage-516", "tpage-516", 4, ["MIS"], ""], +["tpage-521", "tpage-521", 4, ["MIS"], ""], +["tpage-518", "tpage-518", 4, ["MIS"], ""], +["tpage-520", "tpage-520", 4, ["MIS"], ""], +["balloonlurker-ag", "balloonlurker", 4, ["MIS"], ""], +["boatpaddle-ag", "boatpaddle", 4, ["MIS"], ""], +["bonelurker-ag", "bonelurker", 4, ["MIS"], ""], +["breakaway-left-ag", "breakaway-left", 4, ["MIS"], ""], +["breakaway-mid-ag", "breakaway-mid", 4, ["MIS"], ""], +["breakaway-right-ag", "breakaway-right", 4, ["MIS"], ""], +["darkecocan-ag", "darkecocan", 4, ["MIS"], ""], +["keg-ag", "keg", 4, ["MIS"], ""], +["keg-conveyor-ag", "keg-conveyor", 4, ["MIS"], ""], +["keg-conveyor-paddle-ag", "keg-conveyor-paddle", 4, ["MIS"], ""], +["mis-bone-bridge-ag", "mis-bone-bridge", 4, ["MIS"], ""], +["mis-bone-platform-ag", "mis-bone-platform", 4, ["MIS"], ""], +["mistycam-ag", "mistycam", 4, ["MIS"], ""], +["muse-ag", "muse", 4, ["MIS"], ""], +["quicksandlurker-ag", "quicksandlurker", 4, ["MIS"], ""], +["ropebridge-36-ag", "ropebridge-36", 4, ["MIS"], ""], +["rounddoor-ag", "rounddoor", 4, ["MIS"], ""], +["sidekick-human-ag", "sidekick-human", 4, ["MIS"], ""], +["silostep-ag", "silostep", 4, ["MIS"], ""], +["teetertotter-ag", "teetertotter", 4, ["MIS"], ""], +["water-anim-misty-ag", "water-anim-misty", 4, ["MIS"], ""], +["wheel-ag", "wheel", 4, ["MIS"], ""], +["windturbine-ag", "windturbine", 4, ["MIS"], ""], +["misty-vis", "misty-vis", 4, ["MIS"], ""], +["tpage-875", "tpage-875", 4, ["OGR"], ""], +["tpage-967", "tpage-967", 4, ["OGR"], ""], +["tpage-884", "tpage-884", 4, ["OGR"], ""], +["tpage-1117", "tpage-1117", 4, ["OGR"], ""], +["flying-lurker-ag", "flying-lurker", 4, ["OGR"], ""], +["medres-snow-ag", "medres-snow", 4, ["OGR"], ""], +["ogre-bridge-ag", "ogre-bridge", 4, ["OGR"], ""], +["ogre-bridgeend-ag", "ogre-bridgeend", 4, ["OGR"], ""], +["ogre-isle-ag", "ogre-isle", 4, ["OGR"], ""], +["ogre-step-ag", "ogre-step", 4, ["OGR"], ""], +["ogreboss-ag", "ogreboss", 4, ["OGR"], ""], +["ogrecam-ag", "ogrecam", 4, ["OGR"], ""], +["plunger-lurker-ag", "plunger-lurker", 4, ["OGR"], ""], +["shortcut-boulder-ag", "shortcut-boulder", 4, ["OGR"], ""], +["tntbarrel-ag", "tntbarrel", 4, ["OGR"], ""], +["water-anim-ogre-ag", "water-anim-ogre", 4, ["OGR"], ""], +["ogre-vis", "ogre-vis", 4, ["OGR"], ""], +["tpage-1318", "tpage-1318", 4, ["ROB"], ""], +["tpage-1319", "tpage-1319", 4, ["ROB"], ""], +["tpage-1317", "tpage-1317", 4, ["ROB"], ""], +["tpage-1316", "tpage-1316", 4, ["ROB"], ""], +["cavecrusher-ag", "cavecrusher", 4, ["ROB"], ""], +["cavespatulatwo-ag", "cavespatulatwo", 4, ["ROB"], ""], +["water-anim-robocave-ag", "water-anim-robocave", 4, ["ROB"], ""], +["robocave-vis", "robocave-vis", 4, ["ROB"], ""], +["tpage-923", "tpage-923", 4, ["ROL"], ""], +["tpage-926", "tpage-926", 4, ["ROL"], ""], +["tpage-924", "tpage-924", 4, ["ROL"], ""], +["tpage-925", "tpage-925", 4, ["ROL"], ""], +["tpage-1353", "tpage-1353", 4, ["ROL"], ""], +["dark-plant-ag", "dark-plant", 4, ["ROL"], ""], +["happy-plant-ag", "happy-plant", 4, ["ROL"], ""], +["lightning-mole-ag", "lightning-mole", 4, ["ROL"], ""], +["pusher-ag", "pusher", 4, ["ROL"], ""], +["race-ring-ag", "race-ring", 4, ["ROL"], ""], +["robber-ag", "robber", 4, ["ROL"], ""], +["rolling-start-ag", "rolling-start", 4, ["ROL"], ""], +["rollingcam-ag", "rollingcam", 4, ["ROL"], ""], +["water-anim-rolling-ag", "water-anim-rolling", 4, ["ROL"], ""], +["rolling-vis", "rolling-vis", 4, ["ROL"], ""], +["tpage-710", "tpage-710", 4, ["SNO"], ""], +["tpage-842", "tpage-842", 4, ["SNO"], ""], +["tpage-711", "tpage-711", 4, ["SNO"], ""], +["tpage-712", "tpage-712", 4, ["SNO"], ""], +["flut-saddle-ag", "flut-saddle", 4, ["SNO"], ""], +["flut-saddle-ag", "flut-saddle", 4, ["SWA"], ""], +["flutflut-plat-large-ag", "flutflut-plat-large", 4, ["SNO"], ""], +["flutflut-plat-med-ag", "flutflut-plat-med", 4, ["SNO"], ""], +["flutflut-plat-small-ag", "flutflut-plat-small", 4, ["SNO"], ""], +["ice-cube-ag", "ice-cube", 4, ["SNO"], ""], +["ice-cube-break-ag", "ice-cube-break", 4, ["SNO"], ""], +["ram-ag", "ram", 4, ["SNO"], ""], +["ram-boss-ag", "ram-boss", 4, ["SNO"], ""], +["snow-ball-ag", "snow-ball", 4, ["SNO"], ""], +["snow-bridge-36-ag", "snow-bridge-36", 4, ["SNO"], ""], +["snow-bumper-ag", "snow-bumper", 4, ["SNO"], ""], +["snow-bunny-ag", "snow-bunny", 4, ["SNO"], ""], +["snow-button-ag", "snow-button", 4, ["SNO"], ""], +["snow-eggtop-ag", "snow-eggtop", 4, ["SNO"], ""], +["snow-fort-gate-ag", "snow-fort-gate", 4, ["SNO"], ""], +["snow-gears-ag", "snow-gears", 4, ["SNO"], ""], +["snow-log-ag", "snow-log", 4, ["SNO"], ""], +["snow-spatula-ag", "snow-spatula", 4, ["SNO"], ""], +["snow-switch-ag", "snow-switch", 4, ["SNO"], ""], +["snowcam-ag", "snowcam", 4, ["SNO"], ""], +["snowpusher-ag", "snowpusher", 4, ["SNO"], ""], +["yeti-ag", "yeti", 4, ["SNO"], ""], +["snow-vis", "snow-vis", 4, ["SNO"], ""], +["tpage-163", "tpage-163", 4, ["SUB"], ""], +["tpage-164", "tpage-164", 4, ["SUB"], ""], +["tpage-166", "tpage-166", 4, ["SUB"], ""], +["tpage-162", "tpage-162", 4, ["SUB"], ""], +["tpage-764", "tpage-764", 4, ["SUB"], ""], +["blue-eco-charger-ag", "blue-eco-charger", 4, ["SUB"], ""], +["blue-eco-charger-orb-ag", "blue-eco-charger-orb", 4, ["SUB"], ""], +["bully-ag", "bully", 4, ["SUB", "SUN"], ""], +["floating-launcher-ag", "floating-launcher", 4, ["SUB"], ""], +["helix-button-ag", "helix-button", 4, ["SUB"], ""], +["helix-slide-door-ag", "helix-slide-door", 4, ["SUB"], ""], +["shover-ag", "shover", 4, ["SUB"], ""], +["shover-ag", "shover", 4, ["SUN"], ""], +["steam-cap-ag", "steam-cap", 4, ["SUB"], ""], +["steam-cap-ag", "steam-cap", 4, ["SUN"], ""], +["sunkencam-ag", "sunkencam", 4, ["SUB"], ""], +["sunkencam-ag", "sunkencam", 4, ["SUN"], ""], +["sunkenfisha-ag", "sunkenfisha", 4, ["SUB", "SUN"], ""], +["wall-plat-ag", "wall-plat", 4, ["SUB", "SUN"], ""], +["water-anim-sunken-ag", "water-anim-sunken", 4, ["SUB", "SUN"], ""], +["water-anim-sunken-dark-eco-ag", "water-anim-sunken-dark-eco", 4, ["SUB", "SUN"], ""], +["sunkenb-vis", "sunkenb-vis", 4, ["SUB"], ""], +["tpage-661", "tpage-661", 4, ["SUN"], ""], +["tpage-663", "tpage-663", 4, ["SUN"], ""], +["tpage-714", "tpage-714", 4, ["SUN"], ""], +["tpage-662", "tpage-662", 4, ["SUN"], ""], +["tpage-766", "tpage-766", 4, ["SUN"], ""], +["double-lurker-ag", "double-lurker", 4, ["SUN"], ""], +["double-lurker-top-ag", "double-lurker-top", 4, ["SUN"], ""], +["exit-chamber-ag", "exit-chamber", 4, ["SUN"], ""], +["generic-button-ag", "generic-button", 4, ["SUN"], ""], +["orbit-plat-ag", "orbit-plat", 4, ["SUN"], ""], +["orbit-plat-bottom-ag", "orbit-plat-bottom", 4, ["SUN"], ""], +["plat-sunken-ag", "plat-sunken", 4, ["SUN"], ""], +["puffer-ag", "puffer", 4, ["SUN"], ""], +["qbert-plat-ag", "qbert-plat", 4, ["SUN"], ""], +["qbert-plat-on-ag", "qbert-plat-on", 4, ["SUN"], ""], +["seaweed-ag", "seaweed", 4, ["SUN"], ""], +["side-to-side-plat-ag", "side-to-side-plat", 4, ["SUN"], ""], +["square-platform-ag", "square-platform", 4, ["SUN"], ""], +["sun-iris-door-ag", "sun-iris-door", 4, ["SUN"], ""], +["wedge-plat-ag", "wedge-plat", 4, ["SUN"], ""], +["wedge-plat-outer-ag", "wedge-plat-outer", 4, ["SUN"], ""], +["whirlpool-ag", "whirlpool", 4, ["SUN"], ""], +["sunken-vis", "sunken-vis", 4, ["SUN"], ""], +["tpage-358", "tpage-358", 4, ["SWA"], ""], +["tpage-659", "tpage-659", 4, ["SWA"], ""], +["tpage-629", "tpage-629", 4, ["SWA"], ""], +["tpage-630", "tpage-630", 4, ["SWA"], ""], +["balance-plat-ag", "balance-plat", 4, ["SWA"], ""], +["billy-ag", "billy", 4, ["SWA"], ""], +["billy-sidekick-ag", "billy-sidekick", 4, ["SWA"], ""], +["farthy-snack-ag", "farthy-snack", 4, ["SWA"], ""], +["kermit-ag", "kermit", 4, ["SWA"], ""], +["swamp-bat-ag", "swamp-bat", 4, ["SWA"], ""], +["swamp-rat-ag", "swamp-rat", 4, ["SWA"], ""], +["swamp-rat-nest-ag", "swamp-rat-nest", 4, ["SWA"], ""], +["swamp-rock-ag", "swamp-rock", 4, ["SWA"], ""], +["swamp-spike-ag", "swamp-spike", 4, ["SWA"], ""], +["swampcam-ag", "swampcam", 4, ["SWA"], ""], +["swampcam-ag", "swampcam", 4, ["VI2"], ""], +["tar-plat-ag", "tar-plat", 4, ["SWA"], ""], +["swamp-vis", "swamp-vis", 4, ["SWA"], ""], +["title-obs", "title-obs", 3, ["TIT"], ""], +["tpage-1609", "tpage-1609", 4, ["TIT"], ""], +["tpage-416", "tpage-416", 4, ["TIT"], ""], +["tpage-415", "tpage-415", 4, ["TIT"], ""], +["tpage-397", "tpage-397", 4, ["TIT"], ""], +["tpage-1499", "tpage-1499", 4, ["TIT"], ""], +["logo-ag", "logo", 4, ["TIT"], ""], +["logo-black-ag", "logo-black", 4, ["TIT"], ""], +["logo-cam-ag", "logo-cam", 4, ["TIT"], ""], +["logo-volumes-ag", "logo-volumes", 4, ["TIT"], ""], +["ndi-ag", "ndi", 4, ["TIT"], ""], +["ndi-cam-ag", "ndi-cam", 4, ["TIT"], ""], +["ndi-volumes-ag", "ndi-volumes", 4, ["TIT"], ""], +["title-vis", "title-vis", 4, ["TIT"], ""], +["tpage-1309", "tpage-1309", 4, ["TRA"], ""], +["tpage-1311", "tpage-1311", 4, ["TRA"], ""], +["tpage-1310", "tpage-1310", 4, ["TRA"], ""], +["tpage-1308", "tpage-1308", 4, ["TRA"], ""], +["tpage-775", "tpage-775", 4, ["TRA"], ""], +["pontoonfive-ag", "pontoonfive", 4, ["TRA"], ""], +["pontoonfive-ag", "pontoonfive", 4, ["VI2"], ""], +["scarecrow-a-ag", "scarecrow-a", 4, ["TRA"], ""], +["scarecrow-b-ag", "scarecrow-b", 4, ["TRA"], ""], +["trainingcam-ag", "trainingcam", 4, ["TRA"], ""], +["water-anim-training-ag", "water-anim-training", 4, ["TRA"], ""], +["training-vis", "training-vis", 4, ["TRA"], ""], +["tpage-398", "tpage-398", 4, ["VI1"], ""], +["tpage-400", "tpage-400", 4, ["VI1"], ""], +["tpage-399", "tpage-399", 4, ["VI1"], ""], +["tpage-401", "tpage-401", 4, ["VI1"], ""], +["tpage-1470", "tpage-1470", 4, ["VI1"], ""], +["assistant-ag", "assistant", 4, ["VI1"], ""], +["evilplant-ag", "evilplant", 4, ["VI1"], ""], +["explorer-ag", "explorer", 4, ["VI1"], ""], +["farmer-ag", "farmer", 4, ["VI1"], ""], +["fishermans-boat-ag", "fishermans-boat", 4, ["VI1"], ""], +["hutlamp-ag", "hutlamp", 4, ["VI1"], ""], +["mayorgears-ag", "mayorgears", 4, ["VI1"], ""], +["medres-beach-ag", "medres-beach", 4, ["VI1"], ""], +["medres-beach1-ag", "medres-beach1", 4, ["VI1"], ""], +["medres-beach2-ag", "medres-beach2", 4, ["VI1"], ""], +["medres-beach3-ag", "medres-beach3", 4, ["VI1"], ""], +["medres-jungle-ag", "medres-jungle", 4, ["VI1"], ""], +["medres-jungle1-ag", "medres-jungle1", 4, ["VI1"], ""], +["medres-jungle2-ag", "medres-jungle2", 4, ["VI1"], ""], +["medres-misty-ag", "medres-misty", 4, ["VI1"], ""], +["medres-training-ag", "medres-training", 4, ["VI1"], ""], +["medres-village11-ag", "medres-village11", 4, ["VI1"], ""], +["medres-village12-ag", "medres-village12", 4, ["VI1"], ""], +["medres-village13-ag", "medres-village13", 4, ["VI1"], ""], +["oracle-ag", "oracle", 4, ["VI1"], ""], +["oracle-ag", "oracle", 4, ["VI2"], ""], +["oracle-ag", "oracle", 4, ["VI3"], ""], +["reflector-middle-ag", "reflector-middle", 4, ["VI1"], ""], +["revcycle-ag", "revcycle", 4, ["VI1"], ""], +["revcycleprop-ag", "revcycleprop", 4, ["VI1"], ""], +["ropebridge-32-ag", "ropebridge-32", 4, ["VI1"], ""], +["sage-ag", "sage", 4, ["VI1"], ""], +["sagesail-ag", "sagesail", 4, ["VI1"], ""], +["villa-starfish-ag", "villa-starfish", 4, ["VI1"], ""], +["village-cam-ag", "village-cam", 4, ["VI1"], ""], +["village-cam-ag", "village-cam", 4, ["VI2"], ""], +["village-cam-ag", "village-cam", 4, ["VI3"], ""], +["village1cam-ag", "village1cam", 4, ["VI1"], ""], +["water-anim-village1-ag", "water-anim-village1", 4, ["VI1"], ""], +["windmill-sail-ag", "windmill-sail", 4, ["VI1"], ""], +["windspinner-ag", "windspinner", 4, ["VI1"], ""], +["yakow-ag", "yakow", 4, ["VI1"], ""], +["village1-vis", "village1-vis", 4, ["VI1"], ""], +["tpage-919", "tpage-919", 4, ["VI2"], ""], +["tpage-922", "tpage-922", 4, ["VI2"], ""], +["tpage-920", "tpage-920", 4, ["VI2"], ""], +["tpage-921", "tpage-921", 4, ["VI2"], ""], +["tpage-1476", "tpage-1476", 4, ["VI2"], ""], +["allpontoons-ag", "allpontoons", 4, ["VI2"], ""], +["assistant-village2-ag", "assistant-village2", 4, ["VI2"], ""], +["ceilingflag-ag", "ceilingflag", 4, ["VI2"], ""], +["exit-chamber-dummy-ag", "exit-chamber-dummy", 4, ["VI2"], ""], +["fireboulder-ag", "fireboulder", 4, ["VI2"], ""], +["flutflut-bluehut-ag", "flutflut-bluehut", 4, ["VI2"], ""], +["gambler-ag", "gambler", 4, ["VI2"], ""], +["geologist-ag", "geologist", 4, ["VI2"], ""], +["jaws-ag", "jaws", 4, ["VI2"], ""], +["medres-rolling-ag", "medres-rolling", 4, ["VI2"], ""], +["medres-rolling1-ag", "medres-rolling1", 4, ["VI2"], ""], +["medres-village2-ag", "medres-village2", 4, ["VI2"], ""], +["ogreboss-village2-ag", "ogreboss-village2", 4, ["VI2"], ""], +["pontoonten-ag", "pontoonten", 4, ["VI2"], ""], +["precursor-arm-ag", "precursor-arm", 4, ["VI2"], ""], +["sage-bluehut-ag", "sage-bluehut", 4, ["VI2"], ""], +["sunken-elevator-ag", "sunken-elevator", 4, ["VI2"], ""], +["swamp-blimp-ag", "swamp-blimp", 4, ["VI2"], ""], +["swamp-rope-ag", "swamp-rope", 4, ["VI2"], ""], +["swamp-tetherrock-ag", "swamp-tetherrock", 4, ["VI2"], ""], +["swamp-tetherrock-explode-ag", "swamp-tetherrock-explode", 4, ["VI2"], ""], +["village2cam-ag", "village2cam", 4, ["VI2"], ""], +["warrior-ag", "warrior", 4, ["VI2"], ""], +["water-anim-village2-ag", "water-anim-village2", 4, ["VI2"], ""], +["village2-vis", "village2-vis", 4, ["VI2"], ""], +["tpage-1208", "tpage-1208", 4, ["VI3"], ""], +["tpage-1210", "tpage-1210", 4, ["VI3"], ""], +["tpage-1209", "tpage-1209", 4, ["VI3"], ""], +["tpage-1194", "tpage-1194", 4, ["VI3"], ""], +["assistant-village3-ag", "assistant-village3", 4, ["VI3"], ""], +["cavegem-ag", "cavegem", 4, ["VI3"], ""], +["evilbro-village3-ag", "evilbro-village3", 4, ["VI3"], ""], +["evilsis-village3-ag", "evilsis-village3", 4, ["VI3"], ""], +["gondola-ag", "gondola", 4, ["VI3"], ""], +["gondolacables-ag", "gondolacables", 4, ["VI3"], ""], +["lavaspoutdrip-ag", "lavaspoutdrip", 4, ["VI3"], ""], +["medres-finalboss-ag", "medres-finalboss", 4, ["VI3"], ""], +["medres-ogre-ag", "medres-ogre", 4, ["VI3"], ""], +["medres-ogre2-ag", "medres-ogre2", 4, ["VI3"], ""], +["medres-ogre3-ag", "medres-ogre3", 4, ["VI3"], ""], +["minecartsteel-ag", "minecartsteel", 4, ["VI3"], ""], +["minershort-ag", "minershort", 4, ["VI3"], ""], +["minertall-ag", "minertall", 4, ["VI3"], ""], +["pistons-ag", "pistons", 4, ["VI3"], ""], +["sage-village3-ag", "sage-village3", 4, ["VI3"], ""], +["vil3-bridge-36-ag", "vil3-bridge-36", 4, ["VI3"], ""], +["water-anim-village3-ag", "water-anim-village3", 4, ["VI3"], ""], +["village3-vis", "village3-vis", 4, ["VI3"], ""], +["lava", "lava", 3, ["WATER-AN"], ""], +["0COMMON", "0COMMON", 2, ["NO-XGO"], ""], +["1COMMON", "1COMMON", 2, ["NO-XGO"], ""], +["2COMMON", "2COMMON", 2, ["NO-XGO"], ""], +["3COMMON", "3COMMON", 2, ["NO-XGO"], ""], +["4COMMON", "4COMMON", 2, ["NO-XGO"], ""], +["5COMMON", "5COMMON", 2, ["NO-XGO"], ""], +["6COMMON", "6COMMON", 2, ["NO-XGO"], ""], +["balloon-fuel-cell+0", "balloon-fuel-cell+0", 2, ["NO-XGO"], ""], +["swamp-tetherrock-explode-4+0", "swamp-tetherrock-explode-4+0", 2, ["NO-XGO"], ""], +["swamp-tetherrock-explode-3+0", "swamp-tetherrock-explode-3+0", 2, ["NO-XGO"], ""], +["swamp-tetherrock-explode-2+0", "swamp-tetherrock-explode-2+0", 2, ["NO-XGO"], ""], +["swamp-tetherrock-explode-1+0", "swamp-tetherrock-explode-1+0", 2, ["NO-XGO"], ""], +["snowcam-ram-boss-snow-ball-fuel-cell+0", "snowcam-ram-boss-snow-ball-fuel-cell+0", 2, ["NO-XGO"], ""], +["snowcam-ram-boss-ice-pond-fuel-cell+0", "snowcam-ram-boss-ice-pond-fuel-cell+0", 2, ["NO-XGO"], ""], +["snowcam-ram-boss-in-cave-fuel-cell+0", "snowcam-ram-boss-in-cave-fuel-cell+0", 2, ["NO-XGO"], ""], +["oracle-reminder-3+0", "oracle-reminder-3+0", 2, ["NO-XGO"], ""], +["oracle-reminder-3+1", "oracle-reminder-3+1", 2, ["NO-XGO"], ""], +["oracle-reminder-2+0", "oracle-reminder-2+0", 2, ["NO-XGO"], ""], +["oracle-reminder-2+1", "oracle-reminder-2+1", 2, ["NO-XGO"], ""], +["mistycam-cannon+0", "mistycam-cannon+0", 2, ["NO-XGO"], ""], +["beachcam-cannon+0", "beachcam-cannon+0", 2, ["NO-XGO"], ""], +["swamp-tetherrock-swamprockexplode-4+0", "swamp-tetherrock-swamprockexplode-4+0", 2, ["NO-XGO"], ""], +["swamp-tetherrock-swamprockexplode-3+0", "swamp-tetherrock-swamprockexplode-3+0", 2, ["NO-XGO"], ""], +["swamp-tetherrock-swamprockexplode-2+0", "swamp-tetherrock-swamprockexplode-2+0", 2, ["NO-XGO"], ""], +["swamprockexplode-4+0", "swamprockexplode-4+0", 2, ["NO-XGO"], ""], +["swamprockexplode-3+0", "swamprockexplode-3+0", 2, ["NO-XGO"], ""], +["swamprockexplode-2+0", "swamprockexplode-2+0", 2, ["NO-XGO"], ""], +["swamp-tetherrock-swamprockexplode-1+0", "swamp-tetherrock-swamprockexplode-1+0", 2, ["NO-XGO"], ""], +["oracle-right-eye+0", "oracle-right-eye+0", 2, ["NO-XGO"], ""], +["oracle-left-eye+0", "oracle-left-eye+0", 2, ["NO-XGO"], ""], +["swamprockexplode-1+0", "swamprockexplode-1+0", 2, ["NO-XGO"], ""], +["maincavecam-gnawer-fuel-cell+0", "maincavecam-gnawer-fuel-cell+0", 2, ["NO-XGO"], ""], +["gnawer-fuel-cell+0", "gnawer-fuel-cell+0", 2, ["NO-XGO"], ""], +["oracle-right-eye-3+0", "oracle-right-eye-3+0", 2, ["NO-XGO"], ""], +["oracle-right-eye-3+1", "oracle-right-eye-3+1", 2, ["NO-XGO"], ""], +["oracle-right-eye-2+0", "oracle-right-eye-2+0", 2, ["NO-XGO"], ""], +["oracle-right-eye-2+1", "oracle-right-eye-2+1", 2, ["NO-XGO"], ""], +["oracle-right-eye-1+0", "oracle-right-eye-1+0", 2, ["NO-XGO"], ""], +["oracle-right-eye-1+1", "oracle-right-eye-1+1", 2, ["NO-XGO"], ""], +["oracle-reminder-1+0", "oracle-reminder-1+0", 2, ["NO-XGO"], ""], +["oracle-reminder-1+1", "oracle-reminder-1+1", 2, ["NO-XGO"], ""], +["oracle-reminder-1+2", "oracle-reminder-1+2", 2, ["NO-XGO"], ""], +["oracle-reminder-1+3", "oracle-reminder-1+3", 2, ["NO-XGO"], ""], +["oracle-left-eye-3+0", "oracle-left-eye-3+0", 2, ["NO-XGO"], ""], +["oracle-left-eye-3+1", "oracle-left-eye-3+1", 2, ["NO-XGO"], ""], +["oracle-left-eye-2+0", "oracle-left-eye-2+0", 2, ["NO-XGO"], ""], +["oracle-left-eye-2+1", "oracle-left-eye-2+1", 2, ["NO-XGO"], ""], +["oracle-intro-3+0", "oracle-intro-3+0", 2, ["NO-XGO"], ""], +["oracle-intro-3+1", "oracle-intro-3+1", 2, ["NO-XGO"], ""], +["oracle-intro-3+2", "oracle-intro-3+2", 2, ["NO-XGO"], ""], +["oracle-intro-3+3", "oracle-intro-3+3", 2, ["NO-XGO"], ""], +["oracle-intro-2+0", "oracle-intro-2+0", 2, ["NO-XGO"], ""], +["oracle-intro-2+1", "oracle-intro-2+1", 2, ["NO-XGO"], ""], +["oracle-intro-2+2", "oracle-intro-2+2", 2, ["NO-XGO"], ""], +["oracle-intro-2+3", "oracle-intro-2+3", 2, ["NO-XGO"], ""], +["death-0202+0", "death-0202+0", 2, ["NO-XGO"], ""], +["race-ring-second-anim+0", "race-ring-second-anim+0", 2, ["NO-XGO"], ""], +["race-ring-second-anim+1", "race-ring-second-anim+1", 2, ["NO-XGO"], ""], +["race-ring-anim+0", "race-ring-anim+0", 2, ["NO-XGO"], ""], +["race-ring-anim+1", "race-ring-anim+1", 2, ["NO-XGO"], ""], +["eichar-fish+0", "eichar-fish+0", 2, ["NO-XGO"], ""], +["oracle-left-eye-1+0", "oracle-left-eye-1+0", 2, ["NO-XGO"], ""], +["oracle-left-eye-1+1", "oracle-left-eye-1+1", 2, ["NO-XGO"], ""], +["swamp-tetherrock-explode-final-4+0", "swamp-tetherrock-explode-final-4+0", 2, ["NO-XGO"], ""], +["swamp-tetherrock-explode-final-4+1", "swamp-tetherrock-explode-final-4+1", 2, ["NO-XGO"], ""], +["swamp-tetherrock-explode-final-4+2", "swamp-tetherrock-explode-final-4+2", 2, ["NO-XGO"], ""], +["swamp-tetherrock-explode-final-3+0", "swamp-tetherrock-explode-final-3+0", 2, ["NO-XGO"], ""], +["swamp-tetherrock-explode-final-3+1", "swamp-tetherrock-explode-final-3+1", 2, ["NO-XGO"], ""], +["swamp-tetherrock-explode-final-3+2", "swamp-tetherrock-explode-final-3+2", 2, ["NO-XGO"], ""], +["swamp-tetherrock-explode-final-2+0", "swamp-tetherrock-explode-final-2+0", 2, ["NO-XGO"], ""], +["swamp-tetherrock-explode-final-2+1", "swamp-tetherrock-explode-final-2+1", 2, ["NO-XGO"], ""], +["swamp-tetherrock-explode-final-2+2", "swamp-tetherrock-explode-final-2+2", 2, ["NO-XGO"], ""], +["swamp-tetherrock-explode-final-1+0", "swamp-tetherrock-explode-final-1+0", 2, ["NO-XGO"], ""], +["swamp-tetherrock-explode-final-1+1", "swamp-tetherrock-explode-final-1+1", 2, ["NO-XGO"], ""], +["swamp-tetherrock-explode-final-1+2", "swamp-tetherrock-explode-final-1+2", 2, ["NO-XGO"], ""], +["oracle-intro-1+0", "oracle-intro-1+0", 2, ["NO-XGO"], ""], +["oracle-intro-1+1", "oracle-intro-1+1", 2, ["NO-XGO"], ""], +["oracle-intro-1+2", "oracle-intro-1+2", 2, ["NO-XGO"], ""], +["oracle-intro-1+3", "oracle-intro-1+3", 2, ["NO-XGO"], ""], +["oracle-intro-1+4", "oracle-intro-1+4", 2, ["NO-XGO"], ""], +["eichar-ice+0", "eichar-ice+0", 2, ["NO-XGO"], ""], +["eichar-ambient-3+0", "eichar-ambient-3+0", 2, ["NO-XGO"], ""], +["death-0191+0", "death-0191+0", 2, ["NO-XGO"], ""], +["death-0186+0", "death-0186+0", 2, ["NO-XGO"], ""], +["death-0187+0", "death-0187+0", 2, ["NO-XGO"], ""], +["eichar-ambient-4+0", "eichar-ambient-4+0", 2, ["NO-XGO"], ""], +["eichar-pole+0", "eichar-pole+0", 2, ["NO-XGO"], ""], +["race-ring-anim-second+0", "race-ring-anim-second+0", 2, ["NO-XGO"], ""], +["race-ring-anim-second+1", "race-ring-anim-second+1", 2, ["NO-XGO"], ""], +["race-ring-anim-2+0", "race-ring-anim-2+0", 2, ["NO-XGO"], ""], +["race-ring-anim-2+1", "race-ring-anim-2+1", 2, ["NO-XGO"], ""], +["death-0184+0", "death-0184+0", 2, ["NO-XGO"], ""], +["death-0181+0", "death-0181+0", 2, ["NO-XGO"], ""], +["pelican-spit-ext+0", "pelican-spit-ext+0", 2, ["NO-XGO"], ""], +["pelican-spit-ext+1", "pelican-spit-ext+1", 2, ["NO-XGO"], ""], +["death-0195+0", "death-0195+0", 2, ["NO-XGO"], ""], +["eichar-ambient-2+0", "eichar-ambient-2+0", 2, ["NO-XGO"], ""], +["fisher-reminder-1+0", "fisher-reminder-1+0", 2, ["NO-XGO"], ""], +["death-0182+0", "death-0182+0", 2, ["NO-XGO"], ""], +["billy-reminder-1+0", "billy-reminder-1+0", 2, ["NO-XGO"], ""], +["billy-reminder-1+1", "billy-reminder-1+1", 2, ["NO-XGO"], ""], +["happy-plant-open+0", "happy-plant-open+0", 2, ["NO-XGO"], ""], +["happy-plant-open+1", "happy-plant-open+1", 2, ["NO-XGO"], ""], +["eichar-tube+0", "eichar-tube+0", 2, ["NO-XGO"], ""], +["sculptor-reminder-1+0", "sculptor-reminder-1+0", 2, ["NO-XGO"], ""], +["sculptor-reminder-1+1", "sculptor-reminder-1+1", 2, ["NO-XGO"], ""], +["death-0197+0", "death-0197+0", 2, ["NO-XGO"], ""], +["death-0197+1", "death-0197+1", 2, ["NO-XGO"], ""], +["death-0193+0", "death-0193+0", 2, ["NO-XGO"], ""], +["death-0193+1", "death-0193+1", 2, ["NO-XGO"], ""], +["eichar-ambient-1+0", "eichar-ambient-1+0", 2, ["NO-XGO"], ""], +["farmer-reminder-2+0", "farmer-reminder-2+0", 2, ["NO-XGO"], ""], +["farmer-reminder-2+1", "farmer-reminder-2+1", 2, ["NO-XGO"], ""], +["farmer-reminder-1+0", "farmer-reminder-1+0", 2, ["NO-XGO"], ""], +["farmer-reminder-1+1", "farmer-reminder-1+1", 2, ["NO-XGO"], ""], +["death-0199+0", "death-0199+0", 2, ["NO-XGO"], ""], +["death-0199+1", "death-0199+1", 2, ["NO-XGO"], ""], +["geologist-reminder-money+0", "geologist-reminder-money+0", 2, ["NO-XGO"], ""], +["geologist-reminder-money+1", "geologist-reminder-money+1", 2, ["NO-XGO"], ""], +["billy-resolution+0", "billy-resolution+0", 2, ["NO-XGO"], ""], +["billy-resolution+1", "billy-resolution+1", 2, ["NO-XGO"], ""], +["gambler-reminder-money+0", "gambler-reminder-money+0", 2, ["NO-XGO"], ""], +["gambler-reminder-money+1", "gambler-reminder-money+1", 2, ["NO-XGO"], ""], +["big-adventure+0", "big-adventure+0", 2, ["NO-XGO"], ""], +["big-adventure+1", "big-adventure+1", 2, ["NO-XGO"], ""], +["big-adventure+2", "big-adventure+2", 2, ["NO-XGO"], ""], +["big-adventure+3", "big-adventure+3", 2, ["NO-XGO"], ""], +["big-adventure+4", "big-adventure+4", 2, ["NO-XGO"], ""], +["big-adventure+5", "big-adventure+5", 2, ["NO-XGO"], ""], +["big-adventure+6", "big-adventure+6", 2, ["NO-XGO"], ""], +["big-adventure+7", "big-adventure+7", 2, ["NO-XGO"], ""], +["fuel-cell-racer-victory-1+0", "fuel-cell-racer-victory-1+0", 2, ["NO-XGO"], ""], +["fuel-cell-racer-victory-1+1", "fuel-cell-racer-victory-1+1", 2, ["NO-XGO"], ""], +["billy-reject+0", "billy-reject+0", 2, ["NO-XGO"], ""], +["billy-reject+1", "billy-reject+1", 2, ["NO-XGO"], ""], +["billy-reject+2", "billy-reject+2", 2, ["NO-XGO"], ""], +["warrior-reminder-1+0", "warrior-reminder-1+0", 2, ["NO-XGO"], ""], +["warrior-reminder-1+1", "warrior-reminder-1+1", 2, ["NO-XGO"], ""], +["warrior-reminder-1+2", "warrior-reminder-1+2", 2, ["NO-XGO"], ""], +["billy-accept+0", "billy-accept+0", 2, ["NO-XGO"], ""], +["billy-accept+1", "billy-accept+1", 2, ["NO-XGO"], ""], +["billy-accept+2", "billy-accept+2", 2, ["NO-XGO"], ""], +["sage-village3-reminder-1-dark-eco+0", "sage-village3-reminder-1-dark-eco+0", 2, ["NO-XGO"], ""], +["sage-village3-reminder-1-dark-eco+1", "sage-village3-reminder-1-dark-eco+1", 2, ["NO-XGO"], ""], +["assistant-reminder-1-generic+0", "assistant-reminder-1-generic+0", 2, ["NO-XGO"], ""], +["assistant-reminder-1-generic+1", "assistant-reminder-1-generic+1", 2, ["NO-XGO"], ""], +["fisher-reject+0", "fisher-reject+0", 2, ["NO-XGO"], ""], +["fisher-reject+1", "fisher-reject+1", 2, ["NO-XGO"], ""], +["gambler-reminder-race+0", "gambler-reminder-race+0", 2, ["NO-XGO"], ""], +["gambler-reminder-race+1", "gambler-reminder-race+1", 2, ["NO-XGO"], ""], +["geologist-resolution-money+0", "geologist-resolution-money+0", 2, ["NO-XGO"], ""], +["geologist-resolution-money+1", "geologist-resolution-money+1", 2, ["NO-XGO"], ""], +["lrocklrg-falling+0", "lrocklrg-falling+0", 2, ["NO-XGO"], ""], +["lrocklrg-falling+1", "lrocklrg-falling+1", 2, ["NO-XGO"], ""], +["lrocklrg-falling+2", "lrocklrg-falling+2", 2, ["NO-XGO"], ""], +["lrocklrg-falling+3", "lrocklrg-falling+3", 2, ["NO-XGO"], ""], +["explorer-reminder-2+0", "explorer-reminder-2+0", 2, ["NO-XGO"], ""], +["explorer-reminder-2+1", "explorer-reminder-2+1", 2, ["NO-XGO"], ""], +["explorer-reminder-2+2", "explorer-reminder-2+2", 2, ["NO-XGO"], ""], +["geologist-reminder-moles+0", "geologist-reminder-moles+0", 2, ["NO-XGO"], ""], +["geologist-reminder-moles+1", "geologist-reminder-moles+1", 2, ["NO-XGO"], ""], +["geologist-reminder-moles+2", "geologist-reminder-moles+2", 2, ["NO-XGO"], ""], +["fuel-cell-victory+0", "fuel-cell-victory+0", 2, ["NO-XGO"], ""], +["fuel-cell-victory+1", "fuel-cell-victory+1", 2, ["NO-XGO"], ""], +["minershort-reminder-1-orbs+0", "minershort-reminder-1-orbs+0", 2, ["NO-XGO"], ""], +["minershort-reminder-1-orbs+1", "minershort-reminder-1-orbs+1", 2, ["NO-XGO"], ""], +["minershort-reminder-1-orbs+2", "minershort-reminder-1-orbs+2", 2, ["NO-XGO"], ""], +["sage-village3-reminder-1-rams+0", "sage-village3-reminder-1-rams+0", 2, ["NO-XGO"], ""], +["sage-village3-reminder-1-rams+1", "sage-village3-reminder-1-rams+1", 2, ["NO-XGO"], ""], +["sage-village3-reminder-1-rams+2", "sage-village3-reminder-1-rams+2", 2, ["NO-XGO"], ""], +["assistant-village2-reminder-1-flutflut+0", "assistant-village2-reminder-1-flutflut+0", 2, ["NO-XGO"], ""], +["assistant-village2-reminder-1-flutflut+1", "assistant-village2-reminder-1-flutflut+1", 2, ["NO-XGO"], ""], +["assistant-village2-reminder-1-flutflut+2", "assistant-village2-reminder-1-flutflut+2", 2, ["NO-XGO"], ""], +["fuel-cell-victory-2+0", "fuel-cell-victory-2+0", 2, ["NO-XGO"], ""], +["fuel-cell-victory-2+1", "fuel-cell-victory-2+1", 2, ["NO-XGO"], ""], +["minershort-reminder-1-gnawers+0", "minershort-reminder-1-gnawers+0", 2, ["NO-XGO"], ""], +["minershort-reminder-1-gnawers+1", "minershort-reminder-1-gnawers+1", 2, ["NO-XGO"], ""], +["minershort-reminder-1-gnawers+2", "minershort-reminder-1-gnawers+2", 2, ["NO-XGO"], ""], +["gambler-resolution-money+0", "gambler-resolution-money+0", 2, ["NO-XGO"], ""], +["gambler-resolution-money+1", "gambler-resolution-money+1", 2, ["NO-XGO"], ""], +["assistant-village3-reminder+0", "assistant-village3-reminder+0", 2, ["NO-XGO"], ""], +["assistant-village3-reminder+1", "assistant-village3-reminder+1", 2, ["NO-XGO"], ""], +["assistant-village3-reminder+2", "assistant-village3-reminder+2", 2, ["NO-XGO"], ""], +["sidekick-human-intro-sequence-a+0", "sidekick-human-intro-sequence-a+0", 2, ["NO-XGO"], ""], +["sidekick-human-intro-sequence-a+1", "sidekick-human-intro-sequence-a+1", 2, ["NO-XGO"], ""], +["sidekick-human-intro-sequence-a+2", "sidekick-human-intro-sequence-a+2", 2, ["NO-XGO"], ""], +["sidekick-human-intro-sequence-a+3", "sidekick-human-intro-sequence-a+3", 2, ["NO-XGO"], ""], +["sidekick-human-intro-sequence-a+4", "sidekick-human-intro-sequence-a+4", 2, ["NO-XGO"], ""], +["sidekick-human-intro-sequence-a+5", "sidekick-human-intro-sequence-a+5", 2, ["NO-XGO"], ""], +["sidekick-human-intro-sequence-a+6", "sidekick-human-intro-sequence-a+6", 2, ["NO-XGO"], ""], +["sidekick-human-intro-sequence-a+7", "sidekick-human-intro-sequence-a+7", 2, ["NO-XGO"], ""], +["sidekick-human-intro-sequence-a+8", "sidekick-human-intro-sequence-a+8", 2, ["NO-XGO"], ""], +["sidekick-human-intro-sequence-a+9", "sidekick-human-intro-sequence-a+9", 2, ["NO-XGO"], ""], +["sidekick-human-intro-sequence-a+10", "sidekick-human-intro-sequence-a+10", 2, ["NO-XGO"], ""], +["sidekick-human-intro-sequence-a+11", "sidekick-human-intro-sequence-a+11", 2, ["NO-XGO"], ""], +["sidekick-human-intro-sequence-a+12", "sidekick-human-intro-sequence-a+12", 2, ["NO-XGO"], ""], +["sidekick-human-intro-sequence-a+13", "sidekick-human-intro-sequence-a+13", 2, ["NO-XGO"], ""], +["sidekick-human-intro-sequence-a+14", "sidekick-human-intro-sequence-a+14", 2, ["NO-XGO"], ""], +["sidekick-human-intro-sequence-a+15", "sidekick-human-intro-sequence-a+15", 2, ["NO-XGO"], ""], +["sidekick-human-intro-sequence-a+16", "sidekick-human-intro-sequence-a+16", 2, ["NO-XGO"], ""], +["sidekick-human-intro-sequence-a+17", "sidekick-human-intro-sequence-a+17", 2, ["NO-XGO"], ""], +["sidekick-human-intro-sequence-a+18", "sidekick-human-intro-sequence-a+18", 2, ["NO-XGO"], ""], +["sidekick-human-intro-sequence-a+19", "sidekick-human-intro-sequence-a+19", 2, ["NO-XGO"], ""], +["sidekick-human-intro-sequence-a+20", "sidekick-human-intro-sequence-a+20", 2, ["NO-XGO"], ""], +["sidekick-human-intro-sequence-a+21", "sidekick-human-intro-sequence-a+21", 2, ["NO-XGO"], ""], +["fisher-accept+0", "fisher-accept+0", 2, ["NO-XGO"], ""], +["fisher-accept+1", "fisher-accept+1", 2, ["NO-XGO"], ""], +["fisher-accept+2", "fisher-accept+2", 2, ["NO-XGO"], ""], +["fisher-accept+3", "fisher-accept+3", 2, ["NO-XGO"], ""], +["fisher-accept+4", "fisher-accept+4", 2, ["NO-XGO"], ""], +["fisher-accept+5", "fisher-accept+5", 2, ["NO-XGO"], ""], +["finalbosscam-white-eco+0", "finalbosscam-white-eco+0", 2, ["NO-XGO"], ""], +["finalbosscam-white-eco+1", "finalbosscam-white-eco+1", 2, ["NO-XGO"], ""], +["finalbosscam-white-eco+2", "finalbosscam-white-eco+2", 2, ["NO-XGO"], ""], +["farmer-resolution+0", "farmer-resolution+0", 2, ["NO-XGO"], ""], +["farmer-resolution+1", "farmer-resolution+1", 2, ["NO-XGO"], ""], +["farmer-resolution+2", "farmer-resolution+2", 2, ["NO-XGO"], ""], +["farmer-resolution+3", "farmer-resolution+3", 2, ["NO-XGO"], ""], +["assistant-reminder-1-race-bike+0", "assistant-reminder-1-race-bike+0", 2, ["NO-XGO"], ""], +["assistant-reminder-1-race-bike+1", "assistant-reminder-1-race-bike+1", 2, ["NO-XGO"], ""], +["assistant-reminder-1-race-bike+2", "assistant-reminder-1-race-bike+2", 2, ["NO-XGO"], ""], +["mayor-reminder-donation+0", "mayor-reminder-donation+0", 2, ["NO-XGO"], ""], +["mayor-reminder-donation+1", "mayor-reminder-donation+1", 2, ["NO-XGO"], ""], +["mayor-reminder-donation+2", "mayor-reminder-donation+2", 2, ["NO-XGO"], ""], +["gambler-resolution-race+0", "gambler-resolution-race+0", 2, ["NO-XGO"], ""], +["gambler-resolution-race+1", "gambler-resolution-race+1", 2, ["NO-XGO"], ""], +["gambler-resolution-race+2", "gambler-resolution-race+2", 2, ["NO-XGO"], ""], +["fuel-cell-flut-victory-1+0", "fuel-cell-flut-victory-1+0", 2, ["NO-XGO"], ""], +["fuel-cell-flut-victory-1+1", "fuel-cell-flut-victory-1+1", 2, ["NO-XGO"], ""], +["fuel-cell-victory-5+0", "fuel-cell-victory-5+0", 2, ["NO-XGO"], ""], +["fuel-cell-victory-5+1", "fuel-cell-victory-5+1", 2, ["NO-XGO"], ""], +["sage-bluehut-reminder-1-crop-dusting+0", "sage-bluehut-reminder-1-crop-dusting+0", 2, ["NO-XGO"], ""], +["sage-bluehut-reminder-1-crop-dusting+1", "sage-bluehut-reminder-1-crop-dusting+1", 2, ["NO-XGO"], ""], +["sage-bluehut-reminder-1-crop-dusting+2", "sage-bluehut-reminder-1-crop-dusting+2", 2, ["NO-XGO"], ""], +["flying-lurker-intro+0", "flying-lurker-intro+0", 2, ["NO-XGO"], ""], +["flying-lurker-intro+1", "flying-lurker-intro+1", 2, ["NO-XGO"], ""], +["sage-reminder-1-ecorocks+0", "sage-reminder-1-ecorocks+0", 2, ["NO-XGO"], ""], +["sage-reminder-1-ecorocks+1", "sage-reminder-1-ecorocks+1", 2, ["NO-XGO"], ""], +["sage-reminder-1-ecorocks+2", "sage-reminder-1-ecorocks+2", 2, ["NO-XGO"], ""], +["sage-reminder-1-ecorocks+3", "sage-reminder-1-ecorocks+3", 2, ["NO-XGO"], ""], +["assistant-village2-reminder-1-robbers+0", "assistant-village2-reminder-1-robbers+0", 2, ["NO-XGO"], ""], +["assistant-village2-reminder-1-robbers+1", "assistant-village2-reminder-1-robbers+1", 2, ["NO-XGO"], ""], +["assistant-village2-reminder-1-robbers+2", "assistant-village2-reminder-1-robbers+2", 2, ["NO-XGO"], ""], +["minershort-reminder-2-orbs+0", "minershort-reminder-2-orbs+0", 2, ["NO-XGO"], ""], +["minershort-reminder-2-orbs+1", "minershort-reminder-2-orbs+1", 2, ["NO-XGO"], ""], +["mayor-reminder-beams+0", "mayor-reminder-beams+0", 2, ["NO-XGO"], ""], +["mayor-reminder-beams+1", "mayor-reminder-beams+1", 2, ["NO-XGO"], ""], +["mayor-reminder-beams+2", "mayor-reminder-beams+2", 2, ["NO-XGO"], ""], +["logo-intro-2+0", "logo-intro-2+0", 2, ["NO-XGO"], ""], +["logo-intro-2+1", "logo-intro-2+1", 2, ["NO-XGO"], ""], +["logo-intro-2+2", "logo-intro-2+2", 2, ["NO-XGO"], ""], +["logo-intro-2+3", "logo-intro-2+3", 2, ["NO-XGO"], ""], +["logo-intro-2+4", "logo-intro-2+4", 2, ["NO-XGO"], ""], +["logo-intro-2+5", "logo-intro-2+5", 2, ["NO-XGO"], ""], +["logo-intro-2+6", "logo-intro-2+6", 2, ["NO-XGO"], ""], +["logo-intro-2+7", "logo-intro-2+7", 2, ["NO-XGO"], ""], +["logo-intro-2+8", "logo-intro-2+8", 2, ["NO-XGO"], ""], +["logo-intro-2+9", "logo-intro-2+9", 2, ["NO-XGO"], ""], +["logo-intro-2+10", "logo-intro-2+10", 2, ["NO-XGO"], ""], +["logo-intro-2+11", "logo-intro-2+11", 2, ["NO-XGO"], ""], +["logo-intro-2+12", "logo-intro-2+12", 2, ["NO-XGO"], ""], +["logo-intro-2+13", "logo-intro-2+13", 2, ["NO-XGO"], ""], +["logo-intro-2+14", "logo-intro-2+14", 2, ["NO-XGO"], ""], +["sage-reminder-1-generic+0", "sage-reminder-1-generic+0", 2, ["NO-XGO"], ""], +["sage-reminder-1-generic+1", "sage-reminder-1-generic+1", 2, ["NO-XGO"], ""], +["sage-reminder-1-generic+2", "sage-reminder-1-generic+2", 2, ["NO-XGO"], ""], +["bird-lady-reminder-1+0", "bird-lady-reminder-1+0", 2, ["NO-XGO"], ""], +["bird-lady-reminder-1+1", "bird-lady-reminder-1+1", 2, ["NO-XGO"], ""], +["bird-lady-reminder-1+2", "bird-lady-reminder-1+2", 2, ["NO-XGO"], ""], +["bird-lady-reminder-1+3", "bird-lady-reminder-1+3", 2, ["NO-XGO"], ""], +["assistant-village2-reminder-1-room+0", "assistant-village2-reminder-1-room+0", 2, ["NO-XGO"], ""], +["assistant-village2-reminder-1-room+1", "assistant-village2-reminder-1-room+1", 2, ["NO-XGO"], ""], +["assistant-village2-reminder-1-room+2", "assistant-village2-reminder-1-room+2", 2, ["NO-XGO"], ""], +["assistant-reminder-1-blue-eco-switch+0", "assistant-reminder-1-blue-eco-switch+0", 2, ["NO-XGO"], ""], +["assistant-reminder-1-blue-eco-switch+1", "assistant-reminder-1-blue-eco-switch+1", 2, ["NO-XGO"], ""], +["assistant-reminder-1-blue-eco-switch+2", "assistant-reminder-1-blue-eco-switch+2", 2, ["NO-XGO"], ""], +["logo-loop+0", "logo-loop+0", 2, ["NO-XGO"], ""], +["logo-loop+1", "logo-loop+1", 2, ["NO-XGO"], ""], +["logo-loop+2", "logo-loop+2", 2, ["NO-XGO"], ""], +["logo-loop+3", "logo-loop+3", 2, ["NO-XGO"], ""], +["logo-loop+4", "logo-loop+4", 2, ["NO-XGO"], ""], +["logo-loop+5", "logo-loop+5", 2, ["NO-XGO"], ""], +["logo-loop+6", "logo-loop+6", 2, ["NO-XGO"], ""], +["logo-loop+7", "logo-loop+7", 2, ["NO-XGO"], ""], +["logo-loop+8", "logo-loop+8", 2, ["NO-XGO"], ""], +["logo-loop+9", "logo-loop+9", 2, ["NO-XGO"], ""], +["logo-loop+10", "logo-loop+10", 2, ["NO-XGO"], ""], +["logo-loop+11", "logo-loop+11", 2, ["NO-XGO"], ""], +["logo-loop+12", "logo-loop+12", 2, ["NO-XGO"], ""], +["logo-loop+13", "logo-loop+13", 2, ["NO-XGO"], ""], +["logo-loop+14", "logo-loop+14", 2, ["NO-XGO"], ""], +["logo-loop+15", "logo-loop+15", 2, ["NO-XGO"], ""], +["logo-loop+16", "logo-loop+16", 2, ["NO-XGO"], ""], +["farmer-introduction+0", "farmer-introduction+0", 2, ["NO-XGO"], ""], +["farmer-introduction+1", "farmer-introduction+1", 2, ["NO-XGO"], ""], +["farmer-introduction+2", "farmer-introduction+2", 2, ["NO-XGO"], ""], +["farmer-introduction+3", "farmer-introduction+3", 2, ["NO-XGO"], ""], +["farmer-introduction+4", "farmer-introduction+4", 2, ["NO-XGO"], ""], +["geologist-resolution-moles+0", "geologist-resolution-moles+0", 2, ["NO-XGO"], ""], +["geologist-resolution-moles+1", "geologist-resolution-moles+1", 2, ["NO-XGO"], ""], +["geologist-resolution-moles+2", "geologist-resolution-moles+2", 2, ["NO-XGO"], ""], +["v1-in+0", "v1-in+0", 2, ["NO-XGO"], ""], +["v1-in+1", "v1-in+1", 2, ["NO-XGO"], ""], +["fuel-cell-victory-4+0", "fuel-cell-victory-4+0", 2, ["NO-XGO"], ""], +["fuel-cell-victory-4+1", "fuel-cell-victory-4+1", 2, ["NO-XGO"], ""], +["sage-introduction-ecorocks+0", "sage-introduction-ecorocks+0", 2, ["NO-XGO"], ""], +["sage-introduction-ecorocks+1", "sage-introduction-ecorocks+1", 2, ["NO-XGO"], ""], +["sage-introduction-ecorocks+2", "sage-introduction-ecorocks+2", 2, ["NO-XGO"], ""], +["sage-introduction-ecorocks+3", "sage-introduction-ecorocks+3", 2, ["NO-XGO"], ""], +["sage-introduction-ecorocks+4", "sage-introduction-ecorocks+4", 2, ["NO-XGO"], ""], +["sage-introduction-ecorocks+5", "sage-introduction-ecorocks+5", 2, ["NO-XGO"], ""], +["sage-introduction-ecorocks+6", "sage-introduction-ecorocks+6", 2, ["NO-XGO"], ""], +["sage-introduction-ecorocks+7", "sage-introduction-ecorocks+7", 2, ["NO-XGO"], ""], +["minershort-reminder-1-switch+0", "minershort-reminder-1-switch+0", 2, ["NO-XGO"], ""], +["minershort-reminder-1-switch+1", "minershort-reminder-1-switch+1", 2, ["NO-XGO"], ""], +["minershort-reminder-1-switch+2", "minershort-reminder-1-switch+2", 2, ["NO-XGO"], ""], +["minershort-reminder-1-switch+3", "minershort-reminder-1-switch+3", 2, ["NO-XGO"], ""], +["minershort-reminder-1-switch+4", "minershort-reminder-1-switch+4", 2, ["NO-XGO"], ""], +["logo-intro+0", "logo-intro+0", 2, ["NO-XGO"], ""], +["logo-intro+1", "logo-intro+1", 2, ["NO-XGO"], ""], +["logo-intro+2", "logo-intro+2", 2, ["NO-XGO"], ""], +["sage-reminder-2-generic+0", "sage-reminder-2-generic+0", 2, ["NO-XGO"], ""], +["sage-reminder-2-generic+1", "sage-reminder-2-generic+1", 2, ["NO-XGO"], ""], +["sage-reminder-2-generic+2", "sage-reminder-2-generic+2", 2, ["NO-XGO"], ""], +["sage-reminder-2-generic+3", "sage-reminder-2-generic+3", 2, ["NO-XGO"], ""], +["muse-victory+0", "muse-victory+0", 2, ["NO-XGO"], ""], +["muse-victory+1", "muse-victory+1", 2, ["NO-XGO"], ""], +["sage-reminder-1-misty-cannon+0", "sage-reminder-1-misty-cannon+0", 2, ["NO-XGO"], ""], +["sage-reminder-1-misty-cannon+1", "sage-reminder-1-misty-cannon+1", 2, ["NO-XGO"], ""], +["sage-reminder-1-misty-cannon+2", "sage-reminder-1-misty-cannon+2", 2, ["NO-XGO"], ""], +["sage-reminder-1-misty-cannon+3", "sage-reminder-1-misty-cannon+3", 2, ["NO-XGO"], ""], +["sage-reminder-1-misty-cannon+4", "sage-reminder-1-misty-cannon+4", 2, ["NO-XGO"], ""], +["fuel-cell-victory-7+0", "fuel-cell-victory-7+0", 2, ["NO-XGO"], ""], +["fuel-cell-victory-7+1", "fuel-cell-victory-7+1", 2, ["NO-XGO"], ""], +["minershort-resolution-1-orbs+0", "minershort-resolution-1-orbs+0", 2, ["NO-XGO"], ""], +["minershort-resolution-1-orbs+1", "minershort-resolution-1-orbs+1", 2, ["NO-XGO"], ""], +["fuel-cell-victory-8+0", "fuel-cell-victory-8+0", 2, ["NO-XGO"], ""], +["fuel-cell-victory-8+1", "fuel-cell-victory-8+1", 2, ["NO-XGO"], ""], +["bird-lady-reminder-2+0", "bird-lady-reminder-2+0", 2, ["NO-XGO"], ""], +["bird-lady-reminder-2+1", "bird-lady-reminder-2+1", 2, ["NO-XGO"], ""], +["bird-lady-reminder-2+2", "bird-lady-reminder-2+2", 2, ["NO-XGO"], ""], +["bird-lady-reminder-2+3", "bird-lady-reminder-2+3", 2, ["NO-XGO"], ""], +["bird-lady-reminder-2+4", "bird-lady-reminder-2+4", 2, ["NO-XGO"], ""], +["fuel-cell-victory-6+0", "fuel-cell-victory-6+0", 2, ["NO-XGO"], ""], +["fuel-cell-victory-6+1", "fuel-cell-victory-6+1", 2, ["NO-XGO"], ""], +["fuel-cell-victory-3+0", "fuel-cell-victory-3+0", 2, ["NO-XGO"], ""], +["fuel-cell-victory-3+1", "fuel-cell-victory-3+1", 2, ["NO-XGO"], ""], +["plunger-lurker-blowup+0", "plunger-lurker-blowup+0", 2, ["NO-XGO"], ""], +["plunger-lurker-blowup+1", "plunger-lurker-blowup+1", 2, ["NO-XGO"], ""], +["plunger-lurker-blowup+2", "plunger-lurker-blowup+2", 2, ["NO-XGO"], ""], +["plunger-lurker-blowup+3", "plunger-lurker-blowup+3", 2, ["NO-XGO"], ""], +["plant-boss-main+0", "plant-boss-main+0", 2, ["NO-XGO"], ""], +["warrior-resolution+0", "warrior-resolution+0", 2, ["NO-XGO"], ""], +["warrior-resolution+1", "warrior-resolution+1", 2, ["NO-XGO"], ""], +["warrior-resolution+2", "warrior-resolution+2", 2, ["NO-XGO"], ""], +["warrior-resolution+3", "warrior-resolution+3", 2, ["NO-XGO"], ""], +["warrior-resolution+4", "warrior-resolution+4", 2, ["NO-XGO"], ""], +["warrior-resolution+5", "warrior-resolution+5", 2, ["NO-XGO"], ""], +["eichar-racer+0", "eichar-racer+0", 2, ["NO-XGO"], ""], +["mayor-resolution-donation+0", "mayor-resolution-donation+0", 2, ["NO-XGO"], ""], +["mayor-resolution-donation+1", "mayor-resolution-donation+1", 2, ["NO-XGO"], ""], +["mayor-resolution-donation+2", "mayor-resolution-donation+2", 2, ["NO-XGO"], ""], +["mayor-resolution-donation+3", "mayor-resolution-donation+3", 2, ["NO-XGO"], ""], +["mayor-resolution-donation+4", "mayor-resolution-donation+4", 2, ["NO-XGO"], ""], +["mayor-resolution-beams+0", "mayor-resolution-beams+0", 2, ["NO-XGO"], ""], +["mayor-resolution-beams+1", "mayor-resolution-beams+1", 2, ["NO-XGO"], ""], +["mayor-resolution-beams+2", "mayor-resolution-beams+2", 2, ["NO-XGO"], ""], +["mayor-resolution-beams+3", "mayor-resolution-beams+3", 2, ["NO-XGO"], ""], +["mayor-resolution-beams+4", "mayor-resolution-beams+4", 2, ["NO-XGO"], ""], +["mayor-resolution-beams+5", "mayor-resolution-beams+5", 2, ["NO-XGO"], ""], +["minershort-introduction-switch+0", "minershort-introduction-switch+0", 2, ["NO-XGO"], ""], +["minershort-introduction-switch+1", "minershort-introduction-switch+1", 2, ["NO-XGO"], ""], +["minershort-introduction-switch+2", "minershort-introduction-switch+2", 2, ["NO-XGO"], ""], +["minershort-introduction-switch+3", "minershort-introduction-switch+3", 2, ["NO-XGO"], ""], +["minershort-introduction-switch+4", "minershort-introduction-switch+4", 2, ["NO-XGO"], ""], +["minershort-introduction-switch+5", "minershort-introduction-switch+5", 2, ["NO-XGO"], ""], +["minershort-introduction-switch+6", "minershort-introduction-switch+6", 2, ["NO-XGO"], ""], +["fishermans-boat-ride-to-village1+0", "fishermans-boat-ride-to-village1+0", 2, ["NO-XGO"], ""], +["fishermans-boat-ride-to-village1+1", "fishermans-boat-ride-to-village1+1", 2, ["NO-XGO"], ""], +["fishermans-boat-ride-to-village1+2", "fishermans-boat-ride-to-village1+2", 2, ["NO-XGO"], ""], +["fishermans-boat-ride-to-misty+0", "fishermans-boat-ride-to-misty+0", 2, ["NO-XGO"], ""], +["fishermans-boat-ride-to-misty+1", "fishermans-boat-ride-to-misty+1", 2, ["NO-XGO"], ""], +["fishermans-boat-ride-to-misty+2", "fishermans-boat-ride-to-misty+2", 2, ["NO-XGO"], ""], +["sage-bluehut-reminder-1-prec-arm+0", "sage-bluehut-reminder-1-prec-arm+0", 2, ["NO-XGO"], ""], +["sage-bluehut-reminder-1-prec-arm+1", "sage-bluehut-reminder-1-prec-arm+1", 2, ["NO-XGO"], ""], +["sage-bluehut-reminder-1-prec-arm+2", "sage-bluehut-reminder-1-prec-arm+2", 2, ["NO-XGO"], ""], +["sage-bluehut-reminder-1-prec-arm+3", "sage-bluehut-reminder-1-prec-arm+3", 2, ["NO-XGO"], ""], +["ndi-intro+0", "ndi-intro+0", 2, ["NO-XGO"], ""], +["ndi-intro+1", "ndi-intro+1", 2, ["NO-XGO"], ""], +["ndi-intro+2", "ndi-intro+2", 2, ["NO-XGO"], ""], +["ndi-intro+3", "ndi-intro+3", 2, ["NO-XGO"], ""], +["gondola-ride-down+0", "gondola-ride-down+0", 2, ["NO-XGO"], ""], +["gondola-ride-down+1", "gondola-ride-down+1", 2, ["NO-XGO"], ""], +["gondola-ride-down+2", "gondola-ride-down+2", 2, ["NO-XGO"], ""], +["gondola-ride-up+0", "gondola-ride-up+0", 2, ["NO-XGO"], ""], +["gondola-ride-up+1", "gondola-ride-up+1", 2, ["NO-XGO"], ""], +["gondola-ride-up+2", "gondola-ride-up+2", 2, ["NO-XGO"], ""], +["sage-village3-introduction-rams+0", "sage-village3-introduction-rams+0", 2, ["NO-XGO"], ""], +["sage-village3-introduction-rams+1", "sage-village3-introduction-rams+1", 2, ["NO-XGO"], ""], +["sage-village3-introduction-rams+2", "sage-village3-introduction-rams+2", 2, ["NO-XGO"], ""], +["sage-village3-introduction-rams+3", "sage-village3-introduction-rams+3", 2, ["NO-XGO"], ""], +["sage-village3-introduction-rams+4", "sage-village3-introduction-rams+4", 2, ["NO-XGO"], ""], +["sage-village3-introduction-rams+5", "sage-village3-introduction-rams+5", 2, ["NO-XGO"], ""], +["yellowsage-resolution+0", "yellowsage-resolution+0", 2, ["NO-XGO"], ""], +["yellowsage-resolution+1", "yellowsage-resolution+1", 2, ["NO-XGO"], ""], +["yellowsage-resolution+2", "yellowsage-resolution+2", 2, ["NO-XGO"], ""], +["yellowsage-resolution+3", "yellowsage-resolution+3", 2, ["NO-XGO"], ""], +["yellowsage-resolution+4", "yellowsage-resolution+4", 2, ["NO-XGO"], ""], +["yellowsage-resolution+5", "yellowsage-resolution+5", 2, ["NO-XGO"], ""], +["eichar-flut+0", "eichar-flut+0", 2, ["NO-XGO"], ""], +["green-sagecage-daxter-sacrifice+0", "green-sagecage-daxter-sacrifice+0", 2, ["NO-XGO"], ""], +["green-sagecage-daxter-sacrifice+1", "green-sagecage-daxter-sacrifice+1", 2, ["NO-XGO"], ""], +["green-sagecage-daxter-sacrifice+2", "green-sagecage-daxter-sacrifice+2", 2, ["NO-XGO"], ""], +["green-sagecage-daxter-sacrifice+3", "green-sagecage-daxter-sacrifice+3", 2, ["NO-XGO"], ""], +["green-sagecage-daxter-sacrifice+4", "green-sagecage-daxter-sacrifice+4", 2, ["NO-XGO"], ""], +["green-sagecage-daxter-sacrifice+5", "green-sagecage-daxter-sacrifice+5", 2, ["NO-XGO"], ""], +["explorer-reminder-1+0", "explorer-reminder-1+0", 2, ["NO-XGO"], ""], +["explorer-reminder-1+1", "explorer-reminder-1+1", 2, ["NO-XGO"], ""], +["explorer-reminder-1+2", "explorer-reminder-1+2", 2, ["NO-XGO"], ""], +["explorer-reminder-1+3", "explorer-reminder-1+3", 2, ["NO-XGO"], ""], +["explorer-reminder-1+4", "explorer-reminder-1+4", 2, ["NO-XGO"], ""], +["sculptor-resolution+0", "sculptor-resolution+0", 2, ["NO-XGO"], ""], +["sculptor-resolution+1", "sculptor-resolution+1", 2, ["NO-XGO"], ""], +["sculptor-resolution+2", "sculptor-resolution+2", 2, ["NO-XGO"], ""], +["sculptor-resolution+3", "sculptor-resolution+3", 2, ["NO-XGO"], ""], +["fisher-resolution+0", "fisher-resolution+0", 2, ["NO-XGO"], ""], +["fisher-resolution+1", "fisher-resolution+1", 2, ["NO-XGO"], ""], +["fisher-resolution+2", "fisher-resolution+2", 2, ["NO-XGO"], ""], +["fisher-resolution+3", "fisher-resolution+3", 2, ["NO-XGO"], ""], +["sidekick-human-intro-test+0", "sidekick-human-intro-test+0", 2, ["NO-XGO"], ""], +["sidekick-human-intro-test+1", "sidekick-human-intro-test+1", 2, ["NO-XGO"], ""], +["sidekick-human-intro-test+2", "sidekick-human-intro-test+2", 2, ["NO-XGO"], ""], +["sidekick-human-intro-test+3", "sidekick-human-intro-test+3", 2, ["NO-XGO"], ""], +["sidekick-human-intro-test+4", "sidekick-human-intro-test+4", 2, ["NO-XGO"], ""], +["sidekick-human-intro-test+5", "sidekick-human-intro-test+5", 2, ["NO-XGO"], ""], +["gambler-introduction-1+0", "gambler-introduction-1+0", 2, ["NO-XGO"], ""], +["gambler-introduction-1+1", "gambler-introduction-1+1", 2, ["NO-XGO"], ""], +["gambler-introduction-1+2", "gambler-introduction-1+2", 2, ["NO-XGO"], ""], +["gambler-introduction-1+3", "gambler-introduction-1+3", 2, ["NO-XGO"], ""], +["gambler-introduction-1+4", "gambler-introduction-1+4", 2, ["NO-XGO"], ""], +["gambler-introduction-1+5", "gambler-introduction-1+5", 2, ["NO-XGO"], ""], +["gambler-introduction-1+6", "gambler-introduction-1+6", 2, ["NO-XGO"], ""], +["gambler-introduction-1+7", "gambler-introduction-1+7", 2, ["NO-XGO"], ""], +["gambler-introduction-1+8", "gambler-introduction-1+8", 2, ["NO-XGO"], ""], +["explorer-resolution+0", "explorer-resolution+0", 2, ["NO-XGO"], ""], +["explorer-resolution+1", "explorer-resolution+1", 2, ["NO-XGO"], ""], +["explorer-resolution+2", "explorer-resolution+2", 2, ["NO-XGO"], ""], +["explorer-resolution+3", "explorer-resolution+3", 2, ["NO-XGO"], ""], +["explorer-resolution+4", "explorer-resolution+4", 2, ["NO-XGO"], ""], +["minershort-resolution-2-orbs+0", "minershort-resolution-2-orbs+0", 2, ["NO-XGO"], ""], +["minershort-resolution-2-orbs+1", "minershort-resolution-2-orbs+1", 2, ["NO-XGO"], ""], +["minershort-resolution-2-orbs+2", "minershort-resolution-2-orbs+2", 2, ["NO-XGO"], ""], +["minershort-resolution-2-orbs+3", "minershort-resolution-2-orbs+3", 2, ["NO-XGO"], ""], +["minershort-resolution-2-orbs+4", "minershort-resolution-2-orbs+4", 2, ["NO-XGO"], ""], +["minershort-resolution-2-orbs+5", "minershort-resolution-2-orbs+5", 2, ["NO-XGO"], ""], +["assistant-introduction-race-bike+0", "assistant-introduction-race-bike+0", 2, ["NO-XGO"], ""], +["assistant-introduction-race-bike+1", "assistant-introduction-race-bike+1", 2, ["NO-XGO"], ""], +["assistant-introduction-race-bike+2", "assistant-introduction-race-bike+2", 2, ["NO-XGO"], ""], +["assistant-introduction-race-bike+3", "assistant-introduction-race-bike+3", 2, ["NO-XGO"], ""], +["assistant-introduction-race-bike+4", "assistant-introduction-race-bike+4", 2, ["NO-XGO"], ""], +["assistant-introduction-race-bike+5", "assistant-introduction-race-bike+5", 2, ["NO-XGO"], ""], +["green-sagecage-outro-beat-boss-enough-cells+0", "green-sagecage-outro-beat-boss-enough-cells+0", 2, ["NO-XGO"], ""], +["green-sagecage-outro-beat-boss-enough-cells+1", "green-sagecage-outro-beat-boss-enough-cells+1", 2, ["NO-XGO"], ""], +["green-sagecage-outro-beat-boss-enough-cells+2", "green-sagecage-outro-beat-boss-enough-cells+2", 2, ["NO-XGO"], ""], +["green-sagecage-outro-beat-boss-enough-cells+3", "green-sagecage-outro-beat-boss-enough-cells+3", 2, ["NO-XGO"], ""], +["green-sagecage-outro-beat-boss-enough-cells+4", "green-sagecage-outro-beat-boss-enough-cells+4", 2, ["NO-XGO"], ""], +["green-sagecage-outro-beat-boss-enough-cells+5", "green-sagecage-outro-beat-boss-enough-cells+5", 2, ["NO-XGO"], ""], +["billy-introduction+0", "billy-introduction+0", 2, ["NO-XGO"], ""], +["billy-introduction+1", "billy-introduction+1", 2, ["NO-XGO"], ""], +["billy-introduction+2", "billy-introduction+2", 2, ["NO-XGO"], ""], +["billy-introduction+3", "billy-introduction+3", 2, ["NO-XGO"], ""], +["billy-introduction+4", "billy-introduction+4", 2, ["NO-XGO"], ""], +["billy-introduction+5", "billy-introduction+5", 2, ["NO-XGO"], ""], +["billy-introduction+6", "billy-introduction+6", 2, ["NO-XGO"], ""], +["billy-introduction+7", "billy-introduction+7", 2, ["NO-XGO"], ""], +["billy-introduction+8", "billy-introduction+8", 2, ["NO-XGO"], ""], +["billy-introduction+9", "billy-introduction+9", 2, ["NO-XGO"], ""], +["billy-introduction+10", "billy-introduction+10", 2, ["NO-XGO"], ""], +["billy-introduction+11", "billy-introduction+11", 2, ["NO-XGO"], ""], +["billy-introduction+12", "billy-introduction+12", 2, ["NO-XGO"], ""], +["billy-introduction+13", "billy-introduction+13", 2, ["NO-XGO"], ""], +["green-sagecage-outro-beat-boss-need-cells+0", "green-sagecage-outro-beat-boss-need-cells+0", 2, ["NO-XGO"], ""], +["green-sagecage-outro-beat-boss-need-cells+1", "green-sagecage-outro-beat-boss-need-cells+1", 2, ["NO-XGO"], ""], +["green-sagecage-outro-beat-boss-need-cells+2", "green-sagecage-outro-beat-boss-need-cells+2", 2, ["NO-XGO"], ""], +["green-sagecage-outro-beat-boss-need-cells+3", "green-sagecage-outro-beat-boss-need-cells+3", 2, ["NO-XGO"], ""], +["green-sagecage-outro-beat-boss-need-cells+4", "green-sagecage-outro-beat-boss-need-cells+4", 2, ["NO-XGO"], ""], +["green-sagecage-outro-beat-boss-need-cells+5", "green-sagecage-outro-beat-boss-need-cells+5", 2, ["NO-XGO"], ""], +["green-sagecage-outro-beat-boss-need-cells+6", "green-sagecage-outro-beat-boss-need-cells+6", 2, ["NO-XGO"], ""], +["green-sagecage-outro-beat-boss-need-cells+7", "green-sagecage-outro-beat-boss-need-cells+7", 2, ["NO-XGO"], ""], +["assistant-village2-introduction-robbers+0", "assistant-village2-introduction-robbers+0", 2, ["NO-XGO"], ""], +["assistant-village2-introduction-robbers+1", "assistant-village2-introduction-robbers+1", 2, ["NO-XGO"], ""], +["assistant-village2-introduction-robbers+2", "assistant-village2-introduction-robbers+2", 2, ["NO-XGO"], ""], +["assistant-village2-introduction-robbers+3", "assistant-village2-introduction-robbers+3", 2, ["NO-XGO"], ""], +["assistant-village2-introduction-robbers+4", "assistant-village2-introduction-robbers+4", 2, ["NO-XGO"], ""], +["assistant-village2-introduction-robbers+5", "assistant-village2-introduction-robbers+5", 2, ["NO-XGO"], ""], +["green-sagecage-outro-big-finish+0", "green-sagecage-outro-big-finish+0", 2, ["NO-XGO"], ""], +["green-sagecage-outro-big-finish+1", "green-sagecage-outro-big-finish+1", 2, ["NO-XGO"], ""], +["green-sagecage-outro-big-finish+2", "green-sagecage-outro-big-finish+2", 2, ["NO-XGO"], ""], +["green-sagecage-outro-big-finish+3", "green-sagecage-outro-big-finish+3", 2, ["NO-XGO"], ""], +["green-sagecage-outro-big-finish+4", "green-sagecage-outro-big-finish+4", 2, ["NO-XGO"], ""], +["green-sagecage-outro-big-finish+5", "green-sagecage-outro-big-finish+5", 2, ["NO-XGO"], ""], +["green-sagecage-outro-big-finish+6", "green-sagecage-outro-big-finish+6", 2, ["NO-XGO"], ""], +["redsage-resolution+0", "redsage-resolution+0", 2, ["NO-XGO"], ""], +["redsage-resolution+1", "redsage-resolution+1", 2, ["NO-XGO"], ""], +["redsage-resolution+2", "redsage-resolution+2", 2, ["NO-XGO"], ""], +["redsage-resolution+3", "redsage-resolution+3", 2, ["NO-XGO"], ""], +["redsage-resolution+4", "redsage-resolution+4", 2, ["NO-XGO"], ""], +["redsage-resolution+5", "redsage-resolution+5", 2, ["NO-XGO"], ""], +["redsage-resolution+6", "redsage-resolution+6", 2, ["NO-XGO"], ""], +["redsage-resolution+7", "redsage-resolution+7", 2, ["NO-XGO"], ""], +["redsage-resolution+8", "redsage-resolution+8", 2, ["NO-XGO"], ""], +["bluesage-resolution+0", "bluesage-resolution+0", 2, ["NO-XGO"], ""], +["bluesage-resolution+1", "bluesage-resolution+1", 2, ["NO-XGO"], ""], +["bluesage-resolution+2", "bluesage-resolution+2", 2, ["NO-XGO"], ""], +["bluesage-resolution+3", "bluesage-resolution+3", 2, ["NO-XGO"], ""], +["bluesage-resolution+4", "bluesage-resolution+4", 2, ["NO-XGO"], ""], +["bluesage-resolution+5", "bluesage-resolution+5", 2, ["NO-XGO"], ""], +["bluesage-resolution+6", "bluesage-resolution+6", 2, ["NO-XGO"], ""], +["bluesage-resolution+7", "bluesage-resolution+7", 2, ["NO-XGO"], ""], +["bluesage-resolution+8", "bluesage-resolution+8", 2, ["NO-XGO"], ""], +["sage-bluehut-introduction-prec-arm+0", "sage-bluehut-introduction-prec-arm+0", 2, ["NO-XGO"], ""], +["sage-bluehut-introduction-prec-arm+1", "sage-bluehut-introduction-prec-arm+1", 2, ["NO-XGO"], ""], +["sage-bluehut-introduction-prec-arm+2", "sage-bluehut-introduction-prec-arm+2", 2, ["NO-XGO"], ""], +["sage-bluehut-introduction-prec-arm+3", "sage-bluehut-introduction-prec-arm+3", 2, ["NO-XGO"], ""], +["sage-bluehut-introduction-prec-arm+4", "sage-bluehut-introduction-prec-arm+4", 2, ["NO-XGO"], ""], +["sage-bluehut-introduction-prec-arm+5", "sage-bluehut-introduction-prec-arm+5", 2, ["NO-XGO"], ""], +["sage-bluehut-introduction-prec-arm+6", "sage-bluehut-introduction-prec-arm+6", 2, ["NO-XGO"], ""], +["sage-bluehut-introduction-prec-arm+7", "sage-bluehut-introduction-prec-arm+7", 2, ["NO-XGO"], ""], +["evilbro-misty-end+0", "evilbro-misty-end+0", 2, ["NO-XGO"], ""], +["evilbro-misty-end+1", "evilbro-misty-end+1", 2, ["NO-XGO"], ""], +["evilbro-misty-end+2", "evilbro-misty-end+2", 2, ["NO-XGO"], ""], +["evilbro-misty-end+3", "evilbro-misty-end+3", 2, ["NO-XGO"], ""], +["evilbro-misty-end+4", "evilbro-misty-end+4", 2, ["NO-XGO"], ""], +["evilbro-misty-end+5", "evilbro-misty-end+5", 2, ["NO-XGO"], ""], +["evilbro-misty-end+6", "evilbro-misty-end+6", 2, ["NO-XGO"], ""], +["evilbro-misty-end+7", "evilbro-misty-end+7", 2, ["NO-XGO"], ""], +["evilbro-misty-end+8", "evilbro-misty-end+8", 2, ["NO-XGO"], ""], +["assistant-village2-resolution+0", "assistant-village2-resolution+0", 2, ["NO-XGO"], ""], +["assistant-village2-resolution+1", "assistant-village2-resolution+1", 2, ["NO-XGO"], ""], +["assistant-village2-resolution+2", "assistant-village2-resolution+2", 2, ["NO-XGO"], ""], +["assistant-village2-resolution+3", "assistant-village2-resolution+3", 2, ["NO-XGO"], ""], +["assistant-village2-resolution+4", "assistant-village2-resolution+4", 2, ["NO-XGO"], ""], +["assistant-village2-resolution+5", "assistant-village2-resolution+5", 2, ["NO-XGO"], ""], +["assistant-village2-resolution+6", "assistant-village2-resolution+6", 2, ["NO-XGO"], ""], +["sage-introduction-misty-cannon+0", "sage-introduction-misty-cannon+0", 2, ["NO-XGO"], ""], +["sage-introduction-misty-cannon+1", "sage-introduction-misty-cannon+1", 2, ["NO-XGO"], ""], +["sage-introduction-misty-cannon+2", "sage-introduction-misty-cannon+2", 2, ["NO-XGO"], ""], +["sage-introduction-misty-cannon+3", "sage-introduction-misty-cannon+3", 2, ["NO-XGO"], ""], +["sage-introduction-misty-cannon+4", "sage-introduction-misty-cannon+4", 2, ["NO-XGO"], ""], +["sage-introduction-misty-cannon+5", "sage-introduction-misty-cannon+5", 2, ["NO-XGO"], ""], +["sage-introduction-misty-cannon+6", "sage-introduction-misty-cannon+6", 2, ["NO-XGO"], ""], +["sage-introduction-misty-cannon+7", "sage-introduction-misty-cannon+7", 2, ["NO-XGO"], ""], +["sage-introduction-misty-cannon+8", "sage-introduction-misty-cannon+8", 2, ["NO-XGO"], ""], +["sage-introduction-misty-cannon+9", "sage-introduction-misty-cannon+9", 2, ["NO-XGO"], ""], +["sage-introduction-misty-cannon+10", "sage-introduction-misty-cannon+10", 2, ["NO-XGO"], ""], +["sage-introduction-misty-cannon+11", "sage-introduction-misty-cannon+11", 2, ["NO-XGO"], ""], +["minershort-introduction-gnawers+0", "minershort-introduction-gnawers+0", 2, ["NO-XGO"], ""], +["minershort-introduction-gnawers+1", "minershort-introduction-gnawers+1", 2, ["NO-XGO"], ""], +["minershort-introduction-gnawers+2", "minershort-introduction-gnawers+2", 2, ["NO-XGO"], ""], +["minershort-introduction-gnawers+3", "minershort-introduction-gnawers+3", 2, ["NO-XGO"], ""], +["minershort-introduction-gnawers+4", "minershort-introduction-gnawers+4", 2, ["NO-XGO"], ""], +["minershort-introduction-gnawers+5", "minershort-introduction-gnawers+5", 2, ["NO-XGO"], ""], +["minershort-introduction-gnawers+6", "minershort-introduction-gnawers+6", 2, ["NO-XGO"], ""], +["minershort-introduction-gnawers+7", "minershort-introduction-gnawers+7", 2, ["NO-XGO"], ""], +["green-sagecage-outro-beat-boss-a+0", "green-sagecage-outro-beat-boss-a+0", 2, ["NO-XGO"], ""], +["green-sagecage-outro-beat-boss-a+1", "green-sagecage-outro-beat-boss-a+1", 2, ["NO-XGO"], ""], +["green-sagecage-outro-beat-boss-a+2", "green-sagecage-outro-beat-boss-a+2", 2, ["NO-XGO"], ""], +["green-sagecage-outro-beat-boss-a+3", "green-sagecage-outro-beat-boss-a+3", 2, ["NO-XGO"], ""], +["green-sagecage-outro-beat-boss-a+4", "green-sagecage-outro-beat-boss-a+4", 2, ["NO-XGO"], ""], +["green-sagecage-outro-beat-boss-a+5", "green-sagecage-outro-beat-boss-a+5", 2, ["NO-XGO"], ""], +["green-sagecage-outro-beat-boss-a+6", "green-sagecage-outro-beat-boss-a+6", 2, ["NO-XGO"], ""], +["green-sagecage-outro-beat-boss-a+7", "green-sagecage-outro-beat-boss-a+7", 2, ["NO-XGO"], ""], +["green-sagecage-introduction+0", "green-sagecage-introduction+0", 2, ["NO-XGO"], ""], +["green-sagecage-introduction+1", "green-sagecage-introduction+1", 2, ["NO-XGO"], ""], +["green-sagecage-introduction+2", "green-sagecage-introduction+2", 2, ["NO-XGO"], ""], +["green-sagecage-introduction+3", "green-sagecage-introduction+3", 2, ["NO-XGO"], ""], +["green-sagecage-introduction+4", "green-sagecage-introduction+4", 2, ["NO-XGO"], ""], +["green-sagecage-introduction+5", "green-sagecage-introduction+5", 2, ["NO-XGO"], ""], +["green-sagecage-introduction+6", "green-sagecage-introduction+6", 2, ["NO-XGO"], ""], +["green-sagecage-introduction+7", "green-sagecage-introduction+7", 2, ["NO-XGO"], ""], +["green-sagecage-introduction+8", "green-sagecage-introduction+8", 2, ["NO-XGO"], ""], +["green-sagecage-introduction+9", "green-sagecage-introduction+9", 2, ["NO-XGO"], ""], +["green-sagecage-introduction+10", "green-sagecage-introduction+10", 2, ["NO-XGO"], ""], +["green-sagecage-introduction+11", "green-sagecage-introduction+11", 2, ["NO-XGO"], ""], +["sage-intro-sequence-e+0", "sage-intro-sequence-e+0", 2, ["NO-XGO"], ""], +["sage-intro-sequence-e+1", "sage-intro-sequence-e+1", 2, ["NO-XGO"], ""], +["sage-intro-sequence-e+2", "sage-intro-sequence-e+2", 2, ["NO-XGO"], ""], +["sage-intro-sequence-e+3", "sage-intro-sequence-e+3", 2, ["NO-XGO"], ""], +["sage-intro-sequence-e+4", "sage-intro-sequence-e+4", 2, ["NO-XGO"], ""], +["sage-intro-sequence-e+5", "sage-intro-sequence-e+5", 2, ["NO-XGO"], ""], +["sage-intro-sequence-e+6", "sage-intro-sequence-e+6", 2, ["NO-XGO"], ""], +["sage-intro-sequence-e+7", "sage-intro-sequence-e+7", 2, ["NO-XGO"], ""], +["sage-intro-sequence-e+8", "sage-intro-sequence-e+8", 2, ["NO-XGO"], ""], +["sage-intro-sequence-e+9", "sage-intro-sequence-e+9", 2, ["NO-XGO"], ""], +["sage-intro-sequence-e+10", "sage-intro-sequence-e+10", 2, ["NO-XGO"], ""], +["sage-intro-sequence-e+11", "sage-intro-sequence-e+11", 2, ["NO-XGO"], ""], +["sage-intro-sequence-e+12", "sage-intro-sequence-e+12", 2, ["NO-XGO"], ""], +["sage-village3-introduction-dark-eco+0", "sage-village3-introduction-dark-eco+0", 2, ["NO-XGO"], ""], +["sage-village3-introduction-dark-eco+1", "sage-village3-introduction-dark-eco+1", 2, ["NO-XGO"], ""], +["sage-village3-introduction-dark-eco+2", "sage-village3-introduction-dark-eco+2", 2, ["NO-XGO"], ""], +["sage-village3-introduction-dark-eco+3", "sage-village3-introduction-dark-eco+3", 2, ["NO-XGO"], ""], +["sage-village3-introduction-dark-eco+4", "sage-village3-introduction-dark-eco+4", 2, ["NO-XGO"], ""], +["sage-village3-introduction-dark-eco+5", "sage-village3-introduction-dark-eco+5", 2, ["NO-XGO"], ""], +["sage-village3-introduction-dark-eco+6", "sage-village3-introduction-dark-eco+6", 2, ["NO-XGO"], ""], +["sage-village3-introduction-dark-eco+7", "sage-village3-introduction-dark-eco+7", 2, ["NO-XGO"], ""], +["sage-village3-introduction-dark-eco+8", "sage-village3-introduction-dark-eco+8", 2, ["NO-XGO"], ""], +["assistant-firecanyon-resolution+0", "assistant-firecanyon-resolution+0", 2, ["NO-XGO"], ""], +["assistant-firecanyon-resolution+1", "assistant-firecanyon-resolution+1", 2, ["NO-XGO"], ""], +["assistant-firecanyon-resolution+2", "assistant-firecanyon-resolution+2", 2, ["NO-XGO"], ""], +["assistant-firecanyon-resolution+3", "assistant-firecanyon-resolution+3", 2, ["NO-XGO"], ""], +["assistant-firecanyon-resolution+4", "assistant-firecanyon-resolution+4", 2, ["NO-XGO"], ""], +["assistant-firecanyon-resolution+5", "assistant-firecanyon-resolution+5", 2, ["NO-XGO"], ""], +["assistant-firecanyon-resolution+6", "assistant-firecanyon-resolution+6", 2, ["NO-XGO"], ""], +["assistant-firecanyon-resolution+7", "assistant-firecanyon-resolution+7", 2, ["NO-XGO"], ""], +["assistant-firecanyon-resolution+8", "assistant-firecanyon-resolution+8", 2, ["NO-XGO"], ""], +["assistant-firecanyon-resolution+9", "assistant-firecanyon-resolution+9", 2, ["NO-XGO"], ""], +["assistant-firecanyon-resolution+10", "assistant-firecanyon-resolution+10", 2, ["NO-XGO"], ""], +["explorer-introduction+0", "explorer-introduction+0", 2, ["NO-XGO"], ""], +["explorer-introduction+1", "explorer-introduction+1", 2, ["NO-XGO"], ""], +["explorer-introduction+2", "explorer-introduction+2", 2, ["NO-XGO"], ""], +["explorer-introduction+3", "explorer-introduction+3", 2, ["NO-XGO"], ""], +["explorer-introduction+4", "explorer-introduction+4", 2, ["NO-XGO"], ""], +["explorer-introduction+5", "explorer-introduction+5", 2, ["NO-XGO"], ""], +["explorer-introduction+6", "explorer-introduction+6", 2, ["NO-XGO"], ""], +["explorer-introduction+7", "explorer-introduction+7", 2, ["NO-XGO"], ""], +["explorer-introduction+8", "explorer-introduction+8", 2, ["NO-XGO"], ""], +["explorer-introduction+9", "explorer-introduction+9", 2, ["NO-XGO"], ""], +["explorer-introduction+10", "explorer-introduction+10", 2, ["NO-XGO"], ""], +["bird-lady-introduction+0", "bird-lady-introduction+0", 2, ["NO-XGO"], ""], +["bird-lady-introduction+1", "bird-lady-introduction+1", 2, ["NO-XGO"], ""], +["bird-lady-introduction+2", "bird-lady-introduction+2", 2, ["NO-XGO"], ""], +["bird-lady-introduction+3", "bird-lady-introduction+3", 2, ["NO-XGO"], ""], +["bird-lady-introduction+4", "bird-lady-introduction+4", 2, ["NO-XGO"], ""], +["bird-lady-introduction+5", "bird-lady-introduction+5", 2, ["NO-XGO"], ""], +["bird-lady-introduction+6", "bird-lady-introduction+6", 2, ["NO-XGO"], ""], +["bird-lady-introduction+7", "bird-lady-introduction+7", 2, ["NO-XGO"], ""], +["bird-lady-introduction+8", "bird-lady-introduction+8", 2, ["NO-XGO"], ""], +["bird-lady-introduction+9", "bird-lady-introduction+9", 2, ["NO-XGO"], ""], +["bird-lady-introduction+10", "bird-lady-introduction+10", 2, ["NO-XGO"], ""], +["fisher-introduction+0", "fisher-introduction+0", 2, ["NO-XGO"], ""], +["fisher-introduction+1", "fisher-introduction+1", 2, ["NO-XGO"], ""], +["fisher-introduction+2", "fisher-introduction+2", 2, ["NO-XGO"], ""], +["fisher-introduction+3", "fisher-introduction+3", 2, ["NO-XGO"], ""], +["fisher-introduction+4", "fisher-introduction+4", 2, ["NO-XGO"], ""], +["fisher-introduction+5", "fisher-introduction+5", 2, ["NO-XGO"], ""], +["fisher-introduction+6", "fisher-introduction+6", 2, ["NO-XGO"], ""], +["fisher-introduction+7", "fisher-introduction+7", 2, ["NO-XGO"], ""], +["fisher-introduction+8", "fisher-introduction+8", 2, ["NO-XGO"], ""], +["mayor-introduction+0", "mayor-introduction+0", 2, ["NO-XGO"], ""], +["mayor-introduction+1", "mayor-introduction+1", 2, ["NO-XGO"], ""], +["mayor-introduction+2", "mayor-introduction+2", 2, ["NO-XGO"], ""], +["mayor-introduction+3", "mayor-introduction+3", 2, ["NO-XGO"], ""], +["mayor-introduction+4", "mayor-introduction+4", 2, ["NO-XGO"], ""], +["mayor-introduction+5", "mayor-introduction+5", 2, ["NO-XGO"], ""], +["mayor-introduction+6", "mayor-introduction+6", 2, ["NO-XGO"], ""], +["mayor-introduction+7", "mayor-introduction+7", 2, ["NO-XGO"], ""], +["mayor-introduction+8", "mayor-introduction+8", 2, ["NO-XGO"], ""], +["mayor-introduction+9", "mayor-introduction+9", 2, ["NO-XGO"], ""], +["mayor-introduction+10", "mayor-introduction+10", 2, ["NO-XGO"], ""], +["mayor-introduction+11", "mayor-introduction+11", 2, ["NO-XGO"], ""], +["mayor-introduction+12", "mayor-introduction+12", 2, ["NO-XGO"], ""], +["mayor-introduction+13", "mayor-introduction+13", 2, ["NO-XGO"], ""], +["mayor-introduction+14", "mayor-introduction+14", 2, ["NO-XGO"], ""], +["mayor-introduction+15", "mayor-introduction+15", 2, ["NO-XGO"], ""], +["sculptor-introduction+0", "sculptor-introduction+0", 2, ["NO-XGO"], ""], +["sculptor-introduction+1", "sculptor-introduction+1", 2, ["NO-XGO"], ""], +["sculptor-introduction+2", "sculptor-introduction+2", 2, ["NO-XGO"], ""], +["sculptor-introduction+3", "sculptor-introduction+3", 2, ["NO-XGO"], ""], +["sculptor-introduction+4", "sculptor-introduction+4", 2, ["NO-XGO"], ""], +["sculptor-introduction+5", "sculptor-introduction+5", 2, ["NO-XGO"], ""], +["sculptor-introduction+6", "sculptor-introduction+6", 2, ["NO-XGO"], ""], +["sculptor-introduction+7", "sculptor-introduction+7", 2, ["NO-XGO"], ""], +["sculptor-introduction+8", "sculptor-introduction+8", 2, ["NO-XGO"], ""], +["sculptor-introduction+9", "sculptor-introduction+9", 2, ["NO-XGO"], ""], +["sculptor-introduction+10", "sculptor-introduction+10", 2, ["NO-XGO"], ""], +["sculptor-introduction+11", "sculptor-introduction+11", 2, ["NO-XGO"], ""], +["sculptor-introduction+12", "sculptor-introduction+12", 2, ["NO-XGO"], ""], +["sculptor-introduction+13", "sculptor-introduction+13", 2, ["NO-XGO"], ""], +["assistant-village2-introduction-flutflut+0", "assistant-village2-introduction-flutflut+0", 2, ["NO-XGO"], ""], +["assistant-village2-introduction-flutflut+1", "assistant-village2-introduction-flutflut+1", 2, ["NO-XGO"], ""], +["assistant-village2-introduction-flutflut+2", "assistant-village2-introduction-flutflut+2", 2, ["NO-XGO"], ""], +["assistant-village2-introduction-flutflut+3", "assistant-village2-introduction-flutflut+3", 2, ["NO-XGO"], ""], +["assistant-village2-introduction-flutflut+4", "assistant-village2-introduction-flutflut+4", 2, ["NO-XGO"], ""], +["assistant-village2-introduction-flutflut+5", "assistant-village2-introduction-flutflut+5", 2, ["NO-XGO"], ""], +["assistant-village2-introduction-flutflut+6", "assistant-village2-introduction-flutflut+6", 2, ["NO-XGO"], ""], +["assistant-village2-introduction-flutflut+7", "assistant-village2-introduction-flutflut+7", 2, ["NO-XGO"], ""], +["assistant-lavatube-end-resolution+0", "assistant-lavatube-end-resolution+0", 2, ["NO-XGO"], ""], +["assistant-lavatube-end-resolution+1", "assistant-lavatube-end-resolution+1", 2, ["NO-XGO"], ""], +["assistant-lavatube-end-resolution+2", "assistant-lavatube-end-resolution+2", 2, ["NO-XGO"], ""], +["assistant-lavatube-end-resolution+3", "assistant-lavatube-end-resolution+3", 2, ["NO-XGO"], ""], +["assistant-lavatube-end-resolution+4", "assistant-lavatube-end-resolution+4", 2, ["NO-XGO"], ""], +["assistant-lavatube-end-resolution+5", "assistant-lavatube-end-resolution+5", 2, ["NO-XGO"], ""], +["assistant-lavatube-end-resolution+6", "assistant-lavatube-end-resolution+6", 2, ["NO-XGO"], ""], +["assistant-lavatube-end-resolution+7", "assistant-lavatube-end-resolution+7", 2, ["NO-XGO"], ""], +["assistant-lavatube-end-resolution+8", "assistant-lavatube-end-resolution+8", 2, ["NO-XGO"], ""], +["assistant-lavatube-end-resolution+9", "assistant-lavatube-end-resolution+9", 2, ["NO-XGO"], ""], +["assistant-lavatube-end-resolution+10", "assistant-lavatube-end-resolution+10", 2, ["NO-XGO"], ""], +["assistant-lavatube-start-resolution+0", "assistant-lavatube-start-resolution+0", 2, ["NO-XGO"], ""], +["assistant-lavatube-start-resolution+1", "assistant-lavatube-start-resolution+1", 2, ["NO-XGO"], ""], +["assistant-lavatube-start-resolution+2", "assistant-lavatube-start-resolution+2", 2, ["NO-XGO"], ""], +["assistant-lavatube-start-resolution+3", "assistant-lavatube-start-resolution+3", 2, ["NO-XGO"], ""], +["assistant-lavatube-start-resolution+4", "assistant-lavatube-start-resolution+4", 2, ["NO-XGO"], ""], +["assistant-lavatube-start-resolution+5", "assistant-lavatube-start-resolution+5", 2, ["NO-XGO"], ""], +["assistant-lavatube-start-resolution+6", "assistant-lavatube-start-resolution+6", 2, ["NO-XGO"], ""], +["assistant-lavatube-start-resolution+7", "assistant-lavatube-start-resolution+7", 2, ["NO-XGO"], ""], +["assistant-lavatube-start-resolution+8", "assistant-lavatube-start-resolution+8", 2, ["NO-XGO"], ""], +["assistant-lavatube-start-resolution+9", "assistant-lavatube-start-resolution+9", 2, ["NO-XGO"], ""], +["assistant-lavatube-start-resolution+10", "assistant-lavatube-start-resolution+10", 2, ["NO-XGO"], ""], +["assistant-village2-introduction-room+0", "assistant-village2-introduction-room+0", 2, ["NO-XGO"], ""], +["assistant-village2-introduction-room+1", "assistant-village2-introduction-room+1", 2, ["NO-XGO"], ""], +["assistant-village2-introduction-room+2", "assistant-village2-introduction-room+2", 2, ["NO-XGO"], ""], +["assistant-village2-introduction-room+3", "assistant-village2-introduction-room+3", 2, ["NO-XGO"], ""], +["assistant-village2-introduction-room+4", "assistant-village2-introduction-room+4", 2, ["NO-XGO"], ""], +["assistant-village2-introduction-room+5", "assistant-village2-introduction-room+5", 2, ["NO-XGO"], ""], +["assistant-village2-introduction-room+6", "assistant-village2-introduction-room+6", 2, ["NO-XGO"], ""], +["assistant-village2-introduction-room+7", "assistant-village2-introduction-room+7", 2, ["NO-XGO"], ""], +["assistant-village2-introduction-room+8", "assistant-village2-introduction-room+8", 2, ["NO-XGO"], ""], +["assistant-village2-introduction-room+9", "assistant-village2-introduction-room+9", 2, ["NO-XGO"], ""], +["green-sagecage-resolution+0", "green-sagecage-resolution+0", 2, ["NO-XGO"], ""], +["green-sagecage-resolution+1", "green-sagecage-resolution+1", 2, ["NO-XGO"], ""], +["green-sagecage-resolution+2", "green-sagecage-resolution+2", 2, ["NO-XGO"], ""], +["green-sagecage-resolution+3", "green-sagecage-resolution+3", 2, ["NO-XGO"], ""], +["green-sagecage-resolution+4", "green-sagecage-resolution+4", 2, ["NO-XGO"], ""], +["green-sagecage-resolution+5", "green-sagecage-resolution+5", 2, ["NO-XGO"], ""], +["green-sagecage-resolution+6", "green-sagecage-resolution+6", 2, ["NO-XGO"], ""], +["green-sagecage-resolution+7", "green-sagecage-resolution+7", 2, ["NO-XGO"], ""], +["green-sagecage-resolution+8", "green-sagecage-resolution+8", 2, ["NO-XGO"], ""], +["green-sagecage-resolution+9", "green-sagecage-resolution+9", 2, ["NO-XGO"], ""], +["green-sagecage-resolution+10", "green-sagecage-resolution+10", 2, ["NO-XGO"], ""], +["green-sagecage-resolution+11", "green-sagecage-resolution+11", 2, ["NO-XGO"], ""], +["sage-bluehut-introduction-crop-dusting+0", "sage-bluehut-introduction-crop-dusting+0", 2, ["NO-XGO"], ""], +["sage-bluehut-introduction-crop-dusting+1", "sage-bluehut-introduction-crop-dusting+1", 2, ["NO-XGO"], ""], +["sage-bluehut-introduction-crop-dusting+2", "sage-bluehut-introduction-crop-dusting+2", 2, ["NO-XGO"], ""], +["sage-bluehut-introduction-crop-dusting+3", "sage-bluehut-introduction-crop-dusting+3", 2, ["NO-XGO"], ""], +["sage-bluehut-introduction-crop-dusting+4", "sage-bluehut-introduction-crop-dusting+4", 2, ["NO-XGO"], ""], +["sage-bluehut-introduction-crop-dusting+5", "sage-bluehut-introduction-crop-dusting+5", 2, ["NO-XGO"], ""], +["sage-bluehut-introduction-crop-dusting+6", "sage-bluehut-introduction-crop-dusting+6", 2, ["NO-XGO"], ""], +["sage-bluehut-introduction-crop-dusting+7", "sage-bluehut-introduction-crop-dusting+7", 2, ["NO-XGO"], ""], +["sage-bluehut-introduction-crop-dusting+8", "sage-bluehut-introduction-crop-dusting+8", 2, ["NO-XGO"], ""], +["sage-bluehut-introduction-crop-dusting+9", "sage-bluehut-introduction-crop-dusting+9", 2, ["NO-XGO"], ""], +["sage-bluehut-introduction-crop-dusting+10", "sage-bluehut-introduction-crop-dusting+10", 2, ["NO-XGO"], ""], +["sage-bluehut-introduction-crop-dusting+11", "sage-bluehut-introduction-crop-dusting+11", 2, ["NO-XGO"], ""], +["sidekick-human-intro-sequence-b+0", "sidekick-human-intro-sequence-b+0", 2, ["NO-XGO"], ""], +["sidekick-human-intro-sequence-b+1", "sidekick-human-intro-sequence-b+1", 2, ["NO-XGO"], ""], +["sidekick-human-intro-sequence-b+2", "sidekick-human-intro-sequence-b+2", 2, ["NO-XGO"], ""], +["sidekick-human-intro-sequence-b+3", "sidekick-human-intro-sequence-b+3", 2, ["NO-XGO"], ""], +["sidekick-human-intro-sequence-b+4", "sidekick-human-intro-sequence-b+4", 2, ["NO-XGO"], ""], +["sidekick-human-intro-sequence-b+5", "sidekick-human-intro-sequence-b+5", 2, ["NO-XGO"], ""], +["sidekick-human-intro-sequence-b+6", "sidekick-human-intro-sequence-b+6", 2, ["NO-XGO"], ""], +["sidekick-human-intro-sequence-b+7", "sidekick-human-intro-sequence-b+7", 2, ["NO-XGO"], ""], +["sidekick-human-intro-sequence-b+8", "sidekick-human-intro-sequence-b+8", 2, ["NO-XGO"], ""], +["sidekick-human-intro-sequence-b+9", "sidekick-human-intro-sequence-b+9", 2, ["NO-XGO"], ""], +["sidekick-human-intro-sequence-b+10", "sidekick-human-intro-sequence-b+10", 2, ["NO-XGO"], ""], +["assistant-introduction-blue-eco-switch+0", "assistant-introduction-blue-eco-switch+0", 2, ["NO-XGO"], ""], +["assistant-introduction-blue-eco-switch+1", "assistant-introduction-blue-eco-switch+1", 2, ["NO-XGO"], ""], +["assistant-introduction-blue-eco-switch+2", "assistant-introduction-blue-eco-switch+2", 2, ["NO-XGO"], ""], +["assistant-introduction-blue-eco-switch+3", "assistant-introduction-blue-eco-switch+3", 2, ["NO-XGO"], ""], +["assistant-introduction-blue-eco-switch+4", "assistant-introduction-blue-eco-switch+4", 2, ["NO-XGO"], ""], +["assistant-introduction-blue-eco-switch+5", "assistant-introduction-blue-eco-switch+5", 2, ["NO-XGO"], ""], +["assistant-introduction-blue-eco-switch+6", "assistant-introduction-blue-eco-switch+6", 2, ["NO-XGO"], ""], +["assistant-introduction-blue-eco-switch+7", "assistant-introduction-blue-eco-switch+7", 2, ["NO-XGO"], ""], +["assistant-introduction-blue-eco-switch+8", "assistant-introduction-blue-eco-switch+8", 2, ["NO-XGO"], ""], +["assistant-introduction-blue-eco-switch+9", "assistant-introduction-blue-eco-switch+9", 2, ["NO-XGO"], ""], +["assistant-introduction-blue-eco-switch+10", "assistant-introduction-blue-eco-switch+10", 2, ["NO-XGO"], ""], +["bird-lady-beach-resolution+0", "bird-lady-beach-resolution+0", 2, ["NO-XGO"], ""], +["bird-lady-beach-resolution+1", "bird-lady-beach-resolution+1", 2, ["NO-XGO"], ""], +["bird-lady-beach-resolution+2", "bird-lady-beach-resolution+2", 2, ["NO-XGO"], ""], +["bird-lady-beach-resolution+3", "bird-lady-beach-resolution+3", 2, ["NO-XGO"], ""], +["bird-lady-beach-resolution+4", "bird-lady-beach-resolution+4", 2, ["NO-XGO"], ""], +["bird-lady-beach-resolution+5", "bird-lady-beach-resolution+5", 2, ["NO-XGO"], ""], +["bird-lady-beach-resolution+6", "bird-lady-beach-resolution+6", 2, ["NO-XGO"], ""], +["bird-lady-beach-resolution+7", "bird-lady-beach-resolution+7", 2, ["NO-XGO"], ""], +["bird-lady-beach-resolution+8", "bird-lady-beach-resolution+8", 2, ["NO-XGO"], ""], +["bird-lady-beach-resolution+9", "bird-lady-beach-resolution+9", 2, ["NO-XGO"], ""], +["fishermans-boat-ride-to-village1-alt+0", "fishermans-boat-ride-to-village1-alt+0", 2, ["NO-XGO"], ""], +["fishermans-boat-ride-to-village1-alt+1", "fishermans-boat-ride-to-village1-alt+1", 2, ["NO-XGO"], ""], +["fishermans-boat-ride-to-village1-alt+2", "fishermans-boat-ride-to-village1-alt+2", 2, ["NO-XGO"], ""], +["fishermans-boat-ride-to-village1-alt+3", "fishermans-boat-ride-to-village1-alt+3", 2, ["NO-XGO"], ""], +["fishermans-boat-ride-to-village1-alt+4", "fishermans-boat-ride-to-village1-alt+4", 2, ["NO-XGO"], ""], +["fishermans-boat-ride-to-village1-alt+5", "fishermans-boat-ride-to-village1-alt+5", 2, ["NO-XGO"], ""], +["fishermans-boat-ride-to-village1-alt+6", "fishermans-boat-ride-to-village1-alt+6", 2, ["NO-XGO"], ""], +["fishermans-boat-ride-to-village1-alt+7", "fishermans-boat-ride-to-village1-alt+7", 2, ["NO-XGO"], ""], +["fishermans-boat-ride-to-village1-alt+8", "fishermans-boat-ride-to-village1-alt+8", 2, ["NO-XGO"], ""], +["fishermans-boat-ride-to-village1-alt+9", "fishermans-boat-ride-to-village1-alt+9", 2, ["NO-XGO"], ""], +["fishermans-boat-ride-to-village1-alt+10", "fishermans-boat-ride-to-village1-alt+10", 2, ["NO-XGO"], ""], +["fishermans-boat-ride-to-village1-alt+11", "fishermans-boat-ride-to-village1-alt+11", 2, ["NO-XGO"], ""], +["assistant-village2-introduction+0", "assistant-village2-introduction+0", 2, ["NO-XGO"], ""], +["assistant-village2-introduction+1", "assistant-village2-introduction+1", 2, ["NO-XGO"], ""], +["assistant-village2-introduction+2", "assistant-village2-introduction+2", 2, ["NO-XGO"], ""], +["assistant-village2-introduction+3", "assistant-village2-introduction+3", 2, ["NO-XGO"], ""], +["assistant-village2-introduction+4", "assistant-village2-introduction+4", 2, ["NO-XGO"], ""], +["assistant-village2-introduction+5", "assistant-village2-introduction+5", 2, ["NO-XGO"], ""], +["assistant-village2-introduction+6", "assistant-village2-introduction+6", 2, ["NO-XGO"], ""], +["assistant-village2-introduction+7", "assistant-village2-introduction+7", 2, ["NO-XGO"], ""], +["assistant-village2-introduction+8", "assistant-village2-introduction+8", 2, ["NO-XGO"], ""], +["assistant-village2-introduction+9", "assistant-village2-introduction+9", 2, ["NO-XGO"], ""], +["assistant-village2-introduction+10", "assistant-village2-introduction+10", 2, ["NO-XGO"], ""], +["assistant-village2-introduction+11", "assistant-village2-introduction+11", 2, ["NO-XGO"], ""], +["assistant-village2-introduction+12", "assistant-village2-introduction+12", 2, ["NO-XGO"], ""], +["assistant-village2-introduction+13", "assistant-village2-introduction+13", 2, ["NO-XGO"], ""], +["assistant-village2-introduction+14", "assistant-village2-introduction+14", 2, ["NO-XGO"], ""], +["assistant-village2-introduction+15", "assistant-village2-introduction+15", 2, ["NO-XGO"], ""], +["geologist-introduction+0", "geologist-introduction+0", 2, ["NO-XGO"], ""], +["geologist-introduction+1", "geologist-introduction+1", 2, ["NO-XGO"], ""], +["geologist-introduction+2", "geologist-introduction+2", 2, ["NO-XGO"], ""], +["geologist-introduction+3", "geologist-introduction+3", 2, ["NO-XGO"], ""], +["geologist-introduction+4", "geologist-introduction+4", 2, ["NO-XGO"], ""], +["geologist-introduction+5", "geologist-introduction+5", 2, ["NO-XGO"], ""], +["geologist-introduction+6", "geologist-introduction+6", 2, ["NO-XGO"], ""], +["geologist-introduction+7", "geologist-introduction+7", 2, ["NO-XGO"], ""], +["geologist-introduction+8", "geologist-introduction+8", 2, ["NO-XGO"], ""], +["geologist-introduction+9", "geologist-introduction+9", 2, ["NO-XGO"], ""], +["geologist-introduction+10", "geologist-introduction+10", 2, ["NO-XGO"], ""], +["geologist-introduction+11", "geologist-introduction+11", 2, ["NO-XGO"], ""], +["geologist-introduction+12", "geologist-introduction+12", 2, ["NO-XGO"], ""], +["sage-intro-sequence-d1+0", "sage-intro-sequence-d1+0", 2, ["NO-XGO"], ""], +["sage-intro-sequence-d1+1", "sage-intro-sequence-d1+1", 2, ["NO-XGO"], ""], +["sage-intro-sequence-d1+2", "sage-intro-sequence-d1+2", 2, ["NO-XGO"], ""], +["sage-intro-sequence-d1+3", "sage-intro-sequence-d1+3", 2, ["NO-XGO"], ""], +["sage-intro-sequence-d1+4", "sage-intro-sequence-d1+4", 2, ["NO-XGO"], ""], +["sage-intro-sequence-d1+5", "sage-intro-sequence-d1+5", 2, ["NO-XGO"], ""], +["sage-intro-sequence-d1+6", "sage-intro-sequence-d1+6", 2, ["NO-XGO"], ""], +["sage-intro-sequence-d1+7", "sage-intro-sequence-d1+7", 2, ["NO-XGO"], ""], +["sage-intro-sequence-d1+8", "sage-intro-sequence-d1+8", 2, ["NO-XGO"], ""], +["sage-intro-sequence-d1+9", "sage-intro-sequence-d1+9", 2, ["NO-XGO"], ""], +["sage-intro-sequence-d1+10", "sage-intro-sequence-d1+10", 2, ["NO-XGO"], ""], +["sage-intro-sequence-d1+11", "sage-intro-sequence-d1+11", 2, ["NO-XGO"], ""], +["sage-intro-sequence-d1+12", "sage-intro-sequence-d1+12", 2, ["NO-XGO"], ""], +["sage-intro-sequence-d1+13", "sage-intro-sequence-d1+13", 2, ["NO-XGO"], ""], +["sage-intro-sequence-d1+14", "sage-intro-sequence-d1+14", 2, ["NO-XGO"], ""], +["sage-intro-sequence-d1+15", "sage-intro-sequence-d1+15", 2, ["NO-XGO"], ""], +["sage-intro-sequence-d1+16", "sage-intro-sequence-d1+16", 2, ["NO-XGO"], ""], +["sage-intro-sequence-a+0", "sage-intro-sequence-a+0", 2, ["NO-XGO"], ""], +["sage-intro-sequence-a+1", "sage-intro-sequence-a+1", 2, ["NO-XGO"], ""], +["sage-intro-sequence-a+2", "sage-intro-sequence-a+2", 2, ["NO-XGO"], ""], +["sage-intro-sequence-a+3", "sage-intro-sequence-a+3", 2, ["NO-XGO"], ""], +["sage-intro-sequence-a+4", "sage-intro-sequence-a+4", 2, ["NO-XGO"], ""], +["sage-intro-sequence-a+5", "sage-intro-sequence-a+5", 2, ["NO-XGO"], ""], +["sage-intro-sequence-a+6", "sage-intro-sequence-a+6", 2, ["NO-XGO"], ""], +["sage-intro-sequence-a+7", "sage-intro-sequence-a+7", 2, ["NO-XGO"], ""], +["sage-intro-sequence-a+8", "sage-intro-sequence-a+8", 2, ["NO-XGO"], ""], +["sage-intro-sequence-a+9", "sage-intro-sequence-a+9", 2, ["NO-XGO"], ""], +["sage-intro-sequence-a+10", "sage-intro-sequence-a+10", 2, ["NO-XGO"], ""], +["sage-intro-sequence-a+11", "sage-intro-sequence-a+11", 2, ["NO-XGO"], ""], +["sage-intro-sequence-a+12", "sage-intro-sequence-a+12", 2, ["NO-XGO"], ""], +["sage-intro-sequence-a+13", "sage-intro-sequence-a+13", 2, ["NO-XGO"], ""], +["sage-intro-sequence-a+14", "sage-intro-sequence-a+14", 2, ["NO-XGO"], ""], +["sage-intro-sequence-a+15", "sage-intro-sequence-a+15", 2, ["NO-XGO"], ""], +["sage-intro-sequence-a+16", "sage-intro-sequence-a+16", 2, ["NO-XGO"], ""], +["sage-intro-sequence-a+17", "sage-intro-sequence-a+17", 2, ["NO-XGO"], ""], +["sage-intro-sequence-a+18", "sage-intro-sequence-a+18", 2, ["NO-XGO"], ""], +["sage-intro-sequence-a+19", "sage-intro-sequence-a+19", 2, ["NO-XGO"], ""], +["sage-intro-sequence-a+20", "sage-intro-sequence-a+20", 2, ["NO-XGO"], ""], +["sage-intro-sequence-a+21", "sage-intro-sequence-a+21", 2, ["NO-XGO"], ""], +["sidekick-human-intro-sequence-c+0", "sidekick-human-intro-sequence-c+0", 2, ["NO-XGO"], ""], +["sidekick-human-intro-sequence-c+1", "sidekick-human-intro-sequence-c+1", 2, ["NO-XGO"], ""], +["sidekick-human-intro-sequence-c+2", "sidekick-human-intro-sequence-c+2", 2, ["NO-XGO"], ""], +["sidekick-human-intro-sequence-c+3", "sidekick-human-intro-sequence-c+3", 2, ["NO-XGO"], ""], +["sidekick-human-intro-sequence-c+4", "sidekick-human-intro-sequence-c+4", 2, ["NO-XGO"], ""], +["sidekick-human-intro-sequence-c+5", "sidekick-human-intro-sequence-c+5", 2, ["NO-XGO"], ""], +["sidekick-human-intro-sequence-c+6", "sidekick-human-intro-sequence-c+6", 2, ["NO-XGO"], ""], +["sidekick-human-intro-sequence-c+7", "sidekick-human-intro-sequence-c+7", 2, ["NO-XGO"], ""], +["sidekick-human-intro-sequence-c+8", "sidekick-human-intro-sequence-c+8", 2, ["NO-XGO"], ""], +["sidekick-human-intro-sequence-c+9", "sidekick-human-intro-sequence-c+9", 2, ["NO-XGO"], ""], +["sidekick-human-intro-sequence-c+10", "sidekick-human-intro-sequence-c+10", 2, ["NO-XGO"], ""], +["sidekick-human-intro-sequence-c+11", "sidekick-human-intro-sequence-c+11", 2, ["NO-XGO"], ""], +["sidekick-human-intro-sequence-c+12", "sidekick-human-intro-sequence-c+12", 2, ["NO-XGO"], ""], +["sidekick-human-intro-sequence-c+13", "sidekick-human-intro-sequence-c+13", 2, ["NO-XGO"], ""], +["sidekick-human-intro-sequence-c+14", "sidekick-human-intro-sequence-c+14", 2, ["NO-XGO"], ""], +["sidekick-human-intro-sequence-c+15", "sidekick-human-intro-sequence-c+15", 2, ["NO-XGO"], ""], +["sidekick-human-intro-sequence-c+16", "sidekick-human-intro-sequence-c+16", 2, ["NO-XGO"], ""], +["sidekick-human-intro-sequence-c+17", "sidekick-human-intro-sequence-c+17", 2, ["NO-XGO"], ""], +["sidekick-human-intro-sequence-c+18", "sidekick-human-intro-sequence-c+18", 2, ["NO-XGO"], ""], +["sidekick-human-intro-sequence-c+19", "sidekick-human-intro-sequence-c+19", 2, ["NO-XGO"], ""], +["sidekick-human-intro-sequence-c+20", "sidekick-human-intro-sequence-c+20", 2, ["NO-XGO"], ""], +["sidekick-human-intro-sequence-c+21", "sidekick-human-intro-sequence-c+21", 2, ["NO-XGO"], ""], +["minershort-introduction-orbs+0", "minershort-introduction-orbs+0", 2, ["NO-XGO"], ""], +["minershort-introduction-orbs+1", "minershort-introduction-orbs+1", 2, ["NO-XGO"], ""], +["minershort-introduction-orbs+2", "minershort-introduction-orbs+2", 2, ["NO-XGO"], ""], +["minershort-introduction-orbs+3", "minershort-introduction-orbs+3", 2, ["NO-XGO"], ""], +["minershort-introduction-orbs+4", "minershort-introduction-orbs+4", 2, ["NO-XGO"], ""], +["minershort-introduction-orbs+5", "minershort-introduction-orbs+5", 2, ["NO-XGO"], ""], +["minershort-introduction-orbs+6", "minershort-introduction-orbs+6", 2, ["NO-XGO"], ""], +["minershort-introduction-orbs+7", "minershort-introduction-orbs+7", 2, ["NO-XGO"], ""], +["minershort-introduction-orbs+8", "minershort-introduction-orbs+8", 2, ["NO-XGO"], ""], +["minershort-introduction-orbs+9", "minershort-introduction-orbs+9", 2, ["NO-XGO"], ""], +["minershort-introduction-orbs+10", "minershort-introduction-orbs+10", 2, ["NO-XGO"], ""], +["minershort-introduction-orbs+11", "minershort-introduction-orbs+11", 2, ["NO-XGO"], ""], +["minershort-introduction-orbs+12", "minershort-introduction-orbs+12", 2, ["NO-XGO"], ""], +["minershort-introduction-orbs+13", "minershort-introduction-orbs+13", 2, ["NO-XGO"], ""], +["minershort-introduction-orbs+14", "minershort-introduction-orbs+14", 2, ["NO-XGO"], ""], +["minershort-introduction-orbs+15", "minershort-introduction-orbs+15", 2, ["NO-XGO"], ""], +["warrior-introduction+0", "warrior-introduction+0", 2, ["NO-XGO"], ""], +["warrior-introduction+1", "warrior-introduction+1", 2, ["NO-XGO"], ""], +["warrior-introduction+2", "warrior-introduction+2", 2, ["NO-XGO"], ""], +["warrior-introduction+3", "warrior-introduction+3", 2, ["NO-XGO"], ""], +["warrior-introduction+4", "warrior-introduction+4", 2, ["NO-XGO"], ""], +["warrior-introduction+5", "warrior-introduction+5", 2, ["NO-XGO"], ""], +["warrior-introduction+6", "warrior-introduction+6", 2, ["NO-XGO"], ""], +["warrior-introduction+7", "warrior-introduction+7", 2, ["NO-XGO"], ""], +["warrior-introduction+8", "warrior-introduction+8", 2, ["NO-XGO"], ""], +["warrior-introduction+9", "warrior-introduction+9", 2, ["NO-XGO"], ""], +["warrior-introduction+10", "warrior-introduction+10", 2, ["NO-XGO"], ""], +["warrior-introduction+11", "warrior-introduction+11", 2, ["NO-XGO"], ""], +["warrior-introduction+12", "warrior-introduction+12", 2, ["NO-XGO"], ""], +["warrior-introduction+13", "warrior-introduction+13", 2, ["NO-XGO"], ""], +["warrior-introduction+14", "warrior-introduction+14", 2, ["NO-XGO"], ""], +["warrior-introduction+15", "warrior-introduction+15", 2, ["NO-XGO"], ""], +["warrior-introduction+16", "warrior-introduction+16", 2, ["NO-XGO"], ""], +["warrior-introduction+17", "warrior-introduction+17", 2, ["NO-XGO"], ""], +["warrior-introduction+18", "warrior-introduction+18", 2, ["NO-XGO"], ""], +["warrior-introduction+19", "warrior-introduction+19", 2, ["NO-XGO"], ""], +["warrior-introduction+20", "warrior-introduction+20", 2, ["NO-XGO"], ""], +["warrior-introduction+21", "warrior-introduction+21", 2, ["NO-XGO"], ""], +["warrior-introduction+22", "warrior-introduction+22", 2, ["NO-XGO"], ""], +["warrior-introduction+23", "warrior-introduction+23", 2, ["NO-XGO"], ""], +["warrior-introduction+24", "warrior-introduction+24", 2, ["NO-XGO"], ""], +["warrior-introduction+25", "warrior-introduction+25", 2, ["NO-XGO"], ""], +["warrior-introduction+26", "warrior-introduction+26", 2, ["NO-XGO"], ""], +["warrior-introduction+27", "warrior-introduction+27", 2, ["NO-XGO"], ""], +["warrior-introduction+28", "warrior-introduction+28", 2, ["NO-XGO"], ""], +["sage-intro-sequence-d2+0", "sage-intro-sequence-d2+0", 2, ["NO-XGO"], ""], +["sage-intro-sequence-d2+1", "sage-intro-sequence-d2+1", 2, ["NO-XGO"], ""], +["sage-intro-sequence-d2+2", "sage-intro-sequence-d2+2", 2, ["NO-XGO"], ""], +["sage-intro-sequence-d2+3", "sage-intro-sequence-d2+3", 2, ["NO-XGO"], ""], +["sage-intro-sequence-d2+4", "sage-intro-sequence-d2+4", 2, ["NO-XGO"], ""], +["sage-intro-sequence-d2+5", "sage-intro-sequence-d2+5", 2, ["NO-XGO"], ""], +["sage-intro-sequence-d2+6", "sage-intro-sequence-d2+6", 2, ["NO-XGO"], ""], +["sage-intro-sequence-d2+7", "sage-intro-sequence-d2+7", 2, ["NO-XGO"], ""], +["sage-intro-sequence-d2+8", "sage-intro-sequence-d2+8", 2, ["NO-XGO"], ""], +["sage-intro-sequence-d2+9", "sage-intro-sequence-d2+9", 2, ["NO-XGO"], ""], +["sage-intro-sequence-d2+10", "sage-intro-sequence-d2+10", 2, ["NO-XGO"], ""], +["sage-intro-sequence-d2+11", "sage-intro-sequence-d2+11", 2, ["NO-XGO"], ""], +["sage-intro-sequence-d2+12", "sage-intro-sequence-d2+12", 2, ["NO-XGO"], ""], +["sage-intro-sequence-d2+13", "sage-intro-sequence-d2+13", 2, ["NO-XGO"], ""], +["sage-intro-sequence-d2+14", "sage-intro-sequence-d2+14", 2, ["NO-XGO"], ""], +["sage-intro-sequence-d2+15", "sage-intro-sequence-d2+15", 2, ["NO-XGO"], ""], +["sage-intro-sequence-d2+16", "sage-intro-sequence-d2+16", 2, ["NO-XGO"], ""], +["sage-intro-sequence-d2+17", "sage-intro-sequence-d2+17", 2, ["NO-XGO"], ""], +["sage-intro-sequence-d2+18", "sage-intro-sequence-d2+18", 2, ["NO-XGO"], ""], +["sage-intro-sequence-d2+19", "sage-intro-sequence-d2+19", 2, ["NO-XGO"], ""], +["green-sagecage-outro-preboss+0", "green-sagecage-outro-preboss+0", 2, ["NO-XGO"], ""], +["green-sagecage-outro-preboss+1", "green-sagecage-outro-preboss+1", 2, ["NO-XGO"], ""], +["green-sagecage-outro-preboss+2", "green-sagecage-outro-preboss+2", 2, ["NO-XGO"], ""], +["green-sagecage-outro-preboss+3", "green-sagecage-outro-preboss+3", 2, ["NO-XGO"], ""], +["green-sagecage-outro-preboss+4", "green-sagecage-outro-preboss+4", 2, ["NO-XGO"], ""], +["green-sagecage-outro-preboss+5", "green-sagecage-outro-preboss+5", 2, ["NO-XGO"], ""], +["green-sagecage-outro-preboss+6", "green-sagecage-outro-preboss+6", 2, ["NO-XGO"], ""], +["green-sagecage-outro-preboss+7", "green-sagecage-outro-preboss+7", 2, ["NO-XGO"], ""], +["green-sagecage-outro-preboss+8", "green-sagecage-outro-preboss+8", 2, ["NO-XGO"], ""], +["green-sagecage-outro-preboss+9", "green-sagecage-outro-preboss+9", 2, ["NO-XGO"], ""], +["green-sagecage-outro-preboss+10", "green-sagecage-outro-preboss+10", 2, ["NO-XGO"], ""], +["green-sagecage-outro-preboss+11", "green-sagecage-outro-preboss+11", 2, ["NO-XGO"], ""], +["green-sagecage-outro-preboss+12", "green-sagecage-outro-preboss+12", 2, ["NO-XGO"], ""], +["green-sagecage-outro-preboss+13", "green-sagecage-outro-preboss+13", 2, ["NO-XGO"], ""], +["green-sagecage-outro-preboss+14", "green-sagecage-outro-preboss+14", 2, ["NO-XGO"], ""], +["green-sagecage-outro-preboss+15", "green-sagecage-outro-preboss+15", 2, ["NO-XGO"], ""], +["green-sagecage-outro-preboss+16", "green-sagecage-outro-preboss+16", 2, ["NO-XGO"], ""], +["green-sagecage-outro-preboss+17", "green-sagecage-outro-preboss+17", 2, ["NO-XGO"], ""], +["green-sagecage-outro-preboss+18", "green-sagecage-outro-preboss+18", 2, ["NO-XGO"], ""], +["green-sagecage-outro-preboss+19", "green-sagecage-outro-preboss+19", 2, ["NO-XGO"], ""], +["green-sagecage-outro-preboss+20", "green-sagecage-outro-preboss+20", 2, ["NO-XGO"], ""], +["green-sagecage-outro-preboss+21", "green-sagecage-outro-preboss+21", 2, ["NO-XGO"], ""], +["green-sagecage-outro-beat-boss-b+0", "green-sagecage-outro-beat-boss-b+0", 2, ["NO-XGO"], ""], +["green-sagecage-outro-beat-boss-b+1", "green-sagecage-outro-beat-boss-b+1", 2, ["NO-XGO"], ""], +["green-sagecage-outro-beat-boss-b+2", "green-sagecage-outro-beat-boss-b+2", 2, ["NO-XGO"], ""], +["green-sagecage-outro-beat-boss-b+3", "green-sagecage-outro-beat-boss-b+3", 2, ["NO-XGO"], ""], +["green-sagecage-outro-beat-boss-b+4", "green-sagecage-outro-beat-boss-b+4", 2, ["NO-XGO"], ""], +["green-sagecage-outro-beat-boss-b+5", "green-sagecage-outro-beat-boss-b+5", 2, ["NO-XGO"], ""], +["green-sagecage-outro-beat-boss-b+6", "green-sagecage-outro-beat-boss-b+6", 2, ["NO-XGO"], ""], +["green-sagecage-outro-beat-boss-b+7", "green-sagecage-outro-beat-boss-b+7", 2, ["NO-XGO"], ""], +["green-sagecage-outro-beat-boss-b+8", "green-sagecage-outro-beat-boss-b+8", 2, ["NO-XGO"], ""], +["green-sagecage-outro-beat-boss-b+9", "green-sagecage-outro-beat-boss-b+9", 2, ["NO-XGO"], ""], +["green-sagecage-outro-beat-boss-b+10", "green-sagecage-outro-beat-boss-b+10", 2, ["NO-XGO"], ""], +["green-sagecage-outro-beat-boss-b+11", "green-sagecage-outro-beat-boss-b+11", 2, ["NO-XGO"], ""], +["green-sagecage-outro-beat-boss-b+12", "green-sagecage-outro-beat-boss-b+12", 2, ["NO-XGO"], ""], +["green-sagecage-outro-beat-boss-b+13", "green-sagecage-outro-beat-boss-b+13", 2, ["NO-XGO"], ""], +["green-sagecage-outro-beat-boss-b+14", "green-sagecage-outro-beat-boss-b+14", 2, ["NO-XGO"], ""], +["green-sagecage-outro-beat-boss-b+15", "green-sagecage-outro-beat-boss-b+15", 2, ["NO-XGO"], ""], +["green-sagecage-outro-beat-boss-b+16", "green-sagecage-outro-beat-boss-b+16", 2, ["NO-XGO"], ""], +["green-sagecage-outro-beat-boss-b+17", "green-sagecage-outro-beat-boss-b+17", 2, ["NO-XGO"], ""], +["green-sagecage-outro-beat-boss-b+18", "green-sagecage-outro-beat-boss-b+18", 2, ["NO-XGO"], ""], +["green-sagecage-outro-beat-boss-b+19", "green-sagecage-outro-beat-boss-b+19", 2, ["NO-XGO"], ""], +["green-sagecage-outro-beat-boss-b+20", "green-sagecage-outro-beat-boss-b+20", 2, ["NO-XGO"], ""], +["green-sagecage-outro-beat-boss-b+21", "green-sagecage-outro-beat-boss-b+21", 2, ["NO-XGO"], ""], +["green-sagecage-outro-beat-boss-b+22", "green-sagecage-outro-beat-boss-b+22", 2, ["NO-XGO"], ""], +["green-sagecage-outro-beat-boss-b+23", "green-sagecage-outro-beat-boss-b+23", 2, ["NO-XGO"], ""], +["green-sagecage-outro-beat-boss-b+24", "green-sagecage-outro-beat-boss-b+24", 2, ["NO-XGO"], ""], +["green-sagecage-outro-beat-boss-b+25", "green-sagecage-outro-beat-boss-b+25", 2, ["NO-XGO"], ""], +["green-sagecage-outro-beat-boss-b+26", "green-sagecage-outro-beat-boss-b+26", 2, ["NO-XGO"], ""], +["sage-village3-introduction+0", "sage-village3-introduction+0", 2, ["NO-XGO"], ""], +["sage-village3-introduction+1", "sage-village3-introduction+1", 2, ["NO-XGO"], ""], +["sage-village3-introduction+2", "sage-village3-introduction+2", 2, ["NO-XGO"], ""], +["sage-village3-introduction+3", "sage-village3-introduction+3", 2, ["NO-XGO"], ""], +["sage-village3-introduction+4", "sage-village3-introduction+4", 2, ["NO-XGO"], ""], +["sage-village3-introduction+5", "sage-village3-introduction+5", 2, ["NO-XGO"], ""], +["sage-village3-introduction+6", "sage-village3-introduction+6", 2, ["NO-XGO"], ""], +["sage-village3-introduction+7", "sage-village3-introduction+7", 2, ["NO-XGO"], ""], +["sage-village3-introduction+8", "sage-village3-introduction+8", 2, ["NO-XGO"], ""], +["sage-village3-introduction+9", "sage-village3-introduction+9", 2, ["NO-XGO"], ""], +["sage-village3-introduction+10", "sage-village3-introduction+10", 2, ["NO-XGO"], ""], +["sage-village3-introduction+11", "sage-village3-introduction+11", 2, ["NO-XGO"], ""], +["sage-village3-introduction+12", "sage-village3-introduction+12", 2, ["NO-XGO"], ""], +["sage-village3-introduction+13", "sage-village3-introduction+13", 2, ["NO-XGO"], ""], +["sage-village3-introduction+14", "sage-village3-introduction+14", 2, ["NO-XGO"], ""], +["sage-village3-introduction+15", "sage-village3-introduction+15", 2, ["NO-XGO"], ""], +["sage-village3-introduction+16", "sage-village3-introduction+16", 2, ["NO-XGO"], ""], +["sage-village3-introduction+17", "sage-village3-introduction+17", 2, ["NO-XGO"], ""], +["sage-village3-introduction+18", "sage-village3-introduction+18", 2, ["NO-XGO"], ""], +["sage-village3-introduction+19", "sage-village3-introduction+19", 2, ["NO-XGO"], ""], +["sage-village3-introduction+20", "sage-village3-introduction+20", 2, ["NO-XGO"], ""], +["sage-village3-introduction+21", "sage-village3-introduction+21", 2, ["NO-XGO"], ""], +["sage-village3-introduction+22", "sage-village3-introduction+22", 2, ["NO-XGO"], ""], +["sage-village3-introduction+23", "sage-village3-introduction+23", 2, ["NO-XGO"], ""], +["sage-village3-introduction+24", "sage-village3-introduction+24", 2, ["NO-XGO"], ""], +["sage-village3-introduction+25", "sage-village3-introduction+25", 2, ["NO-XGO"], ""], +["sage-village3-introduction+26", "sage-village3-introduction+26", 2, ["NO-XGO"], ""], +["sage-village3-introduction+27", "sage-village3-introduction+27", 2, ["NO-XGO"], ""], +["sage-village3-introduction+28", "sage-village3-introduction+28", 2, ["NO-XGO"], ""], +["sage-village3-introduction+29", "sage-village3-introduction+29", 2, ["NO-XGO"], ""], +["sage-village3-introduction+30", "sage-village3-introduction+30", 2, ["NO-XGO"], ""], +["sage-village3-introduction+31", "sage-village3-introduction+31", 2, ["NO-XGO"], ""], +["sage-village3-introduction+32", "sage-village3-introduction+32", 2, ["NO-XGO"], ""], +["sage-village3-introduction+33", "sage-village3-introduction+33", 2, ["NO-XGO"], ""], +["sage-village3-introduction+34", "sage-village3-introduction+34", 2, ["NO-XGO"], ""], +["sage-village3-introduction+35", "sage-village3-introduction+35", 2, ["NO-XGO"], ""], +["sage-village3-introduction+36", "sage-village3-introduction+36", 2, ["NO-XGO"], ""], +["sage-village3-introduction+37", "sage-village3-introduction+37", 2, ["NO-XGO"], ""], +["sage-village3-introduction+38", "sage-village3-introduction+38", 2, ["NO-XGO"], ""], +["sage-village3-introduction+39", "sage-village3-introduction+39", 2, ["NO-XGO"], ""], +["sage-village3-introduction+40", "sage-village3-introduction+40", 2, ["NO-XGO"], ""], +["sage-village3-introduction+41", "sage-village3-introduction+41", 2, ["NO-XGO"], ""], +["sage-village3-introduction+42", "sage-village3-introduction+42", 2, ["NO-XGO"], ""], +["sage-village3-introduction+43", "sage-village3-introduction+43", 2, ["NO-XGO"], ""], +["sage-village3-introduction+44", "sage-village3-introduction+44", 2, ["NO-XGO"], ""], +["sage-village3-introduction+45", "sage-village3-introduction+45", 2, ["NO-XGO"], ""], +["sage-village3-introduction+46", "sage-village3-introduction+46", 2, ["NO-XGO"], ""], +["sage-village3-introduction+47", "sage-village3-introduction+47", 2, ["NO-XGO"], ""], +["sage-village3-introduction+48", "sage-village3-introduction+48", 2, ["NO-XGO"], ""], +["sage-village3-introduction+49", "sage-village3-introduction+49", 2, ["NO-XGO"], ""], +["sage-village3-introduction+50", "sage-village3-introduction+50", 2, ["NO-XGO"], ""], +["sage-village3-introduction+51", "sage-village3-introduction+51", 2, ["NO-XGO"], ""], +["sage-village3-introduction+52", "sage-village3-introduction+52", 2, ["NO-XGO"], ""], +["sage-village3-introduction+53", "sage-village3-introduction+53", 2, ["NO-XGO"], ""], +["sage-village3-introduction+54", "sage-village3-introduction+54", 2, ["NO-XGO"], ""], +["sage-village3-introduction+55", "sage-village3-introduction+55", 2, ["NO-XGO"], ""], +["sage-village3-introduction+56", "sage-village3-introduction+56", 2, ["NO-XGO"], ""], +["sage-village3-introduction+57", "sage-village3-introduction+57", 2, ["NO-XGO"], ""]] diff --git a/goal_src/engine/ambient/ambient.gc b/goal_src/engine/ambient/ambient.gc index 706ebe3892..bbbfec5f62 100644 --- a/goal_src/engine/ambient/ambient.gc +++ b/goal_src/engine/ambient/ambient.gc @@ -514,8 +514,30 @@ (add-setting! 'music-volume 'rel (-> *setting-control* current music-volume-movie) 0) (add-setting! 'sfx-volume 'rel (-> *setting-control* current sfx-volume-movie) 0) (add-setting! 'dialog-volume 'rel (-> *setting-control* current dialog-volume-hint) 0) - (while (= (current-str-id) s5-2) - (suspend) + ;; PAL patch here + (let ((s5-1 -1) + (s3-1 (-> *display* base-frame-counter)) + (s4-4 (-> *display* base-frame-counter)) + ) + (label cfg-27) + (let ((v1-36 (current-str-pos s5-2))) + (when (< s5-1 v1-36) + (if (> v1-36 0) + (set! s5-1 v1-36) + ) + (set! s3-1 (-> *display* base-frame-counter)) + ) + (when (not (and (or (< v1-36 0) + (>= (- (-> *display* base-frame-counter) s3-1) (seconds 3)) + (>= (- (-> *display* base-frame-counter) s4-4) (seconds 60)) + ) + *sound-player-enable* + ) + ) + (suspend) + (goto cfg-27) + ) + ) ) ) (else @@ -578,8 +600,30 @@ (add-setting! 'music-volume 'rel (-> *setting-control* current music-volume-movie) 0) (add-setting! 'sfx-volume 'rel (-> *setting-control* current sfx-volume-movie) 0) ) - (while (= (current-str-id) (-> self sound-id)) - (suspend) + ;; PAL patch here + (let ((gp-1 -1) + (s4-4 (-> *display* base-frame-counter)) + (s5-4 (-> *display* base-frame-counter)) + ) + (label cfg-19) + (let ((v1-24 (current-str-pos (-> self sound-id)))) + (when (< gp-1 v1-24) + (if (> v1-24 0) + (set! gp-1 v1-24) + ) + (set! s4-4 (-> *display* base-frame-counter)) + ) + (when (not (and (or (< v1-24 0) + (>= (- (-> *display* base-frame-counter) s4-4) (seconds 3)) + (>= (- (-> *display* base-frame-counter) s5-4) (seconds 60)) + ) + *sound-player-enable* + ) + ) + (suspend) + (goto cfg-19) + ) + ) ) ) (else diff --git a/goal_src/engine/camera/cam-debug.gc b/goal_src/engine/camera/cam-debug.gc index 91337a56e2..7a84f68619 100644 --- a/goal_src/engine/camera/cam-debug.gc +++ b/goal_src/engine/camera/cam-debug.gc @@ -1591,31 +1591,6 @@ arg0 ) -;; definition for function external-cam-reset! -;; INFO: Return type mismatch int vs none. -;; Used lq/sq -(defun external-cam-reset! () - (vector-reset! (-> *math-camera* trans)) - (matrix-identity! (-> *math-camera* inv-camera-rot)) - (when *camera-combiner* - (let* ((v1-6 (-> *math-camera* inv-camera-rot)) - (a3-0 (-> *camera-combiner* inv-camera-rot)) - (a0-2 (-> a3-0 vector 0 quad)) - (a1-0 (-> a3-0 vector 1 quad)) - (a2-0 (-> a3-0 vector 2 quad)) - (a3-1 (-> a3-0 vector 3 quad)) - ) - (set! (-> v1-6 vector 0 quad) a0-2) - (set! (-> v1-6 vector 1 quad) a1-0) - (set! (-> v1-6 vector 2 quad) a2-0) - (set! (-> v1-6 vector 3 quad) a3-1) - ) - (set! (-> *math-camera* trans quad) (-> *camera-combiner* trans quad)) - ) - 0 - (none) - ) - ) diff --git a/goal_src/engine/camera/cam-update.gc b/goal_src/engine/camera/cam-update.gc index b94afc7d6d..4e1e00d0ec 100644 --- a/goal_src/engine/camera/cam-update.gc +++ b/goal_src/engine/camera/cam-update.gc @@ -276,6 +276,29 @@ arg0 ) +;; PAL patch here (moved from cam-debug) +(defun external-cam-reset! () + (vector-reset! (-> *math-camera* trans)) + (matrix-identity! (-> *math-camera* inv-camera-rot)) + (when *camera-combiner* + (let* ((v1-6 (-> *math-camera* inv-camera-rot)) + (a3-0 (-> *camera-combiner* inv-camera-rot)) + (a0-2 (-> a3-0 vector 0 quad)) + (a1-0 (-> a3-0 vector 1 quad)) + (a2-0 (-> a3-0 vector 2 quad)) + (a3-1 (-> a3-0 vector 3 quad)) + ) + (set! (-> v1-6 vector 0 quad) a0-2) + (set! (-> v1-6 vector 1 quad) a1-0) + (set! (-> v1-6 vector 2 quad) a2-0) + (set! (-> v1-6 vector 3 quad) a3-1) + ) + (set! (-> *math-camera* trans quad) (-> *camera-combiner* trans quad)) + ) + 0 + (none) + ) + (define *start-timer* (the-as int #f)) (define *timer-value* 0) diff --git a/goal_src/engine/collide/collide-target-h.gc b/goal_src/engine/collide/collide-target-h.gc index 2421fa435f..41a699660e 100644 --- a/goal_src/engine/collide/collide-target-h.gc +++ b/goal_src/engine/collide/collide-target-h.gc @@ -30,168 +30,170 @@ ;; This is the collide shape for target (Jak). ;; It is complicated. (deftype control-info (collide-shape-moving) - ( - (unknown-vector00 vector :inline :offset 448) ;; from - logic-target::build-conversions - (unknown-vector01 vector :inline :offset 464) ;; from - logic-target::turn-to-vector - (unknown-vector02 vector :inline :offset 480) ;; from - logic-target::do-rotations2 - (unknown-quaternion00 quaternion :inline :offset 496) ;; from - target-util::(method 27 control-info) - (unknown-quaternion01 quaternion :inline :offset 512) ;; from - logic-target::do-rotations2 - (unknown-float00 float :offset 528) ;; from - logic-target::do-rotations2 - (unknown-float01 float :offset 532) - (unknown-float02 float :offset 536) ;; from - logic-target::add-thrust - (unknown-vector10 vector :inline :offset 544) ;; from - logic-target::flat-setup - (unknown-vector11 vector :inline :offset 560) ;; from - logic-target::target-no-move-post - (unknown-vector12 vector :inline :offset 576) - (unknown-vector13 vector :inline :offset 592) ;; from - collide-shape::method-37 | target::mod-var-jump - (unknown-vector14 vector :inline :offset 608) ;; from - logic-target::target-no-move-post - (unknown-vector15 vector :inline :offset 624) ;; from - collide-shape::method-37 | target-handler::target-exit - (unknown-vector16 vector :inline :offset 640) ;; from - collide-shape::method-37 - (unknown-dynamics00 dynamics :offset 656) ;; from - logic-target::bend-gravity - (unknown-surface00 surface :offset 660) - (unknown-surface01 surface :offset 664) ;; not a symbol - target-util::target-align-vel-z-adjust - (unknown-cpad-info00 cpad-info :offset 668) ;; not a symbol - target-util::move-legs? - (unknown-float10 float :offset 672) ;; from - logic-target::turn-to-vector - (unknown-float11 float :offset 676) ;; from - logic-target::turn-to-vector - (unknown-float12 float :offset 680) ;; from - logic-target::turn-to-vector - (unknown-float13 float :offset 684) ;; from - logic-target::turn-to-vector - (unknown-vector20 vector :inline :offset 688) ;; from - logic-target::turn-to-vector - (unknown-vector21 vector :inline :offset 704) ;; from - logic-target::turn-to-vector - (unknown-vector22 vector :inline :offset 720) ;; from - logic-target::turn-to-vector - (unknown-vector23 vector :inline :offset 736) ;; from - logic-target::turn-to-vector - ; (unknown-dword-temp-01 uint64 :offset 776) ;; from - logic-target::read-pad - (unknown-vector-array00 vector 7 :inline :offset 752) ;; from - logic-target::turn-to-vector - (unknown-vector30 vector :inline :offset 880) ;; from - logic-target::read-pad - (unknown-vector31 vector :inline :offset 896) ;; from - logic-target::read-pad - (unknown-float20 float :offset 912) ;; from - logic-target::read-pad - (unknown-float21 float :offset 916) ;; from - logic-target::read-pad - (unknown-dword00 uint64 :offset 920) ;; from - logic-target::read-pad - (unknown-matrix00 matrix :inline :offset 928) ;; from - target-util::(method 16 target) - (unknown-matrix01 matrix :inline :offset 992) ;; from - target-util::(method 16 target) - (unknown-matrix02 matrix :inline :offset 1056) ;; from - logic-target::joint-points - (unknown-qword00 uint128 :offset 1136) - (unknown-float30 float :offset 1140) ;; from - logic-target::target-calc-camera-pos - (unknown-vector40 vector :inline :offset 1152) ;; from - logic-target::target-real-post - (unknown-float40 float :offset 1172) ;; from - target-death::lambda-1 - (unknown-float41 float :offset 1176) ;; from - logic-target::do-rotations2 - (unknown-int00 int32 :offset 1180) ;; from - logic-target::joint-points - (unknown-float50 float :offset 1168) ;; from - logic-target::target-real-post - (unknown-vector50 vector :inline :offset 1184) ;; from - logic-target::build-conversions - (unknown-vector51 vector :inline :offset 1200) ;; from - logic-target::build-conversions - (unknown-vector52 vector :inline :offset 1216) - (unknown-vector53 vector :inline :offset 1232) - (last-known-safe-ground vector :inline :offset 1248) - (unknown-vector55 vector :inline :offset 1264) - (unknown-dword10 time-frame :offset 1280) ;; from - collide-reaction-target::target-collision-reaction - (unknown-dword11 time-frame :offset 1288) ;; from - target-util::can-jump? - (unknown-float60 float :offset 1300) ;; from - target-util::can-duck? - (unknown-float61 float :offset 1304) ;; from - target-util::target-align-vel-z-adjust - (unknown-float62 float :offset 1308) ;; from - target-util::target-print-stats - (unknown-float63 float :offset 1312) ;; from - logic-target::target-compute-slopes - (unknown-float64 float :offset 1316) ;; from - logic-target::target-compute-slopes - (unknown-dword20 time-frame :offset 1320) ;; from target-util::turn-around? - TODO - (unknown-dword21 time-frame :offset 1328) ;; from target-util::turn-around? - TODO - (unknown-dword-coverage int64 :offset 1336) - (unknown-float-coverage-0 float :offset 1344) - (unknown-float-coverage-1 float :offset 1348) - (unknown-float-coverage-2 float :offset 1352) - (unknown-u32-coverage-0 uint32 :offset 1356) - (unknown-vector-coverage-0 vector :inline :offset 1376) - (unknown-vector-coverage-1 vector :inline :offset 1392) - (unknown-vector-coverage-2 vector :inline :offset 1440) - (unknown-vector-coverage-3 vector :inline :offset 1472) - (unknown-vector60 vector :inline :offset 1456) ;; from - logic-target::add-thrust - (unknown-vector61 vector :inline :offset 1504) ;; from - logic-target::add-thrust - (unknown-float70 float :offset 1520) ;; from - logic-target::add-thrust - (unknown-float71 float :offset 1524) ;; from - collide-shape::method-37 - (unknown-vector70 vector :inline :offset 1536) ;; from - logic-target::add-thrust - (unknown-vector71 vector :inline :offset 1552) ;; from - target-tube::tube-thrust - (unknown-vector72 vector :inline :offset 1568) ;; from - collide-reaction-racer::racer-collision-reaction - (unknown-vector73 vector :inline :offset 1584) ;; from - collide-reaction-racer::racer-collision-reaction - (unknown-handle00 handle :offset 1600) ;; from logic-target::reset-target-state - (unknown-sphere-array00 collide-shape-prim-sphere 3 :offset 1608) ;; from target-util::target-collide-set! and from target-util::target-danger-set! - (unknown-sphere00 collide-shape-prim-sphere :offset 1632) ;; from target-util::target-danger-set! - (unknown-sphere01 collide-shape-prim-sphere :offset 1636) ;; from target-util::target-danger-set! - (unknown-sphere02 collide-shape-prim-sphere :offset 1640) ;; from target-util::target-danger-set! - (unknown-int50 int32 :offset 1656) ;; from target::(enter target-wheel) - (unknown-dword30 time-frame :offset 1664) ;; from target::(trans target-walk) - (unknown-dword31 time-frame :offset 1672) ;; from target-util::can-hands? - (unknown-dword32 time-frame :offset 1680) ;; from target-util::can-hands? - (unknown-dword33 time-frame :offset 1688) ;; from target-util::can-feet? - (unknown-dword34 time-frame :offset 1696) ;; from target-util::can-feet? - (unknown-dword35 time-frame :offset 1704) ;; from target::(exit target-slide-down) - (unknown-dword36 time-frame :offset 1712) ;; from target::(trans target-jump) - (unknown-float80 float :offset 1724) ;; from logic-target::bend-gravity - (unknown-float81 float :offset 1728) ;; from logic-target::bend-gravity - (unknown-float82 float :offset 1732) ;; from logic-target::bend-gravity - (unknown-vector80 vector :inline :offset 1744) ;; from logic-target::joint-points - (unknown-cspace00 cspace :inline :offset 1760) ;; from logic-target::joint-points - (unknown-vector90 vector :score 100 :inline :offset 1776) ;; from logic-target::target-compute-edge - (unknown-vector91 vector :inline :offset 1792) ;; from logic-target::target-compute-edge - (unknown-vector92 vector :inline :offset 1824) ;; from logic-target::joint-points - (unknown-cspace10 cspace :inline :offset 1808) ;; from logic-target::joint-points - (unknown-symbol00 symbol :offset 1840) ;; from target-util::target-danger-set! - (unknown-float90 float :offset 1844) ;; from target-util::target-danger-set! - (unknown-float91 float :offset 1848) ;; from target-util::target-collide-set! - (unknown-vector-array10 vector 16 :inline :offset 1856) ;; from target-util::turn-around? - (unknown-float100 float :offset 2112) ;; from target-util::turn-around? - (unknown-int10 int32 :offset 2116) ;; from target-util::turn-around? - (unknown-float110 float :offset 2120) ;; from logic-target::target-compute-edge - (unknown-vector100 vector :inline :offset 2128) ;; from logic-target::target-compute-edge - (unknown-vector101 vector :inline :offset 2144) ;; from logic-target::target-compute-edge - (unknown-dword40 time-frame :offset 2160) ;; from logic-target::target-compute-edge - (unknown-dword41 time-frame :offset 2168) ;; from logic-target::target-compute-edge - (unknown-handle10 handle :offset 2176) ;; from logic-target::target-compute-pole - probably a swingpole - (unknown-uint20 uint32 :offset 2184) ;; from target::(trans target-running-attack) - (unknown-spoolanim00 spool-anim :offset 2184) ;; from target2::(trans target-stance-ambient) - (unknown-int20 int32 :offset 2184) ;; from (anon-function 1 basebutton) - (unknown-symbol20 symbol :offset 2184) ;; from (anon-function 1 basebutton) - (unknown-float120 float :offset 2184) ;; from target::mod-var-jump - (unknown-int21 int32 :offset 2188) ;; from logic-target::target-compute-pole - (unknown-uint30 uint32 :offset 2188) ;; from target::(code target-running-attack) - (unknown-float121 float :offset 2188) ;; from target::mod-var-jump - (unknown-uint31 uint32 :offset 2192) ;; from target::(trans target-running-attack) - (unknown-float122 float :offset 2196) ;; from target::(trans target-jump) - (unknown-float123 float :offset 2200) ;; from target::mod-var-jump - (unknown-float124 float :offset 2204) ;; from target::init-var-jump - (unknown-vector102 vector :inline :offset 2224) ;; from (anon-function 3 basebutton) - (unknown-vector103 vector :inline :offset 2240) ;; from (anon-function 3 basebutton) - (unknown-quaternion02 quaternion :inline :offset 2256) ;; from racer-states::(code target-racing-get-on) - (unknown-quaternion03 quaternion :inline :offset 2272) ;; from racer-states::(code target-racing-get-on) - (unknown-smush00 smush-control :inline :offset 2288) ;; from (event target-fishing) - (unknown-vector110 vector :inline :offset 2320) ;; from logic-target::flag-setup - (unknown-vector111 vector :inline :offset 2336) ;; from logic-target::flag-setup - (unknown-symbol30 symbol :offset 2384) ;; from target-util::target-danger-set! - (unknown-int31 uint32 :offset 2384) ;; from target:: (event target-running-attack) - (unknown-dword50 int64 :offset 2392) ;; from target-util::target-start-attack - (unknown-dword51 int64 :offset 2400) ;; from target-util::target-start-attack - (unknown-pointer00 pointer :offset 2416) ;; from target-handler::target-standard-event-handler - (unknown-symbol40 symbol :offset 2428) ;; from logic-target::post-flag-setup - (unknown-dword60 int64 :offset 2432) ;; from target::(enter target-jump) - (unknown-dword61 int64 :offset 2440) ;; from target::(enter target-jump) - (unknown-dword62 int64 :offset 2448) ;; from target::(enter target-jump) - probably some sort of object64 that's used as a vector? - (unknown-dword63 int64 :offset 2456) ;; from target::(enter target-jump) - (unknown-halfword00 int16 :offset 2488) ;; from logic-target::target-move-dist - ;; these were determined from racer-collision-reaction. - (history-length int16 :offset 2490) - (history-data collide-history 128 :inline :offset-assert 2496) - (unknown-float140 float :offset 18944) - (unknown-dword70 time-frame :offset 18952) ;; from logic-target::add-thrust - (unknown-int40 int32 :offset 18880) ;; from logic-target::flag-setup - (unknown-dword80 time-frame :offset 18888) ;; from logic-target::post-flag-setup - (unknown-dword81 time-frame :offset 18896) ;; from logic-target::post-flag-setup - (unknown-float130 float :offset 18904) ;; from target2::target-swim-tilt - (unknown-float131 float :offset 18908) ;; from target2::target-swim-tilt - (unknown-dword82 time-frame :offset 18912) ;; from logic-target::reset-target-state - (unknown-vector120 vector :inline :offset 18928) ;; from target::(code target-running-attack) - (unknown-float150 float :offset 18944) ;; from target::(code target-wheel-flip) - (unknown-vector121 vector :inline :offset 18960) ;; from target collide response - (wall-pat pat-surface :offset 18976) ;; pat information for wall-check collision - (unknown-soundid00 sound-id :offset 18980) ;; from powerups::target-powerup-process - (unknown-float141 float :offset 18984) ;; from powerups::target-powerup-process + ((unknown-vector00 vector :inline :offset 448) + (unknown-vector01 vector :inline :offset 464) + (unknown-vector02 vector :inline :offset 480) + (unknown-quaternion00 quaternion :inline :offset 496) + (unknown-quaternion01 quaternion :inline :offset 512) + (unknown-float00 float :offset 528) + (unknown-float01 float :offset 532) + (unknown-float02 float :offset 536) + (unknown-vector10 vector :inline :offset 544) + (unknown-vector11 vector :inline :offset 560) + (unknown-vector12 vector :inline :offset 576) + (unknown-vector13 vector :inline :offset 592) + (unknown-vector14 vector :inline :offset 608) + (unknown-vector15 vector :inline :offset 624) + (unknown-vector16 vector :inline :offset 640) + (unknown-dynamics00 dynamics :offset 656) + (unknown-surface00 surface :offset 660) + (unknown-surface01 surface :offset 664) + (unknown-cpad-info00 cpad-info :offset 668) + (unknown-float10 float :offset 672) + (unknown-float11 float :offset 676) + (unknown-float12 float :offset 680) + (unknown-float13 float :offset 684) + (unknown-vector20 vector :inline :offset 688) + (unknown-vector21 vector :inline :offset 704) + (unknown-vector22 vector :inline :offset 720) + (unknown-vector23 vector :inline :offset 736) + (unknown-vector-array00 vector 7 :inline :offset 752) + (unknown-vector30 vector :inline :offset 880) + (unknown-vector31 vector :inline :offset 896) + (unknown-float20 float :offset 912) + (unknown-float21 float :offset 916) + (unknown-dword00 uint64 :offset 920) + (unknown-matrix00 matrix :inline :offset 928) + (unknown-matrix01 matrix :inline :offset 992) + (unknown-matrix02 matrix :inline :offset 1056) + (unknown-qword00 uint128 :offset 1136) + (unknown-float30 float :offset 1140) + (unknown-vector40 vector :inline :offset 1152) + (unknown-float40 float :offset 1172) + (unknown-float41 float :offset 1176) + (unknown-int00 int32 :offset 1180) + (unknown-float50 float :offset 1168) + (unknown-vector50 vector :inline :offset 1184) + (unknown-vector51 vector :inline :offset 1200) + (unknown-vector52 vector :inline :offset 1216) + (unknown-vector53 vector :inline :offset 1232) + (last-known-safe-ground vector :inline :offset 1248) + (unknown-vector55 vector :inline :offset 1264) + (unknown-dword10 time-frame :offset 1280) + (unknown-dword11 time-frame :offset 1288) + (unknown-float60 float :offset 1300) + (unknown-float61 float :offset 1304) + (unknown-float62 float :offset 1308) + (unknown-float63 float :offset 1312) + (unknown-float64 float :offset 1316) + (unknown-dword20 time-frame :offset 1320) + (unknown-dword21 time-frame :offset 1328) + (unknown-dword-coverage int64 :offset 1336) + (unknown-float-coverage-0 float :offset 1344) + (unknown-float-coverage-1 float :offset 1348) + (unknown-float-coverage-2 float :offset 1352) + (unknown-u32-coverage-0 uint32 :offset 1356) + (unknown-vector-coverage-0 vector :inline :offset 1376) + (unknown-vector-coverage-1 vector :inline :offset 1392) + (unknown-vector-coverage-2 vector :inline :offset 1440) + (unknown-vector-coverage-3 vector :inline :offset 1472) + (unknown-vector60 vector :inline :offset 1456) + (unknown-vector61 vector :inline :offset 1504) + (unknown-float70 float :offset 1520) + (unknown-float71 float :offset 1524) + (unknown-vector70 vector :inline :offset 1536) + (unknown-vector71 vector :inline :offset 1552) + (unknown-vector72 vector :inline :offset 1568) + (unknown-vector73 vector :inline :offset 1584) + (unknown-handle00 handle :offset 1600) + (unknown-sphere-array00 collide-shape-prim-sphere 3 :offset 1608) + (unknown-sphere00 collide-shape-prim-sphere :offset 1632) + (unknown-sphere01 collide-shape-prim-sphere :offset 1636) + (unknown-sphere02 collide-shape-prim-sphere :offset 1640) + (unknown-int50 int32 :offset 1656) + (unknown-dword30 time-frame :offset 1664) + (unknown-dword31 time-frame :offset 1672) + (unknown-dword32 time-frame :offset 1680) + (unknown-dword33 time-frame :offset 1688) + (unknown-dword34 time-frame :offset 1696) + (unknown-dword35 time-frame :offset 1704) + (unknown-dword36 time-frame :offset 1712) + (unknown-float80 float :offset 1724) + (unknown-float81 float :offset 1728) + (unknown-float82 float :offset 1732) + (unknown-vector80 vector :inline :offset 1744) + (unknown-cspace00 cspace :inline :offset 1760) + (unknown-vector90 vector :inline :offset 1776) + (unknown-vector91 vector :inline :offset 1792) + (unknown-vector92 vector :inline :offset 1824) + (unknown-cspace10 cspace :inline :offset 1808) + (unknown-symbol00 symbol :offset 1840) + (unknown-float90 float :offset 1844) + (unknown-float91 float :offset 1848) + (unknown-vector-array10 vector 16 :inline :offset 1856) + (unknown-float100 float :offset 2112) + (unknown-int10 int32 :offset 2116) + (unknown-float110 float :offset 2120) + (unknown-vector100 vector :inline :offset 2128) + (unknown-vector101 vector :inline :offset 2144) + (unknown-dword40 time-frame :offset 2160) + (unknown-dword41 time-frame :offset 2168) + (unknown-handle10 handle :offset 2176) + (unknown-uint20 uint32 :offset 2184) + (unknown-spoolanim00 spool-anim :offset 2184) + (unknown-int20 int32 :offset 2184) + (unknown-symbol20 symbol :offset 2184) + (unknown-float120 float :offset 2184) + (unknown-int21 int32 :offset 2188) + (unknown-uint30 uint32 :offset 2188) + (unknown-float121 float :offset 2188) + (unknown-uint31 uint32 :offset 2192) + (unknown-int37 int32 :offset 2192) + (unknown-float122 float :offset 2196) + (unknown-float123 float :offset 2200) + (unknown-float124 float :offset 2204) + (unknown-vector102 vector :inline :offset 2224) + (unknown-vector103 vector :inline :offset 2240) + (unknown-quaternion02 quaternion :inline :offset 2256) + (unknown-quaternion03 quaternion :inline :offset 2272) + (unknown-smush00 smush-control :inline :offset 2288) + (unknown-vector110 vector :inline :offset 2320) + (unknown-vector111 vector :inline :offset 2336) + (unknown-symbol30 symbol :offset 2384) + (unknown-int31 uint32 :offset 2384) + (unknown-dword50 int64 :offset 2392) + (unknown-dword51 int64 :offset 2400) + (unknown-pointer00 pointer :offset 2416) + (unknown-symbol40 symbol :offset 2428) + (unknown-dword60 int64 :offset 2432) + (unknown-dword61 int64 :offset 2440) + (unknown-dword62 int64 :offset 2448) + (unknown-dword63 int64 :offset 2456) + (unknown-halfword00 int16 :offset 2488) + (history-length int16 :offset 2490) + (history-data collide-history 128 :inline :offset-assert 2496) + (unknown-float140 float :offset 18944) + (unknown-dword70 time-frame :offset 18952) + (unknown-int40 int32 :offset 18880) + (unknown-dword80 time-frame :offset 18888) + (unknown-dword81 time-frame :offset 18896) + (unknown-float130 float :offset 18904) + (unknown-float131 float :offset 18908) + (unknown-dword82 time-frame :offset 18912) + (unknown-vector120 vector :inline :offset 18928) + (unknown-float150 float :offset 18944) + (unknown-vector121 vector :inline :offset 18960) + (wall-pat pat-surface :offset 18976) + (unknown-soundid00 sound-id :offset 18980) + (unknown-float141 float :offset 18984) + (unknown-soundid01 sound-id :offset 18988) + (unknown-int34 int32 :offset 18992) + (unknown-int35 int32 :offset 18996) + (unknown-int36 int32 :offset 19000) ) - :size-assert #x4a2c :method-count-assert 65 - :flag-assert #x4100004a2c + :size-assert #x4a3c + :flag-assert #x4100004a3c ) (defmethod update! collide-history ((obj collide-history) (cshape collide-shape-moving) (xs vector) (transv vector) (transv-out vector)) diff --git a/goal_src/engine/game/main.gc b/goal_src/engine/game/main.gc index fa59958735..5558703ed7 100644 --- a/goal_src/engine/game/main.gc +++ b/goal_src/engine/game/main.gc @@ -104,52 +104,57 @@ (defun set-master-mode ((new-mode symbol)) "Update pause masks for the given mode, and set *master-mode*" - (set! *master-mode* new-mode) - (if *debug-segment* - (menu-respond-to-pause) - ) - (case *master-mode* - (('pause) + ;; PAL patch here + (let ((gp-0 *master-mode*)) + (set! *master-mode* new-mode) + (if *debug-segment* + (menu-respond-to-pause) + ) + (case *master-mode* + (('pause) - ;; request the pause mask to be set in prevent-from-run. - ;; this will block any process with pause from running, pausing most game objects. - (if (not *debug-pause*) - (logior! (-> *setting-control* default process-mask) (process-mask pause)) - ) - - ;; allow the menu to run. - (logclear! (-> *setting-control* default process-mask) (process-mask menu)) - - ;; ?? - (set! *pause-lock* #f) - (sound-group-pause (sound-group sfx music dialog sog3 ambient sog5 sog6 sog7)) - (hide-progress-screen) - ) - (('menu) - ;; I believe these masks are just to make the progress go away work. - (logior! (-> *setting-control* default process-mask) (process-mask menu)) - (logclear! (-> *setting-control* default process-mask) (process-mask pause progress)) - (set! *pause-lock* #f) - (hide-progress-screen) - ) - (('progress) - ;; allow menu to run while in progress. - (logclear! (-> *setting-control* default process-mask) (process-mask menu)) - - ;; activate the progress menu. - (when (not *progress-process*) - (activate-progress *dproc* (progress-screen fuel-cell)) - (if (not *progress-process*) ;; if it doesn't want to activate, back to game. - (set-master-mode 'game) + ;; request the pause mask to be set in prevent-from-run. + ;; this will block any process with pause from running, pausing most game objects. + (if (not *debug-pause*) + (logior! (-> *setting-control* default process-mask) (process-mask pause)) ) + + ;; allow the menu to run. + (logclear! (-> *setting-control* default process-mask) (process-mask menu)) + + ;; ?? + (set! *pause-lock* #f) + (sound-group-pause (sound-group sfx music dialog sog3 ambient sog5 sog6 sog7)) + (hide-progress-screen) ) - ) - (('game) - ;; allow pausable/menu to run. - (logclear! (-> *setting-control* default process-mask) (process-mask pause menu)) - (sound-group-continue (sound-group sfx music dialog sog3 ambient sog5 sog6 sog7)) - (hide-progress-screen) - ) + (('menu) + ;; I believe these masks are just to make the progress go away work. + (logior! (-> *setting-control* default process-mask) (process-mask menu)) + (logclear! (-> *setting-control* default process-mask) (process-mask pause progress)) + (set! *pause-lock* #f) + (hide-progress-screen) + ) + (('progress) + ;; allow menu to run while in progress. + (logclear! (-> *setting-control* default process-mask) (process-mask menu)) + + ;; activate the progress menu. + (when (not *progress-process*) + (activate-progress *dproc* (progress-screen fuel-cell)) + (if (not *progress-process*) + (set-master-mode 'game) + ) + ) + ) + (('game) + ;; allow pausable/menu to run. + (logclear! (-> *setting-control* default process-mask) (process-mask pause menu)) + (if (!= gp-0 *master-mode*) + (sound-group-continue (sound-group sfx music dialog sog3 ambient sog5 sog6 sog7)) + ) + (hide-progress-screen) + ) + ) ) ;; apply settings now. (apply-settings *setting-control*) diff --git a/goal_src/engine/game/powerups.gc b/goal_src/engine/game/powerups.gc index 1aa721767f..dd985f9b6d 100644 --- a/goal_src/engine/game/powerups.gc +++ b/goal_src/engine/game/powerups.gc @@ -558,9 +558,10 @@ (launch-particles :system *sp-particle-system-3d* (-> *part-id-table* 2391) gp-1) ) ) - (let ((f0-8 (lerp-scale 60.0 90.0 (-> self control unknown-float01) 0.0 81920.0))) + ;; PAL patch here + (let ((f0-8 (lerp-scale 80.0 100.0 (-> self control unknown-float01) 0.0 81920.0))) (if (not (ja-group? (-> self draw art-group data 104))) - (set! f0-8 (* 0.75 f0-8)) + (set! f0-8 (* 0.8 f0-8)) ) (seek! (-> self control unknown-float141) f0-8 (* 100.0 (-> *display* seconds-per-frame))) ) diff --git a/goal_src/engine/game/task/process-taskable.gc b/goal_src/engine/game/task/process-taskable.gc index ec7f10017d..2d7f8bff9d 100644 --- a/goal_src/engine/game/task/process-taskable.gc +++ b/goal_src/engine/game/task/process-taskable.gc @@ -75,65 +75,56 @@ (print-game-text (-> obj message) a1-2 #f 128 22) ) ) + ;; PAL patch here (cond ((-> obj only-allow-cancel) (when (-> obj no-msg) (clear *temp-string*) (format *temp-string* "; = ~S" (-> obj no-msg)) - (let* ((s4-0 (-> *display* frames (-> *display* on-screen) frame global-buf)) - (s5-0 (-> s4-0 base)) - ) - (draw-string-xy - *temp-string* - s4-0 - (-> obj x-position) - (+ (-> obj y-position) 5 (-> obj message-space)) - (font-color default) - (font-flags shadow kerning large) - ) - (let ((a3-4 (-> s4-0 base))) - (let ((v1-17 (the-as object (-> s4-0 base)))) - (set! (-> (the-as dma-packet v1-17) dma) (new 'static 'dma-tag :id (dma-tag-id next))) - (set! (-> (the-as dma-packet v1-17) vif0) (new 'static 'vif-tag)) - (set! (-> (the-as dma-packet v1-17) vif1) (new 'static 'vif-tag)) - (set! (-> s4-0 base) (&+ (the-as pointer v1-17) 16)) - ) - (dma-bucket-insert-tag - (-> *display* frames (-> *display* on-screen) frame bucket-group) - (bucket-id debug) - s5-0 - (the-as (pointer dma-tag) a3-4) + (let ((a1-5 (new + 'stack + 'font-context + *font-default-matrix* + (-> obj x-position) + (+ (-> obj y-position) 5 (-> obj message-space)) + 0.0 + (font-color default) + (font-flags shadow kerning) + ) + ) ) + (let ((v1-15 a1-5)) + (set! (-> v1-15 width) (the float 400)) ) + (let ((v1-16 a1-5)) + (set! (-> v1-16 height) (the float 100)) + ) + (set! (-> a1-5 flags) (font-flags shadow kerning large)) + (print-game-text *temp-string* a1-5 #f 128 22) ) ) ) (else - (let* ((s4-1 (-> *display* frames (-> *display* on-screen) frame global-buf)) - (s5-1 (-> s4-1 base)) - ) - (draw-string-xy - (lookup-text! *common-text* (game-text-id confirm) #f) - s4-1 - (-> obj x-position) - (+ (-> obj y-position) 5 (-> obj message-space)) - (font-color default) - (font-flags shadow kerning large) - ) - (let ((a3-7 (-> s4-1 base))) - (let ((v1-29 (the-as object (-> s4-1 base)))) - (set! (-> (the-as dma-packet v1-29) dma) (new 'static 'dma-tag :id (dma-tag-id next))) - (set! (-> (the-as dma-packet v1-29) vif0) (new 'static 'vif-tag)) - (set! (-> (the-as dma-packet v1-29) vif1) (new 'static 'vif-tag)) - (set! (-> s4-1 base) (&+ (the-as pointer v1-29) 16)) - ) - (dma-bucket-insert-tag - (-> *display* frames (-> *display* on-screen) frame bucket-group) - (bucket-id debug) - s5-1 - (the-as (pointer dma-tag) a3-7) + (let ((s5-0 (new + 'stack + 'font-context + *font-default-matrix* + (-> obj x-position) + (+ (-> obj y-position) 5 (-> obj message-space)) + 0.0 + (font-color default) + (font-flags shadow kerning) + ) + ) ) + (let ((v1-22 s5-0)) + (set! (-> v1-22 width) (the float 400)) ) + (let ((v1-23 s5-0)) + (set! (-> v1-23 height) (the float 100)) + ) + (set! (-> s5-0 flags) (font-flags shadow kerning large)) + (print-game-text (lookup-text! *common-text* (game-text-id confirm) #f) s5-0 #f 128 22) ) ) ) diff --git a/goal_src/engine/level/load-boundary.gc b/goal_src/engine/level/load-boundary.gc index 8e56a6bed9..c40c4d251f 100644 --- a/goal_src/engine/level/load-boundary.gc +++ b/goal_src/engine/level/load-boundary.gc @@ -2135,6 +2135,10 @@ ((= v1-4 'setting-unset) (remove-setting! (the-as symbol (command-get-param (car gp-0) #f))) ) + ;; PAL patch here + ((= v1-4 'sfx-volume) + (set-setting! 'sfx-volume (command-get-param (car gp-0) #f) (command-get-float (car (cdr gp-0)) 0.0) 0) + ) ((= v1-4 'blackout) (set-blackout-frames (the int (* 5.0000005 (the float (command-get-int (car gp-0) 0)))) diff --git a/goal_src/engine/sound/gsound.gc b/goal_src/engine/sound/gsound.gc index b81d140a73..eae737b55a 100644 --- a/goal_src/engine/sound/gsound.gc +++ b/goal_src/engine/sound/gsound.gc @@ -150,7 +150,14 @@ 0 ) -(sound-bank-load (static-sound-name "common")) +(case (scf-get-territory) + ((2) + (sound-bank-load (static-sound-name "commonj")) + ) + (else + (sound-bank-load (static-sound-name "common")) + ) + ) (sound-bank-load (static-sound-name "empty1")) (sound-bank-load (static-sound-name "empty2")) @@ -494,11 +501,11 @@ 0 ) -(defun sound-set-fps ((arg0 uint)) +(defun sound-set-fps ((arg0 int)) (let ((cmd (the-as sound-rpc-set-fps (get-sound-buffer-entry)))) (set! (-> cmd command) (sound-command set-fps)) - (set! (-> cmd fps) arg0) + (set! (-> cmd fps) (the-as uint arg0)) ) 0 ) diff --git a/goal_src/engine/sparticle/sparticle-launcher.gc b/goal_src/engine/sparticle/sparticle-launcher.gc index 9425466057..5799419850 100644 --- a/goal_src/engine/sparticle/sparticle-launcher.gc +++ b/goal_src/engine/sparticle/sparticle-launcher.gc @@ -1022,12 +1022,15 @@ (b! (!= (-> a1-4 type) a0-26) cfg-78 :delay (nop!)) ) + ;; PAL patch here ;; ?? - (b! (zero? (logand (-> v1-29 flags) (sp-group-item-flag launch-asap))) + (b! (zero? (logand (-> v1-29 flags) (sp-group-item-flag launch-asap bit6))) cfg-36 :delay (nop!) ) - (when (zero? (logand (-> a3-0 flags) (sp-launch-state-flags particles-active))) + (when (or (zero? (logand (-> a3-0 flags) (sp-launch-state-flags particles-active))) + (logtest? (-> v1-29 flags) (sp-group-item-flag bit6)) + ) ;; particles are not active, lets activate them. (set! (-> a3-0 spawn-time) (the-as uint s4-0)) (logior! (-> a3-0 flags) (sp-launch-state-flags particles-active)) diff --git a/goal_src/engine/target/logic-target.gc b/goal_src/engine/target/logic-target.gc index d96f6113d9..d6d5f68512 100644 --- a/goal_src/engine/target/logic-target.gc +++ b/goal_src/engine/target/logic-target.gc @@ -2026,6 +2026,8 @@ ) (activate-hud self) (set! (-> self fp-hud) (the-as handle #f)) + ;; PAL patch here + (set! (-> self burn-proc) (the-as handle #f)) (set! (-> self water) (new 'process 'water-control self 9 0.0 8192.0 2048.0)) (set! (-> self water flags) (water-flags wt04 wt05 wt06 wt07 wt22)) (reset-target-state #t) diff --git a/goal_src/engine/target/target-death.gc b/goal_src/engine/target/target-death.gc index 8e1621fae4..837d1cb9a2 100644 --- a/goal_src/engine/target/target-death.gc +++ b/goal_src/engine/target/target-death.gc @@ -891,78 +891,87 @@ ) ) ) - (when (= arg0 'attack) - (logior! (-> self state-flags) (state-flags being-attacked)) - (set! (-> self game hit-time) (-> *display* base-frame-counter)) - (case (-> gp-0 mode) - (('endlessfall) - (cond - ((= (-> self game mode) 'debug) - (let ((s4-1 (new-stack-vector0))) - (set! (-> s4-1 quad) (-> self control last-known-safe-ground quad)) - (ja-channel-set! 0) - (let ((s3-1 (-> *display* base-frame-counter))) - (until (>= (- (-> *display* base-frame-counter) s3-1) (seconds 1)) - (suspend) - ) - ) - (move-to-point! (-> self control) s4-1) - ) - (set! (-> (&-> (-> self control) unknown-qword00) 0) (-> self control trans quad)) - (send-event *camera* 'teleport) - (go target-stance) - ) - (else - (pickup-collectable! - (-> self fact-info-target) - (pickup-type eco-green) - (the-as float -1000.0) - (the-as handle #f) + (cond + ((= arg0 'attack) + (logior! (-> self state-flags) (state-flags being-attacked)) + (set! (-> self game hit-time) (-> *display* base-frame-counter)) + (case (-> gp-0 mode) + (('endlessfall) + (cond + ((= (-> self game mode) 'debug) + (let ((s4-1 (new-stack-vector0))) + (set! (-> s4-1 quad) (-> self control last-known-safe-ground quad)) + (ja-channel-set! 0) + (let ((s3-1 (-> *display* base-frame-counter))) + (until (>= (- (-> *display* base-frame-counter) s3-1) (seconds 1)) + (suspend) + ) + ) + (move-to-point! (-> self control) s4-1) ) - (go target-death (-> gp-0 mode)) + (set! (-> (&-> (-> self control) unknown-qword00) 0) (-> self control trans quad)) + (send-event *camera* 'teleport) + (go target-stance) ) - ) - ) - (('drown-death 'sharkey 'lava 'dark-eco-pool 'ogreboss-super-boulder 'melt 'instant-death) - (pickup-collectable! - (-> self fact-info-target) - (pickup-type eco-green) - (the-as float -1000.0) - (the-as handle #f) - ) - (if (= (-> self game mode) 'play) - (go target-death (-> gp-0 mode)) - ) - ) - (('death) - (pickup-collectable! - (-> self fact-info-target) - (pickup-type eco-green) - (the-as float -1000.0) - (the-as handle #f) - ) - ) - (('plant-boss) - (pickup-collectable! - (-> self fact-info-target) - (pickup-type eco-green) - (- (-> *FACT-bank* health-single-inc)) - (the-as handle #f) - ) - (if (and (= (-> self game mode) 'play) (>= 0.0 (-> self fact-info-target health))) - (go target-death (-> gp-0 mode)) - ) - ) - (else + (else + (pickup-collectable! + (-> self fact-info-target) + (pickup-type eco-green) + (the-as float -1000.0) + (the-as handle #f) + ) + (go target-death (-> gp-0 mode)) + ) + ) + ) + (('drown-death 'sharkey 'lava 'dark-eco-pool 'ogreboss-super-boulder 'melt 'instant-death) + (pickup-collectable! + (-> self fact-info-target) + (pickup-type eco-green) + (the-as float -1000.0) + (the-as handle #f) + ) + (if (= (-> self game mode) 'play) + (go target-death (-> gp-0 mode)) + ) + ) + (('death) + (pickup-collectable! + (-> self fact-info-target) + (pickup-type eco-green) + (the-as float -1000.0) + (the-as handle #f) + ) + ) + (('plant-boss) (pickup-collectable! (-> self fact-info-target) (pickup-type eco-green) (- (-> *FACT-bank* health-single-inc)) (the-as handle #f) ) + (if (and (= (-> self game mode) 'play) (>= 0.0 (-> self fact-info-target health))) + (go target-death (-> gp-0 mode)) + ) + ) + (else + (pickup-collectable! + (-> self fact-info-target) + (pickup-type eco-green) + (- (-> *FACT-bank* health-single-inc)) + (the-as handle #f) + ) + ) + ) + (target-hit-effect gp-0) + ) + (else + (case (-> gp-0 mode) + (('burn 'burnup) + (sound-play "get-burned") + ) ) ) - (target-hit-effect gp-0) ) (set! (-> self control unknown-surface00) *smack-mods*) (target-hit-setup-anim gp-0) @@ -1099,6 +1108,18 @@ (('none 'instant-death) ) (('ogreboss-super-boulder) + ;; PAL patch here + (process-spawn + part-tracker + :init part-tracker-init + (-> *part-group-id-table* 32) + -1 + #f + #f + #f + (-> self control trans) + :to *entity-pool* + ) (set! (-> self post-hook) target-no-ja-move-post) (-> self attack-info attacker) (ja-channel-set! 0) diff --git a/goal_src/engine/target/target-h.gc b/goal_src/engine/target/target-h.gc index 0987db9cb9..ef1e15c231 100644 --- a/goal_src/engine/target/target-h.gc +++ b/goal_src/engine/target/target-h.gc @@ -40,11 +40,12 @@ (fp-hud handle :offset-assert 560) (no-load-wait time-frame :offset-assert 568) (no-look-around-wait time-frame :offset-assert 576) + (burn-proc handle :offset-assert 584) ) :heap-base #x1e0 :method-count-assert 21 - :size-assert #x248 - :flag-assert #x1501e00248 + :size-assert #x250 + :flag-assert #x1501e00250 (:methods (find-edge-grabs! (_type_ collide-cache) object 20) ) diff --git a/goal_src/engine/target/target.gc b/goal_src/engine/target/target.gc index 9f655ccbf5..2f051ba5aa 100644 --- a/goal_src/engine/target/target.gc +++ b/goal_src/engine/target/target.gc @@ -1746,8 +1746,27 @@ ) (case arg2 (('launch) + ;; PAL patch here + (set! (-> self control unknown-soundid01) (sound-play "launch-fire")) (ja-no-eval :group! eichar-launch-jump-ja :num! (seek! (ja-aframe (the-as float 16.0) 0)) :frame-num 0.0) (until (ja-done? 0) + (let ((s3-2 (the-as sound-rpc-set-param (get-sound-buffer-entry)))) + (set! (-> s3-2 command) (sound-command set-param)) + (set! (-> s3-2 id) (-> self control unknown-soundid01)) + (let ((a1-5 (ear-trans))) + (let ((s2-1 self)) + (when (= a1-5 #t) + (if (and s2-1 (type-type? (-> s2-1 type) process-drawable) (nonzero? (-> s2-1 control))) + (set! a1-5 (-> s2-1 control trans)) + (set! a1-5 (the-as vector #f)) + ) + ) + ) + (sound-trans-convert (-> s3-2 parms trans) a1-5) + ) + (set! (-> s3-2 parms mask) (sound-mask trans)) + (-> s3-2 id) + ) (suspend) (ja :num! (seek! (ja-aframe (the-as float 16.0) 0))) ) @@ -1785,7 +1804,32 @@ (none) ) :exit target-exit - :trans (-> target-high-jump trans) + ;; PAL patch here + :trans (behavior () + ((-> target-high-jump trans)) + (case (-> self control unknown-int37) + (('launch) + (let ((gp-0 (the-as sound-rpc-set-param (get-sound-buffer-entry)))) + (set! (-> gp-0 command) (sound-command set-param)) + (set! (-> gp-0 id) (-> self control unknown-soundid01)) + (let ((a1-0 (ear-trans))) + (let ((s5-0 self)) + (when (= a1-0 #t) + (if (and s5-0 (type-type? (-> s5-0 type) process-drawable) (nonzero? (-> s5-0 control))) + (set! a1-0 (-> s5-0 control trans)) + (set! a1-0 (the-as vector #f)) + ) + ) + ) + (sound-trans-convert (-> gp-0 parms trans) a1-0) + ) + (set! (-> gp-0 parms mask) (sound-mask trans)) + (-> gp-0 id) + ) + ) + ) + (none) + ) :code (behavior ((arg0 float) (arg1 float) (arg2 symbol)) (let ((f30-0 (the-as float (if (= arg2 'launch) 110.0 diff --git a/goal_src/engine/target/target2.gc b/goal_src/engine/target/target2.gc index 4cf2be00f4..23fc4175f8 100644 --- a/goal_src/engine/target/target2.gc +++ b/goal_src/engine/target/target2.gc @@ -2611,7 +2611,7 @@ (if (nonzero? arg3) (process-spawn-function process - (lambda :behavior target + (lambda :behavior process ((arg0 vector) (arg1 time-frame) (arg2 float)) (local-vars (sv-32 time-frame) (sv-40 vector) (sv-44 symbol)) (set! sv-32 (-> *display* base-frame-counter)) @@ -2627,13 +2627,12 @@ (< (- (-> (the-as target s4-0) control trans y) (-> (the-as target s4-0) control unknown-vector52 y)) arg2) ) (vector-xz-normalize! (-> (the-as target s4-0) control transv) (the-as float 0.0)) - (case (-> (the-as target s4-0) current-level name) - (('jungleb) - (let ((v1-16 (vector-! (new-stack-vector0) (-> (the-as target s4-0) control trans) sv-40))) - (set! (-> (the-as target s4-0) control trans x) (+ (-> sv-40 x) (fmax -4096.0 (fmin 4096.0 (-> v1-16 x))))) - (set! (-> (the-as target s4-0) control trans z) (+ (-> sv-40 z) (fmax -4096.0 (fmin 4096.0 (-> v1-16 z))))) - ) - ) + ;; PAL patch here + (when (< (vector-vector-xz-distance (-> (the-as target s4-0) control trans) sv-40) 20480.0) + (let ((v1-16 (vector-! (new-stack-vector0) (-> (the-as target s4-0) control trans) sv-40))) + (set! (-> (the-as target s4-0) control trans x) (+ (-> sv-40 x) (fmax -2867.2 (fmin 2867.2 (-> v1-16 x))))) + (set! (-> (the-as target s4-0) control trans z) (+ (-> sv-40 z) (fmax -2867.2 (fmin 2867.2 (-> v1-16 z))))) + ) ) ) (else @@ -2677,7 +2676,8 @@ :to self ) ) - (sound-play "launch-fire") + ;; PAL patch (sound plays elsewhere) + ;(sound-play "launch-fire") (go target-high-jump arg0 arg0 'launch) (none) ) @@ -2704,8 +2704,8 @@ :exit (behavior () (target-exit) (set! (-> self cam-user-mode) 'normal) - (logior! (-> self state-flags) (state-flags grabbed)) - (logclear! (-> self state-flags) (state-flags invulnerable)) + ;; PAL patch here + (logclear! (-> self state-flags) (state-flags invulnerable grabbed)) (none) ) :code (behavior ((arg0 handle)) diff --git a/goal_src/engine/ui/credits.gc b/goal_src/engine/ui/credits.gc index da7d977b7f..7433eef742 100644 --- a/goal_src/engine/ui/credits.gc +++ b/goal_src/engine/ui/credits.gc @@ -128,7 +128,7 @@ (set! (-> v1-4 scale) 1.0) ) (set! (-> s5-0 flags) (font-flags shadow kerning middle large)) - (while (or s2-0 (and (< s4-0 (- s3-0)) (< (the-as uint gp-0) (the-as uint 3249)))) + (while (or s2-0 (and (< s4-0 (- s3-0)) (< (the-as uint gp-0) (the-as uint 3262)))) (+! s4-0 s3-0) (+! gp-0 1) (let ((a0-8 (lookup-text! *common-text* (the-as game-text-id gp-0) #t))) @@ -140,7 +140,7 @@ (set! s2-0 #f) ) (cond - ((>= (the-as uint gp-0) (the-as uint 3249)) + ((>= (the-as uint gp-0) (the-as uint 3262)) #t ) (else diff --git a/goal_src/engine/ui/progress/progress-draw.gc b/goal_src/engine/ui/progress/progress-draw.gc index 04d4e02de7..43867915f3 100644 --- a/goal_src/engine/ui/progress/progress-draw.gc +++ b/goal_src/engine/ui/progress/progress-draw.gc @@ -598,16 +598,27 @@ (let ((v1-5 arg0)) (set! (-> v1-5 height) (the float 110)) ) - (let ((s4-0 print-game-text-scaled)) - (format (clear *temp-string*) (lookup-text! *common-text* (game-text-id insert-memcard) #f) 1) - (s4-0 *temp-string* (-> obj transition-percentage-invert) arg0 128) + ;; PAL patch here + (let ((v1-6 (-> obj card-info))) + (when (and (= (-> *setting-control* default language) (language-enum japanese)) v1-6 (zero? (-> v1-6 handle))) + (set! (-> arg0 origin y) -15.0) + (let ((s4-0 print-game-text-scaled)) + (format (clear *temp-string*) (lookup-text! *common-text* (game-text-id memcard-not-inserted) #f) 1) + (s4-0 *temp-string* (-> obj transition-percentage-invert) arg0 128) + ) + (set! (-> arg0 origin y) 53.0) + ) ) - (let ((v1-7 arg0)) - (set! (-> v1-7 scale) 0.65) + (let ((s4-1 print-game-text-scaled)) + (format (clear *temp-string*) (lookup-text! *common-text* (game-text-id insert-memcard) #f) 1) + (s4-1 *temp-string* (-> obj transition-percentage-invert) arg0 128) + ) + (let ((v1-12 arg0)) + (set! (-> v1-12 scale) 0.65) ) (set! (-> arg0 origin y) 130.0) - (let ((v1-8 arg0)) - (set! (-> v1-8 height) (the float 60)) + (let ((v1-13 arg0)) + (set! (-> v1-13 height) (the float 60)) ) (print-game-text-scaled (lookup-text! *common-text* (game-text-id back?) #f) diff --git a/goal_src/engine/ui/progress/progress.gc b/goal_src/engine/ui/progress/progress.gc index 787da31d20..04daef188a 100644 --- a/goal_src/engine/ui/progress/progress.gc +++ b/goal_src/engine/ui/progress/progress.gc @@ -49,6 +49,7 @@ (not (send-event (handle->process (-> *game-info* auto-save-proc)) 'progress-allowed?)) ) (not *target*) + (= *cheat-mode* 'camera) ) ) ) @@ -1067,12 +1068,17 @@ (sound-play "start-options") (set! (-> obj next-display-state) (progress-screen memcard-creating)) ) + ;; PAL & NTSC-J patch here + ((= (-> obj display-state-stack 0) (progress-screen title)) + (sound-play "cursor-options") + (sound-volume-off) + (set! (-> *game-info* mode) 'play) + (initialize! *game-info* 'game (the-as game-save #f) "intro-start") + (set-master-mode 'game) + ) (else (sound-play "cursor-options") - (sound-volume-off) - (set! (-> *game-info* mode) 'play) - (initialize! *game-info* 'game (the-as game-save #f) "intro-start") - (set-master-mode 'game) + (set! (-> obj next-display-state) (progress-screen invalid)) ) ) ) @@ -1163,6 +1169,7 @@ (sound-play "start-options") (set! (-> obj next-display-state) (progress-screen memcard-formatting)) ) + ;; NTSC-J patch here ((= (-> obj display-state-stack 0) (progress-screen title)) (sound-play "start-options") (sound-volume-off) diff --git a/goal_src/engine/ui/text.gc b/goal_src/engine/ui/text.gc index 574f9b7f82..4bfe2cd031 100644 --- a/goal_src/engine/ui/text.gc +++ b/goal_src/engine/ui/text.gc @@ -507,7 +507,8 @@ ) ) (else - (if (= sv-176 95) + ;; PAL patch here + (if (= sv-176 3) (set! sv-176 32) ) (set! (-> *game-text-word* data sv-184) (the-as uint sv-176)) diff --git a/goal_src/levels/beach/beach-obs.gc b/goal_src/levels/beach/beach-obs.gc index cb06ca2d64..a322d1fc6f 100644 --- a/goal_src/levels/beach/beach-obs.gc +++ b/goal_src/levels/beach/beach-obs.gc @@ -1155,7 +1155,8 @@ (set! (-> self state-time) (-> *display* base-frame-counter)) (loop (+! (-> self pos) (* (-> self vel) (-> *display* seconds-per-frame))) - (set! (-> self vel) (* 0.95 (-> self vel))) + ;; PAL patch here + (set! (-> self vel) (* (-> self vel) (- 1.0 (* 0.05 (-> *display* time-adjust-ratio))))) (move! (-> self wobbler)) (let ((a1-0 (new 'stack-no-clear 'vector))) (vector-float*! a1-0 (-> self dir) (-> self pos)) diff --git a/goal_src/levels/beach/mayor.gc b/goal_src/levels/beach/mayor.gc index 53d9039c0b..84c109de5a 100644 --- a/goal_src/levels/beach/mayor.gc +++ b/goal_src/levels/beach/mayor.gc @@ -69,7 +69,13 @@ (close-specific-task! (game-task jungle-lurkerm) (task-status need-reward-speech)) (first-any (-> arg0 tasks) #t) ) - (new 'static 'spool-anim :name "mayor-resolution-beams" :index 7 :parts 6 :command-list '()) + ;; PAL patch here + (new 'static 'spool-anim + :name "mayor-resolution-beams" + :index 7 + :parts 6 + :command-list '((0 setting-unset ambient-volume)) + ) ) (defmethod play-anim! mayor ((obj mayor) (arg0 symbol)) diff --git a/goal_src/levels/citadel/citadel-obs.gc b/goal_src/levels/citadel/citadel-obs.gc index 4bc6d36f59..d1c6ffd9b2 100644 --- a/goal_src/levels/citadel/citadel-obs.gc +++ b/goal_src/levels/citadel/citadel-obs.gc @@ -1326,6 +1326,10 @@ :to *entity-pool* ) (sound-play "sagecage-open") + ;; NTSC-J patch here + ; (if (name= (-> self name) "citb-generator-1") + ; (set-continue! *game-info* "citadel-elevator") + ; ) (go citb-generator-broken) (none) ) diff --git a/goal_src/levels/jungle/fisher.gc b/goal_src/levels/jungle/fisher.gc index 826e31ba9d..f68997ad64 100644 --- a/goal_src/levels/jungle/fisher.gc +++ b/goal_src/levels/jungle/fisher.gc @@ -1349,32 +1349,28 @@ ((< (-> self caught) 0) ) (else - (when (< (mod (-> *display* base-frame-counter) 300) 150) - (let* ((s5-0 (-> *display* frames (-> *display* on-screen) frame global-buf)) - (gp-0 (-> s5-0 base)) - ) - (draw-string-xy - (lookup-text! *common-text* (game-text-id lose!) #f) - s5-0 - 256 - 100 - (font-color orange-red) - (font-flags shadow kerning middle large) - ) - (let ((a3-1 (-> s5-0 base))) - (let ((v1-13 (the-as dma-packet (-> s5-0 base)))) - (set! (-> v1-13 dma) (new 'static 'dma-tag :id (dma-tag-id next))) - (set! (-> v1-13 vif0) (new 'static 'vif-tag)) - (set! (-> v1-13 vif1) (new 'static 'vif-tag)) - (set! (-> s5-0 base) (&+ (the-as pointer v1-13) 16)) - ) - (dma-bucket-insert-tag - (-> *display* frames (-> *display* on-screen) frame bucket-group) - (bucket-id debug) - gp-0 - (the-as (pointer dma-tag) a3-1) + (when (< (mod (-> *display* base-frame-counter) (seconds 1)) (seconds 0.5)) + ;; PAL patch here + (let ((gp-0 (new + 'stack + 'font-context + *font-default-matrix* + 56 + 100 + 0.0 + (font-color orange-red) + (font-flags shadow kerning) + ) + ) ) + (let ((v1-10 gp-0)) + (set! (-> v1-10 width) (the float 400)) ) + (let ((v1-11 gp-0)) + (set! (-> v1-11 height) (the float 50)) + ) + (set! (-> gp-0 flags) (font-flags shadow kerning middle large)) + (print-game-text (lookup-text! *common-text* (game-text-id lose!) #f) gp-0 #f 128 22) ) ) (fisher-draw-display self) diff --git a/goal_src/levels/ogre/flying-lurker.gc b/goal_src/levels/ogre/flying-lurker.gc index eab63b5af5..574371e7d8 100644 --- a/goal_src/levels/ogre/flying-lurker.gc +++ b/goal_src/levels/ogre/flying-lurker.gc @@ -492,7 +492,13 @@ (set! (-> self speed) (+ (* (+ 0.5 f0-12) (- arg2 arg3)) arg3)) ) ) - (set! (-> self y-offset-desired) (fmin 65536.0 (fmax 0.0 (* 1.6 (- 40960.0 (fmin (- f28-0) f30-0)))))) + ;; PAL patch here + (let ((f0-16 65536.0)) + (if (and (< 0.6332 (-> self curve-position)) (< (-> self curve-position) 0.6928)) + (set! f0-16 40960.0) + ) + (set! (-> self y-offset-desired) (fmin f0-16 (fmax 0.0 (* 1.6 (- 40960.0 (fmin (- f28-0) f30-0)))))) + ) ) ) ) diff --git a/goal_src/levels/ogre/ogreboss.gc b/goal_src/levels/ogre/ogreboss.gc index aa867daa6c..0103ed19fa 100644 --- a/goal_src/levels/ogre/ogreboss.gc +++ b/goal_src/levels/ogre/ogreboss.gc @@ -471,15 +471,17 @@ (defbehavior ogreboss-super-boulder-event-handler ogreboss-super-boulder ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block)) (case arg2 - (('touch) + ;; PAL patch here + (('touch 'attack) (when (and *target* ((method-of-type touching-shapes-entry prims-touching?) (the-as touching-shapes-entry (-> arg3 param 0)) (-> self root-override) (the-as uint 1) ) ) - (send-event arg0 'attack (-> arg3 param 0) (static-attack-info ((mode 'ogreboss-super-boulder)))) - (go ogreboss-super-boulder-killed-player) + (if (send-event arg0 'attack-invinc (-> arg3 param 0) (static-attack-info ((mode 'ogreboss-super-boulder)))) + #f + ) ) ) (('effect) @@ -817,7 +819,8 @@ (set! (-> self root-override quat vec quad) (-> self parent-override 0 root quat vec quad)) (vector-identity! (-> self root-override scale)) (initialize-skeleton self *ogreboss-super-boulder-sg* '()) - (logclear! (-> self mask) (process-mask actor-pause)) + ;; PAL patch here + (logclear! (-> self mask) (process-mask actor-pause enemy)) (set! (-> self lava) (entity-actor-lookup (-> self entity) 'water-actor 0)) (logior! (-> self skel effect flags) 1) (set! (-> self draw origin-joint-index) (the-as uint 3)) @@ -1248,14 +1251,15 @@ gp-0 ) -(defbehavior ogreboss-shoot-boulder ogreboss ((arg0 int)) +(defbehavior ogreboss-shoot-boulder ogreboss ((arg0 pickup-type)) + ;; TODO non U1 v1 compatibility!! (let ((gp-0 (new 'stack-no-clear 'ogreboss-missile-init-data))) (let ((s5-0 (new 'stack-no-clear 'vector))) (set! (-> gp-0 src) (-> self node-list data 52 bone transform vector 3)) (set! (-> gp-0 duration) (the-as time-frame (the int (* 300.0 (+ 1.25 (* -0.25 (-> self level)) (/ 0.5 (-> self difficulty)))))) ) - (set! (-> gp-0 pickup-type) (the-as pickup-type arg0)) + (set! (-> gp-0 pickup-type) arg0) (set! (-> gp-0 blast-radius) 32768.0) (cond (*target* @@ -1506,7 +1510,7 @@ (ja :num! (seek! max f30-0)) ) (countdown (gp-1 (+ gp-0 -1)) - (let ((s5-0 0)) + (let ((s5-0 (pickup-type none))) (let ((f28-0 0.0)) (cond ((>= 1.0 (-> *target* fact-info-target health)) @@ -1530,7 +1534,7 @@ ) ) (if (and *target* (< (rand-vu) f28-0)) - (set! s5-0 4) + (set! s5-0 (pickup-type eco-green)) ) ) (ogreboss-shoot-boulder s5-0) @@ -1542,7 +1546,7 @@ ) (ogreboss-inc-try-count) ) - (ogreboss-shoot-boulder 3) + (ogreboss-shoot-boulder (pickup-type eco-blue)) (ja-no-eval :group! ogreboss-attack2-last-ja :num! (seek! max f30-0) :frame-num 0.0) (until (ja-done? 0) (suspend) diff --git a/goal_src/levels/racer_common/target-racer-h.gc b/goal_src/levels/racer_common/target-racer-h.gc index ac26e85fcb..cfa1e5d4e1 100644 --- a/goal_src/levels/racer_common/target-racer-h.gc +++ b/goal_src/levels/racer_common/target-racer-h.gc @@ -161,9 +161,10 @@ ) ) +;; PAL patch here (defskelgroup *balloon-sg* balloon balloon-lod0-jg balloon-idle-ja ((balloon-lod0-mg (meters 20)) (balloon-lod1-mg (meters 999999))) - :bounds (static-spherem 0 1.7 0 3) + :bounds (static-spherem 0 0.3 0 6.3) ) diff --git a/goal_src/levels/rolling/rolling-obs.gc b/goal_src/levels/rolling/rolling-obs.gc index a629482d40..d06e69a281 100644 --- a/goal_src/levels/rolling/rolling-obs.gc +++ b/goal_src/levels/rolling/rolling-obs.gc @@ -706,16 +706,14 @@ (set! (-> arg0 digit 2) (the int f0-3)) (let ((f0-4 (- f0-3 (the float (-> arg0 digit 2))))) (set! (-> arg0 digit 3) (the int (* 10.0 f0-4))) - (let* ((f0-5 (- f0-4 (* 0.1 (the float (-> arg0 digit 3))))) - (v0-0 (the int (* 100.0 f0-5))) - ) - (set! (-> arg0 digit 4) v0-0) - v0-0 + (let ((f0-5 (- f0-4 (* 0.1 (the float (-> arg0 digit 3)))))) + (set! (-> arg0 digit 4) (the int (* 100.0 f0-5))) ) ) ) ) ) + (none) ) (defun race-time->seconds ((arg0 race-time)) @@ -745,24 +743,24 @@ #f ) -(defun race-time-save ((arg0 race-time) (arg1 int) (arg2 task-control)) - (dotimes (s3-0 5) - (save-reminder arg2 (-> arg0 digit s3-0) (+ arg1 s3-0)) +(defun race-time-save ((arg0 race-time) (arg1 task-control)) + (dotimes (s4-0 5) + (save-reminder arg1 (-> arg0 digit s4-0) s4-0) ) #f ) -(defun race-time-read ((arg0 race-time) (arg1 int) (arg2 task-control) (arg3 time-frame)) - (dotimes (s2-0 5) - (set! (-> arg0 digit s2-0) (get-reminder arg2 (+ arg1 s2-0))) +(defun race-time-read ((arg0 race-time) (arg1 task-control) (arg2 time-frame)) + (dotimes (s3-0 5) + (set! (-> arg0 digit s3-0) (get-reminder arg1 s3-0)) ) (let ((a1-3 (new 'stack 'race-time))) (set! (-> a1-3 digit 4) 1) - (the-as symbol (if (race-time-less-than arg0 a1-3) - (seconds->race-time arg0 arg3) - ) - ) + (if (race-time-less-than arg0 a1-3) + (seconds->race-time arg0 arg2) + ) ) + (none) ) (defskelgroup *rolling-start-whole-sg* rolling-start rolling-start-whole-lod0-jg rolling-start-idle-ja @@ -1124,7 +1122,7 @@ *entity-pool* (game-task none) ) - (race-time-save (-> self this-time) 1 (-> self tasks)) + (race-time-save (-> self this-time) (-> self tasks)) ) ) (else @@ -1262,7 +1260,7 @@ (send-event (ppointer->process (-> *hud-parts* fuel-cell)) 'hide) (send-event (ppointer->process (-> *hud-parts* money)) 'disable) (send-event (ppointer->process (-> *hud-parts* money)) 'hide) - (race-time-read (-> self record-time) 1 (-> self tasks) (seconds 45)) + (race-time-read (-> self record-time) (-> self tasks) (seconds 45)) (set! (-> self end-banner) (ppointer->handle (process-spawn rolling-start (new 'static 'vector :x -86016.0 :y 112640.0 :z -6309888.0) 16384.0 :to self) diff --git a/goal_src/levels/snow/snow-flutflut-obs.gc b/goal_src/levels/snow/snow-flutflut-obs.gc index fa512cc4d1..09403e80ee 100644 --- a/goal_src/levels/snow/snow-flutflut-obs.gc +++ b/goal_src/levels/snow/snow-flutflut-obs.gc @@ -44,12 +44,13 @@ (deftype snow-button (process-drawable) - ((root-override collide-shape-moving :offset 112) - (wiggled? symbol :offset-assert 176) - (timeout time-frame :offset-assert 184) - (delay-til-wiggle time-frame :offset-assert 192) - (prev-button entity-actor :offset-assert 200) - (ticker ticky :inline :offset-assert 208) + ((root-override collide-shape-moving :offset 112) + (wiggled? symbol :offset-assert 176) + (trying-for-fuel-cell? symbol :offset-assert 180) + (timeout time-frame :offset-assert 184) + (delay-til-wiggle time-frame :offset-assert 192) + (prev-button entity-actor :offset-assert 200) + (ticker ticky :inline :offset-assert 208) ) :heap-base #x80 :method-count-assert 20 @@ -274,6 +275,8 @@ :enter (behavior () (set! (-> self state-time) (-> *display* base-frame-counter)) (set! (-> self wiggled?) #f) + ;; PAL patch here + (set! (-> self trying-for-fuel-cell?) (not (task-complete? *game-info* (game-task snow-ball)))) (sleep (-> self ticker) (-> self timeout)) (when (-> self prev-button) (let* ((v1-6 (-> self prev-button)) @@ -294,6 +297,11 @@ (if (completed? (-> self ticker)) (go snow-button-deactivate) ) + (when (and (-> self trying-for-fuel-cell?) (task-complete? *game-info* (game-task snow-ball))) + (set! (-> self trying-for-fuel-cell?) #f) + (go snow-button-deactivate) + ) + ;; PAL patch here (when (reached-delay? (-> self ticker) (-> self delay-til-wiggle)) (when (not (-> self wiggled?)) (set! (-> self wiggled?) #t) @@ -406,6 +414,8 @@ (set! (-> obj prev-button) (entity-actor-lookup arg0 'alt-actor 0)) (set! (-> obj prev-button) #f) ) + ;; PAL patch here + (set! (-> obj trying-for-fuel-cell?) (not (task-complete? *game-info* (game-task snow-ball)))) (ja-channel-set! 1) (let ((s5-1 (-> obj skel root-channel 0))) (joint-control-channel-group-eval! @@ -823,7 +833,8 @@ (dummy-22 self) (go elevator-idle-at-fort) ) - (seek! (-> self path-pos) 1.0 (* 0.06666667 (-> *display* seconds-per-frame))) + ;; PAL patch here + (seek! (-> self path-pos) 1.0 (* 0.16 (-> *display* seconds-per-frame))) (eval-path-curve! (-> self path) (-> self basetrans) (-> self path-pos) 'interp) (plat-trans) (dummy-20 self) @@ -880,7 +891,8 @@ (dummy-22 self) (go elevator-idle-at-cave) ) - (seek! (-> self path-pos) 0.0 (* 0.06666667 (-> *display* seconds-per-frame))) + ;; PAL patch here + (seek! (-> self path-pos) 0.0 (* 0.16 (-> *display* seconds-per-frame))) (eval-path-curve! (-> self path) (-> self basetrans) (-> self path-pos) 'interp) (plat-trans) (dummy-20 self) diff --git a/goal_src/levels/swamp/swamp-obs.gc b/goal_src/levels/swamp/swamp-obs.gc index 1a734372fd..e6f3485e49 100644 --- a/goal_src/levels/swamp/swamp-obs.gc +++ b/goal_src/levels/swamp/swamp-obs.gc @@ -472,8 +472,9 @@ ) (defmethod init-from-entity! balance-plat ((obj balance-plat) (arg0 entity-actor)) + ;; PAL patch here. usually-hit-by-player -> hit-by-others (set! (-> obj mask) (logior (process-mask platform) (-> obj mask))) - (let ((s4-0 (new 'process 'collide-shape-moving obj (collide-list-enum usually-hit-by-player)))) + (let ((s4-0 (new 'process 'collide-shape-moving obj (collide-list-enum hit-by-others)))) (set! (-> s4-0 dynam) (copy *standard-dynamics* 'process)) (set! (-> s4-0 reaction) default-collision-reaction) (set! (-> s4-0 no-reaction) diff --git a/goal_src/levels/title/title-obs.gc b/goal_src/levels/title/title-obs.gc index 91f3c3a51f..e6ebcdee8c 100644 --- a/goal_src/levels/title/title-obs.gc +++ b/goal_src/levels/title/title-obs.gc @@ -299,11 +299,14 @@ (send-event (ppointer->process (-> self parent)) 'wait) (send-event self 'update) (ja-channel-set! 1) + ;; PAL patch here (ja-no-eval :group! (-> self draw art-group data 6) :num! (seek!) :frame-num 0.0) (until (ja-done? 0) (logior! (-> self skel status) (janim-status spool)) (suspend) - (ja :num! (seek!)) + (if (not (paused?)) + (ja :num! (seek!)) + ) ) (set! (-> self anim) (-> self next-anim)) (set! (-> self next-anim) @@ -398,11 +401,14 @@ ) (set! *spawn-actors* #f) (ja-channel-set! 1) + ;; PAL patch here (ja-no-eval :group! (-> self draw art-group data 8) :num! (seek!) :frame-num 0.0) (until (ja-done? 0) (logior! (-> self skel status) (janim-status spool)) (suspend) - (ja :num! (seek!)) + (if (not (paused?)) + (ja :num! (seek!)) + ) ) (set! *spawn-actors* #t) (ja-play-spooled-anim @@ -671,13 +677,18 @@ :trans (behavior () (hide-hud-quick) (spool-push *art-control* "ndi-intro" 0 self -1.0) - (sound-group-pause (sound-group music)) + ;; PAL patch here + (if *sound-player-enable* + (sound-group-pause (sound-group music)) + ) (none) ) :code (behavior () (let ((gp-0 (the-as handle #f))) - (case (scf-get-territory) - ((2) + ;; PAL patch here + (cond + ((and (= (scf-get-territory) 2) *first-boot*) + (set! *first-boot* #f) (set! gp-0 (ppointer->handle (static-screen-spawn 5 (new 'static 'texture-id :page #x649) @@ -814,7 +825,7 @@ (remove-setting! 'ambient-volume) (remove-setting! 'sfx-volume) (remove-setting! 'music-volume) - (remove-setting! 'allow-progress) + ;; PAL patch here (code removal) (sound-group-continue (sound-group music)) (when *time-of-day-proc* (set! (-> *time-of-day-proc* 0 time-ratio) 18000.0) @@ -827,15 +838,22 @@ (set! (-> *time-of-day-proc* 0 time-ratio) 300.0) (set! *time-of-day-fast* #f) ) + ;; PAL patch here (remove-setting! 'allow-pause) + (remove-setting! 'allow-progress) ((-> target-title exit)) (none) ) :trans (behavior () (hide-hud-quick) - (if (cpad-pressed? 0 start) - (activate-progress *dproc* (progress-screen title)) - ) + ;; PAL patch here + (when (cpad-pressed? 0 start) + (set-setting! 'allow-progress #t 0.0 0) + (apply-settings *setting-control*) + (activate-progress *dproc* (progress-screen title)) + (set-setting! 'allow-progress #f 0.0 0) + (apply-settings *setting-control*) + ) (when (and (< (mod (-> *display* real-frame-counter) 300) 270) (not *progress-process*)) (let ((gp-0 (new 'stack 'font-context *font-default-matrix* 80 170 0.0 (font-color default) (font-flags shadow kerning)) diff --git a/goal_src/levels/village1/sequence-a-village1.gc b/goal_src/levels/village1/sequence-a-village1.gc index 755db1ef76..5f3a346a1b 100644 --- a/goal_src/levels/village1/sequence-a-village1.gc +++ b/goal_src/levels/village1/sequence-a-village1.gc @@ -74,6 +74,7 @@ ) ) +;; PAL patch here (defpartgroup group-sequenceAV-2d-intro-mist :id 688 :flags (screen-space) @@ -85,7 +86,7 @@ (sp-item 2857 :flags (start-dead)) (sp-item 2857 :flags (start-dead)) (sp-item 2859) - (sp-item 2860) + (sp-item 2860 :flags (bit6)) ) ) @@ -223,12 +224,14 @@ (send-event (handle->process (-> obj boat)) 'anim-mode 'clone-anim) (send-event (handle->process (-> obj boat)) 'origin-joint-index 3) ) + ;; PAL patch here (the-as basic (new 'static 'spool-anim :name "sage-intro-sequence-a" :index 17 :parts 22 :command-list '((0 blackout 0) (0 want-levels village1 misty) + (1120 send-event self pause) (1210 display-level misty display) (1210 want-vis mis) (1210 want-force-vis misty #t) @@ -276,6 +279,13 @@ ) ) ) + ;; PAL patch here + (('pause) + (let ((v0-2 (the-as object (logior (-> self mask) (process-mask pause))))) + (set! (-> self mask) (the-as process-mask v0-2)) + v0-2 + ) + ) ) ) :exit (behavior () diff --git a/goal_src/levels/village1/village-obs.gc b/goal_src/levels/village1/village-obs.gc index 5eb209921b..94916e6f22 100644 --- a/goal_src/levels/village1/village-obs.gc +++ b/goal_src/levels/village1/village-obs.gc @@ -29,6 +29,7 @@ (import "goal_src/import/medres-beach-ag.gc") (import "goal_src/import/reflector-middle-ag.gc") (import "goal_src/import/medres-beach1-ag.gc") +(import "goal_src/import/evilplant-ag.gc") (defskelgroup *med-res-jungle-sg* medres-jungle medres-jungle-lod0-jg medres-jungle-idle-ja ((medres-jungle-lod0-mg (meters 999999))) @@ -520,6 +521,53 @@ (none) ) +;; PAL patch here +(deftype evilplant (process-drawable) + () + :heap-base #x40 + :method-count-assert 21 + :size-assert #xb0 + :flag-assert #x15004000b0 + (:methods + (idle () _type_ :state 20) + ) + ) + +(defmethod inspect evilplant ((obj evilplant)) + (let ((t9-0 (method-of-type process-drawable inspect))) + (t9-0 obj) + ) + obj + ) + +(defskelgroup *evilplant-sg* evilplant evilplant-lod0-jg evilplant-idle-ja + ((evilplant-lod0-mg (meters 999999))) + :bounds (static-spherem 0 1 0 3.8) + ) + +(defstate idle (evilplant) + :virtual #t + :code (behavior () + (loop + (ja-no-eval :group! (ja-group) :num! (seek!) :frame-num 0.0) + (until (ja-done? 0) + (suspend) + (ja :num! (seek!)) + ) + ) + (none) + ) + :post (the-as (function none :behavior evilplant) ja-post) + ) + +(defmethod init-from-entity! evilplant ((obj evilplant) (arg0 entity-actor)) + (set! (-> obj root) (new 'process 'trsqv)) + (process-drawable-from-entity! obj arg0) + (initialize-skeleton obj *evilplant-sg* '()) + (go (method-of-object obj idle)) + (none) + ) + (deftype reflector-middle (process-drawable) ((reflector-trans vector :inline :offset-assert 176) (next-reflector-trans vector :inline :offset-assert 192) diff --git a/goal_src/levels/village1/yakow.gc b/goal_src/levels/village1/yakow.gc index 7005f335e9..79c329f8d7 100644 --- a/goal_src/levels/village1/yakow.gc +++ b/goal_src/levels/village1/yakow.gc @@ -204,12 +204,27 @@ yakow-default-event-handler (if gp-0 (yakow-cam) ) - (level-hint-spawn - (game-text-id yakow-owed-powercell) - "sksp018a" - (the-as entity #f) - *entity-pool* - (game-task none) + ;; PAL patch here + (process-spawn-function + process + (lambda :behavior process + () + (while (or (-> *setting-control* current ambient) + (-> *setting-control* current movie) + (-> *setting-control* current hint) + ) + (suspend) + ) + (level-hint-spawn + (game-text-id yakow-owed-powercell) + "sksp018a" + (the-as entity #f) + *entity-pool* + (game-task none) + ) + (none) + ) + :to self ) ) (else diff --git a/scripts/batch/decomp-jak1_jp.bat b/scripts/batch/decomp-jak1_jp.bat new file mode 100644 index 0000000000..c817d73ace --- /dev/null +++ b/scripts/batch/decomp-jak1_jp.bat @@ -0,0 +1,4 @@ +@echo off +cd ..\.. +out\build\Release\bin\decompiler decompiler\config\jak1_jp.jsonc iso_data decompiler_out\ +pause diff --git a/scripts/batch/decomp-jak1pal.bat b/scripts/batch/decomp-jak1_pal.bat similarity index 67% rename from scripts/batch/decomp-jak1pal.bat rename to scripts/batch/decomp-jak1_pal.bat index d835ad154c..d8584f8305 100644 --- a/scripts/batch/decomp-jak1pal.bat +++ b/scripts/batch/decomp-jak1_pal.bat @@ -1,4 +1,4 @@ @echo off cd ..\.. -out\build\Release\bin\decompiler decompiler\config\jak1_pal.jsonc iso_data\jak1pal decompiler_out\jak1pal +out\build\Release\bin\decompiler decompiler\config\jak1_pal.jsonc iso_data decompiler_out\ pause diff --git a/scripts/batch/repo-settings-mark.bat b/scripts/batch/repo-settings-mark.bat index d44608d553..b112fa806b 100644 --- a/scripts/batch/repo-settings-mark.bat +++ b/scripts/batch/repo-settings-mark.bat @@ -1,2 +1,2 @@ cd ..\.. -git update-index --assume-unchanged decompiler\config\jak1_ntsc_black_label.jsonc decompiler\config\jak1_ntsc_black_label\inputs.jsonc +git update-index --assume-unchanged decompiler\config\jak1_ntsc_black_label.jsonc diff --git a/scripts/batch/repo-settings-unmark.bat b/scripts/batch/repo-settings-unmark.bat index bf3eee7899..75b2a4777c 100644 --- a/scripts/batch/repo-settings-unmark.bat +++ b/scripts/batch/repo-settings-unmark.bat @@ -1,2 +1,2 @@ cd ..\.. -git update-index --no-assume-unchanged decompiler\config\jak1_ntsc_black_label.jsonc decompiler\config\jak1_ntsc_black_label\inputs.jsonc +git update-index --no-assume-unchanged decompiler\config\jak1_ntsc_black_label.jsonc diff --git a/test/decompiler/reference/engine/collide/collide-target-h_REF.gc b/test/decompiler/reference/engine/collide/collide-target-h_REF.gc index 057111ca29..0b862838e5 100644 --- a/test/decompiler/reference/engine/collide/collide-target-h_REF.gc +++ b/test/decompiler/reference/engine/collide/collide-target-h_REF.gc @@ -158,6 +158,7 @@ (unknown-uint30 uint32 :offset 2188) (unknown-float121 float :offset 2188) (unknown-uint31 uint32 :offset 2192) + (unknown-int37 int32 :offset 2192) (unknown-float122 float :offset 2196) (unknown-float123 float :offset 2200) (unknown-float124 float :offset 2204) @@ -195,10 +196,14 @@ (wall-pat pat-surface :offset 18976) (unknown-soundid00 sound-id :offset 18980) (unknown-float141 float :offset 18984) + (unknown-soundid01 sound-id :offset 18988) + (unknown-int34 int32 :offset 18992) + (unknown-int35 int32 :offset 18996) + (unknown-int36 int32 :offset 19000) ) :method-count-assert 65 - :size-assert #x4a2c - :flag-assert #x4100004a2c + :size-assert #x4a3c + :flag-assert #x4100004a3c ) ;; definition for method 9 of type collide-history diff --git a/test/decompiler/reference/engine/target/target-h_REF.gc b/test/decompiler/reference/engine/target/target-h_REF.gc index 45fec658fa..55670afd8a 100644 --- a/test/decompiler/reference/engine/target/target-h_REF.gc +++ b/test/decompiler/reference/engine/target/target-h_REF.gc @@ -29,11 +29,12 @@ (fp-hud handle :offset-assert 560) (no-load-wait time-frame :offset-assert 568) (no-look-around-wait time-frame :offset-assert 576) + (burn-proc handle :offset-assert 584) ) :heap-base #x1e0 :method-count-assert 21 - :size-assert #x248 - :flag-assert #x1501e00248 + :size-assert #x250 + :flag-assert #x1501e00250 (:methods (find-edge-grabs! (_type_ collide-cache) object 20) ) diff --git a/test/decompiler/reference/engine/target/target2_REF.gc b/test/decompiler/reference/engine/target/target2_REF.gc index 9a6de8309e..ee59a37837 100644 --- a/test/decompiler/reference/engine/target/target2_REF.gc +++ b/test/decompiler/reference/engine/target/target2_REF.gc @@ -2664,7 +2664,7 @@ (if (nonzero? arg3) (process-spawn-function process - (lambda :behavior target + (lambda :behavior process ((arg0 vector) (arg1 time-frame) (arg2 float)) (local-vars (sv-32 time-frame) (sv-40 vector) (sv-44 symbol)) (set! sv-32 (-> *display* base-frame-counter)) diff --git a/test/decompiler/reference/levels/ogre/ogreboss_REF.gc b/test/decompiler/reference/levels/ogre/ogreboss_REF.gc index c0d7530345..2a13424ffd 100644 --- a/test/decompiler/reference/levels/ogre/ogreboss_REF.gc +++ b/test/decompiler/reference/levels/ogre/ogreboss_REF.gc @@ -1349,14 +1349,14 @@ ;; definition for function ogreboss-shoot-boulder ;; INFO: Return type mismatch int vs none. ;; Used lq/sq -(defbehavior ogreboss-shoot-boulder ogreboss ((arg0 int)) +(defbehavior ogreboss-shoot-boulder ogreboss ((arg0 pickup-type)) (let ((gp-0 (new 'stack-no-clear 'ogreboss-missile-init-data))) (let ((s5-0 (new 'stack-no-clear 'vector))) (set! (-> gp-0 src) (-> self node-list data 52 bone transform vector 3)) (set! (-> gp-0 duration) (the-as time-frame (the int (* 300.0 (+ 1.25 (* -0.25 (-> self level)) (/ 0.5 (-> self difficulty)))))) ) - (set! (-> gp-0 pickup-type) (the-as pickup-type arg0)) + (set! (-> gp-0 pickup-type) arg0) (set! (-> gp-0 blast-radius) 32768.0) (cond (*target* @@ -1620,7 +1620,7 @@ (ja :num! (seek! max f30-0)) ) (countdown (gp-1 (+ gp-0 -1)) - (let ((s5-0 0)) + (let ((boulder-pickup (pickup-type none))) (let ((f28-0 0.0)) (cond ((>= 1.0 (-> *target* fact-info-target health)) @@ -1644,10 +1644,10 @@ ) ) (if (and *target* (< (rand-vu) f28-0)) - (set! s5-0 4) + (set! boulder-pickup (pickup-type eco-green)) ) ) - (ogreboss-shoot-boulder s5-0) + (ogreboss-shoot-boulder (the-as pickup-type boulder-pickup)) ) (ja-no-eval :group! ogreboss-attack2-loop-ja :num! (seek! max f30-0) :frame-num 0.0) (until (ja-done? 0) @@ -1656,7 +1656,7 @@ ) (ogreboss-inc-try-count) ) - (ogreboss-shoot-boulder 3) + (ogreboss-shoot-boulder (pickup-type eco-blue)) (ja-no-eval :group! ogreboss-attack2-last-ja :num! (seek! max f30-0) :frame-num 0.0) (until (ja-done? 0) (suspend) diff --git a/test/decompiler/reference/levels/rolling/rolling-obs_REF.gc b/test/decompiler/reference/levels/rolling/rolling-obs_REF.gc index fa234b1418..ae2e0532b1 100644 --- a/test/decompiler/reference/levels/rolling/rolling-obs_REF.gc +++ b/test/decompiler/reference/levels/rolling/rolling-obs_REF.gc @@ -819,6 +819,7 @@ ) ;; definition for function seconds->race-time +;; INFO: Return type mismatch int vs none. (defun seconds->race-time ((arg0 race-time) (arg1 time-frame)) (let* ((v1-1 (max 0 (min #x2bf1d arg1))) (f0-1 (* 0.0033333334 (the float v1-1))) @@ -830,16 +831,14 @@ (set! (-> arg0 digit 2) (the int f0-3)) (let ((f0-4 (- f0-3 (the float (-> arg0 digit 2))))) (set! (-> arg0 digit 3) (the int (* 10.0 f0-4))) - (let* ((f0-5 (- f0-4 (* 0.1 (the float (-> arg0 digit 3))))) - (v0-0 (the int (* 100.0 f0-5))) - ) - (set! (-> arg0 digit 4) v0-0) - v0-0 + (let ((f0-5 (- f0-4 (* 0.1 (the float (-> arg0 digit 3)))))) + (set! (-> arg0 digit 4) (the int (* 100.0 f0-5))) ) ) ) ) ) + (none) ) ;; definition for function race-time->seconds @@ -872,27 +871,40 @@ ) ;; definition for function race-time-save -(defun race-time-save ((arg0 race-time) (arg1 int) (arg2 task-control)) - (dotimes (s3-0 5) - (save-reminder arg2 (-> arg0 digit s3-0) (+ arg1 s3-0)) +;; WARN: Type Propagation failed: Failed type prop at op 6 ((set! v1 (l.wu (+ a0 -4)))): Could not get type of load: (set! v1 (l.wu (+ a0 -4))). +;; WARN: Type Propagation failed: Type analysis failed +;; WARN: Function may read a register that is not set: a2 +(defun race-time-save ((a0-0 race-time) (a1-0 task-control)) + (local-vars + (v0-0 none) + (v0-1 symbol) + (v1-0 none) + (v1-1 none) + (a0-1 none) + (a1-1 none) + (a2-0 none) + (a2-1 none) + (s3-0 int) + (t9-0 none) ) - #f + (set! s3-0 0) + (while (<.si s3-0 5) + (set! a0-1 a2-0) + (set! v1-0 (the-as none (l.wu (+ a0-1 -4)))) + (set! t9-0 (the-as none (l.wu (+ v1-0 84)))) + (set! v1-1 (the-as none (+ s3-0 a0-0))) + (set! a1-1 (the-as none (l.b v1-1))) + (set! a2-1 (the-as none (+ a1-0 s3-0))) + (call!) + (set! v1-2 (the-as none v0-0)) + (set! s3-0 (the-as int (+ s3-0 1))) + ) + (set! v0-1 #f) + (ret-value v0-1) ) ;; definition for function race-time-read -;; INFO: Return type mismatch int vs symbol. -(defun race-time-read ((arg0 race-time) (arg1 int) (arg2 task-control) (arg3 time-frame)) - (dotimes (s2-0 5) - (set! (-> arg0 digit s2-0) (get-reminder arg2 (+ arg1 s2-0))) - ) - (let ((a1-3 (new 'stack 'race-time))) - (set! (-> a1-3 digit 4) 1) - (the-as symbol (if (race-time-less-than arg0 a1-3) - (seconds->race-time arg0 arg3) - ) - ) - ) - ) +;; ERROR: function was not converted to expressions. Cannot decompile. ;; failed to figure out what this is: (defskelgroup *rolling-start-whole-sg* rolling-start rolling-start-whole-lod0-jg rolling-start-idle-ja @@ -1331,7 +1343,13 @@ *entity-pool* (game-task none) ) - (race-time-save (-> self this-time) 1 (-> self tasks)) + (let ((t9-14 race-time-save) + (a0-20 (-> self this-time)) + (a1-13 1) + ) + (-> self tasks) + (t9-14 a0-20 (the-as task-control a1-13)) + ) ) ) (else @@ -1475,7 +1493,14 @@ (send-event (ppointer->process (-> *hud-parts* fuel-cell)) 'hide) (send-event (ppointer->process (-> *hud-parts* money)) 'disable) (send-event (ppointer->process (-> *hud-parts* money)) 'hide) - (race-time-read (-> self record-time) 1 (-> self tasks) (seconds 45)) + (let ((t9-5 race-time-read) + (a0-8 (-> self record-time)) + (a1-5 1) + (a2-1 (-> self tasks)) + ) + #x34bc + (t9-5 a0-8 (the-as task-control a1-5) (the-as time-frame a2-1)) + ) (set! (-> self end-banner) (ppointer->handle (process-spawn rolling-start (new 'static 'vector :x -86016.0 :y 112640.0 :z -6309888.0) 16384.0 :to self) diff --git a/test/decompiler/reference/levels/snow/snow-flutflut-obs_REF.gc b/test/decompiler/reference/levels/snow/snow-flutflut-obs_REF.gc index cafd54a405..553bf2380b 100644 --- a/test/decompiler/reference/levels/snow/snow-flutflut-obs_REF.gc +++ b/test/decompiler/reference/levels/snow/snow-flutflut-obs_REF.gc @@ -58,12 +58,13 @@ ;; definition of type snow-button (deftype snow-button (process-drawable) - ((root-override collide-shape-moving :offset 112) - (wiggled? symbol :offset-assert 176) - (timeout time-frame :offset-assert 184) - (delay-til-wiggle time-frame :offset-assert 192) - (prev-button entity-actor :offset-assert 200) - (ticker ticky :inline :offset-assert 208) + ((root-override collide-shape-moving :offset 112) + (wiggled? symbol :offset-assert 176) + (trying-for-fuel-cell? symbol :offset-assert 180) + (timeout time-frame :offset-assert 184) + (delay-til-wiggle time-frame :offset-assert 192) + (prev-button entity-actor :offset-assert 200) + (ticker ticky :inline :offset-assert 208) ) :heap-base #x80 :method-count-assert 20 diff --git a/test/offline/config.jsonc b/test/offline/config.jsonc index e55dd5a7e3..224a8abc4e 100644 --- a/test/offline/config.jsonc +++ b/test/offline/config.jsonc @@ -248,7 +248,9 @@ /// GLIST // i dont even want to know "glst-find-node-by-name", - "glst-length-of-longest-name" + "glst-length-of-longest-name", + + "race-time-save" ], "skip_compile_states": { diff --git a/third-party/xdelta3/CMakeLists.txt b/third-party/xdelta3/CMakeLists.txt new file mode 100644 index 0000000000..d335c0d4d3 --- /dev/null +++ b/third-party/xdelta3/CMakeLists.txt @@ -0,0 +1,2 @@ +add_library(xdelta3 xdelta3.c) + diff --git a/third-party/xdelta3/xdelta3.c b/third-party/xdelta3/xdelta3.c new file mode 100644 index 0000000000..3a56b2caa6 --- /dev/null +++ b/third-party/xdelta3/xdelta3.c @@ -0,0 +1,2 @@ +#include "third-party/xdelta3/xdelta3.h" +#include "third-party/xdelta3/xdelta3/xdelta3.c" \ No newline at end of file diff --git a/third-party/xdelta3/xdelta3.h b/third-party/xdelta3/xdelta3.h new file mode 100644 index 0000000000..bec82e614b --- /dev/null +++ b/third-party/xdelta3/xdelta3.h @@ -0,0 +1,13 @@ +#pragma once + +#define SIZEOF_SIZE_T 8 +#define SIZEOF_UNSIGNED_LONG_LONG 8 + +#ifdef __cplusplus +extern "C" { +#endif +#include // missing in xdelta3 +#include "third-party/xdelta3/xdelta3/xdelta3.h" +#ifdef __cplusplus +} +#endif \ No newline at end of file