From 0ab916e122982d89b4760a918843348538ef5403 Mon Sep 17 00:00:00 2001 From: water111 <48171810+water111@users.noreply.github.com> Date: Wed, 12 May 2021 21:57:19 -0400 Subject: [PATCH] fix quote issue and decompile level-info (#474) --- common/goos/PrettyPrinter.cpp | 24 +- decompiler/util/data_decompile.cpp | 67 +- decompiler/util/data_decompile.h | 3 +- docs/markdown/progress-notes/changelog.md | 4 +- goal_src/engine/level/level-info.gc | 2007 ++++++++++ goalc/compiler/compilation/Static.cpp | 18 +- scripts/decomp_progress.py | 84 +- .../reference/all_forward_declarations.gc | 25 +- .../reference/engine/level/level-info_REF.gc | 3501 +++++++++++++++++ .../reference/kernel/gkernel_REF.gc | 11 +- test/decompiler/test_DataParser.cpp | 2 +- 11 files changed, 5673 insertions(+), 73 deletions(-) create mode 100644 test/decompiler/reference/engine/level/level-info_REF.gc diff --git a/common/goos/PrettyPrinter.cpp b/common/goos/PrettyPrinter.cpp index a6d5acb3e8..31d4cde00d 100644 --- a/common/goos/PrettyPrinter.cpp +++ b/common/goos/PrettyPrinter.cpp @@ -49,7 +49,8 @@ struct FormToken { DOT, CLOSE_PAREN, EMPTY_PAIR, - SPECIAL_STRING // has different alignment rules than STRING + SPECIAL_STRING, // has different alignment rules than STRING + QUOTE } kind; explicit FormToken(TokenKind _kind, std::string _str = "") : kind(_kind), str(std::move(_str)) {} @@ -79,6 +80,9 @@ struct FormToken { case TokenKind::SPECIAL_STRING: s.append(str); break; + case TokenKind::QUOTE: + s.push_back('\''); + break; default: throw std::runtime_error("toString unknown token kind"); } @@ -110,6 +114,18 @@ void add_to_token_list(const goos::Object& obj, std::vector* tokens) // it's important to break the pair up into smaller tokens which can then be split // across lines. case goos::ObjectType::PAIR: { + // look for a (quote x) to print as 'x + + auto& first = obj.as_pair()->car; + if (first.is_symbol() && first.as_symbol()->name == "quote") { + auto& second = obj.as_pair()->cdr; + if (second.is_pair() && second.as_pair()->cdr.is_empty_list()) { + tokens->emplace_back(FormToken::TokenKind::QUOTE); + add_to_token_list(second.as_pair()->car, tokens); + return; + } + } + tokens->emplace_back(FormToken::TokenKind::OPEN_PAREN); auto* to_print = &obj; for (;;) { @@ -212,6 +228,9 @@ struct NodePool { * node. */ void insertNewlineAfter(NodePool& pool, PrettyPrinterNode* node, int specialIndentDelta) { + while (node->tok && node->tok->kind == FormToken::TokenKind::QUOTE && node->next) { + node = node->next; + } if (node->next && !node->next->is_line_separator) { auto* nl = pool.allocate(); auto* next = node->next; @@ -229,6 +248,9 @@ void insertNewlineAfter(NodePool& pool, PrettyPrinterNode* node, int specialInde * first node. */ void insertNewlineBefore(NodePool& pool, PrettyPrinterNode* node, int specialIndentDelta) { + while (node->prev && node->prev->tok && node->prev->tok->kind == FormToken::TokenKind::QUOTE) { + node = node->prev; + } if (node->prev && !node->prev->is_line_separator) { auto* nl = pool.allocate(); auto* prev = node->prev; diff --git a/decompiler/util/data_decompile.cpp b/decompiler/util/data_decompile.cpp index c18ef210d0..f8ccd0f473 100644 --- a/decompiler/util/data_decompile.cpp +++ b/decompiler/util/data_decompile.cpp @@ -149,7 +149,7 @@ goos::Object decompile_at_label(const TypeSpec& type, } if (type == TypeSpec("pair")) { - return decompile_pair(label, labels, words, ts); + return decompile_pair(label, labels, words, ts, true); } throw std::runtime_error("Unimplemented decompile_at_label for " + type.print()); @@ -237,6 +237,19 @@ goos::Object decompile_value_array(const TypeSpec& elt_type, return pretty_print::build_list(array_def); } +namespace { +std::string print_def(const goos::Object& obj) { + if (obj.is_pair() && obj.as_pair()->car.is_symbol() && + obj.as_pair()->car.as_symbol()->name == "quote") { + auto& rest = obj.as_pair()->cdr; + if (rest.is_pair() && rest.as_pair()->cdr.is_empty_list()) { + return fmt::format("'{}", rest.as_pair()->car.print()); + } + } + return obj.print(); +} +} // namespace + goos::Object decompile_structure(const TypeSpec& type, const DecompilerLabel& label, const std::vector& labels, @@ -255,11 +268,11 @@ goos::Object decompile_structure(const TypeSpec& type, // check alignment auto offset_location = label.offset - type_info->get_offset(); - if ((offset_location % 8) == 2) { - // TEMP HACK - lg::error("Data decompile was looking for a structure, but it looks like a pair instead."); - return decompile_pair(label, labels, words, ts); - } + // if ((offset_location % 8) == 2) { + // // TEMP HACK + // lg::error("Data decompile was looking for a structure, but it looks like a pair instead."); + // return decompile_pair(label, labels, words, ts); + // } if (offset_location % 8) { throw std::runtime_error( fmt::format("Structure type {} (type offset {}) has alignment {}, which is not valid.", @@ -526,7 +539,7 @@ goos::Object decompile_structure(const TypeSpec& type, auto str = f.second.print(); if (str.length() < 40) { result_def.push_back( - pretty_print::to_symbol(fmt::format(":{} {}", f.first, f.second.print()))); + pretty_print::to_symbol(fmt::format(":{} {}", f.first, print_def(f.second)))); } else { result_def.push_back(pretty_print::to_symbol(fmt::format(":{}", f.first))); result_def.push_back(f.second); @@ -741,16 +754,23 @@ goos::Object decompile_pair_elt(const LinkedWord& word, const std::vector>& words, const TypeSystem& ts) { if (word.kind == LinkedWord::PTR) { - return decompile_at_label_guess_type(labels.at(word.label_id), labels, words, ts); + auto& label = labels.at(word.label_id); + auto guessed_type = get_type_of_label(label, words); + if (!guessed_type.has_value()) { + throw std::runtime_error("Could not guess the type of " + label.name); + } + + if (guessed_type == TypeSpec("pair")) { + return decompile_pair(label, labels, words, ts, false); + } + + return decompile_at_label(*guessed_type, label, labels, words, ts); } else if (word.kind == LinkedWord::PLAIN_DATA && word.data == 0) { // do nothing, the default is zero? return pretty_print::to_symbol("0"); } else if (word.kind == LinkedWord::SYM_PTR) { - if (word.symbol_name == "#f" || word.symbol_name == "#t") { - return pretty_print::to_symbol(fmt::format("{}", word.symbol_name)); - } else { - return pretty_print::to_symbol(fmt::format("'{}", word.symbol_name)); - } + // never quote symbols in a list. + return pretty_print::to_symbol(fmt::format("{}", word.symbol_name)); } else if (word.kind == LinkedWord::EMPTY_PTR) { return pretty_print::to_symbol("'()"); } else if (word.kind == LinkedWord::PLAIN_DATA && (word.data & 0b111) == 0) { @@ -764,7 +784,8 @@ goos::Object decompile_pair_elt(const LinkedWord& word, goos::Object decompile_pair(const DecompilerLabel& label, const std::vector& labels, const std::vector>& words, - const TypeSystem& ts) { + const TypeSystem& ts, + bool add_quote) { if ((label.offset % 8) != 2) { if ((label.offset % 4) != 0) { throw std::runtime_error(fmt::format("Invalid alignment for pair {}\n", label.offset % 16)); @@ -796,7 +817,11 @@ goos::Object decompile_pair(const DecompilerLabel& label, auto cdr_word = words.at(to_print.target_segment).at((to_print.offset + 2) / 4); // if empty if (cdr_word.kind == LinkedWord::EMPTY_PTR) { - return pretty_print::build_list("quote", pretty_print::build_list(list_tokens)); + if (add_quote) { + return pretty_print::build_list("quote", pretty_print::build_list(list_tokens)); + } else { + return pretty_print::build_list(list_tokens); + } } // if pointer if (cdr_word.kind == LinkedWord::PTR) { @@ -810,7 +835,11 @@ goos::Object decompile_pair(const DecompilerLabel& label, "could not find a test case yet."); list_tokens.push_back(pretty_print::to_symbol(".")); list_tokens.push_back(decompile_pair_elt(cdr_word, labels, words, ts)); - return pretty_print::build_list("quote", pretty_print::build_list(list_tokens)); + if (add_quote) { + return pretty_print::build_list("quote", pretty_print::build_list(list_tokens)); + } else { + return pretty_print::build_list(list_tokens); + } } else { if ((to_print.offset % 4) != 0) { throw std::runtime_error( @@ -829,7 +858,11 @@ goos::Object decompile_pair(const DecompilerLabel& label, list_tokens.push_back(pretty_print::to_symbol(".")); list_tokens.push_back(decompile_pair_elt( words.at(to_print.target_segment).at(to_print.offset / 4), labels, words, ts)); - return pretty_print::build_list("quote", pretty_print::build_list(list_tokens)); + if (add_quote) { + return pretty_print::build_list("quote", pretty_print::build_list(list_tokens)); + } else { + return pretty_print::build_list(list_tokens); + } } } } diff --git a/decompiler/util/data_decompile.h b/decompiler/util/data_decompile.h index c0f7419a27..a57df18198 100644 --- a/decompiler/util/data_decompile.h +++ b/decompiler/util/data_decompile.h @@ -37,7 +37,8 @@ goos::Object decompile_structure(const TypeSpec& actual_type, goos::Object decompile_pair(const DecompilerLabel& label, const std::vector& labels, const std::vector>& words, - const TypeSystem& ts); + const TypeSystem& ts, + bool add_quote); goos::Object decompile_boxed_array(const DecompilerLabel& label, const std::vector& labels, const std::vector>& words, diff --git a/docs/markdown/progress-notes/changelog.md b/docs/markdown/progress-notes/changelog.md index ef6b3d915a..804fc08af5 100644 --- a/docs/markdown/progress-notes/changelog.md +++ b/docs/markdown/progress-notes/changelog.md @@ -143,4 +143,6 @@ - Added `.psubw` assembly form - Changed `.ftoi` to `VCVTTPS2DQ` to make the rounding behavior match the PS2 (truncate). - Forward declaring a type with `declare-type` also forward declares the global holding the runtime type object. -- The `new` method of basic now has a method return type of `_type_`. Previously it was `basic`, meaning you always needed to declare `new` with the right type. \ No newline at end of file +- The `new` method of basic now has a method return type of `_type_`. Previously it was `basic`, meaning you always needed to declare `new` with the right type. +- Using `(new` and `(the binteger` inside static pair definitions is now supported +- Invalid static pairs now have nice errors instead of exiting the compiler \ No newline at end of file diff --git a/goal_src/engine/level/level-info.gc b/goal_src/engine/level/level-info.gc index 7aebb2bc20..243d81bd15 100644 --- a/goal_src/engine/level/level-info.gc +++ b/goal_src/engine/level/level-info.gc @@ -5,3 +5,2010 @@ ;; name in dgo: level-info ;; dgos: GAME, ENGINE +(define training + (new 'static 'level-load-info + :name-list (new 'static 'array basic 3 'training 'training-vis 'tra) + :index 1 + :packages '(training) + :sound-banks '(training) + :music-bank 'village1 + :ambient-sounds '() + :mood '*training-mood* + :mood-func 'update-mood-training + :ocean '*ocean-map-village1* + :sky #t + :sun-fade 1.0 + :continues + '( + (new 'static 'continue-point + :name "training-start" + :level 'training + :trans (new 'static 'vector :x -5393626.5 :y 28072.346 :z 4332472.5 :w 1.0) + :quat (new 'static 'vector :y 0.9995 :w 0.0297) + :camera-trans (new 'static 'vector :x -5426915.0 :y 45930.906 :z 4353156.0 :w 1.0) + :camera-rot + (new 'static 'array float 9 -0.5571 0.0 -0.8304 0.1264 0.9883 -0.0848 0.8207 -0.1522 -0.5506) + :load-commands '((special "med-res-level-1" #t) + (special "med-res-level-2" #t) + (special "med-res-level-4" #t) + (special "med-res-level-6" #t) + (special "med-res-level-7" #t) + (special "med-res-level-8" #t) + (special "med-res-level-9" #t) + (special "med-res-level-14" #t) + (special "med-res-level-22" #t) + (special "med-res-level-23" #t) + ) + :vis-nick 'tra + :lev0 'training + :disp0 'display + :lev1 'village1 + :disp1 'special + ) + (new 'static 'continue-point + :name "training-warp" + :level 'training + :flags #x4 + :trans (new 'static 'vector :x -5383524.0 :y 28019.098 :z 4360302.0 :w 1.0) + :quat (new 'static 'vector :y 0.084 :w 0.9964) + :camera-trans + (new 'static 'vector :x -5366765.0 :y 45646.234 :z 4325889.0 :w 1.0) + :camera-rot (new 'static 'array float 9 0.9057 0.0 0.4238 -0.0666 0.9875 0.1424 -0.4186 -0.1572 0.8944) + :load-commands '((special "med-res-level-1" #t) + (special "med-res-level-2" #t) + (special "med-res-level-4" #t) + (special "med-res-level-6" #t) + (special "med-res-level-7" #t) + (special "med-res-level-8" #t) + (special "med-res-level-9" #t) + (special "med-res-level-14" #t) + (special "med-res-level-22" #t) + (special "med-res-level-23" #t) + ) + :vis-nick 'tra + :lev0 'training + :disp0 'display + :lev1 'village1 + :disp1 'special + ) + (new 'static 'continue-point + :name "game-start" + :level 'training + :flags #x404 + :trans (new 'static 'vector :x -5393740.5 :y 28259.533 :z 4360945.5 :w 1.0) + :quat (new 'static 'vector :y 0.9993 :w 0.0359) + :camera-trans (new 'static 'vector :x -5434444.5 :y 47050.344 :z 4372832.5 :w 1.0) + :camera-rot (new 'static 'array float 9 -0.3536 0.0 -0.9353 0.1315 0.99 -0.0497 0.926 -0.1406 -0.35) + :load-commands + '((special "med-res-level-1" #t) + (special "med-res-level-2" #t) + (special "med-res-level-4" #t) + (special "med-res-level-6" #t) + (special "med-res-level-7" #t) + (special "med-res-level-8" #t) + (special "med-res-level-9" #t) + (special "med-res-level-14" #t) + (special "med-res-level-22" #t) + (special "med-res-level-23" #t) + ) + :vis-nick 'tra + :lev0 'training + :disp0 'display + :lev1 'village1 + :disp1 'special + ) + ) + :tasks '((the binteger 92) (the binteger 93) (the binteger 94) (the binteger 95)) + :priority 100 + :load-commands '() + :alt-load-commands '() + :bsp-mask #xffffffffffffffff + :bsphere (new 'static 'sphere :x -5079040.0 :z 4055040.0 :w 1024000.0) + :buzzer 95 + :bottom-height -466944.0 + :run-packages '("common" "villagep") + :wait-for-load #f + ) + ) + +;; definition for symbol village1, type level-load-info +(define village1 + (new 'static 'level-load-info + :name-list (new 'static 'array basic 3 'village1 'village1-vis 'vi1) + :index 2 + :packages '(village1) + :sound-banks '(village1) + :music-bank 'village1 + :ambient-sounds '() + :mood '*village1-mood* + :mood-func 'update-mood-village1 + :ocean '*ocean-map-village1* + :sky #t + :sun-fade 1.0 + :continues + '((new 'static 'continue-point + :name "village1-hut" + :level 'village1 + :trans (new 'static 'vector :x -638860.06 :y 139319.7 :z 769990.6 :w 1.0) + :quat (new 'static 'vector :y -0.9889 :w -0.148) + :camera-trans (new 'static 'vector :x -668114.1 :y 164536.31 :z 828633.06 :w 1.0) + :camera-rot (new 'static 'array float 9 -0.8947 0.0 -0.4464 0.1082 0.9701 -0.2169 0.4331 -0.2424 -0.868) + :load-commands '() + :vis-nick 'vi1 + :lev0 'village1 + :disp0 'display + :lev1 'beach + :disp1 #f + ) + (new 'static 'continue-point + :name "village1-intro" + :level 'village1 + :flags #x24 + :trans (new 'static 'vector :x -518468.8 :y 189424.03 :z 868568.7 :w 1.0) + :quat (new 'static 'vector :y 0.591 :w 0.8066) + :camera-trans (new 'static 'vector :x -559109.3 :y 200461.92 :z 826073.06 :w 1.0) + :camera-rot (new 'static 'array float 9 0.7221 0.0 -0.6917 -0.0517 0.9972 -0.054 0.6897 0.0747 0.7201) + :load-commands '() + :vis-nick 'vi1 + :lev0 'village1 + :disp0 'display + :lev1 #f + :disp1 #f + ) + (new 'static 'continue-point + :name "village1-warp" + :level 'village1 + :flags #x804 + :trans (new 'static 'vector :x -518468.8 :y 189424.03 :z 868568.7 :w 1.0) + :quat (new 'static 'vector :y 0.591 :w 0.8066) + :camera-trans (new 'static 'vector :x -559109.3 :y 200461.92 :z 826073.06 :w 1.0) + :camera-rot (new 'static 'array float 9 0.7221 0.0 -0.6917 -0.0517 0.9972 -0.054 0.6897 0.0747 0.7201) + :load-commands '() + :vis-nick 'vi1 + :lev0 'village1 + :disp0 'display + :lev1 'beach + :disp1 #f + ) + (new 'static 'continue-point + :name "village1-demo-convo" + :level 'village1 + :flags #x40 + :trans (new 'static 'vector :x -542529.1 :y 189424.03 :z 847101.94 :w 1.0) + :quat (new 'static 'vector :y -0.1717 :w -0.9851) + :camera-trans (new 'static 'vector :x -559085.2 :y 202996.53 :z 826054.25 :w 1.0) + :camera-rot (new 'static 'array float 9 0.7868 0.0 -0.6171 0.0775 0.992 0.0989 0.6122 -0.1257 0.7806) + :load-commands '() + :vis-nick 'vi1 + :lev0 'village1 + :disp0 'display + :lev1 'misty + :disp1 #f + ) + (new 'static 'continue-point + :name "intro-start" + :level 'village1 + :flags #x10 + :trans (new 'static 'vector :x 164316.78 :y 15128.576 :z 3390588.0 :w 1.0) + :quat (new 'static 'vector :y -0.2339 :w 0.9722) + :camera-trans (new 'static 'vector :x 204089.34 :y 36257.793 :z 3358341.0 :w 1.0) + :camera-rot (new 'static 'array float 9 0.6381 0.0 0.7699 -0.0938 0.9925 0.0777 -0.7642 -0.1218 0.6333) + :load-commands + '((special "med-res-level-1" #t) + (special "med-res-level-2" #t) + (special "med-res-level-4" #t) + (special "med-res-level-6" #t) + (special "med-res-level-7" #t) + (special "med-res-level-8" #t) + (special "med-res-level-9" #t) + (special "med-res-level-11" #t) + (special "med-res-level-14" #t) + (special "med-res-level-22" #t) + (special "med-res-level-23" #t) + (special "fishermans-boat-2" #t) + ) + :vis-nick 'vi1 + :lev0 'village1 + :disp0 'display + :lev1 'misty + :disp1 #f + ) + ) + :tasks '((the binteger 10) (the binteger 11) (the binteger 12) (the binteger 13) (the binteger 14) (the binteger 75)) + :priority #xc8 + :load-commands '() + :alt-load-commands + '(((display village1) (load misty)) + ((special village1) (display misty)) ((display village1) (load beach)) + ) + :bsp-mask #xffffffffffffffff + :bsphere (new 'static 'sphere :x -444416.0 :y 133120.0 :z 360448.0 :w 843776.0) + :buzzer 75 + :bottom-height -81920.0 + :run-packages '("common") + :wait-for-load #t + ) + ) + +;; definition for symbol beach, type level-load-info +(define beach + (new 'static 'level-load-info + :name-list (new 'static 'array basic 3 'beach 'beach-vis 'bea) + :index 3 + :packages '(beach) + :sound-banks '(beach) + :music-bank 'beach + :ambient-sounds '() + :mood '*beach-mood* + :mood-func 'update-mood-village1 + :ocean '*ocean-map-village1* + :sky #t + :sun-fade 1.0 + :continues + '((new 'static 'continue-point + :name "beach-start" + :level 'beach + :trans (new 'static 'vector :x -504960.22 :y 9477.325 :z -223513.81 :w 1.0) + :quat (new 'static 'vector :y 0.9486 :w -0.3163) + :camera-trans (new 'static 'vector :x -487550.16 :y 28354.15 :z -184211.05 :w 1.0) + :camera-rot (new 'static 'array float 9 -0.9139 0.0 0.4058 -0.0551 0.9907 -0.1241 -0.4021 -0.1358 -0.9054) + :load-commands '() + :vis-nick 'bea + :lev0 'beach + :disp0 'display + :lev1 'village1 + :disp1 'display + ) + ) + :tasks '((the binteger 15) (the binteger 16) (the binteger 17) (the binteger 18) (the binteger 19) (the binteger 20) (the binteger 21) (the binteger 22)) + :priority 100 + :load-commands '() + :alt-load-commands '() + :bsp-mask #xffffffffffffffff + :bsphere (new 'static 'sphere :x -819200.0 :z -1556480.0 :w 1474560.0) + :buzzer 20 + :bottom-height -81920.0 + :run-packages '("common") + :wait-for-load #t + ) + ) + +;; definition for symbol jungle, type level-load-info +(define jungle + (new 'static 'level-load-info + :name-list (new 'static 'array basic 3 'jungle 'jungle-vis 'jun) + :index 4 + :packages '(jungle) + :sound-banks '(jungle) + :music-bank 'jungle + :ambient-sounds '() + :mood '*jungle-mood* + :mood-func 'update-mood-jungle + :ocean '*ocean-map-village1* + :sky #t + :sun-fade 1.0 + :continues + '((new 'static 'continue-point + :name "jungle-start" + :level 'jungle + :trans (new 'static 'vector :x 1057631.9 :y 86404.305 :z -647140.56 :w 1.0) + :quat (new 'static 'vector :y -0.9009 :w -0.4339) + :camera-trans (new 'static 'vector :x 1004424.8 :y 111181.82 :z -611527.9 :w 1.0) + :camera-rot (new 'static 'array float 9 -0.5568 0.0 -0.8306 0.201 0.9702 -0.1347 0.8059 -0.2419 -0.5402) + :load-commands '() + :vis-nick 'jun + :lev0 'jungle + :disp0 'display + :lev1 'village1 + :disp1 'display + ) + ) + :tasks '((the binteger 2) (the binteger 3) (the binteger 4) (the binteger 5) (the binteger 7) (the binteger 8) (the binteger 9)) + :priority 100 + :load-commands '() + :alt-load-commands '(((display jungle) (display jungleb)) ((display jungle) (display village1))) + :bsp-mask #xffffffffffffffff + :bsphere (new 'static 'sphere :x 1474560.0 :y 2519040.0 :z -983040.0 :w 2457600.0) + :buzzer 7 + :bottom-height -81920.0 + :run-packages '("common") + :wait-for-load #t + ) + ) + +;; definition for symbol jungleb, type level-load-info +(define jungleb + (new 'static 'level-load-info + :name-list (new 'static 'array basic 3 'jungleb 'jungleb-vis 'jub) + :index 5 + :packages '(jungleb) + :sound-banks '(jungleb) + :music-bank 'jungleb + :ambient-sounds '() + :mood '*jungleb-mood* + :mood-func 'update-mood-jungleb + :ocean 'none + :sky #f + :continues + '((new 'static 'continue-point + :name "jungle-tower" + :level 'jungleb + :trans (new 'static 'vector :x 1469510.0 :y -204745.52 :z -959058.3 :w 1.0) + :quat (new 'static 'vector :y -0.6194 :w -0.785) + :camera-trans (new 'static 'vector :x 1485298.5 :y -189972.08 :z -936548.75 :w 1.0) + :camera-rot (new 'static 'array float 9 -0.8614 0.0 0.5078 -0.1177 0.9727 -0.1997 -0.4939 -0.2318 -0.8379) + :load-commands '() + :vis-nick 'jub + :lev0 'jungle + :disp0 'display + :lev1 'jungleb + :disp1 'display + ) + ) + :tasks '() + :priority 100 + :load-commands '() + :alt-load-commands '() + :bsphere (new 'static 'sphere :x 1486848.0 :y -1269760.0 :z -1064960.0 :w 1228800.0) + :buzzer 7 + :bottom-height -327680.0 + :run-packages '("common" "jungle") + :wait-for-load #f + ) + ) + +;; definition for symbol misty, type level-load-info +(define misty + (new 'static 'level-load-info + :name-list (new 'static 'array basic 3 'misty 'misty-vis 'mis) + :index 6 + :packages '(misty) + :sound-banks '(misty) + :music-bank 'misty + :ambient-sounds '() + :mood '*misty-mood* + :mood-func 'update-mood-misty + :ocean '*ocean-map-village1* + :sky #t + :sun-fade 0.25 + :continues + '((new 'static 'continue-point + :name "misty-start" + :level 'misty + :trans (new 'static 'vector :x 164316.78 :y 15128.576 :z 3390588.0 :w 1.0) + :quat (new 'static 'vector :y -0.2339 :w 0.9722) + :camera-trans (new 'static 'vector :x 204089.34 :y 36257.793 :z 3358341.0 :w 1.0) + :camera-rot (new 'static 'array float 9 0.6381 0.0 0.7699 -0.0938 0.9925 0.0777 -0.7642 -0.1218 0.6333) + :load-commands + '((special "med-res-level-1" #t) + (special "med-res-level-2" #t) + (special "med-res-level-4" #t) + (special "med-res-level-6" #t) + (special "med-res-level-7" #t) + (special "med-res-level-8" #t) + (special "med-res-level-9" #t) + (special "med-res-level-11" #t) + (special "med-res-level-14" #t) + (special "med-res-level-22" #t) + (special "med-res-level-23" #t) + (special "fishermans-boat-2" #t) + ) + :vis-nick 'mis + :lev0 'misty + :disp0 'display + :lev1 'village1 + :disp1 'special + ) + (new 'static 'continue-point + :name "misty-silo" + :level 'misty + :trans (new 'static 'vector :x -672503.0 :y 82131.35 :z 3651465.8 :w 1.0) + :quat (new 'static 'vector :y 0.0878 :w 0.9961) + :camera-trans (new 'static 'vector :x -675754.0 :y 102028.91 :z 3604800.8 :w 1.0) + :camera-rot (new 'static 'array float 9 0.9975 0.0 -0.0704 0.0086 0.9924 0.1223 0.0698 -0.1226 0.9899) + :load-commands + '((special "med-res-level-1" #t) + (special "med-res-level-2" #t) + (special "med-res-level-4" #t) + (special "med-res-level-6" #t) + (special "med-res-level-7" #t) + (special "med-res-level-8" #t) + (special "med-res-level-9" #t) + (special "med-res-level-11" #t) + (special "med-res-level-14" #t) + (special "med-res-level-22" #t) + (special "med-res-level-23" #t) + (special "fishermans-boat-2" #t) + ) + :vis-nick 'mis + :lev0 'misty + :disp0 'display + :lev1 'village1 + :disp1 'special + ) + (new 'static 'continue-point + :name "misty-bike" + :level 'misty + :trans (new 'static 'vector :x 302533.44 :y 35901.848 :z 4138967.8 :w 1.0) + :quat (new 'static 'vector :y -0.2809 :w 0.9597) + :camera-trans (new 'static 'vector :x 338476.25 :y 55700.684 :z 4109729.0 :w 1.0) + :camera-rot (new 'static 'array float 9 0.6308 0.0 0.7759 -0.096 0.9923 0.078 -0.7699 -0.1237 0.6259) + :load-commands + '((special "med-res-level-1" #t) + (special "med-res-level-2" #t) + (special "med-res-level-4" #t) + (special "med-res-level-6" #t) + (special "med-res-level-7" #t) + (special "med-res-level-8" #t) + (special "med-res-level-9" #t) + (special "med-res-level-11" #t) + (special "med-res-level-14" #t) + (special "med-res-level-22" #t) + (special "med-res-level-23" #t) + (special "fishermans-boat-2" #t) + ) + :vis-nick 'mis + :lev0 'misty + :disp0 'display + :lev1 'village1 + :disp1 'special + ) + (new 'static 'continue-point + :name "misty-backside" + :level 'misty + :trans (new 'static 'vector :x -304192.72 :y 33270.99 :z 4646525.0 :w 1.0) + :quat (new 'static 'vector :y -0.8443 :w -0.5357) + :camera-trans (new 'static 'vector :x -346989.78 :y 54377.676 :z 4674685.5 :w 1.0) + :camera-rot (new 'static 'array float 9 -0.5497 0.0 -0.8353 0.1009 0.9926 -0.0664 0.8291 -0.1208 -0.5457) + :load-commands + '((special "med-res-level-1" #t) + (special "med-res-level-2" #t) + (special "med-res-level-4" #t) + (special "med-res-level-6" #t) + (special "med-res-level-7" #t) + (special "med-res-level-8" #t) + (special "med-res-level-9" #t) + (special "med-res-level-11" #t) + (special "med-res-level-14" #t) + (special "med-res-level-22" #t) + (special "med-res-level-23" #t) + (special "fishermans-boat-2" #t) + ) + :vis-nick 'mis + :lev0 'misty + :disp0 'display + :lev1 'village1 + :disp1 'special + ) + (new 'static 'continue-point + :name "misty-silo2" + :level 'misty + :trans (new 'static 'vector :x -898000.06 :y 98038.17 :z 4162091.0 :w 1.0) + :quat (new 'static 'vector :y -0.1102 :w 0.9938) + :camera-trans (new 'static 'vector :x -931459.9 :y 118198.68 :z 4196081.0 :w 1.0) + :camera-rot (new 'static 'array float 9 -0.6605 0.0 -0.7508 0.1086 0.9894 -0.0955 0.7429 -0.1447 -0.6535) + :load-commands + '((special "med-res-level-1" #t) + (special "med-res-level-2" #t) + (special "med-res-level-4" #t) + (special "med-res-level-6" #t) + (special "med-res-level-7" #t) + (special "med-res-level-8" #t) + (special "med-res-level-9" #t) + (special "med-res-level-11" #t) + (special "med-res-level-14" #t) + (special "med-res-level-22" #t) + (special "med-res-level-23" #t) + (special "fishermans-boat-2" #t) + ) + :vis-nick 'mis + :lev0 'misty + :disp0 'display + :lev1 'village1 + :disp1 'special + ) + ) + :tasks '((the binteger 23) (the binteger 24) (the binteger 25) (the binteger 26) (the binteger 27) (the binteger 28) (the binteger 29) (the binteger 30)) + :priority 100 + :load-commands '() + :alt-load-commands '() + :bsp-mask #xffffffffffffffff + :bsphere (new 'static 'sphere :z 4096000.0 :w 1269760.0) + :buzzer 28 + :bottom-height -81920.0 + :run-packages '("common") + :wait-for-load #f + ) + ) + +;; definition for symbol firecanyon, type level-load-info +(define firecanyon + (new 'static 'level-load-info + :name-list (new 'static 'array basic 3 'firecanyon 'firecanyon-vis 'fic) + :index 7 + :packages '(firecanyon) + :sound-banks '(firecanyon) + :music-bank 'firecanyon + :ambient-sounds '() + :mood '*firecanyon-mood* + :mood-func 'update-mood-firecanyon + :ocean 'none + :sky #t + :continues + '((new 'static 'continue-point + :name "firecanyon-start" + :level 'firecanyon + :trans (new 'static 'vector :x -87377.1 :y 126444.75 :z -681697.25 :w 1.0) + :quat (new 'static 'vector :y 0.9921 :w -0.1246) + :camera-trans (new 'static 'vector :x -84559.055 :y 144685.47 :z -641194.0 :w 1.0) + :camera-rot (new 'static 'array float 9 -0.9976 0.0 0.0688 -0.01 0.9893 -0.1452 -0.068 -0.1456 -0.9869) + :load-commands '() + :vis-nick 'fic + :lev0 'firecanyon + :disp0 'display + :lev1 'village1 + :disp1 'display + ) + (new 'static 'continue-point + :name "firecanyon-end" + :level 'firecanyon + :trans (new 'static 'vector :x 1360576.1 :y 126976.0 :z -5839533.5 :w 1.0) + :quat (new 'static 'vector :y 0.1666 :w 0.986) + :camera-trans (new 'static 'vector :x 1378912.6 :y 144452.81 :z -5872527.0 :w 1.0) + :camera-rot (new 'static 'array float 9 0.8847 0.0 0.466 -0.0744 0.9871 0.1414 -0.46 -0.1598 0.8733) + :load-commands '() + :vis-nick 'fic + :lev0 'village2 + :disp0 'display + :lev1 'firecanyon + :disp1 'display + ) + ) + :tasks '((the binteger 68) (the binteger 69)) + :priority 100 + :load-commands '() + :alt-load-commands '() + :bsp-mask #xffffffffffffffff + :bsphere (new 'static 'sphere :x 419840.0 :y 151552.0 :z -3006464.0 :w 2048000.0) + :buzzer 68 + :bottom-height -81920.0 + :run-packages '("common") + :wait-for-load #t + ) + ) + +;; definition for symbol village2, type level-load-info +(define village2 + (new 'static 'level-load-info + :name-list (new 'static 'array basic 3 'village2 'village2-vis 'vi2) + :index 8 + :packages '(village2) + :sound-banks '(village2) + :music-bank 'village2 + :ambient-sounds '() + :mood '*village2-mood* + :mood-func 'update-mood-village2 + :ocean '*ocean-map-village2* + :sky #t + :continues + '((new 'static 'continue-point + :name "village2-start" + :level 'village2 + :trans (new 'static 'vector :x 1460961.2 :y 108562.02 :z -6161391.0 :w 1.0) + :quat (new 'static 'vector :y 0.9917 :w 0.1278) + :camera-trans (new 'static 'vector :x 1468018.8 :y 133790.92 :z -6096227.0 :w 1.0) + :camera-rot (new 'static 'array float 9 -0.9941 0.0 0.1076 -0.0261 0.9699 -0.2418 -0.1044 -0.2432 -0.9643) + :load-commands '() + :vis-nick 'vi2 + :lev0 'village2 + :disp0 'display + :lev1 'firecanyon + :disp1 #f + ) + (new 'static 'continue-point + :name "village2-warp" + :level 'village2 + :flags #x4 + :trans (new 'static 'vector :x 1592492.9 :y 91648.0 :z -6328677.0 :w 1.0) + :quat (new 'static 'vector :y 0.7469 :w 0.6648) + :camera-trans (new 'static 'vector :x 1555766.1 :y 103759.46 :z -6318964.5 :w 1.0) + :camera-rot (new 'static 'array float 9 -0.2562 0.0 -0.9666 -0.0253 0.9996 0.0067 0.9662 0.0262 -0.2561) + :load-commands '() + :vis-nick 'vi2 + :lev0 'village2 + :disp0 'display + :lev1 'firecanyon + :disp1 #f + ) + (new 'static 'continue-point + :name "village2-dock" + :level 'village2 + :trans (new 'static 'vector :x 1264346.8 :y 19451.494 :z -6833563.5 :w 1.0) + :quat (new 'static 'vector :y 0.0258 :w 0.9996) + :camera-trans (new 'static 'vector :x 1265547.2 :y 34647.656 :z -6862636.5 :w 1.0) + :camera-rot (new 'static 'array float 9 0.9991 0.0 0.0411 -0.0088 0.9764 0.2155 -0.0401 -0.2156 0.9756) + :load-commands '() + :vis-nick 'vi2 + :lev0 'village2 + :disp0 'display + :lev1 'rolling + :disp1 #f + ) + ) + :tasks '((the binteger 31) (the binteger 32) (the binteger 34) (the binteger 35) (the binteger 76)) + :priority #xc8 + :load-commands '() + :alt-load-commands '() + :bsp-mask #xffffffffffffffff + :bsphere (new 'static 'sphere :x 1392640.0 :y 81920.0 :z -6770688.0 :w 696320.0) + :buzzer 76 + :bottom-height -81920.0 + :run-packages '("common") + :wait-for-load #t + ) + ) + +;; definition for symbol sunken, type level-load-info +(define sunken + (new 'static 'level-load-info + :name-list (new 'static 'array basic 3 'sunken 'sunken-vis 'sun) + :index 9 + :packages '(sunken) + :sound-banks '(sunken) + :music-bank 'sunken + :ambient-sounds '() + :mood '*sunken-mood* + :mood-func 'update-mood-sunken + :ocean '*ocean-map-sunken* + :sky #f + :continues + '((new 'static 'continue-point + :name "sunken-start" + :level 'sunken + :trans (new 'static 'vector :x 2172095.2 :y -591749.94 :z -6721553.0 :w 1.0) + :quat (new 'static 'vector :y -0.5083 :w 0.8611) + :camera-trans (new 'static 'vector :x 2138871.5 :y -572296.4 :z -6751967.5 :w 1.0) + :camera-rot (new 'static 'array float 9 0.7575 0.0 -0.6527 0.0858 0.9913 0.0995 0.647 -0.1314 0.7509) + :load-commands '() + :vis-nick 'sun + :lev0 'sunken + :disp0 'display + :lev1 'village2 + :disp1 'display + ) + (new 'static 'continue-point + :name "sunken1" + :level 'sunken + :trans (new 'static 'vector :x 3062988.5 :y -536575.56 :z -6527484.0 :w 1.0) + :quat (new 'static 'vector :y 0.5304 :w 0.8477) + :camera-trans (new 'static 'vector :x 3015461.2 :y -515480.38 :z -6546573.5 :w 1.0) + :camera-rot (new 'static 'array float 9 0.3725 0.0 -0.928 0.1121 0.9926 0.045 0.9212 -0.1208 0.3697) + :load-commands '() + :vis-nick 'sun + :lev0 'sunken + :disp0 'display + :lev1 'sunkenb + :disp1 #f + ) + (new 'static 'continue-point + :name "sunken2" + :level 'sunken + :trans (new 'static 'vector :x 3133625.5 :y -569343.56 :z -6909587.5 :w 1.0) + :quat (new 'static 'vector :y -0.9512 :w 0.3083) + :camera-trans (new 'static 'vector :x 3170833.2 :y -548244.25 :z -6874378.0 :w 1.0) + :camera-rot (new 'static 'array float 9 -0.6872 0.0 0.7263 -0.0878 0.9926 -0.0831 -0.721 -0.1209 -0.6822) + :load-commands '() + :vis-nick 'sun + :lev0 'sunken + :disp0 'display + :lev1 'sunkenb + :disp1 #f + ) + (new 'static 'continue-point + :name "sunken-tube1" + :level 'sunken + :trans (new 'static 'vector :x 2649601.8 :y -569343.56 :z -7132970.0 :w 1.0) + :quat (new 'static 'vector :y 0.9936 :w 0.1124) + :camera-trans (new 'static 'vector :x 2636150.2 :y -555656.4 :z -7114732.5 :w 1.0) + :camera-rot (new 'static 'array float 9 -0.8024 0.0 -0.5967 0.1721 0.9574 -0.2315 0.5713 -0.2885 -0.7683) + :load-commands '() + :vis-nick 'sun + :lev0 'sunken + :disp0 'display + :lev1 'sunkenb + :disp1 #f + ) + ) + :tasks '() + :priority 100 + :load-commands '() + :alt-load-commands '() + :bsp-mask #xffffffffffffffff + :bsphere (new 'static 'sphere :x 2867200.0 :y -2048000.0 :z -6553600.0 :w 2048000.0) + :buzzer 49 + :bottom-height -2048000.0 + :run-packages '("common") + :wait-for-load #f + ) + ) + +;; definition for symbol sunkenb, type level-load-info +(define sunkenb + (new 'static 'level-load-info + :name-list (new 'static 'array basic 3 'sunkenb 'sunkenb-vis 'sub) + :index 10 + :packages '() + :sound-banks '(sunken) + :music-bank 'sunken + :ambient-sounds '() + :mood '*sunkenb-mood* + :mood-func 'update-mood-sunken + :ocean '*ocean-map-sunken* + :sky #t + :continues + '((new 'static 'continue-point + :name "sunkenb-start" + :level 'sunkenb + :trans (new 'static 'vector :x 2229231.2 :y -1019912.2 :z -6788748.5 :w 1.0) + :quat (new 'static 'vector :y 0.895 :w 0.446) + :camera-trans (new 'static 'vector :x 2187840.0 :y -998915.7 :z -6759328.0 :w 1.0) + :camera-rot (new 'static 'array float 9 -0.5786 0.0 -0.8155 0.0992 0.9925 -0.0704 0.8094 -0.1217 -0.5743) + :load-commands '((alive "exit-chamber-1")) + :vis-nick 'sub + :lev0 'sunken + :disp0 'display + :lev1 'sunkenb + :disp1 'display + ) + (new 'static 'continue-point + :name "sunkenb-helix" + :level 'sunkenb + :trans (new 'static 'vector :x 2466572.8 :y -1838989.2 :z -7299582.0 :w 1.0) + :quat (new 'static 'vector :y -0.8841 :w 0.4672) + :camera-trans (new 'static 'vector :x 2515616.2 :y -1817888.4 :z -7284843.5 :w 1.0) + :camera-rot (new 'static 'array float 9 -0.2889 0.0 0.9573 -0.1163 0.9925 -0.0351 -0.9502 -0.1214 -0.2867) + :load-commands '() + :vis-nick 'sub + :lev0 'sunken + :disp0 'display + :lev1 'sunkenb + :disp1 'display + ) + ) + :tasks '() + :priority 100 + :load-commands '() + :alt-load-commands '() + :bsp-mask #xffffffffffffffff + :bsphere (new 'static 'sphere :x 2867200.0 :y -2048000.0 :z -6553600.0 :w 2048000.0) + :buzzer 49 + :bottom-height -2048000.0 + :run-packages '("common" "sunken") + :wait-for-load #f + ) + ) + +;; definition for symbol swamp, type level-load-info +(define swamp + (new 'static 'level-load-info + :name-list (new 'static 'array basic 3 'swamp 'swamp-vis 'swa) + :index 11 + :packages '(swamp) + :sound-banks '(swamp) + :music-bank 'swamp + :ambient-sounds '() + :mood '*swamp-mood* + :mood-func 'update-mood-swamp + :ocean '*ocean-map-village2* + :sky #t + :continues + '((new 'static 'continue-point + :name "swamp-start" + :level 'swamp + :trans (new 'static 'vector :x 1842537.2 :y 21027.227 :z -7333297.5 :w 1.0) + :quat (new 'static 'vector :y -0.9933 :w 0.1153) + :camera-trans (new 'static 'vector :x 1862529.9 :y 44371.56 :z -7277995.5 :w 1.0) + :camera-rot (new 'static 'array float 9 -0.9403 0.0 0.3402 -0.0814 0.9708 -0.2252 -0.3303 -0.2394 -0.9129) + :load-commands + '((special "swamp-blimp-3" #t) + (special "precursor-arm-3" #t) + (special "swamp-tetherrock-13" #t) + (special "swamp-tetherrock-14" #t) + (special "swamp-tetherrock-15" #t) + (special "swamp-tetherrock-16" #t) + ) + :vis-nick 'swa + :lev0 'swamp + :disp0 'display + :lev1 'village2 + :disp1 'display + ) + (new 'static 'continue-point + :name "swamp-dock1" + :level 'swamp + :trans (new 'static 'vector :x 1360386.9 :y 5823.693 :z -8218890.0 :w 1.0) + :quat (new 'static 'vector :y -0.585 :w -0.811) + :camera-trans (new 'static 'vector :x 1314475.6 :y 26164.838 :z -8234152.5 :w 1.0) + :camera-rot (new 'static 'array float 9 0.3154 0.0 -0.9489 0.1134 0.9928 0.0376 0.9421 -0.1195 0.3131) + :load-commands + '((special "swamp-blimp-3" #t) + (special "precursor-arm-3" #t) + (special "swamp-tetherrock-13" #t) + (special "swamp-tetherrock-14" #t) + (special "swamp-tetherrock-15" #t) + (special "swamp-tetherrock-16" #t) + ) + :vis-nick 'swa + :lev0 'swamp + :disp0 'display + :lev1 'village2 + :disp1 'special-vis + ) + (new 'static 'continue-point + :name "swamp-cave1" + :level 'swamp + :trans (new 'static 'vector :x 1553700.5 :y 1835.4176 :z -8258429.5 :w 1.0) + :quat (new 'static 'vector :y -0.9871 :w -0.1599) + :camera-trans (new 'static 'vector :x 1556873.2 :y 22715.598 :z -8208106.0 :w 1.0) + :camera-rot (new 'static 'array float 9 -0.9982 0.0 0.0596 -0.0072 0.9926 -0.1209 -0.0592 -0.1211 -0.9908) + :load-commands + '((special "swamp-blimp-3" #t) + (special "precursor-arm-3" #t) + (special "swamp-tetherrock-13" #t) + (special "swamp-tetherrock-14" #t) + (special "swamp-tetherrock-15" #t) + (special "swamp-tetherrock-16" #t) + ) + :vis-nick 'swa + :lev0 'swamp + :disp0 'display + :lev1 'village2 + :disp1 'special-vis + ) + (new 'static 'continue-point + :name "swamp-dock2" + :level 'swamp + :trans (new 'static 'vector :x 1645872.4 :y 36495.77 :z -8427323.0 :w 1.0) + :quat (new 'static 'vector :y -0.8294 :w -0.5586) + :camera-trans (new 'static 'vector :x 1599338.9 :y 57590.168 :z -8405954.0 :w 1.0) + :camera-rot (new 'static 'array float 9 -0.418 0.0 -0.9084 0.1106 0.9925 -0.0509 0.9016 -0.1218 -0.4149) + :load-commands + '((special "swamp-blimp-3" #t) + (special "precursor-arm-3" #t) + (special "swamp-tetherrock-13" #t) + (special "swamp-tetherrock-14" #t) + (special "swamp-tetherrock-15" #t) + (special "swamp-tetherrock-16" #t) + ) + :vis-nick 'swa + :lev0 'swamp + :disp0 'display + :lev1 'village2 + :disp1 'special-vis + ) + (new 'static 'continue-point + :name "swamp-cave2" + :level 'swamp + :trans (new 'static 'vector :x 2037539.2 :y 1103.872 :z -8560013.0 :w 1.0) + :quat (new 'static 'vector :y 0.0559 :w 0.9984) + :camera-trans (new 'static 'vector :x 1995208.2 :y 21832.908 :z -8586304.0 :w 1.0) + :camera-rot (new 'static 'array float 9 0.5516 0.0 -0.834 0.097 0.9932 0.0641 0.8283 -0.1163 0.5479) + :load-commands + '((special "swamp-blimp-3" #t) + (special "precursor-arm-3" #t) + (special "swamp-tetherrock-13" #t) + (special "swamp-tetherrock-14" #t) + (special "swamp-tetherrock-15" #t) + (special "swamp-tetherrock-16" #t) + ) + :vis-nick 'swa + :lev0 'swamp + :disp0 'display + :lev1 'village2 + :disp1 'special-vis + ) + (new 'static 'continue-point + :name "swamp-game" + :level 'swamp + :trans (new 'static 'vector :x 2612289.2 :y -2047.5905 :z -8315907.5 :w 1.0) + :quat (new 'static 'vector :y -0.6975 :w 0.7165) + :camera-trans (new 'static 'vector :x 2661940.5 :y 20693.81 :z -8317980.5 :w 1.0) + :camera-rot (new 'static 'array float 9 0.0406 0.0 0.9991 -0.1452 0.9893 0.0059 -0.9885 -0.1453 0.0402) + :load-commands + '((special "swamp-blimp-3" #t) + (special "precursor-arm-3" #t) + (special "swamp-tetherrock-13" #t) + (special "swamp-tetherrock-14" #t) + (special "swamp-tetherrock-15" #t) + (special "swamp-tetherrock-16" #t) + ) + :vis-nick 'swa + :lev0 'swamp + :disp0 'display + :lev1 'village2 + :disp1 'special-vis + ) + (new 'static 'continue-point + :name "swamp-cave3" + :level 'swamp + :trans (new 'static 'vector :x 2011811.4 :y 3711.7952 :z -7923027.0 :w 1.0) + :quat (new 'static 'vector :y -0.5269 :w 0.8499) + :camera-trans (new 'static 'vector :x 2053120.4 :y 22242.51 :z -7927784.5 :w 1.0) + :camera-rot (new 'static 'array float 9 0.1145 0.0 0.9934 -0.1412 0.9898 0.0162 -0.9833 -0.1422 0.1134) + :load-commands + '((special "swamp-blimp-3" #t) + (special "precursor-arm-3" #t) + (special "swamp-tetherrock-13" #t) + (special "swamp-tetherrock-14" #t) + (special "swamp-tetherrock-15" #t) + (special "swamp-tetherrock-16" #t) + ) + :vis-nick 'swa + :lev0 'swamp + :disp0 'display + :lev1 'village2 + :disp1 'special-vis + ) + ) + :tasks '((the binteger 36) (the binteger 37) (the binteger 38) (the binteger 39) (the binteger 40) (the binteger 41) (the binteger 42) (the binteger 43)) + :priority 100 + :load-commands '() + :alt-load-commands '() + :bsp-mask #xffffffffffffffff + :bsphere (new 'static 'sphere :x 1986560.0 :z -8417280.0 :w 1003520.0) + :buzzer 43 + :bottom-height -81920.0 + :run-packages '("common") + :wait-for-load #t + ) + ) + +;; definition for symbol rolling, type level-load-info +(define rolling + (new 'static 'level-load-info + :name-list (new 'static 'array basic 3 'rolling 'rolling-vis 'rol) + :index 12 + :packages '(rolling) + :sound-banks '(rolling) + :music-bank 'rolling + :ambient-sounds '() + :mood '*rolling-mood* + :mood-func 'update-mood-rolling + :ocean 'none + :sky #t + :continues + '((new 'static 'continue-point + :name "rolling-start" + :level 'rolling + :trans (new 'static 'vector :x 432272.6 :y 42821.633 :z -6737529.0 :w 1.0) + :quat (new 'static 'vector :y -0.545 :w 0.8383) + :camera-trans (new 'static 'vector :x 494105.8 :y 67237.48 :z -6748524.0 :w 1.0) + :camera-rot (new 'static 'array float 9 0.1759 0.0 0.9843 -0.2371 0.9705 0.0423 -0.9553 -0.2409 0.1707) + :load-commands '() + :vis-nick 'rol + :lev0 'rolling + :disp0 'display + :lev1 'village2 + :disp1 'display + ) + ) + :tasks '((the binteger 52) (the binteger 53) (the binteger 54) (the binteger 55) (the binteger 56) (the binteger 57) (the binteger 58) (the binteger 59)) + :priority 100 + :load-commands '() + :alt-load-commands '() + :bsp-mask #xffffffffffffffff + :bsphere + (new 'static 'sphere :x -753664.0 :y 131072.0 :z -6569984.0 :w 974848.0) + :buzzer 57 + :bottom-height -81920.0 + :run-packages '("common") + :wait-for-load #t + ) + ) + +;; definition for symbol ogre, type level-load-info +(define ogre + (new 'static 'level-load-info + :name-list (new 'static 'array basic 3 'ogre 'ogre-vis 'ogr) + :index 13 + :packages '(ogre) + :sound-banks '(ogre) + :music-bank 'ogre + :ambient-sounds '() + :mood '*ogre-mood* + :mood-func 'update-mood-ogre + :ocean 'none + :sky #t + :continues + '((new 'static 'continue-point + :name "ogre-start" + :level 'ogre + :trans (new 'static 'vector :x 849775.8 :y 163962.88 :z -7301166.5 :w 1.0) + :quat (new 'static 'vector :y -0.9931 :w 0.1166) + :camera-trans (new 'static 'vector :x 848906.25 :y 185056.88 :z -7249962.0 :w 1.0) + :camera-rot (new 'static 'array float 9 -0.9998 0.0 -0.0159 0.0019 0.9925 -0.1215 0.0158 -0.1215 -0.9924) + :load-commands '() + :vis-nick 'ogr + :lev0 'ogre + :disp0 'display + :lev1 'village2 + :disp1 'display + ) + (new 'static 'continue-point + :name "ogre-race" + :level 'ogre + :trans (new 'static 'vector :x 841424.9 :y 163801.1 :z -8205419.5 :w 1.0) + :quat (new 'static 'vector :y -0.9857 :w 0.168) + :camera-trans (new 'static 'vector :x 860479.9 :y 183815.38 :z -8162368.0 :w 1.0) + :camera-rot (new 'static 'array float 9 -0.9145 0.0 0.4045 -0.0497 0.9924 -0.1125 -0.4015 -0.123 -0.9075) + :load-commands '() + :vis-nick 'ogr + :lev0 'ogre + :disp0 'display + :lev1 'village2 + :disp1 #f + ) + (new 'static 'continue-point + :name "ogre-end" + :level 'ogre + :trans (new 'static 'vector :x 3971233.5 :y 141227.62 :z -13935735.0 :w 1.0) + :quat (new 'static 'vector :y -0.8721 :w 0.4892) + :camera-trans (new 'static 'vector :x 3997892.2 :y 159604.73 :z -13904449.0 :w 1.0) + :camera-rot (new 'static 'array float 9 -0.7611 0.0 0.6485 -0.0932 0.9896 -0.1094 -0.6417 -0.1438 -0.7532) + :load-commands '() + :vis-nick 'ogr + :lev0 'village3 + :disp0 'display + :lev1 'ogre + :disp1 'display + ) + ) + :tasks '((the binteger 86) (the binteger 87) (the binteger 110) (the binteger 88)) + :priority 100 + :load-commands '() + :alt-load-commands '() + :bsp-mask #xffffffffffffffff + :bsphere (new 'static 'sphere :x 2334720.0 :y 180224.0 :z -10653696.0 :w 3653632.0) + :buzzer 88 + :bottom-height -81920.0 + :run-packages '("common") + :wait-for-load #t + ) + ) + +;; definition for symbol village3, type level-load-info +(define village3 + (new 'static 'level-load-info + :name-list (new 'static 'array basic 3 'village3 'village3-vis 'vi3) + :index 14 + :packages '(village3) + :sound-banks '(village3) + :music-bank 'village3 + :ambient-sounds '() + :mood '*village3-mood* + :mood-func 'update-mood-village3 + :ocean #f + :sky #t + :continues + '((new 'static 'continue-point + :name "village3-start" + :level 'village3 + :trans (new 'static 'vector :x 4468021.5 :y 186608.03 :z -14054268.0 :w 1.0) + :quat (new 'static 'vector :y 0.9999 :w 0.005) + :camera-trans (new 'static 'vector :x 4469439.5 :y 207701.2 :z -14003077.0 :w 1.0) + :camera-rot (new 'static 'array float 9 -0.9996 0.0 0.0268 -0.0032 0.9925 -0.1216 -0.0266 -0.1216 -0.9922) + :load-commands '() + :vis-nick 'vi3 + :lev0 'village3 + :disp0 'display + :lev1 'ogre + :disp1 #f + ) + (new 'static 'continue-point + :name "village3-warp" + :level 'village3 + :flags #x4 + :trans (new 'static 'vector :x 4549776.0 :y 215375.88 :z -14285922.0 :w 1.0) + :quat (new 'static 'vector :y 0.681 :w 0.7322) + :camera-trans (new 'static 'vector :x 4543255.0 :y 226776.67 :z -14313317.0 :w 1.0) + :camera-rot (new 'static 'array float 9 0.8563 0.0 -0.2763 0.0456 0.8875 0.1413 0.2725 -0.1485 0.8446) + :load-commands '() + :vis-nick 'vi3 + :lev0 'village3 + :disp0 'display + :lev1 'ogre + :disp1 #f + ) + (new 'static 'continue-point + :name "village3-farside" + :level 'village3 + :trans (new 'static 'vector :x 4423744.0 :y 198723.58 :z -14530641.0 :w 1.0) + :quat (new 'static 'vector :y 0.6611 :w 0.7502) + :camera-trans (new 'static 'vector :x 4381844.0 :y 218599.83 :z -14551361.0 :w 1.0) + :camera-rot (new 'static 'array float 9 0.442 0.0 -0.8969 0.1099 0.9924 0.0541 0.8902 -0.1225 0.4387) + :load-commands '() + :vis-nick 'vi3 + :lev0 'village3 + :disp0 'display + :lev1 'snow + :disp1 #f + ) + ) + :tasks '((the binteger 96) (the binteger 97) (the binteger 98) (the binteger 99) (the binteger 100) (the binteger 101) (the binteger 74) (the binteger 77)) + :priority #xc8 + :load-commands '() + :alt-load-commands '() + :bsp-mask #xffffffffffffffff + :bsphere + (new 'static 'sphere :x 4571136.0 :y 389120.0 :z -14323712.0 :w 409600.0) + :buzzer 77 + :bottom-height -81920.0 + :run-packages '("common") + :wait-for-load #f + ) + ) + +;; definition for symbol snow, type level-load-info +(define snow + (new 'static 'level-load-info + :name-list (new 'static 'array basic 3 'snow 'snow-vis 'sno) + :index 15 + :packages '(snow) + :sound-banks '(snow) + :music-bank 'snow + :ambient-sounds '() + :mood '*snow-mood* + :mood-func 'update-mood-snow + :ocean #f + :sky #t + :sun-fade 0.5 + :continues + '((new 'static 'continue-point + :name "snow-start" + :level 'snow + :trans (new 'static 'vector :x 4256260.0 :y 983713.8 :z -14182752.0 :w 1.0) + :quat (new 'static 'vector :y 0.7906 :w -0.6122) + :camera-trans (new 'static 'vector :x 4303859.5 :y 1012363.7 :z -14156672.0 :w 1.0) + :camera-rot (new 'static 'array float 9 -0.4804 0.0 0.877 -0.2049 0.9723 -0.1122 -0.8527 -0.2336 -0.4671) + :load-commands '() + :vis-nick 'sno + :lev0 'snow + :disp0 'display + :lev1 'village3 + :disp1 'display + ) + (new 'static 'continue-point + :name "snow-fort" + :level 'snow + :trans (new 'static 'vector :x 3430875.2 :y 897149.3 :z -13397581.0 :w 1.0) + :quat (new 'static 'vector :y 0.0968 :w 0.9952) + :camera-trans (new 'static 'vector :x 3428789.8 :y 918241.25 :z -13448724.0 :w 1.0) + :camera-rot (new 'static 'array float 9 0.9991 0.0 -0.0419 0.0051 0.9925 0.1216 0.0415 -0.1217 0.9916) + :load-commands '() + :vis-nick 'sno + :lev0 'snow + :disp0 'display + :lev1 'village3 + :disp1 'display + ) + (new 'static 'continue-point + :name "snow-flut-flut" + :level 'snow + :trans (new 'static 'vector :x 2481850.0 :y 1054709.4 :z -13922438.0 :w 1.0) + :quat (new 'static 'vector :y 0.8628 :w -0.5055) + :camera-trans (new 'static 'vector :x 2497063.0 :y 1069339.9 :z -13900353.0 :w 1.0) + :camera-rot (new 'static 'array float 9 -0.8224 0.0 0.5688 -0.135 0.9713 -0.1953 -0.5525 -0.2374 -0.7989) + :load-commands '() + :vis-nick 'sno + :lev0 'snow + :disp0 'display + :lev1 'village3 + :disp1 'display + ) + (new 'static 'continue-point + :name "snow-pass-to-fort" + :level 'snow + :trans (new 'static 'vector :x 3751044.8 :y 917612.1 :z -13828696.0 :w 1.0) + :quat (new 'static 'vector :y -0.3387 :w -0.9408) + :camera-trans (new 'static 'vector :x 3779776.0 :y 933972.8 :z -13845825.0 :w 1.0) + :camera-rot (new 'static 'array float 9 0.6061 0.0 0.7953 -0.1493 0.9822 0.1138 -0.7812 -0.1878 0.5953) + :load-commands '() + :vis-nick 'sno + :lev0 'snow + :disp0 'display + :lev1 'village3 + :disp1 'display + ) + (new 'static 'continue-point + :name "snow-by-ice-lake" + :level 'snow + :trans (new 'static 'vector :x 3151164.5 :y 1049638.1 :z -14246464.0 :w 1.0) + :quat (new 'static 'vector :y -0.6226 :w 0.7824) + :camera-trans (new 'static 'vector :x 3203905.2 :y 1080037.8 :z -14270850.0 :w 1.0) + :camera-rot (new 'static 'array float 9 0.4189 0.0 0.9079 -0.2169 0.971 0.1001 -0.8816 -0.2389 0.4068) + :load-commands '() + :vis-nick 'sno + :lev0 'snow + :disp0 'display + :lev1 'village3 + :disp1 'display + ) + (new 'static 'continue-point + :name "snow-by-ice-lake-alt" + :level 'snow + :trans (new 'static 'vector :x 3053335.0 :y 1048927.9 :z -14058945.0 :w 1.0) + :quat (new 'static 'vector :y 0.9997 :w 0.022) + :camera-trans (new 'static 'vector :x 3045845.5 :y 1068868.0 :z -14012568.0 :w 1.0) + :camera-rot (new 'static 'array float 9 -0.987 0.0 -0.1601 0.0195 0.9924 -0.1207 0.1589 -0.1223 -0.9796) + :load-commands '() + :vis-nick 'sno + :lev0 'snow + :disp0 'display + :lev1 'village3 + :disp1 'display + ) + (new 'static 'continue-point + :name "snow-outside-fort" + :level 'snow + :trans (new 'static 'vector :x 3431014.0 :y 901474.7 :z -13600187.0 :w 1.0) + :quat (new 'static 'vector :y -0.0954 :w -0.9954) + :camera-trans (new 'static 'vector :x 3429969.0 :y 922565.44 :z -13651353.0 :w 1.0) + :camera-rot (new 'static 'array float 9 0.9998 0.0 -0.0196 0.0023 0.9926 0.1213 0.0195 -0.1213 0.9924) + :load-commands '() + :vis-nick 'sno + :lev0 'snow + :disp0 'display + :lev1 'village3 + :disp1 'display + ) + (new 'static 'continue-point + :name "snow-outside-cave" + :level 'snow + :trans (new 'static 'vector :x 3200864.2 :y 907400.4 :z -13676660.0 :w 1.0) + :quat (new 'static 'vector :y 0.5867 :w -0.8097) + :camera-trans (new 'static 'vector :x 3247600.8 :y 928464.06 :z -13697606.0 :w 1.0) + :camera-rot (new 'static 'array float 9 0.4062 0.0 0.9137 -0.1107 0.9926 0.0492 -0.907 -0.1211 0.4032) + :load-commands '() + :vis-nick 'sno + :lev0 'snow + :disp0 'display + :lev1 'village3 + :disp1 'display + ) + (new 'static 'continue-point + :name "snow-across-from-flut" + :level 'snow + :trans (new 'static 'vector :x 2721898.5 :y 1049845.0 :z -13743428.0 :w 1.0) + :quat (new 'static 'vector :y -0.7688 :w -0.6394) + :camera-trans (new 'static 'vector :x 2712702.5 :y 1070288.5 :z -13791593.0 :w 1.0) + :camera-rot (new 'static 'array float 9 0.9554 0.0 -0.2951 0.0343 0.9932 0.1111 0.2931 -0.1163 0.9489) + :load-commands '() + :vis-nick 'sno + :lev0 'snow + :disp0 'display + :lev1 'village3 + :disp1 'display + ) + ) + :tasks '((the binteger 60) (the binteger 61) (the binteger 62) (the binteger 63) (the binteger 64) (the binteger 66) (the binteger 67) (the binteger 65)) + :priority 100 + :load-commands '() + :alt-load-commands '() + :bsp-mask #xffffffffffffffff + :bsphere (new 'static 'sphere :x 3072000.0 :y 1142784.0 :z -14028800.0 :w 1290240.0) + :buzzer 65 + :bottom-height 524288.0 + :run-packages '("common") + :wait-for-load #f + ) + ) + +;; definition for symbol maincave, type level-load-info +(define maincave + (new 'static 'level-load-info + :name-list (new 'static 'array basic 3 'maincave 'maincave-vis 'mai) + :index 16 + :packages '(maincave) + :sound-banks '(maincave) + :music-bank 'maincave + :ambient-sounds '() + :mood '*maincave-mood* + :mood-func 'update-mood-maincave + :ocean #f + :sky #f + :continues + '((new 'static 'continue-point + :name "maincave-start" + :level 'maincave + :trans (new 'static 'vector :x 4420967.0 :y 33006.387 :z -13154230.0 :w 1.0) + :quat (new 'static 'vector :y 0.0174 :w -0.9998) + :camera-trans (new 'static 'vector :x 4428164.5 :y 54074.164 :z -13204933.0 :w 1.0) + :camera-rot (new 'static 'array float 9 0.99 0.0 0.1405 -0.0169 0.9927 0.1192 -0.1395 -0.1204 0.9828) + :load-commands '() + :vis-nick 'mai + :lev0 'maincave + :disp0 'display + :lev1 'village3 + :disp1 'display + ) + (new 'static 'continue-point + :name "maincave-to-darkcave" + :level 'maincave + :trans (new 'static 'vector :x 4172175.8 :y 154223.83 :z -12445165.0 :w 1.0) + :quat (new 'static 'vector :y -0.2093 :w 0.9778) + :camera-trans (new 'static 'vector :x 4193893.2 :y 175317.81 :z -12491520.0 :w 1.0) + :camera-rot (new 'static 'array float 9 0.9052 0.0 0.4248 -0.0514 0.9926 0.1096 -0.4217 -0.1211 0.8986) + :load-commands '() + :vis-nick 'mai + :lev0 'maincave + :disp0 'display + :lev1 'darkcave + :disp1 #f + ) + (new 'static 'continue-point + :name "maincave-to-robocave" + :level 'maincave + :trans (new 'static 'vector :x 4760896.5 :y 44221.234 :z -12409880.0 :w 1.0) + :quat (new 'static 'vector :y 0.548 :w 0.8364) + :camera-trans (new 'static 'vector :x 4745230.0 :y 57869.926 :z -12426885.0 :w 1.0) + :camera-rot (new 'static 'array float 9 0.7343 0.0 -0.6788 0.1872 0.9611 0.2026 0.6524 -0.2759 0.7058) + :load-commands '() + :vis-nick 'mai + :lev0 'maincave + :disp0 'display + :lev1 'robocave + :disp1 #f + ) + ) + :tasks '((the binteger 78) (the binteger 79) (the binteger 80) (the binteger 81) (the binteger 82) (the binteger 83) (the binteger 84) (the binteger 85)) + :priority 100 + :load-commands '() + :alt-load-commands '() + :bsp-mask #xffffffffffffffff + :bsphere (new 'static 'sphere :x 4517888.0 :y 114688.0 :z -12484608.0 :w 655360.0) + :buzzer 85 + :bottom-height -245760.0 + :run-packages '("common") + :wait-for-load #f + ) + ) + +;; definition for symbol darkcave, type level-load-info +(define darkcave + (new 'static 'level-load-info + :name-list (new 'static 'array basic 3 'darkcave 'darkcave-vis 'dar) + :index 17 + :packages '(darkcave) + :sound-banks '(darkcave) + :music-bank 'maincave + :ambient-sounds '() + :mood '*darkcave-mood* + :mood-func 'update-mood-darkcave + :ocean #f + :sky #f + :continues + '((new 'static 'continue-point + :name "darkcave-start" + :level 'darkcave + :trans (new 'static 'vector :x 3813246.2 :y 129487.664 :z -12114304.0 :w 1.0) + :quat (new 'static 'vector :y 0.1439 :w 0.9895) + :camera-trans (new 'static 'vector :x 3793301.0 :y 145573.48 :z -12139847.0 :w 1.0) + :camera-rot (new 'static 'array float 9 0.7892 0.0 -0.614 0.1178 0.9813 0.1515 0.6026 -0.1919 0.7745) + :load-commands '() + :vis-nick 'dar + :lev0 'maincave + :disp0 'display + :lev1 'darkcave + :disp1 'display + ) + ) + :tasks '() + :priority 100 + :load-commands '() + :alt-load-commands '() + :bsp-mask #xffffffffffffffff + :bsphere (new 'static 'sphere :x 3620864.0 :y 266240.0 :z -11935744.0 :w 368640.0) + :buzzer 85 + :bottom-height -245760.0 + :run-packages '("common" "maincave") + :wait-for-load #t + ) + ) + +;; definition for symbol robocave, type level-load-info +(define robocave + (new 'static 'level-load-info + :name-list + (new 'static 'array basic 3 'robocave 'robocave-vis 'rob) + :index 18 + :packages '(robocave) + :sound-banks '(robocave) + :music-bank 'maincave + :ambient-sounds '() + :mood '*robocave-mood* + :mood-func 'update-mood-robocave + :ocean #f + :sky #f + :continues + '((new 'static 'continue-point + :name "robocave-start" + :level 'robocave + :trans (new 'static 'vector :x 5208223.5 :y 69697.945 :z -11781496.0 :w 1.0) + :quat (new 'static 'vector :y -0.3654 :w -0.9308) + :camera-trans (new 'static 'vector :x 5171715.0 :y 90796.85 :z -11817413.0 :w 1.0) + :camera-rot + (new 'static 'array float 9 0.7006 0.0 -0.7134 0.0864 0.9926 0.0849 0.7082 -0.1212 0.6954) + :load-commands '() + :vis-nick 'rob + :lev0 'maincave + :disp0 'display + :lev1 'robocave + :disp1 'display + ) + (new 'static 'continue-point + :name "robocave-bottom" + :level 'robocave + :trans (new 'static 'vector :x 5435461.5 :y -97111.24 :z -11588379.0 :w 1.0) + :quat (new 'static 'vector :y 0.1086 :w 0.994) + :camera-trans (new 'static 'vector :x 5409966.5 :y -76017.664 :z -11632764.0 :w 1.0) + :camera-rot + (new 'static 'array float 9 0.8662 0.0 -0.4996 0.0605 0.9926 0.105 0.4959 -0.1212 0.8598) + :load-commands '() + :vis-nick 'rob + :lev0 'maincave + :disp0 'display + :lev1 'robocave + :disp1 'display + ) + ) + :tasks '() + :priority 100 + :load-commands '() + :alt-load-commands '() + :bsp-mask #xffffffffffffffff + :bsphere (new 'static 'sphere :x 5529600.0 :y 81920.0 :z -11468800.0 :w 512000.0) + :buzzer 85 + :bottom-height -245760.0 + :run-packages '("common" "maincave") + :wait-for-load #t + ) + ) + +;; definition for symbol lavatube, type level-load-info +(define lavatube + (new 'static 'level-load-info + :name-list (new 'static 'array basic 3 'lavatube 'lavatube-vis 'lav) + :index 19 + :packages '(lavatube) + :sound-banks '(lavatube) + :music-bank 'lavatube + :ambient-sounds '() + :mood '*lavatube-mood* + :mood-func 'update-mood-lavatube + :ocean #f + :sky #f + :continues + '((new 'static 'continue-point + :name "lavatube-start" + :level 'lavatube + :trans (new 'static 'vector :x 5511317.0 :y 159871.8 :z -14621239.0 :w 1.0) + :quat (new 'static 'vector :y -0.3753 :w -0.9268) + :camera-trans (new 'static 'vector :x 5510636.5 :y 197720.06 :z -14663128.0 :w 1.0) + :camera-rot + (new 'static 'array float 9 0.9992 0.0 -0.0386 0.0178 0.8875 0.4603 0.0343 -0.4606 0.8868) + :load-commands '() + :vis-nick 'lav + :lev0 'lavatube + :disp0 'display + :lev1 'village3 + :disp1 'display + ) + (new 'static 'continue-point + :name "lavatube-middle" + :level 'lavatube + :trans (new 'static 'vector :x 9081441.0 :y -3935.8464 :z -14056285.0 :w 1.0) + :quat (new 'static 'vector :y -0.7002 :w -0.7139) + :camera-trans (new 'static 'vector :x 9055362.0 :y 10606.592 :z -14050822.0 :w 1.0) + :camera-rot + (new 'static 'array float 9 -0.205 0.0 -0.9787 0.2321 0.9714 -0.0486 0.9508 -0.2371 -0.1991) + :load-commands '() + :vis-nick 'lav + :lev0 'lavatube + :disp0 'display + :lev1 'village3 + :disp1 #f + ) + (new 'static 'continue-point + :name "lavatube-after-ribbon" + :level 'lavatube + :trans (new 'static 'vector :x 9954895.0 :y 390513.06 :z -16548614.0 :w 1.0) + :quat (new 'static 'vector :y -0.7485 :w -0.663) + :camera-trans (new 'static 'vector :x 9923721.0 :y 406466.16 :z -16541633.0 :w 1.0) + :camera-rot + (new 'static 'array float 9 -0.2191 0.0 -0.9756 0.1906 0.9807 -0.0428 0.9568 -0.1953 -0.2149) + :load-commands '() + :vis-nick 'lav + :lev0 'lavatube + :disp0 'display + :lev1 'citadel + :disp1 #f + ) + (new 'static 'continue-point + :name "lavatube-end" + :level 'lavatube + :trans (new 'static 'vector :x 11479892.0 :y -163656.5 :z -18266490.0 :w 1.0) + :quat (new 'static 'vector :y -0.9589 :w -0.2836) + :camera-trans (new 'static 'vector :x 11526721.0 :y -143482.47 :z -18257412.0 :w 1.0) + :camera-rot + (new 'static 'array float 9 -0.3027 0.0 0.953 -0.1235 0.9915 -0.0392 -0.945 -0.1296 -0.3001) + :load-commands '() + :vis-nick 'lav + :lev0 'lavatube + :disp0 'display + :lev1 'citadel + :disp1 'display + ) + ) + :tasks '((the binteger 89) (the binteger 90)) + :priority 100 + :load-commands '() + :alt-load-commands '() + :bsp-mask #xffffffffffffffff + :bsphere (new 'static 'sphere :x 8806400.0 :y 131072.0 :z -15564800.0 :w 3174400.0) + :buzzer 90 + :bottom-height -286720.0 + :run-packages '("common") + :wait-for-load #t + ) + ) + +;; definition for symbol citadel, type level-load-info +(define citadel + (new 'static 'level-load-info + :name-list (new 'static 'array basic 3 'citadel 'citadel-vis 'cit) + :index 20 + :packages '(citadel) + :sound-banks '(citadel) + :music-bank 'citadel + :ambient-sounds '() + :mood '*citadel-mood* + :mood-func 'update-mood-citadel + :ocean #f + :sky #f + :continues + '((new 'static 'continue-point + :name "citadel-start" + :level 'citadel + :trans (new 'static 'vector :x 11442706.0 :y -142755.84 :z -18869044.0 :w 1.0) + :quat (new 'static 'vector :y 0.9992 :w 0.0392) + :camera-trans (new 'static 'vector :x 11441183.0 :y -122509.31 :z -18820882.0 :w 1.0) + :camera-rot + (new 'static 'array float 9 -0.9991 0.0 -0.0411 0.005 0.9925 -0.122 0.0408 -0.1221 -0.9916) + :load-commands '() + :vis-nick 'cit + :lev0 'citadel + :disp0 'display + :lev1 'lavatube + :disp1 #f + ) + (new 'static 'continue-point + :name "citadel-entrance" + :level 'citadel + :trans (new 'static 'vector :x 11443969.0 :y -154216.03 :z -18472782.0 :w 1.0) + :quat (new 'static 'vector :y -0.9728 :w 0.2314) + :camera-trans (new 'static 'vector :x 11436929.0 :y -134244.36 :z -18426254.0 :w 1.0) + :camera-rot + (new 'static 'array float 9 -0.9898 0.0 -0.1424 0.0173 0.9925 -0.1207 0.1413 -0.1219 -0.9824) + :load-commands '() + :vis-nick 'cit + :lev0 'citadel + :disp0 'display + :lev1 'lavatube + :disp1 'display + ) + (new 'static 'continue-point + :name "citadel-warp" + :level 'citadel + :flags #x4 + :trans (new 'static 'vector :x 11454895.0 :y -161791.6 :z -18204690.0 :w 1.0) + :quat (new 'static 'vector :y 0.7511 :w 0.6601) + :camera-trans (new 'static 'vector :x 11406872.0 :y -141278.0 :z -18194638.0 :w 1.0) + :camera-rot + (new 'static 'array float 9 -0.1989 0.0 -0.98 0.1179 0.9927 -0.0239 0.9728 -0.1203 -0.1974) + :load-commands '() + :vis-nick 'cit + :lev0 'citadel + :disp0 'display + :lev1 'lavatube + :disp1 'display + ) + (new 'static 'continue-point + :name "citadel-launch-start" + :level 'citadel + :trans (new 'static 'vector :x 10827551.0 :y -94047.02 :z -18946718.0 :w 1.0) + :quat (new 'static 'vector :y 0.8377 :w -0.546) + :camera-trans (new 'static 'vector :x 10862150.0 :y -75343.875 :z -18922316.0 :w 1.0) + :camera-rot + (new 'static 'array float 9 -0.5766 0.0 0.8169 -0.1125 0.9904 -0.0794 -0.8091 -0.1378 -0.5711) + :load-commands '() + :vis-nick 'cit + :lev0 'citadel + :disp0 'display + :lev1 'lavatube + :disp1 #f + ) + (new 'static 'continue-point + :name "citadel-launch-end" + :level 'citadel + :trans (new 'static 'vector :x 11047507.0 :y -81514.086 :z -19495960.0 :w 1.0) + :quat (new 'static 'vector :y 0.0292 :w 0.9995) + :camera-trans (new 'static 'vector :x 11033498.0 :y -63027.2 :z -19534916.0 :w 1.0) + :camera-rot + (new 'static 'array float 9 0.9413 0.0 -0.3373 0.0481 0.9897 0.1343 0.3339 -0.1427 0.9317) + :load-commands '() + :vis-nick 'cit + :lev0 'citadel + :disp0 'display + :lev1 'finalboss + :disp1 #f + ) + (new 'static 'continue-point + :name "citadel-plat-start" + :level 'citadel + :trans (new 'static 'vector :x 11443470.0 :y -120194.664 :z -19845628.0 :w 1.0) + :quat (new 'static 'vector :y -0.9907 :w -0.1355) + :camera-trans (new 'static 'vector :x 11443545.0 :y -99100.266 :z -19794374.0 :w 1.0) + :camera-rot + (new 'static 'array float 9 -0.9999 0.0 0.0016 -0.0001 0.9926 -0.1207 -0.0015 -0.1207 -0.9926) + :load-commands '() + :vis-nick 'cit + :lev0 'citadel + :disp0 'display + :lev1 'finalboss + :disp1 #f + ) + (new 'static 'continue-point + :name "citadel-plat-end" + :level 'citadel + :trans (new 'static 'vector :x 11269726.0 :y -12132.352 :z -19614712.0 :w 1.0) + :quat (new 'static 'vector :y -0.0419 :w 0.9991) + :camera-trans (new 'static 'vector :x 11264449.0 :y 7920.8447 :z -19661710.0 :w 1.0) + :camera-rot + (new 'static 'array float 9 0.9938 0.0 -0.1103 0.0134 0.9924 0.1215 0.1095 -0.1223 0.9864) + :load-commands '() + :vis-nick 'cit + :lev0 'citadel + :disp0 'display + :lev1 'finalboss + :disp1 #f + ) + (new 'static 'continue-point + :name "citadel-generator-start" + :level 'citadel + :trans (new 'static 'vector :x 12138031.0 :y -36900.863 :z -18933304.0 :w 1.0) + :quat (new 'static 'vector :y 0.7487 :w 0.6628) + :camera-trans (new 'static 'vector :x 12101831.0 :y -19811.123 :z -18933632.0 :w 1.0) + :camera-rot + (new 'static 'array float 9 0.0093 0.0 -0.9999 0.1678 0.9858 0.0015 0.9857 -0.1678 0.0092) + :load-commands '() + :vis-nick 'cit + :lev0 'citadel + :disp0 'display + :lev1 'finalboss + :disp1 #f + ) + (new 'static 'continue-point + :name "citadel-generator-end" + :level 'citadel + :trans (new 'static 'vector :x 11837483.0 :y -20177.715 :z -19506848.0 :w 1.0) + :quat (new 'static 'vector :y -0.3564 :w 0.9342) + :camera-trans (new 'static 'vector :x 11872697.0 :y 887.6032 :z -19544198.0 :w 1.0) + :camera-rot + (new 'static 'array float 9 0.7296 0.0 0.6838 -0.0851 0.9922 0.0908 -0.6785 -0.1245 0.7239) + :load-commands '() + :vis-nick #f + :lev0 'citadel + :disp0 'display + :lev1 #f + :disp1 #f + ) + (new 'static 'continue-point + :name "citadel-elevator" + :level 'citadel + :trans (new 'static 'vector :x 11447961.0 :y 234055.27 :z -19169000.0 :w 1.0) + :quat (new 'static 'vector :y 0.2351 :w 0.9719) + :camera-trans (new 'static 'vector :x 11454465.0 :y 252947.66 :z -19126656.0 :w 1.0) + :camera-rot + (new 'static 'array float 9 -0.9932 0.0 0.1161 -0.017 0.9892 -0.1454 -0.1148 -0.1464 -0.9825) + :load-commands '() + :vis-nick 'cit + :lev0 'citadel + :disp0 'display + :lev1 'finalboss + :disp1 #f + ) + ) + :tasks '((the binteger 70) (the binteger 71) (the binteger 72) (the binteger 73) (the binteger 91)) + :priority 100 + :load-commands '() + :alt-load-commands '() + :bsp-mask #xffffffffffffffff + :bsphere (new 'static 'sphere :x 11436032.0 :y -462848.0 :z -19750912.0 :w 1228800.0) + :buzzer 91 + :bottom-height -466944.0 + :run-packages '("common") + :wait-for-load #t + ) + ) + +;; definition for symbol finalboss, type level-load-info +(define finalboss + (new 'static 'level-load-info + :name-list (new 'static 'array basic 3 'finalboss 'finalboss-vis 'fin) + :index 21 + :packages '(finalboss) + :sound-banks '(finalboss) + :music-bank 'finalboss + :ambient-sounds '() + :mood '*finalboss-mood* + :mood-func 'update-mood-finalboss + :ocean #f + :sky #t + :sun-fade 1.0 + :continues + '((new 'static 'continue-point + :name "finalboss-start" + :level 'finalboss + :trans (new 'static 'vector :x 11548456.0 :y 2215872.0 :z -19409498.0 :w 1.0) + :quat (new 'static 'vector :y 0.7325 :w 0.6807) + :camera-trans (new 'static 'vector :x 11513311.0 :y 2234999.5 :z -19435708.0 :w 1.0) + :camera-rot + (new 'static 'array float 9 0.5883 0.0 -0.8085 0.1074 0.9911 0.0781 0.8014 -0.1328 0.5831) + :load-commands '((special "citb-exit-plat-4" #t)) + :vis-nick 'fin + :lev0 'finalboss + :disp0 'display + :lev1 'citadel + :disp1 'special + ) + (new 'static 'continue-point + :name "finalboss-fight" + :level 'finalboss + :trans + (new 'static 'vector :x 12288335.0 :y 1970461.9 :z -19848522.0 :w 1.0) + :quat + (new 'static 'vector :y -0.5359 :w -0.8442) + :camera-trans + (new 'static 'vector :x 12265366.0 :y 1984228.5 :z -19842574.0 :w 1.0) + :camera-rot + (new 'static 'array float 9 -0.243 0.0 -0.97 0.2594 0.9635 -0.065 0.9346 -0.2675 -0.2341) + :load-commands '((special "citb-exit-plat-4" #t)) + :vis-nick 'fin + :lev0 'finalboss + :disp0 'display + :lev1 'citadel + :disp1 'special + ) + ) + :tasks '() + :priority 100 + :load-commands '() + :alt-load-commands '() + :bsp-mask #xffffffffffffffff + :bsphere (new 'static 'sphere :x 11837440.0 :y 2129920.0 :z -19578880.0 :w 778240.0) + :buzzer 91 + :bottom-height -466944.0 + :run-packages '("common") + :wait-for-load #f + ) + ) + +;; definition for symbol intro, type level-load-info +(define intro + (new 'static 'level-load-info + :name-list (new 'static 'array basic 3 'intro 'intro-vis 'int) + :index 22 + :packages '(intro) + :sound-banks '() + :music-bank #f + :ambient-sounds '() + :mood '*default-mood* + :mood-func 'update-mood-default + :ocean #f + :sky #f + :continues '() + :tasks '() + :priority 100 + :load-commands '() + :alt-load-commands '() + :bsp-mask #xffffffffffffffff + :bsphere (new 'static 'sphere) + :bottom-height -40960000000.0 + :run-packages '("common") + :wait-for-load #f + ) + ) + +;; definition for symbol demo, type level-load-info +(define demo + (new 'static 'level-load-info + :name-list (new 'static 'array basic 3 'demo 'demo-vis 'dem) + :index 23 + :packages '() + :sound-banks '(village1) + :music-bank 'village1 + :ambient-sounds '() + :mood '*default-mood* + :mood-func 'update-mood-default + :ocean #f + :sky #f + :continues + '((new 'static 'continue-point + :name "demo-start" + :level 'demo + :flags #x8 + :trans (new 'static 'vector :x 66396.16 :y 29782.016 :z -919973.5 :w 1.0) + :quat (new 'static 'vector :w 1.0) + :camera-trans (new 'static 'vector :x 76871.68 :y 55061.707 :z -938752.0 :w 1.0) + :camera-rot (new 'static 'array float 9 0.8743 0.0 0.4852 -0.2117 0.8997 0.3816 -0.4365 -0.4364 0.7866) + :load-commands '() + :vis-nick 'dem + :lev0 'demo + :disp0 'special + :lev1 #f + :disp1 #f + ) + ) + :tasks '() + :priority 100 + :load-commands '() + :alt-load-commands '() + :bsp-mask #xffffffffffffffff + :bsphere (new 'static 'sphere) + :bottom-height -40960000000.0 + :run-packages '("common") + :wait-for-load #f + ) + ) + +;; definition for symbol title, type level-load-info +(define title + (new 'static 'level-load-info + :name-list (new 'static 'array basic 3 'title 'title-vis 'tit) + :index 24 + :packages '() + :sound-banks '() + :music-bank 'village1 + :ambient-sounds '() + :mood '*village1-mood* + :mood-func 'update-mood-village1 + :ocean #f + :sky #f + :continues + '((new 'static 'continue-point + :name "title-start" + :level 'title + :flags #x80 + :trans (new 'static 'vector :x -635598.9 :y 222551.66 :z 710496.25 :w 1.0) + :quat (new 'static 'vector :y -0.3323 :w -0.9431) + :camera-trans (new 'static 'vector :x -665644.25 :y 250803.0 :z 668470.9 :w 1.0) + :camera-rot (new 'static 'array float 9 0.8129 0.0 -0.5823 0.0958 0.9863 0.1337 0.5744 -0.1645 0.8018) + :load-commands '() + :vis-nick 'tit + :lev0 'title + :disp0 'special + :lev1 'village1 + :disp1 #f + ) + ) + :tasks '() + :priority 100 + :load-commands '() + :alt-load-commands '() + :bsp-mask #xffffffffffffffff + :bsphere (new 'static 'sphere :x -40960.0 :z 40960.0 :w 1126400.0) + :bottom-height -40960000000.0 + :run-packages '("common") + :wait-for-load #f + ) + ) + +;; definition for symbol halfpipe, type level-load-info +(define halfpipe + (new 'static 'level-load-info + :name-list + (new 'static 'array basic 3 'halfpipe 'halfpipe-vis 'none) + :index 25 + :packages '() + :sound-banks '() + :music-bank #f + :ambient-sounds '() + :mood '*default-mood* + :mood-func 'update-mood-default + :ocean #f + :sky #t + :sun-fade 1.0 + :continues + '((new 'static 'continue-point + :name "halfpipe" + :level 'halfpipe + :trans (new 'static 'vector :x -1048.9856 :y -172047.97 :z -212555.78 :w 1.0) + :quat (new 'static 'vector :y 0.061 :w 0.9981) + :camera-trans (new 'static 'vector :x -9941.401 :y -150049.17 :z -159587.94 :w 1.0) + :camera-rot (new 'static 'array float 9 -0.979 0.0 -0.2037 0.0545 0.9634 -0.2622 0.1963 -0.2678 -0.9432) + :load-commands '() + :vis-nick #f + :lev0 'halfpipe + :disp0 'display + :lev1 #f + :disp1 #f + ) + ) + :tasks '() + :priority 100 + :load-commands '() + :alt-load-commands '() + :bsp-mask #xffffffffffffffff + :bsphere (new 'static 'sphere :w 167772160000.0) + :bottom-height -40960000000.0 + :run-packages '() + :wait-for-load #t + ) + ) + +;; definition for symbol default-level, type level-load-info +(define default-level + (new 'static 'level-load-info + :name-list (new 'static 'array basic 3 'default-level 'default-level-vis 'none) + :index 26 + :packages '() + :sound-banks '() + :music-bank #f + :ambient-sounds '() + :mood '*default-mood* + :mood-func 'update-mood-default + :ocean #f + :sky #t + :continues '() + :tasks '() + :priority 100 + :load-commands '() + :alt-load-commands '() + :bsp-mask #xffffffffffffffff + :bsphere (new 'static 'sphere :w 167772160000.0) + :bottom-height -81920.0 + :run-packages '() + :wait-for-load #t + ) + ) + +;; definition for symbol *level-load-list*, type pair +(define *level-load-list* + '(training + village1 + beach + jungle + jungleb + misty + firecanyon + village2 + sunken + sunkenb + swamp + rolling + ogre + village3 + snow + maincave + darkcave + robocave + lavatube + citadel + finalboss + intro + demo + title + halfpipe + default-level + ) + ) diff --git a/goalc/compiler/compilation/Static.cpp b/goalc/compiler/compilation/Static.cpp index 45df536f5b..7787650098 100644 --- a/goalc/compiler/compilation/Static.cpp +++ b/goalc/compiler/compilation/Static.cpp @@ -465,6 +465,10 @@ StaticResult Compiler::compile_static_no_eval_for_pairs(const goos::Object& form segment = MAIN_SEGMENT; } if (form.is_pair()) { + if (form.as_pair()->car.is_symbol() && (form.as_pair()->car.as_symbol()->name == "new" || + form.as_pair()->car.as_symbol()->name == "the")) { + return compile_static(form, env); + } auto car = compile_static_no_eval_for_pairs(form.as_pair()->car, env); auto cdr = compile_static_no_eval_for_pairs(form.as_pair()->cdr, env); auto pair_structure = std::make_unique(car, cdr, segment); @@ -490,7 +494,7 @@ StaticResult Compiler::compile_static_no_eval_for_pairs(const goos::Object& form fie->add_static(std::move(obj)); return result; } else { - assert(false); // not yet implemented + throw_compiler_error(form, "Cannot put the following form in a static pair: {}", form.print()); return {}; } } @@ -625,6 +629,18 @@ StaticResult Compiler::compile_static(const goos::Object& form_before_macro, Env } } } + } else if (first.is_symbol() && first.as_symbol()->name == "the") { + auto args = get_va(form, rest); + va_check(form, args, {{}, {}}, {}); + auto type = parse_typespec(args.unnamed.at(0)); + if (type == TypeSpec("binteger")) { + s64 value; + if (try_getting_constant_integer(args.unnamed.at(1), &value, env)) { + if (integer_fits(value, 4, true)) { + return StaticResult::make_constant_data(value << 3, TypeSpec("binteger")); + } + } + } } else { // maybe an enum s64 int_out; diff --git a/scripts/decomp_progress.py b/scripts/decomp_progress.py index ad1221f84e..3ff0cb75da 100644 --- a/scripts/decomp_progress.py +++ b/scripts/decomp_progress.py @@ -2,66 +2,68 @@ import os import glob import argparse + ### Script to track decompilation progress. ### Example usage: python3 scripts/decomp_progress.py ~/jak-project/goal_src def get_goal_files(root_dir): - """Get all GOAL source files under root_dir.""" - return [goal_file for file in os.walk(root_dir) for goal_file in glob.glob(os.path.join(file[0], '*.gc'))] + """Get all GOAL source files under root_dir.""" + return [goal_file for file in os.walk(root_dir) for goal_file in glob.glob(os.path.join(file[0], '*.gc'))] + def lines_in_file(file_path): - with open(file_path) as f: - lines = 0 - for _ in f: - lines += 1 - return lines + with open(file_path) as f: + lines = 0 + for _ in f: + lines += 1 + return lines def print_table(stats, total_gc_files): - total_lines = 0 - print("| {: <24} | {: <6} |".format("file name", "lines")) - print("-------------------------------------") - for x in stats: - print(" {: <24} | {: >6} |".format(x[0], x[1])) - total_lines += x[1] - print("-------------------------------------") - print("| {: <24} | {: >6} |".format("TOTAL", total_lines)) - print("-------------------------------------") - estimated_lines = 500000 - print("Progress: {}/{} lines ({:.2f}%)".format(total_lines, estimated_lines, 100. * total_lines / estimated_lines)) - print("{}/{} files modified from template ({:.2f}%)".format(len(stats), total_gc_files, 100. * len(stats)/total_gc_files)) - + total_lines = 0 + print("| {: <24} | {: <6} |".format("file name", "lines")) + print("-------------------------------------") + for x in stats: + print(" {: <24} | {: >6} |".format(x[0], x[1])) + total_lines += x[1] + print("-------------------------------------") + print("| {: <24} | {: >6} |".format("TOTAL", total_lines)) + print("-------------------------------------") + estimated_lines = 500000 + print("Progress: {}/{} lines ({:.2f}%)".format(total_lines, estimated_lines, 100. * total_lines / estimated_lines)) + print("{}/{} files modified from template ({:.2f}%)".format(len(stats), total_gc_files, + 100. * len(stats) / total_gc_files)) def main(): - parser = argparse.ArgumentParser() - parser.add_argument(dest='goal_src', help='the goal_src folder') - args = parser.parse_args() - all_files = get_goal_files(args.goal_src) + parser = argparse.ArgumentParser() + parser.add_argument(dest='goal_src', help='the goal_src folder') + args = parser.parse_args() + all_files = get_goal_files(args.goal_src) - file_stats = [] - total_gc_files = 0 - excluded_files = {"all_files.gc", "goal-lib.gc", "ocean-trans-tables.gc", "ocean-frames.gc", "ocean-tables.gc"} + file_stats = [] + total_gc_files = 0 + excluded_files = {"game_dgos.gc", "all_files.gc", "goal-lib.gc", "ocean-trans-tables.gc", "ocean-frames.gc", + "ocean-tables.gc"} + for fn in all_files: + short_name = os.path.basename(fn) + line_count = lines_in_file(fn) - for fn in all_files: - short_name = os.path.basename(fn) - line_count = lines_in_file(fn) + if short_name in excluded_files: + continue - if short_name in excluded_files: - continue + total_gc_files += 1 - total_gc_files += 1 + if line_count == 7 or short_name in excluded_files: + # the template has 7 lines, just skip it. + continue - if line_count == 7 or short_name in excluded_files: - # the template has 7 lines, just skip it. - continue + file_stats.append((short_name, line_count)) + file_stats.sort(key=lambda x: x[1]) - file_stats.append((short_name, line_count)) - file_stats.sort(key=lambda x: x[1]) - - print_table(file_stats, total_gc_files) + print_table(file_stats, total_gc_files) if __name__ == "__main__": - main() + main() diff --git a/test/decompiler/reference/all_forward_declarations.gc b/test/decompiler/reference/all_forward_declarations.gc index f4ab66af29..a74bb13ab0 100644 --- a/test/decompiler/reference/all_forward_declarations.gc +++ b/test/decompiler/reference/all_forward_declarations.gc @@ -555,4 +555,27 @@ ;; mood tables (declare-type ocean-map basic) -(define-extern *ocean-map-village2* ocean-map) \ No newline at end of file +(define-extern *ocean-map-village2* ocean-map) + +(deftype continue-point (basic) + ((name basic :offset-assert 4) + (level basic :offset-assert 8) + (flags uint32 :offset-assert 12) + (trans vector :inline :offset-assert 16) + (quat vector :inline :offset-assert 32) + (camera-trans vector :inline :offset-assert 48) + (camera-rot float 9 :offset-assert 64) + (load-commands pair :offset-assert 100) + (vis-nick basic :offset-assert 104) + (lev0 basic :offset-assert 108) + (disp0 basic :offset-assert 112) + (lev1 basic :offset-assert 116) + (disp1 basic :offset-assert 120) + ) + :method-count-assert 10 + :size-assert #x7c + :flag-assert #xa0000007c + (:methods + (dummy-9 () none 9) + ) + ) \ No newline at end of file diff --git a/test/decompiler/reference/engine/level/level-info_REF.gc b/test/decompiler/reference/engine/level/level-info_REF.gc new file mode 100644 index 0000000000..cf093dc201 --- /dev/null +++ b/test/decompiler/reference/engine/level/level-info_REF.gc @@ -0,0 +1,3501 @@ +;;-*-Lisp-*- +(in-package goal) + +;; definition for symbol training, type level-load-info +(define + training + (new 'static 'level-load-info + :name-list + (new 'static 'array basic 3 'training 'training-vis 'tra) + :index 1 + :packages '(training) + :sound-banks '(training) + :music-bank 'village1 + :ambient-sounds '() + :mood '*training-mood* + :mood-func 'update-mood-training + :ocean '*ocean-map-village1* + :sky #t + :sun-fade 1.0 + :continues + '( + (new 'static 'continue-point + :name "training-start" + :level 'training + :trans + (new 'static 'vector :x -5393626.5 :y 28072.346 :z 4332472.5 :w 1.0) + :quat + (new 'static 'vector :y 0.9995 :w 0.0297) + :camera-trans + (new 'static 'vector :x -5426915.0 :y 45930.906 :z 4353156.0 :w 1.0) + :camera-rot + (new 'static 'array float 9 + -0.5571 + 0.0 + -0.8304 + 0.1264 + 0.9883 + -0.0848 + 0.8207 + -0.1522 + -0.5506 + ) + :load-commands + '( + (special + "med-res-level-1" + #t + ) + (special + "med-res-level-2" + #t + ) + (special + "med-res-level-4" + #t + ) + (special + "med-res-level-6" + #t + ) + (special + "med-res-level-7" + #t + ) + (special + "med-res-level-8" + #t + ) + (special + "med-res-level-9" + #t + ) + (special + "med-res-level-14" + #t + ) + (special "med-res-level-22" #t) (special "med-res-level-23" #t) + ) + :vis-nick 'tra + :lev0 'training + :disp0 'display + :lev1 'village1 + :disp1 'special + ) + (new 'static 'continue-point + :name "training-warp" + :level 'training + :flags #x4 + :trans + (new 'static 'vector :x -5383524.0 :y 28019.098 :z 4360302.0 :w 1.0) + :quat + (new 'static 'vector :y 0.084 :w 0.9964) + :camera-trans + (new 'static 'vector :x -5366765.0 :y 45646.234 :z 4325889.0 :w 1.0) + :camera-rot + (new 'static 'array float 9 + 0.9057 + 0.0 + 0.4238 + -0.0666 + 0.9875 + 0.1424 + -0.4186 + -0.1572 + 0.8944 + ) + :load-commands + '( + (special + "med-res-level-1" + #t + ) + (special + "med-res-level-2" + #t + ) + (special + "med-res-level-4" + #t + ) + (special + "med-res-level-6" + #t + ) + (special + "med-res-level-7" + #t + ) + (special + "med-res-level-8" + #t + ) + (special + "med-res-level-9" + #t + ) + (special + "med-res-level-14" + #t + ) + (special "med-res-level-22" #t) (special "med-res-level-23" #t) + ) + :vis-nick 'tra + :lev0 'training + :disp0 'display + :lev1 'village1 + :disp1 'special + ) + (new 'static 'continue-point + :name "game-start" + :level 'training + :flags #x404 + :trans + (new 'static 'vector :x -5393740.5 :y 28259.533 :z 4360945.5 :w 1.0) + :quat + (new 'static 'vector :y 0.9993 :w 0.0359) + :camera-trans + (new 'static 'vector :x -5434444.5 :y 47050.344 :z 4372832.5 :w 1.0) + :camera-rot + (new 'static 'array float 9 + -0.3536 + 0.0 + -0.9353 + 0.1315 + 0.99 + -0.0497 + 0.926 + -0.1406 + -0.35 + ) + :load-commands + '( + (special + "med-res-level-1" + #t + ) + (special + "med-res-level-2" + #t + ) + (special + "med-res-level-4" + #t + ) + (special + "med-res-level-6" + #t + ) + (special + "med-res-level-7" + #t + ) + (special + "med-res-level-8" + #t + ) + (special + "med-res-level-9" + #t + ) + (special + "med-res-level-14" + #t + ) + (special "med-res-level-22" #t) (special "med-res-level-23" #t) + ) + :vis-nick 'tra + :lev0 'training + :disp0 'display + :lev1 'village1 + :disp1 'special + ) + ) + :tasks + '( + (the binteger 92) (the binteger 93) (the binteger 94) (the binteger 95) + ) + :priority 100 + :load-commands '() + :alt-load-commands '() + :bsp-mask #xffffffffffffffff + :bsphere + (new 'static 'sphere :x -5079040.0 :z 4055040.0 :w 1024000.0) + :buzzer 95 + :bottom-height -466944.0 + :run-packages '("common" "villagep") + :wait-for-load #f + ) + ) + +;; definition for symbol village1, type level-load-info +(define + village1 + (new 'static 'level-load-info + :name-list + (new 'static 'array basic 3 'village1 'village1-vis 'vi1) + :index 2 + :packages '(village1) + :sound-banks '(village1) + :music-bank 'village1 + :ambient-sounds '() + :mood '*village1-mood* + :mood-func 'update-mood-village1 + :ocean '*ocean-map-village1* + :sky #t + :sun-fade 1.0 + :continues + '( + (new 'static 'continue-point + :name "village1-hut" + :level 'village1 + :trans + (new 'static 'vector :x -638860.06 :y 139319.7 :z 769990.6 :w 1.0) + :quat + (new 'static 'vector :y -0.9889 :w -0.148) + :camera-trans + (new 'static 'vector :x -668114.1 :y 164536.31 :z 828633.06 :w 1.0) + :camera-rot + (new 'static 'array float 9 + -0.8947 + 0.0 + -0.4464 + 0.1082 + 0.9701 + -0.2169 + 0.4331 + -0.2424 + -0.868 + ) + :load-commands '() + :vis-nick 'vi1 + :lev0 'village1 + :disp0 'display + :lev1 'beach + :disp1 #f + ) + (new 'static 'continue-point + :name "village1-intro" + :level 'village1 + :flags #x24 + :trans + (new 'static 'vector :x -518468.8 :y 189424.03 :z 868568.7 :w 1.0) + :quat + (new 'static 'vector :y 0.591 :w 0.8066) + :camera-trans + (new 'static 'vector :x -559109.3 :y 200461.92 :z 826073.06 :w 1.0) + :camera-rot + (new 'static 'array float 9 + 0.7221 + 0.0 + -0.6917 + -0.0517 + 0.9972 + -0.054 + 0.6897 + 0.0747 + 0.7201 + ) + :load-commands '() + :vis-nick 'vi1 + :lev0 'village1 + :disp0 'display + :lev1 #f + :disp1 #f + ) + (new 'static 'continue-point + :name "village1-warp" + :level 'village1 + :flags #x804 + :trans + (new 'static 'vector :x -518468.8 :y 189424.03 :z 868568.7 :w 1.0) + :quat + (new 'static 'vector :y 0.591 :w 0.8066) + :camera-trans + (new 'static 'vector :x -559109.3 :y 200461.92 :z 826073.06 :w 1.0) + :camera-rot + (new 'static 'array float 9 + 0.7221 + 0.0 + -0.6917 + -0.0517 + 0.9972 + -0.054 + 0.6897 + 0.0747 + 0.7201 + ) + :load-commands '() + :vis-nick 'vi1 + :lev0 'village1 + :disp0 'display + :lev1 'beach + :disp1 #f + ) + (new 'static 'continue-point + :name "village1-demo-convo" + :level 'village1 + :flags #x40 + :trans + (new 'static 'vector :x -542529.1 :y 189424.03 :z 847101.94 :w 1.0) + :quat + (new 'static 'vector :y -0.1717 :w -0.9851) + :camera-trans + (new 'static 'vector :x -559085.2 :y 202996.53 :z 826054.25 :w 1.0) + :camera-rot + (new 'static 'array float 9 + 0.7868 + 0.0 + -0.6171 + 0.0775 + 0.992 + 0.0989 + 0.6122 + -0.1257 + 0.7806 + ) + :load-commands '() + :vis-nick 'vi1 + :lev0 'village1 + :disp0 'display + :lev1 'misty + :disp1 #f + ) + (new 'static 'continue-point + :name "intro-start" + :level 'village1 + :flags #x10 + :trans + (new 'static 'vector :x 164316.78 :y 15128.576 :z 3390588.0 :w 1.0) + :quat + (new 'static 'vector :y -0.2339 :w 0.9722) + :camera-trans + (new 'static 'vector :x 204089.34 :y 36257.793 :z 3358341.0 :w 1.0) + :camera-rot + (new 'static 'array float 9 + 0.6381 + 0.0 + 0.7699 + -0.0938 + 0.9925 + 0.0777 + -0.7642 + -0.1218 + 0.6333 + ) + :load-commands + '( + (special + "med-res-level-1" + #t + ) + (special + "med-res-level-2" + #t + ) + (special + "med-res-level-4" + #t + ) + (special + "med-res-level-6" + #t + ) + (special + "med-res-level-7" + #t + ) + (special + "med-res-level-8" + #t + ) + (special + "med-res-level-9" + #t + ) + (special + "med-res-level-11" + #t + ) + (special + "med-res-level-14" + #t + ) + (special + "med-res-level-22" + #t + ) + (special "med-res-level-23" #t) (special "fishermans-boat-2" #t) + ) + :vis-nick 'vi1 + :lev0 'village1 + :disp0 'display + :lev1 'misty + :disp1 #f + ) + ) + :tasks + '( + (the binteger 10) (the binteger 11) (the binteger 12) (the binteger 13) (the binteger 14) (the binteger 75) + ) + :priority #xc8 + :load-commands '() + :alt-load-commands + '( + ((display village1) + (load misty) + ) + ((special village1) (display misty)) ((display village1) (load beach)) + ) + :bsp-mask #xffffffffffffffff + :bsphere + (new 'static 'sphere :x -444416.0 :y 133120.0 :z 360448.0 :w 843776.0) + :buzzer 75 + :bottom-height -81920.0 + :run-packages '("common") + :wait-for-load #t + ) + ) + +;; definition for symbol beach, type level-load-info +(define + beach + (new 'static 'level-load-info + :name-list + (new 'static 'array basic 3 'beach 'beach-vis 'bea) + :index 3 + :packages '(beach) + :sound-banks '(beach) + :music-bank 'beach + :ambient-sounds '() + :mood '*beach-mood* + :mood-func 'update-mood-village1 + :ocean '*ocean-map-village1* + :sky #t + :sun-fade 1.0 + :continues + '( + (new 'static 'continue-point + :name "beach-start" + :level 'beach + :trans + (new 'static 'vector :x -504960.22 :y 9477.325 :z -223513.81 :w 1.0) + :quat + (new 'static 'vector :y 0.9486 :w -0.3163) + :camera-trans + (new 'static 'vector :x -487550.16 :y 28354.15 :z -184211.05 :w 1.0) + :camera-rot + (new 'static 'array float 9 + -0.9139 + 0.0 + 0.4058 + -0.0551 + 0.9907 + -0.1241 + -0.4021 + -0.1358 + -0.9054 + ) + :load-commands '() + :vis-nick 'bea + :lev0 'beach + :disp0 'display + :lev1 'village1 + :disp1 'display + ) + ) + :tasks + '( + (the binteger 15) (the binteger 16) (the binteger 17) (the binteger 18) (the binteger 19) (the binteger 20) (the binteger 21) (the binteger 22) + ) + :priority 100 + :load-commands '() + :alt-load-commands '() + :bsp-mask #xffffffffffffffff + :bsphere + (new 'static 'sphere :x -819200.0 :z -1556480.0 :w 1474560.0) + :buzzer 20 + :bottom-height -81920.0 + :run-packages '("common") + :wait-for-load #t + ) + ) + +;; definition for symbol jungle, type level-load-info +(define + jungle + (new 'static 'level-load-info + :name-list + (new 'static 'array basic 3 'jungle 'jungle-vis 'jun) + :index 4 + :packages '(jungle) + :sound-banks '(jungle) + :music-bank 'jungle + :ambient-sounds '() + :mood '*jungle-mood* + :mood-func 'update-mood-jungle + :ocean '*ocean-map-village1* + :sky #t + :sun-fade 1.0 + :continues + '( + (new 'static 'continue-point + :name "jungle-start" + :level 'jungle + :trans + (new 'static 'vector :x 1057631.9 :y 86404.305 :z -647140.56 :w 1.0) + :quat + (new 'static 'vector :y -0.9009 :w -0.4339) + :camera-trans + (new 'static 'vector :x 1004424.8 :y 111181.82 :z -611527.9 :w 1.0) + :camera-rot + (new 'static 'array float 9 + -0.5568 + 0.0 + -0.8306 + 0.201 + 0.9702 + -0.1347 + 0.8059 + -0.2419 + -0.5402 + ) + :load-commands '() + :vis-nick 'jun + :lev0 'jungle + :disp0 'display + :lev1 'village1 + :disp1 'display + ) + ) + :tasks + '( + (the binteger 2) (the binteger 3) (the binteger 4) (the binteger 5) (the binteger 7) (the binteger 8) (the binteger 9) + ) + :priority 100 + :load-commands '() + :alt-load-commands + '( + ((display jungle) (display jungleb)) ((display jungle) (display village1)) + ) + :bsp-mask #xffffffffffffffff + :bsphere + (new 'static 'sphere :x 1474560.0 :y 2519040.0 :z -983040.0 :w 2457600.0) + :buzzer 7 + :bottom-height -81920.0 + :run-packages '("common") + :wait-for-load #t + ) + ) + +;; definition for symbol jungleb, type level-load-info +(define + jungleb + (new 'static 'level-load-info + :name-list + (new 'static 'array basic 3 'jungleb 'jungleb-vis 'jub) + :index 5 + :packages '(jungleb) + :sound-banks '(jungleb) + :music-bank 'jungleb + :ambient-sounds '() + :mood '*jungleb-mood* + :mood-func 'update-mood-jungleb + :ocean 'none + :sky #f + :continues + '( + (new 'static 'continue-point + :name "jungle-tower" + :level 'jungleb + :trans + (new 'static 'vector :x 1469510.0 :y -204745.52 :z -959058.3 :w 1.0) + :quat + (new 'static 'vector :y -0.6194 :w -0.785) + :camera-trans + (new 'static 'vector :x 1485298.5 :y -189972.08 :z -936548.75 :w 1.0) + :camera-rot + (new 'static 'array float 9 + -0.8614 + 0.0 + 0.5078 + -0.1177 + 0.9727 + -0.1997 + -0.4939 + -0.2318 + -0.8379 + ) + :load-commands '() + :vis-nick 'jub + :lev0 'jungle + :disp0 'display + :lev1 'jungleb + :disp1 'display + ) + ) + :tasks '() + :priority 100 + :load-commands '() + :alt-load-commands '() + :bsphere + (new 'static 'sphere :x 1486848.0 :y -1269760.0 :z -1064960.0 :w 1228800.0) + :buzzer 7 + :bottom-height -327680.0 + :run-packages '("common" "jungle") + :wait-for-load #f + ) + ) + +;; definition for symbol misty, type level-load-info +(define + misty + (new 'static 'level-load-info + :name-list + (new 'static 'array basic 3 'misty 'misty-vis 'mis) + :index 6 + :packages '(misty) + :sound-banks '(misty) + :music-bank 'misty + :ambient-sounds '() + :mood '*misty-mood* + :mood-func 'update-mood-misty + :ocean '*ocean-map-village1* + :sky #t + :sun-fade 0.25 + :continues + '( + (new 'static 'continue-point + :name "misty-start" + :level 'misty + :trans + (new 'static 'vector :x 164316.78 :y 15128.576 :z 3390588.0 :w 1.0) + :quat + (new 'static 'vector :y -0.2339 :w 0.9722) + :camera-trans + (new 'static 'vector :x 204089.34 :y 36257.793 :z 3358341.0 :w 1.0) + :camera-rot + (new 'static 'array float 9 + 0.6381 + 0.0 + 0.7699 + -0.0938 + 0.9925 + 0.0777 + -0.7642 + -0.1218 + 0.6333 + ) + :load-commands + '( + (special + "med-res-level-1" + #t + ) + (special + "med-res-level-2" + #t + ) + (special + "med-res-level-4" + #t + ) + (special + "med-res-level-6" + #t + ) + (special + "med-res-level-7" + #t + ) + (special + "med-res-level-8" + #t + ) + (special + "med-res-level-9" + #t + ) + (special + "med-res-level-11" + #t + ) + (special + "med-res-level-14" + #t + ) + (special + "med-res-level-22" + #t + ) + (special "med-res-level-23" #t) (special "fishermans-boat-2" #t) + ) + :vis-nick 'mis + :lev0 'misty + :disp0 'display + :lev1 'village1 + :disp1 'special + ) + (new 'static 'continue-point + :name "misty-silo" + :level 'misty + :trans + (new 'static 'vector :x -672503.0 :y 82131.35 :z 3651465.8 :w 1.0) + :quat + (new 'static 'vector :y 0.0878 :w 0.9961) + :camera-trans + (new 'static 'vector :x -675754.0 :y 102028.91 :z 3604800.8 :w 1.0) + :camera-rot + (new 'static 'array float 9 + 0.9975 + 0.0 + -0.0704 + 0.0086 + 0.9924 + 0.1223 + 0.0698 + -0.1226 + 0.9899 + ) + :load-commands + '( + (special + "med-res-level-1" + #t + ) + (special + "med-res-level-2" + #t + ) + (special + "med-res-level-4" + #t + ) + (special + "med-res-level-6" + #t + ) + (special + "med-res-level-7" + #t + ) + (special + "med-res-level-8" + #t + ) + (special + "med-res-level-9" + #t + ) + (special + "med-res-level-11" + #t + ) + (special + "med-res-level-14" + #t + ) + (special + "med-res-level-22" + #t + ) + (special "med-res-level-23" #t) (special "fishermans-boat-2" #t) + ) + :vis-nick 'mis + :lev0 'misty + :disp0 'display + :lev1 'village1 + :disp1 'special + ) + (new 'static 'continue-point + :name "misty-bike" + :level 'misty + :trans + (new 'static 'vector :x 302533.44 :y 35901.848 :z 4138967.8 :w 1.0) + :quat + (new 'static 'vector :y -0.2809 :w 0.9597) + :camera-trans + (new 'static 'vector :x 338476.25 :y 55700.684 :z 4109729.0 :w 1.0) + :camera-rot + (new 'static 'array float 9 + 0.6308 + 0.0 + 0.7759 + -0.096 + 0.9923 + 0.078 + -0.7699 + -0.1237 + 0.6259 + ) + :load-commands + '( + (special + "med-res-level-1" + #t + ) + (special + "med-res-level-2" + #t + ) + (special + "med-res-level-4" + #t + ) + (special + "med-res-level-6" + #t + ) + (special + "med-res-level-7" + #t + ) + (special + "med-res-level-8" + #t + ) + (special + "med-res-level-9" + #t + ) + (special + "med-res-level-11" + #t + ) + (special + "med-res-level-14" + #t + ) + (special + "med-res-level-22" + #t + ) + (special "med-res-level-23" #t) (special "fishermans-boat-2" #t) + ) + :vis-nick 'mis + :lev0 'misty + :disp0 'display + :lev1 'village1 + :disp1 'special + ) + (new 'static 'continue-point + :name "misty-backside" + :level 'misty + :trans + (new 'static 'vector :x -304192.72 :y 33270.99 :z 4646525.0 :w 1.0) + :quat + (new 'static 'vector :y -0.8443 :w -0.5357) + :camera-trans + (new 'static 'vector :x -346989.78 :y 54377.676 :z 4674685.5 :w 1.0) + :camera-rot + (new 'static 'array float 9 + -0.5497 + 0.0 + -0.8353 + 0.1009 + 0.9926 + -0.0664 + 0.8291 + -0.1208 + -0.5457 + ) + :load-commands + '( + (special + "med-res-level-1" + #t + ) + (special + "med-res-level-2" + #t + ) + (special + "med-res-level-4" + #t + ) + (special + "med-res-level-6" + #t + ) + (special + "med-res-level-7" + #t + ) + (special + "med-res-level-8" + #t + ) + (special + "med-res-level-9" + #t + ) + (special + "med-res-level-11" + #t + ) + (special + "med-res-level-14" + #t + ) + (special + "med-res-level-22" + #t + ) + (special "med-res-level-23" #t) (special "fishermans-boat-2" #t) + ) + :vis-nick 'mis + :lev0 'misty + :disp0 'display + :lev1 'village1 + :disp1 'special + ) + (new 'static 'continue-point + :name "misty-silo2" + :level 'misty + :trans + (new 'static 'vector :x -898000.06 :y 98038.17 :z 4162091.0 :w 1.0) + :quat + (new 'static 'vector :y -0.1102 :w 0.9938) + :camera-trans + (new 'static 'vector :x -931459.9 :y 118198.68 :z 4196081.0 :w 1.0) + :camera-rot + (new 'static 'array float 9 + -0.6605 + 0.0 + -0.7508 + 0.1086 + 0.9894 + -0.0955 + 0.7429 + -0.1447 + -0.6535 + ) + :load-commands + '( + (special + "med-res-level-1" + #t + ) + (special + "med-res-level-2" + #t + ) + (special + "med-res-level-4" + #t + ) + (special + "med-res-level-6" + #t + ) + (special + "med-res-level-7" + #t + ) + (special + "med-res-level-8" + #t + ) + (special + "med-res-level-9" + #t + ) + (special + "med-res-level-11" + #t + ) + (special + "med-res-level-14" + #t + ) + (special + "med-res-level-22" + #t + ) + (special "med-res-level-23" #t) (special "fishermans-boat-2" #t) + ) + :vis-nick 'mis + :lev0 'misty + :disp0 'display + :lev1 'village1 + :disp1 'special + ) + ) + :tasks + '( + (the binteger 23) (the binteger 24) (the binteger 25) (the binteger 26) (the binteger 27) (the binteger 28) (the binteger 29) (the binteger 30) + ) + :priority 100 + :load-commands '() + :alt-load-commands '() + :bsp-mask #xffffffffffffffff + :bsphere + (new 'static 'sphere :z 4096000.0 :w 1269760.0) + :buzzer 28 + :bottom-height -81920.0 + :run-packages '("common") + :wait-for-load #f + ) + ) + +;; definition for symbol firecanyon, type level-load-info +(define + firecanyon + (new 'static 'level-load-info + :name-list + (new 'static 'array basic 3 'firecanyon 'firecanyon-vis 'fic) + :index 7 + :packages '(firecanyon) + :sound-banks '(firecanyon) + :music-bank 'firecanyon + :ambient-sounds '() + :mood '*firecanyon-mood* + :mood-func 'update-mood-firecanyon + :ocean 'none + :sky #t + :continues + '( + (new 'static 'continue-point + :name "firecanyon-start" + :level 'firecanyon + :trans + (new 'static 'vector :x -87377.1 :y 126444.75 :z -681697.25 :w 1.0) + :quat + (new 'static 'vector :y 0.9921 :w -0.1246) + :camera-trans + (new 'static 'vector :x -84559.055 :y 144685.47 :z -641194.0 :w 1.0) + :camera-rot + (new 'static 'array float 9 + -0.9976 + 0.0 + 0.0688 + -0.01 + 0.9893 + -0.1452 + -0.068 + -0.1456 + -0.9869 + ) + :load-commands '() + :vis-nick 'fic + :lev0 'firecanyon + :disp0 'display + :lev1 'village1 + :disp1 'display + ) + (new 'static 'continue-point + :name "firecanyon-end" + :level 'firecanyon + :trans + (new 'static 'vector :x 1360576.1 :y 126976.0 :z -5839533.5 :w 1.0) + :quat + (new 'static 'vector :y 0.1666 :w 0.986) + :camera-trans + (new 'static 'vector :x 1378912.6 :y 144452.81 :z -5872527.0 :w 1.0) + :camera-rot + (new 'static 'array float 9 + 0.8847 + 0.0 + 0.466 + -0.0744 + 0.9871 + 0.1414 + -0.46 + -0.1598 + 0.8733 + ) + :load-commands '() + :vis-nick 'fic + :lev0 'village2 + :disp0 'display + :lev1 'firecanyon + :disp1 'display + ) + ) + :tasks + '( + (the binteger 68) (the binteger 69) + ) + :priority 100 + :load-commands '() + :alt-load-commands '() + :bsp-mask #xffffffffffffffff + :bsphere + (new 'static 'sphere :x 419840.0 :y 151552.0 :z -3006464.0 :w 2048000.0) + :buzzer 68 + :bottom-height -81920.0 + :run-packages '("common") + :wait-for-load #t + ) + ) + +;; definition for symbol village2, type level-load-info +(define + village2 + (new 'static 'level-load-info + :name-list + (new 'static 'array basic 3 'village2 'village2-vis 'vi2) + :index 8 + :packages '(village2) + :sound-banks '(village2) + :music-bank 'village2 + :ambient-sounds '() + :mood '*village2-mood* + :mood-func 'update-mood-village2 + :ocean '*ocean-map-village2* + :sky #t + :continues + '( + (new 'static 'continue-point + :name "village2-start" + :level 'village2 + :trans + (new 'static 'vector :x 1460961.2 :y 108562.02 :z -6161391.0 :w 1.0) + :quat + (new 'static 'vector :y 0.9917 :w 0.1278) + :camera-trans + (new 'static 'vector :x 1468018.8 :y 133790.92 :z -6096227.0 :w 1.0) + :camera-rot + (new 'static 'array float 9 + -0.9941 + 0.0 + 0.1076 + -0.0261 + 0.9699 + -0.2418 + -0.1044 + -0.2432 + -0.9643 + ) + :load-commands '() + :vis-nick 'vi2 + :lev0 'village2 + :disp0 'display + :lev1 'firecanyon + :disp1 #f + ) + (new 'static 'continue-point + :name "village2-warp" + :level 'village2 + :flags #x4 + :trans + (new 'static 'vector :x 1592492.9 :y 91648.0 :z -6328677.0 :w 1.0) + :quat + (new 'static 'vector :y 0.7469 :w 0.6648) + :camera-trans + (new 'static 'vector :x 1555766.1 :y 103759.46 :z -6318964.5 :w 1.0) + :camera-rot + (new 'static 'array float 9 + -0.2562 + 0.0 + -0.9666 + -0.0253 + 0.9996 + 0.0067 + 0.9662 + 0.0262 + -0.2561 + ) + :load-commands '() + :vis-nick 'vi2 + :lev0 'village2 + :disp0 'display + :lev1 'firecanyon + :disp1 #f + ) + (new 'static 'continue-point + :name "village2-dock" + :level 'village2 + :trans + (new 'static 'vector :x 1264346.8 :y 19451.494 :z -6833563.5 :w 1.0) + :quat + (new 'static 'vector :y 0.0258 :w 0.9996) + :camera-trans + (new 'static 'vector :x 1265547.2 :y 34647.656 :z -6862636.5 :w 1.0) + :camera-rot + (new 'static 'array float 9 + 0.9991 + 0.0 + 0.0411 + -0.0088 + 0.9764 + 0.2155 + -0.0401 + -0.2156 + 0.9756 + ) + :load-commands '() + :vis-nick 'vi2 + :lev0 'village2 + :disp0 'display + :lev1 'rolling + :disp1 #f + ) + ) + :tasks + '( + (the binteger 31) (the binteger 32) (the binteger 34) (the binteger 35) (the binteger 76) + ) + :priority #xc8 + :load-commands '() + :alt-load-commands '() + :bsp-mask #xffffffffffffffff + :bsphere + (new 'static 'sphere :x 1392640.0 :y 81920.0 :z -6770688.0 :w 696320.0) + :buzzer 76 + :bottom-height -81920.0 + :run-packages '("common") + :wait-for-load #t + ) + ) + +;; definition for symbol sunken, type level-load-info +(define + sunken + (new 'static 'level-load-info + :name-list + (new 'static 'array basic 3 'sunken 'sunken-vis 'sun) + :index 9 + :packages '(sunken) + :sound-banks '(sunken) + :music-bank 'sunken + :ambient-sounds '() + :mood '*sunken-mood* + :mood-func 'update-mood-sunken + :ocean '*ocean-map-sunken* + :sky #f + :continues + '( + (new 'static 'continue-point + :name "sunken-start" + :level 'sunken + :trans + (new 'static 'vector :x 2172095.2 :y -591749.94 :z -6721553.0 :w 1.0) + :quat + (new 'static 'vector :y -0.5083 :w 0.8611) + :camera-trans + (new 'static 'vector :x 2138871.5 :y -572296.4 :z -6751967.5 :w 1.0) + :camera-rot + (new 'static 'array float 9 + 0.7575 + 0.0 + -0.6527 + 0.0858 + 0.9913 + 0.0995 + 0.647 + -0.1314 + 0.7509 + ) + :load-commands '() + :vis-nick 'sun + :lev0 'sunken + :disp0 'display + :lev1 'village2 + :disp1 'display + ) + (new 'static 'continue-point + :name "sunken1" + :level 'sunken + :trans + (new 'static 'vector :x 3062988.5 :y -536575.56 :z -6527484.0 :w 1.0) + :quat + (new 'static 'vector :y 0.5304 :w 0.8477) + :camera-trans + (new 'static 'vector :x 3015461.2 :y -515480.38 :z -6546573.5 :w 1.0) + :camera-rot + (new 'static 'array float 9 + 0.3725 + 0.0 + -0.928 + 0.1121 + 0.9926 + 0.045 + 0.9212 + -0.1208 + 0.3697 + ) + :load-commands '() + :vis-nick 'sun + :lev0 'sunken + :disp0 'display + :lev1 'sunkenb + :disp1 #f + ) + (new 'static 'continue-point + :name "sunken2" + :level 'sunken + :trans + (new 'static 'vector :x 3133625.5 :y -569343.56 :z -6909587.5 :w 1.0) + :quat + (new 'static 'vector :y -0.9512 :w 0.3083) + :camera-trans + (new 'static 'vector :x 3170833.2 :y -548244.25 :z -6874378.0 :w 1.0) + :camera-rot + (new 'static 'array float 9 + -0.6872 + 0.0 + 0.7263 + -0.0878 + 0.9926 + -0.0831 + -0.721 + -0.1209 + -0.6822 + ) + :load-commands '() + :vis-nick 'sun + :lev0 'sunken + :disp0 'display + :lev1 'sunkenb + :disp1 #f + ) + (new 'static 'continue-point + :name "sunken-tube1" + :level 'sunken + :trans + (new 'static 'vector :x 2649601.8 :y -569343.56 :z -7132970.0 :w 1.0) + :quat + (new 'static 'vector :y 0.9936 :w 0.1124) + :camera-trans + (new 'static 'vector :x 2636150.2 :y -555656.4 :z -7114732.5 :w 1.0) + :camera-rot + (new 'static 'array float 9 + -0.8024 + 0.0 + -0.5967 + 0.1721 + 0.9574 + -0.2315 + 0.5713 + -0.2885 + -0.7683 + ) + :load-commands '() + :vis-nick 'sun + :lev0 'sunken + :disp0 'display + :lev1 'sunkenb + :disp1 #f + ) + ) + :tasks '() + :priority 100 + :load-commands '() + :alt-load-commands '() + :bsp-mask #xffffffffffffffff + :bsphere + (new 'static 'sphere :x 2867200.0 :y -2048000.0 :z -6553600.0 :w 2048000.0) + :buzzer 49 + :bottom-height -2048000.0 + :run-packages '("common") + :wait-for-load #f + ) + ) + +;; definition for symbol sunkenb, type level-load-info +(define + sunkenb + (new 'static 'level-load-info + :name-list + (new 'static 'array basic 3 'sunkenb 'sunkenb-vis 'sub) + :index 10 + :packages '() + :sound-banks '(sunken) + :music-bank 'sunken + :ambient-sounds '() + :mood '*sunkenb-mood* + :mood-func 'update-mood-sunken + :ocean '*ocean-map-sunken* + :sky #t + :continues + '( + (new 'static 'continue-point + :name "sunkenb-start" + :level 'sunkenb + :trans + (new 'static 'vector :x 2229231.2 :y -1019912.2 :z -6788748.5 :w 1.0) + :quat (new 'static 'vector :y 0.895 :w 0.446) + :camera-trans + (new 'static 'vector :x 2187840.0 :y -998915.7 :z -6759328.0 :w 1.0) + :camera-rot + (new 'static 'array float 9 + -0.5786 + 0.0 + -0.8155 + 0.0992 + 0.9925 + -0.0704 + 0.8094 + -0.1217 + -0.5743 + ) + :load-commands '((alive "exit-chamber-1")) + :vis-nick 'sub + :lev0 'sunken + :disp0 'display + :lev1 'sunkenb + :disp1 'display + ) + (new 'static 'continue-point + :name "sunkenb-helix" + :level 'sunkenb + :trans + (new 'static 'vector :x 2466572.8 :y -1838989.2 :z -7299582.0 :w 1.0) + :quat + (new 'static 'vector :y -0.8841 :w 0.4672) + :camera-trans + (new 'static 'vector :x 2515616.2 :y -1817888.4 :z -7284843.5 :w 1.0) + :camera-rot + (new 'static 'array float 9 + -0.2889 + 0.0 + 0.9573 + -0.1163 + 0.9925 + -0.0351 + -0.9502 + -0.1214 + -0.2867 + ) + :load-commands '() + :vis-nick 'sub + :lev0 'sunken + :disp0 'display + :lev1 'sunkenb + :disp1 'display + ) + ) + :tasks '() + :priority 100 + :load-commands '() + :alt-load-commands '() + :bsp-mask #xffffffffffffffff + :bsphere + (new 'static 'sphere :x 2867200.0 :y -2048000.0 :z -6553600.0 :w 2048000.0) + :buzzer 49 + :bottom-height -2048000.0 + :run-packages '("common" "sunken") + :wait-for-load #f + ) + ) + +;; definition for symbol swamp, type level-load-info +(define + swamp + (new 'static 'level-load-info + :name-list + (new 'static 'array basic 3 'swamp 'swamp-vis 'swa) + :index 11 + :packages '(swamp) + :sound-banks '(swamp) + :music-bank 'swamp + :ambient-sounds '() + :mood '*swamp-mood* + :mood-func 'update-mood-swamp + :ocean '*ocean-map-village2* + :sky #t + :continues + '( + (new 'static 'continue-point + :name "swamp-start" + :level 'swamp + :trans + (new 'static 'vector :x 1842537.2 :y 21027.227 :z -7333297.5 :w 1.0) + :quat + (new 'static 'vector :y -0.9933 :w 0.1153) + :camera-trans + (new 'static 'vector :x 1862529.9 :y 44371.56 :z -7277995.5 :w 1.0) + :camera-rot + (new 'static 'array float 9 + -0.9403 + 0.0 + 0.3402 + -0.0814 + 0.9708 + -0.2252 + -0.3303 + -0.2394 + -0.9129 + ) + :load-commands + '( + (special + "swamp-blimp-3" + #t + ) + (special + "precursor-arm-3" + #t + ) + (special + "swamp-tetherrock-13" + #t + ) + (special + "swamp-tetherrock-14" + #t + ) + (special "swamp-tetherrock-15" #t) (special "swamp-tetherrock-16" #t) + ) + :vis-nick 'swa + :lev0 'swamp + :disp0 'display + :lev1 'village2 + :disp1 'display + ) + (new 'static 'continue-point + :name "swamp-dock1" + :level 'swamp + :trans + (new 'static 'vector :x 1360386.9 :y 5823.693 :z -8218890.0 :w 1.0) + :quat + (new 'static 'vector :y -0.585 :w -0.811) + :camera-trans + (new 'static 'vector :x 1314475.6 :y 26164.838 :z -8234152.5 :w 1.0) + :camera-rot + (new 'static 'array float 9 + 0.3154 + 0.0 + -0.9489 + 0.1134 + 0.9928 + 0.0376 + 0.9421 + -0.1195 + 0.3131 + ) + :load-commands + '( + (special + "swamp-blimp-3" + #t + ) + (special + "precursor-arm-3" + #t + ) + (special + "swamp-tetherrock-13" + #t + ) + (special + "swamp-tetherrock-14" + #t + ) + (special "swamp-tetherrock-15" #t) (special "swamp-tetherrock-16" #t) + ) + :vis-nick 'swa + :lev0 'swamp + :disp0 'display + :lev1 'village2 + :disp1 'special-vis + ) + (new 'static 'continue-point + :name "swamp-cave1" + :level 'swamp + :trans + (new 'static 'vector :x 1553700.5 :y 1835.4176 :z -8258429.5 :w 1.0) + :quat + (new 'static 'vector :y -0.9871 :w -0.1599) + :camera-trans + (new 'static 'vector :x 1556873.2 :y 22715.598 :z -8208106.0 :w 1.0) + :camera-rot + (new 'static 'array float 9 + -0.9982 + 0.0 + 0.0596 + -0.0072 + 0.9926 + -0.1209 + -0.0592 + -0.1211 + -0.9908 + ) + :load-commands + '( + (special + "swamp-blimp-3" + #t + ) + (special + "precursor-arm-3" + #t + ) + (special + "swamp-tetherrock-13" + #t + ) + (special + "swamp-tetherrock-14" + #t + ) + (special "swamp-tetherrock-15" #t) (special "swamp-tetherrock-16" #t) + ) + :vis-nick 'swa + :lev0 'swamp + :disp0 'display + :lev1 'village2 + :disp1 'special-vis + ) + (new 'static 'continue-point + :name "swamp-dock2" + :level 'swamp + :trans + (new 'static 'vector :x 1645872.4 :y 36495.77 :z -8427323.0 :w 1.0) + :quat + (new 'static 'vector :y -0.8294 :w -0.5586) + :camera-trans + (new 'static 'vector :x 1599338.9 :y 57590.168 :z -8405954.0 :w 1.0) + :camera-rot + (new 'static 'array float 9 + -0.418 + 0.0 + -0.9084 + 0.1106 + 0.9925 + -0.0509 + 0.9016 + -0.1218 + -0.4149 + ) + :load-commands + '( + (special + "swamp-blimp-3" + #t + ) + (special + "precursor-arm-3" + #t + ) + (special + "swamp-tetherrock-13" + #t + ) + (special + "swamp-tetherrock-14" + #t + ) + (special "swamp-tetherrock-15" #t) (special "swamp-tetherrock-16" #t) + ) + :vis-nick 'swa + :lev0 'swamp + :disp0 'display + :lev1 'village2 + :disp1 'special-vis + ) + (new 'static 'continue-point + :name "swamp-cave2" + :level 'swamp + :trans + (new 'static 'vector :x 2037539.2 :y 1103.872 :z -8560013.0 :w 1.0) + :quat + (new 'static 'vector :y 0.0559 :w 0.9984) + :camera-trans + (new 'static 'vector :x 1995208.2 :y 21832.908 :z -8586304.0 :w 1.0) + :camera-rot + (new 'static 'array float 9 + 0.5516 + 0.0 + -0.834 + 0.097 + 0.9932 + 0.0641 + 0.8283 + -0.1163 + 0.5479 + ) + :load-commands + '( + (special + "swamp-blimp-3" + #t + ) + (special + "precursor-arm-3" + #t + ) + (special + "swamp-tetherrock-13" + #t + ) + (special + "swamp-tetherrock-14" + #t + ) + (special "swamp-tetherrock-15" #t) (special "swamp-tetherrock-16" #t) + ) + :vis-nick 'swa + :lev0 'swamp + :disp0 'display + :lev1 'village2 + :disp1 'special-vis + ) + (new 'static 'continue-point + :name "swamp-game" + :level 'swamp + :trans + (new 'static 'vector :x 2612289.2 :y -2047.5905 :z -8315907.5 :w 1.0) + :quat + (new 'static 'vector :y -0.6975 :w 0.7165) + :camera-trans + (new 'static 'vector :x 2661940.5 :y 20693.81 :z -8317980.5 :w 1.0) + :camera-rot + (new 'static 'array float 9 + 0.0406 + 0.0 + 0.9991 + -0.1452 + 0.9893 + 0.0059 + -0.9885 + -0.1453 + 0.0402 + ) + :load-commands + '( + (special + "swamp-blimp-3" + #t + ) + (special + "precursor-arm-3" + #t + ) + (special + "swamp-tetherrock-13" + #t + ) + (special + "swamp-tetherrock-14" + #t + ) + (special "swamp-tetherrock-15" #t) (special "swamp-tetherrock-16" #t) + ) + :vis-nick 'swa + :lev0 'swamp + :disp0 'display + :lev1 'village2 + :disp1 'special-vis + ) + (new 'static 'continue-point + :name "swamp-cave3" + :level 'swamp + :trans + (new 'static 'vector :x 2011811.4 :y 3711.7952 :z -7923027.0 :w 1.0) + :quat + (new 'static 'vector :y -0.5269 :w 0.8499) + :camera-trans + (new 'static 'vector :x 2053120.4 :y 22242.51 :z -7927784.5 :w 1.0) + :camera-rot + (new 'static 'array float 9 + 0.1145 + 0.0 + 0.9934 + -0.1412 + 0.9898 + 0.0162 + -0.9833 + -0.1422 + 0.1134 + ) + :load-commands + '( + (special + "swamp-blimp-3" + #t + ) + (special + "precursor-arm-3" + #t + ) + (special + "swamp-tetherrock-13" + #t + ) + (special + "swamp-tetherrock-14" + #t + ) + (special "swamp-tetherrock-15" #t) (special "swamp-tetherrock-16" #t) + ) + :vis-nick 'swa + :lev0 'swamp + :disp0 'display + :lev1 'village2 + :disp1 'special-vis + ) + ) + :tasks + '( + (the binteger 36) (the binteger 37) (the binteger 38) (the binteger 39) (the binteger 40) (the binteger 41) (the binteger 42) (the binteger 43) + ) + :priority 100 + :load-commands '() + :alt-load-commands '() + :bsp-mask #xffffffffffffffff + :bsphere + (new 'static 'sphere :x 1986560.0 :z -8417280.0 :w 1003520.0) + :buzzer 43 + :bottom-height -81920.0 + :run-packages '("common") + :wait-for-load #t + ) + ) + +;; definition for symbol rolling, type level-load-info +(define + rolling + (new 'static 'level-load-info + :name-list + (new 'static 'array basic 3 'rolling 'rolling-vis 'rol) + :index 12 + :packages '(rolling) + :sound-banks '(rolling) + :music-bank 'rolling + :ambient-sounds '() + :mood '*rolling-mood* + :mood-func 'update-mood-rolling + :ocean 'none + :sky #t + :continues + '( + (new 'static 'continue-point + :name "rolling-start" + :level 'rolling + :trans + (new 'static 'vector :x 432272.6 :y 42821.633 :z -6737529.0 :w 1.0) + :quat + (new 'static 'vector :y -0.545 :w 0.8383) + :camera-trans + (new 'static 'vector :x 494105.8 :y 67237.48 :z -6748524.0 :w 1.0) + :camera-rot + (new 'static 'array float 9 + 0.1759 + 0.0 + 0.9843 + -0.2371 + 0.9705 + 0.0423 + -0.9553 + -0.2409 + 0.1707 + ) + :load-commands '() + :vis-nick 'rol + :lev0 'rolling + :disp0 'display + :lev1 'village2 + :disp1 'display + ) + ) + :tasks + '( + (the binteger 52) (the binteger 53) (the binteger 54) (the binteger 55) (the binteger 56) (the binteger 57) (the binteger 58) (the binteger 59) + ) + :priority 100 + :load-commands '() + :alt-load-commands '() + :bsp-mask #xffffffffffffffff + :bsphere + (new 'static 'sphere :x -753664.0 :y 131072.0 :z -6569984.0 :w 974848.0) + :buzzer 57 + :bottom-height -81920.0 + :run-packages '("common") + :wait-for-load #t + ) + ) + +;; definition for symbol ogre, type level-load-info +(define + ogre + (new 'static 'level-load-info + :name-list + (new 'static 'array basic 3 'ogre 'ogre-vis 'ogr) + :index 13 + :packages '(ogre) + :sound-banks '(ogre) + :music-bank 'ogre + :ambient-sounds '() + :mood '*ogre-mood* + :mood-func 'update-mood-ogre + :ocean 'none + :sky #t + :continues + '( + (new 'static 'continue-point + :name "ogre-start" + :level 'ogre + :trans + (new 'static 'vector :x 849775.8 :y 163962.88 :z -7301166.5 :w 1.0) + :quat + (new 'static 'vector :y -0.9931 :w 0.1166) + :camera-trans + (new 'static 'vector :x 848906.25 :y 185056.88 :z -7249962.0 :w 1.0) + :camera-rot + (new 'static 'array float 9 + -0.9998 + 0.0 + -0.0159 + 0.0019 + 0.9925 + -0.1215 + 0.0158 + -0.1215 + -0.9924 + ) + :load-commands '() + :vis-nick 'ogr + :lev0 'ogre + :disp0 'display + :lev1 'village2 + :disp1 'display + ) + (new 'static 'continue-point + :name "ogre-race" + :level 'ogre + :trans + (new 'static 'vector :x 841424.9 :y 163801.1 :z -8205419.5 :w 1.0) + :quat + (new 'static 'vector :y -0.9857 :w 0.168) + :camera-trans + (new 'static 'vector :x 860479.9 :y 183815.38 :z -8162368.0 :w 1.0) + :camera-rot + (new 'static 'array float 9 + -0.9145 + 0.0 + 0.4045 + -0.0497 + 0.9924 + -0.1125 + -0.4015 + -0.123 + -0.9075 + ) + :load-commands '() + :vis-nick 'ogr + :lev0 'ogre + :disp0 'display + :lev1 'village2 + :disp1 #f + ) + (new 'static 'continue-point + :name "ogre-end" + :level 'ogre + :trans + (new 'static 'vector :x 3971233.5 :y 141227.62 :z -13935735.0 :w 1.0) + :quat + (new 'static 'vector :y -0.8721 :w 0.4892) + :camera-trans + (new 'static 'vector :x 3997892.2 :y 159604.73 :z -13904449.0 :w 1.0) + :camera-rot + (new 'static 'array float 9 + -0.7611 + 0.0 + 0.6485 + -0.0932 + 0.9896 + -0.1094 + -0.6417 + -0.1438 + -0.7532 + ) + :load-commands '() + :vis-nick 'ogr + :lev0 'village3 + :disp0 'display + :lev1 'ogre + :disp1 'display + ) + ) + :tasks + '( + (the binteger 86) (the binteger 87) (the binteger 110) (the binteger 88) + ) + :priority 100 + :load-commands '() + :alt-load-commands '() + :bsp-mask #xffffffffffffffff + :bsphere + (new 'static 'sphere :x 2334720.0 :y 180224.0 :z -10653696.0 :w 3653632.0) + :buzzer 88 + :bottom-height -81920.0 + :run-packages '("common") + :wait-for-load #t + ) + ) + +;; definition for symbol village3, type level-load-info +(define + village3 + (new 'static 'level-load-info + :name-list + (new 'static 'array basic 3 'village3 'village3-vis 'vi3) + :index 14 + :packages '(village3) + :sound-banks '(village3) + :music-bank 'village3 + :ambient-sounds '() + :mood '*village3-mood* + :mood-func 'update-mood-village3 + :ocean #f + :sky #t + :continues + '( + (new 'static 'continue-point + :name "village3-start" + :level 'village3 + :trans + (new 'static 'vector :x 4468021.5 :y 186608.03 :z -14054268.0 :w 1.0) + :quat + (new 'static 'vector :y 0.9999 :w 0.005) + :camera-trans + (new 'static 'vector :x 4469439.5 :y 207701.2 :z -14003077.0 :w 1.0) + :camera-rot + (new 'static 'array float 9 + -0.9996 + 0.0 + 0.0268 + -0.0032 + 0.9925 + -0.1216 + -0.0266 + -0.1216 + -0.9922 + ) + :load-commands '() + :vis-nick 'vi3 + :lev0 'village3 + :disp0 'display + :lev1 'ogre + :disp1 #f + ) + (new 'static 'continue-point + :name "village3-warp" + :level 'village3 + :flags #x4 + :trans + (new 'static 'vector :x 4549776.0 :y 215375.88 :z -14285922.0 :w 1.0) + :quat + (new 'static 'vector :y 0.681 :w 0.7322) + :camera-trans + (new 'static 'vector :x 4543255.0 :y 226776.67 :z -14313317.0 :w 1.0) + :camera-rot + (new 'static 'array float 9 + 0.8563 + 0.0 + -0.2763 + 0.0456 + 0.8875 + 0.1413 + 0.2725 + -0.1485 + 0.8446 + ) + :load-commands '() + :vis-nick 'vi3 + :lev0 'village3 + :disp0 'display + :lev1 'ogre + :disp1 #f + ) + (new 'static 'continue-point + :name "village3-farside" + :level 'village3 + :trans + (new 'static 'vector :x 4423744.0 :y 198723.58 :z -14530641.0 :w 1.0) + :quat + (new 'static 'vector :y 0.6611 :w 0.7502) + :camera-trans + (new 'static 'vector :x 4381844.0 :y 218599.83 :z -14551361.0 :w 1.0) + :camera-rot + (new 'static 'array float 9 + 0.442 + 0.0 + -0.8969 + 0.1099 + 0.9924 + 0.0541 + 0.8902 + -0.1225 + 0.4387 + ) + :load-commands '() + :vis-nick 'vi3 + :lev0 'village3 + :disp0 'display + :lev1 'snow + :disp1 #f + ) + ) + :tasks + '( + (the binteger 96) (the binteger 97) (the binteger 98) (the binteger 99) (the binteger 100) (the binteger 101) (the binteger 74) (the binteger 77) + ) + :priority #xc8 + :load-commands '() + :alt-load-commands '() + :bsp-mask #xffffffffffffffff + :bsphere + (new 'static 'sphere :x 4571136.0 :y 389120.0 :z -14323712.0 :w 409600.0) + :buzzer 77 + :bottom-height -81920.0 + :run-packages '("common") + :wait-for-load #f + ) + ) + +;; definition for symbol snow, type level-load-info +(define + snow + (new 'static 'level-load-info + :name-list + (new 'static 'array basic 3 'snow 'snow-vis 'sno) + :index 15 + :packages '(snow) + :sound-banks '(snow) + :music-bank 'snow + :ambient-sounds '() + :mood '*snow-mood* + :mood-func 'update-mood-snow + :ocean #f + :sky #t + :sun-fade 0.5 + :continues + '( + (new 'static 'continue-point + :name "snow-start" + :level 'snow + :trans + (new 'static 'vector :x 4256260.0 :y 983713.8 :z -14182752.0 :w 1.0) + :quat + (new 'static 'vector :y 0.7906 :w -0.6122) + :camera-trans + (new 'static 'vector :x 4303859.5 :y 1012363.7 :z -14156672.0 :w 1.0) + :camera-rot + (new 'static 'array float 9 + -0.4804 + 0.0 + 0.877 + -0.2049 + 0.9723 + -0.1122 + -0.8527 + -0.2336 + -0.4671 + ) + :load-commands '() + :vis-nick 'sno + :lev0 'snow + :disp0 'display + :lev1 'village3 + :disp1 'display + ) + (new 'static 'continue-point + :name "snow-fort" + :level 'snow + :trans + (new 'static 'vector :x 3430875.2 :y 897149.3 :z -13397581.0 :w 1.0) + :quat + (new 'static 'vector :y 0.0968 :w 0.9952) + :camera-trans + (new 'static 'vector :x 3428789.8 :y 918241.25 :z -13448724.0 :w 1.0) + :camera-rot + (new 'static 'array float 9 + 0.9991 + 0.0 + -0.0419 + 0.0051 + 0.9925 + 0.1216 + 0.0415 + -0.1217 + 0.9916 + ) + :load-commands '() + :vis-nick 'sno + :lev0 'snow + :disp0 'display + :lev1 'village3 + :disp1 'display + ) + (new 'static 'continue-point + :name "snow-flut-flut" + :level 'snow + :trans + (new 'static 'vector :x 2481850.0 :y 1054709.4 :z -13922438.0 :w 1.0) + :quat + (new 'static 'vector :y 0.8628 :w -0.5055) + :camera-trans + (new 'static 'vector :x 2497063.0 :y 1069339.9 :z -13900353.0 :w 1.0) + :camera-rot + (new 'static 'array float 9 + -0.8224 + 0.0 + 0.5688 + -0.135 + 0.9713 + -0.1953 + -0.5525 + -0.2374 + -0.7989 + ) + :load-commands '() + :vis-nick 'sno + :lev0 'snow + :disp0 'display + :lev1 'village3 + :disp1 'display + ) + (new 'static 'continue-point + :name "snow-pass-to-fort" + :level 'snow + :trans + (new 'static 'vector :x 3751044.8 :y 917612.1 :z -13828696.0 :w 1.0) + :quat + (new 'static 'vector :y -0.3387 :w -0.9408) + :camera-trans + (new 'static 'vector :x 3779776.0 :y 933972.8 :z -13845825.0 :w 1.0) + :camera-rot + (new 'static 'array float 9 + 0.6061 + 0.0 + 0.7953 + -0.1493 + 0.9822 + 0.1138 + -0.7812 + -0.1878 + 0.5953 + ) + :load-commands '() + :vis-nick 'sno + :lev0 'snow + :disp0 'display + :lev1 'village3 + :disp1 'display + ) + (new 'static 'continue-point + :name "snow-by-ice-lake" + :level 'snow + :trans + (new 'static 'vector :x 3151164.5 :y 1049638.1 :z -14246464.0 :w 1.0) + :quat + (new 'static 'vector :y -0.6226 :w 0.7824) + :camera-trans + (new 'static 'vector :x 3203905.2 :y 1080037.8 :z -14270850.0 :w 1.0) + :camera-rot + (new 'static 'array float 9 + 0.4189 + 0.0 + 0.9079 + -0.2169 + 0.971 + 0.1001 + -0.8816 + -0.2389 + 0.4068 + ) + :load-commands '() + :vis-nick 'sno + :lev0 'snow + :disp0 'display + :lev1 'village3 + :disp1 'display + ) + (new 'static 'continue-point + :name "snow-by-ice-lake-alt" + :level 'snow + :trans + (new 'static 'vector :x 3053335.0 :y 1048927.9 :z -14058945.0 :w 1.0) + :quat + (new 'static 'vector :y 0.9997 :w 0.022) + :camera-trans + (new 'static 'vector :x 3045845.5 :y 1068868.0 :z -14012568.0 :w 1.0) + :camera-rot + (new 'static 'array float 9 + -0.987 + 0.0 + -0.1601 + 0.0195 + 0.9924 + -0.1207 + 0.1589 + -0.1223 + -0.9796 + ) + :load-commands '() + :vis-nick 'sno + :lev0 'snow + :disp0 'display + :lev1 'village3 + :disp1 'display + ) + (new 'static 'continue-point + :name "snow-outside-fort" + :level 'snow + :trans + (new 'static 'vector :x 3431014.0 :y 901474.7 :z -13600187.0 :w 1.0) + :quat + (new 'static 'vector :y -0.0954 :w -0.9954) + :camera-trans + (new 'static 'vector :x 3429969.0 :y 922565.44 :z -13651353.0 :w 1.0) + :camera-rot + (new 'static 'array float 9 + 0.9998 + 0.0 + -0.0196 + 0.0023 + 0.9926 + 0.1213 + 0.0195 + -0.1213 + 0.9924 + ) + :load-commands '() + :vis-nick 'sno + :lev0 'snow + :disp0 'display + :lev1 'village3 + :disp1 'display + ) + (new 'static 'continue-point + :name "snow-outside-cave" + :level 'snow + :trans + (new 'static 'vector :x 3200864.2 :y 907400.4 :z -13676660.0 :w 1.0) + :quat + (new 'static 'vector :y 0.5867 :w -0.8097) + :camera-trans + (new 'static 'vector :x 3247600.8 :y 928464.06 :z -13697606.0 :w 1.0) + :camera-rot + (new 'static 'array float 9 + 0.4062 + 0.0 + 0.9137 + -0.1107 + 0.9926 + 0.0492 + -0.907 + -0.1211 + 0.4032 + ) + :load-commands '() + :vis-nick 'sno + :lev0 'snow + :disp0 'display + :lev1 'village3 + :disp1 'display + ) + (new 'static 'continue-point + :name "snow-across-from-flut" + :level 'snow + :trans + (new 'static 'vector :x 2721898.5 :y 1049845.0 :z -13743428.0 :w 1.0) + :quat + (new 'static 'vector :y -0.7688 :w -0.6394) + :camera-trans + (new 'static 'vector :x 2712702.5 :y 1070288.5 :z -13791593.0 :w 1.0) + :camera-rot + (new 'static 'array float 9 + 0.9554 + 0.0 + -0.2951 + 0.0343 + 0.9932 + 0.1111 + 0.2931 + -0.1163 + 0.9489 + ) + :load-commands '() + :vis-nick 'sno + :lev0 'snow + :disp0 'display + :lev1 'village3 + :disp1 'display + ) + ) + :tasks + '( + (the binteger 60) (the binteger 61) (the binteger 62) (the binteger 63) (the binteger 64) (the binteger 66) (the binteger 67) (the binteger 65) + ) + :priority 100 + :load-commands '() + :alt-load-commands '() + :bsp-mask #xffffffffffffffff + :bsphere + (new 'static 'sphere :x 3072000.0 :y 1142784.0 :z -14028800.0 :w 1290240.0) + :buzzer 65 + :bottom-height 524288.0 + :run-packages '("common") + :wait-for-load #f + ) + ) + +;; definition for symbol maincave, type level-load-info +(define + maincave + (new 'static 'level-load-info + :name-list + (new 'static 'array basic 3 'maincave 'maincave-vis 'mai) + :index 16 + :packages '(maincave) + :sound-banks '(maincave) + :music-bank 'maincave + :ambient-sounds '() + :mood '*maincave-mood* + :mood-func 'update-mood-maincave + :ocean #f + :sky #f + :continues + '( + (new 'static 'continue-point + :name "maincave-start" + :level 'maincave + :trans + (new 'static 'vector :x 4420967.0 :y 33006.387 :z -13154230.0 :w 1.0) + :quat + (new 'static 'vector :y 0.0174 :w -0.9998) + :camera-trans + (new 'static 'vector :x 4428164.5 :y 54074.164 :z -13204933.0 :w 1.0) + :camera-rot + (new 'static 'array float 9 + 0.99 + 0.0 + 0.1405 + -0.0169 + 0.9927 + 0.1192 + -0.1395 + -0.1204 + 0.9828 + ) + :load-commands '() + :vis-nick 'mai + :lev0 'maincave + :disp0 'display + :lev1 'village3 + :disp1 'display + ) + (new 'static 'continue-point + :name "maincave-to-darkcave" + :level 'maincave + :trans + (new 'static 'vector :x 4172175.8 :y 154223.83 :z -12445165.0 :w 1.0) + :quat + (new 'static 'vector :y -0.2093 :w 0.9778) + :camera-trans + (new 'static 'vector :x 4193893.2 :y 175317.81 :z -12491520.0 :w 1.0) + :camera-rot + (new 'static 'array float 9 + 0.9052 + 0.0 + 0.4248 + -0.0514 + 0.9926 + 0.1096 + -0.4217 + -0.1211 + 0.8986 + ) + :load-commands '() + :vis-nick 'mai + :lev0 'maincave + :disp0 'display + :lev1 'darkcave + :disp1 #f + ) + (new 'static 'continue-point + :name "maincave-to-robocave" + :level 'maincave + :trans + (new 'static 'vector :x 4760896.5 :y 44221.234 :z -12409880.0 :w 1.0) + :quat + (new 'static 'vector :y 0.548 :w 0.8364) + :camera-trans + (new 'static 'vector :x 4745230.0 :y 57869.926 :z -12426885.0 :w 1.0) + :camera-rot + (new 'static 'array float 9 + 0.7343 + 0.0 + -0.6788 + 0.1872 + 0.9611 + 0.2026 + 0.6524 + -0.2759 + 0.7058 + ) + :load-commands '() + :vis-nick 'mai + :lev0 'maincave + :disp0 'display + :lev1 'robocave + :disp1 #f + ) + ) + :tasks + '( + (the binteger 78) (the binteger 79) (the binteger 80) (the binteger 81) (the binteger 82) (the binteger 83) (the binteger 84) (the binteger 85) + ) + :priority 100 + :load-commands '() + :alt-load-commands '() + :bsp-mask #xffffffffffffffff + :bsphere + (new 'static 'sphere :x 4517888.0 :y 114688.0 :z -12484608.0 :w 655360.0) + :buzzer 85 + :bottom-height -245760.0 + :run-packages '("common") + :wait-for-load #f + ) + ) + +;; definition for symbol darkcave, type level-load-info +(define + darkcave + (new 'static 'level-load-info + :name-list + (new 'static 'array basic 3 'darkcave 'darkcave-vis 'dar) + :index 17 + :packages '(darkcave) + :sound-banks '(darkcave) + :music-bank 'maincave + :ambient-sounds '() + :mood '*darkcave-mood* + :mood-func 'update-mood-darkcave + :ocean #f + :sky #f + :continues + '( + (new 'static 'continue-point + :name "darkcave-start" + :level 'darkcave + :trans + (new 'static 'vector :x 3813246.2 :y 129487.664 :z -12114304.0 :w 1.0) + :quat + (new 'static 'vector :y 0.1439 :w 0.9895) + :camera-trans + (new 'static 'vector :x 3793301.0 :y 145573.48 :z -12139847.0 :w 1.0) + :camera-rot + (new 'static 'array float 9 + 0.7892 + 0.0 + -0.614 + 0.1178 + 0.9813 + 0.1515 + 0.6026 + -0.1919 + 0.7745 + ) + :load-commands '() + :vis-nick 'dar + :lev0 'maincave + :disp0 'display + :lev1 'darkcave + :disp1 'display + ) + ) + :tasks '() + :priority 100 + :load-commands '() + :alt-load-commands '() + :bsp-mask #xffffffffffffffff + :bsphere + (new 'static 'sphere :x 3620864.0 :y 266240.0 :z -11935744.0 :w 368640.0) + :buzzer 85 + :bottom-height -245760.0 + :run-packages '("common" "maincave") + :wait-for-load #t + ) + ) + +;; definition for symbol robocave, type level-load-info +(define + robocave + (new 'static 'level-load-info + :name-list + (new 'static 'array basic 3 'robocave 'robocave-vis 'rob) + :index 18 + :packages '(robocave) + :sound-banks '(robocave) + :music-bank 'maincave + :ambient-sounds '() + :mood '*robocave-mood* + :mood-func 'update-mood-robocave + :ocean #f + :sky #f + :continues + '( + (new 'static 'continue-point + :name "robocave-start" + :level 'robocave + :trans + (new 'static 'vector :x 5208223.5 :y 69697.945 :z -11781496.0 :w 1.0) + :quat + (new 'static 'vector :y -0.3654 :w -0.9308) + :camera-trans + (new 'static 'vector :x 5171715.0 :y 90796.85 :z -11817413.0 :w 1.0) + :camera-rot + (new 'static 'array float 9 + 0.7006 + 0.0 + -0.7134 + 0.0864 + 0.9926 + 0.0849 + 0.7082 + -0.1212 + 0.6954 + ) + :load-commands '() + :vis-nick 'rob + :lev0 'maincave + :disp0 'display + :lev1 'robocave + :disp1 'display + ) + (new 'static 'continue-point + :name "robocave-bottom" + :level 'robocave + :trans + (new 'static 'vector :x 5435461.5 :y -97111.24 :z -11588379.0 :w 1.0) + :quat + (new 'static 'vector :y 0.1086 :w 0.994) + :camera-trans + (new 'static 'vector :x 5409966.5 :y -76017.664 :z -11632764.0 :w 1.0) + :camera-rot + (new 'static 'array float 9 + 0.8662 + 0.0 + -0.4996 + 0.0605 + 0.9926 + 0.105 + 0.4959 + -0.1212 + 0.8598 + ) + :load-commands '() + :vis-nick 'rob + :lev0 'maincave + :disp0 'display + :lev1 'robocave + :disp1 'display + ) + ) + :tasks '() + :priority 100 + :load-commands '() + :alt-load-commands '() + :bsp-mask #xffffffffffffffff + :bsphere + (new 'static 'sphere :x 5529600.0 :y 81920.0 :z -11468800.0 :w 512000.0) + :buzzer 85 + :bottom-height -245760.0 + :run-packages '("common" "maincave") + :wait-for-load #t + ) + ) + +;; definition for symbol lavatube, type level-load-info +(define + lavatube + (new 'static 'level-load-info + :name-list + (new 'static 'array basic 3 'lavatube 'lavatube-vis 'lav) + :index 19 + :packages '(lavatube) + :sound-banks '(lavatube) + :music-bank 'lavatube + :ambient-sounds '() + :mood '*lavatube-mood* + :mood-func 'update-mood-lavatube + :ocean #f + :sky #f + :continues + '( + (new 'static 'continue-point + :name "lavatube-start" + :level 'lavatube + :trans + (new 'static 'vector :x 5511317.0 :y 159871.8 :z -14621239.0 :w 1.0) + :quat + (new 'static 'vector :y -0.3753 :w -0.9268) + :camera-trans + (new 'static 'vector :x 5510636.5 :y 197720.06 :z -14663128.0 :w 1.0) + :camera-rot + (new 'static 'array float 9 + 0.9992 + 0.0 + -0.0386 + 0.0178 + 0.8875 + 0.4603 + 0.0343 + -0.4606 + 0.8868 + ) + :load-commands '() + :vis-nick 'lav + :lev0 'lavatube + :disp0 'display + :lev1 'village3 + :disp1 'display + ) + (new 'static 'continue-point + :name "lavatube-middle" + :level 'lavatube + :trans + (new 'static 'vector :x 9081441.0 :y -3935.8464 :z -14056285.0 :w 1.0) + :quat + (new 'static 'vector :y -0.7002 :w -0.7139) + :camera-trans + (new 'static 'vector :x 9055362.0 :y 10606.592 :z -14050822.0 :w 1.0) + :camera-rot + (new 'static 'array float 9 + -0.205 + 0.0 + -0.9787 + 0.2321 + 0.9714 + -0.0486 + 0.9508 + -0.2371 + -0.1991 + ) + :load-commands '() + :vis-nick 'lav + :lev0 'lavatube + :disp0 'display + :lev1 'village3 + :disp1 #f + ) + (new 'static 'continue-point + :name "lavatube-after-ribbon" + :level 'lavatube + :trans + (new 'static 'vector :x 9954895.0 :y 390513.06 :z -16548614.0 :w 1.0) + :quat + (new 'static 'vector :y -0.7485 :w -0.663) + :camera-trans + (new 'static 'vector :x 9923721.0 :y 406466.16 :z -16541633.0 :w 1.0) + :camera-rot + (new 'static 'array float 9 + -0.2191 + 0.0 + -0.9756 + 0.1906 + 0.9807 + -0.0428 + 0.9568 + -0.1953 + -0.2149 + ) + :load-commands '() + :vis-nick 'lav + :lev0 'lavatube + :disp0 'display + :lev1 'citadel + :disp1 #f + ) + (new 'static 'continue-point + :name "lavatube-end" + :level 'lavatube + :trans + (new 'static 'vector :x 11479892.0 :y -163656.5 :z -18266490.0 :w 1.0) + :quat + (new 'static 'vector :y -0.9589 :w -0.2836) + :camera-trans + (new 'static 'vector :x 11526721.0 :y -143482.47 :z -18257412.0 :w 1.0) + :camera-rot + (new 'static 'array float 9 + -0.3027 + 0.0 + 0.953 + -0.1235 + 0.9915 + -0.0392 + -0.945 + -0.1296 + -0.3001 + ) + :load-commands '() + :vis-nick 'lav + :lev0 'lavatube + :disp0 'display + :lev1 'citadel + :disp1 'display + ) + ) + :tasks + '( + (the binteger 89) (the binteger 90) + ) + :priority 100 + :load-commands '() + :alt-load-commands '() + :bsp-mask #xffffffffffffffff + :bsphere + (new 'static 'sphere :x 8806400.0 :y 131072.0 :z -15564800.0 :w 3174400.0) + :buzzer 90 + :bottom-height -286720.0 + :run-packages '("common") + :wait-for-load #t + ) + ) + +;; definition for symbol citadel, type level-load-info +(define + citadel + (new 'static 'level-load-info + :name-list + (new 'static 'array basic 3 'citadel 'citadel-vis 'cit) + :index 20 + :packages '(citadel) + :sound-banks '(citadel) + :music-bank 'citadel + :ambient-sounds '() + :mood '*citadel-mood* + :mood-func 'update-mood-citadel + :ocean #f + :sky #f + :continues + '( + (new 'static 'continue-point + :name "citadel-start" + :level 'citadel + :trans + (new 'static 'vector :x 11442706.0 :y -142755.84 :z -18869044.0 :w 1.0) + :quat + (new 'static 'vector :y 0.9992 :w 0.0392) + :camera-trans + (new 'static 'vector :x 11441183.0 :y -122509.31 :z -18820882.0 :w 1.0) + :camera-rot + (new 'static 'array float 9 + -0.9991 + 0.0 + -0.0411 + 0.005 + 0.9925 + -0.122 + 0.0408 + -0.1221 + -0.9916 + ) + :load-commands '() + :vis-nick 'cit + :lev0 'citadel + :disp0 'display + :lev1 'lavatube + :disp1 #f + ) + (new 'static 'continue-point + :name "citadel-entrance" + :level 'citadel + :trans + (new 'static 'vector :x 11443969.0 :y -154216.03 :z -18472782.0 :w 1.0) + :quat + (new 'static 'vector :y -0.9728 :w 0.2314) + :camera-trans + (new 'static 'vector :x 11436929.0 :y -134244.36 :z -18426254.0 :w 1.0) + :camera-rot + (new 'static 'array float 9 + -0.9898 + 0.0 + -0.1424 + 0.0173 + 0.9925 + -0.1207 + 0.1413 + -0.1219 + -0.9824 + ) + :load-commands '() + :vis-nick 'cit + :lev0 'citadel + :disp0 'display + :lev1 'lavatube + :disp1 'display + ) + (new 'static 'continue-point + :name "citadel-warp" + :level 'citadel + :flags #x4 + :trans + (new 'static 'vector :x 11454895.0 :y -161791.6 :z -18204690.0 :w 1.0) + :quat + (new 'static 'vector :y 0.7511 :w 0.6601) + :camera-trans + (new 'static 'vector :x 11406872.0 :y -141278.0 :z -18194638.0 :w 1.0) + :camera-rot + (new 'static 'array float 9 + -0.1989 + 0.0 + -0.98 + 0.1179 + 0.9927 + -0.0239 + 0.9728 + -0.1203 + -0.1974 + ) + :load-commands '() + :vis-nick 'cit + :lev0 'citadel + :disp0 'display + :lev1 'lavatube + :disp1 'display + ) + (new 'static 'continue-point + :name "citadel-launch-start" + :level 'citadel + :trans + (new 'static 'vector :x 10827551.0 :y -94047.02 :z -18946718.0 :w 1.0) + :quat + (new 'static 'vector :y 0.8377 :w -0.546) + :camera-trans + (new 'static 'vector :x 10862150.0 :y -75343.875 :z -18922316.0 :w 1.0) + :camera-rot + (new 'static 'array float 9 + -0.5766 + 0.0 + 0.8169 + -0.1125 + 0.9904 + -0.0794 + -0.8091 + -0.1378 + -0.5711 + ) + :load-commands '() + :vis-nick 'cit + :lev0 'citadel + :disp0 'display + :lev1 'lavatube + :disp1 #f + ) + (new 'static 'continue-point + :name "citadel-launch-end" + :level 'citadel + :trans + (new 'static 'vector :x 11047507.0 :y -81514.086 :z -19495960.0 :w 1.0) + :quat + (new 'static 'vector :y 0.0292 :w 0.9995) + :camera-trans + (new 'static 'vector :x 11033498.0 :y -63027.2 :z -19534916.0 :w 1.0) + :camera-rot + (new 'static 'array float 9 + 0.9413 + 0.0 + -0.3373 + 0.0481 + 0.9897 + 0.1343 + 0.3339 + -0.1427 + 0.9317 + ) + :load-commands '() + :vis-nick 'cit + :lev0 'citadel + :disp0 'display + :lev1 'finalboss + :disp1 #f + ) + (new 'static 'continue-point + :name "citadel-plat-start" + :level 'citadel + :trans + (new 'static 'vector :x 11443470.0 :y -120194.664 :z -19845628.0 :w 1.0) + :quat + (new 'static 'vector :y -0.9907 :w -0.1355) + :camera-trans + (new 'static 'vector :x 11443545.0 :y -99100.266 :z -19794374.0 :w 1.0) + :camera-rot + (new 'static 'array float 9 + -0.9999 + 0.0 + 0.0016 + -0.0001 + 0.9926 + -0.1207 + -0.0015 + -0.1207 + -0.9926 + ) + :load-commands '() + :vis-nick 'cit + :lev0 'citadel + :disp0 'display + :lev1 'finalboss + :disp1 #f + ) + (new 'static 'continue-point + :name "citadel-plat-end" + :level 'citadel + :trans + (new 'static 'vector :x 11269726.0 :y -12132.352 :z -19614712.0 :w 1.0) + :quat + (new 'static 'vector :y -0.0419 :w 0.9991) + :camera-trans + (new 'static 'vector :x 11264449.0 :y 7920.8447 :z -19661710.0 :w 1.0) + :camera-rot + (new 'static 'array float 9 + 0.9938 + 0.0 + -0.1103 + 0.0134 + 0.9924 + 0.1215 + 0.1095 + -0.1223 + 0.9864 + ) + :load-commands '() + :vis-nick 'cit + :lev0 'citadel + :disp0 'display + :lev1 'finalboss + :disp1 #f + ) + (new 'static 'continue-point + :name "citadel-generator-start" + :level 'citadel + :trans + (new 'static 'vector :x 12138031.0 :y -36900.863 :z -18933304.0 :w 1.0) + :quat + (new 'static 'vector :y 0.7487 :w 0.6628) + :camera-trans + (new 'static 'vector :x 12101831.0 :y -19811.123 :z -18933632.0 :w 1.0) + :camera-rot + (new 'static 'array float 9 + 0.0093 + 0.0 + -0.9999 + 0.1678 + 0.9858 + 0.0015 + 0.9857 + -0.1678 + 0.0092 + ) + :load-commands '() + :vis-nick 'cit + :lev0 'citadel + :disp0 'display + :lev1 'finalboss + :disp1 #f + ) + (new 'static 'continue-point + :name "citadel-generator-end" + :level 'citadel + :trans + (new 'static 'vector :x 11837483.0 :y -20177.715 :z -19506848.0 :w 1.0) + :quat + (new 'static 'vector :y -0.3564 :w 0.9342) + :camera-trans + (new 'static 'vector :x 11872697.0 :y 887.6032 :z -19544198.0 :w 1.0) + :camera-rot + (new 'static 'array float 9 + 0.7296 + 0.0 + 0.6838 + -0.0851 + 0.9922 + 0.0908 + -0.6785 + -0.1245 + 0.7239 + ) + :load-commands '() + :vis-nick #f + :lev0 'citadel + :disp0 'display + :lev1 #f + :disp1 #f + ) + (new 'static 'continue-point + :name "citadel-elevator" + :level 'citadel + :trans + (new 'static 'vector :x 11447961.0 :y 234055.27 :z -19169000.0 :w 1.0) + :quat + (new 'static 'vector :y 0.2351 :w 0.9719) + :camera-trans + (new 'static 'vector :x 11454465.0 :y 252947.66 :z -19126656.0 :w 1.0) + :camera-rot + (new 'static 'array float 9 + -0.9932 + 0.0 + 0.1161 + -0.017 + 0.9892 + -0.1454 + -0.1148 + -0.1464 + -0.9825 + ) + :load-commands '() + :vis-nick 'cit + :lev0 'citadel + :disp0 'display + :lev1 'finalboss + :disp1 #f + ) + ) + :tasks + '( + (the binteger 70) (the binteger 71) (the binteger 72) (the binteger 73) (the binteger 91) + ) + :priority 100 + :load-commands '() + :alt-load-commands '() + :bsp-mask #xffffffffffffffff + :bsphere + (new 'static 'sphere :x 11436032.0 :y -462848.0 :z -19750912.0 :w 1228800.0) + :buzzer 91 + :bottom-height -466944.0 + :run-packages '("common") + :wait-for-load #t + ) + ) + +;; definition for symbol finalboss, type level-load-info +(define + finalboss + (new 'static 'level-load-info + :name-list + (new 'static 'array basic 3 'finalboss 'finalboss-vis 'fin) + :index 21 + :packages '(finalboss) + :sound-banks '(finalboss) + :music-bank 'finalboss + :ambient-sounds '() + :mood '*finalboss-mood* + :mood-func 'update-mood-finalboss + :ocean #f + :sky #t + :sun-fade 1.0 + :continues + '( + (new 'static 'continue-point + :name "finalboss-start" + :level 'finalboss + :trans + (new 'static 'vector :x 11548456.0 :y 2215872.0 :z -19409498.0 :w 1.0) + :quat + (new 'static 'vector :y 0.7325 :w 0.6807) + :camera-trans + (new 'static 'vector :x 11513311.0 :y 2234999.5 :z -19435708.0 :w 1.0) + :camera-rot + (new 'static 'array float 9 + 0.5883 + 0.0 + -0.8085 + 0.1074 + 0.9911 + 0.0781 + 0.8014 + -0.1328 + 0.5831 + ) + :load-commands + '( + (special "citb-exit-plat-4" #t) + ) + :vis-nick 'fin + :lev0 'finalboss + :disp0 'display + :lev1 'citadel + :disp1 'special + ) + (new 'static 'continue-point + :name "finalboss-fight" + :level 'finalboss + :trans + (new 'static 'vector :x 12288335.0 :y 1970461.9 :z -19848522.0 :w 1.0) + :quat + (new 'static 'vector :y -0.5359 :w -0.8442) + :camera-trans + (new 'static 'vector :x 12265366.0 :y 1984228.5 :z -19842574.0 :w 1.0) + :camera-rot + (new 'static 'array float 9 + -0.243 + 0.0 + -0.97 + 0.2594 + 0.9635 + -0.065 + 0.9346 + -0.2675 + -0.2341 + ) + :load-commands + '( + (special "citb-exit-plat-4" #t) + ) + :vis-nick 'fin + :lev0 'finalboss + :disp0 'display + :lev1 'citadel + :disp1 'special + ) + ) + :tasks '() + :priority 100 + :load-commands '() + :alt-load-commands '() + :bsp-mask #xffffffffffffffff + :bsphere + (new 'static 'sphere :x 11837440.0 :y 2129920.0 :z -19578880.0 :w 778240.0) + :buzzer 91 + :bottom-height -466944.0 + :run-packages '("common") + :wait-for-load #f + ) + ) + +;; definition for symbol intro, type level-load-info +(define + intro + (new 'static 'level-load-info + :name-list + (new 'static 'array basic 3 'intro 'intro-vis 'int) + :index 22 + :packages '(intro) + :sound-banks '() + :music-bank #f + :ambient-sounds '() + :mood '*default-mood* + :mood-func 'update-mood-default + :ocean #f + :sky #f + :continues '() + :tasks '() + :priority 100 + :load-commands '() + :alt-load-commands '() + :bsp-mask #xffffffffffffffff + :bsphere (new 'static 'sphere) + :bottom-height -40960000000.0 + :run-packages '("common") + :wait-for-load #f + ) + ) + +;; definition for symbol demo, type level-load-info +(define + demo + (new 'static 'level-load-info + :name-list + (new 'static 'array basic 3 'demo 'demo-vis 'dem) + :index 23 + :packages '() + :sound-banks '(village1) + :music-bank 'village1 + :ambient-sounds '() + :mood '*default-mood* + :mood-func 'update-mood-default + :ocean #f + :sky #f + :continues + '( + (new 'static 'continue-point + :name "demo-start" + :level 'demo + :flags #x8 + :trans + (new 'static 'vector :x 66396.16 :y 29782.016 :z -919973.5 :w 1.0) + :quat (new 'static 'vector :w 1.0) + :camera-trans + (new 'static 'vector :x 76871.68 :y 55061.707 :z -938752.0 :w 1.0) + :camera-rot + (new 'static 'array float 9 + 0.8743 + 0.0 + 0.4852 + -0.2117 + 0.8997 + 0.3816 + -0.4365 + -0.4364 + 0.7866 + ) + :load-commands '() + :vis-nick 'dem + :lev0 'demo + :disp0 'special + :lev1 #f + :disp1 #f + ) + ) + :tasks '() + :priority 100 + :load-commands '() + :alt-load-commands '() + :bsp-mask #xffffffffffffffff + :bsphere (new 'static 'sphere) + :bottom-height -40960000000.0 + :run-packages '("common") + :wait-for-load #f + ) + ) + +;; definition for symbol title, type level-load-info +(define + title + (new 'static 'level-load-info + :name-list + (new 'static 'array basic 3 'title 'title-vis 'tit) + :index 24 + :packages '() + :sound-banks '() + :music-bank 'village1 + :ambient-sounds '() + :mood '*village1-mood* + :mood-func 'update-mood-village1 + :ocean #f + :sky #f + :continues + '( + (new 'static 'continue-point + :name "title-start" + :level 'title + :flags #x80 + :trans + (new 'static 'vector :x -635598.9 :y 222551.66 :z 710496.25 :w 1.0) + :quat + (new 'static 'vector :y -0.3323 :w -0.9431) + :camera-trans + (new 'static 'vector :x -665644.25 :y 250803.0 :z 668470.9 :w 1.0) + :camera-rot + (new 'static 'array float 9 + 0.8129 + 0.0 + -0.5823 + 0.0958 + 0.9863 + 0.1337 + 0.5744 + -0.1645 + 0.8018 + ) + :load-commands '() + :vis-nick 'tit + :lev0 'title + :disp0 'special + :lev1 'village1 + :disp1 #f + ) + ) + :tasks '() + :priority 100 + :load-commands '() + :alt-load-commands '() + :bsp-mask #xffffffffffffffff + :bsphere + (new 'static 'sphere :x -40960.0 :z 40960.0 :w 1126400.0) + :bottom-height -40960000000.0 + :run-packages '("common") + :wait-for-load #f + ) + ) + +;; definition for symbol halfpipe, type level-load-info +(define + halfpipe + (new 'static 'level-load-info + :name-list + (new 'static 'array basic 3 'halfpipe 'halfpipe-vis 'none) + :index 25 + :packages '() + :sound-banks '() + :music-bank #f + :ambient-sounds '() + :mood '*default-mood* + :mood-func 'update-mood-default + :ocean #f + :sky #t + :sun-fade 1.0 + :continues + '( + (new 'static 'continue-point + :name "halfpipe" + :level 'halfpipe + :trans + (new 'static 'vector :x -1048.9856 :y -172047.97 :z -212555.78 :w 1.0) + :quat + (new 'static 'vector :y 0.061 :w 0.9981) + :camera-trans + (new 'static 'vector :x -9941.401 :y -150049.17 :z -159587.94 :w 1.0) + :camera-rot + (new 'static 'array float 9 + -0.979 + 0.0 + -0.2037 + 0.0545 + 0.9634 + -0.2622 + 0.1963 + -0.2678 + -0.9432 + ) + :load-commands '() + :vis-nick #f + :lev0 'halfpipe + :disp0 'display + :lev1 #f + :disp1 #f + ) + ) + :tasks '() + :priority 100 + :load-commands '() + :alt-load-commands '() + :bsp-mask #xffffffffffffffff + :bsphere (new 'static 'sphere :w 167772160000.0) + :bottom-height -40960000000.0 + :run-packages '() + :wait-for-load #t + ) + ) + +;; definition for symbol default-level, type level-load-info +(define + default-level + (new 'static 'level-load-info + :name-list + (new 'static 'array basic 3 'default-level 'default-level-vis 'none) + :index 26 + :packages '() + :sound-banks '() + :music-bank #f + :ambient-sounds '() + :mood '*default-mood* + :mood-func 'update-mood-default + :ocean #f + :sky #t + :continues '() + :tasks '() + :priority 100 + :load-commands '() + :alt-load-commands '() + :bsp-mask #xffffffffffffffff + :bsphere (new 'static 'sphere :w 167772160000.0) + :bottom-height -81920.0 + :run-packages '() + :wait-for-load #t + ) + ) + +;; definition for symbol *level-load-list*, type pair +(define + *level-load-list* + '( + training village1 beach jungle jungleb misty firecanyon village2 sunken sunkenb swamp rolling ogre village3 snow maincave darkcave robocave lavatube citadel finalboss intro demo title halfpipe default-level + ) + ) diff --git a/test/decompiler/reference/kernel/gkernel_REF.gc b/test/decompiler/reference/kernel/gkernel_REF.gc index 5de7134b29..160d6f4905 100644 --- a/test/decompiler/reference/kernel/gkernel_REF.gc +++ b/test/decompiler/reference/kernel/gkernel_REF.gc @@ -1954,16 +1954,9 @@ ;; definition for symbol *dead-pool-list*, type pair (define *dead-pool-list* - (quote - ('*4k-dead-pool* - '*8k-dead-pool* - '*16k-dead-pool* - '*nk-dead-pool* - '*target-dead-pool* - '*camera-dead-pool* - '*camera-master-dead-pool* + '( + *4k-dead-pool* *8k-dead-pool* *16k-dead-pool* *nk-dead-pool* *target-dead-pool* *camera-dead-pool* *camera-master-dead-pool* ) - ) ) ;; definition for symbol *active-pool*, type process-tree diff --git a/test/decompiler/test_DataParser.cpp b/test/decompiler/test_DataParser.cpp index f07d0a7746..cf717a61d3 100644 --- a/test/decompiler/test_DataParser.cpp +++ b/test/decompiler/test_DataParser.cpp @@ -316,7 +316,7 @@ TEST_F(DataDecompTest, ContinuePoint) { " -0.1328\n" " 0.5831\n" " )\n" - " :load-commands '('('special \"citb-exit-plat-4\" #t))\n" + " :load-commands '((special \"citb-exit-plat-4\" #t))\n" " :vis-nick 'fin\n" " :lev0 'finalboss\n" " :disp0 'display\n"