diff --git a/.vs/launch.vs.json b/.vs/launch.vs.json index d44c9fd7ea..be38486881 100644 --- a/.vs/launch.vs.json +++ b/.vs/launch.vs.json @@ -84,6 +84,20 @@ "name": "Game - Runtime (boot no debug)", "args": ["-boot", "-fakeiso", "-v"] }, + { + "type": "default", + "project": "CMakeLists.txt", + "projectTarget": "gk.exe (bin\\gk.exe)", + "name": "Game 2 - Runtime (boot)", + "args": ["-boot", "-fakeiso", "-debug", "-v", "-jak2"] + }, + { + "type": "default", + "project": "CMakeLists.txt", + "projectTarget": "gk.exe (bin\\gk.exe)", + "name": "Game 2 - Runtime (no boot)", + "args": ["-fakeiso", "-debug", "-v", "-jak2"] + }, { "type": "default", "project": "CMakeLists.txt", diff --git a/common/goos/PrettyPrinter2.cpp b/common/goos/PrettyPrinter2.cpp index ffca36f121..8f2f8cd118 100644 --- a/common/goos/PrettyPrinter2.cpp +++ b/common/goos/PrettyPrinter2.cpp @@ -29,11 +29,14 @@ struct Node { std::string atom_str; // number of quotes this is wrapped in. - u32 quoted = 0; + enum class QuoteKind { QUOTE, UNQUOTE, QUASIQUOTE, UNQUOTE_SPLICING }; + std::vector quotes; Node* parent = nullptr; u32 my_depth = 0; + int get_quote_length() const; + void link(Node* this_parent, std::vector* bfs_order, u32 depth) { parent = this_parent; my_depth = depth; @@ -86,6 +89,30 @@ struct Node { u8 sub_elt_indent = 0; }; +inline const std::string quote_symbol(Node::QuoteKind kind) { + switch (kind) { + case Node::QuoteKind::QUOTE: + return "'"; + case Node::QuoteKind::QUASIQUOTE: + return "`"; + case Node::QuoteKind::UNQUOTE: + return ","; + case Node::QuoteKind::UNQUOTE_SPLICING: + return ",@"; + default: + ASSERT_MSG(false, fmt::format("invalid quote kind {}", kind)); + return "[invalid]"; + } +} + +int Node::get_quote_length() const { + int out = 0; + for (auto& q : quotes) { + out += quote_symbol(q).length(); + } + return out; +} + Node to_node(const goos::Object& obj) { switch (obj.type) { case goos::ObjectType::EMPTY_LIST: @@ -100,13 +127,22 @@ Node to_node(const goos::Object& obj) { return Node(obj.print()); case goos::ObjectType::PAIR: { - // we've got three cases: quoted thing, proper list, improper list. + // we've got four cases: quoted thing, unquoted thing, proper list, improper list. + + // there's probably a better way to do this but i am lazy auto& first = obj.as_pair()->car; - if (first.is_symbol() && first.as_symbol()->name == "quote") { + if (first.is_symbol("quote")) { auto& second = obj.as_pair()->cdr; if (second.is_pair() && second.as_pair()->cdr.is_empty_list()) { Node result = to_node(second.as_pair()->car); - result.quoted++; + result.quotes.push_back(Node::QuoteKind::QUOTE); + return result; + } + } else if (first.is_symbol("unquote")) { + auto& second = obj.as_pair()->cdr; + if (second.is_pair() && second.as_pair()->cdr.is_empty_list()) { + Node result = to_node(second.as_pair()->car); + result.quotes.push_back(Node::QuoteKind::UNQUOTE); return result; } } @@ -148,13 +184,13 @@ void recompute_lengths(const std::vector& bfs_order) { Node* node = *it; switch (node->kind) { case Node::Kind::ATOM: - node->text_len = node->atom_str.length() + node->quoted; + node->text_len = node->atom_str.length() + node->get_quote_length(); break; case Node::Kind::IMPROPER_LIST: case Node::Kind::LIST: { if (node->break_list) { // special case compute first line length - int first_line_len = 1 + node->quoted; // open paren + quotes + int first_line_len = 1 + node->get_quote_length(); // open paren + quotes int nodes_on_first_line = std::min(int(node->child_nodes.size()), int(node->top_line_count)); if (nodes_on_first_line > 0) { @@ -176,7 +212,7 @@ void recompute_lengths(const std::vector& bfs_order) { node->text_len = max_line_len; } else { - node->text_len = 1 + node->quoted; // open paren + quotes + node->text_len = 1 + node->get_quote_length(); // open paren + quotes for (auto& child : node->child_nodes) { node->text_len += (child.text_len + 1); // space or close paren. } @@ -292,7 +328,7 @@ int run_algorithm(const std::vector& bfs_order, int line_length) { // - too long // - not already split. // the "magic" of v2 is: - // the "too long" check above igores the sublist. + // the "too long" check above ignores the sublist. int num_broken = 0; std::optional min_depth; @@ -334,8 +370,8 @@ void append_node_to_string(const Node* node, for (int i = 0; i < init_indent_level; i++) { str.push_back(' '); } - for (u32 i = 0; i < node->quoted; i++) { - str.push_back('\''); + for (auto q : node->quotes) { + str.append(quote_symbol(q)); } switch (node->kind) { case Node::Kind::ATOM: @@ -347,7 +383,7 @@ void append_node_to_string(const Node* node, str.push_back('('); size_t node_idx = 0; - int listing_indent = next_indent_level + node->quoted + node->sub_elt_indent; + int listing_indent = next_indent_level + node->get_quote_length() + node->sub_elt_indent; int extra_indent = 0; int old_indent = listing_indent; if (node->top_line_count) { @@ -401,7 +437,7 @@ void append_node_to_string(const Node* node, } else { str.push_back('('); ASSERT(!node->child_nodes.empty()); - int listing_indent = next_indent_level + node->quoted; + int listing_indent = next_indent_level + node->get_quote_length(); int extra_indent = 1; int c0 = 0; for (auto& child : node->child_nodes) { diff --git a/decompiler/IR2/FormExpressionAnalysis.cpp b/decompiler/IR2/FormExpressionAnalysis.cpp index 48ceac70e5..f437ca6240 100644 --- a/decompiler/IR2/FormExpressionAnalysis.cpp +++ b/decompiler/IR2/FormExpressionAnalysis.cpp @@ -149,7 +149,7 @@ Form* try_cast_simplify(Form* in, if (div * METER_LENGTH == *fc) { return pool.form( GenericOperator::make_function(pool.form("meters")), - pool.form(div)); + pool.form(float_to_string(div, false))); } else { lg::error("Floating point value {} could not be converted to meters.", *fc); } diff --git a/decompiler/IR2/bitfields.cpp b/decompiler/IR2/bitfields.cpp index 4ae15e7f88..99b8bb2a4e 100644 --- a/decompiler/IR2/bitfields.cpp +++ b/decompiler/IR2/bitfields.cpp @@ -950,10 +950,10 @@ Form* cast_to_bitfield_enum(const EnumType* type_info, s64 in, bool no_head) { ASSERT(type_info->is_bitfield()); - auto elts = decompile_bitfield_enum_from_int(TypeSpec(type_info->get_name()), env.dts->ts, in); if (in == -1) { return nullptr; } + auto elts = decompile_bitfield_enum_from_int(TypeSpec(type_info->get_name()), env.dts->ts, in); if (no_head) { ASSERT(elts.size() >= 1); } diff --git a/decompiler/ObjectFile/ObjectFileDB.cpp b/decompiler/ObjectFile/ObjectFileDB.cpp index 5e4c1e8e55..dd75acc271 100644 --- a/decompiler/ObjectFile/ObjectFileDB.cpp +++ b/decompiler/ObjectFile/ObjectFileDB.cpp @@ -680,34 +680,39 @@ std::string ObjectFileDB::process_tpages(TextureDB& tex_db, const fs::path& outp } std::string ObjectFileDB::process_game_text_files(const Config& cfg) { - lg::info("- Finding game text..."); - std::string text_string = "COMMON"; - Timer timer; - int file_count = 0; - int string_count = 0; - int char_count = 0; - std::unordered_map> text_by_language_by_id; + try { + lg::info("- Finding game text..."); + std::string text_string = "COMMON"; + Timer timer; + int file_count = 0; + int string_count = 0; + int char_count = 0; + std::unordered_map> text_by_language_by_id; - for_each_obj([&](ObjectFileData& data) { - if (data.name_in_dgo.substr(1) == text_string) { - file_count++; - auto statistics = process_game_text(data, cfg.text_version); - string_count += statistics.total_text; - char_count += statistics.total_chars; - if (text_by_language_by_id.find(statistics.language) != text_by_language_by_id.end()) { - ASSERT(false); + for_each_obj([&](ObjectFileData& data) { + if (data.name_in_dgo.substr(1) == text_string) { + file_count++; + auto statistics = process_game_text(data, cfg.text_version); + string_count += statistics.total_text; + char_count += statistics.total_chars; + if (text_by_language_by_id.find(statistics.language) != text_by_language_by_id.end()) { + ASSERT(false); + } + text_by_language_by_id[statistics.language] = std::move(statistics.text); } - text_by_language_by_id[statistics.language] = std::move(statistics.text); + }); + + lg::info("Processed {} text files ({} strings, {} characters) in {:.2f} ms", file_count, + string_count, char_count, timer.getMs()); + + if (text_by_language_by_id.empty()) { + return {}; } - }); - - lg::info("Processed {} text files ({} strings, {} characters) in {:.2f} ms", file_count, - string_count, char_count, timer.getMs()); - - if (text_by_language_by_id.empty()) { + return write_game_text(cfg.text_version, text_by_language_by_id); + } catch (std::runtime_error& e) { + lg::warn("Error when extracting game text: {}", e.what()); return {}; } - return write_game_text(cfg.text_version, text_by_language_by_id); } std::string ObjectFileDB::process_game_count_file() { diff --git a/decompiler/config/jak2/all-types.gc b/decompiler/config/jak2/all-types.gc index 96a94980e4..fc75351bfb 100644 --- a/decompiler/config/jak2/all-types.gc +++ b/decompiler/config/jak2/all-types.gc @@ -77,9 +77,12 @@ (define-extern cpad-get-data (function cpad-info cpad-info)) (define-extern scf-get-territory (function int)) ;; not actually a scf function... (define-extern mouse-get-data (function mouse-info none)) -(define-extern file-stream-read (function file-stream pointer int int)) (define-extern file-stream-open (function file-stream string symbol file-stream)) +(define-extern file-stream-close (function file-stream file-stream)) (define-extern file-stream-length (function file-stream int)) +(define-extern file-stream-seek (function file-stream int int int)) +(define-extern file-stream-read (function file-stream pointer int int)) +(define-extern file-stream-write (function file-stream pointer uint uint)) (define-extern reset-path (function none)) (define-extern flush-cache (function int none)) (define-extern gs-store-image (function object object object)) @@ -565,7 +568,7 @@ (pid int32) (main-thread cpu-thread :offset-assert 48) (top-thread cpu-thread :offset-assert 52) - (entity entity :offset-assert 56) + (entity entity-actor :offset-assert 56) (level level :offset-assert 60) (state state :offset-assert 64) (next-state state :offset-assert 68) @@ -1303,6 +1306,7 @@ (y float :offset 4) (z float :offset 8) ) + :pack-me :method-count-assert 9 :size-assert #xc :flag-assert #x90000000c @@ -1520,7 +1524,7 @@ :size-assert #x30 :flag-assert #xb00000030 (:methods - (debug-draw! (_type_) none 9) + (debug-draw (_type_) int 9) (point-past-plane? (_type_ vector) symbol 10) ) ) @@ -3430,15 +3434,16 @@ (circle 13) (x 14) (square 15) - (pb16 16) - (pb17 17) - (pb18 18) - (pb19 19) - (pb20 20) - (pb21 21) - (pb22 22) - (pb23 23) - (pb24 24) + ;; only 16 buttons are mapped to hardware, the rest are 'actions' or something else + (l-analog-down 16) + (l-analog-right 17) + (l-analog-up 18) + (l-analog-left 19) + (r-analog-down 20) + (r-analog-right 21) + (r-analog-up 22) + (r-analog-left 23) + (confirm 24) ) (deftype scf-time (structure) @@ -3456,6 +3461,8 @@ :flag-assert #x900000008 ) +(define-extern scf-get-time (function scf-time none)) + (deftype hw-cpad (basic) ((valid uint8 :offset-assert 4) (status uint8 :offset-assert 5) @@ -3501,7 +3508,7 @@ :flag-assert #xa00000090 (:methods (new (symbol type int) _type_ 0) - (invert-analog-if-needed (_type_) none 9) + (adjust-to-screen-flip (_type_) int 9) ) ) @@ -5637,6 +5644,225 @@ ;; level-h ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +(defenum game-text-id + :type uint32 + :bitfield #f +;; GAME-TEXT-ID ENUM BEGINS + (null 0) + + (pause #x0101) + + (text-x180 #x0180) + (text-x181 #x0181) + (text-x182 #x0182) + (text-x183 #x0183) + (text-x184 #x0184) + (text-x185 #x0185) + (text-x186 #x0186) + (text-x187 #x0187) + (text-x188 #x0188) + (text-x189 #x0189) + (text-x18a #x018a) + (text-x18b #x018b) + (text-x18c #x018c) + (text-x18d #x018d) + (text-x18e #x018e) + (text-x18f #x018f) + (text-x190 #x0190) + (text-x191 #x0191) + (text-x192 #x0192) + (text-x193 #x0193) + (text-x194 #x0194) + (text-x195 #x0195) + (text-x196 #x0196) + (text-x197 #x0197) + (text-x198 #x0198) + (text-x199 #x0199) + (text-x19a #x019a) + (text-x19b #x019b) + (text-x19c #x019c) + (text-x19d #x019d) + (text-x19e #x019e) + (text-x19f #x019f) + (text-x1a0 #x01a0) + (text-x1a1 #x01a1) + (text-x1a2 #x01a2) + (text-x1a3 #x01a3) + (text-x1a4 #x01a4) + (text-x1a5 #x01a5) + (text-x1a6 #x01a6) + (text-x1a7 #x01a7) + (text-x1a8 #x01a8) + (text-x1a9 #x01a9) + (text-x1aa #x01aa) + (text-x1ab #x01ab) + (text-x1ac #x01ac) + (text-x1ad #x01ad) + (text-x1ae #x01ae) + (text-x1af #x01af) + (text-x1b0 #x01b0) + (text-x1b1 #x01b1) + (text-x1b2 #x01b2) + (text-x1b3 #x01b3) + (text-x1b4 #x01b4) + (text-x1b5 #x01b5) + (text-x1b6 #x01b6) + (text-x1b7 #x01b7) + (text-x1b8 #x01b8) + (text-x1b9 #x01b9) + (text-x1ba #x01ba) + (text-x1bb #x01bb) + (text-x1bc #x01bc) + (text-x1bd #x01bd) + (text-x1be #x01be) + (text-x1bf #x01bf) + (text-x1c0 #x01c0) + (text-x1c1 #x01c1) + (text-x1c2 #x01c2) + (text-x1c3 #x01c3) + (text-x1c4 #x01c4) + (text-x1c5 #x01c5) + (text-x1c6 #x01c6) + (text-x1c7 #x01c7) + (text-x1c8 #x01c8) + (text-x1c9 #x01c9) + (text-x1ca #x01ca) + (text-x1cb #x01cb) + (text-x1cc #x01cc) + (text-x1cd #x01cd) + (text-x1ce #x01ce) + (text-x1cf #x01cf) + (text-x1d0 #x01d0) + (text-x1d1 #x01d1) + (text-x1d2 #x01d2) + (text-x1d3 #x01d3) + (text-x1d4 #x01d4) + (text-x1d5 #x01d5) + (text-x1d6 #x01d6) + (text-x1d7 #x01d7) + (text-x1d8 #x01d8) + (text-x1d9 #x01d9) + (text-x1da #x01da) + (text-x1db #x01db) + (text-x1dc #x01dc) + (text-x1dd #x01dd) + (text-x1de #x01de) + (text-x1df #x01df) + (text-x1e0 #x01e0) + (text-x1e1 #x01e1) + (text-x1e2 #x01e2) + (text-x1e3 #x01e3) + (text-x1e4 #x01e4) + (text-x1e5 #x01e5) + (text-x1e6 #x01e6) + (text-x1e7 #x01e7) + (text-x1e8 #x01e8) + (text-x1e9 #x01e9) + (text-x1ea #x01ea) + (text-x1eb #x01eb) + (text-x1ec #x01ec) + (text-x1ed #x01ed) + (text-x1ee #x01ee) + (text-x1ef #x01ef) + (text-x1f0 #x01f0) + (text-x1f1 #x01f1) + (text-x1f2 #x01f2) + (text-x1f3 #x01f3) + (text-x1f4 #x01f4) + (text-x1f5 #x01f5) + (text-x1f6 #x01f6) + (text-x1f7 #x01f7) + (text-x1f8 #x01f8) + (text-x1f9 #x01f9) + (text-x1fa #x01fa) + (text-x1fb #x01fb) + (text-x1fc #x01fc) + (text-x1fd #x01fd) + (text-x1fe #x01fe) + (text-x1ff #x01ff) + (text-x200 #x0200) + (text-x201 #x0201) + (text-x202 #x0202) + (text-x203 #x0203) + (text-x204 #x0204) + (text-x205 #x0205) + (text-x206 #x0206) + (text-x207 #x0207) + (text-x208 #x0208) + (text-x209 #x0209) + (text-x20a #x020a) + (text-x20b #x020b) + (text-x20c #x020c) + (text-x20d #x020d) + (text-x20e #x020e) + (text-x20f #x020f) + (text-x210 #x0210) + (text-x211 #x0211) + (text-x212 #x0212) + (text-x213 #x0213) + (text-x214 #x0214) + (text-x215 #x0215) + (text-x216 #x0216) + (text-x217 #x0217) + (text-x218 #x0218) + (text-x219 #x0219) + (text-x21a #x021a) + (text-x21b #x021b) + (text-x21c #x021c) + (text-x21d #x021d) + (text-x21e #x021e) + (text-x21f #x021f) + (text-x220 #x0220) + (text-x221 #x0221) + (text-x222 #x0222) + (text-x223 #x0223) + (text-x224 #x0224) + (text-x225 #x0225) + (text-x226 #x0226) + (text-x227 #x0227) + (text-x228 #x0228) + (text-x229 #x0229) + (text-x22a #x022a) + (text-x22b #x022b) + (text-x22c #x022c) + (text-x22d #x022d) + (text-x22e #x022e) + (text-x22f #x022f) + (text-x230 #x0230) + (text-x231 #x0231) + (text-x232 #x0232) + (text-x233 #x0233) + (text-x234 #x0234) + (text-x235 #x0235) + (text-x236 #x0236) + (text-x237 #x0237) + (text-x238 #x0238) + (text-x239 #x0239) + (text-x23a #x023a) + (text-x23b #x023b) + (text-x23c #x023c) + (text-x23d #x023d) + (text-x23e #x023e) + (text-x23f #x023f) + (text-x240 #x0240) + (text-x241 #x0241) + (text-x242 #x0242) + (text-x243 #x0243) + (text-x244 #x0244) + (text-x245 #x0245) + (text-x246 #x0246) + (text-x247 #x0247) + (text-x248 #x0248) + (text-x249 #x0249) + (text-x24a #x024a) + (text-x24b #x024b) + (text-x24c #x024c) + (text-x24d #x024d) + (text-x24e #x024e) + (text-x24f #x024f) +;; GAME-TEXT-ID ENUM ENDS + ) + (declare-type bsp-header basic) (defenum vis-info-flag @@ -5841,7 +6067,6 @@ (ten 10) ) -(declare-type game-text-id uint32) (declare-type engine basic) (deftype level (basic) ((name symbol :offset-assert 4) @@ -5946,7 +6171,7 @@ (login-begin (_type_) _type_ 19) (debug-print-region-splitbox (_type_ vector object) none 20) ;; (vis-load (_type_) uint 20) (get-art-group-by-name (_type_ string) art-group 21) ;; (unused-21 (_type_) none 21) - (level-method-22 () none 22) ;; (birth (_type_) _type_ 22) + (level-method-22 (_type_ symbol) int 22) ;; (birth (_type_) _type_ 22) (lookup-text (_type_ game-text-id symbol) string 23) ;; (level-status-set! (_type_ symbol) _type_ 23) (level-method-24 () none 24) (birth (_type_) _type_ 25) ;; (init-vis (_type_) int 25) @@ -6575,14 +6800,6 @@ ;; text-id-h ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -(defenum game-text-id - :type uint32 - :bitfield #f -;; GAME-TEXT-ID ENUM BEGINS - (pause 257) -;; GAME-TEXT-ID ENUM ENDS -) - ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; text-h ;; @@ -6938,7 +7155,7 @@ (deftype connection-minimap (connection-pers) - ((handle handle :offset 8) + ((handle handle :offset 8 :score 50) ;; override (position vector :offset 16) (alpha float :offset 20) (class minimap-class-node :offset 24) @@ -6954,11 +7171,9 @@ ;; Failed to read fields. ) - - (deftype engine-minimap (engine-pers) - ((alive-list-override connection-minimap :offset 24) - (dead-list-override connection-minimap :offset 28) + ((alive-list-override connection-minimap :offset 24 :score 50) + (dead-list-override connection-minimap :offset 28 :score 50) ) :method-count-assert 15 :size-assert #x20 @@ -7000,8 +7215,6 @@ :flag-assert #x9000000a0 ) - - (deftype minimap (structure) ((draw-tmpl dma-gif-packet :inline :offset-assert 0) (draw2-tmpl dma-gif-packet :inline :offset-assert 32) @@ -7020,7 +7233,7 @@ (ctywide basic :offset-assert 268) (inv-scale float :offset 212) (fade float :offset 220) - (engine basic :offset-assert 272) + (engine engine-minimap :offset-assert 272) (engine-key uint32 :offset-assert 276) (trail minimap-trail 6 :inline :offset-assert 288) (race-tex basic :offset-assert 1536) @@ -7038,7 +7251,7 @@ (minimap-method-9 () none 9) (minimap-method-10 () none 10) (minimap-method-11 () none 11) - (minimap-method-12 () none 12) + (minimap-method-12 (_type_ process uint int vector int) connection-minimap 12) (minimap-method-13 () none 13) (minimap-method-14 () none 14) (minimap-method-15 () none 15) @@ -7214,6 +7427,37 @@ ;; settings-h ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +(defenum game-feature + :type uint64 + :bitfield #t + (unk-game-feature-01) + (unk-game-feature-02) + (unk-game-feature-03) + (unk-game-feature-04) + (unk-game-feature-05) + (unk-game-feature-06) + (gun-yellow) + (gun-red) + (gun-blue) + (gun-dark) + (board) + (carry) + (sidekick) + (darkjak) + (gun-upgrade-speed) + (gun-upgrade-ammo) + (gun-upgrade-damage) + (unk-game-feature-18) + (pass-red) + (pass-green) + (pass-yellow) + (pass-blue) + (darkjak-bomb0) + (darkjak-bomb1) + (darkjak-invinc) + (darkjak-giant) + (board-training)) + (defenum language-enum :type int64 (english) @@ -7267,7 +7511,7 @@ (board symbol) (jump symbol) (speed-mult float) - (features uint64) + (features game-feature) (sfx-volume float) (sfx-movie-volume float :offset-assert 180) (music-volume float) @@ -7294,7 +7538,7 @@ (allow-continue symbol :offset-assert 268) (spotlight-color rgba) (subtitle symbol :offset-assert 276) - (borrow symbol) + (borrow pair) (doorway symbol) (gen symbol) (half-speed symbol) @@ -8524,13 +8768,333 @@ ;; +++game-task-h:game-task-node (defenum game-task-node - :type uint32 + :type uint16 :bitfield #f - (dig-knock-down-resolution 113) - (tomb-boss-torches 167) - (fortress-save-friends-resolution 172) - (drill-mech-resolution 204) - (drill-mech-started-smashing 205)) + (none) + (fortress-escape-start) + (fortress-escape-introduction) + (fortress-escape-resolution) + (city-help-kid-introduction) + (city-help-kid-battle) + (city-help-kid-resolution) + (city-vehicle-training-map) + (city-vehicle-training-hover-zone-1) + (city-vehicle-training-hover-zone-2) + (city-vehicle-training-resolution) + (ruins-tower-introduction) + (ruins-tower-resolution) + (ruins-tower-exit) + (atoll-water-introduction) + (atoll-water-find) + (atoll-water-valve) + (atoll-water-resolution) + (atoll-water-exit) + (fortress-dump-introduction) + (fortress-dump-deal) + (fortress-dump-missile) + (fortress-dump-resolution) + (city-krew-delivery-introduction) + (city-krew-delivery-delivery) + (city-krew-delivery-resolution) + (city-red-gun-training-introduction) + (city-red-gun-training-try-once) + (city-red-gun-training-resolution) + (city-red-gun-training-bronze) + (city-red-gun-training-silver) + (city-red-gun-training-gold) + (atoll-sig-introduction) + (atoll-sig-sig-introduction) + (atoll-sig-tank) + (atoll-sig-sniper-a) + (atoll-sig-sniper-b) + (atoll-sig-sniper-c) + (atoll-sig-sniper-d) + (atoll-sig-resolution) + (sewer-enemy-introduction) + (sewer-enemy-blow-up-turrets) + (sewer-enemy-talk-to-krew) + (sewer-enemy-resolution) + (strip-rescue-introduction) + (strip-rescue-battle) + (strip-rescue-resolution) + (atoll-battle-introduction) + (atoll-battle-rescue) + (atoll-battle-battle) + (atoll-battle-resolution) + (mountain-lens-introduction) + (mountain-lens-started) + (mountain-lens-intermediate) + (mountain-lens-resolution) + (mountain-gear-find) + (mountain-gear-resolution) + (mountain-shard-dice) + (mountain-shard-resolution) + (mountain-collection-resolution) + (city-keira-delivery-introduction) + (city-keira-delivery-delivery) + (city-keira-delivery-resolution) + (stadium-board1-introduction) + (stadium-board1-board) + (stadium-board1-training) + (stadium-board1-training-judge) + (stadium-board1-done) + (stadium-board1-resolution) + (stadium-board1-bronze) + (stadium-board1-silver) + (stadium-board1-gold) + (city-krew-collection-introduction) + (city-krew-collection-collection) + (city-krew-collection-resolution) + (city-yellow-gun-training-introduction) + (city-yellow-gun-training-resolution) + (city-yellow-gun-training-bronze) + (city-yellow-gun-training-silver) + (city-yellow-gun-training-gold) + (drill-eggs-introduction) + (drill-eggs-eggs-0) + (drill-eggs-eggs-1) + (drill-eggs-eggs-2) + (drill-eggs-resolution) + (city-power-introduction) + (city-power-vinroom) + (city-power-resolution) + (city-power-post-win) + (palace-cable-introduction) + (palace-cable-resolution) + (palace-boss-introduction) + (palace-boss-battle) + (palace-boss-resolution) + (city-shuttle-introduction) + (city-shuttle-shuttle) + (city-shuttle-resolution) + (ruins-enemy-introduction) + (ruins-enemy-resolution) + (ruins-enemy-exit) + (city-blue-gun-training-bronze) + (city-blue-gun-training-silver) + (city-blue-gun-training-gold) + (forest-scouts-pre-intro) + (forest-scouts-introduction) + (forest-scouts-voicebox) + (forest-scouts-get-board) + (forest-scouts-pegasus) + (forest-scouts-resolution) + (city-escort-kid-pre-intro) + (city-escort-kid-introduction) + (city-escort-kid-resolution) + (dig-knock-down-introduction) + (dig-knock-down-resolution) + (strip-grenade-introduction) + (strip-grenade-explode) + (strip-grenade-resolution) + (drill-ship-introduction) + (drill-ship-resolution) + (city-port-run-introduction) + (city-port-run-resolution) + (city-port-run-post-win) + (city-meet-brutter-pre-intro) + (city-meet-brutter-introduction) + (city-meet-brutter-meet-brutter) + (city-meet-brutter-resolution) + (sewer-board-introduction) + (sewer-board-drain) + (sewer-board-resolution) + (forest-hunt-introduction) + (forest-hunt-resolution) + (city-intercept-tanker-roof-explode) + (city-intercept-tanker-introduction) + (city-intercept-tanker-battle) + (city-intercept-tanker-resolution) + (stadium-race-class3-introduction) + (stadium-race-class3-race) + (stadium-race-class3-resolution) + (stadium-race-class3-select-bush) + (city-protect-water-slums-introduction) + (city-protect-water-slums-get-seal) + (city-protect-water-slums-fight) + (city-protect-water-slums-resolution) + (dig-find-totem-introduction) + (dig-find-totem-raise-log) + (dig-find-totem-resolution) + (city-destroy-guard-vehicles-introduction) + (city-destroy-guard-vehicles-destroy) + (city-destroy-guard-vehicles-resolution) + (city-play-onin-game-introduction) + (city-play-onin-game-wait) + (city-play-onin-game-resolution) + (city-play-onin-game-skill) + (city-play-onin-game-post-game) + (canyon-insert-items-introduction) + (canyon-insert-items-door) + (canyon-insert-items-gear) + (canyon-insert-items-shard) + (canyon-insert-items-resolution) + (tomb-poles-introduction) + (tomb-poles-block) + (tomb-poles-poles) + (tomb-poles-boulder) + (tomb-poles-poles2) + (tomb-poles-resolution) + (tomb-water-vibe) + (tomb-water-resolution) + (tomb-boss-torches) + (tomb-boss-door) + (tomb-boss-introduction) + (tomb-boss-resolution) + (fortress-save-friends-introduction) + (fortress-save-friends-resolution) + (sewer-escort-introduction) + (sewer-escort-explode-wall1) + (sewer-escort-explode-wall2) + (sewer-escort-resolution) + (sewer-escort-get-gun) + (city-dark-gun-training-bronze) + (city-dark-gun-training-silver) + (city-dark-gun-training-gold) + (stadium-race-class2-introduction) + (stadium-race-class2-race) + (stadium-race-class2-resolution) + (stadium-race-class2-select-bush) + (city-stop-bomb-bots-introduction) + (city-stop-bomb-bots-destroy) + (city-stop-bomb-bots-resolution) + (city-errol-challenge-introduction) + (city-errol-challenge-race) + (city-errol-challenge-resolution) + (strip-drop-introduction) + (strip-drop-resolution) + (ruins-mech-introduction) + (ruins-mech-break-wall-1) + (ruins-mech-move-block-1) + (ruins-mech-throw-block-1) + (ruins-mech-resolution) + (forest-protect-introduction) + (forest-protect-meeting) + (forest-protect-resolution) + (forest-protect-post-game) + (drill-mech-introduction) + (drill-mech-started-smashing) + (drill-mech-smash-consoles) + (drill-mech-resolution) + (city-save-lurkers-introduction) + (city-save-lurkers-save-lurkers) + (city-save-lurkers-resolution) + (stadium-race-class1-introduction) + (stadium-race-class1-race) + (stadium-race-class1-resolution) + (stadium-race-class1-select-bush) + (palace-sneak-in-introduction) + (palace-sneak-in-meeting) + (palace-sneak-in-palace-3) + (palace-sneak-in-door) + (palace-sneak-in-resolution) + (castle-break-in-introduction) + (castle-break-in-castle-1) + (castle-break-in-resolution) + (castle-boss-introduction) + (castle-boss-resolution) + (city-whack-pre-intro) + (city-whack-introduction) + (city-whack-wait) + (city-whack-resolution) + (city-whack-post-game) + (under-mech-introduction) + (under-mech-resolution) + (under-sig-introduction) + (under-sig-centipede1-start) + (under-sig-centipede1-end) + (under-sig-centipede2-start) + (under-sig-resolution) + (city-defend-stadium-pre-intro) + (city-defend-stadium-introduction) + (city-defend-stadium-resolution) + (consite-find-baron-introduction) + (consite-find-baron-resolution) + (nest-get-to-gun-introduction) + (nest-get-to-gun-resolution) + (nest-enter-introduction) + (nest-enter-resolution) + (nest-boss-introduction) + (nest-boss-resolution) + (city-win-pre-intro) + (city-win-introduction) + (city-win-resolution) + (city-oracle-introduction) + (city-oracle-level0) + (city-oracle-level0-training) + (city-oracle-level1) + (city-oracle-level1-training) + (city-oracle-level2) + (city-oracle-level2-training) + (city-oracle-level3) + (city-oracle-level3-training) + (city-burning-bush-ring-1-introduction) + (city-burning-bush-ring-1-resolution) + (city-burning-bush-get-to-1-introduction) + (city-burning-bush-get-to-1-resolution) + (city-burning-bush-get-to-2-introduction) + (city-burning-bush-get-to-2-resolution) + (city-burning-bush-get-to-3-introduction) + (city-burning-bush-get-to-3-resolution) + (city-burning-bush-get-to-4-introduction) + (city-burning-bush-get-to-4-resolution) + (city-burning-bush-collection-1-introduction) + (city-burning-bush-collection-1-resolution) + (city-burning-bush-racepoint-1-introduction) + (city-burning-bush-racepoint-1-resolution) + (city-burning-bush-ring-2-introduction) + (city-burning-bush-ring-2-resolution) + (city-burning-bush-get-to-5-introduction) + (city-burning-bush-get-to-5-resolution) + (city-burning-bush-get-to-6-introduction) + (city-burning-bush-get-to-6-resolution) + (city-burning-bush-shuttle-1-introduction) + (city-burning-bush-shuttle-1-resolution) + (city-burning-bush-get-to-7-introduction) + (city-burning-bush-get-to-7-resolution) + (city-burning-bush-get-to-8-introduction) + (city-burning-bush-get-to-8-resolution) + (city-burning-bush-get-to-9-introduction) + (city-burning-bush-get-to-9-resolution) + (city-burning-bush-collection-2-introduction) + (city-burning-bush-collection-2-resolution) + (city-burning-bush-get-to-10-introduction) + (city-burning-bush-get-to-10-resolution) + (city-burning-bush-get-to-11-introduction) + (city-burning-bush-get-to-11-resolution) + (city-burning-bush-ring-3-introduction) + (city-burning-bush-ring-3-resolution) + (city-burning-bush-get-to-12-introduction) + (city-burning-bush-get-to-12-resolution) + (city-burning-bush-bombbot-1-introduction) + (city-burning-bush-bombbot-1-resolution) + (city-burning-bush-get-to-13-introduction) + (city-burning-bush-get-to-13-resolution) + (city-burning-bush-get-to-14-introduction) + (city-burning-bush-get-to-14-resolution) + (city-burning-bush-get-to-15-introduction) + (city-burning-bush-get-to-15-resolution) + (city-burning-bush-collection-3-introduction) + (city-burning-bush-collection-3-resolution) + (city-burning-bush-race-errol-introduction) + (city-burning-bush-race-errol-resolution) + (city-burning-bush-race-port-introduction) + (city-burning-bush-race-port-resolution) + (stadium-burning-bush-race-board-introduction) + (stadium-burning-bush-race-board-resolution) + (stadium-burning-bush-race-class3-introduction) + (stadium-burning-bush-race-class3-resolution) + (stadium-burning-bush-race-class2-introduction) + (stadium-burning-bush-race-class2-resolution) + (stadium-burning-bush-race-class1-introduction) + (stadium-burning-bush-race-class1-resolution) + (stadium-burning-bush-race-class3-r-introduction) + (stadium-burning-bush-race-class3-r-resolution) + (stadium-burning-bush-race-class2-r-introduction) + (stadium-burning-bush-race-class2-r-resolution) + (stadium-burning-bush-race-class1-r-introduction) + (stadium-burning-bush-race-class1-r-resolution) + ) ;; ---game-task-h:game-task-node (defenum game-task-actor @@ -8620,11 +9184,85 @@ ) (defenum game-task-flags + :bitfield #t :type uint8 + (gatflag-00) + (gatflag-01) + (gatflag-02) ) (defenum game-task-icon - :type uint16 + :type uint8 + (gaticon-00) + (gaticon-01) + (gaticon-02) + (gaticon-03) + (gaticon-04) + (gaticon-05) + (gaticon-06) + (gaticon-07) + (gaticon-08) + (gaticon-09) + (gaticon-10) + (gaticon-11) + (gaticon-12) + (gaticon-13) + (gaticon-14) + (gaticon-15) + (gaticon-16) + (gaticon-17) + (gaticon-18) + (gaticon-19) + (gaticon-20) + (gaticon-21) + (gaticon-22) + (gaticon-23) + (gaticon-24) + (gaticon-25) + (gaticon-26) + (gaticon-27) + (gaticon-28) + (gaticon-29) + (gaticon-30) + (gaticon-31) + (gaticon-32) + (gaticon-33) + (gaticon-34) + (gaticon-35) + (gaticon-36) + (gaticon-37) + (gaticon-38) + (gaticon-39) + (gaticon-40) + (gaticon-41) + (gaticon-42) + (gaticon-43) + (gaticon-44) + (gaticon-45) + (gaticon-46) + (gaticon-47) + (gaticon-48) + (gaticon-49) + (gaticon-50) + (gaticon-51) + (gaticon-52) + (gaticon-53) + (gaticon-54) + (gaticon-55) + (gaticon-56) + (gaticon-57) + (gaticon-58) + (gaticon-59) + (gaticon-60) + (gaticon-61) + (gaticon-62) + (gaticon-63) + (gaticon-64) + (gaticon-65) + (gaticon-66) + (gaticon-67) + (gaticon-68) + (gaticon-69) ) (defenum task-manager-mask @@ -8698,7 +9336,8 @@ (deftype game-task-event (basic) ((actor game-task-actor :offset-assert 4) (action game-task-action :offset-assert 5) - (icon game-task-icon :offset 6) + (tex game-task-icon :offset-assert 6) ;; added + (icon uint16 :offset 6 :score -100) (flags game-task-flags :offset 7) (scene basic :offset 8) (distance meters :offset-assert 12) @@ -8709,77 +9348,76 @@ (deftype task-manager-info (structure) ((mask task-manager-mask) - (level basic) + (level symbol) (manager handle) - (fail-message uint32) - (retry-message uint32) - (intro-scene basic) - (resolution-scene basic) - (resolution-scene-continue basic) - (retry-continue basic) - (fail-continue basic) - (init-hook basic) - (cleanup-hook basic) - (update-hook basic) - (code-hook basic) - (complete-hook basic) - (fail-hook basic) - (event-hook basic) - (final-node uint16) + (fail-message game-text-id) + (retry-message game-text-id) + (intro-scene string) + (resolution-scene string) + (resolution-scene-continue string) + (retry-continue string) + (fail-continue string) + (init-hook (function object)) + (cleanup-hook (function object)) + (update-hook (function object)) + (code-hook (function object)) + (complete-hook (function object)) + (fail-hook (function object)) + (event-hook (function process int symbol event-message-block object)) + (hooks (function object) 7 :overlay-at init-hook) ;; added, likely hidden + (final-node game-task-node) (time-limit int32) (sphere-count int8) (index int8) (intro-delay uint16) (sphere-array uint32) ;; pointers... - (on-complete basic) - (on-fail basic) + (on-complete pair) + (on-fail pair) (begin-sphere sphere :inline) (end-sphere sphere :inline) ) :flag-assert #x900000080 ) - - (deftype game-task-node-info (basic) - ((level basic) + ((level symbol) (task game-task) (name string) - (when-open array) + (when-open (array game-task-event)) (flags game-task-node-flag) - (parent-node uint16 4) + (parent-node game-task-node 4) (task-mask task-mask) - (on-open basic) + (on-open pair) (info task-manager-info) - (borrow basic) - (open? symbol) - (on-close basic) + (borrow pair) + (open? (function game-task-node-info symbol)) + (on-close pair) (close-time time-frame) (death-count uint16) (gem-count uint16) (skill-count uint16) (suck-death-count uint8) (add game-task-node-command) - (description uint32) + (description game-text-id) ) :flag-assert #xe0000004c (:methods - (dummy-9 () none 9) - (dummy-10 () none 10) - (dummy-11 () none 11) - (dummy-12 () none 12) - (dummy-13 () none 13) + (close! (_type_ symbol) int 9) + (open! (_type_ symbol) int 10) + (open? (_type_) symbol 11) + (copy-hooks! (_type_ game-task-node-info) game-task-node-info 12) + (eval-add (_type_) int 13) ) ) (deftype game-task-info (basic) ((name string :offset-assert 4) - (text-name uint32 :offset-assert 8) - (pre-play-node uint16 :offset-assert 12) - (kiosk-play-node uint16 :offset-assert 14) + (text-name game-text-id :offset-assert 8) + (pre-play-node game-task-node :offset-assert 12) + (kiosk-play-node game-task-node :offset-assert 14) (pre-play-continue string :offset-assert 16) - (play-node uint16 :offset-assert 20) + (play-node game-task-node :offset-assert 20) (play-continue string :offset-assert 24) (kiosk-play-continue string :offset-assert 28) ) @@ -8789,31 +9427,31 @@ (deftype game-task-control (basic) ((counter uint32) (actor game-task-actor) - (current-node uint16) - (current-event uint32) + (current-node game-task-node) + (current-event game-task-event) ) :flag-assert #xa00000010 (:methods - (dummy-9 () none 9) + (new (symbol type game-task-actor) _type_ 0) + (game-task-control-method-9 (_type_) game-task-event 9) ) ) (deftype task-manager (process) - ( - (node-info basic) + ((node-info game-task-node-info) (info task-manager-info) - (lev-name basic) + (lev-name symbol) (fail-on-death? symbol) - (fail-now basic) - (retry-now basic) - (allow-fail basic) + (fail-now symbol) + (retry-now symbol) + (allow-fail symbol) (state-time time-frame) (count int16) (max-count int16) (sub-state uint32 :offset-assert 172) - (slave uint64 32) ;; ? - (arrow uint64 :offset-assert 432) + (slave handle 32) ;; ? + (arrow handle :offset-assert 432) (link uint32) (start-time time-frame) (total-time time-frame) @@ -8827,24 +9465,23 @@ (data-vector vector 32 :inline :offset-assert 800) (actor-group uint32 4 :offset-assert 1312) (minimap uint32 8 :offset-assert 1328) - (hud uint64 4 :offset-assert 1360) - (hud-timer time-frame :offset 1360) - (hud-counter int64 :offset 1368) - (sound-id uint32 4 :offset-assert 1392) + (hud handle 4 :offset-assert 1360) + (hud-timer handle :offset 1360) + (hud-counter handle :offset 1368) + (sound-id sound-id 4 :offset-assert 1392) (intro-time time-frame :offset-assert 1408) ) :flag-assert #x1705100588 (:methods - (dummy-14 () none 14) - (dummy-15 () none 15) - (dummy-16 () none 16) - (dummy-17 () none 17) - (dummy-18 () none 18) - (dummy-19 () none 19) - (dummy-20 () none 20) - (dummy-21 () none 21) - (dummy-22 () none 22) - + (wait () _type_ :state 14) + (active () _type_ :state 15) + (complete () _type_ :state 16) + (fail () _type_ :state 17) + (retry () _type_ :state 18) + (initialize! (_type_) int 19) + (kill-all-children (_type_) int 20) ;; if only. + (check-time (_type_) int 21) + (task-manager-method-22 (_type_) symbol 22) ) ) @@ -8866,7 +9503,7 @@ (define-extern c-string->game-task (function string game-task)) (define-extern game-task-actor->string (function game-task-actor string)) (define-extern game-task-action->string (function game-task-action string)) -(define-extern game-task-node-flag->string (function game-task-node-flag none)) +(define-extern game-task-node-flag->string (function game-task-node-flag object)) (define-extern game-task-node-command->string (function game-task-node-command string)) (define-extern *traffic-engine* object) @@ -11634,6 +12271,7 @@ :method-count-assert 9 :size-assert #x12c :flag-assert #x90000012c + :pack-me ;; agh ) (define-extern mc-sync (function int)) @@ -11667,8 +12305,14 @@ :flag-assert #x900000004 ) +(defenum highscore-flags + :bitfield #t + :type uint8 + (time) + ) + (deftype highscore-info (structure) - ((flags uint8 :offset-assert 0) + ((flags highscore-flags :offset-assert 0) (award-scores float 3 :offset-assert 4) (bronze-score float :offset 4) (silver-score float :offset 8) @@ -11678,7 +12322,7 @@ :size-assert #x10 :flag-assert #xa00000010 (:methods - (highscore-info-method-9 () none 9) + (get-rank (_type_ float) int 9) ) ) @@ -11769,7 +12413,7 @@ (trans vector :inline) (quat vector :inline) (camera-trans vector :inline) - (camera-rot float 9) + (camera-rot vector3s 3 :inline) (on-goto pair) (vis-nick symbol) (want level-buffer-state 6 :inline) @@ -11780,9 +12424,9 @@ :flag-assert #xc000000d8 ;; Failed to read fields. (:methods - (continue-point-method-9 () none 9) ;; (debug-draw! (_type_) none 9) - (continue-point-method-10 () none 10) - (continue-point-method-11 (_type_) none 11) + (debug-draw (_type_) int 9) + (continue-point-method-10 (_type_ load-state) continue-point 10) + (move-camera! (_type_) none 11) ) ) @@ -11812,37 +12456,6 @@ (declare-type continue-point basic) (declare-type game-save basic) -(defenum game-feature - :type uint64 - :bitfield #t - (unk-game-feature-01) - (unk-game-feature-02) - (unk-game-feature-03) - (unk-game-feature-04) - (unk-game-feature-05) - (unk-game-feature-06) - (gun-yellow) - (gun-red) - (gun-blue) - (gun-dark) - (board) - (carry) - (sidekick) - (darkjak) - (gun-upgrade-speed) - (gun-upgrade-ammo) - (gun-upgrade-damage) - (unk-game-feature-18) - (pass-red) - (pass-green) - (pass-yellow) - (unk-game-feature-22) - (darkjak-bomb0) - (darkjak-bomb1) - (darkjak-invinc) - (darkjak-giant) - (board-training)) - (defenum game-secrets :type uint32 :bitfield #t @@ -11857,6 +12470,7 @@ (level-select) (scrap-book-1) (scrap-book-2) + (scrap-book-3) (gungame-blue) (gungame-dark) (reverse-races) @@ -11864,6 +12478,29 @@ (big-head) (little-head)) +(defenum game-score + (none) + (race-1) + (race-2) + (race-3) + (gungame-red) + (gungame-yellow) + (gungame-blue) + (gungame-dark) + (onin-game) + (whack) + (judge-skatea) + (bush-race-1) + (bush-race-2) + (bush-race-3) + (bush-port) + (bush-errol) + (reverse-race-1) + (reverse-race-2) + (reverse-race-3) + ) + +(declare-type entity-perm structure) (deftype game-info (basic) ((mode symbol :offset-assert 4) (save-name string :offset-assert 8) @@ -11892,10 +12529,10 @@ (gun-ammo float 4 :offset-assert 164) (shield float :offset-assert 180) (score float :offset-assert 184) - (score-owner uint64 :offset-assert 192) - (timer uint64 :offset-assert 200) - (timer-owner uint64 :offset-assert 208) - (timer-flash basic :offset-assert 216) + (score-owner handle :offset-assert 192) + (timer time-frame :offset-assert 200) + (timer-owner handle :offset-assert 208) + (timer-flash symbol :offset-assert 216) (counter float :offset-assert 220) (counter-flash basic :offset-assert 224) (attack-id uint32 :offset-assert 228) @@ -11905,9 +12542,9 @@ (last-continue continue-point :offset-assert 244) (play-list (array game-task-info) :offset-assert 248) (sub-task-list (array game-task-node-info) :offset-assert 252) - (unknown-pad5 array :offset-assert 256) + (unknown-pad5 (array game-task-node-info) :offset-assert 256) (task-counter uint32 :offset-assert 260) - (unknown-pad6 uint32 :offset-assert 264) + (unknown-pad6 (array uint16) :offset-assert 264) (level-opened uint8 32 :offset-assert 268) (total-deaths int32 :offset-assert 300) (continue-deaths int32 :offset-assert 304) @@ -11918,9 +12555,9 @@ (death-time time-frame :offset-assert 336) (hit-time time-frame :offset-assert 344) (task-pickup-time time-frame :offset-assert 352) - (unknown-array1 (array uint64) :offset-assert 360) - (unknown-array2 (array uint64) :offset-assert 364) - (unknown-array3 (array uint64) :offset-assert 368) + (unknown-array1 (array time-frame) :offset-assert 360) + (task-enter-times (array time-frame) :offset-assert 364) + (task-in-times (array time-frame) :offset-assert 368) (death-pos vector-array :offset 372) (stop-watch-start uint64 :offset-assert 376) (stop-watch-stop uint64 :offset-assert 384) @@ -11936,8 +12573,8 @@ (auto-save-card int32 :offset-assert 452) (auto-save-which int32 :offset-assert 456) (auto-save-count int32 :offset-assert 460) - (pov-camera-handle uint64 :offset-assert 464) - (other-camera-handle uint64 :offset-assert 472) + (pov-camera-handle handle :offset-assert 464) + (other-camera-handle handle :offset-assert 472) (controller handle 2 :offset-assert 480) (race-timer uint64 :offset-assert 496) (race-current-lap-count int32 :offset-assert 504) @@ -11950,11 +12587,11 @@ (distance float :offset-assert 540) (kiosk-timeout uint64 :offset-assert 544) (pause-start-time time-frame :offset-assert 552) - (game-score (array highscore-info) :offset-assert 560) + (game-score (array float) :offset-assert 560) (goal float :offset-assert 564) (miss float :offset-assert 568) (miss-max float :offset-assert 572) - (unknown-array4 (array uint64) :offset-assert 576) + (task-close-times (array time-frame) :offset-assert 576) (live-eco-pill-count int32 :offset-assert 580) (live-gem-count int32 :offset-assert 584) (air-supply float :offset-assert 588) @@ -11967,27 +12604,27 @@ :flag-assert #x1f0000025c (:methods (initialize! (_type_ symbol game-save string) _type_ 9) - (game-info-method-10 () none 10) ;; (adjust (_type_ symbol float handle) float 10) + (give (_type_ symbol float handle) float 10) (task-complete? (_type_ game-task) symbol 11) - (game-info-method-12 (_type_) none 12) ;; (lookup-entity-perm-by-aid (_type_ actor-id) entity-perm 12) - (game-info-method-13 () none 13) ;; (get-entity-task-perm (_type_ game-task) entity-perm 13) - (game-info-method-14 () none 14) ;; 14) - (game-info-method-15 () none 15) - (copy-perms-from-level! (_type_ level) none 16) - (copy-perms-to-level! (_type_ level) none 17) - (game-info-method-18 () none 18) - (get-current-continue-point (_type_) continue-point 19) + (subtask-index-by-name (_type_ string) int 12) + (set-subtask-hook! (_type_ int int function) function 13) + (actor-perm (_type_ actor-id) entity-perm 14) + (task-perm-by-index (_type_ int) entity-perm 15) + (copy-perms-from-level! (_type_ level) int 16) + (copy-perms-to-level! (_type_ level) int 17) + (game-info-method-18 (_type_ symbol) _type_ 18) + (get-current-continue-forced (_type_) continue-point 19) (get-continue-by-name (_type_ string) continue-point 20) - (set-continue! (_type_ basic object) continue-point 21) - (game-info-method-22 () none 22) - (game-info-method-23 () none 23) - (game-info-method-24 () none 24) - (game-info-method-25 () none 25) - (game-info-method-26 () none 26) + (set-continue! (_type_ basic symbol) continue-point 21) + (game-info-method-22 (_type_) int 22) + (game-info-method-23 (_type_ game-save string) int 23) + (game-info-method-24 (_type_ game-save) none 24) + (you-suck-stage (_type_ symbol) int 25) + (you-suck-scale (_type_) float 26) (get-next-attack-id (_type_) uint 27) - (game-info-method-28 () none 28) - (game-info-method-29 () none 29) - (game-info-method-30 () none 30) + (game-info-method-28 (_type_ game-score float) int 28) + (get-game-score-ref (_type_ int) (pointer float) 29) + (calculate-percentage (_type_) float 30) ) ) @@ -12265,7 +12902,7 @@ (:methods (speech-control-method-9 () none 9) (speech-control-method-10 () none 10) - (speech-control-method-11 () none 11) + (speech-control-method-11 (_type_) none 11) (speech-control-method-12 () none 12) (speech-control-method-13 () none 13) (speech-control-method-14 () none 14) @@ -13581,7 +14218,7 @@ (eco-level float) (eco-pickup-time time-frame) (eco-timeout time-frame) - (eco-source uint64) + (eco-source handle) (eco-source-time time-frame) (health float) (health-max float) @@ -14186,7 +14823,7 @@ :flag-assert #xc000000a0 (:methods (new (symbol type basic process vector) _type_ 0) - (eval! "TODO - Argument can be a [[symbol]] or a [[pair]]" (_type_ object) object 9) + (eval! (_type_ pair) object 9) (script-context-method-10 (_type_ object pair) object 10) (script-context-method-11 (_type_ pair pair symbol) symbol 11) ) @@ -18378,7 +19015,8 @@ (complete 8) (bit-9 9) (bit-10 10) - (entity-perm-status-12 12) + (save 11) + (bit-12 12) ) (deftype entity-perm (structure) @@ -18401,7 +19039,7 @@ :size-assert #x10 :flag-assert #xa00000010 (:methods - (update-perm! (_type_ symbol entity-perm-status) _type_ 9) + (update (_type_ symbol entity-perm-status) _type_ 9) ) ) @@ -23708,13 +24346,14 @@ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (define-extern *default-continue* continue-point) -;; (define-extern task-level->string function) -;; (define-extern level-name->task-level function) -(define-extern trsq->continue-point (function trsq none)) +(define-extern task-level->string (function int string)) +(define-extern level-name->task-level (function symbol int)) +(define-extern trsq->continue-point (function trsq int)) (define-extern position->stream (function string symbol symbol none)) -(define-extern bug-report-display (function none)) -;; (define-extern print-continues function) +(define-extern bug-report-display (function symbol int)) +(define-extern print-continues (function int)) (define-extern *highscore-info-array* (array highscore-info)) +(define-extern *user* symbol) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; game-task ;; @@ -23725,105 +24364,157 @@ ;; game-save ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -#| +(defenum game-save-elt + :type uint16 + (task-deaths 402) + (task-node-list 306) + (task-list 300) + (real-time 102) + (aspect-ratio 509) + (play-hints 507) + (continue-deaths 401) + (node-close-time 419) + (continue-time 408) + (dialog-volume 502) + (vibration 506) + (real-frame-time 105) + (task-complete-time 409) + (total-game-time 108) + (frame-time 104) + (in-level-time 414) + (sfx-volume 500) + (life 201) + (gun-ammo 216) + (task-start-time 415) + (auto-save-count 413) + (eco-pill-dark-total 212) + (game-time 103) + (screenx 504) + (death-movie-tick 207) + (buzzer-total 205) + (bigmap-data 308) + (stereo-mode 513) + (task-pickup-time 407) + (name 100) + (level-open-list 305) + (disk-tester 600) + (camera-stick-dir 510) + (continue 200) + (deaths-per-level 411) + (karma 210) + (scores 221) + (session-time 106) + (bg-time 107) + (screeny 505) + (total-trys 421) + (music-volume 501) + (node-death-count 416) + (gem 218) + (base-time 101) + (node-name 420) + (eco-pill-dark 211) + (skill-total 209) + (bigmap-offsets 309) + (death-pos 412) + (talker-state 307) + (features 214) + (game-start-time 403) + (hit-time 406) + (subtitle 511) + (total-deaths 400) + (death-time 405) + (video-mode 508) + (fuel-cell 206) + (node-gem-count 417) + (skill 208) + (subtitle-language 512) + (secrets 220) + (shield 213) + (gun-type 215) + (gem-total 219) + (node-skill-count 418) + (money-per-level 204) + (money-total 203) + (money 202) + (enter-level-time 410) + (purchase-secrets 222) + (perm-list 301) + (language 503) + ) + (deftype game-save-tag (structure) - ((user-object object 2 :offset-assert 0) ;; guessed by decompiler - (user-uint64 uint64 :offset-assert 0) - (user-float0 float :offset-assert 0) - (user-float float 2 :offset-assert 0) ;; guessed by decompiler - (user-int32 int32 2 :offset-assert 0) ;; guessed by decompiler - (user-uint32 uint32 2 :offset-assert 0) ;; guessed by decompiler - (user-int16 int16 4 :offset-assert 0) ;; guessed by decompiler - (user-uint16 uint16 4 :offset-assert 0) ;; guessed by decompiler - (user-int8 int8 8 :offset-assert 0) ;; guessed by decompiler - (user-int80 int8 :offset-assert 0) - (user-int81 int8 :offset-assert 1) - (user-uint8 uint8 8 :offset-assert 0) ;; guessed by decompiler + ((user-object object 2 :offset 0) ;; guessed by decompiler + (user-uint64 uint64 :offset 0) + (user-float0 float :offset 0) + (user-float float 2 :offset 0) ;; guessed by decompiler + (user-int32 int32 2 :offset 0) ;; guessed by decompiler + (user-uint32 uint32 2 :offset 0) ;; guessed by decompiler + (user-int16 int16 4 :offset 0) ;; guessed by decompiler + (user-uint16 uint16 4 :offset 0) ;; guessed by decompiler + (user-int8 int8 8 :offset 0) ;; guessed by decompiler + (user-int80 int8 :offset 0) + (user-int81 int8 :offset 1) + (user-uint8 uint8 8 :offset 0) ;; guessed by decompiler (elt-count int32 :offset-assert 8) (elt-size uint16 :offset-assert 12) - (elt-type uint16 :offset-assert 14) ;; game-save-elt + (elt-type game-save-elt :offset-assert 14) ) :method-count-assert 9 :size-assert #x10 :flag-assert #x900000010 ) -|# -#| (deftype game-save (basic) ((version int32 :offset-assert 4) (allocated-length int32 :offset-assert 8) (length int32 :offset-assert 12) (info-int32 int32 16 :offset-assert 16) ;; guessed by decompiler - (info-int8 int8 64 :offset-assert 16) ;; guessed by decompiler - (level-index int32 :offset-assert 16) - (gem-count float :offset-assert 20) - (skill-count float :offset-assert 24) - (completion-percentage float :offset-assert 28) - (minute uint8 :offset-assert 36) - (hour uint8 :offset-assert 37) - (week uint8 :offset-assert 38) - (day uint8 :offset-assert 39) - (month uint8 :offset-assert 40) - (year uint8 :offset-assert 41) - (new-game int32 :offset-assert 44) - (game-time time-frame :offset-assert 48) - (secrets uint32 :offset-assert 56) - (features uint32 :offset-assert 60) + (info-int8 int8 64 :overlay-at info-int32) ;; guessed by decompiler + (level-index int32 :offset 16) + (gem-count float :offset 20) + (skill-count float :offset 24) + (completion-percentage float :offset 28) + (minute uint8 :offset 36) + (hour uint8 :offset 37) + (week uint8 :offset 38) + (day uint8 :offset 39) + (month uint8 :offset 40) + (year uint8 :offset 41) + (new-game int32 :offset 44) + (game-time time-frame :offset 48) + (secrets uint32 :offset 56) + (features uint32 :offset 60) (tag game-save-tag :dynamic :offset-assert 80) ;; guessed by decompiler ) :method-count-assert 12 :size-assert #x50 :flag-assert #xc00000050 (:methods - ;; (new (symbol type int) _type_ 0) - (game-save-method-9 () none 9) ;; (save-to-file (_type_ string) _type_ 9) - (game-save-method-10 () none 10) ;; (load-from-file! (_type_ string) _type_ 10) - (game-save-method-11 () none 11) ;; (debug-print (_type_ symbol) _type_ 11) + (new (symbol type int) _type_ 0) + (game-save-method-9 (_type_ string) none 9) ;; (save-to-file (_type_ string) _type_ 9) + (game-save-method-10 (_type_ string) none 10) ;; (load-from-file! (_type_ string) _type_ 10) + (game-save-method-11 (_type_ symbol) none 11) ;; (debug-print (_type_ symbol) _type_ 11) ) ) -|# -#| -(deftype game-save (basic) - () - :method-count-assert 12 - :size-assert #x50 - :flag-assert #xc00000050 - ;; Failed to read fields. - (:methods - ;; (new (symbol type int) _type_ 0) - (game-save-method-9 () none 9) ;; (save-to-file (_type_ string) _type_ 9) - (game-save-method-10 () none 10) ;; (load-from-file! (_type_ string) _type_ 10) - (game-save-method-11 () none 11) ;; (debug-print (_type_ symbol) _type_ 11) - ) - ) -|# - -#| (deftype auto-save (process) - ((card int32 :offset-assert 124) - (slot int32 :offset-assert 128) - (which int32 :offset-assert 132) - (buffer kheap :offset-assert 136) - (mode basic :offset-assert 140) - (result mc-status-code :offset-assert 144) ;; guessed by decompiler - (save game-save :offset-assert 148) ;; guessed by decompiler - (info mc-slot-info :inline :offset-assert 152) - (notify uint64 :offset-assert 452) ;; handle - (force basic :offset-assert 460) - (state-time time-frame :offset-assert 468) ;; time-frame - (icon hud-sprite :inline :offset-assert 476) + ((card int32 :offset-assert 128) + (slot int32 :offset-assert 132) + (which int32 :offset-assert 136) + (buffer kheap :offset-assert 140) + (mode basic :offset-assert 144) + (result mc-status-code :offset-assert 148) ;; guessed by decompiler + (save game-save :offset-assert 152) ;; guessed by decompiler + (info mc-slot-info :inline :offset-assert 156) + (notify handle :offset-assert 456) + (force basic :offset-assert 464) + (state-time time-frame :offset-assert 472) + (icon hud-sprite :inline :offset-assert 480) ) :method-count-assert 23 :size-assert #x214 :flag-assert #x1701a00214 (:methods - (auto-save-method-9 () none 9) - (auto-save-method-10 () none 10) - (auto-save-method-11 () none 11) - (auto-save-method-12 () none 12) - (auto-save-method-13 () none 13) (get-heap () _type_ :state 14) ;; (get-heap () _type_ :state 14) (get-card () _type_ :state 15) ;; (get-card () _type_ :state 15) (format-card () _type_ :state 16) ;; (format-card () _type_ :state 16) @@ -23835,10 +24526,9 @@ (done () _type_ :state 22) ;; (unformat-card () _type_ :state 22) ) ) -|# -;; (define-extern game-save-elt->string function) ;; (function game-save-elt string) -;; (define-extern *auto-save-info* object) ;; mc-slot-info +(define-extern game-save-elt->string (function game-save-elt string)) +(define-extern *auto-save-info* mc-slot-info) ;; (define-extern auto-save-post function) ;; (function none :behavior auto-save) ;; (define-extern auto-save-init-by-other function) ;; (function symbol process-tree int int none :behavior auto-save) (define-extern auto-save-command (function symbol int int process-tree symbol none)) @@ -25050,14 +25740,14 @@ (define-extern island1 level-load-info) (define-extern city-start (function none)) (define-extern skatepark level-load-info) -(define-extern halfpipe level-load-info) ;; level-load-info +(define-extern halfpipe level-load-info) (define-extern vistest level-load-info) (define-extern woodstest level-load-info) (define-extern tobytest level-load-info) (define-extern chartest level-load-info) (define-extern dptest level-load-info) (define-extern ctyfence level-load-info) -(define-extern *level-load-list* pair) ;; +(define-extern *level-load-list* pair) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; level ;; @@ -26307,7 +26997,7 @@ (define-extern can-display-query? (function symbol)) (define-extern talker-surpress! (function none)) (define-extern talker-displayed? (function symbol)) -;; (define-extern kill-current-talker function) +(define-extern kill-current-talker (function none)) (define-extern string->talker-speech (function string talker-speech-class)) (define-extern talker-spawn-func (function talker-speech-class process-tree vector region int)) (define-extern talker-init (function talker-speech-class vector region none :behavior talker)) @@ -26368,7 +27058,7 @@ (define-extern command-get-time (function object int time-frame)) (define-extern command-get-param (function object object object)) (define-extern command-get-quoted-param (function object object object)) -(define-extern command-get-process (function object symbol process)) +(define-extern command-get-process (function object process process)) (define-extern command-get-entity "- If `search` is a [[process]] - return it's `entity` - If `search` is an [[entity]] - return it @@ -26458,7 +27148,7 @@ ;; (define-extern part-tracker-move-to-target function) ;; (function part-tracker vector) ;; (define-extern part-tracker-track-target function) ;; (function part-tracker vector) (define-extern lightning-tracker-init (function lightning-spec time-frame symbol process-drawable vector vector none)) -(define-extern process-grab? (function process symbol symbol :behavior process)) +(define-extern process-grab? (function process symbol :behavior process)) (define-extern process-release? (function process symbol :behavior process)) ;; (define-extern camera-look-at function) ;; (function pair uint process :behavior camera-tracker) (define-extern ja-anim-done? (function process symbol)) ;; @@ -27145,11 +27835,11 @@ ;; (define-extern part-tracker-track-target-joint function) ;; (function int sparticle-cpuinfo sparticle-launchinfo none) ;; (define-extern process-drawable-burn-effect function) ;; (function time-frame none :behavior target) (define-extern lightning-probe-callback (function lightning-tracker none)) -(define-extern process-drawable-shock-effect (function process-drawable lightning-spec (function lightning-tracker none) sparticle-launcher int int float none)) ;; guess +(define-extern process-drawable-shock-effect (function process-drawable lightning-spec (function lightning-tracker none) sparticle-launcher int int float object)) ;; guess ;; (define-extern process-drawable-shock-wall-effect function) ;; (define-extern process-drawable2-shock-effect function) ;; (define-extern process-drawable-shock-skel-effect function) -;; (define-extern *lightning-darkjak-pill* object) +(define-extern *lightning-darkjak-pill* lightning-spec) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; gun-part ;; @@ -28189,7 +28879,7 @@ (define-extern *instance-mem-usage* memory-usage-block) (define-extern find-instance-by-name-level (function string level prototype-bucket)) (define-extern find-instance-by-name (function string prototype-bucket)) -;; (define-extern prototypes-game-visible-set! function) +(define-extern prototypes-game-visible-set! (function pair symbol int)) ;; (define-extern find-instance-by-index function) ;; (function type int bsp-header prototype-bucket) (define-extern prototype-bucket-type (function prototype-bucket type)) (define-extern prototype-bucket-recalc-fields (function prototype-bucket prototype-bucket)) @@ -28416,7 +29106,7 @@ (define-extern entity-count (function int)) (define-extern entity-remap-names (function pair none)) (define-extern process-status-bits (function process symbol none)) -(define-extern process-entity-set! (function process entity entity)) +(define-extern process-entity-set! (function process entity-actor entity-actor)) (define-extern process-task-mask (function process task-mask)) (define-extern update-actor-vis-box (function process-drawable vector vector none)) (define-extern expand-bounding-box (function vector vector vector vector none)) @@ -28826,95 +29516,108 @@ ;; (define-extern *collectable-dummy-shadow-control* shadow-control) ;; (define-extern initialize-ammo-by-other function) ;; (define-extern initialize-upgrade-by-other function) -(define-extern birth-pickup-at-point (function vector pickup-type float symbol process-tree fact-info (pointer process) :behavior process)) ;; +(define-extern birth-pickup-at-point (function vector pickup-type float symbol process-tree fact-info (pointer process) :behavior process)) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; task-control ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -#| +(defenum fail-mission-flags + :bitfield #t + :type uint8 + (famflags-0) + (famflags-1) + (famflags-2) + (famflags-3) + (famflags-4) + (famflags-5) + (famflags-6) + (famflags-7) + ) + +(defenum fail-mission-message + :type uint8 + (fammsg-0) + (fammsg-1) + (fammsg-2) + (fammsg-3) + (fammsg-4) + (fammsg-5) + ) + (deftype fail-mission-params (structure) - ((message uint8 :offset-assert 0) - (flags uint8 :offset-assert 1) + ((message fail-mission-message :offset-assert 0) + (flags fail-mission-flags :offset-assert 1) (retry-continue basic :offset-assert 4) (fail-continue basic :offset-assert 8) (reset-delay uint32 :offset-assert 12) - (task uint8 :offset-assert 16) - (fail-message uint32 :offset-assert 20) + (task game-task :offset-assert 16) + (fail-message game-text-id :offset-assert 20) ) :method-count-assert 9 :size-assert #x18 :flag-assert #x900000018 ) -|# -#| +(declare-type fail-mission process) (deftype fail-mission-control (basic) - ((process uint64 :offset-assert 8) - (handle-init-hack basic :offset-assert 8) + ((process handle :offset-assert 8) + (handle-init-hack pointer :offset 8) ) :method-count-assert 13 :size-assert #x10 :flag-assert #xd00000010 (:methods - (fail-mission-control-method-9 () none 9) - (fail-mission-control-method-10 () none 10) - (fail-mission-control-method-11 () none 11) - (fail-mission-control-method-12 () none 12) + (reset? (_type_) symbol 9) + (get-proc (_type_) fail-mission 10) + (start! (_type_ fail-mission-params) symbol 11) + (reset! (_type_) object 12) ) ) -|# -#| (deftype fail-mission (process) - ((message uint8 :offset-assert 124) - (flags uint8 :offset-assert 125) - (retry-continue basic :offset-assert 128) - (fail-continue basic :offset-assert 132) - (reset-delay uint32 :offset-assert 136) - (grabbed-time time-frame :offset-assert 140) - (retry basic :offset-assert 148) - (task uint8 :offset-assert 152) - (message-id uint32 :offset-assert 156) - (fail-message uint32 :offset-assert 160) - (stinger uint32 :offset-assert 164) + ((message fail-mission-message :offset-assert 128) + (flags fail-mission-flags :offset-assert 129) + (retry-continue basic :offset-assert 132) + (fail-continue basic :offset-assert 136) + (reset-delay uint32 :offset-assert 140) + (grabbed-time time-frame :offset-assert 144) + (retry symbol :offset-assert 152) + (task game-task :offset-assert 156) + (message-id uint32 :offset-assert 160) + (fail-message uint32 :offset-assert 164) + (stinger uint32 :offset-assert 168) ) :method-count-assert 17 :size-assert #xac :flag-assert #x11003000ac (:methods - (fail-mission-method-9 () none 9) - (fail-mission-method-10 () none 10) - (fail-mission-method-11 () none 11) - (fail-mission-method-12 () none 12) - (fail-mission-method-13 () none 13) (idle () _type_ :state 14) (resetting () _type_ :state 15) - (fail-mission-method-16 () none 16) + (print-text (_type_) float 16) ) ) -|# -;; (define-extern *fail-mission-control* fail-mission-control) -;; (define-extern game-task-node->string function) -(define-extern update-task-masks (function symbol none)) -(define-extern play-clean (function symbol none)) +(define-extern *fail-mission-control* fail-mission-control) +(define-extern game-task-node->string (function game-task-node string)) +(define-extern update-task-masks (function symbol int)) +(define-extern play-clean (function symbol int)) (define-extern play-task (function game-task symbol symbol string)) (define-extern restart-mission (function int)) -;; (define-extern task-node-by-name function) -;; (define-extern task-resolution-close! function) -;; (define-extern task-close! function) -;; (define-extern task-closed? function) ;; (function game-task task-status symbol) -;; (define-extern open-task-nodes function) +(define-extern task-node-by-name (function string game-task-node-info)) +(define-extern task-resolution-close! (function game-task symbol)) +(define-extern task-close! (function string symbol)) +(define-extern task-closed? (function string symbol)) +(define-extern open-task-nodes (function (array game-task-node-info) (array game-task-node-info))) (define-extern task-node-closed? (function game-task-node symbol)) -(define-extern task-node-close! (function game-task none)) -(define-extern task-node-open? (function game-task symbol)) -(define-extern task-node-open! (function game-task none)) -(define-extern task-node-reset (function symbol none)) -;; (define-extern task-node-dump function) -;; (define-extern fail-mission-init-by-other function) -(define-extern task-manager-init-by-other (function game-task-node-info object none)) -;; (define-extern task-manager-event-handler function) +(define-extern task-node-close! (function game-task-node int)) +(define-extern task-node-open? (function game-task-node symbol)) +(define-extern task-node-open! (function game-task-node int)) +(define-extern task-node-reset (function symbol int)) +(define-extern task-node-dump (function symbol symbol)) +(define-extern fail-mission-init-by-other (function fail-mission-params object :behavior fail-mission)) +(define-extern task-manager-init-by-other (function game-task-node-info symbol object :behavior task-manager)) +(define-extern task-manager-event-handler (function process int symbol event-message-block object :behavior task-manager)) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; scene ;; @@ -29067,7 +29770,7 @@ ;; (define-extern hud-arriving state) ;; (state hud) ;; (define-extern hud-in state) ;; (state hud) ;; (define-extern hud-leaving state) ;; (state int hud) -(define-extern hud-init-by-other (function int none :behavior hud)) +(define-extern hud-init-by-other (function object :behavior hud)) (define-extern hide-hud (function symbol none)) ;; (define-extern enable-hud function) ;; (function none) (define-extern hide-hud-quick (function symbol none)) @@ -29369,42 +30072,26 @@ ;; minimap ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -#| (deftype minimap-texture-name-array (structure) - ((data UNKNOWN 35 :offset-assert 0) + ((data uint32 35 :offset-assert 0) ) :method-count-assert 9 :size-assert #x8c :flag-assert #x90000008c ) -|# -#| (deftype minimap-corner-array (structure) - ((data UNKNOWN 35 :offset-assert 0) + ((data uint128 35 :offset-assert 0) ) :method-count-assert 9 :size-assert #x230 :flag-assert #x900000230 ) -|# -#| -(deftype engine-minimap (engine-pers) - () - :method-count-assert 15 - :size-assert #x20 - :flag-assert #xf00000020 - ;; Failed to read fields. - (:methods - ) - ) -|# - -;; (define-extern *minimap-texture-name-array* object) -;; (define-extern *minimap-corner-array* object) -;; (define-extern *minimap* object) -;; (define-extern *minimap-class-list* object) +(define-extern *minimap-texture-name-array* minimap-texture-name-array) +(define-extern *minimap-corner-array* minimap-corner-array) +(define-extern *minimap* minimap) +(define-extern *minimap-class-list* (inline-array minimap-class-node)) ;; (define-extern lookup-minimap-texture-by-name function) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; @@ -30154,10 +30841,10 @@ (define-extern dm-editable-flag-pick-func (function editable-flag debug-menu-msg symbol)) (define-extern dm-editable-filter0-pick-func (function editable-filter debug-menu-msg symbol)) (define-extern dm-editable-filter1-pick-func (function editable-filter debug-menu-msg symbol)) -(define-extern dm-editable-light-float-func (function object debug-menu-msg float symbol object)) +(define-extern dm-editable-light-float-func (function int debug-menu-msg float float float)) (define-extern dm-cam-externalize2 (function symbol debug-menu-msg symbol)) -(define-extern dm-editable-boolean-toggle-pick-func (function int debug-menu-msg none)) -(define-extern editable-menu-context-make-menus (function debug-menu-context none)) +(define-extern dm-editable-boolean-toggle-pick-func (function int debug-menu-msg symbol)) +(define-extern editable-menu-context-make-menus (function debug-menu-context debug-menu-context)) (define-extern insert-sample-camera (function symbol none)) ;; (define-extern *debug-hook* object) ;; (function none) @@ -30649,13 +31336,13 @@ (define-extern debug-menu-make-shader-menu (function debug-menu-context debug-menu-item-submenu)) (define-extern debug-menu-make-instance-menu (function debug-menu-context debug-menu-item-submenu)) (define-extern dm-task-menu-pick-func (function game-task debug-menu-msg symbol)) -(define-extern debug-menu-make-continue-sub-menu (function debug-menu-context symbol pair)) +(define-extern debug-menu-make-continue-sub-menu (function game-info symbol pair)) (define-extern debug-menu-make-task-sub-menu "TODO - need to know more about game-info" (function symbol pair)) (define-extern debug-menu-make-task-menu (function debug-menu-context debug-menu-item-submenu)) (define-extern dm-play-task-with-continue (function game-task string none)) (define-extern dm-play-task (function game-task none)) (define-extern dm-play-race (function race-selection symbol none)) -(define-extern debug-menu-make-play-menu (function symbol none)) +(define-extern debug-menu-make-play-menu (function debug-menu-context debug-menu-node)) (define-extern dm-anim-tester-flag-func (function int debug-menu-msg symbol)) (define-extern dm-anim-tester-func (function int debug-menu-msg symbol)) (define-extern dm-pilot-mode "TODO - what is the third arg to target's change-mode?" (function object none)) diff --git a/decompiler/config/jak2/anonymous_function_types.jsonc b/decompiler/config/jak2/anonymous_function_types.jsonc index be5e690797..77dbcdd939 100644 --- a/decompiler/config/jak2/anonymous_function_types.jsonc +++ b/decompiler/config/jak2/anonymous_function_types.jsonc @@ -237,6 +237,46 @@ [25, "(function editable symbol symbol)"], [28, "(function editable symbol)"] ], + "game-info": [ + [8, "(function string none :behavior process)"], + [14, "(function symbol symbol int none :behavior target)"], + [ + 19, + "(function symbol symbol continue-point game-save none :behavior process)" + ] + ], + "game-task": [ + [0, "(function game-task-node-info symbol)"], + [1, "(function game-task-node-info symbol)"], + [2, "(function game-task-node-info symbol)"], + [3, "(function game-task-node-info symbol)"], + [4, "(function game-task-node-info symbol)"], + [5, "(function game-task-node-info symbol)"], + [6, "(function game-task-node-info symbol)"], + [7, "(function game-task-node-info symbol)"], + [8, "(function game-task-node-info symbol)"], + [9, "(function game-task-node-info symbol)"], + [10, "(function game-task-node-info symbol)"], + [11, "(function game-task-node-info symbol)"], + [12, "(function game-task-node-info symbol)"], + [13, "(function game-task-node-info symbol)"], + [14, "(function game-task-node-info symbol)"], + [15, "(function game-task-node-info symbol)"], + [16, "(function game-task-node-info symbol)"], + [17, "(function game-task-node-info symbol)"], + [18, "(function game-task-node-info symbol)"], + [19, "(function game-task-node-info symbol)"], + [20, "(function game-task-node-info symbol)"], + [21, "(function game-task-node-info symbol)"], + [22, "(function game-task-node-info symbol)"], + [23, "(function game-task-node-info symbol)"], + [24, "(function game-task-node-info symbol)"] + ], + "task-control": [ + [43, "(function game-task-node-info object)"], + [44, "(function game-task-node-info object)"], + [55, "(function pair symbol)"] + ], "script": [ [0, "(function script-context none)"], [1, "(function script-context int)"], diff --git a/decompiler/config/jak2/hacks.jsonc b/decompiler/config/jak2/hacks.jsonc index 6b8f4948ef..80bfbf66df 100644 --- a/decompiler/config/jak2/hacks.jsonc +++ b/decompiler/config/jak2/hacks.jsonc @@ -36,7 +36,6 @@ "asm_functions_by_name": [ // checking boxed type is different now - these make the cfg stuff sad "name=", - "(method 21 game-info)", "cspace-inspect-tree", "scene-player-init", "(method 77 spyder)", @@ -146,7 +145,6 @@ "(anon-function 24 grenadier)", // no longer bug or asm, not done yet "particle-adgif-callback", - "editable-menu-context-make-menus", // label guesser can't handle pairs // texture "adgif-shader<-texture!" @@ -215,6 +213,11 @@ "execute-select", "(method 29 editable)", "(method 25 editable)", + // game-info + "(method 20 game-info)", + "print-continues", + // task-control + "(anon-function 55 task-control)", "(method 17 load-state)", "(method 12 level)", "bg", @@ -290,8 +293,9 @@ "start-perf-stat-collection": [26], "end-perf-stat-collection": [0], "upload-vis-bits": [2, 6, 3, 0], - "set-background-regs!":[4, 3], - "draw-drawable-tree-instance-tie": [21, 23, 31, 33] + "set-background-regs!": [4, 3], + "draw-drawable-tree-instance-tie": [21, 23, 31, 33], + "command-get-process": [43] }, // Sometimes the game might use format strings that are fetched dynamically, @@ -299,7 +303,13 @@ // Add information about those format instructions here. // e.g. "function-name":[[op, argc], [op, argc], ...] // where "op" is the op number for the call to format. - "dynamic_format_arg_counts": {}, + "dynamic_format_arg_counts": { + "(method 16 fail-mission)": [ + [68, 1], + [101, 1], + [130, 1] + ] + }, "mips2c_functions_by_name": [ "collide-do-primitives", diff --git a/decompiler/config/jak2/inputs.jsonc b/decompiler/config/jak2/inputs.jsonc index 453e17762a..eb8acee533 100644 --- a/decompiler/config/jak2/inputs.jsonc +++ b/decompiler/config/jak2/inputs.jsonc @@ -184,9 +184,5 @@ "streamed_audio_file_names": [], - "levels_to_extract": [ - "PRI.DGO", - "CTA.DGO", - "CWI.DGO" -] + "levels_to_extract": ["PRI.DGO", "CTA.DGO", "CWI.DGO"] } diff --git a/decompiler/config/jak2/label_types.jsonc b/decompiler/config/jak2/label_types.jsonc index 86d2bede55..677bad06f4 100644 --- a/decompiler/config/jak2/label_types.jsonc +++ b/decompiler/config/jak2/label_types.jsonc @@ -189,6 +189,26 @@ ["L896", "(pointer uint64)", 1], ["L897", "(pointer uint64)", 1] ], + "nav-mesh": [["L347", "(inline-array vector)", 2]], + // far label crap + "game-info": [ + ["L406", "uint64", true], + ["L407", "uint64", true], + ["L408", "uint64", true], + ["L409", "uint64", true], + ["L410", "uint64", true], + ["L411", "uint64", true], + ["L412", "uint64", true], + ["L413", "uint64", true], + ["L414", "uint64", true], + ["L415", "uint64", true], + ["L416", "uint64", true], + ["L417", "uint64", true], + ["L545", "uint64", true], + ["L546", "uint64", true], + ["L547", "uint64", true] + ], + "task-control": [["L518", "attack-info"]], "tfrag-methods": [["L119", "(inline-array tfrag-init-data)", 6]], "nav-mesh": [["L347", "(inline-array vector)", 2]], "progress": [ diff --git a/decompiler/config/jak2/stack_structures.jsonc b/decompiler/config/jak2/stack_structures.jsonc index 2111ed6480..a533ca6363 100644 --- a/decompiler/config/jak2/stack_structures.jsonc +++ b/decompiler/config/jak2/stack_structures.jsonc @@ -771,6 +771,9 @@ "(method 10 editable-face)": [[16, ["inline-array", "vector", 6]]], "(method 11 editable)": [[16, "collide-query"]], "(method 10 editable-plane)": [[16, "matrix"]], + "(method 9 game-task-node-info)": [[16, ["inline-array", "qword", 8]]], + "(code retry task-manager)": [[16, "event-message-block"]], + "(code complete task-manager)": [[16, "event-message-block"]], "(method 9 script-context)": [[16, "script-context"]], "(anon-function 32 script)": [ [16, "vector"], @@ -905,7 +908,5 @@ [32, "vector"], [48, "vector"] ], - "target-board-pre-move": [[112, "vector"]], - // placeholder - "placeholder-do-not-add-below": [] + "target-board-pre-move": [[112, "vector"]] } diff --git a/decompiler/config/jak2/type_casts.jsonc b/decompiler/config/jak2/type_casts.jsonc index a6c4e4b972..2ed72cf166 100644 --- a/decompiler/config/jak2/type_casts.jsonc +++ b/decompiler/config/jak2/type_casts.jsonc @@ -431,10 +431,17 @@ "(method 0 fact-info-enemy)": [ [[0, 196], "gp", "fact-info-enemy"], ["_stack_", 16, "res-tag"], - ["_stack_", 32, "res-tag"] + ["_stack_", 32, "res-tag"], + [[11, 177], "s5", "res-lump"] + ], + "(method 0 fact-info)": [ + [87, "v1", "(pointer int32)"], + [11, "v1", "res-lump"] + ], + "(method 0 fact-info-crate)": [ + [[0, 17], "gp", "fact-info-crate"], + [14, "a0", "res-lump"] ], - "(method 0 fact-info)": [[87, "v1", "(pointer int32)"]], - "(method 0 fact-info-crate)": [[[0, 17], "gp", "fact-info-crate"]], "(method 0 fact-info-target)": [[[0, 17], "gp", "fact-info-target"]], "joint-channel-float-delete!": [ [7, "a0", "pointer"], @@ -2141,6 +2148,68 @@ [12, "a3", "int"] ], "debug-menu-func-decode": [[18, "a0", "symbol"]], + "(method 20 game-info)": [ + [8, "v1", "symbol"], + [9, "v1", "level-load-info"], + [[11, 18], "s3", "continue-point"] + ], + "(method 30 game-info)": [ + [[4, 26], "s3", "game-task"], + [[4, 26], "s2", "game-task"], + [[37, 53], "s5", "game-task"], + [[37, 53], "s4", "game-task"] + ], + "(method 10 fact-info-target)": [[67, "v1", "target"]], + "(method 11 fact-info-target)": [ + [143, "v1", "target"], + [264, "a0", "target"], + [322, "v1", "target"], + [410, "a0", "target"], + [458, "v1", "target"], + [499, "v1", "target"], + [540, "v1", "target"], + [558, "v1", "target"], + [572, "v1", "target"], + [588, "v1", "target"], + [599, "v1", "target"], + [674, "v1", "target"], + [702, "v1", "target"], + [737, "v1", "target"], + [271, "a0", "target"], + [413, "a0", "target"] + ], + "print-continues": [ + [3, "v1", "symbol"], + [4, "v1", "level-load-info"], + [[6, 14], "v1", "continue-point"] + ], + "(method 23 game-info)": [ + [178, "a0", "(pointer game-save-tag)"], + [329, "s3", "game-save-tag"], + [662, "a2", "game-save-tag"] + ], + "(anon-function 55 task-control)": [ + [14, "v1", "symbol"], + [20, "s2", "level-load-info"] + ], + "(method 12 minimap)": [[18, "v0", "connection-minimap"]], + "update-task-masks": [[30, "s5", "connection-minimap"]], + "(method 10 fail-mission)": [[43, "t9", "(function process process)"]], + "restart-mission": [ + [8, "v1", "connection"], + [5, "v1", "connection"], + [8, "a0", "process"], + [12, "a0", "process"], + [15, "a0", "process"], + [39, "a0", "process"], + [47, "a0", "connection"], + [46, "s4", "connection"], + [44, "s4", "connection"], + [6, "s4", "connection"], + [47, "s4", "connection"], + [50, "v1", "connection"] + ], + "(code resetting fail-mission)": [[19, "v0", "sound-rpc-set-param"]], "(anon-function 6 script)": [[17, "v1", "pair"]], "(anon-function 16 script)": [ [10, "s4", "game-task-node-info"], @@ -2222,9 +2291,22 @@ [43, "s5", "process-drawable"], [32, "s5", "process-drawable"], [105, "v0", "joint"], - [145, "v0", "joint"] + [145, "v0", "joint"], + [[42, 221], "s4", "process-drawable"] + ], + "command-get-process": [ + [37, "gp", "entity-actor"], + [76, "a0", "connection"], + [79, "a0", "connection"], + [83, "a0", "connection"], + [83, "a1", "connection"], + [74, "a1", "connection"], + [73, "a0", "connection"], + [77, "a2", "game-task-node-info"], + [97, "v1", "connection"], + [94, "v1", "connection"], + [162, "s3", "process-drawable"] ], - "command-get-process": [[37, "gp", "entity-actor"]], "command-get-float": [[20, "gp", "bfloat"]], "command-get-int": [[17, "gp", "bfloat"]], "(anon-function 54 script)": [[66, "v1", "entity-actor"]], @@ -2306,6 +2388,7 @@ [151, "a0", "uint"], ["_stack_", 24, "pat-surface"] ], + "(code complete task-manager)": [[119, "gp", "handle"]], "(method 14 drawable-group)": [[19, "s5", "drawable-group"]], "(method 15 drawable-tree)": [ [[1, 4], "v1", "drawable-inline-array-node"], @@ -2417,7 +2500,7 @@ [[37, 45], "a0", "dma-packet"], [[47, 54], "a0", "dma-packet"], [[57, 64], "v1", "vector"], - [[65,72], "v1", "(pointer vif-tag)"] + [[65, 72], "v1", "(pointer vif-tag)"] ], "tie-end-buffer": [ [[1, 8], "a1", "dma-packet"], @@ -2474,7 +2557,6 @@ [1403, "a0", "(pointer uint64)"], [[51, 57], "a0", "dma-packet"], [[164, 170], "a0", "dma-packet"] - ], "tie-floats": [[[3, 73], "gp", "(pointer uint32)"]], "tie-init-buf": [ @@ -2494,7 +2576,6 @@ "(enter othercam-running)": [[[50, 60], "gp", "process-drawable"]], "(code othercam-running)": [[[2, 65], "s2", "process-drawable"]], "(method 10 progress)": [[45, "t9", "(function progress none)"]], - "hud-ring-cell-init-by-other": [ [36, "a0", "progress"], [45, "v1", "progress"], @@ -2503,7 +2584,6 @@ [159, "a1", "progress"], [178, "a1", "progress"] ], - "(post idle hud-ring-cell)": [ [8, "a1", "progress"], [13, "v1", "progress"], @@ -2515,10 +2595,7 @@ [137, "v1", "progress"], [159, "v1", "progress"] ], - - "end-scan": [ - [[18, 22], "v1", "dma-packet"] - ], + "end-scan": [[[18, 22], "v1", "dma-packet"]], "(code target-board-jump)": [[17, "v1", "art-joint-anim"]], "(code target-board-get-on)": [[55, "v1", "art-joint-anim"]], "(code target-board-jump-kick)": [[15, "v1", "art-joint-anim"]], @@ -2665,6 +2742,14 @@ [46, "s5", "collide-shape"], [107, "v1", "manipy"] ], + "service-cpads": [[[207, 312], "s3", "pad-buttons"]], + "dm-editable-boolean-toggle-pick-func": [[5, "v1", "(pointer symbol)"]], + "dm-editable-light-float-func": [ + [36, "a0", "(pointer float)"], + [88, "v1", "(pointer float)"] + ], + "(anon-function 46 script)": [[24, "v0", "float"]], + "(anon-function 4 script)": [[13, "v1", "int"]], "(method 13 sync-linear)": [ ["_stack_", 16, "res-tag"], [35, "v1", "(pointer float)"] @@ -2676,7 +2761,5 @@ "(method 13 sync-paused)": [ ["_stack_", 16, "res-tag"], [[29, 45], "v1", "(pointer float)"] - ], - // placeholder - "placeholder-do-not-add-below": [] + ] } diff --git a/decompiler/config/jak2/var_names.jsonc b/decompiler/config/jak2/var_names.jsonc index f116b2c937..d50d72c750 100644 --- a/decompiler/config/jak2/var_names.jsonc +++ b/decompiler/config/jak2/var_names.jsonc @@ -982,6 +982,230 @@ "t4-1": "dist-past-end" } }, + "(method 9 border-plane)": { + "vars": { + "s5-0": "plane-color" + } + }, + "(method 10 border-plane)": { + "vars": { + "arg0": "pt" + } + }, + "(method 12 game-info)": { + "vars": { + "s5-0": "subtasks", + "s4-0": "i" + } + }, + "(method 13 game-info)": { + "vars": { + "v1-2": "subtask" + } + }, + "(method 19 game-info)": { + "vars": { + "gp-0": "dfault" + } + }, + "(method 20 game-info)": { + "vars": { + "s3-0": "cont", + "s4-0": "continues" + } + }, + "(method 30 game-info)": { + "vars": { + "s5-0": "story-total", + "s4-0": "story-complete", + "f30-0": "percent", + "s3-0": "story-min", + "s2-0": "story-max", + "s5-1": "bbush-min", + "s4-1": "bbush-max" + } + }, + "(method 10 game-info)": { + "vars": { + "s5-1": "task", + "f30-0": "ammo-max", + "s4-1": "ammo-kind" + } + }, + "(method 11 fact-info-target)": { + "vars": { + "s3-10": "ammo-kind" + } + }, + "(method 14 game-info)": { + "vars": { + "v1-0": "game-perms", + "a0-1": "i" + } + }, + "(method 16 game-info)": { + "vars": { + "s5-0": "game-perms", + "s4-0": "level-entities", + "s2-0": "entity-perm", + "s3-0": "i", + "v1-10": "actor-perm" + } + }, + "(method 17 game-info)": { + "vars": { + "s5-0": "level-entities", + "s4-0": "i", + "s3-0": "entity-perm", + "v1-7": "actor-perm" + } + }, + "bug-report-display": { + "vars": { + "s5-0": "conts" + } + }, + "print-continues": { + "vars": { + "s5-0": "conts", + "gp-0": "levels", + "v1-2": "cont" + } + }, + "(method 18 game-info)": { + "vars": { + "v1-7": "game-subtasks", + "a0-6": "i", + "a1-8": "subtasks", + "s5-1": "game-perms" + } + }, + "(method 25 game-info)": { + "vars": { + "gp-0": "game-subtasks", + "s5-0": "i", + "s4-0": "subtask", + "v1-11": "cur-lev", + "v1-17": "suck-death-count", + "f0-2": "suck-death-stage" + } + }, + "(method 21 game-info)": { + "vars": { + "s3-3": "dfault" + } + }, + "update-task-masks": { + "vars": { + "s5-1": "borrow-eval", + "s4-1": "game-nodes", + "s3-0": "i", + "s2-0": "node", + "s1-0": "node-open?", + "s1-1": "node-ev-i", + "v1-66": "node-open-ev", + "s5-2": "lev-i", + "a0-30": "lev" + } + }, + "(method 22 level)": { + "vars": { + "v1-7": "name", + "a0-2": "game-subtasks", + "a1-1": "i", + "a2-3": "subtask" + } + }, + "task-node-by-name": { + "vars": { + "s5-0": "game-nodes", + "s4-0": "i", + "s3-0": "node" + } + }, + "task-resolution-close!": { + "vars": { + "v1-1": "game-nodes", + "a1-0": "i", + "a2-3": "node" + } + }, + "task-close!": { + "vars": { + "s5-0": "game-nodes", + "s4-0": "i", + "s3-0": "node" + } + }, + "task-closed?": { + "vars": { + "s5-0": "game-nodes", + "s4-0": "i", + "s3-0": "node" + } + }, + "open-task-nodes": { + "vars": { + "v1-1": "game-nodes", + "a1-0": "i", + "a2-3": "node" + } + }, + "(method 9 game-task-node-info)": { + "vars": { + "s4-0": "task-node-close-func", + "s2-0": "p-node-count", + "s0-0": "p-i", + "s5-1": "game-nodes", + "s4-1": "i", + "s3-1": "node" + } + }, + "task-node-closed?": { + "vars": { + "v1-2": "node" + } + }, + "(method 10 game-task-node-info)": { + "vars": { + "s5-0": "game-nodes", + "s4-0": "i", + "a0-4": "node", + "v1-20": "ii" + } + }, + "task-node-open?": { + "vars": { + "v1-1": "game-nodes" + } + }, + "(method 11 game-task-node-info)": { + "vars": { + "a1-0": "game-nodes", + "a2-2": "pi", + "v1-1": "node-info" + } + }, + "task-node-open!": { + "vars": { + "gp-0": "game-node", + "s5-0": "p-i" + } + }, + "task-node-reset": { + "vars": { + "s5-0": "game-nodes", + "s4-0": "i", + "s3-0": "node" + } + }, + "(method 9 game-task-control)": { + "vars": { + "s2-0": "game-nodes", + "s3-0": "i", + "s1-0": "node" + } + }, "(method 15 mysql-nav-graph)": { "args": ["obj", "edge-id", "node-id"] }, @@ -1109,6 +1333,19 @@ "t1-2": "back-idx" } }, + "restart-mission": { + "vars": { + "a0-2": ["task-mgr", "process"], + "s4-0": ["s4-0", "connection"], + "v1-1": ["v1-1", "connection"], + "s5-1": "cur-lev", + "s4-1": "game-nodes", + "s3-0": "i", + "s2-0": "node", + "gp-0": "restart?", + "s5-0": "mgr-status" + } + }, "(method 0 drawable-group)": { "args": ["allocation", "type-to-make", "length"], "vars": { @@ -1291,5 +1528,14 @@ "f0-1": "angle", "s5-0": "sin-cos-result" } + }, + "service-cpads": { + "vars": { + "s3-0": "buzz-i", + "gp-0": "pads", + "s5-0": "i", + "s4-0": "pad", + "s3-1": ["buttons-pushed", "pad-buttons"] + } } } diff --git a/decompiler/config/jak2_ntsc_v1.jsonc b/decompiler/config/jak2_ntsc_v1.jsonc index b029010592..a0a99d6a3a 100644 --- a/decompiler/config/jak2_ntsc_v1.jsonc +++ b/decompiler/config/jak2_ntsc_v1.jsonc @@ -8,7 +8,7 @@ // if you want to filter to only some object names. // it will make the decompiler much faster. "allowed_objects": [], - "banned_objects": ["effect-control", "time-of-day"], + "banned_objects": ["effect-control", "time-of-day", "target-util", "ctywide-scenes"], //////////////////////////// // CODE ANALYSIS OPTIONS diff --git a/decompiler/util/data_decompile.cpp b/decompiler/util/data_decompile.cpp index 7036c1c1c6..45e911e91d 100644 --- a/decompiler/util/data_decompile.cpp +++ b/decompiler/util/data_decompile.cpp @@ -160,12 +160,18 @@ goos::Object decompile_at_label_guess_type(const DecompilerLabel& label, } goos::Object decompile_function_at_label(const DecompilerLabel& label, - const LinkedObjectFile* file) { + const LinkedObjectFile* file, + bool in_static_pair) { if (file) { auto other_func = file->try_get_function_at_label(label); if (other_func && other_func->ir2.env.has_local_vars() && other_func->ir2.top_form && other_func->ir2.expressions_succeeded) { - return final_output_lambda(*other_func); + auto out = final_output_lambda(*other_func); + if (in_static_pair) { + return pretty_print::build_list("unquote", out); + } else { + return out; + } } } return pretty_print::to_symbol(fmt::format("", label.name)); @@ -180,13 +186,14 @@ goos::Object decompile_at_label(const TypeSpec& type, const std::vector& labels, const std::vector>& words, const TypeSystem& ts, - const LinkedObjectFile* file) { + const LinkedObjectFile* file, + bool in_static_pair) { if (type == TypeSpec("string")) { return decompile_string_at_label(label, words); } if (ts.tc(TypeSpec("function"), type)) { - return decompile_function_at_label(label, file); + return decompile_function_at_label(label, file, in_static_pair); } if (ts.tc(TypeSpec("array"), type)) { @@ -721,6 +728,7 @@ goos::Object decompile_sound_spec(const TypeSpec& type, // volume is fixed point, and floats should round towards zero, so we convert specific ints // to better-looking floats that end up being the same value. // there should be a more automated way to do this, but i am a bit lazy. + // TODO try fixed point print i made some time ago switch (volume) { case 0x2cc: volf = 70; @@ -1528,13 +1536,13 @@ goos::Object decompile_pair_elt(const LinkedWord& word, return decompile_pair(label, labels, words, ts, false, file); } - return decompile_at_label(*guessed_type, label, labels, words, ts, file); + return decompile_at_label(*guessed_type, label, labels, words, ts, file, true); } 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) { // never quote symbols in a list. - return pretty_print::to_symbol(fmt::format("{}", word.symbol_name())); + return pretty_print::to_symbol(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) { @@ -1556,12 +1564,14 @@ goos::Object decompile_pair(const DecompilerLabel& label, const LinkedObjectFile* file) { if ((label.offset % 8) != 2) { if ((label.offset % 4) != 0) { - throw std::runtime_error(fmt::format("Invalid alignment for pair {}\n", label.offset % 16)); + throw std::runtime_error( + fmt::format("Invalid alignment for pair {} at {}\n", label.offset % 16, label.name)); } else { auto& word = words.at(label.target_segment).at(label.offset / 4); if (word.kind() != LinkedWord::EMPTY_PTR) { throw std::runtime_error( - fmt::format("Based on alignment, expected to get empty list for pair, but didn't")); + fmt::format("Based on alignment, expected to get empty list for pair at {}, but didn't", + label.name)); } return pretty_print::to_symbol("'()"); } diff --git a/decompiler/util/data_decompile.h b/decompiler/util/data_decompile.h index 8106ecd548..2337a4b6cc 100644 --- a/decompiler/util/data_decompile.h +++ b/decompiler/util/data_decompile.h @@ -24,7 +24,8 @@ goos::Object decompile_at_label(const TypeSpec& type, const std::vector& labels, const std::vector>& words, const TypeSystem& ts, - const LinkedObjectFile* file); + const LinkedObjectFile* file, + bool in_static_pair = false); goos::Object decompile_at_label_with_hint(const LabelInfo& hint, const DecompilerLabel& label, const std::vector& labels, diff --git a/game/kernel/asm_funcs.asm b/game/kernel/asm_funcs.asm index ada2f7009c..2b94b83744 100644 --- a/game/kernel/asm_funcs.asm +++ b/game/kernel/asm_funcs.asm @@ -253,7 +253,7 @@ _mips2c_call_windows: ret -;; Call C++ code on windows, from GOAL. Pug arguments on the stack and put a pointer to this array in the first arg. +;; Call C++ code on windows, from GOAL. Put arguments on the stack and put a pointer to this array in the first arg. global _stack_call_win32 _stack_call_win32: pop rax @@ -334,18 +334,18 @@ _call_goal_asm_linux: ;; RDI - first arg ;; RSI - second arg ;; RDX - third arg - ;; RCX - function pointer (goes in r13) - ;; R8 - st (goes in r14) + ;; RCX - function pointer + ;; R8 - st (goes in r14 and r13) ;; R9 - off (goes in r15) - ;; set GOAL function pointer - mov r13, rcx - ;; offset - mov r14, r8 + ;; set GOAL process + mov r13, r8 ;; symbol table + mov r14, r8 + ;; offset mov r15, r9 ;; call GOAL by function pointer - call r13 + call rcx ;; retore x86 registers. pop r15 @@ -401,8 +401,8 @@ _call_goal_on_stack_asm_linux: ;; RDI - stack pointer ;; RSI - unused ;; RDX - unused - ;; RCX - function pointer (goes in r13) - ;; R8 - st (goes in r14) + ;; RCX - function pointer + ;; R8 - st (goes in r14 and r13) ;; R9 - off (goes in r15) ;; x86 saved registers we need to modify for GOAL should be saved @@ -418,13 +418,13 @@ _call_goal_on_stack_asm_linux: push rsi ;; set GOAL function pointer - mov r13, rcx - ;; offset - mov r14, r8 + mov r13, r8 ;; symbol table + mov r14, r8 + ;; offset mov r15, r9 ;; call GOAL by function pointer - call r13 + call rcx ;; get old stack pointer pop rsi @@ -472,11 +472,11 @@ _call_goal_asm_win32: mov rdi, rcx ;; rdi is GOAL first argument, rcx is windows first argument mov rsi, rdx ;; rsi is GOAL second argument, rdx is windows second argument mov rdx, r8 ;; rdx is GOAL third argument, r8 is windows third argument - mov r13, r9 ;; r13 is GOAL fp, r9 is windows fourth argument - mov r15, [rsp + 184] ;; symbol table - mov r14, [rsp + 176] ;; offset + mov r15, [rsp + 184] ;; offset + mov r14, [rsp + 176] ;; symbol table + mov r13, r14 ;; r13 is GOAL process, set to #f (same as symbol table) TODO: verify on PS2 - call r13 + call r9 ;; r9 is GOAL t9, r9 is windows fourth argument (not sure this is correct. maybe rax instead?) movups xmm7, [rsp] add rsp, 16 @@ -521,15 +521,6 @@ _call_goal8_asm_win32: sub rsp, 16 movups [rsp], xmm7 - ;; mov rdi, rcx ;; rdi is GOAL first argument, rcx is windows first argument - ;; mov rsi, rdx ;; rsi is GOAL second argument, rdx is windows second argument - ;; mov rdx, r8 ;; rdx is GOAL third argument, r8 is windows third argument - ;; mov r13, r9 ;; r13 is GOAL fp, r9 is windows fourth argument - ;; mov r15, [rsp + 184] ;; symbol table - ;; mov r14, [rsp + 176] ;; offset - - ;; call r13 - mov r13, r9 ;; pp mov r15, [rsp + 184] ;; symbol table mov r14, [rsp + 176] ;; offset @@ -606,11 +597,11 @@ _call_goal_on_stack_asm_win32: mov rsp, rcx push rsi - mov r13, rdx ;; fp + mov r13, r8 ;; pp mov r14, r8 ;; st mov r15, r9 ;; offset - call r13 + call rdx ;; restore stack pop rsi diff --git a/game/kernel/jak2/kmachine.cpp b/game/kernel/jak2/kmachine.cpp index babf79f8e8..f298097224 100644 --- a/game/kernel/jak2/kmachine.cpp +++ b/game/kernel/jak2/kmachine.cpp @@ -424,11 +424,13 @@ int ShutdownMachine() { return 0; } -Ptr MouseGetData(Ptr mouse) { +u32 MouseGetData(u32 _mouse) { // stubbed out in the actual game static double px = 0; static double py = 0; + auto mouse = Ptr(_mouse).c(); + mouse->active = offset_of_s7() + jak2_symbols::FIX_SYM_TRUE; mouse->valid = offset_of_s7() + jak2_symbols::FIX_SYM_TRUE; mouse->status = 1; @@ -442,7 +444,7 @@ Ptr MouseGetData(Ptr mouse) { mouse->deltay = last_cursor_y_position - py; px = last_cursor_x_position; py = last_cursor_y_position; - return mouse; + return _mouse; } /*! diff --git a/goal_src/goal-lib.gc b/goal_src/goal-lib.gc index 9f8fd6f60d..4b9d705318 100644 --- a/goal_src/goal-lib.gc +++ b/goal_src/goal-lib.gc @@ -969,12 +969,10 @@ ;;;; user stuf ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -(defmacro __get-user () +(defmacro get-user () `(quote ,*user*) ) -(defconstant *user* (__get-user)) - (defmacro user? (&rest users) (cond ((null? users) #f) diff --git a/goal_src/jak1/engine/debug/default-menu.gc b/goal_src/jak1/engine/debug/default-menu.gc index daa68cbd31..2327015997 100644 --- a/goal_src/jak1/engine/debug/default-menu.gc +++ b/goal_src/jak1/engine/debug/default-menu.gc @@ -1013,7 +1013,6 @@ ) ) (-> arg0 value) - (none) ) ) ) @@ -3357,8 +3356,8 @@ (flag "Use menu subdiv" *artist-use-menu-subdiv* dm-boolean-toggle-pick-func) (float-var "Subdiv Close" close dm-subdiv-float 10 1 #t 1 200 1) (float-var "Subdiv Far" far dm-subdiv-float 10 1 #t 1 200 1) - (function "Target Start" #f (lambda () (start 'debug (get-or-create-continue! *game-info*)))) - (function "Target Stop" #f (lambda () (stop 'debug))) + (function "Target Start" #f ,(lambda () (start 'debug (get-or-create-continue! *game-info*)))) + (function "Target Stop" #f ,(lambda () (stop 'debug))) (menu "Anim Tester" (int-var "Speed" anim-speed dm-subdiv-int 10 10 #t -300 1000) @@ -3387,34 +3386,34 @@ (function "New Game" #f - (lambda () (initialize! *game-info* 'game (the-as game-save #f) (the-as string #f)) (none)) + ,(lambda () (initialize! *game-info* 'game (the-as game-save #f) (the-as string #f)) (none)) ) (function "New Life" #f - (lambda () (initialize! *game-info* 'die (the-as game-save #f) (the-as string #f)) (none)) + ,(lambda () (initialize! *game-info* 'die (the-as game-save #f) (the-as string #f)) (none)) ) (function "Reset Game" #f - (lambda () - (set! (-> *game-info* mode) 'debug) - (initialize! *game-info* 'game (the-as game-save #f) (the-as string #f)) - (none) - ) + ,(lambda () + (set! (-> *game-info* mode) 'debug) + (initialize! *game-info* 'game (the-as game-save #f) (the-as string #f)) + (none) + ) ) - (function "Reset Actors" #f (lambda () (reset-actors 'debug) (none))) - (function "Save Game" #f (lambda () (auto-save-command 'save 0 0 *default-pool*) (none))) - (function "Load Game" #f (lambda () (auto-save-command 'restore 0 0 *default-pool*) (none))) - (flag "Target" #f (lambda ((arg0 int) (arg1 debug-menu-msg)) - (when (= arg1 (debug-menu-msg press)) - (if *target* - (stop 'debug) - (start 'debug (get-or-create-continue! *game-info*)) - ) - ) - *target* - ) + (function "Reset Actors" #f ,(lambda () (reset-actors 'debug) (none))) + (function "Save Game" #f ,(lambda () (auto-save-command 'save 0 0 *default-pool*) (none))) + (function "Load Game" #f ,(lambda () (auto-save-command 'restore 0 0 *default-pool*) (none))) + (flag "Target" #f ,(lambda ((arg0 int) (arg1 debug-menu-msg)) + (when (= arg1 (debug-menu-msg press)) + (if *target* + (stop 'debug) + (start 'debug (get-or-create-continue! *game-info*)) + ) + ) + *target* + ) ) (flag "Game Mode" play dm-game-mode-pick-func) (flag "Debug Mode" debug dm-game-mode-pick-func) @@ -3424,19 +3423,19 @@ (float-var "sfx-volume" #f - (lambda ((arg0 int) (arg1 debug-menu-msg) (arg2 float)) - (cond - ((= arg1 (debug-menu-msg press)) - (let ((f0-0 arg2)) - (set! (-> *setting-control* default sfx-volume) f0-0) - f0-0 + ,(lambda ((arg0 int) (arg1 debug-menu-msg) (arg2 float)) + (cond + ((= arg1 (debug-menu-msg press)) + (let ((f0-0 arg2)) + (set! (-> *setting-control* default sfx-volume) f0-0) + f0-0 + ) + ) + (else + (-> *setting-control* default sfx-volume) ) ) - (else - (-> *setting-control* default sfx-volume) - ) - ) - ) + ) 2 1 #t @@ -3447,19 +3446,19 @@ (float-var "music-volume" #f - (lambda ((arg0 int) (arg1 debug-menu-msg) (arg2 float)) - (cond - ((= arg1 (debug-menu-msg press)) - (let ((f0-0 arg2)) - (set! (-> *setting-control* default music-volume) f0-0) - f0-0 + ,(lambda ((arg0 int) (arg1 debug-menu-msg) (arg2 float)) + (cond + ((= arg1 (debug-menu-msg press)) + (let ((f0-0 arg2)) + (set! (-> *setting-control* default music-volume) f0-0) + f0-0 + ) + ) + (else + (-> *setting-control* default music-volume) ) ) - (else - (-> *setting-control* default music-volume) - ) - ) - ) + ) 2 1 #t @@ -3470,19 +3469,19 @@ (float-var "dialog-volume" #f - (lambda ((arg0 int) (arg1 debug-menu-msg) (arg2 float)) - (cond - ((= arg1 (debug-menu-msg press)) - (let ((f0-0 arg2)) - (set! (-> *setting-control* default dialog-volume) f0-0) - f0-0 + ,(lambda ((arg0 int) (arg1 debug-menu-msg) (arg2 float)) + (cond + ((= arg1 (debug-menu-msg press)) + (let ((f0-0 arg2)) + (set! (-> *setting-control* default dialog-volume) f0-0) + f0-0 + ) + ) + (else + (-> *setting-control* default dialog-volume) ) ) - (else - (-> *setting-control* default dialog-volume) - ) - ) - ) + ) 2 1 #t @@ -3503,32 +3502,32 @@ (flag "play-hints " #f - (lambda ((arg0 int) (arg1 debug-menu-msg)) - (if (= arg1 (debug-menu-msg press)) - (set! (-> *setting-control* default play-hints) (not (-> *setting-control* default play-hints))) - ) - (-> *setting-control* default play-hints) - ) + ,(lambda ((arg0 int) (arg1 debug-menu-msg)) + (if (= arg1 (debug-menu-msg press)) + (set! (-> *setting-control* default play-hints) (not (-> *setting-control* default play-hints))) + ) + (-> *setting-control* default play-hints) + ) ) (flag "vibration" #f - (lambda ((arg0 int) (arg1 debug-menu-msg)) - (if (= arg1 (debug-menu-msg press)) - (set! (-> *setting-control* default vibration) (not (-> *setting-control* default vibration))) - ) - (-> *setting-control* default vibration) - ) + ,(lambda ((arg0 int) (arg1 debug-menu-msg)) + (if (= arg1 (debug-menu-msg press)) + (set! (-> *setting-control* default vibration) (not (-> *setting-control* default vibration))) + ) + (-> *setting-control* default vibration) + ) ) (flag "border-mode" #f - (lambda ((arg0 int) (arg1 debug-menu-msg)) - (if (= arg1 (debug-menu-msg press)) - (set! (-> *setting-control* default border-mode) (not (-> *setting-control* default border-mode))) - ) - (-> *setting-control* default border-mode) - ) + ,(lambda ((arg0 int) (arg1 debug-menu-msg)) + (if (= arg1 (debug-menu-msg press)) + (set! (-> *setting-control* default border-mode) (not (-> *setting-control* default border-mode))) + ) + (-> *setting-control* default border-mode) + ) ) ) ) @@ -3696,7 +3695,7 @@ '(menu "Actor" (flag "Spawn Actors" *spawn-actors* dm-boolean-toggle-pick-func) - (function "Reset Actors" #f (lambda () (reset-actors 'debug) (none))) + (function "Reset Actors" #f ,(lambda () (reset-actors 'debug) (none))) (menu "Actor Compaction" (flag "off" #f dm-compact-actor-pick-func) @@ -3738,63 +3737,63 @@ '(menu "Target" (flag "Target Stats" *stats-target* dm-boolean-toggle-pick-func) - (function "Play" #f (lambda () (play #t #t))) - (function "Start" #f (lambda () (the-as int (start 'debug (get-or-create-continue! *game-info*))))) - (function "Stop" #f (lambda () (stop 'debug))) + (function "Play" #f ,(lambda () (play #t #t))) + (function "Start" #f ,(lambda () (the-as int (start 'debug (get-or-create-continue! *game-info*))))) + (function "Stop" #f ,(lambda () (stop 'debug))) (flag "Invulnerable" #f - (lambda ((arg0 int) (arg1 debug-menu-msg)) - (when (= arg1 (debug-menu-msg press)) - (if *target* - (logxor! (-> *target* state-flags) (state-flags invulnerable)) - ) - ) - (the-as symbol (and *target* (logtest? (-> *target* state-flags) (state-flags invulnerable)))) - ) + ,(lambda ((arg0 int) (arg1 debug-menu-msg)) + (when (= arg1 (debug-menu-msg press)) + (if *target* + (logxor! (-> *target* state-flags) (state-flags invulnerable)) + ) + ) + (the-as symbol (and *target* (logtest? (-> *target* state-flags) (state-flags invulnerable)))) + ) ) (function "Reset Trans" #f - (lambda () (when *target* - (position-in-front-of-camera! (target-pos 0) (the-as float 40960.0) (the-as float 4096.0)) - (set! (-> *target* control transv quad) (the-as uint128 0)) - (quaternion-identity! (-> *target* control quat)) - (quaternion-identity! (-> *target* control unknown-quaternion00)) - (quaternion-identity! (-> *target* control dir-targ)) - ) - ) + ,(lambda () (when *target* + (position-in-front-of-camera! (target-pos 0) (the-as float 40960.0) (the-as float 4096.0)) + (set! (-> *target* control transv quad) (the-as uint128 0)) + (quaternion-identity! (-> *target* control quat)) + (quaternion-identity! (-> *target* control unknown-quaternion00)) + (quaternion-identity! (-> *target* control dir-targ)) + ) + ) ) - (function "Zero Trans" #f (lambda () (when *target* - (set-vector! (-> *target* control trans) 0.0 163840.0 0.0 1.0) - (set! (-> *target* control transv quad) (the-as uint128 0)) - (quaternion-identity! (-> *target* control quat)) - (quaternion-identity! (-> *target* control unknown-quaternion00)) - (quaternion-identity! (-> *target* control dir-targ)) - ) - ) + (function "Zero Trans" #f ,(lambda () (when *target* + (set-vector! (-> *target* control trans) 0.0 163840.0 0.0 1.0) + (set! (-> *target* control transv quad) (the-as uint128 0)) + (quaternion-identity! (-> *target* control quat)) + (quaternion-identity! (-> *target* control unknown-quaternion00)) + (quaternion-identity! (-> *target* control dir-targ)) + ) + ) ) (menu "Mode" - (function "normal" #f (lambda () (send-event *target* 'end-mode))) - (function "racing" #f (lambda () (send-event *target* 'change-mode 'racing #f))) - (function "snowball" #f (lambda () (send-event *target* 'change-mode 'snowball #f))) + (function "normal" #f ,(lambda () (send-event *target* 'end-mode))) + (function "racing" #f ,(lambda () (send-event *target* 'change-mode 'racing #f))) + (function "snowball" #f ,(lambda () (send-event *target* 'change-mode 'snowball #f))) ) (flag "Slow Frame Rate" *slow-frame-rate* dm-boolean-toggle-pick-func) - (function "Print Pos" #f (lambda () - (let ((v1-0 (target-pos 0))) - (format #t "~6,,2m ~6,,2m ~6,,2m~%" (-> v1-0 x) (-> v1-0 y) (-> v1-0 z)) - ) - 0 - (none) - ) + (function "Print Pos" #f ,(lambda () + (let ((v1-0 (target-pos 0))) + (format #t "~6,,2m ~6,,2m ~6,,2m~%" (-> v1-0 x) (-> v1-0 y) (-> v1-0 z)) + ) + 0 + (none) + ) ) - (function "Save Continue" #f (lambda () - (if *target* - (trsq->continue-point (-> *target* control)) - ) - (none) - ) + (function "Save Continue" #f ,(lambda () + (if *target* + (trsq->continue-point (-> *target* control)) + ) + (none) + ) ) ) ) @@ -3856,7 +3855,7 @@ (flag "Amb Snd Class" *ambient-sound-class* dm-boolean-toggle-pick-func) (flag "Amb Spheres" *execute-ambients* dm-boolean-toggle-pick-func) (flag "Sound channels" *display-iop-info* dm-boolean-toggle-pick-func) - (function "List Sounds" #f (lambda () (list-sounds))) + (function "List Sounds" #f ,(lambda () (list-sounds))) ) ) ) @@ -3875,48 +3874,48 @@ '(main-menu "Popup" (flag "Cam 1" pad-1 dm-cam-externalize) - (flag "Target" #f (lambda ((arg0 int) (arg1 debug-menu-msg)) - (when (= arg1 (debug-menu-msg press)) - (if *target* - (stop 'debug) - (start 'debug (get-or-create-continue! *game-info*)) - ) - ) - *target* - ) - ) - (flag "Game" #f (lambda ((arg0 int) (arg1 debug-menu-msg)) - (when (= arg1 (debug-menu-msg press)) - (let ((v1-3 (-> *game-info* mode))) - (set! (-> *game-info* mode) (cond - ((= v1-3 'play) - 'debug - ) - ((= v1-3 'debug) - 'play - ) - (else - (-> *game-info* mode) - ) - ) - ) - ) - ) - (= (-> *game-info* mode) 'play) - ) - ) - (function "Clean" #f (lambda ((arg0 int) (arg1 debug-menu-msg)) - (if (time-of-day-setup #f) - (time-of-day-setup #t) + (flag "Target" #f ,(lambda ((arg0 int) (arg1 debug-menu-msg)) + (when (= arg1 (debug-menu-msg press)) + (if *target* + (stop 'debug) + (start 'debug (get-or-create-continue! *game-info*)) ) - (set! *display-entity-errors* #f) - (set! *display-profile* #f) - (set! *display-actor-marks* #f) - #f ) + *target* + ) + ) + (flag "Game" #f ,(lambda ((arg0 int) (arg1 debug-menu-msg)) + (when (= arg1 (debug-menu-msg press)) + (let ((v1-3 (-> *game-info* mode))) + (set! (-> *game-info* mode) (cond + ((= v1-3 'play) + 'debug + ) + ((= v1-3 'debug) + 'play + ) + (else + (-> *game-info* mode) + ) + ) + ) + ) + ) + (= (-> *game-info* mode) 'play) + ) + ) + (function "Clean" #f ,(lambda ((arg0 int) (arg1 debug-menu-msg)) + (if (time-of-day-setup #f) + (time-of-day-setup #t) + ) + (set! *display-entity-errors* #f) + (set! *display-profile* #f) + (set! *display-actor-marks* #f) + #f + ) ) (flag "Stats" *stats-target* dm-boolean-toggle-pick-func) - (function "Reset" #f (lambda () (reset-actors 'debug) (none))) + (function "Reset" #f ,(lambda () (reset-actors 'debug) (none))) ) ) arg0 @@ -4542,155 +4541,155 @@ '(menu "PC Settings" (flag "Debug" #f ,(dm-lambda-boolean-flag (-> *pc-settings* debug?))) (flag "Use native vis" #f ,(dm-lambda-boolean-flag (-> *pc-settings* use-vis?))) - (function "Toggle game aspect" #f (lambda () - (cond - ((= (-> *setting-control* default aspect-ratio) 'aspect4x3) - (set! (-> *setting-control* default aspect-ratio) 'aspect16x9) + (function "Toggle game aspect" #f ,(lambda () + (cond + ((= (-> *setting-control* default aspect-ratio) 'aspect4x3) + (set! (-> *setting-control* default aspect-ratio) 'aspect16x9) + ) + (else + (set! (-> *setting-control* default aspect-ratio) 'aspect4x3) + ) ) - (else - (set! (-> *setting-control* default aspect-ratio) 'aspect4x3) - ) - ) - (set-aspect-ratio (-> *setting-control* default aspect-ratio)) - )) + (set-aspect-ratio (-> *setting-control* default aspect-ratio)) + )) (flag "Auto aspect" #f ,(dm-lambda-boolean-flag (-> *pc-settings* aspect-ratio-auto?))) (menu "Aspect test" - (function "4 x 3" #f (lambda () (set-aspect! *pc-settings* 4 3))) - (function "16 x 9" #f (lambda () (set-aspect! *pc-settings* 16 9))) - (function "64 x 27 (21:9)" #f (lambda () (set-aspect! *pc-settings* 64 27))) - (function "16 x 10" #f (lambda () (set-aspect! *pc-settings* 16 10))) - (function "2 x 1" #f (lambda () (set-aspect! *pc-settings* 2 1))) - (function "37 x 20" #f (lambda () (set-aspect! *pc-settings* 37 20))) - (function "21 x 9" #f (lambda () (set-aspect! *pc-settings* 21 9))) - (function "64 x 18" #f (lambda () (set-aspect! *pc-settings* 64 18))) + (function "4 x 3" #f ,(lambda () (set-aspect! *pc-settings* 4 3))) + (function "16 x 9" #f ,(lambda () (set-aspect! *pc-settings* 16 9))) + (function "64 x 27 (21:9)" #f ,(lambda () (set-aspect! *pc-settings* 64 27))) + (function "16 x 10" #f ,(lambda () (set-aspect! *pc-settings* 16 10))) + (function "2 x 1" #f ,(lambda () (set-aspect! *pc-settings* 2 1))) + (function "37 x 20" #f ,(lambda () (set-aspect! *pc-settings* 37 20))) + (function "21 x 9" #f ,(lambda () (set-aspect! *pc-settings* 21 9))) + (function "64 x 18" #f ,(lambda () (set-aspect! *pc-settings* 64 18))) (int-var "Custom aspect X" #f ,(dm-lambda-int-var (-> *pc-settings* aspect-custom-x)) 20 1 #t 1 1000) (int-var "Custom aspect Y" #f ,(dm-lambda-int-var (-> *pc-settings* aspect-custom-y)) 20 1 #t 1 1000) - (function "Custom" #f (lambda () (set-aspect! *pc-settings* (-> *pc-settings* aspect-custom-x) (-> *pc-settings* aspect-custom-y)))) + (function "Custom" #f ,(lambda () (set-aspect! *pc-settings* (-> *pc-settings* aspect-custom-x) (-> *pc-settings* aspect-custom-y)))) ) (menu "Fullscreen" - (function "Windowed" #f (lambda () (set-display-mode! *pc-settings* 'windowed))) - (function "Fullscreen" #f (lambda () (set-display-mode! *pc-settings* 'fullscreen))) - (function "Borderless" #f (lambda () (set-display-mode! *pc-settings* 'borderless))) + (function "Windowed" #f ,(lambda () (set-display-mode! *pc-settings* 'windowed))) + (function "Fullscreen" #f ,(lambda () (set-display-mode! *pc-settings* 'fullscreen))) + (function "Borderless" #f ,(lambda () (set-display-mode! *pc-settings* 'borderless))) ) (menu "Sizes" - (function "640 x 480" #f (lambda () (set-size! *pc-settings* 640 480))) - (function "640 x 360" #f (lambda () (set-size! *pc-settings* 640 360))) - (function "720 x 540" #f (lambda () (set-size! *pc-settings* 720 540))) - (function "960 x 540" #f (lambda () (set-size! *pc-settings* 960 540))) - (function "800 x 600" #f (lambda () (set-size! *pc-settings* 800 600))) - (function "960 x 720" #f (lambda () (set-size! *pc-settings* 960 720))) - (function "1280 x 720" #f (lambda () (set-size! *pc-settings* 1280 720))) - (function "1024 x 768" #f (lambda () (set-size! *pc-settings* 1024 768))) - (function "1366 x 768" #f (lambda () (set-size! *pc-settings* 1366 768))) - (function "1280 x 960" #f (lambda () (set-size! *pc-settings* 1280 960))) - (function "1440 x 1080" #f (lambda () (set-size! *pc-settings* 1440 1080))) - (function "1920 x 1080" #f (lambda () (set-size! *pc-settings* 1920 1080))) - (function "1920 x 1440" #f (lambda () (set-size! *pc-settings* 1920 1440))) - (function "2560 x 1440" #f (lambda () (set-size! *pc-settings* 2560 1440))) - (function "2880 x 2160" #f (lambda () (set-size! *pc-settings* 2880 2160))) - (function "3840 x 2160" #f (lambda () (set-size! *pc-settings* 3840 2160))) - (function "512 x 224" #f (lambda () (set-size! *pc-settings* 512 224))) - (function "512 x 256" #f (lambda () (set-size! *pc-settings* 512 256))) - (function "512 x 448" #f (lambda () (set-size! *pc-settings* 512 448))) - (function "512 x 512" #f (lambda () (set-size! *pc-settings* 512 512))) + (function "640 x 480" #f ,(lambda () (set-size! *pc-settings* 640 480))) + (function "640 x 360" #f ,(lambda () (set-size! *pc-settings* 640 360))) + (function "720 x 540" #f ,(lambda () (set-size! *pc-settings* 720 540))) + (function "960 x 540" #f ,(lambda () (set-size! *pc-settings* 960 540))) + (function "800 x 600" #f ,(lambda () (set-size! *pc-settings* 800 600))) + (function "960 x 720" #f ,(lambda () (set-size! *pc-settings* 960 720))) + (function "1280 x 720" #f ,(lambda () (set-size! *pc-settings* 1280 720))) + (function "1024 x 768" #f ,(lambda () (set-size! *pc-settings* 1024 768))) + (function "1366 x 768" #f ,(lambda () (set-size! *pc-settings* 1366 768))) + (function "1280 x 960" #f ,(lambda () (set-size! *pc-settings* 1280 960))) + (function "1440 x 1080" #f ,(lambda () (set-size! *pc-settings* 1440 1080))) + (function "1920 x 1080" #f ,(lambda () (set-size! *pc-settings* 1920 1080))) + (function "1920 x 1440" #f ,(lambda () (set-size! *pc-settings* 1920 1440))) + (function "2560 x 1440" #f ,(lambda () (set-size! *pc-settings* 2560 1440))) + (function "2880 x 2160" #f ,(lambda () (set-size! *pc-settings* 2880 2160))) + (function "3840 x 2160" #f ,(lambda () (set-size! *pc-settings* 3840 2160))) + (function "512 x 224" #f ,(lambda () (set-size! *pc-settings* 512 224))) + (function "512 x 256" #f ,(lambda () (set-size! *pc-settings* 512 256))) + (function "512 x 448" #f ,(lambda () (set-size! *pc-settings* 512 448))) + (function "512 x 512" #f ,(lambda () (set-size! *pc-settings* 512 512))) ) (menu "Secrets" (menu "PC cheats" - (flag "Big head jak" #f (lambda (arg (msg debug-menu-msg)) - (when (= msg (debug-menu-msg press)) - (pc-cheat-toggle-and-tune (-> *pc-settings* cheats) big-head) - ) - (pc-cheats? (-> *pc-settings* cheats) big-head))) - (flag "Small head jak" #f (lambda (arg (msg debug-menu-msg)) - (when (= msg (debug-menu-msg press)) - (pc-cheat-toggle-and-tune (-> *pc-settings* cheats) small-head) - ) - (pc-cheats? (-> *pc-settings* cheats) small-head))) - (flag "Big fist jak" #f (lambda (arg (msg debug-menu-msg)) - (when (= msg (debug-menu-msg press)) - (pc-cheat-toggle-and-tune (-> *pc-settings* cheats) big-fist) - ) - (pc-cheats? (-> *pc-settings* cheats) big-fist))) - (flag "Big head npcs" #f (lambda (arg (msg debug-menu-msg)) - (when (= msg (debug-menu-msg press)) - (pc-cheat-toggle-and-tune (-> *pc-settings* cheats) big-head-npc) - ) - (pc-cheats? (-> *pc-settings* cheats) big-head-npc))) - (flag "Huge head jak" #f (lambda (arg (msg debug-menu-msg)) - (when (= msg (debug-menu-msg press)) - (pc-cheat-toggle-and-tune (-> *pc-settings* cheats) huge-head) - ) - (pc-cheats? (-> *pc-settings* cheats) huge-head))) - (flag "Mirrored mode" #f (lambda (arg (msg debug-menu-msg)) - (when (= msg (debug-menu-msg press)) - (pc-cheat-toggle-and-tune (-> *pc-settings* cheats) mirror) - ) - (pc-cheats? (-> *pc-settings* cheats) mirror))) - (flag "Blue eco" #f (lambda (arg (msg debug-menu-msg)) - (when (= msg (debug-menu-msg press)) - (logclear! (-> *pc-settings* cheats) (pc-cheats eco-red eco-yellow eco-green)) - (pc-cheat-toggle-and-tune (-> *pc-settings* cheats) eco-blue) - ) - (pc-cheats? (-> *pc-settings* cheats) eco-blue))) - (flag "Red eco" #f (lambda (arg (msg debug-menu-msg)) - (when (= msg (debug-menu-msg press)) - (logclear! (-> *pc-settings* cheats) (pc-cheats eco-blue eco-yellow eco-green)) - (pc-cheat-toggle-and-tune (-> *pc-settings* cheats) eco-red) - ) - (pc-cheats? (-> *pc-settings* cheats) eco-red))) - (flag "Green eco" #f (lambda (arg (msg debug-menu-msg)) + (flag "Big head jak" #f ,(lambda (arg (msg debug-menu-msg)) + (when (= msg (debug-menu-msg press)) + (pc-cheat-toggle-and-tune (-> *pc-settings* cheats) big-head) + ) + (pc-cheats? (-> *pc-settings* cheats) big-head))) + (flag "Small head jak" #f ,(lambda (arg (msg debug-menu-msg)) + (when (= msg (debug-menu-msg press)) + (pc-cheat-toggle-and-tune (-> *pc-settings* cheats) small-head) + ) + (pc-cheats? (-> *pc-settings* cheats) small-head))) + (flag "Big fist jak" #f ,(lambda (arg (msg debug-menu-msg)) + (when (= msg (debug-menu-msg press)) + (pc-cheat-toggle-and-tune (-> *pc-settings* cheats) big-fist) + ) + (pc-cheats? (-> *pc-settings* cheats) big-fist))) + (flag "Big head npcs" #f ,(lambda (arg (msg debug-menu-msg)) + (when (= msg (debug-menu-msg press)) + (pc-cheat-toggle-and-tune (-> *pc-settings* cheats) big-head-npc) + ) + (pc-cheats? (-> *pc-settings* cheats) big-head-npc))) + (flag "Huge head jak" #f ,(lambda (arg (msg debug-menu-msg)) + (when (= msg (debug-menu-msg press)) + (pc-cheat-toggle-and-tune (-> *pc-settings* cheats) huge-head) + ) + (pc-cheats? (-> *pc-settings* cheats) huge-head))) + (flag "Mirrored mode" #f ,(lambda (arg (msg debug-menu-msg)) + (when (= msg (debug-menu-msg press)) + (pc-cheat-toggle-and-tune (-> *pc-settings* cheats) mirror) + ) + (pc-cheats? (-> *pc-settings* cheats) mirror))) + (flag "Blue eco" #f ,(lambda (arg (msg debug-menu-msg)) (when (= msg (debug-menu-msg press)) - (logclear! (-> *pc-settings* cheats) (pc-cheats eco-red eco-yellow eco-blue)) - (pc-cheat-toggle-and-tune (-> *pc-settings* cheats) eco-green) + (logclear! (-> *pc-settings* cheats) (pc-cheats eco-red eco-yellow eco-green)) + (pc-cheat-toggle-and-tune (-> *pc-settings* cheats) eco-blue) + ) + (pc-cheats? (-> *pc-settings* cheats) eco-blue))) + (flag "Red eco" #f ,(lambda (arg (msg debug-menu-msg)) + (when (= msg (debug-menu-msg press)) + (logclear! (-> *pc-settings* cheats) (pc-cheats eco-blue eco-yellow eco-green)) + (pc-cheat-toggle-and-tune (-> *pc-settings* cheats) eco-red) ) - (pc-cheats? (-> *pc-settings* cheats) eco-green))) - (flag "Yellow eco" #f (lambda (arg (msg debug-menu-msg)) + (pc-cheats? (-> *pc-settings* cheats) eco-red))) + (flag "Green eco" #f ,(lambda (arg (msg debug-menu-msg)) (when (= msg (debug-menu-msg press)) - (logclear! (-> *pc-settings* cheats) (pc-cheats eco-red eco-blue eco-green)) - (pc-cheat-toggle-and-tune (-> *pc-settings* cheats) eco-yellow) - ) - (pc-cheats? (-> *pc-settings* cheats) eco-yellow))) - (flag "Invincibility" #f (lambda (arg (msg debug-menu-msg)) - (when (= msg (debug-menu-msg press)) - (logclear! (-> *target* state-flags) 16) - (pc-cheat-toggle-and-tune (-> *pc-settings* cheats) invinc) - ) - (pc-cheats? (-> *pc-settings* cheats) invinc))) - (flag "Blue sidekick" #f (lambda (arg (msg debug-menu-msg)) - (when (= msg (debug-menu-msg press)) - (pc-cheat-toggle-and-tune (-> *pc-settings* cheats) sidekick-blue) - ) - (pc-cheats? (-> *pc-settings* cheats) sidekick-blue))) - (flag "All flavas" #f (lambda (arg (msg debug-menu-msg)) - (when (= msg (debug-menu-msg press)) - (pc-cheat-toggle-and-tune (-> *pc-settings* cheats) tunes) - ) - (pc-cheats? (-> *pc-settings* cheats) tunes))) - (flag "Real time tod" #f (lambda (arg (msg debug-menu-msg)) - (when (= msg (debug-menu-msg press)) - (pc-cheat-toggle-and-tune (-> *pc-settings* cheats) sky) - ) - (pc-cheats? (-> *pc-settings* cheats) sky))) - (flag "No textures" #f (lambda (arg (msg debug-menu-msg)) - (when (= msg (debug-menu-msg press)) - (pc-cheat-toggle-and-tune (-> *pc-settings* cheats) no-tex) - ) - (pc-cheats? (-> *pc-settings* cheats) no-tex))) - (flag "Boods" #f (lambda (arg (msg debug-menu-msg)) - (when (= msg (debug-menu-msg press)) - (pc-cheat-toggle-and-tune (-> *pc-settings* cheats) oh-my-goodness) - ) - (pc-cheats? (-> *pc-settings* cheats) oh-my-goodness))) -;; (flag "Hard rats" #f (lambda (arg (msg debug-menu-msg)) -;; (when (= msg (debug-menu-msg press)) -;; (pc-cheat-toggle-and-tune (-> *pc-settings* cheats) hard-rats) -;; ) -;; (pc-cheats? (-> *pc-settings* cheats) hard-rats))) -;; (flag "Hero mode" #f (lambda (arg (msg debug-menu-msg)) -;; (when (= msg (debug-menu-msg press)) -;; (pc-cheat-toggle-and-tune (-> *pc-settings* cheats) hero-mode) -;; ) -;; (pc-cheats? (-> *pc-settings* cheats) hero-mode))) + (logclear! (-> *pc-settings* cheats) (pc-cheats eco-red eco-yellow eco-blue)) + (pc-cheat-toggle-and-tune (-> *pc-settings* cheats) eco-green) + ) + (pc-cheats? (-> *pc-settings* cheats) eco-green))) + (flag "Yellow eco" #f ,(lambda (arg (msg debug-menu-msg)) + (when (= msg (debug-menu-msg press)) + (logclear! (-> *pc-settings* cheats) (pc-cheats eco-red eco-blue eco-green)) + (pc-cheat-toggle-and-tune (-> *pc-settings* cheats) eco-yellow) + ) + (pc-cheats? (-> *pc-settings* cheats) eco-yellow))) + (flag "Invincibility" #f ,(lambda (arg (msg debug-menu-msg)) + (when (= msg (debug-menu-msg press)) + (logclear! (-> *target* state-flags) 16) + (pc-cheat-toggle-and-tune (-> *pc-settings* cheats) invinc) + ) + (pc-cheats? (-> *pc-settings* cheats) invinc))) + (flag "Blue sidekick" #f ,(lambda (arg (msg debug-menu-msg)) + (when (= msg (debug-menu-msg press)) + (pc-cheat-toggle-and-tune (-> *pc-settings* cheats) sidekick-blue) + ) + (pc-cheats? (-> *pc-settings* cheats) sidekick-blue))) + (flag "All flavas" #f ,(lambda (arg (msg debug-menu-msg)) + (when (= msg (debug-menu-msg press)) + (pc-cheat-toggle-and-tune (-> *pc-settings* cheats) tunes) + ) + (pc-cheats? (-> *pc-settings* cheats) tunes))) + (flag "Real time tod" #f ,(lambda (arg (msg debug-menu-msg)) + (when (= msg (debug-menu-msg press)) + (pc-cheat-toggle-and-tune (-> *pc-settings* cheats) sky) + ) + (pc-cheats? (-> *pc-settings* cheats) sky))) + (flag "No textures" #f ,(lambda (arg (msg debug-menu-msg)) + (when (= msg (debug-menu-msg press)) + (pc-cheat-toggle-and-tune (-> *pc-settings* cheats) no-tex) + ) + (pc-cheats? (-> *pc-settings* cheats) no-tex))) + (flag "Boods" #f ,(lambda (arg (msg debug-menu-msg)) + (when (= msg (debug-menu-msg press)) + (pc-cheat-toggle-and-tune (-> *pc-settings* cheats) oh-my-goodness) + ) + (pc-cheats? (-> *pc-settings* cheats) oh-my-goodness))) +;; (flag "Hard rats" #f ,(lambda (arg (msg debug-menu-msg)) +;; (when (= msg (debug-menu-msg press)) +;; (pc-cheat-toggle-and-tune (-> *pc-settings* cheats) hard-rats) +;; ) +;; (pc-cheats? (-> *pc-settings* cheats) hard-rats))) +;; (flag "Hero mode" #f ,(lambda (arg (msg debug-menu-msg)) +;; (when (= msg (debug-menu-msg press)) +;; (pc-cheat-toggle-and-tune (-> *pc-settings* cheats) hero-mode) +;; ) +;; (pc-cheats? (-> *pc-settings* cheats) hero-mode))) ) ) (flag "Letterbox" #f ,(dm-lambda-boolean-flag (-> *pc-settings* letterbox?))) @@ -4737,36 +4736,36 @@ (int-var "LOD Tie" 1 dm-lod-int 0 1 #t 0 3) ;(int-var "LOD Ocean" 2 dm-lod-int 0 1 #t 0 3) (int-var "LOD Actor" 3 dm-lod-int 0 1 #t 0 3) - (function "Best quality" #f (lambda () (set! (-> *pc-settings* lod-force-tfrag) 0) - (set! (-> *pc-settings* lod-force-tie) 0) - ;(set! (-> *pc-settings* lod-force-ocean) 0) - (set! (-> *pc-settings* lod-force-actor) 0) - )) - (function "Worst quality" #f (lambda () (set! (-> *pc-settings* lod-force-tfrag) 2) - (set! (-> *pc-settings* lod-force-tie) 3) - ;(set! (-> *pc-settings* lod-force-ocean) 2) - (set! (-> *pc-settings* lod-force-actor) 3) - )) + (function "Best quality" #f ,(lambda () (set! (-> *pc-settings* lod-force-tfrag) 0) + (set! (-> *pc-settings* lod-force-tie) 0) + ;(set! (-> *pc-settings* lod-force-ocean) 0) + (set! (-> *pc-settings* lod-force-actor) 0) + )) + (function "Worst quality" #f ,(lambda () (set! (-> *pc-settings* lod-force-tfrag) 2) + (set! (-> *pc-settings* lod-force-tie) 3) + ;(set! (-> *pc-settings* lod-force-ocean) 2) + (set! (-> *pc-settings* lod-force-actor) 3) + )) ) (menu "Framerate" - (flag "60" #f (lambda (arg (msg debug-menu-msg)) (when (= msg (debug-menu-msg press)) (set-frame-rate! *pc-settings* 60)) - (= (-> *pc-settings* target-fps) 60))) - (flag "100" #f (lambda (arg (msg debug-menu-msg)) (when (= msg (debug-menu-msg press)) (set-frame-rate! *pc-settings* 100)) - (= (-> *pc-settings* target-fps) 100))) - (flag "150" #f (lambda (arg (msg debug-menu-msg)) (when (= msg (debug-menu-msg press)) (set-frame-rate! *pc-settings* 150)) - (= (-> *pc-settings* target-fps) 150))) + (flag "60" #f ,(lambda (arg (msg debug-menu-msg)) (when (= msg (debug-menu-msg press)) (set-frame-rate! *pc-settings* 60)) + (= (-> *pc-settings* target-fps) 60))) + (flag "100" #f ,(lambda (arg (msg debug-menu-msg)) (when (= msg (debug-menu-msg press)) (set-frame-rate! *pc-settings* 100)) + (= (-> *pc-settings* target-fps) 100))) + (flag "150" #f ,(lambda (arg (msg debug-menu-msg)) (when (= msg (debug-menu-msg press)) (set-frame-rate! *pc-settings* 150)) + (= (-> *pc-settings* target-fps) 150))) ) (menu "MSAA" - (flag "Off" #f (lambda (arg (msg debug-menu-msg)) (when (= msg (debug-menu-msg press)) (set! (-> *pc-settings* gfx-msaa) 1)) - (= (-> *pc-settings* gfx-msaa) 1))) - (flag "x2" #f (lambda (arg (msg debug-menu-msg)) (when (= msg (debug-menu-msg press)) (set! (-> *pc-settings* gfx-msaa) 2)) - (= (-> *pc-settings* gfx-msaa) 2))) - (flag "x4" #f (lambda (arg (msg debug-menu-msg)) (when (= msg (debug-menu-msg press)) (set! (-> *pc-settings* gfx-msaa) 4)) - (= (-> *pc-settings* gfx-msaa) 4))) - (flag "x8" #f (lambda (arg (msg debug-menu-msg)) (when (= msg (debug-menu-msg press)) (set! (-> *pc-settings* gfx-msaa) 8)) - (= (-> *pc-settings* gfx-msaa) 8))) - (flag "x16" #f (lambda (arg (msg debug-menu-msg)) (when (= msg (debug-menu-msg press)) (set! (-> *pc-settings* gfx-msaa) 16)) - (= (-> *pc-settings* gfx-msaa) 16))) + (flag "Off" #f ,(lambda (arg (msg debug-menu-msg)) (when (= msg (debug-menu-msg press)) (set! (-> *pc-settings* gfx-msaa) 1)) + (= (-> *pc-settings* gfx-msaa) 1))) + (flag "x2" #f ,(lambda (arg (msg debug-menu-msg)) (when (= msg (debug-menu-msg press)) (set! (-> *pc-settings* gfx-msaa) 2)) + (= (-> *pc-settings* gfx-msaa) 2))) + (flag "x4" #f ,(lambda (arg (msg debug-menu-msg)) (when (= msg (debug-menu-msg press)) (set! (-> *pc-settings* gfx-msaa) 4)) + (= (-> *pc-settings* gfx-msaa) 4))) + (flag "x8" #f ,(lambda (arg (msg debug-menu-msg)) (when (= msg (debug-menu-msg press)) (set! (-> *pc-settings* gfx-msaa) 8)) + (= (-> *pc-settings* gfx-msaa) 8))) + (flag "x16" #f ,(lambda (arg (msg debug-menu-msg)) (when (= msg (debug-menu-msg press)) (set! (-> *pc-settings* gfx-msaa) 16)) + (= (-> *pc-settings* gfx-msaa) 16))) ) (flag "V-sync" #f ,(dm-lambda-boolean-flag (-> *pc-settings* vsync?))) ;(flag "Alt load boundaries" #f ,(dm-lambda-boolean-flag (-> *pc-settings* new-lb?))) @@ -4776,9 +4775,9 @@ (flag "Extra hud elements" #f ,(dm-lambda-boolean-flag (-> *pc-settings* extra-hud?))) (flag "Music fadein" #f ,(dm-lambda-boolean-flag (-> *pc-settings* music-fadein?))) (flag "Music fadeout" #f ,(dm-lambda-boolean-flag (-> *pc-settings* music-fadeout?))) - (function "Reset" #f (lambda () (reset *pc-settings*))) - (function "Save" #f (lambda () (commit-to-file *pc-settings*))) - (function "Load" #f (lambda () (load-settings *pc-settings*))) + (function "Reset" #f ,(lambda () (reset *pc-settings*))) + (function "Save" #f ,(lambda () (commit-to-file *pc-settings*))) + (function "Load" #f ,(lambda () (load-settings *pc-settings*))) ) ) ) diff --git a/goal_src/jak1/kernel-defs.gc b/goal_src/jak1/kernel-defs.gc index 963701247d..76a5740a3e 100644 --- a/goal_src/jak1/kernel-defs.gc +++ b/goal_src/jak1/kernel-defs.gc @@ -376,6 +376,8 @@ (define-extern pc-prof (function string pc-prof-event none)) +(defconstant *user* (get-user)) + ;; Constants generated within the C++ runtime (define-extern *pc-user-dir-base-path* string) (define-extern *pc-settings-folder* string) diff --git a/goal_src/jak1/levels/finalboss/sage-finalboss.gc b/goal_src/jak1/levels/finalboss/sage-finalboss.gc index 8d671b27d9..1e232901f6 100644 --- a/goal_src/jak1/levels/finalboss/sage-finalboss.gc +++ b/goal_src/jak1/levels/finalboss/sage-finalboss.gc @@ -369,13 +369,13 @@ (271 joint "camera") (269 send-event self activate-particle 5) (272 send-event self flash) - (272 eval (lambda :behavior sage-finalboss - () - (let ((a0-1 (get-task-control (game-task finalboss-movies)))) - (save-reminder a0-1 (logior (get-reminder a0-1 0) 1) 0) - ) - (none) - ) + (272 eval ,(lambda :behavior sage-finalboss + () + (let ((a0-1 (get-task-control (game-task finalboss-movies)))) + (save-reminder a0-1 (logior (get-reminder a0-1 0) 1) 0) + ) + (none) + ) ) (273 send-event self deactivate-particle 5) (333 joint "cameraB") diff --git a/goal_src/jak2/engine/ambient/ambient.gc b/goal_src/jak2/engine/ambient/ambient.gc index eb7fd32fd3..d60634ae87 100644 --- a/goal_src/jak2/engine/ambient/ambient.gc +++ b/goal_src/jak2/engine/ambient/ambient.gc @@ -5,5 +5,7 @@ ;; name in dgo: ambient ;; dgos: ENGINE, GAME +(define-extern string->talker-speech (function string talker-speech-class)) + ;; DECOMP BEGINS diff --git a/goal_src/jak2/engine/anim/fma-sphere.gc b/goal_src/jak2/engine/anim/fma-sphere.gc index 2c498b1dd1..082a281f9b 100644 --- a/goal_src/jak2/engine/anim/fma-sphere.gc +++ b/goal_src/jak2/engine/anim/fma-sphere.gc @@ -7,3 +7,31 @@ ;; DECOMP BEGINS + +(defenum fma-sphere-mode + :type uint32 + :bitfield #t + (nav 0) + (kill-once 1) + (danger 2) + (deadly-overlap 3)) + +(deftype fma-sphere (process-drawable) + ((first-time? symbol :offset-assert 200) + (mode fma-sphere-mode :offset-assert 204) + (track-handle handle :offset-assert 208) + (track-joint int32 :offset-assert 216) + (attack-id uint32 :offset-assert 220) + (duration time-frame :offset-assert 224) + (sphere sphere :inline :offset-assert 240) + (danger traffic-danger-info :inline :offset-assert 256) + ) + :method-count-assert 21 + :size-assert #x136 + :flag-assert #x1500c00136 + (:methods + (idle () _type_ :state 20) + ) + ) + +(define-extern fma-sphere-init-by-other (function fma-sphere-mode process-drawable int time-frame object object fma-sphere)) diff --git a/goal_src/jak2/engine/anim/joint-mod-h.gc b/goal_src/jak2/engine/anim/joint-mod-h.gc index 11b9c1a23d..63f5b37a82 100644 --- a/goal_src/jak2/engine/anim/joint-mod-h.gc +++ b/goal_src/jak2/engine/anim/joint-mod-h.gc @@ -126,7 +126,7 @@ (defun-debug joint-mod-debug-draw ((arg0 joint-mod)) - (add-debug-matrix #t (bucket-id debug-no-zbuf1) (-> arg0 joint bone transform) (meters 2.0)) + (add-debug-matrix #t (bucket-id debug-no-zbuf1) (-> arg0 joint bone transform) (meters 2)) 0 (none) ) @@ -639,10 +639,3 @@ (enable-set! (_type_ symbol) none 10) ) ) - - -0 - - - - diff --git a/goal_src/jak2/engine/camera/cam-interface-h.gc b/goal_src/jak2/engine/camera/cam-interface-h.gc index d643e1000e..fc5909415c 100644 --- a/goal_src/jak2/engine/camera/cam-interface-h.gc +++ b/goal_src/jak2/engine/camera/cam-interface-h.gc @@ -7,6 +7,8 @@ (define-extern camera-pos (function vector)) +(define-extern position-in-front-of-camera! (function vector float float vector)) + ;; NOTE - for sparticle-launcher (define-extern math-camera-matrix "Returns [[*math-camera*]]'s `inv-camera-rot`" diff --git a/goal_src/jak2/engine/camera/cam-layout.gc b/goal_src/jak2/engine/camera/cam-layout.gc index 99e5541de7..07f9cc0cbd 100644 --- a/goal_src/jak2/engine/camera/cam-layout.gc +++ b/goal_src/jak2/engine/camera/cam-layout.gc @@ -36,23 +36,6 @@ :flag-assert #x90000001c ) -;; definition for method 3 of type cam-layout-bank -(defmethod inspect cam-layout-bank ((obj cam-layout-bank)) - (when (not obj) - (set! obj obj) - (goto cfg-4) - ) - (format #t "[~8x] ~A~%" obj (-> obj type)) - (format #t "~1Tspline-t: ~f~%" (-> obj spline-t)) - (format #t "~1Tspline-step: ~f~%" (-> obj spline-step)) - (format #t "~1Tintro-t: ~f~%" (-> obj intro-t)) - (format #t "~1Tintro-step: ~f~%" (-> obj intro-step)) - (format #t "~1Tdebug-t: ~f~%" (-> obj debug-t)) - (format #t "~1Tdebug-step: ~f~%" (-> obj debug-step)) - (label cfg-4) - obj - ) - ;; definition for symbol *CAM_LAYOUT-bank*, type cam-layout-bank (define *CAM_LAYOUT-bank* (new 'static 'cam-layout-bank :spline-t 0.01 @@ -75,17 +58,6 @@ :flag-assert #x900000004 ) -;; definition for method 3 of type clm-basic -(defmethod inspect clm-basic ((obj clm-basic)) - (when (not obj) - (set! obj obj) - (goto cfg-4) - ) - (format #t "[~8x] ~A~%" obj (-> obj type)) - (label cfg-4) - obj - ) - ;; definition of type clm-item-action (deftype clm-item-action (structure) ((button uint64 :offset-assert 0) @@ -102,22 +74,6 @@ :flag-assert #x90000001c ) -;; definition for method 3 of type clm-item-action -(defmethod inspect clm-item-action ((obj clm-item-action)) - (when (not obj) - (set! obj obj) - (goto cfg-4) - ) - (format #t "[~8x] ~A~%" obj 'clm-item-action) - (format #t "~1Tbutton: ~D~%" (-> obj button)) - (format #t "~1Toptions: ~D~%" (-> obj options)) - (format #t "~1Tfunc: ~A~%" (-> obj func)) - (format #t "~1Tparm0: ~A~%" (-> obj parm0)) - (format #t "~1Tparm1: ~A~%" (-> obj parm1)) - (label cfg-4) - obj - ) - ;; definition of type clm-item (deftype clm-item (clm-basic) ((description string :offset-assert 4) @@ -129,20 +85,6 @@ :flag-assert #x90000002c ) -;; definition for method 3 of type clm-item -(defmethod inspect clm-item ((obj clm-item)) - (when (not obj) - (set! obj obj) - (goto cfg-4) - ) - (format #t "[~8x] ~A~%" obj (-> obj type)) - (format #t "~1Tdescription: ~A~%" (-> obj description)) - (format #t "~1Tbutton-symbol: ~A~%" (-> obj button-symbol)) - (format #t "~1Taction: #~%" (-> obj action)) - (label cfg-4) - obj - ) - ;; definition of type clm-list-item (deftype clm-list-item (basic) ((description string :offset-assert 4) @@ -160,23 +102,6 @@ :flag-assert #x90000001c ) -;; definition for method 3 of type clm-list-item -(defmethod inspect clm-list-item ((obj clm-list-item)) - (when (not obj) - (set! obj obj) - (goto cfg-4) - ) - (format #t "[~8x] ~A~%" obj (-> obj type)) - (format #t "~1Tdescription: ~A~%" (-> obj description)) - (format #t "~1Ttrack-val: ~A~%" (-> obj track-val)) - (format #t "~1Tval-func: ~A~%" (-> obj val-func)) - (format #t "~1Tval-parm0: ~A~%" (-> obj val-parm0)) - (format #t "~1Tval-parm1: ~A~%" (-> obj val-parm1)) - (format #t "~1Tactions: ~A~%" (-> obj actions)) - (label cfg-4) - obj - ) - ;; definition of type clm-list (deftype clm-list (clm-basic) ((tracker symbol :offset-assert 4) @@ -188,20 +113,6 @@ :flag-assert #x900000010 ) -;; definition for method 3 of type clm-list -(defmethod inspect clm-list ((obj clm-list)) - (when (not obj) - (set! obj obj) - (goto cfg-4) - ) - (format #t "[~8x] ~A~%" obj (-> obj type)) - (format #t "~1Ttracker: ~A~%" (-> obj tracker)) - (format #t "~1Tcur-list-item: ~D~%" (-> obj cur-list-item)) - (format #t "~1Titems: ~A~%" (-> obj items)) - (label cfg-4) - obj - ) - ;; definition of type clm (deftype clm (basic) ((title string :offset-assert 4) @@ -212,19 +123,6 @@ :flag-assert #x90000000c ) -;; definition for method 3 of type clm -(defmethod inspect clm ((obj clm)) - (when (not obj) - (set! obj obj) - (goto cfg-4) - ) - (format #t "[~8x] ~A~%" obj (-> obj type)) - (format #t "~1Ttitle: ~A~%" (-> obj title)) - (format #t "~1Titems: ~A~%" (-> obj items)) - (label cfg-4) - obj - ) - ;; definition for symbol *volume-point-current*, type int (define *volume-point-current* 0) @@ -246,20 +144,6 @@ :flag-assert #x900000010 ) -;; definition for method 3 of type volume-descriptor-array -(defmethod inspect volume-descriptor-array ((obj volume-descriptor-array)) - (when (not obj) - (set! obj obj) - (goto cfg-4) - ) - (format #t "[~8x] ~A~%" obj (-> obj type)) - (format #t "~1Tlength: ~D~%" (-> obj length)) - (format #t "~1Tallocated-length: ~D~%" (-> obj allocated-length)) - (format #t "~1Tdata[0] @ #x~X~%" (-> obj data)) - (label cfg-4) - obj - ) - ;; failed to figure out what this is: (set! (-> volume-descriptor-array heap-base) (the-as uint 24)) @@ -289,27 +173,6 @@ ) ) -;; definition for method 3 of type cam-layout -(defmethod inspect cam-layout ((obj cam-layout)) - (when (not obj) - (set! obj obj) - (goto cfg-4) - ) - (let ((t9-0 (method-of-type process inspect))) - (t9-0 obj) - ) - (format #t "~2Tcam-entity: ~A~%" (-> obj cam-entity)) - (format #t "~2Tnum-entities: ~D~%" (-> obj num-entities)) - (format #t "~2Tcur-entity: ~D~%" (-> obj cur-entity)) - (format #t "~2Tnum-volumes: ~D~%" (-> obj num-volumes)) - (format #t "~2Tcur-volume: ~D~%" (-> obj cur-volume)) - (format #t "~2Tfirst-pvol: ~D~%" (-> obj first-pvol)) - (format #t "~2Tfirst-cutoutvol: ~D~%" (-> obj first-cutoutvol)) - (format #t "~2Tres-key: ~f~%" (-> obj res-key)) - (label cfg-4) - obj - ) - ;; definition for function cam-layout-print (defun cam-layout-print ((arg0 int) (arg1 int) (arg2 string)) (let* ((s5-0 (-> *display* frames (-> *display* on-screen) debug-buf)) @@ -635,23 +498,6 @@ :flag-assert #x90000003c ) -;; definition for method 3 of type interp-test-info -(defmethod inspect interp-test-info ((obj interp-test-info)) - (when (not obj) - (set! obj obj) - (goto cfg-4) - ) - (format #t "[~8x] ~A~%" obj 'interp-test-info) - (format #t "~1Tfrom: #~%" (-> obj from)) - (format #t "~1Tto: #~%" (-> obj to)) - (format #t "~1Torigin: #~%" (-> obj origin)) - (format #t "~1Tcolor: #~%" (-> obj color)) - (format #t "~1Taxis: #~%" (-> obj axis)) - (format #t "~1Tdisp: ~A~%" (-> obj disp)) - (label cfg-4) - obj - ) - ;; definition for function interp-test ;; INFO: Used lq/sq (defun interp-test ((arg0 (function vector vector vector float vector float none)) (arg1 interp-test-info)) @@ -670,13 +516,7 @@ (format *stdcon* "~S ~f~%" (-> arg1 disp) (vector-length s5-0)) (vector+! s5-0 s5-0 (-> arg1 origin)) (camera-line (-> arg1 origin) s5-0 (-> arg1 color)) - (camera-cross - (new 'static 'vector :y 1024.0) - (new 'static 'vector :z 1024.0) - s5-0 - (-> arg1 color) - (meters 1.0) - ) + (camera-cross (new 'static 'vector :y 1024.0) (new 'static 'vector :z 1024.0) s5-0 (-> arg1 color) (meters 1)) ) (none) ) @@ -699,13 +539,7 @@ (format *stdcon* "~S ~f~%" (-> arg1 disp) (vector-length s5-0)) (vector+! s5-0 s5-0 (-> arg1 origin)) (camera-line (-> arg1 origin) s5-0 (-> arg1 color)) - (camera-cross - (new 'static 'vector :y 1024.0) - (new 'static 'vector :z 1024.0) - s5-0 - (-> arg1 color) - (meters 1.0) - ) + (camera-cross (new 'static 'vector :y 1024.0) (new 'static 'vector :z 1024.0) s5-0 (-> arg1 color) (meters 1)) ) (none) ) @@ -736,7 +570,7 @@ (new 'static 'vector :z 1024.0) s5-1 (new 'static 'vector4w :x #x80 :w #x80) - (meters 1.0) + (meters 1) ) ) ) @@ -749,7 +583,7 @@ (new 'static 'vector :z 1024.0) s5-2 (new 'static 'vector4w :y #x80 :w #x80) - (meters 1.0) + (meters 1) ) ) ) @@ -764,7 +598,7 @@ (new 'static 'vector :z 1024.0) s5-3 (new 'static 'vector4w :x #x80 :z #x80 :w #x80) - (meters 1.0) + (meters 1) ) ) ) @@ -815,7 +649,7 @@ (new 'static 'vector :z 1024.0) s5-4 (new 'static 'vector4w :x #xff :y #xff :w #x80) - (meters 1.0) + (meters 1) ) ) ) @@ -858,7 +692,7 @@ (new 'static 'vector :z 1024.0) s5-5 (new 'static 'vector4w :z #xff :w #x80) - (meters 1.0) + (meters 1) ) (curve-get-pos! s5-5 (cam-slave-get-float arg0 'intro-exitValue 0.0) s3-2) (vector+! s5-5 s5-5 s4-2) @@ -867,7 +701,7 @@ (new 'static 'vector :z 1024.0) s5-5 (new 'static 'vector4w :z #xff :w #x80) - (meters 1.0) + (meters 1) ) ) ) @@ -897,7 +731,7 @@ (new 'static 'vector :z 1024.0) s5-6 (new 'static 'vector4w :x #xff :y #xff :w #x80) - (meters 1.0) + (meters 1) ) ) ) @@ -923,7 +757,7 @@ (new 'static 'vector :z 1024.0) s5-7 (new 'static 'vector4w :y #xff :z #xff :w #x80) - (meters 1.0) + (meters 1) ) ) ) @@ -2306,20 +2140,6 @@ :flag-assert #x90000000c ) -;; definition for method 3 of type clmf-cam-flag-toggle-info -(defmethod inspect clmf-cam-flag-toggle-info ((obj clmf-cam-flag-toggle-info)) - (when (not obj) - (set! obj obj) - (goto cfg-4) - ) - (format #t "[~8x] ~A~%" obj 'clmf-cam-flag-toggle-info) - (format #t "~1Tkey: ~f~%" (-> obj key)) - (format #t "~1Tforce-on: ~D~%" (-> obj force-on)) - (format #t "~1Tforce-off: ~D~%" (-> obj force-off)) - (label cfg-4) - obj - ) - ;; definition for function clmf-cam-flag-toggle (defbehavior clmf-cam-flag-toggle cam-layout ((arg0 int) (arg1 int)) (let ((s4-0 (/ arg0 8)) diff --git a/goal_src/jak2/engine/common_objs/generic-obs-h.gc b/goal_src/jak2/engine/common_objs/generic-obs-h.gc index ab66e9cfdd..40ac137ffb 100644 --- a/goal_src/jak2/engine/common_objs/generic-obs-h.gc +++ b/goal_src/jak2/engine/common_objs/generic-obs-h.gc @@ -12,6 +12,10 @@ (declare-type sparticle-launch-group basic) +(define-extern lightning-tracker-init (function lightning-spec time-frame symbol process-drawable vector vector none)) + +(define-extern birth-pickup-at-point (function vector pickup-type float symbol process-tree fact-info (pointer process) :behavior process)) + ;; DECOMP BEGINS (deftype manipy (process-drawable) diff --git a/goal_src/jak2/engine/common_objs/generic-obs.gc b/goal_src/jak2/engine/common_objs/generic-obs.gc index 5d15cb35cf..22020aff83 100644 --- a/goal_src/jak2/engine/common_objs/generic-obs.gc +++ b/goal_src/jak2/engine/common_objs/generic-obs.gc @@ -8,6 +8,8 @@ (define-extern ja-post (function none :behavior process-drawable)) (define-extern merc-blend-shape (function process-drawable object)) (define-extern merc-eye-anim (function process-drawable none)) +(define-extern process-grab? (function process symbol :behavior process)) +(define-extern process-release? (function process symbol :behavior process)) ;; DECOMP BEGINS diff --git a/goal_src/jak2/engine/debug/default-menu.gc b/goal_src/jak2/engine/debug/default-menu.gc index 89ed6989e3..720294fc5d 100644 --- a/goal_src/jak2/engine/debug/default-menu.gc +++ b/goal_src/jak2/engine/debug/default-menu.gc @@ -360,7 +360,7 @@ (if (= arg1 (debug-menu-msg press)) (start 'play (get-continue-by-name *game-info* arg0)) ) - (string= (-> (get-current-continue-point *game-info*) name) arg0) + (string= (-> (get-current-continue-forced *game-info*) name) arg0) ) (defun dm-subdiv-draw-func ((arg0 int) (arg1 debug-menu-msg)) @@ -978,10 +978,9 @@ (= *bug-report-output-mode* arg0) ) -;; WARN: Return type mismatch int vs none. (defun dm-bug-report-report-pick-func ((arg0 symbol) (arg1 debug-menu-msg)) (if (= arg1 (debug-menu-msg press)) - (bug-report-display) + (bug-report-display arg0) ) 0 (none) @@ -1072,7 +1071,6 @@ (define *enable-instance-tie-menu* (the-as debug-menu #f)) -;; WARN: Return type mismatch int vs none. (defun build-instance-list ((arg0 object)) (debug-menu-remove-all-items *instance-shrub-menu*) (debug-menu-remove-all-items *instance-tie-menu*) @@ -1675,7 +1673,16 @@ (cond (a0-3 (when (= arg1 (debug-menu-msg press)) - 0 ;; TODO - broken + ;; (let ((a1-8 (the-as object (* (the-as adgif-shader (-> a0-3 next (-> v1-1 index) shader)) 16)))) + ;; (while (nonzero? (the-as int a1-8)) + ;; (set! (-> (the-as adgif-shader a1-8) tex1) + ;; (logior (logand (-> (the-as adgif-shader a1-8) tex1) (-> (new 'static 'array uint64 1 #xfffff000ffffffff) 0)) + ;; (shr (shl (the-as int arg2) 52) 20) + ;; ) + ;; ) + ;; (set! a1-8 (* (-> (the-as adgif-shader a1-8) next shader) 16)) + ;; ) + ;; ) ) (let ((v1-8 (the-as object (* (-> a0-3 next (-> v1-1 index) shader) 16)))) (if (nonzero? (the-as uint v1-8)) @@ -1868,7 +1875,16 @@ (cond (a0-3 (when (= arg1 (debug-menu-msg press)) - ;; TODO - broken + ;; (let ((a1-8 (the-as object (* (the-as adgif-shader (-> a0-3 next (-> v1-1 index) shader)) 16)))) + ;; (while (nonzero? (the-as int a1-8)) + ;; (set! (-> (the-as adgif-shader a1-8) tex0) + ;; (logior (logand (-> (the-as adgif-shader a1-8) tex0) (-> (new 'static 'array uint64 1 #xffffffe7ffffffff) 0)) + ;; (shr (shl (the-as int arg2) 62) 27) + ;; ) + ;; ) + ;; (set! a1-8 (* (-> (the-as adgif-shader a1-8) next shader) 16)) + ;; ) + ;; ) ) (let ((v1-8 (the-as object (* (-> a0-3 next (-> v1-1 index) shader) 16)))) (if (nonzero? (the-as uint v1-8)) @@ -2061,7 +2077,16 @@ (cond (a0-3 (when (= arg1 (debug-menu-msg press)) - ;; TODO - broken + ;; (let ((a1-8 (the-as object (* (the-as adgif-shader (-> a0-3 next (-> v1-1 index) shader)) 16)))) + ;; (while (nonzero? (the-as int a1-8)) + ;; (set! (-> (the-as adgif-shader a1-8) tex0) + ;; (logior (logand (-> (the-as adgif-shader a1-8) tex0) (-> (new 'static 'array uint64 1 #xfffffffc3fffffff) 0)) + ;; (shr (shl (the-as int arg2) 60) 30) + ;; ) + ;; ) + ;; (set! a1-8 (* (-> (the-as adgif-shader a1-8) next shader) 16)) + ;; ) + ;; ) ) (let ((v1-8 (the-as object (* (-> a0-3 next (-> v1-1 index) shader) 16)))) (if (nonzero? (the-as uint v1-8)) @@ -2352,7 +2377,16 @@ (cond (a0-3 (when (= arg1 (debug-menu-msg press)) - ;; TODO - broken + ;; (let ((a1-8 (the-as object (* (the-as adgif-shader (-> a0-3 next (-> v1-1 index) shader)) 16)))) + ;; (while (nonzero? (the-as int a1-8)) + ;; (set! (-> (the-as adgif-shader a1-8) clamp) + ;; (logior (logand (-> (the-as adgif-shader a1-8) clamp) (-> (new 'static 'array uint64 1 #xfffffffc00ffffff) 0)) + ;; (shr (shl (the-as int arg2) 54) 30) + ;; ) + ;; ) + ;; (set! a1-8 (* (-> (the-as adgif-shader a1-8) next shader) 16)) + ;; ) + ;; ) ) (let ((v1-8 (the-as object (* (-> a0-3 next (-> v1-1 index) shader) 16)))) (if (nonzero? (the-as uint v1-8)) @@ -2398,7 +2432,16 @@ (cond (a0-3 (when (= arg1 (debug-menu-msg press)) - ;; TODO - broken + ;; (let ((a1-8 (the-as object (* (the-as adgif-shader (-> a0-3 next (-> v1-1 index) shader)) 16)))) + ;; (while (nonzero? (the-as int a1-8)) + ;; (set! (-> (the-as adgif-shader a1-8) clamp) + ;; (logior (logand (-> (the-as adgif-shader a1-8) clamp) (-> (new 'static 'array uint64 1 #xfffff003ffffffff) 0)) + ;; (shr (shl (the-as int arg2) 54) 20) + ;; ) + ;; ) + ;; (set! a1-8 (* (-> (the-as adgif-shader a1-8) next shader) 16)) + ;; ) + ;; ) ) (let ((v1-8 (the-as object (* (-> a0-3 next (-> v1-1 index) shader) 16)))) (if (nonzero? (the-as uint v1-8)) @@ -2575,18 +2618,20 @@ (let ((gp-0 (/ (the-as int arg0) 8))) (when (= arg1 (debug-menu-msg press)) (if (cpad-hold? 0 l1) - (task-node-open! (the-as game-task gp-0)) - (task-node-close! (the-as game-task gp-0)) + (task-node-open! (the-as game-task-node gp-0)) + (task-node-close! (the-as game-task-node gp-0)) ) ) - (if (and (not (task-node-closed? (the-as game-task-node gp-0))) (not (task-node-open? (the-as game-task gp-0)))) + (if (and (not (task-node-closed? (the-as game-task-node gp-0))) + (not (task-node-open? (the-as game-task-node gp-0))) + ) (return 'invalid) ) (task-node-closed? (the-as game-task-node gp-0)) ) ) -(defun debug-menu-make-continue-sub-menu ((arg0 debug-menu-context) (arg1 symbol)) +(defun debug-menu-make-continue-sub-menu ((arg0 game-info) (arg1 symbol)) (local-vars (sv-16 (function symbol type object object pair)) (sv-32 symbol) @@ -2762,7 +2807,6 @@ ) ) -;; WARN: Return type mismatch int vs none. (defun dm-play-task-with-continue ((arg0 game-task) (arg1 string)) (let* ((t9-0 play-task) (a1-1 'debug) @@ -2857,8 +2901,7 @@ (none) ) -;; WARN: Return type mismatch debug-menu-node vs none. -(defun debug-menu-make-play-menu ((arg0 symbol)) +(defun debug-menu-make-play-menu ((arg0 debug-menu-context)) (local-vars (sv-16 symbol) (sv-32 type) @@ -2902,9 +2945,8 @@ ) ) ) - (debug-menu-make-from-template (the-as debug-menu-context arg0) (cons 'menu (cons "Play" gp-0))) + (debug-menu-make-from-template arg0 (cons 'menu (cons "Play" gp-0))) ) - (none) ) (defun dm-anim-tester-flag-func ((arg0 int) (arg1 debug-menu-msg)) @@ -2954,7 +2996,7 @@ (defun dm-pilot-mode ((arg0 object)) "TODO - what is the third arg to target's change-mode?" (if (not *target*) - (start 'debug (get-current-continue-point *game-info*)) + (start 'debug (get-current-continue-forced *game-info*)) ) (send-event *target* 'change-mode 'pilot #f arg0 #t) (none) @@ -2964,7 +3006,7 @@ (defun dm-pilot-race-mode ((arg0 object)) "TODO - what is the third arg to target's change-mode?" (if (not *target*) - (start 'debug (get-current-continue-point *game-info*)) + (start 'debug (get-current-continue-forced *game-info*)) ) (send-event *target* 'change-mode 'pilot-race #f arg0 #t) (none) @@ -3008,8 +3050,8 @@ (flag "Use menu subdiv" *artist-use-menu-subdiv* dm-boolean-toggle-pick-func) (float-var "Subdiv Close" close dm-subdiv-float 10 1 #t 1 200 1) (float-var "Subdiv Far" far dm-subdiv-float 10 1 #t 1 200 1) - (function "Target Start" #f (lambda () (start 'debug (get-current-continue-point *game-info*)))) - (function "Target Stop" #f (lambda () (stop 'debug))) + (function "Target Start" #f ,(lambda () (start 'debug (get-current-continue-forced *game-info*)))) + (function "Target Stop" #f ,(lambda () (stop 'debug))) (menu "Anim Tester" (int-var "Speed" anim-speed dm-subdiv-int 10 10 #t -300 1000) @@ -3029,37 +3071,37 @@ (function "Mike F" #f - (lambda () (debug-actor "drill-crane-14") (send-event (the-as process-tree *debug-actor*) 'die)) + ,(lambda () (debug-actor "drill-crane-14") (send-event (the-as process-tree *debug-actor*) 'die)) ) (function "Editor" #f - (lambda () - (kill-by-type editable-player *active-pool*) - (process-spawn editable-player :init editable-player-init #f :to *entity-pool*) - (set-master-mode 'game) - (none) - ) + ,(lambda () + (kill-by-type editable-player *active-pool*) + (process-spawn editable-player :init editable-player-init #f :to *entity-pool*) + (set-master-mode 'game) + (none) + ) ) (flag "Screen shot highres enable" #f - (lambda ((arg0 object) (arg1 debug-menu-msg)) - (if (= arg1 (debug-menu-msg press)) - (set! (-> *screen-shot-work* highres-enable) (not (-> *screen-shot-work* highres-enable))) - ) - (-> *screen-shot-work* highres-enable) - ) + ,(lambda ((arg0 object) (arg1 debug-menu-msg)) + (if (= arg1 (debug-menu-msg press)) + (set! (-> *screen-shot-work* highres-enable) (not (-> *screen-shot-work* highres-enable))) + ) + (-> *screen-shot-work* highres-enable) + ) ) (flag "Screen shot hud enable" #f - (lambda ((arg0 object) (arg1 debug-menu-msg)) - (if (= arg1 (debug-menu-msg press)) - (set! (-> *screen-shot-work* hud-enable) (not (-> *screen-shot-work* hud-enable))) - ) - (-> *screen-shot-work* hud-enable) - ) + ,(lambda ((arg0 object) (arg1 debug-menu-msg)) + (if (= arg1 (debug-menu-msg press)) + (set! (-> *screen-shot-work* hud-enable) (not (-> *screen-shot-work* hud-enable))) + ) + (-> *screen-shot-work* hud-enable) + ) ) ) ) @@ -3070,63 +3112,63 @@ arg0 '(menu "Game" - (function "New Game" #f (lambda () (initialize! *game-info* 'game (the-as game-save #f) (the-as string #f)))) - (function "New Life" #f (lambda () (initialize! *game-info* 'dead (the-as game-save #f) (the-as string #f)))) + (function "New Game" #f ,(lambda () (initialize! *game-info* 'game (the-as game-save #f) (the-as string #f)))) + (function "New Life" #f ,(lambda () (initialize! *game-info* 'dead (the-as game-save #f) (the-as string #f)))) (function "Reset Game" #f - (lambda () - (set! (-> *game-info* mode) 'debug) - (initialize! *game-info* 'game (the-as game-save #f) (the-as string #f)) - ) + ,(lambda () + (set! (-> *game-info* mode) 'debug) + (initialize! *game-info* 'game (the-as game-save #f) (the-as string #f)) + ) ) - (function "Reset Actors" #f (lambda () (reset-actors 'debug) (none))) - (function "Save Game" #f (lambda () (auto-save-command 'save 0 0 *default-pool* #f) (none))) - (function "Load Game" #f (lambda () (auto-save-command 'restore 0 0 *default-pool* #f) (none))) - (flag "Target" #f (lambda ((arg0 object) (arg1 debug-menu-msg)) - (when (= arg1 (debug-menu-msg press)) - (if *target* - (stop 'debug) - (start 'debug (get-current-continue-point *game-info*)) - ) - ) - *target* - ) + (function "Reset Actors" #f ,(lambda () (reset-actors 'debug) (none))) + (function "Save Game" #f ,(lambda () (auto-save-command 'save 0 0 *default-pool* #f) (none))) + (function "Load Game" #f ,(lambda () (auto-save-command 'restore 0 0 *default-pool* #f) (none))) + (flag "Target" #f ,(lambda ((arg0 object) (arg1 debug-menu-msg)) + (when (= arg1 (debug-menu-msg press)) + (if *target* + (stop 'debug) + (start 'debug (get-current-continue-forced *game-info*)) + ) + ) + *target* + ) ) (flag "Game Mode" play dm-game-mode-pick-func) (flag "Debug Mode" debug dm-game-mode-pick-func) (function "Stop Watch Start" #f - (lambda () - (remove-by-param0 *debug-engine* stop-watch-display) - (add-connection *debug-engine* *dproc* stop-watch-display *dproc* *stdcon0* #f) - (set! (-> *game-info* stop-watch-start) (the-as uint (-> *display* base-clock frame-counter))) - (set! (-> *game-info* stop-watch-stop) (the-as uint 0)) - (format #t "Stop watch started!~%") - (none) - ) + ,(lambda () + (remove-by-param0 *debug-engine* stop-watch-display) + (add-connection *debug-engine* *dproc* stop-watch-display *dproc* *stdcon0* #f) + (set! (-> *game-info* stop-watch-start) (the-as uint (-> *display* base-clock frame-counter))) + (set! (-> *game-info* stop-watch-stop) (the-as uint 0)) + (format #t "Stop watch started!~%") + (none) + ) ) (function "Stop Watch Stop" #f - (lambda () - (remove-by-param0 *debug-engine* stop-watch-display) - (set! (-> *game-info* stop-watch-stop) (the-as uint (-> *display* base-clock frame-counter))) - (let ((v1-7 (- (-> *game-info* stop-watch-stop) (-> *game-info* stop-watch-start)))) - (format - #t - "Stop watch elasped time was ~D:~D:~D~%" - (/ (the-as int v1-7) #x4650) - (/ (mod (the-as int v1-7) #x4650) 300) - (/ (* 100 (mod (the-as int v1-7) 300)) 300) - ) - ) - (none) - ) + ,(lambda () + (remove-by-param0 *debug-engine* stop-watch-display) + (set! (-> *game-info* stop-watch-stop) (the-as uint (-> *display* base-clock frame-counter))) + (let ((v1-7 (- (-> *game-info* stop-watch-stop) (-> *game-info* stop-watch-start)))) + (format + #t + "Stop watch elasped time was ~D:~D:~D~%" + (/ (the-as int v1-7) #x4650) + (/ (mod (the-as int v1-7) #x4650) 300) + (/ (* 100 (mod (the-as int v1-7) 300)) 300) + ) + ) + (none) + ) ) - (function "Continue Start" #f (lambda () (start 'play (-> *game-info* current-continue)))) - (function "Kiosk Reset" #f (lambda () (auto-save-command 'restore 0 0 *default-pool* #f) (none))) + (function "Continue Start" #f ,(lambda () (start 'play (-> *game-info* current-continue)))) + (function "Kiosk Reset" #f ,(lambda () (auto-save-command 'restore 0 0 *default-pool* #f) (none))) (menu "Secrets" (flag "toggle-beard" 1 dm-game-secret-toggle-pick-func) @@ -3153,21 +3195,21 @@ (float-var "sfx-volume" #f - (lambda ((arg0 object) (arg1 debug-menu-msg) (arg2 float)) - (cond - ((= arg1 (debug-menu-msg press)) - (if (and *setting-control* (nonzero? *setting-control*)) - (set! (-> *setting-control* user-default sfx-volume) arg2) - ) - ) - ((or (not *setting-control*) (zero? *setting-control*)) - 0.0 - ) - (else - (-> *setting-control* user-default sfx-volume) + ,(lambda ((arg0 object) (arg1 debug-menu-msg) (arg2 float)) + (cond + ((= arg1 (debug-menu-msg press)) + (if (and *setting-control* (nonzero? *setting-control*)) + (set! (-> *setting-control* user-default sfx-volume) arg2) + ) ) - ) - ) + ((or (not *setting-control*) (zero? *setting-control*)) + 0.0 + ) + (else + (-> *setting-control* user-default sfx-volume) + ) + ) + ) 2 (new 'static 'bfloat :data 0.01) #t @@ -3178,21 +3220,21 @@ (float-var "ambient-volume" #f - (lambda ((arg0 object) (arg1 debug-menu-msg) (arg2 float)) - (cond - ((= arg1 (debug-menu-msg press)) - (if (and *setting-control* (nonzero? *setting-control*)) - (set! (-> *setting-control* user-default ambient-volume) arg2) - ) - ) - ((or (not *setting-control*) (zero? *setting-control*)) - 0.0 - ) - (else - (-> *setting-control* user-default ambient-volume) + ,(lambda ((arg0 object) (arg1 debug-menu-msg) (arg2 float)) + (cond + ((= arg1 (debug-menu-msg press)) + (if (and *setting-control* (nonzero? *setting-control*)) + (set! (-> *setting-control* user-default ambient-volume) arg2) + ) ) - ) - ) + ((or (not *setting-control*) (zero? *setting-control*)) + 0.0 + ) + (else + (-> *setting-control* user-default ambient-volume) + ) + ) + ) 2 (new 'static 'bfloat :data 0.01) #t @@ -3203,21 +3245,21 @@ (float-var "music-volume" #f - (lambda ((arg0 object) (arg1 debug-menu-msg) (arg2 float)) - (cond - ((= arg1 (debug-menu-msg press)) - (if (and *setting-control* (nonzero? *setting-control*)) - (set! (-> *setting-control* user-default music-volume) arg2) - ) - ) - ((or (not *setting-control*) (zero? *setting-control*)) - 0.0 - ) - (else - (-> *setting-control* user-default music-volume) + ,(lambda ((arg0 object) (arg1 debug-menu-msg) (arg2 float)) + (cond + ((= arg1 (debug-menu-msg press)) + (if (and *setting-control* (nonzero? *setting-control*)) + (set! (-> *setting-control* user-default music-volume) arg2) + ) ) - ) - ) + ((or (not *setting-control*) (zero? *setting-control*)) + 0.0 + ) + (else + (-> *setting-control* user-default music-volume) + ) + ) + ) 2 (new 'static 'bfloat :data 0.01) #t @@ -3228,21 +3270,21 @@ (float-var "dialog-volume" #f - (lambda ((arg0 object) (arg1 debug-menu-msg) (arg2 float)) - (cond - ((= arg1 (debug-menu-msg press)) - (if (and *setting-control* (nonzero? *setting-control*)) - (set! (-> *setting-control* user-default dialog-volume) arg2) - ) - ) - ((or (not *setting-control*) (zero? *setting-control*)) - 0.0 - ) - (else - (-> *setting-control* user-default dialog-volume) + ,(lambda ((arg0 object) (arg1 debug-menu-msg) (arg2 float)) + (cond + ((= arg1 (debug-menu-msg press)) + (if (and *setting-control* (nonzero? *setting-control*)) + (set! (-> *setting-control* user-default dialog-volume) arg2) + ) ) - ) - ) + ((or (not *setting-control*) (zero? *setting-control*)) + 0.0 + ) + (else + (-> *setting-control* user-default dialog-volume) + ) + ) + ) 2 (new 'static 'bfloat :data 0.01) #t @@ -3275,32 +3317,32 @@ (flag "play-hints " #f - (lambda ((arg0 object) (arg1 debug-menu-msg)) - (if (= arg1 (debug-menu-msg press)) - (set! (-> *setting-control* user-default play-hints) (not (-> *setting-control* user-default play-hints))) - ) - (the-as uint (-> *setting-control* user-default play-hints)) - ) + ,(lambda ((arg0 object) (arg1 debug-menu-msg)) + (if (= arg1 (debug-menu-msg press)) + (set! (-> *setting-control* user-default play-hints) (not (-> *setting-control* user-default play-hints))) + ) + (the-as uint (-> *setting-control* user-default play-hints)) + ) ) (flag "subtitle " #f - (lambda ((arg0 object) (arg1 debug-menu-msg)) - (if (= arg1 (debug-menu-msg press)) - (set! (-> *setting-control* user-default subtitle) (not (-> *setting-control* user-default subtitle))) - ) - (-> *setting-control* user-default subtitle) - ) + ,(lambda ((arg0 object) (arg1 debug-menu-msg)) + (if (= arg1 (debug-menu-msg press)) + (set! (-> *setting-control* user-default subtitle) (not (-> *setting-control* user-default subtitle))) + ) + (-> *setting-control* user-default subtitle) + ) ) (flag "vibration" #f - (lambda ((arg0 object) (arg1 debug-menu-msg)) - (if (= arg1 (debug-menu-msg press)) - (set! (-> *setting-control* user-default vibration) (not (-> *setting-control* user-default vibration))) - ) - (the-as uint (-> *setting-control* user-default vibration)) - ) + ,(lambda ((arg0 object) (arg1 debug-menu-msg)) + (if (= arg1 (debug-menu-msg press)) + (set! (-> *setting-control* user-default vibration) (not (-> *setting-control* user-default vibration))) + ) + (the-as uint (-> *setting-control* user-default vibration)) + ) ) (menu "Stereo Mode" @@ -3311,37 +3353,37 @@ (flag "camera-stick-dir" #f - (lambda ((arg0 object) (arg1 debug-menu-msg)) - (if (= arg1 (debug-menu-msg press)) - (set! (-> *setting-control* user-default unknowng-symbol-00) - (not (-> *setting-control* user-default unknowng-symbol-00)) - ) - ) - (the-as uint (-> *setting-control* user-default unknowng-symbol-00)) - ) + ,(lambda ((arg0 object) (arg1 debug-menu-msg)) + (if (= arg1 (debug-menu-msg press)) + (set! (-> *setting-control* user-default unknowng-symbol-00) + (not (-> *setting-control* user-default unknowng-symbol-00)) + ) + ) + (the-as uint (-> *setting-control* user-default unknowng-symbol-00)) + ) ) (flag "progressive-scan" #f - (lambda ((arg0 object) (arg1 debug-menu-msg)) - (if (= arg1 (debug-menu-msg press)) - (set! (-> *setting-control* user-default use-progressive-scan) - (not (-> *setting-control* user-default use-progressive-scan)) - ) - ) - (-> *setting-control* user-default use-progressive-scan) - ) + ,(lambda ((arg0 object) (arg1 debug-menu-msg)) + (if (= arg1 (debug-menu-msg press)) + (set! (-> *setting-control* user-default use-progressive-scan) + (not (-> *setting-control* user-default use-progressive-scan)) + ) + ) + (the-as uint (-> *setting-control* user-default use-progressive-scan)) + ) ) (flag "border-mode" #f - (lambda ((arg0 object) (arg1 debug-menu-msg)) - (when (= arg1 (debug-menu-msg press)) - (set! (-> *setting-control* user-default border-mode) (not (-> *setting-control* user-default border-mode))) - (set! (-> *level* play?) (-> *setting-control* user-default border-mode)) - ) - (-> *setting-control* user-default border-mode) - ) + ,(lambda ((arg0 object) (arg1 debug-menu-msg)) + (when (= arg1 (debug-menu-msg press)) + (set! (-> *setting-control* user-default border-mode) (not (-> *setting-control* user-default border-mode))) + (set! (-> *level* play?) (-> *setting-control* user-default border-mode)) + ) + (-> *setting-control* user-default border-mode) + ) ) ) (menu @@ -3401,7 +3443,7 @@ (s0-0 debug-menu-make-from-template) ) (set! sv-16 arg0) - (let ((a1-8 (debug-menu-make-continue-sub-menu (the-as debug-menu-context *game-info*) (the-as symbol a1-7)))) + (let ((a1-8 (debug-menu-make-continue-sub-menu *game-info* (the-as symbol a1-7)))) (s2-0 s1-0 (s0-0 sv-16 a1-8)) ) ) @@ -3437,42 +3479,42 @@ (function "Print Entity Memory" #f - (lambda () - (format #t "~%~%========================= Entity Memory =========================~%~%") - (let ((gp-0 (-> *level* level0))) - (inspect (-> gp-0 art-group)) - (dotimes (s5-0 (-> gp-0 art-group art-group-array length)) - (inspect (-> gp-0 art-group art-group-array s5-0)) - ) - ) - #f - ) + ,(lambda () + (format #t "~%~%========================= Entity Memory =========================~%~%") + (let ((gp-0 (-> *level* level0))) + (inspect (-> gp-0 art-group)) + (dotimes (s5-0 (-> gp-0 art-group art-group-array length)) + (inspect (-> gp-0 art-group art-group-array s5-0)) + ) + ) + #f + ) ) (function "Print Texture Info" #f - (lambda () - (format #t "~%~%========================= Texture Info =========================~%~%") - (inspect *texture-page-dir*) - ) + ,(lambda () + (format #t "~%~%========================= Texture Info =========================~%~%") + (inspect *texture-page-dir*) + ) ) (function "Print Texture Verbose" #f - (lambda () - (format #t "~%~%========================= Texture Info =========================~%~%") - (texture-page-dir-inspect *texture-page-dir* #t) - (none) - ) + ,(lambda () + (format #t "~%~%========================= Texture Info =========================~%~%") + (texture-page-dir-inspect *texture-page-dir* #t) + (none) + ) ) (function "Print Merc Stats" #f - (lambda () - (format #t "~%~%========================== Merc Stats ==========================~%~%") - (merc-stats) - (none) - ) + ,(lambda () + (format #t "~%~%========================== Merc Stats ==========================~%~%") + (merc-stats) + (none) + ) ) ) ) @@ -3674,9 +3716,18 @@ '(menu "Actor" (flag "Spawn Actors" *spawn-actors* dm-boolean-toggle-pick-func) - (function "Reset Actors" #f (lambda () (reset-actors 'debug) (none))) - (function "Traffic Start" #f (lambda () - (let ((gp-0 traffic-start)) + (function "Reset Actors" #f ,(lambda () (reset-actors 'debug) (none))) + (function "Traffic Start" #f ,(lambda () + (let ((gp-0 traffic-start)) + (if (valid? gp-0 function (the-as symbol "") #t 0) + (gp-0) + ) + ) + (none) + ) + ) + (function "Traffic Kill" #f ,(lambda () + (let ((gp-0 traffic-kill)) (if (valid? gp-0 function (the-as symbol "") #t 0) (gp-0) ) @@ -3684,28 +3735,19 @@ (none) ) ) - (function "Traffic Kill" #f (lambda () - (let ((gp-0 traffic-kill)) - (if (valid? gp-0 function (the-as symbol "") #t 0) - (gp-0) - ) - ) - (none) - ) - ) (menu "Bot" (function "Bot Next" #f - (lambda () - (send-event (process-by-name "sig-atoll-1" *active-pool*) 'skip) - (send-event (process-by-name "hal-sewer-1" *active-pool*) 'skip) - (send-event (process-by-name "hal-escort-1" *active-pool*) 'skip) - (send-event (process-by-name "squid-2" *active-pool*) 'skip) - (send-event (process-by-name "metalkor-1" *active-pool*) 'skip) - (send-event (process-by-name "sig-under-1" *active-pool*) 'skip) - ) + ,(lambda () + (send-event (process-by-name "sig-atoll-1" *active-pool*) 'skip) + (send-event (process-by-name "hal-sewer-1" *active-pool*) 'skip) + (send-event (process-by-name "hal-escort-1" *active-pool*) 'skip) + (send-event (process-by-name "squid-2" *active-pool*) 'skip) + (send-event (process-by-name "metalkor-1" *active-pool*) 'skip) + (send-event (process-by-name "sig-under-1" *active-pool*) 'skip) + ) ) (menu "Bot Marks" @@ -3717,20 +3759,20 @@ (function "Record sig5-cent1-path0" #f - (lambda () - (set! *bot-record-path* 0) - (dm-play-task-with-continue (game-task under-sig) "cent1-path0-record-path") - (none) - ) + ,(lambda () + (set! *bot-record-path* 0) + (dm-play-task-with-continue (game-task under-sig) "cent1-path0-record-path") + (none) + ) ) (function "Record sig5-cent2-path0" #f - (lambda () - (set! *bot-record-path* 1) - (dm-play-task-with-continue (game-task under-sig) "cent2-path0-record-path") - (none) - ) + ,(lambda () + (set! *bot-record-path* 1) + (dm-play-task-with-continue (game-task under-sig) "cent2-path0-record-path") + (none) + ) ) ) (menu @@ -3781,154 +3823,154 @@ "Target" (menu "Mode" - (function "normal" #f (lambda () (send-event *target* 'end-mode))) - (function "racer" #f (lambda () + (function "normal" #f ,(lambda () (send-event *target* 'end-mode))) + (function "racer" #f ,(lambda () + (if (not *target*) + (start 'debug (get-current-continue-forced *game-info*)) + ) + (send-event *target* 'change-mode 'racer #f) + ) + ) + (function "flut" #f ,(lambda () (if (not *target*) - (start 'debug (get-current-continue-point *game-info*)) + (start 'debug (get-current-continue-forced *game-info*)) ) - (send-event *target* 'change-mode 'racer #f) + (send-event *target* 'change-mode 'flut #f) ) ) - (function "flut" #f (lambda () + (function "board" #f ,(lambda () + (if (not *target*) + (start 'debug (get-current-continue-forced *game-info*)) + ) + (logior! (-> *game-info* features) (game-feature board)) + (logior! (-> *game-info* debug-features) (game-feature board)) + (send-event *target* 'change-mode 'board #f) + ) + ) + (function "mech" #f ,(lambda () + (if (not *target*) + (start 'debug (get-current-continue-forced *game-info*)) + ) + (send-event *target* 'change-mode 'mech #f) + ) + ) + (function "gun" #f ,(lambda () (if (not *target*) - (start 'debug (get-current-continue-point *game-info*)) + (start 'debug (get-current-continue-forced *game-info*)) ) - (send-event *target* 'change-mode 'flut #f) + (logior! (-> *game-info* features) (game-feature unk-game-feature-06)) + (logior! (-> *game-info* debug-features) (game-feature unk-game-feature-06)) + (send-event *target* 'change-mode 'gun #f 0) ) ) - (function "board" #f (lambda () - (if (not *target*) - (start 'debug (get-current-continue-point *game-info*)) - ) - (logior! (-> *game-info* features) (game-feature board)) - (logior! (-> *game-info* debug-features) (game-feature board)) - (send-event *target* 'change-mode 'board #f) - ) - ) - (function "mech" #f (lambda () - (if (not *target*) - (start 'debug (get-current-continue-point *game-info*)) + (function "darkjak" #f ,(lambda () + (if (not *target*) + (start 'debug (get-current-continue-forced *game-info*)) + ) + (logior! (-> *game-info* features) (game-feature darkjak)) + (logior! (-> *game-info* debug-features) (game-feature darkjak)) + (send-event *target* 'change-mode 'darkjak #f 3) ) - (send-event *target* 'change-mode 'mech #f) - ) ) - (function "gun" #f (lambda () - (if (not *target*) - (start 'debug (get-current-continue-point *game-info*)) - ) - (logior! (-> *game-info* features) (game-feature unk-game-feature-06)) - (logior! (-> *game-info* debug-features) (game-feature unk-game-feature-06)) - (send-event *target* 'change-mode 'gun #f 0) - ) - ) - (function "darkjak" #f (lambda () - (if (not *target*) - (start 'debug (get-current-continue-point *game-info*)) - ) - (logior! (-> *game-info* features) (game-feature darkjak)) - (logior! (-> *game-info* debug-features) (game-feature darkjak)) - (send-event *target* 'change-mode 'darkjak #f 3) - ) - ) - (function "indax" #f (lambda () - (if (not *target*) - (start 'debug (get-current-continue-point *game-info*)) - ) - (send-event *target* 'change-mode 'indax #f) - ) + (function "indax" #f ,(lambda () + (if (not *target*) + (start 'debug (get-current-continue-forced *game-info*)) + ) + (send-event *target* 'change-mode 'indax #f) + ) ) ) (menu "Pilot Mode" - (function "bikea" #f (lambda () (dm-pilot-mode 0) (none))) - (function "bikeb" #f (lambda () (dm-pilot-mode 1) (none))) - (function "bikec" #f (lambda () (dm-pilot-mode 2) (none))) - (function "crimson-bike" #f (lambda () (dm-pilot-mode 6) (none))) - (function "cara" #f (lambda () (dm-pilot-mode 3) (none))) - (function "carb" #f (lambda () (dm-pilot-mode 4) (none))) - (function "carc" #f (lambda () (dm-pilot-mode 5) (none))) - (function "hellcat" #f (lambda () (dm-pilot-mode 7) (none))) - (function "race-bike-a" #f (lambda () (dm-pilot-race-mode 0) (none))) - (function "race-bike-b" #f (lambda () (dm-pilot-race-mode 1) (none))) - (function "race-bike-c" #f (lambda () (dm-pilot-race-mode 2) (none))) - (function "evantestbike" #f (lambda () (dm-pilot-mode 8) (none))) - (function "test-bike" #f (lambda () (dm-pilot-mode 9) (none))) - (function "test-car" #f (lambda () (dm-pilot-mode 10) (none))) + (function "bikea" #f ,(lambda () (dm-pilot-mode 0) (none))) + (function "bikeb" #f ,(lambda () (dm-pilot-mode 1) (none))) + (function "bikec" #f ,(lambda () (dm-pilot-mode 2) (none))) + (function "crimson-bike" #f ,(lambda () (dm-pilot-mode 6) (none))) + (function "cara" #f ,(lambda () (dm-pilot-mode 3) (none))) + (function "carb" #f ,(lambda () (dm-pilot-mode 4) (none))) + (function "carc" #f ,(lambda () (dm-pilot-mode 5) (none))) + (function "hellcat" #f ,(lambda () (dm-pilot-mode 7) (none))) + (function "race-bike-a" #f ,(lambda () (dm-pilot-race-mode 0) (none))) + (function "race-bike-b" #f ,(lambda () (dm-pilot-race-mode 1) (none))) + (function "race-bike-c" #f ,(lambda () (dm-pilot-race-mode 2) (none))) + (function "evantestbike" #f ,(lambda () (dm-pilot-mode 8) (none))) + (function "test-bike" #f ,(lambda () (dm-pilot-mode 9) (none))) + (function "test-car" #f ,(lambda () (dm-pilot-mode 10) (none))) ) - (flag "Target" #f (lambda ((arg0 object) (arg1 debug-menu-msg)) - (when (= arg1 (debug-menu-msg press)) - (if *target* - (stop 'debug) - (start 'debug (get-current-continue-point *game-info*)) - ) - ) - *target* - ) + (flag "Target" #f ,(lambda ((arg0 object) (arg1 debug-menu-msg)) + (when (= arg1 (debug-menu-msg press)) + (if *target* + (stop 'debug) + (start 'debug (get-current-continue-forced *game-info*)) + ) + ) + *target* + ) ) (menu "Darkjak" (function "get all" #f - (lambda ((arg0 object) (arg1 debug-menu-msg)) - (set! (-> *game-info* features) - (logior (game-feature darkjak darkjak-bomb0 darkjak-bomb1 darkjak-invinc darkjak-giant) - (-> *game-info* features) - ) - ) - (set! (-> *game-info* debug-features) - (logior (game-feature darkjak darkjak-bomb0 darkjak-bomb1 darkjak-invinc darkjak-giant) - (-> *game-info* debug-features) - ) - ) - (send-event *target* 'get-pickup 7 #x42c80000) - ) + ,(lambda ((arg0 object) (arg1 debug-menu-msg)) + (set! (-> *game-info* features) + (logior (game-feature darkjak darkjak-bomb0 darkjak-bomb1 darkjak-invinc darkjak-giant) + (-> *game-info* features) + ) + ) + (set! (-> *game-info* debug-features) + (logior (game-feature darkjak darkjak-bomb0 darkjak-bomb1 darkjak-invinc darkjak-giant) + (-> *game-info* debug-features) + ) + ) + (send-event *target* 'get-pickup 7 #x42c80000) + ) ) - (function "manual" #f (lambda ((arg0 object) (arg1 debug-menu-msg)) + (function "manual" #f ,(lambda ((arg0 object) (arg1 debug-menu-msg)) + (if (not *target*) + (start 'debug (get-current-continue-forced *game-info*)) + ) + (logior! (-> *game-info* features) (game-feature darkjak)) + (logior! (-> *game-info* debug-features) (game-feature darkjak)) + (send-event *target* 'change-mode 'darkjak #f 3) + ) + ) + (function "rapid" #f ,(lambda ((arg0 object) (arg1 debug-menu-msg)) (if (not *target*) - (start 'debug (get-current-continue-point *game-info*)) + (start 'debug (get-current-continue-forced *game-info*)) ) (logior! (-> *game-info* features) (game-feature darkjak)) (logior! (-> *game-info* debug-features) (game-feature darkjak)) - (send-event *target* 'change-mode 'darkjak #f 3) + (send-event *target* 'change-mode 'darkjak #f 2) ) ) - (function "rapid" #f (lambda ((arg0 object) (arg1 debug-menu-msg)) - (if (not *target*) - (start 'debug (get-current-continue-point *game-info*)) - ) - (logior! (-> *game-info* features) (game-feature darkjak)) - (logior! (-> *game-info* debug-features) (game-feature darkjak)) - (send-event *target* 'change-mode 'darkjak #f 2) - ) - ) - (function "bomb0" #f (lambda ((arg0 object) (arg1 debug-menu-msg)) - (if (not *target*) - (start 'debug (get-current-continue-point *game-info*)) - ) - (send-event *target* 'change-mode 'darkjak #f 7) - ) - ) - (function "bomb1" #f (lambda ((arg0 object) (arg1 debug-menu-msg)) - (if (not *target*) - (start 'debug (get-current-continue-point *game-info*)) - ) - (send-event *target* 'change-mode 'darkjak #f 15) - ) - ) - (function "invinc" #f (lambda ((arg0 object) (arg1 debug-menu-msg)) + (function "bomb0" #f ,(lambda ((arg0 object) (arg1 debug-menu-msg)) (if (not *target*) - (start 'debug (get-current-continue-point *game-info*)) + (start 'debug (get-current-continue-forced *game-info*)) ) - (send-event *target* 'change-mode 'darkjak #f 31) + (send-event *target* 'change-mode 'darkjak #f 7) ) ) - (function "giant" #f (lambda ((arg0 object) (arg1 debug-menu-msg)) - (if (not *target*) - (start 'debug (get-current-continue-point *game-info*)) - ) - (send-event *target* 'change-mode 'darkjak #f 63) - ) + (function "bomb1" #f ,(lambda ((arg0 object) (arg1 debug-menu-msg)) + (if (not *target*) + (start 'debug (get-current-continue-forced *game-info*)) + ) + (send-event *target* 'change-mode 'darkjak #f 15) + ) + ) + (function "invinc" #f ,(lambda ((arg0 object) (arg1 debug-menu-msg)) + (if (not *target*) + (start 'debug (get-current-continue-forced *game-info*)) + ) + (send-event *target* 'change-mode 'darkjak #f 31) + ) + ) + (function "giant" #f ,(lambda ((arg0 object) (arg1 debug-menu-msg)) + (if (not *target*) + (start 'debug (get-current-continue-forced *game-info*)) + ) + (send-event *target* 'change-mode 'darkjak #f 63) + ) ) ) (menu @@ -3945,67 +3987,76 @@ (flag "Gun Marks" *gun-marks* dm-boolean-toggle-pick-func) (flag "Target Stats" *stats-target* dm-boolean-toggle-pick-func) (flag "Sidekick Stats" *display-sidekick-stats* dm-boolean-toggle-pick-func) - (flag "Invulnerable" #f (lambda ((arg0 object) (arg1 debug-menu-msg)) - (when (= arg1 (debug-menu-msg press)) - (if *target* - (logxor! (-> *target* state-flags) (state-flags sf2)) - ) - ) - (and *target* (logtest? (-> *target* state-flags) (state-flags sf2))) - ) + (flag "Invulnerable" #f ,(lambda ((arg0 object) (arg1 debug-menu-msg)) + (when (= arg1 (debug-menu-msg press)) + (if *target* + (logxor! (-> *target* state-flags) (state-flags sf2)) + ) + ) + (and *target* (logtest? (-> *target* state-flags) (state-flags sf2))) + ) ) (flag "Endless Ammo" #f - (lambda ((arg0 object) (arg1 debug-menu-msg)) - (when (= arg1 (debug-menu-msg press)) - (if *target* - (set! (-> *target* state-flags) (the-as state-flags (logxor #x10000 (the-as int (-> *target* state-flags))))) - ) - ) - (and *target* (logtest? (state-flags sf16) (-> *target* state-flags))) - ) + ,(lambda ((arg0 object) (arg1 debug-menu-msg)) + (when (= arg1 (debug-menu-msg press)) + (if *target* + (set! (-> *target* state-flags) (the-as state-flags (logxor #x10000 (the-as int (-> *target* state-flags))))) + ) + ) + (and *target* (logtest? (state-flags sf16) (-> *target* state-flags))) + ) ) (function "Full Stuff" #f - (lambda () - (send-event *target* 'get-pickup 18 #x447a0000) - (send-event *target* 'get-pickup 17 #x447a0000) - (send-event *target* 'get-pickup 13 #x447a0000) - (send-event *target* 'get-pickup 14 #x447a0000) - (send-event *target* 'get-pickup 15 #x447a0000) - (send-event *target* 'get-pickup 16 #x447a0000) - (send-event *target* 'get-pickup 7 #x42c80000) - (logior! - (-> *game-info* features) - (game-feature unk-game-feature-06 gun-yellow gun-red gun-blue gun-dark board darkjak) - ) - (let ((v0-7 - (logior (-> *game-info* debug-features) - (game-feature unk-game-feature-06 gun-yellow gun-red gun-blue gun-dark board darkjak) - ) - ) - ) - (set! (-> *game-info* debug-features) v0-7) - v0-7 - ) - ) + ,(lambda () + (send-event *target* 'get-pickup 18 #x447a0000) + (send-event *target* 'get-pickup 17 #x447a0000) + (send-event *target* 'get-pickup 13 #x447a0000) + (send-event *target* 'get-pickup 14 #x447a0000) + (send-event *target* 'get-pickup 15 #x447a0000) + (send-event *target* 'get-pickup 16 #x447a0000) + (send-event *target* 'get-pickup 7 #x42c80000) + (logior! + (-> *game-info* features) + (game-feature unk-game-feature-06 gun-yellow gun-red gun-blue gun-dark board darkjak) + ) + (let ((v0-7 + (logior (-> *game-info* debug-features) + (game-feature unk-game-feature-06 gun-yellow gun-red gun-blue gun-dark board darkjak) + ) + ) + ) + (set! (-> *game-info* debug-features) v0-7) + v0-7 + ) + ) ) (function "Dump Stuff" #f - (lambda () - (send-event *target* 'get-pickup 17 -998637568) - (send-event *target* 'get-pickup 13 -998637568) - (send-event *target* 'get-pickup 14 -998637568) - (send-event *target* 'get-pickup 15 -998637568) - (send-event *target* 'get-pickup 16 -998637568) - ) + ,(lambda () + (send-event *target* 'get-pickup 17 -998637568) + (send-event *target* 'get-pickup 13 -998637568) + (send-event *target* 'get-pickup 14 -998637568) + (send-event *target* 'get-pickup 15 -998637568) + (send-event *target* 'get-pickup 16 -998637568) + ) ) - (function "Trick Mode" #f (lambda () (send-event *target* 'get-pickup 20 #x468ca000))) - (function "Reset Trans" #f (lambda () (when *target* - (position-in-front-of-camera! (target-pos 0) 40960.0 4096.0) + (function "Trick Mode" #f ,(lambda () (send-event *target* 'get-pickup 20 #x468ca000))) + (function "Reset Trans" #f ,(lambda () (when *target* + (position-in-front-of-camera! (target-pos 0) 40960.0 4096.0) + (set! (-> *target* control transv quad) (the-as uint128 0)) + (quaternion-identity! (-> *target* control quat)) + (quaternion-identity! (-> *target* control unknown-quaternion00)) + (quaternion-identity! (-> *target* control dir-targ)) + ) + ) + ) + (function "Zero Trans" #f ,(lambda () (when *target* + (set-vector! (-> *target* control trans) 0.0 163840.0 0.0 1.0) (set! (-> *target* control transv quad) (the-as uint128 0)) (quaternion-identity! (-> *target* control quat)) (quaternion-identity! (-> *target* control unknown-quaternion00)) @@ -4013,28 +4064,19 @@ ) ) ) - (function "Zero Trans" #f (lambda () (when *target* - (set-vector! (-> *target* control trans) 0.0 163840.0 0.0 1.0) - (set! (-> *target* control transv quad) (the-as uint128 0)) - (quaternion-identity! (-> *target* control quat)) - (quaternion-identity! (-> *target* control unknown-quaternion00)) - (quaternion-identity! (-> *target* control dir-targ)) - ) - ) - ) (flag "Slow Frame Rate" *slow-frame-rate* dm-boolean-toggle-pick-func) - (function "Print Pos" #f (lambda () - (let ((v1-0 (target-pos 0))) - (format #t "~6,,2m ~6,,2m ~6,,2m~%" (-> v1-0 x) (-> v1-0 y) (-> v1-0 z)) - ) - 0 - ) + (function "Print Pos" #f ,(lambda () + (let ((v1-0 (target-pos 0))) + (format #t "~6,,2m ~6,,2m ~6,,2m~%" (-> v1-0 x) (-> v1-0 y) (-> v1-0 z)) + ) + 0 + ) ) - (function "Save Continue" #f (lambda () (the-as symbol (if *target* - (trsq->continue-point (-> *target* control)) - ) - ) - ) + (function "Save Continue" #f ,(lambda () (the-as symbol (if *target* + (trsq->continue-point (-> *target* control)) + ) + ) + ) ) (flag "RC Board Controls" *target-rc-board-controls* dm-boolean-toggle-pick-func) ) @@ -4076,9 +4118,9 @@ (function "Record Selected Path" #f - (lambda () (set! *race-record-path* #t) (dm-play-race *select-race* #t) (none)) + ,(lambda () (set! *race-record-path* #t) (dm-play-race *select-race* #t) (none)) ) - (function "Play Race" #f (lambda () (set! *race-record-path* #f) (dm-play-race *select-race* #f) (none))) + (function "Play Race" #f ,(lambda () (set! *race-record-path* #f) (dm-play-race *select-race* #f) (none))) ) ) ) @@ -4088,103 +4130,103 @@ arg0 '(menu "Nav Graph" - (function "Start Editor" #f (lambda () - (if (not (get-nav-graph-editor)) - (run-nav-graph-editor 'test) + (function "Start Editor" #f ,(lambda () + (if (not (get-nav-graph-editor)) + (run-nav-graph-editor 'test) + ) + (none) + ) + ) + (function "Exit Editor" #f ,(lambda () + (if (get-nav-graph-editor) + (exit-nav-graph-editor) ) (none) ) ) - (function "Exit Editor" #f (lambda () - (if (get-nav-graph-editor) - (exit-nav-graph-editor) - ) - (none) - ) + (function "Toggle Plane Mode" #f ,(lambda () + (let ((a0-0 (get-nav-graph-editor))) + (if a0-0 + ((method-of-object a0-0 nav-graph-editor-method-60)) + ) + ) + (none) + ) ) - (function "Toggle Plane Mode" #f (lambda () - (let ((a0-0 (get-nav-graph-editor))) - (if a0-0 - ((method-of-object a0-0 nav-graph-editor-method-60)) - ) - ) - (none) - ) - ) - (function "Toggle Hover Mode" #f (lambda () - (let ((a0-0 (get-nav-graph-editor))) - (if a0-0 - ((method-of-object a0-0 nav-graph-editor-method-61)) - ) - ) - (none) - ) + (function "Toggle Hover Mode" #f ,(lambda () + (let ((a0-0 (get-nav-graph-editor))) + (if a0-0 + ((method-of-object a0-0 nav-graph-editor-method-61)) + ) + ) + (none) + ) ) (menu "Load" - (function "Hover Drillmid" #f (lambda () - (let ((a0-0 (get-nav-graph-editor))) - (if a0-0 - (nav-graph-editor-method-62 a0-0 'hover 'drillmid) - ) - ) - (none) - ) + (function "Hover Drillmid" #f ,(lambda () + (let ((a0-0 (get-nav-graph-editor))) + (if a0-0 + (nav-graph-editor-method-62 a0-0 'hover 'drillmid) + ) + ) + (none) + ) ) - (function "Hover Forresca" #f (lambda () - (let ((a0-0 (get-nav-graph-editor))) - (if a0-0 - (nav-graph-editor-method-62 a0-0 'hover 'forresca) - ) - ) - (none) - ) + (function "Hover Forresca" #f ,(lambda () + (let ((a0-0 (get-nav-graph-editor))) + (if a0-0 + (nav-graph-editor-method-62 a0-0 'hover 'forresca) + ) + ) + (none) + ) ) - (function "Hover Forest" #f (lambda () + (function "Hover Forest" #f ,(lambda () + (let ((a0-0 (get-nav-graph-editor))) + (if a0-0 + (nav-graph-editor-method-62 a0-0 'hover 'forest) + ) + ) + (none) + ) + ) + (function "Hover Under" #f ,(lambda () (let ((a0-0 (get-nav-graph-editor))) (if a0-0 - (nav-graph-editor-method-62 a0-0 'hover 'forest) + (nav-graph-editor-method-62 a0-0 'hover 'under) ) ) (none) ) ) - (function "Hover Under" #f (lambda () - (let ((a0-0 (get-nav-graph-editor))) - (if a0-0 - (nav-graph-editor-method-62 a0-0 'hover 'under) - ) - ) - (none) - ) + (function "Traffic" #f ,(lambda () + (let ((a0-0 (get-nav-graph-editor))) + (if a0-0 + (nav-graph-editor-method-62 a0-0 'traffic #f) + ) + ) + (none) + ) ) - (function "Traffic" #f (lambda () - (let ((a0-0 (get-nav-graph-editor))) - (if a0-0 - (nav-graph-editor-method-62 a0-0 'traffic #f) - ) - ) - (none) - ) - ) - (function "Minimap" #f (lambda () - (let ((a0-0 (get-nav-graph-editor))) - (if a0-0 - (nav-graph-editor-method-62 a0-0 'minimap #f) - ) - ) - (none) - ) + (function "Minimap" #f ,(lambda () + (let ((a0-0 (get-nav-graph-editor))) + (if a0-0 + (nav-graph-editor-method-62 a0-0 'minimap #f) + ) + ) + (none) + ) ) ) - (function "Save" #f (lambda () - (let ((a0-0 (get-nav-graph-editor))) - (if a0-0 - ((method-of-object a0-0 nav-graph-editor-method-63)) - ) - ) - (none) - ) + (function "Save" #f ,(lambda () + (let ((a0-0 (get-nav-graph-editor))) + (if a0-0 + ((method-of-object a0-0 nav-graph-editor-method-63)) + ) + ) + (none) + ) ) ) ) @@ -4195,66 +4237,66 @@ arg0 '(menu "Map" - (flag "Record Mode" #f (lambda ((arg0 object) (arg1 debug-menu-msg)) - (if (= arg1 (debug-menu-msg press)) - (set! (-> *bigmap* recording-flag) (not (-> *bigmap* recording-flag))) - ) - (-> *bigmap* recording-flag) - ) + (flag "Record Mode" #f ,(lambda ((arg0 object) (arg1 debug-menu-msg)) + (if (= arg1 (debug-menu-msg press)) + (set! (-> *bigmap* recording-flag) (not (-> *bigmap* recording-flag))) + ) + (-> *bigmap* recording-flag) + ) ) (function "Clear map" #f - (lambda () - (let ((v1-1 - (process-spawn-function - process - (lambda () (with-pp - (set-master-mode 'game) - (let ((gp-0 (-> pp clock frame-counter))) - (until (>= (- (-> pp clock frame-counter) gp-0) (seconds 0.3)) - (suspend) - ) - ) - (until #f - (format *stdcon* "press x clear map, press circle cancel~%") - (cond - ((cpad-pressed? 0 x) - (initialize *bigmap*) - (return #f) + ,(lambda () + (let ((v1-1 + (process-spawn-function + process + (lambda () (with-pp + (set-master-mode 'game) + (let ((gp-0 (-> pp clock frame-counter))) + (until (>= (- (-> pp clock frame-counter) gp-0) (seconds 0.3)) + (suspend) ) - ((cpad-pressed? 0 circle) - (return #f) + ) + (until #f + (format *stdcon* "press x clear map, press circle cancel~%") + (cond + ((cpad-pressed? 0 x) + (initialize *bigmap*) + (return #f) + ) + ((cpad-pressed? 0 circle) + (return #f) + ) ) - ) - (suspend) - ) - #f - ) - ) - ) - ) - ) - (when v1-1 - (let ((v0-3 (logclear (-> v1-1 0 mask) (process-mask menu)))) - (set! (-> v1-1 0 mask) v0-3) - v0-3 - ) - ) - ) - ) + (suspend) + ) + #f + ) + ) + ) + ) + ) + (when v1-1 + (let ((v0-3 (logclear (-> v1-1 0 mask) (process-mask menu)))) + (set! (-> v1-1 0 mask) v0-3) + v0-3 + ) + ) + ) + ) ) - (flag "Fill in" #f (lambda ((arg0 object) (arg1 debug-menu-msg)) - (if (= arg1 (debug-menu-msg press)) - (set! (-> *bigmap* fill-flag) (not (-> *bigmap* fill-flag))) - ) - (-> *bigmap* fill-flag) - ) + (flag "Fill in" #f ,(lambda ((arg0 object) (arg1 debug-menu-msg)) + (if (= arg1 (debug-menu-msg press)) + (set! (-> *bigmap* fill-flag) (not (-> *bigmap* fill-flag))) + ) + (-> *bigmap* fill-flag) + ) ) (function "Save" #f - (lambda ((arg0 object) (arg1 debug-menu-msg)) ((method-of-object *bigmap* bigmap-method-16)) (none)) + ,(lambda ((arg0 object) (arg1 debug-menu-msg)) ((method-of-object *bigmap* bigmap-method-16)) (none)) ) ) ) @@ -4319,53 +4361,53 @@ (flag "Overide Enable" #f - (lambda ((arg0 object) (arg1 debug-menu-msg)) - (if (= arg1 (debug-menu-msg press)) - (set! (-> *time-of-day-context* overide-enable) (not (-> *time-of-day-context* overide-enable))) - ) - (-> *time-of-day-context* overide-enable) - ) + ,(lambda ((arg0 object) (arg1 debug-menu-msg)) + (if (= arg1 (debug-menu-msg press)) + (set! (-> *time-of-day-context* overide-enable) (not (-> *time-of-day-context* overide-enable))) + ) + (-> *time-of-day-context* overide-enable) + ) ) (menu "Weather" (flag "Overide Weather Enable" #f - (lambda ((arg0 object) (arg1 debug-menu-msg)) - (if (= arg1 (debug-menu-msg press)) - (set! (-> *mood-control* overide-weather-flag) (not (-> *mood-control* overide-weather-flag))) - ) - (-> *mood-control* overide-weather-flag) - ) + ,(lambda ((arg0 object) (arg1 debug-menu-msg)) + (if (= arg1 (debug-menu-msg press)) + (set! (-> *mood-control* overide-weather-flag) (not (-> *mood-control* overide-weather-flag))) + ) + (-> *mood-control* overide-weather-flag) + ) ) (flag "Display Values" #f - (lambda ((arg0 object) (arg1 debug-menu-msg)) - (if (= arg1 (debug-menu-msg press)) - (set! (-> *mood-control* display-flag) (not (-> *mood-control* display-flag))) - ) - (-> *mood-control* display-flag) - ) + ,(lambda ((arg0 object) (arg1 debug-menu-msg)) + (if (= arg1 (debug-menu-msg press)) + (set! (-> *mood-control* display-flag) (not (-> *mood-control* display-flag))) + ) + (-> *mood-control* display-flag) + ) ) (float-var "Clouds" #f - (lambda ((arg0 object) (arg1 debug-menu-msg) (arg2 float)) - (cond - ((= arg1 (debug-menu-msg press)) - (if (and *mood-control* (nonzero? *mood-control*)) - (set! (-> *mood-control* overide cloud) arg2) - ) - ) - ((or (not *mood-control*) (zero? *mood-control*)) - 0.0 - ) - (else - (-> *mood-control* overide cloud) + ,(lambda ((arg0 object) (arg1 debug-menu-msg) (arg2 float)) + (cond + ((= arg1 (debug-menu-msg press)) + (if (and *mood-control* (nonzero? *mood-control*)) + (set! (-> *mood-control* overide cloud) arg2) + ) ) - ) - ) + ((or (not *mood-control*) (zero? *mood-control*)) + 0.0 + ) + (else + (-> *mood-control* overide cloud) + ) + ) + ) 1 (new 'static 'bfloat :data 0.00390625) #t @@ -4376,21 +4418,21 @@ (float-var "Fog" #f - (lambda ((arg0 object) (arg1 debug-menu-msg) (arg2 float)) - (cond - ((= arg1 (debug-menu-msg press)) - (if (and *mood-control* (nonzero? *mood-control*)) - (set! (-> *mood-control* overide fog) arg2) - ) - ) - ((or (not *mood-control*) (zero? *mood-control*)) - 0.0 - ) - (else - (-> *mood-control* overide fog) + ,(lambda ((arg0 object) (arg1 debug-menu-msg) (arg2 float)) + (cond + ((= arg1 (debug-menu-msg press)) + (if (and *mood-control* (nonzero? *mood-control*)) + (set! (-> *mood-control* overide fog) arg2) + ) ) - ) - ) + ((or (not *mood-control*) (zero? *mood-control*)) + 0.0 + ) + (else + (-> *mood-control* overide fog) + ) + ) + ) 1 (new 'static 'bfloat :data 0.00390625) #t @@ -4413,33 +4455,33 @@ (float-var "Ambient Red" #f - (lambda ((arg0 object) (arg1 debug-menu-msg) (arg2 float)) - (cond - ((= arg1 (debug-menu-msg press)) - (if (and *overide-mood-color-table* (nonzero? *overide-mood-color-table*)) - (set! (-> *overide-mood-color-table* - data - (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2)) - amb-color - x - ) - arg2 - ) - ) - ) - ((or (not *overide-mood-color-table*) (zero? *overide-mood-color-table*)) - 0.0 - ) - (else - (-> *overide-mood-color-table* - data - (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2)) - amb-color - x + ,(lambda ((arg0 object) (arg1 debug-menu-msg) (arg2 float)) + (cond + ((= arg1 (debug-menu-msg press)) + (if (and *overide-mood-color-table* (nonzero? *overide-mood-color-table*)) + (set! (-> *overide-mood-color-table* + data + (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2)) + amb-color + x + ) + arg2 + ) ) ) - ) - ) + ((or (not *overide-mood-color-table*) (zero? *overide-mood-color-table*)) + 0.0 + ) + (else + (-> *overide-mood-color-table* + data + (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2)) + amb-color + x + ) + ) + ) + ) 2 (new 'static 'bfloat :data 0.00390625) #t @@ -4450,33 +4492,33 @@ (float-var "Ambient Green" #f - (lambda ((arg0 object) (arg1 debug-menu-msg) (arg2 float)) - (cond - ((= arg1 (debug-menu-msg press)) - (if (and *overide-mood-color-table* (nonzero? *overide-mood-color-table*)) - (set! (-> *overide-mood-color-table* - data - (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2)) - amb-color - y - ) - arg2 - ) - ) - ) - ((or (not *overide-mood-color-table*) (zero? *overide-mood-color-table*)) - 0.0 - ) - (else - (-> *overide-mood-color-table* - data - (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2)) - amb-color - y + ,(lambda ((arg0 object) (arg1 debug-menu-msg) (arg2 float)) + (cond + ((= arg1 (debug-menu-msg press)) + (if (and *overide-mood-color-table* (nonzero? *overide-mood-color-table*)) + (set! (-> *overide-mood-color-table* + data + (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2)) + amb-color + y + ) + arg2 + ) ) ) - ) - ) + ((or (not *overide-mood-color-table*) (zero? *overide-mood-color-table*)) + 0.0 + ) + (else + (-> *overide-mood-color-table* + data + (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2)) + amb-color + y + ) + ) + ) + ) 2 (new 'static 'bfloat :data 0.00390625) #t @@ -4487,33 +4529,33 @@ (float-var "Ambient Blue" #f - (lambda ((arg0 object) (arg1 debug-menu-msg) (arg2 float)) - (cond - ((= arg1 (debug-menu-msg press)) - (if (and *overide-mood-color-table* (nonzero? *overide-mood-color-table*)) - (set! (-> *overide-mood-color-table* - data - (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2)) - amb-color - z - ) - arg2 - ) - ) - ) - ((or (not *overide-mood-color-table*) (zero? *overide-mood-color-table*)) - 0.0 - ) - (else - (-> *overide-mood-color-table* - data - (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2)) - amb-color - z + ,(lambda ((arg0 object) (arg1 debug-menu-msg) (arg2 float)) + (cond + ((= arg1 (debug-menu-msg press)) + (if (and *overide-mood-color-table* (nonzero? *overide-mood-color-table*)) + (set! (-> *overide-mood-color-table* + data + (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2)) + amb-color + z + ) + arg2 + ) ) ) - ) - ) + ((or (not *overide-mood-color-table*) (zero? *overide-mood-color-table*)) + 0.0 + ) + (else + (-> *overide-mood-color-table* + data + (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2)) + amb-color + z + ) + ) + ) + ) 2 (new 'static 'bfloat :data 0.00390625) #t @@ -4524,33 +4566,33 @@ (float-var "Ambient Mult" #f - (lambda ((arg0 object) (arg1 debug-menu-msg) (arg2 float)) - (cond - ((= arg1 (debug-menu-msg press)) - (if (and *overide-mood-color-table* (nonzero? *overide-mood-color-table*)) - (set! (-> *overide-mood-color-table* - data - (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2)) - amb-color - w - ) - arg2 - ) - ) - ) - ((or (not *overide-mood-color-table*) (zero? *overide-mood-color-table*)) - 0.0 - ) - (else - (-> *overide-mood-color-table* - data - (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2)) - amb-color - w + ,(lambda ((arg0 object) (arg1 debug-menu-msg) (arg2 float)) + (cond + ((= arg1 (debug-menu-msg press)) + (if (and *overide-mood-color-table* (nonzero? *overide-mood-color-table*)) + (set! (-> *overide-mood-color-table* + data + (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2)) + amb-color + w + ) + arg2 + ) ) ) - ) - ) + ((or (not *overide-mood-color-table*) (zero? *overide-mood-color-table*)) + 0.0 + ) + (else + (-> *overide-mood-color-table* + data + (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2)) + amb-color + w + ) + ) + ) + ) 2 (new 'static 'bfloat :data 0.00390625) #t @@ -4561,33 +4603,33 @@ (float-var "Light Red" #f - (lambda ((arg0 object) (arg1 debug-menu-msg) (arg2 float)) - (cond - ((= arg1 (debug-menu-msg press)) - (if (and *overide-mood-color-table* (nonzero? *overide-mood-color-table*)) - (set! (-> *overide-mood-color-table* - data - (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2)) - lgt-color - x - ) - arg2 - ) - ) - ) - ((or (not *overide-mood-color-table*) (zero? *overide-mood-color-table*)) - 0.0 - ) - (else - (-> *overide-mood-color-table* - data - (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2)) - lgt-color - x + ,(lambda ((arg0 object) (arg1 debug-menu-msg) (arg2 float)) + (cond + ((= arg1 (debug-menu-msg press)) + (if (and *overide-mood-color-table* (nonzero? *overide-mood-color-table*)) + (set! (-> *overide-mood-color-table* + data + (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2)) + lgt-color + x + ) + arg2 + ) ) ) - ) - ) + ((or (not *overide-mood-color-table*) (zero? *overide-mood-color-table*)) + 0.0 + ) + (else + (-> *overide-mood-color-table* + data + (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2)) + lgt-color + x + ) + ) + ) + ) 2 (new 'static 'bfloat :data 0.00390625) #t @@ -4598,33 +4640,33 @@ (float-var "Light Green" #f - (lambda ((arg0 object) (arg1 debug-menu-msg) (arg2 float)) - (cond - ((= arg1 (debug-menu-msg press)) - (if (and *overide-mood-color-table* (nonzero? *overide-mood-color-table*)) - (set! (-> *overide-mood-color-table* - data - (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2)) - lgt-color - y - ) - arg2 - ) - ) - ) - ((or (not *overide-mood-color-table*) (zero? *overide-mood-color-table*)) - 0.0 - ) - (else - (-> *overide-mood-color-table* - data - (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2)) - lgt-color - y + ,(lambda ((arg0 object) (arg1 debug-menu-msg) (arg2 float)) + (cond + ((= arg1 (debug-menu-msg press)) + (if (and *overide-mood-color-table* (nonzero? *overide-mood-color-table*)) + (set! (-> *overide-mood-color-table* + data + (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2)) + lgt-color + y + ) + arg2 + ) ) ) - ) - ) + ((or (not *overide-mood-color-table*) (zero? *overide-mood-color-table*)) + 0.0 + ) + (else + (-> *overide-mood-color-table* + data + (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2)) + lgt-color + y + ) + ) + ) + ) 2 (new 'static 'bfloat :data 0.00390625) #t @@ -4635,33 +4677,33 @@ (float-var "Light Blue" #f - (lambda ((arg0 object) (arg1 debug-menu-msg) (arg2 float)) - (cond - ((= arg1 (debug-menu-msg press)) - (if (and *overide-mood-color-table* (nonzero? *overide-mood-color-table*)) - (set! (-> *overide-mood-color-table* - data - (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2)) - lgt-color - z - ) - arg2 - ) - ) - ) - ((or (not *overide-mood-color-table*) (zero? *overide-mood-color-table*)) - 0.0 - ) - (else - (-> *overide-mood-color-table* - data - (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2)) - lgt-color - z + ,(lambda ((arg0 object) (arg1 debug-menu-msg) (arg2 float)) + (cond + ((= arg1 (debug-menu-msg press)) + (if (and *overide-mood-color-table* (nonzero? *overide-mood-color-table*)) + (set! (-> *overide-mood-color-table* + data + (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2)) + lgt-color + z + ) + arg2 + ) ) ) - ) - ) + ((or (not *overide-mood-color-table*) (zero? *overide-mood-color-table*)) + 0.0 + ) + (else + (-> *overide-mood-color-table* + data + (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2)) + lgt-color + z + ) + ) + ) + ) 2 (new 'static 'bfloat :data 0.00390625) #t @@ -4672,33 +4714,33 @@ (float-var "Light Mult" #f - (lambda ((arg0 object) (arg1 debug-menu-msg) (arg2 float)) - (cond - ((= arg1 (debug-menu-msg press)) - (if (and *overide-mood-color-table* (nonzero? *overide-mood-color-table*)) - (set! (-> *overide-mood-color-table* - data - (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2)) - lgt-color - w - ) - arg2 - ) - ) - ) - ((or (not *overide-mood-color-table*) (zero? *overide-mood-color-table*)) - 0.0 - ) - (else - (-> *overide-mood-color-table* - data - (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2)) - lgt-color - w + ,(lambda ((arg0 object) (arg1 debug-menu-msg) (arg2 float)) + (cond + ((= arg1 (debug-menu-msg press)) + (if (and *overide-mood-color-table* (nonzero? *overide-mood-color-table*)) + (set! (-> *overide-mood-color-table* + data + (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2)) + lgt-color + w + ) + arg2 + ) ) ) - ) - ) + ((or (not *overide-mood-color-table*) (zero? *overide-mood-color-table*)) + 0.0 + ) + (else + (-> *overide-mood-color-table* + data + (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2)) + lgt-color + w + ) + ) + ) + ) 2 (new 'static 'bfloat :data 0.00390625) #t @@ -4709,58 +4751,58 @@ (function "reset selected time" #f - (lambda ((arg0 object) (arg1 debug-menu-msg) (arg2 float)) - (mem-copy! - (the-as - pointer - (-> *overide-mood-color-table* - data - (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2)) - ) - ) - (the-as - pointer - (-> *mood-control* - mood-color-table - data - (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2)) - ) - ) - 32 - ) - (set! (-> *overide-mood-color-table* - data - (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2)) - lgt-color - w - ) - 1.0 - ) - (set! (-> *overide-mood-color-table* - data - (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2)) - amb-color - w - ) - 1.0 - ) - ) + ,(lambda ((arg0 object) (arg1 debug-menu-msg) (arg2 float)) + (mem-copy! + (the-as + pointer + (-> *overide-mood-color-table* + data + (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2)) + ) + ) + (the-as + pointer + (-> *mood-control* + mood-color-table + data + (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2)) + ) + ) + 32 + ) + (set! (-> *overide-mood-color-table* + data + (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2)) + lgt-color + w + ) + 1.0 + ) + (set! (-> *overide-mood-color-table* + data + (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2)) + amb-color + w + ) + 1.0 + ) + ) ) (function "reset all times" #f - (lambda ((arg0 object) (arg1 debug-menu-msg) (arg2 float)) - (mem-copy! - (the-as pointer *overide-mood-color-table*) - (the-as pointer (-> *mood-control* mood-color-table)) - 256 - ) - (dotimes (v1-1 8) - (set! (-> *overide-mood-color-table* data v1-1 lgt-color w) 1.0) - (set! (-> *overide-mood-color-table* data v1-1 amb-color w) 1.0) - ) - (the-as float #f) - ) + ,(lambda ((arg0 object) (arg1 debug-menu-msg) (arg2 float)) + (mem-copy! + (the-as pointer *overide-mood-color-table*) + (the-as pointer (-> *mood-control* mood-color-table)) + 256 + ) + (dotimes (v1-1 8) + (set! (-> *overide-mood-color-table* data v1-1 lgt-color w) 1.0) + (set! (-> *overide-mood-color-table* data v1-1 amb-color w) 1.0) + ) + (the-as float #f) + ) ) ) (menu @@ -4777,33 +4819,33 @@ (float-var "Red" #f - (lambda ((arg0 object) (arg1 debug-menu-msg) (arg2 float)) - (cond - ((= arg1 (debug-menu-msg press)) - (if (and *overide-mood-fog-table* (nonzero? *overide-mood-fog-table*)) - (set! (-> *overide-mood-fog-table* - data - (the-as uint (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2))) - fog-color - x - ) - arg2 - ) - ) - ) - ((or (not *overide-mood-fog-table*) (zero? *overide-mood-fog-table*)) - 0.0 - ) - (else - (-> *overide-mood-fog-table* - data - (the-as uint (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2))) - fog-color - x + ,(lambda ((arg0 object) (arg1 debug-menu-msg) (arg2 float)) + (cond + ((= arg1 (debug-menu-msg press)) + (if (and *overide-mood-fog-table* (nonzero? *overide-mood-fog-table*)) + (set! (-> *overide-mood-fog-table* + data + (the-as uint (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2))) + fog-color + x + ) + arg2 + ) ) ) - ) - ) + ((or (not *overide-mood-fog-table*) (zero? *overide-mood-fog-table*)) + 0.0 + ) + (else + (-> *overide-mood-fog-table* + data + (the-as uint (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2))) + fog-color + x + ) + ) + ) + ) 2 (new 'static 'bfloat :data 1.0) #t @@ -4814,33 +4856,33 @@ (float-var "Green" #f - (lambda ((arg0 object) (arg1 debug-menu-msg) (arg2 float)) - (cond - ((= arg1 (debug-menu-msg press)) - (if (and *overide-mood-fog-table* (nonzero? *overide-mood-fog-table*)) - (set! (-> *overide-mood-fog-table* - data - (the-as uint (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2))) - fog-color - y - ) - arg2 - ) - ) - ) - ((or (not *overide-mood-fog-table*) (zero? *overide-mood-fog-table*)) - 0.0 - ) - (else - (-> *overide-mood-fog-table* - data - (the-as uint (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2))) - fog-color - y + ,(lambda ((arg0 object) (arg1 debug-menu-msg) (arg2 float)) + (cond + ((= arg1 (debug-menu-msg press)) + (if (and *overide-mood-fog-table* (nonzero? *overide-mood-fog-table*)) + (set! (-> *overide-mood-fog-table* + data + (the-as uint (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2))) + fog-color + y + ) + arg2 + ) ) ) - ) - ) + ((or (not *overide-mood-fog-table*) (zero? *overide-mood-fog-table*)) + 0.0 + ) + (else + (-> *overide-mood-fog-table* + data + (the-as uint (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2))) + fog-color + y + ) + ) + ) + ) 2 (new 'static 'bfloat :data 1.0) #t @@ -4851,33 +4893,33 @@ (float-var "Blue" #f - (lambda ((arg0 object) (arg1 debug-menu-msg) (arg2 float)) - (cond - ((= arg1 (debug-menu-msg press)) - (if (and *overide-mood-fog-table* (nonzero? *overide-mood-fog-table*)) - (set! (-> *overide-mood-fog-table* - data - (the-as uint (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2))) - fog-color - z - ) - arg2 - ) - ) - ) - ((or (not *overide-mood-fog-table*) (zero? *overide-mood-fog-table*)) - 0.0 - ) - (else - (-> *overide-mood-fog-table* - data - (the-as uint (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2))) - fog-color - z + ,(lambda ((arg0 object) (arg1 debug-menu-msg) (arg2 float)) + (cond + ((= arg1 (debug-menu-msg press)) + (if (and *overide-mood-fog-table* (nonzero? *overide-mood-fog-table*)) + (set! (-> *overide-mood-fog-table* + data + (the-as uint (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2))) + fog-color + z + ) + arg2 + ) ) ) - ) - ) + ((or (not *overide-mood-fog-table*) (zero? *overide-mood-fog-table*)) + 0.0 + ) + (else + (-> *overide-mood-fog-table* + data + (the-as uint (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2))) + fog-color + z + ) + ) + ) + ) 2 (new 'static 'bfloat :data 1.0) #t @@ -4888,33 +4930,33 @@ (float-var "Mult" #f - (lambda ((arg0 object) (arg1 debug-menu-msg) (arg2 float)) - (cond - ((= arg1 (debug-menu-msg press)) - (if (and *overide-mood-fog-table* (nonzero? *overide-mood-fog-table*)) - (set! (-> *overide-mood-fog-table* - data - (the-as uint (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2))) - fog-color - w - ) - arg2 - ) - ) - ) - ((or (not *overide-mood-fog-table*) (zero? *overide-mood-fog-table*)) - 0.0 - ) - (else - (-> *overide-mood-fog-table* - data - (the-as uint (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2))) - fog-color - w + ,(lambda ((arg0 object) (arg1 debug-menu-msg) (arg2 float)) + (cond + ((= arg1 (debug-menu-msg press)) + (if (and *overide-mood-fog-table* (nonzero? *overide-mood-fog-table*)) + (set! (-> *overide-mood-fog-table* + data + (the-as uint (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2))) + fog-color + w + ) + arg2 + ) ) ) - ) - ) + ((or (not *overide-mood-fog-table*) (zero? *overide-mood-fog-table*)) + 0.0 + ) + (else + (-> *overide-mood-fog-table* + data + (the-as uint (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2))) + fog-color + w + ) + ) + ) + ) 2 (new 'static 'bfloat :data 0.00390625) #t @@ -4925,33 +4967,33 @@ (float-var "Start" #f - (lambda ((arg0 object) (arg1 debug-menu-msg) (arg2 float)) - (cond - ((= arg1 (debug-menu-msg press)) - (if (and *overide-mood-fog-table* (nonzero? *overide-mood-fog-table*)) - (set! (-> *overide-mood-fog-table* - data - (the-as uint (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2))) - fog-dists - x - ) - arg2 - ) - ) - ) - ((or (not *overide-mood-fog-table*) (zero? *overide-mood-fog-table*)) - 0.0 - ) - (else - (-> *overide-mood-fog-table* - data - (the-as uint (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2))) - fog-dists - x + ,(lambda ((arg0 object) (arg1 debug-menu-msg) (arg2 float)) + (cond + ((= arg1 (debug-menu-msg press)) + (if (and *overide-mood-fog-table* (nonzero? *overide-mood-fog-table*)) + (set! (-> *overide-mood-fog-table* + data + (the-as uint (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2))) + fog-dists + x + ) + arg2 + ) ) ) - ) - ) + ((or (not *overide-mood-fog-table*) (zero? *overide-mood-fog-table*)) + 0.0 + ) + (else + (-> *overide-mood-fog-table* + data + (the-as uint (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2))) + fog-dists + x + ) + ) + ) + ) 2 (new 'static 'bfloat :data 1.0) #t @@ -4962,33 +5004,33 @@ (float-var "End" #f - (lambda ((arg0 object) (arg1 debug-menu-msg) (arg2 float)) - (cond - ((= arg1 (debug-menu-msg press)) - (if (and *overide-mood-fog-table* (nonzero? *overide-mood-fog-table*)) - (set! (-> *overide-mood-fog-table* - data - (the-as uint (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2))) - fog-dists - y - ) - arg2 - ) - ) - ) - ((or (not *overide-mood-fog-table*) (zero? *overide-mood-fog-table*)) - 0.0 - ) - (else - (-> *overide-mood-fog-table* - data - (the-as uint (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2))) - fog-dists - y + ,(lambda ((arg0 object) (arg1 debug-menu-msg) (arg2 float)) + (cond + ((= arg1 (debug-menu-msg press)) + (if (and *overide-mood-fog-table* (nonzero? *overide-mood-fog-table*)) + (set! (-> *overide-mood-fog-table* + data + (the-as uint (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2))) + fog-dists + y + ) + arg2 + ) ) ) - ) - ) + ((or (not *overide-mood-fog-table*) (zero? *overide-mood-fog-table*)) + 0.0 + ) + (else + (-> *overide-mood-fog-table* + data + (the-as uint (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2))) + fog-dists + y + ) + ) + ) + ) 2 (new 'static 'bfloat :data 1.0) #t @@ -4999,33 +5041,33 @@ (float-var "Max" #f - (lambda ((arg0 object) (arg1 debug-menu-msg) (arg2 float)) - (cond - ((= arg1 (debug-menu-msg press)) - (if (and *overide-mood-fog-table* (nonzero? *overide-mood-fog-table*)) - (set! (-> *overide-mood-fog-table* - data - (the-as uint (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2))) - fog-dists - w - ) - arg2 - ) - ) - ) - ((or (not *overide-mood-fog-table*) (zero? *overide-mood-fog-table*)) - 0.0 - ) - (else - (-> *overide-mood-fog-table* - data - (the-as uint (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2))) - fog-dists - w + ,(lambda ((arg0 object) (arg1 debug-menu-msg) (arg2 float)) + (cond + ((= arg1 (debug-menu-msg press)) + (if (and *overide-mood-fog-table* (nonzero? *overide-mood-fog-table*)) + (set! (-> *overide-mood-fog-table* + data + (the-as uint (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2))) + fog-dists + w + ) + arg2 + ) ) ) - ) - ) + ((or (not *overide-mood-fog-table*) (zero? *overide-mood-fog-table*)) + 0.0 + ) + (else + (-> *overide-mood-fog-table* + data + (the-as uint (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2))) + fog-dists + w + ) + ) + ) + ) 2 (new 'static 'bfloat :data 0.5) #t @@ -5036,33 +5078,33 @@ (float-var "Min" #f - (lambda ((arg0 object) (arg1 debug-menu-msg) (arg2 float)) - (cond - ((= arg1 (debug-menu-msg press)) - (if (and *overide-mood-fog-table* (nonzero? *overide-mood-fog-table*)) - (set! (-> *overide-mood-fog-table* - data - (the-as uint (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2))) - fog-dists - z - ) - arg2 - ) - ) - ) - ((or (not *overide-mood-fog-table*) (zero? *overide-mood-fog-table*)) - 0.0 - ) - (else - (-> *overide-mood-fog-table* - data - (the-as uint (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2))) - fog-dists - z + ,(lambda ((arg0 object) (arg1 debug-menu-msg) (arg2 float)) + (cond + ((= arg1 (debug-menu-msg press)) + (if (and *overide-mood-fog-table* (nonzero? *overide-mood-fog-table*)) + (set! (-> *overide-mood-fog-table* + data + (the-as uint (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2))) + fog-dists + z + ) + arg2 + ) ) ) - ) - ) + ((or (not *overide-mood-fog-table*) (zero? *overide-mood-fog-table*)) + 0.0 + ) + (else + (-> *overide-mood-fog-table* + data + (the-as uint (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2))) + fog-dists + z + ) + ) + ) + ) 2 (new 'static 'bfloat :data 0.5) #t @@ -5073,81 +5115,81 @@ (function "reset selected time" #f - (lambda ((arg0 object) (arg1 debug-menu-msg) (arg2 float)) - (mem-copy! - (the-as - pointer - (-> *overide-mood-fog-table* - data - (the-as uint (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2))) - ) - ) - (the-as - pointer - (-> *mood-control* - mood-fog-table - data - (the-as uint (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2))) - ) - ) - 48 - ) - (set! (-> *overide-mood-fog-table* - data - (the-as uint (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2))) - fog-color - w - ) - 1.0 - ) - (set! (-> *overide-mood-fog-table* - data - (the-as uint (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2))) - fog-dists - x - ) - (* 0.00024414062 - (-> *overide-mood-fog-table* - data - (the-as uint (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2))) - fog-dists - x - ) + ,(lambda ((arg0 object) (arg1 debug-menu-msg) (arg2 float)) + (mem-copy! + (the-as + pointer + (-> *overide-mood-fog-table* + data + (the-as uint (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2))) ) - ) - (set! (-> *overide-mood-fog-table* - data - (the-as uint (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2))) - fog-dists - y - ) - (* 0.00024414062 - (-> *overide-mood-fog-table* - data - (the-as uint (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2))) - fog-dists - y - ) + ) + (the-as + pointer + (-> *mood-control* + mood-fog-table + data + (the-as uint (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2))) ) - ) - ) + ) + 48 + ) + (set! (-> *overide-mood-fog-table* + data + (the-as uint (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2))) + fog-color + w + ) + 1.0 + ) + (set! (-> *overide-mood-fog-table* + data + (the-as uint (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2))) + fog-dists + x + ) + (* 0.00024414062 + (-> *overide-mood-fog-table* + data + (the-as uint (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2))) + fog-dists + x + ) + ) + ) + (set! (-> *overide-mood-fog-table* + data + (the-as uint (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2))) + fog-dists + y + ) + (* 0.00024414062 + (-> *overide-mood-fog-table* + data + (the-as uint (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2))) + fog-dists + y + ) + ) + ) + ) ) (function "reset all times" #f - (lambda () - (mem-copy! (the-as pointer *overide-mood-fog-table*) (the-as pointer (-> *mood-control* mood-fog-table)) 384) - (dotimes (v1-1 8) - (set! (-> *overide-mood-fog-table* data v1-1 fog-color w) 1.0) - (set! (-> *overide-mood-fog-table* data v1-1 fog-dists x) - (* 0.00024414062 (-> *overide-mood-fog-table* data v1-1 fog-dists x)) - ) - (set! (-> *overide-mood-fog-table* data v1-1 fog-dists y) - (* 0.00024414062 (-> *overide-mood-fog-table* data v1-1 fog-dists y)) - ) - ) - #f - ) + ,(lambda () + (mem-copy! (the-as pointer *overide-mood-fog-table*) (the-as pointer (-> *mood-control* mood-fog-table)) 384) + (dotimes (v1-1 8) + (set! (-> *overide-mood-fog-table* data v1-1 fog-color w) 1.0) + (set! (-> *overide-mood-fog-table* data v1-1 fog-dists x) + (* 0.00024414062 (-> *overide-mood-fog-table* data v1-1 fog-dists x)) + ) + (set! (-> *overide-mood-fog-table* data v1-1 fog-dists y) + (* 0.00024414062 (-> *overide-mood-fog-table* data v1-1 fog-dists y)) + ) + ) + #f + ) ) ) (menu @@ -5164,21 +5206,21 @@ (float-var "Red" #f - (lambda ((arg0 object) (arg1 debug-menu-msg) (arg2 float)) - (cond - ((= arg1 (debug-menu-msg press)) - (if (and *time-of-day-context* (nonzero? *time-of-day-context*)) - (set! (-> *time-of-day-context* times (-> *time-of-day-context* overide-palette) x) arg2) - ) - ) - ((or (not *time-of-day-context*) (zero? *time-of-day-context*)) - 0.0 - ) - (else - (-> *time-of-day-context* times (-> *time-of-day-context* overide-palette) x) + ,(lambda ((arg0 object) (arg1 debug-menu-msg) (arg2 float)) + (cond + ((= arg1 (debug-menu-msg press)) + (if (and *time-of-day-context* (nonzero? *time-of-day-context*)) + (set! (-> *time-of-day-context* times (-> *time-of-day-context* overide-palette) x) arg2) + ) ) - ) - ) + ((or (not *time-of-day-context*) (zero? *time-of-day-context*)) + 0.0 + ) + (else + (-> *time-of-day-context* times (-> *time-of-day-context* overide-palette) x) + ) + ) + ) 2 (new 'static 'bfloat :data 0.00390625) #t @@ -5189,21 +5231,21 @@ (float-var "Green" #f - (lambda ((arg0 object) (arg1 debug-menu-msg) (arg2 float)) - (cond - ((= arg1 (debug-menu-msg press)) - (if (and *time-of-day-context* (nonzero? *time-of-day-context*)) - (set! (-> *time-of-day-context* times (-> *time-of-day-context* overide-palette) y) arg2) - ) - ) - ((or (not *time-of-day-context*) (zero? *time-of-day-context*)) - 0.0 - ) - (else - (-> *time-of-day-context* times (-> *time-of-day-context* overide-palette) y) + ,(lambda ((arg0 object) (arg1 debug-menu-msg) (arg2 float)) + (cond + ((= arg1 (debug-menu-msg press)) + (if (and *time-of-day-context* (nonzero? *time-of-day-context*)) + (set! (-> *time-of-day-context* times (-> *time-of-day-context* overide-palette) y) arg2) + ) ) - ) - ) + ((or (not *time-of-day-context*) (zero? *time-of-day-context*)) + 0.0 + ) + (else + (-> *time-of-day-context* times (-> *time-of-day-context* overide-palette) y) + ) + ) + ) 2 (new 'static 'bfloat :data 0.00390625) #t @@ -5214,21 +5256,21 @@ (float-var "Blue" #f - (lambda ((arg0 object) (arg1 debug-menu-msg) (arg2 float)) - (cond - ((= arg1 (debug-menu-msg press)) - (if (and *time-of-day-context* (nonzero? *time-of-day-context*)) - (set! (-> *time-of-day-context* times (-> *time-of-day-context* overide-palette) z) arg2) - ) - ) - ((or (not *time-of-day-context*) (zero? *time-of-day-context*)) - 0.0 - ) - (else - (-> *time-of-day-context* times (-> *time-of-day-context* overide-palette) z) + ,(lambda ((arg0 object) (arg1 debug-menu-msg) (arg2 float)) + (cond + ((= arg1 (debug-menu-msg press)) + (if (and *time-of-day-context* (nonzero? *time-of-day-context*)) + (set! (-> *time-of-day-context* times (-> *time-of-day-context* overide-palette) z) arg2) + ) ) - ) - ) + ((or (not *time-of-day-context*) (zero? *time-of-day-context*)) + 0.0 + ) + (else + (-> *time-of-day-context* times (-> *time-of-day-context* overide-palette) z) + ) + ) + ) 2 (new 'static 'bfloat :data 0.00390625) #t @@ -5239,21 +5281,21 @@ (float-var "Mult" #f - (lambda ((arg0 object) (arg1 debug-menu-msg) (arg2 float)) - (cond - ((= arg1 (debug-menu-msg press)) - (if (and *time-of-day-context* (nonzero? *time-of-day-context*)) - (set! (-> *time-of-day-context* times (-> *time-of-day-context* overide-palette) w) arg2) - ) - ) - ((or (not *time-of-day-context*) (zero? *time-of-day-context*)) - 0.0 - ) - (else - (-> *time-of-day-context* times (-> *time-of-day-context* overide-palette) w) + ,(lambda ((arg0 object) (arg1 debug-menu-msg) (arg2 float)) + (cond + ((= arg1 (debug-menu-msg press)) + (if (and *time-of-day-context* (nonzero? *time-of-day-context*)) + (set! (-> *time-of-day-context* times (-> *time-of-day-context* overide-palette) w) arg2) + ) ) - ) - ) + ((or (not *time-of-day-context*) (zero? *time-of-day-context*)) + 0.0 + ) + (else + (-> *time-of-day-context* times (-> *time-of-day-context* overide-palette) w) + ) + ) + ) 2 (new 'static 'bfloat :data 0.00390625) #t @@ -5264,21 +5306,21 @@ (function "reset selected time" #f - (lambda () (let ((v0-0 (-> *time-of-day-context* times (-> *time-of-day-context* overide-palette)))) - (set! (-> v0-0 x) 1.0) - (set! (-> v0-0 y) 1.0) - (set! (-> v0-0 z) 1.0) - (set! (-> v0-0 w) 1.0) - v0-0 - ) - ) + ,(lambda () (let ((v0-0 (-> *time-of-day-context* times (-> *time-of-day-context* overide-palette)))) + (set! (-> v0-0 x) 1.0) + (set! (-> v0-0 y) 1.0) + (set! (-> v0-0 z) 1.0) + (set! (-> v0-0 w) 1.0) + v0-0 + ) + ) ) - (function "reset all times" #f (lambda () - (dotimes (v1-0 8) - (set-vector! (-> *time-of-day-context* times v1-0) 1.0 1.0 1.0 1.0) - ) - #f - ) + (function "reset all times" #f ,(lambda () + (dotimes (v1-0 8) + (set-vector! (-> *time-of-day-context* times v1-0) 1.0 1.0 1.0 1.0) + ) + #f + ) ) ) (menu @@ -5286,21 +5328,21 @@ (float-var "Red" #f - (lambda ((arg0 object) (arg1 debug-menu-msg) (arg2 float)) - (cond - ((= arg1 (debug-menu-msg press)) - (if (and *time-of-day-context* (nonzero? *time-of-day-context*)) - (set! (-> *time-of-day-context* filter-color x) arg2) - ) - ) - ((or (not *time-of-day-context*) (zero? *time-of-day-context*)) - 0.0 - ) - (else - (-> *time-of-day-context* filter-color x) + ,(lambda ((arg0 object) (arg1 debug-menu-msg) (arg2 float)) + (cond + ((= arg1 (debug-menu-msg press)) + (if (and *time-of-day-context* (nonzero? *time-of-day-context*)) + (set! (-> *time-of-day-context* filter-color x) arg2) + ) ) - ) - ) + ((or (not *time-of-day-context*) (zero? *time-of-day-context*)) + 0.0 + ) + (else + (-> *time-of-day-context* filter-color x) + ) + ) + ) 2 (new 'static 'bfloat :data 0.00390625) #t @@ -5311,21 +5353,21 @@ (float-var "Green" #f - (lambda ((arg0 object) (arg1 debug-menu-msg) (arg2 float)) - (cond - ((= arg1 (debug-menu-msg press)) - (if (and *time-of-day-context* (nonzero? *time-of-day-context*)) - (set! (-> *time-of-day-context* filter-color y) arg2) - ) - ) - ((or (not *time-of-day-context*) (zero? *time-of-day-context*)) - 0.0 - ) - (else - (-> *time-of-day-context* filter-color y) + ,(lambda ((arg0 object) (arg1 debug-menu-msg) (arg2 float)) + (cond + ((= arg1 (debug-menu-msg press)) + (if (and *time-of-day-context* (nonzero? *time-of-day-context*)) + (set! (-> *time-of-day-context* filter-color y) arg2) + ) ) - ) - ) + ((or (not *time-of-day-context*) (zero? *time-of-day-context*)) + 0.0 + ) + (else + (-> *time-of-day-context* filter-color y) + ) + ) + ) 2 (new 'static 'bfloat :data 0.00390625) #t @@ -5336,21 +5378,21 @@ (float-var "Blue" #f - (lambda ((arg0 object) (arg1 debug-menu-msg) (arg2 float)) - (cond - ((= arg1 (debug-menu-msg press)) - (if (and *time-of-day-context* (nonzero? *time-of-day-context*)) - (set! (-> *time-of-day-context* filter-color z) arg2) - ) - ) - ((or (not *time-of-day-context*) (zero? *time-of-day-context*)) - 0.0 - ) - (else - (-> *time-of-day-context* filter-color z) + ,(lambda ((arg0 object) (arg1 debug-menu-msg) (arg2 float)) + (cond + ((= arg1 (debug-menu-msg press)) + (if (and *time-of-day-context* (nonzero? *time-of-day-context*)) + (set! (-> *time-of-day-context* filter-color z) arg2) + ) ) - ) - ) + ((or (not *time-of-day-context*) (zero? *time-of-day-context*)) + 0.0 + ) + (else + (-> *time-of-day-context* filter-color z) + ) + ) + ) 2 (new 'static 'bfloat :data 0.00390625) #t @@ -5361,21 +5403,21 @@ (float-var "Mult" #f - (lambda ((arg0 object) (arg1 debug-menu-msg) (arg2 float)) - (cond - ((= arg1 (debug-menu-msg press)) - (if (and *time-of-day-context* (nonzero? *time-of-day-context*)) - (set! (-> *time-of-day-context* filter-color w) arg2) - ) - ) - ((or (not *time-of-day-context*) (zero? *time-of-day-context*)) - 0.0 - ) - (else - (-> *time-of-day-context* filter-color w) + ,(lambda ((arg0 object) (arg1 debug-menu-msg) (arg2 float)) + (cond + ((= arg1 (debug-menu-msg press)) + (if (and *time-of-day-context* (nonzero? *time-of-day-context*)) + (set! (-> *time-of-day-context* filter-color w) arg2) + ) ) - ) - ) + ((or (not *time-of-day-context*) (zero? *time-of-day-context*)) + 0.0 + ) + (else + (-> *time-of-day-context* filter-color w) + ) + ) + ) 2 (new 'static 'bfloat :data 0.00390625) #t @@ -5383,14 +5425,14 @@ 2 0 ) - (function "reset filter" #f (lambda () (let ((v0-0 (-> *time-of-day-context* filter-color))) - (set! (-> v0-0 x) 1.0) - (set! (-> v0-0 y) 1.0) - (set! (-> v0-0 z) 1.0) - (set! (-> v0-0 w) 1.0) - (the-as symbol v0-0) - ) - ) + (function "reset filter" #f ,(lambda () (let ((v0-0 (-> *time-of-day-context* filter-color))) + (set! (-> v0-0 x) 1.0) + (set! (-> v0-0 y) 1.0) + (set! (-> v0-0 z) 1.0) + (set! (-> v0-0 w) 1.0) + (the-as symbol v0-0) + ) + ) ) ) (menu @@ -5398,21 +5440,21 @@ (float-var "Cloud Min" #f - (lambda ((arg0 object) (arg1 debug-menu-msg) (arg2 float)) - (cond - ((= arg1 (debug-menu-msg press)) - (if (and *time-of-day-context* (nonzero? *time-of-day-context*)) - (set! (-> *time-of-day-context* current-clouds cloud-min) arg2) - ) - ) - ((or (not *time-of-day-context*) (zero? *time-of-day-context*)) - 0.0 - ) - (else - (-> *time-of-day-context* current-clouds cloud-min) + ,(lambda ((arg0 object) (arg1 debug-menu-msg) (arg2 float)) + (cond + ((= arg1 (debug-menu-msg press)) + (if (and *time-of-day-context* (nonzero? *time-of-day-context*)) + (set! (-> *time-of-day-context* current-clouds cloud-min) arg2) + ) ) - ) - ) + ((or (not *time-of-day-context*) (zero? *time-of-day-context*)) + 0.0 + ) + (else + (-> *time-of-day-context* current-clouds cloud-min) + ) + ) + ) 1 (new 'static 'bfloat :data 0.00390625) #t @@ -5423,21 +5465,21 @@ (float-var "Cloud Max" #f - (lambda ((arg0 object) (arg1 debug-menu-msg) (arg2 float)) - (cond - ((= arg1 (debug-menu-msg press)) - (if (and *time-of-day-context* (nonzero? *time-of-day-context*)) - (set! (-> *time-of-day-context* current-clouds cloud-max) arg2) - ) - ) - ((or (not *time-of-day-context*) (zero? *time-of-day-context*)) - 0.0 - ) - (else - (-> *time-of-day-context* current-clouds cloud-max) + ,(lambda ((arg0 object) (arg1 debug-menu-msg) (arg2 float)) + (cond + ((= arg1 (debug-menu-msg press)) + (if (and *time-of-day-context* (nonzero? *time-of-day-context*)) + (set! (-> *time-of-day-context* current-clouds cloud-max) arg2) + ) ) - ) - ) + ((or (not *time-of-day-context*) (zero? *time-of-day-context*)) + 0.0 + ) + (else + (-> *time-of-day-context* current-clouds cloud-max) + ) + ) + ) 1 (new 'static 'bfloat :data 0.00390625) #t @@ -5448,39 +5490,39 @@ (function "reset sky" #f - (lambda () - (set! (-> *time-of-day-context* current-clouds cloud-min) (-> *mood-control* mood-clouds cloud-min)) - (set! (-> *time-of-day-context* current-clouds cloud-max) (-> *mood-control* mood-clouds cloud-max)) - ) + ,(lambda () + (set! (-> *time-of-day-context* current-clouds cloud-min) (-> *mood-control* mood-clouds cloud-min)) + (set! (-> *time-of-day-context* current-clouds cloud-max) (-> *mood-control* mood-clouds cloud-max)) + ) ) ) - (function "Print mood tables" #f (lambda () (print-mood-tables) (none))) + (function "Print mood tables" #f ,(lambda () (print-mood-tables) (none))) (function "reset everything" #f - (lambda () - (mem-copy! - (the-as pointer *overide-mood-color-table*) - (the-as pointer (-> *mood-control* mood-color-table)) - 256 - ) - (mem-copy! (the-as pointer *overide-mood-fog-table*) (the-as pointer (-> *mood-control* mood-fog-table)) 384) - (dotimes (v1-2 8) - (set! (-> *overide-mood-color-table* data v1-2 lgt-color w) 1.0) - (set! (-> *overide-mood-color-table* data v1-2 amb-color w) 1.0) - (set! (-> *overide-mood-fog-table* data v1-2 fog-color w) 1.0) - (set! (-> *overide-mood-fog-table* data v1-2 fog-dists x) - (* 0.00024414062 (-> *overide-mood-fog-table* data v1-2 fog-dists x)) - ) - (set! (-> *overide-mood-fog-table* data v1-2 fog-dists y) - (* 0.00024414062 (-> *overide-mood-fog-table* data v1-2 fog-dists y)) - ) - (set-vector! (-> *time-of-day-context* times v1-2) 1.0 1.0 1.0 1.0) - ) - (set-vector! (-> *time-of-day-context* filter-color) 1.0 1.0 1.0 1.0) - (set! (-> *time-of-day-context* current-clouds cloud-min) (-> *mood-control* mood-clouds cloud-min)) - (set! (-> *time-of-day-context* current-clouds cloud-max) (-> *mood-control* mood-clouds cloud-max)) - ) + ,(lambda () + (mem-copy! + (the-as pointer *overide-mood-color-table*) + (the-as pointer (-> *mood-control* mood-color-table)) + 256 + ) + (mem-copy! (the-as pointer *overide-mood-fog-table*) (the-as pointer (-> *mood-control* mood-fog-table)) 384) + (dotimes (v1-2 8) + (set! (-> *overide-mood-color-table* data v1-2 lgt-color w) 1.0) + (set! (-> *overide-mood-color-table* data v1-2 amb-color w) 1.0) + (set! (-> *overide-mood-fog-table* data v1-2 fog-color w) 1.0) + (set! (-> *overide-mood-fog-table* data v1-2 fog-dists x) + (* 0.00024414062 (-> *overide-mood-fog-table* data v1-2 fog-dists x)) + ) + (set! (-> *overide-mood-fog-table* data v1-2 fog-dists y) + (* 0.00024414062 (-> *overide-mood-fog-table* data v1-2 fog-dists y)) + ) + (set-vector! (-> *time-of-day-context* times v1-2) 1.0 1.0 1.0 1.0) + ) + (set-vector! (-> *time-of-day-context* filter-color) 1.0 1.0 1.0 1.0) + (set! (-> *time-of-day-context* current-clouds cloud-min) (-> *mood-control* mood-clouds cloud-min)) + (set! (-> *time-of-day-context* current-clouds cloud-max) (-> *mood-control* mood-clouds cloud-max)) + ) ) ) ) @@ -5496,8 +5538,8 @@ (flag "Region Marks" *display-region-marks* dm-boolean-toggle-pick-func) (flag "Sound channels" *display-iop-info* dm-boolean-toggle-pick-func) (function "Reload Banks" #f sound-bank-reload) - (function "List Sounds" #f (lambda () (list-sounds) (none))) - (function "IOP Info" #f (lambda () (loader-test-command (sound-command iop-mem) (the-as uint 0)) (none))) + (function "List Sounds" #f ,(lambda () (list-sounds) (none))) + (function "IOP Info" #f ,(lambda () (loader-test-command (sound-command iop-mem) (the-as uint 0)) (none))) ) ) ) @@ -5871,15 +5913,8 @@ ) ) ) - - ;; added these checks - (when (nonzero? (-> *game-info* sub-task-list)) - (debug-menu-append-item s5-0 (debug-menu-make-task-menu arg0)) - ) - - (when (nonzero? (-> *game-info* play-list)) - (debug-menu-append-item s5-0 (the-as debug-menu-node (debug-menu-make-play-menu (the-as symbol arg0)))) - ) + (debug-menu-append-item s5-0 (debug-menu-make-task-menu arg0)) + (debug-menu-append-item s5-0 (debug-menu-make-play-menu arg0)) ) arg0 ) @@ -5892,155 +5927,147 @@ '(main-menu "Popup" (flag "Cam 1" pad-1 dm-cam-externalize) - (flag "Target" #f (lambda ((arg0 object) (arg1 debug-menu-msg)) - (when (= arg1 (debug-menu-msg press)) - (if *target* - (stop 'debug) - (start 'debug (get-current-continue-point *game-info*)) - ) - ) - *target* - ) + (flag "Target" #f ,(lambda ((arg0 object) (arg1 debug-menu-msg)) + (when (= arg1 (debug-menu-msg press)) + (if *target* + (stop 'debug) + (start 'debug (get-current-continue-forced *game-info*)) + ) + ) + *target* + ) ) (menu "Mode" - (function "normal" #f (lambda () (send-event *target* 'end-mode))) - (function "racer" #f (lambda () + (function "normal" #f ,(lambda () (send-event *target* 'end-mode))) + (function "racer" #f ,(lambda () + (if (not *target*) + (start 'debug (get-current-continue-forced *game-info*)) + ) + (send-event *target* 'change-mode 'racer #f) + ) + ) + (function "flut" #f ,(lambda () (if (not *target*) - (start 'debug (get-current-continue-point *game-info*)) + (start 'debug (get-current-continue-forced *game-info*)) ) - (send-event *target* 'change-mode 'racer #f) + (send-event *target* 'change-mode 'flut #f) ) ) - (function "flut" #f (lambda () + (function "board" #f ,(lambda () + (if (not *target*) + (start 'debug (get-current-continue-forced *game-info*)) + ) + (logior! (-> *game-info* features) (game-feature board)) + (logior! (-> *game-info* debug-features) (game-feature board)) + (send-event *target* 'change-mode 'board #f) + ) + ) + (function "mech" #f ,(lambda () + (if (not *target*) + (start 'debug (get-current-continue-forced *game-info*)) + ) + (send-event *target* 'change-mode 'mech #f) + ) + ) + (function "gun" #f ,(lambda () (if (not *target*) - (start 'debug (get-current-continue-point *game-info*)) + (start 'debug (get-current-continue-forced *game-info*)) ) - (send-event *target* 'change-mode 'flut #f) + (logior! (-> *game-info* features) (game-feature unk-game-feature-06)) + (logior! (-> *game-info* debug-features) (game-feature unk-game-feature-06)) + (send-event *target* 'change-mode 'gun #f 0) ) ) - (function "board" #f (lambda () - (if (not *target*) - (start 'debug (get-current-continue-point *game-info*)) - ) - (logior! (-> *game-info* features) (game-feature board)) - (logior! (-> *game-info* debug-features) (game-feature board)) - (send-event *target* 'change-mode 'board #f) - ) - ) - (function "mech" #f (lambda () - (if (not *target*) - (start 'debug (get-current-continue-point *game-info*)) + (function "darkjak" #f ,(lambda () + (if (not *target*) + (start 'debug (get-current-continue-forced *game-info*)) + ) + (logior! (-> *game-info* features) (game-feature darkjak)) + (logior! (-> *game-info* debug-features) (game-feature darkjak)) + (send-event *target* 'change-mode 'darkjak #f 3) ) - (send-event *target* 'change-mode 'mech #f) - ) ) - (function "gun" #f (lambda () - (if (not *target*) - (start 'debug (get-current-continue-point *game-info*)) - ) - (logior! (-> *game-info* features) (game-feature unk-game-feature-06)) - (logior! (-> *game-info* debug-features) (game-feature unk-game-feature-06)) - (send-event *target* 'change-mode 'gun #f 0) - ) - ) - (function "darkjak" #f (lambda () - (if (not *target*) - (start 'debug (get-current-continue-point *game-info*)) - ) - (logior! (-> *game-info* features) (game-feature darkjak)) - (logior! (-> *game-info* debug-features) (game-feature darkjak)) - (send-event *target* 'change-mode 'darkjak #f 3) - ) - ) - (function "indax" #f (lambda () - (if (not *target*) - (start 'debug (get-current-continue-point *game-info*)) - ) - (send-event *target* 'change-mode 'indax #f) - ) + (function "indax" #f ,(lambda () + (if (not *target*) + (start 'debug (get-current-continue-forced *game-info*)) + ) + (send-event *target* 'change-mode 'indax #f) + ) ) ) - (flag "Game" #f (lambda ((arg0 object) (arg1 debug-menu-msg)) - (when (= arg1 (debug-menu-msg press)) - (let ((v1-3 (-> *game-info* mode))) - (set! (-> *game-info* mode) (cond - ((= v1-3 'play) - 'debug - ) - ((= v1-3 'debug) - 'play - ) - (else - (-> *game-info* mode) + (flag "Game" #f ,(lambda ((arg0 object) (arg1 debug-menu-msg)) + (when (= arg1 (debug-menu-msg press)) + (let ((v1-3 (-> *game-info* mode))) + (set! (-> *game-info* mode) (cond + ((= v1-3 'play) + 'debug ) - ) - ) - ) - ) - (= (-> *game-info* mode) 'play) - ) - ) - (function "Clean" #f (lambda () - (if (time-of-day-setup #f) - (time-of-day-setup #t) - ) - (play-clean #f) - (none) + ((= v1-3 'debug) + 'play + ) + (else + (-> *game-info* mode) + ) + ) + ) ) - ) - (flag "Stats" *stats-target* dm-boolean-toggle-pick-func) - (function "Reset" #f (lambda () (reset-actors 'debug) (none))) - (function "Start" #f (lambda () (start 'play (-> *game-info* current-continue)) (none))) - (function "Editor" #f (lambda () - (kill-by-type editable-player *active-pool*) - (process-spawn editable-player :init editable-player-init #f :to *entity-pool*) - (set-master-mode 'game) + ) + (= (-> *game-info* mode) 'play) + ) + ) + (function "Clean" #f ,(lambda () + (if (time-of-day-setup #f) + (time-of-day-setup #t) + ) + (play-clean #f) (none) ) ) + (flag "Stats" *stats-target* dm-boolean-toggle-pick-func) + (function "Reset" #f ,(lambda () (reset-actors 'debug) (none))) + (function "Start" #f ,(lambda () (start 'play (-> *game-info* current-continue)) (none))) + (function "Editor" #f ,(lambda () + (kill-by-type editable-player *active-pool*) + (process-spawn editable-player :init editable-player-init #f :to *entity-pool*) + (set-master-mode 'game) + (none) + ) + ) ) ) arg0 ) (debug-menu-context-make-default-menus *debug-menu-context*) + (popup-menu-context-make-default-menus *popup-menu-context*) (defun menu-respond-to-pause () (case *master-mode* - (('menu) - (cond - ((and (cpad-hold? 0 l3) (cpad-hold? 0 select)) - (debug-menu-context-send-msg *popup-menu-context* (debug-menu-msg activate) (debug-menu-dest activation)) - (debug-menu-context-send-msg *debug-menu-context* (debug-menu-msg deactivate) (debug-menu-dest activation)) - ;; added - (when (nonzero? *editable-menu-context*) - (debug-menu-context-send-msg *editable-menu-context* (debug-menu-msg deactivate) (debug-menu-dest activation)) - ) - ) - ((and (cpad-hold? 1 start) *editable*) - (when (nonzero? *editable-menu-context*) - (debug-menu-context-send-msg *editable-menu-context* (debug-menu-msg activate) (debug-menu-dest activation)) - ) - (debug-menu-context-send-msg *debug-menu-context* (debug-menu-msg deactivate) (debug-menu-dest activation)) - (debug-menu-context-send-msg *popup-menu-context* (debug-menu-msg deactivate) (debug-menu-dest activation)) - ) - ((and (cpad-hold? 0 l3) (cpad-hold? 0 start)) - (debug-menu-context-send-msg *debug-menu-context* (debug-menu-msg activate) (debug-menu-dest activation)) - (debug-menu-context-send-msg *popup-menu-context* (debug-menu-msg deactivate) (debug-menu-dest activation)) - (when (nonzero? *editable-menu-context*) - (debug-menu-context-send-msg *editable-menu-context* (debug-menu-msg deactivate) (debug-menu-dest activation)) - ) - ) - ) - ) + (('menu) + (cond + ((and (cpad-hold? 0 l3) (cpad-hold? 0 select)) + (debug-menu-context-send-msg *popup-menu-context* (debug-menu-msg activate) (debug-menu-dest activation)) + (debug-menu-context-send-msg *debug-menu-context* (debug-menu-msg deactivate) (debug-menu-dest activation)) + (debug-menu-context-send-msg *editable-menu-context* (debug-menu-msg deactivate) (debug-menu-dest activation)) + ) + ((and (cpad-hold? 1 start) *editable*) + (debug-menu-context-send-msg *editable-menu-context* (debug-menu-msg activate) (debug-menu-dest activation)) + (debug-menu-context-send-msg *debug-menu-context* (debug-menu-msg deactivate) (debug-menu-dest activation)) + (debug-menu-context-send-msg *popup-menu-context* (debug-menu-msg deactivate) (debug-menu-dest activation)) + ) + ((and (cpad-hold? 0 l3) (cpad-hold? 0 start)) + (debug-menu-context-send-msg *debug-menu-context* (debug-menu-msg activate) (debug-menu-dest activation)) + (debug-menu-context-send-msg *popup-menu-context* (debug-menu-msg deactivate) (debug-menu-dest activation)) + (debug-menu-context-send-msg *editable-menu-context* (debug-menu-msg deactivate) (debug-menu-dest activation)) + ) + ) + ) (else (debug-menu-context-send-msg *debug-menu-context* (debug-menu-msg deactivate) (debug-menu-dest activation)) (debug-menu-context-send-msg *popup-menu-context* (debug-menu-msg deactivate) (debug-menu-dest activation)) - (when (nonzero? *editable-menu-context*) - (debug-menu-context-send-msg *editable-menu-context* (debug-menu-msg deactivate) (debug-menu-dest activation)) - ) + (debug-menu-context-send-msg *editable-menu-context* (debug-menu-msg deactivate) (debug-menu-dest activation)) ) ) #f @@ -6052,7 +6079,3 @@ ) ) - - - - diff --git a/goal_src/jak2/engine/debug/editable-player.gc b/goal_src/jak2/engine/debug/editable-player.gc index 8281e04c56..db927bd690 100644 --- a/goal_src/jak2/engine/debug/editable-player.gc +++ b/goal_src/jak2/engine/debug/editable-player.gc @@ -6,12 +6,2828 @@ ;; dgos: ENGINE, GAME ;; og:ignore-form:insert-box -;; og:ignore-form:dm-editable-light-float-func -;; og:ignore-form:dm-editable-boolean-toggle-pick-func (define-extern insert-box (function editable-array vector none)) -(define-extern editable-menu-context-make-menus (function debug-menu-context none)) (define-extern editable-player-init (function symbol none :behavior editable-player)) ;; DECOMP BEGINS +;; this file is debug only +(declare-file (debug)) +(when *debug-segment* +(defun cleanup-selection ((arg0 editable-array)) + (let* ((v1-0 (-> arg0 length)) + (a0-1 0) + (a1-2 (-> arg0 data a0-1)) + ) + (while (< a0-1 v1-0) + (if a1-2 + (logclear! (-> a1-2 flags) (editable-flag mark)) + ) + (+! a0-1 1) + (set! a1-2 (-> arg0 data a0-1)) + ) + ) + (let* ((s5-0 (-> arg0 length)) + (s4-0 0) + (a0-2 (-> arg0 data s4-0)) + ) + (while (< s4-0 s5-0) + (if (and a0-2 (logtest? (-> a0-2 flags) (editable-flag selected))) + (editable-method-29 a0-2 (editable-filter)) + ) + (+! s4-0 1) + (set! a0-2 (-> arg0 data s4-0)) + ) + ) + 0 + (none) + ) + +;; WARN: Function insert-box has a return type of none, but the expression builder found a return statement. + +(defun execute-select ((arg0 editable-array) (arg1 editable-command) (arg2 editable-array)) + (case arg1 + (((editable-command select-none)) + (let* ((s5-1 (-> arg0 length)) + (s4-0 0) + (a0-2 (-> arg0 data s4-0)) + ) + (while (< s4-0 s5-1) + (if (and a0-2 (logtest? (-> a0-2 flags) (editable-flag selected))) + (select-editable! a0-2 #f) + ) + (+! s4-0 1) + (set! a0-2 (-> arg0 data s4-0)) + ) + ) + (if (not (-> arg0 region-lock?)) + (set! (-> arg0 region) #f) + ) + ) + (((editable-command select-all)) + (let* ((s5-2 (-> arg0 length)) + (s4-1 0) + (a0-4 (-> arg0 data s4-1)) + ) + (while (< s4-1 s5-2) + (if (and a0-4 (or (and (logtest? (-> a0-4 region filter) (-> arg0 filter 0)) + (logtest? (-> a0-4 region filter) (-> arg0 filter 1)) + ) + (logtest? (-> a0-4 flags) (editable-flag selected)) + ) + ) + (select-editable! a0-4 #t) + ) + (+! s4-1 1) + (set! a0-4 (-> arg0 data s4-1)) + ) + ) + ) + (((editable-command select-one)) + (sound-play-by-spec + (new 'static 'sound-spec + :mask (sound-mask fo-curve) + :num 1.0 + :group (sound-group sfx) + :sound-name (static-sound-name "beep") + :volume #x400 + :fo-curve 1 + ) + (new-sound-id) + (the-as vector #t) + ) + (let* ((a0-7 arg0) + (t9-4 (method-of-object a0-7 editable-array-method-10)) + (a1-12 (new 'stack-no-clear 'vector)) + ) + (set! (-> a1-12 x) (-> arg2 edit-plane-normal x)) + (set! (-> a1-12 y) (-> arg2 edit-plane-normal y)) + (set! (-> a1-12 z) 0.0) + (set! (-> a1-12 w) 1.0) + (let ((s4-3 (t9-4 a0-7 a1-12 0))) + (editable-array-method-9 arg0 (editable-command select-none) arg2) + (when s4-3 + (select-editable! s4-3 #t) + (if (not (-> arg0 region-lock?)) + (set! (-> arg0 region) (-> s4-3 region)) + ) + ) + ) + ) + ) + (((editable-command select-toggle)) + (sound-play-by-spec + (new 'static 'sound-spec + :mask (sound-mask fo-curve) + :num 1.0 + :group (sound-group sfx) + :sound-name (static-sound-name "beep") + :volume #x400 + :fo-curve 1 + ) + (new-sound-id) + (the-as vector #t) + ) + (let* ((a0-12 arg0) + (t9-9 (method-of-object a0-12 editable-array-method-10)) + (a1-16 (new 'stack-no-clear 'vector)) + ) + (set! (-> a1-16 x) (-> arg2 edit-plane-normal x)) + (set! (-> a1-16 y) (-> arg2 edit-plane-normal y)) + (set! (-> a1-16 z) 0.0) + (set! (-> a1-16 w) 1.0) + (let ((s5-3 (t9-9 a0-12 a1-16 1))) + (when s5-3 + (select-editable! s5-3 'toggle) + (if (and (logtest? (-> s5-3 flags) (editable-flag selected)) (not (-> arg0 region-lock?))) + (set! (-> arg0 region) (-> s5-3 region)) + ) + ) + ) + ) + ) + (((editable-command select-region)) + (sound-play-by-spec + (new 'static 'sound-spec + :mask (sound-mask fo-curve) + :num 1.0 + :group (sound-group sfx) + :sound-name (static-sound-name "beep") + :volume #x400 + :fo-curve 1 + ) + (new-sound-id) + (the-as vector #t) + ) + (let* ((a0-16 arg0) + (t9-13 (method-of-object a0-16 editable-array-method-10)) + (a1-19 (new 'stack-no-clear 'vector)) + ) + (set! (-> a1-19 x) (-> arg2 edit-plane-normal x)) + (set! (-> a1-19 y) (-> arg2 edit-plane-normal y)) + (set! (-> a1-19 z) 0.0) + (set! (-> a1-19 w) 1.0) + (let ((s4-6 (t9-13 a0-16 a1-19 0))) + (editable-array-method-9 arg0 (editable-command select-none) arg2) + (when s4-6 + (select-editable! s4-6 #t) + (set! (-> arg0 backup-region) (-> arg0 region)) + (set! (-> arg0 region) (-> s4-6 region)) + (editable-array-method-9 arg0 (editable-command select-current-region) arg2) + (if (-> arg0 region-lock?) + (set! (-> arg0 region) (-> arg0 backup-region)) + ) + ) + ) + ) + ) + (((editable-command select-face)) + (sound-play-by-spec + (new 'static 'sound-spec + :mask (sound-mask fo-curve) + :num 1.0 + :group (sound-group sfx) + :sound-name (static-sound-name "beep") + :volume #x400 + :fo-curve 1 + ) + (new-sound-id) + (the-as vector #t) + ) + (let* ((a0-22 arg0) + (t9-19 (method-of-object a0-22 editable-array-method-10)) + (a1-24 (new 'stack-no-clear 'vector)) + ) + (set! (-> a1-24 x) (-> arg2 edit-plane-normal x)) + (set! (-> a1-24 y) (-> arg2 edit-plane-normal y)) + (set! (-> a1-24 z) 0.0) + (set! (-> a1-24 w) 1.0) + (let ((s4-8 (t9-19 a0-22 a1-24 0))) + (editable-array-method-9 arg0 (editable-command select-none) arg2) + (when s4-8 + (select-editable! s4-8 #t) + (set! (-> arg0 backup-region) (-> arg0 region)) + (set! (-> arg0 region) (-> s4-8 region)) + (editable-array-method-9 arg0 (editable-command select-current-face) arg2) + (if (-> arg0 region-lock?) + (set! (-> arg0 region) (-> arg0 backup-region)) + ) + ) + ) + ) + ) + (((editable-command select-prim)) + (sound-play-by-spec + (new 'static 'sound-spec + :mask (sound-mask fo-curve) + :num 1.0 + :group (sound-group sfx) + :sound-name (static-sound-name "beep") + :volume #x400 + :fo-curve 1 + ) + (new-sound-id) + (the-as vector #t) + ) + (let* ((a0-28 arg0) + (t9-25 (method-of-object a0-28 editable-array-method-10)) + (a1-29 (new 'stack-no-clear 'vector)) + ) + (set! (-> a1-29 x) (-> arg2 edit-plane-normal x)) + (set! (-> a1-29 y) (-> arg2 edit-plane-normal y)) + (set! (-> a1-29 z) 0.0) + (set! (-> a1-29 w) 1.0) + (let ((s4-10 (t9-25 a0-28 a1-29 0))) + (editable-array-method-9 arg0 (editable-command select-none) arg2) + (when s4-10 + (select-editable! s4-10 #t) + (set! (-> arg0 backup-region) (-> arg0 region)) + (set! (-> arg0 region) (-> s4-10 region)) + (editable-array-method-9 arg0 (editable-command select-current-prim) arg2) + (if (-> arg0 region-lock?) + (set! (-> arg0 region) (-> arg0 backup-region)) + ) + ) + ) + ) + ) + (((editable-command select-current-region)) + (sound-play-by-spec + (new 'static 'sound-spec + :mask (sound-mask fo-curve) + :num 1.0 + :group (sound-group sfx) + :sound-name (static-sound-name "beep") + :volume #x400 + :fo-curve 1 + ) + (new-sound-id) + (the-as vector #t) + ) + (when (-> arg0 region) + (let ((s4-12 (-> arg0 region))) + (editable-array-method-9 arg0 (editable-command select-none) arg2) + (set! (-> arg0 region) s4-12) + ) + (let* ((s5-4 (-> arg0 length)) + (s4-13 0) + (a0-35 (-> arg0 data s4-13)) + ) + (while (< s4-13 s5-4) + (when (and a0-35 (or (and (logtest? (-> a0-35 region filter) (-> arg0 filter 0)) + (logtest? (-> a0-35 region filter) (-> arg0 filter 1)) + ) + (logtest? (-> a0-35 flags) (editable-flag selected)) + ) + ) + (if (= (-> arg0 region) (-> a0-35 region)) + (select-editable! a0-35 #t) + ) + ) + (+! s4-13 1) + (set! a0-35 (-> arg0 data s4-13)) + ) + ) + ) + ) + (((editable-command select-current-owner)) + (let* ((s5-5 (-> arg0 length)) + (s4-14 0) + (v1-121 (-> arg0 data s4-14)) + ) + (while (< s4-14 s5-5) + (when (and v1-121 (logtest? (-> v1-121 flags) (editable-flag selected))) + (let* ((s3-6 (-> v1-121 owner)) + (a0-40 (car s3-6)) + ) + (while (not (null? s3-6)) + (select-editable! (the-as editable a0-40) #t) + (set! s3-6 (cdr s3-6)) + (set! a0-40 (car s3-6)) + ) + ) + ) + (+! s4-14 1) + (set! v1-121 (-> arg0 data s4-14)) + ) + ) + ) + (((editable-command select-current-face)) + (let* ((s5-6 (-> arg0 length)) + (s4-15 0) + (v1-134 (-> arg0 data s4-15)) + ) + (while (< s4-15 s5-6) + (when (and v1-134 (logtest? (-> v1-134 flags) (editable-flag selected))) + (let* ((s3-7 (-> v1-134 owner)) + (a0-45 (car s3-7)) + ) + (while (not (null? s3-7)) + (select-editable! (the-as editable a0-45) #t) + (set! s3-7 (cdr s3-7)) + (set! a0-45 (car s3-7)) + ) + ) + ) + (+! s4-15 1) + (set! v1-134 (-> arg0 data s4-15)) + ) + ) + (let* ((s5-7 (-> arg0 length)) + (s4-16 0) + (s3-8 (-> arg0 data s4-16)) + ) + (while (< s4-16 s5-7) + (when (and s3-8 (or (and (logtest? (-> s3-8 region filter) (-> arg0 filter 0)) + (logtest? (-> s3-8 region filter) (-> arg0 filter 1)) + ) + (logtest? (-> s3-8 flags) (editable-flag selected)) + ) + ) + (let* ((s2-0 (-> s3-8 owner)) + (v1-155 (car s2-0)) + ) + (while (not (null? s2-0)) + (if (logtest? (-> (the-as editable v1-155) flags) (editable-flag selected)) + (select-editable! s3-8 #t) + ) + (set! s2-0 (cdr s2-0)) + (set! v1-155 (car s2-0)) + ) + ) + ) + (+! s4-16 1) + (set! s3-8 (-> arg0 data s4-16)) + ) + ) + ) + (((editable-command select-current-prim)) + (countdown (s5-8 10) + (let* ((s4-17 (-> arg0 length)) + (s3-9 0) + (v1-169 (-> arg0 data s3-9)) + ) + (while (< s3-9 s4-17) + (when (and v1-169 (logtest? (-> v1-169 flags) (editable-flag selected))) + (let* ((s2-1 (-> v1-169 owner)) + (a0-58 (car s2-1)) + ) + (while (not (null? s2-1)) + (select-editable! (the-as editable a0-58) #t) + (set! s2-1 (cdr s2-1)) + (set! a0-58 (car s2-1)) + ) + ) + ) + (+! s3-9 1) + (set! v1-169 (-> arg0 data s3-9)) + ) + ) + (let* ((s4-18 (-> arg0 length)) + (s3-10 0) + (s2-2 (-> arg0 data s3-10)) + ) + (while (< s3-10 s4-18) + (when (and s2-2 (or (and (logtest? (-> s2-2 region filter) (-> arg0 filter 0)) + (logtest? (-> s2-2 region filter) (-> arg0 filter 1)) + ) + (logtest? (-> s2-2 flags) (editable-flag selected)) + ) + ) + (let* ((s1-0 (-> s2-2 owner)) + (v1-190 (car s1-0)) + ) + (while (not (null? s1-0)) + (if (logtest? (-> (the-as editable v1-190) flags) (editable-flag selected)) + (select-editable! s2-2 #t) + ) + (set! s1-0 (cdr s1-0)) + (set! v1-190 (car s1-0)) + ) + ) + ) + (+! s3-10 1) + (set! s2-2 (-> arg0 data s3-10)) + ) + ) + ) + ) + (((editable-command cancel)) + (editable-array-method-13 arg0 (the-as uint 0) (the-as basic 0) (the-as string #f)) + ) + (((editable-command pick-target)) + (sound-play-by-spec + (new 'static 'sound-spec + :mask (sound-mask fo-curve) + :num 1.0 + :group (sound-group sfx) + :sound-name (static-sound-name "beep") + :volume #x400 + :fo-curve 1 + ) + (new-sound-id) + (the-as vector #t) + ) + (let* ((a0-71 arg0) + (t9-41 (method-of-object a0-71 editable-array-method-10)) + (a1-58 (new 'stack-no-clear 'vector)) + ) + (set! (-> a1-58 x) (-> arg2 edit-plane-normal x)) + (set! (-> a1-58 y) (-> arg2 edit-plane-normal y)) + (set! (-> a1-58 z) 0.0) + (set! (-> a1-58 w) 1.0) + (let ((v1-208 (t9-41 a0-71 a1-58 0))) + (when v1-208 + (set! (-> arg0 target) v1-208) + (editable-array-method-9 arg0 (the-as editable-command (-> arg0 target-command)) arg2) + ) + ) + ) + (editable-array-method-13 arg0 (the-as uint 0) (the-as basic 0) (the-as string #f)) + ) + (((editable-command pick-loc) (editable-command pick-yes-no)) + (sound-play-by-spec + (new 'static 'sound-spec + :mask (sound-mask fo-curve) + :num 1.0 + :group (sound-group sfx) + :sound-name (static-sound-name "beep") + :volume #x400 + :fo-curve 1 + ) + (new-sound-id) + (the-as vector #t) + ) + (editable-array-method-9 arg0 (the-as editable-command (-> arg0 target-command)) arg2) + (editable-array-method-13 arg0 (the-as uint 0) (the-as basic 0) (the-as string #f)) + ) + (((editable-command edit-plane-clear)) + (sound-play-by-spec + (new 'static 'sound-spec + :mask (sound-mask fo-curve) + :num 1.0 + :group (sound-group sfx) + :sound-name (static-sound-name "beep") + :volume #x400 + :fo-curve 1 + ) + (new-sound-id) + (the-as vector #t) + ) + (set! (-> arg0 edit-plane) #f) + (editable-array-method-16 arg0) + ) + (((editable-command edit-plane-set)) + (sound-play-by-spec + (new 'static 'sound-spec + :mask (sound-mask fo-curve) + :num 1.0 + :group (sound-group sfx) + :sound-name (static-sound-name "beep") + :volume #x400 + :fo-curve 1 + ) + (new-sound-id) + (the-as vector #t) + ) + (cond + ((-> arg0 target) + (let ((s5-11 (-> arg0 target))) + (set! (-> arg0 edit-plane) (the-as editable-plane (if (type? s5-11 editable-plane) + s5-11 + ) + ) + ) + ) + (editable-array-method-16 arg0) + ) + (else + (editable-array-method-14 + arg0 + (the-as (function symbol) (lambda ((arg0 editable)) (type? arg0 editable-plane))) + #f + ) + (cond + ((>= (-> arg0 selection length) 1) + (set! (-> arg0 edit-plane) (the-as editable-plane (-> arg0 selection 0))) + (editable-array-method-16 arg0) + ) + (else + (editable-array-method-13 arg0 (the-as uint 14) (the-as basic 45) "pick the plane to edit-from") + ) + ) + ) + ) + ) + (((editable-command print-region-info)) + (let ((s5-12 (-> arg0 region))) + (when s5-12 + (format #t "~%~%region-~D~%~%" (-> s5-12 id)) + (let ((a2-35 (-> s5-12 on-enter))) + (if a2-35 + (format #t "(on-enter ~S)~%" a2-35) + ) + ) + (let ((a2-36 (-> s5-12 on-inside))) + (if a2-36 + (format #t "(on-inside ~S)~%" a2-36) + ) + ) + (let ((a2-37 (-> s5-12 on-exit))) + (if a2-37 + (format #t "(on-exit ~S)~%" a2-37) + ) + ) + (format #t "~%~%") + ) + ) + (format #t "~%selected:~%") + (let* ((s5-13 (-> arg0 length)) + (s4-23 0) + (a2-38 (-> arg0 data s4-23)) + ) + (while (< s4-23 s5-13) + (if (and a2-38 (logtest? (-> a2-38 flags) (editable-flag selected))) + (format #t "~A~%" a2-38) + ) + (+! s4-23 1) + (set! a2-38 (-> arg0 data s4-23)) + ) + ) + (format #t "~%~%") + ) + (else + (return #f) + ) + ) + #t + ) + +(defun execute-mouse-move ((arg0 editable-array) (arg1 editable-command) (arg2 editable-array)) + (local-vars (f0-6 float) (f0-18 float) (f0-29 float)) + (case arg1 + (((editable-command camera-tumble)) + (set-setting! 'mouse-input 'abs #t 0) + (let ((s5-0 (new-stack-vector0)) + (f30-0 0.0) + ) + (let* ((s4-0 (-> arg0 length)) + (s3-0 0) + (a0-3 (-> arg0 data s3-0)) + ) + (while (< s3-0 s4-0) + (when (and a0-3 (logtest? (-> a0-3 flags) (editable-flag selected))) + (vector+! s5-0 s5-0 (edit-get-trans a0-3)) + (set! f30-0 (+ 1.0 f30-0)) + ) + (+! s3-0 1) + (set! a0-3 (-> arg0 data s3-0)) + ) + ) + (cond + ((= f30-0 0.0) + (remove-setting! 'mouse-tumble-point) + ) + (else + (vector-float/! s5-0 s5-0 f30-0) + (set-setting! 'mouse-tumble-point 'abs s5-0 0) + ) + ) + ) + ) + (((editable-command camera-xy)) + (set-setting! 'mouse-input 'abs #t 0) + ) + (((editable-command camera-xz)) + (set-setting! 'mouse-input 'abs #t 0) + ) + (((editable-command drag-move-x)) + (let ((v1-25 (-> arg2 level-offset)) + (a0-12 (-> arg2 edit-plane-normal)) + (s5-1 (new-stack-vector0)) + (s4-1 (-> *math-camera* trans)) + ) + 0.0 + (let* ((f0-4 (- (-> v1-25 x) (-> a0-12 x))) + (f1-2 (- (-> v1-25 y) (-> a0-12 y))) + (f30-1 (if (< (fabs f1-2) (fabs f0-4)) + f0-4 + f1-2 + ) + ) + ) + (if (< (-> *math-camera* camera-rot vector 0 x) 0.0) + (set! f30-1 (- f30-1)) + ) + (let* ((s3-1 (-> arg0 length)) + (s2-1 0) + (s1-2 (-> arg0 data s2-1)) + ) + (while (< s2-1 s3-1) + (when (and s1-2 (logtest? (-> s1-2 flags) (editable-flag selected))) + (set! f0-6 (cond + ((-> arg0 move-lock?) + (-> arg0 move-speed) + ) + (else + (vector-! s5-1 (edit-get-trans s1-2) s4-1) + (let ((f0-9 (* 0.00390625 f30-1 (vector-length s5-1)))) + (set! f0-6 (fmax -40960.0 (fmin 40960.0 f0-9))) + ) + (set! (-> arg0 move-speed) f0-6) + (set! (-> arg0 move-lock?) #t) + f0-6 + ) + ) + ) + (set-vector! s5-1 f0-6 0.0 0.0 0.0) + (editable-method-15 s1-2 s5-1 56) + ) + (+! s2-1 1) + (set! s1-2 (-> arg0 data s2-1)) + ) + ) + ) + ) + (cleanup-selection arg0) + ) + (((editable-command drag-move-y)) + (let ((v1-54 (-> arg2 level-offset)) + (a0-20 (-> arg2 edit-plane-normal)) + (s5-2 (new-stack-vector0)) + (s4-2 (-> *math-camera* trans)) + ) + 0.0 + (let* ((f0-16 (- (-> v1-54 x) (-> a0-20 x))) + (f1-8 (- (-> v1-54 y) (-> a0-20 y))) + (f30-2 (if (< (fabs f1-8) (fabs f0-16)) + f0-16 + f1-8 + ) + ) + ) + (if (< (-> *math-camera* camera-rot vector 1 y) 0.0) + (set! f30-2 (- f30-2)) + ) + (let* ((s3-2 (-> arg0 length)) + (s2-2 0) + (s1-3 (-> arg0 data s2-2)) + ) + (while (< s2-2 s3-2) + (when (and s1-3 (logtest? (-> s1-3 flags) (editable-flag selected))) + (set! f0-18 (cond + ((-> arg0 move-lock?) + (-> arg0 move-speed) + ) + (else + (vector-! s5-2 (edit-get-trans s1-3) s4-2) + (let ((f0-21 (* 0.00390625 f30-2 (vector-length s5-2)))) + (set! f0-18 (fmax -40960.0 (fmin 40960.0 f0-21))) + ) + (set! (-> arg0 move-speed) f0-18) + (set! (-> arg0 move-lock?) #t) + f0-18 + ) + ) + ) + (set-vector! s5-2 0.0 f0-18 0.0 0.0) + (editable-method-15 s1-3 s5-2 56) + ) + (+! s2-2 1) + (set! s1-3 (-> arg0 data s2-2)) + ) + ) + ) + ) + (cleanup-selection arg0) + ) + (((editable-command drag-move-z)) + (let ((v1-83 (-> arg2 level-offset)) + (a0-28 (-> arg2 edit-plane-normal)) + (s5-3 (new-stack-vector0)) + (s4-3 (-> *math-camera* trans)) + ) + 0.0 + (let* ((f0-27 (- (-> v1-83 x) (-> a0-28 x))) + (f1-15 (- (-> v1-83 y) (-> a0-28 y))) + (f30-3 (if (< (fabs f1-15) (fabs f0-27)) + f0-27 + f1-15 + ) + ) + ) + (if (>= (-> *math-camera* camera-rot vector 0 z) 0.0) + (set! f30-3 (- f30-3)) + ) + (let* ((s3-3 (-> arg0 length)) + (s2-3 0) + (s1-4 (-> arg0 data s2-3)) + ) + (while (< s2-3 s3-3) + (when (and s1-4 (logtest? (-> s1-4 flags) (editable-flag selected))) + (set! f0-29 (cond + ((-> arg0 move-lock?) + (-> arg0 move-speed) + ) + (else + (vector-! s5-3 (edit-get-trans s1-4) s4-3) + (let ((f0-32 (* 0.00390625 f30-3 (vector-length s5-3)))) + (set! (-> arg0 move-speed) f0-32) + (set! f0-29 (fmax -40960.0 (fmin 40960.0 f0-32))) + ) + (set! (-> arg0 move-lock?) #t) + f0-29 + ) + ) + ) + (set-vector! s5-3 0.0 0.0 f0-29 0.0) + (editable-method-15 s1-4 s5-3 56) + ) + (+! s2-3 1) + (set! s1-4 (-> arg0 data s2-3)) + ) + ) + ) + ) + (cleanup-selection arg0) + ) + (((editable-command drag-move-xz)) + (let ((s5-4 (-> arg2 level-offset)) + (s4-4 (-> arg2 edit-plane-normal)) + (s3-4 (new 'stack-no-clear 'vector)) + ) + (set! (-> s3-4 x) 0.0) + (set! (-> s3-4 y) 1.0) + (set! (-> s3-4 z) 0.0) + (set! (-> s3-4 w) 1.0) + (let* ((s2-4 (new-stack-vector0)) + (s1-5 (-> arg0 length)) + (s0-6 0) + (a0-36 (-> arg0 data s0-6)) + ) + (while (< s0-6 s1-5) + (when (and a0-36 (logtest? (-> a0-36 flags) (editable-flag selected))) + (if (= (-> s2-4 w) 0.0) + (editable-method-20 a0-36 s5-4 s4-4 s3-4 s2-4) + (editable-method-15 a0-36 s2-4 56) + ) + ) + (+! s0-6 1) + (set! a0-36 (-> arg0 data s0-6)) + ) + ) + ) + (cleanup-selection arg0) + ) + (((editable-command drag-move-xy)) + (let ((s5-5 (-> arg2 level-offset)) + (s4-5 (-> arg2 edit-plane-normal)) + (s3-5 (-> *math-camera* inv-camera-rot vector 2)) + (s2-5 (new-stack-vector0)) + ) + (set! (-> s3-5 y) 0.0) + (vector-normalize! s3-5 1.0) + (let* ((s1-6 (-> arg0 length)) + (s0-7 0) + (a0-40 (-> arg0 data s0-7)) + ) + (while (< s0-7 s1-6) + (when (and a0-40 (logtest? (-> a0-40 flags) (editable-flag selected))) + (if (= (-> s2-5 w) 0.0) + (editable-method-20 a0-40 s5-5 s4-5 s3-5 s2-5) + (editable-method-15 a0-40 s2-5 56) + ) + ) + (+! s0-7 1) + (set! a0-40 (-> arg0 data s0-7)) + ) + ) + ) + (cleanup-selection arg0) + ) + (else + (return #f) + ) + ) + #t + ) + +(defun execute-move ((arg0 editable-array) (arg1 editable-command) (arg2 editable-array)) + (case arg1 + (((editable-command drag-resize)) + (let ((s4-0 (new 'stack-no-clear 'vector))) + (set! (-> s4-0 x) (* 100.0 (- (-> arg2 edit-plane-normal x) (-> arg2 level-offset x)))) + (set! (-> s4-0 y) 0.0) + (set! (-> s4-0 z) 0.0) + (set! (-> s4-0 w) 1.0) + (let* ((s5-1 (-> arg0 length)) + (s3-0 0) + (a0-2 (-> arg0 data s3-0)) + ) + (while (< s3-0 s5-1) + (if (and a0-2 (logtest? (-> a0-2 flags) (editable-flag selected))) + (editable-method-17 a0-2 s4-0) + ) + (+! s3-0 1) + (set! a0-2 (-> arg0 data s3-0)) + ) + ) + ) + ) + (((editable-command refresh-filter)) + (let* ((s5-2 (-> arg0 length)) + (s4-1 0) + (s3-1 (-> arg0 data s4-1)) + ) + (while (< s4-1 s5-2) + (if (and s3-1 (-> s3-1 region)) + (set! (-> s3-1 region filter) (editable-region-method-12 (-> s3-1 region))) + ) + (+! s4-1 1) + (set! s3-1 (-> arg0 data s4-1)) + ) + ) + ) + (((editable-command resize)) + (let ((s5-3 (new 'stack-no-clear 'vector))) + (set! (-> s5-3 x) 0.0) + (set! (-> s5-3 y) (* 4096.0 (-> arg0 edit-param0))) + (set! (-> s5-3 z) 0.0) + (set! (-> s5-3 w) 1.0) + (let* ((s4-2 (-> arg0 length)) + (s3-2 0) + (a0-7 (-> arg0 data s3-2)) + ) + (while (< s3-2 s4-2) + (if (and a0-7 (logtest? (-> a0-7 flags) (editable-flag selected))) + (editable-method-17 a0-7 s5-3) + ) + (+! s3-2 1) + (set! a0-7 (-> arg0 data s3-2)) + ) + ) + ) + ) + (((editable-command insert-sphere)) + (let ((s4-3 (editable-array-method-11 arg0))) + (when (>= s4-3 0) + (if (and (-> arg0 region) (-> arg0 region locked)) + (set! (-> arg0 region) (new 'debug 'editable-region)) + ) + (sound-play-by-spec + (new 'static 'sound-spec + :mask (sound-mask fo-curve) + :num 1.0 + :group (sound-group sfx) + :sound-name (static-sound-name "beep") + :volume #x400 + :fo-curve 1 + ) + (new-sound-id) + (the-as vector #t) + ) + (let* ((a2-3 (editable-array-method-17 arg0 (new 'stack-no-clear 'vector) (-> arg2 edit-plane-normal))) + (s3-4 (new 'debug 'editable-sphere a2-3 2048.0 (-> arg0 region))) + ) + (set! (-> arg0 data s4-3) s3-4) + (editable-array-method-9 arg0 (editable-command select-none) arg2) + (select-editable! s3-4 #t) + ) + ) + ) + ) + (((editable-command insert-point)) + (let ((s4-4 (editable-array-method-11 arg0))) + (when (>= s4-4 0) + (if (and (-> arg0 region) (-> arg0 region locked)) + (set! (-> arg0 region) (new 'debug 'editable-region)) + ) + (sound-play-by-spec + (new 'static 'sound-spec + :mask (sound-mask fo-curve) + :num 1.0 + :group (sound-group sfx) + :sound-name (static-sound-name "beep") + :volume #x400 + :fo-curve 1 + ) + (new-sound-id) + (the-as vector #t) + ) + (let* ((a2-7 (editable-array-method-17 arg0 (new 'stack-no-clear 'vector) (-> arg2 edit-plane-normal))) + (s3-6 (new 'debug 'editable-point a2-7 (-> arg0 region))) + ) + (set! (-> arg0 data s4-4) s3-6) + (editable-array-method-9 arg0 (editable-command select-none) arg2) + (select-editable! s3-6 #t) + ) + ) + ) + ) + (((editable-command insert-sample)) + (let ((s4-5 (editable-array-method-11 arg0))) + (when (>= s4-5 0) + (sound-play-by-spec + (new 'static 'sound-spec + :mask (sound-mask fo-curve) + :num 1.0 + :group (sound-group sfx) + :sound-name (static-sound-name "beep") + :volume #x400 + :fo-curve 1 + ) + (new-sound-id) + (the-as vector #t) + ) + (let* ((a2-11 (editable-array-method-17 arg0 (new 'stack-no-clear 'vector) (-> arg2 edit-plane-normal))) + (s3-8 (new 'debug 'editable-sample a2-11 *editable-sample-region*)) + ) + (set! (-> arg0 data s4-5) s3-8) + (editable-array-method-9 arg0 (editable-command select-none) arg2) + (select-editable! s3-8 #t) + ) + ) + ) + ) + (((editable-command insert-sample-camera)) + (let ((s4-6 (editable-array-method-11 arg0))) + (when (>= s4-6 0) + (sound-play-by-spec + (new 'static 'sound-spec + :mask (sound-mask fo-curve) + :num 1.0 + :group (sound-group sfx) + :sound-name (static-sound-name "beep") + :volume #x400 + :fo-curve 1 + ) + (new-sound-id) + (the-as vector #t) + ) + (let ((s3-11 (new 'debug 'editable-sample (math-camera-pos) *editable-sample-region*))) + (set! (-> arg0 data s4-6) s3-11) + (editable-array-method-9 arg0 (editable-command select-none) arg2) + (select-editable! s3-11 #t) + ) + ) + ) + ) + (((editable-command insert-light)) + (let ((s4-7 (editable-array-method-11 arg0))) + (when (>= s4-7 0) + (sound-play-by-spec + (new 'static 'sound-spec + :mask (sound-mask fo-curve) + :num 1.0 + :group (sound-group sfx) + :sound-name (static-sound-name "beep") + :volume #x400 + :fo-curve 1 + ) + (new-sound-id) + (the-as vector #t) + ) + (let* ((a2-18 (editable-array-method-17 arg0 (new 'stack-no-clear 'vector) (-> arg2 edit-plane-normal))) + (s3-13 (new 'debug 'editable-light a2-18 2048.0 *editable-light-region*)) + ) + (set! (-> arg0 data s4-7) s3-13) + (editable-array-method-9 arg0 (editable-command select-none) arg2) + (select-editable! s3-13 #t) + (editable-method-23 s3-13) + ) + (update-light-hash *light-hash*) + ) + ) + ) + (((editable-command insert-entity)) + (let ((s4-8 (editable-array-method-11 arg0))) + (when (>= s4-8 0) + (sound-play-by-spec + (new 'static 'sound-spec + :mask (sound-mask fo-curve) + :num 1.0 + :group (sound-group sfx) + :sound-name (static-sound-name "beep") + :volume #x400 + :fo-curve 1 + ) + (new-sound-id) + (the-as vector #t) + ) + (let* ((a2-22 (editable-array-method-17 arg0 (new 'stack-no-clear 'vector) (-> arg2 edit-plane-normal))) + (s3-15 (new 'debug 'editable-entity a2-22 *editable-entity-region*)) + ) + (set! (-> arg0 data s4-8) s3-15) + (editable-array-method-9 arg0 (editable-command select-none) arg2) + (select-editable! s3-15 #t) + ) + ) + ) + ) + (((editable-command insert-box)) + (sound-play-by-spec + (new 'static 'sound-spec + :mask (sound-mask fo-curve) + :num 1.0 + :group (sound-group sfx) + :sound-name (static-sound-name "beep") + :volume #x400 + :fo-curve 1 + ) + (new-sound-id) + (the-as vector #t) + ) + (if (and (-> arg0 region) (-> arg0 region locked)) + (set! (-> arg0 region) (new 'debug 'editable-region)) + ) + (let ((a1-42 (editable-array-method-17 arg0 (new 'stack-no-clear 'vector) (-> arg2 edit-plane-normal)))) + (insert-box arg0 a1-42) + ) + ) + (((editable-command insert-face)) + (sound-play-by-spec + (new 'static 'sound-spec + :mask (sound-mask fo-curve) + :num 1.0 + :group (sound-group sfx) + :sound-name (static-sound-name "beep") + :volume #x400 + :fo-curve 1 + ) + (new-sound-id) + (the-as vector #t) + ) + (if (and (-> arg0 region) (-> arg0 region locked)) + (set! (-> arg0 region) (new 'debug 'editable-region)) + ) + (let ((s4-11 (editable-array-method-11 arg0))) + 0 + (editable-array-method-14 + arg0 + (the-as + (function symbol) + (lambda ((arg0 editable) (arg1 symbol)) (and (type? arg0 editable-point) (= (-> arg0 region) arg1))) + ) + (the-as symbol (-> arg0 region)) + ) + (let ((s5-5 (-> arg0 selection length))) + (cond + ((= s5-5 1) + (cond + ((and (-> arg0 target) (type? (-> arg0 target) editable-point) (= (-> arg0 target region) (-> arg0 region))) + (set! (-> arg0 selection 1) (-> arg0 target)) + (+! (-> arg0 selection length) 1) + (+! s5-5 1) + ) + (else + (editable-array-method-13 arg0 (the-as uint 14) (the-as basic 33) "pick the point to complete the face") + (return #f) + ) + ) + ) + ((and (>= s5-5 2) (>= 6 s5-5)) + ) + (else + (format + 0 + "ERROR: face can only be inserted if there are 2-6 points selected in the current region, got ~D.~%" + s5-5 + ) + (return #f) + ) + ) + (when (>= s4-11 0) + (let ((s3-17 (new 'debug 'editable-face (-> arg0 region)))) + (set! (-> arg0 data s4-11) s3-17) + (dotimes (s4-12 s5-5) + (set! (-> s3-17 vertex s4-12) (the-as editable-point (-> arg0 selection s4-12))) + (set! (-> arg0 selection s4-12 owner) (cons s3-17 (-> arg0 selection s4-12 owner))) + ) + (set! (-> s3-17 length) s5-5) + (select-editable! s3-17 #t) + (editable-method-28 s3-17 (editable-filter load)) + (editable-method-29 s3-17 (editable-filter load)) + ) + ) + ) + ) + ) + (((editable-command insert-plane)) + (if (and (-> arg0 region) (-> arg0 region locked)) + (set! (-> arg0 region) (new 'debug 'editable-region)) + ) + (sound-play-by-spec + (new 'static 'sound-spec + :mask (sound-mask fo-curve) + :num 1.0 + :group (sound-group sfx) + :sound-name (static-sound-name "beep") + :volume #x400 + :fo-curve 1 + ) + (new-sound-id) + (the-as vector #t) + ) + (let ((s3-18 (editable-array-method-11 arg0))) + 0 + (editable-array-method-14 + arg0 + (the-as + (function symbol) + (lambda ((arg0 editable) (arg1 symbol)) (and (type? arg0 editable-point) (= (-> arg0 region) arg1))) + ) + (the-as symbol (-> arg0 region)) + ) + (let ((s5-7 (-> arg0 selection length))) + (cond + ((= s5-7 1) + (cond + ((and (-> arg0 target) (type? (-> arg0 target) editable-point) (= (-> arg0 target region) (-> arg0 region))) + (set! (-> arg0 selection 1) (-> arg0 target)) + (+! (-> arg0 selection length) 1) + (+! s5-7 1) + ) + (else + (editable-array-method-13 arg0 (the-as uint 14) (the-as basic 34) "pick the point to complete the plane") + (return #f) + ) + ) + ) + ((= s5-7 2) + ) + (else + (format + 0 + "ERROR: plane can only be inserted if there are 2 points selected in the current region, got ~D.~%" + s5-7 + ) + (return #f) + ) + ) + (when (>= s3-18 0) + (let ((s4-14 (new 'debug 'editable-plane (-> arg0 region)))) + (set! (-> arg0 data s3-18) s4-14) + (dotimes (s3-19 s5-7) + (set! (-> s4-14 vertex s3-19) (the-as editable-point (-> arg0 selection s3-19))) + (set! (-> arg0 selection s3-19 owner) (cons s4-14 (-> arg0 selection s3-19 owner))) + ) + (set! (-> s4-14 length) s5-7) + (select-editable! s4-14 #t) + (editable-method-28 s4-14 (editable-filter load)) + (editable-method-29 s4-14 (editable-filter load)) + ) + ) + ) + ) + ) + (else + (return #f) + ) + ) + #t + ) + +(defmethod editable-array-method-9 editable-array ((obj editable-array) (arg0 editable-command) (arg1 editable-array)) + (if (execute-select obj arg0 arg1) + (return #f) + ) + (if (execute-move obj arg0 arg1) + (return #f) + ) + (if (execute-mouse-move obj arg0 arg1) + (return #f) + ) + (cond + ((= arg0 (editable-command copy)) + (sound-play-by-spec + (new 'static 'sound-spec + :mask (sound-mask fo-curve) + :num 1.0 + :group (sound-group sfx) + :sound-name (static-sound-name "beep") + :volume #x400 + :fo-curve 1 + ) + (new-sound-id) + (the-as vector #t) + ) + (set! (-> obj selection length) 0) + (let* ((s4-2 (-> obj length)) + (s3-1 0) + (s2-0 (-> obj data s3-1)) + ) + (while (< s3-1 s4-2) + (when (and s2-0 (logtest? (-> s2-0 flags) (editable-flag selected))) + (editable-method-27 s2-0 obj) + (when (= (-> s2-0 type) editable-light) + (editable-method-23 s2-0) + (update-light-hash *light-hash*) + ) + ) + (+! s3-1 1) + (set! s2-0 (-> obj data s3-1)) + ) + ) + (editable-array-method-9 obj (editable-command select-none) arg1) + (let ((s5-1 (the-as editable-region #f))) + (dotimes (s4-3 (-> obj selection length)) + (let ((a0-13 (-> obj selection s4-3))) + (when (and a0-13 (logtest? s4-3 1)) + (set! s5-1 (-> a0-13 region)) + (select-editable! a0-13 #t) + ) + ) + ) + (if (not (-> obj region-lock?)) + (set! (-> obj region) s5-1) + ) + ) + ) + ((= arg0 (editable-command copy-region)) + (sound-play-by-spec + (new 'static 'sound-spec + :mask (sound-mask fo-curve) + :num 1.0 + :group (sound-group sfx) + :sound-name (static-sound-name "beep") + :volume #x400 + :fo-curve 1 + ) + (new-sound-id) + (the-as vector #t) + ) + (when (and (-> obj region) (not (-> obj region locked))) + (editable-array-method-9 obj (editable-command select-current-region) arg1) + (let ((v1-52 (copy (-> obj region) 'debug))) + (set! (-> v1-52 id) (the-as uint 0)) + (set! (-> v1-52 changed) #t) + (set! (-> obj region) v1-52) + ) + (editable-array-method-9 obj (editable-command copy) arg1) + ) + ) + ((= arg0 (editable-command delete)) + (sound-play-by-spec + (new 'static 'sound-spec + :mask (sound-mask fo-curve) + :num 1.0 + :group (sound-group sfx) + :sound-name (static-sound-name "beep") + :volume #x400 + :fo-curve 1 + ) + (new-sound-id) + (the-as vector #t) + ) + (let* ((s5-3 (-> obj length)) + (s4-6 0) + (s3-3 (-> obj data s4-6)) + ) + (while (< s4-6 s5-3) + (when (and s3-3 (logtest? (-> s3-3 flags) (editable-flag selected))) + (editable-array-method-15 obj s3-3) + (when (= (-> s3-3 type) editable-light) + (editable-method-23 s3-3) + (update-light-hash *light-hash*) + ) + ) + (+! s4-6 1) + (set! s3-3 (-> obj data s4-6)) + ) + ) + (if (not (-> obj region-lock?)) + (set! (-> obj region) #f) + ) + ) + ((= arg0 (editable-command delete-region)) + (when (-> obj region) + (sound-play-by-spec + (new 'static 'sound-spec + :mask (sound-mask fo-curve) + :num 1.0 + :group (sound-group sfx) + :sound-name (static-sound-name "beep") + :volume #x400 + :fo-curve 1 + ) + (new-sound-id) + (the-as vector #t) + ) + (when (!= (-> obj region) *editable-light-region*) + (editable-array-method-9 obj (editable-command select-current-region) arg1) + (editable-array-method-9 obj (editable-command delete) arg1) + (set! (-> obj region) #f) + ) + ) + ) + ((= arg0 (editable-command snap-to-ground)) + (sound-play-by-spec + (new 'static 'sound-spec + :mask (sound-mask fo-curve) + :num 1.0 + :group (sound-group sfx) + :sound-name (static-sound-name "beep") + :volume #x400 + :fo-curve 1 + ) + (new-sound-id) + (the-as vector #t) + ) + (let* ((s5-5 (new 'stack-no-clear 'vector)) + (s4-9 (-> obj length)) + (s3-5 0) + (s2-1 (-> obj data s3-5)) + ) + (while (< s3-5 s4-9) + (when (and s2-1 (logtest? (-> s2-1 flags) (editable-flag selected))) + (if (editable-method-11 s2-1 s5-5) + (editable-method-19 s2-1 s5-5) + ) + ) + (+! s3-5 1) + (set! s2-1 (-> obj data s3-5)) + ) + ) + ) + ((= arg0 (editable-command snap-y)) + (sound-play-by-spec + (new 'static 'sound-spec + :mask (sound-mask fo-curve) + :num 1.0 + :group (sound-group sfx) + :sound-name (static-sound-name "beep") + :volume #x400 + :fo-curve 1 + ) + (new-sound-id) + (the-as vector #t) + ) + (cond + ((-> obj target) + (let* ((s5-7 (edit-get-trans (-> obj target))) + (s4-11 (-> obj length)) + (s3-6 0) + (a0-37 (-> obj data s3-6)) + ) + (while (< s3-6 s4-11) + (if (and a0-37 (logtest? (-> a0-37 flags) (editable-flag selected))) + (edit-coord! a0-37 s5-7 (editable-flag y no-plane-snap)) + ) + (+! s3-6 1) + (set! a0-37 (-> obj data s3-6)) + ) + ) + ) + (else + (editable-array-method-13 obj (the-as uint 14) (the-as basic 41) "pick the editable to use the y from") + ) + ) + ) + ((= arg0 (editable-command snap-xz)) + (sound-play-by-spec + (new 'static 'sound-spec + :mask (sound-mask fo-curve) + :num 1.0 + :group (sound-group sfx) + :sound-name (static-sound-name "beep") + :volume #x400 + :fo-curve 1 + ) + (new-sound-id) + (the-as vector #t) + ) + (cond + ((-> obj target) + (let* ((s5-9 (edit-get-trans (-> obj target))) + (s4-13 (-> obj length)) + (s3-7 0) + (a0-41 (-> obj data s3-7)) + ) + (while (< s3-7 s4-13) + (if (and a0-41 (logtest? (-> a0-41 flags) (editable-flag selected))) + (edit-coord! a0-41 s5-9 (editable-flag x z no-plane-snap)) + ) + (+! s3-7 1) + (set! a0-41 (-> obj data s3-7)) + ) + ) + ) + (else + (editable-array-method-13 obj (the-as uint 14) (the-as basic 40) "pick the editable to use the xz from") + ) + ) + ) + ((= arg0 (editable-command region-set)) + (when (and (-> obj region) (not (-> obj region locked))) + (sound-play-by-spec + (new 'static 'sound-spec + :mask (sound-mask fo-curve) + :num 1.0 + :group (sound-group sfx) + :sound-name (static-sound-name "beep") + :volume #x400 + :fo-curve 1 + ) + (new-sound-id) + (the-as vector #t) + ) + (let* ((s5-11 (-> obj length)) + (s4-15 0) + (a0-44 (-> obj data s4-15)) + ) + (while (< s4-15 s5-11) + (if (and a0-44 (logtest? (-> a0-44 flags) (editable-flag selected))) + (editable-method-21 a0-44 (-> obj region)) + ) + (+! s4-15 1) + (set! a0-44 (-> obj data s4-15)) + ) + ) + ) + ) + ((= arg0 (editable-command region-add)) + (when (and (-> obj region) (not (-> obj region locked))) + (sound-play-by-spec + (new 'static 'sound-spec + :mask (sound-mask fo-curve) + :num 1.0 + :group (sound-group sfx) + :sound-name (static-sound-name "beep") + :volume #x400 + :fo-curve 1 + ) + (new-sound-id) + (the-as vector #t) + ) + (if (-> obj target) + (editable-method-21 (-> obj target) (-> obj region)) + (editable-array-method-13 obj (the-as uint 14) (the-as basic 49) "pick the editable to add to current region") + ) + ) + ) + ((= arg0 (editable-command region-new)) + (let ((v1-175 (new 'debug 'editable-region))) + (if (and (-> obj region) (not (-> obj region locked))) + (set! (-> v1-175 tree) (-> obj region tree)) + ) + (set! (-> obj region) v1-175) + ) + (editable-array-method-9 obj (editable-command region-set) arg1) + ) + ((= arg0 (editable-command flip-side)) + (sound-play-by-spec + (new 'static 'sound-spec + :mask (sound-mask fo-curve) + :num 1.0 + :group (sound-group sfx) + :sound-name (static-sound-name "beep") + :volume #x400 + :fo-curve 1 + ) + (new-sound-id) + (the-as vector #t) + ) + (let* ((s5-14 (-> obj length)) + (s4-18 0) + (a0-58 (-> obj data s4-18)) + ) + (while (< s4-18 s5-14) + (if (and a0-58 (logtest? (-> a0-58 flags) (editable-flag selected))) + (editable-method-24 a0-58) + ) + (+! s4-18 1) + (set! a0-58 (-> obj data s4-18)) + ) + ) + ) + ((= arg0 (editable-command rotate-level)) + (let* ((f0-1 (* 182.04445 (-> obj edit-param0))) + (s5-15 (matrix-rotate-y! (new 'stack-no-clear 'matrix) f0-1)) + (s4-19 (-> obj length)) + (s3-8 0) + (a0-60 (-> obj data s3-8)) + ) + (while (< s3-8 s4-19) + (if (and a0-60 region (= (-> a0-60 region level) (-> obj level))) + (editable-method-18 a0-60 (-> obj level-offset) s5-15) + ) + (+! s3-8 1) + (set! a0-60 (-> obj data s3-8)) + ) + ) + ) + ((= arg0 (editable-command translate-y-level)) + (let ((s5-16 (new 'stack-no-clear 'vector))) + (set! (-> s5-16 x) 0.0) + (set! (-> s5-16 y) (* 4096.0 (-> obj edit-param0))) + (set! (-> s5-16 z) 0.0) + (set! (-> s5-16 w) 1.0) + (let* ((s4-20 (-> obj length)) + (s3-9 0) + (a0-61 (-> obj data s3-9)) + ) + (while (< s3-9 s4-20) + (if (and a0-61 region (= (-> a0-61 region level) (-> obj level))) + (editable-method-15 a0-61 s5-16 56) + ) + (+! s3-9 1) + (set! a0-61 (-> obj data s3-9)) + ) + ) + ) + ) + ((= arg0 (editable-command save)) + (let* ((s5-17 (-> obj length)) + (s4-21 0) + (v1-231 (-> obj data s4-21)) + ) + (while (< s4-21 s5-17) + (when (and v1-231 (-> v1-231 region)) + (let ((t9-53 (method-of-object (-> v1-231 region) editable-region-method-9))) + 0 + 0 + (t9-53) + ) + ) + (+! s4-21 1) + (set! v1-231 (-> obj data s4-21)) + ) + ) + (let ((t9-54 (method-of-object *editable-sample-region* editable-region-method-9))) + 0 + 0 + (t9-54) + ) + (let ((t9-55 (method-of-object *editable-light-region* editable-region-method-9))) + 0 + 0 + (t9-55) + ) + (let ((t9-56 (method-of-object *editable-entity-region* editable-region-method-9))) + 0 + 0 + (t9-56) + ) + ) + ((= arg0 (editable-command load)) + (editable-array-method-9 obj (editable-command select-none) arg1) + (dotimes (v1-248 (-> obj length)) + (set! (-> obj data v1-248) #f) + ) + (set! (-> obj length) 0) + (let* ((s5-18 obj) + (s4-22 (method-of-object s5-18 editable-array-method-12)) + (v1-253 (level-get-target-inside *level*)) + ) + (s4-22 s5-18 (the-as editable-array (if v1-253 + (-> v1-253 info dbname) + #f + ) + ) + ) + ) + (editable-array-method-9 obj (editable-command update-game) (the-as editable-array #f)) + ) + ((= arg0 (editable-command update-game)) + (let ((t9-61 reset-light-hash)) + *light-hash* + (t9-61) + ) + (let* ((s5-19 (-> obj length)) + (s4-23 0) + (a0-76 (-> obj data s4-23)) + ) + (while (< s4-23 s5-19) + (if a0-76 + (editable-method-23 a0-76) + ) + (+! s4-23 1) + (set! a0-76 (-> obj data s4-23)) + ) + ) + (update-light-hash *light-hash*) + ) + ((or (= arg0 (editable-command exit)) (= arg0 (editable-command kill))) + (deactivate self) + ) + ) + #f + ) + +(defmethod deactivate editable-player ((obj editable-player)) + (dotimes (v1-0 (-> *level* length)) + (let ((a1-3 (-> *level* level v1-0))) + (if (= (-> a1-3 status) 'active) + (set! (-> a1-3 light-hash) (-> a1-3 bsp light-hash)) + ) + ) + ) + (set! *editable* (the-as (pointer editable-player) #f)) + (set! *external-cam-mode* (-> obj external-cam-mode)) + ((method-of-type process-drawable deactivate) obj) + (none) + ) + +;; WARN: Return type mismatch process-drawable vs editable-player. +(defmethod relocate editable-player ((obj editable-player) (arg0 int)) + (let ((v1-0 *kernel-context*)) + (set! (-> v1-0 relocating-process) obj) + (set! (-> v1-0 relocating-min) (the-as int (&-> obj type))) + (set! (-> v1-0 relocating-max) + (the-as int (+ (+ (-> obj allocated-length) -4 (-> process size)) (the-as int obj))) + ) + (set! (-> v1-0 relocating-offset) arg0) + ) + (let ((v1-2 (-> obj current))) + (if (and (>= (the-as int v1-2) (-> *kernel-context* relocating-min)) + (< (the-as int v1-2) (-> *kernel-context* relocating-max)) + ) + (&+! (-> obj current) arg0) + ) + ) + (the-as editable-player ((method-of-type process-drawable relocate) obj arg0)) + ) + +(defmethod editable-player-method-21 editable-player ((obj editable-player)) + (set! *display-region-marks* #f) + (let* ((s5-0 (-> obj current length)) + (s4-0 0) + (a0-2 (-> obj current data s4-0)) + ) + (while (< s4-0 s5-0) + (if (and a0-2 (or (and (logtest? (-> a0-2 region filter) (-> obj current filter 0)) + (logtest? (-> a0-2 region filter) (-> obj current filter 1)) + ) + (logtest? (-> a0-2 flags) (editable-flag selected)) + ) + ) + (editable-method-10 a0-2) + ) + (+! s4-0 1) + (set! a0-2 (-> obj current data s4-0)) + ) + ) + (when #t + (format *stdcon* "~0K") + (format *stdcon* "~16S~16S~16S~%" "Left button" "Middle button" "Right button") + (format + *stdcon* + "~16S~16S~16S~%" + (editable-command->string + (if (and (nonzero? (-> obj command 1)) (or (zero? (-> obj command 0)) (logtest? (-> *mouse* button0-abs 0) 1))) + (the-as editable-command (-> obj command 1)) + (the-as editable-command (-> obj command 0)) + ) + ) + (editable-command->string + (if (and (nonzero? (-> obj command 5)) (or (zero? (-> obj command 4)) (logtest? (-> *mouse* button0-abs 0) 4))) + (the-as editable-command (-> obj command 5)) + (the-as editable-command (-> obj command 4)) + ) + ) + (editable-command->string + (if (and (nonzero? (-> obj command 3)) (or (zero? (-> obj command 2)) (logtest? (-> *mouse* button0-abs 0) 2))) + (the-as editable-command (-> obj command 3)) + (the-as editable-command (-> obj command 2)) + ) + ) + ) + (let* ((s5-2 (-> obj current length)) + (s4-2 0) + (v1-35 (-> obj current data s4-2)) + ) + (while (< s4-2 s5-2) + (when (and v1-35 (logtest? (-> v1-35 flags) (editable-flag selected))) + (let ((s3-1 (-> v1-35 name))) + (if (not (string-prefix= "undefined" s3-1)) + (format *stdcon* "~s~%" s3-1) + ) + ) + ) + (+! s4-2 1) + (set! v1-35 (-> obj current data s4-2)) + ) + ) + (when (!= *master-mode* 'menu) + (let ((a2-5 (-> obj current target-message))) + (if a2-5 + (format *stdcon* "~%~3L~S~0L~%" a2-5) + ) + ) + (when (cpad-hold? 1 triangle) + (let* ((s5-3 (-> obj current length)) + (s4-3 0) + (a0-29 (-> obj current data s4-3)) + ) + (while (< s4-3 s5-3) + (when (and a0-29 (or (and (logtest? (-> a0-29 region filter) (-> obj current filter 0)) + (logtest? (-> a0-29 region filter) (-> obj current filter 1)) + ) + (logtest? (-> a0-29 flags) (editable-flag selected)) + ) + ) + (if (and (-> a0-29 region) (!= (-> a0-29 type) editable-point)) + (editable-region-method-11 (-> a0-29 region) (edit-get-trans a0-29) (if (cpad-hold? 1 circle) + 1 + 0 + ) + ) + ) + ) + (+! s4-3 1) + (set! a0-29 (-> obj current data s4-3)) + ) + ) + (format *stdcon* "~%") + (cond + ((-> obj current region) + (let ((s5-4 (-> obj current region))) + (format + *stdcon* + "~%region: region-~D ~S ~S~S~%" + (-> s5-4 id) + (-> s5-4 level) + (-> s5-4 tree) + (if (-> s5-4 changed) + " (modified)" + "" + ) + ) + (format *stdcon* " (on-enter ~S)~%" (-> s5-4 on-enter)) + (format *stdcon* " (on-inside ~S)~%" (-> s5-4 on-inside)) + (format *stdcon* " (on-exit ~S)~%" (-> s5-4 on-exit)) + ) + ) + (else + (format *stdcon* "no region~%") + ) + ) + (when (-> obj current edit-plane) + (let ((a2-13 (-> obj current edit-plane))) + (format *stdcon* "~%edit-plane: ~A~%" a2-13) + ) + ) + (format *stdcon* "~%selected:~%") + (let* ((s5-5 (-> obj current length)) + (s4-4 0) + (a2-14 (-> obj current data s4-4)) + ) + (while (< s4-4 s5-5) + (if (and a2-14 (logtest? (-> a2-14 flags) (editable-flag selected))) + (format *stdcon* " ~A~%" a2-14) + ) + (+! s4-4 1) + (set! a2-14 (-> obj current data s4-4)) + ) + ) + ) + ) + (format *stdcon* "~1K~%") + ) + 0 + (none) + ) + +(defstate idle (editable-player) + :virtual #t + :event (behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block)) + (local-vars (v0-0 none)) + (let ((v1-0 arg2)) + (the-as + object + (cond + ((= v1-0 'execute) + (let ((a2-1 (-> arg3 param 0))) + (case a2-1 + ((28 27 35 29 31 32) + (editable-array-method-13 + (-> self current) + (the-as uint 15) + (the-as basic a2-1) + "click on the point to insert at (up target, down camera)" + ) + ) + ((51 1 47 36 55 56) + (if (not (-> self left-handed)) + (editable-array-method-13 + (-> self current) + (the-as uint 16) + (the-as basic a2-1) + "press x to confirm, square to cancel" + ) + (editable-array-method-13 + (-> self current) + (the-as uint 16) + (the-as basic a2-1) + "press down to confirm, left to cancel" + ) + ) + ) + (else + (editable-array-method-9 (-> self current) (the-as editable-command a2-1) (the-as editable-array *mouse*)) + ) + ) + ) + ) + ((= v1-0 'exit) + (deactivate self) + ) + ((= v1-0 'menu) + (set! v0-0 (the-as none (+ (-> self clock frame-counter) (the-as time-frame (-> arg3 param 0))))) + (set! (-> self close-menu-time) (the-as time-frame v0-0)) + v0-0 + ) + ((or (= v1-0 'on-enter) (= v1-0 'on-exit) (= v1-0 'on-inside)) + (let ((s4-0 (-> self current region))) + (when s4-0 + (let ((gp-1 (-> arg3 param 0))) + (set! (-> *syntax-context* got-error?) #f) + (eval! *syntax-context* (the-as pair gp-1)) + (when (not (-> *syntax-context* got-error?)) + (set! (-> s4-0 changed) #t) + (cond + ((= arg2 'on-enter) + (set! (-> s4-0 on-enter) (the-as string gp-1)) + ) + ((= arg2 'on-inside) + (set! (-> s4-0 on-inside) (the-as string gp-1)) + ) + ((= arg2 'on-exit) + (set! (-> s4-0 on-exit) (the-as string gp-1)) + ) + ) + ) + ) + (set! v0-0 (the-as none (editable-region-method-12 s4-0))) + (set! (-> s4-0 filter) (the-as editable-filter v0-0)) + v0-0 + ) + ) + ) + ((= v1-0 'select) + (let ((gp-2 (-> arg3 param 0))) + (editable-array-method-9 (-> self current) (editable-command select-none) (the-as editable-array #f)) + (let* ((s5-1 (-> self current length)) + (s4-1 0) + (a0-36 (-> self current data s4-1)) + ) + (while (< s4-1 s5-1) + (when (and a0-36 (or (and (logtest? (-> a0-36 region filter) (-> self current filter 0)) + (logtest? (-> a0-36 region filter) (-> self current filter 1)) + ) + (logtest? (-> a0-36 flags) (editable-flag selected)) + ) + ) + (when (and (-> a0-36 region) (= gp-2 (-> a0-36 region id))) + (set! (-> self current region) (-> a0-36 region)) + (select-editable! a0-36 #t) + ) + ) + (+! s4-1 1) + (set! a0-36 (-> self current data s4-1)) + ) + ) + ) + #f + ) + ((= v1-0 'name) + (let* ((s5-2 (-> self current length)) + (s4-2 0) + (s3-0 (-> self current data s4-2)) + ) + (while (< s4-2 s5-2) + (when (and s3-0 (logtest? (-> s3-0 flags) (editable-flag selected))) + (let ((v1-60 (if (type? s3-0 editable) + s3-0 + ) + ) + ) + (when v1-60 + (set! (-> v1-60 name) (the-as string (-> arg3 param 0))) + (logior! (-> v1-60 flags) (editable-flag changed)) + (let ((v1-61 (-> v1-60 region))) + (if v1-61 + (set! (-> v1-61 changed) #t) + ) + ) + ) + ) + ) + (+! s4-2 1) + (set! s3-0 (-> self current data s4-2)) + ) + ) + #f + ) + ((= v1-0 'level) + (let ((gp-3 (lookup-level-info (the-as symbol (-> arg3 param 0))))) + (when (-> gp-3 dbname) + (let* ((s5-3 (-> self current length)) + (s4-3 0) + (s3-1 (-> self current data s4-3)) + ) + (while (< s4-3 s5-3) + (when (and s3-1 (logtest? (-> s3-1 flags) (editable-flag selected))) + (let ((v1-73 (if (type? s3-1 editable) + s3-1 + ) + ) + ) + (when (and v1-73 (-> v1-73 region)) + (set! (-> v1-73 region level) (the-as string (-> gp-3 dbname))) + (set! (-> v1-73 region changed) #t) + ) + ) + ) + (+! s4-3 1) + (set! s3-1 (-> self current data s4-3)) + ) + ) + #f + ) + ) + ) + ((= v1-0 'get-level) + (-> self current level) + ) + ((= v1-0 'direction) + (let* ((f30-0 (the-as float (-> arg3 param 0))) + (f28-0 (the-as float (-> arg3 param 1))) + (f26-0 (the-as float (-> arg3 param 2))) + (f24-0 (if (and (zero? (-> arg3 param 0)) (zero? (-> arg3 param 1)) (zero? (-> arg3 param 2))) + 0.0 + 1.0 + ) + ) + (gp-4 (-> self current length)) + (s5-4 0) + (s4-4 (-> self current data s5-4)) + ) + (while (< s5-4 gp-4) + (when (and s4-4 (logtest? (-> s4-4 flags) (editable-flag selected))) + (let ((s3-2 (if (type? s4-4 editable-light) + (the-as editable-light s4-4) + ) + ) + ) + (when s3-2 + (set-vector! (-> s3-2 direction) f30-0 f28-0 f26-0 f24-0) + (vector-normalize! (-> s3-2 direction) 1.0) + (logior! (-> s3-2 flags) (editable-flag changed)) + (let ((a0-73 (-> s3-2 region))) + (if a0-73 + (set! (-> a0-73 changed) #t) + ) + ) + ) + ) + ) + (+! s5-4 1) + (set! s4-4 (-> self current data s5-4)) + ) + ) + #f + ) + ((= v1-0 'color) + (let* ((f30-1 (the-as float (-> arg3 param 0))) + (f28-1 (the-as float (-> arg3 param 1))) + (f26-1 (the-as float (-> arg3 param 2))) + (f24-1 (the-as float (-> arg3 param 3))) + (gp-5 (-> self current length)) + (s5-5 0) + (s4-5 (-> self current data s5-5)) + ) + (while (< s5-5 gp-5) + (when (and s4-5 (logtest? (-> s4-5 flags) (editable-flag selected))) + (let ((v1-114 (if (type? s4-5 editable-light) + (the-as editable-light s4-5) + ) + ) + ) + (when v1-114 + (set-vector! (-> v1-114 color) f30-1 f28-1 f26-1 f24-1) + (logior! (-> v1-114 flags) (editable-flag changed)) + (let ((v1-115 (-> v1-114 region))) + (if v1-115 + (set! (-> v1-115 changed) #t) + ) + ) + ) + ) + ) + (+! s5-5 1) + (set! s4-5 (-> self current data s5-5)) + ) + ) + #f + ) + ((= v1-0 'param) + (let ((s5-6 (-> arg3 param 0)) + (f30-2 (the-as float (-> arg3 param 1))) + ) + (when (and (>= (the-as int s5-6) 0) (>= 2 (the-as int s5-6))) + (let* ((gp-6 (-> self current length)) + (s4-6 0) + (s3-3 (-> self current data s4-6)) + ) + (while (< s4-6 gp-6) + (when (and s3-3 (logtest? (-> s3-3 flags) (editable-flag selected))) + (let ((v1-129 (if (type? s3-3 editable-light) + s3-3 + ) + ) + ) + (when v1-129 + (set! (-> (the-as editable-light (+ (* s5-6 4) (the-as uint v1-129))) decay-start) f30-2) + (logior! (-> v1-129 flags) (editable-flag changed)) + (let ((v1-130 (-> v1-129 region))) + (if v1-130 + (set! (-> v1-130 changed) #t) + ) + ) + ) + ) + ) + (+! s4-6 1) + (set! s3-3 (-> self current data s4-6)) + ) + ) + #f + ) + ) + ) + ) + ) + ) + ) + :trans (behavior () + (let ((gp-0 (-> self current))) + (set! (-> gp-0 move-lock?) #f) + (when (cpad-pressed? 1 start) + (when (!= *master-mode* 'menu) + (set-master-mode 'menu) + (logclear! (-> *cpad-list* cpads 1 button0-abs 0) (pad-buttons start)) + (logclear! (-> *cpad-list* cpads 1 button0-rel 0) (pad-buttons start)) + ) + ) + (when (or (and (= *master-mode* 'menu) + (> (-> self close-menu-time) 0) + (>= (-> self clock frame-counter) (-> self close-menu-time)) + ) + (cpad-pressed? 1 start) + ) + (debug-menu-context-send-msg *editable-menu-context* (debug-menu-msg deactivate) (debug-menu-dest activation)) + (set-master-mode 'game) + (set! (-> self close-menu-time) 0) + 0 + ) + (debug-menus-handler *editable-menu-context*) + (set-setting! 'cpad1-skip-buttons 'abs #t 0) + (set-setting! 'mouse-input 'abs #f 0) + (when (!= *master-mode* 'menu) + (cond + ((and (or (cpad-hold? 1 l2) (cpad-hold? 1 r2)) + (or (and (cpad-hold? 1 left) (not (-> self left-handed))) (and (cpad-hold? 1 square) (-> self left-handed))) + ) + (set! (-> self command 0) (the-as function 48)) + (set! (-> self command 1) (the-as function 0)) + (set! (-> self command 2) (the-as function 47)) + (set! (-> self command 3) (the-as function 0)) + (set! (-> self command 4) (the-as function 49)) + (set! (-> self command 5) (the-as function 0)) + 0 + ) + ((and (or (cpad-hold? 1 l2) (cpad-hold? 1 r2)) + (or (and (cpad-hold? 1 right) (not (-> self left-handed))) (and (cpad-hold? 1 circle) (-> self left-handed))) + ) + (set! (-> self command 0) (the-as function 52)) + (set! (-> self command 1) (the-as function 0)) + (set! (-> self command 2) (the-as function 36)) + (set! (-> self command 3) (the-as function 0)) + (set! (-> self command 4) (the-as function 37)) + (set! (-> self command 5) (the-as function 0)) + 0 + ) + ((and (or (cpad-hold? 1 l2) (cpad-hold? 1 r2)) + (or (and (cpad-hold? 1 up) (not (-> self left-handed))) (and (cpad-hold? 1 triangle) (-> self left-handed))) + ) + (set! (-> self command 0) (the-as function 6)) + (set! (-> self command 1) (the-as function 0)) + (set! (-> self command 2) (the-as function 53)) + (set! (-> self command 3) (the-as function 0)) + (set! (-> self command 4) (the-as function 42)) + (set! (-> self command 5) (the-as function 0)) + 0 + ) + ((and (or (cpad-hold? 1 l2) (cpad-hold? 1 r2)) + (or (and (cpad-hold? 1 down) (not (-> self left-handed))) (and (cpad-hold? 1 x) (-> self left-handed))) + ) + (set! (-> self command 0) (the-as function 29)) + (set! (-> self command 1) (the-as function 0)) + (set! (-> self command 2) (the-as function 30)) + (set! (-> self command 3) (the-as function 0)) + (set! (-> self command 4) (the-as function 32)) + (set! (-> self command 5) (the-as function 0)) + 0 + ) + ((or (cpad-hold? 1 l2) (cpad-hold? 1 r2)) + (set! (-> self command 0) (the-as function 0)) + (set! (-> self command 1) (the-as function 24)) + (set! (-> self command 2) (the-as function 0)) + (set! (-> self command 3) (the-as function 26)) + (set! (-> self command 4) (the-as function 0)) + (set! (-> self command 5) (the-as function 25)) + ) + ((and (cpad-hold? 1 up) + (cpad-hold? 1 left) + (or (and (cpad-hold? 1 up) (not (-> self left-handed))) (and (cpad-hold? 1 triangle) (-> self left-handed))) + ) + (set! (-> self command 0) (the-as function 3)) + (set! (-> self command 1) (the-as function 0)) + (set! (-> self command 2) (the-as function 9)) + (set! (-> self command 3) (the-as function 0)) + (set! (-> self command 4) (the-as function 8)) + (set! (-> self command 5) (the-as function 0)) + 0 + ) + ((or (and (cpad-hold? 1 left) (not (-> self left-handed))) (and (cpad-hold? 1 square) (-> self left-handed))) + (set! (-> self command 0) (the-as function 0)) + (set! (-> self command 1) (the-as function 20)) + (set! (-> self command 2) (the-as function 0)) + (set! (-> self command 3) (the-as function 22)) + (set! (-> self command 4) (the-as function 0)) + (set! (-> self command 5) (the-as function 21)) + ) + ((or (and (cpad-hold? 1 right) (not (-> self left-handed))) (and (cpad-hold? 1 circle) (-> self left-handed))) + (set! (-> self command 0) (the-as function 31)) + (set! (-> self command 1) (the-as function 0)) + (set! (-> self command 2) (the-as function 27)) + (set! (-> self command 3) (the-as function 0)) + (set! (-> self command 4) (the-as function 28)) + (set! (-> self command 5) (the-as function 0)) + 0 + ) + ((or (and (cpad-hold? 1 up) (not (-> self left-handed))) (and (cpad-hold? 1 triangle) (-> self left-handed))) + (set! (-> self command 0) (the-as function 3)) + (set! (-> self command 1) (the-as function 0)) + (set! (-> self command 2) (the-as function 4)) + (set! (-> self command 3) (the-as function 0)) + (set! (-> self command 4) (the-as function 7)) + (set! (-> self command 5) (the-as function 0)) + 0 + ) + ((or (and (cpad-hold? 1 down) (not (-> self left-handed))) (and (cpad-hold? 1 x) (-> self left-handed))) + (set! (-> self command 0) (the-as function 33)) + (set! (-> self command 1) (the-as function 0)) + (set! (-> self command 2) (the-as function 35)) + (set! (-> self command 3) (the-as function 0)) + (set! (-> self command 4) (the-as function 34)) + (set! (-> self command 5) (the-as function 0)) + 0 + ) + (else + (set! (-> self command 0) (the-as function 0)) + (set! (-> self command 1) (the-as function 18)) + (set! (-> self command 2) (the-as function 0)) + (set! (-> self command 3) (the-as function 23)) + (set! (-> self command 4) (the-as function 0)) + (set! (-> self command 5) (the-as function 19)) + ) + ) + (case (-> self current target-mode) + ((14 15) + (set! (-> self command 0) (the-as function (-> self current target-mode))) + ) + ((16) + (when (!= *master-mode* 'menu) + (cond + ((not (-> self left-handed)) + (cond + ((cpad-hold? 1 x) + (logclear! (-> *cpad-list* cpads 1 button0-abs 0) (pad-buttons x)) + (logclear! (-> *cpad-list* cpads 1 button0-rel 0) (pad-buttons x)) + (editable-array-method-9 + gp-0 + (the-as editable-command (-> self current target-mode)) + (the-as editable-array *mouse*) + ) + ) + ((cpad-pressed? 1 square) + (logclear! (-> *cpad-list* cpads 1 button0-abs 0) (pad-buttons square)) + (logclear! (-> *cpad-list* cpads 1 button0-rel 0) (pad-buttons square)) + (editable-array-method-9 gp-0 (editable-command cancel) (the-as editable-array *mouse*)) + ) + ) + ) + (else + (cond + ((cpad-hold? 1 down) + (logclear! (-> *cpad-list* cpads 1 button0-abs 0) (pad-buttons down)) + (logclear! (-> *cpad-list* cpads 1 button0-rel 0) (pad-buttons down)) + (editable-array-method-9 + gp-0 + (the-as editable-command (-> self current target-mode)) + (the-as editable-array *mouse*) + ) + ) + ((cpad-pressed? 1 left) + (logclear! (-> *cpad-list* cpads 1 button0-abs 0) (pad-buttons left)) + (logclear! (-> *cpad-list* cpads 1 button0-rel 0) (pad-buttons left)) + (editable-array-method-9 gp-0 (editable-command cancel) (the-as editable-array *mouse*)) + ) + ) + ) + ) + ) + ) + ) + (if (logtest? (-> *mouse* button0-rel 0) 1) + (editable-array-method-9 gp-0 (the-as editable-command (-> self command 0)) (the-as editable-array *mouse*)) + ) + (if (logtest? (-> *mouse* button0-abs 0) 1) + (editable-array-method-9 gp-0 (the-as editable-command (-> self command 1)) (the-as editable-array *mouse*)) + ) + (if (logtest? (-> *mouse* button0-rel 0) 2) + (editable-array-method-9 gp-0 (the-as editable-command (-> self command 2)) (the-as editable-array *mouse*)) + ) + (if (logtest? (-> *mouse* button0-abs 0) 2) + (editable-array-method-9 gp-0 (the-as editable-command (-> self command 3)) (the-as editable-array *mouse*)) + ) + (when (logtest? (-> *mouse* button0-rel 0) 4) + (let ((a2-11 (-> self command 4))) + (case a2-11 + ((36) + (if (not (-> self left-handed)) + (editable-array-method-13 gp-0 (the-as uint 16) a2-11 "press x to confirm, square to cancel") + (editable-array-method-13 gp-0 (the-as uint 16) a2-11 "press down to confirm, left to cancel") + ) + ) + (else + (editable-array-method-9 gp-0 (the-as editable-command a2-11) (the-as editable-array *mouse*)) + ) + ) + ) + ) + (if (logtest? (-> *mouse* button0-abs 0) 4) + (editable-array-method-9 gp-0 (the-as editable-command (-> self command 5)) (the-as editable-array *mouse*)) + ) + ) + ) + (none) + ) + :code (behavior () + (until #f + (suspend) + ) + #f + (none) + ) + :post (behavior () + (editable-player-method-21 self) + (none) + ) + ) + +;; WARN: Return type mismatch object vs none. +(defbehavior editable-player-init editable-player ((arg0 symbol)) + (set! *editable-temp-id* 0) + (set! *display-profile* #f) + (set! *display-entity-errors* #f) + (set! *display-actor-marks* #f) + (logclear! (-> self mask) (process-mask freeze pause menu)) + (set! (-> self clock) (-> *display* real-clock)) + (set! (-> self current) (new 'debug 'editable-array 4096)) + (add-setting! 'mouse #t 0 0) + (add-setting! 'cursor #t 0 0) + (set! (-> self select-command) (the-as function 3)) + (set! (-> self move-command) (the-as function 18)) + (set! (-> self extra-command) (the-as function 23)) + (set! (-> self left-handed) #f) + (set! (-> self light-names) #f) + (set! (-> self command 0) (-> self select-command)) + (set! (-> self command 1) (the-as function 0)) + (set! (-> self command 2) (the-as function 0)) + (set! (-> self command 3) (-> self extra-command)) + (set! (-> self command 4) (the-as function 0)) + (set! (-> self command 5) (-> self move-command)) + (let* ((s5-0 (-> self current)) + (s4-0 (method-of-object s5-0 editable-array-method-12)) + (s3-0 (if arg0 + (lookup-level-info arg0) + ) + ) + (gp-1 (level-get-target-inside *level*)) + (a1-5 (cond + (s3-0 + (let ((gp-2 (level-get *level* (-> s3-0 dbname)))) + (when gp-2 + (format 0 "setting level~d ~s to *light-hash*~%" (-> gp-2 index) (-> gp-2 name)) + (set! (-> gp-2 light-hash) *light-hash*) + ) + ) + (-> s3-0 dbname) + ) + (gp-1 + (let ((s3-1 (level-get *level* (-> gp-1 info dbname)))) + (when s3-1 + (format 0 "setting level~d ~s to *light-hash*~%" (-> s3-1 index) (-> s3-1 name)) + (set! (-> s3-1 light-hash) *light-hash*) + ) + ) + (-> gp-1 info dbname) + ) + ) + ) + ) + (s4-0 s5-0 (the-as editable-array a1-5)) + ) + (set! *editable* (the-as (pointer editable-player) (process->ppointer self))) + (set! (-> self event-hook) (-> (method-of-object self idle) event)) + (set! (-> self external-cam-mode) *external-cam-mode*) + (set! *external-cam-mode* 'pad-1) + (editable-array-method-9 (-> self current) (editable-command update-game) (the-as editable-array #f)) + (go-virtual idle) + (none) + ) + +(define *editable-menu-context* (new 'debug 'debug-menu-context)) + +(set! (-> *editable-menu-context* joypad-number) 1) + +;; WARN: Return type mismatch object vs none. +(defun editable-menu-command ((arg0 int)) + (send-event (ppointer->process *editable*) 'execute (/ arg0 8)) + (send-event (ppointer->process *editable*) 'menu 90) + (none) + ) + +;; WARN: Return type mismatch object vs none. +(defun editable-menu-command-no-close ((arg0 int)) + (send-event (ppointer->process *editable*) 'execute (/ arg0 8)) + (none) + ) + +;; WARN: Return type mismatch object vs symbol. +(defun dm-region-tree-pick-func ((arg0 symbol) (arg1 debug-menu-msg)) + (when (= arg1 (debug-menu-msg press)) + (when (and *editable* (-> *editable* 0 current region)) + (let ((s5-0 (-> *editable* 0 current region))) + (set! (-> s5-0 tree) (the-as string arg0)) + (set! (-> s5-0 changed) #t) + (set! (-> s5-0 filter) (editable-region-method-12 s5-0)) + ) + ) + ) + (the-as + symbol + (and *editable* (-> *editable* 0 current region) (= arg0 (-> *editable* 0 current region tree))) + ) + ) + +(defun dm-editable-flag-pick-func ((arg0 editable-flag) (arg1 debug-menu-msg)) + (when *editable* + (let ((gp-0 (/ (the-as int arg0) 8))) + (editable-array-method-14 (-> *editable* 0 current) true-func #f) + (when (= arg1 (debug-menu-msg press)) + (let* ((v1-10 (-> *editable* 0 current length)) + (a0-2 0) + (a1-4 (-> *editable* 0 current data a0-2)) + ) + (while (< a0-2 v1-10) + (if (and a1-4 (logtest? (-> a1-4 flags) (editable-flag selected))) + (logxor! (-> a1-4 flags) (the-as uint gp-0)) + ) + (+! a0-2 1) + (set! a1-4 (-> *editable* 0 current data a0-2)) + ) + ) + ) + (and (>= (-> *editable* 0 current selection length) 1) + (logtest? (-> *editable* 0 current selection 0 flags) gp-0) + ) + ) + ) + ) + +(defun dm-editable-filter0-pick-func ((arg0 editable-filter) (arg1 debug-menu-msg)) + (when *editable* + (let ((v1-1 (/ (the-as int arg0) 8))) + (if (= arg1 (debug-menu-msg press)) + (logxor! (-> *editable* 0 current filter 0) (the-as uint v1-1)) + ) + (logtest? (-> *editable* 0 current filter 0) v1-1) + ) + ) + ) + +(defun dm-editable-filter1-pick-func ((arg0 editable-filter) (arg1 debug-menu-msg)) + (when *editable* + (let ((v1-1 (/ (the-as int arg0) 8))) + (if (= arg1 (debug-menu-msg press)) + (logxor! (-> *editable* 0 current filter 1) (the-as uint v1-1)) + ) + (logtest? (-> *editable* 0 current filter 1) v1-1) + ) + ) + ) + +(defun dm-editable-light-float-func ((arg0 int) (arg1 debug-menu-msg) (arg2 float) (arg3 float)) + (cond + ((not *editable*) + arg3 + ) + ((= arg1 (debug-menu-msg press)) + (let* ((s4-0 (-> *editable* 0 current length)) + (s3-0 0) + (s2-0 (-> *editable* 0 current data s3-0)) + ) + (while (< s3-0 s4-0) + (when (and s2-0 (logtest? (-> s2-0 flags) (editable-flag selected))) + (let ((a0-7 (if (type? s2-0 editable-light) + s2-0 + ) + ) + ) + (when (the-as editable a0-7) + (set! (-> (&+ (the-as (pointer float) a0-7) (/ arg0 8)) 0) arg2) + (logior! (-> (the-as editable a0-7) flags) (editable-flag changed)) + (let ((v1-15 (-> (the-as editable a0-7) region))) + (if v1-15 + (set! (-> v1-15 changed) #t) + ) + ) + (update-light-sphere-from-editable-light (the-as editable-light a0-7)) + ) + ) + ) + (+! s3-0 1) + (set! s2-0 (-> *editable* 0 current data s3-0)) + ) + ) + (the-as float #f) + ) + (else + (let ((f30-0 arg3)) + (let* ((s5-1 (-> *editable* 0 current length)) + (s4-1 0) + (s3-1 (-> *editable* 0 current data s4-1)) + ) + (while (< s4-1 s5-1) + (when (and s3-1 (logtest? (-> s3-1 flags) (editable-flag selected))) + (let ((v1-29 (if (type? s3-1 editable-light) + s3-1 + ) + ) + ) + (if (the-as editable v1-29) + (set! f30-0 (-> (&+ (the-as (pointer float) v1-29) (/ arg0 8)) 0)) + ) + ) + ) + (+! s4-1 1) + (set! s3-1 (-> *editable* 0 current data s4-1)) + ) + ) + f30-0 + ) + ) + ) + ) + +(defun dm-cam-externalize2 ((arg0 symbol) (arg1 debug-menu-msg)) + (when (= arg1 (debug-menu-msg press)) + (cond + ((= arg0 'reset) + (if (!= *external-cam-mode* 'locked) + (external-cam-reset!) + ) + ) + ((= arg0 'allow-z) + (set! *external-cam-options* (logxor *external-cam-options* (external-cam-option allow-z))) + ) + ((= *external-cam-mode* arg0) + (set! *external-cam-mode* #f) + ) + (else + (if (not *external-cam-mode*) + (external-cam-reset!) + ) + (set! *external-cam-mode* arg0) + ) + ) + ) + (if (= arg0 'allow-z) + (logtest? *external-cam-options* (external-cam-option allow-z)) + (= *external-cam-mode* arg0) + ) + ) + +(defun dm-editable-boolean-toggle-pick-func ((arg0 int) (arg1 debug-menu-msg)) + (cond + (*editable* + (let ((v1-3 (&+ (the-as (pointer symbol) (-> *editable* 0)) (/ arg0 8)))) + (if (= arg1 (debug-menu-msg press)) + (set! (-> v1-3 0) (not (-> v1-3 0))) + ) + (-> v1-3 0) + ) + ) + (else + #f + ) + ) + ) + +(defun editable-menu-context-make-menus ((arg0 debug-menu-context)) + (debug-menu-make-from-template + arg0 + '(main-menu + "Editable" + (flag "Cam 1" pad-1 dm-cam-externalize2) + (flag "Left Handed" 212 dm-editable-boolean-toggle-pick-func) + (menu + "Insert" + (function "Sphere" 27 editable-menu-command) + (function "Point" 28 editable-menu-command) + (function "Sample" 29 editable-menu-command) + (function "Light" 31 editable-menu-command) + (function "Entity" 32 editable-menu-command) + (function "Face" 33 editable-menu-command) + (function "Plane" 34 editable-menu-command) + (function "Box" 35 editable-menu-command) + (function "Edit-Plane Set" 45 editable-menu-command) + (function "Edit-Plane Clear" 46 editable-menu-command) + ) + (menu + "Select" + (function "None" 6 editable-menu-command) + (function "All" 5 editable-menu-command) + (function "Owner" 10 editable-menu-command) + (function "Current Region" 11 editable-menu-command) + (function "Current Face" 12 editable-menu-command) + (function "Current Prim" 13 editable-menu-command) + ) + (menu + "Selection" + (function "Copy" 37 editable-menu-command) + (function "Delete" 36 editable-menu-command) + (function "Flip Side" 42 editable-menu-command) + (function "Snap to Ground" 39 editable-menu-command) + (function "Snap XZ" 40 editable-menu-command) + (function "Snap Y" 41 editable-menu-command) + (function "Resize to Param" 38 editable-menu-command) + (function "Set to current Region" 43 editable-menu-command) + (function "Set to new Region" 44 editable-menu-command) + (flag "No Save" 2 dm-editable-flag-pick-func) + (flag "Top Set" 512 dm-editable-flag-pick-func) + (flag "Bot Set" 1024 dm-editable-flag-pick-func) + ) + (menu + "Region" + (function "Print Info" 53 editable-menu-command) + (function "Copy" 48 editable-menu-command) + (function "Delete" 47 editable-menu-command) + (function "Add to current Region" 49 editable-menu-command) + (flag + "Region Lock" + #f + ,(lambda ((arg0 int) (arg1 float) (arg2 float)) + (if (= arg1 4) + (set! (-> *editable* 0 current region-lock?) (not (-> *editable* 0 current region-lock?))) + ) + (-> *editable* 0 current region-lock?) + ) + ) + (flag "Camera" camera dm-region-tree-pick-func) + (flag "Target" target dm-region-tree-pick-func) + (flag "Water" water dm-region-tree-pick-func) + (flag "Data" data dm-region-tree-pick-func) + (flag "City Vis" city_vis dm-region-tree-pick-func) + ) + (menu + "Filter" + (flag "None" 1 dm-editable-filter0-pick-func) + (flag "Unknown" 2 dm-editable-filter0-pick-func) + (flag "Sound" 4 dm-editable-filter0-pick-func) + (flag "Part" 8 dm-editable-filter0-pick-func) + (flag "Load" 64 dm-editable-filter0-pick-func) + (flag "User Setting" 16 dm-editable-filter0-pick-func) + (flag "Cam Setting" 32 dm-editable-filter0-pick-func) + (flag "Camera" 256 dm-editable-filter1-pick-func) + (flag "Target" 512 dm-editable-filter1-pick-func) + (flag "Water" 1024 dm-editable-filter1-pick-func) + (flag "Data" 2048 dm-editable-filter1-pick-func) + (flag "Sample" 8192 dm-editable-filter1-pick-func) + (flag "Light" 16384 dm-editable-filter1-pick-func) + (flag "Entity" 32768 dm-editable-filter1-pick-func) + (flag "City Vis" 4096 dm-editable-filter1-pick-func) + ) + (menu + "Light" + (flag "Show Light Names" 216 dm-editable-boolean-toggle-pick-func) + (float-var + "Red" + 60 + dm-editable-light-float-func + 2 + (new 'static 'bfloat :data 0.00390625) + #t + 0 + (new 'static 'bfloat :data 1.9921875) + 0 + ) + (float-var + "Green" + 64 + dm-editable-light-float-func + 2 + (new 'static 'bfloat :data 0.00390625) + #t + 0 + (new 'static 'bfloat :data 1.9921875) + 0 + ) + (float-var + "Blue" + 68 + dm-editable-light-float-func + 2 + (new 'static 'bfloat :data 0.00390625) + #t + 0 + (new 'static 'bfloat :data 1.9921875) + 0 + ) + (float-var + "Palette Index" + 72 + dm-editable-light-float-func + 2 + (new 'static 'bfloat :data 1.0) + #t + (new 'static 'bfloat :data -1.0) + (new 'static 'bfloat :data 7.0) + 0 + ) + (float-var "Decay Start" 76 dm-editable-light-float-func 2 (new 'static 'bfloat :data 0.00390625) #t 0 1 0) + (float-var + "Ambient Point Ratio" + 80 + dm-editable-light-float-func + 2 + (new 'static 'bfloat :data 0.00390625) + #t + 0 + 1 + 0 + ) + (float-var "Brightness" 84 dm-editable-light-float-func 2 (new 'static 'bfloat :data 0.00390625) #t 0 1 0) + ) + (float-var + "Param" + #f + ,(lambda ((arg0 int) (arg1 float) (arg2 float)) (cond + ((= arg1 4) + (if (and *editable* (nonzero? *editable*)) + (set! (-> *editable* 0 current edit-param0) arg2) + ) + ) + ((or (not *editable*) (zero? *editable*)) + 0.0 + ) + (else + (-> *editable* 0 current edit-param0) + ) + ) + ) + 3 + (new 'static 'bfloat :data 0.5) + #t + 0 + 500 + 1 + ) + (function "Rotate Level" 55 editable-menu-command) + (function "Trans Y Level" 56 editable-menu-command) + (function "Revert" 51 editable-menu-command) + (function "Save" 50 editable-menu-command-no-close) + (function "Update Game" 52 editable-menu-command-no-close) + (function "Cancel" 17 editable-menu-command) + (function "Exit" 1 editable-menu-command) + ) + ) + arg0 + ) + +(editable-menu-context-make-menus *editable-menu-context*) + +;; WARN: Function insert-sample-camera has a return type of none, but the expression builder found a return statement. +(defun insert-sample-camera ((arg0 symbol)) + (cond + (level + (let ((s5-0 sql-query)) + (format + (clear *temp-string*) + "select translate_x,translate_y,translate_z,level_info_id from level_info where name='~S'" + arg0 + ) + (let ((s5-1 (s5-0 *temp-string*))) + (cond + ((and (= (-> s5-1 error) 'select) (= (-> s5-1 len) 4)) + (let ((f26-0 (* 4096.0 (string->float (the-as string (-> s5-1 data 0))))) + (f28-0 (* 4096.0 (string->float (the-as string (-> s5-1 data 1))))) + (f30-3 (* 4096.0 (string->float (the-as string (-> s5-1 data 2))))) + (s5-2 (string->int (the-as string (-> s5-1 data 3)))) + (s3-0 (math-camera-pos)) + (s4-1 (clear *temp-string*)) + ) + (format + s4-1 + "insert into sample_point set level_info_id=~D,x=~f,y=~f,z=~f,source='manual'" + s5-2 + (* 0.00024414062 (- (-> s3-0 x) f26-0)) + (* 0.00024414062 (- (-> s3-0 y) f28-0)) + (* 0.00024414062 (- (-> s3-0 z) f30-3)) + ) + (let ((a2-2 (sql-query s4-1))) + (cond + ((= (-> a2-2 error) 'modify) + (format + (clear s4-1) + "update level_info set last_update=last_update, sample_point_update=NULL where level_info_id=~D" + s5-2 + ) + (let ((a2-4 (sql-query s4-1))) + (when (!= (-> a2-4 error) 'modify) + (format 0 "ERROR: sql: modify error ~A~%" a2-4) + (return #f) + ) + ) + (sound-play-by-spec + (new 'static 'sound-spec + :mask (sound-mask fo-curve) + :num 1.0 + :group (sound-group sfx) + :sound-name (static-sound-name "beep") + :volume #x400 + :fo-curve 1 + ) + (new-sound-id) + (the-as vector #t) + ) + (format #t "EDITABLE: saved camera sample point for level ~A~%" arg0) + ) + (else + (format 0 "ERROR: sql: insert error ~A~%" a2-2) + ) + ) + ) + ) + ) + (else + (format 0 "ERROR: sql: select error ~A~%" s5-1) + ) + ) + ) + ) + ) + (else + (format 0 "ERROR: EDITABLE: no current level~%") + ) + ) + 0 + (none) + ) + +(define *debug-hook* (cons + (lambda () + (when (and *debug-segment* *manual-sample-point*) + (when (cpad-pressed? 1 select) + (cond + (*editable* + ) + ((not *artist-fix-visible*) + (insert-sample-camera (-> (level-get-target-inside *level*) info dbname)) + ) + (else + (dotimes (gp-1 (-> *level* length)) + (let ((v1-14 (-> *level* level gp-1))) + (when (= (-> v1-14 status) 'active) + (if (zero? (logand *fix-visible-level-mask* (ash 1 (-> v1-14 index)))) + (insert-sample-camera (-> v1-14 name)) + ) + ) + ) + ) + ) + ) + ) + ) + (none) + ) + *debug-hook* + ) + ) + +) diff --git a/goal_src/jak2/engine/debug/editable.gc b/goal_src/jak2/engine/debug/editable.gc index f3119aa874..6b0126dd9f 100644 --- a/goal_src/jak2/engine/debug/editable.gc +++ b/goal_src/jak2/engine/debug/editable.gc @@ -121,7 +121,6 @@ ;; ERROR: function was not converted to expressions. Cannot decompile. -;; WARN: Return type mismatch int vs none. (defmethod editable-region-method-11 editable-region ((obj editable-region) (arg0 vector) (arg1 int)) (local-vars (sv-32 vector2h)) (set! sv-32 (new 'stack 'vector2h)) @@ -247,7 +246,6 @@ #t ) -;; WARN: Return type mismatch int vs none. (defmethod editable-method-28 editable ((obj editable) (arg0 editable-filter)) (let* ((s5-0 (-> obj owner)) (a0-1 (car s5-0)) @@ -276,7 +274,6 @@ (the-as symbol 0) ) -;; WARN: Return type mismatch int vs none. (defmethod editable-method-21 editable ((obj editable) (arg0 editable-region)) (when (not (and (-> obj region) (-> obj region locked))) (if arg0 @@ -323,7 +320,6 @@ ) ) -;; WARN: Return type mismatch int vs none. (defmethod editable-method-10 editable ((obj editable)) (when (logtest? (-> obj flags) (editable-flag selected)) (let ((s5-0 (new 'stack-no-clear 'vector))) @@ -343,7 +339,6 @@ (none) ) -;; WARN: Return type mismatch int vs none. (defmethod select-editable! editable ((obj editable) (arg0 symbol)) (case arg0 (('toggle) @@ -365,7 +360,6 @@ -1.0 ) -;; WARN: Return type mismatch int vs none. (defmethod editable-method-20 editable ((obj editable) (arg0 vector) (arg1 vector) (arg2 vector) (arg3 vector)) (local-vars (sv-48 vector) (sv-52 vector)) (set! sv-48 (new 'stack-no-clear 'vector)) @@ -407,13 +401,11 @@ ) ) -;; WARN: Return type mismatch int vs none. (defmethod editable-method-24 editable ((obj editable)) 0 (none) ) -;; WARN: Return type mismatch int vs none. (defmethod editable-method-17 editable ((obj editable) (arg0 vector)) 0 (none) @@ -423,19 +415,16 @@ #t ) -;; WARN: Return type mismatch int vs none. (defmethod editable-method-15 editable ((obj editable) (arg0 vector) (arg1 int)) 0 (none) ) -;; WARN: Return type mismatch int vs none. (defmethod edit-coord! editable ((obj editable) (arg0 vector) (arg1 editable-flag)) 0 (none) ) -;; WARN: Return type mismatch int vs none. (defmethod editable-method-18 editable ((obj editable) (arg0 vector) (arg1 matrix)) 0 (none) @@ -446,19 +435,16 @@ *null-vector* ) -;; WARN: Return type mismatch int vs none. (defmethod editable-method-19 editable ((obj editable) (arg0 vector)) 0 (none) ) -;; WARN: Return type mismatch int vs none. (defmethod editable-method-26 editable ((obj editable) (arg0 editable) (arg1 editable-array)) 0 (none) ) -;; WARN: Return type mismatch int vs none. (defmethod editable-method-25 editable ((obj editable) (arg0 editable-array)) (let ((v1-0 (-> obj region))) (if v1-0 @@ -538,7 +524,6 @@ obj ) -;; WARN: Return type mismatch int vs none. ;; WARN: Function (method 28 editable-point) has a return type of none, but the expression builder found a return statement. (defmethod editable-method-28 editable-point ((obj editable-point) (arg0 editable-filter)) (if (logtest? arg0 (editable-filter water-command)) @@ -584,7 +569,6 @@ (none) ) -;; WARN: Return type mismatch int vs none. (defmethod editable-method-15 editable-point ((obj editable-point) (arg0 vector) (arg1 int)) (let ((v1-0 (-> obj region))) (if v1-0 @@ -598,7 +582,6 @@ (none) ) -;; WARN: Return type mismatch int vs none. (defmethod edit-coord! editable-point ((obj editable-point) (arg0 vector) (arg1 editable-flag)) (let ((v1-0 (-> obj region))) (if v1-0 @@ -625,7 +608,6 @@ (-> obj trans) ) -;; WARN: Return type mismatch int vs none. (defmethod editable-method-18 editable-point ((obj editable-point) (arg0 vector) (arg1 matrix)) (let ((v1-0 (-> obj region))) (if v1-0 @@ -696,7 +678,6 @@ -1.0 ) -;; WARN: Return type mismatch int vs none. (defmethod editable-method-19 editable-point ((obj editable-point) (arg0 vector)) (let ((v1-0 (-> obj region))) (if v1-0 @@ -738,7 +719,6 @@ ) ) -;; WARN: Return type mismatch int vs none. (defmethod editable-method-17 editable-sphere ((obj editable-sphere) (arg0 vector)) (let ((v1-0 (-> obj region))) (if v1-0 @@ -830,7 +810,6 @@ #t ) -;; WARN: Return type mismatch int vs none. (defun update-light-sphere-from-editable-light ((arg0 editable-light)) (let ((v1-0 (lookup-light-sphere-by-name (-> arg0 name) *light-hash*))) (when v1-0 @@ -848,7 +827,6 @@ (none) ) -;; WARN: Return type mismatch int vs none. (defmethod editable-method-17 editable-light ((obj editable-light) (arg0 vector)) (let ((v1-0 (-> obj region))) (if v1-0 @@ -869,7 +847,6 @@ (none) ) -;; WARN: Return type mismatch int vs none. (defmethod editable-method-15 editable-light ((obj editable-light) (arg0 vector) (arg1 int)) (let ((v1-0 (-> obj region))) (if v1-0 @@ -884,7 +861,6 @@ (none) ) -;; WARN: Return type mismatch int vs none. ;; WARN: Function (method 25 editable-light) has a return type of none, but the expression builder found a return statement. (defmethod editable-method-25 editable-light ((obj editable-light) (arg0 editable-array)) ((the-as (function editable-light editable-array none) (find-parent-method editable-light 25)) obj arg0) @@ -1095,7 +1071,6 @@ ) ) -;; WARN: Return type mismatch int vs none. (defmethod editable-method-24 editable-face ((obj editable-face)) (logxor! (-> obj flags) (editable-flag orient)) (editable-face-method-31 obj (-> obj normal)) @@ -1163,7 +1138,7 @@ (bucket-id debug-no-zbuf1) (edit-get-trans obj) s1-0 - (the-as meters #x46000000) + (meters 2) (the-as rgba (-> (new 'static 'array uint64 1 #x8000ffff) 0)) ) ) @@ -1277,7 +1252,6 @@ ) ) -;; WARN: Return type mismatch int vs none. (defmethod editable-method-24 editable-plane ((obj editable-plane)) (let ((s5-1 (vector-! (new 'stack-no-clear 'vector) (edit-get-trans (-> obj vertex 1)) (edit-get-trans (-> obj vertex 0))) @@ -1463,7 +1437,6 @@ arg0 ) -;; WARN: Return type mismatch int vs none. (defmethod editable-method-10 editable-plane ((obj editable-plane)) (let ((gp-0 (new 'stack-no-clear 'matrix))) (dotimes (v1-0 4) @@ -1504,7 +1477,6 @@ (none) ) -;; WARN: Return type mismatch int vs none. (defmethod editable-method-17 editable-plane ((obj editable-plane) (arg0 vector)) (let ((v1-0 (-> obj region))) (if v1-0 @@ -1651,7 +1623,6 @@ (none) ) -;; WARN: Return type mismatch int vs none. (defmethod editable-array-method-15 editable-array ((obj editable-array) (arg0 editable)) (let ((gp-0 (-> arg0 region))) (when gp-0 @@ -1688,7 +1659,6 @@ (none) ) -;; WARN: Return type mismatch int vs none. (defmethod editable-array-method-13 editable-array ((obj editable-array) (arg0 uint) (arg1 basic) (arg2 string)) (set! (-> obj target) #f) (set! (-> obj target-mode) arg0) @@ -1698,7 +1668,6 @@ (none) ) -;; WARN: Return type mismatch int vs none. (defmethod editable-array-method-16 editable-array ((obj editable-array)) (cond ((-> obj edit-plane) @@ -1732,10 +1701,6 @@ arg0 ) -(format 0 "SKIP: editable setup~%") -(format #t "SKIP: editable setup~%") - -#| (when (zero? *editable-sample-region*) (let ((v1-4 (new 'debug 'editable-region))) (set! (-> v1-4 locked) #t) @@ -1759,10 +1724,5 @@ (set! *editable-entity-region* v0-84) ) ) - |# ) - - - - diff --git a/goal_src/jak2/engine/debug/history.gc b/goal_src/jak2/engine/debug/history.gc index db0961da3a..7418aa6c4f 100644 --- a/goal_src/jak2/engine/debug/history.gc +++ b/goal_src/jak2/engine/debug/history.gc @@ -107,6 +107,7 @@ :flag-assert #x900000030 ) + (deftype history-iterator (basic) ((max-age uint32 :offset-assert 4) (owner uint8 :offset-assert 8) @@ -127,6 +128,7 @@ ) ) + (deftype history (basic) ((alloc-index int32 :offset-assert 4) (allocated-length int32 :offset-assert 8) @@ -142,10 +144,12 @@ ) ) + (defmethod length history ((obj history)) (-> obj allocated-length) ) +;; WARN: Return type mismatch uint vs int. (defmethod asize-of history ((obj history)) (the-as int (+ (-> obj type size) (* 48 (-> obj allocated-length)))) ) @@ -434,6 +438,7 @@ (none) ) +;; WARN: new jak 2 until loop case, check carefully (defun history-draw ((arg0 history-iterator)) (local-vars (sv-16 vector) (sv-20 vector) (sv-24 pat-surface)) (set! sv-16 (the-as vector #f)) @@ -519,7 +524,7 @@ (bucket-id debug-no-zbuf1) (-> s5-0 origin) (-> s5-0 vector) - (meters 1.0) + (meters 1) (the-as rgba (logior t1-7 (shl v1-8 24))) ) ) @@ -552,4 +557,7 @@ 0 (none) ) + +0 + ) diff --git a/goal_src/jak2/engine/draw/drawable.gc b/goal_src/jak2/engine/draw/drawable.gc index a6f56b0dd9..e8f121a6da 100644 --- a/goal_src/jak2/engine/draw/drawable.gc +++ b/goal_src/jak2/engine/draw/drawable.gc @@ -1091,3 +1091,6 @@ (display-sync arg0) (none) ) + + +(define-extern prototypes-game-visible-set! (function pair symbol int)) diff --git a/goal_src/jak2/engine/entity/actor-link-h.gc b/goal_src/jak2/engine/entity/actor-link-h.gc index b2211b7a9f..a2c1c4e4f2 100644 --- a/goal_src/jak2/engine/entity/actor-link-h.gc +++ b/goal_src/jak2/engine/entity/actor-link-h.gc @@ -11,6 +11,7 @@ ;; DECOMP BEGINS +;; WARN: Return type mismatch entity vs entity-actor. (defun entity-actor-lookup ((arg0 res-lump) (arg1 symbol) (arg2 int)) (local-vars (sv-16 res-tag)) (set! sv-16 (new 'static 'res-tag)) @@ -27,6 +28,7 @@ ) ) +;; WARN: Check prologue - tricky store of r0 (defun entity-actor-count ((arg0 res-lump) (arg1 symbol)) (local-vars (sv-16 res-tag)) (set! sv-16 (new 'static 'res-tag)) @@ -66,6 +68,7 @@ ) ) + (defmethod next-actor entity-actor ((obj entity-actor)) (entity-actor-lookup obj 'next-actor 0) ) @@ -99,10 +102,12 @@ (-> obj prev) ) +;; WARN: Return type mismatch basic vs process. (defmethod get-next-process actor-link-info ((obj actor-link-info)) (the-as process (and (-> obj next) (-> obj next extra process))) ) +;; WARN: Return type mismatch basic vs process. (defmethod get-prev-process actor-link-info ((obj actor-link-info)) (the-as process (and (-> obj prev) (-> obj prev extra process))) ) @@ -149,7 +154,7 @@ (set! s4-0 (entity-actor-lookup s4-0 'prev-actor 0)) ) (while s4-0 - (if (arg0 (the-as entity-actor s4-0) arg1) + (if (arg0 s4-0 arg1) (return (the-as int #f)) ) (let ((a0-4 s4-0)) @@ -206,6 +211,7 @@ ) ) +;; WARN: Return type mismatch symbol vs none. (defmethod send-to-next actor-link-info ((obj actor-link-info) (arg0 symbol)) (let ((a0-1 (-> obj next))) (when a0-1 @@ -219,6 +225,7 @@ (none) ) +;; WARN: Return type mismatch symbol vs none. (defmethod send-to-prev actor-link-info ((obj actor-link-info) (arg0 symbol)) (let ((a0-1 (-> obj prev))) (when a0-1 @@ -232,12 +239,14 @@ (none) ) +;; WARN: Return type mismatch symbol vs none. (defmethod send-to-next-and-prev actor-link-info ((obj actor-link-info) (arg0 symbol)) (send-to-next obj arg0) (send-to-prev obj arg0) (none) ) +;; WARN: Return type mismatch symbol vs none. (defmethod send-to-all actor-link-info ((obj actor-link-info) (arg0 symbol)) (send-to-all-after obj arg0) (send-to-all-before obj arg0) @@ -264,7 +273,7 @@ ) (defmethod get-matching-actor-type-mask actor-link-info ((obj actor-link-info) (arg0 type)) - (let ((s3-0 (the-as entity-actor (-> obj process entity))) + (let ((s3-0 (-> obj process entity)) (s5-0 0) ) (let ((s4-0 1)) @@ -359,7 +368,3 @@ gp-0 ) ) - - - - diff --git a/goal_src/jak2/engine/entity/entity-h.gc b/goal_src/jak2/engine/entity/entity-h.gc index 915decc54e..504dd0abf7 100644 --- a/goal_src/jak2/engine/entity/entity-h.gc +++ b/goal_src/jak2/engine/entity/entity-h.gc @@ -8,7 +8,7 @@ (defenum entity-perm-status :bitfield #t :type uint16 - (bit-0 0) + (bit-0 0) ;; blocks birth (bit-1 1) (dead 2) (no-kill 3) @@ -19,7 +19,8 @@ (complete 8) (bit-9 9) (bit-10 10) - (entity-perm-status-12 12) + (save 11) + (bit-12 12) ) (declare-type race-mesh basic) @@ -38,6 +39,10 @@ (define-extern debug-actor (function string none)) (define-extern reset-actors (function symbol none)) +(define-extern process-by-ename (function string process)) + +(define-extern entity-birth-no-kill (function entity process)) + ;; DECOMP BEGINS (define *generate-actor-vis* #f) @@ -66,7 +71,7 @@ :size-assert #x10 :flag-assert #xa00000010 (:methods - (update-perm! (_type_ symbol entity-perm-status) _type_ 9) + (update (_type_ symbol entity-perm-status) _type_ 9) ) ) @@ -232,9 +237,3 @@ (define *ACTOR-bank* (new 'static 'actor-bank :pause-dist (meters 50) :birth-dist (meters 220) :birth-max 10)) - -0 - - - - diff --git a/goal_src/jak2/engine/entity/entity.gc b/goal_src/jak2/engine/entity/entity.gc index 1d9d8aaf83..124882d030 100644 --- a/goal_src/jak2/engine/entity/entity.gc +++ b/goal_src/jak2/engine/entity/entity.gc @@ -12,9 +12,12 @@ ;; DECOMP BEGINS (define *spawn-actors* #t) + (define *compact-actors* #t) + (define *vis-actors* #t) +;; WARN: Return type mismatch int vs drawable-actor. (defmethod mem-usage drawable-actor ((obj drawable-actor) (arg0 memory-usage-block) (arg1 int)) (set! (-> arg0 length) (max 44 (-> arg0 length))) (set! (-> arg0 data 43 name) "entity") @@ -27,6 +30,7 @@ (the-as drawable-actor 0) ) +;; WARN: Return type mismatch int vs drawable-inline-array-actor. (defmethod mem-usage drawable-inline-array-actor ((obj drawable-inline-array-actor) (arg0 memory-usage-block) (arg1 int)) (set! (-> arg0 length) (max 1 (-> arg0 length))) (set! (-> arg0 data 0 name) (symbol->string 'drawable-group)) @@ -68,35 +72,22 @@ obj ) -(defmethod inspect actor-group ((obj actor-group)) - (format #t "[~8x] ~A~%" obj (-> obj type)) - (format #t "~Tlength: ~D~%" (-> obj length)) - (format #t "~Tallocated-length: ~D~%" (-> obj allocated-length)) - (format #t "~Tdata[~D]: @ #x~X~%" (-> obj length) (-> obj data)) - (dotimes (s5-0 (-> obj length)) - (format #t "~T [~D] ~A / ~D~%" s5-0 (-> obj data s5-0 actor) (-> obj data s5-0 id)) - ) - obj - ) (defmethod birth! entity ((obj entity)) (format #t "birth ~A~%" obj) obj ) -;; definition for method 23 of type entity (defmethod kill! entity ((obj entity)) (format #t "kill ~A~%" obj) obj ) -;; definition for method 2 of type entity (defmethod print entity ((obj entity)) (format #t "#<~A :name ~S @ #x~X>" (-> obj type) (res-lump-struct obj 'name structure) obj) obj ) -;; definition for method 26 of type entity (defmethod get-level entity ((obj entity)) (dotimes (v1-0 (-> *level* length)) (let ((a1-3 (-> *level* level v1-0))) @@ -112,7 +103,6 @@ (-> *level* default-level) ) -;; definition for function entity-by-name (defun entity-by-name ((arg0 string)) (dotimes (s5-0 (-> *level* length)) (let ((s4-0 (-> *level* level s5-0))) @@ -167,7 +157,6 @@ (the-as entity #f) ) -;; definition for function entity-by-type (defun entity-by-type ((arg0 type)) (dotimes (s5-0 (-> *level* length)) (let ((v1-3 (-> *level* level s5-0))) @@ -189,7 +178,6 @@ (the-as entity-actor #f) ) -;; definition for function entity-by-aid (defun entity-by-aid ((arg0 uint)) (dotimes (v1-0 (-> *level* length)) (let ((a1-3 (-> *level* level v1-0))) @@ -227,7 +215,6 @@ (the-as entity #f) ) -;; definition for function entity-actor-from-level-name ;; WARN: Return type mismatch entity vs entity-actor. (defun entity-actor-from-level-name ((arg0 level)) (let ((v0-0 (the-as entity #f))) @@ -251,8 +238,6 @@ ) ) -;; definition for method 18 of type level-group -;; WARN: Return type mismatch int vs none. (defmethod level-group-method-18 level-group ((obj level-group)) (when (not (paused?)) (dotimes (s5-0 (-> obj length)) @@ -273,7 +258,6 @@ (none) ) -;; definition for function entity-nav-mesh-by-aid (defun entity-nav-mesh-by-aid ((arg0 actor-id)) (dotimes (v1-0 (-> *level* length)) (let ((a1-3 (-> *level* level v1-0))) @@ -311,7 +295,6 @@ (the-as entity-nav-mesh #f) ) -;; definition for function nav-mesh-from-res-tag (defun nav-mesh-from-res-tag ((arg0 entity) (arg1 symbol) (arg2 int)) (let ((v1-1 (res-lump-data arg0 arg1 pointer)) (gp-0 (the-as nav-mesh #f)) @@ -332,7 +315,6 @@ ) ) -;; definition for function entity-by-meters (defun entity-by-meters ((arg0 float) (arg1 float) (arg2 float)) (dotimes (v1-0 (-> *level* length)) (let ((a3-3 (-> *level* level v1-0))) @@ -359,7 +341,6 @@ (the-as entity-actor #f) ) -;; definition for function process-by-ename (defun process-by-ename ((arg0 string)) (let ((v1-0 (entity-by-name arg0))) (if v1-0 @@ -368,7 +349,6 @@ ) ) -;; definition for function entity-process-count (defun entity-process-count ((arg0 symbol)) (let ((gp-0 0)) (dotimes (s4-0 (-> *level* length)) @@ -399,7 +379,6 @@ ) ) -;; definition for function entity-count (defun entity-count () (let ((v0-0 0)) (dotimes (v1-0 (-> *level* length)) @@ -418,8 +397,6 @@ ) ) -;; definition for function entity-remap-names -;; WARN: Return type mismatch int vs none. (defun entity-remap-names ((arg0 pair)) (let ((s5-0 (car arg0))) (while (not (null? arg0)) @@ -446,8 +423,6 @@ (none) ) -;; definition (debug) for function process-status-bits -;; WARN: Return type mismatch int vs none. (defun-debug process-status-bits ((arg0 process) (arg1 symbol)) (let* ((s5-0 arg0) (s3-0 (if (type? s5-0 process-drawable) @@ -509,8 +484,7 @@ (none) ) -;; definition for function process-entity-set! -(defun process-entity-set! ((arg0 process) (arg1 entity)) +(defun process-entity-set! ((arg0 process) (arg1 entity-actor)) (set! (-> arg0 entity) arg1) (if arg1 (set! (-> arg0 level) (-> arg1 extra level)) @@ -519,12 +493,10 @@ arg1 ) -;; definition for function process-task-mask (defun process-task-mask ((arg0 process)) (-> arg0 level task-mask) ) -;; definition for method 2 of type process (defmethod print process ((obj process)) (cond ((and (-> obj top-thread) (!= (-> obj status) 'dead)) @@ -560,96 +532,9 @@ obj ) -;; definition for method 3 of type entity -(defmethod inspect entity ((obj entity)) - ((the-as (function entity entity) (find-parent-method entity 3)) obj) - (format #t "~Ttrans: ~`vector`P~%" (-> obj trans)) - (format #t "~Taid: ~D~%" (-> obj aid)) - obj - ) -;; definition for method 3 of type entity-nav-mesh -(defmethod inspect entity-nav-mesh ((obj entity-nav-mesh)) - ((the-as (function object object) (find-parent-method entity-nav-mesh 3)) obj) - (format #t "~Tnav-mesh ~A~%" (-> obj nav-mesh)) - (if (and (-> obj nav-mesh) (nonzero? (-> obj nav-mesh))) - (inspect (-> obj nav-mesh)) - ) - obj - ) -;; definition for method 3 of type entity-actor -(defmethod inspect entity-actor ((obj entity-actor)) - ((the-as (function entity entity) (find-parent-method entity-actor 3)) obj) - (format #t "~Tetype: ~A~%" (-> obj etype)) - (format #t "~Ttask: ~d~%" (-> obj task)) - (format #t "~Tkill-mask: #x~X : (" (-> obj kill-mask)) - (let ((s5-0 (-> obj kill-mask))) - (if (= (logand s5-0 (task-mask task0)) (task-mask task0)) - (format #t "task0 ") - ) - (if (= (logand s5-0 (task-mask task2)) (task-mask task2)) - (format #t "task2 ") - ) - (if (= (logand s5-0 (task-mask task4)) (task-mask task4)) - (format #t "task4 ") - ) - (if (= (logand s5-0 (task-mask task6)) (task-mask task6)) - (format #t "task6 ") - ) - (if (= (logand s5-0 (task-mask ctywide)) (task-mask ctywide)) - (format #t "ctywide ") - ) - (if (= (logand s5-0 (task-mask never)) (task-mask never)) - (format #t "never ") - ) - (if (= (logand (task-mask movie1) s5-0) (task-mask movie1)) - (format #t "movie1 ") - ) - (if (= (logand s5-0 (task-mask dummy1)) (task-mask dummy1)) - (format #t "dummy1 ") - ) - (if (= (logand s5-0 (task-mask primary0)) (task-mask primary0)) - (format #t "primary0 ") - ) - (if (= (logand s5-0 (task-mask task1)) (task-mask task1)) - (format #t "task1 ") - ) - (if (= (logand s5-0 (task-mask task3)) (task-mask task3)) - (format #t "task3 ") - ) - (if (= (logand s5-0 (task-mask task5)) (task-mask task5)) - (format #t "task5 ") - ) - (if (= (logand s5-0 (task-mask task7)) (task-mask task7)) - (format #t "task7 ") - ) - (if (= (logand (task-mask movie2) s5-0) (task-mask movie2)) - (format #t "movie2 ") - ) - (if (= (logand s5-0 (task-mask dummy2)) (task-mask dummy2)) - (format #t "dummy2 ") - ) - (if (= (logand s5-0 (task-mask done)) (task-mask done)) - (format #t "done ") - ) - (if (= (logand s5-0 (task-mask special)) (task-mask special)) - (format #t "special ") - ) - (if (= (logand (task-mask movie0) s5-0) (task-mask movie0)) - (format #t "movie0 ") - ) - (if (= (logand s5-0 (task-mask dummy0)) (task-mask dummy0)) - (format #t "dummy0 ") - ) - ) - (format #t ")~%") - (format #t "~Tvis-id: ~d~%" (-> obj vis-id)) - (format #t "~Tquat: ~`vector`P~%" (-> obj quat)) - obj - ) -;; definition for method 29 of type entity-actor ;; WARN: Return type mismatch entity-actor vs none. (defmethod debug-print entity-actor ((obj entity-actor) (arg0 symbol) (arg1 type)) (let ((s4-0 (-> obj etype))) @@ -723,8 +608,6 @@ (none) ) -;; definition for method 14 of type level-group -;; WARN: Return type mismatch int vs none. (defmethod debug-print-entities level-group ((obj level-group) (arg0 symbol) (arg1 type)) (let ((t9-0 format) (a0-1 #t) @@ -762,8 +645,6 @@ (none) ) -;; definition for method 24 of type entity-actor -;; INFO: Used lq/sq ;; WARN: Return type mismatch entity-actor vs none. (defmethod add-to-level! entity-actor ((obj entity-actor) (arg0 level-group) (arg1 level) (arg2 actor-id)) (let ((v1-4 (-> arg1 entity data (-> arg1 entity length)))) @@ -836,7 +717,6 @@ (none) ) -;; definition for method 25 of type entity (defmethod remove-from-level! entity ((obj entity) (arg0 level-group)) (let ((v1-0 (-> obj extra))) (cond @@ -855,8 +735,6 @@ obj ) -;; definition for function update-actor-vis-box -;; WARN: Return type mismatch int vs none. (defun update-actor-vis-box ((arg0 process-drawable) (arg1 vector) (arg2 vector)) (when (and arg0 (nonzero? (-> arg0 draw)) (zero? (logand (-> arg0 draw status) (draw-control-status no-draw)))) (let ((v1-5 (-> arg0 draw origin)) @@ -874,8 +752,6 @@ (none) ) -;; definition for method 25 of type level-group -;; WARN: Return type mismatch int vs none. (defmethod update-vis-volumes level-group ((obj level-group)) (local-vars (sv-16 pointer) (sv-20 pointer) (sv-24 pointer) (sv-28 process)) (dotimes (s5-0 (-> obj length)) @@ -923,8 +799,6 @@ (none) ) -;; definition for function expand-bounding-box -;; WARN: Return type mismatch int vs none. (defun expand-bounding-box ((arg0 vector) (arg1 vector) (arg2 vector) (arg3 vector)) (set! (-> arg0 x) (fmin (-> arg0 x) (-> arg2 x))) (set! (-> arg0 y) (fmin (-> arg0 y) (-> arg2 y))) @@ -936,8 +810,6 @@ (none) ) -;; definition for method 26 of type level-group -;; INFO: Used lq/sq ;; WARN: Stack slot offset 28 signed mismatch ;; WARN: Stack slot offset 28 signed mismatch ;; WARN: Stack slot offset 28 signed mismatch @@ -974,7 +846,6 @@ ;; WARN: Stack slot offset 32 signed mismatch ;; WARN: Stack slot offset 32 signed mismatch ;; WARN: Stack slot offset 32 signed mismatch -;; WARN: Return type mismatch int vs none. (defmethod update-vis-volumes-from-nav-mesh level-group ((obj level-group)) (local-vars (sv-16 pointer) @@ -1072,15 +943,12 @@ (none) ) -;; definition for method 27 of type level-group -;; INFO: Used lq/sq ;; WARN: Stack slot offset 20 signed mismatch ;; WARN: Stack slot offset 20 signed mismatch ;; WARN: Stack slot offset 20 signed mismatch ;; WARN: Stack slot offset 20 signed mismatch ;; WARN: Stack slot offset 20 signed mismatch ;; WARN: Stack slot offset 20 signed mismatch -;; WARN: Return type mismatch int vs none. (defmethod print-volume-sizes level-group ((obj level-group)) (local-vars (sv-16 pointer) @@ -1161,8 +1029,6 @@ (none) ) -;; definition for function expand-vis-box-with-point -;; WARN: Return type mismatch int vs none. (defun expand-vis-box-with-point ((arg0 entity) (arg1 vector)) (let ((v1-1 (res-lump-data arg0 'visvol (inline-array vector)))) (when v1-1 @@ -1182,7 +1048,6 @@ (none) ) -;; definition of type debug-actor-info (deftype debug-actor-info (basic) ((name basic :offset-assert 4) (handle handle :offset-assert 8) @@ -1194,29 +1059,11 @@ :flag-assert #x900000018 ) -;; definition for method 3 of type debug-actor-info -(defmethod inspect debug-actor-info ((obj debug-actor-info)) - (when (not obj) - (set! obj obj) - (goto cfg-4) - ) - (format #t "[~8x] ~A~%" obj (-> obj type)) - (format #t "~1Tname: ~A~%" (-> obj name)) - (format #t "~1Thandle: ~D~%" (-> obj handle)) - (format #t "~1Tprocess: ~A~%" (-> obj process)) - (format #t "~1Tpid: ~D~%" (-> obj pid)) - (label cfg-4) - obj - ) -;; definition for symbol *debug-actor-info*, type debug-actor-info (define *debug-actor-info* (new 'static 'debug-actor-info :name #f)) -;; definition for symbol *pid-string*, type string (define *pid-string* (new 'global 'string 128 (the-as string #f))) -;; definition (debug) for function debug-actor -;; WARN: Return type mismatch int vs none. (defun-debug debug-actor ((arg0 string)) (let ((gp-0 *debug-actor-info*)) (set! (-> gp-0 name) #f) @@ -1253,10 +1100,8 @@ (none) ) -;; definition (debug) for function draw-actor-marks -;; WARN: Return type mismatch int vs none. (defun-debug draw-actor-marks ((arg0 process)) - (local-vars (sv-16 entity) (sv-20 (pointer int32))) + (local-vars (sv-16 entity-actor) (sv-20 (pointer int32))) (b! (not (and (or (type? arg0 process-drawable) (= (-> arg0 type) part-tracker) (type? arg0 part-spawner)) (nonzero? (-> (the-as part-spawner arg0) root)) @@ -1388,9 +1233,6 @@ (none) ) -;; definition for method 15 of type level-group -;; INFO: Used lq/sq -;; WARN: Return type mismatch int vs none. (defmethod debug-draw-actors level-group ((obj level-group) (arg0 symbol)) (local-vars (sv-16 symbol) @@ -1769,19 +1611,16 @@ ) ) -;; definition for method 22 of type entity-camera (defmethod birth! entity-camera ((obj entity-camera)) (add-connection *camera-engine* *camera* nothing obj #f #f) obj ) -;; definition for method 23 of type entity-camera (defmethod kill! entity-camera ((obj entity-camera)) (remove-by-param1 *camera-engine* (the-as int obj)) obj ) -;; definition for function init-entity ;; WARN: Return type mismatch process vs none. (defun init-entity ((arg0 process) (arg1 entity-actor)) (activate arg0 *entity-pool* (res-lump-struct arg1 'name basic) (the-as pointer #x70004000)) @@ -1792,7 +1631,6 @@ (none) ) -;; definition for method 22 of type entity-actor (defmethod birth! entity-actor ((obj entity-actor)) (let* ((s5-0 (-> obj etype)) (v1-0 (entity-info-lookup s5-0)) @@ -1823,7 +1661,6 @@ obj ) -;; definition for function entity-deactivate-handler ;; WARN: Return type mismatch symbol vs none. (defun entity-deactivate-handler ((arg0 process) (arg1 entity-actor)) (when (= arg0 (-> arg1 extra process)) @@ -1833,7 +1670,6 @@ (none) ) -;; definition for method 23 of type entity-actor (defmethod kill! entity-actor ((obj entity-actor)) (let ((a0-1 (-> obj extra process))) (if a0-1 @@ -1844,8 +1680,6 @@ obj ) -;; definition for method 17 of type bsp-header -;; INFO: Used lq/sq ;; WARN: Return type mismatch bsp-header vs none. ;; ERROR: Unsupported inline assembly instruction kind - [mfc0 s5, Count] ;; ERROR: Unsupported inline assembly instruction kind - [mfc0 v1, Count] @@ -1921,8 +1755,6 @@ (none) ) -;; definition for function check-for-rougue-process -;; WARN: Return type mismatch int vs none. (defun check-for-rougue-process ((arg0 process) (arg1 int) (arg2 int) (arg3 level)) (cond ((-> arg0 entity) @@ -2027,7 +1859,6 @@ (none) ) -;; definition for method 18 of type bsp-header ;; WARN: Return type mismatch bsp-header vs none. (defmethod deactivate-entities bsp-header ((obj bsp-header)) (let ((v1-1 (-> obj level heap base)) @@ -2115,9 +1946,6 @@ (none) ) -;; definition for function process-drawable-scale-from-entity! -;; INFO: Used lq/sq -;; WARN: Return type mismatch int vs none. (defun process-drawable-scale-from-entity! ((arg0 process-drawable) (arg1 entity)) (let ((v1-1 (res-lump-struct arg1 'scale structure))) (if v1-1 @@ -2129,8 +1957,6 @@ (none) ) -;; definition for function process-drawable-from-entity! -;; INFO: Used lq/sq ;; WARN: Return type mismatch process-drawable vs none. (defun process-drawable-from-entity! ((arg0 process-drawable) (arg1 entity-actor)) (logior! (-> arg0 mask) (process-mask actor-pause)) @@ -2140,8 +1966,7 @@ (none) ) -;; definition for method 9 of type entity-perm -(defmethod update-perm! entity-perm ((obj entity-perm) (arg0 symbol) (arg1 entity-perm-status)) +(defmethod update entity-perm ((obj entity-perm) (arg0 symbol) (arg1 entity-perm-status)) (cond ((= arg0 'game) (logclear! (-> obj status) arg1) @@ -2171,8 +1996,6 @@ obj ) -;; definition for function reset-actors -;; WARN: Return type mismatch int vs none. (defun reset-actors ((arg0 symbol)) (let* ((v1-0 arg0) (s5-0 (cond @@ -2205,7 +2028,7 @@ (if (not (and (-> s0-0 extra process) (logtest? (-> s0-0 extra process mask) (process-mask no-kill)))) (kill! s0-0) ) - (update-perm! (-> s0-0 extra perm) arg0 (the-as entity-perm-status s5-0)) + (update (-> s0-0 extra perm) arg0 (the-as entity-perm-status s5-0)) ) ) ) @@ -2214,13 +2037,13 @@ ) (let ((s3-1 (-> s4-0 task-perm-list))) (dotimes (s2-1 (-> s3-1 length)) - (update-perm! (-> s3-1 data s2-1) arg0 (the-as entity-perm-status s5-0)) + (update (-> s3-1 data s2-1) arg0 (the-as entity-perm-status s5-0)) ) (logior! (-> s3-1 data 1 status) (entity-perm-status complete)) ) (let ((s4-1 (-> s4-0 perm-list))) (dotimes (s3-2 (-> s4-1 length)) - (update-perm! (-> s4-1 data s3-2) arg0 (the-as entity-perm-status s5-0)) + (update (-> s4-1 data s3-2) arg0 (the-as entity-perm-status s5-0)) ) ) ) @@ -2257,8 +2080,6 @@ (none) ) -;; definition for function reset-cameras -;; WARN: Return type mismatch int vs none. (defun reset-cameras () (remove-all *camera-engine*) (dotimes (gp-0 (-> *level* length)) @@ -2278,7 +2099,6 @@ (none) ) -;; definition for method 12 of type process-drawable (defmethod run-logic? process-drawable ((obj process-drawable)) (or (zero? (logand (-> obj mask) (process-mask actor-pause))) (or (>= (+ (-> *ACTOR-bank* pause-dist) (-> obj root pause-adjust-distance)) @@ -2290,20 +2110,16 @@ ) ) -;; definition for method 9 of type entity-links (defmethod birth? entity-links ((obj entity-links) (arg0 vector)) (and (zero? (logand (-> obj perm status) (entity-perm-status bit-0 dead))) (< (vector-vector-distance (-> obj trans) arg0) (-> *ACTOR-bank* birth-dist)) ) ) -;; definition for method 17 of type level-group -;; INFO: Used lq/sq ;; ERROR: Stack slot load at 96 mismatch: defined as size 4, got size 16 ;; ERROR: Stack slot load at 96 mismatch: defined as size 4, got size 16 ;; ERROR: Stack slot load at 96 mismatch: defined as size 4, got size 16 ;; ERROR: Stack slot load at 96 mismatch: defined as size 4, got size 16 -;; WARN: Return type mismatch int vs none. ;; WARN: Function (method 17 level-group) has a return type of none, but the expression builder found a return statement. (defmethod actors-update level-group ((obj level-group)) (local-vars @@ -2511,7 +2327,6 @@ ) ) -;; definition for function entity-birth-no-kill (defun entity-birth-no-kill ((arg0 entity)) (let ((gp-0 (-> arg0 extra))) (logior! (-> gp-0 perm status) (entity-perm-status no-kill)) @@ -2522,8 +2337,6 @@ ) ) -;; definition for function entity-task-complete-on -;; WARN: Return type mismatch int vs none. (defun entity-task-complete-on ((arg0 entity)) (let ((v1-0 (-> arg0 extra))) (if (nonzero? (-> v1-0 perm task)) @@ -2534,8 +2347,6 @@ (none) ) -;; definition for function entity-task-complete-off -;; WARN: Return type mismatch int vs none. (defun entity-task-complete-off ((arg0 entity)) (let ((v1-0 (-> arg0 extra))) (if (!= (-> v1-0 perm task) 1) @@ -2546,7 +2357,6 @@ (none) ) -;; definition for method 30 of type entity-actor ;; WARN: Return type mismatch entity-perm-status vs none. (defmethod toggle-status entity-actor ((obj entity-actor) (arg0 entity-perm-status) (arg1 symbol)) (let ((v1-0 (-> obj extra))) @@ -2559,7 +2369,6 @@ (none) ) -;; definition for function process-entity-status! (defun process-entity-status! ((arg0 process) (arg1 entity-perm-status) (arg2 symbol)) (cond ((and (-> arg0 entity) arg0 (= arg0 (-> arg0 entity extra process))) @@ -2577,7 +2386,6 @@ ) ) -;; definition for function find-nearest-entity ;; WARN: Return type mismatch entity-actor vs entity. (defun find-nearest-entity ((arg0 vector) (arg1 type)) (local-vars (v1-9 object)) @@ -2618,7 +2426,6 @@ ) ) -;; definition (debug) for function entity-speed-test ;; WARN: Return type mismatch entity vs none. ;; ERROR: Unsupported inline assembly instruction kind - [mtc0 Count, r0] ;; ERROR: Unsupported inline assembly instruction kind - [sync.p] @@ -2643,9 +2450,6 @@ (none) ) -;; definition (debug) for function dump-entity-remap -;; INFO: Used lq/sq -;; WARN: Return type mismatch int vs none. (defun-debug dump-entity-remap ((arg0 object) (arg1 object)) (local-vars (sv-16 symbol) @@ -2729,7 +2533,3 @@ 0 (none) ) - - - - diff --git a/goal_src/jak2/engine/game/fact-h.gc b/goal_src/jak2/engine/game/fact-h.gc index a078ecc342..8bb918b3f5 100644 --- a/goal_src/jak2/engine/game/fact-h.gc +++ b/goal_src/jak2/engine/game/fact-h.gc @@ -112,6 +112,7 @@ ) (declare-type entity res-lump) +(declare-type entity-actor entity) (declare-type target process-focusable) (define-extern process-task-mask (function process task-mask)) @@ -158,6 +159,7 @@ :flag-assert #x9000000a0 ) + (define *FACT-bank* (new 'static 'fact-bank :eco-level-max 2.0 :eco-single-inc 1.0 @@ -217,12 +219,13 @@ ) ) + (deftype fact-info-target (fact-info) ((eco-type int32 :offset-assert 40) (eco-level float :offset-assert 44) (eco-pickup-time time-frame :offset-assert 48) (eco-timeout time-frame :offset-assert 56) - (eco-source uint64 :offset-assert 64) + (eco-source handle :offset-assert 64) (eco-source-time time-frame :offset-assert 72) (health float :offset-assert 80) (health-max float :offset-assert 84) @@ -262,6 +265,7 @@ ) ) + (deftype fact-info-enemy (fact-info) ((speed float :offset-assert 40) (idle-distance meters :offset-assert 44) @@ -285,21 +289,24 @@ ) ) + (deftype fact-info-crate (fact-info) ((suck-count int32 :offset-assert 40) ) - (:methods - (new (symbol type process pickup-type float) _type_ 0) - ) :method-count-assert 12 :size-assert #x2c :flag-assert #xc0000002c + (:methods + (new (symbol type process pickup-type float) _type_ 0) + ) ) + +;; WARN: Return type mismatch object vs fact-info. (defmethod new fact-info ((allocation symbol) (type-to-make type) (arg0 process) (arg1 pickup-type) (arg2 float)) - (local-vars (sv-16 fact-info) (sv-20 entity) (sv-24 task-mask)) + (local-vars (sv-16 fact-info) (sv-20 res-lump) (sv-24 task-mask)) (set! sv-16 (object-new allocation type-to-make (the-as int (-> type-to-make size)))) - (set! sv-20 (-> arg0 entity)) + (set! sv-20 (the-as res-lump (-> arg0 entity))) (set! sv-24 (process-task-mask arg0)) (when (zero? sv-16) (go process-drawable-art-error "memory") @@ -308,7 +315,7 @@ (set! (-> sv-16 process) arg0) (set! (-> sv-16 pickup-type) arg1) (set! (-> sv-16 pickup-amount) arg2) - (let ((s4-1 (-> ((method-of-type res-lump lookup-tag-idx) sv-20 'eco-info 'base -1000000000.0) lo))) + (let ((s4-1 (-> (lookup-tag-idx sv-20 'eco-info 'base -1000000000.0) lo))) (when (>= (the-as int s4-1) 0) (let ((s3-0 (the-as int s4-1)) (s2-0 (-> sv-20 tag s4-1)) @@ -356,6 +363,7 @@ :flag-assert #x900000008 ) + (define *fact-info-enemy-defaults* (new 'static 'fact-info-enemy-defaults :idle-distance (meters 80))) (defmethod new fact-info-enemy ((allocation symbol) @@ -367,7 +375,7 @@ ) (local-vars (sv-16 res-tag) (sv-32 res-tag)) (let ((gp-0 (the-as fact-info-enemy ((method-of-type fact-info new) allocation type-to-make arg0 arg2 arg3)))) - (let ((s5-0 (the res-lump (-> gp-0 process entity)))) + (let ((s5-0 (the-as res-lump (-> gp-0 process entity)))) (set! (-> gp-0 speed) (res-lump-float s5-0 'speed :default 1.0)) (set! (-> gp-0 idle-distance) (res-lump-float s5-0 'idle-distance :default (-> arg1 0))) (set! (-> gp-0 notice-top) (res-lump-float s5-0 'notice-top :default 4096000.0)) @@ -378,7 +386,7 @@ (set! (-> gp-0 enemy-options) (res-lump-value s5-0 'enemy-options enemy-option :time -1000000000.0)) (let ((s4-1 0)) (set! sv-16 (new 'static 'res-tag)) - (let ((v1-11 (res-lump-data s5-0 'trigger pointer :tag-ptr (& sv-16) :time -1000000000.0))) + (let ((v1-11 (res-lump-data s5-0 'trigger pointer :tag-ptr (& sv-16)))) (when v1-11 (set! (-> gp-0 enemy-options) (logior (enemy-option has-trigger) (-> gp-0 enemy-options))) (let ((a0-13 0)) @@ -402,7 +410,7 @@ ) (when (logtest? s4-1 2) (set! sv-32 (new 'static 'res-tag)) - (let ((v1-20 (res-lump-data s5-0 'trig-ag pointer :tag-ptr (& sv-32) :time -1000000000.0))) + (let ((v1-20 (res-lump-data s5-0 'trig-ag pointer :tag-ptr (& sv-32)))) (if (and v1-20 (nonzero? (-> sv-32 elt-count))) (set! (-> gp-0 trig-actor-group) (the-as uint v1-20)) (clear-mask-bits gp-0 2) @@ -427,7 +435,7 @@ (defmethod new fact-info-crate ((allocation symbol) (type-to-make type) (arg0 process) (arg1 pickup-type) (arg2 float)) (let ((gp-0 (the-as fact-info-crate ((method-of-type fact-info new) allocation type-to-make arg0 arg1 arg2)))) - (let ((a0-1 (the res-lump (-> gp-0 process entity)))) + (let ((a0-1 (the-as res-lump (-> gp-0 process entity)))) (set! (-> gp-0 suck-count) (res-lump-value a0-1 'suck-count int :time -1000000000.0)) ) gp-0 @@ -436,10 +444,8 @@ (defmethod new fact-info-target ((allocation symbol) (type-to-make type) (arg0 process-drawable) (arg1 pickup-type) (arg2 float)) (let ((gp-0 (the-as fact-info-target ((method-of-type fact-info new) allocation type-to-make arg0 arg1 arg2)))) - (set! (-> gp-0 eco-source) (the-as uint #f)) + (set! (-> gp-0 eco-source) (the-as handle #f)) (reset! gp-0 #f) gp-0 ) ) - - diff --git a/goal_src/jak2/engine/game/game-info-h.gc b/goal_src/jak2/engine/game/game-info-h.gc index 62ec5cf271..58142c3401 100644 --- a/goal_src/jak2/engine/game/game-info-h.gc +++ b/goal_src/jak2/engine/game/game-info-h.gc @@ -68,37 +68,6 @@ (cf30 30) ) -(defenum game-feature - :type uint64 - :bitfield #t - (unk-game-feature-01) - (unk-game-feature-02) - (unk-game-feature-03) - (unk-game-feature-04) - (unk-game-feature-05) - (unk-game-feature-06) - (gun-yellow) - (gun-red) - (gun-blue) - (gun-dark) - (board) - (carry) - (sidekick) - (darkjak) - (gun-upgrade-speed) - (gun-upgrade-ammo) - (gun-upgrade-damage) - (unk-game-feature-18) - (pass-red) - (pass-green) - (pass-yellow) - (unk-game-feature-22) - (darkjak-bomb0) - (darkjak-bomb1) - (darkjak-invinc) - (darkjak-giant) - (board-training)) - (defenum game-secrets :type uint32 :bitfield #t @@ -113,6 +82,7 @@ (level-select) (scrap-book-1) (scrap-book-2) + (scrap-book-3) (gungame-blue) (gungame-dark) (reverse-races) @@ -120,6 +90,34 @@ (big-head) (little-head)) +(defenum game-score + (none) + (race-1) + (race-2) + (race-3) + (gungame-red) + (gungame-yellow) + (gungame-blue) + (gungame-dark) + (onin-game) + (whack) + (judge-skatea) + (bush-race-1) + (bush-race-2) + (bush-race-3) + (bush-port) + (bush-errol) + (reverse-race-1) + (reverse-race-2) + (reverse-race-3) + ) + +(defenum highscore-flags + :bitfield #t + :type uint8 + (time) + ) + (declare-type game-info basic) (define-extern *game-info* game-info) (declare-type process-drawable process) @@ -127,8 +125,11 @@ (define-extern part-group-pointer? (function pointer symbol)) ;; NOTE - for default-menu -(define-extern bug-report-display (function none)) -(define-extern trsq->continue-point (function trsq none)) +(define-extern bug-report-display (function symbol int)) +(define-extern trsq->continue-point (function trsq int)) + +(declare-type entity-perm structure) +(define-extern *task-level* (array symbol)) ;; DECOMP BEGINS @@ -164,17 +165,17 @@ ) (deftype highscore-info (structure) - ((flags uint8 :offset-assert 0) - (award-scores float 3 :offset-assert 4) - (bronze-score float :offset 4) - (silver-score float :offset 8) - (gold-score float :offset 12) + ((flags highscore-flags :offset-assert 0) + (award-scores float 3 :offset-assert 4) + (bronze-score float :offset 4) + (silver-score float :offset 8) + (gold-score float :offset 12) ) :method-count-assert 10 :size-assert #x10 :flag-assert #xa00000010 (:methods - (highscore-info-method-9 () none 9) + (get-rank (_type_ float) int 9) ) ) @@ -233,7 +234,7 @@ (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) + (camera-rot vector3s 3 :inline :offset-assert 64) (on-goto pair :offset-assert 100) (vis-nick symbol :offset-assert 104) (want level-buffer-state 6 :inline :offset-assert 108) @@ -243,9 +244,9 @@ :size-assert #xd8 :flag-assert #xc000000d8 (:methods - (continue-point-method-9 () none 9) - (continue-point-method-10 () none 10) - (continue-point-method-11 (_type_) none 11) + (debug-draw (_type_) int 9) + (continue-point-method-10 (_type_ load-state) continue-point 10) + (move-camera! (_type_) none 11) ) ) @@ -278,10 +279,10 @@ (gun-ammo float 4 :offset-assert 164) (shield float :offset-assert 180) (score float :offset-assert 184) - (score-owner uint64 :offset-assert 192) - (timer uint64 :offset-assert 200) - (timer-owner uint64 :offset-assert 208) - (timer-flash basic :offset-assert 216) + (score-owner handle :offset-assert 192) + (timer time-frame :offset-assert 200) + (timer-owner handle :offset-assert 208) + (timer-flash symbol :offset-assert 216) (counter float :offset-assert 220) (counter-flash basic :offset-assert 224) (attack-id uint32 :offset-assert 228) @@ -291,9 +292,9 @@ (last-continue continue-point :offset-assert 244) (play-list (array game-task-info) :offset-assert 248) (sub-task-list (array game-task-node-info) :offset-assert 252) - (unknown-pad5 array :offset-assert 256) + (unknown-pad5 (array game-task-node-info) :offset-assert 256) (task-counter uint32 :offset-assert 260) - (unknown-pad6 uint32 :offset-assert 264) + (unknown-pad6 (array uint16) :offset-assert 264) (level-opened uint8 32 :offset-assert 268) (total-deaths int32 :offset-assert 300) (continue-deaths int32 :offset-assert 304) @@ -304,9 +305,9 @@ (death-time time-frame :offset-assert 336) (hit-time time-frame :offset-assert 344) (task-pickup-time time-frame :offset-assert 352) - (unknown-array1 (array uint64) :offset-assert 360) - (unknown-array2 (array uint64) :offset-assert 364) - (unknown-array3 (array uint64) :offset-assert 368) + (unknown-array1 (array time-frame) :offset-assert 360) + (task-enter-times (array time-frame) :offset-assert 364) + (task-in-times (array time-frame) :offset-assert 368) (death-pos vector-array :offset 372) (stop-watch-start uint64 :offset-assert 376) (stop-watch-stop uint64 :offset-assert 384) @@ -322,8 +323,8 @@ (auto-save-card int32 :offset-assert 452) (auto-save-which int32 :offset-assert 456) (auto-save-count int32 :offset-assert 460) - (pov-camera-handle uint64 :offset-assert 464) - (other-camera-handle uint64 :offset-assert 472) + (pov-camera-handle handle :offset-assert 464) + (other-camera-handle handle :offset-assert 472) (controller handle 2 :offset-assert 480) (race-timer uint64 :offset-assert 496) (race-current-lap-count int32 :offset-assert 504) @@ -336,11 +337,11 @@ (distance float :offset-assert 540) (kiosk-timeout uint64 :offset-assert 544) (pause-start-time time-frame :offset-assert 552) - (game-score (array highscore-info) :offset-assert 560) + (game-score (array float) :offset-assert 560) (goal float :offset-assert 564) (miss float :offset-assert 568) (miss-max float :offset-assert 572) - (unknown-array4 (array uint64) :offset-assert 576) + (task-close-times (array time-frame) :offset-assert 576) (live-eco-pill-count int32 :offset-assert 580) (live-gem-count int32 :offset-assert 584) (air-supply float :offset-assert 588) @@ -353,27 +354,27 @@ :flag-assert #x1f0000025c (:methods (initialize! (_type_ symbol game-save string) _type_ 9) - (game-info-method-10 () none 10) + (give (_type_ symbol float handle) float 10) (task-complete? (_type_ game-task) symbol 11) - (game-info-method-12 (_type_) none 12) - (game-info-method-13 () none 13) - (game-info-method-14 () none 14) - (game-info-method-15 () none 15) - (copy-perms-from-level! (_type_ level) none 16) - (copy-perms-to-level! (_type_ level) none 17) - (game-info-method-18 () none 18) - (get-current-continue-point (_type_) continue-point 19) + (subtask-index-by-name (_type_ string) int 12) + (set-subtask-hook! (_type_ int int function) function 13) + (actor-perm (_type_ actor-id) entity-perm 14) + (task-perm-by-index (_type_ int) entity-perm 15) + (copy-perms-from-level! (_type_ level) int 16) + (copy-perms-to-level! (_type_ level) int 17) + (game-info-method-18 (_type_ symbol) _type_ 18) + (get-current-continue-forced (_type_) continue-point 19) (get-continue-by-name (_type_ string) continue-point 20) - (set-continue! (_type_ basic object) continue-point 21) - (game-info-method-22 () none 22) - (game-info-method-23 () none 23) - (game-info-method-24 () none 24) - (game-info-method-25 () none 25) - (game-info-method-26 () none 26) + (set-continue! (_type_ basic symbol) continue-point 21) + (game-info-method-22 (_type_) int 22) + (game-info-method-23 (_type_ game-save string) int 23) + (game-info-method-24 (_type_ game-save) none 24) + (you-suck-stage (_type_ symbol) int 25) + (you-suck-scale (_type_) float 26) (get-next-attack-id (_type_) uint 27) - (game-info-method-28 () none 28) - (game-info-method-29 () none 29) - (game-info-method-30 () none 30) + (game-info-method-28 (_type_ game-score float) int 28) + (get-game-score-ref (_type_ int) (pointer float) 29) + (calculate-percentage (_type_) float 30) ) ) @@ -385,17 +386,14 @@ ) ) -(set! gp-0 (when (or (not *game-info*) (zero? *game-info*)) - (set! gp-0 (new 'static 'game-info :mode 'debug :current-continue #f :last-continue #f)) - (set! (-> gp-0 unknown-array1) (new 'global 'boxed-array uint64 110)) - (set! (-> gp-0 unknown-array4) (new 'global 'boxed-array uint64 110)) - (set! (-> gp-0 unknown-array2) (new 'global 'boxed-array uint64 32)) - (set! (-> gp-0 unknown-array3) (new 'global 'boxed-array uint64 32)) - (set! *game-info* gp-0) - gp-0 - ) +(set! gp-0 + (when (or (not *game-info*) (zero? *game-info*)) + (set! gp-0 (new 'static 'game-info :mode 'debug :current-continue #f :last-continue #f)) + (set! (-> gp-0 unknown-array1) (the-as (array time-frame) (new 'global 'boxed-array uint64 110))) + (set! (-> gp-0 task-close-times) (the-as (array time-frame) (new 'global 'boxed-array uint64 110))) + (set! (-> gp-0 task-enter-times) (the-as (array time-frame) (new 'global 'boxed-array uint64 32))) + (set! (-> gp-0 task-in-times) (the-as (array time-frame) (new 'global 'boxed-array uint64 32))) + (set! *game-info* gp-0) + gp-0 + ) ) - - - - diff --git a/goal_src/jak2/engine/game/game-info.gc b/goal_src/jak2/engine/game/game-info.gc index 1526304e61..86842b154c 100644 --- a/goal_src/jak2/engine/game/game-info.gc +++ b/goal_src/jak2/engine/game/game-info.gc @@ -5,13 +5,1729 @@ ;; name in dgo: game-info ;; dgos: ENGINE, GAME +(define-extern demo? (function symbol)) +(define-extern task-resolution-close! (function game-task symbol)) +(define-extern *lightning-darkjak-pill* lightning-spec) +(define-extern lightning-probe-callback (function lightning-tracker none)) +(define-extern process-drawable-shock-effect (function process-drawable lightning-spec (function lightning-tracker none) sparticle-launcher int int float object)) ;; guess +(define-extern print-game-text (function string font-context symbol int int float)) + ;; DECOMP BEGINS -(defmethod invert-analog-if-needed cpad-info ((obj cpad-info)) +(defmethod debug-draw border-plane ((obj border-plane)) + (let* ((v1-0 (-> obj action)) + (plane-color (if (= v1-0 'load) + (the-as uint #x8000ff00) + (the-as uint #x800000ff) + ) + ) + ) + (add-debug-text-sphere + #t + (bucket-id debug-no-zbuf1) + (-> obj trans) + (meters 0.2) + (symbol->string (-> obj name)) + (the-as rgba plane-color) + ) + (add-debug-vector + #t + (bucket-id debug-no-zbuf1) + (-> obj trans) + (-> obj normal) + (meters 2) + (the-as rgba plane-color) + ) + ) + 0 + ) + +(defmethod point-past-plane? border-plane ((obj border-plane) (arg0 vector)) + (>= (vector-dot (vector-! (new 'stack-no-clear 'vector) arg0 (-> obj trans)) (-> obj normal)) 0.0) + ) + +(defmethod task-complete? game-info ((obj game-info) (arg0 game-task)) + (logtest? (-> obj task-perm-list data arg0 status) (entity-perm-status complete)) + ) + +(defmethod subtask-index-by-name game-info ((obj game-info) (arg0 string)) + (let ((subtasks (-> *game-info* sub-task-list))) + (dotimes (i (-> subtasks length)) + (when (nonzero? i) + (let ((v1-4 (-> subtasks i))) + (if (string= arg0 (-> v1-4 name)) + (return i) + ) + ) + ) + ) + ) + 0 + ) + +(defmethod set-subtask-hook! game-info ((obj game-info) (arg0 int) (arg1 int) (arg2 function)) + (let ((subtask (-> obj sub-task-list arg0))) + (if (and subtask (-> subtask info)) + (set! (-> subtask info hooks arg1) (the-as (function object) arg2)) + ) + ) + arg2 + ) + +(define *default-continue* + (new 'static 'continue-point + :name "default" + :level #f + :flags (continue-flags cf2) + :trans (new 'static 'vector :w 1.0) + :quat (new 'static 'vector :w 1.0) + :camera-trans (new 'static 'vector :w 1.0) + :on-goto #f + :vis-nick #f + :want (new 'static 'inline-array level-buffer-state 6 + (new 'static 'level-buffer-state :name #f :display? #f :force-vis? #f :force-inside? #f) + (new 'static 'level-buffer-state :name #f :display? #f :force-vis? #f :force-inside? #f) + (new 'static 'level-buffer-state :name #f :display? #f :force-vis? #f :force-inside? #f) + (new 'static 'level-buffer-state :name #f :display? #f :force-vis? #f :force-inside? #f) + (new 'static 'level-buffer-state :name #f :display? #f :force-vis? #f :force-inside? #f) + (new 'static 'level-buffer-state :name #f :display? #f :force-vis? #f :force-inside? #f) + ) + :want-sound (new 'static 'array symbol 3 #f #f #f) + ) + ) + +(defmethod continue-point-method-10 continue-point ((obj continue-point) (arg0 load-state)) + (let ((v1-0 (lookup-level-info (-> obj vis-nick)))) + (set! (-> obj vis-nick) (if v1-0 + (-> v1-0 name) + ) + ) + ) + (dotimes (s4-0 6) + (mem-copy! (the-as pointer (-> obj want s4-0)) (the-as pointer (-> arg0 want s4-0)) 16) + ) + (dotimes (v1-7 3) + (set! (-> obj want-sound v1-7) (-> arg0 want-sound v1-7)) + ) + (set! (-> obj camera-trans quad) (-> *camera-combiner* trans quad)) + (when *camera-combiner* + (let ((a0-10 (-> *camera-combiner* inv-camera-rot)) + (v1-14 (-> obj camera-rot)) + ) + (set! (-> v1-14 0 x) (-> a0-10 vector 0 x)) + (set! (-> v1-14 0 y) (-> a0-10 vector 0 y)) + (set! (-> v1-14 0 z) (-> a0-10 vector 0 z)) + (set! (-> v1-14 1 x) (-> a0-10 vector 1 x)) + (set! (-> v1-14 1 y) (-> a0-10 vector 1 y)) + (set! (-> v1-14 1 z) (-> a0-10 vector 1 z)) + (set! (-> v1-14 2 x) (-> a0-10 vector 2 x)) + (set! (-> v1-14 2 y) (-> a0-10 vector 2 y)) + (set! (-> v1-14 2 z) (-> a0-10 vector 2 z)) + ) + ) + (add-borrow-levels arg0) + obj + ) + +(defmethod move-camera! continue-point ((obj continue-point)) + (set! (-> *camera-combiner* trans quad) (-> obj camera-trans quad)) + (let ((gp-0 (-> *camera-combiner* inv-camera-rot)) + (s5-0 (-> obj camera-rot)) + ) + (matrix-identity! gp-0) + (set! (-> gp-0 vector 0 x) (-> s5-0 0 x)) + (set! (-> gp-0 vector 0 y) (-> s5-0 0 y)) + (set! (-> gp-0 vector 0 z) (-> s5-0 0 z)) + (set! (-> gp-0 vector 1 x) (-> s5-0 1 x)) + (set! (-> gp-0 vector 1 y) (-> s5-0 1 y)) + (set! (-> gp-0 vector 1 z) (-> s5-0 1 z)) + (set! (-> gp-0 vector 2 x) (-> s5-0 2 x)) + (set! (-> gp-0 vector 2 y) (-> s5-0 2 y)) + (set! (-> gp-0 vector 2 z) (-> s5-0 2 z)) + ) + (send-event *camera* 'change-target *target*) + (cam-master-activate-slave #t) + 0 + (none) + ) + +(defmethod get-current-continue-forced game-info ((obj game-info)) + (cond + ((and (= (-> obj mode) 'play) (-> obj current-continue)) + (-> obj current-continue) + ) + (else + (let ((dfault *default-continue*)) + (position-in-front-of-camera! (-> dfault trans) 40960.0 4096.0) + (quaternion-identity! (the-as quaternion (-> dfault quat))) + (continue-point-method-10 dfault *load-state*) + dfault + ) + ) + ) + ) + +(defmethod get-continue-by-name game-info ((obj game-info) (arg0 string)) + (if (not arg0) + (return (the-as continue-point #f)) + ) + (let ((s5-0 *level-load-list*)) + (while (not (null? s5-0)) + (let ((continues (-> (the-as level-load-info (-> (the-as symbol (car s5-0)) value)) continues))) + (while (not (null? continues)) + (let ((cont (the-as continue-point (car continues)))) + (if (string= arg0 (-> cont name)) + (return cont) + ) + ) + (set! continues (cdr continues)) + ) + ) + (set! s5-0 (cdr s5-0)) + ) + ) + (the-as continue-point #f) + ) + +;; WARN: Using new Jak 2 rtype-of +(defmethod set-continue! game-info ((obj game-info) (arg0 basic) (arg1 symbol)) + (let ((s5-0 (-> obj current-continue))) + (if (null? arg0) + (set! arg0 (the-as basic #f)) + ) + (case (rtype-of arg0) + ((string) + (let ((v1-7 (get-continue-by-name obj (the-as string arg0)))) + (if v1-7 + (set! (-> obj current-continue) v1-7) + ) + ) + ) + ((continue-point) + (set! (-> obj current-continue) (the-as continue-point arg0)) + ) + (else + (let ((dfault *default-continue*)) + (position-in-front-of-camera! (-> dfault trans) 40960.0 4096.0) + (quaternion-identity! (the-as quaternion (-> dfault quat))) + (let ((v1-9 (lookup-level-info (-> *load-state* vis-nick)))) + (set! (-> dfault vis-nick) (if v1-9 + (-> v1-9 name) + ) + ) + ) + (dotimes (s2-0 6) + (mem-copy! (the-as pointer (-> dfault want s2-0)) (the-as pointer (-> *load-state* want s2-0)) 16) + ) + (dotimes (v1-16 3) + (set! (-> dfault want-sound v1-16) (-> *load-state* want-sound v1-16)) + ) + (set! (-> obj current-continue) dfault) + ) + ) + ) + (if (and (logtest? (-> obj current-continue flags) (continue-flags cf2)) + (and (!= (-> obj current-continue) *default-continue*) (not arg1)) + ) + (set! (-> obj current-continue) s5-0) + ) + (when (!= s5-0 (-> obj current-continue)) + (set! (-> obj continue-deaths) 0) + (set! (-> obj continue-time) (-> *display* game-clock frame-counter)) + ) + ) + (-> obj current-continue) + ) + +(defmethod task-perm-by-index game-info ((obj game-info) (arg0 int)) + (-> obj task-perm-list data arg0) + ) + +(defmethod calculate-percentage game-info ((obj game-info)) + (let ((story-total 0) + (story-complete 0) + ) + 0.0 + (let ((story-min (game-task fortress-escape)) + (story-max (game-task nest-boss)) + ) + (while (>= (the-as uint story-max) (the-as uint story-min)) + (when (not (or (= story-min (game-task city-blue-gun-training)) (= story-min (game-task city-dark-gun-training)))) + (+! story-total 1) + (if (task-complete? obj story-min) + (+! story-complete 1) + ) + ) + (+! story-min 1) + ) + ) + (let ((percent (/ (* 100.0 (the float story-complete)) (the float story-total)))) + (when (= story-complete story-total) + (let ((bbush-min (game-task city-burning-bush-ring-1)) + (bbush-max (game-task stadium-burning-bush-race-class1-r)) + ) + (while (>= (the-as uint bbush-max) (the-as uint bbush-min)) + (if (task-complete? obj bbush-min) + (set! percent (+ 1.0 percent)) + ) + (+! bbush-min 1) + ) + ) + ) + percent + ) + ) + ) + +(defun task-level->string ((arg0 int)) + (symbol->string (-> *task-level* arg0)) + ) + +(defun level-name->task-level ((arg0 symbol)) + (let ((v1-0 (lookup-level-info arg0))) + (if v1-0 + (the-as int (-> v1-0 task-level)) + 0 + ) + ) + ) + +;; WARN: rewrite_to_get_var got a none typed variable. Is there unreachable code? [OP: 512] +;; ERROR: Expression building failed: In (method 9 game-info): Expression pass could not find the set-to-run function. Found t9-31 instead. Make sure there are no casts on this function. +(defmethod initialize! game-info ((obj game-info) (arg0 symbol) (arg1 game-save) (arg2 string)) + obj + ;; (local-vars + ;; (v0-17 none) + ;; (v0-29 process-tree) + ;; (v0-30 continue-point) + ;; (v0-31 none) + ;; (v0-32 game-info) + ;; (v1-0 symbol) + ;; (v1-16 symbol) + ;; (v1-135 symbol) + ;; (v1-154 process) + ;; (v1-157 (pointer process)) + ;; (v1-158 type) + ;; (v1-159 int) + ;; (v1-160 (pointer string)) + ;; (v1-161 symbol) + ;; (v1-162 type) + ;; (v1-163 process) + ;; (a0-95 process) + ;; (a0-96 game-info) + ;; (a0-97 cpu-thread) + ;; (a0-99 int) + ;; (a0-100 symbol) + ;; (a1-47 process-tree) + ;; (a1-48 (function symbol symbol continue-point game-save none :behavior process)) + ;; (a2-11 type) + ;; (a2-12 symbol) + ;; (a2-13 string) + ;; (a2-14 symbol) + ;; (a3-4 int) + ;; (a3-5 symbol) + ;; (t0-3 continue-point) + ;; (t1-3 game-save) + ;; (s0-1 (function symbol symbol continue-point game-save none :behavior process)) + ;; (s1-2 cpu-thread) + ;; (s2-2 function) + ;; (s3-2 process) + ;; (s4-1 level-load-info) + ;; (t9-29 (function process process-tree basic pointer process-tree)) + ;; (t9-30 (function game-info continue-point)) + ;; (t9-31 function) + ;; (t9-32 (function symbol none)) + ;; (sv-96 game-task-node-info) + ;; (sv-112 symbol) + ;; ) + ;; (cond + ;; ((or (= v1-0 'dead) (= v1-0 'life)) + ;; (+! (-> obj total-deaths) 1) + ;; (+! (-> obj continue-deaths) 1) + ;; (+! (-> obj task-deaths) 1) + ;; (when *target* + ;; (set! s4-1 (-> *target* current-level info)) + ;; (set! (-> obj deaths-per-level (-> s4-1 task-level)) + ;; (the-as uint (seekl (the-as int (-> obj deaths-per-level (-> s4-1 task-level))) 255 1)) + ;; ) + ;; ) + ;; (set! v1-16 (-> obj mode)) + ;; (cond + ;; ((= v1-16 'play) + ;; (set! arg0 'life) + ;; ) + ;; (else + ;; (set! obj obj) + ;; (goto cfg-131) + ;; ) + ;; ) + ;; ) + ;; ((= v1-0 'try) + ;; (+! (-> obj total-trys) 1) + ;; ) + ;; ) + ;; (cond + ;; ((= v1-135 'movie) + ;; (task-node-reset arg0) + ;; (update-task-masks arg0) + ;; ) + ;; ((= v1-135 'debug) + ;; (reset-actors arg0) + ;; (if arg1 + ;; (game-info-method-24 obj arg1) + ;; ) + ;; ) + ;; ((= v1-135 'play) + ;; (when (begin + ;; (if v1-154 + ;; (-> v1-154 ppointer) + ;; ) + ;; (when s3-2 + ;; (set! v1-158 process) + ;; (set! t9-29 (method-of-type process activate)) + ;; (set! a0-95 s3-2) + ;; (set! a1-47 *default-pool*) + ;; (set! v1-159 #xff37) + ;; (set! a2-11 process) + ;; (set! a2-12 (-> process symbol)) + ;; (set! v1-160 (sym->str-ptr (-> process symbol))) + ;; (set! a2-13 (symbol->string (-> process symbol))) + ;; (set! a3-4 #x70004000) + ;; (call! a0-95 a1-47 a2-13 a3-4) + ;; (set! s2-2 set-to-run) + ;; (set! s1-2 (-> s3-2 main-thread)) + ;; (set! s0-1 (lambda :behavior process + ;; ((arg0 symbol) (arg1 symbol) (arg2 continue-point) (arg3 game-save)) + ;; (set! (-> self mask) (process-mask)) + ;; (stop arg0) + ;; (reset-actors arg1) + ;; (close! (-> *game-info* sub-task-list 1) 'event) + ;; (set-continue! *game-info* arg2 #f) + ;; (when arg3 + ;; (game-info-method-24 *game-info* arg3) + ;; (set! arg2 (get-current-continue-forced *game-info*)) + ;; (reset-actors 'life) + ;; (send-event (handle->process (-> *game-info* auto-save-proc)) 'done) + ;; ) + ;; (suspend) + ;; (start arg0 arg2) + ;; (none) + ;; ) + ;; ) + ;; (set! v1-161 (-> obj mode)) + ;; (set! sv-112 v1-161) + ;; (set! a0-96 obj) + ;; (set! v1-162 (-> a0-96 type)) + ;; (set! t9-30 (method-of-object a0-96 get-current-continue-forced)) + ;; (set! v0-30 (get-current-continue-forced obj)) + ;; (set! t0-3 v0-30) + ;; (set! t1-3 arg1) + ;; (set! t9-31 s2-2) + ;; (set! a0-97 s1-2) + ;; (set! a1-48 s0-1) + ;; (set! a2-14 sv-112) + ;; (set! a3-5 arg0) + ;; (call! a0-97 a1-48 a2-14 a3-5 t0-3 t1-3) + ;; (set! v1-157 (-> s3-2 ppointer)) + ;; ) + ;; v1-157 + ;; ) + ;; (set! v1-163 (-> v1-157 0)) + ;; (set! (-> v1-163 mask) (the-as process-mask 0)) + ;; (set! a0-99 0) + ;; ) + ;; (set! t9-32 set-master-mode) + ;; (set! a0-100 'game) + ;; (set! v0-17 (call! a0-100)) + ;; ) + ;; ) + ;; (set! v1-164 v0-17) + ;; (label cfg-131) + ;; (set! v0-32 obj) + ;; (ret-value v0-32) + ) + +(defmethod give game-info ((obj game-info) (arg0 symbol) (arg1 float) (arg2 handle)) + (local-vars (ammo-max float)) + (with-pp + (case arg0 + (('life) + (if (>= arg1 0.0) + (seek! (-> obj life) (-> obj life-max) arg1) + (seek! (-> obj life) 0.0 (- arg1)) + ) + (-> obj life) + ) + (('money) + (if (< 0.0 arg1) + (+! (-> obj money-total) arg1) + ) + (set! (-> obj money) (+ (-> obj money) arg1)) + ) + (('gem) + (when (< 0.0 arg1) + (+! (-> obj gem-total) arg1) + (let ((v1-7 (handle->process arg2))) + (if (and v1-7 (-> v1-7 entity)) + (toggle-status (-> v1-7 entity) (entity-perm-status save) #t) + ) + ) + ) + (set! (-> obj gem) (+ (-> obj gem) arg1)) + ) + (('skill) + (if (< 0.0 arg1) + (+! (-> obj skill-total) arg1) + ) + (set! (-> obj skill) (+ (-> obj skill) arg1)) + ) + (('karma) + (set! (-> obj karma) (+ (-> obj karma) arg1)) + ) + (('eco-pill-dark) + (cond + ((< 0.0 arg1) + (seek! (-> obj eco-pill-dark) (-> *FACT-bank* eco-pill-dark-max-default) arg1) + (if (and (demo?) (= (-> obj eco-pill-dark) (-> *FACT-bank* eco-pill-dark-max-default))) + (talker-spawn-func (-> *talker-speech* 79) *entity-pool* (target-pos 0) (the-as region #f)) + ) + (+! (-> obj eco-pill-dark-total) arg1) + ) + (else + (seek! (-> obj eco-pill-dark) 0.0 (- arg1)) + ) + ) + (-> obj eco-pill-dark) + ) + (('fuel-cell) + (let ((task (the int arg1))) + (when (not (or (task-complete? obj (the-as game-task task)) (>= (the-as uint 1) (the-as uint task)))) + (set! (-> obj task-deaths) 0) + (set! (-> obj task-pickup-time) (-> *display* game-clock frame-counter)) + (set! (-> obj unknown-array1 task) (-> *display* game-clock frame-counter)) + (set! (-> obj fuel) (+ 1.0 (-> obj fuel))) + (logior! (-> obj task-perm-list data task status) (entity-perm-status complete)) + (task-resolution-close! (the-as game-task task)) + ) + ) + (-> obj fuel) + ) + (('buzzer) + (logand (the int arg1) #xffff) + (sar (the int arg1) 16) + 0.0 + ) + (('ammo-yellow 'ammo-red 'ammo-blue 'ammo-dark) + 0.0 + (let* ((v1-41 arg0) + (ammo-kind (cond + ((= v1-41 'ammo-yellow) + (set! ammo-max (-> *FACT-bank* ammo-yellow-max)) + 0 + ) + ((= v1-41 'ammo-red) + (set! ammo-max (-> *FACT-bank* ammo-red-max)) + 1 + ) + ((= v1-41 'ammo-blue) + (set! ammo-max (-> *FACT-bank* ammo-blue-max)) + 2 + ) + (else + (set! ammo-max (-> *FACT-bank* ammo-dark-max)) + 3 + ) + ) + ) + ) + (if (logtest? (-> obj features) (game-feature gun-upgrade-ammo)) + (set! ammo-max (* 2.0 ammo-max)) + ) + (if (>= arg1 0.0) + (seek! (-> obj gun-ammo ammo-kind) ammo-max arg1) + (seek! (-> obj gun-ammo ammo-kind) 0.0 (fabs arg1)) + ) + (set! (-> obj gun-ammo ammo-kind) (fmin (-> obj gun-ammo ammo-kind) ammo-max)) + (-> obj gun-ammo ammo-kind) + ) + ) + (('gun-yellow) + (let ((a1-13 (new 'stack-no-clear 'event-message-block))) + (set! (-> a1-13 from) (process->ppointer pp)) + (set! (-> a1-13 num-params) 0) + (set! (-> a1-13 message) 'complete) + (let ((t9-12 send-event-function) + (v1-71 (-> *game-info* sub-task-list 43)) + ) + (t9-12 + (handle->process (if (-> v1-71 info) + (-> v1-71 info manager) + (the-as handle #f) + ) + ) + a1-13 + ) + ) + ) + (if (logtest? (logand (-> *setting-control* user-current features) (game-feature gun-yellow)) (-> obj features)) + 1.0 + 0.0 + ) + ) + (('gun-dark) + (let ((a1-14 (new 'stack-no-clear 'event-message-block))) + (set! (-> a1-14 from) (process->ppointer pp)) + (set! (-> a1-14 num-params) 0) + (set! (-> a1-14 message) 'complete) + (let ((t9-13 send-event-function) + (v1-85 (-> *game-info* sub-task-list 177)) + ) + (t9-13 + (handle->process (if (-> v1-85 info) + (-> v1-85 info manager) + (the-as handle #f) + ) + ) + a1-14 + ) + ) + ) + (if (logtest? (logand (-> *setting-control* user-current features) (game-feature gun-dark)) (-> obj features)) + 1.0 + 0.0 + ) + ) + (('board) + (cond + ((< 0.0 arg1) + (logior! (-> obj features) (game-feature board)) + ) + ((< arg1 0.0) + (logclear! (-> obj features) (game-feature board)) + ) + ) + (if (logtest? (-> obj features) (game-feature board)) + 1.0 + 0.0 + ) + ) + (('shield) + (if (>= arg1 0.0) + (seek! (-> obj shield) (-> *FACT-bank* shield-max) arg1) + (seek! (-> obj shield) 0.0 (fabs arg1)) + ) + (-> obj shield) + ) + ) + ) + ) + +(defmethod game-info-method-22 game-info ((obj game-info)) + 0 + ) + +;; WARN: Return type mismatch float vs none. +(defmethod reset! fact-info-target ((obj fact-info-target) (arg0 symbol)) + (when (or (not arg0) (= arg0 'eco)) + (set! (-> obj eco-timeout) 0) + (set! (-> obj eco-level) 0.0) + (set! (-> obj eco-pickup-time) (-> *display* game-clock frame-counter)) + ) + (when (or (not arg0) (= arg0 'health) (= arg0 'eco-green)) + (set! (-> obj health-max) (-> *FACT-bank* health-max-default)) + (set! (-> obj health) (-> obj health-max)) + (set! (-> obj health-pickup-time) (seconds -100)) + ) + (when (or (not arg0) (= arg0 'buzzer)) + (set! (-> obj buzzer-max) (-> *FACT-bank* buzzer-max-default)) + (set! (-> obj buzzer) 0.0) + ) + (when (or (not arg0) (= arg0 'eco-pill-green)) + (set! (-> obj eco-pill-green-max) (-> *FACT-bank* eco-pill-green-max-default)) + (set! (-> obj eco-pill-green) 0.0) + ) + (when (or (not arg0) (= arg0 'trick-judge)) + (set! (-> obj trick-point-start-time) 0) + (set! (-> obj trick-point-duration) 0) + 0 + ) + (when (or (not arg0) (= arg0 'trick-point)) + (set! (-> obj trick-point) 0.0) + (set! (-> (the-as target (-> obj process)) game score) 0.0) + ) + (none) + ) + +(defmethod pickup-collectable! fact-info-target ((obj fact-info-target) (arg0 pickup-type) (arg1 float) (arg2 handle)) + (case arg0 + (((pickup-type health) (pickup-type eco-green)) + (cond + ((>= arg1 0.0) + (when (< 0.0 arg1) + (if (or (!= (handle->process arg2) (handle->process (-> obj eco-source))) + (>= (- (-> *display* game-clock frame-counter) (-> obj eco-source-time)) (seconds 0.5)) + ) + (sound-play "get-green-eco") + ) + (send-event (-> obj process) 'color-effect 'health 60) + (when (handle->process arg2) + (set! (-> obj eco-source) arg2) + (set! (-> obj eco-source-time) (-> *display* game-clock frame-counter)) + ) + ) + (set! (-> obj health-pickup-time) (-> *display* game-clock frame-counter)) + (seek! (-> obj health) (-> obj health-max) arg1) + ) + (else + (seek! (-> obj health) 0.0 (- arg1)) + (if (>= arg1 -10.0) + (pickup-collectable! obj (pickup-type eco-pill-green) 0.0 arg2) + ) + (if (= (-> obj health) 0.0) + (give (-> (the-as target (-> obj process)) game) 'life (- (-> *GAME-bank* life-single-inc)) arg2) + ) + ) + ) + (-> obj health) + ) + (((pickup-type eco-pill-green)) + (when (>= arg1 0.0) + (set! (-> obj eco-pill-green-pickup-time) (-> *display* game-clock frame-counter)) + (seek! (-> obj eco-pill-green) (-> obj eco-pill-green-max) arg1) + (when (and (>= (-> obj eco-pill-green) (-> *FACT-bank* eco-pill-green-max-default)) + (< (-> obj health) (-> obj health-max)) + ) + (set! (-> obj eco-pill-green) (- (-> obj eco-pill-green) (-> *FACT-bank* eco-pill-green-max-default))) + (pickup-collectable! + obj + (pickup-type health) + (-> *FACT-bank* health-small-inc) + (process->handle (-> obj process)) + ) + ) + ) + (-> obj eco-pill-green) + ) + (((pickup-type eco-pill-dark)) + (when (< 0.0 arg1) + (if (>= (- (-> *display* game-clock frame-counter) (-> obj eco-pill-dark-pickup-time)) (seconds 0.05)) + (sound-play "get-dark-eco") + ) + (send-event (-> obj process) 'color-effect 'eco-pill-dark 60) + (cond + ((>= (- (-> *display* game-clock frame-counter) (-> (the-as target (-> obj process)) shock-effect-time)) + (seconds 0.1) + ) + (set! (-> (the-as target (-> obj process)) shock-effect-time) (-> *display* game-clock frame-counter)) + (let ((s3-3 (rand-vu-int-range 0 2))) + (dotimes (s2-2 s3-3) + (process-drawable-shock-effect + (the-as process-drawable (-> obj process)) + *lightning-darkjak-pill* + lightning-probe-callback + (the-as sparticle-launcher #f) + 0 + 0 + 40960.0 + ) + ) + ) + ) + (else + (send-event (handle->process arg2) 'effect #f) + ) + ) + (set! (-> obj eco-pill-dark-pickup-time) (-> *display* game-clock frame-counter)) + ) + (give (-> (the-as target (-> obj process)) game) 'eco-pill-dark arg1 arg2) + ) + (((pickup-type trick-judge)) + (when (< 0.0 arg1) + (set! (-> obj trick-point) 0.0) + (set! (-> obj trick-point-start-time) (-> *display* game-clock frame-counter)) + (set! (-> obj trick-point-duration) (the-as time-frame (the int arg1))) + ) + (the float (-> obj trick-point-duration)) + ) + (((pickup-type trick-point)) + (when (nonzero? (-> obj trick-point-duration)) + (set! (-> obj trick-point-pickup-time) (-> *display* game-clock frame-counter)) + (set! (-> obj trick-point) (fmax 0.0 (fmin (+ (-> obj trick-point) arg1) (-> *FACT-bank* trick-point-max)))) + (when (!= arg1 0.0) + (sound-play "get-trick-point") + (process-spawn-function + process + (lambda :behavior target + ((arg0 symbol) (arg1 symbol) (arg2 int)) + (let ((s3-0 (new 'stack-no-clear 'vector4w))) + (set! (-> s3-0 quad) (the-as uint128 0)) + (when (transform-point-qword! s3-0 (the-as vector arg0)) + (let ((s5-0 + (new + 'stack + 'font-context + *font-default-matrix* + (+ (the int (/ (the float (+ (/ (the-as int (-> s3-0 x)) 16) -1792)) (-> *video-params* relative-x-scale))) + -48 + ) + (the-as int (+ (/ (the-as int (-> s3-0 y)) 16) -1855)) + 0.0 + (font-color gold-#ba9200) + (font-flags shadow kerning) + ) + ) + ) + (set! (-> s5-0 scale) (lerp-scale 0.6 1.0 (the-as float arg1) 50.0 8000.0)) + (let ((v1-9 s5-0)) + (set! (-> v1-9 origin z) (the float (/ (the-as int (-> s3-0 z)) 16))) + ) + (set! (-> s5-0 flags) (font-flags shadow kerning large)) + (let ((s3-1 (-> self clock frame-counter))) + (until (>= (- (-> self clock frame-counter) s3-1) (+ arg2 -75)) + (+! (-> s5-0 origin y) (* -120.0 (-> self clock seconds-per-frame))) + (let ((s2-0 print-game-text)) + (format (clear *temp-string*) "~4,,0f" arg1) + (s2-0 *temp-string* s5-0 #f 44 318) + ) + (suspend) + ) + ) + (let ((s4-1 (-> self clock frame-counter))) + (until (>= (- (-> self clock frame-counter) s4-1) (seconds 0.25)) + (set! (-> s5-0 alpha) (lerp-scale 1.0 0.0 (the float (- (-> self clock frame-counter) s4-1)) 0.0 150.0)) + (+! (-> s5-0 origin y) (* -120.0 (-> self clock seconds-per-frame))) + (let ((s3-2 print-game-text)) + (format (clear *temp-string*) "~4,,0f" arg1) + (s3-2 *temp-string* s5-0 #f 44 318) + ) + (suspend) + ) + ) + ) + ) + ) + (none) + ) + (get-trans (the-as target (-> obj process)) 3) + arg1 + 510 + :to (-> obj process) + ) + ) + ) + (-> obj trick-point) + ) + (((pickup-type money)) + (when (< 0.0 arg1) + (if (>= (- (-> *display* game-clock frame-counter) (-> obj money-pickup-time)) (seconds 0.05)) + (sound-play "money-pickup") + ) + (set! (-> obj money-pickup-time) (-> *display* game-clock frame-counter)) + ) + (give (-> (the-as target (-> obj process)) game) 'money arg1 arg2) + ) + (((pickup-type gem)) + (when (< 0.0 arg1) + (if (>= (- (-> *display* game-clock frame-counter) (-> obj gem-pickup-time)) (seconds 0.05)) + (sound-play "gem-pickup") + ) + (set! (-> obj gem-pickup-time) (-> *display* game-clock frame-counter)) + ) + (give (-> (the-as target (-> obj process)) game) 'gem arg1 arg2) + ) + (((pickup-type skill)) + (when (< 0.0 arg1) + (if (>= (- (-> *display* game-clock frame-counter) (-> obj skill-pickup-time)) (seconds 0.05)) + (sound-play "skill-pickup") + ) + (set! (-> obj skill-pickup-time) (-> *display* game-clock frame-counter)) + ) + (give (-> (the-as target (-> obj process)) game) 'skill arg1 arg2) + ) + (((pickup-type karma)) + (if (!= arg1 0.0) + (set! (-> obj karma-pickup-time) (-> *display* game-clock frame-counter)) + ) + (give (-> (the-as target (-> obj process)) game) 'karma arg1 arg2) + ) + (((pickup-type fuel-cell)) + (let ((s3-9 (the int arg1))) + (if (not (or (task-complete? (-> (the-as target (-> obj process)) game) (the-as game-task s3-9)) + (>= (the-as uint 1) (the-as uint s3-9)) + ) + ) + (set! (-> obj task-pickup-time) (-> *display* game-clock frame-counter)) + ) + ) + (give (-> (the-as target (-> obj process)) game) 'fuel-cell arg1 arg2) + ) + (((pickup-type buzzer)) + (let ((f0-41 (give (-> (the-as target (-> obj process)) game) 'buzzer arg1 arg2))) + (if (!= f0-41 (-> obj buzzer)) + (set! (-> obj buzzer-pickup-time) (-> *display* game-clock frame-counter)) + ) + (set! (-> obj buzzer) f0-41) + ) + (-> obj buzzer) + ) + (((pickup-type ammo-yellow) (pickup-type ammo-red) (pickup-type ammo-blue) (pickup-type ammo-dark)) + (if (< 0.0 arg1) + (set! (-> obj ammo-pickup-time) (-> *display* game-clock frame-counter)) + ) + (let ((ammo-kind (cond + ((= arg0 (pickup-type ammo-yellow)) + 'ammo-yellow + ) + ((= arg0 (pickup-type ammo-red)) + 'ammo-red + ) + ((= arg0 (pickup-type ammo-blue)) + 'ammo-blue + ) + (else + 'ammo-dark + ) + ) + ) + ) + (if (< 0.0 arg1) + (send-event (-> obj process) 'color-effect ammo-kind 60) + ) + (give (-> (the-as target (-> obj process)) game) ammo-kind arg1 arg2) + ) + ) + (((pickup-type gun-yellow) + (pickup-type gun-red) + (pickup-type gun-blue) + (pickup-type gun-dark) + (pickup-type board) + ) + (let ((v1-192 arg0)) + (give + (-> (the-as target (-> obj process)) game) + (cond + ((= v1-192 (pickup-type gun-yellow)) + 'gun-yellow + ) + ((= v1-192 (pickup-type gun-red)) + 'gun-red + ) + ((= v1-192 (pickup-type gun-blue)) + 'gun-blue + ) + ((= v1-192 (pickup-type gun-dark)) + 'gun-dark + ) + (else + 'board + ) + ) + arg1 + arg2 + ) + ) + ) + (((pickup-type shield)) + (if (< 0.0 arg1) + (set! (-> obj shield-pickup-time) (-> *display* game-clock frame-counter)) + ) + (give (-> (the-as target (-> obj process)) game) 'shield arg1 arg2) + ) + (((pickup-type eco-red) (pickup-type eco-blue) (pickup-type eco-yellow)) + (if (= arg1 0.0) + (return (if (= (-> obj eco-type) arg0) + (-> obj eco-level) + 0.0 + ) + ) + ) + (when (!= (-> obj eco-type) arg0) + (set! (-> obj eco-level) 0.0) + (set! (-> obj eco-timeout) 0) + 0 + ) + (set! (-> obj eco-type) (the-as int arg0)) + (let ((f0-49 (-> obj eco-level))) + (set! (-> obj eco-level) 1.0) + (when (and (= f0-49 0.0) (< 0.0 (-> obj eco-level))) + (set! (-> obj eco-pickup-time) (-> *display* game-clock frame-counter)) + (send-event (-> obj process) 'reset-collide) + ) + ) + (set! (-> obj eco-timeout) + (the-as + time-frame + (min + (+ (-> obj eco-timeout) (* (the-as int (-> *FACT-bank* eco-single-timeout)) (the int arg1))) + (the-as + time-frame + (+ (-> *FACT-bank* eco-full-timeout) (- (-> *display* game-clock frame-counter) (-> obj eco-pickup-time))) + ) + ) + ) + ) + (if (>= (- (-> obj eco-timeout) (- (-> *display* game-clock frame-counter) (-> obj eco-pickup-time))) + (the-as time-frame (-> *FACT-bank* eco-full-timeout)) + ) + (set! (-> obj eco-level) 2.0) + ) + (when (not (and (= (handle->process arg2) (handle->process (-> obj eco-source))) + (< (- (-> *display* game-clock frame-counter) (-> obj eco-source-time)) (seconds 0.5)) + ) + ) + (cpad-set-buzz! (-> *cpad-list* cpads 0) 1 127 (seconds 0.2)) + (cpad-set-buzz! (-> *cpad-list* cpads 0) 0 17 (seconds 0.2)) + (case arg0 + (((pickup-type eco-blue)) + (sound-play "get-blue-eco") + ) + (((pickup-type eco-green) (pickup-type health)) + (sound-play "get-green-eco") + ) + (((pickup-type eco-yellow)) + (sound-play "get-yellow-eco") + ) + (((pickup-type eco-red)) + (sound-play "get-red-eco") + ) + ) + ) + (set! (-> obj eco-source) arg2) + (set! (-> obj eco-source-time) (-> *display* game-clock frame-counter)) + (-> obj eco-level) + ) + (else + ((method-of-type fact-info pickup-collectable!) obj arg0 arg1 arg2) + ) + ) + ) + +(defmethod actor-perm game-info ((obj game-info) (arg0 actor-id)) + (let ((game-perms (-> obj perm-list))) + (countdown (i (-> game-perms length)) + (if (= arg0 (-> game-perms data i aid)) + (return (-> game-perms data i)) + ) + ) + ) + (the-as entity-perm #f) + ) + +(defmethod copy-perms-from-level! game-info ((obj game-info) (arg0 level)) + (let ((game-perms (-> obj perm-list)) + (level-entities (-> arg0 bsp level entity)) + ) + (dotimes (i (-> level-entities length)) + (let ((entity-perm (-> level-entities data i entity extra perm))) + (when (or (nonzero? (-> entity-perm task)) (logtest? (-> entity-perm status) (entity-perm-status save))) + (let ((actor-perm (actor-perm obj (-> entity-perm aid)))) + (cond + (actor-perm + (set! (-> actor-perm quad) (-> entity-perm quad)) + ) + ((< (-> game-perms length) (-> game-perms allocated-length)) + (set! (-> game-perms data (-> game-perms length) quad) (-> entity-perm quad)) + (+! (-> game-perms length) 1) + ) + ) + ) + ) + ) + ) + ) + 0 + ) + +(defmethod copy-perms-to-level! game-info ((obj game-info) (arg0 level)) + (let ((level-entities (-> arg0 bsp level entity))) + (dotimes (i (-> level-entities length)) + (let* ((entity-perm (-> level-entities data i entity extra perm)) + (actor-perm (actor-perm obj (-> entity-perm aid))) + ) + (when actor-perm + (set! (-> entity-perm quad) (-> actor-perm quad)) + (update entity-perm 'try (entity-perm-status bit-0 bit-1 dead no-kill bit-5 subtask-complete bit-9 bit-12)) + ) + ) + ) + ) + 0 + ) + +(defmethod print continue-point ((obj continue-point)) + (format #t "#<~A ~S @ #x~X>" (-> obj type) (-> obj name) obj) + obj + ) + +(defmethod debug-draw continue-point ((obj continue-point)) + (add-debug-x #t (bucket-id debug-no-zbuf1) (-> obj trans) (new 'static 'rgba :r #xff :a #x80)) + (add-debug-text-3d + #t + (bucket-id debug-no-zbuf1) + (-> obj name) + (-> obj trans) + (font-color #dadada) + (new 'static 'vector2h :data (new 'static 'array int16 2 0 8)) + ) + (let ((a3-2 (vector-z-quaternion! (new-stack-vector0) (the-as quaternion (-> obj quat))))) + (add-debug-vector + #t + (bucket-id debug-no-zbuf1) + (-> obj trans) + a3-2 + (meters 2) + (new 'static 'rgba :r #xff :g #x80 :a #x80) + ) + ) + 0 + ) + +(defun-debug trsq->continue-point ((arg0 trsq)) + (let ((v1-1 (level-get-target-inside *level*))) + (format #t "~%(static-continue-point ~A ()~%" (symbol->string (-> v1-1 name))) + ) + (format #t " (target ~m ~m ~m " (-> arg0 trans x) (-> arg0 trans y) (-> arg0 trans z)) + (format #t "~f ~f ~f ~f)~%" (-> arg0 quat x) (-> arg0 quat y) (-> arg0 quat z) (-> arg0 quat w)) + (let ((gp-1 *math-camera*)) + (format + #t + " (camera ~m ~m ~m ~f ~f ~f " + (-> gp-1 trans x) + (-> gp-1 trans y) + (-> gp-1 trans z) + (-> gp-1 inv-camera-rot vector 0 x) + (-> gp-1 inv-camera-rot vector 0 y) + (-> gp-1 inv-camera-rot vector 0 z) + ) + (format + #t + "~f ~f ~f ~f ~f ~f)~%" + (-> gp-1 inv-camera-rot vector 1 x) + (-> gp-1 inv-camera-rot vector 1 y) + (-> gp-1 inv-camera-rot vector 1 z) + (-> gp-1 inv-camera-rot vector 2 x) + (-> gp-1 inv-camera-rot vector 2 y) + (-> gp-1 inv-camera-rot vector 2 z) + ) + ) + (let ((gp-2 format) + (s5-0 #t) + (s4-0 " (load '~A ") + (v1-7 (lookup-level-info (-> *load-state* vis-nick))) + ) + (gp-2 s5-0 s4-0 (if v1-7 + (-> v1-7 name) + ) + ) + ) + (dotimes (gp-3 4) + (let ((v1-10 (lookup-level-info (-> *load-state* want gp-3 name)))) + (if (and v1-10 (!= (-> v1-10 memory-mode) 4)) + (format #t "'~A '~A " (-> *load-state* want gp-3 name) (-> *load-state* want gp-3 display?)) + (format #t "#f #f ") + ) + ) + ) + (format #t ")~% (sound ") + (dotimes (gp-4 3) + (format #t "~A " (-> *load-state* want-sound gp-4)) + ) + (format #t ")~%)~%") + 0 + ) + +(defun position->stream ((arg0 string) (arg1 symbol) (arg2 symbol)) + (format + arg0 + "bug-report ~S ~S ~DK " + *user* + arg1 + (shr (* (dma-buffer-length (-> *display* frames (-> *display* last-screen) global-buf)) 16) 10) + ) + (if arg2 + (format arg0 "~%") + ) + (let* ((s4-1 format) + (s3-1 arg0) + (s2-1 "nick ~S continue ~S ") + (v1-9 (lookup-level-info (-> *load-state* vis-nick))) + (a2-2 (if v1-9 + (-> v1-9 name) + ) + ) + (v1-11 (-> *game-info* current-continue)) + ) + (s4-1 s3-1 s2-1 a2-2 (if v1-11 + (-> v1-11 name) + ) + ) + ) + (if arg2 + (format arg0 "~%") + ) + (dotimes (s4-2 6) + (if (or (= (-> *level* level s4-2 status) 'active) + (= (-> *level* level s4-2 status) 'alive) + (= (-> *level* level s4-2 status) 'loaded) + ) + (format arg0 "level ~D ~-8A ~-8A " s4-2 (-> *level* level s4-2 name) (-> *level* level s4-2 display?)) + (format arg0 "level ~D ~-8A ~-8A " s4-2 #f #f) + ) + (if arg2 + (format arg0 "~%") + ) + ) + (format arg0 "music ~-8S sound " (-> *setting-control* user-current music)) + (dotimes (s4-3 3) + (format arg0 "~-8S " (-> *level* sound-bank s4-3)) + ) + (if arg2 + (format arg0 "~%") + ) + (let ((v1-41 (target-pos 0))) + (format arg0 "target ~m ~m ~m " (-> v1-41 x) (-> v1-41 y) (-> v1-41 z)) + ) + (if arg2 + (format arg0 "~%") + ) + (let ((v1-45 (math-camera-pos))) + (format arg0 "camera-trans ~m ~m ~m " (-> v1-45 x) (-> v1-45 y) (-> v1-45 z)) + ) + (if arg2 + (format arg0 "~%") + ) + (let* ((a1-15 (math-camera-matrix)) + (v1-49 (matrix->quaternion (new 'stack-no-clear 'quaternion) a1-15)) + ) + (format arg0 "camera-rot ~f ~f ~f ~f" (-> v1-49 x) (-> v1-49 y) (-> v1-49 z) (-> v1-49 w)) + ) + (format arg0 "~%") + 0 + (none) + ) + +(defun bug-report-display ((arg0 symbol)) + (case *bug-report-output-mode* + (('*stdcon*) + (let ((conts + " " + ) + ) + (clear conts) + (position->stream conts arg0 #t) + (process-spawn-function + process + (lambda :behavior process + ((arg0 string)) + (let ((s5-0 (-> self clock frame-counter))) + (until (>= (- (-> self clock frame-counter) s5-0) (seconds 10)) + (format *stdcon* "~S~%" arg0) + (suspend) + ) + ) + (none) + ) + conts + ) + ) + ) + (('file-stream) + (format (clear *temp-string*) "db/bug-report/bug-report-~S.txt" *user*) + *temp-string* + (let ((s5-2 (new 'stack 'file-stream *temp-string* 'append))) + (file-stream-seek s5-2 0 2) + (position->stream (the-as string s5-2) arg0 #f) + (file-stream-close s5-2) + ) + ) + (else + (position->stream (the-as string #t) arg0 #f) + ) + ) + 0 + ) + +(defun-debug print-continues () + (let ((levels *level-load-list*)) + (while (not (null? levels)) + (let ((conts (-> (the-as level-load-info (-> (the-as symbol (car levels)) value)) continues))) + (while (not (null? conts)) + (let ((cont (the-as continue-point (car conts)))) + (if (zero? (logand (-> cont flags) (continue-flags cf2))) + (format #t "~S~%" (-> cont name)) + ) + ) + (set! conts (cdr conts)) + ) + ) + (set! levels (cdr levels)) + ) + ) + 0 + ) + +(defmethod print game-task-info ((obj game-task-info)) + (format #t "#" (-> obj name) obj) + obj + ) + +(defmethod game-info-method-18 game-info ((obj game-info) (arg0 symbol)) + (local-vars + (sv-16 int) + (sv-24 int) + (sv-32 int) + (sv-40 int) + (sv-48 int) + (sv-56 int) + (sv-64 string) + (sv-80 string) + (sv-96 string) + (sv-112 string) + ) + (inspect obj) + (when (or (not arg0) (= arg0 'game-task)) + (format #t "~Tgame-task:~%") + (format #t "~T~T~-32S intro play death gem skill~%" "task") + (format #t "~T~T--------------------~%") + (let ((s4-0 2) + (s3-0 109) + ) + (while (>= (the-as uint s3-0) (the-as uint s4-0)) + (when (task-complete? obj (the-as game-task s4-0)) + (set! sv-16 0) + (set! sv-24 0) + (set! sv-32 0) + (set! sv-40 0) + (set! sv-48 0) + (set! sv-56 0) + (let ((game-subtasks (-> *game-info* sub-task-list))) + (dotimes (i (-> game-subtasks length)) + (when (nonzero? i) + (let ((subtasks (-> game-subtasks i))) + (when (= (-> subtasks task) s4-0) + (when (zero? sv-24) + (set! sv-24 (the-as int (-> subtasks close-time))) + (set! sv-16 (the-as int (-> subtasks close-time))) + ) + (when (logtest? (-> subtasks flags) (game-task-node-flag closed)) + (set! sv-32 (the-as int (-> subtasks close-time))) + (set! sv-40 (the-as int (-> subtasks gem-count))) + (set! sv-48 (the-as int (-> subtasks skill-count))) + ) + (set! sv-56 (+ sv-56 (-> subtasks death-count))) + (if (logtest? (-> subtasks flags) (game-task-node-flag close-task)) + (goto cfg-19) + ) + ) + ) + ) + ) + ) + (label cfg-19) + (if (nonzero? (-> obj task-close-times s4-0)) + (set! sv-24 (max sv-24 (-> obj task-close-times s4-0))) + ) + (format + #t + "~T~T~-32S ~6,,1f min ~6,,1f min ~3d ~3d ~3d~%" + (game-task->string (the-as game-task s4-0)) + (* 0.000055555556 (the float (- sv-24 sv-16))) + (* 0.000055555556 (the float (- sv-32 sv-24))) + sv-56 + sv-40 + sv-48 + ) + ) + (+! s4-0 1) + ) + ) + ) + (when (= arg0 'game-task-node) + (let ((s4-1 (-> *game-info* sub-task-list))) + (dotimes (s3-1 (-> s4-1 length)) + (when (nonzero? s3-1) + (let ((s2-1 (-> s4-1 s3-1)) + (s1-1 format) + (s0-1 #t) + ) + (set! sv-64 "~-55S ~-16S ~S ~A~%") + (set! sv-80 (-> s2-1 name)) + (cond + ((logtest? (-> s2-1 flags) (game-task-node-flag closed)) + (set! sv-96 "closed") + ) + ((open? s2-1) + (set! sv-96 "open") + ) + (else + (set! sv-96 "inactive") + ) + ) + (if (task-complete? *game-info* (-> s2-1 task)) + (set! sv-112 "res") + (set! sv-112 " ") + ) + (let ((t1-1 (lookup-text! *common-text* (-> s2-1 description) #f))) + (s1-1 s0-1 sv-64 sv-80 sv-96 sv-112 t1-1) + ) + ) + ) + ) + ) + ) + (when (or (not arg0) (= arg0 'level)) + (format #t "~Tlevel:~%") + (format #t "~T~T~-32S death in-time enter-time~%" "level") + (format #t "~T~T--------------------~%") + (dotimes (s4-2 (-> *task-level* length)) + (format + #t + "~T~T~-32S ~3d ~6,,1f min ~6,,1f min~%" + (-> *task-level* s4-2) + (-> obj deaths-per-level s4-2) + (* 0.000055555556 (the float (-> obj task-in-times s4-2))) + (* 0.000055555556 (the float (-> obj task-enter-times s4-2))) + ) + ) + ) + (when (or (not arg0) (= arg0 'score)) + (format #t "~Tscore:~%") + (format #t "~T~T--------------------~%") + (dotimes (s4-3 19) + (let ((v1-71 (get-game-score-ref obj s4-3)) + (t9-18 format) + (a0-26 #t) + (a1-24 "~T~T~-32S ~8,,0f ~8,,0f ~8,,0f~%") + (a2-22 s4-3) + ) + (t9-18 + a0-26 + a1-24 + (cond + ((= a2-22 16) + "reverse-race-1" + ) + ((= a2-22 7) + "gungame-dark" + ) + ((= a2-22 14) + "bush-port" + ) + ((= a2-22 12) + "bush-race-2" + ) + ((= a2-22 9) + "whack" + ) + ((= a2-22 1) + "race-1" + ) + ((= a2-22 11) + "bush-race-1" + ) + ((= a2-22 4) + "gungame-red" + ) + ((= a2-22 6) + "gungame-blue" + ) + ((= a2-22 5) + "gungame-yellow" + ) + ((= a2-22 15) + "bush-errol" + ) + ((= a2-22 2) + "race-2" + ) + ((zero? a2-22) + "none" + ) + ((= a2-22 10) + "judge-skatea" + ) + ((= a2-22 17) + "reverse-race-2" + ) + ((= a2-22 18) + "reverse-race-3" + ) + ((= a2-22 13) + "bush-race-3" + ) + ((= a2-22 8) + "onin-game" + ) + ((= a2-22 3) + "race-3" + ) + (else + "*unknown*" + ) + ) + (-> v1-71 0) + (-> v1-71 1) + (-> v1-71 2) + ) + ) + ) + ) + (when (= arg0 'entity-perm) + (format #t "~Tentity-perm:~%") + (let ((game-perms (-> obj perm-list))) + (dotimes (s4-4 (-> game-perms length)) + (format #t "~T~T~`entity-perm`P~%" (-> game-perms data s4-4)) + ) + ) + ) + obj + ) + +(defmethod you-suck-stage game-info ((obj game-info) (arg0 symbol)) + (cond + ((logtest? (-> *game-info* secrets) (game-secrets hero-mode)) + 0 + ) + (else + (let ((game-subtasks (-> *game-info* sub-task-list))) + (dotimes (i (-> game-subtasks length)) + (when (nonzero? i) + (let ((subtask (-> game-subtasks i))) + (when (open? subtask) + (let ((cur-lev (level-get-target-inside *level*))) + (when (and cur-lev (= (-> cur-lev info taskname) (-> subtask level))) + (let* ((suck-death-count (if (zero? (-> subtask suck-death-count)) + 5 + (the-as int (-> subtask suck-death-count)) + ) + ) + (suck-death-stage (/ (the float (-> subtask death-count)) (the float suck-death-count))) + ) + (return (min 4 (the int suck-death-stage))) + ) + ) + ) + ) + ) + ) + ) + ) + 0 + ) + ) + ) + +(defmethod you-suck-scale game-info ((obj game-info)) + (* 0.25 (the float (you-suck-stage obj #f))) + ) + +(defmethod adjust-to-screen-flip cpad-info ((obj cpad-info)) (when (logtest? (-> *game-info* secrets) (game-secrets hflip-screen)) (set! (-> obj leftx) (- 255 (the-as int (-> obj leftx)))) (set! (-> obj rightx) (- 255 (the-as int (-> obj rightx)))) ) 0 - (none) - ) \ No newline at end of file + ) + +(defmethod game-info-method-28 game-info ((obj game-info) (arg0 game-score) (arg1 float)) + (when (!= arg1 0.0) + (let ((v1-3 (&+ (-> obj game-score data) (* (* arg0 8) 4)))) + (case arg0 + (((game-score race-1) + (game-score race-2) + (game-score race-3) + (game-score bush-race-1) + (game-score bush-race-2) + (game-score bush-race-3) + (game-score bush-port) + (game-score bush-errol) + (game-score reverse-race-1) + (game-score reverse-race-2) + (game-score reverse-race-3) + ) + (dotimes (a0-5 8) + (when (or (= (-> (&+ v1-3 (* a0-5 4)) 0) 0.0) (< arg1 (-> (&+ v1-3 (* a0-5 4)) 0))) + (let ((a1-19 7)) + (while (< a0-5 a1-19) + (set! (-> (&+ v1-3 (* a1-19 4)) 0) (-> (&+ v1-3 (* (+ a1-19 -1) 4)) 0)) + (+! a1-19 -1) + ) + ) + (set! (-> (&+ v1-3 (* a0-5 4)) 0) arg1) + (return a0-5) + ) + ) + ) + (else + (dotimes (a0-6 8) + (when (< (-> (&+ v1-3 (* a0-6 4)) 0) arg1) + (let ((a1-26 7)) + (while (< a0-6 a1-26) + (set! (-> (&+ v1-3 (* a1-26 4)) 0) (-> (&+ v1-3 (* (+ a1-26 -1) 4)) 0)) + (+! a1-26 -1) + ) + ) + (set! (-> (&+ v1-3 (* a0-6 4)) 0) arg1) + (return a0-6) + ) + ) + ) + ) + ) + ) + -1 + ) + +(defmethod get-game-score-ref game-info ((obj game-info) (arg0 int)) + (&+ (-> obj game-score data) (* (* arg0 8) 4)) + ) + +(defmethod get-rank highscore-info ((obj highscore-info) (arg0 float)) + (let ((v0-0 0)) + (cond + ((logtest? (-> obj flags) (highscore-flags time)) + (cond + ((= arg0 0.0) + ) + ((>= (-> obj gold-score) arg0) + (set! v0-0 3) + ) + ((>= (-> obj silver-score) arg0) + (set! v0-0 2) + ) + ((>= (-> obj bronze-score) arg0) + (set! v0-0 1) + ) + ) + ) + (else + (cond + ((>= arg0 (-> obj gold-score)) + (set! v0-0 3) + ) + ((>= arg0 (-> obj silver-score)) + (set! v0-0 2) + ) + ((>= arg0 (-> obj bronze-score)) + (set! v0-0 1) + ) + ) + ) + ) + v0-0 + ) + ) + +(kmemopen global "game-info") + +(let ((gp-0 *game-info*)) + (set! (-> gp-0 task-counter) (the-as uint 1)) + (when (zero? (-> gp-0 perm-list)) + (set! (-> gp-0 perm-list) (new 'global 'entity-perm-array 4096)) + (set! (-> gp-0 perm-list length) 0) + 0 + ) + (if (zero? (-> gp-0 unknown-pad6)) + (set! (-> gp-0 unknown-pad6) (new 'global 'boxed-array uint16 1860)) + ) + (when (zero? (-> gp-0 death-pos)) + (set! (-> gp-0 death-pos) (new 'global 'vector-array 64)) + (set! (-> gp-0 death-pos length) 0) + 0 + ) + (if (zero? (-> gp-0 display-text-handle)) + (set! (-> gp-0 display-text-handle) (the-as uint #f)) + ) + (if (zero? (-> gp-0 game-score)) + (set! (-> gp-0 game-score) (new 'global 'boxed-array float 152)) + ) + (if (not (-> gp-0 current-continue)) + (set-continue! gp-0 *default-continue* #f) + ) + (if (not (-> gp-0 last-continue)) + (set! (-> gp-0 last-continue) *default-continue*) + ) + (set! (-> gp-0 want-auto-save) #f) + (set! (-> gp-0 auto-save-proc) (the-as handle #f)) + (set! (-> gp-0 auto-save-status) (mc-status-code ok)) + (set! (-> gp-0 auto-save-card) 0) + (set! (-> gp-0 auto-save-which) -1) + (set! (-> gp-0 pov-camera-handle) (the-as handle #f)) + (set! (-> gp-0 other-camera-handle) (the-as handle #f)) + (set! (-> gp-0 features) + (game-feature unk-game-feature-06 gun-yellow gun-red gun-blue gun-dark board sidekick darkjak) + ) + (dotimes (v1-43 2) + (set! (-> gp-0 controller v1-43) (the-as handle #f)) + ) + (set! (-> gp-0 gun-ammo 0) (-> *FACT-bank* ammo-yellow-start)) + (set! (-> gp-0 gun-ammo 1) (-> *FACT-bank* ammo-red-start)) + (set! (-> gp-0 gun-ammo 2) (-> *FACT-bank* ammo-blue-start)) + (set! (-> gp-0 gun-ammo 3) (-> *FACT-bank* ammo-dark-start)) + (set! (-> gp-0 shield) 100.0) + (set! (-> gp-0 score) 0.0) + (set! (-> gp-0 score-owner) (the-as handle #f)) + (set! (-> gp-0 timer) 0) + (set! (-> gp-0 timer-flash) #f) + (set! (-> gp-0 timer-owner) (the-as handle #f)) + (set! (-> gp-0 counter) 0.0) + (set! (-> gp-0 counter-flash) #f) + (set! (-> gp-0 wanted-flash) #f) + (set! (-> gp-0 distance) 0.0) + ) + +0 + +(kmemclose) + +(define *highscore-info-array* + (new 'static 'boxed-array :type highscore-info + (new 'static 'highscore-info) + (new 'static 'highscore-info) + (new 'static 'highscore-info) + (new 'static 'highscore-info) + (new 'static 'highscore-info :award-scores (new 'static 'array float 3 8000.0 10000.0 12000.0)) + (new 'static 'highscore-info :award-scores (new 'static 'array float 3 9000.0 11000.0 13000.0)) + (new 'static 'highscore-info :award-scores (new 'static 'array float 3 11000.0 13000.0 15000.0)) + (new 'static 'highscore-info :award-scores (new 'static 'array float 3 11000.0 13000.0 15000.0)) + (new 'static 'highscore-info + :award-scores (new 'static 'array float 3 1000000000.0 1000000000.0 1000000000.0) + ) + (new 'static 'highscore-info + :award-scores (new 'static 'array float 3 1000000000.0 1000000000.0 1000000000.0) + ) + (new 'static 'highscore-info :award-scores (new 'static 'array float 3 50000.0 90000.0 120000.0)) + (new 'static 'highscore-info + :flags (highscore-flags time) + :award-scores (new 'static 'array float 3 142.0 138.0 133.0) + ) + (new 'static 'highscore-info + :flags (highscore-flags time) + :award-scores (new 'static 'array float 3 140.0 135.0 130.0) + ) + (new 'static 'highscore-info + :flags (highscore-flags time) + :award-scores (new 'static 'array float 3 149.0 144.0 139.0) + ) + (new 'static 'highscore-info + :flags (highscore-flags time) + :award-scores (new 'static 'array float 3 142.0 137.0 132.0) + ) + (new 'static 'highscore-info + :flags (highscore-flags time) + :award-scores (new 'static 'array float 3 137.0 132.0 127.0) + ) + (new 'static 'highscore-info + :flags (highscore-flags time) + :award-scores (new 'static 'array float 3 150.0 145.0 140.0) + ) + (new 'static 'highscore-info + :flags (highscore-flags time) + :award-scores (new 'static 'array float 3 155.0 150.0 145.0) + ) + (new 'static 'highscore-info + :flags (highscore-flags time) + :award-scores (new 'static 'array float 3 178.0 173.0 168.0) + ) + ) + ) diff --git a/goal_src/jak2/engine/game/settings-h.gc b/goal_src/jak2/engine/game/settings-h.gc index 359318831c..baa551e500 100644 --- a/goal_src/jak2/engine/game/settings-h.gc +++ b/goal_src/jak2/engine/game/settings-h.gc @@ -76,6 +76,37 @@ `(remove-setting *setting-control* (with-pp pp) ,s) ) +(defenum game-feature + :type uint64 + :bitfield #t + (unk-game-feature-01) + (unk-game-feature-02) + (unk-game-feature-03) + (unk-game-feature-04) + (unk-game-feature-05) + (unk-game-feature-06) + (gun-yellow) + (gun-red) + (gun-blue) + (gun-dark) + (board) + (carry) + (sidekick) + (darkjak) + (gun-upgrade-speed) + (gun-upgrade-ammo) + (gun-upgrade-damage) + (unk-game-feature-18) + (pass-red) + (pass-green) + (pass-yellow) + (pass-blue) + (darkjak-bomb0) + (darkjak-bomb1) + (darkjak-invinc) + (darkjak-giant) + (board-training)) + ;; DECOMP BEGINS (deftype user-setting-data (structure) @@ -119,7 +150,7 @@ (board symbol :offset-assert 156) (jump symbol :offset-assert 160) (speed-mult float :offset-assert 164) - (features uint64 :offset-assert 168) + (features game-feature :offset-assert 168) (sfx-volume float :offset-assert 176) (sfx-movie-volume float :offset-assert 180) (music-volume float :offset-assert 184) @@ -146,7 +177,7 @@ (allow-continue symbol :offset-assert 268) (spotlight-color rgba :offset-assert 272) (subtitle symbol :offset-assert 276) - (borrow symbol :offset-assert 280) + (borrow pair :offset-assert 280) (doorway symbol :offset-assert 284) (gen symbol :offset-assert 288) (half-speed symbol :offset-assert 292) @@ -298,9 +329,3 @@ s4-0 ) ) - -0 - - - - diff --git a/goal_src/jak2/engine/game/settings.gc b/goal_src/jak2/engine/game/settings.gc index ca16c851a8..7f3c7bffa5 100644 --- a/goal_src/jak2/engine/game/settings.gc +++ b/goal_src/jak2/engine/game/settings.gc @@ -446,7 +446,7 @@ (logclear! (-> obj features) arg3) ) (('abs) - (set! (-> obj features) arg3) + (set! (-> obj features) (the-as game-feature arg3)) ) ) ) @@ -470,7 +470,7 @@ (set! (-> obj race-minimap) (the-as int arg3)) ) (('borrow) - (set! (-> obj borrow) arg1) + (set! (-> obj borrow) (the-as pair arg1)) ) (('half-speed) (set! (-> obj half-speed) arg1) @@ -806,7 +806,6 @@ (none) ) -;; WARN: Return type mismatch int vs none. (defmethod add-setting setting-control ((obj setting-control) (arg0 process) (arg1 symbol) (arg2 object) (arg3 object) (arg4 object)) "Originally called `setting-set` see (anon-function 48 script)" (add-connection (-> obj engine) arg0 arg1 arg2 arg3 arg4) @@ -814,7 +813,6 @@ (none) ) -;; WARN: Return type mismatch int vs none. (defmethod set-setting setting-control ((obj setting-control) (arg0 process) (arg1 symbol) (arg2 object) (arg3 object) (arg4 object)) (remove-setting obj arg0 arg1) (add-connection (-> obj engine) arg0 arg1 arg2 arg3 arg4) @@ -822,7 +820,6 @@ (none) ) -;; WARN: Return type mismatch int vs none. (defmethod persist-with-delay setting-control ((obj setting-control) (arg0 symbol) (arg1 time-frame) (arg2 symbol) (arg3 symbol) (arg4 float) (arg5 int)) "Originally called `setting-pers` see (anon-function 46 script)" (let ((v1-1 (schedule-callback (-> obj engine-pers) arg0 arg1))) @@ -837,7 +834,6 @@ (none) ) -;; WARN: Return type mismatch int vs none. (defmethod remove-setting setting-control ((obj setting-control) (arg0 process) (arg1 symbol)) (when arg0 (let ((s5-0 (-> obj engine)) @@ -857,7 +853,6 @@ (none) ) -;; WARN: Return type mismatch int vs none. (defmethod kill-persister setting-control ((obj setting-control) (arg0 engine-pers) (arg1 object)) "Calls [[engine-pers::kill-matching]]" (kill-matching @@ -889,7 +884,6 @@ (the-as connectable #f) ) -;; WARN: Return type mismatch int vs none. (defmethod remove-setting-by-arg0 setting-control ((obj setting-control) (arg0 object)) "Calls [[engine::remove-by-param0]] on `engine-hi`" (remove-by-param0 (-> obj engine-hi) arg0) @@ -904,12 +898,7 @@ ) (defmethod apply-settings setting-control ((obj setting-control)) - ;; added - (when (nonzero? *speech-control*) - *speech-control* - ((method-of-type speech-control speech-control-method-11)) - ) - + ;; (speech-control-method-11 *speech-control*) (let ((s5-0 (-> obj user-current))) (let ((s4-0 (-> obj user-target))) (mem-copy! (the-as pointer s4-0) (the-as pointer (-> obj user-default)) 528) @@ -1408,7 +1397,7 @@ (set! (-> gp-0 allow-look-around) #t) (set! (-> gp-0 border-mode) #f) (set! (-> gp-0 region-mode) #t) - (set! (-> gp-0 borrow) (the-as symbol '())) + (set! (-> gp-0 borrow) '()) (set! (-> gp-0 sfx-volume) (* 0.01000001 f0-1)) (set! (-> gp-0 music-volume) (* 0.01000001 f0-1)) (set! (-> gp-0 dialog-volume) (* 0.01000001 f0-1)) @@ -1484,7 +1473,7 @@ (set! (-> gp-0 speed-mult) 1.0) (set! (-> gp-0 rain) 0.0) (set! (-> gp-0 snow) 0.0) - (set! (-> gp-0 features) (the-as uint -1)) + (set! (-> gp-0 features) (the-as game-feature -1)) (set! (-> gp-0 sound-flava) (the-as uint 0)) (set! (-> gp-0 sound-flava-priority) 0.0) (set! (-> gp-0 sound-reverb) 0.0) @@ -1654,7 +1643,3 @@ (set! (-> v1-127 extra-follow-height) 0.0) ) ) - - - - diff --git a/goal_src/jak2/engine/game/task/game-task-h.gc b/goal_src/jak2/engine/game/task/game-task-h.gc index a7b2495502..a3b9a3841b 100644 --- a/goal_src/jak2/engine/game/task/game-task-h.gc +++ b/goal_src/jak2/engine/game/task/game-task-h.gc @@ -125,13 +125,333 @@ ;; +++game-task-node (defenum game-task-node - :type uint32 + :type uint16 :bitfield #f - (dig-knock-down-resolution 113) - (tomb-boss-torches 167) - (fortress-save-friends-resolution 172) - (drill-mech-resolution 204) - (drill-mech-started-smashing 205)) + (none) + (fortress-escape-start) + (fortress-escape-introduction) + (fortress-escape-resolution) + (city-help-kid-introduction) + (city-help-kid-battle) + (city-help-kid-resolution) + (city-vehicle-training-map) + (city-vehicle-training-hover-zone-1) + (city-vehicle-training-hover-zone-2) + (city-vehicle-training-resolution) + (ruins-tower-introduction) + (ruins-tower-resolution) + (ruins-tower-exit) + (atoll-water-introduction) + (atoll-water-find) + (atoll-water-valve) + (atoll-water-resolution) + (atoll-water-exit) + (fortress-dump-introduction) + (fortress-dump-deal) + (fortress-dump-missile) + (fortress-dump-resolution) + (city-krew-delivery-introduction) + (city-krew-delivery-delivery) + (city-krew-delivery-resolution) + (city-red-gun-training-introduction) + (city-red-gun-training-try-once) + (city-red-gun-training-resolution) + (city-red-gun-training-bronze) + (city-red-gun-training-silver) + (city-red-gun-training-gold) + (atoll-sig-introduction) + (atoll-sig-sig-introduction) + (atoll-sig-tank) + (atoll-sig-sniper-a) + (atoll-sig-sniper-b) + (atoll-sig-sniper-c) + (atoll-sig-sniper-d) + (atoll-sig-resolution) + (sewer-enemy-introduction) + (sewer-enemy-blow-up-turrets) + (sewer-enemy-talk-to-krew) + (sewer-enemy-resolution) + (strip-rescue-introduction) + (strip-rescue-battle) + (strip-rescue-resolution) + (atoll-battle-introduction) + (atoll-battle-rescue) + (atoll-battle-battle) + (atoll-battle-resolution) + (mountain-lens-introduction) + (mountain-lens-started) + (mountain-lens-intermediate) + (mountain-lens-resolution) + (mountain-gear-find) + (mountain-gear-resolution) + (mountain-shard-dice) + (mountain-shard-resolution) + (mountain-collection-resolution) + (city-keira-delivery-introduction) + (city-keira-delivery-delivery) + (city-keira-delivery-resolution) + (stadium-board1-introduction) + (stadium-board1-board) + (stadium-board1-training) + (stadium-board1-training-judge) + (stadium-board1-done) + (stadium-board1-resolution) + (stadium-board1-bronze) + (stadium-board1-silver) + (stadium-board1-gold) + (city-krew-collection-introduction) + (city-krew-collection-collection) + (city-krew-collection-resolution) + (city-yellow-gun-training-introduction) + (city-yellow-gun-training-resolution) + (city-yellow-gun-training-bronze) + (city-yellow-gun-training-silver) + (city-yellow-gun-training-gold) + (drill-eggs-introduction) + (drill-eggs-eggs-0) + (drill-eggs-eggs-1) + (drill-eggs-eggs-2) + (drill-eggs-resolution) + (city-power-introduction) + (city-power-vinroom) + (city-power-resolution) + (city-power-post-win) + (palace-cable-introduction) + (palace-cable-resolution) + (palace-boss-introduction) + (palace-boss-battle) + (palace-boss-resolution) + (city-shuttle-introduction) + (city-shuttle-shuttle) + (city-shuttle-resolution) + (ruins-enemy-introduction) + (ruins-enemy-resolution) + (ruins-enemy-exit) + (city-blue-gun-training-bronze) + (city-blue-gun-training-silver) + (city-blue-gun-training-gold) + (forest-scouts-pre-intro) + (forest-scouts-introduction) + (forest-scouts-voicebox) + (forest-scouts-get-board) + (forest-scouts-pegasus) + (forest-scouts-resolution) + (city-escort-kid-pre-intro) + (city-escort-kid-introduction) + (city-escort-kid-resolution) + (dig-knock-down-introduction) + (dig-knock-down-resolution) + (strip-grenade-introduction) + (strip-grenade-explode) + (strip-grenade-resolution) + (drill-ship-introduction) + (drill-ship-resolution) + (city-port-run-introduction) + (city-port-run-resolution) + (city-port-run-post-win) + (city-meet-brutter-pre-intro) + (city-meet-brutter-introduction) + (city-meet-brutter-meet-brutter) + (city-meet-brutter-resolution) + (sewer-board-introduction) + (sewer-board-drain) + (sewer-board-resolution) + (forest-hunt-introduction) + (forest-hunt-resolution) + (city-intercept-tanker-roof-explode) + (city-intercept-tanker-introduction) + (city-intercept-tanker-battle) + (city-intercept-tanker-resolution) + (stadium-race-class3-introduction) + (stadium-race-class3-race) + (stadium-race-class3-resolution) + (stadium-race-class3-select-bush) + (city-protect-water-slums-introduction) + (city-protect-water-slums-get-seal) + (city-protect-water-slums-fight) + (city-protect-water-slums-resolution) + (dig-find-totem-introduction) + (dig-find-totem-raise-log) + (dig-find-totem-resolution) + (city-destroy-guard-vehicles-introduction) + (city-destroy-guard-vehicles-destroy) + (city-destroy-guard-vehicles-resolution) + (city-play-onin-game-introduction) + (city-play-onin-game-wait) + (city-play-onin-game-resolution) + (city-play-onin-game-skill) + (city-play-onin-game-post-game) + (canyon-insert-items-introduction) + (canyon-insert-items-door) + (canyon-insert-items-gear) + (canyon-insert-items-shard) + (canyon-insert-items-resolution) + (tomb-poles-introduction) + (tomb-poles-block) + (tomb-poles-poles) + (tomb-poles-boulder) + (tomb-poles-poles2) + (tomb-poles-resolution) + (tomb-water-vibe) + (tomb-water-resolution) + (tomb-boss-torches) + (tomb-boss-door) + (tomb-boss-introduction) + (tomb-boss-resolution) + (fortress-save-friends-introduction) + (fortress-save-friends-resolution) + (sewer-escort-introduction) + (sewer-escort-explode-wall1) + (sewer-escort-explode-wall2) + (sewer-escort-resolution) + (sewer-escort-get-gun) + (city-dark-gun-training-bronze) + (city-dark-gun-training-silver) + (city-dark-gun-training-gold) + (stadium-race-class2-introduction) + (stadium-race-class2-race) + (stadium-race-class2-resolution) + (stadium-race-class2-select-bush) + (city-stop-bomb-bots-introduction) + (city-stop-bomb-bots-destroy) + (city-stop-bomb-bots-resolution) + (city-errol-challenge-introduction) + (city-errol-challenge-race) + (city-errol-challenge-resolution) + (strip-drop-introduction) + (strip-drop-resolution) + (ruins-mech-introduction) + (ruins-mech-break-wall-1) + (ruins-mech-move-block-1) + (ruins-mech-throw-block-1) + (ruins-mech-resolution) + (forest-protect-introduction) + (forest-protect-meeting) + (forest-protect-resolution) + (forest-protect-post-game) + (drill-mech-introduction) + (drill-mech-started-smashing) + (drill-mech-smash-consoles) + (drill-mech-resolution) + (city-save-lurkers-introduction) + (city-save-lurkers-save-lurkers) + (city-save-lurkers-resolution) + (stadium-race-class1-introduction) + (stadium-race-class1-race) + (stadium-race-class1-resolution) + (stadium-race-class1-select-bush) + (palace-sneak-in-introduction) + (palace-sneak-in-meeting) + (palace-sneak-in-palace-3) + (palace-sneak-in-door) + (palace-sneak-in-resolution) + (castle-break-in-introduction) + (castle-break-in-castle-1) + (castle-break-in-resolution) + (castle-boss-introduction) + (castle-boss-resolution) + (city-whack-pre-intro) + (city-whack-introduction) + (city-whack-wait) + (city-whack-resolution) + (city-whack-post-game) + (under-mech-introduction) + (under-mech-resolution) + (under-sig-introduction) + (under-sig-centipede1-start) + (under-sig-centipede1-end) + (under-sig-centipede2-start) + (under-sig-resolution) + (city-defend-stadium-pre-intro) + (city-defend-stadium-introduction) + (city-defend-stadium-resolution) + (consite-find-baron-introduction) + (consite-find-baron-resolution) + (nest-get-to-gun-introduction) + (nest-get-to-gun-resolution) + (nest-enter-introduction) + (nest-enter-resolution) + (nest-boss-introduction) + (nest-boss-resolution) + (city-win-pre-intro) + (city-win-introduction) + (city-win-resolution) + (city-oracle-introduction) + (city-oracle-level0) + (city-oracle-level0-training) + (city-oracle-level1) + (city-oracle-level1-training) + (city-oracle-level2) + (city-oracle-level2-training) + (city-oracle-level3) + (city-oracle-level3-training) + (city-burning-bush-ring-1-introduction) + (city-burning-bush-ring-1-resolution) + (city-burning-bush-get-to-1-introduction) + (city-burning-bush-get-to-1-resolution) + (city-burning-bush-get-to-2-introduction) + (city-burning-bush-get-to-2-resolution) + (city-burning-bush-get-to-3-introduction) + (city-burning-bush-get-to-3-resolution) + (city-burning-bush-get-to-4-introduction) + (city-burning-bush-get-to-4-resolution) + (city-burning-bush-collection-1-introduction) + (city-burning-bush-collection-1-resolution) + (city-burning-bush-racepoint-1-introduction) + (city-burning-bush-racepoint-1-resolution) + (city-burning-bush-ring-2-introduction) + (city-burning-bush-ring-2-resolution) + (city-burning-bush-get-to-5-introduction) + (city-burning-bush-get-to-5-resolution) + (city-burning-bush-get-to-6-introduction) + (city-burning-bush-get-to-6-resolution) + (city-burning-bush-shuttle-1-introduction) + (city-burning-bush-shuttle-1-resolution) + (city-burning-bush-get-to-7-introduction) + (city-burning-bush-get-to-7-resolution) + (city-burning-bush-get-to-8-introduction) + (city-burning-bush-get-to-8-resolution) + (city-burning-bush-get-to-9-introduction) + (city-burning-bush-get-to-9-resolution) + (city-burning-bush-collection-2-introduction) + (city-burning-bush-collection-2-resolution) + (city-burning-bush-get-to-10-introduction) + (city-burning-bush-get-to-10-resolution) + (city-burning-bush-get-to-11-introduction) + (city-burning-bush-get-to-11-resolution) + (city-burning-bush-ring-3-introduction) + (city-burning-bush-ring-3-resolution) + (city-burning-bush-get-to-12-introduction) + (city-burning-bush-get-to-12-resolution) + (city-burning-bush-bombbot-1-introduction) + (city-burning-bush-bombbot-1-resolution) + (city-burning-bush-get-to-13-introduction) + (city-burning-bush-get-to-13-resolution) + (city-burning-bush-get-to-14-introduction) + (city-burning-bush-get-to-14-resolution) + (city-burning-bush-get-to-15-introduction) + (city-burning-bush-get-to-15-resolution) + (city-burning-bush-collection-3-introduction) + (city-burning-bush-collection-3-resolution) + (city-burning-bush-race-errol-introduction) + (city-burning-bush-race-errol-resolution) + (city-burning-bush-race-port-introduction) + (city-burning-bush-race-port-resolution) + (stadium-burning-bush-race-board-introduction) + (stadium-burning-bush-race-board-resolution) + (stadium-burning-bush-race-class3-introduction) + (stadium-burning-bush-race-class3-resolution) + (stadium-burning-bush-race-class2-introduction) + (stadium-burning-bush-race-class2-resolution) + (stadium-burning-bush-race-class1-introduction) + (stadium-burning-bush-race-class1-resolution) + (stadium-burning-bush-race-class3-r-introduction) + (stadium-burning-bush-race-class3-r-resolution) + (stadium-burning-bush-race-class2-r-introduction) + (stadium-burning-bush-race-class2-r-resolution) + (stadium-burning-bush-race-class1-r-introduction) + (stadium-burning-bush-race-class1-r-resolution) + ) ;; ---game-task-node ;; NOTE - for mood-funcs diff --git a/goal_src/jak2/engine/game/task/game-task.gc b/goal_src/jak2/engine/game/task/game-task.gc index 72c358847a..68768b95e6 100644 --- a/goal_src/jak2/engine/game/task/game-task.gc +++ b/goal_src/jak2/engine/game/task/game-task.gc @@ -7,3 +7,12319 @@ ;; DECOMP BEGINS +(kmemopen global "game-info") + +(let ((gp-0 *game-info*)) + (set! (-> gp-0 play-list) + (new 'static 'boxed-array :type game-task-info + (new 'static 'game-task-info :name "none" :pre-play-continue #f :play-continue #f :kiosk-play-continue #f) + (new 'static 'game-task-info :name "complete" :pre-play-continue #f :play-continue #f :kiosk-play-continue #f) + (new 'static 'game-task-info :name "dummy0" :pre-play-continue #f :play-continue #f :kiosk-play-continue #f) + (new 'static 'game-task-info + :name "eco-blue-button" + :pre-play-continue #f + :play-continue #f + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "eco-yellow-button" + :pre-play-continue #f + :play-continue #f + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "eco-red-button" + :pre-play-continue #f + :play-continue #f + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "fortress-escape" + :text-name (game-text-id text-x1b6) + :pre-play-node (game-task-node fortress-escape-start) + :kiosk-play-node (game-task-node fortress-escape-introduction) + :pre-play-continue #f + :play-node (game-task-node fortress-escape-resolution) + :play-continue "prison-start" + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "city-help-kid" + :text-name (game-text-id text-x1b7) + :pre-play-node (game-task-node city-help-kid-introduction) + :kiosk-play-node (game-task-node city-help-kid-battle) + :pre-play-continue #f + :play-node (game-task-node city-help-kid-introduction) + :play-continue "ctyslumb-fort" + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "city-vehicle-training" + :pre-play-node (game-task-node city-vehicle-training-map) + :kiosk-play-node (game-task-node city-vehicle-training-hover-zone-1) + :pre-play-continue #f + :play-node (game-task-node city-vehicle-training-hover-zone-1) + :play-continue #f + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "ruins-tower" + :text-name (game-text-id text-x1b8) + :pre-play-node (game-task-node ruins-tower-introduction) + :kiosk-play-node (game-task-node ruins-tower-resolution) + :pre-play-continue "ctysluma-tower-intro" + :play-node (game-task-node ruins-tower-resolution) + :play-continue "ruins-start" + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "atoll-water" + :text-name (game-text-id text-x1b9) + :pre-play-node (game-task-node atoll-water-introduction) + :kiosk-play-node (game-task-node atoll-water-find) + :pre-play-continue "hideout-start" + :play-node (game-task-node atoll-water-find) + :play-continue "atoll-start" + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "fortress-dump" + :text-name (game-text-id text-x1ba) + :pre-play-node (game-task-node fortress-dump-introduction) + :kiosk-play-node (game-task-node fortress-dump-deal) + :pre-play-continue "hideout-start" + :play-node (game-task-node fortress-dump-deal) + :play-continue "fordumpa-start" + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "city-krew-delivery" + :text-name (game-text-id text-x1bb) + :pre-play-node (game-task-node city-krew-delivery-introduction) + :kiosk-play-node (game-task-node city-krew-delivery-delivery) + :pre-play-continue "hideout-start" + :play-node (game-task-node city-krew-delivery-delivery) + :play-continue "ctysluma-alley" + :kiosk-play-continue "hideout-start" + ) + (new 'static 'game-task-info + :name "city-red-gun-training" + :text-name (game-text-id text-x1bc) + :pre-play-node (game-task-node city-krew-delivery-resolution) + :kiosk-play-node (game-task-node city-red-gun-training-try-once) + :pre-play-continue "hiphog-start" + :play-node (game-task-node city-red-gun-training-try-once) + :play-continue "gungame-start" + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "atoll-sig" + :text-name (game-text-id text-x1bd) + :pre-play-node (game-task-node atoll-sig-introduction) + :kiosk-play-node (game-task-node atoll-sig-sig-introduction) + :pre-play-continue "hiphog-start" + :play-node (game-task-node atoll-sig-sig-introduction) + :play-continue "atoll-start" + :kiosk-play-continue "atoll-start" + ) + (new 'static 'game-task-info + :name "sewer-enemy" + :text-name (game-text-id text-x1be) + :pre-play-node (game-task-node sewer-enemy-introduction) + :kiosk-play-node (game-task-node sewer-enemy-blow-up-turrets) + :pre-play-continue "hiphog-start" + :play-node (game-task-node sewer-enemy-blow-up-turrets) + :play-continue "sewer-start" + :kiosk-play-continue "sewer-start-kiosk" + ) + (new 'static 'game-task-info + :name "strip-rescue" + :text-name (game-text-id text-x1c0) + :pre-play-node (game-task-node strip-rescue-introduction) + :kiosk-play-node (game-task-node strip-rescue-battle) + :pre-play-continue "vinroom-start" + :play-node (game-task-node strip-rescue-battle) + :play-continue "strip-warp" + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "atoll-battle" + :text-name (game-text-id text-x1c4) + :pre-play-node (game-task-node atoll-battle-introduction) + :kiosk-play-node (game-task-node atoll-battle-rescue) + :pre-play-continue "hideout-start" + :play-node (game-task-node atoll-battle-rescue) + :play-continue "atoll-start" + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "mountain-lens" + :text-name (game-text-id text-x1c7) + :pre-play-node (game-task-node mountain-lens-introduction) + :kiosk-play-node (game-task-node mountain-lens-started) + :pre-play-continue "onintent-start" + :play-node (game-task-node mountain-lens-started) + :play-continue "mountain-start" + :kiosk-play-continue "mountain-kiosk" + ) + (new 'static 'game-task-info + :name "mountain-gear" + :text-name (game-text-id text-x1c9) + :pre-play-node (game-task-node mountain-gear-find) + :kiosk-play-node (game-task-node mountain-gear-resolution) + :pre-play-continue #f + :play-node (game-task-node mountain-gear-resolution) + :play-continue "mountain-start" + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "mountain-shard" + :text-name (game-text-id text-x1c8) + :pre-play-node (game-task-node mountain-shard-dice) + :kiosk-play-node (game-task-node mountain-shard-resolution) + :pre-play-continue #f + :play-node (game-task-node mountain-shard-resolution) + :play-continue "mountain-start" + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "mountain-collection" + :pre-play-node (game-task-node mountain-collection-resolution) + :kiosk-play-node (game-task-node city-keira-delivery-introduction) + :pre-play-continue #f + :play-node (game-task-node city-keira-delivery-introduction) + :play-continue #f + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "city-keira-delivery" + :text-name (game-text-id text-x1c1) + :pre-play-node (game-task-node city-keira-delivery-introduction) + :kiosk-play-node (game-task-node city-keira-delivery-delivery) + :pre-play-continue "hiphog-start" + :play-node (game-task-node city-keira-delivery-delivery) + :play-continue "ctyport-hiphog-no-hiphog" + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "stadium-board1" + :text-name (game-text-id text-x1c6) + :pre-play-node (game-task-node stadium-board1-introduction) + :kiosk-play-node (game-task-node stadium-board1-board) + :pre-play-continue "garage-start-skate" + :play-node (game-task-node stadium-board1-board) + :play-continue "skatea-training" + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "city-krew-collection" + :text-name (game-text-id text-x1c5) + :pre-play-node (game-task-node city-krew-collection-introduction) + :kiosk-play-node (game-task-node city-krew-collection-collection) + :pre-play-continue "hiphog-start" + :play-node (game-task-node city-krew-collection-collection) + :play-continue "ctyport-hiphog" + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "city-yellow-gun-training" + :text-name (game-text-id text-x1c2) + :pre-play-node (game-task-node city-krew-collection-resolution) + :kiosk-play-node (game-task-node city-yellow-gun-training-resolution) + :pre-play-continue "hiphog-start" + :play-node (game-task-node city-yellow-gun-training-resolution) + :play-continue "gungame-start" + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "drill-eggs" + :text-name (game-text-id text-x1c3) + :pre-play-node (game-task-node drill-eggs-introduction) + :kiosk-play-node (game-task-node drill-eggs-eggs-0) + :pre-play-continue "vinroom-start" + :play-node (game-task-node drill-eggs-eggs-0) + :play-continue "drill1-warp" + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "city-power" + :text-name (game-text-id text-x1ca) + :pre-play-node (game-task-node city-power-introduction) + :kiosk-play-node (game-task-node city-power-vinroom) + :pre-play-continue "vinroom-start" + :play-node (game-task-node city-power-resolution) + :play-continue "ctyinda-vinroom" + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "palace-cable" + :text-name (game-text-id text-x1cb) + :pre-play-node (game-task-node palace-cable-introduction) + :kiosk-play-node (game-task-node palace-cable-resolution) + :pre-play-continue "ctygenb-start" + :play-node (game-task-node palace-cable-resolution) + :play-continue "palcab-start" + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "palace-boss" + :text-name (game-text-id text-x1cc) + :pre-play-node (game-task-node palace-boss-introduction) + :kiosk-play-node (game-task-node palace-boss-battle) + :pre-play-continue "palroof-throne" + :play-node (game-task-node palace-boss-battle) + :play-continue "palroof-boss" + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "city-shuttle" + :text-name (game-text-id text-x1cd) + :pre-play-node (game-task-node city-shuttle-introduction) + :kiosk-play-node (game-task-node city-shuttle-shuttle) + :pre-play-continue "hideout-start" + :play-node (game-task-node city-shuttle-shuttle) + :play-continue "ctysluma-alley" + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "ruins-enemy" + :text-name (game-text-id text-x1ce) + :pre-play-node (game-task-node ruins-enemy-introduction) + :kiosk-play-node (game-task-node ruins-enemy-resolution) + :pre-play-continue "hideout-start" + :play-node (game-task-node ruins-enemy-resolution) + :play-continue "ruins-start" + :kiosk-play-continue "ruins-start" + ) + (new 'static 'game-task-info + :name "city-blue-gun-training" + :pre-play-node (game-task-node city-blue-gun-training-bronze) + :kiosk-play-node (game-task-node city-blue-gun-training-silver) + :pre-play-continue #f + :play-node (game-task-node city-blue-gun-training-silver) + :play-continue #f + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "forest-scouts" + :text-name (game-text-id text-x1cf) + :pre-play-node (game-task-node forest-scouts-introduction) + :kiosk-play-node (game-task-node forest-scouts-introduction) + :pre-play-continue "hideout-start" + :play-node (game-task-node forest-scouts-pegasus) + :play-continue "forest-start" + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "city-escort-kid" + :text-name (game-text-id text-x1d0) + :pre-play-node (game-task-node city-escort-kid-introduction) + :kiosk-play-node (game-task-node city-escort-kid-introduction) + :pre-play-continue "ctysluma-escort-retry" + :play-node (game-task-node city-escort-kid-resolution) + :play-continue "escort-kid-intro" + :kiosk-play-continue "ctysluma-escort-retry" + ) + (new 'static 'game-task-info + :name "dig-knock-down" + :text-name (game-text-id text-x1d4) + :pre-play-node (game-task-node dig-knock-down-introduction) + :kiosk-play-node (game-task-node dig-knock-down-resolution) + :pre-play-continue "vinroom-start" + :play-node (game-task-node dig-knock-down-resolution) + :play-continue "dig1-start" + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "strip-grenade" + :text-name (game-text-id text-x1d5) + :pre-play-node (game-task-node strip-grenade-introduction) + :kiosk-play-node (game-task-node strip-grenade-explode) + :pre-play-continue "vinroom-start" + :play-node (game-task-node strip-grenade-explode) + :play-continue "strip-warp" + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "drill-ship" + :text-name (game-text-id text-x1d7) + :pre-play-node (game-task-node drill-ship-introduction) + :kiosk-play-node (game-task-node drill-ship-resolution) + :pre-play-continue "vinroom-start" + :play-node (game-task-node drill-ship-resolution) + :play-continue "drill-warp-gunship" + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "city-port-run" + :text-name (game-text-id text-x1d2) + :pre-play-node (game-task-node city-port-run-introduction) + :kiosk-play-node (game-task-node city-port-run-resolution) + :pre-play-continue "ctyport-hiphog-no-hiphog" + :play-node (game-task-node city-port-run-resolution) + :play-continue "ctyport-hiphog-no-hiphog" + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "city-meet-brutter" + :text-name (game-text-id text-x1d1) + :pre-play-node (game-task-node city-meet-brutter-pre-intro) + :kiosk-play-node (game-task-node city-meet-brutter-introduction) + :pre-play-continue "hiphog-start" + :play-node (game-task-node city-meet-brutter-introduction) + :play-continue "hiphog-start" + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "sewer-board" + :text-name (game-text-id text-x1d6) + :pre-play-node (game-task-node sewer-board-introduction) + :kiosk-play-node (game-task-node sewer-board-drain) + :pre-play-continue "hiphog-start" + :play-node (game-task-node sewer-board-drain) + :play-continue "sewer-start" + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "forest-hunt" + :text-name (game-text-id text-x1d9) + :pre-play-node (game-task-node forest-hunt-introduction) + :kiosk-play-node (game-task-node forest-hunt-resolution) + :pre-play-continue "hiphog-start" + :play-node (game-task-node forest-hunt-resolution) + :play-continue "forest-start" + :kiosk-play-continue "forest-start" + ) + (new 'static 'game-task-info + :name "city-intercept-tanker" + :text-name (game-text-id text-x1d3) + :pre-play-node (game-task-node city-intercept-tanker-roof-explode) + :kiosk-play-node (game-task-node city-intercept-tanker-introduction) + :pre-play-continue #f + :play-node (game-task-node city-intercept-tanker-roof-explode) + :play-continue "ctymarkb-tanker" + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "stadium-race-class3" + :text-name (game-text-id text-x1da) + :pre-play-node (game-task-node stadium-race-class3-introduction) + :kiosk-play-node (game-task-node stadium-race-class3-race) + :pre-play-continue "garage-start-class3" + :play-node (game-task-node stadium-race-class3-race) + :play-continue "stadiumb-race-fail" + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "city-protect-water-slums" + :text-name (game-text-id text-x1dc) + :pre-play-node (game-task-node city-protect-water-slums-introduction) + :kiosk-play-node (game-task-node city-protect-water-slums-get-seal) + :pre-play-continue #f + :play-node (game-task-node city-protect-water-slums-resolution) + :play-continue "ctyslumc-slums" + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "dig-find-totem" + :text-name (game-text-id text-x1db) + :pre-play-node (game-task-node dig-find-totem-introduction) + :kiosk-play-node (game-task-node dig-find-totem-raise-log) + :pre-play-continue "onintent-start" + :play-node (game-task-node dig-find-totem-raise-log) + :play-continue "dig3-start" + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "city-destroy-guard-vehicles" + :text-name (game-text-id text-x1dd) + :pre-play-node (game-task-node city-destroy-guard-vehicles-introduction) + :kiosk-play-node (game-task-node city-destroy-guard-vehicles-destroy) + :pre-play-continue "hideout-start" + :play-node (game-task-node city-destroy-guard-vehicles-destroy) + :play-continue "ctysluma-alley" + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "city-play-onin-game" + :text-name (game-text-id text-x1de) + :pre-play-node (game-task-node city-play-onin-game-introduction) + :kiosk-play-node (game-task-node city-play-onin-game-wait) + :pre-play-continue "onintent-start" + :play-node (game-task-node city-play-onin-game-wait) + :play-continue "onintent-start" + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "canyon-insert-items" + :text-name (game-text-id text-x1df) + :pre-play-node (game-task-node canyon-insert-items-door) + :kiosk-play-node (game-task-node canyon-insert-items-door) + :pre-play-continue "mountain-door" + :play-node (game-task-node canyon-insert-items-gear) + :play-continue "mincan-start" + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "tomb-poles" + :text-name (game-text-id text-x1e2) + :pre-play-node (game-task-node tomb-poles-introduction) + :kiosk-play-node (game-task-node tomb-poles-block) + :pre-play-continue "tombd-start" + :play-node (game-task-node tomb-poles-block) + :play-continue "tomb-start" + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "tomb-water" + :text-name (game-text-id text-x1e3) + :pre-play-node (game-task-node tomb-water-vibe) + :kiosk-play-node (game-task-node tomb-water-resolution) + :pre-play-continue #f + :play-node (game-task-node tomb-water-vibe) + :play-continue "tomb-start" + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "tomb-boss" + :text-name (game-text-id text-x1e4) + :pre-play-node (game-task-node tomb-boss-introduction) + :kiosk-play-node (game-task-node tomb-boss-door) + :pre-play-continue "tombboss-start" + :play-node (game-task-node tomb-boss-introduction) + :play-continue "tombboss-play-start" + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "fortress-save-friends" + :text-name (game-text-id text-x1e5) + :pre-play-node (game-task-node fortress-save-friends-introduction) + :kiosk-play-node (game-task-node fortress-save-friends-resolution) + :pre-play-continue "hideout-start" + :play-node (game-task-node fortress-save-friends-resolution) + :play-continue "forresca-start" + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "sewer-escort" + :text-name (game-text-id text-x1e6) + :pre-play-node (game-task-node sewer-escort-introduction) + :kiosk-play-node (game-task-node sewer-escort-explode-wall1) + :pre-play-continue "hiphog-start" + :play-node (game-task-node sewer-escort-explode-wall1) + :play-continue "sewesc-start" + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "city-dark-gun-training" + :pre-play-node (game-task-node city-dark-gun-training-bronze) + :kiosk-play-node (game-task-node city-dark-gun-training-silver) + :pre-play-continue #f + :play-node (game-task-node city-dark-gun-training-silver) + :play-continue #f + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "stadium-race-class2" + :text-name (game-text-id text-x1e8) + :pre-play-node (game-task-node stadium-race-class2-introduction) + :kiosk-play-node (game-task-node stadium-race-class2-race) + :pre-play-continue "garage-start-class3" + :play-node (game-task-node stadium-race-class2-race) + :play-continue "stadiumc-race-retry-pidax" + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "city-stop-bomb-bots" + :text-name (game-text-id text-x1e9) + :pre-play-node (game-task-node city-stop-bomb-bots-introduction) + :kiosk-play-node (game-task-node city-stop-bomb-bots-destroy) + :pre-play-continue "hideout-start" + :play-node (game-task-node city-stop-bomb-bots-destroy) + :play-continue "ctysluma-alley" + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "city-errol-challenge" + :text-name (game-text-id text-x1ec) + :pre-play-node (game-task-node city-errol-challenge-introduction) + :kiosk-play-node (game-task-node city-errol-challenge-race) + :pre-play-continue "hiphog-start" + :play-node (game-task-node city-errol-challenge-race) + :play-continue "ctyport-errol-race-retry" + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "strip-drop" + :text-name (game-text-id text-x1ed) + :pre-play-node (game-task-node strip-drop-introduction) + :kiosk-play-node (game-task-node strip-drop-resolution) + :pre-play-continue "vinroom-start" + :play-node (game-task-node strip-drop-resolution) + :play-continue "strip-warp" + :kiosk-play-continue "vinroom-start" + ) + (new 'static 'game-task-info + :name "ruins-mech" + :text-name (game-text-id text-x1ee) + :pre-play-node (game-task-node ruins-mech-introduction) + :kiosk-play-node (game-task-node ruins-mech-break-wall-1) + :pre-play-continue #f + :play-node (game-task-node ruins-mech-break-wall-1) + :play-continue "ruins-start" + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "forest-protect" + :text-name (game-text-id text-x1f0) + :pre-play-node (game-task-node forest-protect-introduction) + :kiosk-play-node (game-task-node forest-protect-meeting) + :pre-play-continue "onintent-start" + :play-node (game-task-node forest-protect-meeting) + :play-continue "forest-tree" + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "drill-mech" + :text-name (game-text-id text-x1f1) + :pre-play-node (game-task-node drill-mech-introduction) + :kiosk-play-node (game-task-node drill-mech-started-smashing) + :pre-play-continue "vinroom-start" + :play-node (game-task-node drill-mech-started-smashing) + :play-continue "drill3-warp" + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "city-save-lurkers" + :text-name (game-text-id text-x1d1) + :pre-play-node (game-task-node city-save-lurkers-introduction) + :kiosk-play-node (game-task-node city-save-lurkers-save-lurkers) + :pre-play-continue #f + :play-node (game-task-node city-save-lurkers-save-lurkers) + :play-continue "kiosk-start" + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "stadium-race-class1" + :text-name (game-text-id text-x1f2) + :pre-play-node (game-task-node stadium-race-class1-introduction) + :kiosk-play-node (game-task-node stadium-race-class1-race) + :pre-play-continue "garage-start-class3" + :play-node (game-task-node stadium-race-class1-race) + :play-continue "stadiumd-race-fail" + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "palace-sneak-in" + :text-name (game-text-id text-x1f3) + :pre-play-node (game-task-node palace-sneak-in-introduction) + :kiosk-play-node (game-task-node palace-sneak-in-meeting) + :pre-play-continue #f + :play-node (game-task-node palace-sneak-in-meeting) + :play-continue "ctypal-shaft" + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "castle-break-in" + :text-name (game-text-id text-x1f4) + :pre-play-node (game-task-node castle-break-in-introduction) + :kiosk-play-node (game-task-node castle-break-in-castle-1) + :pre-play-continue #f + :play-node (game-task-node castle-break-in-castle-1) + :play-continue "caspad-face-castle" + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "castle-boss" + :text-name (game-text-id text-x1f5) + :pre-play-node (game-task-node castle-boss-introduction) + :kiosk-play-node (game-task-node castle-boss-resolution) + :pre-play-continue #f + :play-node (game-task-node castle-boss-resolution) + :play-continue "casboss-start" + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "city-whack" + :text-name (game-text-id text-x20e) + :pre-play-node (game-task-node city-whack-introduction) + :kiosk-play-node (game-task-node city-whack-introduction) + :pre-play-continue "hiphog-start" + :play-node (game-task-node city-whack-wait) + :play-continue "hiphog-start" + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "under-mech" + :text-name (game-text-id text-x1f7) + :pre-play-node (game-task-node under-mech-resolution) + :kiosk-play-node (game-task-node under-mech-resolution) + :pre-play-continue "ctyport-under" + :play-node (game-task-node under-mech-resolution) + :play-continue "under-airlock" + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "under-sig" + :text-name (game-text-id text-x1f8) + :pre-play-node (game-task-node under-sig-introduction) + :kiosk-play-node (game-task-node under-sig-centipede1-start) + :pre-play-continue "under-start" + :play-node (game-task-node under-sig-introduction) + :play-continue "under-start" + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "city-defend-stadium" + :text-name (game-text-id text-x1f9) + :pre-play-node (game-task-node city-defend-stadium-introduction) + :kiosk-play-node (game-task-node city-defend-stadium-introduction) + :pre-play-continue "stadium-blimp-intro" + :play-node (game-task-node city-defend-stadium-resolution) + :play-continue "stadium-blimp-intro" + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "consite-find-baron" + :text-name (game-text-id text-x210) + :pre-play-node (game-task-node consite-find-baron-introduction) + :kiosk-play-node (game-task-node consite-find-baron-resolution) + :pre-play-continue #f + :play-node (game-task-node consite-find-baron-resolution) + :play-continue "consite-start" + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "nest-get-to-gun" + :text-name (game-text-id text-x1fe) + :pre-play-node (game-task-node nest-get-to-gun-introduction) + :kiosk-play-node (game-task-node nest-get-to-gun-resolution) + :pre-play-continue #f + :play-node (game-task-node nest-get-to-gun-resolution) + :play-continue "nest-start" + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "nest-enter" + :text-name (game-text-id text-x211) + :pre-play-node (game-task-node nest-enter-introduction) + :kiosk-play-node (game-task-node nest-enter-resolution) + :pre-play-continue #f + :play-node (game-task-node nest-enter-resolution) + :play-continue "nest-barrier" + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "nest-boss" + :text-name (game-text-id text-x1ff) + :pre-play-node (game-task-node nest-boss-introduction) + :kiosk-play-node (game-task-node nest-boss-resolution) + :pre-play-continue "nestb-start" + :play-node (game-task-node nest-boss-resolution) + :play-continue "nestb-boss-pit" + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "city-win" + :pre-play-node (game-task-node city-win-pre-intro) + :kiosk-play-node (game-task-node city-win-introduction) + :pre-play-continue #f + :play-node (game-task-node city-win-introduction) + :play-continue #f + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "city-oracle" + :pre-play-node (game-task-node city-oracle-introduction) + :kiosk-play-node (game-task-node city-oracle-level0) + :pre-play-continue #f + :play-node (game-task-node city-oracle-level0) + :play-continue #f + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "city-burning-bush-ring-1" + :pre-play-node (game-task-node city-burning-bush-ring-1-introduction) + :kiosk-play-node (game-task-node city-burning-bush-ring-1-resolution) + :pre-play-continue #f + :play-node (game-task-node city-burning-bush-ring-1-resolution) + :play-continue "ctyslumb-burning-bush" + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "city-burning-bush-get-to-1" + :pre-play-node (game-task-node city-burning-bush-get-to-1-introduction) + :kiosk-play-node (game-task-node city-burning-bush-get-to-1-resolution) + :pre-play-continue "ctysluma-burning-bush" + :play-node (game-task-node city-burning-bush-get-to-1-resolution) + :play-continue "ctysluma-burning-bush" + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "city-burning-bush-get-to-2" + :pre-play-node (game-task-node city-burning-bush-get-to-2-introduction) + :kiosk-play-node (game-task-node city-burning-bush-get-to-2-resolution) + :pre-play-continue "ctyindb-burning-bush" + :play-node (game-task-node city-burning-bush-get-to-2-resolution) + :play-continue "ctyindb-burning-bush" + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "city-burning-bush-get-to-3" + :pre-play-node (game-task-node city-burning-bush-get-to-3-introduction) + :kiosk-play-node (game-task-node city-burning-bush-get-to-3-resolution) + :pre-play-continue "ctyport-burning-bush-3" + :play-node (game-task-node city-burning-bush-get-to-3-resolution) + :play-continue "ctyport-burning-bush-3" + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "city-burning-bush-get-to-4" + :pre-play-node (game-task-node city-burning-bush-get-to-4-introduction) + :kiosk-play-node (game-task-node city-burning-bush-get-to-4-resolution) + :pre-play-continue "ctyslumc-burning-bush" + :play-node (game-task-node city-burning-bush-get-to-4-resolution) + :play-continue "ctyslumc-burning-bush" + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "city-burning-bush-collection-1" + :pre-play-node (game-task-node city-burning-bush-collection-1-introduction) + :kiosk-play-node (game-task-node city-burning-bush-collection-1-resolution) + :pre-play-continue #f + :play-node (game-task-node city-burning-bush-collection-1-resolution) + :play-continue "ctygenb-burning-bush" + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "city-burning-bush-racepoint-1" + :pre-play-node (game-task-node city-burning-bush-racepoint-1-introduction) + :kiosk-play-node (game-task-node city-burning-bush-racepoint-1-resolution) + :pre-play-continue #f + :play-node (game-task-node city-burning-bush-racepoint-1-resolution) + :play-continue "ctymarka-burning-bush" + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "city-burning-bush-ring-2" + :pre-play-node (game-task-node city-burning-bush-ring-2-introduction) + :kiosk-play-node (game-task-node city-burning-bush-ring-2-resolution) + :pre-play-continue #f + :play-node (game-task-node city-burning-bush-ring-2-resolution) + :play-continue "ctyport-burning-bush" + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "city-burning-bush-get-to-5" + :pre-play-node (game-task-node city-burning-bush-get-to-5-introduction) + :kiosk-play-node (game-task-node city-burning-bush-get-to-5-resolution) + :pre-play-continue "ctyfarmb-burning-bush" + :play-node (game-task-node city-burning-bush-get-to-5-resolution) + :play-continue "ctyfarmb-burning-bush" + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "city-burning-bush-get-to-6" + :pre-play-node (game-task-node city-burning-bush-get-to-6-introduction) + :kiosk-play-node (game-task-node city-burning-bush-get-to-6-resolution) + :pre-play-continue "ctymarkb-burning-bush-2" + :play-node (game-task-node city-burning-bush-get-to-6-resolution) + :play-continue "ctymarkb-burning-bush-2" + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "city-burning-bush-shuttle-1" + :pre-play-node (game-task-node city-burning-bush-shuttle-1-introduction) + :kiosk-play-node (game-task-node city-burning-bush-shuttle-1-resolution) + :pre-play-continue #f + :play-node (game-task-node city-burning-bush-shuttle-1-resolution) + :play-continue "ctymarka-burning-bush" + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "city-burning-bush-get-to-7" + :pre-play-node (game-task-node city-burning-bush-get-to-7-introduction) + :kiosk-play-node (game-task-node city-burning-bush-get-to-7-resolution) + :pre-play-continue "ctymarkb-burning-bush" + :play-node (game-task-node city-burning-bush-get-to-7-resolution) + :play-continue "ctymarkb-burning-bush" + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "city-burning-bush-get-to-8" + :pre-play-node (game-task-node city-burning-bush-get-to-8-introduction) + :kiosk-play-node (game-task-node city-burning-bush-get-to-8-resolution) + :pre-play-continue "ctyfarma-burning-bush" + :play-node (game-task-node city-burning-bush-get-to-8-resolution) + :play-continue "ctyfarma-burning-bush" + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "city-burning-bush-get-to-9" + :pre-play-node (game-task-node city-burning-bush-get-to-9-introduction) + :kiosk-play-node (game-task-node city-burning-bush-get-to-9-resolution) + :pre-play-continue "ctygenb-burning-bush" + :play-node (game-task-node city-burning-bush-get-to-9-resolution) + :play-continue "ctygenb-burning-bush" + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "city-burning-bush-collection-2" + :pre-play-node (game-task-node city-burning-bush-collection-2-introduction) + :kiosk-play-node (game-task-node city-burning-bush-collection-2-resolution) + :pre-play-continue #f + :play-node (game-task-node city-burning-bush-collection-2-resolution) + :play-continue "ctygenc-burning-bush" + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "city-burning-bush-get-to-10" + :pre-play-node (game-task-node city-burning-bush-get-to-10-introduction) + :kiosk-play-node (game-task-node city-burning-bush-get-to-10-resolution) + :pre-play-continue "ctyinda-burning-bush" + :play-node (game-task-node city-burning-bush-get-to-10-resolution) + :play-continue "ctyinda-burning-bush" + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "city-burning-bush-get-to-11" + :pre-play-node (game-task-node city-burning-bush-get-to-11-introduction) + :kiosk-play-node (game-task-node city-burning-bush-get-to-11-resolution) + :pre-play-continue "ctygena-burning-bush" + :play-node (game-task-node city-burning-bush-get-to-11-resolution) + :play-continue "ctygena-burning-bush" + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "city-burning-bush-ring-3" + :pre-play-node (game-task-node city-burning-bush-ring-3-introduction) + :kiosk-play-node (game-task-node city-burning-bush-ring-3-resolution) + :pre-play-continue #f + :play-node (game-task-node city-burning-bush-ring-3-resolution) + :play-continue "ctyslumb-burning-bush" + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "city-burning-bush-get-to-12" + :pre-play-node (game-task-node city-burning-bush-get-to-12-introduction) + :kiosk-play-node (game-task-node city-burning-bush-get-to-12-resolution) + :pre-play-continue #f + :play-node (game-task-node city-burning-bush-get-to-12-resolution) + :play-continue "ctymarka-burning-bush" + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "city-burning-bush-bombbot-1" + :pre-play-node (game-task-node city-burning-bush-bombbot-1-introduction) + :kiosk-play-node (game-task-node city-burning-bush-bombbot-1-resolution) + :pre-play-continue #f + :play-node (game-task-node city-burning-bush-bombbot-1-resolution) + :play-continue "ctymarka-burning-bush" + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "city-burning-bush-get-to-13" + :pre-play-node (game-task-node city-burning-bush-get-to-13-introduction) + :kiosk-play-node (game-task-node city-burning-bush-get-to-13-resolution) + :pre-play-continue "ctyslumb-burning-bush-2" + :play-node (game-task-node city-burning-bush-get-to-13-resolution) + :play-continue "ctyslumb-burning-bush-2" + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "city-burning-bush-get-to-14" + :pre-play-node (game-task-node city-burning-bush-get-to-14-introduction) + :kiosk-play-node (game-task-node city-burning-bush-get-to-14-resolution) + :pre-play-continue "ctygena-burning-bush-2" + :play-node (game-task-node city-burning-bush-get-to-14-resolution) + :play-continue "ctygena-burning-bush-2" + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "city-burning-bush-get-to-15" + :pre-play-node (game-task-node city-burning-bush-get-to-15-introduction) + :kiosk-play-node (game-task-node city-burning-bush-get-to-15-resolution) + :pre-play-continue "ctypal-burning-bush" + :play-node (game-task-node city-burning-bush-get-to-15-resolution) + :play-continue "ctypal-burning-bush" + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "city-burning-bush-collection-3" + :pre-play-node (game-task-node city-burning-bush-collection-3-introduction) + :kiosk-play-node (game-task-node city-burning-bush-collection-3-resolution) + :pre-play-continue #f + :play-node (game-task-node city-burning-bush-collection-3-resolution) + :play-continue "ctyfarma-burning-bush" + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "city-burning-bush-race-errol" + :pre-play-node (game-task-node city-burning-bush-race-errol-introduction) + :kiosk-play-node (game-task-node city-burning-bush-race-errol-resolution) + :pre-play-continue "ctyport-burning-bush" + :play-node (game-task-node city-burning-bush-race-errol-resolution) + :play-continue "ctyport-errol-race-retry" + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "city-burning-bush-race-port" + :pre-play-node (game-task-node city-burning-bush-race-port-introduction) + :kiosk-play-node (game-task-node city-burning-bush-race-port-resolution) + :pre-play-continue "ctyport-burning-bush-3" + :play-node (game-task-node city-burning-bush-race-port-resolution) + :play-continue "ctyport-race-retry" + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "stadium-burning-bush-race-board" + :pre-play-node (game-task-node stadium-burning-bush-race-board-introduction) + :kiosk-play-node (game-task-node stadium-burning-bush-race-board-resolution) + :pre-play-continue "stadium-burning-bush" + :play-node (game-task-node stadium-burning-bush-race-board-resolution) + :play-continue "skatea-training" + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "stadium-burning-bush-race-class3" + :pre-play-node (game-task-node stadium-burning-bush-race-class3-introduction) + :kiosk-play-node (game-task-node stadium-burning-bush-race-class3-resolution) + :pre-play-continue "stadium-burning-bush" + :play-node (game-task-node stadium-burning-bush-race-class3-resolution) + :play-continue "stadiumb-race-fail" + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "stadium-burning-bush-race-class2" + :pre-play-node (game-task-node stadium-burning-bush-race-class2-introduction) + :kiosk-play-node (game-task-node stadium-burning-bush-race-class2-resolution) + :pre-play-continue "stadium-burning-bush" + :play-node (game-task-node stadium-burning-bush-race-class2-resolution) + :play-continue "stadiumc-race-fail" + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "stadium-burning-bush-race-class1" + :pre-play-node (game-task-node stadium-burning-bush-race-class1-introduction) + :kiosk-play-node (game-task-node stadium-burning-bush-race-class1-resolution) + :pre-play-continue "stadium-burning-bush" + :play-node (game-task-node stadium-burning-bush-race-class1-resolution) + :play-continue "stadiumd-race-fail" + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "stadium-burning-bush-race-class3-r" + :pre-play-node (game-task-node stadium-burning-bush-race-class3-r-introduction) + :kiosk-play-node (game-task-node stadium-burning-bush-race-class3-r-resolution) + :pre-play-continue "stadium-burning-bush" + :play-node (game-task-node stadium-burning-bush-race-class3-r-resolution) + :play-continue "stadiumb-race-fail" + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "stadium-burning-bush-race-class2-r" + :pre-play-node (game-task-node stadium-burning-bush-race-class2-r-introduction) + :kiosk-play-node (game-task-node stadium-burning-bush-race-class2-r-resolution) + :pre-play-continue "stadium-burning-bush" + :play-node (game-task-node stadium-burning-bush-race-class2-r-resolution) + :play-continue "stadiumc-race-fail" + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "stadium-burning-bush-race-class1-r" + :pre-play-node (game-task-node stadium-burning-bush-race-class1-r-introduction) + :kiosk-play-node (game-task-node stadium-burning-bush-race-class1-r-resolution) + :pre-play-continue "stadium-burning-bush" + :play-node (game-task-node stadium-burning-bush-race-class1-r-resolution) + :play-continue "stadiumd-race-fail" + :kiosk-play-continue #f + ) + ) + ) + (set! (-> gp-0 sub-task-list) + (new 'static 'boxed-array :type game-task-node-info + (new 'static 'game-task-node-info + :level 'none + :name "none" + :flags (game-task-node-flag closed) + :on-open #f + :info #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task fortress-escape) + :name "fortress-escape-start" + :when-open #f + :flags (game-task-node-flag closed auto-close save-on-life abs-task-mask utility-node) + :task-mask (task-mask task0 task1 task2 task3) + :on-open #f + :info #f + :borrow '((hiphog 0 #f #f) + (hideout 0 #f #f) + (ctywide 0 #f #f) + (ctywide 1 lwidea special) + (prison 0 #f #f) + (throne 0 #f #f) + (garage 0 #f #f) + (stadium 0 #f #f) + (introcst 0 lintcstb #f) + (onintent 0 ltentout display) + ) + :open? #f + :on-close #f + :add (game-task-node-command add-sidekick) + ) + (new 'static 'game-task-node-info + :level 'fortress + :task (game-task fortress-escape) + :name "fortress-escape-introduction" + :when-open #f + :flags (game-task-node-flag save-on-life task-manager) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node fortress-escape-start) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info (new 'static 'task-manager-info + :level 'forexita + :intro-scene #f + :resolution-scene #f + :resolution-scene-continue #f + :retry-continue #f + :fail-continue #f + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node fortress-escape-resolution) + :on-complete #f + :on-fail #f + ) + :borrow '((prison 0 ldjakbrn #f)) + :open? #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'fortress + :task (game-task fortress-escape) + :name "fortress-escape-resolution" + :when-open #f + :flags (game-task-node-flag close-task abs-task-mask) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node fortress-escape-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :task-mask (task-mask task1) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + :description (game-text-id text-x1b6) + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-help-kid) + :name "city-help-kid-introduction" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor kor-alley) + :action (game-task-action say) + :tex (game-task-icon gaticon-02) + :scene "city-help-kid-intro" + ) + ) + :flags (game-task-node-flag task-manager no-audio) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node fortress-escape-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info (new 'static 'task-manager-info + :level 'ctywide + :intro-scene #f + :resolution-scene #f + :resolution-scene-continue #f + :retry-continue #f + :fail-continue #f + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node city-help-kid-resolution) + :on-complete #f + :on-fail #f + ) + :borrow '() + :open? #f + :on-close #f + :description (game-text-id text-x200) + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-help-kid) + :name "city-help-kid-battle" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor kor-alley) + :action (game-task-action idle) + :tex (game-task-icon gaticon-01) + :scene #f + ) + ) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-help-kid-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + :description (game-text-id text-x1b7) + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-help-kid) + :name "city-help-kid-resolution" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor kor-alley) + :action (game-task-action say) + :tex (game-task-icon gaticon-02) + :scene "city-help-kid-resolution" + ) + ) + :flags (game-task-node-flag close-task) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-help-kid-battle) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + :add (game-task-node-command add-darkjak) + :description (game-text-id text-x1b7) + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-vehicle-training) + :name "city-vehicle-training-map" + :when-open #f + :flags (game-task-node-flag save-on-life city-wait task-manager) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-help-kid-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info (new 'static 'task-manager-info + :level 'ctywide + :intro-scene #f + :resolution-scene #f + :resolution-scene-continue #f + :retry-continue #f + :fail-continue #f + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node city-vehicle-training-map) + :intro-delay #xbb8 + :on-complete #f + :on-fail #f + ) + :borrow '() + :open? #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-vehicle-training) + :name "city-vehicle-training-hover-zone-1" + :when-open #f + :flags (game-task-node-flag save-on-life city-wait task-manager) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-vehicle-training-map) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info (new 'static 'task-manager-info + :level 'ctywide + :intro-scene #f + :resolution-scene #f + :resolution-scene-continue #f + :retry-continue #f + :fail-continue #f + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node city-vehicle-training-hover-zone-1) + :intro-delay #x12c + :on-complete #f + :on-fail #f + ) + :borrow '() + :open? #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-vehicle-training) + :name "city-vehicle-training-hover-zone-2" + :when-open #f + :flags (game-task-node-flag save-on-life city-wait task-manager) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-vehicle-training-hover-zone-1) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info (new 'static 'task-manager-info + :level 'ctywide + :intro-scene #f + :resolution-scene #f + :resolution-scene-continue #f + :retry-continue #f + :fail-continue #f + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node city-vehicle-training-hover-zone-2) + :intro-delay #x12c + :on-complete #f + :on-fail #f + ) + :borrow '() + :open? #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-vehicle-training) + :name "city-vehicle-training-resolution" + :when-open #f + :flags (game-task-node-flag close-task) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-vehicle-training-hover-zone-2) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'ruins + :task (game-task ruins-tower) + :name "ruins-tower-introduction" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor torn-alley) + :action (game-task-action say) + :tex (game-task-icon gaticon-02) + :scene "ruins-tower-intro" + :distance (meters 20) + ) + (new 'static 'game-task-event + :actor (game-task-actor tess-alley) + :action (game-task-action idle) + :tex (game-task-icon gaticon-01) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-05) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-life) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-help-kid-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + :description (game-text-id text-x201) + ) + (new 'static 'game-task-node-info + :level 'ruins + :task (game-task ruins-tower) + :name "ruins-tower-resolution" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor torn-alley) + :action (game-task-action talk) + :tex (game-task-icon gaticon-03) + :flags (game-task-flags gatflag-00) + :scene "ruins-tower-intro" + ) + (new 'static 'game-task-event + :actor (game-task-actor tess-alley) + :action (game-task-action idle) + :tex (game-task-icon gaticon-01) + :flags (game-task-flags gatflag-00) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-02) + :scene #f + ) + ) + :flags (game-task-node-flag close-task) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node ruins-tower-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + :description (game-text-id text-x1b8) + ) + (new 'static 'game-task-node-info + :level 'ruins + :task (game-task ruins-tower) + :name "ruins-tower-exit" + :when-open #f + :flags (game-task-node-flag save-on-life task-manager) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node ruins-tower-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info (new 'static 'task-manager-info + :level 'ruins + :intro-scene #f + :resolution-scene #f + :resolution-scene-continue #f + :retry-continue #f + :fail-continue #f + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node ruins-tower-exit) + :on-complete #f + :on-fail #f + :end-sphere (new 'static 'sphere :x 3419490.2 :y -9.8304 :z -1391682.0 :r 57344.0) + ) + :borrow '() + :open? #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'atoll + :task (game-task atoll-water) + :name "atoll-water-introduction" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor torn-hideout) + :action (game-task-action say) + :tex (game-task-icon gaticon-02) + :scene "atoll-1-int" + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-05) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-life) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node ruins-tower-exit) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '((hideout 0 ltrnysam special)) + :open? #f + :on-close #f + :description (game-text-id text-x201) + ) + (new 'static 'game-task-node-info + :level 'atoll + :task (game-task atoll-water) + :name "atoll-water-find" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor torn-hideout) + :action (game-task-action talk) + :tex (game-task-icon gaticon-03) + :scene "atoll-1-int" + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-07) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-63) + :scene #f + ) + ) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node atoll-water-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '((hideout 0 ltrnysam special)) + :open? #f + :on-close #f + :description (game-text-id text-x1b9) + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task atoll-water) + :name "atoll-water-valve" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor torn-hideout) + :action (game-task-action talk) + :tex (game-task-icon gaticon-03) + :scene "atoll-1-int" + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-07) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-63) + :scene #f + ) + ) + :flags (game-task-node-flag clear-task-mask utility-node) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node atoll-water-find) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :task-mask (task-mask task0) + :on-open #f + :info #f + :borrow '((hideout 0 ltrnysam special)) + :open? #f + :on-close #f + :description (game-text-id text-x1b9) + ) + (new 'static 'game-task-node-info + :level 'atoll + :task (game-task atoll-water) + :name "atoll-water-resolution" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor torn-hideout) + :action (game-task-action talk) + :tex (game-task-icon gaticon-03) + :scene "atoll-1-int" + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-07) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-63) + :scene #f + ) + ) + :flags (game-task-node-flag close-task) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node atoll-water-valve) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '((hideout 0 ltrnysam special)) + :open? #f + :on-close #f + :description (game-text-id text-x1b9) + ) + (new 'static 'game-task-node-info + :level 'atoll + :task (game-task atoll-water) + :name "atoll-water-exit" + :when-open #f + :flags (game-task-node-flag save-on-life task-manager) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node atoll-water-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info (new 'static 'task-manager-info + :level 'atoll + :intro-scene #f + :resolution-scene #f + :resolution-scene-continue #f + :retry-continue #f + :fail-continue #f + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node atoll-water-exit) + :on-complete #f + :on-fail #f + :end-sphere (new 'static 'sphere :x 2286840.2 :y 2954.0352 :z -3471073.8 :r 81920.0) + ) + :borrow '() + :open? #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'fortress + :task (game-task fortress-dump) + :name "fortress-dump-introduction" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor torn-hideout) + :action (game-task-action say) + :tex (game-task-icon gaticon-02) + :scene "fortress-2-intro" + :distance (meters 45) + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-05) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-life) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node atoll-water-exit) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '((hideout 0 ltrnysam special)) + :open? #f + :on-close #f + :description (game-text-id text-x201) + ) + (new 'static 'game-task-node-info + :level 'fortress + :task (game-task fortress-dump) + :name "fortress-dump-deal" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor torn-hideout) + :action (game-task-action talk) + :tex (game-task-icon gaticon-03) + :scene "fortress-2-intro" + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-09) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-life reset-on-try) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node fortress-dump-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '((hideout 0 ltrnysam special)) + :open? #f + :on-close #f + :add (game-task-node-command add-pass-red) + :description (game-text-id text-x1ba) + ) + (new 'static 'game-task-node-info + :level 'fortress + :task (game-task fortress-dump) + :name "fortress-dump-missile" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor torn-hideout) + :action (game-task-action talk) + :tex (game-task-icon gaticon-03) + :scene "fortress-2-intro" + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-09) + :scene #f + ) + ) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node fortress-dump-deal) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '((hideout 0 ltrnysam special)) + :open? #f + :on-close #f + :description (game-text-id text-x1ba) + ) + (new 'static 'game-task-node-info + :level 'fortress + :task (game-task fortress-dump) + :name "fortress-dump-resolution" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-09) + :scene #f + ) + ) + :flags (game-task-node-flag close-task) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node fortress-dump-missile) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + :description (game-text-id text-x1ba) + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-krew-delivery) + :name "city-krew-delivery-introduction" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor torn-hideout) + :action (game-task-action say) + :tex (game-task-icon gaticon-02) + :scene "city-krew-delivery-intro" + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-05) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-try) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node fortress-dump-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '((ctywide 0 lpackage display) (hideout 0 ltrnysam special)) + :open? #f + :on-close '(task-close! "city-vehicle-training-resolution") + :description (game-text-id text-x201) + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-krew-delivery) + :name "city-krew-delivery-delivery" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor torn-hideout) + :action (game-task-action talk) + :tex (game-task-icon gaticon-03) + :scene "city-krew-delivery-intro" + ) + ) + :flags (game-task-node-flag task-retry task-manager) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-krew-delivery-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info (new 'static 'task-manager-info + :mask (task-manager-mask resolution-scene) + :level 'lpackage + :intro-scene #f + :resolution-scene "krew-delivery-res" + :resolution-scene-continue "hiphog-start" + :retry-continue "ctysluma-alley-no-hideout" + :fail-continue #f + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node city-krew-delivery-resolution) + :on-complete #f + :on-fail #f + ) + :borrow '((ctywide 0 lpackage display) (hideout 0 ltrnysam special) (hiphog 0 lguard #f)) + :open? #f + :on-close #f + :description (game-text-id text-x1bb) + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-krew-delivery) + :name "city-krew-delivery-resolution" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor krew-hiphog) + :action (game-task-action say) + :tex (game-task-icon gaticon-02) + :scene "krew-delivery-res" + ) + ) + :flags (game-task-node-flag close-task) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-krew-delivery-delivery) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '((ctywide 0 lpackage display) (hiphog 0 lguard special)) + :open? #f + :on-close #f + :add (game-task-node-command add-gun-red) + :description (game-text-id text-x1bb) + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-red-gun-training) + :name "city-red-gun-training-introduction" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor krew-hiphog) + :action (game-task-action talk) + :tex (game-task-icon gaticon-03) + :scene "krew-delivery-res" + ) + (new 'static 'game-task-event + :actor (game-task-actor sig-hiphog) + :action (game-task-action idle) + :tex (game-task-icon gaticon-01) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-10) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-life) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-krew-delivery-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '((hiphog 0 lguard special)) + :open? #f + :on-close #f + :description (game-text-id text-x1bc) + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-red-gun-training) + :name "city-red-gun-training-try-once" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor krew-hiphog) + :action (game-task-action idle) + :tex (game-task-icon gaticon-01) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor sig-hiphog) + :action (game-task-action idle) + :tex (game-task-icon gaticon-01) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-10) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-life) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-red-gun-training-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '((hiphog 0 lguard special)) + :open? #f + :on-close #f + :description (game-text-id text-x1bc) + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-red-gun-training) + :name "city-red-gun-training-resolution" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-10) + :scene #f + ) + ) + :flags (game-task-node-flag close-task) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-red-gun-training-try-once) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + :description (game-text-id text-x1bc) + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-red-gun-training) + :name "city-red-gun-training-bronze" + :when-open #f + :flags (game-task-node-flag save-on-life) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-red-gun-training-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-red-gun-training) + :name "city-red-gun-training-silver" + :when-open #f + :flags (game-task-node-flag save-on-life) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-red-gun-training-bronze) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-red-gun-training) + :name "city-red-gun-training-gold" + :when-open #f + :flags (game-task-node-flag save-on-life) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-red-gun-training-silver) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'atoll + :task (game-task atoll-sig) + :name "atoll-sig-introduction" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor krew-hiphog) + :action (game-task-action say) + :tex (game-task-icon gaticon-02) + :scene "atoll-2-intro" + :distance (meters 34) + ) + (new 'static 'game-task-event + :actor (game-task-actor sig-hiphog) + :action (game-task-action idle) + :tex (game-task-icon gaticon-01) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-08) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-life abs-task-mask) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-red-gun-training-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :task-mask (task-mask task1) + :on-open #f + :info #f + :borrow '((hiphog 0 lguard special)) + :open? #f + :on-close #f + :description (game-text-id text-x202) + ) + (new 'static 'game-task-node-info + :level 'atoll + :task (game-task atoll-sig) + :name "atoll-sig-sig-introduction" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor krew-hiphog) + :action (game-task-action talk) + :tex (game-task-icon gaticon-03) + :scene "atoll-2-intro" + ) + (new 'static 'game-task-event + :actor (game-task-actor sig-atoll) + :action (game-task-action say) + :tex (game-task-icon gaticon-02) + :scene "atoll-sig-intro" + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-07) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-life) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node atoll-sig-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '((hiphog 0 lguard special)) + :open? #f + :on-close #f + :description (game-text-id text-x1bd) + ) + (new 'static 'game-task-node-info + :level 'atoll + :task (game-task atoll-sig) + :name "atoll-sig-tank" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor krew-hiphog) + :action (game-task-action idle) + :tex (game-task-icon gaticon-01) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor sig-atoll) + :action (game-task-action idle) + :tex (game-task-icon gaticon-01) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-07) + :scene #f + ) + ) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node atoll-sig-sig-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '((hiphog 0 lguard special)) + :open? #f + :on-close #f + :description (game-text-id text-x1bd) + ) + (new 'static 'game-task-node-info + :level 'atoll + :task (game-task atoll-sig) + :name "atoll-sig-sniper-a" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor krew-hiphog) + :action (game-task-action idle) + :tex (game-task-icon gaticon-01) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor sig-atoll) + :action (game-task-action idle) + :tex (game-task-icon gaticon-01) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-07) + :scene #f + ) + ) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node atoll-sig-tank) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '((hiphog 0 lguard special)) + :open? #f + :on-close #f + :description (game-text-id text-x1bd) + ) + (new 'static 'game-task-node-info + :level 'atoll + :task (game-task atoll-sig) + :name "atoll-sig-sniper-b" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor krew-hiphog) + :action (game-task-action idle) + :tex (game-task-icon gaticon-01) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor sig-atoll) + :action (game-task-action idle) + :tex (game-task-icon gaticon-01) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-07) + :scene #f + ) + ) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node atoll-sig-sniper-a) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '((hiphog 0 lguard special)) + :open? #f + :on-close #f + :description (game-text-id text-x1bd) + ) + (new 'static 'game-task-node-info + :level 'atoll + :task (game-task atoll-sig) + :name "atoll-sig-sniper-c" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor krew-hiphog) + :action (game-task-action idle) + :tex (game-task-icon gaticon-01) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor sig-atoll) + :action (game-task-action idle) + :tex (game-task-icon gaticon-01) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-07) + :scene #f + ) + ) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node atoll-sig-sniper-b) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '((hiphog 0 lguard special)) + :open? #f + :on-close #f + :description (game-text-id text-x1bd) + ) + (new 'static 'game-task-node-info + :level 'atoll + :task (game-task atoll-sig) + :name "atoll-sig-sniper-d" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor krew-hiphog) + :action (game-task-action idle) + :tex (game-task-icon gaticon-01) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor sig-atoll) + :action (game-task-action idle) + :tex (game-task-icon gaticon-01) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-07) + :scene #f + ) + ) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node atoll-sig-sniper-c) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '((hiphog 0 lguard special)) + :open? #f + :on-close #f + :description (game-text-id text-x1bd) + ) + (new 'static 'game-task-node-info + :level 'atoll + :task (game-task atoll-sig) + :name "atoll-sig-resolution" + :when-open #f + :flags (game-task-node-flag close-task) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node atoll-sig-sniper-d) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + :description (game-text-id text-x1bd) + ) + (new 'static 'game-task-node-info + :level 'sewer + :task (game-task sewer-enemy) + :name "sewer-enemy-introduction" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor krew-hiphog) + :action (game-task-action say) + :tex (game-task-icon gaticon-02) + :scene "sewer-1-intro" + :distance (meters 34) + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-08) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-life) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node atoll-sig-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '((hiphog 0 lguard special)) + :open? #f + :on-close #f + :description (game-text-id text-x202) + ) + (new 'static 'game-task-node-info + :level 'sewer + :task (game-task sewer-enemy) + :name "sewer-enemy-blow-up-turrets" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor krew-hiphog) + :action (game-task-action talk) + :tex (game-task-icon gaticon-03) + :scene "sewer-1-intro" + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-06) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-life task-manager) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node sewer-enemy-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info (new 'static 'task-manager-info + :level 'sewerb + :intro-scene #f + :resolution-scene #f + :resolution-scene-continue #f + :retry-continue #f + :fail-continue #f + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node sewer-enemy-blow-up-turrets) + :on-complete '(talker-spawn "krew010") + :on-fail #f + ) + :borrow '((hiphog 0 lguard special)) + :open? #f + :on-close #f + :description (game-text-id text-x1be) + ) + (new 'static 'game-task-node-info + :level 'sewer + :task (game-task sewer-enemy) + :name "sewer-enemy-talk-to-krew" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor krew-hiphog) + :action (game-task-action say) + :tex (game-task-icon gaticon-02) + :scene "sewer-1-res" + :distance (meters 40) + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-08) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-life) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node sewer-enemy-blow-up-turrets) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '((hiphog 0 lguard special)) + :open? #f + :on-close #f + :description (game-text-id text-x202) + ) + (new 'static 'game-task-node-info + :level 'sewer + :task (game-task sewer-enemy) + :name "sewer-enemy-resolution" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-11) + :scene #f + ) + ) + :flags (game-task-node-flag close-task abs-task-mask task-manager) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node sewer-enemy-talk-to-krew) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :task-mask (task-mask task1) + :on-open #f + :info (new 'static 'task-manager-info + :mask (task-manager-mask resolution-scene) + :level 'gungame + :intro-scene #f + :resolution-scene "city-get-yellow-gun" + :resolution-scene-continue #f + :retry-continue #f + :fail-continue #f + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node sewer-enemy-resolution) + :on-complete #f + :on-fail #f + ) + :borrow '() + :open? #f + :on-close #f + :add (game-task-node-command add-gun-yellow) + :description (game-text-id text-x1bf) + ) + (new 'static 'game-task-node-info + :level 'strip + :task (game-task strip-rescue) + :name "strip-rescue-introduction" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor torn-hideout) + :action (game-task-action say) + :tex (game-task-icon gaticon-02) + :scene "vin-rescue-intro" + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-05) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-life) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node sewer-enemy-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '((hideout 0 ltrnysam special)) + :open? #f + :on-close #f + :description (game-text-id text-x201) + ) + (new 'static 'game-task-node-info + :level 'strip + :task (game-task strip-rescue) + :name "strip-rescue-battle" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor torn-hideout) + :action (game-task-action talk) + :tex (game-task-icon gaticon-03) + :scene "vin-rescue-intro" + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-03) + :scene #f + ) + ) + :flags (game-task-node-flag task-manager) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node strip-rescue-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info (new 'static 'task-manager-info + :level 'strip + :intro-scene #f + :resolution-scene #f + :resolution-scene-continue #f + :retry-continue #f + :fail-continue #f + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node strip-rescue-resolution) + :on-complete #f + :on-fail #f + :end-sphere (new 'static 'sphere :x 9618717.0 :y 368630.6 :z -177470.27 :r 81920.0) + ) + :borrow '((hideout 0 ltrnysam special)) + :open? #f + :on-close #f + :description (game-text-id text-x1c0) + ) + (new 'static 'game-task-node-info + :level 'strip + :task (game-task strip-rescue) + :name "strip-rescue-resolution" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor torn-hideout) + :action (game-task-action talk) + :tex (game-task-icon gaticon-03) + :scene "vin-rescue-intro" + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-03) + :scene #f + ) + ) + :flags (game-task-node-flag close-task abs-task-mask) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node strip-rescue-battle) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :task-mask (task-mask task1) + :on-open #f + :info #f + :borrow '((hideout 0 ltrnysam special)) + :open? #f + :on-close #f + :description (game-text-id text-x1c0) + ) + (new 'static 'game-task-node-info + :level 'atoll + :task (game-task atoll-battle) + :name "atoll-battle-introduction" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor torn-hideout) + :action (game-task-action say) + :tex (game-task-icon gaticon-02) + :scene "atoll-3-intro" + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-05) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-life abs-task-mask) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node strip-rescue-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :task-mask (task-mask task2) + :on-open #f + :info #f + :borrow '((hideout 0 ltrnysam special)) + :open? #f + :on-close #f + :description (game-text-id text-x201) + ) + (new 'static 'game-task-node-info + :level 'atoll + :task (game-task atoll-battle) + :name "atoll-battle-rescue" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor torn-hideout) + :action (game-task-action talk) + :tex (game-task-icon gaticon-03) + :scene "atoll-3-intro" + ) + (new 'static 'game-task-event + :actor (game-task-actor ashelin-atoll) + :action (game-task-action say) + :tex (game-task-icon gaticon-02) + :scene "atoll-save-ashelin-res-a" + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-07) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-64) + :scene #f + ) + ) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node atoll-battle-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '((hideout 0 ltrnysam special)) + :open? #f + :on-close #f + :description (game-text-id text-x1c4) + ) + (new 'static 'game-task-node-info + :level 'atoll + :task (game-task atoll-battle) + :name "atoll-battle-battle" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor torn-hideout) + :action (game-task-action talk) + :tex (game-task-icon gaticon-03) + :scene "atoll-3-intro" + ) + (new 'static 'game-task-event + :actor (game-task-actor ashelin-atoll) + :action (game-task-action idle) + :tex (game-task-icon gaticon-01) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-07) + :scene #f + ) + ) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node atoll-battle-rescue) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '((hideout 0 ltrnysam special)) + :open? #f + :on-close #f + :description (game-text-id text-x1c4) + ) + (new 'static 'game-task-node-info + :level 'atoll + :task (game-task atoll-battle) + :name "atoll-battle-resolution" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor torn-hideout) + :action (game-task-action talk) + :tex (game-task-icon gaticon-03) + :scene "atoll-3-intro" + ) + (new 'static 'game-task-event + :actor (game-task-actor ashelin-atoll) + :action (game-task-action say) + :tex (game-task-icon gaticon-02) + :scene "atoll-save-ashelin-res-b" + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-07) + :scene #f + ) + ) + :flags (game-task-node-flag close-task abs-task-mask) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node atoll-battle-battle) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :task-mask (task-mask done) + :on-open #f + :info #f + :borrow '((hideout 0 ltrnysam special)) + :open? #f + :on-close #f + :add (game-task-node-command add-pass-yellow) + :description (game-text-id text-x1c4) + ) + (new 'static 'game-task-node-info + :level 'mountain + :task (game-task mountain-lens) + :name "mountain-lens-introduction" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor onin-onintent) + :action (game-task-action say) + :tex (game-task-icon gaticon-02) + :scene "mountain-finditems-intro" + ) + (new 'static 'game-task-event + :actor (game-task-actor pecker-onintent) + :action (game-task-action idle) + :tex (game-task-icon gaticon-01) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-01) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-life) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node atoll-battle-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + :description (game-text-id text-x203) + ) + (new 'static 'game-task-node-info + :level 'mountain + :task (game-task mountain-lens) + :name "mountain-lens-started" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor onin-onintent) + :action (game-task-action talk) + :tex (game-task-icon gaticon-03) + :scene "mountain-finditems-intro" + ) + (new 'static 'game-task-event + :actor (game-task-actor pecker-onintent) + :action (game-task-action idle) + :tex (game-task-icon gaticon-01) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-04) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-65) + :scene #f + ) + ) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node mountain-lens-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + :description (game-text-id text-x1c7) + ) + (new 'static 'game-task-node-info + :level 'mountain + :task (game-task mountain-lens) + :name "mountain-lens-intermediate" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor onin-onintent) + :action (game-task-action talk) + :tex (game-task-icon gaticon-03) + :scene "mountain-finditems-intro" + ) + (new 'static 'game-task-event + :actor (game-task-actor pecker-onintent) + :action (game-task-action idle) + :tex (game-task-icon gaticon-01) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-04) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-65) + :scene #f + ) + ) + :flags (game-task-node-flag clear-task-mask) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node mountain-lens-started) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :task-mask (task-mask task3) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + :description (game-text-id text-x1c7) + ) + (new 'static 'game-task-node-info + :level 'mountain + :task (game-task mountain-lens) + :name "mountain-lens-resolution" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor onin-onintent) + :action (game-task-action talk) + :tex (game-task-icon gaticon-03) + :scene "mountain-finditems-intro" + ) + (new 'static 'game-task-event + :actor (game-task-actor pecker-onintent) + :action (game-task-action idle) + :tex (game-task-icon gaticon-01) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-04) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-65) + :scene #f + ) + ) + :flags (game-task-node-flag close-task set-task-mask) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node mountain-lens-intermediate) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :task-mask (task-mask task0) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + :description (game-text-id text-x1c7) + ) + (new 'static 'game-task-node-info + :level 'mountain + :task (game-task mountain-gear) + :name "mountain-gear-find" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor onin-onintent) + :action (game-task-action talk) + :tex (game-task-icon gaticon-03) + :scene "mountain-finditems-intro" + ) + (new 'static 'game-task-event + :actor (game-task-actor pecker-onintent) + :action (game-task-action idle) + :tex (game-task-icon gaticon-01) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-04) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-67) + :scene #f + ) + ) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node mountain-lens-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + :description (game-text-id text-x1c9) + ) + (new 'static 'game-task-node-info + :level 'mountain + :task (game-task mountain-gear) + :name "mountain-gear-resolution" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor onin-onintent) + :action (game-task-action talk) + :tex (game-task-icon gaticon-03) + :scene "mountain-finditems-intro" + ) + (new 'static 'game-task-event + :actor (game-task-actor pecker-onintent) + :action (game-task-action idle) + :tex (game-task-icon gaticon-01) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-04) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-67) + :scene #f + ) + ) + :flags (game-task-node-flag close-task set-task-mask) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node mountain-gear-find) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :task-mask (task-mask task1) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + :description (game-text-id text-x1c9) + ) + (new 'static 'game-task-node-info + :level 'mountain + :task (game-task mountain-shard) + :name "mountain-shard-dice" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor onin-onintent) + :action (game-task-action talk) + :tex (game-task-icon gaticon-03) + :scene "mountain-finditems-intro" + ) + (new 'static 'game-task-event + :actor (game-task-actor pecker-onintent) + :action (game-task-action idle) + :tex (game-task-icon gaticon-01) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-04) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-66) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-life) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node mountain-lens-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + :description (game-text-id text-x1c8) + ) + (new 'static 'game-task-node-info + :level 'mountain + :task (game-task mountain-shard) + :name "mountain-shard-resolution" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor onin-onintent) + :action (game-task-action talk) + :tex (game-task-icon gaticon-03) + :scene "mountain-finditems-intro" + ) + (new 'static 'game-task-event + :actor (game-task-actor pecker-onintent) + :action (game-task-action idle) + :tex (game-task-icon gaticon-01) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-04) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-66) + :scene #f + ) + ) + :flags (game-task-node-flag close-task set-task-mask) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node mountain-lens-introduction) + (game-task-node mountain-shard-dice) + (game-task-node none) + (game-task-node none) + ) + :task-mask (task-mask task2) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + :description (game-text-id text-x1c8) + ) + (new 'static 'game-task-node-info + :level 'mountain + :task (game-task mountain-collection) + :name "mountain-collection-resolution" + :when-open #f + :flags (game-task-node-flag close-task set-task-mask) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node mountain-lens-resolution) + (game-task-node mountain-gear-resolution) + (game-task-node mountain-shard-resolution) + (game-task-node none) + ) + :task-mask (task-mask done) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-keira-delivery) + :name "city-keira-delivery-introduction" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor krew-hiphog) + :action (game-task-action say) + :tex (game-task-icon gaticon-02) + :scene "city-keira-delivery-intro" + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-08) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-try) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node sewer-enemy-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '((hiphog 0 lguard special)) + :open? #f + :on-close #f + :add (game-task-node-command add-pass-green) + :description (game-text-id text-x202) + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-keira-delivery) + :name "city-keira-delivery-delivery" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor krew-hiphog) + :action (game-task-action talk) + :tex (game-task-icon gaticon-03) + :scene "city-keira-delivery-intro" + ) + (new 'static 'game-task-event + :actor (game-task-actor keira-garage) + :action (game-task-action idle) + :tex (game-task-icon gaticon-01) + :scene #f + ) + ) + :flags (game-task-node-flag task-retry city-wait task-manager) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-keira-delivery-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info (new 'static 'task-manager-info + :mask (task-manager-mask resolution-scene) + :level 'ctywide + :intro-scene #f + :resolution-scene "city-keira-hover-challenge-intro" + :resolution-scene-continue "garage-start-skate" + :retry-continue "ctyport-hiphog-no-hiphog" + :fail-continue #f + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node city-keira-delivery-resolution) + :on-complete #f + :on-fail #f + ) + :borrow '((hiphog 0 lguard special)) + :open? #f + :on-close #f + :description (game-text-id text-x1c1) + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-keira-delivery) + :name "city-keira-delivery-resolution" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor krew-hiphog) + :action (game-task-action idle) + :tex (game-task-icon gaticon-01) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor keira-garage) + :action (game-task-action say) + :tex (game-task-icon gaticon-02) + :scene "city-keira-hover-challenge-intro" + :distance (meters 30) + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-12) + :scene #f + ) + ) + :flags (game-task-node-flag close-task) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-keira-delivery-delivery) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '((hiphog 0 lguard special)) + :open? #f + :on-close #f + :description (game-text-id text-x1c1) + ) + (new 'static 'game-task-node-info + :level 'stadium + :task (game-task stadium-board1) + :name "stadium-board1-introduction" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor keira-garage) + :action (game-task-action say) + :tex (game-task-icon gaticon-02) + :scene "city-keira-hover-challenge-intro" + :distance (meters 30) + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-12) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-life) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-keira-delivery-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'stadium + :task (game-task stadium-board1) + :name "stadium-board1-board" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor keira-garage) + :action (game-task-action talk) + :tex (game-task-icon gaticon-03) + :scene "city-keira-hover-challenge-intro" + ) + ) + :flags (game-task-node-flag task-manager) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node stadium-board1-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info (new 'static 'task-manager-info + :level 'ctywide + :intro-scene #f + :resolution-scene #f + :resolution-scene-continue #f + :retry-continue #f + :fail-continue #f + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node stadium-board1-board) + :on-complete #f + :on-fail #f + ) + :borrow '() + :open? #f + :on-close #f + :add (game-task-node-command add-board) + :description (game-text-id text-x1c6) + ) + (new 'static 'game-task-node-info + :level 'stadium + :task (game-task stadium-board1) + :name "stadium-board1-training" + :when-open #f + :flags (game-task-node-flag save-on-life save-on-try) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node stadium-board1-board) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + :description (game-text-id text-x1c6) + ) + (new 'static 'game-task-node-info + :level 'stadium + :task (game-task stadium-board1) + :name "stadium-board1-training-judge" + :when-open #f + :flags (game-task-node-flag save-on-life task-manager) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node stadium-board1-training) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info (new 'static 'task-manager-info + :level 'ctywide + :intro-scene #f + :resolution-scene #f + :resolution-scene-continue #f + :retry-continue "skatea-training-judge" + :fail-continue "skatea-training-judge" + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node stadium-board1-training-judge) + :on-complete #f + :on-fail #f + ) + :borrow '() + :open? #f + :on-close #f + :add (game-task-node-command add-board-training) + :description (game-text-id text-x1c6) + ) + (new 'static 'game-task-node-info + :level 'stadium + :task (game-task stadium-board1) + :name "stadium-board1-done" + :when-open #f + :flags (game-task-node-flag save-on-life) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node stadium-board1-training-judge) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + :add (game-task-node-command sub-board) + :description (game-text-id text-x1c6) + ) + (new 'static 'game-task-node-info + :level 'stadium + :task (game-task stadium-board1) + :name "stadium-board1-resolution" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor keira-garage) + :action (game-task-action say) + :tex (game-task-icon gaticon-02) + :scene "city-keira-hover-challenge-res" + :distance (meters 30) + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-12) + :scene #f + ) + ) + :flags (game-task-node-flag close-task task-manager) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node stadium-board1-done) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info (new 'static 'task-manager-info + :level 'ctywide + :intro-scene #f + :resolution-scene #f + :resolution-scene-continue #f + :retry-continue #f + :fail-continue #f + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node stadium-board1-resolution) + :on-complete #f + :on-fail #f + ) + :borrow '() + :open? #f + :on-close #f + :description (game-text-id text-x244) + ) + (new 'static 'game-task-node-info + :level 'stadium + :task (game-task stadium-board1) + :name "stadium-board1-bronze" + :when-open #f + :flags (game-task-node-flag save-on-life) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node stadium-board1-board) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'stadium + :task (game-task stadium-board1) + :name "stadium-board1-silver" + :when-open #f + :flags (game-task-node-flag save-on-life) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node stadium-board1-bronze) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'stadium + :task (game-task stadium-board1) + :name "stadium-board1-gold" + :when-open #f + :flags (game-task-node-flag save-on-life) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node stadium-board1-silver) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-krew-collection) + :name "city-krew-collection-introduction" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor krew-hiphog) + :action (game-task-action say) + :tex (game-task-icon gaticon-02) + :scene "city-krew-collection-intro" + ) + (new 'static 'game-task-event + :actor (game-task-actor tess-hiphog) + :action (game-task-action idle) + :tex (game-task-icon gaticon-01) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-08) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-try) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-keira-delivery-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '((hiphog 0 ltess special) (ctywide 0 lsack display)) + :open? #f + :on-close #f + :description (game-text-id text-x202) + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-krew-collection) + :name "city-krew-collection-collection" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor krew-hiphog) + :action (game-task-action idle) + :tex (game-task-icon gaticon-01) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor tess-hiphog) + :action (game-task-action idle) + :tex (game-task-icon gaticon-01) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-life task-retry city-wait task-manager) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-krew-collection-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info (new 'static 'task-manager-info + :level 'lsack + :intro-scene #f + :resolution-scene #f + :resolution-scene-continue #f + :retry-continue "ctyport-hiphog-no-hiphog" + :fail-continue #f + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node city-krew-collection-collection) + :on-complete #f + :on-fail #f + ) + :borrow '((ctywide 0 lsack display) (hiphog 0 ltess special)) + :open? #f + :on-close #f + :description (game-text-id text-x1c5) + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-krew-collection) + :name "city-krew-collection-resolution" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor krew-hiphog) + :action (game-task-action say) + :tex (game-task-icon gaticon-02) + :scene "city-krew-collection-res" + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-08) + :scene #f + ) + ) + :flags (game-task-node-flag close-task) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-krew-collection-collection) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '((ctywide 0 lsack display) (hiphog 0 lguard special)) + :open? #f + :on-close #f + :add (game-task-node-command add-gun-up-1) + :description (game-text-id text-x1c5) + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-yellow-gun-training) + :name "city-yellow-gun-training-introduction" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-10) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-life) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node sewer-enemy-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + :description (game-text-id text-x1c2) + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-yellow-gun-training) + :name "city-yellow-gun-training-resolution" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-10) + :scene #f + ) + ) + :flags (game-task-node-flag close-task) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-yellow-gun-training-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + :description (game-text-id text-x1c2) + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-yellow-gun-training) + :name "city-yellow-gun-training-bronze" + :when-open #f + :flags (game-task-node-flag save-on-life) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-yellow-gun-training-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-yellow-gun-training) + :name "city-yellow-gun-training-silver" + :when-open #f + :flags (game-task-node-flag save-on-life) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-yellow-gun-training-bronze) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-yellow-gun-training) + :name "city-yellow-gun-training-gold" + :when-open #f + :flags (game-task-node-flag save-on-life) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-yellow-gun-training-silver) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'drill + :task (game-task drill-eggs) + :name "drill-eggs-introduction" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor vin-vinroom) + :action (game-task-action say) + :tex (game-task-icon gaticon-02) + :scene "drill-kill-metal-heads-intro" + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-03) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-life) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node strip-rescue-resolution) + (game-task-node city-yellow-gun-training-resolution) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + :description (game-text-id text-x204) + ) + (new 'static 'game-task-node-info + :level 'drill + :task (game-task drill-eggs) + :name "drill-eggs-eggs-0" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor vin-vinroom) + :action (game-task-action talk) + :tex (game-task-icon gaticon-03) + :scene "drill-kill-metal-heads-intro" + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-03) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-life) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node drill-eggs-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + :description (game-text-id text-x1c3) + ) + (new 'static 'game-task-node-info + :level 'drill + :task (game-task drill-eggs) + :name "drill-eggs-eggs-1" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor vin-vinroom) + :action (game-task-action talk) + :tex (game-task-icon gaticon-03) + :scene "drill-kill-metal-heads-intro" + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-03) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-life) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node drill-eggs-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + :description (game-text-id text-x1c3) + ) + (new 'static 'game-task-node-info + :level 'drill + :task (game-task drill-eggs) + :name "drill-eggs-eggs-2" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor vin-vinroom) + :action (game-task-action talk) + :tex (game-task-icon gaticon-03) + :scene "drill-kill-metal-heads-intro" + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-03) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-life) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node drill-eggs-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + :description (game-text-id text-x1c3) + ) + (new 'static 'game-task-node-info + :level 'drill + :task (game-task drill-eggs) + :name "drill-eggs-resolution" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor vin-vinroom) + :action (game-task-action talk) + :tex (game-task-icon gaticon-03) + :scene "drill-kill-metal-heads-intro" + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-03) + :scene #f + ) + ) + :flags (game-task-node-flag auto-close close-task) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node drill-eggs-eggs-0) + (game-task-node drill-eggs-eggs-1) + (game-task-node drill-eggs-eggs-2) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + :description (game-text-id text-x1c3) + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-power) + :name "city-power-introduction" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor vin-vinroom) + :action (game-task-action say) + :tex (game-task-icon gaticon-02) + :scene "city-switch-on-power-intro" + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-03) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-life) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node drill-eggs-resolution) + (game-task-node stadium-board1-resolution) + (game-task-node atoll-battle-resolution) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + :description (game-text-id text-x204) + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-power) + :name "city-power-vinroom" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor vin-vinroom) + :action (game-task-action talk) + :tex (game-task-icon gaticon-03) + :scene "city-switch-on-power-intro" + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-03) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-try) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-power-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + :description (game-text-id text-x204) + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-power) + :name "city-power-resolution" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor vin-vinroom) + :action (game-task-action idle) + :tex (game-task-icon gaticon-01) + :scene #f + ) + ) + :flags (game-task-node-flag close-task task-retry city-wait task-manager) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-power-vinroom) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info (new 'static 'task-manager-info + :level 'lpower + :intro-scene #f + :resolution-scene #f + :resolution-scene-continue #f + :retry-continue "ctyinda-vinroom" + :fail-continue #f + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node city-power-post-win) + :on-complete #f + :on-fail #f + ) + :borrow '((ctywide 0 lpower display)) + :open? #f + :on-close #f + :description (game-text-id text-x1ca) + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-power) + :name "city-power-post-win" + :when-open #f + :flags (game-task-node-flag save-on-life) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-power-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '((ctywide 0 lpower display)) + :open? #f + :on-close #f + :description (game-text-id text-x1ca) + ) + (new 'static 'game-task-node-info + :level 'palace + :task (game-task palace-cable) + :name "palace-cable-introduction" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-13) + :scene #f + ) + ) + :flags (game-task-node-flag auto-close save-on-life) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-power-post-win) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'palace + :task (game-task palace-cable) + :name "palace-cable-resolution" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-13) + :scene #f + ) + ) + :flags (game-task-node-flag close-task abs-task-mask) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node palace-cable-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :task-mask (task-mask task1) + :on-open #f + :info #f + :borrow '((throne 0 lbrnermk special)) + :open? #f + :on-close #f + :description (game-text-id text-x1cb) + ) + (new 'static 'game-task-node-info + :level 'palace + :task (game-task palace-boss) + :name "palace-boss-introduction" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor baron-palace) + :action (game-task-action say) + :tex (game-task-icon gaticon-02) + :scene "palace-outside-window-res-b" + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-13) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-life) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node palace-cable-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'palace + :task (game-task palace-boss) + :name "palace-boss-battle" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor baron-palace) + :action (game-task-action idle) + :tex (game-task-icon gaticon-01) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-13) + :scene #f + ) + ) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node palace-boss-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + :description (game-text-id text-x1cc) + ) + (new 'static 'game-task-node-info + :level 'palace + :task (game-task palace-boss) + :name "palace-boss-resolution" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor baron-palace) + :action (game-task-action say) + :tex (game-task-icon gaticon-02) + :scene "palace-boss-res" + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-13) + :scene #f + ) + ) + :flags (game-task-node-flag close-task abs-task-mask) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node palace-boss-battle) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :task-mask (task-mask done) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + :description (game-text-id text-x1cc) + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-shuttle) + :name "city-shuttle-introduction" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor torn-hideout) + :action (game-task-action say) + :tex (game-task-icon gaticon-02) + :scene "city-shuttle-underground-intro" + ) + (new 'static 'game-task-event + :actor (game-task-actor kor-hideout) + :action (game-task-action idle) + :tex (game-task-icon gaticon-01) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor kid-hideout) + :action (game-task-action idle) + :tex (game-task-icon gaticon-01) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-05) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-try) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node mountain-collection-resolution) + (game-task-node palace-boss-resolution) + (game-task-node city-krew-collection-resolution) + (game-task-node city-yellow-gun-training-resolution) + ) + :on-open #f + :info #f + :borrow '((hideout 0 ltrnkrkd special)) + :open? #f + :on-close #f + :description (game-text-id text-x201) + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-shuttle) + :name "city-shuttle-shuttle" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor torn-hideout) + :action (game-task-action idle) + :tex (game-task-icon gaticon-01) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor kor-hideout) + :action (game-task-action idle) + :tex (game-task-icon gaticon-01) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor kid-hideout) + :action (game-task-action idle) + :tex (game-task-icon gaticon-01) + :scene #f + ) + ) + :flags (game-task-node-flag task-retry task-manager) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-shuttle-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info (new 'static 'task-manager-info + :level 'lshuttle + :intro-scene #f + :resolution-scene #f + :resolution-scene-continue #f + :retry-continue "ctysluma-alley-no-hideout" + :fail-continue #f + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node city-shuttle-resolution) + :on-complete #f + :on-fail #f + ) + :borrow '((hideout 0 ltrnkrkd special) (ctywide 0 lshuttle display)) + :open? #f + :on-close #f + :description (game-text-id text-x1cd) + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-shuttle) + :name "city-shuttle-resolution" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor torn-hideout) + :action (game-task-action say) + :tex (game-task-icon gaticon-02) + :scene "city-shuttle-underground-intro" + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-05) + :scene #f + ) + ) + :flags (game-task-node-flag close-task) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-shuttle-shuttle) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '((hideout 0 ltrnkrkd special)) + :open? #f + :on-close #f + :description (game-text-id text-x1cd) + ) + (new 'static 'game-task-node-info + :level 'ruins + :task (game-task ruins-enemy) + :name "ruins-enemy-introduction" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor torn-hideout) + :action (game-task-action say) + :tex (game-task-icon gaticon-02) + :scene "ruins-sacred-intro" + :distance (meters 20) + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-05) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-life abs-task-mask) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-shuttle-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :task-mask (task-mask task1) + :on-open #f + :info #f + :borrow '((hideout 0 ltrnysam special)) + :open? #f + :on-close #f + :add (game-task-node-command add-gun-blue) + :description (game-text-id text-x201) + ) + (new 'static 'game-task-node-info + :level 'ruins + :task (game-task ruins-enemy) + :name "ruins-enemy-resolution" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor torn-hideout) + :action (game-task-action talk) + :tex (game-task-icon gaticon-03) + :scene "ruins-sacred-intro" + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-02) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-68) + :scene #f + ) + ) + :flags (game-task-node-flag close-task) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node ruins-enemy-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '((hideout 0 ltrnysam special)) + :open? #f + :on-close #f + :description (game-text-id text-x1ce) + ) + (new 'static 'game-task-node-info + :level 'ruins + :task (game-task ruins-enemy) + :name "ruins-enemy-exit" + :when-open #f + :flags (game-task-node-flag save-on-life task-manager) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node ruins-enemy-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info (new 'static 'task-manager-info + :level 'ruins + :intro-scene #f + :resolution-scene #f + :resolution-scene-continue #f + :retry-continue #f + :fail-continue #f + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node ruins-enemy-exit) + :on-complete #f + :on-fail #f + :end-sphere (new 'static 'sphere :x 3419490.2 :y -9.8304 :z -1391682.0 :r 57344.0) + ) + :borrow '() + :open? #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-blue-gun-training) + :name "city-blue-gun-training-bronze" + :when-open #f + :flags (game-task-node-flag save-on-life) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node ruins-enemy-exit) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-blue-gun-training) + :name "city-blue-gun-training-silver" + :when-open #f + :flags (game-task-node-flag save-on-life) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-blue-gun-training-bronze) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-blue-gun-training) + :name "city-blue-gun-training-gold" + :when-open #f + :flags (game-task-node-flag save-on-life) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-blue-gun-training-silver) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'forest + :task (game-task forest-scouts) + :name "forest-scouts-pre-intro" + :when-open #f + :flags (game-task-node-flag save-on-life intro-wait city-wait task-manager) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node ruins-enemy-exit) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info (new 'static 'task-manager-info + :mask (task-manager-mask intro-scene) + :level 'ctywide + :intro-scene "ds006" + :resolution-scene #f + :resolution-scene-continue #f + :retry-continue #f + :fail-continue #f + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node forest-scouts-pre-intro) + :intro-delay #x5dc + :on-complete #f + :on-fail #f + ) + :borrow '() + :open? #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'forest + :task (game-task forest-scouts) + :name "forest-scouts-introduction" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor youngsamos-hideout) + :action (game-task-action say) + :tex (game-task-icon gaticon-02) + :scene "forest-catch-metal-heads-intro" + :distance (meters 35) + ) + (new 'static 'game-task-event + :actor (game-task-actor torn-hideout) + :action (game-task-action idle) + :tex (game-task-icon gaticon-01) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-05) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-life) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node forest-scouts-pre-intro) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '((hideout 0 ltrnysam special)) + :open? #f + :on-close #f + :description (game-text-id text-x205) + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task forest-scouts) + :name "forest-scouts-voicebox" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor youngsamos-hideout) + :action (game-task-action talk) + :tex (game-task-icon gaticon-03) + :scene "forest-catch-metal-heads-intro" + ) + (new 'static 'game-task-event + :actor (game-task-actor torn-hideout) + :action (game-task-action idle) + :tex (game-task-icon gaticon-01) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-18) + :scene #f + ) + ) + :flags (game-task-node-flag intro-wait city-wait task-manager utility-node) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node forest-scouts-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info (new 'static 'task-manager-info + :mask (task-manager-mask intro-scene) + :level 'ctywide + :intro-scene "kei026" + :resolution-scene #f + :resolution-scene-continue #f + :retry-continue #f + :fail-continue #f + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node forest-scouts-voicebox) + :intro-delay #x1770 + :on-complete #f + :on-fail #f + ) + :borrow '((hideout 0 ltrnysam special)) + :open? #f + :on-close #f + :description (game-text-id text-x1cf) + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task forest-scouts) + :name "forest-scouts-get-board" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor youngsamos-hideout) + :action (game-task-action talk) + :tex (game-task-icon gaticon-03) + :scene "forest-catch-metal-heads-intro" + ) + (new 'static 'game-task-event + :actor (game-task-actor torn-hideout) + :action (game-task-action idle) + :tex (game-task-icon gaticon-01) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-18) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-life utility-node) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node forest-scouts-voicebox) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '((hideout 0 ltrnysam special)) + :open? #f + :on-close #f + :add (game-task-node-command add-board) + :description (game-text-id text-x1cf) + ) + (new 'static 'game-task-node-info + :level 'forest + :task (game-task forest-scouts) + :name "forest-scouts-pegasus" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor youngsamos-hideout) + :action (game-task-action talk) + :tex (game-task-icon gaticon-03) + :scene "forest-catch-metal-heads-intro" + ) + (new 'static 'game-task-event + :actor (game-task-actor torn-hideout) + :action (game-task-action idle) + :tex (game-task-icon gaticon-01) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-18) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-life task-manager) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node forest-scouts-get-board) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info (new 'static 'task-manager-info + :level 'forest + :intro-scene #f + :resolution-scene #f + :resolution-scene-continue #f + :retry-continue #f + :fail-continue #f + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node forest-scouts-pegasus) + :on-complete #f + :on-fail #f + ) + :borrow '((hideout 0 ltrnysam special)) + :open? #f + :on-close #f + :description (game-text-id text-x1cf) + ) + (new 'static 'game-task-node-info + :level 'forest + :task (game-task forest-scouts) + :name "forest-scouts-resolution" + :when-open #f + :flags (game-task-node-flag close-task) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node forest-scouts-pegasus) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + :description (game-text-id text-x1cf) + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-escort-kid) + :name "city-escort-kid-pre-intro" + :when-open #f + :flags (game-task-node-flag auto-close save-on-life clear-task-mask) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node forest-scouts-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :task-mask (task-mask task1) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-escort-kid) + :name "city-escort-kid-introduction" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor youngsamos-alley) + :action (game-task-action say) + :tex (game-task-icon gaticon-02) + :scene "city-escort-kid-intro" + :distance (meters 15) + ) + (new 'static 'game-task-event + :actor (game-task-actor kid-alley) + :action (game-task-action idle) + :tex (game-task-icon gaticon-01) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor crocadog-alley) + :action (game-task-action idle) + :tex (game-task-icon gaticon-01) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-05) + :scene #f + ) + ) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-escort-kid-pre-intro) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + :description (game-text-id text-x205) + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-escort-kid) + :name "city-escort-kid-resolution" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor youngsamos-alley) + :action (game-task-action idle) + :tex (game-task-icon gaticon-01) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-03) + :scene #f + ) + ) + :flags (game-task-node-flag close-task set-task-mask task-manager no-audio) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-escort-kid-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :task-mask (task-mask task1) + :on-open #f + :info (new 'static 'task-manager-info + :level 'lkiddoge + :intro-scene #f + :resolution-scene #f + :resolution-scene-continue #f + :retry-continue "ctysluma-escort-retry" + :fail-continue "ctysluma-escort-retry" + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node city-escort-kid-resolution) + :on-complete #f + :on-fail #f + ) + :borrow '((ctywide 0 lkiddoge display)) + :open? #f + :on-close #f + :description (game-text-id text-x1d0) + ) + (new 'static 'game-task-node-info + :level 'dig + :task (game-task dig-knock-down) + :name "dig-knock-down-introduction" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor kor-vinroom) + :action (game-task-action say) + :tex (game-task-icon gaticon-02) + :scene "dig-knock-down-scaffolding-intro" + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-03) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-life) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-escort-kid-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + :description (game-text-id text-x200) + ) + (new 'static 'game-task-node-info + :level 'dig + :task (game-task dig-knock-down) + :name "dig-knock-down-resolution" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor kor-vinroom) + :action (game-task-action talk) + :tex (game-task-icon gaticon-03) + :scene "dig-knock-down-scaffolding-intro" + ) + (new 'static 'game-task-event + :actor (game-task-actor kid-vinroom) + :action (game-task-action idle) + :tex (game-task-icon gaticon-01) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor crocadog-vinroom) + :action (game-task-action idle) + :tex (game-task-icon gaticon-01) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-20) + :scene #f + ) + ) + :flags (game-task-node-flag close-task) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node dig-knock-down-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + :description (game-text-id text-x1d4) + ) + (new 'static 'game-task-node-info + :level 'strip + :task (game-task strip-grenade) + :name "strip-grenade-introduction" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor vin-vinroom) + :action (game-task-action say) + :tex (game-task-icon gaticon-02) + :scene "ecowells-intro" + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-03) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-life) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node dig-knock-down-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + :description (game-text-id text-x204) + ) + (new 'static 'game-task-node-info + :level 'strip + :task (game-task strip-grenade) + :name "strip-grenade-explode" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor vin-vinroom) + :action (game-task-action talk) + :tex (game-task-icon gaticon-03) + :scene "ecowells-intro" + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-03) + :scene #f + ) + ) + :flags (game-task-node-flag task-manager) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node strip-grenade-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info (new 'static 'task-manager-info + :mask (task-manager-mask resolution-scene) + :level 'strip + :intro-scene #f + :resolution-scene "ecowells-victory" + :resolution-scene-continue #f + :retry-continue #f + :fail-continue #f + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node strip-grenade-resolution) + :on-complete #f + :on-fail #f + ) + :borrow '() + :open? #f + :on-close #f + :description (game-text-id text-x1d5) + ) + (new 'static 'game-task-node-info + :level 'strip + :task (game-task strip-grenade) + :name "strip-grenade-resolution" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor vin-vinroom) + :action (game-task-action idle) + :tex (game-task-icon gaticon-01) + :scene #f + ) + ) + :flags (game-task-node-flag close-task abs-task-mask) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node strip-grenade-explode) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :task-mask (task-mask task2) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + :description (game-text-id text-x1d5) + ) + (new 'static 'game-task-node-info + :level 'drill + :task (game-task drill-ship) + :name "drill-ship-introduction" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor vin-vinroom) + :action (game-task-action say) + :tex (game-task-icon gaticon-02) + :scene "drill-destroy-ship-intro" + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-03) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-life abs-task-mask) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node strip-grenade-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :task-mask (task-mask task1) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + :description (game-text-id text-x200) + ) + (new 'static 'game-task-node-info + :level 'drill + :task (game-task drill-ship) + :name "drill-ship-resolution" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor kor-vinroom) + :action (game-task-action talk) + :tex (game-task-icon gaticon-03) + :scene "drill-destroy-ship-intro" + ) + (new 'static 'game-task-event + :actor (game-task-actor vin-vinroom) + :action (game-task-action idle) + :tex (game-task-icon gaticon-01) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-03) + :scene #f + ) + ) + :flags (game-task-node-flag close-task task-manager) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node drill-ship-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info (new 'static 'task-manager-info + :level 'drillmid + :intro-scene #f + :resolution-scene #f + :resolution-scene-continue #f + :retry-continue #f + :fail-continue #f + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node drill-ship-resolution) + :on-complete #f + :on-fail #f + ) + :borrow '() + :open? #f + :on-close #f + :description (game-text-id text-x1d7) + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-port-run) + :name "city-port-run-introduction" + :when-open #f + :flags (game-task-node-flag save-on-life save-on-try task-manager) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node forest-scouts-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info (new 'static 'task-manager-info + :level 'lportrun + :intro-scene #f + :resolution-scene #f + :resolution-scene-continue #f + :retry-continue #f + :fail-continue #f + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node city-port-run-introduction) + :on-complete #f + :on-fail #f + ) + :borrow '((ctywide 0 lportrun display)) + :open? (lambda ((arg0 game-task-node-info)) + (let ((v1-1 (level-get-target-inside *level*))) + (the-as symbol (and v1-1 (logtest? (-> v1-1 info level-flags) 1) (!= (-> v1-1 name) 'ctysluma))) + ) + ) + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-port-run) + :name "city-port-run-resolution" + :when-open #f + :flags (game-task-node-flag close-task task-manager) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-port-run-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info (new 'static 'task-manager-info + :level 'lportrun + :intro-scene #f + :resolution-scene #f + :resolution-scene-continue #f + :retry-continue "ctyport-hiphog-no-hiphog" + :fail-continue #f + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node city-port-run-post-win) + :on-complete #f + :on-fail #f + ) + :borrow '((ctywide 0 lportrun display)) + :open? (lambda ((arg0 game-task-node-info)) + (let ((v1-1 (level-get-target-inside *level*))) + (the-as symbol (and v1-1 (logtest? (-> v1-1 info level-flags) 1) (!= (-> v1-1 name) 'ctysluma))) + ) + ) + :on-close #f + :description (game-text-id text-x1d2) + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-port-run) + :name "city-port-run-post-win" + :when-open #f + :flags (game-task-node-flag save-on-life) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-port-run-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '((ctywide 0 lportrun display)) + :open? #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-meet-brutter) + :name "city-meet-brutter-pre-intro" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor krew-hiphog) + :action (game-task-action say) + :tex (game-task-icon gaticon-02) + :scene "city-meet-brutter-intro" + :distance (meters 34) + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-08) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-life) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-port-run-post-win) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '((hiphog 0 lguard special)) + :open? #f + :on-close #f + :add (game-task-node-command add-gun-up-2) + :description (game-text-id text-x202) + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-meet-brutter) + :name "city-meet-brutter-introduction" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor krew-hiphog) + :action (game-task-action say) + :tex (game-task-icon gaticon-02) + :scene "city-meet-brutter-intro" + :distance (meters 34) + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-08) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-try) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-meet-brutter-pre-intro) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '((hiphog 0 lguard special)) + :open? #f + :on-close #f + :description (game-text-id text-x202) + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-meet-brutter) + :name "city-meet-brutter-meet-brutter" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor krew-hiphog) + :action (game-task-action talk) + :tex (game-task-icon gaticon-03) + :scene "city-meet-brutter-intro" + ) + ) + :flags (game-task-node-flag task-retry city-wait task-manager) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-meet-brutter-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info (new 'static 'task-manager-info + :mask (task-manager-mask resolution-scene) + :level 'lmeetbrt + :intro-scene #f + :resolution-scene "city-meet-brutter-res" + :resolution-scene-continue #f + :retry-continue "ctyport-hiphog-no-hiphog" + :fail-continue #f + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node city-meet-brutter-resolution) + :on-complete #f + :on-fail #f + ) + :borrow '((ctywide 0 lmeetbrt display) (hiphog 0 lguard special)) + :open? #f + :on-close #f + :description (game-text-id text-x1d1) + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-meet-brutter) + :name "city-meet-brutter-resolution" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor brutter-kiosk) + :action (game-task-action idle) + :tex (game-task-icon gaticon-01) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-19) + :scene #f + ) + ) + :flags (game-task-node-flag close-task) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-meet-brutter-meet-brutter) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + :description (game-text-id text-x1d1) + ) + (new 'static 'game-task-node-info + :level 'sewer + :task (game-task sewer-board) + :name "sewer-board-introduction" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor krew-hiphog) + :action (game-task-action say) + :tex (game-task-icon gaticon-02) + :scene "sewer-2-intro" + ) + (new 'static 'game-task-event + :actor (game-task-actor brutter-kiosk) + :action (game-task-action idle) + :tex (game-task-icon gaticon-01) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-08) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-life) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-meet-brutter-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '((hiphog 0 lguard special)) + :open? #f + :on-close #f + :description (game-text-id text-x202) + ) + (new 'static 'game-task-node-info + :level 'sewer + :task (game-task sewer-board) + :name "sewer-board-drain" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor krew-hiphog) + :action (game-task-action talk) + :tex (game-task-icon gaticon-03) + :scene "sewer-2-intro" + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-06) + :scene #f + ) + ) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node sewer-board-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '((hiphog 0 lguard special)) + :open? #f + :on-close #f + :description (game-text-id text-x1d6) + ) + (new 'static 'game-task-node-info + :level 'sewer + :task (game-task sewer-board) + :name "sewer-board-resolution" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor krew-hiphog) + :action (game-task-action talk) + :tex (game-task-icon gaticon-03) + :scene "sewer-2-intro" + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-06) + :scene #f + ) + ) + :flags (game-task-node-flag close-task abs-task-mask) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node sewer-board-drain) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :task-mask (task-mask task2) + :on-open #f + :info #f + :borrow '((hiphog 0 lguard special)) + :open? #f + :on-close #f + :description (game-text-id text-x1d6) + ) + (new 'static 'game-task-node-info + :level 'forest + :task (game-task forest-hunt) + :name "forest-hunt-introduction" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor sig-hiphog) + :action (game-task-action say) + :tex (game-task-icon gaticon-02) + :scene "forest-hunt-camo-metal-heads-intro" + ) + (new 'static 'game-task-event + :actor (game-task-actor tess-hiphog) + :action (game-task-action idle) + :tex (game-task-icon gaticon-01) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-08) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-life abs-task-mask) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node sewer-board-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :task-mask (task-mask task1) + :on-open #f + :info #f + :borrow '((hiphog 0 ltess special)) + :open? #f + :on-close #f + :description (game-text-id text-x206) + ) + (new 'static 'game-task-node-info + :level 'forest + :task (game-task forest-hunt) + :name "forest-hunt-resolution" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor sig-hiphog) + :action (game-task-action talk) + :tex (game-task-icon gaticon-03) + :scene "forest-hunt-camo-metal-heads-intro" + ) + (new 'static 'game-task-event + :actor (game-task-actor tess-hiphog) + :action (game-task-action idle) + :tex (game-task-icon gaticon-01) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-18) + :scene #f + ) + ) + :flags (game-task-node-flag close-task) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node forest-hunt-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '((hiphog 0 ltess special)) + :open? #f + :on-close #f + :description (game-text-id text-x1d9) + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-intercept-tanker) + :name "city-intercept-tanker-roof-explode" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor ashelin-market) + :action (game-task-action say) + :tex (game-task-icon gaticon-02) + :scene "city-intercept-tanker-intro" + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-23) + :scene #f + ) + ) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node forest-scouts-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + :description (game-text-id text-x20a) + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-intercept-tanker) + :name "city-intercept-tanker-introduction" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor ashelin-market) + :action (game-task-action say) + :tex (game-task-icon gaticon-02) + :scene "city-intercept-tanker-intro" + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-23) + :scene #f + ) + ) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-intercept-tanker-roof-explode) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + :description (game-text-id text-x20a) + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-intercept-tanker) + :name "city-intercept-tanker-battle" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor ashelin-market) + :action (game-task-action idle) + :tex (game-task-icon gaticon-01) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-23) + :scene #f + ) + ) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-intercept-tanker-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + :description (game-text-id text-x1d3) + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-intercept-tanker) + :name "city-intercept-tanker-resolution" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor ashelin-market) + :action (game-task-action say) + :tex (game-task-icon gaticon-02) + :scene "city-intercept-tanker-res" + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-23) + :scene #f + ) + ) + :flags (game-task-node-flag close-task) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-intercept-tanker-battle) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + :description (game-text-id text-x1d3) + ) + (new 'static 'game-task-node-info + :level 'stadium + :task (game-task stadium-race-class3) + :name "stadium-race-class3-introduction" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor keira-garage) + :action (game-task-action say) + :tex (game-task-icon gaticon-02) + :scene "city-class-3-race-intro" + :distance (meters 30) + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-12) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-life) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node sewer-board-resolution) + (game-task-node city-intercept-tanker-resolution) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '((garage 0 lgarcsta #f)) + :open? (lambda ((arg0 game-task-node-info)) (!= *kernel-boot-message* 'preview)) + :on-close #f + :description (game-text-id text-x207) + ) + (new 'static 'game-task-node-info + :level 'stadium + :task (game-task stadium-race-class3) + :name "stadium-race-class3-race" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor keira-garage) + :action (game-task-action talk) + :tex (game-task-icon gaticon-03) + :scene "city-class-3-race-intro" + ) + ) + :flags (game-task-node-flag save-on-life task-retry task-manager no-fail-on-death no-slow-down) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node stadium-race-class3-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info (new 'static 'task-manager-info + :mask (task-manager-mask resolution-scene) + :level 'ctywide + :intro-scene #f + :resolution-scene "city-class-3-race-res" + :resolution-scene-continue "garage-start-class3" + :retry-continue "stadiumb-race-retry" + :fail-continue "stadiumb-race-fail" + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node stadium-race-class3-race) + :on-complete #f + :on-fail #f + ) + :borrow '((garage 0 lgarcsta #f) (stadium 0 lracelit special) (ctywide 0 lracebf special)) + :open? (lambda ((arg0 game-task-node-info)) (= (level-status *level* 'stadium) 'active)) + :on-close #f + :description (game-text-id text-x1da) + ) + (new 'static 'game-task-node-info + :level 'stadium + :task (game-task stadium-race-class3) + :name "stadium-race-class3-resolution" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor keira-garage) + :action (game-task-action say) + :tex (game-task-icon gaticon-02) + :scene "city-class-3-race-res" + :distance (meters 30) + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-12) + :scene #f + ) + ) + :flags (game-task-node-flag close-task) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node stadium-race-class3-race) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '((garage 0 lashgrd #f) (stadium 0 lracelit special) (ctywide 0 lracebf special)) + :open? #f + :on-close #f + :description (game-text-id text-x1da) + ) + (new 'static 'game-task-node-info + :level 'stadium + :task (game-task stadium-race-class3) + :name "stadium-race-class3-select-bush" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor burning-bush-stadium) + :action (game-task-action menu) + :tex (game-task-icon gaticon-07) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-62) + :scene #f + ) + ) + :flags (game-task-node-flag no-restart) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node stadium-race-class3-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close '(begin + (task-open! "stadium-burning-bush-race-board-introduction") + (task-open! "stadium-burning-bush-race-class3-introduction") + (task-open! "stadium-burning-bush-race-class3-r-introduction") + ) + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-protect-water-slums) + :name "city-protect-water-slums-introduction" + :when-open #f + :flags (game-task-node-flag save-on-life intro-wait city-wait task-manager) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node sewer-board-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info (new 'static 'task-manager-info + :mask (task-manager-mask intro-scene) + :level 'ctywide + :intro-scene "bru002" + :resolution-scene #f + :resolution-scene-continue #f + :retry-continue #f + :fail-continue #f + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node city-protect-water-slums-introduction) + :intro-delay #x1770 + :on-complete #f + :on-fail #f + ) + :borrow '() + :open? (lambda ((arg0 game-task-node-info)) (!= *kernel-boot-message* 'preview)) + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-protect-water-slums) + :name "city-protect-water-slums-get-seal" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-35) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-life task-manager) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-protect-water-slums-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info (new 'static 'task-manager-info + :level 'ctywide + :intro-scene #f + :resolution-scene #f + :resolution-scene-continue #f + :retry-continue #f + :fail-continue #f + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node city-protect-water-slums-get-seal) + :on-complete #f + :on-fail #f + ) + :borrow '() + :open? #f + :on-close #f + :description (game-text-id text-x20b) + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-protect-water-slums) + :name "city-protect-water-slums-fight" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-35) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-life task-manager) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-protect-water-slums-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info (new 'static 'task-manager-info + :level 'lprotect + :intro-scene #f + :resolution-scene #f + :resolution-scene-continue #f + :retry-continue #f + :fail-continue #f + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node city-protect-water-slums-fight) + :on-complete #f + :on-fail #f + ) + :borrow '((ctywide 0 lprotect special)) + :open? (lambda ((arg0 game-task-node-info)) (let ((v1-1 (level-get-target-inside *level*))) + (the-as symbol (and v1-1 (= (-> v1-1 name) 'ctyslumc))) + ) + ) + :on-close '(task-close! "city-protect-water-slums-get-seal") + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-protect-water-slums) + :name "city-protect-water-slums-resolution" + :when-open #f + :flags (game-task-node-flag close-task save-on-life task-manager) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-protect-water-slums-fight) + (game-task-node city-protect-water-slums-get-seal) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info (new 'static 'task-manager-info + :level 'lprotect + :intro-scene #f + :resolution-scene #f + :resolution-scene-continue #f + :retry-continue "ctyslumc-slums" + :fail-continue "ctyslumc-slums" + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node city-protect-water-slums-resolution) + :on-complete #f + :on-fail #f + ) + :borrow '((ctywide 0 lprotect display)) + :open? #f + :on-close #f + :description (game-text-id text-x1dc) + ) + (new 'static 'game-task-node-info + :level 'dig + :task (game-task dig-find-totem) + :name "dig-find-totem-introduction" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor onin-onintent) + :action (game-task-action say) + :tex (game-task-icon gaticon-02) + :scene "dig-find-totem-intro" + ) + (new 'static 'game-task-event + :actor (game-task-actor pecker-onintent) + :action (game-task-action idle) + :tex (game-task-icon gaticon-01) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor youngsamos-onintent) + :action (game-task-action idle) + :tex (game-task-icon gaticon-01) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-01) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-life) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node drill-ship-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? (lambda ((arg0 game-task-node-info)) (!= *kernel-boot-message* 'preview)) + :on-close #f + :description (game-text-id text-x203) + ) + (new 'static 'game-task-node-info + :level 'dig + :task (game-task dig-find-totem) + :name "dig-find-totem-raise-log" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor onin-onintent) + :action (game-task-action talk) + :tex (game-task-icon gaticon-03) + :scene "dig-find-totem-intro" + ) + (new 'static 'game-task-event + :actor (game-task-actor pecker-onintent) + :action (game-task-action idle) + :tex (game-task-icon gaticon-01) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor youngsamos-onintent) + :action (game-task-action idle) + :tex (game-task-icon gaticon-01) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-20) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-life) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node dig-find-totem-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + :description (game-text-id text-x1db) + ) + (new 'static 'game-task-node-info + :level 'dig + :task (game-task dig-find-totem) + :name "dig-find-totem-resolution" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor onin-onintent) + :action (game-task-action talk) + :tex (game-task-icon gaticon-03) + :scene "dig-find-totem-intro" + ) + (new 'static 'game-task-event + :actor (game-task-actor pecker-onintent) + :action (game-task-action idle) + :tex (game-task-icon gaticon-01) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor youngsamos-onintent) + :action (game-task-action idle) + :tex (game-task-icon gaticon-01) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-20) + :scene #f + ) + ) + :flags (game-task-node-flag close-task) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node dig-find-totem-raise-log) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + :description (game-text-id text-x1db) + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-destroy-guard-vehicles) + :name "city-destroy-guard-vehicles-introduction" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor torn-hideout) + :action (game-task-action say) + :tex (game-task-icon gaticon-02) + :scene "city-destroy-guard-vehicles-intro" + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-05) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-try) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node dig-find-totem-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '((hideout 0 ltrnysam special)) + :open? #f + :on-close #f + :description (game-text-id text-x201) + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-destroy-guard-vehicles) + :name "city-destroy-guard-vehicles-destroy" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor torn-hideout) + :action (game-task-action talk) + :tex (game-task-icon gaticon-03) + :scene "city-destroy-guard-vehicles-intro" + ) + ) + :flags (game-task-node-flag save-on-life task-retry task-manager) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-destroy-guard-vehicles-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info (new 'static 'task-manager-info + :level 'lhelldog + :intro-scene #f + :resolution-scene #f + :resolution-scene-continue #f + :retry-continue "ctysluma-alley-no-hideout" + :fail-continue #f + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node city-destroy-guard-vehicles-resolution) + :on-complete #f + :on-fail #f + ) + :borrow '((ctywide 0 lhelldog display) (hideout 0 ltrnysam special)) + :open? #f + :on-close #f + :description (game-text-id text-x1dd) + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-destroy-guard-vehicles) + :name "city-destroy-guard-vehicles-resolution" + :when-open #f + :flags (game-task-node-flag close-task) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-destroy-guard-vehicles-destroy) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '((ctywide 0 lhelldog display)) + :open? #f + :on-close #f + :description (game-text-id text-x1dd) + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-play-onin-game) + :name "city-play-onin-game-introduction" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor onin-onintent) + :action (game-task-action say) + :tex (game-task-icon gaticon-02) + :scene "city-play-onin-game-intro" + ) + (new 'static 'game-task-event + :actor (game-task-actor pecker-onintent) + :action (game-task-action idle) + :tex (game-task-icon gaticon-01) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor kor-onintent) + :action (game-task-action idle) + :tex (game-task-icon gaticon-01) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-01) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-life) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-destroy-guard-vehicles-resolution) + (game-task-node city-protect-water-slums-resolution) + (game-task-node stadium-race-class3-resolution) + (game-task-node forest-hunt-resolution) + ) + :on-open #f + :info #f + :borrow '((onintent 0 ltentob display)) + :open? #f + :on-close #f + :description (game-text-id text-x203) + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-play-onin-game) + :name "city-play-onin-game-wait" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor onin-onintent) + :action (game-task-action talk) + :tex (game-task-icon gaticon-03) + :scene "city-play-onin-game-intro" + ) + (new 'static 'game-task-event + :actor (game-task-actor pecker-onintent) + :action (game-task-action idle) + :tex (game-task-icon gaticon-01) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor kor-onintent) + :action (game-task-action idle) + :tex (game-task-icon gaticon-01) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-01) + :scene #f + ) + ) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-play-onin-game-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '((onintent 0 ltentob display)) + :open? #f + :on-close #f + :description (game-text-id text-x1de) + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-play-onin-game) + :name "city-play-onin-game-resolution" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor onin-onintent) + :action (game-task-action play) + :tex (game-task-icon gaticon-06) + :scene "onin-game" + ) + (new 'static 'game-task-event + :actor (game-task-actor pecker-onintent) + :action (game-task-action idle) + :tex (game-task-icon gaticon-01) + :flags (game-task-flags gatflag-02) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor kor-onintent) + :action (game-task-action idle) + :tex (game-task-icon gaticon-01) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-01) + :scene #f + ) + ) + :flags (game-task-node-flag close-task task-manager) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-play-onin-game-wait) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info (new 'static 'task-manager-info + :mask (task-manager-mask resolution-scene fail-message) + :level 'onintent + :intro-scene #f + :resolution-scene "city-play-onin-game-res" + :resolution-scene-continue #f + :retry-continue #f + :fail-continue "onintent-start" + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node city-play-onin-game-resolution) + :on-complete #f + :on-fail #f + ) + :borrow '((onintent 0 ltentob display)) + :open? #f + :on-close #f + :description (game-text-id text-x1de) + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-play-onin-game) + :name "city-play-onin-game-skill" + :when-open #f + :flags (game-task-node-flag no-restart) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-play-onin-game-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-play-onin-game) + :name "city-play-onin-game-post-game" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor onin-onintent) + :action (game-task-action play) + :tex (game-task-icon gaticon-06) + :scene "onin-game" + ) + (new 'static 'game-task-event + :actor (game-task-actor pecker-onintent) + :action (game-task-action idle) + :tex (game-task-icon gaticon-01) + :flags (game-task-flags gatflag-02) + :scene #f + ) + ) + :flags (game-task-node-flag no-restart) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-play-onin-game-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '((onintent 0 ltentob display)) + :open? #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'canyon + :task (game-task canyon-insert-items) + :name "canyon-insert-items-introduction" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-21) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-life) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-play-onin-game-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + :description (game-text-id text-x20c) + ) + (new 'static 'game-task-node-info + :level 'canyon + :task (game-task canyon-insert-items) + :name "canyon-insert-items-door" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-21) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-life task-manager) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node canyon-insert-items-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info (new 'static 'task-manager-info + :mask (task-manager-mask resolution-scene) + :level 'mountain + :intro-scene #f + :resolution-scene "canyon-insert-items-intro" + :resolution-scene-continue #f + :retry-continue #f + :fail-continue #f + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node canyon-insert-items-door) + :on-complete #f + :on-fail #f + :end-sphere (new 'static 'sphere :x -2629474.0 :y 324481.44 :z 689014.4 :r 28672.0) + ) + :borrow '() + :open? #f + :on-close #f + :description (game-text-id text-x1df) + ) + (new 'static 'game-task-node-info + :level 'canyon + :task (game-task canyon-insert-items) + :name "canyon-insert-items-gear" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-21) + :scene #f + ) + ) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node canyon-insert-items-door) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + :description (game-text-id text-x1df) + ) + (new 'static 'game-task-node-info + :level 'canyon + :task (game-task canyon-insert-items) + :name "canyon-insert-items-shard" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-21) + :scene #f + ) + ) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node canyon-insert-items-gear) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + :description (game-text-id text-x1df) + ) + (new 'static 'game-task-node-info + :level 'canyon + :task (game-task canyon-insert-items) + :name "canyon-insert-items-resolution" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-21) + :scene #f + ) + ) + :flags (game-task-node-flag close-task) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node canyon-insert-items-shard) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + :description (game-text-id text-x1df) + ) + (new 'static 'game-task-node-info + :level 'tomb + :task (game-task tomb-poles) + :name "tomb-poles-introduction" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor youngsamos-tomb) + :action (game-task-action say) + :tex (game-task-icon gaticon-02) + :scene "tomb-face-tests-intro" + ) + (new 'static 'game-task-event + :actor (game-task-actor kor-tomb) + :action (game-task-action idle) + :tex (game-task-icon gaticon-01) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor kid-tomb) + :action (game-task-action idle) + :tex (game-task-icon gaticon-01) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-22) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-life) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node canyon-insert-items-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + :description (game-text-id text-x20d) + ) + (new 'static 'game-task-node-info + :level 'tomb + :task (game-task tomb-poles) + :name "tomb-poles-block" + :when-open #f + :flags (game-task-node-flag save-on-life) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node tomb-poles-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + :description (game-text-id text-x1e2) + ) + (new 'static 'game-task-node-info + :level 'tomb + :task (game-task tomb-poles) + :name "tomb-poles-poles" + :when-open #f + :flags (game-task-node-flag save-on-life reset-on-try) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node tomb-poles-block) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + :description (game-text-id text-x1e2) + ) + (new 'static 'game-task-node-info + :level 'tomb + :task (game-task tomb-poles) + :name "tomb-poles-boulder" + :when-open #f + :flags (game-task-node-flag save-on-life) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node tomb-poles-poles) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + :add (game-task-node-command sub-sidekick) + :description (game-text-id text-x1e2) + ) + (new 'static 'game-task-node-info + :level 'tomb + :task (game-task tomb-poles) + :name "tomb-poles-poles2" + :when-open #f + :parent-node (new 'static 'array game-task-node 4 + (game-task-node tomb-poles-boulder) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + :description (game-text-id text-x1e2) + ) + (new 'static 'game-task-node-info + :level 'tomb + :task (game-task tomb-poles) + :name "tomb-poles-resolution" + :when-open #f + :flags (game-task-node-flag close-task save-on-life) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node tomb-poles-poles2) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + :description (game-text-id text-x1e2) + ) + (new 'static 'game-task-node-info + :level 'tomb + :task (game-task tomb-water) + :name "tomb-water-vibe" + :when-open #f + :flags (game-task-node-flag save-on-life) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node tomb-poles-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + :description (game-text-id text-x1e3) + ) + (new 'static 'game-task-node-info + :level 'tomb + :task (game-task tomb-water) + :name "tomb-water-resolution" + :when-open #f + :flags (game-task-node-flag close-task save-on-life) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node tomb-water-vibe) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + :description (game-text-id text-x1e3) + ) + (new 'static 'game-task-node-info + :level 'tomb + :task (game-task tomb-boss) + :name "tomb-boss-torches" + :when-open #f + :flags (game-task-node-flag save-on-life set-task-mask no-restart) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node tomb-poles-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :task-mask (task-mask task0) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'tomb + :task (game-task tomb-boss) + :name "tomb-boss-door" + :when-open #f + :flags (game-task-node-flag save-on-life) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node tomb-boss-torches) + (game-task-node tomb-water-resolution) + (game-task-node tomb-poles-resolution) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'tomb + :task (game-task tomb-boss) + :name "tomb-boss-introduction" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor daxter-tomb) + :action (game-task-action idle) + :tex (game-task-icon gaticon-01) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-22) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-life) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node tomb-boss-door) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + :add (game-task-node-command add-sidekick) + ) + (new 'static 'game-task-node-info + :level 'tomb + :task (game-task tomb-boss) + :name "tomb-boss-resolution" + :when-open #f + :flags (game-task-node-flag close-task) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node tomb-boss-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + :description (game-text-id text-x1e4) + ) + (new 'static 'game-task-node-info + :level 'fortress + :task (game-task fortress-save-friends) + :name "fortress-save-friends-introduction" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor torn-hideout) + :action (game-task-action say) + :tex (game-task-icon gaticon-02) + :scene "fortress-save-friends-intro-a" + :distance (meters 20) + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-05) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-life abs-task-mask) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node tomb-boss-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :task-mask (task-mask task2) + :on-open #f + :info #f + :borrow '((hideout 0 ltrnysam special) (prison 0 lprsncst special)) + :open? #f + :on-close #f + :description (game-text-id text-x201) + ) + (new 'static 'game-task-node-info + :level 'fortress + :task (game-task fortress-save-friends) + :name "fortress-save-friends-resolution" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor torn-hideout) + :action (game-task-action talk) + :tex (game-task-icon gaticon-03) + :scene "fortress-save-friends-intro-a" + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-09) + :scene #f + ) + ) + :flags (game-task-node-flag close-task abs-task-mask task-manager) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node fortress-save-friends-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :task-mask (task-mask done) + :on-open #f + :info (new 'static 'task-manager-info + :level 'forrescb + :intro-scene #f + :resolution-scene #f + :resolution-scene-continue #f + :retry-continue #f + :fail-continue #f + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node fortress-save-friends-resolution) + :on-complete #f + :on-fail #f + ) + :borrow '((hideout 0 ltrnysam special)) + :open? #f + :on-close #f + :description (game-text-id text-x1e5) + ) + (new 'static 'game-task-node-info + :level 'sewer + :task (game-task sewer-escort) + :name "sewer-escort-introduction" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor krew-hiphog) + :action (game-task-action say) + :tex (game-task-icon gaticon-02) + :scene "sewer-blow-up-statue-intro" + ) + (new 'static 'game-task-event + :actor (game-task-actor sig-hiphog) + :action (game-task-action idle) + :tex (game-task-icon gaticon-01) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-08) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-life) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node fortress-save-friends-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '((hiphog 0 lguard special)) + :open? #f + :on-close #f + :description (game-text-id text-x202) + ) + (new 'static 'game-task-node-info + :level 'sewer + :task (game-task sewer-escort) + :name "sewer-escort-explode-wall1" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor krew-hiphog) + :action (game-task-action talk) + :tex (game-task-icon gaticon-03) + :scene "sewer-blow-up-statue-intro" + ) + (new 'static 'game-task-event + :actor (game-task-actor sig-hiphog) + :action (game-task-action idle) + :tex (game-task-icon gaticon-01) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-06) + :scene #f + ) + ) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node sewer-escort-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '((hiphog 0 lguard special)) + :open? #f + :on-close #f + :description (game-text-id text-x1e6) + ) + (new 'static 'game-task-node-info + :level 'sewer + :task (game-task sewer-escort) + :name "sewer-escort-explode-wall2" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor krew-hiphog) + :action (game-task-action talk) + :tex (game-task-icon gaticon-03) + :scene "sewer-blow-up-statue-intro" + ) + (new 'static 'game-task-event + :actor (game-task-actor sig-hiphog) + :action (game-task-action idle) + :tex (game-task-icon gaticon-01) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-06) + :scene #f + ) + ) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node sewer-escort-explode-wall1) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '((hiphog 0 lguard special)) + :open? #f + :on-close #f + :description (game-text-id text-x1e6) + ) + (new 'static 'game-task-node-info + :level 'sewer + :task (game-task sewer-escort) + :name "sewer-escort-resolution" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor krew-hiphog) + :action (game-task-action talk) + :tex (game-task-icon gaticon-03) + :scene "sewer-blow-up-statue-intro" + ) + (new 'static 'game-task-event + :actor (game-task-actor sig-hiphog) + :action (game-task-action idle) + :tex (game-task-icon gaticon-01) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-06) + :scene #f + ) + ) + :flags (game-task-node-flag close-task save-on-life abs-task-mask) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node sewer-escort-explode-wall2) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :task-mask (task-mask done) + :on-open #f + :info #f + :borrow '((hiphog 0 lguard special)) + :open? #f + :on-close #f + :description (game-text-id text-x1e6) + ) + (new 'static 'game-task-node-info + :level 'sewer + :task (game-task sewer-escort) + :name "sewer-escort-get-gun" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor krew-hiphog) + :action (game-task-action idle) + :tex (game-task-icon gaticon-01) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-34) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-life task-manager) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node sewer-escort-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info (new 'static 'task-manager-info + :mask (task-manager-mask resolution-scene) + :level 'gungame + :intro-scene #f + :resolution-scene "city-get-dark-gun" + :resolution-scene-continue #f + :retry-continue #f + :fail-continue #f + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node sewer-escort-get-gun) + :on-complete #f + :on-fail #f + ) + :borrow '((hiphog 0 lguard special)) + :open? #f + :on-close #f + :add (game-task-node-command add-gun-dark) + :description (game-text-id text-x1e7) + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-dark-gun-training) + :name "city-dark-gun-training-bronze" + :when-open #f + :flags (game-task-node-flag save-on-life) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node sewer-escort-get-gun) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-dark-gun-training) + :name "city-dark-gun-training-silver" + :when-open #f + :flags (game-task-node-flag save-on-life) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-dark-gun-training-bronze) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-dark-gun-training) + :name "city-dark-gun-training-gold" + :when-open #f + :flags (game-task-node-flag save-on-life) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-dark-gun-training-silver) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'stadium + :task (game-task stadium-race-class2) + :name "stadium-race-class2-introduction" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor keira-garage) + :action (game-task-action say) + :tex (game-task-icon gaticon-02) + :scene "city-class-2-race-intro" + :distance (meters 30) + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-12) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-try) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node fortress-save-friends-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '((garage 0 lsamergd #f)) + :open? #f + :on-close '(task-close! "stadium-race-class3-select-bush") + :description (game-text-id text-x208) + ) + (new 'static 'game-task-node-info + :level 'stadium + :task (game-task stadium-race-class2) + :name "stadium-race-class2-race" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor keira-garage) + :action (game-task-action talk) + :tex (game-task-icon gaticon-03) + :scene "city-class-2-race-intro" + ) + ) + :flags (game-task-node-flag save-on-life task-retry task-manager no-fail-on-death no-slow-down) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node stadium-race-class2-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info (new 'static 'task-manager-info + :mask (task-manager-mask resolution-scene) + :level 'ctywide + :intro-scene #f + :resolution-scene "city-class-2-race-res" + :resolution-scene-continue "garage-class3-movie" + :retry-continue "stadiumc-race-retry-pidax" + :fail-continue "garage-start-class3" + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node stadium-race-class2-race) + :index 1 + :on-complete #f + :on-fail #f + ) + :borrow '((garage 0 lsamergd #f) (stadium 0 lracelit special) (ctywide 0 lracecf special)) + :open? (lambda ((arg0 game-task-node-info)) (= (level-status *level* 'stadium) 'active)) + :on-close #f + :description (game-text-id text-x1e8) + ) + (new 'static 'game-task-node-info + :level 'stadium + :task (game-task stadium-race-class2) + :name "stadium-race-class2-resolution" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor keira-garage) + :action (game-task-action say) + :tex (game-task-icon gaticon-02) + :scene "city-class-2-race-res" + :distance (meters 30) + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-12) + :scene #f + ) + ) + :flags (game-task-node-flag close-task) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node stadium-race-class2-race) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '((garage 0 lashgrd #f) (stadium 0 lracelit special) (ctywide 0 lracecf special)) + :open? #f + :on-close #f + :description (game-text-id text-x1e8) + ) + (new 'static 'game-task-node-info + :level 'stadium + :task (game-task stadium-race-class2) + :name "stadium-race-class2-select-bush" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor burning-bush-stadium) + :action (game-task-action menu) + :tex (game-task-icon gaticon-07) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-62) + :scene #f + ) + ) + :flags (game-task-node-flag no-restart) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node stadium-race-class2-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close '(begin + (task-open! "stadium-burning-bush-race-board-introduction") + (task-open! "stadium-burning-bush-race-class3-introduction") + (task-open! "stadium-burning-bush-race-class3-r-introduction") + (task-open! "stadium-burning-bush-race-class2-introduction") + (task-open! "stadium-burning-bush-race-class2-r-introduction") + ) + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-stop-bomb-bots) + :name "city-stop-bomb-bots-introduction" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor youngsamos-hideout) + :action (game-task-action say) + :tex (game-task-icon gaticon-02) + :scene "city-stop-bomb-bots-intro" + ) + (new 'static 'game-task-event + :actor (game-task-actor samos-hideout) + :action (game-task-action idle) + :tex (game-task-icon gaticon-01) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-05) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-try) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node fortress-save-friends-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '((hideout 0 lysamsam special)) + :open? #f + :on-close #f + :description (game-text-id text-x201) + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-stop-bomb-bots) + :name "city-stop-bomb-bots-destroy" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor youngsamos-hideout) + :action (game-task-action talk) + :tex (game-task-icon gaticon-03) + :scene "city-stop-bomb-bots-intro" + ) + (new 'static 'game-task-event + :actor (game-task-actor samos-hideout) + :action (game-task-action idle) + :tex (game-task-icon gaticon-01) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-life task-retry task-manager) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-stop-bomb-bots-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info (new 'static 'task-manager-info + :level 'lbombbot + :intro-scene #f + :resolution-scene #f + :resolution-scene-continue #f + :retry-continue "ctysluma-alley-no-hideout" + :fail-continue #f + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node city-stop-bomb-bots-resolution) + :on-complete #f + :on-fail #f + ) + :borrow '((ctywide 0 lbombbot display) (hideout 0 lysamsam special)) + :open? #f + :on-close #f + :description (game-text-id text-x1e9) + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-stop-bomb-bots) + :name "city-stop-bomb-bots-resolution" + :when-open #f + :flags (game-task-node-flag close-task) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-stop-bomb-bots-destroy) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '((ctywide 0 lbombbot display)) + :open? #f + :on-close #f + :description (game-text-id text-x1e9) + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-errol-challenge) + :name "city-errol-challenge-introduction" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor krew-hiphog) + :action (game-task-action say) + :tex (game-task-icon gaticon-02) + :scene "city-errol-challenge-intro" + ) + (new 'static 'game-task-event + :actor (game-task-actor tess-hiphog) + :action (game-task-action idle) + :tex (game-task-icon gaticon-01) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-08) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-try) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node sewer-escort-get-gun) + (game-task-node stadium-race-class2-resolution) + (game-task-node city-stop-bomb-bots-resolution) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '((hiphog 0 lerltess special)) + :open? #f + :on-close #f + :description (game-text-id text-x202) + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-errol-challenge) + :name "city-errol-challenge-race" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor krew-hiphog) + :action (game-task-action talk) + :tex (game-task-icon gaticon-03) + :scene "city-errol-challenge-intro" + ) + (new 'static 'game-task-event + :actor (game-task-actor tess-hiphog) + :action (game-task-action idle) + :tex (game-task-icon gaticon-01) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor keira-garage) + :action (game-task-action idle) + :tex (game-task-icon gaticon-01) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-12) + :scene #f + ) + ) + :flags (game-task-node-flag task-retry city-wait task-manager) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-errol-challenge-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info (new 'static 'task-manager-info + :mask (task-manager-mask resolution-scene) + :level 'lerlchal + :intro-scene #f + :resolution-scene "city-errol-challenge-res" + :resolution-scene-continue "garage-start-class3" + :retry-continue "ctyport-errol-race-retry" + :fail-continue "ctyport-hiphog-no-hiphog" + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node city-errol-challenge-resolution) + :index 3 + :on-complete #f + :on-fail #f + ) + :borrow '((ctywide 0 lerlchal display) (hiphog 0 lerltess special)) + :open? #f + :on-close #f + :description (game-text-id text-x1ec) + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-errol-challenge) + :name "city-errol-challenge-resolution" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor krew-hiphog) + :action (game-task-action idle) + :tex (game-task-icon gaticon-01) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor keira-garage) + :action (game-task-action idle) + :tex (game-task-icon gaticon-01) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-12) + :scene #f + ) + ) + :flags (game-task-node-flag close-task) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-errol-challenge-race) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '((ctywide 0 lerlchal display) (stadium 0 lerrol special)) + :open? #f + :on-close #f + :description (game-text-id text-x1ec) + ) + (new 'static 'game-task-node-info + :level 'strip + :task (game-task strip-drop) + :name "strip-drop-introduction" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor vin-vinroom) + :action (game-task-action say) + :tex (game-task-icon gaticon-02) + :scene "crane-intro" + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-03) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-life) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-errol-challenge-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + :description (game-text-id text-x204) + ) + (new 'static 'game-task-node-info + :level 'strip + :task (game-task strip-drop) + :name "strip-drop-resolution" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor vin-vinroom) + :action (game-task-action talk) + :tex (game-task-icon gaticon-03) + :scene "crane-intro" + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-03) + :scene #f + ) + ) + :flags (game-task-node-flag close-task abs-task-mask) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node strip-drop-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :task-mask (task-mask done) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + :description (game-text-id text-x1ed) + ) + (new 'static 'game-task-node-info + :level 'ruins + :task (game-task ruins-mech) + :name "ruins-mech-introduction" + :when-open #f + :flags (game-task-node-flag save-on-life abs-task-mask intro-wait city-wait task-manager) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-errol-challenge-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :task-mask (task-mask task2) + :on-open #f + :info (new 'static 'task-manager-info + :mask (task-manager-mask intro-scene) + :level 'ctywide + :intro-scene "sam001" + :resolution-scene #f + :resolution-scene-continue #f + :retry-continue #f + :fail-continue #f + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node ruins-mech-introduction) + :intro-delay #x1770 + :on-complete #f + :on-fail #f + ) + :borrow '() + :open? #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'ruins + :task (game-task ruins-mech) + :name "ruins-mech-break-wall-1" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-02) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-68) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-life task-manager) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node ruins-mech-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info (new 'static 'task-manager-info + :level 'ruins + :intro-scene #f + :resolution-scene #f + :resolution-scene-continue #f + :retry-continue #f + :fail-continue #f + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node ruins-mech-break-wall-1) + :on-complete #f + :on-fail #f + ) + :borrow '() + :open? #f + :on-close #f + :description (game-text-id text-x1ee) + ) + (new 'static 'game-task-node-info + :level 'ruins + :task (game-task ruins-mech) + :name "ruins-mech-move-block-1" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-02) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-68) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-life task-manager) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node ruins-mech-break-wall-1) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info (new 'static 'task-manager-info + :level 'ruins + :intro-scene #f + :resolution-scene #f + :resolution-scene-continue #f + :retry-continue #f + :fail-continue #f + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node ruins-mech-move-block-1) + :on-complete #f + :on-fail #f + ) + :borrow '() + :open? #f + :on-close #f + :description (game-text-id text-x1ee) + ) + (new 'static 'game-task-node-info + :level 'ruins + :task (game-task ruins-mech) + :name "ruins-mech-throw-block-1" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-02) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-68) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-life task-manager) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node ruins-mech-move-block-1) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info (new 'static 'task-manager-info + :level 'ruins + :intro-scene #f + :resolution-scene #f + :resolution-scene-continue #f + :retry-continue #f + :fail-continue #f + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node ruins-mech-throw-block-1) + :on-complete #f + :on-fail #f + ) + :borrow '() + :open? #f + :on-close #f + :description (game-text-id text-x1ee) + ) + (new 'static 'game-task-node-info + :level 'ruins + :task (game-task ruins-mech) + :name "ruins-mech-resolution" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-02) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-68) + :scene #f + ) + ) + :flags (game-task-node-flag close-task abs-task-mask) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node ruins-mech-throw-block-1) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :task-mask (task-mask done) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + :description (game-text-id text-x1ee) + ) + (new 'static 'game-task-node-info + :level 'forest + :task (game-task forest-protect) + :name "forest-protect-introduction" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor onin-onintent) + :action (game-task-action say) + :tex (game-task-icon gaticon-02) + :scene "forest-protect-samos-intro-a" + ) + (new 'static 'game-task-event + :actor (game-task-actor pecker-onintent) + :action (game-task-action idle) + :tex (game-task-icon gaticon-01) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-01) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-life abs-task-mask) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node ruins-mech-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :task-mask (task-mask task2) + :on-open #f + :info #f + :borrow '() + :open? (lambda ((arg0 game-task-node-info)) (task-node-close! (game-task-node city-play-onin-game-post-game)) #t) + :on-close #f + :description (game-text-id text-x203) + ) + (new 'static 'game-task-node-info + :level 'forest + :task (game-task forest-protect) + :name "forest-protect-meeting" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor onin-onintent) + :action (game-task-action talk) + :tex (game-task-icon gaticon-03) + :scene "forest-protect-samos-intro-a" + ) + (new 'static 'game-task-event + :actor (game-task-actor pecker-onintent) + :action (game-task-action idle) + :tex (game-task-icon gaticon-01) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-18) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-69) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor youngsamos-forest) + :action (game-task-action say) + :tex (game-task-icon gaticon-02) + :scene "forest-protect-samos-intro-b" + :distance (meters 24) + ) + ) + :flags (game-task-node-flag abs-task-mask) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node forest-protect-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :task-mask (task-mask task3) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + :description (game-text-id text-x1ef) + ) + (new 'static 'game-task-node-info + :level 'forest + :task (game-task forest-protect) + :name "forest-protect-resolution" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor onin-onintent) + :action (game-task-action idle) + :tex (game-task-icon gaticon-01) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor pecker-onintent) + :action (game-task-action idle) + :tex (game-task-icon gaticon-01) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-18) + :scene #f + ) + ) + :flags (game-task-node-flag close-task abs-task-mask task-manager) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node forest-protect-meeting) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :task-mask (task-mask done) + :on-open #f + :info (new 'static 'task-manager-info + :mask (task-manager-mask resolution-scene) + :level 'forest + :intro-scene #f + :resolution-scene "forest-protect-samos-res" + :resolution-scene-continue #f + :retry-continue "forest-tree" + :fail-continue "forest-tree" + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node forest-protect-resolution) + :on-complete #f + :on-fail #f + ) + :borrow '() + :open? #f + :on-close #f + :description (game-text-id text-x1f0) + ) + (new 'static 'game-task-node-info + :level 'forest + :task (game-task forest-protect) + :name "forest-protect-post-game" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor onin-onintent) + :action (game-task-action play) + :tex (game-task-icon gaticon-06) + :scene "onin-game" + ) + (new 'static 'game-task-event + :actor (game-task-actor pecker-onintent) + :action (game-task-action idle) + :tex (game-task-icon gaticon-01) + :flags (game-task-flags gatflag-02) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor youngsamos-forest) + :action (game-task-action idle) + :tex (game-task-icon gaticon-01) + :scene #f + ) + ) + :flags (game-task-node-flag no-restart) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node forest-protect-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'drill + :task (game-task drill-mech) + :name "drill-mech-introduction" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor kor-vinroom) + :action (game-task-action say) + :tex (game-task-icon gaticon-02) + :scene "drill-destroy-control-tower-intro" + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-03) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-life abs-task-mask) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node forest-protect-resolution) + (game-task-node strip-drop-resolution) + (game-task-node none) + (game-task-node none) + ) + :task-mask (task-mask task2) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + :description (game-text-id text-x200) + ) + (new 'static 'game-task-node-info + :level 'drill + :task (game-task drill-mech) + :name "drill-mech-started-smashing" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor kor-vinroom) + :action (game-task-action idle) + :tex (game-task-icon gaticon-01) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-03) + :scene #f + ) + ) + :flags (game-task-node-flag task-manager) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node drill-mech-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info (new 'static 'task-manager-info + :level 'drillmid + :intro-scene #f + :resolution-scene #f + :resolution-scene-continue #f + :retry-continue "drill3-warp" + :fail-continue #f + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node drill-mech-resolution) + :on-complete #f + :on-fail #f + ) + :borrow '() + :open? #f + :on-close #f + :description (game-text-id text-x1f1) + ) + (new 'static 'game-task-node-info + :level 'drill + :task (game-task drill-mech) + :name "drill-mech-smash-consoles" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor kor-vinroom) + :action (game-task-action idle) + :tex (game-task-icon gaticon-01) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-03) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-life abs-task-mask reset-on-try) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node drill-mech-started-smashing) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :task-mask (task-mask task2 task3) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + :description (game-text-id text-x1f1) + ) + (new 'static 'game-task-node-info + :level 'drill + :task (game-task drill-mech) + :name "drill-mech-resolution" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor kor-vinroom) + :action (game-task-action talk) + :tex (game-task-icon gaticon-03) + :scene "drill-destroy-control-tower-intro" + ) + ) + :flags (game-task-node-flag close-task abs-task-mask) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node drill-mech-smash-consoles) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :task-mask (task-mask done) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + :description (game-text-id text-x1f1) + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-save-lurkers) + :name "city-save-lurkers-introduction" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor brutter-kiosk) + :action (game-task-action say) + :tex (game-task-icon gaticon-02) + :scene "city-save-lurkers-intro" + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-19) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-try) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node forest-protect-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + :description (game-text-id text-x209) + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-save-lurkers) + :name "city-save-lurkers-save-lurkers" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor brutter-kiosk) + :action (game-task-action talk) + :tex (game-task-icon gaticon-03) + :scene "city-save-lurkers-intro" + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-19) + :scene #f + ) + ) + :flags (game-task-node-flag task-retry task-manager) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-save-lurkers-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info (new 'static 'task-manager-info + :level 'lmeetbrt + :intro-scene #f + :resolution-scene #f + :resolution-scene-continue #f + :retry-continue "kiosk-start" + :fail-continue #f + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node city-save-lurkers-resolution) + :on-complete '(talker-spawn "bru001") + :on-fail #f + ) + :borrow '((ctywide 0 lmeetbrt display)) + :open? #f + :on-close #f + :description (game-text-id text-x1d1) + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-save-lurkers) + :name "city-save-lurkers-resolution" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor brutter-kiosk) + :action (game-task-action talk) + :tex (game-task-icon gaticon-03) + :scene "city-save-lurkers-intro" + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-19) + :scene #f + ) + ) + :flags (game-task-node-flag close-task) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-save-lurkers-save-lurkers) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '((ctywide 0 lmeetbrt display)) + :open? #f + :on-close #f + :description (game-text-id text-x1d1) + ) + (new 'static 'game-task-node-info + :level 'stadium + :task (game-task stadium-race-class) + :name "stadium-race-class1-introduction" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor keira-garage) + :action (game-task-action say) + :tex (game-task-icon gaticon-02) + :scene "city-class-1-race-intro-a" + :distance (meters 30) + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-12) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-life) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node drill-mech-resolution) + (game-task-node city-save-lurkers-resolution) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '((garage 0 lsamergd special)) + :open? #f + :on-close '(task-close! "stadium-race-class2-select-bush") + :description (game-text-id text-x208) + ) + (new 'static 'game-task-node-info + :level 'stadium + :task (game-task stadium-race-class) + :name "stadium-race-class1-race" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor keira-garage) + :action (game-task-action talk) + :tex (game-task-icon gaticon-03) + :scene "city-class-1-race-intro-a" + ) + ) + :flags (game-task-node-flag save-on-life task-retry task-manager no-fail-on-death no-slow-down) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node stadium-race-class1-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info (new 'static 'task-manager-info + :mask (task-manager-mask resolution-scene) + :level 'ctywide + :intro-scene #f + :resolution-scene "city-class-1-race-res" + :resolution-scene-continue #f + :retry-continue "stadiumd-race-retry" + :fail-continue "stadiumd-race-fail" + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node stadium-race-class1-race) + :index 2 + :on-complete #f + :on-fail #f + ) + :borrow '((stadium 0 lracelit special) (ctywide 0 lracedf special)) + :open? (lambda ((arg0 game-task-node-info)) (= (level-status *level* 'stadium) 'active)) + :on-close #f + :description (game-text-id text-x1f2) + ) + (new 'static 'game-task-node-info + :level 'stadium + :task (game-task stadium-race-class) + :name "stadium-race-class1-resolution" + :when-open #f + :flags (game-task-node-flag close-task save-on-life task-retry task-manager) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node stadium-race-class1-race) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info (new 'static 'task-manager-info + :level 'ctywide + :intro-scene #f + :resolution-scene #f + :resolution-scene-continue #f + :retry-continue #f + :fail-continue #f + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node stadium-race-class1-resolution) + :on-complete #f + :on-fail #f + ) + :borrow '() + :open? #f + :on-close #f + :description (game-text-id text-x1f2) + ) + (new 'static 'game-task-node-info + :level 'stadium + :task (game-task stadium-race-class) + :name "stadium-race-class1-select-bush" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor burning-bush-stadium) + :action (game-task-action menu) + :tex (game-task-icon gaticon-07) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-62) + :scene #f + ) + ) + :flags (game-task-node-flag no-restart) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node stadium-race-class1-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'palace + :task (game-task palace-sneak-in) + :name "palace-sneak-in-introduction" + :when-open #f + :flags (game-task-node-flag auto-close save-on-life abs-task-mask intro-wait city-wait task-manager) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node stadium-race-class1-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :task-mask (task-mask task2) + :on-open #f + :info (new 'static 'task-manager-info + :mask (task-manager-mask intro-scene) + :level 'ctywide + :intro-scene "ds163" + :resolution-scene #f + :resolution-scene-continue #f + :retry-continue #f + :fail-continue #f + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node palace-sneak-in-introduction) + :intro-delay #x1770 + :on-complete #f + :on-fail #f + ) + :borrow '() + :open? #f + :on-close #f + :description (game-text-id text-x1f3) + ) + (new 'static 'game-task-node-info + :level 'palace + :task (game-task palace-sneak-in) + :name "palace-sneak-in-meeting" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor ashelin-throne) + :action (game-task-action say) + :tex (game-task-icon gaticon-02) + :scene "palace-sneak-in-res" + :distance (meters 40) + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-26) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-life reset-on-try) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node palace-sneak-in-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '((throne 0 lashthrn special)) + :open? #f + :on-close #f + :description (game-text-id text-x1f3) + ) + (new 'static 'game-task-node-info + :level 'palace + :task (game-task palace-sneak-in) + :name "palace-sneak-in-palace-3" + :when-open #f + :flags (game-task-node-flag save-on-life) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node palace-sneak-in-meeting) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + :description (game-text-id text-x1f3) + ) + (new 'static 'game-task-node-info + :level 'palace + :task (game-task palace-sneak-in) + :name "palace-sneak-in-door" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-26) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-life) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node palace-sneak-in-palace-3) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + :description (game-text-id text-x1f3) + ) + (new 'static 'game-task-node-info + :level 'palace + :task (game-task palace-sneak-in) + :name "palace-sneak-in-resolution" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-26) + :scene #f + ) + ) + :flags (game-task-node-flag close-task abs-task-mask) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node palace-sneak-in-door) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :task-mask (task-mask done) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + :description (game-text-id text-x1f3) + ) + (new 'static 'game-task-node-info + :level 'castle + :task (game-task castle-break-in) + :name "castle-break-in-introduction" + :when-open #f + :flags (game-task-node-flag save-on-life intro-wait city-wait task-manager) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node palace-sneak-in-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info (new 'static 'task-manager-info + :mask (task-manager-mask intro-scene) + :level 'ctywide + :intro-scene "asht002" + :resolution-scene #f + :resolution-scene-continue #f + :retry-continue #f + :fail-continue #f + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node castle-break-in-introduction) + :intro-delay #x5dc + :on-complete #f + :on-fail #f + ) + :borrow '() + :open? #f + :on-close #f + :description (game-text-id text-x1f4) + ) + (new 'static 'game-task-node-info + :level 'castle + :task (game-task castle-break-in) + :name "castle-break-in-castle-1" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-20) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-life task-manager) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node castle-break-in-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info (new 'static 'task-manager-info + :level 'caspad + :intro-scene #f + :resolution-scene #f + :resolution-scene-continue #f + :retry-continue #f + :fail-continue #f + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node castle-break-in-castle-1) + :on-complete #f + :on-fail #f + :end-sphere (new 'static 'sphere :x 195072.81 :y 223707.95 :z -6889803.0 :r 28672.0) + ) + :borrow '() + :open? #f + :on-close #f + :description (game-text-id text-x1f4) + ) + (new 'static 'game-task-node-info + :level 'castle + :task (game-task castle-break-in) + :name "castle-break-in-resolution" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-27) + :scene #f + ) + ) + :flags (game-task-node-flag close-task) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node castle-break-in-castle-1) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + :description (game-text-id text-x1f4) + ) + (new 'static 'game-task-node-info + :level 'castle + :task (game-task castle-boss) + :name "castle-boss-introduction" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor baron-castle) + :action (game-task-action say) + :tex (game-task-icon gaticon-02) + :scene "castle-krew-boss-fight-intro" + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-27) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-life abs-task-mask) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node castle-break-in-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :task-mask (task-mask task1) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + :add (game-task-node-command add-gun-up-3) + ) + (new 'static 'game-task-node-info + :level 'castle + :task (game-task castle-boss) + :name "castle-boss-resolution" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-27) + :scene #f + ) + ) + :flags (game-task-node-flag close-task) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node castle-boss-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + :description (game-text-id text-x1f5) + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-whack) + :name "city-whack-pre-intro" + :when-open #f + :flags (game-task-node-flag save-on-life intro-wait city-wait task-manager) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node castle-boss-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info (new 'static 'task-manager-info + :mask (task-manager-mask intro-scene) + :level 'ctywide + :intro-scene "tess001" + :resolution-scene #f + :resolution-scene-continue #f + :retry-continue #f + :fail-continue #f + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node city-whack-pre-intro) + :intro-delay #xbb8 + :on-complete #f + :on-fail #f + ) + :borrow '() + :open? #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-whack) + :name "city-whack-introduction" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor tess-hiphog) + :action (game-task-action say) + :tex (game-task-icon gaticon-02) + :scene "city-whack-a-metal-intro" + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-08) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-life) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-whack-pre-intro) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '((hiphog 0 lwhack special)) + :open? #f + :on-close #f + :description (game-text-id text-x20e) + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-whack) + :name "city-whack-wait" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor tess-hiphog) + :action (game-task-action talk) + :tex (game-task-icon gaticon-03) + :scene "city-whack-a-metal-intro" + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-08) + :scene #f + ) + ) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-whack-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '((hiphog 0 lwhack special)) + :open? #f + :on-close #f + :description (game-text-id text-x20e) + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-whack) + :name "city-whack-resolution" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-08) + :scene #f + ) + ) + :flags (game-task-node-flag close-task set-task-mask task-manager) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-whack-wait) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :task-mask (task-mask task5) + :on-open #f + :info (new 'static 'task-manager-info + :mask (task-manager-mask resolution-scene) + :level 'lwhack + :intro-scene #f + :resolution-scene "city-whack-a-metal-res" + :resolution-scene-continue #f + :retry-continue #f + :fail-continue "hiphog-start" + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node city-whack-resolution) + :on-complete #f + :on-fail #f + ) + :borrow '((hiphog 0 lwhack special)) + :open? #f + :on-close #f + :description (game-text-id text-x20e) + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-whack) + :name "city-whack-post-game" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor whack-a-metal-hiphog) + :action (game-task-action play) + :tex (game-task-icon gaticon-06) + :scene "whack-game" + :distance (meters 6) + ) + ) + :flags (game-task-node-flag no-restart) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-whack-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'under + :task (game-task under-mech) + :name "under-mech-introduction" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor tess-hiphog) + :action (game-task-action idle) + :tex (game-task-icon gaticon-01) + :scene #f + ) + ) + :flags (game-task-node-flag auto-close save-on-life abs-task-mask) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-whack-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :task-mask (task-mask task0) + :on-open #f + :info #f + :borrow '((ctywide 1 lwideb special) (hiphog 0 lwhack special)) + :open? #f + :on-close #f + :description (game-text-id text-x1f7) + ) + (new 'static 'game-task-node-info + :level 'under + :task (game-task under-mech) + :name "under-mech-resolution" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-28) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor tess-hiphog) + :action (game-task-action idle) + :tex (game-task-icon gaticon-01) + :scene #f + ) + ) + :flags (game-task-node-flag close-task abs-task-mask) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node under-mech-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :task-mask (task-mask task1) + :on-open #f + :info #f + :borrow '((ctywide 1 lwideb special) (hiphog 0 lwhack special)) + :open? #f + :on-close #f + :description (game-text-id text-x1f7) + ) + (new 'static 'game-task-node-info + :level 'under + :task (game-task under-sig) + :name "under-sig-introduction" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-28) + :scene #f + ) + ) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node under-mech-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '((ctywide 1 lwideb special)) + :open? #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'under + :task (game-task under-sig) + :name "under-sig-centipede1-start" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-28) + :scene #f + ) + ) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node under-sig-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '((ctywide 1 lwideb special)) + :open? #f + :on-close #f + :description (game-text-id text-x1f8) + ) + (new 'static 'game-task-node-info + :level 'under + :task (game-task under-sig) + :name "under-sig-centipede1-end" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-28) + :scene #f + ) + ) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node under-sig-centipede1-start) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '((ctywide 1 lwideb special)) + :open? #f + :on-close #f + :description (game-text-id text-x1f8) + ) + (new 'static 'game-task-node-info + :level 'under + :task (game-task under-sig) + :name "under-sig-centipede2-start" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-28) + :scene #f + ) + ) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node under-sig-centipede1-end) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '((ctywide 1 lwideb special)) + :open? #f + :on-close #f + :description (game-text-id text-x1f8) + ) + (new 'static 'game-task-node-info + :level 'under + :task (game-task under-sig) + :name "under-sig-resolution" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-28) + :scene #f + ) + ) + :flags (game-task-node-flag close-task abs-task-mask) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node under-sig-centipede2-start) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :task-mask (task-mask done) + :on-open #f + :info #f + :borrow '((ctywide 1 lwideb special)) + :open? #f + :on-close #f + :description (game-text-id text-x1f8) + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-defend-stadium) + :name "city-defend-stadium-pre-intro" + :when-open #f + :flags (game-task-node-flag save-on-life intro-wait city-wait task-manager) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node under-sig-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info (new 'static 'task-manager-info + :mask (task-manager-mask intro-scene) + :level 'ctywide + :intro-scene "kei029" + :resolution-scene #f + :resolution-scene-continue #f + :retry-continue #f + :fail-continue #f + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node city-defend-stadium-pre-intro) + :intro-delay #x258 + :on-complete #f + :on-fail #f + ) + :borrow '((ctywide 1 lwideb special)) + :open? #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'stadium + :task (game-task city-defend-stadium) + :name "city-defend-stadium-introduction" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor keira-stadium) + :action (game-task-action say) + :tex (game-task-icon gaticon-02) + :scene "city-defend-stadium-intro" + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-29) + :scene #f + ) + ) + :flags (game-task-node-flag abs-task-mask task-manager) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-defend-stadium-pre-intro) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :task-mask (task-mask task1) + :on-open #f + :info (new 'static 'task-manager-info + :level 'stadium + :intro-scene #f + :resolution-scene #f + :resolution-scene-continue #f + :retry-continue #f + :fail-continue #f + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node city-defend-stadium-introduction) + :on-complete #f + :on-fail #f + ) + :borrow '((stadium 0 lkeirift special) (ctywide 1 lwideb special)) + :open? #f + :on-close #f + :description (game-text-id text-x208) + ) + (new 'static 'game-task-node-info + :level 'stadium + :task (game-task city-defend-stadium) + :name "city-defend-stadium-resolution" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-29) + :scene #f + ) + ) + :flags (game-task-node-flag close-task abs-task-mask task-manager) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-defend-stadium-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :task-mask (task-mask done) + :on-open #f + :info (new 'static 'task-manager-info + :mask (task-manager-mask resolution-scene) + :level 'stadium + :intro-scene #f + :resolution-scene "city-defend-stadium-res" + :resolution-scene-continue #f + :retry-continue "stadium-blimp-intro" + :fail-continue "stadium-blimp-intro" + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node city-defend-stadium-resolution) + :on-complete #f + :on-fail #f + ) + :borrow '((stadium 0 lkeirift special) (ctywide 1 lwideb special)) + :open? #f + :on-close #f + :description (game-text-id text-x1f9) + ) + (new 'static 'game-task-node-info + :level 'consite + :task (game-task consite-find-baron) + :name "consite-find-baron-introduction" + :when-open #f + :flags (game-task-node-flag save-on-life intro-wait task-manager) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-defend-stadium-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info (new 'static 'task-manager-info + :mask (task-manager-mask intro-scene) + :level 'ctywide + :intro-scene "vin013" + :resolution-scene #f + :resolution-scene-continue #f + :retry-continue #f + :fail-continue #f + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node consite-find-baron-introduction) + :intro-delay #x258 + :on-complete #f + :on-fail #f + ) + :borrow '((ctywide 1 lwideb special)) + :open? #f + :on-close #f + :description (game-text-id text-x210) + ) + (new 'static 'game-task-node-info + :level 'consite + :task (game-task consite-find-baron) + :name "consite-find-baron-resolution" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor baron-consite) + :action (game-task-action say) + :tex (game-task-icon gaticon-02) + :scene "consite-find-baron-res" + :distance (meters 80) + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-25) + :scene #f + ) + ) + :flags (game-task-node-flag close-task) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node consite-find-baron-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '((ctywide 1 lwideb special)) + :open? #f + :on-close #f + :description (game-text-id text-x210) + ) + (new 'static 'game-task-node-info + :level 'nest + :task (game-task nest-get-to-gun) + :name "nest-get-to-gun-introduction" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor baron-consite) + :action (game-task-action idle) + :tex (game-task-icon gaticon-01) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-life intro-wait city-wait task-manager) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node consite-find-baron-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info (new 'static 'task-manager-info + :mask (task-manager-mask intro-scene) + :level 'ctywide + :intro-scene "asht006" + :resolution-scene #f + :resolution-scene-continue #f + :retry-continue #f + :fail-continue #f + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node nest-get-to-gun-introduction) + :intro-delay #x258 + :on-complete #f + :on-fail #f + ) + :borrow '((ctywide 1 lwideb special)) + :open? #f + :on-close #f + :description (game-text-id text-x1fe) + ) + (new 'static 'game-task-node-info + :level 'nest + :task (game-task nest-get-to-gun) + :name "nest-get-to-gun-resolution" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-20) + :scene #f + ) + ) + :flags (game-task-node-flag close-task) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node nest-get-to-gun-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '((ctywide 1 lwideb special)) + :open? #f + :on-close #f + :description (game-text-id text-x1fe) + ) + (new 'static 'game-task-node-info + :level 'nest + :task (game-task nest-enter) + :name "nest-enter-introduction" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-20) + :scene #f + ) + ) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node nest-get-to-gun-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '((ctywide 1 lwideb special)) + :open? #f + :on-close #f + :description (game-text-id text-x211) + ) + (new 'static 'game-task-node-info + :level 'nest + :task (game-task nest-enter) + :name "nest-enter-resolution" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-20) + :scene #f + ) + ) + :flags (game-task-node-flag close-task) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node nest-enter-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '((ctywide 1 lwideb special)) + :open? #f + :on-close #f + :description (game-text-id text-x211) + ) + (new 'static 'game-task-node-info + :level 'nest + :task (game-task nest-boss) + :name "nest-boss-introduction" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-20) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-life) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node nest-enter-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '((ctywide 1 lwideb special)) + :open? #f + :on-close #f + :description (game-text-id text-x1ff) + ) + (new 'static 'game-task-node-info + :level 'nest + :task (game-task nest-boss) + :name "nest-boss-resolution" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-20) + :scene #f + ) + ) + :flags (game-task-node-flag close-task task-manager) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node nest-boss-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info (new 'static 'task-manager-info + :level 'nestb + :intro-scene #f + :resolution-scene #f + :resolution-scene-continue #f + :retry-continue #f + :fail-continue #f + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node nest-boss-resolution) + :on-complete #f + :on-fail #f + ) + :borrow '((ctywide 1 lwideb special) (outrocst 0 loutcstb special)) + :open? #f + :on-close #f + :description (game-text-id text-x1ff) + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-win) + :name "city-win-pre-intro" + :when-open #f + :flags (game-task-node-flag clear-task-mask) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node nest-boss-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :task-mask (task-mask task3 task5) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-win) + :name "city-win-introduction" + :when-open #f + :flags (game-task-node-flag save-on-life set-task-mask) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-win-pre-intro) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :task-mask (task-mask task4) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-win) + :name "city-win-resolution" + :when-open #f + :flags (game-task-node-flag close-task save-on-life) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-win-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '((hiphog 0 lhipout display)) + :open? #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-oracle) + :name "city-oracle-introduction" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-31) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor oracle-oracle) + :action (game-task-action say) + :tex (game-task-icon gaticon-02) + :scene "city-oracle-intro" + ) + ) + :flags (game-task-node-flag save-on-life) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node atoll-water-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + :description (game-text-id text-x212) + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-oracle) + :name "city-oracle-level0" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-31) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor oracle-oracle) + :action (game-task-action say) + :tex (game-task-icon gaticon-02) + :scene "city-oracle-level-0" + ) + ) + :flags (game-task-node-flag save-on-life task-manager) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-oracle-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info (new 'static 'task-manager-info + :level 'oracle + :intro-scene #f + :resolution-scene #f + :resolution-scene-continue #f + :retry-continue #f + :fail-continue #f + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node city-oracle-level0) + :on-complete #f + :on-fail #f + ) + :borrow '() + :open? (lambda ((arg0 game-task-node-info)) (>= (-> *game-info* gem) 25.0)) + :on-close #f + :add (game-task-node-command add-darkjak-0) + :description (game-text-id text-x212) + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-oracle) + :name "city-oracle-level0-training" + :when-open #f + :flags (game-task-node-flag save-on-life task-manager) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-oracle-level0) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info (new 'static 'task-manager-info + :level 'oracle + :intro-scene #f + :resolution-scene #f + :resolution-scene-continue #f + :retry-continue #f + :fail-continue #f + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node city-oracle-level0-training) + :on-complete #f + :on-fail #f + ) + :borrow '() + :open? #f + :on-close #f + :description (game-text-id text-x212) + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-oracle) + :name "city-oracle-level1" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-31) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor oracle-oracle) + :action (game-task-action say) + :tex (game-task-icon gaticon-02) + :scene "city-oracle-level-1" + ) + ) + :flags (game-task-node-flag save-on-life task-manager) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-oracle-level0-training) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info (new 'static 'task-manager-info + :level 'oracle + :intro-scene #f + :resolution-scene #f + :resolution-scene-continue #f + :retry-continue #f + :fail-continue #f + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node city-oracle-level1) + :on-complete #f + :on-fail #f + ) + :borrow '() + :open? (lambda ((arg0 game-task-node-info)) (>= (-> *game-info* gem) 200.0)) + :on-close #f + :add (game-task-node-command add-darkjak-1) + :description (game-text-id text-x212) + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-oracle) + :name "city-oracle-level1-training" + :when-open #f + :flags (game-task-node-flag save-on-life task-manager) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-oracle-level1) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info (new 'static 'task-manager-info + :level 'oracle + :intro-scene #f + :resolution-scene #f + :resolution-scene-continue #f + :retry-continue #f + :fail-continue #f + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node city-oracle-level1-training) + :on-complete #f + :on-fail #f + ) + :borrow '() + :open? #f + :on-close #f + :description (game-text-id text-x212) + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-oracle) + :name "city-oracle-level2" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-31) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor oracle-oracle) + :action (game-task-action say) + :tex (game-task-icon gaticon-02) + :scene "city-oracle-level-2" + ) + ) + :flags (game-task-node-flag save-on-life task-manager) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-oracle-level1-training) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info (new 'static 'task-manager-info + :level 'oracle + :intro-scene #f + :resolution-scene #f + :resolution-scene-continue #f + :retry-continue #f + :fail-continue #f + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node city-oracle-level2) + :on-complete #f + :on-fail #f + ) + :borrow '() + :open? (lambda ((arg0 game-task-node-info)) (>= (-> *game-info* gem) 200.0)) + :on-close #f + :add (game-task-node-command add-darkjak-2) + :description (game-text-id text-x212) + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-oracle) + :name "city-oracle-level2-training" + :when-open #f + :flags (game-task-node-flag save-on-life task-manager) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-oracle-level2) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info (new 'static 'task-manager-info + :level 'oracle + :intro-scene #f + :resolution-scene #f + :resolution-scene-continue #f + :retry-continue #f + :fail-continue #f + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node city-oracle-level2-training) + :on-complete #f + :on-fail #f + ) + :borrow '() + :open? #f + :on-close #f + :description (game-text-id text-x212) + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-oracle) + :name "city-oracle-level3" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-31) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor oracle-oracle) + :action (game-task-action say) + :tex (game-task-icon gaticon-02) + :scene "city-oracle-level-3" + ) + ) + :flags (game-task-node-flag save-on-life task-manager) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-oracle-level2-training) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info (new 'static 'task-manager-info + :level 'oracle + :intro-scene #f + :resolution-scene #f + :resolution-scene-continue #f + :retry-continue #f + :fail-continue #f + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node city-oracle-level3) + :on-complete #f + :on-fail #f + ) + :borrow '() + :open? (lambda ((arg0 game-task-node-info)) (>= (-> *game-info* gem) 100.0)) + :on-close #f + :add (game-task-node-command add-darkjak-3) + :description (game-text-id text-x212) + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-oracle) + :name "city-oracle-level3-training" + :when-open #f + :flags (game-task-node-flag save-on-life task-manager) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-oracle-level3) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info (new 'static 'task-manager-info + :level 'oracle + :intro-scene #f + :resolution-scene #f + :resolution-scene-continue #f + :retry-continue #f + :fail-continue #f + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node city-oracle-level3-training) + :on-complete #f + :on-fail #f + ) + :borrow '() + :open? #f + :on-close #f + :description (game-text-id text-x212) + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-burning-bush-ring-1) + :name "city-burning-bush-ring-1-introduction" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor burning-bush-slumb) + :action (game-task-action show) + :tex (game-task-icon gaticon-04) + :scene "bb01int" + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-47) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-try) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node atoll-water-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-burning-bush-ring-1) + :name "city-burning-bush-ring-1-resolution" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor burning-bush-slumb) + :action (game-task-action play) + :tex (game-task-icon gaticon-06) + :scene #f + ) + ) + :flags (game-task-node-flag close-task task-retry task-manager) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-burning-bush-ring-1-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info (new 'static 'task-manager-info + :level 'lbbush + :intro-scene #f + :resolution-scene #f + :resolution-scene-continue #f + :retry-continue "ctyslumb-burning-bush" + :fail-continue #f + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node city-burning-bush-ring-1-resolution) + :index 1 + :on-complete '(talker-spawn "bb01win") + :on-fail #f + ) + :borrow '((ctywide 0 lbbush display)) + :open? #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-burning-bush-get-to-1) + :name "city-burning-bush-get-to-1-introduction" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor burning-bush-sluma) + :action (game-task-action show) + :tex (game-task-icon gaticon-04) + :scene "bb26int" + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-46) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-try) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-red-gun-training-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-burning-bush-get-to-1) + :name "city-burning-bush-get-to-1-resolution" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor burning-bush-sluma) + :action (game-task-action play) + :tex (game-task-icon gaticon-06) + :scene #f + ) + ) + :flags (game-task-node-flag close-task task-retry task-manager) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-burning-bush-get-to-1-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info (new 'static 'task-manager-info + :level 'lbbush + :intro-scene #f + :resolution-scene #f + :resolution-scene-continue #f + :retry-continue "ctysluma-burning-bush" + :fail-continue #f + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node city-burning-bush-get-to-1-resolution) + :index 1 + :on-complete '(talker-spawn "bb10win") + :on-fail #f + ) + :borrow '((ctywide 0 lbbush display)) + :open? #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-burning-bush-get-to-2) + :name "city-burning-bush-get-to-2-introduction" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor burning-bush-indb) + :action (game-task-action show) + :tex (game-task-icon gaticon-04) + :scene "bb30int" + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-56) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-try) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node atoll-sig-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-burning-bush-get-to-2) + :name "city-burning-bush-get-to-2-resolution" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor burning-bush-indb) + :action (game-task-action play) + :tex (game-task-icon gaticon-06) + :scene #f + ) + ) + :flags (game-task-node-flag close-task task-retry task-manager) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-burning-bush-get-to-2-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info (new 'static 'task-manager-info + :level 'lbbush + :intro-scene #f + :resolution-scene #f + :resolution-scene-continue #f + :retry-continue "ctyindb-burning-bush" + :fail-continue #f + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node city-burning-bush-get-to-2-resolution) + :index #xe + :on-complete '(talker-spawn "bb10win") + :on-fail #f + ) + :borrow '((ctywide 0 lbbush display)) + :open? #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-burning-bush-get-to-3) + :name "city-burning-bush-get-to-3-introduction" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor burning-bush-port-3) + :action (game-task-action show) + :tex (game-task-icon gaticon-04) + :scene "bb27int" + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-50) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-try) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node sewer-enemy-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-burning-bush-get-to-3) + :name "city-burning-bush-get-to-3-resolution" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor burning-bush-port-3) + :action (game-task-action play) + :tex (game-task-icon gaticon-06) + :scene #f + ) + ) + :flags (game-task-node-flag close-task task-retry task-manager) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-burning-bush-get-to-3-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info (new 'static 'task-manager-info + :level 'lbbush + :intro-scene #f + :resolution-scene #f + :resolution-scene-continue #f + :retry-continue "ctyport-burning-bush-3" + :fail-continue #f + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node city-burning-bush-get-to-3-resolution) + :index 3 + :on-complete '(talker-spawn "bb10win") + :on-fail #f + ) + :borrow '((ctywide 0 lbbush display)) + :open? #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-burning-bush-get-to-4) + :name "city-burning-bush-get-to-4-introduction" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor burning-bush-slumc) + :action (game-task-action show) + :tex (game-task-icon gaticon-04) + :scene "bb28int" + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-49) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-try) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node atoll-battle-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-burning-bush-get-to-4) + :name "city-burning-bush-get-to-4-resolution" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor burning-bush-slumc) + :action (game-task-action play) + :tex (game-task-icon gaticon-06) + :scene #f + ) + ) + :flags (game-task-node-flag close-task task-retry task-manager) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-burning-bush-get-to-4-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info (new 'static 'task-manager-info + :level 'lbbush + :intro-scene #f + :resolution-scene #f + :resolution-scene-continue #f + :retry-continue "ctyslumc-burning-bush" + :fail-continue #f + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node city-burning-bush-get-to-4-resolution) + :index #xa + :on-complete '(talker-spawn "bb10win") + :on-fail #f + ) + :borrow '((ctywide 0 lbbush display)) + :open? #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-burning-bush-collection-1) + :name "city-burning-bush-collection-1-introduction" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor burning-bush-genb) + :action (game-task-action show) + :tex (game-task-icon gaticon-04) + :scene "bb19int" + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-42) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-try) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node stadium-board1-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-burning-bush-collection-1) + :name "city-burning-bush-collection-1-resolution" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor burning-bush-genb) + :action (game-task-action play) + :tex (game-task-icon gaticon-06) + :scene #f + ) + ) + :flags (game-task-node-flag close-task task-retry task-manager) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-burning-bush-collection-1-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info (new 'static 'task-manager-info + :level 'lbbush + :intro-scene #f + :resolution-scene #f + :resolution-scene-continue #f + :retry-continue "ctygenb-burning-bush" + :fail-continue #f + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node city-burning-bush-collection-1-resolution) + :index 1 + :on-complete '(talker-spawn "bb19win") + :on-fail #f + ) + :borrow '((ctywide 0 lbbush display)) + :open? #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-burning-bush-racepoint-1) + :name "city-burning-bush-racepoint-1-introduction" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor burning-bush-marka) + :action (game-task-action show) + :tex (game-task-icon gaticon-04) + :scene "bb10int" + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-57) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-try) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node mountain-collection-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? (lambda ((arg0 game-task-node-info)) (or (not (task-node-closed? (game-task-node forest-scouts-resolution))) + (task-node-closed? (game-task-node city-escort-kid-resolution)) + ) + ) + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-burning-bush-racepoint-1) + :name "city-burning-bush-racepoint-1-resolution" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor burning-bush-marka) + :action (game-task-action play) + :tex (game-task-icon gaticon-06) + :scene #f + ) + ) + :flags (game-task-node-flag close-task task-retry task-manager) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-burning-bush-racepoint-1-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info (new 'static 'task-manager-info + :level 'ctywide + :intro-scene #f + :resolution-scene #f + :resolution-scene-continue #f + :retry-continue "ctymarka-burning-bush" + :fail-continue #f + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node city-burning-bush-racepoint-1-resolution) + :on-complete '(talker-spawn "bb14win") + :on-fail #f + ) + :borrow '() + :open? #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-burning-bush-ring-2) + :name "city-burning-bush-ring-2-introduction" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor burning-bush-port) + :action (game-task-action show) + :tex (game-task-icon gaticon-04) + :scene "bb02int" + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-52) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-try) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node forest-scouts-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-burning-bush-ring-2) + :name "city-burning-bush-ring-2-resolution" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor burning-bush-port) + :action (game-task-action play) + :tex (game-task-icon gaticon-06) + :scene #f + ) + ) + :flags (game-task-node-flag close-task task-retry task-manager) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-burning-bush-ring-2-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info (new 'static 'task-manager-info + :level 'lbbush + :intro-scene #f + :resolution-scene #f + :resolution-scene-continue #f + :retry-continue "ctyport-burning-bush" + :fail-continue #f + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node city-burning-bush-ring-2-resolution) + :index 2 + :on-complete '(talker-spawn "bb02win") + :on-fail #f + ) + :borrow '((ctywide 0 lbbush display)) + :open? #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-burning-bush-get-to-5) + :name "city-burning-bush-get-to-5-introduction" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor burning-bush-farmb) + :action (game-task-action show) + :tex (game-task-icon gaticon-04) + :scene "bb29int" + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-54) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-try) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node forest-scouts-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-burning-bush-get-to-5) + :name "city-burning-bush-get-to-5-resolution" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor burning-bush-farmb) + :action (game-task-action play) + :tex (game-task-icon gaticon-06) + :scene #f + ) + ) + :flags (game-task-node-flag close-task task-retry task-manager) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-burning-bush-get-to-5-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info (new 'static 'task-manager-info + :level 'lbbush + :intro-scene #f + :resolution-scene #f + :resolution-scene-continue #f + :retry-continue "ctyfarmb-burning-bush" + :fail-continue #f + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node city-burning-bush-get-to-5-resolution) + :index 5 + :on-complete '(talker-spawn "bb10win") + :on-fail #f + ) + :borrow '((ctywide 0 lbbush display)) + :open? #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-burning-bush-get-to-6) + :name "city-burning-bush-get-to-6-introduction" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor burning-bush-markb-2) + :action (game-task-action show) + :tex (game-task-icon gaticon-04) + :scene "bb31int" + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-59) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-try) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-intercept-tanker-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-burning-bush-get-to-6) + :name "city-burning-bush-get-to-6-resolution" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor burning-bush-markb-2) + :action (game-task-action play) + :tex (game-task-icon gaticon-06) + :scene #f + ) + ) + :flags (game-task-node-flag close-task task-retry task-manager) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-burning-bush-get-to-6-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info (new 'static 'task-manager-info + :level 'lbbush + :intro-scene #f + :resolution-scene #f + :resolution-scene-continue #f + :retry-continue "ctymarkb-burning-bush-2" + :fail-continue #f + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node city-burning-bush-get-to-6-resolution) + :index #xd + :on-complete '(talker-spawn "bb10win") + :on-fail #f + ) + :borrow '((ctywide 0 lbbush display)) + :open? #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-burning-bush-shuttle-1) + :name "city-burning-bush-shuttle-1-introduction" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor burning-bush-marka) + :action (game-task-action show) + :tex (game-task-icon gaticon-04) + :scene "bb07int" + ) + (new 'static 'game-task-event + :actor (game-task-actor brutter-kiosk) + :action (game-task-action idle) + :tex (game-task-icon gaticon-01) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-57) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-try) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-meet-brutter-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-burning-bush-shuttle-1) + :name "city-burning-bush-shuttle-1-resolution" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor burning-bush-marka) + :action (game-task-action play) + :tex (game-task-icon gaticon-06) + :scene #f + ) + ) + :flags (game-task-node-flag close-task task-retry task-manager) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-burning-bush-shuttle-1-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info (new 'static 'task-manager-info + :level 'lshuttle + :intro-scene #f + :resolution-scene #f + :resolution-scene-continue #f + :retry-continue "ctymarka-burning-bush" + :fail-continue #f + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node city-burning-bush-shuttle-1-resolution) + :on-complete '(talker-spawn "bb07win") + :on-fail #f + ) + :borrow '((ctywide 0 lshuttle display)) + :open? #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-burning-bush-get-to-7) + :name "city-burning-bush-get-to-7-introduction" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor burning-bush-markb) + :action (game-task-action show) + :tex (game-task-icon gaticon-04) + :scene "bb32int" + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-58) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-try) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node drill-ship-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-burning-bush-get-to-7) + :name "city-burning-bush-get-to-7-resolution" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor burning-bush-markb) + :action (game-task-action play) + :tex (game-task-icon gaticon-06) + :scene #f + ) + ) + :flags (game-task-node-flag close-task task-retry task-manager) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-burning-bush-get-to-7-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info (new 'static 'task-manager-info + :level 'lbbush + :intro-scene #f + :resolution-scene #f + :resolution-scene-continue #f + :retry-continue "ctymarkb-burning-bush" + :fail-continue #f + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node city-burning-bush-get-to-7-resolution) + :index #xc + :on-complete '(talker-spawn "bb10win") + :on-fail #f + ) + :borrow '((ctywide 0 lbbush display)) + :open? #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-burning-bush-get-to-8) + :name "city-burning-bush-get-to-8-introduction" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor burning-bush-farma) + :action (game-task-action show) + :tex (game-task-icon gaticon-04) + :scene "bb33int" + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-53) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-try) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node forest-hunt-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-burning-bush-get-to-8) + :name "city-burning-bush-get-to-8-resolution" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor burning-bush-farma) + :action (game-task-action play) + :tex (game-task-icon gaticon-06) + :scene #f + ) + ) + :flags (game-task-node-flag close-task task-retry task-manager) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-burning-bush-get-to-8-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info (new 'static 'task-manager-info + :level 'lbbush + :intro-scene #f + :resolution-scene #f + :resolution-scene-continue #f + :retry-continue "ctyfarma-burning-bush" + :fail-continue #f + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node city-burning-bush-get-to-8-resolution) + :index #x6 + :on-complete '(talker-spawn "bb10win") + :on-fail #f + ) + :borrow '((ctywide 0 lbbush display)) + :open? #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-burning-bush-get-to-9) + :name "city-burning-bush-get-to-9-introduction" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor burning-bush-genb) + :action (game-task-action show) + :tex (game-task-icon gaticon-04) + :scene "bb34int" + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-42) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-try) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node stadium-race-class3-resolution) + (game-task-node city-burning-bush-collection-1-resolution) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-burning-bush-get-to-9) + :name "city-burning-bush-get-to-9-resolution" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor burning-bush-genb) + :action (game-task-action play) + :tex (game-task-icon gaticon-06) + :scene #f + ) + ) + :flags (game-task-node-flag close-task task-retry task-manager) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-burning-bush-get-to-9-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info (new 'static 'task-manager-info + :level 'lbbush + :intro-scene #f + :resolution-scene #f + :resolution-scene-continue #f + :retry-continue "ctygenb-burning-bush" + :fail-continue #f + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node city-burning-bush-get-to-9-resolution) + :index #x8 + :on-complete '(talker-spawn "bb10win") + :on-fail #f + ) + :borrow '((ctywide 0 lbbush display)) + :open? #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-burning-bush-collection-2) + :name "city-burning-bush-collection-2-introduction" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor burning-bush-genc) + :action (game-task-action show) + :tex (game-task-icon gaticon-04) + :scene "bb20int" + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-44) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-try) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-destroy-guard-vehicles-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-burning-bush-collection-2) + :name "city-burning-bush-collection-2-resolution" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor burning-bush-genc) + :action (game-task-action play) + :tex (game-task-icon gaticon-06) + :scene #f + ) + ) + :flags (game-task-node-flag close-task task-retry task-manager) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-burning-bush-collection-2-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info (new 'static 'task-manager-info + :level 'lbbush + :intro-scene #f + :resolution-scene #f + :resolution-scene-continue #f + :retry-continue "ctygenc-burning-bush" + :fail-continue #f + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node city-burning-bush-collection-2-resolution) + :on-complete '(talker-spawn "bb20win") + :on-fail #f + ) + :borrow '((ctywide 0 lbbush display)) + :open? #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-burning-bush-get-to-10) + :name "city-burning-bush-get-to-10-introduction" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor burning-bush-inda) + :action (game-task-action show) + :tex (game-task-icon gaticon-04) + :scene "bb35int" + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-55) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-try) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-errol-challenge-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-burning-bush-get-to-10) + :name "city-burning-bush-get-to-10-resolution" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor burning-bush-inda) + :action (game-task-action play) + :tex (game-task-icon gaticon-06) + :scene #f + ) + ) + :flags (game-task-node-flag close-task task-retry task-manager) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-burning-bush-get-to-10-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info (new 'static 'task-manager-info + :level 'lbbush + :intro-scene #f + :resolution-scene #f + :resolution-scene-continue #f + :retry-continue "ctyinda-burning-bush" + :fail-continue #f + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node city-burning-bush-get-to-10-resolution) + :index 2 + :on-complete '(talker-spawn "bb10win") + :on-fail #f + ) + :borrow '((ctywide 0 lbbush display)) + :open? #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-burning-bush-get-to-11) + :name "city-burning-bush-get-to-11-introduction" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor burning-bush-gena) + :action (game-task-action show) + :tex (game-task-icon gaticon-04) + :scene "bb36int" + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-40) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-try) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-errol-challenge-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-burning-bush-get-to-11) + :name "city-burning-bush-get-to-11-resolution" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor burning-bush-gena) + :action (game-task-action play) + :tex (game-task-icon gaticon-06) + :scene #f + ) + ) + :flags (game-task-node-flag close-task task-retry task-manager) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-burning-bush-get-to-11-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info (new 'static 'task-manager-info + :level 'lbbush + :intro-scene #f + :resolution-scene #f + :resolution-scene-continue #f + :retry-continue "ctygena-burning-bush" + :fail-continue #f + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node city-burning-bush-get-to-11-resolution) + :index #x9 + :on-complete '(talker-spawn "bb10win") + :on-fail #f + ) + :borrow '((ctywide 0 lbbush display)) + :open? #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-burning-bush-ring-3) + :name "city-burning-bush-ring-3-introduction" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor burning-bush-slumb) + :action (game-task-action show) + :tex (game-task-icon gaticon-04) + :scene "bb03int" + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-47) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-try) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node ruins-mech-resolution) + (game-task-node city-burning-bush-ring-1-resolution) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-burning-bush-ring-3) + :name "city-burning-bush-ring-3-resolution" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor burning-bush-slumb) + :action (game-task-action play) + :tex (game-task-icon gaticon-06) + :scene #f + ) + ) + :flags (game-task-node-flag close-task task-retry task-manager) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-burning-bush-ring-3-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info (new 'static 'task-manager-info + :level 'lbbush + :intro-scene #f + :resolution-scene #f + :resolution-scene-continue #f + :retry-continue "ctyslumb-burning-bush" + :fail-continue #f + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node city-burning-bush-ring-3-resolution) + :on-complete '(talker-spawn "bb03win") + :on-fail #f + ) + :borrow '((ctywide 0 lbbush display)) + :open? #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-burning-bush-get-to-12) + :name "city-burning-bush-get-to-12-introduction" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor burning-bush-marka) + :action (game-task-action show) + :tex (game-task-icon gaticon-04) + :scene "bb37int" + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-57) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-try) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node forest-protect-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-burning-bush-get-to-12) + :name "city-burning-bush-get-to-12-resolution" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor burning-bush-marka) + :action (game-task-action play) + :tex (game-task-icon gaticon-06) + :scene #f + ) + ) + :flags (game-task-node-flag close-task task-retry task-manager) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-burning-bush-get-to-12-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info (new 'static 'task-manager-info + :level 'lbbush + :intro-scene #f + :resolution-scene #f + :resolution-scene-continue #f + :retry-continue "ctymarka-burning-bush" + :fail-continue #f + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node city-burning-bush-get-to-12-resolution) + :on-complete '(talker-spawn "bb10win") + :on-fail #f + ) + :borrow '((ctywide 0 lbbush display)) + :open? #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-burning-bush-bombbot-1) + :name "city-burning-bush-bombbot-1-introduction" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor burning-bush-marka) + :action (game-task-action show) + :tex (game-task-icon gaticon-04) + :scene "bb05int" + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-57) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-try) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-save-lurkers-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-burning-bush-bombbot-1) + :name "city-burning-bush-bombbot-1-resolution" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor burning-bush-marka) + :action (game-task-action play) + :tex (game-task-icon gaticon-06) + :scene #f + ) + ) + :flags (game-task-node-flag close-task task-retry task-manager) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-burning-bush-bombbot-1-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info (new 'static 'task-manager-info + :level 'lbombbot + :intro-scene #f + :resolution-scene #f + :resolution-scene-continue #f + :retry-continue "ctymarka-burning-bush" + :fail-continue #f + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node city-burning-bush-bombbot-1-resolution) + :on-complete '(talker-spawn "bb05win") + :on-fail #f + ) + :borrow '((ctywide 0 lbombbot display)) + :open? #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-burning-bush-get-to-13) + :name "city-burning-bush-get-to-13-introduction" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor burning-bush-slumb-2) + :action (game-task-action show) + :tex (game-task-icon gaticon-04) + :scene "bb28int" + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-48) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-try) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node stadium-race-class1-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-burning-bush-get-to-13) + :name "city-burning-bush-get-to-13-resolution" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor burning-bush-slumb-2) + :action (game-task-action play) + :tex (game-task-icon gaticon-06) + :scene #f + ) + ) + :flags (game-task-node-flag close-task task-retry task-manager) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-burning-bush-get-to-13-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info (new 'static 'task-manager-info + :level 'lbbush + :intro-scene #f + :resolution-scene #f + :resolution-scene-continue #f + :retry-continue "ctyslumb-burning-bush-2" + :fail-continue #f + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node city-burning-bush-get-to-13-resolution) + :index #xb + :on-complete '(talker-spawn "bb10win") + :on-fail #f + ) + :borrow '((ctywide 0 lbbush display)) + :open? #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-burning-bush-get-to-14) + :name "city-burning-bush-get-to-14-introduction" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor burning-bush-gena-2) + :action (game-task-action show) + :tex (game-task-icon gaticon-04) + :scene "bb29int" + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-41) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-try) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node nest-boss-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-burning-bush-get-to-14) + :name "city-burning-bush-get-to-14-resolution" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor burning-bush-gena-2) + :action (game-task-action play) + :tex (game-task-icon gaticon-06) + :scene #f + ) + ) + :flags (game-task-node-flag close-task task-retry task-manager) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-burning-bush-get-to-14-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info (new 'static 'task-manager-info + :level 'lbbush + :intro-scene #f + :resolution-scene #f + :resolution-scene-continue #f + :retry-continue "ctygena-burning-bush-2" + :fail-continue #f + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node city-burning-bush-get-to-14-resolution) + :index #x7 + :on-complete '(talker-spawn "bb10win") + :on-fail #f + ) + :borrow '((ctywide 0 lbbush display)) + :open? #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-burning-bush-get-to-15) + :name "city-burning-bush-get-to-15-introduction" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor burning-bush-pal) + :action (game-task-action show) + :tex (game-task-icon gaticon-04) + :scene "bb30int" + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-60) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-try) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node nest-boss-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-burning-bush-get-to-15) + :name "city-burning-bush-get-to-15-resolution" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor burning-bush-pal) + :action (game-task-action play) + :tex (game-task-icon gaticon-06) + :scene #f + ) + ) + :flags (game-task-node-flag close-task task-retry task-manager) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-burning-bush-get-to-15-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info (new 'static 'task-manager-info + :level 'lbbush + :intro-scene #f + :resolution-scene #f + :resolution-scene-continue #f + :retry-continue "ctypal-burning-bush" + :fail-continue #f + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node city-burning-bush-get-to-15-resolution) + :index 4 + :on-complete '(talker-spawn "bb10win") + :on-fail #f + ) + :borrow '((ctywide 0 lbbush display)) + :open? #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-burning-bush-collection-3) + :name "city-burning-bush-collection-3-introduction" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor burning-bush-farma) + :action (game-task-action show) + :tex (game-task-icon gaticon-04) + :scene "cityv152" + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-53) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-try) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node nest-boss-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-burning-bush-collection-3) + :name "city-burning-bush-collection-3-resolution" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor burning-bush-farma) + :action (game-task-action play) + :tex (game-task-icon gaticon-06) + :scene #f + ) + ) + :flags (game-task-node-flag close-task task-retry task-manager) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-burning-bush-collection-3-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info (new 'static 'task-manager-info + :level 'lbbush + :intro-scene #f + :resolution-scene #f + :resolution-scene-continue #f + :retry-continue "ctyfarma-burning-bush" + :fail-continue #f + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node city-burning-bush-collection-3-resolution) + :index 2 + :on-complete '(talker-spawn "cityv154") + :on-fail #f + ) + :borrow '((ctywide 0 lbbush display)) + :open? #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-burning-bush-race-errol) + :name "city-burning-bush-race-errol-introduction" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor burning-bush-port) + :action (game-task-action show) + :tex (game-task-icon gaticon-04) + :scene "bb23int" + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-52) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-try) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-errol-challenge-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-burning-bush-race-errol) + :name "city-burning-bush-race-errol-resolution" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor burning-bush-port) + :action (game-task-action play) + :tex (game-task-icon gaticon-06) + :scene #f + ) + ) + :flags (game-task-node-flag close-task save-on-life task-retry city-wait task-manager) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-burning-bush-race-errol-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info (new 'static 'task-manager-info + :level 'lerlchal + :intro-scene #f + :resolution-scene #f + :resolution-scene-continue #f + :retry-continue "ctyport-errol-race-retry" + :fail-continue "ctyport-burning-bush" + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node city-burning-bush-race-errol-resolution) + :index #x7 + :on-complete #f + :on-fail #f + ) + :borrow '((ctywide 0 lerlchal display)) + :open? #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-burning-bush-race-port) + :name "city-burning-bush-race-port-introduction" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor burning-bush-port-3) + :action (game-task-action show) + :tex (game-task-icon gaticon-04) + :scene "bb24int" + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-50) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-try) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node stadium-race-class1-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-burning-bush-race-port) + :name "city-burning-bush-race-port-resolution" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor burning-bush-port-3) + :action (game-task-action play) + :tex (game-task-icon gaticon-06) + :scene #f + ) + ) + :flags (game-task-node-flag close-task save-on-life task-retry city-wait task-manager) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-burning-bush-race-port-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info (new 'static 'task-manager-info + :level 'lprtrace + :intro-scene #f + :resolution-scene #f + :resolution-scene-continue #f + :retry-continue "ctyport-race-retry" + :fail-continue "ctyport-burning-bush-3" + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node city-burning-bush-race-port-resolution) + :index #x8 + :on-complete #f + :on-fail #f + ) + :borrow '((ctywide 0 lprtrace display)) + :open? #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'stadium + :task (game-task stadium-burning-bush-race-board) + :name "stadium-burning-bush-race-board-introduction" + :when-open #f + :flags (game-task-node-flag save-on-life) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node stadium-race-class3-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close '(begin + (when (task-closed? "stadium-race-class3-resolution") + (task-open! "stadium-burning-bush-race-class3-introduction") + (task-open! "stadium-burning-bush-race-class3-r-introduction") + ) + (when (task-closed? "stadium-race-class2-resolution") + (task-open! "stadium-burning-bush-race-class2-introduction") + (task-open! "stadium-burning-bush-race-class2-r-introduction") + ) + (when (task-closed? "stadium-race-class1-resolution") + (task-open! "stadium-burning-bush-race-class1-introduction") + (task-open! "stadium-burning-bush-race-class1-r-introduction") + ) + ) + ) + (new 'static 'game-task-node-info + :level 'stadium + :task (game-task stadium-burning-bush-race-board) + :name "stadium-burning-bush-race-board-resolution" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor burning-bush-stadium) + :action (game-task-action play) + :tex (game-task-icon gaticon-06) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-39) + :scene #f + ) + ) + :flags (game-task-node-flag close-task task-retry task-manager) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node stadium-burning-bush-race-board-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info (new 'static 'task-manager-info + :level 'ctywide + :intro-scene #f + :resolution-scene #f + :resolution-scene-continue #f + :retry-continue "skatea-training-judge" + :fail-continue "stadium-burning-bush" + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node stadium-burning-bush-race-board-resolution) + :on-complete #f + :on-fail #f + ) + :borrow '() + :open? (lambda ((arg0 game-task-node-info)) (let ((v1-1 (level-get-target-inside *level*))) + (the-as symbol (and v1-1 (= (-> v1-1 info taskname) (-> arg0 level)))) + ) + ) + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'stadium + :task (game-task stadium-burning-bush-race-class3) + :name "stadium-burning-bush-race-class3-introduction" + :when-open #f + :flags (game-task-node-flag save-on-life) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node stadium-race-class3-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close '(begin + (when (task-closed? "stadium-board1-resolution") + (task-open! "stadium-burning-bush-race-board-introduction") + ) + (when (task-closed? "stadium-race-class2-resolution") + (task-open! "stadium-burning-bush-race-class2-introduction") + (task-open! "stadium-burning-bush-race-class2-r-introduction") + ) + (when (task-closed? "stadium-race-class1-resolution") + (task-open! "stadium-burning-bush-race-class1-introduction") + (task-open! "stadium-burning-bush-race-class1-r-introduction") + ) + (task-open! "stadium-burning-bush-race-class3-r-introduction") + ) + ) + (new 'static 'game-task-node-info + :level 'stadium + :task (game-task stadium-burning-bush-race-class3) + :name "stadium-burning-bush-race-class3-resolution" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor burning-bush-stadium) + :action (game-task-action play) + :tex (game-task-icon gaticon-06) + :scene #f + ) + ) + :flags (game-task-node-flag close-task task-retry task-manager no-slow-down) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node stadium-burning-bush-race-class3-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info (new 'static 'task-manager-info + :level 'ctywide + :intro-scene #f + :resolution-scene #f + :resolution-scene-continue #f + :retry-continue "stadiumb-race-retry" + :fail-continue "stadiumb-race-fail" + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node stadium-burning-bush-race-class3-resolution) + :index 4 + :on-complete #f + :on-fail #f + ) + :borrow '((stadium 0 lracelit special) (ctywide 0 lracebf special)) + :open? (lambda ((arg0 game-task-node-info)) (let ((v1-1 (level-get-target-inside *level*))) + (the-as symbol (and v1-1 (= (-> v1-1 info taskname) (-> arg0 level)))) + ) + ) + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'stadium + :task (game-task stadium-burning-bush-race-class2) + :name "stadium-burning-bush-race-class2-introduction" + :when-open #f + :flags (game-task-node-flag save-on-life) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node stadium-race-class2-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close '(begin + (when (task-closed? "stadium-board1-resolution") + (task-open! "stadium-burning-bush-race-board-introduction") + ) + (when (task-closed? "stadium-race-class3-resolution") + (task-open! "stadium-burning-bush-race-class3-introduction") + (task-open! "stadium-burning-bush-race-class3-r-introduction") + ) + (when (task-closed? "stadium-race-class1-resolution") + (task-open! "stadium-burning-bush-race-class1-introduction") + (task-open! "stadium-burning-bush-race-class1-r-introduction") + ) + (task-open! "stadium-burning-bush-race-class2-r-introduction") + ) + ) + (new 'static 'game-task-node-info + :level 'stadium + :task (game-task stadium-burning-bush-race-class2) + :name "stadium-burning-bush-race-class2-resolution" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor burning-bush-stadium) + :action (game-task-action play) + :tex (game-task-icon gaticon-06) + :scene #f + ) + ) + :flags (game-task-node-flag close-task task-retry task-manager no-slow-down) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node stadium-burning-bush-race-class2-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info (new 'static 'task-manager-info + :level 'ctywide + :intro-scene #f + :resolution-scene #f + :resolution-scene-continue #f + :retry-continue "stadiumc-race-retry" + :fail-continue "stadiumc-race-fail" + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node stadium-burning-bush-race-class2-resolution) + :index 5 + :on-complete #f + :on-fail #f + ) + :borrow '((stadium 0 lracelit special) (ctywide 0 lracecf special)) + :open? (lambda ((arg0 game-task-node-info)) (let ((v1-1 (level-get-target-inside *level*))) + (the-as symbol (and v1-1 (= (-> v1-1 info taskname) (-> arg0 level)))) + ) + ) + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'stadium + :task (game-task stadium-burning-bush-race-class1) + :name "stadium-burning-bush-race-class1-introduction" + :when-open #f + :flags (game-task-node-flag save-on-life) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node stadium-race-class1-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close '(begin + (when (task-closed? "stadium-board1-resolution") + (task-open! "stadium-burning-bush-race-board-introduction") + ) + (when (task-closed? "stadium-race-class3-resolution") + (task-open! "stadium-burning-bush-race-class3-introduction") + (task-open! "stadium-burning-bush-race-class3-r-introduction") + ) + (when (task-closed? "stadium-race-class2-resolution") + (task-open! "stadium-burning-bush-race-class2-introduction") + (task-open! "stadium-burning-bush-race-class2-r-introduction") + ) + (task-open! "stadium-burning-bush-race-class1-r-introduction") + ) + ) + (new 'static 'game-task-node-info + :level 'stadium + :task (game-task stadium-burning-bush-race-class1) + :name "stadium-burning-bush-race-class1-resolution" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor burning-bush-stadium) + :action (game-task-action play) + :tex (game-task-icon gaticon-06) + :scene #f + ) + ) + :flags (game-task-node-flag close-task task-retry task-manager no-slow-down) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node stadium-burning-bush-race-class1-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info (new 'static 'task-manager-info + :level 'ctywide + :intro-scene #f + :resolution-scene #f + :resolution-scene-continue #f + :retry-continue "stadiumd-race-retry" + :fail-continue "stadiumd-race-fail" + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node stadium-burning-bush-race-class1-resolution) + :index #x6 + :on-complete #f + :on-fail #f + ) + :borrow '((stadium 0 lracelit special) (ctywide 0 lracedf special)) + :open? (lambda ((arg0 game-task-node-info)) (let ((v1-1 (level-get-target-inside *level*))) + (the-as symbol (and v1-1 (= (-> v1-1 info taskname) (-> arg0 level)))) + ) + ) + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'stadium + :task (game-task stadium-burning-bush-race-class3-r) + :name "stadium-burning-bush-race-class3-r-introduction" + :when-open #f + :flags (game-task-node-flag save-on-life) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node stadium-race-class1-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? (lambda ((arg0 game-task-node-info)) (logtest? (-> *game-info* secrets) (game-secrets reverse-races))) + :on-close '(begin + (task-open! "stadium-burning-bush-race-board-introduction") + (task-open! "stadium-burning-bush-race-class2-introduction") + (task-open! "stadium-burning-bush-race-class2-r-introduction") + (task-open! "stadium-burning-bush-race-class1-introduction") + (task-open! "stadium-burning-bush-race-class1-r-introduction") + (task-open! "stadium-burning-bush-race-class3-introduction") + ) + ) + (new 'static 'game-task-node-info + :level 'stadium + :task (game-task stadium-burning-bush-race-class3-r) + :name "stadium-burning-bush-race-class3-r-resolution" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor burning-bush-stadium) + :action (game-task-action play) + :tex (game-task-icon gaticon-06) + :scene #f + ) + ) + :flags (game-task-node-flag close-task task-retry task-manager no-slow-down) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node stadium-burning-bush-race-class3-r-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info (new 'static 'task-manager-info + :level 'ctywide + :intro-scene #f + :resolution-scene #f + :resolution-scene-continue #f + :retry-continue "stadiumb-race-r-retry" + :fail-continue "stadiumb-race-fail" + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node stadium-burning-bush-race-class3-r-resolution) + :index #x9 + :on-complete #f + :on-fail #f + ) + :borrow '((stadium 0 lracelit special) (ctywide 0 lracebb special)) + :open? (lambda ((arg0 game-task-node-info)) (let ((v1-1 (level-get-target-inside *level*))) + (the-as symbol (and v1-1 (= (-> v1-1 info taskname) (-> arg0 level)))) + ) + ) + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'stadium + :task (game-task stadium-burning-bush-race-class2-r) + :name "stadium-burning-bush-race-class2-r-introduction" + :when-open #f + :flags (game-task-node-flag save-on-life) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node stadium-race-class1-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? (lambda ((arg0 game-task-node-info)) (logtest? (-> *game-info* secrets) (game-secrets reverse-races))) + :on-close '(begin + (task-open! "stadium-burning-bush-race-board-introduction") + (task-open! "stadium-burning-bush-race-class3-introduction") + (task-open! "stadium-burning-bush-race-class3-r-introduction") + (task-open! "stadium-burning-bush-race-class1-introduction") + (task-open! "stadium-burning-bush-race-class1-r-introduction") + (task-open! "stadium-burning-bush-race-class2-introduction") + ) + ) + (new 'static 'game-task-node-info + :level 'stadium + :task (game-task stadium-burning-bush-race-class2-r) + :name "stadium-burning-bush-race-class2-r-resolution" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor burning-bush-stadium) + :action (game-task-action play) + :tex (game-task-icon gaticon-06) + :scene #f + ) + ) + :flags (game-task-node-flag close-task task-retry task-manager no-slow-down) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node stadium-burning-bush-race-class2-r-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info (new 'static 'task-manager-info + :level 'ctywide + :intro-scene #f + :resolution-scene #f + :resolution-scene-continue #f + :retry-continue "stadiumc-race-r-retry" + :fail-continue "stadiumc-race-fail" + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node stadium-burning-bush-race-class2-r-resolution) + :index #xa + :on-complete #f + :on-fail #f + ) + :borrow '((stadium 0 lracelit special) (ctywide 0 lracecb special)) + :open? (lambda ((arg0 game-task-node-info)) (let ((v1-1 (level-get-target-inside *level*))) + (the-as symbol (and v1-1 (= (-> v1-1 info taskname) (-> arg0 level)))) + ) + ) + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'stadium + :task (game-task stadium-burning-bush-race-class1-r) + :name "stadium-burning-bush-race-class1-r-introduction" + :when-open #f + :flags (game-task-node-flag save-on-life) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node stadium-race-class1-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? (lambda ((arg0 game-task-node-info)) (logtest? (-> *game-info* secrets) (game-secrets reverse-races))) + :on-close '(begin + (task-open! "stadium-burning-bush-race-board-introduction") + (task-open! "stadium-burning-bush-race-class3-introduction") + (task-open! "stadium-burning-bush-race-class3-r-introduction") + (task-open! "stadium-burning-bush-race-class2-introduction") + (task-open! "stadium-burning-bush-race-class2-r-introduction") + (task-open! "stadium-burning-bush-race-class1-introduction") + ) + ) + (new 'static 'game-task-node-info + :level 'stadium + :task (game-task stadium-burning-bush-race-class1-r) + :name "stadium-burning-bush-race-class1-r-resolution" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor burning-bush-stadium) + :action (game-task-action play) + :tex (game-task-icon gaticon-06) + :scene #f + ) + ) + :flags (game-task-node-flag close-task task-retry task-manager no-slow-down) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node stadium-burning-bush-race-class1-r-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info (new 'static 'task-manager-info + :level 'ctywide + :intro-scene #f + :resolution-scene #f + :resolution-scene-continue #f + :retry-continue "stadiumd-race-r-retry" + :fail-continue "stadiumd-race-fail" + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node stadium-burning-bush-race-class1-r-resolution) + :index #xb + :on-complete #f + :on-fail #f + ) + :borrow '((stadium 0 lracelit special) (ctywide 0 lracedb special)) + :open? (lambda ((arg0 game-task-node-info)) (let ((v1-1 (level-get-target-inside *level*))) + (the-as symbol (and v1-1 (= (-> v1-1 info taskname) (-> arg0 level)))) + ) + ) + :on-close #f + ) + ) + ) + (set! (-> gp-0 unknown-pad5) (new 'global 'boxed-array game-task-node-info 324)) + (dotimes (v1-3 (-> gp-0 sub-task-list length)) + (if (-> gp-0 sub-task-list v1-3 info) + (set! (-> gp-0 sub-task-list v1-3 info manager) (the-as handle #f)) + ) + ) + (when (zero? (-> gp-0 task-perm-list)) + (let ((v1-8 (new 'global 'entity-perm-array 110))) + (set! (-> gp-0 task-perm-list) v1-8) + (dotimes (a0-16 (-> v1-8 length)) + (set! (-> v1-8 data a0-16 task) (the-as uint a0-16)) + ) + (logior! (-> v1-8 data 1 status) (entity-perm-status complete)) + ) + ) + ) + +(kmemclose) diff --git a/goal_src/jak2/engine/game/task/task-control-h.gc b/goal_src/jak2/engine/game/task/task-control-h.gc index b89b5ae8c2..4fae977ba9 100644 --- a/goal_src/jak2/engine/game/task/task-control-h.gc +++ b/goal_src/jak2/engine/game/task/task-control-h.gc @@ -5,7 +5,7 @@ ;; name in dgo: task-control-h ;; dgos: ENGINE, GAME -(define-extern task-node-reset (function symbol none)) +(define-extern task-node-reset (function symbol int)) (defenum game-task-actor :bitfield #f @@ -94,11 +94,85 @@ ) (defenum game-task-flags + :bitfield #t :type uint8 + (gatflag-00) + (gatflag-01) + (gatflag-02) ) (defenum game-task-icon - :type uint16 + :type uint8 + (gaticon-00) + (gaticon-01) + (gaticon-02) + (gaticon-03) + (gaticon-04) + (gaticon-05) + (gaticon-06) + (gaticon-07) + (gaticon-08) + (gaticon-09) + (gaticon-10) + (gaticon-11) + (gaticon-12) + (gaticon-13) + (gaticon-14) + (gaticon-15) + (gaticon-16) + (gaticon-17) + (gaticon-18) + (gaticon-19) + (gaticon-20) + (gaticon-21) + (gaticon-22) + (gaticon-23) + (gaticon-24) + (gaticon-25) + (gaticon-26) + (gaticon-27) + (gaticon-28) + (gaticon-29) + (gaticon-30) + (gaticon-31) + (gaticon-32) + (gaticon-33) + (gaticon-34) + (gaticon-35) + (gaticon-36) + (gaticon-37) + (gaticon-38) + (gaticon-39) + (gaticon-40) + (gaticon-41) + (gaticon-42) + (gaticon-43) + (gaticon-44) + (gaticon-45) + (gaticon-46) + (gaticon-47) + (gaticon-48) + (gaticon-49) + (gaticon-50) + (gaticon-51) + (gaticon-52) + (gaticon-53) + (gaticon-54) + (gaticon-55) + (gaticon-56) + (gaticon-57) + (gaticon-58) + (gaticon-59) + (gaticon-60) + (gaticon-61) + (gaticon-62) + (gaticon-63) + (gaticon-64) + (gaticon-65) + (gaticon-66) + (gaticon-67) + (gaticon-68) + (gaticon-69) ) (defenum task-manager-mask @@ -167,13 +241,12 @@ ) ;; NOTE - for settings -(define-extern update-task-masks (function symbol none)) +(define-extern update-task-masks (function symbol int)) ;; NOTE - for default-menu -(define-extern play-clean (function symbol none)) -(define-extern task-node-open! (function game-task none)) -(define-extern task-node-close! (function game-task none)) -(define-extern task-node-open? (function game-task symbol)) +(define-extern task-node-open! (function game-task-node int)) +(define-extern task-node-close! (function game-task-node int)) +(define-extern task-node-open? (function game-task-node symbol)) (define-extern play-task (function game-task symbol symbol string)) ;; DECOMP BEGINS @@ -1109,7 +1182,8 @@ (deftype game-task-event (basic) ((actor game-task-actor :offset-assert 4) (action game-task-action :offset-assert 5) - (icon game-task-icon :offset 6) + (tex game-task-icon :offset-assert 6) + (icon uint16 :offset 6) (flags game-task-flags :offset 7) (scene basic :offset 8) (distance meters :offset-assert 12) @@ -1121,33 +1195,34 @@ (deftype task-manager-info (structure) - ((mask task-manager-mask :offset-assert 0) - (level basic :offset-assert 4) - (manager handle :offset-assert 8) - (fail-message uint32 :offset-assert 16) - (retry-message uint32 :offset-assert 20) - (intro-scene basic :offset-assert 24) - (resolution-scene basic :offset-assert 28) - (resolution-scene-continue basic :offset-assert 32) - (retry-continue basic :offset-assert 36) - (fail-continue basic :offset-assert 40) - (init-hook basic :offset-assert 44) - (cleanup-hook basic :offset-assert 48) - (update-hook basic :offset-assert 52) - (code-hook basic :offset-assert 56) - (complete-hook basic :offset-assert 60) - (fail-hook basic :offset-assert 64) - (event-hook basic :offset-assert 68) - (final-node uint16 :offset-assert 72) - (time-limit int32 :offset-assert 76) - (sphere-count int8 :offset-assert 80) - (index int8 :offset-assert 81) - (intro-delay uint16 :offset-assert 82) - (sphere-array uint32 :offset-assert 84) - (on-complete basic :offset-assert 88) - (on-fail basic :offset-assert 92) - (begin-sphere sphere :inline :offset-assert 96) - (end-sphere sphere :inline :offset-assert 112) + ((mask task-manager-mask :offset-assert 0) + (level symbol :offset-assert 4) + (manager handle :offset-assert 8) + (fail-message game-text-id :offset-assert 16) + (retry-message game-text-id :offset-assert 20) + (intro-scene string :offset-assert 24) + (resolution-scene string :offset-assert 28) + (resolution-scene-continue string :offset-assert 32) + (retry-continue string :offset-assert 36) + (fail-continue string :offset-assert 40) + (init-hook (function object) :offset-assert 44) + (cleanup-hook (function object) :offset-assert 48) + (update-hook (function object) :offset-assert 52) + (code-hook (function object) :offset-assert 56) + (complete-hook (function object) :offset-assert 60) + (fail-hook (function object) :offset-assert 64) + (event-hook (function process int symbol event-message-block object) :offset-assert 68) + (hooks (function object) 7 :offset 44) + (final-node game-task-node :offset-assert 72) + (time-limit int32 :offset-assert 76) + (sphere-count int8 :offset-assert 80) + (index int8 :offset-assert 81) + (intro-delay uint16 :offset-assert 82) + (sphere-array uint32 :offset-assert 84) + (on-complete pair :offset-assert 88) + (on-fail pair :offset-assert 92) + (begin-sphere sphere :inline :offset-assert 96) + (end-sphere sphere :inline :offset-assert 112) ) :method-count-assert 9 :size-assert #x80 @@ -1155,7 +1230,6 @@ ) -;; WARN: Return type mismatch object vs none. (defun-debug game-task-node-flag->string ((arg0 game-task-node-flag)) (if (= (logand arg0 (game-task-node-flag clear-task-mask)) (game-task-node-flag clear-task-mask)) (format #t "clear-task-mask ") @@ -1217,7 +1291,6 @@ (if (= (logand (game-task-node-flag no-audio) arg0) (game-task-node-flag no-audio)) (format #t "no-audio ") ) - (none) ) (defun-debug game-task-node-command->string ((arg0 game-task-node-command)) @@ -1298,48 +1371,48 @@ ) (deftype game-task-node-info (basic) - ((level basic :offset-assert 4) - (task game-task :offset-assert 8) - (name string :offset-assert 12) - (when-open array :offset-assert 16) - (flags game-task-node-flag :offset-assert 20) - (parent-node uint16 4 :offset-assert 24) - (task-mask task-mask :offset-assert 32) - (on-open basic :offset-assert 36) - (info task-manager-info :offset-assert 40) - (borrow basic :offset-assert 44) - (open? symbol :offset-assert 48) - (on-close basic :offset-assert 52) - (close-time time-frame :offset-assert 56) - (death-count uint16 :offset-assert 64) - (gem-count uint16 :offset-assert 66) - (skill-count uint16 :offset-assert 68) - (suck-death-count uint8 :offset-assert 70) - (add game-task-node-command :offset-assert 71) - (description uint32 :offset-assert 72) + ((level symbol :offset-assert 4) + (task game-task :offset-assert 8) + (name string :offset-assert 12) + (when-open (array game-task-event) :offset-assert 16) + (flags game-task-node-flag :offset-assert 20) + (parent-node game-task-node 4 :offset-assert 24) + (task-mask task-mask :offset-assert 32) + (on-open pair :offset-assert 36) + (info task-manager-info :offset-assert 40) + (borrow pair :offset-assert 44) + (open? (function game-task-node-info symbol) :offset-assert 48) + (on-close pair :offset-assert 52) + (close-time time-frame :offset-assert 56) + (death-count uint16 :offset-assert 64) + (gem-count uint16 :offset-assert 66) + (skill-count uint16 :offset-assert 68) + (suck-death-count uint8 :offset-assert 70) + (add game-task-node-command :offset-assert 71) + (description game-text-id :offset-assert 72) ) :method-count-assert 14 :size-assert #x4c :flag-assert #xe0000004c (:methods - (dummy-9 () none 9) - (dummy-10 () none 10) - (dummy-11 () none 11) - (dummy-12 () none 12) - (dummy-13 () none 13) + (close! (_type_ symbol) int 9) + (open! (_type_ symbol) int 10) + (open? (_type_) symbol 11) + (copy-hooks! (_type_ game-task-node-info) game-task-node-info 12) + (eval-add (_type_) int 13) ) ) (deftype game-task-info (basic) - ((name string :offset-assert 4) - (text-name uint32 :offset-assert 8) - (pre-play-node uint16 :offset-assert 12) - (kiosk-play-node uint16 :offset-assert 14) - (pre-play-continue string :offset-assert 16) - (play-node uint16 :offset-assert 20) - (play-continue string :offset-assert 24) - (kiosk-play-continue string :offset-assert 28) + ((name string :offset-assert 4) + (text-name game-text-id :offset-assert 8) + (pre-play-node game-task-node :offset-assert 12) + (kiosk-play-node game-task-node :offset-assert 14) + (pre-play-continue string :offset-assert 16) + (play-node game-task-node :offset-assert 20) + (play-continue string :offset-assert 24) + (kiosk-play-continue string :offset-assert 28) ) :method-count-assert 9 :size-assert #x20 @@ -1350,65 +1423,66 @@ (deftype game-task-control (basic) ((counter uint32 :offset-assert 4) (actor game-task-actor :offset-assert 8) - (current-node uint16 :offset-assert 10) - (current-event uint32 :offset-assert 12) + (current-node game-task-node :offset-assert 10) + (current-event game-task-event :offset-assert 12) ) :method-count-assert 10 :size-assert #x10 :flag-assert #xa00000010 (:methods - (dummy-9 () none 9) + (new (symbol type game-task-actor) _type_ 0) + (game-task-control-method-9 (_type_) game-task-event 9) ) ) (deftype task-manager (process) - ((node-info basic :offset-assert 128) - (info task-manager-info :offset-assert 132) - (lev-name basic :offset-assert 136) - (fail-on-death? symbol :offset-assert 140) - (fail-now basic :offset-assert 144) - (retry-now basic :offset-assert 148) - (allow-fail basic :offset-assert 152) - (state-time time-frame :offset-assert 160) - (count int16 :offset-assert 168) - (max-count int16 :offset-assert 170) - (sub-state uint32 :offset-assert 172) - (slave uint64 32 :offset-assert 176) - (arrow uint64 :offset-assert 432) - (link uint32 :offset-assert 440) - (start-time time-frame :offset-assert 448) - (total-time time-frame :offset-assert 456) - (beep-time time-frame :offset-assert 464) - (time-limit time-frame :offset-assert 472) - (begin-pos vector :inline :offset-assert 480) - (end-pos vector :inline :offset-assert 496) - (data-int8 int8 32 :offset-assert 512) - (data-int32 int32 32 :offset-assert 544) - (data-float float 32 :offset-assert 672) - (data-vector vector 32 :inline :offset-assert 800) - (actor-group uint32 4 :offset-assert 1312) - (minimap uint32 8 :offset-assert 1328) - (hud uint64 4 :offset-assert 1360) - (hud-timer time-frame :offset 1360) - (hud-counter int64 :offset 1368) - (sound-id uint32 4 :offset-assert 1392) - (intro-time time-frame :offset-assert 1408) + ((node-info game-task-node-info :offset-assert 128) + (info task-manager-info :offset-assert 132) + (lev-name symbol :offset-assert 136) + (fail-on-death? symbol :offset-assert 140) + (fail-now symbol :offset-assert 144) + (retry-now symbol :offset-assert 148) + (allow-fail symbol :offset-assert 152) + (state-time time-frame :offset-assert 160) + (count int16 :offset-assert 168) + (max-count int16 :offset-assert 170) + (sub-state uint32 :offset-assert 172) + (slave handle 32 :offset-assert 176) + (arrow handle :offset-assert 432) + (link uint32 :offset-assert 440) + (start-time time-frame :offset-assert 448) + (total-time time-frame :offset-assert 456) + (beep-time time-frame :offset-assert 464) + (time-limit time-frame :offset-assert 472) + (begin-pos vector :inline :offset-assert 480) + (end-pos vector :inline :offset-assert 496) + (data-int8 int8 32 :offset-assert 512) + (data-int32 int32 32 :offset-assert 544) + (data-float float 32 :offset-assert 672) + (data-vector vector 32 :inline :offset-assert 800) + (actor-group uint32 4 :offset-assert 1312) + (minimap uint32 8 :offset-assert 1328) + (hud handle 4 :offset-assert 1360) + (hud-timer handle :offset 1360) + (hud-counter handle :offset 1368) + (sound-id sound-id 4 :offset-assert 1392) + (intro-time time-frame :offset-assert 1408) ) :heap-base #x510 :method-count-assert 23 :size-assert #x588 :flag-assert #x1705100588 (:methods - (dummy-14 () none 14) - (dummy-15 () none 15) - (dummy-16 () none 16) - (dummy-17 () none 17) - (dummy-18 () none 18) - (dummy-19 () none 19) - (dummy-20 () none 20) - (dummy-21 () none 21) - (dummy-22 () none 22) + (wait () _type_ :state 14) + (active () _type_ :state 15) + (complete () _type_ :state 16) + (fail () _type_ :state 17) + (retry () _type_ :state 18) + (initialize! (_type_) int 19) + (kill-all-children (_type_) int 20) + (check-time (_type_) int 21) + (task-manager-method-22 (_type_) symbol 22) ) ) @@ -1431,8 +1505,6 @@ (define *traffic-engine* (the-as object #f)) -0 - - +(define-extern task-manager-init-by-other (function game-task-node-info symbol object :behavior task-manager)) diff --git a/goal_src/jak2/engine/game/task/task-control.gc b/goal_src/jak2/engine/game/task/task-control.gc index ba0c7f0aab..9a6fa30770 100644 --- a/goal_src/jak2/engine/game/task/task-control.gc +++ b/goal_src/jak2/engine/game/task/task-control.gc @@ -5,5 +5,2345 @@ ;; name in dgo: task-control ;; dgos: ENGINE, GAME +(defenum fail-mission-flags + :bitfield #t + :type uint8 + (famflags-0) + (famflags-1) + (famflags-2) + (famflags-3) + (famflags-4) + (famflags-5) + (famflags-6) + (famflags-7) + ) + +(defenum fail-mission-message + :type uint8 + (fammsg-0) + (fammsg-1) + (fammsg-2) + (fammsg-3) + (fammsg-4) + (fammsg-5) + ) + +(declare-type fail-mission process) + ;; DECOMP BEGINS +(deftype fail-mission-params (structure) + ((message fail-mission-message :offset-assert 0) + (flags fail-mission-flags :offset-assert 1) + (retry-continue basic :offset-assert 4) + (fail-continue basic :offset-assert 8) + (reset-delay uint32 :offset-assert 12) + (task game-task :offset-assert 16) + (fail-message game-text-id :offset-assert 20) + ) + :method-count-assert 9 + :size-assert #x18 + :flag-assert #x900000018 + ) + + +(deftype fail-mission-control (basic) + ((process handle :offset-assert 8) + (handle-init-hack pointer :offset 8) + ) + :method-count-assert 13 + :size-assert #x10 + :flag-assert #xd00000010 + (:methods + (reset? (_type_) symbol 9) + (get-proc (_type_) fail-mission 10) + (start! (_type_ fail-mission-params) symbol 11) + (reset! (_type_) object 12) + ) + ) + + +(define *fail-mission-control* (new 'static 'fail-mission-control :handle-init-hack #f)) + +(defun game-task-node->string ((arg0 game-task-node)) + (-> *game-info* sub-task-list arg0 name) + ) + +(defun update-task-masks ((arg0 symbol)) + (with-pp + (if (= arg0 'none) + (return 0) + ) + (cond + ((or (= arg0 'debug) (= arg0 'level)) + ) + ((logtest? (-> *game-info* secrets) (game-secrets hero-mode)) + (set! (-> *game-info* features) (game-feature unk-game-feature-06 gun-yellow gun-red gun-blue gun-dark)) + ) + (else + (set! (-> *game-info* features) (game-feature)) + 0 + ) + ) + ;; TODO minimap + ;; (let ((s5-0 (the-as connection-pers (-> *minimap* engine alive-list-override)))) + ;; (while s5-0 + ;; (let ((s4-0 (the-as connection-minimap s5-0))) + ;; (if (and (logtest? (-> s4-0 flags) (minimap-flag task-graph)) + ;; (not (open? (-> *game-info* sub-task-list (-> s4-0 node)))) + ;; ) + ;; (logior! (-> s4-0 flags) (minimap-flag fade-out)) + ;; ) + ;; ) + ;; (set! s5-0 (-> s5-0 next)) + ;; ) + ;; ) + (let ((borrow-eval (lambda ((arg0 pair)) + (let ((a0-1 (car arg0))) + (while (not (null? arg0)) + (let* ((v1-0 (car a0-1)) + (s5-0 (/ (the-as int (car (cdr a0-1))) 8)) + (s4-0 (car (cdr (cdr a0-1)))) + (s3-0 (car (cdr (cdr (cdr a0-1))))) + (s2-0 (-> (the-as symbol v1-0) value)) + (v1-1 (if (type? s2-0 level-load-info) + (the-as level-load-info s2-0) + ) + ) + ) + (when v1-1 + (set! (-> v1-1 borrow-level s5-0) (the-as symbol s4-0)) + (set! (-> v1-1 borrow-display? s5-0) (the-as symbol s3-0)) + ) + ) + (set! arg0 (cdr arg0)) + (set! a0-1 (car arg0)) + ) + ) + #f + ) + ) + ) + (borrow-eval (-> *game-info* sub-task-list 1 borrow)) + (let ((game-nodes (-> *game-info* sub-task-list))) + (dotimes (i (-> game-nodes length)) + (when (nonzero? i) + (let ((node (-> game-nodes i))) + (case arg0 + (('debug 'level) + ) + (else + (if (logtest? (-> node flags) (game-task-node-flag closed)) + (eval-add node) + ) + ) + ) + (let ((node-open? (open? node))) + (if (and (logtest? (-> node flags) (game-task-node-flag task-manager)) + (and (-> node info) (or node-open? (and (logtest? (-> node flags) (game-task-node-flag closed)) + (not (task-node-closed? (-> node info final-node))) + ) + ) + ) + ) + (eval! (new 'stack 'script-context node pp (the-as vector #f)) '(task-manager)) + ) + (when node-open? + (if (-> node on-open) + (eval! (new 'stack 'script-context node pp (the-as vector #f)) (-> node on-open)) + ) + (when (-> node when-open) + (countdown (node-ev-i (-> node when-open length)) + (let ((node-open-ev (-> node when-open node-ev-i))) + (case (-> node-open-ev actor) + (((game-task-actor minimap)) + ;; (let ((v1-67 (minimap-method-12 + ;; *minimap* + ;; *dproc* + ;; (-> node-open-ev icon) + ;; (the-as int (-> node-open-ev icon)) + ;; (the-as vector #f) + ;; i + ;; ) + ;; ) + ;; ) + ;; (if v1-67 + ;; (logior! (-> v1-67 flags) (minimap-flag task-graph)) + ;; ) + ;; ) + ) + ) + ) + ) + ) + (borrow-eval (-> node borrow)) + ) + ) + ) + ) + ) + ) + (logior! (-> *game-info* features) (-> *game-info* debug-features)) + (borrow-eval (-> *setting-control* user-current borrow)) + ) + (add-borrow-levels *load-state*) + (dotimes (lev-i (-> *level* length)) + (let ((lev (-> *level* level lev-i))) + (if (= (-> lev status) 'active) + (level-method-22 lev arg0) + ) + ) + ) + 0 + ) + ) + +(defmethod level-method-22 level ((obj level) (arg0 symbol)) + (if (= arg0 'none) + (return 0) + ) + (set! (-> obj task-mask) + (logand (-> obj info base-task-mask) (task-mask task0 task1 task2 task3 task4 task5 task6 task7 done)) + ) + (let ((name (-> obj info taskname)) + (game-subtasks (-> *game-info* sub-task-list)) + ) + (dotimes (i (-> game-subtasks length)) + (when (nonzero? i) + (let ((subtask (-> game-subtasks i))) + (when (and (logtest? (-> subtask flags) (game-task-node-flag closed)) (= (-> subtask level) name)) + (cond + ((logtest? (-> subtask flags) (game-task-node-flag abs-task-mask)) + (set! (-> obj task-mask) (-> subtask task-mask)) + ) + ((logtest? (-> subtask flags) (game-task-node-flag set-task-mask)) + (logior! (-> obj task-mask) (-> subtask task-mask)) + ) + ((logtest? (-> subtask flags) (game-task-node-flag clear-task-mask)) + (logclear! (-> obj task-mask) (-> subtask task-mask)) + ) + ) + ) + ) + ) + ) + ) + (case (-> obj name) + (('strip) + (prototypes-game-visible-set! + '("strip-ev-base-ring.mb" + "strip-ev-base-top.mb" + "strip-ev-base.mb" + "strip-ev-panel.mb" + "strip-ev-pipe-01.mb" + "strip-ev-pipe-02.mb" + "strip-ev-pipe-03.mb" + "strip-ev-tank.mb" + "strip-ev-band.mb" + "strip-ev-little-block.mb" + ) + (not (task-node-closed? (game-task-node strip-grenade-explode))) + ) + (prototypes-game-visible-set! + '("strip-pipe-01.mb" + "strip-pipe-02-nut-drop.mb" + "strip-shrub-nut-drop.mb" + "strip-shrub-yellow-stripe.mb" + "strip-pipe-col-disappear.mb" + ) + (or (and (task-complete? *game-info* (game-task strip-grenade)) + (task-node-closed? (game-task-node strip-drop-introduction)) + ) + (demo?) + ) + ) + (prototypes-game-visible-set! + '("strip-blown-up-vent-base.mb" "strip-blown-up-vent-pieces.mb") + (task-complete? *game-info* (game-task strip-grenade)) + ) + (prototypes-game-visible-set! + '("strip-blocker-crate-01.mb" + "strip-blocker-crate-02.mb" + "strip-blocker-crate-03.mb" + "strip-blocker-crate-04.mb" + "strip-blocker-crate-05.mb" + "strip-blocker-crate-06.mb" + ) + (not (task-complete? *game-info* (game-task strip-rescue))) + ) + (prototypes-game-visible-set! + '("lowres-casboss.mb") + (not (task-node-closed? (game-task-node castle-boss-resolution))) + ) + ) + (('ruins) + (prototypes-game-visible-set! + '("ruins-board-task2.mb" + "ruins-lgcollision-task2.mb" + "ruins-plank-task2.mb" + "ruins-smlcollision-task2.mb" + "ruins-support-task2.mb" + ) + (and (task-complete? *game-info* (game-task ruins-tower)) + (task-node-closed? (game-task-node ruins-enemy-introduction)) + ) + ) + (prototypes-game-visible-set! '("ruin-tower-junk.mb") (task-complete? *game-info* (game-task ruins-tower))) + (prototypes-game-visible-set! + '("ruin-balcony-01-tower.mb" + "ruin-balcony-02-tower.mb" + "ruin-bar-01-tower.mb" + "ruin-bar-02-tower.mb" + "ruin-bar-03-tower.mb" + "ruin-bridge-01-tower.mb" + "ruin-lamp-post-01-tower.mb" + "ruin-lamp-post-03-tower.mb" + "ruin-lamp-post-04-tower.mb" + "ruin-lampbase-02-tower.mb" + "ruin-lamplite-01-tower.mb" + "ruin-pillar-broken-01-tower.mb" + "ruin-pillar-broken-03-tower.mb" + "ruin-top-tower.mb" + "ruin-tower-window-01.mb" + "ruin-window-01-tower.mb" + "ruins-city-corner-roof-tower.mb" + "ruins-city-roof-01-tower.mb" + "ruins-cracked-roof-tower.mb" + "ruins-pipe-2m-end-tower.mb" + "ruins-pipe-elbow-tower.mb" + "ruins-pipe-mid-tower.mb" + "ruins-pipe-ring-tower.mb" + "ruins-support-01-tower.mb" + "ruins-support-02-tower.mb" + "swingpole-geo.mb" + "ruin-top-brick-01.mb" + "ruin-brick-side-01.mb" + ) + (not (task-complete? *game-info* (game-task ruins-tower))) + ) + ) + (('atoll) + (prototypes-game-visible-set! + '("atoll-tank.mb") + (and (not (task-complete? *game-info* (game-task atoll-sig))) + (not (task-node-closed? (game-task-node atoll-sig-tank))) + ) + ) + (prototypes-game-visible-set! + '("lowres-casboss.mb") + (not (task-node-closed? (game-task-node castle-boss-resolution))) + ) + ) + (('ctymarkb) + (prototypes-game-visible-set! + '("city-mark-roof-before-broken.mb") + (not (task-node-closed? (game-task-node city-intercept-tanker-roof-explode))) + ) + (prototypes-game-visible-set! + '("city-mark-roof-broken.mb") + (task-node-closed? (game-task-node city-intercept-tanker-introduction)) + ) + ) + (('ctypal) + (prototypes-game-visible-set! + '("ctyp-statue-wall-breakable.mb") + (not (task-node-closed? (game-task-node canyon-insert-items-shard))) + ) + (prototypes-game-visible-set! + '("ctyp-statue-rubble-a.mb" "ctyp-statue-rubble-b.mb" "ctyp-statue-rubble-big-a.mb") + (task-node-closed? (game-task-node canyon-insert-items-shard)) + ) + ) + (('sewer 'sewerb 'sewesc 'sewescb) + (prototypes-game-visible-set! + '("sewer-c-connect-door.mb") + (not (and (task-complete? *game-info* (game-task sewer-enemy)) + (task-node-closed? (game-task-node sewer-board-introduction)) + (not (task-complete? *game-info* (game-task sewer-board))) + ) + ) + ) + (prototypes-game-visible-set! + '("sewer-hover-door.mb") + (and (task-complete? *game-info* (game-task sewer-enemy)) + (task-node-closed? (game-task-node sewer-board-introduction)) + (not (task-complete? *game-info* (game-task sewer-board))) + ) + ) + (cond + ((= arg0 'debug) + ) + ((task-complete? *game-info* (game-task sewer-board)) + (set! *ocean-height-hack* (ocean-height-hack sewer-lo)) + (set-height! *ocean-map-sewer* -368050.2) + ) + ((not (task-node-closed? (game-task-node sewer-board-drain))) + (set! *ocean-height-hack* (ocean-height-hack zero)) + (set-height! *ocean-map-sewer* -216498.17) + ) + ) + ) + (('ctyasha) + (prototypes-game-visible-set! + '("cty-tanker-barrel.mb") + (task-node-closed? (game-task-node city-intercept-tanker-introduction)) + ) + ) + (('consite) + (prototypes-game-visible-set! + '("consite-barrel-broken.mb" + "consite-cor-sheet-8x16-hi-broken.mb" + "consite-scaffold-assmb-24m-mid-broken.mb" + "consite-scaffold-beam-4m-broken.mb" + "consite-scaffold-beam-8m-broken.mb" + "consite-scaffold-i-hook-broken.mb" + "consite-scaffold-i-span-broken.mb" + "consite-scaffold-t-connector-broken.mb" + "consite-scaffold-x-connector-corner-broken.mb" + "consite-scaffold-x-connector-corner-out-broken.mb" + "consite-plank-double-broken.mb" + "consite-plank-single-broken.mb" + "consite-rope-14m-broken.mb" + "consite-rope-8m-broken.mb" + "consite-rope-ring-broken.mb" + "consite-scaffold-x-connector-broken.mb" + ) + (task-node-closed? (game-task-node consite-find-baron-resolution)) + ) + ) + (('caspad) + (prototypes-game-visible-set! + '("cpad-bigtank-side.mb" + "cpad-bigtank-top.mb" + "cpad-bigtank-top-details.mb" + "cpad-crane.mb" + "cpad-crane-base.mb" + "cpad-elev-scaffolding.mb" + "cpad-elev-shaft-ex.mb" + "cpad-elev-shaft-ex-detail.mb" + "cpad-elev-shaft-roof.mb" + "cpad-liltank-side.mb" + "cpad-liltank-top.mb" + "cpad-pipe-base.mb" + "cpad-pipe-flat.mb" + "cpad-pipe-lil-elbo.mb" + "cpad-pipe-lil-strt.mb" + "cpad-pipe-med-elbo.mb" + "cpad-pipe-med-strt.mb" + "cpad-pipe-tank-45.mb" + "cpad-pipe-tank-strt.mb" + "cpad-scaffold-structure.mb" + "cpad-scaff-x-beam.mb" + "cpad-stonework.mb" + "cpad-top.mb" + "cpad-tower-bottom.mb" + "cpad-tower-centrifuse.mb" + "cpad-tower-generator.mb" + "cpad-tower-generator-panels.mb" + "cpad-tower-smokestack.mb" + "cpad-tower-supports-lower.mb" + "cpad-tower-turbine.mb" + "cpad-tower-walkway-lower.mb" + "cpad-x-beam.mb" + ) + (not (task-node-closed? (game-task-node castle-boss-resolution))) + ) + ) + (('stadiumb) + (prototypes-game-visible-set! + '("stdmb-tunnel-ramp-reverse.mb") + (task-node-closed? (game-task-node stadium-burning-bush-race-class3-r-introduction)) + ) + (prototypes-game-visible-set! + '("stdmb-tunnel-ramp.mb") + (not (task-node-closed? (game-task-node stadium-burning-bush-race-class3-r-introduction))) + ) + ) + (('hiphog) + (prototypes-game-visible-set! + '("hip-paintings-bar-a.mb" "hip-paintings-wall-reflection-a.mb" "hip-paintings-wall-a.mb") + (not (task-node-closed? (game-task-node nest-boss-resolution))) + ) + (prototypes-game-visible-set! + '("hip-paintings-bar-b.mb" "hip-paintings-wall-reflection-b.mb" "hip-paintings-wall-b.mb") + (task-node-closed? (game-task-node nest-boss-resolution)) + ) + ) + ) + (logior! (-> obj task-mask) (-> *setting-control* user-current task-mask)) + 0 + ) + +(defun play-clean ((arg0 symbol)) + (set! *display-entity-errors* #f) + (set! *display-profile* #f) + (set! *display-actor-marks* #f) + (set! (-> *level* play?) #t) + (time-of-day-setup #t) + (set! *time-of-day-fast* #f) + (send-event (ppointer->process *time-of-day*) 'change 'ratio #x3f800000) + (when arg0 + (let ((s5-0 (-> *game-info* mode))) + (set! (-> *game-info* mode) arg0) + (initialize! *game-info* 'game (the-as game-save #f) (the-as string #f)) + (set! (-> *game-info* mode) s5-0) + ) + ) + 0 + ) + +(defun play-task ((arg0 game-task) (arg1 symbol) (arg2 symbol)) + (play-clean arg1) + (let ((gp-1 (-> *game-info* play-list arg0))) + (cond + ((and (= arg2 'pre-play) (-> gp-1 pre-play-continue)) + (task-node-open! (-> gp-1 pre-play-node)) + (-> gp-1 pre-play-continue) + ) + ((and (= arg2 'kiosk) (-> gp-1 kiosk-play-continue)) + (task-node-open! (-> gp-1 kiosk-play-node)) + (-> gp-1 kiosk-play-continue) + ) + (else + (if (-> gp-1 play-continue) + (task-node-open! (-> gp-1 play-node)) + ) + (-> gp-1 play-continue) + ) + ) + ) + ) + +(defun restart-mission () + (let ((restart? #t)) + (let ((mgr-status #f)) + (let ((v1-1 (the-as connection (-> *task-manager-engine* alive-list next0)))) + *task-manager-engine* + (let ((s4-0 (the-as connection (-> v1-1 next0)))) + (while (!= v1-1 (-> *task-manager-engine* alive-list-end)) + (let ((task-mgr (the-as process (-> v1-1 param1)))) + (if (not mgr-status) + (set! mgr-status #t) + ) + (if (and (-> task-mgr next-state) (let ((v1-7 (-> task-mgr next-state name))) + (or (= v1-7 'complete) (= v1-7 'fail) (= v1-7 'retry)) + ) + ) + (set! mgr-status 'busy) + ) + (if (send-event task-mgr 'retry) + (set! restart? #f) + ) + ) + (set! v1-1 s4-0) + *task-manager-engine* + (set! s4-0 (the-as connection (-> s4-0 next0))) + ) + ) + ) + (if (or (and *target* (logtest? (-> *target* focus-status) (focus-status dead)) mgr-status) (= mgr-status 'busy)) + (return (the-as int #f)) + ) + ) + (when restart? + (let ((gp-1 0)) + (let ((cur-lev (level-get-target-inside *level*))) + (when (and cur-lev (zero? (logand (-> cur-lev info level-flags) 1))) + (let ((game-nodes (-> *game-info* sub-task-list))) + (dotimes (i (-> game-nodes length)) + (when (nonzero? i) + (let ((node (-> game-nodes i))) + (if (and (= (-> node level) (-> cur-lev info taskname)) + (!= (-> node level) 'city) + (zero? (logand (game-task-node-flag no-restart) (-> node flags))) + (open? node) + ) + (set! gp-1 (the-as int (-> node task))) + ) + ) + ) + ) + ) + ) + ) + (when (nonzero? gp-1) + (let ((a1-4 (-> *game-info* play-list gp-1 play-continue))) + (if a1-4 + (set-continue! *game-info* a1-4 #t) + ) + ) + ) + ) + (let ((a1-5 (new 'stack-no-clear 'fail-mission-params))) + (set! (-> a1-5 flags) (fail-mission-flags famflags-0 famflags-2)) + (set! (-> a1-5 message) (fail-mission-message fammsg-0)) + (set! (-> a1-5 retry-continue) #f) + (set! (-> a1-5 fail-continue) #f) + (set! (-> a1-5 reset-delay) (the-as uint 1500)) + (set! (-> a1-5 task) (game-task none)) + (set! (-> a1-5 fail-message) (game-text-id null)) + (logior! (-> a1-5 flags) (fail-mission-flags famflags-3 famflags-4)) + (start! *fail-mission-control* a1-5) + ) + ) + ) + 0 + ) + +(defun task-node-by-name ((arg0 string)) + (let ((game-nodes (-> *game-info* sub-task-list))) + (dotimes (i (-> game-nodes length)) + (when (nonzero? i) + (let ((node (-> game-nodes i))) + (if (string= arg0 (-> node name)) + (return node) + ) + ) + ) + ) + ) + (the-as game-task-node-info #f) + ) + +(defun task-resolution-close! ((arg0 game-task)) + (let ((game-nodes (-> *game-info* sub-task-list))) + (dotimes (i (-> game-nodes length)) + (when (nonzero? i) + (let ((node (-> game-nodes i))) + (when (and (= (-> node task) arg0) (logtest? (-> node flags) (game-task-node-flag close-task))) + (close! node 'event) + (return #t) + ) + ) + ) + ) + ) + #f + ) + +(defun task-close! ((arg0 string)) + (let ((game-nodes (-> *game-info* sub-task-list))) + (dotimes (i (-> game-nodes length)) + (when (nonzero? i) + (let ((node (-> game-nodes i))) + (when (string= arg0 (-> node name)) + (let ((gp-2 (zero? (logand (-> node flags) (game-task-node-flag closed))))) + (close! node 'event) + (return gp-2) + ) + ) + ) + ) + ) + ) + (format 0 "ERROR: attempting to close unknown task node ~A.~%" arg0) + #f + ) + +(defun task-closed? ((arg0 string)) + (let ((game-nodes (-> *game-info* sub-task-list))) + (dotimes (i (-> game-nodes length)) + (when (nonzero? i) + (let ((node (-> game-nodes i))) + (if (string= arg0 (-> node name)) + (return (logtest? (-> node flags) (game-task-node-flag closed))) + ) + ) + ) + ) + ) + (format 0 "ERROR: attempting to query closed? of unknown task node ~A.~%" arg0) + #f + ) + +(defun open-task-nodes ((arg0 (array game-task-node-info))) + (local-vars (a3-4 symbol)) + (set! (-> arg0 length) 0) + (let ((game-nodes (-> *game-info* sub-task-list))) + (dotimes (i (-> game-nodes length)) + (when (nonzero? i) + (let ((node (-> game-nodes i))) + (when (and (zero? (logand (-> node flags) (game-task-node-flag closed))) + (begin + (dotimes (a3-3 4) + (when (and (nonzero? (-> node parent-node a3-3)) + (zero? (logand (-> game-nodes (-> node parent-node a3-3) flags) (game-task-node-flag closed))) + ) + (set! a3-4 #f) + (goto cfg-14) + ) + ) + (set! a3-4 #t) + (label cfg-14) + (and a3-4 (< (-> arg0 length) (-> arg0 allocated-length))) + ) + ) + (set! (-> arg0 (-> arg0 length)) node) + (+! (-> arg0 length) 1) + ) + ) + ) + ) + ) + arg0 + ) + +(defmethod print game-task-node-info ((obj game-task-node-info)) + (format + #t + "#" + (-> obj name) + (cond + ((logtest? (-> obj flags) (game-task-node-flag closed)) + "closed" + ) + ((open? obj) + "open" + ) + (else + "inactive" + ) + ) + obj + ) + obj + ) + +(defmethod close! game-task-node-info ((obj game-task-node-info) (arg0 symbol)) + (when (zero? (logand (-> obj flags) (game-task-node-flag closed))) + (let ((task-node-close-func + (lambda ((arg0 game-task-node-info)) + (with-pp + (logior! (-> arg0 flags) (game-task-node-flag closed)) + (+! (-> *game-info* task-counter) 1) + (when (zero? (-> arg0 close-time)) + (set! (-> arg0 gem-count) (the-as uint (the int (-> *game-info* gem)))) + (set! (-> arg0 skill-count) (the-as uint (the int (-> *game-info* skill)))) + (set! (-> arg0 close-time) (-> *display* game-clock frame-counter)) + ) + (if (-> arg0 on-close) + (eval! (new 'stack 'script-context arg0 pp (the-as vector #f)) (-> arg0 on-close)) + ) + (if (logtest? (-> arg0 flags) (game-task-node-flag close-task)) + ((lambda ((arg0 game-task-node-info)) + (if *target* + (send-event *target* 'get-pickup 10 (the float (-> arg0 task))) + (give *game-info* 'fuel-cell (the float (-> arg0 task)) (the-as handle #f)) + ) + ) + arg0 + ) + ) + ) + ) + ) + ) + (let ((p-node-count 0) + (s3-0 (new 'stack-no-clear 'inline-array 'qword 8)) + ) + (let ((s1-0 obj)) + (loop + (cond + ((= (-> s1-0 parent-node 0) (game-task-node none)) + (goto cfg-21) + ) + ((= (-> s1-0 parent-node 1) (game-task-node none)) + (let ((v1-10 (-> *game-info* sub-task-list (-> s1-0 parent-node 0)))) + (cond + ((logtest? (-> v1-10 flags) (game-task-node-flag closed)) + (goto cfg-21) + ) + (else + (set! (-> (&-> s3-0 0 hword p-node-count) 0) (the-as uint (-> s1-0 parent-node 0))) + (+! p-node-count 1) + (when (< 64 p-node-count) + (break!) + 0 + ) + ) + ) + (set! s1-0 v1-10) + ) + ) + (else + (dotimes (p-i 4) + (let ((v1-15 (-> s1-0 parent-node p-i))) + (if (nonzero? v1-15) + (close! (-> *game-info* sub-task-list v1-15) 'none) + ) + ) + ) + (goto cfg-21) + ) + ) + ) + ) + (label cfg-21) + (while (nonzero? p-node-count) + (+! p-node-count -1) + (task-node-close-func (-> *game-info* sub-task-list (-> (&-> s3-0 0 hword p-node-count) 0))) + ) + ) + (task-node-close-func obj) + ) + (let ((game-nodes (-> *game-info* sub-task-list))) + (dotimes (i (-> game-nodes length)) + (when (nonzero? i) + (let ((node (-> game-nodes i))) + (if (and (logtest? (-> node flags) (game-task-node-flag auto-close)) (open? node)) + (close! node 'none) + ) + ) + ) + ) + ) + (update-task-masks arg0) + ) + 0 + ) + +(defun task-node-closed? ((arg0 game-task-node)) + (let ((node (-> *game-info* sub-task-list arg0))) + (logtest? (-> node flags) (game-task-node-flag closed)) + ) + ) + +(defun task-node-close! ((arg0 game-task-node)) + (close! (-> *game-info* sub-task-list arg0) 'event) + 0 + ) + +(defmethod open! game-task-node-info ((obj game-task-node-info) (arg0 symbol)) + (local-vars (v1-19 symbol)) + (when (logtest? (-> obj flags) (game-task-node-flag closed)) + (logclear! (-> obj flags) (game-task-node-flag closed)) + (+! (-> *game-info* task-counter) 1) + (if (logtest? (-> obj flags) (game-task-node-flag close-task)) + (logclear! (-> *game-info* task-perm-list data (-> obj task) status) (entity-perm-status complete)) + ) + (let ((game-nodes (-> *game-info* sub-task-list))) + (dotimes (i (-> game-nodes length)) + (when (nonzero? i) + (let ((node (-> game-nodes i))) + (set! v1-19 + (and (logtest? (-> node flags) (game-task-node-flag closed)) + (begin + (dotimes (ii 4) + (when (and (nonzero? (-> node parent-node ii)) + (zero? (logand (-> game-nodes (-> node parent-node ii) flags) (game-task-node-flag closed))) + ) + (set! v1-19 #t) + (goto cfg-17) + ) + ) + #f + ) + ) + ) + (label cfg-17) + (if v1-19 + (open! node 'none) + ) + ) + ) + ) + ) + (update-task-masks arg0) + ) + 0 + ) + +(defun task-node-open? ((arg0 game-task-node)) + (let ((game-nodes (-> *game-info* sub-task-list))) + (open? (-> game-nodes arg0)) + ) + ) + +(defmethod open? game-task-node-info ((obj game-task-node-info)) + (local-vars (a1-1 symbol)) + (let ((game-nodes (-> *game-info* sub-task-list)) + (node-info obj) + ) + (and (zero? (logand (-> node-info flags) (game-task-node-flag closed))) + (begin + (dotimes (pi 4) + (let ((t0-0 (-> node-info parent-node pi))) + (when (and (nonzero? t0-0) (zero? (logand (-> game-nodes t0-0 flags) (game-task-node-flag closed)))) + (set! a1-1 #f) + (goto cfg-12) + ) + ) + ) + (set! a1-1 #t) + (label cfg-12) + (and a1-1 + (or (zero? (-> *setting-control* user-current exclusive-task)) + (= (-> *setting-control* user-current exclusive-task) (-> obj task)) + (logtest? (-> node-info flags) (game-task-node-flag auto-close)) + ) + (or (not (-> node-info open?)) ((-> node-info open?) node-info)) + ) + ) + ) + ) + ) + +(defun task-node-open! ((arg0 game-task-node)) + (let ((game-node (-> *game-info* sub-task-list arg0))) + (dotimes (p-i 4) + (if (nonzero? (-> game-node parent-node p-i)) + (close! (-> *game-info* sub-task-list (-> game-node parent-node p-i)) 'event) + ) + ) + (open! game-node 'event) + ) + 0 + ) + +(defmethod eval-add game-task-node-info ((obj game-task-node-info)) + (case (-> obj add) + (((game-task-node-command none)) + ) + (((game-task-node-command add-sidekick)) + (logior! (-> *game-info* features) (game-feature sidekick)) + ) + (((game-task-node-command sub-sidekick)) + (logclear! (-> *game-info* features) (game-feature sidekick)) + ) + (((game-task-node-command add-board)) + (logior! (-> *game-info* features) (game-feature board)) + ) + (((game-task-node-command add-board-training)) + (set! (-> *game-info* features) (logior (game-feature board-training) (-> *game-info* features))) + ) + (((game-task-node-command sub-board)) + (logclear! (-> *game-info* features) (game-feature board)) + ) + (((game-task-node-command add-gun-red)) + (logior! (-> *game-info* features) (game-feature unk-game-feature-06 gun-red)) + ) + (((game-task-node-command add-gun-yellow)) + (logior! (-> *game-info* features) (game-feature unk-game-feature-06 gun-yellow)) + ) + (((game-task-node-command add-gun-blue)) + (logior! (-> *game-info* features) (game-feature unk-game-feature-06 gun-blue)) + ) + (((game-task-node-command add-gun-dark)) + (logior! (-> *game-info* features) (game-feature unk-game-feature-06 gun-dark)) + ) + (((game-task-node-command add-gun-up-1)) + (logior! (-> *game-info* features) (game-feature unk-game-feature-06 gun-upgrade-speed)) + ) + (((game-task-node-command add-gun-up-2)) + (logior! (-> *game-info* features) (game-feature unk-game-feature-06 gun-upgrade-ammo)) + ) + (((game-task-node-command add-gun-up-3)) + (set! (-> *game-info* features) + (logior (game-feature unk-game-feature-06 gun-upgrade-damage) (-> *game-info* features)) + ) + ) + (((game-task-node-command add-pass-red)) + (set! (-> *game-info* features) (logior (game-feature pass-red) (-> *game-info* features))) + ) + (((game-task-node-command add-pass-green)) + (set! (-> *game-info* features) (logior (game-feature pass-green) (-> *game-info* features))) + ) + (((game-task-node-command add-pass-yellow)) + (set! (-> *game-info* features) (logior (game-feature pass-yellow) (-> *game-info* features))) + ) + (((game-task-node-command add-pass-blue)) + (set! (-> *game-info* features) (logior (game-feature pass-blue) (-> *game-info* features))) + ) + (((game-task-node-command add-darkjak)) + (logior! (-> *game-info* features) (game-feature darkjak)) + ) + (((game-task-node-command add-darkjak-0)) + (set! (-> *game-info* features) (logior (game-feature darkjak-bomb0) (-> *game-info* features))) + ) + (((game-task-node-command add-darkjak-1)) + (set! (-> *game-info* features) (logior (game-feature darkjak-bomb1) (-> *game-info* features))) + ) + (((game-task-node-command add-darkjak-2)) + (set! (-> *game-info* features) (logior (game-feature darkjak-invinc) (-> *game-info* features))) + ) + (((game-task-node-command add-darkjak-3)) + (set! (-> *game-info* features) (logior (game-feature darkjak-giant) (-> *game-info* features))) + ) + ) + 0 + ) + +(defun task-node-reset ((arg0 symbol)) + (let ((game-nodes (-> *game-info* sub-task-list))) + (dotimes (i (-> game-nodes length)) + (when (nonzero? i) + (let ((node (-> game-nodes i))) + (when (logtest? (-> node flags) (game-task-node-flag closed)) + (case arg0 + (('game) + (if (nonzero? i) + (logclear! (-> node flags) (game-task-node-flag closed)) + ) + ) + (('life) + (if (and (not (task-complete? *game-info* (-> node task))) + (zero? (logand (-> node flags) (game-task-node-flag save-on-life))) + ) + (logclear! (-> node flags) (game-task-node-flag closed)) + ) + ) + (('try) + (if (and (not (task-complete? *game-info* (-> node task))) + (or (zero? (logand (-> node flags) (game-task-node-flag save-on-life save-on-try))) + (logtest? (-> node flags) (game-task-node-flag reset-on-try)) + ) + ) + (logclear! (-> node flags) (game-task-node-flag closed)) + ) + ) + ) + (when (logtest? (-> node flags) (game-task-node-flag closed)) + (dotimes (v1-31 4) + (if (nonzero? (-> node parent-node v1-31)) + (logior! (-> game-nodes (-> node parent-node v1-31) flags) (game-task-node-flag closed)) + ) + ) + ) + ) + ) + ) + ) + ) + (+! (-> *game-info* task-counter) 1) + 0 + ) + +(defun-debug task-node-dump ((arg0 symbol)) + (let ((gp-0 (-> *game-info* sub-task-list))) + (dotimes (s5-0 (-> gp-0 length)) + (when (nonzero? s5-0) + (let* ((s0-0 (-> gp-0 s5-0)) + (s4-0 format) + (s3-0 #t) + (s2-0 " ~-40S ~-8S ~S~%") + (s1-0 (game-task-node->string (the-as game-task-node s5-0))) + (a3-0 (if (task-node-closed? (the-as game-task-node s5-0)) + "closed" + "open" + ) + ) + (t0-0 (and (-> s0-0 info) (handle->process (-> s0-0 info manager)))) + ) + (set! t0-0 (cond + (t0-0 + (empty) + t0-0 + ) + (else + "" + ) + ) + ) + (s4-0 s3-0 s2-0 s1-0 a3-0 t0-0) + ) + ) + ) + ) + #f + ) + +(defmethod print game-task-event ((obj game-task-event)) + (let* ((t9-0 format) + (a0-1 #t) + (a1-0 "#") + (v1-0 (-> obj actor)) + (a2-1 (cond + ((= v1-0 (game-task-actor burning-bush-genc)) + "burning-bush-genc" + ) + ((= v1-0 (game-task-actor minimap)) + "minimap" + ) + ((= v1-0 (game-task-actor youngsamos-tomb)) + "youngsamos-tomb" + ) + ((= v1-0 (game-task-actor youngsamos-onintent)) + "youngsamos-onintent" + ) + ((= v1-0 (game-task-actor baron-consite)) + "baron-consite" + ) + ((= v1-0 (game-task-actor burning-bush-markb)) + "burning-bush-markb" + ) + ((= v1-0 (game-task-actor keira-garage)) + "keira-garage" + ) + ((= v1-0 (game-task-actor burning-bush-genc-2)) + "burning-bush-genc-2" + ) + ((= v1-0 (game-task-actor samos-garage)) + "samos-garage" + ) + ((= v1-0 (game-task-actor kid-hideout)) + "kid-hideout" + ) + ((= v1-0 (game-task-actor krew-hiphog)) + "krew-hiphog" + ) + ((= v1-0 (game-task-actor burning-bush-port-2)) + "burning-bush-port-2" + ) + ((= v1-0 (game-task-actor none)) + "none" + ) + ((= v1-0 (game-task-actor burning-bush-port-3)) + "burning-bush-port-3" + ) + ((= v1-0 (game-task-actor brutter-kiosk)) + "brutter-kiosk" + ) + ((= v1-0 (game-task-actor tess-alley)) + "tess-alley" + ) + ((= v1-0 (game-task-actor whack-a-metal-hiphog)) + "whack-a-metal-hiphog" + ) + ((= v1-0 (game-task-actor burning-bush-gena)) + "burning-bush-gena" + ) + ((= v1-0 (game-task-actor vin-vinroom)) + "vin-vinroom" + ) + ((= v1-0 (game-task-actor kor-hideout)) + "kor-hideout" + ) + ((= v1-0 (game-task-actor burning-bush-pal-2)) + "burning-bush-pal-2" + ) + ((= v1-0 (game-task-actor kid-alley)) + "kid-alley" + ) + ((= v1-0 (game-task-actor burning-bush-stadium)) + "burning-bush-stadium" + ) + ((= v1-0 (game-task-actor ashelin-market)) + "ashelin-market" + ) + ((= v1-0 (game-task-actor kid-tomb)) + "kid-tomb" + ) + ((= v1-0 (game-task-actor burning-bush-farma)) + "burning-bush-farma" + ) + ((= v1-0 (game-task-actor baron-tomb)) + "baron-tomb" + ) + ((= v1-0 (game-task-actor burning-bush-slumc)) + "burning-bush-slumc" + ) + ((= v1-0 (game-task-actor burning-bush-slumb-2)) + "burning-bush-slumb-2" + ) + ((= v1-0 (game-task-actor baron-palace)) + "baron-palace" + ) + ((= v1-0 (game-task-actor crocadog-alley)) + "crocadog-alley" + ) + ((= v1-0 (game-task-actor baron-castle)) + "baron-castle" + ) + ((= v1-0 (game-task-actor crocadog-vinroom)) + "crocadog-vinroom" + ) + ((= v1-0 (game-task-actor burning-bush-gena-2)) + "burning-bush-gena-2" + ) + ((= v1-0 (game-task-actor daxter-tomb)) + "daxter-tomb" + ) + ((= v1-0 (game-task-actor burning-bush-port)) + "burning-bush-port" + ) + ((= v1-0 (game-task-actor burning-bush-marka)) + "burning-bush-marka" + ) + ((= v1-0 (game-task-actor crocadog-tomb)) + "crocadog-tomb" + ) + ((= v1-0 (game-task-actor keira-stadium)) + "keira-stadium" + ) + ((= v1-0 (game-task-actor sig-hiphog)) + "sig-hiphog" + ) + ((= v1-0 (game-task-actor youngsamos-hideout)) + "youngsamos-hideout" + ) + ((= v1-0 (game-task-actor burning-bush-genb-2)) + "burning-bush-genb-2" + ) + ((= v1-0 (game-task-actor burning-bush-inda)) + "burning-bush-inda" + ) + ((= v1-0 (game-task-actor kor-tomb)) + "kor-tomb" + ) + ((= v1-0 (game-task-actor kor-consite)) + "kor-consite" + ) + ((= v1-0 (game-task-actor torn-hideout)) + "torn-hideout" + ) + ((= v1-0 (game-task-actor onin-onintent)) + "onin-onintent" + ) + ((= v1-0 (game-task-actor kor-alley)) + "kor-alley" + ) + ((= v1-0 (game-task-actor kid-vinroom)) + "kid-vinroom" + ) + ((= v1-0 (game-task-actor ashelin-atoll)) + "ashelin-atoll" + ) + ((= v1-0 (game-task-actor burning-bush-sluma)) + "burning-bush-sluma" + ) + ((= v1-0 (game-task-actor burning-bush-slumb)) + "burning-bush-slumb" + ) + ((= v1-0 (game-task-actor youngsamos-alley)) + "youngsamos-alley" + ) + ((= v1-0 (game-task-actor youngsamos-forest)) + "youngsamos-forest" + ) + ((= v1-0 (game-task-actor samos-hideout)) + "samos-hideout" + ) + ((= v1-0 (game-task-actor burning-bush-genb)) + "burning-bush-genb" + ) + ((= v1-0 (game-task-actor oracle-oracle)) + "oracle-oracle" + ) + ((= v1-0 (game-task-actor torn-alley)) + "torn-alley" + ) + ((= v1-0 (game-task-actor kor-onintent)) + "kor-onintent" + ) + ((= v1-0 (game-task-actor tess-hiphog)) + "tess-hiphog" + ) + ((= v1-0 (game-task-actor burning-bush-markb-2)) + "burning-bush-markb-2" + ) + ((= v1-0 (game-task-actor ashelin-throne)) + "ashelin-throne" + ) + ((= v1-0 (game-task-actor burning-bush-indb)) + "burning-bush-indb" + ) + ((= v1-0 (game-task-actor pecker-onintent)) + "pecker-onintent" + ) + ((= v1-0 (game-task-actor kor-vinroom)) + "kor-vinroom" + ) + ((= v1-0 (game-task-actor sig-atoll)) + "sig-atoll" + ) + ((= v1-0 (game-task-actor burning-bush-pal)) + "burning-bush-pal" + ) + ((= v1-0 (game-task-actor burning-bush-farmb)) + "burning-bush-farmb" + ) + (else + "*unknown*" + ) + ) + ) + (v1-1 (-> obj action)) + ) + (t9-0 + a0-1 + a1-0 + a2-1 + (cond + ((= v1-1 (game-task-action idle)) + "idle" + ) + ((= v1-1 (game-task-action play)) + "play" + ) + ((= v1-1 (game-task-action show)) + "show" + ) + ((= v1-1 (game-task-action talk)) + "talk" + ) + ((= v1-1 (game-task-action hide)) + "hide" + ) + ((= v1-1 (game-task-action say)) + "say" + ) + ((= v1-1 (game-task-action shade)) + "trade" + ) + ((= v1-1 (game-task-action menu)) + "menu" + ) + (else + "*unknown*" + ) + ) + (-> obj scene) + obj + ) + ) + obj + ) + +(defmethod new game-task-control ((allocation symbol) (type-to-make type) (arg0 game-task-actor)) + (let ((v0-0 (object-new allocation type-to-make (the-as int (-> type-to-make size))))) + (set! (-> v0-0 actor) arg0) + v0-0 + ) + ) + +(defmethod game-task-control-method-9 game-task-control ((obj game-task-control)) + (with-pp + (let ((gp-0 (new 'static 'game-task-event :scene #f))) + (let ((s5-0 #f)) + (when (!= (-> obj counter) (-> *game-info* task-counter)) + (set! (-> obj counter) (-> *game-info* task-counter)) + (set! (-> obj current-node) (game-task-node none)) + (set! (-> obj current-event) #f) + (set! s5-0 #t) + (let ((game-nodes (-> *game-info* sub-task-list))) + (dotimes (i (-> game-nodes length)) + (when (nonzero? i) + (let ((node (-> game-nodes i))) + (when (and (task-node-open? (the-as game-task-node i)) + (-> node when-open) + (begin + (countdown (v1-12 (-> node when-open length)) + (when (= (-> obj actor) (-> node when-open v1-12 actor)) + (set! (-> obj current-event) (-> node when-open v1-12)) + (set! (-> obj current-node) (the-as game-task-node i)) + #t + (goto cfg-18) + ) + ) + #f + ) + ) + ) + ) + ) + ) + ) + ) + (label cfg-18) + (cond + ((= (-> obj current-node) (game-task-node none)) + (set! (-> gp-0 actor) (-> obj actor)) + ) + (else + (set! gp-0 (-> obj current-event)) + (cond + ((and (logtest? (-> gp-0 flags) (game-task-flags gatflag-00)) + (let ((a1-2 (new 'stack-no-clear 'event-message-block))) + (set! (-> a1-2 from) (process->ppointer pp)) + (set! (-> a1-2 num-params) 0) + (set! (-> a1-2 message) 'get-alert-level) + (let ((a0-11 (send-event-function *traffic-manager* a1-2))) + (and a0-11 (nonzero? a0-11)) + ) + ) + ) + (set! (-> gp-0 action) (game-task-action hide)) + 0 + ) + (else + (set! (-> gp-0 action) (the-as game-task-action (-> gp-0 tex))) + ) + ) + ) + ) + (if s5-0 + (logior! (-> gp-0 flags) (game-task-flags gatflag-01)) + (logclear! (-> gp-0 flags) (game-task-flags gatflag-01)) + ) + ) + gp-0 + ) + ) + ) + +(deftype fail-mission (process) + ((message fail-mission-message :offset-assert 128) + (flags fail-mission-flags :offset-assert 129) + (retry-continue basic :offset-assert 132) + (fail-continue basic :offset-assert 136) + (reset-delay uint32 :offset-assert 140) + (grabbed-time time-frame :offset-assert 144) + (retry symbol :offset-assert 152) + (task game-task :offset-assert 156) + (message-id uint32 :offset-assert 160) + (fail-message uint32 :offset-assert 164) + (stinger uint32 :offset-assert 168) + ) + :heap-base #x30 + :method-count-assert 17 + :size-assert #xac + :flag-assert #x11003000ac + (:methods + (idle () _type_ :state 14) + (resetting () _type_ :state 15) + (print-text (_type_) float 16) + ) + ) + + +(defmethod run-logic? fail-mission ((obj fail-mission)) + #t + ) + +(defmethod print-text fail-mission ((obj fail-mission)) + (when (and (zero? (logand (-> obj flags) (fail-mission-flags famflags-6))) + (= (gui-control-method-17 *gui-control* (the-as sound-id (-> obj message-id))) (gui-action playing)) + ) + (let ((gp-0 (new + 'stack + 'font-context + *font-default-matrix* + 70 + 20 + 0.0 + (font-color gold-#ba9200) + (font-flags shadow kerning) + ) + ) + ) + (set! (-> gp-0 origin x) 120.0) + (let ((v1-7 gp-0)) + (set! (-> v1-7 scale) 0.7) + ) + (let ((v1-8 gp-0)) + (set! (-> v1-8 width) (the float (the-as float #x12c))) + ) + (let ((v1-9 gp-0)) + (set! (-> v1-9 height) (the float (the-as float #x23))) + ) + (set! (-> gp-0 flags) (font-flags shadow kerning middle left large)) + (let ((s4-0 (if (logtest? (-> obj flags) (fail-mission-flags famflags-2)) + (the-as int (-> obj fail-message)) + 393 + ) + ) + ) + (when (nonzero? s4-0) + (let ((s3-0 print-game-text)) + (format (clear *temp-string*) (lookup-text! *common-text* (the-as game-text-id s4-0) #f) 1) + (s3-0 *temp-string* gp-0 #f 44 320) + ) + ) + ) + (when (= (-> obj message) (fail-mission-message fammsg-1)) + (let ((v1-17 gp-0)) + (set! (-> v1-17 height) (the float (the-as float #x5f))) + ) + (let ((s5-1 print-game-text)) + (format (clear *temp-string*) (lookup-text! *common-text* (game-text-id text-x18a) #f) 1) + (s5-1 *temp-string* gp-0 #f 44 320) + ) + (let ((v1-19 gp-0)) + (set! (-> v1-19 height) (the float (the-as float #x9b))) + ) + (let ((s5-2 print-game-text)) + (format (clear *temp-string*) (lookup-text! *common-text* (game-text-id text-x180) #f) 1) + (s5-2 *temp-string* gp-0 #f 44 320) + ) + ) + ) + ) + ) + +(defstate idle (fail-mission) + :virtual #t + :event (behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block)) + (case arg2 + (('reset) + (cond + ((logtest? (-> self flags) (fail-mission-flags famflags-1)) + (persist-with-delay *setting-control* 'fail (seconds 10) 'bg-a 'abs 1.0 0) + (go-virtual resetting) + ) + (else + (logior! (-> self flags) (fail-mission-flags famflags-0)) + (set! (-> self reset-delay) (the-as uint 0)) + #t + ) + ) + ) + (('query) + (case (-> arg3 param 0) + (('reset) + (logtest? (-> self flags) (fail-mission-flags famflags-1)) + ) + ) + ) + ) + ) + :exit (behavior () + (update-rates! (-> *display* bg-clock) 1.0) + (update-rates! (-> *display* entity-clock) 1.0) + (update-rates! (-> *display* target-clock) 1.0) + (update-rates! (-> *display* camera-clock) 1.0) + (none) + ) + :code (behavior () + (when (and *target* (logtest? (-> *target* focus-status) (focus-status dead))) + (if (and (logtest? (-> self flags) (fail-mission-flags famflags-3)) (zero? (-> self message))) + (deactivate self) + ) + (if (= (-> self message) (fail-mission-message fammsg-0)) + (logior! (-> self flags) (fail-mission-flags famflags-3)) + ) + ) + (case (-> self message) + (((fail-mission-message fammsg-0)) + (while (begin + (if (and *target* (logtest? (-> *target* focus-status) (focus-status grabbed))) + (process-release? *target*) + ) + (let ((a1-0 (new 'stack-no-clear 'event-message-block))) + (set! (-> a1-0 from) (process->ppointer self)) + (set! (-> a1-0 num-params) 2) + (set! (-> a1-0 message) 'attack-invinc) + (set! (-> a1-0 param 0) (the-as uint #f)) + (let ((v1-24 (new 'static 'attack-info :mask (attack-info-mask mode id)))) + (let* ((a0-10 *game-info*) + (a2-1 (+ (-> a0-10 attack-id) 1)) + ) + (set! (-> a0-10 attack-id) a2-1) + (set! (-> v1-24 id) a2-1) + ) + (set! (-> v1-24 mode) 'bot) + (set! (-> a1-0 param 1) (the-as uint v1-24)) + ) + (not (or (send-event-function *target* a1-0) + (and *target* (logtest? (-> *target* focus-status) (focus-status dead))) + ) + ) + ) + ) + (suspend) + ) + ) + (((fail-mission-message fammsg-1)) + (while (let ((t9-3 process-grab?) + (a0-17 *target*) + ) + 'dead + (not (t9-3 a0-17)) + ) + (suspend) + ) + ) + ) + (logior! (-> self flags) (fail-mission-flags famflags-1)) + (set! (-> self grabbed-time) (-> self clock frame-counter)) + (when (zero? (logand (-> self flags) (fail-mission-flags famflags-3))) + (when (zero? (logand (-> self flags) (fail-mission-flags famflags-5))) + (while (< (- (-> self clock frame-counter) (-> self grabbed-time)) (seconds 1.5)) + (let ((f30-0 (lerp-scale 0.0 1.0 (the float (- (-> self clock frame-counter) (-> self grabbed-time))) 0.0 450.0))) + (set-filter-color! + (lerp-scale 1.0 1.25 f30-0 0.0 1.0) + (lerp-scale 1.0 0.875 f30-0 0.0 1.0) + (lerp-scale 1.0 0.25 f30-0 0.0 1.0) + ) + (update-rates! (-> *display* bg-clock) (- 1.0 f30-0)) + (update-rates! (-> *display* entity-clock) (- 1.0 f30-0)) + (update-rates! (-> *display* target-clock) (- 1.0 f30-0)) + (update-rates! (-> *display* camera-clock) (- 1.0 f30-0)) + ) + (print-text self) + (suspend) + ) + (set! (-> self clock) (-> *display* real-clock)) + (logclear! (-> self mask) (process-mask freeze)) + (set-master-mode 'freeze) + ) + ) + (case (-> self message) + (((fail-mission-message fammsg-0)) + (until #f + (when (or (and (logtest? (-> self flags) (fail-mission-flags famflags-0)) + (>= (- (-> self clock frame-counter) (-> self grabbed-time)) (the-as time-frame (-> self reset-delay))) + ) + (or (logtest? (pad-buttons confirm) (-> *cpad-list* cpads 0 button0-rel 0)) + (logtest? (-> self flags) (fail-mission-flags famflags-3)) + ) + ) + (logclear! (-> *cpad-list* cpads 0 button0-abs 0) (pad-buttons confirm)) + (logclear! (-> *cpad-list* cpads 0 button0-rel 0) (pad-buttons confirm)) + (persist-with-delay *setting-control* 'fail (seconds 10) 'bg-a 'abs 1.0 0) + (go-virtual resetting) + ) + (print-text self) + (suspend) + ) + #f + ) + (((fail-mission-message fammsg-1)) + (until #f + (when (or (logtest? (pad-buttons confirm) (-> *cpad-list* cpads 0 button0-rel 0)) + (logtest? (-> self flags) (fail-mission-flags famflags-3)) + ) + (logclear! (-> *cpad-list* cpads 0 button0-abs 0) (pad-buttons confirm)) + (logclear! (-> *cpad-list* cpads 0 button0-rel 0) (pad-buttons confirm)) + (set! (-> self retry) #t) + (while (not (process-release? *target*)) + (suspend) + ) + (suspend) + (persist-with-delay *setting-control* 'fail (seconds 10) 'bg-a 'abs 1.0 0) + (go-virtual resetting) + ) + (when (cpad-pressed? 0 triangle) + (logclear! (-> *cpad-list* cpads 0 button0-abs 0) (pad-buttons triangle)) + (logclear! (-> *cpad-list* cpads 0 button0-rel 0) (pad-buttons triangle)) + (set! (-> self retry) #f) + (while (not (process-release? *target*)) + (suspend) + ) + (suspend) + (go-virtual resetting) + ) + (print-text self) + (suspend) + ) + #f + ) + ) + (none) + ) + ) + +;; WARN: Return type mismatch process vs none. +(defmethod deactivate fail-mission ((obj fail-mission)) + (set-filter-color! 1.0 1.0 1.0) + (sound-group-continue (sound-group sfx music dialog sog3 ambient dialog2 sog6 sog7)) + (update-rates! (-> *display* bg-clock) 1.0) + (update-rates! (-> *display* entity-clock) 1.0) + (update-rates! (-> *display* target-clock) 1.0) + (update-rates! (-> *display* camera-clock) 1.0) + ((the-as (function process process) (find-parent-method fail-mission 10)) obj) + (none) + ) + +(defstate resetting (fail-mission) + :virtual #t + :event (behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block)) + (let ((v1-0 arg2)) + (the-as object (cond + ((= v1-0 'reset) + #t + ) + ((= v1-0 'query) + (case (-> arg3 param 0) + (('reset) + #t + ) + ) + ) + ) + ) + ) + ) + :enter (behavior () + '() + (none) + ) + :exit (behavior () + (if (= *master-mode* 'freeze) + (set-master-mode 'game) + ) + (process-release? *target*) + (none) + ) + :code (behavior () + (local-vars (a1-10 basic)) + (let ((gp-0 (-> self clock frame-counter))) + (until (>= (- (-> self clock frame-counter) gp-0) (seconds 1)) + (let ((f30-0 (lerp-scale 1.0 0.0 (the float (- (-> self clock frame-counter) gp-0)) 0.0 270.0))) + (when *sound-player-enable* + (let ((v1-6 (the-as sound-rpc-set-param (get-sound-buffer-entry)))) + (set! (-> v1-6 command) (sound-command set-param)) + (set! (-> v1-6 id) (the-as sound-id (-> self stinger))) + (set! (-> v1-6 params volume) (the int (* 1024.0 f30-0))) + (set! (-> v1-6 params mask) (the-as uint 1)) + (-> v1-6 id) + ) + ) + ) + (let ((f30-1 (lerp-scale 1.0 0.0 (the float (- (-> self clock frame-counter) gp-0)) 0.0 300.0))) + (set-filter-color! + (lerp-scale 1.0 1.25 f30-1 0.0 1.0) + (lerp-scale 1.0 0.875 f30-1 0.0 1.0) + (lerp-scale 1.0 0.25 f30-1 0.0 1.0) + ) + ) + (suspend) + ) + ) + (case (-> self message) + (((fail-mission-message fammsg-0)) + (let ((a1-6 (-> self fail-continue))) + (if a1-6 + (set-continue! *game-info* a1-6 #t) + ) + ) + (task-node-reset 'life) + (update-task-masks 'life) + (send-event *target* 'end-mode) + ) + (((fail-mission-message fammsg-1)) + (cond + ((-> self retry) + (let ((a1-8 (-> self retry-continue))) + (if a1-8 + (set-continue! *game-info* a1-8 #t) + ) + ) + (initialize! *game-info* 'try (the-as game-save #f) (the-as string #f)) + ) + ((begin (set! a1-10 (-> self fail-continue)) a1-10) + (set-continue! *game-info* a1-10 #t) + (initialize! *game-info* 'life (the-as game-save #f) (the-as string #f)) + ) + (else + (task-node-reset 'life) + (update-task-masks 'life) + (if (and *target* (logtest? (-> *target* focus-status) (focus-status dead grabbed))) + (send-event *target* 'end-mode) + ) + ) + ) + ) + ) + (persist-with-delay *setting-control* 'allow-continue (seconds 3) 'allow-continue #f 0.0 0) + (persist-with-delay *setting-control* 'speech-control (seconds 3) 'speech-control #f 0.0 0) + (persist-with-delay *setting-control* 'music-volume (seconds 3) 'music-volume 'abs 0.0 0) + (persist-with-delay *setting-control* 'sfx-volume (seconds 3) 'music-volume 'abs 0.0 0) + (none) + ) + ) + +(defbehavior fail-mission-init-by-other fail-mission ((arg0 fail-mission-params)) + (set! (-> self message) (-> arg0 message)) + (set! (-> self flags) (-> arg0 flags)) + (set! (-> self retry-continue) (-> arg0 retry-continue)) + (set! (-> self fail-continue) (-> arg0 fail-continue)) + (set! (-> self reset-delay) (-> arg0 reset-delay)) + (set! (-> self task) (-> arg0 task)) + (set! (-> self fail-message) (the-as uint (-> arg0 fail-message))) + (set-setting! 'allow-continue #f 0 0) + (set-setting! 'minimap 'clear 0 128) + (gui-control-method-16 + *gui-control* + (gui-action stop) + (the-as sound-id 1) + (gui-channel guard) + (gui-action none) + (the-as string #f) + (the-as (function gui-connection symbol) #f) + (the-as process #f) + ) + (gui-control-method-16 + *gui-control* + (gui-action stop) + (the-as sound-id 1) + (gui-channel citizen) + (gui-action none) + (the-as string #f) + (the-as (function gui-connection symbol) #f) + (the-as process #f) + ) + (when (zero? (logand (-> arg0 flags) (fail-mission-flags famflags-4))) + (if (not (and *target* (logtest? (-> *target* focus-status) (focus-status dead)) (zero? (-> self message)))) + (set! (-> self stinger) + (the-as + uint + (gui-control-method-9 *gui-control* *target* (gui-channel background) (gui-action play) "lose1" -99.0 0) + ) + ) + ) + ) + (set-setting! 'music-volume 'abs 0 0) + (set-setting! 'sfx-volume 'abs 0 0) + (set-setting! 'speech-control #f 0 0) + (set! (-> self clock) (-> *display* base-clock)) + (apply-settings *setting-control*) + (if (or (zero? (logand (-> self flags) (fail-mission-flags famflags-2))) + (nonzero? (-> self fail-message)) + (= (-> self message) (fail-mission-message fammsg-1)) + ) + (set! (-> self message-id) + (the-as + uint + (gui-control-method-9 *gui-control* self (gui-channel supertitle) (gui-action play) "fail" 81920.0 0) + ) + ) + ) + (go-virtual idle) + ) + +(defmethod start! fail-mission-control ((obj fail-mission-control) (arg0 fail-mission-params)) + (when (not (handle->process (-> obj process))) + (let ((v1-4 (process-spawn fail-mission arg0 :to *entity-pool*))) + (when v1-4 + (set! (-> obj process) (process->handle (-> v1-4 0))) + #t + ) + ) + ) + ) + +(defmethod reset! fail-mission-control ((obj fail-mission-control)) + (send-event (handle->process (-> obj process)) 'reset) + ) + +;; WARN: Return type mismatch object vs symbol. +(defmethod reset? fail-mission-control ((obj fail-mission-control)) + (the-as symbol (send-event (handle->process (-> obj process)) 'query 'reset)) + ) + +;; WARN: Return type mismatch process vs fail-mission. +(defmethod get-proc fail-mission-control ((obj fail-mission-control)) + (the-as fail-mission (handle->process (-> obj process))) + ) + +(defmethod copy-hooks! game-task-node-info ((obj game-task-node-info) (arg0 game-task-node-info)) + (when (and (-> obj info) (-> arg0 info)) + (countdown (v1-3 7) + (set! (-> obj info hooks v1-3) (-> arg0 info hooks v1-3)) + ) + ) + obj + ) + +;; WARN: Return type mismatch process vs task-manager. +(defmethod relocate task-manager ((obj task-manager) (arg0 int)) + (if (nonzero? (-> obj link)) + (+! (-> obj link) arg0) + ) + (the-as task-manager ((method-of-type process relocate) obj arg0)) + ) + +(defbehavior task-manager-init-by-other task-manager ((arg0 game-task-node-info) (arg1 symbol)) + (stack-size-set! (-> self main-thread) 1024) + (add-connection *task-manager-engine* self nothing self arg0 #f) + (set! (-> self node-info) arg0) + (set! (-> self lev-name) arg1) + (add-setting! 'task arg0 0 0) + (add-setting! 'task-manager (process->ppointer self) 0 0) + (set! (-> self intro-time) (-> self clock frame-counter)) + (set! (-> self fail-on-death?) (zero? (logand (-> arg0 flags) (game-task-node-flag no-fail-on-death)))) + (when arg1 + (let* ((v1-15 (level-get *level* arg1)) + (a1-6 (if (and (nonzero? (-> v1-15 entity)) (> (-> v1-15 entity length) 0)) + (-> v1-15 entity data 0 entity) + ) + ) + ) + (if a1-6 + (process-entity-set! self (the-as entity-actor a1-6)) + ) + ) + ) + (initialize! self) + (go-virtual wait) + ) + +(defmethod kill-all-children task-manager ((obj task-manager)) + (while (-> obj child) + (deactivate (ppointer->process (-> obj child))) + ) + 0 + ) + +(defmethod check-time task-manager ((obj task-manager)) + (with-pp + (when (nonzero? (-> obj start-time)) + (let ((v1-3 (handle->process (-> obj hud-timer)))) + (if (and *target* (not v1-3)) + (set! (-> obj hud-timer) (ppointer->handle (process-spawn hud-timer :init hud-init-by-other :to *target*))) + ) + ) + (let ((v1-15 (- (-> obj time-limit) (- (-> pp clock frame-counter) (-> obj start-time))))) + (let ((a0-15 *game-info*)) + (set! (-> a0-15 timer) v1-15) + (set! (-> a0-15 timer-flash) (< v1-15 (seconds 10))) + ) + (when (< v1-15 0) + (if *debug-segment* + (format #t "task failed: ran out of time~%") + ) + (send-event (handle->process (-> obj hud-timer)) 'hide-and-die) + (go (method-of-object obj fail)) + ) + ) + ) + 0 + ) + ) + +(defmethod initialize! task-manager ((obj task-manager)) + (set! (-> obj info) (-> obj node-info info)) + (countdown (v1-2 32) + (set! (-> obj slave v1-2) (the-as handle #f)) + ) + (countdown (v1-5 4) + (set! (-> obj hud v1-5) (the-as handle #f)) + ) + (set! (-> obj arrow) (the-as handle #f)) + (countdown (v1-8 4) + (set! (-> obj minimap v1-8) (the-as uint #f)) + ) + (countdown (v1-11 4) + (set! (-> obj actor-group v1-11) (the-as uint #f)) + ) + (set! (-> obj fail-now) #f) + (set! (-> obj retry-now) #f) + (set! (-> obj allow-fail) #t) + 0 + ) + +(defmethod deactivate task-manager ((obj task-manager)) + (with-pp + (let ((s5-0 pp)) + (set! pp obj) + (let ((t9-0 (-> obj info cleanup-hook))) + (if t9-0 + (t9-0) + ) + ) + (set! pp s5-0) + ) + (countdown (s5-1 4) + (send-event (handle->process (-> obj hud s5-1)) 'hide-and-die) + ) + ((method-of-type process deactivate) obj) + (none) + ) + ) + +(defbehavior task-manager-event-handler task-manager ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block)) + (local-vars (v0-0 object)) + (case arg2 + (('fail) + (if (not (and (-> self next-state) (let ((v1-4 (-> self next-state name))) + (or (= v1-4 'complete) (= v1-4 'fail) (= v1-4 'retry)) + ) + ) + ) + (go-virtual fail) + ) + ) + (('retry) + (if (and (not (and (-> self next-state) (let ((v1-10 (-> self next-state name))) + (or (= v1-10 'complete) (= v1-10 'fail) (= v1-10 'retry)) + ) + ) + ) + (-> self info retry-continue) + ) + (go-virtual retry) + ) + ) + (('complete) + (if (or (not (and (-> self next-state) (let ((v1-18 (-> self next-state name))) + (or (= v1-18 'complete) (= v1-18 'fail) (= v1-18 'retry)) + ) + ) + ) + (not (-> self allow-fail)) + ) + (go-virtual complete) + ) + ) + (('wait) + (go-virtual wait) + ) + (('active) + (go-virtual active) + ) + (('fail-on-death) + (set! v0-0 (-> arg3 param 0)) + (set! (-> self fail-on-death?) (the-as symbol v0-0)) + v0-0 + ) + (('target) + (case (-> arg3 param 0) + (('die) + (when (-> self fail-on-death?) + (if (and (-> self next-state) (= (-> self next-state name) 'active)) + (go-virtual fail) + ) + (when (and (-> self next-state) (let ((v1-40 (-> self next-state name))) + (or (= v1-40 'active) (= v1-40 'fail) (= v1-40 'retry)) + ) + ) + (if (or (-> self info retry-continue) (-> self info fail-continue)) + 'wait + #f + ) + ) + ) + ) + ) + ) + (('fail-continue) + (if (and (-> self info fail-continue) + (= (-> *setting-control* user-current exclusive-task) (-> self node-info task)) + ) + (-> self info fail-continue) + ) + ) + (('fail-immediately) + (when (or (not (and (-> self next-state) (let ((v1-54 (-> self next-state name))) + (or (= v1-54 'complete) (= v1-54 'fail) (= v1-54 'retry)) + ) + ) + ) + (not (-> self allow-fail)) + ) + (set! (-> self allow-fail) #t) + (set! (-> self fail-now) #t) + (go-virtual fail) + ) + ) + (('allow-fail) + (set! v0-0 (-> arg3 param 0)) + (set! (-> self allow-fail) (the-as symbol v0-0)) + v0-0 + ) + (('retry-immediately) + (when (and (or (not (and (-> self next-state) (let ((v1-64 (-> self next-state name))) + (or (= v1-64 'complete) (= v1-64 'fail) (= v1-64 'retry)) + ) + ) + ) + (not (-> self allow-fail)) + ) + (-> self info retry-continue) + ) + (set! (-> self retry-now) #t) + (go-virtual retry) + ) + ) + (else + (let ((t9-8 (-> self info event-hook))) + (if t9-8 + (t9-8 arg0 arg1 arg2 arg3) + ) + ) + ) + ) + ) + +;; WARN: Return type mismatch object vs symbol. +(defmethod task-manager-method-22 task-manager ((obj task-manager)) + (with-pp + (the-as + symbol + (and (or (zero? (logand (-> obj node-info flags) (game-task-node-flag city-wait))) + (let ((a0-2 (level-get-target-inside *level*))) + (cond + ((not (and a0-2 (logtest? (-> a0-2 info level-flags) 1))) + (set! (-> obj intro-time) (-> pp clock frame-counter)) + #f + ) + (else + #t + ) + ) + ) + ) + (or (zero? (-> obj info intro-delay)) + (>= (- (-> pp clock frame-counter) (-> obj intro-time)) (the-as time-frame (-> obj info intro-delay))) + ) + (and *target* (zero? (logand (focus-status dead teleporting) (-> *target* focus-status)))) + ) + ) + ) + ) + +(defstate wait (task-manager) + :virtual #t + :event task-manager-event-handler + :trans (behavior () + (if (or (and (nonzero? (-> self info final-node)) (task-node-closed? (-> self info final-node))) + (and (zero? (logand (-> self node-info flags) (game-task-node-flag closed))) + (not (open? (-> self node-info))) + ) + ) + (deactivate self) + ) + (none) + ) + :code (behavior () + (while (or (not *target*) (not *spawn-actors*)) + (suspend) + ) + (when (or (logtest? (-> self node-info flags) (game-task-node-flag intro-wait city-wait)) + (nonzero? (-> self info intro-delay)) + ) + (while (not (task-manager-method-22 self)) + (suspend) + ) + (let ((a0-3 (-> self info intro-scene))) + (if a0-3 + (talker-spawn-func (string->talker-speech a0-3) *entity-pool* (target-pos 0) (the-as region #f)) + ) + ) + (if (logtest? (-> self node-info flags) (game-task-node-flag intro-wait)) + (close! (-> self node-info) 'event) + ) + ) + (let ((t9-5 (-> self info init-hook))) + (if t9-5 + (t9-5) + ) + ) + (go-virtual active) + (none) + ) + ) + +(defstate active (task-manager) + :virtual #t + :event task-manager-event-handler + :trans (behavior () + ((-> (method-of-object self wait) trans)) + (let ((t9-1 (-> self info update-hook))) + (if t9-1 + (t9-1) + ) + ) + (none) + ) + :code (behavior () + (let ((t9-0 (-> self info code-hook))) + (if t9-0 + (t9-0) + ) + ) + (until #f + (if *debug-segment* + (format *stdcon* "task-manager: alive task ~A~%" (game-task->string (-> self node-info task))) + ) + (suspend) + ) + #f + (none) + ) + ) + +(defstate complete (task-manager) + :virtual #t + :event task-manager-event-handler + :code (behavior () + (if (handle->process (-> *fail-mission-control* process)) + (sleep-code) + ) + (send-event (handle->process (-> self arrow)) 'die) + (countdown (gp-0 4) + (send-event (handle->process (-> self hud gp-0)) 'hide-and-die) + ) + (let ((t9-3 (-> self info complete-hook))) + (if t9-3 + (t9-3) + ) + ) + (set! (-> self state-time) (-> self clock frame-counter)) + (when (logtest? (-> self info mask) (task-manager-mask resolution-scene)) + (let ((gp-2 (ppointer->handle (process-spawn + scene-player + :init scene-player-init + (-> self info resolution-scene) + #t + (-> self info resolution-scene-continue) + ) + ) + ) + ) + (while (handle->process (the-as handle gp-2)) + (suspend) + ) + ) + ) + (let ((gp-3 (-> self info on-complete))) + (if gp-3 + (eval! (new 'stack 'script-context (the-as basic (process->ppointer self)) self (the-as vector #f)) gp-3) + ) + ) + (task-node-close! (-> self info final-node)) + (while (-> self child) + (suspend) + ) + (none) + ) + ) + +(defstate fail (task-manager) + :virtual #t + :event task-manager-event-handler + :exit (behavior () + ;; todo + ; (disable *screen-filter*) + (none) + ) + :code (behavior () + (while (not (-> self allow-fail)) + (suspend) + ) + (send-event (handle->process (-> self arrow)) 'die) + (countdown (gp-0 4) + (send-event (handle->process (-> self hud gp-0)) 'hide-and-die) + ) + (let ((t9-2 (-> self info fail-hook))) + (if t9-2 + (t9-2) + ) + ) + (let ((gp-1 (-> self info on-fail))) + (if gp-1 + (eval! (new 'stack 'script-context (the-as basic (process->ppointer self)) self (the-as vector #f)) gp-1) + ) + ) + (let ((a0-10 (-> self info retry-continue)) + (v1-28 (-> self info fail-continue)) + ) + (when (or a0-10 v1-28) + (let ((a1-5 (new 'stack-no-clear 'fail-mission-params))) + (cond + ((and (logtest? (-> self node-info flags) (game-task-node-flag task-retry)) + (logtest? (-> self info mask) (task-manager-mask retry-message)) + ) + (set! (-> a1-5 flags) (fail-mission-flags famflags-0 famflags-2)) + (set! (-> a1-5 message) (fail-mission-message fammsg-1)) + (set! (-> a1-5 retry-continue) a0-10) + (set! (-> a1-5 fail-continue) v1-28) + (set! (-> a1-5 reset-delay) (the-as uint 1500)) + (set! (-> a1-5 task) (-> self node-info task)) + (set! (-> a1-5 fail-message) (-> self info retry-message)) + ) + ((logtest? (-> self node-info flags) (game-task-node-flag task-retry)) + (set! (-> a1-5 flags) (fail-mission-flags famflags-0)) + (set! (-> a1-5 message) (fail-mission-message fammsg-1)) + (set! (-> a1-5 retry-continue) a0-10) + (set! (-> a1-5 fail-continue) v1-28) + (set! (-> a1-5 reset-delay) (the-as uint 1500)) + (set! (-> a1-5 task) (-> self node-info task)) + (set! (-> a1-5 fail-message) (game-text-id null)) + ) + ((logtest? (-> self info mask) (task-manager-mask fail-message)) + (set! (-> a1-5 flags) (fail-mission-flags famflags-0 famflags-2)) + (set! (-> a1-5 message) (fail-mission-message fammsg-0)) + (set! (-> a1-5 retry-continue) a0-10) + (set! (-> a1-5 fail-continue) v1-28) + (set! (-> a1-5 reset-delay) (the-as uint 1500)) + (set! (-> a1-5 task) (-> self node-info task)) + (set! (-> a1-5 fail-message) (-> self info fail-message)) + ) + (else + (set! (-> a1-5 flags) (fail-mission-flags famflags-0)) + (set! (-> a1-5 message) (fail-mission-message fammsg-0)) + (set! (-> a1-5 retry-continue) a0-10) + (set! (-> a1-5 fail-continue) v1-28) + (set! (-> a1-5 reset-delay) (the-as uint 1500)) + (set! (-> a1-5 task) (-> self node-info task)) + (set! (-> a1-5 fail-message) (game-text-id null)) + ) + ) + (if (logtest? (game-task-node-flag no-audio) (-> self node-info flags)) + (logior! (-> a1-5 flags) (fail-mission-flags famflags-4)) + ) + (if (logtest? (game-task-node-flag no-slow-down) (-> self node-info flags)) + (logior! (-> a1-5 flags) (fail-mission-flags famflags-5)) + ) + (when (-> self fail-now) + (set! (-> a1-5 flags) (fail-mission-flags famflags-0 famflags-2)) + (set! (-> a1-5 message) (fail-mission-message fammsg-0)) + (set! (-> a1-5 retry-continue) v1-28) + (set! (-> a1-5 fail-continue) v1-28) + (set! (-> a1-5 reset-delay) (the-as uint 1500)) + (set! (-> a1-5 task) (-> self node-info task)) + (set! (-> a1-5 fail-message) (game-text-id null)) + (set! (-> a1-5 reset-delay) (the-as uint 0)) + (logior! (-> a1-5 flags) (fail-mission-flags famflags-0 famflags-3 famflags-4 famflags-5 famflags-6)) + ) + (start! *fail-mission-control* a1-5) + ) + (while (handle->process (-> *fail-mission-control* process)) + (suspend) + ) + ) + ) + (none) + ) + ) + +(defstate retry (task-manager) + :virtual #t + :event task-manager-event-handler + :exit (-> (method-of-type task-manager fail) exit) + :code (behavior () + (send-event (handle->process (-> self arrow)) 'die) + (countdown (gp-0 4) + (send-event (handle->process (-> self hud gp-0)) 'hide-and-die) + ) + (let ((t9-2 (-> self info fail-hook))) + (if t9-2 + (t9-2) + ) + ) + (let ((v1-20 (-> self info retry-continue))) + (cond + (v1-20 + (let ((a1-2 (new 'stack-no-clear 'fail-mission-params))) + (set! (-> a1-2 flags) (fail-mission-flags famflags-0 famflags-2)) + (set! (-> a1-2 message) (fail-mission-message fammsg-1)) + (set! (-> a1-2 retry-continue) v1-20) + (set! (-> a1-2 fail-continue) v1-20) + (set! (-> a1-2 reset-delay) (the-as uint 1500)) + (set! (-> a1-2 task) (-> self node-info task)) + (set! (-> a1-2 fail-message) (game-text-id null)) + (logior! (-> a1-2 flags) (fail-mission-flags famflags-3 famflags-4)) + (when (-> self retry-now) + (set! (-> a1-2 reset-delay) (the-as uint 0)) + (logior! (-> a1-2 flags) (fail-mission-flags famflags-0 famflags-3 famflags-4 famflags-5 famflags-6)) + ) + (start! *fail-mission-control* a1-2) + ) + (while (handle->process (-> *fail-mission-control* process)) + (suspend) + ) + ) + (else + (initialize! *game-info* 'try (the-as game-save #f) (the-as string #f)) + ) + ) + ) + (none) + ) + ) diff --git a/goal_src/jak2/engine/geometry/geometry-h.gc b/goal_src/jak2/engine/geometry/geometry-h.gc index 7fa2fbf797..9b88f3bcf1 100644 --- a/goal_src/jak2/engine/geometry/geometry-h.gc +++ b/goal_src/jak2/engine/geometry/geometry-h.gc @@ -5,10 +5,10 @@ ;; name in dgo: geometry-h ;; dgos: ENGINE, GAME +(define-extern quaternion-from-two-vectors-max-angle! (function quaternion vector vector float quaternion)) + ;; DECOMP BEGINS -;; A 3 dimensional polynomial spline with arbitrarily placed knot points -;; It's used for camera paths and similar and can be generated by offline tools. (deftype curve (structure) ((cverts (inline-array vector) :offset-assert 0) (num-cverts int32 :offset-assert 4) @@ -21,7 +21,7 @@ :flag-assert #x900000014 ) -;; unused plane type that would likely trigger some action on crossing. + (deftype border-plane (basic) ((name symbol :offset-assert 4) (action basic :offset-assert 8) @@ -33,10 +33,7 @@ :size-assert #x30 :flag-assert #xb00000030 (:methods - (debug-draw! (_type_) none 9) + (debug-draw (_type_) int 9) (point-past-plane? (_type_ vector) symbol 10) ) ) - - -(define-extern quaternion-from-two-vectors-max-angle! (function quaternion vector vector float quaternion)) diff --git a/goal_src/jak2/engine/gfx/mood/mood-funcs.gc b/goal_src/jak2/engine/gfx/mood/mood-funcs.gc index 87c93efbec..7fcd9c31b6 100644 --- a/goal_src/jak2/engine/gfx/mood/mood-funcs.gc +++ b/goal_src/jak2/engine/gfx/mood/mood-funcs.gc @@ -7,7 +7,6 @@ ;; DECOMP BEGINS -;; WARN: Return type mismatch int vs none. (defbehavior update-mood-default time-of-day-proc ((arg0 mood-context) (arg1 float) (arg2 int)) (copy-mood-exterior arg0) 0 @@ -57,7 +56,6 @@ (none) ) -;; WARN: Return type mismatch int vs none. (defbehavior update-mood-ruins time-of-day-proc ((arg0 mood-context) (arg1 float) (arg2 int)) (copy-mood-exterior arg0) (when (and (= (-> *level* level arg2 status) 'active) @@ -117,7 +115,6 @@ ) ) -;; WARN: Return type mismatch int vs none. (defbehavior update-mood-strip time-of-day-proc ((arg0 mood-context) (arg1 float) (arg2 int)) (copy-mood-exterior arg0) (when (and (= (-> *level* level arg2 status) 'active) @@ -156,7 +153,6 @@ ) -;; WARN: Return type mismatch int vs none. (defbehavior update-mood-ctywide time-of-day-proc ((arg0 mood-context) (arg1 float) (arg2 int)) (copy-mood-exterior arg0) (when (and (= (-> *level* level arg2 status) 'active) @@ -170,7 +166,6 @@ (none) ) -;; WARN: Return type mismatch int vs none. (defbehavior update-mood-copy-ctywide time-of-day-proc ((arg0 mood-context) (arg1 float) (arg2 int)) (let ((v1-1 (level-get *level* 'ctywide))) (cond @@ -198,7 +193,6 @@ ) -;; WARN: Return type mismatch int vs none. (defbehavior update-mood-ctyind time-of-day-proc ((arg0 mood-context) (arg1 float) (arg2 int)) (copy-mood-exterior arg0) (when (and (= (-> *level* level arg2 status) 'active) @@ -258,14 +252,10 @@ (set! (-> gp-0 spec-1) (get-field-spec-by-id a0-2 (sp-field-id spt-a))) ) ) - (let ((f0-0 (rand-vu-float-range 0.8 1.0))) - (set! (-> gp-0 neon-min-bright) f0-0) - f0-0 - ) + (set! (-> gp-0 neon-min-bright) (rand-vu-float-range 0.8 1.0)) ) ) -;; WARN: Return type mismatch int vs none. (defbehavior update-mood-ctysluma time-of-day-proc ((arg0 mood-context) (arg1 float) (arg2 int)) (copy-mood-exterior arg0) (when (and (!= arg2 -1) @@ -327,7 +317,6 @@ ) ) -;; WARN: Return type mismatch int vs none. (defbehavior update-mood-ctyslumb time-of-day-proc ((arg0 mood-context) (arg1 float) (arg2 int)) (copy-mood-exterior arg0) (when (and (= (-> *level* level arg2 status) 'active) @@ -381,7 +370,6 @@ (none) ) -;; WARN: Return type mismatch int vs none. (defbehavior update-mood-ctyslumc time-of-day-proc ((arg0 mood-context) (arg1 float) (arg2 int)) (copy-mood-exterior arg0) (when (and (= (-> *level* level arg2 status) 'active) @@ -429,14 +417,12 @@ ) ) -;; WARN: Return type mismatch int vs none. (defun init-mood-ctyport-no-part ((arg0 mood-context)) (set! (-> (the-as ctyport-states (-> arg0 state)) spec-0) (the-as sp-field-init-spec 0)) 0 (none) ) -;; WARN: Return type mismatch int vs none. (defbehavior update-mood-ctyport time-of-day-proc ((arg0 mood-context) (arg1 float) (arg2 int)) (copy-mood-exterior arg0) (when (and (!= arg2 -1) @@ -476,7 +462,6 @@ ) -;; WARN: Return type mismatch int vs none. (defbehavior update-mood-ctymarka time-of-day-proc ((arg0 mood-context) (arg1 float) (arg2 int)) (copy-mood-exterior arg0) (when (and (= (-> *level* level arg2 status) 'active) @@ -510,7 +495,6 @@ ) -;; WARN: Return type mismatch int vs none. (defbehavior update-mood-ctymarkb time-of-day-proc ((arg0 mood-context) (arg1 float) (arg2 int)) (copy-mood-exterior arg0) (when (and (!= arg2 -1) @@ -556,15 +540,11 @@ (defun init-mood-palcab ((arg0 mood-context)) - (let ((v1-0 (the-as object (-> arg0 state))) - (f0-0 1.0) - ) - (set! (-> (the-as palcab-states v1-0) electricity scale) f0-0) - f0-0 + (let ((v1-0 (the-as object (-> arg0 state)))) + (set! (-> (the-as palcab-states v1-0) electricity scale) 1.0) ) ) -;; WARN: Return type mismatch int vs none. (defbehavior update-mood-palcab time-of-day-proc ((arg0 mood-context) (arg1 float) (arg2 int)) (copy-mood-exterior arg0) (when (and (!= arg2 -1) @@ -582,7 +562,12 @@ (let ((a0-9 (new 'stack-no-clear 'sphere)) (a1-3 (-> *math-camera* trans)) ) - (set-vector! a0-9 786432.0 1818624.0 2498560.0 1.0) + (let ((v1-12 a0-9)) + (set! (-> v1-12 x) 786432.0) + (set! (-> v1-12 y) 1818624.0) + (set! (-> v1-12 z) 2498560.0) + (set! (-> v1-12 r) 1.0) + ) (let ((f0-8 (- 1.0 (get-sphere-interp a0-9 a1-3 1024000.0 2048000.0)))) (update-mood-weather! *mood-control* (+ 0.25 (* 0.75 f0-8)) (+ 0.5 (* 0.5 f0-8)) 30.0 30.0) ) @@ -595,11 +580,8 @@ (defun set-palcab-turret-flash! ((arg0 float)) (let ((v1-1 (level-get *level* 'palcab))) (when v1-1 - (let ((v1-2 (the-as object (-> v1-1 mood-context state))) - (f0-0 arg0) - ) - (set! (-> (the-as palcab-states v1-2) turret-value) f0-0) - f0-0 + (let ((v1-2 (the-as object (-> v1-1 mood-context state)))) + (set! (-> (the-as palcab-states v1-2) turret-value) arg0) ) ) ) @@ -615,7 +597,6 @@ ) -;; WARN: Return type mismatch int vs none. (defun update-stadium-lights ((arg0 mood-context)) (let ((a1-0 (-> arg0 light-group)) (gp-0 (-> arg0 light-group 2)) @@ -629,7 +610,6 @@ (none) ) -;; WARN: Return type mismatch int vs none. (defbehavior update-mood-stadium time-of-day-proc ((arg0 mood-context) (arg1 float) (arg2 int)) (copy-mood-exterior arg0) (update-stadium-lights arg0) @@ -645,7 +625,6 @@ (none) ) -;; WARN: Return type mismatch int vs none. (defbehavior update-mood-copy-stadium time-of-day-proc ((arg0 mood-context) (arg1 float) (arg2 int)) (let ((v1-1 (level-get *level* 'stadium))) (cond @@ -676,7 +655,6 @@ ) -;; WARN: Return type mismatch int vs none. (defun update-stadiumb-lights ((arg0 mood-context)) (let ((gp-0 (-> arg0 light-group))) (let ((a0-1 (-> arg0 light-group 1))) @@ -690,7 +668,6 @@ (none) ) -;; WARN: Return type mismatch int vs none. (defbehavior update-mood-stadiumb time-of-day-proc ((arg0 mood-context) (arg1 float) (arg2 int)) (copy-mood-exterior arg0) (update-stadiumb-lights arg0) @@ -721,7 +698,6 @@ ) -;; WARN: Return type mismatch int vs none. (defbehavior update-mood-skatea time-of-day-proc ((arg0 mood-context) (arg1 float) (arg2 int)) (copy-mood-exterior arg0) (when (and (= (-> *level* level arg2 status) 'active) @@ -747,7 +723,6 @@ ) -;; WARN: Return type mismatch int vs none. (defun update-ltentout-lights ((arg0 mood-context)) (let ((v1-0 (-> arg0 light-group 2))) (set-vector! (-> v1-0 dir0 color) 0.822 0.694 0.613 1.0) @@ -757,7 +732,6 @@ (none) ) -;; WARN: Return type mismatch int vs none. (defbehavior update-mood-ltentout time-of-day-proc ((arg0 mood-context) (arg1 float) (arg2 int)) (copy-mood-exterior arg0) (update-ltentout-lights arg0) @@ -849,7 +823,6 @@ ) ) -;; WARN: Return type mismatch int vs none. (defbehavior update-mood-mountain time-of-day-proc ((arg0 mood-context) (arg1 float) (arg2 int)) (copy-mood-exterior arg0) (when (and (= (-> *level* level arg2 status) 'active) @@ -900,7 +873,6 @@ ) -;; WARN: Return type mismatch int vs none. (defbehavior update-mood-forest time-of-day-proc ((arg0 mood-context) (arg1 float) (arg2 int)) (copy-mood-exterior arg0) (when (and (= (-> *level* level arg2 status) 'active) @@ -924,15 +896,11 @@ (defun init-mood-atoll ((arg0 mood-context)) - (let ((v1-0 (the-as object (-> arg0 state))) - (f0-0 0.0) - ) - (set! (-> (the-as atoll-states v1-0) explosion) f0-0) - f0-0 + (let ((v1-0 (the-as object (-> arg0 state)))) + (set! (-> (the-as atoll-states v1-0) explosion) 0.0) ) ) -;; WARN: Return type mismatch int vs none. (defbehavior update-mood-atoll time-of-day-proc ((arg0 mood-context) (arg1 float) (arg2 int)) (copy-mood-exterior arg0) (when (and (= (-> *level* level arg2 status) 'active) @@ -953,17 +921,13 @@ (defun set-atoll-explosion! ((arg0 float)) (let ((v1-1 (level-get *level* 'atoll))) (when v1-1 - (let ((v1-2 (the-as object (-> v1-1 mood-context state))) - (f0-0 arg0) - ) - (set! (-> (the-as atoll-states v1-2) explosion) f0-0) - f0-0 + (let ((v1-2 (the-as object (-> v1-1 mood-context state)))) + (set! (-> (the-as atoll-states v1-2) explosion) arg0) ) ) ) ) -;; WARN: Return type mismatch int vs none. (defbehavior update-mood-atollext time-of-day-proc ((arg0 mood-context) (arg1 float) (arg2 int)) (copy-mood-exterior-ambi arg0 #t) (when (and (= (-> *level* level arg2 status) 'active) @@ -1001,7 +965,6 @@ #f ) -;; WARN: Return type mismatch int vs none. (defun update-drill-lights ((arg0 mood-context)) (let ((a1-0 (-> arg0 light-group)) (s5-0 (-> arg0 light-group 1)) @@ -1026,7 +989,6 @@ (none) ) -;; WARN: Return type mismatch int vs none. (defbehavior update-mood-drill time-of-day-proc ((arg0 mood-context) (arg1 object) (arg2 int)) (copy-mood-exterior-ambi arg0 #t) (update-drill-lights arg0) @@ -1039,8 +1001,8 @@ (set! (-> arg0 times 5 w) 1.0) (set! (-> arg0 times 4 w) (-> gp-1 fire-floor)) (update-mood-flames arg0 6 1 12 0.9 0.0009765625 2.0) - (if (and (task-node-closed? (game-task-node drill-mech-resolution)) - (not (task-node-closed? (game-task-node drill-mech-started-smashing))) + (if (and (task-node-closed? (game-task-node drill-mech-smash-consoles)) + (not (task-node-closed? (game-task-node drill-mech-resolution))) ) (update-mood-pulse arg0 7 52 0.75 0.25 (* 65536.0 (-> self clock seconds-per-frame)) 16384.0) ) @@ -1083,17 +1045,13 @@ ) (let ((v1-5 (level-get *level* 'drillmid))) (when v1-5 - (let ((v1-6 (the-as object (-> v1-5 mood-context state))) - (f0-1 arg0) - ) - (set! (-> (the-as drill-states v1-6) electricity arg1 scale) f0-1) - f0-1 + (let ((v1-6 (the-as object (-> v1-5 mood-context state)))) + (set! (-> (the-as drill-states v1-6) electricity arg1 scale) arg0) ) ) ) ) -;; WARN: Return type mismatch int vs none. (defbehavior update-mood-drillmnt time-of-day-proc ((arg0 mood-context) (arg1 float) (arg2 int)) (copy-mood-exterior-ambi arg0 #t) (update-drill-lights arg0) @@ -1133,7 +1091,6 @@ #f ) -;; WARN: Return type mismatch int vs none. (defbehavior update-mood-drillb time-of-day-proc ((arg0 mood-context)) (copy-mood-exterior-ambi arg0 #f) (update-drill-lights arg0) @@ -1145,8 +1102,8 @@ (let ((gp-0 (the-as drillb-states (-> arg0 state)))) (set! (-> arg0 times 1 w) 1.0) (set! (-> arg0 times 4 w) (-> gp-0 fire-floor)) - (if (and (task-node-closed? (game-task-node drill-mech-resolution)) - (not (task-node-closed? (game-task-node drill-mech-started-smashing))) + (if (and (task-node-closed? (game-task-node drill-mech-smash-consoles)) + (not (task-node-closed? (game-task-node drill-mech-resolution))) ) (update-mood-pulse arg0 7 12 0.75 0.25 (* 65536.0 (-> self clock seconds-per-frame)) 16384.0) ) @@ -1211,14 +1168,10 @@ (set-vector! (-> gp-0 ambi color) 0.2 0.2 0.25 1.0) (set! (-> gp-0 dir0 extra x) 0.65) (set! (-> gp-0 dir1 extra x) 1.0) - (let ((f0-38 0.7)) - (set! (-> gp-0 ambi extra x) f0-38) - f0-38 - ) + (set! (-> gp-0 ambi extra x) 0.7) ) ) -;; WARN: Return type mismatch int vs none. (defbehavior update-mood-casboss time-of-day-proc ((arg0 mood-context) (arg1 float) (arg2 int)) (copy-mood-exterior arg0) (update-casboss-lights arg0) @@ -1241,11 +1194,8 @@ (defun set-casboss-explosion! () (let ((v1-1 (level-get *level* 'ctywide))) (when v1-1 - (let ((v1-2 (the-as object (-> v1-1 mood-context state))) - (f0-0 1.0) - ) - (set! (-> (the-as casboss-states v1-2) explosion) f0-0) - f0-0 + (let ((v1-2 (the-as object (-> v1-1 mood-context state)))) + (set! (-> (the-as casboss-states v1-2) explosion) 1.0) ) ) ) @@ -1263,7 +1213,6 @@ ) -;; WARN: Return type mismatch int vs none. (defbehavior update-mood-caspad time-of-day-proc ((arg0 mood-context) (arg1 float) (arg2 int)) (copy-mood-exterior arg0) (when (and (= (-> *level* level arg2 status) 'active) @@ -1312,7 +1261,6 @@ ) ) -;; WARN: Return type mismatch int vs none. (defbehavior update-mood-palout time-of-day-proc ((arg0 mood-context) (arg1 float) (arg2 int)) (copy-mood-exterior-ambi arg0 #t) (when (and (= (-> *level* level arg2 status) 'active) @@ -1347,14 +1295,10 @@ (defun init-mood-palroof ((arg0 mood-context)) (let ((v1-0 (the-as palroof-states (-> arg0 state)))) (set! (-> v1-0 electricity 0 scale) 1.0) - (let ((f0-1 1.0)) - (set! (-> v1-0 electricity 1 scale) f0-1) - f0-1 - ) + (set! (-> v1-0 electricity 1 scale) 1.0) ) ) -;; WARN: Return type mismatch int vs none. (defbehavior update-mood-palroof time-of-day-proc ((arg0 mood-context) (arg1 object) (arg2 int)) (copy-mood-exterior arg0) (when (and (= (-> *level* level arg2 status) 'active) @@ -1372,11 +1316,8 @@ (defun set-palroof-electricity-scale! ((arg0 float) (arg1 int)) (let ((v1-1 (level-get *level* 'palroof))) (when v1-1 - (let ((v1-2 (the-as object (-> v1-1 mood-context state))) - (f0-0 arg0) - ) - (set! (-> (the-as palroof-states v1-2) electricity arg1 scale) f0-0) - f0-0 + (let ((v1-2 (the-as object (-> v1-1 mood-context state)))) + (set! (-> (the-as palroof-states v1-2) electricity arg1 scale) arg0) ) ) ) @@ -1392,7 +1333,6 @@ ) -;; WARN: Return type mismatch int vs none. (defbehavior update-mood-palent time-of-day-proc ((arg0 mood-context) (arg1 float) (arg2 int)) (copy-mood-exterior arg0) (when (and (= (-> *level* level arg2 status) 'active) @@ -1414,11 +1354,8 @@ (defun set-palent-turret-flash! ((arg0 float)) (let ((v1-1 (level-get *level* 'palent))) (when v1-1 - (let ((v1-2 (the-as object (-> v1-1 mood-context state))) - (f0-1 (* 0.5 arg0)) - ) - (set! (-> (the-as palent-states v1-2) turret-value) f0-1) - f0-1 + (let ((v1-2 (the-as object (-> v1-1 mood-context state)))) + (set! (-> (the-as palent-states v1-2) turret-value) (* 0.5 arg0)) ) ) ) @@ -1449,7 +1386,6 @@ (mem-copy! (the-as pointer (-> arg0 light-group 1)) (the-as pointer (-> arg0 light-group)) 192) ) -;; WARN: Return type mismatch int vs none. (defbehavior update-mood-nest time-of-day-proc ((arg0 mood-context) (arg1 float) (arg2 int)) (copy-mood-exterior arg0) (update-nest-lights arg0) @@ -1509,14 +1445,10 @@ (set! (-> v1-0 0 dir0 extra x) (* 0.5 (-> v1-0 0 dir0 extra x))) (set! (-> v1-0 0 dir1 extra x) (* 0.5 (-> v1-0 0 dir1 extra x))) (set! (-> v1-0 0 dir2 extra x) (* 0.5 (-> v1-0 0 dir2 extra x))) - (let ((f0-7 (* 0.75 (-> v1-0 0 ambi extra x)))) - (set! (-> v1-0 0 ambi extra x) f0-7) - f0-7 - ) + (set! (-> v1-0 0 ambi extra x) (* 0.75 (-> v1-0 0 ambi extra x))) ) ) -;; WARN: Return type mismatch int vs none. (defbehavior update-mood-village1 time-of-day-proc ((arg0 mood-context) (arg1 float) (arg2 int)) (copy-mood-exterior arg0) (update-village1-lights arg0) @@ -1542,7 +1474,6 @@ (none) ) -;; WARN: Return type mismatch int vs none. (defbehavior update-mood-copy-village1 time-of-day-proc ((arg0 mood-context) (arg1 float) (arg2 int)) (let ((v1-1 (level-get *level* 'village1))) (if (and v1-1 (= (-> v1-1 status) 'active)) @@ -1588,7 +1519,6 @@ ) -;; WARN: Return type mismatch int vs none. (defbehavior update-mood-consite time-of-day-proc ((arg0 mood-context) (arg1 float) (arg2 int)) (copy-mood-exterior arg0) (when (and (= (-> *level* level arg2 status) 'active) @@ -1625,11 +1555,8 @@ (defun set-consite-flash! () (let ((v1-1 (level-get *level* 'consite))) (when v1-1 - (let ((v1-2 (the-as object (-> v1-1 mood-context state))) - (f0-0 2.0) - ) - (set! (-> (the-as consite-states v1-2) flash) f0-0) - f0-0 + (let ((v1-2 (the-as object (-> v1-1 mood-context state)))) + (set! (-> (the-as consite-states v1-2) flash) 2.0) ) ) ) @@ -1644,7 +1571,6 @@ ) -;; WARN: Return type mismatch int vs none. (defbehavior update-mood-mincan time-of-day-proc ((arg0 mood-context) (arg1 float) (arg2 int)) (copy-mood-exterior arg0) (when (and (= (-> *level* level arg2 status) 'active) @@ -1662,16 +1588,9 @@ (defun set-mincan-beam! ((arg0 int) (arg1 float)) (let ((v1-1 (level-get *level* 'mincan))) (when v1-1 - (let ((v1-2 (-> v1-1 mood-context state)) - (f0-0 arg1) - ) - (set! (-> (the-as mincan-states (+ (* arg0 4) (the-as int v1-2))) beams 0) f0-0) - f0-0 + (let ((v1-2 (-> v1-1 mood-context state))) + (set! (-> (the-as mincan-states (+ (* arg0 4) (the-as int v1-2))) beams 0) arg1) ) ) ) ) - - - - diff --git a/goal_src/jak2/engine/gfx/mood/time-of-day.gc b/goal_src/jak2/engine/gfx/mood/time-of-day.gc index dab59d4873..71c4c73b93 100644 --- a/goal_src/jak2/engine/gfx/mood/time-of-day.gc +++ b/goal_src/jak2/engine/gfx/mood/time-of-day.gc @@ -7,3 +7,5 @@ ;; DECOMP BEGINS +(defun time-of-day-setup ((arg0 symbol)) + #f) \ No newline at end of file diff --git a/goal_src/jak2/engine/gfx/sprite/particles/sparticle-launcher.gc b/goal_src/jak2/engine/gfx/sprite/particles/sparticle-launcher.gc index d363d21194..efc800725a 100644 --- a/goal_src/jak2/engine/gfx/sprite/particles/sparticle-launcher.gc +++ b/goal_src/jak2/engine/gfx/sprite/particles/sparticle-launcher.gc @@ -24,6 +24,7 @@ ;; DECOMP BEGINS +;; WARN: Return type mismatch int vs sparticle-launcher. (kmemopen global "part-tables") @@ -51,6 +52,7 @@ (the-as sparticle-launch-group #f) ) +;; WARN: Return type mismatch (pointer sparticle-launch-group) vs (pointer object). (defun lookup-part-group-pointer-by-name ((arg0 string)) "Similar to [[lookup-part-group-by-name]] but returns a pointer instead" (let* ((s4-0 *part-group-id-table*) @@ -159,7 +161,7 @@ ;; ERROR: function was not converted to expressions. Cannot decompile. -;; ERROR: function has no type analysis. Cannot decompile. +;; ERROR: function was not converted to expressions. Cannot decompile. (defun sp-queue-launch ((arg0 sparticle-system) (arg1 sparticle-launcher) (arg2 matrix)) (let ((v1-0 *sp-launch-queue*)) @@ -651,6 +653,7 @@ ) ) +;; WARN: Return type mismatch object vs sparticle-launch-control. (defmethod create-launch-control sparticle-launch-group ((obj sparticle-launch-group) (arg0 process)) (let ((gp-0 (the-as object (new 'process 'sparticle-launch-control (-> obj length))))) (when (zero? (the-as sparticle-launch-control gp-0)) @@ -688,7 +691,7 @@ (defmethod sparticle-launch-control-method-10 sparticle-launch-control ((obj sparticle-launch-control) (arg0 vector)) (let* ((v1-0 (-> obj group)) - (f0-0 (-> v1-0 bounds w)) + (f0-0 (-> v1-0 bounds r)) ) (cond ((= f0-0 0.0) @@ -708,7 +711,7 @@ (-> s5-1 w) (new 'static 'rgba :g #xff :a #x80) ) - (add-debug-matrix *display-sprite-marks* (bucket-id debug2) (-> obj origin) (meters 2.0)) + (add-debug-matrix *display-sprite-marks* (bucket-id debug2) (-> obj origin) (meters 2)) ) (sphere-in-view-frustum? (the-as sphere s5-1)) ) @@ -1040,6 +1043,7 @@ ;; ERROR: Unsupported inline assembly instruction kind - [mula.s f0, f3] ;; ERROR: Unsupported inline assembly instruction kind - [madd.s f0, f2, f5] +;; WARN: Return type mismatch int vs object. (defun sparticle-set-conerot ((arg0 sparticle-launcher) (arg1 vector)) (let ((s5-0 (get-field-spec-by-id arg0 (sp-field-id spt-conerot-x))) @@ -1067,14 +1071,12 @@ (let ((f0-1 (+ (-> arg1 key origin trans y) (-> arg1 user-float)))) (when (and (< (-> arg2 launchrot y) f0-1) (< (-> arg1 vel-sxvel y) 0.0)) (set! (-> arg2 launchrot y) f0-1) - (let ((f0-4 (* (-> arg1 vel-sxvel y) (- (rand-vu-float-range 0.6 0.8))))) - (set! (-> arg1 vel-sxvel y) f0-4) - f0-4 - ) + (set! (-> arg1 vel-sxvel y) (* (-> arg1 vel-sxvel y) (- (rand-vu-float-range 0.6 0.8)))) ) ) ) +;; WARN: Return type mismatch symbol vs none. (defun check-drop-group-center ((arg0 sparticle-system) (arg1 sparticle-cpuinfo) (arg2 sparticle-launchinfo)) (let ((f0-0 (-> arg1 key origin trans y))) (if (< (-> arg2 launchrot y) f0-0) @@ -1204,7 +1206,3 @@ ) ;; ERROR: failed type prop at 45: Could not figure out load: (set! v1 (l.w (+ gp 12))) - - - - diff --git a/goal_src/jak2/engine/level/level-h.gc b/goal_src/jak2/engine/level/level-h.gc index 07fc8b98b0..1d7b03420a 100644 --- a/goal_src/jak2/engine/level/level-h.gc +++ b/goal_src/jak2/engine/level/level-h.gc @@ -18,6 +18,7 @@ (define-extern *draw-index* int) (define-extern *level-index* int) (define-extern *print-login* symbol) +(define-extern *level-load-list* pair) (defmacro start-debug (str &rest args) `(format 0 ,(string-append "[START] " str) ,@args) @@ -319,7 +320,7 @@ (login-begin (_type_) _type_ 19) (debug-print-region-splitbox (_type_ vector object) none 20) (get-art-group-by-name (_type_ string) art-group 21) - (level-method-22 () none 22) + (level-method-22 (_type_ symbol) int 22) (lookup-text (_type_ game-text-id symbol) string 23) (level-method-24 () none 24) (birth (_type_) _type_ 25) @@ -495,9 +496,3 @@ (set! *level-index* 0) 0 ) - -0 - - - - diff --git a/goal_src/jak2/engine/level/level-info.gc b/goal_src/jak2/engine/level/level-info.gc index 9eda285908..a7a47f08ee 100644 --- a/goal_src/jak2/engine/level/level-info.gc +++ b/goal_src/jak2/engine/level/level-info.gc @@ -29,7 +29,6 @@ ) ) -;; definition for symbol default-level, type level-load-info (define default-level (new 'static 'level-load-info :index 1 :name 'default-level @@ -84,10 +83,8 @@ ) ) -;; failed to figure out what this is: (set! (-> default-level dbname) #f) -;; definition for symbol intro, type level-load-info (define intro (new 'static 'level-load-info :index 2 :name 'intro @@ -142,7 +139,6 @@ ) ) -;; definition for symbol demo, type level-load-info (define demo (new 'static 'level-load-info :index 3 @@ -167,7 +163,11 @@ :trans (new 'static 'vector :x 4014080.0 :y 348160.0 :z 1417216.0 :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) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.8743 0.0 0.4852)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.2117 0.8997 0.3816)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.4365 -0.4364 0.7866)) + ) :on-goto #f :vis-nick 'demo :want (new 'static 'inline-array level-buffer-state 6 @@ -187,7 +187,11 @@ :trans (new 'static 'vector :x 4014080.0 :y 348160.0 :z 1417216.0 :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) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.8743 0.0 0.4852)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.2117 0.8997 0.3816)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.4365 -0.4364 0.7866)) + ) :on-goto #f :vis-nick 'demo :want (new 'static 'inline-array level-buffer-state 6 @@ -206,7 +210,11 @@ :trans (new 'static 'vector :x 4014080.0 :y 348160.0 :z 1417216.0 :w 1.0) :quat (new 'static 'vector :w 1.0) :camera-trans (new 'static 'vector :x 4349280.0 :y 54451.406 :z 960109.4 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.9995 0.0 -0.0307 0.0037 0.9925 -0.1216 0.0305 -0.1216 -0.9921) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.9995 0.0 -0.0307)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.0037 0.9925 -0.1216)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.0305 -0.1216 -0.9921)) + ) :on-goto #f :vis-nick 'demo :want (new 'static 'inline-array level-buffer-state 6 @@ -226,7 +234,11 @@ :trans (new 'static 'vector :x 4014080.0 :y 348160.0 :z 1417216.0 :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) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.8743 0.0 0.4852)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.2117 0.8997 0.3816)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.4365 -0.4364 0.7866)) + ) :on-goto #f :vis-nick 'demo :want (new 'static 'inline-array level-buffer-state 6 @@ -246,7 +258,11 @@ :trans (new 'static 'vector :x 4468809.5 :y 32759.809 :z 775372.4 :w 1.0) :quat (new 'static 'vector :y -0.8818 :w -0.4715) :camera-trans (new 'static 'vector :x 4418151.0 :y 53856.258 :z 783193.3 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.1471 0.0 -0.9891 0.1193 0.9926 -0.0177 0.9818 -0.1207 -0.146) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.1471 0.0 -0.9891)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.1193 0.9926 -0.0177)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.9818 -0.1207 -0.146)) + ) :on-goto #f :vis-nick 'ctysluma :want (new 'static 'inline-array level-buffer-state 6 @@ -297,7 +313,6 @@ ) ) -;; definition for symbol title, type level-load-info (define title (new 'static 'level-load-info :index 4 @@ -321,7 +336,11 @@ :trans (new 'static 'vector :x 4014080.0 :y 348160.0 :z 1417216.0 :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) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.8743 0.0 0.4852)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.2117 0.8997 0.3816)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.4365 -0.4364 0.7866)) + ) :on-goto #f :vis-nick 'title :want (new 'static 'inline-array level-buffer-state 6 @@ -341,7 +360,11 @@ :trans (new 'static 'vector :x 4014080.0 :y 348160.0 :z 1417216.0 :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) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.8743 0.0 0.4852)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.2117 0.8997 0.3816)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.4365 -0.4364 0.7866)) + ) :on-goto '(want-continue "title-start") :vis-nick 'title :want (new 'static 'inline-array level-buffer-state 6 @@ -361,7 +384,11 @@ :trans (new 'static 'vector :x 4014080.0 :y 348160.0 :z 1417216.0 :w 1.0) :quat (new 'static 'vector :w 1.0) :camera-trans (new 'static 'vector :x 4349280.0 :y 54451.406 :z 960109.4 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.9995 0.0 -0.0307 0.0037 0.9925 -0.1216 0.0305 -0.1216 -0.9921) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.9995 0.0 -0.0307)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.0037 0.9925 -0.1216)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.0305 -0.1216 -0.9921)) + ) :on-goto #f :vis-nick 'title :want (new 'static 'inline-array level-buffer-state 6 @@ -381,7 +408,11 @@ :trans (new 'static 'vector :x 4014080.0 :y 348160.0 :z 1417216.0 :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) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.8743 0.0 0.4852)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.2117 0.8997 0.3816)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.4365 -0.4364 0.7866)) + ) :on-goto #f :vis-nick 'title :want (new 'static 'inline-array level-buffer-state 6 @@ -432,7 +463,6 @@ ) ) -;; definition for symbol vinroom, type level-load-info (define vinroom (new 'static 'level-load-info :index 5 @@ -456,7 +486,11 @@ :trans (new 'static 'vector :x 4544927.5 :y 104448.0 :z 4547219.5 :w 1.0) :quat (new 'static 'vector :y 0.5579 :w 0.8298) :camera-trans (new 'static 'vector :x 4518831.0 :y 122459.75 :z 4524515.5 :w 1.0) - :camera-rot (new 'static 'array float 9 0.655 0.0 -0.7555 0.1562 0.9783 0.1355 0.7392 -0.2068 0.6408) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.655 0.0 -0.7555)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.1562 0.9783 0.1355)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.7392 -0.2068 0.6408)) + ) :on-goto #f :vis-nick 'vinroom :want (new 'static 'inline-array level-buffer-state 6 @@ -476,7 +510,11 @@ :trans (new 'static 'vector :x 4589356.0 :y 104436.53 :z 4648794.0 :w 1.0) :quat (new 'static 'vector :y -0.0314 :w -0.9995) :camera-trans (new 'static 'vector :x 4588769.0 :y 125421.16 :z 4597935.5 :w 1.0) - :camera-rot (new 'static 'array float 9 0.9999 0.0 -0.0116 0.0014 0.9926 0.1206 0.0115 -0.1206 0.9926) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.9999 0.0 -0.0116)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.0014 0.9926 0.1206)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.0115 -0.1206 0.9926)) + ) :on-goto #f :vis-nick 'vinroom :want (new 'static 'inline-array level-buffer-state 6 @@ -496,7 +534,11 @@ :trans (new 'static 'vector :x 4539276.5 :y 104448.0 :z 4540455.0 :w 1.0) :quat (new 'static 'vector :y 0.9082 :w -0.4184) :camera-trans (new 'static 'vector :x 4575779.0 :y 125541.99 :z 4576384.0 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.7131 0.0 0.701 -0.0849 0.9926 -0.0863 -0.6958 -0.1211 -0.7078) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.7131 0.0 0.701)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.0849 0.9926 -0.0863)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.6958 -0.1211 -0.7078)) + ) :on-goto #f :vis-nick 'vinroom :want (new 'static 'inline-array level-buffer-state 6 @@ -516,7 +558,11 @@ :trans (new 'static 'vector :x 4544927.5 :y 104448.0 :z 4547219.5 :w 1.0) :quat (new 'static 'vector :y 0.5579 :w 0.8298) :camera-trans (new 'static 'vector :x 4518831.0 :y 122459.75 :z 4524515.5 :w 1.0) - :camera-rot (new 'static 'array float 9 0.655 0.0 -0.7555 0.1562 0.9783 0.1355 0.7392 -0.2068 0.6408) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.655 0.0 -0.7555)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.1562 0.9783 0.1355)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.7392 -0.2068 0.6408)) + ) :on-goto #f :vis-nick 'vinroom :want (new 'static 'inline-array level-buffer-state 6 @@ -536,7 +582,11 @@ :trans (new 'static 'vector :x 4587913.0 :y 104439.805 :z 4673306.0 :w 1.0) :quat (new 'static 'vector :y -0.9985 :w 0.0533) :camera-trans (new 'static 'vector :x 4586831.5 :y 123462.86 :z 4636004.5 :w 1.0) - :camera-rot (new 'static 'array float 9 0.9998 0.0 -0.0193 0.0037 0.9804 0.1966 0.0189 -0.1967 0.9802) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.9998 0.0 -0.0193)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.0037 0.9804 0.1966)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.0189 -0.1967 0.9802)) + ) :on-goto #f :vis-nick 'vinroom :want (new 'static 'inline-array level-buffer-state 6 @@ -556,7 +606,11 @@ :trans (new 'static 'vector :x 4590761.0 :y 104436.53 :z 4592729.0 :w 1.0) :quat (new 'static 'vector :y -0.8565 :w 0.516) :camera-trans (new 'static 'vector :x 4562904.0 :y 121919.08 :z 4567433.5 :w 1.0) - :camera-rot (new 'static 'array float 9 0.6942 0.0 -0.7196 0.1163 0.9868 0.1122 0.7102 -0.1616 0.6851) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.6942 0.0 -0.7196)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.1163 0.9868 0.1122)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.7102 -0.1616 0.6851)) + ) :on-goto #f :vis-nick 'vinroom :want (new 'static 'inline-array level-buffer-state 6 @@ -576,7 +630,11 @@ :trans (new 'static 'vector :x 4590761.0 :y 104436.53 :z 4592729.0 :w 1.0) :quat (new 'static 'vector :y -0.8565 :w 0.516) :camera-trans (new 'static 'vector :x 4562904.0 :y 121919.08 :z 4567433.5 :w 1.0) - :camera-rot (new 'static 'array float 9 0.6942 0.0 -0.7196 0.1163 0.9868 0.1122 0.7102 -0.1616 0.6851) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.6942 0.0 -0.7196)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.1163 0.9868 0.1122)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.7102 -0.1616 0.6851)) + ) :on-goto #f :vis-nick 'vinroom :want (new 'static 'inline-array level-buffer-state 6 @@ -627,7 +685,6 @@ ) ) -;; definition for symbol drillmid, type level-load-info (define drillmid (new 'static 'level-load-info :index 6 @@ -653,7 +710,11 @@ :trans (new 'static 'vector :x -350734.34 :y 32768.0 :z 885082.1 :w 1.0) :quat (new 'static 'vector :y -0.6878 :w 0.7258) :camera-trans (new 'static 'vector :x -391860.62 :y 53180.008 :z 885485.2 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.0034 0.0 -0.9999 0.1944 0.9809 -0.0006 0.9809 -0.1944 -0.0033) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.0034 0.0 -0.9999)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.1944 0.9809 -0.0006)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.9809 -0.1944 -0.0033)) + ) :on-goto #f :vis-nick 'drillmid :want (new 'static 'inline-array level-buffer-state 6 @@ -673,7 +734,11 @@ :trans (new 'static 'vector :x 108875.77 :y 65527.81 :z 27369.473 :w 1.0) :quat (new 'static 'vector :y -0.7367 :w -0.6761) :camera-trans (new 'static 'vector :x 149320.5 :y 85877.15 :z 20893.287 :w 1.0) - :camera-rot (new 'static 'array float 9 0.1677 0.0 0.9858 -0.1916 0.9809 0.0326 -0.967 -0.1944 0.1645) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.1677 0.0 0.9858)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.1916 0.9809 0.0326)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.967 -0.1944 0.1645)) + ) :on-goto #f :vis-nick 'drillmid :want (new 'static 'inline-array level-buffer-state 6 @@ -693,7 +758,11 @@ :trans (new 'static 'vector :x 858380.7 :y 49152.0 :z -652619.75 :w 1.0) :quat (new 'static 'vector :y 0.9999 :w -0.0117) :camera-trans (new 'static 'vector :x 859736.06 :y 70317.67 :z -609632.25 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.9996 0.0 0.0278 -0.0049 0.984 -0.178 -0.0274 -0.1781 -0.9836) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.9996 0.0 0.0278)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.0049 0.984 -0.178)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.0274 -0.1781 -0.9836)) + ) :on-goto #f :vis-nick 'drillmid :want (new 'static 'inline-array level-buffer-state 6 @@ -713,7 +782,11 @@ :trans (new 'static 'vector :x -700254.2 :y 49141.35 :z -849702.06 :w 1.0) :quat (new 'static 'vector :y 0.6248 :w -0.7807) :camera-trans (new 'static 'vector :x -663167.4 :y 70235.75 :z -871562.9 :w 1.0) - :camera-rot (new 'static 'array float 9 0.506 0.0 0.8625 -0.1509 0.9845 0.0885 -0.8491 -0.175 0.4982) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.506 0.0 0.8625)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.1509 0.9845 0.0885)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.8491 -0.175 0.4982)) + ) :on-goto #f :vis-nick 'drillmid :want (new 'static 'inline-array level-buffer-state 6 @@ -733,7 +806,11 @@ :trans (new 'static 'vector :x -711355.6 :y 98293.35 :z -723961.06 :w 1.0) :quat (new 'static 'vector :y 0.9459 :w 0.3242) :camera-trans (new 'static 'vector :x -736509.1 :y 119387.34 :z -688592.9 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.7988 0.0 -0.6014 0.1034 0.985 -0.1374 0.5925 -0.172 -0.7869) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.7988 0.0 -0.6014)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.1034 0.985 -0.1374)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.5925 -0.172 -0.7869)) + ) :on-goto #f :vis-nick 'drillmid :want (new 'static 'inline-array level-buffer-state 6 @@ -753,7 +830,11 @@ :trans (new 'static 'vector :x 675723.25 :y 98298.67 :z -740878.75 :w 1.0) :quat (new 'static 'vector :y -0.4186 :w -0.9081) :camera-trans (new 'static 'vector :x 646477.8 :y 119392.664 :z -772429.8 :w 1.0) - :camera-rot (new 'static 'array float 9 0.7325 0.0 -0.6807 0.1193 0.9844 0.1284 0.6701 -0.1753 0.7211) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.7325 0.0 -0.6807)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.1193 0.9844 0.1284)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.6701 -0.1753 0.7211)) + ) :on-goto #f :vis-nick 'drillmid :want (new 'static 'inline-array level-buffer-state 6 @@ -773,7 +854,11 @@ :trans (new 'static 'vector :x -350734.34 :y 32768.0 :z 885082.1 :w 1.0) :quat (new 'static 'vector :y -0.6878 :w 0.7258) :camera-trans (new 'static 'vector :x -391860.62 :y 53180.008 :z 885485.2 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.0034 0.0 -0.9999 0.1944 0.9809 -0.0006 0.9809 -0.1944 -0.0033) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.0034 0.0 -0.9999)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.1944 0.9809 -0.0006)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.9809 -0.1944 -0.0033)) + ) :on-goto #f :vis-nick 'drillmid :want (new 'static 'inline-array level-buffer-state 6 @@ -793,7 +878,11 @@ :trans (new 'static 'vector :x 590609.2 :y -114696.6 :z -383934.47 :w 1.0) :quat (new 'static 'vector :y -0.1772 :w -0.9841) :camera-trans (new 'static 'vector :x 584495.94 :y -93804.95 :z -434038.78 :w 1.0) - :camera-rot (new 'static 'array float 9 0.9926 0.0 -0.1206 0.0145 0.9927 0.1196 0.1197 -0.1205 0.9854) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.9926 0.0 -0.1206)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.0145 0.9927 0.1196)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.1197 -0.1205 0.9854)) + ) :on-goto #f :vis-nick 'drillmid :want (new 'static 'inline-array level-buffer-state 6 @@ -844,7 +933,6 @@ ) ) -;; definition for symbol drill, type level-load-info (define drill (new 'static 'level-load-info :index 7 :task-level #xa @@ -899,7 +987,6 @@ ) ) -;; definition for symbol drillb, type level-load-info (define drillb (new 'static 'level-load-info :index 8 :task-level #xa @@ -954,7 +1041,6 @@ ) ) -;; definition for symbol drillmtn, type level-load-info (define drillmtn (new 'static 'level-load-info :index 9 :task-level #xa @@ -1009,7 +1095,6 @@ ) ) -;; definition for symbol sewer, type level-load-info (define sewer (new 'static 'level-load-info :index 10 @@ -1035,7 +1120,11 @@ :trans (new 'static 'vector :x 4626914.0 :y -207171.17 :z 2095240.8 :w 1.0) :quat (new 'static 'vector :x -0.0011 :y -0.7059 :z 0.0011 :w -0.7082) :camera-trans (new 'static 'vector :x 4575577.5 :y -186075.14 :z 2093692.5 :w 1.0) - :camera-rot (new 'static 'array float 9 0.0298 0.0 -0.9995 0.1202 0.9927 0.0035 0.9922 -0.1203 0.0296) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.0298 0.0 -0.9995)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.1202 0.9927 0.0035)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.9922 -0.1203 0.0296)) + ) :on-goto #f :vis-nick 'sewer :want (new 'static 'inline-array level-buffer-state 6 @@ -1055,7 +1144,11 @@ :trans (new 'static 'vector :x 4609054.5 :y -207171.17 :z 2096862.0 :w 1.0) :quat (new 'static 'vector :x -0.001 :y -0.7399 :z 0.0009 :w -0.6726) :camera-trans (new 'static 'vector :x 4566007.5 :y -186076.78 :z 2096889.9 :w 1.0) - :camera-rot (new 'static 'array float 9 0.0007 0.0 -0.9999 0.175 0.9845 0.0001 0.9845 -0.175 0.0007) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.0007 0.0 -0.9999)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.175 0.9845 0.0001)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.9845 -0.175 0.0007)) + ) :on-goto #f :vis-nick 'sewer :want (new 'static 'inline-array level-buffer-state 6 @@ -1106,7 +1199,6 @@ ) ) -;; definition for symbol sewerb, type level-load-info (define sewerb (new 'static 'level-load-info :index 11 :task-level #x7 @@ -1161,7 +1253,6 @@ ) ) -;; definition for symbol sewesc, type level-load-info (define sewesc (new 'static 'level-load-info :index 12 @@ -1187,7 +1278,11 @@ :trans (new 'static 'vector :x 4510956.0 :y -199200.77 :z 2098181.0 :w 1.0) :quat (new 'static 'vector :y 0.6989 :w 0.7151) :camera-trans (new 'static 'vector :x 4481299.0 :y -183847.73 :z 2098697.8 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.0182 0.0 -0.9998 0.2118 0.9772 -0.0038 0.9771 -0.2118 -0.0178) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.0182 0.0 -0.9998)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.2118 0.9772 -0.0038)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.9771 -0.2118 -0.0178)) + ) :on-goto #f :vis-nick 'sewesc :want (new 'static 'inline-array level-buffer-state 6 @@ -1207,7 +1302,11 @@ :trans (new 'static 'vector :x 4714868.5 :y -273857.75 :z 1846698.8 :w 1.0) :quat (new 'static 'vector :y -0.9872 :w 0.1593) :camera-trans (new 'static 'vector :x 4715987.0 :y -253211.44 :z 1895919.6 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.9996 0.0 0.027 -0.0033 0.9921 -0.1249 -0.0268 -0.125 -0.9917) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.9996 0.0 0.027)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.0033 0.9921 -0.1249)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.0268 -0.125 -0.9917)) + ) :on-goto '(begin (send-event "hosehead-10" 'die-fast) (send-event "hosehead-6" 'die-fast) @@ -1231,7 +1330,11 @@ :trans (new 'static 'vector :x 4890738.5 :y -236485.84 :z 1366747.1 :w 1.0) :quat (new 'static 'vector :y -0.0163 :w 0.9998) :camera-trans (new 'static 'vector :x 4882573.5 :y -215391.03 :z 1316146.0 :w 1.0) - :camera-rot (new 'static 'array float 9 0.9872 0.0 -0.1589 0.0191 0.9927 0.1189 0.1577 -0.1205 0.98) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.9872 0.0 -0.1589)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.0191 0.9927 0.1189)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.1577 -0.1205 0.98)) + ) :on-goto '(begin (send-event "battle-42" 'beaten) (send-event "hosehead-7" 'die-fast) @@ -1259,7 +1362,11 @@ :trans (new 'static 'vector :x 5797019.0 :y -373470.8 :z 2002612.2 :w 1.0) :quat (new 'static 'vector :y -0.5003 :w 0.8658) :camera-trans (new 'static 'vector :x 5833251.0 :y -356394.6 :z 2001096.2 :w 1.0) - :camera-rot (new 'static 'array float 9 0.0433 0.0 0.999 -0.1673 0.9858 0.0072 -0.9849 -0.1675 0.0427) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.0433 0.0 0.999)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.1673 0.9858 0.0072)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.9849 -0.1675 0.0427)) + ) :on-goto #f :vis-nick 'sewesc :want (new 'static 'inline-array level-buffer-state 6 @@ -1310,7 +1417,6 @@ ) ) -;; definition for symbol sewescb, type level-load-info (define sewescb (new 'static 'level-load-info :index 13 :task-level #x7 @@ -1365,7 +1471,6 @@ ) ) -;; definition for symbol tomba, type level-load-info (define tomba (new 'static 'level-load-info :index 14 @@ -1392,7 +1497,11 @@ :trans (new 'static 'vector :x 788477.56 :y -131086.34 :z 4270196.5 :w 1.0) :quat (new 'static 'vector :y 0.1202 :w -0.9927) :camera-trans (new 'static 'vector :x 787632.1 :y -109991.94 :z 4227172.0 :w 1.0) - :camera-rot (new 'static 'array float 9 0.9998 0.0 -0.019 0.0033 0.9845 0.1751 0.0187 -0.1751 0.9843) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.9998 0.0 -0.019)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.0033 0.9845 0.1751)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.0187 -0.1751 0.9843)) + ) :on-goto '(cond ((task-closed? "tomb-boss-resolution") (want-load 'tomba 'tombd) @@ -1419,7 +1528,11 @@ :trans (new 'static 'vector :x 546954.06 :y -221173.77 :z 4443352.5 :w 1.0) :quat (new 'static 'vector :y 0.4261 :w 0.9046) :camera-trans (new 'static 'vector :x 517370.25 :y -201672.7 :z 4408801.0 :w 1.0) - :camera-rot (new 'static 'array float 9 0.7655 0.0 -0.6434 0.0811 0.992 0.0964 0.6382 -0.126 0.7594) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.7655 0.0 -0.6434)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.0811 0.992 0.0964)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.6382 -0.126 0.7594)) + ) :on-goto #f :vis-nick 'tomba :want (new 'static 'inline-array level-buffer-state 6 @@ -1439,7 +1552,11 @@ :trans (new 'static 'vector :x 1024811.8 :y -221145.1 :z 4446944.5 :w 1.0) :quat (new 'static 'vector :y -0.3799 :w 0.9249) :camera-trans (new 'static 'vector :x 1055031.8 :y -200876.03 :z 4409347.5 :w 1.0) - :camera-rot (new 'static 'array float 9 0.7783 0.0 0.6278 -0.0749 0.9928 0.0929 -0.6233 -0.1194 0.7727) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.7783 0.0 0.6278)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.0749 0.9928 0.0929)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.6233 -0.1194 0.7727)) + ) :on-goto #f :vis-nick 'tomba :want (new 'static 'inline-array level-buffer-state 6 @@ -1459,7 +1576,11 @@ :trans (new 'static 'vector :x 1112014.0 :y -319493.3 :z 5235235.0 :w 1.0) :quat (new 'static 'vector :y 0.627 :w 0.7789) :camera-trans (new 'static 'vector :x 1069004.8 :y -298403.84 :z 5235391.5 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.0024 0.0 -0.9999 0.1759 0.9844 -0.0004 0.9844 -0.1759 -0.0024) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.0024 0.0 -0.9999)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.1759 0.9844 -0.0004)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.9844 -0.1759 -0.0024)) + ) :on-goto #f :vis-nick 'tomba :want (new 'static 'inline-array level-buffer-state 6 @@ -1479,7 +1600,11 @@ :trans (new 'static 'vector :x 301066.25 :y -249855.6 :z 5230534.5 :w 1.0) :quat (new 'static 'vector :y 0.7382 :w -0.6745) :camera-trans (new 'static 'vector :x 343957.5 :y -228723.92 :z 5233923.5 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.0808 0.0 0.9967 -0.1759 0.9842 -0.0142 -0.981 -0.1765 -0.0795) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.0808 0.0 0.9967)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.1759 0.9842 -0.0142)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.981 -0.1765 -0.0795)) + ) :on-goto #f :vis-nick 'tomba :want (new 'static 'inline-array level-buffer-state 6 @@ -1498,7 +1623,11 @@ :trans (new 'static 'vector :x 787469.1 :y -328398.44 :z 4641485.0 :w 1.0) :quat (new 'static 'vector :y 0.0711 :w -0.9974) :camera-trans (new 'static 'vector :x 786737.1 :y -308266.6 :z 4601024.0 :w 1.0) - :camera-rot (new 'static 'array float 9 0.9998 0.0 -0.0167 0.003 0.983 0.1833 0.0164 -0.1834 0.9828) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.9998 0.0 -0.0167)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.003 0.983 0.1833)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.0164 -0.1834 0.9828)) + ) :on-goto #f :vis-nick 'tomba :want (new 'static 'inline-array level-buffer-state 6 @@ -1548,7 +1677,6 @@ ) ) -;; definition for symbol tombb, type level-load-info (define tombb (new 'static 'level-load-info :index 15 @@ -1573,7 +1701,11 @@ :trans (new 'static 'vector :x 1422869.2 :y -471039.6 :z 4741993.5 :w 1.0) :quat (new 'static 'vector :y 0.9394 :w -0.3426) :camera-trans (new 'static 'vector :x 1438060.1 :y -455063.16 :z 4770099.0 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.8799 0.0 0.475 -0.0932 0.9805 -0.1727 -0.4658 -0.1962 -0.8628) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.8799 0.0 0.475)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.0932 0.9805 -0.1727)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.4658 -0.1962 -0.8628)) + ) :on-goto '(begin (send-event "tomb-boulder-4" 'reset)) :vis-nick 'tombb :want (new 'static 'inline-array level-buffer-state 6 @@ -1593,7 +1725,11 @@ :trans (new 'static 'vector :x 1380638.8 :y -471055.56 :z 4636391.5 :w 1.0) :quat (new 'static 'vector :y -0.9989 :w -0.0447) :camera-trans (new 'static 'vector :x 1384123.6 :y -451303.44 :z 4682465.0 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.9969 0.0 0.0776 -0.0096 0.9922 -0.1238 -0.077 -0.1242 -0.9892) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.9969 0.0 0.0776)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.0096 0.9922 -0.1238)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.077 -0.1242 -0.9892)) + ) :on-goto '(begin (send-event "tomb-boulder-door-1" 'reset) (send-event "tomb-boulder-4" 'reset)) :vis-nick 'tombb :want (new 'static 'inline-array level-buffer-state 6 @@ -1643,7 +1779,6 @@ ) ) -;; definition for symbol tombc, type level-load-info (define tombc (new 'static 'level-load-info :index 16 @@ -1668,7 +1803,11 @@ :trans (new 'static 'vector :x -40754.79 :y -225288.61 :z 5402507.0 :w 1.0) :quat (new 'static 'vector :y 0.9992 :w -0.0391) :camera-trans (new 'static 'vector :x -35458.664 :y -204193.8 :z 5445199.5 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.9923 0.0 0.1231 -0.0215 0.9845 -0.1739 -0.1212 -0.1752 -0.977) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.9923 0.0 0.1231)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.0215 0.9845 -0.1739)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.1212 -0.1752 -0.977)) + ) :on-goto #f :vis-nick 'tombc :want (new 'static 'inline-array level-buffer-state 6 @@ -1718,7 +1857,6 @@ ) ) -;; definition for symbol tombd, type level-load-info (define tombd (new 'static 'level-load-info :index 17 @@ -1742,7 +1880,11 @@ :trans (new 'static 'vector :x 791477.06 :y -131071.59 :z 4095800.0 :w 1.0) :quat (new 'static 'vector :y 0.023 :w 0.9997) :camera-trans (new 'static 'vector :x 790579.2 :y -109949.75 :z 4052774.0 :w 1.0) - :camera-rot (new 'static 'array float 9 0.9997 0.0 -0.0236 0.0041 0.9843 0.176 0.0232 -0.1761 0.984) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.9997 0.0 -0.0236)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.0041 0.9843 0.176)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.0232 -0.1761 0.984)) + ) :on-goto #f :vis-nick 'tombd :want (new 'static 'inline-array level-buffer-state 6 @@ -1792,7 +1934,6 @@ ) ) -;; definition for symbol tombe, type level-load-info (define tombe (new 'static 'level-load-info :index 18 @@ -1817,7 +1958,11 @@ :trans (new 'static 'vector :x 1434184.9 :y -471039.6 :z 4588284.5 :w 1.0) :quat (new 'static 'vector :y -0.7083 :w -0.7058) :camera-trans (new 'static 'vector :x 1475034.8 :y -450687.78 :z 4586864.0 :w 1.0) - :camera-rot (new 'static 'array float 9 0.0335 0.0 0.9994 -0.1939 0.9809 0.0065 -0.9804 -0.1941 0.0329) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.0335 0.0 0.9994)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.1939 0.9809 0.0065)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.9804 -0.1941 0.0329)) + ) :on-goto '(begin (task-close! "tomb-poles-poles") (send-event "tomb-boulder-4" 'reset)) :vis-nick 'tombe :want (new 'static 'inline-array level-buffer-state 6 @@ -1837,7 +1982,11 @@ :trans (new 'static 'vector :x 1884670.0 :y -511351.2 :z 4874090.5 :w 1.0) :quat (new 'static 'vector :y 0.1226 :w -0.9924) :camera-trans (new 'static 'vector :x 1884803.1 :y -503642.53 :z 4929176.0 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.9995 0.0 0.0305 -0.0041 0.9907 -0.1355 -0.0302 -0.1356 -0.9902) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.9995 0.0 0.0305)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.0041 0.9907 -0.1355)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.0302 -0.1356 -0.9902)) + ) :on-goto '(begin (task-close! "tomb-poles-poles") (send-event "tomb-boulder-4" 'reset)) :vis-nick 'tombe :want (new 'static 'inline-array level-buffer-state 6 @@ -1857,7 +2006,11 @@ :trans (new 'static 'vector :x 1628354.5 :y -593924.5 :z 5830940.0 :w 1.0) :quat (new 'static 'vector :y 0.5849 :w -0.811) :camera-trans (new 'static 'vector :x 1614351.1 :y -519260.56 :z 5832011.5 :w 1.0) - :camera-rot (new 'static 'array float 9 0.0 0.0 -1.0 1.0 0.0 0.0 0.0 -1.0 0.0) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.0 0.0 -1.0)) + (new 'static 'vector3s :data (new 'static 'array float 3 1.0 0.0 0.0)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.0 -1.0 0.0)) + ) :on-goto '(begin (task-close! "tomb-poles-poles") (alive "tomb-boulder-4" store #f) @@ -1911,7 +2064,6 @@ ) ) -;; definition for symbol tombext, type level-load-info (define tombext (new 'static 'level-load-info :index 19 :task-level #xc @@ -1965,7 +2117,6 @@ ) ) -;; definition for symbol tombboss, type level-load-info (define tombboss (new 'static 'level-load-info :index 20 @@ -1990,7 +2141,11 @@ :trans (new 'static 'vector :x 788065.5 :y -294914.06 :z 5738845.5 :w 1.0) :quat (new 'static 'vector :y 0.1262 :w 0.9919) :camera-trans (new 'static 'vector :x 790481.3 :y -274841.2 :z 5698627.0 :w 1.0) - :camera-rot (new 'static 'array float 9 0.9982 0.0 0.0596 -0.0109 0.9829 0.1832 -0.0586 -0.1836 0.9812) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.9982 0.0 0.0596)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.0109 0.9829 0.1832)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.0586 -0.1836 0.9812)) + ) :on-goto #f :vis-nick 'tombboss :want (new 'static 'inline-array level-buffer-state 6 @@ -2009,7 +2164,11 @@ :trans (new 'static 'vector :x 790505.06 :y -294911.6 :z 5844947.0 :w 1.0) :quat (new 'static 'vector :y 0.7064 :w 0.7077) :camera-trans (new 'static 'vector :x 791466.4 :y -279683.06 :z 5803118.5 :w 1.0) - :camera-rot (new 'static 'array float 9 0.9955 0.0 -0.0944 0.0071 0.9971 0.0754 0.0941 -0.0758 0.9926) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.9955 0.0 -0.0944)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.0071 0.9971 0.0754)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.0941 -0.0758 0.9926)) + ) :on-goto #f :vis-nick 'tombboss :want (new 'static 'inline-array level-buffer-state 6 @@ -2059,7 +2218,6 @@ ) ) -;; definition for symbol under, type level-load-info (define under (new 'static 'level-load-info :index 21 @@ -2085,8 +2243,12 @@ :trans (new 'static 'vector :x -107954.99 :y -266244.1 :z 7974990.0 :w 1.0) :quat (new 'static 'vector :y -0.8287 :w 0.5596) :camera-trans (new 'static 'vector :x -62684.773 :y -245149.28 :z 7998945.5 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.4672 0.0 0.8841 -0.1071 0.9926 -0.0566 -0.8776 -0.1211 -0.4637) - :on-goto '(apply (lambda () (set! *bot-record-path* -1) (none))) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.4672 0.0 0.8841)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.1071 0.9926 -0.0566)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.8776 -0.1211 -0.4637)) + ) + :on-goto '(apply ,(lambda () (set! *bot-record-path* -1) (none))) :vis-nick 'under :want (new 'static 'inline-array level-buffer-state 6 (new 'static 'level-buffer-state :name 'underb :display? 'display :force-vis? #f :force-inside? #f) @@ -2136,7 +2298,6 @@ ) ) -;; definition for symbol underb, type level-load-info (define underb (new 'static 'level-load-info :index 22 @@ -2161,7 +2322,11 @@ :trans (new 'static 'vector :x 247507.36 :y -265523.62 :z 7132200.0 :w 1.0) :quat (new 'static 'vector :y -0.8764 :w -0.4814) :camera-trans (new 'static 'vector :x 205734.7 :y -246507.11 :z 7122904.5 :w 1.0) - :camera-rot (new 'static 'array float 9 0.2238 0.0 -0.9746 0.1366 0.9901 0.0313 0.9649 -0.1401 0.2216) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.2238 0.0 -0.9746)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.1366 0.9901 0.0313)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.9649 -0.1401 0.2216)) + ) :on-goto #f :vis-nick 'underb :want (new 'static 'inline-array level-buffer-state 6 @@ -2181,8 +2346,12 @@ :trans (new 'static 'vector :x -324353.22 :y -274439.78 :z 8362734.5 :w 1.0) :quat (new 'static 'vector :y 0.1254 :w -0.992) :camera-trans (new 'static 'vector :x -308162.56 :y -253848.78 :z 8316009.0 :w 1.0) - :camera-rot (new 'static 'array float 9 0.9453 0.0 0.3261 -0.0392 0.9927 0.1137 -0.3238 -0.1202 0.9384) - :on-goto '(apply (lambda () (reset! (-> *display* user0-clock)) (none))) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.9453 0.0 0.3261)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.0392 0.9927 0.1137)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.3238 -0.1202 0.9384)) + ) + :on-goto '(apply ,(lambda () (reset! (-> *display* user0-clock)) (none))) :vis-nick 'under :want (new 'static 'inline-array level-buffer-state 6 (new 'static 'level-buffer-state :name 'underb :display? 'display :force-vis? #f :force-inside? #f) @@ -2201,8 +2370,12 @@ :trans (new 'static 'vector :x -855634.3 :y -290815.6 :z 7995028.5 :w 1.0) :quat (new 'static 'vector :y 0.6088 :w 0.7933) :camera-trans (new 'static 'vector :x -899652.0 :y -269720.78 :z 7968866.5 :w 1.0) - :camera-rot (new 'static 'array float 9 0.5098 0.0 -0.8602 0.1043 0.9926 0.0618 0.8539 -0.1213 0.506) - :on-goto '(apply (lambda () (reset! (-> *display* user0-clock)) (none))) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.5098 0.0 -0.8602)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.1043 0.9926 0.0618)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.8539 -0.1213 0.506)) + ) + :on-goto '(apply ,(lambda () (reset! (-> *display* user0-clock)) (none))) :vis-nick 'under :want (new 'static 'inline-array level-buffer-state 6 (new 'static 'level-buffer-state :name 'underb :display? 'display :force-vis? #f :force-inside? #f) @@ -2221,7 +2394,11 @@ :trans (new 'static 'vector :x -1036247.9 :y -290824.2 :z 8022382.0 :w 1.0) :quat (new 'static 'vector :y 0.9395 :w 0.3424) :camera-trans (new 'static 'vector :x -1064226.9 :y -261537.8 :z 8065295.0 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.8375 0.0 -0.5463 0.1432 0.9649 -0.2196 0.5272 -0.2622 -0.8082) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.8375 0.0 -0.5463)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.1432 0.9649 -0.2196)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.5272 -0.2622 -0.8082)) + ) :on-goto #f :vis-nick 'under :want (new 'static 'inline-array level-buffer-state 6 @@ -2272,7 +2449,6 @@ ) ) -;; definition for symbol palcab, type level-load-info (define palcab (new 'static 'level-load-info :index 23 @@ -2299,7 +2475,11 @@ :trans (new 'static 'vector :x 929748.56 :y 1803958.2 :z -568005.8 :w 1.0) :quat (new 'static 'vector :y -0.2346 :w -0.972) :camera-trans (new 'static 'vector :x 930469.5 :y 1825050.6 :z -611119.94 :w 1.0) - :camera-rot (new 'static 'array float 9 0.9999 0.0 0.0055 -0.0009 0.9845 0.175 -0.0054 -0.175 0.9845) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.9999 0.0 0.0055)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.0009 0.9845 0.175)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.0054 -0.175 0.9845)) + ) :on-goto #f :vis-nick 'palcab :want (new 'static 'inline-array level-buffer-state 6 @@ -2318,7 +2498,11 @@ :trans (new 'static 'vector :x 852117.94 :y 1597557.1 :z 857580.3 :w 1.0) :quat (new 'static 'vector :y -0.2086 :w 0.9779) :camera-trans (new 'static 'vector :x 854145.44 :y 1628896.9 :z 814619.9 :w 1.0) - :camera-rot (new 'static 'array float 9 0.9987 0.0 0.05 -0.0178 0.9338 0.3571 -0.0467 -0.3576 0.9326) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.9987 0.0 0.05)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.0178 0.9338 0.3571)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.0467 -0.3576 0.9326)) + ) :on-goto '(begin (kill "pal-gun-turret-1" store #f) (kill "crate-731" store #f) (kill "crate-730" store #f)) :vis-nick 'palcab :want (new 'static 'inline-array level-buffer-state 6 @@ -2370,7 +2554,6 @@ ) ) -;; definition for symbol palshaft, type level-load-info (define palshaft (new 'static 'level-load-info :index 24 @@ -2395,7 +2578,11 @@ :trans (new 'static 'vector :x 598668.5 :y 69131.06 :z 2697706.0 :w 1.0) :quat (new 'static 'vector :y 0.9982 :w -0.0596) :camera-trans (new 'static 'vector :x 626226.0 :y 88880.74 :z 2734727.5 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.8034 0.0 0.5953 -0.0742 0.9922 -0.1001 -0.5907 -0.1246 -0.7971) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.8034 0.0 0.5953)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.0742 0.9922 -0.1001)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.5907 -0.1246 -0.7971)) + ) :on-goto #f :vis-nick 'palshaft :want (new 'static 'inline-array level-buffer-state 6 @@ -2446,7 +2633,6 @@ ) ) -;; definition for symbol palboss, type level-load-info (define palboss (new 'static 'level-load-info :index 25 :task-level #xb @@ -2502,7 +2688,6 @@ ) ) -;; definition for symbol palroof, type level-load-info (define palroof (new 'static 'level-load-info :index 26 @@ -2527,7 +2712,11 @@ :trans (new 'static 'vector :x 589710.56 :y 1735487.9 :z 2039465.6 :w 1.0) :quat (new 'static 'vector :y -0.452 :w 0.8919) :camera-trans (new 'static 'vector :x 622908.2 :y 1756602.4 :z 2012121.9 :w 1.0) - :camera-rot (new 'static 'array float 9 0.635 0.0 0.7724 -0.1363 0.9843 0.112 -0.7603 -0.1764 0.625) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.635 0.0 0.7724)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.1363 0.9843 0.112)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.7603 -0.1764 0.625)) + ) :on-goto #f :vis-nick 'palroof :want (new 'static 'inline-array level-buffer-state 6 @@ -2547,7 +2736,11 @@ :trans (new 'static 'vector :x 870794.06 :y 1671154.9 :z 2027482.4 :w 1.0) :quat (new 'static 'vector :y 0.4793 :w 0.8776) :camera-trans (new 'static 'vector :x 831816.06 :y 1693132.0 :z 2045632.9 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.4095 0.0 -0.9122 0.179 0.9805 -0.0804 0.8945 -0.1963 -0.4016) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.4095 0.0 -0.9122)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.179 0.9805 -0.0804)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.8945 -0.1963 -0.4016)) + ) :on-goto #f :vis-nick 'palroof :want (new 'static 'inline-array level-buffer-state 6 @@ -2567,7 +2760,11 @@ :trans (new 'static 'vector :x 1175203.4 :y 1671159.0 :z 2741709.5 :w 1.0) :quat (new 'static 'vector :y -0.7428 :w 0.6694) :camera-trans (new 'static 'vector :x 1222606.5 :y 1692250.5 :z 2761046.0 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.3758 0.0 0.9266 -0.1125 0.9925 -0.0456 -0.9198 -0.1214 -0.373) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.3758 0.0 0.9266)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.1125 0.9925 -0.0456)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.9198 -0.1214 -0.373)) + ) :on-goto #f :vis-nick 'palroof :want (new 'static 'inline-array level-buffer-state 6 @@ -2619,7 +2816,6 @@ ) ) -;; definition for symbol palout, type level-load-info (define palout (new 'static 'level-load-info :index 27 :task-level #xb @@ -2675,7 +2871,6 @@ ) ) -;; definition for symbol throne, type level-load-info (define throne (new 'static 'level-load-info :index 28 @@ -2700,7 +2895,11 @@ :trans (new 'static 'vector :x 634090.3 :y 1414044.9 :z 2314699.2 :w 1.0) :quat (new 'static 'vector :y 0.9525 :w -0.3044) :camera-trans (new 'static 'vector :x 660229.75 :y 1435136.9 :z 2348906.5 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.7945 0.0 0.6071 -0.1061 0.9845 -0.1389 -0.5978 -0.1748 -0.7823) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.7945 0.0 0.6071)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.1061 0.9845 -0.1389)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.5978 -0.1748 -0.7823)) + ) :on-goto #f :vis-nick 'throne :want (new 'static 'inline-array level-buffer-state 6 @@ -2720,7 +2919,11 @@ :trans (new 'static 'vector :x 634090.3 :y 1414044.9 :z 2314699.2 :w 1.0) :quat (new 'static 'vector :y 0.9525 :w -0.3044) :camera-trans (new 'static 'vector :x 660229.75 :y 1435136.9 :z 2348906.5 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.7945 0.0 0.6071 -0.1061 0.9845 -0.1389 -0.5978 -0.1748 -0.7823) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.7945 0.0 0.6071)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.1061 0.9845 -0.1389)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.5978 -0.1748 -0.7823)) + ) :on-goto #f :vis-nick 'throne :want (new 'static 'inline-array level-buffer-state 6 @@ -2772,7 +2975,6 @@ ) ) -;; definition for symbol lbrnermk, type level-load-info (define lbrnermk (new 'static 'level-load-info :index 29 :task-level #xb @@ -2828,7 +3030,6 @@ ) ) -;; definition for symbol lashthrn, type level-load-info (define lashthrn (new 'static 'level-load-info :index 30 :task-level #xb @@ -2884,7 +3085,6 @@ ) ) -;; definition for symbol lthrnout, type level-load-info (define lthrnout (new 'static 'level-load-info :index 31 :task-level #xb @@ -2940,7 +3140,6 @@ ) ) -;; definition for symbol palent, type level-load-info (define palent (new 'static 'level-load-info :index 32 @@ -2966,7 +3165,11 @@ :trans (new 'static 'vector :x 689051.6 :y 1413868.8 :z 2516459.5 :w 1.0) :quat (new 'static 'vector :y 0.9997 :z -0.0013 :w -0.0211) :camera-trans (new 'static 'vector :x 664995.44 :y 1434960.8 :z 2552149.5 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.832 0.0 -0.5547 0.0972 0.9844 -0.1459 0.5461 -0.1753 -0.8191) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.832 0.0 -0.5547)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.0972 0.9844 -0.1459)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.5461 -0.1753 -0.8191)) + ) :on-goto #f :vis-nick 'palent :want (new 'static 'inline-array level-buffer-state 6 @@ -2985,7 +3188,11 @@ :trans (new 'static 'vector :x 790896.6 :y 1329465.4 :z 2156753.0 :w 1.0) :quat (new 'static 'vector :y -0.9978 :w -0.0661) :camera-trans (new 'static 'vector :x 780353.1 :y 1350556.0 :z 2198482.0 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.9694 0.0 -0.2452 0.0429 0.9845 -0.1696 0.2414 -0.175 -0.9544) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.9694 0.0 -0.2452)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.0429 0.9845 -0.1696)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.2414 -0.175 -0.9544)) + ) :on-goto #f :vis-nick 'palent :want (new 'static 'inline-array level-buffer-state 6 @@ -3036,7 +3243,6 @@ ) ) -;; definition for symbol prison, type level-load-info (define prison (new 'static 'level-load-info :index 33 @@ -3061,7 +3267,11 @@ :trans (new 'static 'vector :x 1942413.2 :y 34479.31 :z 275525.62 :w 1.0) :quat (new 'static 'vector :y 0.4562 :w 0.8898) :camera-trans (new 'static 'vector :x 1921090.8 :y 53425.766 :z 237949.75 :w 1.0) - :camera-rot (new 'static 'array float 9 0.869 0.0 -0.4947 0.0663 0.9909 0.1165 0.4903 -0.134 0.8611) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.869 0.0 -0.4947)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.0663 0.9909 0.1165)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.4903 -0.134 0.8611)) + ) :on-goto #f :vis-nick 'prison :want (new 'static 'inline-array level-buffer-state 6 @@ -3081,7 +3291,11 @@ :trans (new 'static 'vector :x 1942413.2 :y 34479.31 :z 275525.62 :w 1.0) :quat (new 'static 'vector :y 0.4562 :w 0.8898) :camera-trans (new 'static 'vector :x 1921090.8 :y 53425.766 :z 237949.75 :w 1.0) - :camera-rot (new 'static 'array float 9 0.869 0.0 -0.4947 0.0663 0.9909 0.1165 0.4903 -0.134 0.8611) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.869 0.0 -0.4947)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.0663 0.9909 0.1165)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.4903 -0.134 0.8611)) + ) :on-goto #f :vis-nick 'prison :want (new 'static 'inline-array level-buffer-state 6 @@ -3101,7 +3315,11 @@ :trans (new 'static 'vector :x 1942413.2 :y 34479.31 :z 275525.62 :w 1.0) :quat (new 'static 'vector :y 0.4562 :w 0.8898) :camera-trans (new 'static 'vector :x 1921090.8 :y 53425.766 :z 237949.75 :w 1.0) - :camera-rot (new 'static 'array float 9 0.869 0.0 -0.4947 0.0663 0.9909 0.1165 0.4903 -0.134 0.8611) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.869 0.0 -0.4947)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.0663 0.9909 0.1165)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.4903 -0.134 0.8611)) + ) :on-goto #f :vis-nick 'prison :want (new 'static 'inline-array level-buffer-state 6 @@ -3153,7 +3371,6 @@ ) ) -;; definition for symbol ldjakbrn, type level-load-info (define ldjakbrn (new 'static 'level-load-info :index 34 :name 'ldjakbrn @@ -3208,7 +3425,6 @@ ) ) -;; definition for symbol lprsncst, type level-load-info (define lprsncst (new 'static 'level-load-info :index 35 :name 'lprsncst @@ -3263,7 +3479,6 @@ ) ) -;; definition for symbol forexita, type level-load-info (define forexita (new 'static 'level-load-info :index 36 @@ -3287,7 +3502,11 @@ :trans (new 'static 'vector :x 2350610.0 :y 106496.0 :z 771498.4 :w 1.0) :quat (new 'static 'vector :y -0.9953 :w -0.0961) :camera-trans (new 'static 'vector :x 2314255.2 :y 125394.945 :z 794408.94 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.5484 0.0 -0.8361 0.1139 0.9906 -0.0747 0.8283 -0.1362 -0.5433) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.5484 0.0 -0.8361)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.1139 0.9906 -0.0747)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.8283 -0.1362 -0.5433)) + ) :on-goto #f :vis-nick 'forexita :want (new 'static 'inline-array level-buffer-state 6 @@ -3307,7 +3526,11 @@ :trans (new 'static 'vector :x 3037138.0 :y 295920.03 :z 686462.2 :w 1.0) :quat (new 'static 'vector :y -0.9805 :w -0.1963) :camera-trans (new 'static 'vector :x 3038071.2 :y 317014.03 :z 729465.6 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.9998 0.0 0.0192 -0.0033 0.9843 -0.1759 -0.0189 -0.1759 -0.9842) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.9998 0.0 0.0192)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.0033 0.9843 -0.1759)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.0189 -0.1759 -0.9842)) + ) :on-goto #f :vis-nick 'forexita :want (new 'static 'inline-array level-buffer-state 6 @@ -3358,7 +3581,6 @@ ) ) -;; definition for symbol forexitb, type level-load-info (define forexitb (new 'static 'level-load-info :index 37 @@ -3383,7 +3605,11 @@ :trans (new 'static 'vector :x 2338518.2 :y 123119.62 :z 41246.31 :w 1.0) :quat (new 'static 'vector :y 0.9969 :w 0.078) :camera-trans (new 'static 'vector :x 2333426.0 :y 144214.02 :z 92192.36 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.9954 0.0 -0.0954 0.0116 0.9925 -0.1212 0.0947 -0.1217 -0.988) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.9954 0.0 -0.0954)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.0116 0.9925 -0.1212)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.0947 -0.1217 -0.988)) + ) :on-goto #f :vis-nick 'forexitb :want (new 'static 'inline-array level-buffer-state 6 @@ -3403,7 +3629,11 @@ :trans (new 'static 'vector :x 2698146.5 :y 245757.95 :z 169426.94 :w 1.0) :quat (new 'static 'vector :y -0.0838 :w 0.9964) :camera-trans (new 'static 'vector :x 2697397.8 :y 267042.0 :z 118417.0 :w 1.0) - :camera-rot (new 'static 'array float 9 0.9999 0.0 -0.0018 0.0002 0.992 0.1254 0.0018 -0.1254 0.992) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.9999 0.0 -0.0018)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.0002 0.992 0.1254)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.0018 -0.1254 0.992)) + ) :on-goto #f :vis-nick 'forexitb :want (new 'static 'inline-array level-buffer-state 6 @@ -3454,7 +3684,6 @@ ) ) -;; definition for symbol forresca, type level-load-info (define forresca (new 'static 'level-load-info :index 38 @@ -3478,7 +3707,11 @@ :trans (new 'static 'vector :x 2999090.5 :y 33777.664 :z 924853.9 :w 1.0) :quat (new 'static 'vector :y -0.5685 :w 0.8226) :camera-trans (new 'static 'vector :x 3049807.8 :y 54745.496 :z 923088.06 :w 1.0) - :camera-rot (new 'static 'array float 9 0.0353 0.0 0.9993 -0.1203 0.9927 0.0042 -0.992 -0.1204 0.0351) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.0353 0.0 0.9993)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.1203 0.9927 0.0042)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.992 -0.1204 0.0351)) + ) :on-goto #f :vis-nick 'forresca :want (new 'static 'inline-array level-buffer-state 6 @@ -3529,7 +3762,6 @@ ) ) -;; definition for symbol forrescb, type level-load-info (define forrescb (new 'static 'level-load-info :index 39 @@ -3554,7 +3786,11 @@ :trans (new 'static 'vector :x 1873107.4 :y 55606.066 :z 602671.94 :w 1.0) :quat (new 'static 'vector :y -0.6722 :w 0.7403) :camera-trans (new 'static 'vector :x 1917880.4 :y 74982.195 :z 601561.5 :w 1.0) - :camera-rot (new 'static 'array float 9 0.0242 0.0 0.9997 -0.1286 0.9916 0.0031 -0.9913 -0.1286 0.024) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.0242 0.0 0.9997)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.1286 0.9916 0.0031)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.9913 -0.1286 0.024)) + ) :on-goto #f :vis-nick 'forrescb :want (new 'static 'inline-array level-buffer-state 6 @@ -3605,7 +3841,6 @@ ) ) -;; definition for symbol fordumpa, type level-load-info (define fordumpa (new 'static 'level-load-info :index 40 @@ -3629,7 +3864,11 @@ :trans (new 'static 'vector :x 3016168.2 :y 37068.39 :z 937013.7 :w 1.0) :quat (new 'static 'vector :y -0.4976 :w 0.8673) :camera-trans (new 'static 'vector :x 3033360.0 :y 56420.76 :z 903003.75 :w 1.0) - :camera-rot (new 'static 'array float 9 0.8897 0.0 0.4564 -0.0884 0.981 0.1723 -0.4478 -0.1937 0.8728) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.8897 0.0 0.4564)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.0884 0.981 0.1723)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.4478 -0.1937 0.8728)) + ) :on-goto #f :vis-nick 'fordumpa :want (new 'static 'inline-array level-buffer-state 6 @@ -3649,7 +3888,11 @@ :trans (new 'static 'vector :x 1918058.5 :y 94208.0 :z 1170815.8 :w 1.0) :quat (new 'static 'vector :y -0.7063 :w 0.7078) :camera-trans (new 'static 'vector :x 1960915.4 :y 115301.99 :z 1166747.2 :w 1.0) - :camera-rot (new 'static 'array float 9 0.0944 0.0 0.9955 -0.1741 0.9845 0.0165 -0.9801 -0.1749 0.0929) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.0944 0.0 0.9955)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.1741 0.9845 0.0165)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.9801 -0.1749 0.0929)) + ) :on-goto #f :vis-nick 'fordumpa :want (new 'static 'inline-array level-buffer-state 6 @@ -3700,7 +3943,6 @@ ) ) -;; definition for symbol fordumpb, type level-load-info (define fordumpb (new 'static 'level-load-info :index 41 @@ -3726,7 +3968,11 @@ :trans (new 'static 'vector :x 1730156.5 :y 94197.35 :z 1192282.9 :w 1.0) :quat (new 'static 'vector :y 0.297 :w -0.9548) :camera-trans (new 'static 'vector :x 1769338.5 :y 113987.99 :z 1167812.6 :w 1.0) - :camera-rot (new 'static 'array float 9 0.5295 0.0 0.8483 -0.1061 0.9921 0.0662 -0.8416 -0.1251 0.5253) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.5295 0.0 0.8483)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.1061 0.9921 0.0662)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.8416 -0.1251 0.5253)) + ) :on-goto #f :vis-nick 'fordumpb :want (new 'static 'inline-array level-buffer-state 6 @@ -3777,7 +4023,6 @@ ) ) -;; definition for symbol fordumpc, type level-load-info (define fordumpc (new 'static 'level-load-info :index 42 @@ -3802,7 +4047,11 @@ :trans (new 'static 'vector :x 2587180.8 :y 147453.95 :z 1446389.4 :w 1.0) :quat (new 'static 'vector :y -0.992 :w -0.1258) :camera-trans (new 'static 'vector :x 2593020.8 :y 168384.92 :z 1404207.9 :w 1.0) - :camera-rot (new 'static 'array float 9 0.9922 0.0 0.1239 -0.0242 0.9806 0.1943 -0.1215 -0.1958 0.973) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.9922 0.0 0.1239)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.0242 0.9806 0.1943)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.1215 -0.1958 0.973)) + ) :on-goto #f :vis-nick 'fordumpc :want (new 'static 'inline-array level-buffer-state 6 @@ -3822,7 +4071,11 @@ :trans (new 'static 'vector :x 2572884.0 :y 147681.28 :z 1454391.8 :w 1.0) :quat (new 'static 'vector :y 0.5741 :w 0.8187) :camera-trans (new 'static 'vector :x 2561296.0 :y 168775.69 :z 1412936.1 :w 1.0) - :camera-rot (new 'static 'array float 9 0.9529 0.0 -0.3032 0.0533 0.9844 0.1676 0.2984 -0.1758 0.938) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.9529 0.0 -0.3032)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.0533 0.9844 0.1676)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.2984 -0.1758 0.938)) + ) :on-goto #f :vis-nick 'fordumpc :want (new 'static 'inline-array level-buffer-state 6 @@ -3842,7 +4095,11 @@ :trans (new 'static 'vector :x 2572884.0 :y 147681.28 :z 1454391.8 :w 1.0) :quat (new 'static 'vector :y 0.5741 :w 0.8187) :camera-trans (new 'static 'vector :x 2561296.0 :y 168775.69 :z 1412936.1 :w 1.0) - :camera-rot (new 'static 'array float 9 0.9529 0.0 -0.3032 0.0533 0.9844 0.1676 0.2984 -0.1758 0.938) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.9529 0.0 -0.3032)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.0533 0.9844 0.1676)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.2984 -0.1758 0.938)) + ) :on-goto #f :vis-nick 'fordumpc :want (new 'static 'inline-array level-buffer-state 6 @@ -3893,7 +4150,6 @@ ) ) -;; definition for symbol fordumpd, type level-load-info (define fordumpd (new 'static 'level-load-info :index 43 :task-level #x3 @@ -3948,7 +4204,6 @@ ) ) -;; definition for symbol strip, type level-load-info (define strip (new 'static 'level-load-info :index 44 @@ -3974,7 +4229,11 @@ :trans (new 'static 'vector :x 10392208.0 :y 291383.72 :z -194403.94 :w 1.0) :quat (new 'static 'vector :y -0.7102 :w 0.7039) :camera-trans (new 'static 'vector :x 10421589.0 :y 307730.44 :z -178237.84 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.4791 0.0 0.8777 -0.1612 0.9829 -0.088 -0.8628 -0.1837 -0.4709) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.4791 0.0 0.8777)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.1612 0.9829 -0.088)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.8628 -0.1837 -0.4709)) + ) :on-goto #f :vis-nick 'strip :want (new 'static 'inline-array level-buffer-state 6 @@ -3994,7 +4253,11 @@ :trans (new 'static 'vector :x 10392208.0 :y 291383.72 :z -194403.94 :w 1.0) :quat (new 'static 'vector :y -0.7102 :w 0.7039) :camera-trans (new 'static 'vector :x 10421589.0 :y 307730.44 :z -178237.84 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.4791 0.0 0.8777 -0.1612 0.9829 -0.088 -0.8628 -0.1837 -0.4709) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.4791 0.0 0.8777)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.1612 0.9829 -0.088)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.8628 -0.1837 -0.4709)) + ) :on-goto #f :vis-nick 'strip :want (new 'static 'inline-array level-buffer-state 6 @@ -4014,7 +4277,11 @@ :trans (new 'static 'vector :x 9677517.0 :y 368640.0 :z -174448.23 :w 1.0) :quat (new 'static 'vector :y 0.7146 :w -0.6994) :camera-trans (new 'static 'vector :x 9634240.0 :y 388288.9 :z -160018.44 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.3543 0.0 -0.9351 0.1344 0.9896 -0.0509 0.9253 -0.1437 -0.3506) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.3543 0.0 -0.9351)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.1344 0.9896 -0.0509)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.9253 -0.1437 -0.3506)) + ) :on-goto #f :vis-nick 'strip :want (new 'static 'inline-array level-buffer-state 6 @@ -4034,7 +4301,11 @@ :trans (new 'static 'vector :x 11098202.0 :y 469663.34 :z 371692.34 :w 1.0) :quat (new 'static 'vector :y -0.878 :w 0.4786) :camera-trans (new 'static 'vector :x 11138690.0 :y 490766.34 :z 403012.8 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.6111 0.0 0.7915 -0.0967 0.9925 -0.0746 -0.7855 -0.1222 -0.6065) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.6111 0.0 0.7915)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.0967 0.9925 -0.0746)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.7855 -0.1222 -0.6065)) + ) :on-goto #f :vis-nick 'strip :want (new 'static 'inline-array level-buffer-state 6 @@ -4086,7 +4357,6 @@ ) ) -;; definition for symbol ruins, type level-load-info (define ruins (new 'static 'level-load-info :index 45 @@ -4111,7 +4381,11 @@ :trans (new 'static 'vector :x 3439019.2 :y 22.1184 :z -1390645.6 :w 1.0) :quat (new 'static 'vector :y -0.6937 :w -0.7201) :camera-trans (new 'static 'vector :x 3390097.0 :y 20509.9 :z -1391488.6 :w 1.0) - :camera-rot (new 'static 'array float 9 0.0182 0.0 -0.9998 0.1205 0.9927 0.0021 0.9925 -0.1205 0.0181) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.0182 0.0 -0.9998)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.1205 0.9927 0.0021)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.9925 -0.1205 0.0181)) + ) :on-goto #f :vis-nick 'ruins :want (new 'static 'inline-array level-buffer-state 6 @@ -4130,7 +4404,11 @@ :trans (new 'static 'vector :x 4147599.2 :y 98304.0 :z -1044046.6 :w 1.0) :quat (new 'static 'vector :y -0.6965 :w -0.7174) :camera-trans (new 'static 'vector :x 4096345.2 :y 119399.625 :z -1043145.1 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.0169 0.0 -0.9998 0.1209 0.9926 -0.002 0.9925 -0.1209 -0.0168) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.0169 0.0 -0.9998)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.1209 0.9926 -0.002)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.9925 -0.1209 -0.0168)) + ) :on-goto #f :vis-nick 'ruins :want (new 'static 'inline-array level-buffer-state 6 @@ -4150,7 +4428,11 @@ :trans (new 'static 'vector :x 3597612.2 :y 2788.9663 :z -898058.25 :w 1.0) :quat (new 'static 'vector :y 0.9108 :w -0.4127) :camera-trans (new 'static 'vector :x 3600432.0 :y 23778.51 :z -847371.9 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.9974 0.0 0.0716 -0.0084 0.9929 -0.1179 -0.071 -0.1182 -0.9904) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.9974 0.0 0.0716)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.0084 0.9929 -0.1179)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.071 -0.1182 -0.9904)) + ) :on-goto #f :vis-nick 'ruins :want (new 'static 'inline-array level-buffer-state 6 @@ -4170,7 +4452,11 @@ :trans (new 'static 'vector :x 4338732.0 :y 99318.99 :z -1983915.2 :w 1.0) :quat (new 'static 'vector :y 0.964 :w 0.2657) :camera-trans (new 'static 'vector :x 4320175.0 :y 120442.47 :z -1945102.8 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.9011 0.0 -0.4335 0.0765 0.9843 -0.159 0.4267 -0.1764 -0.887) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.9011 0.0 -0.4335)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.0765 0.9843 -0.159)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.4267 -0.1764 -0.887)) + ) :on-goto '(cond ((task-closed? "ruins-mech-introduction") (want-sound 'ruins1 'ruins3 'mech) @@ -4197,7 +4483,11 @@ :trans (new 'static 'vector :x 4631596.0 :y 188402.08 :z -991184.9 :w 1.0) :quat (new 'static 'vector :y -0.9987 :w -0.0508) :camera-trans (new 'static 'vector :x 4670624.0 :y 206847.19 :z -979009.56 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.3887 0.0 0.9213 -0.3308 0.9333 -0.1395 -0.8599 -0.359 -0.3628) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.3887 0.0 0.9213)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.3308 0.9333 -0.1395)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.8599 -0.359 -0.3628)) + ) :on-goto #f :vis-nick 'ruins :want (new 'static 'inline-array level-buffer-state 6 @@ -4249,7 +4539,6 @@ ) ) -;; definition for symbol sagehut, type level-load-info (define sagehut (new 'static 'level-load-info :index 46 :task-level #x4 @@ -4305,7 +4594,6 @@ ) ) -;; definition for symbol atoll, type level-load-info (define atoll (new 'static 'level-load-info :index 47 @@ -4331,7 +4619,11 @@ :trans (new 'static 'vector :x 2288109.5 :y 8801.075 :z -3452941.0 :w 1.0) :quat (new 'static 'vector :y -0.9998 :w -0.0175) :camera-trans (new 'static 'vector :x 2289175.2 :y 29895.475 :z -3401749.0 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.9997 0.0 0.02 -0.0024 0.9925 -0.1216 -0.0198 -0.1216 -0.9923) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.9997 0.0 0.02)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.0024 0.9925 -0.1216)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.0198 -0.1216 -0.9923)) + ) :on-goto #f :vis-nick 'atoll :want (new 'static 'inline-array level-buffer-state 6 @@ -4351,7 +4643,11 @@ :trans (new 'static 'vector :x 2284922.5 :y 10056.09 :z -3324549.0 :w 1.0) :quat (new 'static 'vector :y 0.9999 :w 0.0044) :camera-trans (new 'static 'vector :x 2280927.8 :y 29319.986 :z -3280357.5 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.9959 0.0 -0.0902 0.0117 0.9914 -0.1297 0.0894 -0.1302 -0.9874) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.9959 0.0 -0.0902)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.0117 0.9914 -0.1297)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.0894 -0.1302 -0.9874)) + ) :on-goto #f :vis-nick 'atoll :want (new 'static 'inline-array level-buffer-state 6 @@ -4371,7 +4667,11 @@ :trans (new 'static 'vector :x 2288109.5 :y 8801.075 :z -3452941.0 :w 1.0) :quat (new 'static 'vector :y -0.9998 :w -0.0175) :camera-trans (new 'static 'vector :x 2289175.2 :y 29895.475 :z -3401749.0 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.9997 0.0 0.02 -0.0024 0.9925 -0.1216 -0.0198 -0.1216 -0.9923) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.9997 0.0 0.02)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.0024 0.9925 -0.1216)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.0198 -0.1216 -0.9923)) + ) :on-goto #f :vis-nick 'atoll :want (new 'static 'inline-array level-buffer-state 6 @@ -4391,7 +4691,11 @@ :trans (new 'static 'vector :x 2026609.9 :y 53760.0 :z -3877329.2 :w 1.0) :quat (new 'static 'vector :y 0.6803 :w -0.7328) :camera-trans (new 'static 'vector :x 2043578.0 :y 77001.93 :z -3838212.5 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.8804 0.0 0.4741 -0.1035 0.9758 -0.1923 -0.4627 -0.2184 -0.8591) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.8804 0.0 0.4741)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.1035 0.9758 -0.1923)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.4627 -0.2184 -0.8591)) + ) :on-goto #f :vis-nick 'atoll :want (new 'static 'inline-array level-buffer-state 6 @@ -4411,7 +4715,11 @@ :trans (new 'static 'vector :x 1762283.5 :y 53711.668 :z -4027283.8 :w 1.0) :quat (new 'static 'vector :x -0.0001 :y 0.9401 :w 0.3406) :camera-trans (new 'static 'vector :x 1721253.9 :y 95286.07 :z -3956288.2 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.8548 0.0 -0.5188 0.1357 0.9651 -0.2236 0.5008 -0.2616 -0.825) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.8548 0.0 -0.5188)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.1357 0.9651 -0.2236)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.5008 -0.2616 -0.825)) + ) :on-goto #f :vis-nick 'atoll :want (new 'static 'inline-array level-buffer-state 6 @@ -4431,7 +4739,11 @@ :trans (new 'static 'vector :x 1552601.1 :y 53711.668 :z -4779247.5 :w 1.0) :quat (new 'static 'vector :y 0.962 :w -0.2727) :camera-trans (new 'static 'vector :x 1513808.8 :y 73827.125 :z -4806706.5 :w 1.0) - :camera-rot (new 'static 'array float 9 0.5386 0.0 -0.8425 0.1216 0.9895 0.0777 0.8337 -0.1443 0.5329) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.5386 0.0 -0.8425)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.1216 0.9895 0.0777)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.8337 -0.1443 0.5329)) + ) :on-goto #f :vis-nick 'atoll :want (new 'static 'inline-array level-buffer-state 6 @@ -4451,7 +4763,11 @@ :trans (new 'static 'vector :x 1874199.0 :y 6223.872 :z -4438985.0 :w 1.0) :quat (new 'static 'vector :y 0.3639 :w 0.9314) :camera-trans (new 'static 'vector :x 1838270.9 :y 27303.936 :z -4475633.0 :w 1.0) - :camera-rot (new 'static 'array float 9 0.702 0.0 -0.7121 0.0863 0.9926 0.0851 0.7068 -0.1212 0.6968) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.702 0.0 -0.7121)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.0863 0.9926 0.0851)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.7068 -0.1212 0.6968)) + ) :on-goto #f :vis-nick 'atoll :want (new 'static 'inline-array level-buffer-state 6 @@ -4471,7 +4787,11 @@ :trans (new 'static 'vector :x 2293206.8 :y 4907.4175 :z -4265200.5 :w 1.0) :quat (new 'static 'vector :x -0.0013 :y -0.8686 :z 0.0003 :w -0.4954) :camera-trans (new 'static 'vector :x 2213943.0 :y 46524.414 :z -4285937.0 :w 1.0) - :camera-rot (new 'static 'array float 9 0.2418 0.0 -0.9703 0.2518 0.9657 0.0627 0.937 -0.2595 0.2335) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.2418 0.0 -0.9703)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.2518 0.9657 0.0627)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.937 -0.2595 0.2335)) + ) :on-goto #f :vis-nick 'atoll :want (new 'static 'inline-array level-buffer-state 6 @@ -4491,7 +4811,11 @@ :trans (new 'static 'vector :x 1786353.6 :y 173371.8 :z -4885427.5 :w 1.0) :quat (new 'static 'vector :y 0.7184 :w 0.6955) :camera-trans (new 'static 'vector :x 1744994.2 :y 194462.92 :z -4897220.0 :w 1.0) - :camera-rot (new 'static 'array float 9 0.276 0.0 -0.9611 0.1691 0.9843 0.0485 0.9461 -0.1759 0.2717) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.276 0.0 -0.9611)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.1691 0.9843 0.0485)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.9461 -0.1759 0.2717)) + ) :on-goto #f :vis-nick 'atoll :want (new 'static 'inline-array level-buffer-state 6 @@ -4542,7 +4866,6 @@ ) ) -;; definition for symbol atollext, type level-load-info (define atollext (new 'static 'level-load-info :index 48 :task-level #x6 @@ -4597,7 +4920,6 @@ ) ) -;; definition for symbol mountain, type level-load-info (define mountain (new 'static 'level-load-info :index 49 @@ -4623,7 +4945,11 @@ :trans (new 'static 'vector :x -2323968.5 :y 492110.66 :z 847190.44 :w 1.0) :quat (new 'static 'vector :y 0.7072 :w -0.7069) :camera-trans (new 'static 'vector :x -2366673.8 :y 513098.12 :z 852492.3 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.1179 0.0 -0.993 0.1507 0.9884 -0.0179 0.9815 -0.1517 -0.1166) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.1179 0.0 -0.993)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.1507 0.9884 -0.0179)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.9815 -0.1517 -0.1166)) + ) :on-goto #f :vis-nick 'mountain :want (new 'static 'inline-array level-buffer-state 6 @@ -4643,7 +4969,11 @@ :trans (new 'static 'vector :x -2344385.0 :y 493619.2 :z 855861.7 :w 1.0) :quat (new 'static 'vector :y 0.7897 :w -0.6134) :camera-trans (new 'static 'vector :x -2395385.8 :y 514670.2 :z 853979.1 :w 1.0) - :camera-rot (new 'static 'array float 9 0.0086 0.0 -0.9999 0.1517 0.9884 0.0013 0.9883 -0.1517 0.0085) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.0086 0.0 -0.9999)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.1517 0.9884 0.0013)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.9883 -0.1517 0.0085)) + ) :on-goto '(want-continue "mountain-top") :vis-nick 'mountain :want (new 'static 'inline-array level-buffer-state 6 @@ -4662,7 +4992,11 @@ :trans (new 'static 'vector :x -2334868.2 :y 492775.0 :z 856738.6 :w 1.0) :quat (new 'static 'vector :y -0.9432 :w 0.3321) :camera-trans (new 'static 'vector :x -2363013.5 :y 513332.03 :z 816399.1 :w 1.0) - :camera-rot (new 'static 'array float 9 0.8248 0.0 -0.5653 0.0855 0.9884 0.1247 0.5588 -0.1512 0.8153) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.8248 0.0 -0.5653)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.0855 0.9884 0.1247)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.5588 -0.1512 0.8153)) + ) :on-goto #f :vis-nick 'mountain :want (new 'static 'inline-array level-buffer-state 6 @@ -4682,7 +5016,11 @@ :trans (new 'static 'vector :x -1928867.9 :y 119072.36 :z 762851.3 :w 1.0) :quat (new 'static 'vector :y 0.1361 :w -0.9906) :camera-trans (new 'static 'vector :x -1970202.2 :y 140129.89 :z 792840.2 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.5181 0.0 -0.8552 0.1229 0.9896 -0.0744 0.8464 -0.1437 -0.5127) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.5181 0.0 -0.8552)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.1229 0.9896 -0.0744)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.8464 -0.1437 -0.5127)) + ) :on-goto '(want-continue "mountain-warp-bottom") :vis-nick 'mountain :want (new 'static 'inline-array level-buffer-state 6 @@ -4702,7 +5040,11 @@ :trans (new 'static 'vector :x -1928867.9 :y 119072.36 :z 762851.3 :w 1.0) :quat (new 'static 'vector :y 0.1361 :w -0.9906) :camera-trans (new 'static 'vector :x -1970202.2 :y 140129.89 :z 792840.2 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.5181 0.0 -0.8552 0.1229 0.9896 -0.0744 0.8464 -0.1437 -0.5127) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.5181 0.0 -0.8552)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.1229 0.9896 -0.0744)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.8464 -0.1437 -0.5127)) + ) :on-goto #f :vis-nick 'mountain :want (new 'static 'inline-array level-buffer-state 6 @@ -4722,7 +5064,11 @@ :trans (new 'static 'vector :x -3678913.0 :y 242899.36 :z 547868.7 :w 1.0) :quat (new 'static 'vector :x -0.0014 :y 0.2389 :z -0.0006 :w -0.971) :camera-trans (new 'static 'vector :x -3658512.0 :y 263992.94 :z 500907.62 :w 1.0) - :camera-rot (new 'static 'array float 9 0.9168 0.0 0.3991 -0.0485 0.9925 0.1115 -0.3961 -0.1217 0.91) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.9168 0.0 0.3991)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.0485 0.9925 0.1115)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.3961 -0.1217 0.91)) + ) :on-goto '(begin (kill "metalmonk-72" store #f) (kill "metalmonk-73" store #f) @@ -4748,7 +5094,11 @@ :trans (new 'static 'vector :x -2598416.5 :y 385700.25 :z -131157.2 :w 1.0) :quat (new 'static 'vector :y 0.0011 :w -0.9999) :camera-trans (new 'static 'vector :x -2589366.2 :y 398878.72 :z -150739.77 :w 1.0) - :camera-rot (new 'static 'array float 9 0.9091 0.0 0.4165 -0.122 0.9561 0.2663 -0.3982 -0.2929 0.8692) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.9091 0.0 0.4165)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.122 0.9561 0.2663)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.3982 -0.2929 0.8692)) + ) :on-goto #f :vis-nick 'mountain :want (new 'static 'inline-array level-buffer-state 6 @@ -4768,7 +5118,11 @@ :trans (new 'static 'vector :x -2389323.0 :y 495015.53 :z 963041.25 :w 1.0) :quat (new 'static 'vector :y -0.5072 :w 0.8617) :camera-trans (new 'static 'vector :x -2350041.5 :y 516124.7 :z 945515.75 :w 1.0) - :camera-rot (new 'static 'array float 9 0.4066 0.0 0.9135 -0.1607 0.9843 0.0715 -0.8993 -0.1759 0.4003) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.4066 0.0 0.9135)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.1607 0.9843 0.0715)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.8993 -0.1759 0.4003)) + ) :on-goto #f :vis-nick 'mountain :want (new 'static 'inline-array level-buffer-state 6 @@ -4788,7 +5142,11 @@ :trans (new 'static 'vector :x -2488779.2 :y 278519.4 :z 485033.97 :w 1.0) :quat (new 'static 'vector :y 0.7587 :w 0.6513) :camera-trans (new 'static 'vector :x -2531265.8 :y 299651.06 :z 491683.84 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.1542 0.0 -0.988 0.1754 0.9841 -0.0273 0.9723 -0.1776 -0.1517) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.1542 0.0 -0.988)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.1754 0.9841 -0.0273)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.9723 -0.1776 -0.1517)) + ) :on-goto #f :vis-nick 'mountain :want (new 'static 'inline-array level-buffer-state 6 @@ -4808,7 +5166,11 @@ :trans (new 'static 'vector :x -2629474.0 :y 324481.44 :z 689014.4 :w 1.0) :quat (new 'static 'vector :y 0.9621 :w -0.2726) :camera-trans (new 'static 'vector :x -2631735.8 :y 344205.72 :z 735101.3 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.9987 0.0 -0.0494 0.0061 0.9922 -0.1239 0.049 -0.1241 -0.991) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.9987 0.0 -0.0494)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.0061 0.9922 -0.1239)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.049 -0.1241 -0.991)) + ) :on-goto #f :vis-nick 'mountain :want (new 'static 'inline-array level-buffer-state 6 @@ -4860,7 +5222,6 @@ ) ) -;; definition for symbol mtnext, type level-load-info (define mtnext (new 'static 'level-load-info :index 50 :task-level #x8 @@ -4917,7 +5278,6 @@ ) ) -;; definition for symbol forest, type level-load-info (define forest (new 'static 'level-load-info :index 51 @@ -4942,7 +5302,11 @@ :trans (new 'static 'vector :x -2384070.2 :y 133192.9 :z 2334096.2 :w 1.0) :quat (new 'static 'vector :y -0.1023 :w -0.9947) :camera-trans (new 'static 'vector :x -2391456.2 :y 153984.2 :z 2292528.2 :w 1.0) - :camera-rot (new 'static 'array float 9 0.9845 0.0 -0.1749 0.0313 0.9838 0.1762 0.1721 -0.1789 0.9686) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.9845 0.0 -0.1749)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.0313 0.9838 0.1762)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.1721 -0.1789 0.9686)) + ) :on-goto #f :vis-nick 'forest :want (new 'static 'inline-array level-buffer-state 6 @@ -4962,7 +5326,11 @@ :trans (new 'static 'vector :x -2612326.8 :y 149986.92 :z 3560990.0 :w 1.0) :quat (new 'static 'vector :x 0.0001 :y 0.3242 :z -0.0013 :w 0.9459) :camera-trans (new 'static 'vector :x -2642006.0 :y 171092.78 :z 3519268.5 :w 1.0) - :camera-rot (new 'static 'array float 9 0.815 0.0 -0.5794 0.0703 0.9925 0.099 0.5751 -0.1214 0.809) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.815 0.0 -0.5794)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.0703 0.9925 0.099)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.5751 -0.1214 0.809)) + ) :on-goto #f :vis-nick 'forest :want (new 'static 'inline-array level-buffer-state 6 @@ -5014,7 +5382,6 @@ ) ) -;; definition for symbol forestb, type level-load-info (define forestb (new 'static 'level-load-info :index 52 :task-level #x9 @@ -5071,7 +5438,6 @@ ) ) -;; definition for symbol mincan, type level-load-info (define mincan (new 'static 'level-load-info :index 53 @@ -5096,7 +5462,11 @@ :trans (new 'static 'vector :x -1980823.1 :y 116416.516 :z -62922.344 :w 1.0) :quat (new 'static 'vector :y -0.9607 :z -0.0014 :w -0.2775) :camera-trans (new 'static 'vector :x -2001351.5 :y 131235.44 :z -44465.766 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.6695 0.0 -0.7427 0.1703 0.9733 -0.1535 0.7229 -0.2294 -0.6516) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.6695 0.0 -0.7427)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.1703 0.9733 -0.1535)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.7229 -0.2294 -0.6516)) + ) :on-goto #f :vis-nick 'mountain :want (new 'static 'inline-array level-buffer-state 6 @@ -5116,7 +5486,11 @@ :trans (new 'static 'vector :x -2134463.8 :y 66739.41 :z -724928.1 :w 1.0) :quat (new 'static 'vector :y 0.5441 :w 0.839) :camera-trans (new 'static 'vector :x -2155888.2 :y 87833.4 :z -762217.25 :w 1.0) - :camera-rot (new 'static 'array float 9 0.8643 0.0 -0.5028 0.0885 0.9843 0.1521 0.4949 -0.176 0.8508) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.8643 0.0 -0.5028)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.0885 0.9843 0.1521)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.4949 -0.176 0.8508)) + ) :on-goto #f :vis-nick 'mincan :want (new 'static 'inline-array level-buffer-state 6 @@ -5168,7 +5542,6 @@ ) ) -;; definition for symbol ctywide, type level-load-info (define ctywide (new 'static 'level-load-info :index 54 :task-level #x1 @@ -5227,7 +5600,6 @@ ) ) -;; definition for symbol lwidea, type level-load-info (define lwidea (new 'static 'level-load-info :index 55 :task-level #x1 @@ -5284,7 +5656,6 @@ ) ) -;; definition for symbol lwideb, type level-load-info (define lwideb (new 'static 'level-load-info :index 56 :task-level #x1 @@ -5341,7 +5712,6 @@ ) ) -;; definition for symbol lwidec, type level-load-info (define lwidec (new 'static 'level-load-info :index 57 :task-level #x1 @@ -5398,7 +5768,6 @@ ) ) -;; definition for symbol ctykora, type level-load-info (define ctykora (new 'static 'level-load-info :index 58 :task-level #x1 @@ -5454,7 +5823,6 @@ ) ) -;; definition for symbol ctyasha, type level-load-info (define ctyasha (new 'static 'level-load-info :index 59 :task-level #x1 @@ -5510,7 +5878,6 @@ ) ) -;; definition for symbol ctygena, type level-load-info (define ctygena (new 'static 'level-load-info :index 60 @@ -5536,7 +5903,11 @@ :trans (new 'static 'vector :x -960852.8 :y 39766.836 :z -805551.7 :w 1.0) :quat (new 'static 'vector :x 0.0011 :y -0.7123 :z 0.0005 :w -0.7018) :camera-trans (new 'static 'vector :x -1010105.1 :y 60324.25 :z -807308.06 :w 1.0) - :camera-rot (new 'static 'array float 9 0.0363 0.0 -0.9993 0.1199 0.9927 0.0043 0.9921 -0.1199 0.0361) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.0363 0.0 -0.9993)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.1199 0.9927 0.0043)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.9921 -0.1199 0.0361)) + ) :on-goto #f :vis-nick 'ctygena :want (new 'static 'inline-array level-buffer-state 6 @@ -5556,7 +5927,11 @@ :trans (new 'static 'vector :x -1549425.0 :y 32753.254 :z -805722.1 :w 1.0) :quat (new 'static 'vector :y -0.6395 :w 0.7687) :camera-trans (new 'static 'vector :x -1498315.1 :y 53847.656 :z -808805.2 :w 1.0) - :camera-rot (new 'static 'array float 9 0.0599 0.0 0.9982 -0.1207 0.9926 0.0072 -0.9908 -0.1209 0.0595) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.0599 0.0 0.9982)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.1207 0.9926 0.0072)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.9908 -0.1209 0.0595)) + ) :on-goto #f :vis-nick 'ctygena :want (new 'static 'inline-array level-buffer-state 6 @@ -5576,7 +5951,11 @@ :trans (new 'static 'vector :x -256512.4 :y 32768.0 :z -116162.15 :w 1.0) :quat (new 'static 'vector :y 0.0466 :w -0.9989) :camera-trans (new 'static 'vector :x -255002.22 :y 53861.992 :z -167339.62 :w 1.0) - :camera-rot (new 'static 'array float 9 0.9995 0.0 0.0305 -0.0037 0.9925 0.1216 -0.0302 -0.1216 0.9921) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.9995 0.0 0.0305)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.0037 0.9925 0.1216)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.0302 -0.1216 0.9921)) + ) :on-goto #f :vis-nick 'ctygena :want (new 'static 'inline-array level-buffer-state 6 @@ -5628,7 +6007,6 @@ ) ) -;; definition for symbol ctygenb, type level-load-info (define ctygenb (new 'static 'level-load-info :index 61 @@ -5654,7 +6032,11 @@ :trans (new 'static 'vector :x 686539.56 :y 40271.87 :z -1015174.75 :w 1.0) :quat (new 'static 'vector :x 0.0009 :y 0.6545 :z 0.0007 :w -0.756) :camera-trans (new 'static 'vector :x 647089.75 :y 59344.49 :z -1026199.94 :w 1.0) - :camera-rot (new 'static 'array float 9 0.3195 0.0 -0.9475 0.151 0.9872 0.0509 0.9354 -0.1594 0.3154) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.3195 0.0 -0.9475)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.151 0.9872 0.0509)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.9354 -0.1594 0.3154)) + ) :on-goto #f :vis-nick 'ctygenb :want (new 'static 'inline-array level-buffer-state 6 @@ -5674,7 +6056,11 @@ :trans (new 'static 'vector :x 685747.8 :y 32765.543 :z -1213995.9 :w 1.0) :quat (new 'static 'vector :y 0.9949 :w 0.1007) :camera-trans (new 'static 'vector :x 686984.8 :y 53859.53 :z -1162769.6 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.9997 0.0 0.0243 -0.0029 0.9926 -0.1207 -0.0242 -0.1207 -0.9923) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.9997 0.0 0.0243)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.0029 0.9926 -0.1207)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.0242 -0.1207 -0.9923)) + ) :on-goto #f :vis-nick 'ctygenb :want (new 'static 'inline-array level-buffer-state 6 @@ -5694,7 +6080,11 @@ :trans (new 'static 'vector :x 1092419.1 :y 32768.0 :z -269985.38 :w 1.0) :quat (new 'static 'vector :y 0.749 :w 0.6624) :camera-trans (new 'static 'vector :x 1041223.7 :y 53868.543 :z -270698.9 :w 1.0) - :camera-rot (new 'static 'array float 9 0.0146 0.0 -0.9998 0.1217 0.9925 0.0017 0.9924 -0.1217 0.0145) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.0146 0.0 -0.9998)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.1217 0.9925 0.0017)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.9924 -0.1217 0.0145)) + ) :on-goto #f :vis-nick 'ctygenb :want (new 'static 'inline-array level-buffer-state 6 @@ -5746,7 +6136,6 @@ ) ) -;; definition for symbol ctygenc, type level-load-info (define ctygenc (new 'static 'level-load-info :index 62 @@ -5772,7 +6161,11 @@ :trans (new 'static 'vector :x 781528.25 :y 39733.656 :z 1322450.5 :w 1.0) :quat (new 'static 'vector :y -0.9673 :w 0.2534) :camera-trans (new 'static 'vector :x 778921.56 :y 60838.707 :z 1373583.8 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.9988 0.0 -0.0471 0.0057 0.9925 -0.1213 0.0468 -0.1214 -0.9914) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.9988 0.0 -0.0471)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.0057 0.9925 -0.1213)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.0468 -0.1214 -0.9914)) + ) :on-goto #f :vis-nick 'ctygenc :want (new 'static 'inline-array level-buffer-state 6 @@ -5792,7 +6185,11 @@ :trans (new 'static 'vector :x 883602.25 :y 32770.047 :z 35872.36 :w 1.0) :quat (new 'static 'vector :y -0.9999 :w 0.0085) :camera-trans (new 'static 'vector :x 883981.5 :y 53224.242 :z 84615.17 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.9999 0.0 0.0087 -0.001 0.9926 -0.1211 -0.0086 -0.1211 -0.9925) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.9999 0.0 0.0087)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.001 0.9926 -0.1211)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.0086 -0.1211 -0.9925)) + ) :on-goto #f :vis-nick 'ctygenc :want (new 'static 'inline-array level-buffer-state 6 @@ -5812,7 +6209,11 @@ :trans (new 'static 'vector :x 141574.14 :y 32772.098 :z 1081112.6 :w 1.0) :quat (new 'static 'vector :y -0.7665 :w -0.6422) :camera-trans (new 'static 'vector :x 90349.98 :y 53866.496 :z 1080261.0 :w 1.0) - :camera-rot (new 'static 'array float 9 0.0167 0.0 -0.9998 0.1206 0.9926 0.002 0.9925 -0.1206 0.0166) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.0167 0.0 -0.9998)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.1206 0.9926 0.002)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.9925 -0.1206 0.0166)) + ) :on-goto #f :vis-nick 'ctygenc :want (new 'static 'inline-array level-buffer-state 6 @@ -5864,7 +6265,6 @@ ) ) -;; definition for symbol ctysluma, type level-load-info (define ctysluma (new 'static 'level-load-info :index 63 @@ -5889,7 +6289,11 @@ :trans (new 'static 'vector :x 4350905.0 :y 33359.87 :z 908947.44 :w 1.0) :quat (new 'static 'vector :x -0.0001 :y 0.9951 :w -0.0979) :camera-trans (new 'static 'vector :x 4349280.0 :y 54451.406 :z 960109.4 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.9995 0.0 -0.0307 0.0037 0.9925 -0.1216 0.0305 -0.1216 -0.9921) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.9995 0.0 -0.0307)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.0037 0.9925 -0.1216)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.0305 -0.1216 -0.9921)) + ) :on-goto #f :vis-nick 'ctysluma :want (new 'static 'inline-array level-buffer-state 6 @@ -5909,7 +6313,11 @@ :trans (new 'static 'vector :x 4660709.0 :y 33364.38 :z 61360.54 :w 1.0) :quat (new 'static 'vector :y -0.2484 :w -0.9686) :camera-trans (new 'static 'vector :x 4635918.5 :y 54458.367 :z 26214.4 :w 1.0) - :camera-rot (new 'static 'array float 9 0.8175 0.0 -0.5758 0.1013 0.9843 0.1439 0.5668 -0.176 0.8048) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.8175 0.0 -0.5758)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.1013 0.9843 0.1439)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.5668 -0.176 0.8048)) + ) :on-goto #f :vis-nick 'ctysluma :want (new 'static 'inline-array level-buffer-state 6 @@ -5929,7 +6337,11 @@ :trans (new 'static 'vector :x 4660709.0 :y 33364.38 :z 61360.54 :w 1.0) :quat (new 'static 'vector :y -0.2484 :w -0.9686) :camera-trans (new 'static 'vector :x 4635918.5 :y 54458.367 :z 26214.4 :w 1.0) - :camera-rot (new 'static 'array float 9 0.8175 0.0 -0.5758 0.1013 0.9843 0.1439 0.5668 -0.176 0.8048) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.8175 0.0 -0.5758)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.1013 0.9843 0.1439)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.5668 -0.176 0.8048)) + ) :on-goto #f :vis-nick 'ctysluma :want (new 'static 'inline-array level-buffer-state 6 @@ -5949,7 +6361,11 @@ :trans (new 'static 'vector :x 4713875.5 :y 33354.957 :z 247486.47 :w 1.0) :quat (new 'static 'vector :y -0.9986 :w 0.0522) :camera-trans (new 'static 'vector :x 4724241.5 :y 54449.355 :z 297623.97 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.9794 0.0 0.2016 -0.0245 0.9925 -0.1192 -0.2001 -0.1217 -0.9721) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.9794 0.0 0.2016)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.0245 0.9925 -0.1192)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.2001 -0.1217 -0.9721)) + ) :on-goto #f :vis-nick 'ctysluma :want (new 'static 'inline-array level-buffer-state 6 @@ -5969,7 +6385,11 @@ :trans (new 'static 'vector :x 4660709.0 :y 33364.38 :z 61360.54 :w 1.0) :quat (new 'static 'vector :y -0.2484 :w -0.9686) :camera-trans (new 'static 'vector :x 4635918.5 :y 54458.367 :z 26214.4 :w 1.0) - :camera-rot (new 'static 'array float 9 0.8175 0.0 -0.5758 0.1013 0.9843 0.1439 0.5668 -0.176 0.8048) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.8175 0.0 -0.5758)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.1013 0.9843 0.1439)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.5668 -0.176 0.8048)) + ) :on-goto #f :vis-nick 'ctysluma :want (new 'static 'inline-array level-buffer-state 6 @@ -5989,7 +6409,11 @@ :trans (new 'static 'vector :x 3200250.2 :y 26049.332 :z 926289.94 :w 1.0) :quat (new 'static 'vector :y -0.6 :w 0.7999) :camera-trans (new 'static 'vector :x 3251440.8 :y 47171.176 :z 926989.1 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.0123 0.0 0.9999 -0.1219 0.9925 -0.0015 -0.9924 -0.122 -0.0122) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.0123 0.0 0.9999)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.1219 0.9925 -0.0015)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.9924 -0.122 -0.0122)) + ) :on-goto #f :vis-nick 'ctysluma :want (new 'static 'inline-array level-buffer-state 6 @@ -6009,7 +6433,11 @@ :trans (new 'static 'vector :x 3241306.0 :y 33350.86 :z 1429365.1 :w 1.0) :quat (new 'static 'vector :y -0.7632 :w -0.646) :camera-trans (new 'static 'vector :x 3282688.5 :y 53891.48 :z 1433176.5 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.1259 0.0 0.992 -0.1911 0.9812 -0.0242 -0.9734 -0.1926 -0.1236) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.1259 0.0 0.992)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.1911 0.9812 -0.0242)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.9734 -0.1926 -0.1236)) + ) :on-goto #f :vis-nick 'ctysluma :want (new 'static 'inline-array level-buffer-state 6 @@ -6029,7 +6457,11 @@ :trans (new 'static 'vector :x 4720627.5 :y 33350.453 :z 238358.53 :w 1.0) :quat (new 'static 'vector :y -0.9882 :w 0.153) :camera-trans (new 'static 'vector :x 4725391.0 :y 54444.85 :z 289359.06 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.9956 0.0 0.0927 -0.0112 0.9926 -0.1202 -0.092 -0.1207 -0.9883) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.9956 0.0 0.0927)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.0112 0.9926 -0.1202)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.092 -0.1207 -0.9883)) + ) :on-goto '(begin (kill "parking-spot-8" store #f) (want-continue "ctysluma-escort-retry")) :vis-nick 'ctysluma :want (new 'static 'inline-array level-buffer-state 6 @@ -6049,7 +6481,11 @@ :trans (new 'static 'vector :x 4701751.5 :y 33350.453 :z 196943.88 :w 1.0) :quat (new 'static 'vector :y -0.2309 :w -0.9729) :camera-trans (new 'static 'vector :x 4686596.0 :y 54444.85 :z 156687.56 :w 1.0) - :camera-rot (new 'static 'array float 9 0.9351 0.0 -0.3541 0.0623 0.9843 0.1645 0.3486 -0.1759 0.9205) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.9351 0.0 -0.3541)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.0623 0.9843 0.1645)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.3486 -0.1759 0.9205)) + ) :on-goto #f :vis-nick 'ctysluma :want (new 'static 'inline-array level-buffer-state 6 @@ -6069,7 +6505,11 @@ :trans (new 'static 'vector :x 3420067.8 :y 33357.414 :z 984182.4 :w 1.0) :quat (new 'static 'vector :x 0.0002 :y -0.5079 :w 0.8614) :camera-trans (new 'static 'vector :x 3465968.8 :y 53951.69 :z 1002505.0 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.3607 0.0 0.9326 -0.1111 0.9928 -0.0429 -0.9259 -0.1191 -0.3582) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.3607 0.0 0.9326)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.1111 0.9928 -0.0429)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.9259 -0.1191 -0.3582)) + ) :on-goto #f :vis-nick 'ctysluma :want (new 'static 'inline-array level-buffer-state 6 @@ -6121,7 +6561,6 @@ ) ) -;; definition for symbol ctyslumb, type level-load-info (define ctyslumb (new 'static 'level-load-info :index 64 @@ -6146,7 +6585,11 @@ :trans (new 'static 'vector :x 2408425.5 :y 32736.05 :z -1015882.94 :w 1.0) :quat (new 'static 'vector :x -0.0018 :y 0.7448 :z -0.0022 :w -0.6672) :camera-trans (new 'static 'vector :x 2393250.2 :y 51793.1 :z -991323.75 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.9004 0.0 -0.435 0.1357 0.95 -0.281 0.4133 -0.312 -0.8554) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.9004 0.0 -0.435)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.1357 0.95 -0.281)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.4133 -0.312 -0.8554)) + ) :on-goto #f :vis-nick 'ctyslumb :want (new 'static 'inline-array level-buffer-state 6 @@ -6165,7 +6608,11 @@ :trans (new 'static 'vector :x 2497021.2 :y 32760.627 :z -107427.43 :w 1.0) :quat (new 'static 'vector :y 0.9297 :w 0.3682) :camera-trans (new 'static 'vector :x 2476040.5 :y 54580.43 :z -61865.984 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.9015 0.0 -0.4327 0.0601 0.9902 -0.1253 0.4285 -0.139 -0.8927) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.9015 0.0 -0.4327)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.0601 0.9902 -0.1253)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.4285 -0.139 -0.8927)) + ) :on-goto #f :vis-nick 'ctyslumb :want (new 'static 'inline-array level-buffer-state 6 @@ -6185,7 +6632,11 @@ :trans (new 'static 'vector :x 2895687.8 :y 33280.41 :z -332780.75 :w 1.0) :quat (new 'static 'vector :x 0.0002 :y 0.5948 :z -0.0003 :w 0.8038) :camera-trans (new 'static 'vector :x 2892613.8 :y 54387.508 :z -383899.25 :w 1.0) - :camera-rot (new 'static 'array float 9 0.9924 0.0 -0.123 0.0142 0.9932 0.1152 0.1221 -0.1161 0.9856) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.9924 0.0 -0.123)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.0142 0.9932 0.1152)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.1221 -0.1161 0.9856)) + ) :on-goto #f :vis-nick 'ctyslumb :want (new 'static 'inline-array level-buffer-state 6 @@ -6205,7 +6656,11 @@ :trans (new 'static 'vector :x 1747023.5 :y 32766.771 :z -249536.52 :w 1.0) :quat (new 'static 'vector :y 0.9992 :w -0.0382) :camera-trans (new 'static 'vector :x 1763576.2 :y 53857.895 :z -200809.67 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.9468 0.0 0.3217 -0.0385 0.9927 -0.1134 -0.3194 -0.1198 -0.94) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.9468 0.0 0.3217)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.0385 0.9927 -0.1134)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.3194 -0.1198 -0.94)) + ) :on-goto #f :vis-nick 'ctyslumb :want (new 'static 'inline-array level-buffer-state 6 @@ -6257,7 +6712,6 @@ ) ) -;; definition for symbol ctyslumc, type level-load-info (define ctyslumc (new 'static 'level-load-info :index 65 @@ -6283,7 +6737,11 @@ :trans (new 'static 'vector :x 2453099.8 :y 32505.855 :z -2268892.8 :w 1.0) :quat (new 'static 'vector :y -0.6958 :w 0.7182) :camera-trans (new 'static 'vector :x 2468703.8 :y 53571.586 :z -2220125.5 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.9194 0.0 0.3931 -0.046 0.9931 -0.1076 -0.3904 -0.117 -0.9131) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.9194 0.0 0.3931)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.046 0.9931 -0.1076)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.3904 -0.117 -0.9131)) + ) :on-goto #f :vis-nick 'ctyslumc :want (new 'static 'inline-array level-buffer-state 6 @@ -6302,7 +6760,11 @@ :trans (new 'static 'vector :x 3095949.8 :y 38379.52 :z -2931103.2 :w 1.0) :quat (new 'static 'vector :y -0.1147 :w 0.9933) :camera-trans (new 'static 'vector :x 3105172.8 :y 58562.152 :z -2978129.0 :w 1.0) - :camera-rot (new 'static 'array float 9 0.9814 0.0 0.1914 -0.0228 0.9928 0.117 -0.1901 -0.1192 0.9744) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.9814 0.0 0.1914)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.0228 0.9928 0.117)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.1901 -0.1192 0.9744)) + ) :on-goto #f :vis-nick 'ctyslumc :want (new 'static 'inline-array level-buffer-state 6 @@ -6322,7 +6784,11 @@ :trans (new 'static 'vector :x 3095949.8 :y 38379.52 :z -2931103.2 :w 1.0) :quat (new 'static 'vector :y -0.1147 :w 0.9933) :camera-trans (new 'static 'vector :x 3105172.8 :y 58562.152 :z -2978129.0 :w 1.0) - :camera-rot (new 'static 'array float 9 0.9814 0.0 0.1914 -0.0228 0.9928 0.117 -0.1901 -0.1192 0.9744) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.9814 0.0 0.1914)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.0228 0.9928 0.117)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.1901 -0.1192 0.9744)) + ) :on-goto #f :vis-nick 'ctyslumc :want (new 'static 'inline-array level-buffer-state 6 @@ -6342,7 +6808,11 @@ :trans (new 'static 'vector :x 2201559.0 :y 32754.074 :z -2377998.0 :w 1.0) :quat (new 'static 'vector :y 0.8793 :w -0.4762) :camera-trans (new 'static 'vector :x 2230809.8 :y 53886.156 :z -2335975.5 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.8202 0.0 0.572 -0.0702 0.9924 -0.1006 -0.5677 -0.1227 -0.814) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.8202 0.0 0.572)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.0702 0.9924 -0.1006)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.5677 -0.1227 -0.814)) + ) :on-goto #f :vis-nick 'ctyslumc :want (new 'static 'inline-array level-buffer-state 6 @@ -6394,7 +6864,6 @@ ) ) -;; definition for symbol ctyport, type level-load-info (define ctyport (new 'static 'level-load-info :index 66 @@ -6420,7 +6889,11 @@ :trans (new 'static 'vector :x 790611.94 :y 70801.82 :z 7184308.0 :w 1.0) :quat (new 'static 'vector :y -0.9991 :w -0.0414) :camera-trans (new 'static 'vector :x 790445.7 :y 91896.22 :z 7235498.0 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.9999 0.0 -0.0056 0.0006 0.9925 -0.1216 0.0055 -0.1216 -0.9925) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.9999 0.0 -0.0056)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.0006 0.9925 -0.1216)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.0055 -0.1216 -0.9925)) + ) :on-goto #f :vis-nick 'ctyport :want (new 'static 'inline-array level-buffer-state 6 @@ -6440,7 +6913,11 @@ :trans (new 'static 'vector :x -237165.36 :y 31635.455 :z 5517031.5 :w 1.0) :quat (new 'static 'vector :y -0.9709 :w 0.239) :camera-trans (new 'static 'vector :x -213388.9 :y 52731.086 :z 5552992.5 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.834 0.0 0.5516 -0.0959 0.9847 -0.145 -0.5432 -0.1739 -0.8213) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.834 0.0 0.5516)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.0959 0.9847 -0.145)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.5432 -0.1739 -0.8213)) + ) :on-goto #f :vis-nick 'ctyport :want (new 'static 'inline-array level-buffer-state 6 @@ -6460,7 +6937,11 @@ :trans (new 'static 'vector :x -263350.7 :y 31665.357 :z 5478634.5 :w 1.0) :quat (new 'static 'vector :y -0.7746 :w 0.6324) :camera-trans (new 'static 'vector :x -239528.75 :y 52765.082 :z 5523948.5 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.873 0.0 0.4876 -0.0571 0.9931 -0.1022 -0.4842 -0.1171 -0.867) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.873 0.0 0.4876)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.0571 0.9931 -0.1022)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.4842 -0.1171 -0.867)) + ) :on-goto #f :vis-nick 'ctyport :want (new 'static 'inline-array level-buffer-state 6 @@ -6480,7 +6961,11 @@ :trans (new 'static 'vector :x 1740270.8 :y 31670.271 :z 5416671.0 :w 1.0) :quat (new 'static 'vector :y 0.9703 :w 0.2417) :camera-trans (new 'static 'vector :x 1719776.0 :y 52764.26 :z 5463587.5 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.9162 0.0 -0.4006 0.0485 0.9926 -0.1111 0.3976 -0.1212 -0.9094) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.9162 0.0 -0.4006)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.0485 0.9926 -0.1111)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.3976 -0.1212 -0.9094)) + ) :on-goto #f :vis-nick 'ctyport :want (new 'static 'inline-array level-buffer-state 6 @@ -6499,7 +6984,11 @@ :trans (new 'static 'vector :x 1526301.1 :y 31448.27 :z 7370150.5 :w 1.0) :quat (new 'static 'vector :x -0.0014 :y -0.9505 :z -0.0005 :w 0.3106) :camera-trans (new 'static 'vector :x 1511200.0 :y 50669.16 :z 7328715.0 :w 1.0) - :camera-rot (new 'static 'array float 9 0.9515 0.0 -0.3075 0.0451 0.9891 0.1396 0.3042 -0.1467 0.9412) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.9515 0.0 -0.3075)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.0451 0.9891 0.1396)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.3042 -0.1467 0.9412)) + ) :on-goto #f :vis-nick 'ctyport :want (new 'static 'inline-array level-buffer-state 6 @@ -6519,7 +7008,11 @@ :trans (new 'static 'vector :x 1526301.1 :y 31448.27 :z 7370150.5 :w 1.0) :quat (new 'static 'vector :x -0.0014 :y -0.9505 :z -0.0005 :w 0.3106) :camera-trans (new 'static 'vector :x 1511200.0 :y 50669.16 :z 7328715.0 :w 1.0) - :camera-rot (new 'static 'array float 9 0.9515 0.0 -0.3075 0.0451 0.9891 0.1396 0.3042 -0.1467 0.9412) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.9515 0.0 -0.3075)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.0451 0.9891 0.1396)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.3042 -0.1467 0.9412)) + ) :on-goto #f :vis-nick 'ctyport :want (new 'static 'inline-array level-buffer-state 6 @@ -6539,7 +7032,11 @@ :trans (new 'static 'vector :x 1526301.1 :y 31448.27 :z 7370150.5 :w 1.0) :quat (new 'static 'vector :x -0.0014 :y -0.9505 :z -0.0005 :w 0.3106) :camera-trans (new 'static 'vector :x 1511200.0 :y 50669.16 :z 7328715.0 :w 1.0) - :camera-rot (new 'static 'array float 9 0.9515 0.0 -0.3075 0.0451 0.9891 0.1396 0.3042 -0.1467 0.9412) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.9515 0.0 -0.3075)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.0451 0.9891 0.1396)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.3042 -0.1467 0.9412)) + ) :on-goto #f :vis-nick 'ctyport :want (new 'static 'inline-array level-buffer-state 6 @@ -6558,7 +7055,11 @@ :trans (new 'static 'vector :x 44259.33 :y 31529.78 :z 7135264.0 :w 1.0) :quat (new 'static 'vector :x -0.0003 :y 0.8529 :z -0.0015 :w 0.5219) :camera-trans (new 'static 'vector :x 2474.3936 :y 52346.47 :z 7130423.5 :w 1.0) - :camera-rot (new 'static 'array float 9 0.105 0.0 -0.9944 0.1792 0.9836 0.0189 0.9781 -0.1802 0.1033) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.105 0.0 -0.9944)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.1792 0.9836 0.0189)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.9781 -0.1802 0.1033)) + ) :on-goto #f :vis-nick 'ctyport :want (new 'static 'inline-array level-buffer-state 6 @@ -6578,7 +7079,11 @@ :trans (new 'static 'vector :x -204202.39 :y 42518.117 :z 5517981.5 :w 1.0) :quat (new 'static 'vector :x 0.0218 :y -0.4594 :z -0.0486 :w 0.8866) :camera-trans (new 'static 'vector :x -185733.12 :y 53058.766 :z 5505444.0 :w 1.0) - :camera-rot (new 'static 'array float 9 0.5624 0.0 0.8268 -0.2574 0.9503 0.1751 -0.7857 -0.3113 0.5344) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.5624 0.0 0.8268)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.2574 0.9503 0.1751)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.7857 -0.3113 0.5344)) + ) :on-goto #f :vis-nick 'ctyport :want (new 'static 'inline-array level-buffer-state 6 @@ -6598,7 +7103,11 @@ :trans (new 'static 'vector :x 2450949.8 :y 45615.105 :z 6574133.5 :w 1.0) :quat (new 'static 'vector :x -0.0072 :y -0.3548 :z 0.0109 :w 0.9348) :camera-trans (new 'static 'vector :x 2464248.2 :y 55870.258 :z 6559149.5 :w 1.0) - :camera-rot (new 'static 'array float 9 0.7479 0.0 0.6637 -0.2306 0.9377 0.2598 -0.6224 -0.3474 0.7013) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.7479 0.0 0.6637)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.2306 0.9377 0.2598)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.6224 -0.3474 0.7013)) + ) :on-goto #f :vis-nick 'ctyport :want (new 'static 'inline-array level-buffer-state 6 @@ -6618,7 +7127,11 @@ :trans (new 'static 'vector :x 2519127.8 :y 31612.518 :z 6545450.0 :w 1.0) :quat (new 'static 'vector :x 0.0003 :y -0.1359 :z 0.0013 :w -0.9907) :camera-trans (new 'static 'vector :x 2552038.5 :y 50085.887 :z 6520416.0 :w 1.0) - :camera-rot (new 'static 'array float 9 0.6623 0.0 0.7492 -0.1081 0.9895 0.0956 -0.7413 -0.1443 0.6553) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.6623 0.0 0.7492)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.1081 0.9895 0.0956)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.7413 -0.1443 0.6553)) + ) :on-goto #f :vis-nick 'ctyport :want (new 'static 'inline-array level-buffer-state 6 @@ -6638,7 +7151,11 @@ :trans (new 'static 'vector :x -237435.3 :y 31652.25 :z 5468062.0 :w 1.0) :quat (new 'static 'vector :y -0.4713 :w -0.8819) :camera-trans (new 'static 'vector :x -285678.78 :y 51959.4 :z 5466700.0 :w 1.0) - :camera-rot (new 'static 'array float 9 0.0311 0.0 -0.9995 0.119 0.9928 0.0037 0.9924 -0.119 0.0309) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.0311 0.0 -0.9995)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.119 0.9928 0.0037)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.9924 -0.119 0.0309)) + ) :on-goto #f :vis-nick 'ctyport :want (new 'static 'inline-array level-buffer-state 6 @@ -6658,7 +7175,11 @@ :trans (new 'static 'vector :x 2491680.0 :y 44982.273 :z 6575569.5 :w 1.0) :quat (new 'static 'vector :x 0.0289 :y 0.5081 :z 0.0742 :w -0.8575) :camera-trans (new 'static 'vector :x 2511393.2 :y 56725.094 :z 6565603.5 :w 1.0) - :camera-rot (new 'static 'array float 9 0.452 0.0 0.892 -0.2805 0.9492 0.1421 -0.8467 -0.3145 0.429) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.452 0.0 0.892)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.2805 0.9492 0.1421)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.8467 -0.3145 0.429)) + ) :on-goto #f :vis-nick 'ctyport :want (new 'static 'inline-array level-buffer-state 6 @@ -6678,7 +7199,11 @@ :trans (new 'static 'vector :x -325973.6 :y 36371.25 :z 5391642.0 :w 1.0) :quat (new 'static 'vector :y 0.9867 :w -0.162) :camera-trans (new 'static 'vector :x -301305.84 :y 51219.66 :z 5399168.5 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.3137 0.0 0.9495 -0.2469 0.9655 -0.0816 -0.9168 -0.2601 -0.3029) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.3137 0.0 0.9495)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.2469 0.9655 -0.0816)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.9168 -0.2601 -0.3029)) + ) :on-goto #f :vis-nick 'ctyport :want (new 'static 'inline-array level-buffer-state 6 @@ -6698,7 +7223,11 @@ :trans (new 'static 'vector :x 306485.66 :y 31610.47 :z 5660605.0 :w 1.0) :quat (new 'static 'vector :y -0.0814 :w 0.9966) :camera-trans (new 'static 'vector :x 304445.03 :y 55391.848 :z 5609440.5 :w 1.0) - :camera-rot (new 'static 'array float 9 0.9992 0.0 -0.0395 0.0063 0.9868 0.1616 0.0389 -0.1618 0.986) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.9992 0.0 -0.0395)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.0063 0.9868 0.1616)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.0389 -0.1618 0.986)) + ) :on-goto #f :vis-nick 'ctyport :want (new 'static 'inline-array level-buffer-state 6 @@ -6718,7 +7247,11 @@ :trans (new 'static 'vector :x 2568996.8 :y 31641.6 :z 6469675.5 :w 1.0) :quat (new 'static 'vector :y 0.8877 :w 0.4602) :camera-trans (new 'static 'vector :x 2526983.0 :y 52228.098 :z 6496139.0 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.5353 0.0 -0.8446 0.1028 0.9925 -0.0651 0.8383 -0.1217 -0.5313) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.5353 0.0 -0.8446)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.1028 0.9925 -0.0651)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.8383 -0.1217 -0.5313)) + ) :on-goto #f :vis-nick 'ctyport :want (new 'static 'inline-array level-buffer-state 6 @@ -6738,7 +7271,11 @@ :trans (new 'static 'vector :x -409080.22 :y 31759.154 :z 5577668.5 :w 1.0) :quat (new 'static 'vector :y 0.9767 :w -0.2145) :camera-trans (new 'static 'vector :x -378350.38 :y 52853.145 :z 5607808.0 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.6993 0.0 0.7148 -0.1256 0.9844 -0.1228 -0.7036 -0.1757 -0.6884) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.6993 0.0 0.7148)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.1256 0.9844 -0.1228)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.7036 -0.1757 -0.6884)) + ) :on-goto #f :vis-nick 'ctyport :want (new 'static 'inline-array level-buffer-state 6 @@ -6790,7 +7327,6 @@ ) ) -;; definition for symbol ljkdxash, type level-load-info (define ljkdxash (new 'static 'level-load-info :index 67 :name 'ljkdxash @@ -6845,7 +7381,6 @@ ) ) -;; definition for symbol ctyfarma, type level-load-info (define ctyfarma (new 'static 'level-load-info :index 68 @@ -6872,7 +7407,11 @@ :trans (new 'static 'vector :x -1346162.8 :y 35138.355 :z 858246.4 :w 1.0) :quat (new 'static 'vector :y -0.4712 :w 0.882) :camera-trans (new 'static 'vector :x -1294963.1 :y 56245.043 :z 858741.56 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.0054 0.0 0.9999 -0.1208 0.9926 -0.0006 -0.9926 -0.1208 -0.0054) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.0054 0.0 0.9999)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.1208 0.9926 -0.0006)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.9926 -0.1208 -0.0054)) + ) :on-goto #f :vis-nick 'ctyfarma :want (new 'static 'inline-array level-buffer-state 6 @@ -6892,7 +7431,11 @@ :trans (new 'static 'vector :x -1773681.9 :y 124271.82 :z 852637.3 :w 1.0) :quat (new 'static 'vector :y -0.6773 :w 0.7356) :camera-trans (new 'static 'vector :x -1739667.0 :y 142474.44 :z 861517.0 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.2439 0.0 0.9697 -0.198 0.9789 -0.0498 -0.9493 -0.2042 -0.2388) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.2439 0.0 0.9697)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.198 0.9789 -0.0498)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.9493 -0.2042 -0.2388)) + ) :on-goto #f :vis-nick 'ctyfarma :want (new 'static 'inline-array level-buffer-state 6 @@ -6912,7 +7455,11 @@ :trans (new 'static 'vector :x -1788942.4 :y 124271.82 :z 853132.5 :w 1.0) :quat (new 'static 'vector :x -0.0012 :y -0.7734 :z -0.001 :w 0.6339) :camera-trans (new 'static 'vector :x -1739187.0 :y 145007.4 :z 849631.6 :w 1.0) - :camera-rot (new 'static 'array float 9 0.0699 0.0 0.9975 -0.1197 0.9927 0.0083 -0.9903 -0.12 0.0694) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.0699 0.0 0.9975)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.1197 0.9927 0.0083)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.9903 -0.12 0.0694)) + ) :on-goto #f :vis-nick 'ctyfarma :want (new 'static 'inline-array level-buffer-state 6 @@ -6932,7 +7479,11 @@ :trans (new 'static 'vector :x -236415.39 :y 32763.904 :z 389540.25 :w 1.0) :quat (new 'static 'vector :y 0.9803 :w 0.1972) :camera-trans (new 'static 'vector :x -258035.72 :y 53921.383 :z 436186.72 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.9061 0.0 -0.423 0.0514 0.9925 -0.1102 0.4198 -0.1216 -0.8993) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.9061 0.0 -0.423)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.0514 0.9925 -0.1102)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.4198 -0.1216 -0.8993)) + ) :on-goto #f :vis-nick 'ctyfarma :want (new 'static 'inline-array level-buffer-state 6 @@ -6984,7 +7535,6 @@ ) ) -;; definition for symbol ctyfarmb, type level-load-info (define ctyfarmb (new 'static 'level-load-info :index 69 @@ -7011,7 +7561,11 @@ :trans (new 'static 'vector :x -1473722.4 :y 32758.988 :z 4695127.0 :w 1.0) :quat (new 'static 'vector :y -0.9428 :w 0.3332) :camera-trans (new 'static 'vector :x -1457872.5 :y 54232.27 :z 4735104.0 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.929 0.0 0.3699 -0.0687 0.9825 -0.1725 -0.3635 -0.1857 -0.9128) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.929 0.0 0.3699)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.0687 0.9825 -0.1725)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.3635 -0.1857 -0.9128)) + ) :on-goto #f :vis-nick 'ctyfarmb :want (new 'static 'inline-array level-buffer-state 6 @@ -7031,7 +7585,11 @@ :trans (new 'static 'vector :x -1292948.6 :y 32763.904 :z 4407961.5 :w 1.0) :quat (new 'static 'vector :y -0.7097 :w -0.7044) :camera-trans (new 'static 'vector :x -1337764.2 :y 52156.824 :z 4405888.0 :w 1.0) - :camera-rot (new 'static 'array float 9 0.0466 0.0 -0.9989 0.1284 0.9916 0.006 0.9906 -0.1286 0.0463) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.0466 0.0 -0.9989)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.1284 0.9916 0.006)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.9906 -0.1286 0.0463)) + ) :on-goto #f :vis-nick 'ctyfarmb :want (new 'static 'inline-array level-buffer-state 6 @@ -7083,7 +7641,6 @@ ) ) -;; definition for symbol ctyinda, type level-load-info (define ctyinda (new 'static 'level-load-info :index 70 @@ -7109,7 +7666,11 @@ :trans (new 'static 'vector :x 3945097.8 :y 110584.625 :z 3721824.8 :w 1.0) :quat (new 'static 'vector :y 0.0533 :w 0.9985) :camera-trans (new 'static 'vector :x 3971861.0 :y 129763.734 :z 3686880.0 :w 1.0) - :camera-rot (new 'static 'array float 9 0.8024 0.0 0.5967 -0.0789 0.9912 0.1061 -0.5914 -0.1322 0.7954) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.8024 0.0 0.5967)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.0789 0.9912 0.1061)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.5914 -0.1322 0.7954)) + ) :on-goto #f :vis-nick 'ctyinda :want (new 'static 'inline-array level-buffer-state 6 @@ -7128,7 +7689,11 @@ :trans (new 'static 'vector :x 4475576.5 :y 101718.42 :z 4479149.5 :w 1.0) :quat (new 'static 'vector :y 0.8623 :w -0.5063) :camera-trans (new 'static 'vector :x 4442404.5 :y 121393.15 :z 4447620.5 :w 1.0) - :camera-rot (new 'static 'array float 9 0.7124 0.0 -0.7017 0.1039 0.9889 0.1055 0.6939 -0.1481 0.7046) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.7124 0.0 -0.7017)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.1039 0.9889 0.1055)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.6939 -0.1481 0.7046)) + ) :on-goto #f :vis-nick 'ctyinda :want (new 'static 'inline-array level-buffer-state 6 @@ -7148,7 +7713,11 @@ :trans (new 'static 'vector :x 4069240.5 :y 32741.785 :z 4647774.5 :w 1.0) :quat (new 'static 'vector :x 0.0001 :y -0.6735 :w -0.7391) :camera-trans (new 'static 'vector :x 4019418.0 :y 53836.188 :z 4635805.5 :w 1.0) - :camera-rot (new 'static 'array float 9 0.2316 0.0 -0.9727 0.1175 0.9926 0.028 0.9656 -0.1208 0.2299) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.2316 0.0 -0.9727)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.1175 0.9926 0.028)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.9656 -0.1208 0.2299)) + ) :on-goto #f :vis-nick 'ctyinda :want (new 'static 'inline-array level-buffer-state 6 @@ -7167,7 +7736,11 @@ :trans (new 'static 'vector :x 3183906.5 :y 32741.785 :z 3551941.5 :w 1.0) :quat (new 'static 'vector :y -0.6714 :z -0.0001 :w 0.741) :camera-trans (new 'static 'vector :x 3226667.0 :y 53836.188 :z 3546805.5 :w 1.0) - :camera-rot (new 'static 'array float 9 0.1191 0.0 0.9928 -0.1734 0.9846 0.0208 -0.9776 -0.1746 0.1173) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.1191 0.0 0.9928)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.1734 0.9846 0.0208)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.9776 -0.1746 0.1173)) + ) :on-goto #f :vis-nick 'ctyinda :want (new 'static 'inline-array level-buffer-state 6 @@ -7187,7 +7760,11 @@ :trans (new 'static 'vector :x 3184090.0 :y 34360.934 :z 3365469.8 :w 1.0) :quat (new 'static 'vector :y -0.9999 :w -0.0007) :camera-trans (new 'static 'vector :x 3190731.2 :y 55454.926 :z 3416230.2 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.9917 0.0 0.1283 -0.0156 0.9925 -0.1207 -0.1274 -0.1217 -0.9843) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.9917 0.0 0.1283)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.0156 0.9925 -0.1207)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.1274 -0.1217 -0.9843)) + ) :on-goto #f :vis-nick 'ctyinda :want (new 'static 'inline-array level-buffer-state 6 @@ -7239,7 +7816,6 @@ ) ) -;; definition for symbol consite, type level-load-info (define consite (new 'static 'level-load-info :index 71 @@ -7265,7 +7841,11 @@ :trans (new 'static 'vector :x 2858555.0 :y 19556.352 :z 3729141.8 :w 1.0) :quat (new 'static 'vector :y -0.9948 :w 0.1013) :camera-trans (new 'static 'vector :x 2838449.2 :y 40298.086 :z 3684069.0 :w 1.0) - :camera-rot (new 'static 'array float 9 0.9058 0.0 -0.4235 0.061 0.9895 0.1306 0.419 -0.1442 0.8964) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.9058 0.0 -0.4235)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.061 0.9895 0.1306)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.419 -0.1442 0.8964)) + ) :on-goto #f :vis-nick 'consite :want (new 'static 'inline-array level-buffer-state 6 @@ -7284,7 +7864,11 @@ :trans (new 'static 'vector :x 2856634.2 :y -21184.102 :z 3609188.2 :w 1.0) :quat (new 'static 'vector :y 0.1138 :w 0.9934) :camera-trans (new 'static 'vector :x 2852975.8 :y -113.0496 :z 3558113.2 :w 1.0) - :camera-rot (new 'static 'array float 9 0.9974 0.0 -0.0715 0.0086 0.9927 0.1199 0.071 -0.1202 0.9901) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.9974 0.0 -0.0715)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.0086 0.9927 0.1199)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.071 -0.1202 0.9901)) + ) :on-goto #f :vis-nick 'consiteb :want (new 'static 'inline-array level-buffer-state 6 @@ -7336,7 +7920,6 @@ ) ) -;; definition for symbol consiteb, type level-load-info (define consiteb (new 'static 'level-load-info :index 72 @@ -7360,7 +7943,11 @@ :trans (new 'static 'vector :x 3066312.0 :y 32770.047 :z 3563767.5 :w 1.0) :quat (new 'static 'vector :y 0.3085 :w -0.9511) :camera-trans (new 'static 'vector :x 3076502.8 :y 46825.883 :z 3541120.2 :w 1.0) - :camera-rot (new 'static 'array float 9 0.9122 0.0 0.4095 -0.1046 0.9668 0.233 -0.3959 -0.2554 0.882) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.9122 0.0 0.4095)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.1046 0.9668 0.233)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.3959 -0.2554 0.882)) + ) :on-goto #f :vis-nick 'consiteb :want (new 'static 'inline-array level-buffer-state 6 @@ -7411,7 +7998,6 @@ ) ) -;; definition for symbol ctyindb, type level-load-info (define ctyindb (new 'static 'level-load-info :index 73 @@ -7436,7 +8022,11 @@ :trans (new 'static 'vector :x 3978918.2 :y 32761.447 :z 2236849.8 :w 1.0) :quat (new 'static 'vector :y 0.9493 :w 0.3141) :camera-trans (new 'static 'vector :x 3946840.5 :y 52216.22 :z 2267846.2 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.6944 0.0 -0.7195 0.0953 0.9911 -0.092 0.7132 -0.1325 -0.6883) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.6944 0.0 -0.7195)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.0953 0.9911 -0.092)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.7132 -0.1325 -0.6883)) + ) :on-goto #f :vis-nick 'ctyindb :want (new 'static 'inline-array level-buffer-state 6 @@ -7456,7 +8046,11 @@ :trans (new 'static 'vector :x 3978918.2 :y 32761.447 :z 2236849.8 :w 1.0) :quat (new 'static 'vector :y 0.9493 :w 0.3141) :camera-trans (new 'static 'vector :x 3946840.5 :y 52216.22 :z 2267846.2 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.6944 0.0 -0.7195 0.0953 0.9911 -0.092 0.7132 -0.1325 -0.6883) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.6944 0.0 -0.7195)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.0953 0.9911 -0.092)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.7132 -0.1325 -0.6883)) + ) :on-goto #f :vis-nick 'ctyindb :want (new 'static 'inline-array level-buffer-state 6 @@ -7476,7 +8070,11 @@ :trans (new 'static 'vector :x 3214073.5 :y 32741.785 :z 2913456.2 :w 1.0) :quat (new 'static 'vector :y -0.535 :w 0.8448) :camera-trans (new 'static 'vector :x 3260565.0 :y 52803.176 :z 2904624.0 :w 1.0) - :camera-rot (new 'static 'array float 9 0.1846 0.0 0.9828 -0.118 0.9927 0.0221 -0.9756 -0.1201 0.1833) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.1846 0.0 0.9828)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.118 0.9927 0.0221)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.9756 -0.1201 0.1833)) + ) :on-goto #f :vis-nick 'ctyindb :want (new 'static 'inline-array level-buffer-state 6 @@ -7528,7 +8126,6 @@ ) ) -;; definition for symbol ctymarka, type level-load-info (define ctymarka (new 'static 'level-load-info :index 74 @@ -7555,7 +8152,11 @@ :trans (new 'static 'vector :x -439072.34 :y 32768.0 :z 1956770.6 :w 1.0) :quat (new 'static 'vector :y -0.1582 :w 0.9874) :camera-trans (new 'static 'vector :x -396247.84 :y 53861.992 :z 1952489.9 :w 1.0) - :camera-rot (new 'static 'array float 9 0.1584 0.0 0.9873 -0.1741 0.9843 0.0279 -0.9718 -0.1763 0.1559) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.1584 0.0 0.9873)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.1741 0.9843 0.0279)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.9718 -0.1763 0.1559)) + ) :on-goto #f :vis-nick 'ctymarka :want (new 'static 'inline-array level-buffer-state 6 @@ -7575,7 +8176,11 @@ :trans (new 'static 'vector :x -730452.8 :y 32765.543 :z 3454441.5 :w 1.0) :quat (new 'static 'vector :x -0.001 :y -0.0118 :z -0.0009 :w 0.9999) :camera-trans (new 'static 'vector :x -727241.94 :y 53859.94 :z 3403332.8 :w 1.0) - :camera-rot (new 'static 'array float 9 0.998 0.0 0.0631 -0.0076 0.9926 0.1208 -0.0626 -0.121 0.9906) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.998 0.0 0.0631)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.0076 0.9926 0.1208)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.0626 -0.121 0.9906)) + ) :on-goto #f :vis-nick 'ctymarka :want (new 'static 'inline-array level-buffer-state 6 @@ -7627,7 +8232,6 @@ ) ) -;; definition for symbol ctymarkb, type level-load-info (define ctymarkb (new 'static 'level-load-info :index 75 @@ -7654,7 +8258,11 @@ :trans (new 'static 'vector :x 2147489.0 :y 34444.902 :z 1948003.1 :w 1.0) :quat (new 'static 'vector :y 0.2325 :w -0.9725) :camera-trans (new 'static 'vector :x 2176129.5 :y 55539.3 :z 1905562.0 :w 1.0) - :camera-rot (new 'static 'array float 9 0.8282 0.0 0.5603 -0.068 0.9925 0.1006 -0.5561 -0.1215 0.8221) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.8282 0.0 0.5603)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.068 0.9925 0.1006)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.5561 -0.1215 0.8221)) + ) :on-goto #f :vis-nick 'ctymarkb :want (new 'static 'inline-array level-buffer-state 6 @@ -7674,7 +8282,11 @@ :trans (new 'static 'vector :x 1931610.1 :y 34406.4 :z 1769602.6 :w 1.0) :quat (new 'static 'vector :y -0.3655 :w 0.9307) :camera-trans (new 'static 'vector :x 1956000.1 :y 53861.992 :z 1734111.2 :w 1.0) - :camera-rot (new 'static 'array float 9 0.8208 0.0 0.5711 -0.1001 0.9844 0.1439 -0.5622 -0.1754 0.8081) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.8208 0.0 0.5711)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.1001 0.9844 0.1439)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.5622 -0.1754 0.8081)) + ) :on-goto #f :vis-nick 'ctymarkb :want (new 'static 'inline-array level-buffer-state 6 @@ -7694,7 +8306,11 @@ :trans (new 'static 'vector :x 2977968.2 :y 34444.902 :z 2160323.0 :w 1.0) :quat (new 'static 'vector :y -0.1398 :w -0.9901) :camera-trans (new 'static 'vector :x 2964785.5 :y 54040.574 :z 2116632.2 :w 1.0) - :camera-rot (new 'static 'array float 9 0.9589 0.0 -0.2835 0.0361 0.9918 0.122 0.2812 -0.1273 0.9511) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.9589 0.0 -0.2835)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.0361 0.9918 0.122)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.2812 -0.1273 0.9511)) + ) :on-goto #f :vis-nick 'ctymarkb :want (new 'static 'inline-array level-buffer-state 6 @@ -7714,7 +8330,11 @@ :trans (new 'static 'vector :x 2575240.5 :y 34444.902 :z 3103047.2 :w 1.0) :quat (new 'static 'vector :y 0.0787 :w 0.9968) :camera-trans (new 'static 'vector :x 2563072.0 :y 54984.293 :z 3055447.2 :w 1.0) - :camera-rot (new 'static 'array float 9 0.9676 0.0 -0.2522 0.0305 0.9926 0.1173 0.2503 -0.1212 0.9605) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.9676 0.0 -0.2522)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.0305 0.9926 0.1173)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.2503 -0.1212 0.9605)) + ) :on-goto #f :vis-nick 'ctymarkb :want (new 'static 'inline-array level-buffer-state 6 @@ -7766,7 +8386,6 @@ ) ) -;; definition for symbol ctypal, type level-load-info (define ctypal (new 'static 'level-load-info :index 76 @@ -7791,7 +8410,11 @@ :trans (new 'static 'vector :x 783051.2 :y 32758.58 :z 3168950.8 :w 1.0) :quat (new 'static 'vector :y 0.9998 :w 0.0183) :camera-trans (new 'static 'vector :x 779300.06 :y 53952.51 :z 3220006.0 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.9973 0.0 -0.0732 0.009 0.9922 -0.1236 0.0726 -0.124 -0.9896) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.9973 0.0 -0.0732)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.009 0.9922 -0.1236)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.0726 -0.124 -0.9896)) + ) :on-goto '(when (task-closed? "palace-sneak-in-door") (task-close! "palace-sneak-in-resolution") ) @@ -7812,7 +8435,11 @@ :trans (new 'static 'vector :x 785581.7 :y 32768.0 :z 3718206.8 :w 1.0) :quat (new 'static 'vector :y -0.2525 :w 0.9675) :camera-trans (new 'static 'vector :x 788226.06 :y 53861.992 :z 3667072.5 :w 1.0) - :camera-rot (new 'static 'array float 9 0.9985 0.0 0.054 -0.0065 0.9926 0.1209 -0.0536 -0.1211 0.9911) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.9985 0.0 0.054)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.0065 0.9926 0.1209)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.0536 -0.1211 0.9911)) + ) :on-goto #f :vis-nick 'ctypal :want (new 'static 'inline-array level-buffer-state 6 @@ -7832,7 +8459,11 @@ :trans (new 'static 'vector :x 377386.6 :y 65546.65 :z 1834825.8 :w 1.0) :quat (new 'static 'vector :y -0.0469 :w 0.9988) :camera-trans (new 'static 'vector :x 372478.38 :y 86293.71 :z 1785120.0 :w 1.0) - :camera-rot (new 'static 'array float 9 0.9952 0.0 -0.0968 0.0116 0.9927 0.1197 0.0961 -0.1203 0.988) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.9952 0.0 -0.0968)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.0116 0.9927 0.1197)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.0961 -0.1203 0.988)) + ) :on-goto #f :vis-nick 'ctypal :want (new 'static 'inline-array level-buffer-state 6 @@ -7852,7 +8483,11 @@ :trans (new 'static 'vector :x 1236813.0 :y 32766.361 :z 3622210.2 :w 1.0) :quat (new 'static 'vector :y 0.7451 :w 0.6668) :camera-trans (new 'static 'vector :x 1185874.8 :y 53860.76 :z 3627872.8 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.1102 0.0 -0.9939 0.1199 0.9926 -0.0133 0.9866 -0.1206 -0.1094) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.1102 0.0 -0.9939)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.1199 0.9926 -0.0133)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.9866 -0.1206 -0.1094)) + ) :on-goto #f :vis-nick 'ctypal :want (new 'static 'inline-array level-buffer-state 6 @@ -7904,7 +8539,6 @@ ) ) -;; definition for symbol stadium, type level-load-info (define stadium (new 'static 'level-load-info :index 77 @@ -7929,7 +8563,11 @@ :trans (new 'static 'vector :x 1221186.4 :y -16384.0 :z -1861414.1 :w 1.0) :quat (new 'static 'vector :y -0.806 :w 0.5918) :camera-trans (new 'static 'vector :x 1270103.6 :y 4613.7344 :z -1847696.6 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.27 0.0 0.9628 -0.1178 0.9924 -0.033 -0.9556 -0.1224 -0.2679) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.27 0.0 0.9628)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.1178 0.9924 -0.033)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.9556 -0.1224 -0.2679)) + ) :on-goto #f :vis-nick 'stadium :want (new 'static 'inline-array level-buffer-state 6 @@ -7949,7 +8587,11 @@ :trans (new 'static 'vector :x 1391598.4 :y 32767.59 :z -3062397.8 :w 1.0) :quat (new 'static 'vector :x -0.0002 :y 0.6685 :z -0.0001 :w -0.7436) :camera-trans (new 'static 'vector :x 1390407.6 :y 52200.242 :z -3017585.5 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.9956 0.0 0.093 -0.0123 0.9911 -0.1324 -0.0922 -0.133 -0.9868) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.9956 0.0 0.093)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.0123 0.9911 -0.1324)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.0922 -0.133 -0.9868)) + ) :on-goto #f :vis-nick 'stadium :want (new 'static 'inline-array level-buffer-state 6 @@ -7969,7 +8611,11 @@ :trans (new 'static 'vector :x 572500.4 :y 49152.0 :z -2737227.0 :w 1.0) :quat (new 'static 'vector :y 0.4807 :z -0.0014 :w 0.8768) :camera-trans (new 'static 'vector :x 603791.75 :y 69309.234 :z -2701270.8 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.7787 0.0 0.6273 -0.0932 0.9888 -0.1157 -0.6204 -0.1486 -0.77) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.7787 0.0 0.6273)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.0932 0.9888 -0.1157)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.6204 -0.1486 -0.77)) + ) :on-goto #f :vis-nick 'stadium :want (new 'static 'inline-array level-buffer-state 6 @@ -7989,7 +8635,11 @@ :trans (new 'static 'vector :x 1139318.8 :y -16393.83 :z -2717514.5 :w 1.0) :quat (new 'static 'vector :y 0.9647 :w -0.263) :camera-trans (new 'static 'vector :x 1140867.5 :y 4700.16 :z -2666331.2 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.9995 0.0 0.0315 -0.0038 0.9926 -0.1207 -0.0313 -0.1208 -0.9921) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.9995 0.0 0.0315)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.0038 0.9926 -0.1207)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.0313 -0.1208 -0.9921)) + ) :on-goto #f :vis-nick 'stadium :want (new 'static 'inline-array level-buffer-state 6 @@ -8009,7 +8659,11 @@ :trans (new 'static 'vector :x 1172569.2 :y -16393.83 :z -2875689.0 :w 1.0) :quat (new 'static 'vector :y 0.1113 :w -0.9937) :camera-trans (new 'static 'vector :x 1203939.4 :y 4689.92 :z -2916101.8 :w 1.0) - :camera-rot (new 'static 'array float 9 0.7905 0.0 0.6124 -0.074 0.9926 0.0955 -0.6079 -0.1208 0.7847) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.7905 0.0 0.6124)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.074 0.9926 0.0955)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.6079 -0.1208 0.7847)) + ) :on-goto #f :vis-nick 'stadium :want (new 'static 'inline-array level-buffer-state 6 @@ -8060,7 +8714,6 @@ ) ) -;; definition for symbol stadiumb, type level-load-info (define stadiumb (new 'static 'level-load-info :index 78 @@ -8086,7 +8739,11 @@ :trans (new 'static 'vector :x 139325.44 :y 34127.87 :z -2636048.5 :w 1.0) :quat (new 'static 'vector :y -0.2687 :w -0.9632) :camera-trans (new 'static 'vector :x 105139.81 :y 54302.72 :z -2669469.0 :w 1.0) - :camera-rot (new 'static 'array float 9 0.7004 0.0 -0.7137 0.0855 0.9927 0.0839 0.7085 -0.1199 0.6953) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.7004 0.0 -0.7137)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.0855 0.9927 0.0839)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.7085 -0.1199 0.6953)) + ) :on-goto #f :vis-nick 'stadiumb :want (new 'static 'inline-array level-buffer-state 6 @@ -8106,7 +8763,11 @@ :trans (new 'static 'vector :x 296361.56 :y 47104.0 :z -2499580.2 :w 1.0) :quat (new 'static 'vector :y 0.4434 :w -0.8962) :camera-trans (new 'static 'vector :x 336107.94 :y 68197.99 :z -2531864.5 :w 1.0) - :camera-rot (new 'static 'array float 9 0.6311 0.0 0.7756 -0.095 0.9924 0.0773 -0.7697 -0.1225 0.6264) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.6311 0.0 0.7756)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.095 0.9924 0.0773)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.7697 -0.1225 0.6264)) + ) :on-goto #f :vis-nick 'stadiumb :want (new 'static 'inline-array level-buffer-state 6 @@ -8126,7 +8787,11 @@ :trans (new 'static 'vector :x 232675.73 :y -10616.832 :z -2443733.5 :w 1.0) :quat (new 'static 'vector :y 0.3456 :w 0.9383) :camera-trans (new 'static 'vector :x 217686.02 :y 1695.744 :z -2461328.2 :w 1.0) - :camera-rot (new 'static 'array float 9 0.761 0.0 -0.6486 0.1541 0.9713 0.1808 0.6301 -0.2376 0.7392) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.761 0.0 -0.6486)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.1541 0.9713 0.1808)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.6301 -0.2376 0.7392)) + ) :on-goto #f :vis-nick 'stadiumb :want (new 'static 'inline-array level-buffer-state 6 @@ -8146,7 +8811,11 @@ :trans (new 'static 'vector :x 284379.97 :y -14743.143 :z -2426257.5 :w 1.0) :quat (new 'static 'vector :y 0.9385 :w -0.345) :camera-trans (new 'static 'vector :x 303667.2 :y -2424.0127 :z -2403514.0 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.7628 0.0 0.6466 -0.0851 0.9912 -0.1005 -0.6409 -0.1317 -0.7561) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.7628 0.0 0.6466)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.0851 0.9912 -0.1005)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.6409 -0.1317 -0.7561)) + ) :on-goto #f :vis-nick 'stadiumb :want (new 'static 'inline-array level-buffer-state 6 @@ -8166,7 +8835,11 @@ :trans (new 'static 'vector :x -192482.52 :y -124127.234 :z -1315588.5 :w 1.0) :quat (new 'static 'vector :x 0.0395 :y -0.9955 :z -0.0827 :w 0.0227) :camera-trans (new 'static 'vector :x -191463.02 :y -115947.11 :z -1293051.5 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.9989 0.0 0.0456 -0.0139 0.9523 -0.3047 -0.0434 -0.3051 -0.9513) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.9989 0.0 0.0456)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.0139 0.9523 -0.3047)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.0434 -0.3051 -0.9513)) + ) :on-goto #f :vis-nick 'stadiumb :want (new 'static 'inline-array level-buffer-state 6 @@ -8216,7 +8889,6 @@ ) ) -;; definition for symbol stadiumc, type level-load-info (define stadiumc (new 'static 'level-load-info :index 79 @@ -8242,7 +8914,11 @@ :trans (new 'static 'vector :x 139325.44 :y 34127.87 :z -2636048.5 :w 1.0) :quat (new 'static 'vector :y -0.2687 :w -0.9632) :camera-trans (new 'static 'vector :x 105139.81 :y 54302.72 :z -2669469.0 :w 1.0) - :camera-rot (new 'static 'array float 9 0.7004 0.0 -0.7137 0.0855 0.9927 0.0839 0.7085 -0.1199 0.6953) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.7004 0.0 -0.7137)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.0855 0.9927 0.0839)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.7085 -0.1199 0.6953)) + ) :on-goto #f :vis-nick 'stadiumc :want (new 'static 'inline-array level-buffer-state 6 @@ -8262,7 +8938,11 @@ :trans (new 'static 'vector :x -337180.7 :y -24649.318 :z -2695884.5 :w 1.0) :quat (new 'static 'vector :y 0.7066 :w 0.7075) :camera-trans (new 'static 'vector :x -386829.94 :y -12293.734 :z -2695941.0 :w 1.0) - :camera-rot (new 'static 'array float 9 0.0012 0.0 -0.9999 0.0283 0.9995 0.0 0.9995 -0.0283 0.0012) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.0012 0.0 -0.9999)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.0283 0.9995 0.0)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.9995 -0.0283 0.0012)) + ) :on-goto #f :vis-nick 'stadiumc :want (new 'static 'inline-array level-buffer-state 6 @@ -8282,7 +8962,11 @@ :trans (new 'static 'vector :x -337180.7 :y -24649.318 :z -2695884.5 :w 1.0) :quat (new 'static 'vector :y 0.7066 :w 0.7075) :camera-trans (new 'static 'vector :x -386829.94 :y -12293.734 :z -2695941.0 :w 1.0) - :camera-rot (new 'static 'array float 9 0.0012 0.0 -0.9999 0.0283 0.9995 0.0 0.9995 -0.0283 0.0012) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.0012 0.0 -0.9999)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.0283 0.9995 0.0)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.9995 -0.0283 0.0012)) + ) :on-goto #f :vis-nick 'stadiumc :want (new 'static 'inline-array level-buffer-state 6 @@ -8302,7 +8986,11 @@ :trans (new 'static 'vector :x -261450.55 :y -28719.924 :z -2723475.5 :w 1.0) :quat (new 'static 'vector :y -0.6995 :w 0.7146) :camera-trans (new 'static 'vector :x -210261.61 :y -16378.266 :z -2724553.0 :w 1.0) - :camera-rot (new 'static 'array float 9 0.02 0.0 0.9997 -0.0247 0.9996 0.0004 -0.9994 -0.0247 0.02) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.02 0.0 0.9997)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.0247 0.9996 0.0004)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.9994 -0.0247 0.02)) + ) :on-goto #f :vis-nick 'stadiumc :want (new 'static 'inline-array level-buffer-state 6 @@ -8322,7 +9010,11 @@ :trans (new 'static 'vector :x -350173.2 :y 47088.027 :z -2750787.2 :w 1.0) :quat (new 'static 'vector :y 0.227 :w -0.9738) :camera-trans (new 'static 'vector :x -350950.6 :y 68182.42 :z -2801975.2 :w 1.0) - :camera-rot (new 'static 'array float 9 0.9999 0.0 -0.0137 0.0016 0.9926 0.1208 0.0136 -0.1208 0.9925) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.9999 0.0 -0.0137)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.0016 0.9926 0.1208)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.0136 -0.1208 0.9925)) + ) :on-goto #f :vis-nick 'stadiumc :want (new 'static 'inline-array level-buffer-state 6 @@ -8342,7 +9034,11 @@ :trans (new 'static 'vector :x 70463.484 :y -171052.64 :z -2836438.8 :w 1.0) :quat (new 'static 'vector :x 0.0448 :y 0.2377 :z -0.0047 :w -0.9702) :camera-trans (new 'static 'vector :x 80398.336 :y -160836.4 :z -2856782.2 :w 1.0) - :camera-rot (new 'static 'array float 9 0.8986 0.0 0.4386 -0.1336 0.9524 0.2737 -0.4177 -0.3046 0.8559) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.8986 0.0 0.4386)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.1336 0.9524 0.2737)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.4177 -0.3046 0.8559)) + ) :on-goto #f :vis-nick 'stadium :want (new 'static 'inline-array level-buffer-state 6 @@ -8392,7 +9088,6 @@ ) ) -;; definition for symbol stadiumd, type level-load-info (define stadiumd (new 'static 'level-load-info :index 80 @@ -8418,7 +9113,11 @@ :trans (new 'static 'vector :x 139325.44 :y 34127.87 :z -2636048.5 :w 1.0) :quat (new 'static 'vector :y -0.2687 :w -0.9632) :camera-trans (new 'static 'vector :x 105139.81 :y 54302.72 :z -2669469.0 :w 1.0) - :camera-rot (new 'static 'array float 9 0.7004 0.0 -0.7137 0.0855 0.9927 0.0839 0.7085 -0.1199 0.6953) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.7004 0.0 -0.7137)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.0855 0.9927 0.0839)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.7085 -0.1199 0.6953)) + ) :on-goto #f :vis-nick 'stadiumd :want (new 'static 'inline-array level-buffer-state 6 @@ -8438,7 +9137,11 @@ :trans (new 'static 'vector :x 79271.12 :y 47103.59 :z -2669285.5 :w 1.0) :quat (new 'static 'vector :y -0.1495 :w 0.9887) :camera-trans (new 'static 'vector :x 103847.94 :y 67127.3 :z -2709570.0 :w 1.0) - :camera-rot (new 'static 'array float 9 0.8523 0.0 0.5229 -0.064 0.9924 0.1043 -0.5189 -0.1224 0.8459) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.8523 0.0 0.5229)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.064 0.9924 0.1043)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.5189 -0.1224 0.8459)) + ) :on-goto #f :vis-nick 'stadiumd :want (new 'static 'inline-array level-buffer-state 6 @@ -8458,7 +9161,11 @@ :trans (new 'static 'vector :x 18072.781 :y -19255.297 :z -2648879.0 :w 1.0) :quat (new 'static 'vector :y 0.5232 :w 0.8521) :camera-trans (new 'static 'vector :x -27583.283 :y -6946.4062 :z -2672047.8 :w 1.0) - :camera-rot (new 'static 'array float 9 0.4523 0.0 -0.8918 0.0222 0.9996 0.0112 0.8915 -0.0249 0.4521) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.4523 0.0 -0.8918)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.0222 0.9996 0.0112)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.8915 -0.0249 0.4521)) + ) :on-goto #f :vis-nick 'stadiumd :want (new 'static 'inline-array level-buffer-state 6 @@ -8478,7 +9185,11 @@ :trans (new 'static 'vector :x 96944.54 :y -23309.518 :z -2578265.0 :w 1.0) :quat (new 'static 'vector :y -0.8521 :w 0.5232) :camera-trans (new 'static 'vector :x 125187.27 :y -11000.627 :z -2563945.8 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.4517 0.0 0.8921 -0.0971 0.994 -0.0492 -0.8868 -0.1089 -0.449) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.4517 0.0 0.8921)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.0971 0.994 -0.0492)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.8868 -0.1089 -0.449)) + ) :on-goto #f :vis-nick 'stadiumd :want (new 'static 'inline-array level-buffer-state 6 @@ -8498,7 +9209,11 @@ :trans (new 'static 'vector :x -1065634.2 :y -90913.18 :z -1832483.2 :w 1.0) :quat (new 'static 'vector :x 0.0316 :y -0.899 :z 0.0115 :w -0.4364) :camera-trans (new 'static 'vector :x -1082339.8 :y -78608.38 :z -1817219.9 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.675 0.0 -0.7377 0.226 0.9518 -0.2068 0.7022 -0.3064 -0.6426) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.675 0.0 -0.7377)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.226 0.9518 -0.2068)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.7022 -0.3064 -0.6426)) + ) :on-goto #f :vis-nick 'stadiumd :want (new 'static 'inline-array level-buffer-state 6 @@ -8548,7 +9263,6 @@ ) ) -;; definition for symbol skatea, type level-load-info (define skatea (new 'static 'level-load-info :index 81 @@ -8573,7 +9287,11 @@ :trans (new 'static 'vector :x 446888.75 :y -38911.59 :z -2322099.8 :w 1.0) :quat (new 'static 'vector :w 1.0) :camera-trans (new 'static 'vector :x 457174.22 :y -18563.072 :z -2274887.8 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.9705 0.0 0.2409 -0.0364 0.9885 -0.1466 -0.2381 -0.1511 -0.9593) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.9705 0.0 0.2409)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.0364 0.9885 -0.1466)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.2381 -0.1511 -0.9593)) + ) :on-goto #f :vis-nick 'skatea :want (new 'static 'inline-array level-buffer-state 6 @@ -8593,7 +9311,11 @@ :trans (new 'static 'vector :x 497077.44 :y -38912.41 :z -2587993.0 :w 1.0) :quat (new 'static 'vector :y -0.0379 :w -0.9992) :camera-trans (new 'static 'vector :x 494938.12 :y -18720.36 :z -2635767.8 :w 1.0) - :camera-rot (new 'static 'array float 9 0.9989 0.0 -0.0455 0.0054 0.9928 0.1195 0.0452 -0.1196 0.9917) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.9989 0.0 -0.0455)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.0054 0.9928 0.1195)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.0452 -0.1196 0.9917)) + ) :on-goto #f :vis-nick 'skatea :want (new 'static 'inline-array level-buffer-state 6 @@ -8612,7 +9334,11 @@ :trans (new 'static 'vector :x 233773.47 :y -55359.08 :z -2150226.0 :w 1.0) :quat (new 'static 'vector :y -0.6942 :w 0.7197) :camera-trans (new 'static 'vector :x 285005.0 :y -34259.76 :z -2150090.0 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.0026 0.0 0.9999 -0.1208 0.9926 -0.0003 -0.9926 -0.1208 -0.0026) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.0026 0.0 0.9999)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.1208 0.9926 -0.0003)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.9926 -0.1208 -0.0026)) + ) :on-goto #f :vis-nick 'skatea :want (new 'static 'inline-array level-buffer-state 6 @@ -8662,7 +9388,6 @@ ) ) -;; definition for symbol garage, type level-load-info (define garage (new 'static 'level-load-info :index 82 @@ -8687,7 +9412,11 @@ :trans (new 'static 'vector :x 362617.25 :y 49152.0 :z -1795099.5 :w 1.0) :quat (new 'static 'vector :y -0.4053 :w 0.9141) :camera-trans (new 'static 'vector :x 402171.1 :y 70245.99 :z -1812076.1 :w 1.0) - :camera-rot (new 'static 'array float 9 0.3942 0.0 0.919 -0.1608 0.9845 0.069 -0.9048 -0.175 0.3881) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.3942 0.0 0.919)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.1608 0.9845 0.069)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.9048 -0.175 0.3881)) + ) :on-goto #f :vis-nick 'garage :want (new 'static 'inline-array level-buffer-state 6 @@ -8707,7 +9436,11 @@ :trans (new 'static 'vector :x 433220.4 :y 49152.0 :z -1832372.2 :w 1.0) :quat (new 'static 'vector :y -0.9926 :w 0.1212) :camera-trans (new 'static 'vector :x 449114.53 :y 69541.07 :z -1870120.1 :w 1.0) - :camera-rot (new 'static 'array float 9 0.8912 0.0 0.4534 -0.084 0.9826 0.1652 -0.4455 -0.1854 0.8758) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.8912 0.0 0.4534)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.084 0.9826 0.1652)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.4455 -0.1854 0.8758)) + ) :on-goto #f :vis-nick 'garage :want (new 'static 'inline-array level-buffer-state 6 @@ -8727,7 +9460,11 @@ :trans (new 'static 'vector :x 433220.4 :y 49152.0 :z -1832372.2 :w 1.0) :quat (new 'static 'vector :y -0.9926 :w 0.1212) :camera-trans (new 'static 'vector :x 449114.53 :y 69541.07 :z -1870120.1 :w 1.0) - :camera-rot (new 'static 'array float 9 0.8912 0.0 0.4534 -0.084 0.9826 0.1652 -0.4455 -0.1854 0.8758) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.8912 0.0 0.4534)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.084 0.9826 0.1652)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.4455 -0.1854 0.8758)) + ) :on-goto #f :vis-nick 'garage :want (new 'static 'inline-array level-buffer-state 6 @@ -8778,7 +9515,6 @@ ) ) -;; definition for symbol stadblmp, type level-load-info (define stadblmp (new 'static 'level-load-info :index 83 :task-level #x2 @@ -8833,7 +9569,6 @@ ) ) -;; definition for symbol lwidesta, type level-load-info (define lwidesta (new 'static 'level-load-info :index 84 :task-level #x2 @@ -8890,7 +9625,6 @@ ) ) -;; definition for symbol lerrol, type level-load-info (define lerrol (new 'static 'level-load-info :index 85 :task-level #x2 @@ -8947,7 +9681,6 @@ ) ) -;; definition for symbol lkeirift, type level-load-info (define lkeirift (new 'static 'level-load-info :index 86 :task-level #x2 @@ -9004,7 +9737,6 @@ ) ) -;; definition for symbol lracelit, type level-load-info (define lracelit (new 'static 'level-load-info :index 87 :task-level #x2 @@ -9061,7 +9793,6 @@ ) ) -;; definition for symbol lracebb, type level-load-info (define lracebb (new 'static 'level-load-info :index 88 :task-level #x2 @@ -9118,7 +9849,6 @@ ) ) -;; definition for symbol lracebf, type level-load-info (define lracebf (new 'static 'level-load-info :index 89 :task-level #x2 @@ -9175,7 +9905,6 @@ ) ) -;; definition for symbol lracecb, type level-load-info (define lracecb (new 'static 'level-load-info :index 90 :task-level #x2 @@ -9232,7 +9961,6 @@ ) ) -;; definition for symbol lracecf, type level-load-info (define lracecf (new 'static 'level-load-info :index 91 :task-level #x2 @@ -9289,7 +10017,6 @@ ) ) -;; definition for symbol lracedb, type level-load-info (define lracedb (new 'static 'level-load-info :index 92 :task-level #x2 @@ -9346,7 +10073,6 @@ ) ) -;; definition for symbol lracedf, type level-load-info (define lracedf (new 'static 'level-load-info :index 93 :task-level #x2 @@ -9403,7 +10129,6 @@ ) ) -;; definition for symbol lgarcsta, type level-load-info (define lgarcsta (new 'static 'level-load-info :index 94 :task-level #x1 @@ -9459,7 +10184,6 @@ ) ) -;; definition for symbol lsamergd, type level-load-info (define lsamergd (new 'static 'level-load-info :index 95 :task-level #x1 @@ -9515,7 +10239,6 @@ ) ) -;; definition for symbol lerbrngd, type level-load-info (define lerbrngd (new 'static 'level-load-info :index 96 :task-level #x1 @@ -9571,7 +10294,6 @@ ) ) -;; definition for symbol lsmysbrt, type level-load-info (define lsmysbrt (new 'static 'level-load-info :index 97 :task-level #x1 @@ -9627,7 +10349,6 @@ ) ) -;; definition for symbol lashgrd, type level-load-info (define lashgrd (new 'static 'level-load-info :index 98 :task-level #x1 @@ -9683,7 +10404,6 @@ ) ) -;; definition for symbol onintent, type level-load-info (define onintent (new 'static 'level-load-info :index 99 @@ -9708,7 +10428,11 @@ :trans (new 'static 'vector :x 2918937.5 :y 34444.902 :z 3093502.2 :w 1.0) :quat (new 'static 'vector :y -0.9989 :w 0.0465) :camera-trans (new 'static 'vector :x 2921813.5 :y 55538.484 :z 3144613.5 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.9984 0.0 0.0554 -0.0067 0.9925 -0.1217 -0.055 -0.1219 -0.991) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.9984 0.0 0.0554)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.0067 0.9925 -0.1217)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.055 -0.1219 -0.991)) + ) :on-goto #f :vis-nick 'ctymarkb :want (new 'static 'inline-array level-buffer-state 6 @@ -9759,7 +10483,6 @@ ) ) -;; definition for symbol ltentout, type level-load-info (define ltentout (new 'static 'level-load-info :index 100 :task-level #x1 @@ -9816,7 +10539,6 @@ ) ) -;; definition for symbol ltentob, type level-load-info (define ltentob (new 'static 'level-load-info :index #x65 :task-level #x1 @@ -9873,7 +10595,6 @@ ) ) -;; definition for symbol kiosk, type level-load-info (define kiosk (new 'static 'level-load-info :index #x66 @@ -9897,7 +10618,11 @@ :trans (new 'static 'vector :x -439072.34 :y 32768.0 :z 1956770.6 :w 1.0) :quat (new 'static 'vector :y -0.1582 :w 0.9874) :camera-trans (new 'static 'vector :x -396247.84 :y 53861.992 :z 1952489.9 :w 1.0) - :camera-rot (new 'static 'array float 9 0.1584 0.0 0.9873 -0.1741 0.9843 0.0279 -0.9718 -0.1763 0.1559) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.1584 0.0 0.9873)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.1741 0.9843 0.0279)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.9718 -0.1763 0.1559)) + ) :on-goto #f :vis-nick 'kiosk :want (new 'static 'inline-array level-buffer-state 6 @@ -9948,7 +10673,6 @@ ) ) -;; definition for symbol oracle, type level-load-info (define oracle (new 'static 'level-load-info :index #x67 @@ -9973,7 +10697,11 @@ :trans (new 'static 'vector :x 2893301.2 :y 24565.35 :z -1878591.9 :w 1.0) :quat (new 'static 'vector :y -0.1552 :w -0.9878) :camera-trans (new 'static 'vector :x 2885879.0 :y 45466.83 :z -1928682.8 :w 1.0) - :camera-rot (new 'static 'array float 9 0.9891 0.0 -0.1466 0.0175 0.9927 0.1185 0.1455 -0.1198 0.982) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.9891 0.0 -0.1466)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.0175 0.9927 0.1185)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.1455 -0.1198 0.982)) + ) :on-goto #f :vis-nick 'oracle :want (new 'static 'inline-array level-buffer-state 6 @@ -10023,7 +10751,6 @@ ) ) -;; definition for symbol hideout, type level-load-info (define hideout (new 'static 'level-load-info :index #x68 @@ -10047,7 +10774,11 @@ :trans (new 'static 'vector :x 4880597.0 :y 15103.181 :z 244580.77 :w 1.0) :quat (new 'static 'vector :y 0.7269 :w 0.6866) :camera-trans (new 'static 'vector :x 4842975.5 :y 32609.484 :z 244427.98 :w 1.0) - :camera-rot (new 'static 'array float 9 0.0036 0.0 -0.9999 0.161 0.9869 0.0005 0.9869 -0.161 0.0036) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.0036 0.0 -0.9999)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.161 0.9869 0.0005)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.9869 -0.161 0.0036)) + ) :on-goto #f :vis-nick 'hideout :want (new 'static 'inline-array level-buffer-state 6 @@ -10067,7 +10798,11 @@ :trans (new 'static 'vector :x 4880597.0 :y 15103.181 :z 244580.77 :w 1.0) :quat (new 'static 'vector :y 0.7269 :w 0.6866) :camera-trans (new 'static 'vector :x 4842975.5 :y 32609.484 :z 244427.98 :w 1.0) - :camera-rot (new 'static 'array float 9 0.0036 0.0 -0.9999 0.161 0.9869 0.0005 0.9869 -0.161 0.0036) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.0036 0.0 -0.9999)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.161 0.9869 0.0005)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.9869 -0.161 0.0036)) + ) :on-goto #f :vis-nick 'hideout :want (new 'static 'inline-array level-buffer-state 6 @@ -10118,7 +10853,6 @@ ) ) -;; definition for symbol ltrntess, type level-load-info (define ltrntess (new 'static 'level-load-info :index #x69 :task-level #x1 @@ -10173,7 +10907,6 @@ ) ) -;; definition for symbol ltrnkrkd, type level-load-info (define ltrnkrkd (new 'static 'level-load-info :index #x6a :task-level #x1 @@ -10229,7 +10962,6 @@ ) ) -;; definition for symbol ltrnysam, type level-load-info (define ltrnysam (new 'static 'level-load-info :index #x6b :task-level #x1 @@ -10285,7 +11017,6 @@ ) ) -;; definition for symbol lysamsam, type level-load-info (define lysamsam (new 'static 'level-load-info :index #x6c :task-level #x1 @@ -10341,7 +11072,6 @@ ) ) -;; definition for symbol lyskdcd, type level-load-info (define lyskdcd (new 'static 'level-load-info :index #x6d :task-level #x1 @@ -10396,7 +11126,6 @@ ) ) -;; definition for symbol lkiddoge, type level-load-info (define lkiddoge (new 'static 'level-load-info :index #x6e :task-level #x1 @@ -10452,7 +11181,6 @@ ) ) -;; definition for symbol lhelldog, type level-load-info (define lhelldog (new 'static 'level-load-info :index #x6f :task-level #x1 @@ -10508,7 +11236,6 @@ ) ) -;; definition for symbol lpackage, type level-load-info (define lpackage (new 'static 'level-load-info :index #x70 :task-level #x1 @@ -10564,7 +11291,6 @@ ) ) -;; definition for symbol lsack, type level-load-info (define lsack (new 'static 'level-load-info :index #x71 :task-level #x1 @@ -10620,7 +11346,6 @@ ) ) -;; definition for symbol lportrun, type level-load-info (define lportrun (new 'static 'level-load-info :index #x72 :task-level #x1 @@ -10676,7 +11401,6 @@ ) ) -;; definition for symbol lshuttle, type level-load-info (define lshuttle (new 'static 'level-load-info :index #x73 :task-level #x1 @@ -10732,7 +11456,6 @@ ) ) -;; definition for symbol lmeetbrt, type level-load-info (define lmeetbrt (new 'static 'level-load-info :index #x74 :task-level #x1 @@ -10788,7 +11511,6 @@ ) ) -;; definition for symbol lpower, type level-load-info (define lpower (new 'static 'level-load-info :index #x75 :task-level #x1 @@ -10844,7 +11566,6 @@ ) ) -;; definition for symbol lerlchal, type level-load-info (define lerlchal (new 'static 'level-load-info :index #x76 :task-level #x1 @@ -10900,7 +11621,6 @@ ) ) -;; definition for symbol lprtrace, type level-load-info (define lprtrace (new 'static 'level-load-info :index #x77 :task-level #x1 @@ -10956,7 +11676,6 @@ ) ) -;; definition for symbol lbombbot, type level-load-info (define lbombbot (new 'static 'level-load-info :index #x78 :task-level #x1 @@ -11012,7 +11731,6 @@ ) ) -;; definition for symbol lbbush, type level-load-info (define lbbush (new 'static 'level-load-info :index #x79 :task-level #x1 @@ -11068,7 +11786,6 @@ ) ) -;; definition for symbol lprotect, type level-load-info (define lprotect (new 'static 'level-load-info :index #x7a :task-level #x1 @@ -11124,7 +11841,6 @@ ) ) -;; definition for symbol hiphog, type level-load-info (define hiphog (new 'static 'level-load-info :index #x7b @@ -11148,7 +11864,11 @@ :trans (new 'static 'vector :x -325973.6 :y 36371.25 :z 5391642.0 :w 1.0) :quat (new 'static 'vector :y 0.9867 :w -0.162) :camera-trans (new 'static 'vector :x -301305.84 :y 51219.66 :z 5399168.5 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.3137 0.0 0.9495 -0.2469 0.9655 -0.0816 -0.9168 -0.2601 -0.3029) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.3137 0.0 0.9495)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.2469 0.9655 -0.0816)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.9168 -0.2601 -0.3029)) + ) :on-goto #f :vis-nick 'hiphog :want (new 'static 'inline-array level-buffer-state 6 @@ -11168,7 +11888,11 @@ :trans (new 'static 'vector :x -325973.6 :y 36371.25 :z 5391642.0 :w 1.0) :quat (new 'static 'vector :y 0.9867 :w -0.162) :camera-trans (new 'static 'vector :x -301305.84 :y 51219.66 :z 5399168.5 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.3137 0.0 0.9495 -0.2469 0.9655 -0.0816 -0.9168 -0.2601 -0.3029) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.3137 0.0 0.9495)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.2469 0.9655 -0.0816)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.9168 -0.2601 -0.3029)) + ) :on-goto #f :vis-nick 'hiphog :want (new 'static 'inline-array level-buffer-state 6 @@ -11188,7 +11912,11 @@ :trans (new 'static 'vector :x -325973.6 :y 36371.25 :z 5391642.0 :w 1.0) :quat (new 'static 'vector :y 0.9867 :w -0.162) :camera-trans (new 'static 'vector :x -301305.84 :y 51219.66 :z 5399168.5 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.3137 0.0 0.9495 -0.2469 0.9655 -0.0816 -0.9168 -0.2601 -0.3029) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.3137 0.0 0.9495)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.2469 0.9655 -0.0816)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.9168 -0.2601 -0.3029)) + ) :on-goto #f :vis-nick 'hiphog :want (new 'static 'inline-array level-buffer-state 6 @@ -11208,7 +11936,11 @@ :trans (new 'static 'vector :x -325973.6 :y 36371.25 :z 5391642.0 :w 1.0) :quat (new 'static 'vector :y 0.9867 :w -0.162) :camera-trans (new 'static 'vector :x -301305.84 :y 51219.66 :z 5399168.5 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.3137 0.0 0.9495 -0.2469 0.9655 -0.0816 -0.9168 -0.2601 -0.3029) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.3137 0.0 0.9495)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.2469 0.9655 -0.0816)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.9168 -0.2601 -0.3029)) + ) :on-goto #f :vis-nick 'hiphog :want (new 'static 'inline-array level-buffer-state 6 @@ -11228,7 +11960,11 @@ :trans (new 'static 'vector :x 2284730.0 :y 8799.847 :z -3431194.2 :w 1.0) :quat (new 'static 'vector :y 0.9929 :w -0.1181) :camera-trans (new 'static 'vector :x 2282735.5 :y 26317.62 :z -3393441.5 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.9986 0.0 -0.0516 0.0082 0.9871 -0.1595 0.0509 -0.1597 -0.9858) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.9986 0.0 -0.0516)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.0082 0.9871 -0.1595)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.0509 -0.1597 -0.9858)) + ) :on-goto #f :vis-nick 'demo :want (new 'static 'inline-array level-buffer-state 6 @@ -11248,7 +11984,11 @@ :trans (new 'static 'vector :x -325973.6 :y 36371.25 :z 5391642.0 :w 1.0) :quat (new 'static 'vector :y 0.9867 :w -0.162) :camera-trans (new 'static 'vector :x -301305.84 :y 51219.66 :z 5399168.5 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.3137 0.0 0.9495 -0.2469 0.9655 -0.0816 -0.9168 -0.2601 -0.3029) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.3137 0.0 0.9495)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.2469 0.9655 -0.0816)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.9168 -0.2601 -0.3029)) + ) :on-goto #f :vis-nick 'hiphog :want (new 'static 'inline-array level-buffer-state 6 @@ -11300,7 +12040,6 @@ ) ) -;; definition for symbol ltess, type level-load-info (define ltess (new 'static 'level-load-info :index #x7c :task-level #x1 @@ -11356,7 +12095,6 @@ ) ) -;; definition for symbol lhipout, type level-load-info (define lhipout (new 'static 'level-load-info :index #x7d :task-level #x1 @@ -11412,7 +12150,6 @@ ) ) -;; definition for symbol lwhack, type level-load-info (define lwhack (new 'static 'level-load-info :index #x7e :task-level #x1 @@ -11468,7 +12205,6 @@ ) ) -;; definition for symbol lguard, type level-load-info (define lguard (new 'static 'level-load-info :index #x7f :task-level #x1 @@ -11524,7 +12260,6 @@ ) ) -;; definition for symbol lcguard, type level-load-info (define lcguard (new 'static 'level-load-info :index #x80 :task-level #x1 @@ -11580,7 +12315,6 @@ ) ) -;; definition for symbol lerltess, type level-load-info (define lerltess (new 'static 'level-load-info :index #x81 :task-level #x1 @@ -11636,7 +12370,6 @@ ) ) -;; definition for symbol gungame, type level-load-info (define gungame (new 'static 'level-load-info :index #x82 @@ -11661,7 +12394,11 @@ :trans (new 'static 'vector :x 1797717.2 :y 34816.0 :z 5337087.0 :w 1.0) :quat (new 'static 'vector :y -0.9956 :w 0.0932) :camera-trans (new 'static 'vector :x 1807258.4 :y 55836.67 :z 5378828.5 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.9756 0.0 0.2193 -0.0387 0.9843 -0.1721 -0.2158 -0.1764 -0.9603) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.9756 0.0 0.2193)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.0387 0.9843 -0.1721)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.2158 -0.1764 -0.9603)) + ) :on-goto #f :vis-nick 'gungame :want (new 'static 'inline-array level-buffer-state 6 @@ -11681,7 +12418,11 @@ :trans (new 'static 'vector :x 1797717.2 :y 34816.0 :z 5337087.0 :w 1.0) :quat (new 'static 'vector :y -0.9956 :w 0.0932) :camera-trans (new 'static 'vector :x 1807258.4 :y 55836.67 :z 5378828.5 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.9756 0.0 0.2193 -0.0387 0.9843 -0.1721 -0.2158 -0.1764 -0.9603) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.9756 0.0 0.2193)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.0387 0.9843 -0.1721)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.2158 -0.1764 -0.9603)) + ) :on-goto #f :vis-nick 'gungame :want (new 'static 'inline-array level-buffer-state 6 @@ -11731,7 +12472,6 @@ ) ) -;; definition for symbol dig1, type level-load-info (define dig1 (new 'static 'level-load-info :index #x83 @@ -11758,7 +12498,11 @@ :trans (new 'static 'vector :x 1759030.1 :y -244842.1 :z -7407948.5 :w 1.0) :quat (new 'static 'vector :y 0.8886 :w -0.4586) :camera-trans (new 'static 'vector :x 1799911.9 :y -223814.86 :z -7395168.5 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.2993 0.0 0.9541 -0.169 0.9841 -0.053 -0.939 -0.1771 -0.2946) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.2993 0.0 0.9541)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.169 0.9841 -0.053)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.939 -0.1771 -0.2946)) + ) :on-goto '(begin (kill "crimson-guard-level-198" store #f) (kill "crimson-guard-level-199" store #f)) :vis-nick 'dig1 :want (new 'static 'inline-array level-buffer-state 6 @@ -11809,7 +12553,6 @@ ) ) -;; definition for symbol dig3a, type level-load-info (define dig3a (new 'static 'level-load-info :index #x84 @@ -11835,7 +12578,11 @@ :trans (new 'static 'vector :x 1759030.1 :y -244842.1 :z -7407948.5 :w 1.0) :quat (new 'static 'vector :y 0.8886 :w -0.4586) :camera-trans (new 'static 'vector :x 1799911.9 :y -223814.86 :z -7395168.5 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.2993 0.0 0.9541 -0.169 0.9841 -0.053 -0.939 -0.1771 -0.2946) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.2993 0.0 0.9541)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.169 0.9841 -0.053)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.939 -0.1771 -0.2946)) + ) :on-goto '(begin (kill "flitter-255" store #f) (kill "flitter-256" store #f) @@ -11861,7 +12608,11 @@ :trans (new 'static 'vector :x 772547.8 :y -57348.098 :z -7644002.5 :w 1.0) :quat (new 'static 'vector :y -0.4492 :w 0.8934) :camera-trans (new 'static 'vector :x 788845.4 :y -36243.867 :z -7683787.0 :w 1.0) - :camera-rot (new 'static 'array float 9 0.924 0.0 0.3823 -0.0676 0.9842 0.1635 -0.3763 -0.1769 0.9094) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.924 0.0 0.3823)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.0676 0.9842 0.1635)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.3763 -0.1769 0.9094)) + ) :on-goto #f :vis-nick 'dig3a :want (new 'static 'inline-array level-buffer-state 6 @@ -11881,7 +12632,11 @@ :trans (new 'static 'vector :x 1150306.2 :y -217773.67 :z -8811749.0 :w 1.0) :quat (new 'static 'vector :y 0.7541 :w -0.6566) :camera-trans (new 'static 'vector :x 1192340.6 :y -196685.0 :z -8802656.0 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.2109 0.0 0.9775 -0.1712 0.9845 -0.0369 -0.9623 -0.1751 -0.2076) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.2109 0.0 0.9775)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.1712 0.9845 -0.0369)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.9623 -0.1751 -0.2076)) + ) :on-goto #f :vis-nick 'dig3b :want (new 'static 'inline-array level-buffer-state 6 @@ -11900,7 +12655,11 @@ :trans (new 'static 'vector :x 1406619.2 :y -303026.2 :z -8176758.5 :w 1.0) :quat (new 'static 'vector :y 0.9223 :w -0.3864) :camera-trans (new 'static 'vector :x 1434400.8 :y -281924.0 :z -8143880.0 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.7632 0.0 0.6461 -0.1136 0.9844 -0.1341 -0.636 -0.1758 -0.7513) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.7632 0.0 0.6461)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.1136 0.9844 -0.1341)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.636 -0.1758 -0.7513)) + ) :on-goto '(begin (kill "flitter-244" store #f) (kill "flitter-245" store #f)) :vis-nick 'dig3b :want (new 'static 'inline-array level-buffer-state 6 @@ -11951,7 +12710,6 @@ ) ) -;; definition for symbol dig3b, type level-load-info (define dig3b (new 'static 'level-load-info :index #x85 :task-level #xd @@ -12006,7 +12764,6 @@ ) ) -;; definition for symbol caspad, type level-load-info (define caspad (new 'static 'level-load-info :index #x86 @@ -12030,7 +12787,11 @@ :trans (new 'static 'vector :x 1173561.4 :y 81917.13 :z -6861326.0 :w 1.0) :quat (new 'static 'vector :y 0.9645 :w -0.2637) :camera-trans (new 'static 'vector :x 1216548.0 :y 103011.53 :z -6859337.5 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.0855 0.0 0.9963 -0.1752 0.9844 -0.015 -0.9807 -0.1759 -0.0842) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.0855 0.0 0.9963)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.1752 0.9844 -0.015)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.9807 -0.1759 -0.0842)) + ) :on-goto #f :vis-nick 'caspad :want (new 'static 'inline-array level-buffer-state 6 @@ -12050,7 +12811,11 @@ :trans (new 'static 'vector :x 1152265.0 :y 114685.13 :z -6746448.5 :w 1.0) :quat (new 'static 'vector :y 0.9282 :w 0.3719) :camera-trans (new 'static 'vector :x 1121375.9 :y 135779.12 :z -6705579.0 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.7972 0.0 -0.6036 0.0733 0.9925 -0.0968 0.5992 -0.1214 -0.7913) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.7972 0.0 -0.6036)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.0733 0.9925 -0.0968)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.5992 -0.1214 -0.7913)) + ) :on-goto '(send-event "cpad-elevator-1" 'jump-to 'top) :vis-nick 'caspad :want (new 'static 'inline-array level-buffer-state 6 @@ -12070,7 +12835,11 @@ :trans (new 'static 'vector :x 1103312.9 :y 114685.13 :z -6718415.5 :w 1.0) :quat (new 'static 'vector :y 0.7686 :w -0.6396) :camera-trans (new 'static 'vector :x 1153423.8 :y 135779.12 :z -6707907.0 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.2059 0.0 0.9785 -0.1191 0.9925 -0.025 -0.9712 -0.1217 -0.2044) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.2059 0.0 0.9785)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.1191 0.9925 -0.025)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.9712 -0.1217 -0.2044)) + ) :on-goto '(send-event "cpad-elevator-1" 'jump-to 'top) :vis-nick 'caspad :want (new 'static 'inline-array level-buffer-state 6 @@ -12122,7 +12891,6 @@ ) ) -;; definition for symbol castle, type level-load-info (define castle (new 'static 'level-load-info :index #x87 @@ -12148,7 +12916,11 @@ :trans (new 'static 'vector :x 21039.924 :y 229371.9 :z -6893704.5 :w 1.0) :quat (new 'static 'vector :y 0.8039 :w -0.5946) :camera-trans (new 'static 'vector :x 72232.96 :y 250453.2 :z -6894464.0 :w 1.0) - :camera-rot (new 'static 'array float 9 0.0151 0.0 0.9998 -0.1207 0.9926 0.0018 -0.9925 -0.1207 0.015) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.0151 0.0 0.9998)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.1207 0.9926 0.0018)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.9925 -0.1207 0.015)) + ) :on-goto #f :vis-nick 'castle :want (new 'static 'inline-array level-buffer-state 6 @@ -12167,7 +12939,11 @@ :trans (new 'static 'vector :x -536164.75 :y 196603.5 :z -6979012.0 :w 1.0) :quat (new 'static 'vector :y -0.7785 :w 0.6275) :camera-trans (new 'static 'vector :x -530788.4 :y 217697.89 :z -7021644.0 :w 1.0) - :camera-rot (new 'static 'array float 9 0.9722 0.0 0.2338 -0.0418 0.9838 0.1739 -0.23 -0.1789 0.9565) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.9722 0.0 0.2338)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.0418 0.9838 0.1739)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.23 -0.1789 0.9565)) + ) :on-goto #f :vis-nick 'castle :want (new 'static 'inline-array level-buffer-state 6 @@ -12218,7 +12994,6 @@ ) ) -;; definition for symbol casboss, type level-load-info (define casboss (new 'static 'level-load-info :index #x88 @@ -12243,7 +13018,11 @@ :trans (new 'static 'vector :x -1351936.0 :y 1454352.4 :z -6874412.0 :w 1.0) :quat (new 'static 'vector :y -0.7631 :w -0.6462) :camera-trans (new 'static 'vector :x -1403063.9 :y 1475443.1 :z -6877073.5 :w 1.0) - :camera-rot (new 'static 'array float 9 0.0508 0.0 -0.9987 0.1215 0.9925 0.0061 0.9912 -0.1217 0.0504) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.0508 0.0 -0.9987)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.1215 0.9925 0.0061)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.9912 -0.1217 0.0504)) + ) :on-goto #f :vis-nick 'casboss :want (new 'static 'inline-array level-buffer-state 6 @@ -12295,7 +13074,6 @@ ) ) -;; definition for symbol casext, type level-load-info (define casext (new 'static 'level-load-info :index #x89 :task-level #xe @@ -12351,7 +13129,6 @@ ) ) -;; definition for symbol cascity, type level-load-info (define cascity (new 'static 'level-load-info :index #x8a :task-level #xe @@ -12408,7 +13185,6 @@ ) ) -;; definition for symbol village1, type level-load-info (define village1 (new 'static 'level-load-info :index #x8b @@ -12433,7 +13209,11 @@ :trans (new 'static 'vector :x -687440.7 :y 154998.38 :z 752476.2 :w 1.0) :quat (new 'static 'vector :y 0.8595 :w 0.511) :camera-trans (new 'static 'vector :x -724766.3 :y 176109.56 :z 773868.75 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.4882 0.0 -0.8726 0.1537 0.9843 -0.086 0.859 -0.1762 -0.4806) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.4882 0.0 -0.8726)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.1537 0.9843 -0.086)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.859 -0.1762 -0.4806)) + ) :on-goto #f :vis-nick 'village1 :want (new 'static 'inline-array level-buffer-state 6 @@ -12453,7 +13233,11 @@ :trans (new 'static 'vector :x -687440.7 :y 154998.38 :z 752476.2 :w 1.0) :quat (new 'static 'vector :y 0.8595 :w 0.511) :camera-trans (new 'static 'vector :x -724766.3 :y 176109.56 :z 773868.75 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.4882 0.0 -0.8726 0.1537 0.9843 -0.086 0.859 -0.1762 -0.4806) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.4882 0.0 -0.8726)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.1537 0.9843 -0.086)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.859 -0.1762 -0.4806)) + ) :on-goto #f :vis-nick 'village1 :want (new 'static 'inline-array level-buffer-state 6 @@ -12473,7 +13257,11 @@ :trans (new 'static 'vector :x -687440.7 :y 154998.38 :z 752476.2 :w 1.0) :quat (new 'static 'vector :y 0.8595 :w 0.511) :camera-trans (new 'static 'vector :x -724766.3 :y 176109.56 :z 773868.75 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.4882 0.0 -0.8726 0.1537 0.9843 -0.086 0.859 -0.1762 -0.4806) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.4882 0.0 -0.8726)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.1537 0.9843 -0.086)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.859 -0.1762 -0.4806)) + ) :on-goto #f :vis-nick 'village1 :want (new 'static 'inline-array level-buffer-state 6 @@ -12525,7 +13313,6 @@ ) ) -;; definition for symbol introcst, type level-load-info (define introcst (new 'static 'level-load-info :index #x8c :name 'introcst @@ -12581,7 +13368,6 @@ ) ) -;; definition for symbol lcitylow, type level-load-info (define lcitylow (new 'static 'level-load-info :index #x8d :task-level #x1 @@ -12638,7 +13424,6 @@ ) ) -;; definition for symbol lintcstb, type level-load-info (define lintcstb (new 'static 'level-load-info :index #x8e :name 'lintcstb @@ -12694,7 +13479,6 @@ ) ) -;; definition for symbol ljakdax, type level-load-info (define ljakdax (new 'static 'level-load-info :index #x8f :name 'ljakdax @@ -12749,7 +13533,6 @@ ) ) -;; definition for symbol nest, type level-load-info (define nest (new 'static 'level-load-info :index #x90 @@ -12775,7 +13558,11 @@ :trans (new 'static 'vector :x 15416.524 :y -4361.8306 :z -400347.97 :w 1.0) :quat (new 'static 'vector :y -0.9467 :w 0.322) :camera-trans (new 'static 'vector :x 31184.486 :y 16731.75 :z -351637.9 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.9514 0.0 0.3079 -0.0374 0.9925 -0.1158 -0.3056 -0.1217 -0.9443) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.9514 0.0 0.3079)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.0374 0.9925 -0.1158)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.3056 -0.1217 -0.9443)) + ) :on-goto #f :vis-nick 'nest :want (new 'static 'inline-array level-buffer-state 6 @@ -12795,7 +13582,11 @@ :trans (new 'static 'vector :x 52140.44 :y -4358.9634 :z -309093.16 :w 1.0) :quat (new 'static 'vector :y -0.0195 :w -0.9998) :camera-trans (new 'static 'vector :x 62153.523 :y 16219.75 :z -357362.06 :w 1.0) - :camera-rot (new 'static 'array float 9 0.9789 0.0 0.2039 -0.0244 0.9927 0.1175 -0.2024 -0.12 0.9719) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.9789 0.0 0.2039)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.0244 0.9927 0.1175)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.2024 -0.12 0.9719)) + ) :on-goto #f :vis-nick 'nest :want (new 'static 'inline-array level-buffer-state 6 @@ -12814,7 +13605,11 @@ :trans (new 'static 'vector :x -467713.22 :y 122876.73 :z -631910.4 :w 1.0) :quat (new 'static 'vector :y 0.0352 :w -0.9993) :camera-trans (new 'static 'vector :x -461033.88 :y 143970.3 :z -674393.7 :w 1.0) - :camera-rot (new 'static 'array float 9 0.988 0.0 0.1543 -0.0271 0.9843 0.1739 -0.1519 -0.1761 0.9725) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.988 0.0 0.1543)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.0271 0.9843 0.1739)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.1519 -0.1761 0.9725)) + ) :on-goto #f :vis-nick 'nest :want (new 'static 'inline-array level-buffer-state 6 @@ -12834,7 +13629,11 @@ :trans (new 'static 'vector :x -467713.22 :y 122876.73 :z -631910.4 :w 1.0) :quat (new 'static 'vector :y 0.0352 :w -0.9993) :camera-trans (new 'static 'vector :x -461033.88 :y 143970.3 :z -674393.7 :w 1.0) - :camera-rot (new 'static 'array float 9 0.988 0.0 0.1543 -0.0271 0.9843 0.1739 -0.1519 -0.1761 0.9725) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.988 0.0 0.1543)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.0271 0.9843 0.1739)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.1519 -0.1761 0.9725)) + ) :on-goto #f :vis-nick 'nest :want (new 'static 'inline-array level-buffer-state 6 @@ -12886,7 +13685,6 @@ ) ) -;; definition for symbol nestb, type level-load-info (define nestb (new 'static 'level-load-info :index #x91 @@ -12911,7 +13709,11 @@ :trans (new 'static 'vector :x 328095.34 :y 141232.12 :z -1315237.9 :w 1.0) :quat (new 'static 'vector :x -0.0005 :y 0.8541 :z 0.0013 :w 0.52) :camera-trans (new 'static 'vector :x 307591.16 :y 157170.89 :z -1291318.9 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.7269 0.0 -0.6866 0.053 0.997 -0.0561 0.6846 -0.0772 -0.7248) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.7269 0.0 -0.6866)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.053 0.997 -0.0561)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.6846 -0.0772 -0.7248)) + ) :on-goto #f :vis-nick 'nestb :want (new 'static 'inline-array level-buffer-state 6 @@ -12931,7 +13733,11 @@ :trans (new 'static 'vector :x 634325.0 :y 134077.23 :z -1619793.1 :w 1.0) :quat (new 'static 'vector :y -0.9292 :w -0.3694) :camera-trans (new 'static 'vector :x 606261.7 :y 153914.58 :z -1591727.8 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.7046 0.0 -0.7095 0.1314 0.9826 -0.1305 0.6972 -0.1852 -0.6924) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.7046 0.0 -0.7095)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.1314 0.9826 -0.1305)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.6972 -0.1852 -0.6924)) + ) :on-goto #f :vis-nick 'nestb :want (new 'static 'inline-array level-buffer-state 6 @@ -12951,7 +13757,11 @@ :trans (new 'static 'vector :x 690462.3 :y 84592.64 :z -1698655.0 :w 1.0) :quat (new 'static 'vector :y 0.8663 :w 0.4993) :camera-trans (new 'static 'vector :x 642789.8 :y 105517.47 :z -1715050.5 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.0005 0.0 -0.9999 0.008 0.9999 0.0 0.9999 -0.008 -0.0005) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.0005 0.0 -0.9999)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.008 0.9999 0.0)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.9999 -0.008 -0.0005)) + ) :on-goto #f :vis-nick 'nestb :want (new 'static 'inline-array level-buffer-state 6 @@ -12971,7 +13781,11 @@ :trans (new 'static 'vector :x 634325.0 :y 134077.23 :z -1619793.1 :w 1.0) :quat (new 'static 'vector :y -0.9292 :w -0.3694) :camera-trans (new 'static 'vector :x 606261.7 :y 153914.58 :z -1591727.8 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.7046 0.0 -0.7095 0.1314 0.9826 -0.1305 0.6972 -0.1852 -0.6924) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.7046 0.0 -0.7095)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.1314 0.9826 -0.1305)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.6972 -0.1852 -0.6924)) + ) :on-goto #f :vis-nick 'nestb :want (new 'static 'inline-array level-buffer-state 6 @@ -13022,7 +13836,6 @@ ) ) -;; definition for symbol outrocst, type level-load-info (define outrocst (new 'static 'level-load-info :index #x92 :name 'outrocst @@ -13078,7 +13891,6 @@ ) ) -;; definition for symbol portwall, type level-load-info (define portwall (new 'static 'level-load-info :index #x93 :task-level #x1 @@ -13135,7 +13947,6 @@ ) ) -;; definition for symbol loutcstb, type level-load-info (define loutcstb (new 'static 'level-load-info :index #x94 :name 'loutcstb @@ -13191,7 +14002,6 @@ ) ) -;; definition for symbol island1, type level-load-info (define island1 (new 'static 'level-load-info :index #x95 @@ -13214,7 +14024,11 @@ :trans (new 'static 'vector :x -63374.133 :y 23056.385 :z 99968.62 :w 1.0) :quat (new 'static 'vector :y -0.0282 :w 0.9995) :camera-trans (new 'static 'vector :x -75443.81 :y 44169.625 :z 50212.453 :w 1.0) - :camera-rot (new 'static 'array float 9 0.9721 0.0 -0.2344 0.0285 0.9925 0.1184 0.2326 -0.1218 0.9648) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.9721 0.0 -0.2344)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.0285 0.9925 0.1184)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.2326 -0.1218 0.9648)) + ) :on-goto #f :vis-nick 'island1 :want (new 'static 'inline-array level-buffer-state 6 @@ -13265,7 +14079,6 @@ ) ) -;; definition (debug) for function city-start ;; WARN: Return type mismatch target vs none. (defun-debug city-start () (let ((v1-1 (level-get-target-inside *level*))) @@ -13283,7 +14096,6 @@ (none) ) -;; definition for symbol skatepark, type level-load-info (define skatepark (new 'static 'level-load-info :index #x96 @@ -13307,7 +14119,11 @@ :trans (new 'static 'vector :x 229338.31 :y 40960.0 :z 732819.9 :w 1.0) :quat (new 'static 'vector :x 0.0013 :y -0.9682 :z 0.0008 :w -0.2499) :camera-trans (new 'static 'vector :x 193991.89 :y 60429.516 :z 760925.8 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.6255 0.0 -0.7801 0.0995 0.9918 -0.0798 0.7737 -0.1276 -0.6204) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.6255 0.0 -0.7801)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.0995 0.9918 -0.0798)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.7737 -0.1276 -0.6204)) + ) :on-goto #f :vis-nick #f :want (new 'static 'inline-array level-buffer-state 6 @@ -13359,7 +14175,6 @@ ) ) -;; definition for symbol halfpipe, type level-load-info (define halfpipe (new 'static 'level-load-info :index #x97 @@ -13384,7 +14199,11 @@ :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) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.979 0.0 -0.2037)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.0545 0.9634 -0.2622)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.1963 -0.2678 -0.9432)) + ) :on-goto #f :vis-nick #f :want (new 'static 'inline-array level-buffer-state 6 @@ -13436,7 +14255,6 @@ ) ) -;; definition for symbol vistest, type level-load-info (define vistest (new 'static 'level-load-info :index #x98 :name 'vistest @@ -13492,7 +14310,6 @@ ) ) -;; definition for symbol woodstest, type level-load-info (define woodstest (new 'static 'level-load-info :index #x99 :name 'woodstest @@ -13548,7 +14365,6 @@ ) ) -;; definition for symbol tobytest, type level-load-info (define tobytest (new 'static 'level-load-info :index #x9a :name 'tobytest @@ -13604,7 +14420,6 @@ ) ) -;; definition for symbol chartest, type level-load-info (define chartest (new 'static 'level-load-info :index #x9b @@ -13628,7 +14443,11 @@ :trans (new 'static 'vector :x 32127.385 :z 4703.846 :w 1.0) :quat (new 'static 'vector :y 0.6223 :w 0.7827) :camera-trans (new 'static 'vector :x -15613.133 :y 21093.99 :z 23271.424 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.3584 0.0 -0.9335 0.1116 0.9928 -0.0428 0.9268 -0.1196 -0.3559) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.3584 0.0 -0.9335)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.1116 0.9928 -0.0428)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.9268 -0.1196 -0.3559)) + ) :on-goto #f :vis-nick 'chartest :want (new 'static 'inline-array level-buffer-state 6 @@ -13680,7 +14499,6 @@ ) ) -;; definition for symbol dptest, type level-load-info (define dptest (new 'static 'level-load-info :index #x9c @@ -13703,7 +14521,11 @@ :trans (new 'static 'vector :x 370575.78 :y 4786.995 :z 775480.94 :w 1.0) :quat (new 'static 'vector :y 0.9867 :w -0.162) :camera-trans (new 'static 'vector :x 375318.53 :y 25830.605 :z 826459.75 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.9956 0.0 0.0933 -0.0112 0.9927 -0.1195 -0.0926 -0.12 -0.9884) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.9956 0.0 0.0933)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.0112 0.9927 -0.1195)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.0926 -0.12 -0.9884)) + ) :on-goto #f :vis-nick 'atoll :want (new 'static 'inline-array level-buffer-state 6 @@ -13755,7 +14577,6 @@ ) ) -;; definition for symbol ctyfence, type level-load-info (define ctyfence (new 'static 'level-load-info :index #x9d :task-level #x1 @@ -13812,13 +14633,11 @@ ) ) -;; failed to figure out what this is: (when (or (= *kernel-boot-message* 'demo) (= *kernel-boot-message* 'demo-shared)) (set! (-> ctywide memory-mode) (load-buffer-mode small-edge)) 0 ) -;; definition for symbol *level-load-list*, type pair (define *level-load-list* '(default-level intro demo @@ -13978,7 +14797,3 @@ ctyfence ) ) - - - - diff --git a/goal_src/jak2/engine/level/level.gc b/goal_src/jak2/engine/level/level.gc index 3a46d0da7f..6cebee6023 100644 --- a/goal_src/jak2/engine/level/level.gc +++ b/goal_src/jak2/engine/level/level.gc @@ -1424,10 +1424,8 @@ (birth (-> obj bsp)) (set! (-> obj status) 'alive) (set! (-> obj render?) #t) - (format 0 "SKIP: copy-perms-to-level~%") - (format #t "SKIP: copy-perms-to-level~%") - ;(copy-perms-to-level! *game-info* obj) + (copy-perms-to-level! *game-info* obj) (send-event *camera* 'level-activate (-> obj name)) (send-event *target* 'level-activate (-> obj name)) (when (and (-> obj info login-func) s1-0) @@ -1440,7 +1438,7 @@ ) (let ((s1-2 (-> obj status))) (set! (-> obj status) 'active) - (when (nonzero? update-task-masks) (update-task-masks 'level)) ;; added nonzero check + (update-task-masks 'level) (assign-draw-indices *level*) (let ((s0-0 (-> obj bsp nav-meshes))) (when (nonzero? s0-0) @@ -2225,10 +2223,9 @@ ) (start-debug "PLAY: starting dproc~%") (on #t) - (format 0 "SKIP: initialize game info~%") - ; (if arg1 - ; (initialize! *game-info* 'game (the-as game-save #f) (the-as string #f)) - ; ) + (if arg1 + (initialize! *game-info* 'game (the-as game-save #f) (the-as string #f)) + ) (kmemclose) (kmemclose) 0 diff --git a/goal_src/jak2/engine/level/region-h.gc b/goal_src/jak2/engine/level/region-h.gc index d785826f7a..9802c3e757 100644 --- a/goal_src/jak2/engine/level/region-h.gc +++ b/goal_src/jak2/engine/level/region-h.gc @@ -133,3 +133,8 @@ :size-assert #x504 :flag-assert #x900000504 ) + + +(define-extern region-prim-lookup-by-id (function int drawable-region-prim)) +(define-extern region-lookup-by-id (function int region)) + diff --git a/goal_src/jak2/engine/load/load-state.gc b/goal_src/jak2/engine/load/load-state.gc index 425afc9fac..18ae4425f8 100644 --- a/goal_src/jak2/engine/load/load-state.gc +++ b/goal_src/jak2/engine/load/load-state.gc @@ -132,6 +132,7 @@ 0 ) +;; WARN: Function (method 16 load-state) has a return type of none, but the expression builder found a return statement. (defmethod want-force-inside load-state ((obj load-state) (arg0 symbol) (arg1 symbol)) (dotimes (v1-0 6) (when (= (-> obj want v1-0 name) arg0) @@ -294,14 +295,14 @@ ((pair? (car s3-0)) (let ((a1-4 (car s3-0))) (while (not (null? s3-0)) - (eval! s4-0 (the-as structure a1-4)) + (eval! s4-0 (the-as pair a1-4)) (set! s3-0 (cdr s3-0)) (set! a1-4 (car s3-0)) ) ) ) (else - (eval! s4-0 (the-as structure s3-0)) + (eval! s4-0 s3-0) ) ) ) @@ -320,7 +321,3 @@ (define-perm *load-state* load-state (new 'global 'load-state)) (kmemclose) - - - - diff --git a/goal_src/jak2/engine/math/vector-h.gc b/goal_src/jak2/engine/math/vector-h.gc index 026f745631..e363f69b2b 100644 --- a/goal_src/jak2/engine/math/vector-h.gc +++ b/goal_src/jak2/engine/math/vector-h.gc @@ -537,6 +537,7 @@ (y float :offset 4) (z float :offset 8) ) + :pack-me ;; removeme :method-count-assert 9 :size-assert #xc :flag-assert #x90000000c diff --git a/goal_src/jak2/engine/ps2/memcard-h.gc b/goal_src/jak2/engine/ps2/memcard-h.gc index 2a283c4f23..230ae702c5 100644 --- a/goal_src/jak2/engine/ps2/memcard-h.gc +++ b/goal_src/jak2/engine/ps2/memcard-h.gc @@ -39,6 +39,7 @@ :flag-assert #x900000044 ) + (deftype mc-slot-info (structure) ((handle int32 :offset-assert 0) (known int32 :offset-assert 4) @@ -49,11 +50,13 @@ (mem-actual int32 :offset-assert 24) (file mc-file-info 4 :inline :offset-assert 28) ) + :pack-me :method-count-assert 9 :size-assert #x12c :flag-assert #x90000012c ) + (defun mc-sync () (let ((v0-0 0)) (while (zero? v0-0) diff --git a/goal_src/jak2/engine/ps2/pad.gc b/goal_src/jak2/engine/ps2/pad.gc index 936a179b64..a57496895c 100644 --- a/goal_src/jak2/engine/ps2/pad.gc +++ b/goal_src/jak2/engine/ps2/pad.gc @@ -35,15 +35,16 @@ (circle 13) (x 14) (square 15) - (pb16 16) - (pb17 17) - (pb18 18) - (pb19 19) - (pb20 20) - (pb21 21) - (pb22 22) - (pb23 23) - (pb24 24) + ;; only 16 buttons are mapped to hardware, the rest are 'actions' or something else + (l-analog-down 16) + (l-analog-right 17) + (l-analog-up 18) + (l-analog-left 19) + (r-analog-down 20) + (r-analog-right 21) + (r-analog-up 22) + (r-analog-left 23) + (confirm 24) ) (defenum pad-type @@ -54,6 +55,7 @@ (namco-gun 6) ) +;; decomp begins (deftype scf-time (structure) ((stat uint8 :offset-assert 0) @@ -130,7 +132,7 @@ :flag-assert #xa00000090 (:methods (new (symbol type int) _type_ 0) - (invert-analog-if-needed (_type_) none 9) + (adjust-to-screen-flip (_type_) int 9) ) ) @@ -200,6 +202,7 @@ ) ) + (defmethod new cpad-list ((allocation symbol) (type-to-make type)) "Create a cpad-list for 2 controllers. It's fine to do this even if one or both controllers aren't connected yet." @@ -264,166 +267,166 @@ (defun service-cpads () "Read from cpads and update vibration" - (let ((gp-0 *cpad-list*)) - (dotimes (s5-0 (-> gp-0 num-cpads)) - (let ((s4-0 (-> *cpad-list* cpads s5-0))) - (set! (-> s4-0 old-leftx 1) (-> s4-0 old-leftx 0)) - (set! (-> s4-0 old-leftx 0) (-> s4-0 leftx)) - (set! (-> s4-0 old-lefty 1) (-> s4-0 old-lefty 0)) - (set! (-> s4-0 old-lefty 0) (-> s4-0 lefty)) - (set! (-> s4-0 old-rightx 1) (-> s4-0 old-rightx 0)) - (set! (-> s4-0 old-rightx 0) (-> s4-0 rightx)) - (set! (-> s4-0 old-righty 1) (-> s4-0 old-righty 0)) - (set! (-> s4-0 old-righty 0) (-> s4-0 righty)) - (cpad-get-data s4-0) - (invert-analog-if-needed s4-0) + (let ((pads *cpad-list*)) + (dotimes (i (-> pads num-cpads)) + (let ((pad (-> *cpad-list* cpads i))) + (set! (-> pad old-leftx 1) (-> pad old-leftx 0)) + (set! (-> pad old-leftx 0) (-> pad leftx)) + (set! (-> pad old-lefty 1) (-> pad old-lefty 0)) + (set! (-> pad old-lefty 0) (-> pad lefty)) + (set! (-> pad old-rightx 1) (-> pad old-rightx 0)) + (set! (-> pad old-rightx 0) (-> pad rightx)) + (set! (-> pad old-righty 1) (-> pad old-righty 0)) + (set! (-> pad old-righty 0) (-> pad righty)) + (cpad-get-data pad) + (adjust-to-screen-flip pad) (cond - ((zero? (logand (-> s4-0 valid) 128)) - (dotimes (s3-0 2) + ((zero? (logand (-> pad valid) 128)) + (dotimes (buzz-i 2) (cond - ((and (-> s4-0 buzz) (< (get-current-time) (-> s4-0 buzz-time s3-0)) (= *master-mode* 'game)) - (let ((v1-20 s3-0)) + ((and (-> pad buzz) (< (get-current-time) (-> pad buzz-time buzz-i)) (= *master-mode* 'game)) + (let ((v1-20 buzz-i)) (cond ((zero? v1-20) - (set! (-> s4-0 direct s3-0) - (logand (ash (-> s4-0 buzz-val s3-0) (- (the-as int (logand (get-integral-current-time) 7)))) 1) + (set! (-> pad direct buzz-i) + (logand (ash (-> pad buzz-val buzz-i) (- (the-as int (logand (get-integral-current-time) 7)))) 1) ) ) ((= v1-20 1) - (set! (-> s4-0 direct s3-0) (-> s4-0 buzz-val s3-0)) + (set! (-> pad direct buzz-i) (-> pad buzz-val buzz-i)) ) ) ) ) - ((and (zero? s3-0) (> (-> s4-0 buzz-pause-time) 0)) - (set! (-> s4-0 direct s3-0) - (logand (ash (-> s4-0 buzz-pause-val s3-0) (- (the-as int (logand (get-integral-current-time) 7)))) 1) + ((and (zero? buzz-i) (> (-> pad buzz-pause-time) 0)) + (set! (-> pad direct buzz-i) + (logand (ash (-> pad buzz-pause-val buzz-i) (- (the-as int (logand (get-integral-current-time) 7)))) 1) ) - (+! (-> s4-0 buzz-pause-time) -1) + (+! (-> pad buzz-pause-time) -1) ) (else - (set! (-> s4-0 buzz-val s3-0) (the-as uint 0)) - (set! (-> s4-0 direct s3-0) (the-as uint 0)) - (when (zero? s3-0) - (set! (-> s4-0 buzz-pause-time) (the-as uint 0)) + (set! (-> pad buzz-val buzz-i) (the-as uint 0)) + (set! (-> pad direct buzz-i) (the-as uint 0)) + (when (zero? buzz-i) + (set! (-> pad buzz-pause-time) (the-as uint 0)) 0 ) ) ) ) - (when (< (the-as uint 192) (-> s4-0 direct 1)) - (set! (-> s4-0 direct 0) (the-as uint 0)) + (when (< (the-as uint 192) (-> pad direct 1)) + (set! (-> pad direct 0) (the-as uint 0)) 0 ) - (set! (-> s4-0 button0-abs 2) (-> s4-0 button0-abs 1)) - (set! (-> s4-0 button0-abs 1) (-> s4-0 button0-shadow-abs 0)) - (set! (-> s4-0 button0-rel 2) (-> s4-0 button0-rel 1)) - (set! (-> s4-0 button0-rel 1) (-> s4-0 button0-rel 0)) - (when (= (-> s4-0 status) 115) - (set! (-> s4-0 abutton 0) (the-as uint (if (logtest? (-> s4-0 button0-abs 0) (pad-buttons right)) + (set! (-> pad button0-abs 2) (-> pad button0-abs 1)) + (set! (-> pad button0-abs 1) (-> pad button0-shadow-abs 0)) + (set! (-> pad button0-rel 2) (-> pad button0-rel 1)) + (set! (-> pad button0-rel 1) (-> pad button0-rel 0)) + (when (= (-> pad status) 115) + (set! (-> pad abutton 0) (the-as uint (if (logtest? (-> pad button0-abs 0) (pad-buttons right)) + 255 + 0 + ) + ) + ) + (set! (-> pad abutton 1) (the-as uint (if (logtest? (-> pad button0-abs 0) (pad-buttons left)) + 255 + 0 + ) + ) + ) + (set! (-> pad abutton 2) (the-as uint (if (logtest? (-> pad button0-abs 0) (pad-buttons up)) + 255 + 0 + ) + ) + ) + (set! (-> pad abutton 3) (the-as uint (if (logtest? (-> pad button0-abs 0) (pad-buttons down)) + 255 + 0 + ) + ) + ) + (set! (-> pad abutton 6) (the-as uint (if (logtest? (-> pad button0-abs 0) (pad-buttons x)) + 255 + 0 + ) + ) + ) + (set! (-> pad abutton 5) (the-as uint (if (logtest? (-> pad button0-abs 0) (pad-buttons circle)) + 255 + 0 + ) + ) + ) + (set! (-> pad abutton 4) (the-as uint (if (logtest? (-> pad button0-abs 0) (pad-buttons triangle)) + 255 + 0 + ) + ) + ) + (set! (-> pad abutton 7) (the-as uint (if (logtest? (-> pad button0-abs 0) (pad-buttons square)) + 255 + 0 + ) + ) + ) + (set! (-> pad abutton 8) (the-as uint (if (logtest? (-> pad button0-abs 0) (pad-buttons l1)) + 255 + 0 + ) + ) + ) + (set! (-> pad abutton 10) (the-as uint (if (logtest? (-> pad button0-abs 0) (pad-buttons l2)) 255 0 ) ) ) - (set! (-> s4-0 abutton 1) (the-as uint (if (logtest? (-> s4-0 button0-abs 0) (pad-buttons left)) + (set! (-> pad abutton 9) (the-as uint (if (logtest? (-> pad button0-abs 0) (pad-buttons r1)) + 255 + 0 + ) + ) + ) + (set! (-> pad abutton 11) (the-as uint (if (logtest? (-> pad button0-abs 0) (pad-buttons r2)) 255 0 ) ) ) - (set! (-> s4-0 abutton 2) (the-as uint (if (logtest? (-> s4-0 button0-abs 0) (pad-buttons up)) - 255 - 0 - ) - ) - ) - (set! (-> s4-0 abutton 3) (the-as uint (if (logtest? (-> s4-0 button0-abs 0) (pad-buttons down)) - 255 - 0 - ) - ) - ) - (set! (-> s4-0 abutton 6) (the-as uint (if (logtest? (-> s4-0 button0-abs 0) (pad-buttons x)) - 255 - 0 - ) - ) - ) - (set! (-> s4-0 abutton 5) (the-as uint (if (logtest? (-> s4-0 button0-abs 0) (pad-buttons circle)) - 255 - 0 - ) - ) - ) - (set! (-> s4-0 abutton 4) (the-as uint (if (logtest? (-> s4-0 button0-abs 0) (pad-buttons triangle)) - 255 - 0 - ) - ) - ) - (set! (-> s4-0 abutton 7) (the-as uint (if (logtest? (-> s4-0 button0-abs 0) (pad-buttons square)) - 255 - 0 - ) - ) - ) - (set! (-> s4-0 abutton 8) (the-as uint (if (logtest? (-> s4-0 button0-abs 0) (pad-buttons l1)) - 255 - 0 - ) - ) - ) - (set! (-> s4-0 abutton 10) (the-as uint (if (logtest? (-> s4-0 button0-abs 0) (pad-buttons l2)) - 255 - 0 - ) - ) - ) - (set! (-> s4-0 abutton 9) (the-as uint (if (logtest? (-> s4-0 button0-abs 0) (pad-buttons r1)) - 255 - 0 - ) - ) - ) - (set! (-> s4-0 abutton 11) (the-as uint (if (logtest? (-> s4-0 button0-abs 0) (pad-buttons r2)) - 255 - 0 - ) - ) - ) ) - (let ((s3-1 (-> s4-0 button0))) + (let ((buttons-pushed (the-as pad-buttons (-> pad button0)))) (cond - ((< (-> s4-0 lefty) (the-as uint 30)) - (set! s3-1 (logior s3-1 #x10000)) + ((< (-> pad lefty) (the-as uint 30)) + (set! buttons-pushed (logior (pad-buttons l-analog-down) buttons-pushed)) ) - ((< (the-as uint 225) (-> s4-0 lefty)) - (set! s3-1 (logior s3-1 #x40000)) + ((< (the-as uint 225) (-> pad lefty)) + (set! buttons-pushed (logior (pad-buttons l-analog-up) buttons-pushed)) ) ) (cond - ((< (-> s4-0 leftx) (the-as uint 30)) - (set! s3-1 (logior s3-1 #x80000)) + ((< (-> pad leftx) (the-as uint 30)) + (set! buttons-pushed (logior (pad-buttons l-analog-left) buttons-pushed)) ) - ((< (the-as uint 225) (-> s4-0 leftx)) - (set! s3-1 (logior s3-1 #x20000)) + ((< (the-as uint 225) (-> pad leftx)) + (set! buttons-pushed (logior (pad-buttons l-analog-right) buttons-pushed)) ) ) (cond - ((< (-> s4-0 righty) (the-as uint 30)) - (set! s3-1 (logior s3-1 #x100000)) + ((< (-> pad righty) (the-as uint 30)) + (set! buttons-pushed (logior (pad-buttons r-analog-down) buttons-pushed)) ) - ((< (the-as uint 225) (-> s4-0 righty)) - (set! s3-1 (logior s3-1 #x400000)) + ((< (the-as uint 225) (-> pad righty)) + (set! buttons-pushed (logior (pad-buttons r-analog-up) buttons-pushed)) ) ) (cond - ((< (-> s4-0 rightx) (the-as uint 30)) - (set! s3-1 (logior s3-1 #x800000)) + ((< (-> pad rightx) (the-as uint 30)) + (set! buttons-pushed (logior (pad-buttons r-analog-left) buttons-pushed)) ) - ((< (the-as uint 225) (-> s4-0 rightx)) - (set! s3-1 (logior s3-1 #x200000)) + ((< (the-as uint 225) (-> pad rightx)) + (set! buttons-pushed (logior (pad-buttons r-analog-right) buttons-pushed)) ) ) (let ((v1-123 (get-current-language))) @@ -431,13 +434,13 @@ ((or (= v1-123 (language-enum japanese)) (= v1-123 (language-enum korean))) (case (scf-get-territory) ((2 3) - (if (logtest? s3-1 8192) - (set! s3-1 (logior s3-1 #x1000000)) + (if (logtest? buttons-pushed (pad-buttons circle)) + (set! buttons-pushed (logior (pad-buttons confirm) buttons-pushed)) ) ) (else - (if (logtest? s3-1 #x6000) - (set! s3-1 (logior s3-1 #x1000000)) + (if (logtest? buttons-pushed (pad-buttons circle x)) + (set! buttons-pushed (logior (pad-buttons confirm) buttons-pushed)) ) ) ) @@ -445,55 +448,55 @@ ((let ((v1-135 (scf-get-territory))) (or (= v1-135 2) (= v1-135 3)) ) - (if (logtest? s3-1 #x6000) - (set! s3-1 (logior s3-1 #x1000000)) + (if (logtest? buttons-pushed (pad-buttons circle x)) + (set! buttons-pushed (logior (pad-buttons confirm) buttons-pushed)) ) ) (else - (if (logtest? s3-1 #x4000) - (set! s3-1 (logior s3-1 #x1000000)) + (if (logtest? buttons-pushed (pad-buttons x)) + (set! buttons-pushed (logior (pad-buttons confirm) buttons-pushed)) ) ) ) ) - (set! (-> s4-0 button0-shadow-abs 0) (the-as pad-buttons s3-1)) - (set! (-> s4-0 button0-abs 0) (the-as pad-buttons s3-1)) + (set! (-> pad button0-shadow-abs 0) buttons-pushed) + (set! (-> pad button0-abs 0) buttons-pushed) ) - (set! (-> s4-0 button0-rel 0) (logclear (-> s4-0 button0-abs 0) (-> s4-0 button0-abs 1))) + (set! (-> pad button0-rel 0) (logclear (-> pad button0-abs 0) (-> pad button0-abs 1))) (when *cpad-debug* - (set! (-> s4-0 leftx) (the-as uint 255)) - (set! (-> s4-0 rightx) (the-as uint 255)) + (set! (-> pad leftx) (the-as uint 255)) + (set! (-> pad rightx) (the-as uint 255)) ) - (set! (-> s4-0 stick0-speed) 1.0) + (set! (-> pad stick0-speed) 1.0) (cond - ((= (shr (-> s4-0 status) 4) 7) - (let ((f30-0 (* 0.0078125 (the float (+ (-> s4-0 leftx) -128)))) - (f28-0 (* 0.0078125 (the float (- 127 (the-as int (-> s4-0 lefty)))))) + ((= (shr (-> pad status) 4) 7) + (let ((f30-0 (* 0.0078125 (the float (+ (-> pad leftx) -128)))) + (f28-0 (* 0.0078125 (the float (- 127 (the-as int (-> pad lefty)))))) ) - (set! (-> s4-0 stick0-dir) (atan (- f30-0) f28-0)) - (set! (-> s4-0 stick0-speed) (fmin 1.0 (sqrtf (+ (* f30-0 f30-0) (* f28-0 f28-0))))) + (set! (-> pad stick0-dir) (atan (- f30-0) f28-0)) + (set! (-> pad stick0-speed) (fmin 1.0 (sqrtf (+ (* f30-0 f30-0) (* f28-0 f28-0))))) ) - (if (< (-> s4-0 stick0-speed) 0.3) - (set! (-> s4-0 stick0-speed) 0.0) + (if (< (-> pad stick0-speed) 0.3) + (set! (-> pad stick0-speed) 0.0) ) ) (else - (set! (-> s4-0 leftx) (the-as uint 128)) - (set! (-> s4-0 lefty) (the-as uint 128)) - (set! (-> s4-0 rightx) (the-as uint 128)) - (set! (-> s4-0 righty) (the-as uint 128)) - (set! (-> s4-0 stick0-dir) 0.0) - (set! (-> s4-0 stick0-speed) 0.0) + (set! (-> pad leftx) (the-as uint 128)) + (set! (-> pad lefty) (the-as uint 128)) + (set! (-> pad rightx) (the-as uint 128)) + (set! (-> pad righty) (the-as uint 128)) + (set! (-> pad stick0-dir) 0.0) + (set! (-> pad stick0-speed) 0.0) ) ) - (if (or (!= (-> s4-0 button0-abs 0) (-> s4-0 button0-abs 1)) - (or (< 0.3 (-> s4-0 stick0-speed)) (zero? (-> s4-0 change-time))) + (if (or (!= (-> pad button0-abs 0) (-> pad button0-abs 1)) + (or (< 0.3 (-> pad stick0-speed)) (zero? (-> pad change-time))) ) - (set! (-> s4-0 change-time) (get-current-time)) + (set! (-> pad change-time) (get-current-time)) ) ) (else - (cpad-invalid! s4-0) + (cpad-invalid! pad) ) ) ) @@ -567,6 +570,7 @@ ) ) + (defmethod new mouse-info ((allocation symbol) (type-to-make type)) "Allocate a new mouse." (let ((v0-0 (object-new allocation type-to-make (the-as int (-> type-to-make size))))) @@ -579,6 +583,7 @@ (define *mouse* (new 'global 'mouse-info)) +;; WARN: Return type mismatch mouse-info vs none. (defun service-mouse () "Update the mouse, and draw the cursor." (let ((gp-0 *mouse*)) @@ -623,7 +628,3 @@ ) (none) ) - - - - diff --git a/goal_src/jak2/engine/sound/speech-h.gc b/goal_src/jak2/engine/sound/speech-h.gc index d73399eb69..9c0b116295 100644 --- a/goal_src/jak2/engine/sound/speech-h.gc +++ b/goal_src/jak2/engine/sound/speech-h.gc @@ -87,7 +87,7 @@ (:methods (speech-control-method-9 () none 9) (speech-control-method-10 () none 10) - (speech-control-method-11 () none 11) + (speech-control-method-11 (_type_) none 11) (speech-control-method-12 () none 12) (speech-control-method-13 () none 13) (speech-control-method-14 () none 14) diff --git a/goal_src/jak2/engine/target/board/board-states.gc b/goal_src/jak2/engine/target/board/board-states.gc index a2e1d089e3..4cbecf505d 100644 --- a/goal_src/jak2/engine/target/board/board-states.gc +++ b/goal_src/jak2/engine/target/board/board-states.gc @@ -19,10 +19,8 @@ (define-extern target-clone-anim (state handle target)) (define-extern clone-anim (function handle symbol string none :behavior process-drawable)) (define-extern lightning-probe-callback (function lightning-tracker none)) -(define-extern process-drawable-shock-effect (function process-drawable lightning-spec (function lightning-tracker none) sparticle-launcher int int float none)) (define-extern target-death (state symbol target)) (define-extern target-hit-effect (function attack-info none :behavior target)) -(define-extern demo? (function symbol)) (define-extern hide-hud-quick (function symbol none)) (define-extern *smack-mods* surface) (define-extern target-hit-orient (function attack-info vector symbol :behavior target)) @@ -32,9 +30,6 @@ ;; DECOMP BEGINS -(format 0 "SKIP: target-board-clone-anim in board-states~%") - -;; definition for function vector-vector-angle (defun vector-vector-angle ((arg0 vector) (arg1 vector)) (let ((s4-0 (new 'stack-no-clear 'matrix)) (gp-0 (new 'stack-no-clear 'matrix)) @@ -47,7 +42,6 @@ ) ) -;; definition for function target-board-anim-trans ;; WARN: Return type mismatch float vs none. (defbehavior target-board-anim-trans target () (let ((f26-0 (deg- @@ -129,8 +123,6 @@ (none) ) -;; definition for function target-board-spin-check -;; INFO: Used lq/sq ;; WARN: Return type mismatch object vs none. (defbehavior target-board-spin-check target () (when (and (or (cpad-pressed? (-> self control unknown-cpad-info00 number) r1) @@ -353,8 +345,6 @@ (none) ) -;; definition for function target-board-ground-check -;; INFO: Used lq/sq ;; WARN: Return type mismatch symbol vs none. ;; ERROR: Function may read a register that is not set: a0 ;; ERROR: Function may read a register that is not set: a1 @@ -957,7 +947,7 @@ :enter (behavior ((arg0 meters) (arg1 meters) (arg2 symbol)) (local-vars (sv-144 (function vector entity-actor skeleton-group vector none :behavior manipy)) - (sv-160 entity) + (sv-160 entity-actor) ) (if (= arg2 'hit) (set! arg2 #f) @@ -3178,34 +3168,33 @@ :post target-board-post ) -;; failed to figure out what this is: -; (defstate target-board-clone-anim (target) -; :event (behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block)) -; (if (and (= arg2 'trans) (= (-> arg3 param 0) 'restore)) -; (set! (-> self control unknown-word04) (the-as uint #f)) -; ) -; ((-> target-board-grab event) arg0 arg1 arg2 arg3) -; ) -; :enter (-> target-clone-anim enter) -; :exit (behavior () -; (set! (-> self control unknown-vector04 y) (the-as float (-> self control unknown-word04))) -; (set! (-> self control unknown-vector05 y) (-> self control unknown-vector04 y)) -; (send-event (ppointer->process (-> self sidekick)) 'matrix 'board) -; ((-> target-clone-anim exit)) -; ((-> target-board-start exit)) -; (vector-reset! (-> self control transv)) -; (none) -; ) -; :code (behavior ((arg0 handle)) -; (set! (-> self control unknown-word04) (the-as uint (-> self control unknown-vector04 y))) -; (set! (-> self control unknown-vector04 y) 0.0) -; (send-event (ppointer->process (-> self sidekick)) 'matrix 'play-anim) -; (clone-anim arg0 #t "") -; (go target-board-stance) -; (none) -; ) -; :post target-no-ja-move-post -; ) +(defstate target-board-clone-anim (target) + :event (behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block)) + (if (and (= arg2 'trans) (= (-> arg3 param 0) 'restore)) + (set! (-> self control unknown-word04) (the-as uint #f)) + ) + ((-> target-board-grab event) arg0 arg1 arg2 arg3) + ) + :enter (-> target-clone-anim enter) + :exit (behavior () + (set! (-> self control unknown-vector04 y) (the-as float (-> self control unknown-word04))) + (set! (-> self control unknown-vector05 y) (-> self control unknown-vector04 y)) + (send-event (ppointer->process (-> self sidekick)) 'matrix 'board) + ((-> target-clone-anim exit)) + ((-> target-board-start exit)) + (vector-reset! (-> self control transv)) + (none) + ) + :code (behavior ((arg0 handle)) + (set! (-> self control unknown-word04) (the-as uint (-> self control unknown-vector04 y))) + (set! (-> self control unknown-vector04 y) 0.0) + (send-event (ppointer->process (-> self sidekick)) 'matrix 'play-anim) + (clone-anim arg0 #t "") + (go target-board-stance) + (none) + ) + :post target-no-ja-move-post + ) ;; failed to figure out what this is: (defstate target-board-hit (target) diff --git a/goal_src/jak2/engine/target/board/target-board.gc b/goal_src/jak2/engine/target/board/target-board.gc index 2ccdf33116..e235c915a5 100644 --- a/goal_src/jak2/engine/target/board/target-board.gc +++ b/goal_src/jak2/engine/target/board/target-board.gc @@ -178,7 +178,6 @@ ) ) -;; failed to figure out what this is: (set! (-> *board-duck-mods* mult-hook) (-> *board-walk-mods* mult-hook)) ;; definition for symbol *board-air-mods*, type surface @@ -292,7 +291,6 @@ ;; definition for symbol *board-duck-jump-mods*, type surface (define *board-duck-jump-mods* *board-jump-mods*) -;; definition for symbol *board-spin-mods*, type surface (define *board-spin-mods* (copy *board-jump-mods* 'global)) ;; failed to figure out what this is: @@ -309,7 +307,6 @@ (set! (-> v1-10 tiltvf) 0.0) ) -;; failed to figure out what this is: (let ((v1-12 (copy *board-jump-mods* 'global))) (set! (-> v1-12 seek0) 0.0) (set! (-> v1-12 seek90) 0.0) @@ -318,7 +315,6 @@ (set! *board-spin-post-mods* v1-12) ) -;; failed to figure out what this is: (let ((v1-14 (copy *board-duck-jump-mods* 'global))) (set! (-> v1-14 flags) (surface-flag no-turn-around turn-to-vel air)) (set! (-> v1-14 seek0) 0.0) @@ -431,7 +427,6 @@ ) ) -;; failed to figure out what this is: (set! (-> *board-turn-to-mods* mult-hook) (-> *board-walk-mods* mult-hook)) ;; definition for symbol *board-ride-mods*, type surface @@ -510,11 +505,8 @@ ) ) -;; definition for function target-board-handler ;; ERROR: function was not converted to expressions. Cannot decompile. -;; definition for function target-board-setup -;; WARN: Return type mismatch int vs none. (defbehavior target-board-setup target ((arg0 symbol)) (when (zero? (-> self board)) (set! (-> self board) (new 'process 'board-info)) @@ -1711,7 +1703,7 @@ (bucket-id debug-no-zbuf1) (-> self control trans) s5-0 - (meters 2.0) + (meters 2) (the-as rgba (-> (new 'static 'array uint64 1 #x8000ff00) 0)) ) ) @@ -1966,9 +1958,7 @@ #f ) -;; definition for function target-board-compute-edge ;; WARN: Found some very strange gotos. Check result carefully, this is not well tested. -;; INFO: Used lq/sq (defbehavior target-board-compute-edge target () (local-vars (sv-768 int)) (let ((s4-0 *edge-grab-info*) @@ -2489,7 +2479,7 @@ (set! (-> a2-4 ignore-process1) #f) (set! (-> a2-4 ignore-pat) (-> v1-103 pat-ignore-mask)) (set! (-> a2-4 action-mask) (collide-action solid)) - (collide-shape-method-32 v1-103 (-> v1-103 transv) a2-4 (meters 1.0)) + (collide-shape-method-32 v1-103 (-> v1-103 transv) a2-4 (meters 1)) ) (when (logtest? (-> self control root-prim prim-core action) (collide-action check-edge)) (set! (-> *collide-edge-board-spec* flags) (logand -5 (-> *collide-edge-board-spec* flags))) diff --git a/goal_src/jak2/engine/target/gun/gun-h.gc b/goal_src/jak2/engine/target/gun/gun-h.gc index 93e2f28b69..d93551cd80 100644 --- a/goal_src/jak2/engine/target/gun/gun-h.gc +++ b/goal_src/jak2/engine/target/gun/gun-h.gc @@ -30,7 +30,7 @@ (die () _type_ :state 23) ) ) - + (deftype gun-info (basic) ((process (pointer target) :offset-assert 4) @@ -124,6 +124,7 @@ ) ) + (defbehavior want-to-gun? process ((arg0 target) (arg1 symbol)) (local-vars (v1-36 symbol)) (and (logtest? (-> arg0 game features) (game-feature unk-game-feature-06)) @@ -131,7 +132,7 @@ (zero? (logand (focus-status dead hit board mech dark teleporting) (-> arg0 focus-status))) (zero? (logand (surface-flag gun-inactive gun-hide gun-off) (-> arg0 control unknown-surface01 flags))) (zero? (logand (state-flags sf18) (-> arg0 state-flags))) - (logtest? (the-as game-feature (logand (-> *setting-control* user-current features) 960)) + (logtest? (logand (-> *setting-control* user-current features) (game-feature gun-yellow gun-red gun-blue gun-dark)) (-> arg0 game features) ) (or (zero? (logand (-> arg0 control unknown-surface01 flags) (surface-flag duck))) (can-exit-duck?)) diff --git a/goal_src/jak2/engine/target/logic-target.gc b/goal_src/jak2/engine/target/logic-target.gc index 65f7ae4af8..f95989eb31 100644 --- a/goal_src/jak2/engine/target/logic-target.gc +++ b/goal_src/jak2/engine/target/logic-target.gc @@ -30,8 +30,6 @@ ;; DECOMP BEGINS -;; definition for function build-conversions -;; INFO: Used lq/sq (defbehavior build-conversions target ((arg0 vector)) (when (!= (-> self control unknown-surface02) (-> self control surf)) (set! (-> self control unknown-surface02) (-> self control surf)) @@ -86,8 +84,6 @@ ) ) -;; definition for function vector-turn-to -;; INFO: Used lq/sq (defbehavior vector-turn-to target ((arg0 vector)) (forward-up-nopitch->quaternion (-> self control dir-targ) @@ -98,7 +94,6 @@ (build-conversions (-> self control transv)) ) -;; definition for function reverse-conversions ;; WARN: Return type mismatch cshape-moving-flags vs none. (defbehavior reverse-conversions target ((arg0 vector)) (let ((v1-1 (-> self control unknown-vector00))) @@ -109,7 +104,6 @@ (none) ) -;; definition (debug) for function draw-history (defun-debug draw-history ((arg0 control-info)) (when (nonzero? *display-collide-history*) (when (cpad-pressed? 0 l3) @@ -148,11 +142,8 @@ (none) ) -;; definition (debug) for function target-history-print ;; ERROR: function was not converted to expressions. Cannot decompile. -;; definition (debug) for function target-print-stats -;; INFO: Used lq/sq (defun-debug target-print-stats ((arg0 target) (arg1 symbol)) (local-vars (sv-64 int) @@ -536,8 +527,6 @@ ) ) -;; definition for function read-pad -;; INFO: Used lq/sq (defbehavior read-pad target ((arg0 vector)) (when (!= (-> self control unknown-dword01) (-> *display* real-clock frame-counter)) (set! (-> self control unknown-vector13 quad) (-> self control unknown-vector12 quad)) @@ -571,7 +560,6 @@ (vector-matrix*! arg0 arg0 (-> self control unknown-matrix03)) ) -;; definition for function set-pad (defbehavior set-pad target ((arg0 vector)) (set! (-> self control unknown-float12) (vector-length arg0)) (let ((s5-0 vector-matrix*!) @@ -585,16 +573,12 @@ arg0 ) -;; definition for function warp-vector-into-surface! -;; INFO: Used lq/sq (defun warp-vector-into-surface! ((arg0 vector) (arg1 vector) (arg2 vector) (arg3 matrix)) (let ((a2-1 (matrix-from-two-vectors! (new-stack-matrix0) (-> arg3 vector 1) arg2))) (vector-matrix*! arg0 arg1 a2-1) ) ) -;; definition for function vector<-pad-in-surface! -;; INFO: Used lq/sq (defbehavior vector<-pad-in-surface! target ((arg0 vector) (arg1 symbol)) (let ((a1-1 (read-pad (new-stack-vector0)))) (warp-vector-into-surface! arg0 a1-1 (-> self control local-normal) (-> self control unknown-matrix03)) @@ -605,7 +589,6 @@ arg0 ) -;; definition for function vector<-pad-in-matrix! ;; WARN: Return type mismatch vector vs none. (defun vector<-pad-in-matrix! ((arg0 vector) (arg1 cpad-info) (arg2 matrix)) (let ((gp-0 (new 'stack-no-clear 'vector)) @@ -628,8 +611,6 @@ (none) ) -;; definition for function local-pad-angle -;; INFO: Used lq/sq (defbehavior local-pad-angle target () (let ((a0-1 (vector<-pad-in-surface! (new-stack-vector0) #f))) (vector-dot @@ -639,8 +620,6 @@ ) ) -;; definition for function turn-around? -;; INFO: Used lq/sq (defbehavior turn-around? target () (let* ((a0-1 (vector<-pad-in-surface! (new-stack-vector0) #f)) (gp-0 (vector-normalize! a0-1 1.0)) @@ -689,8 +668,6 @@ ) ) -;; definition for function wall-hide? -;; INFO: Used lq/sq (defbehavior wall-hide? target () (when (and (< 0.7 (-> self control unknown-float12)) (< 0.7 (-> self control unknown-float27)) @@ -762,9 +739,6 @@ ) ) -;; definition for function target-log-trans -;; INFO: Used lq/sq -;; WARN: Return type mismatch int vs none. (defbehavior target-log-trans target () (let ((v1-1 (-> self control unknown-word00))) (set! (-> self control unknown-time-frame-array00 v1-1) (-> self clock frame-counter)) @@ -775,8 +749,6 @@ (none) ) -;; definition for function target-move-dist -;; INFO: Used lq/sq (defbehavior target-move-dist target ((arg0 time-frame)) (let ((s5-0 (new-stack-vector0)) (f30-0 0.0) @@ -807,8 +779,6 @@ ) ) -;; definition for function turn-to-vector -;; INFO: Used lq/sq (defbehavior turn-to-vector target ((arg0 vector) (arg1 float)) (let ((gp-0 (new-stack-vector0))) (warp-vector-into-surface! gp-0 arg0 (-> self control local-normal) (-> self control unknown-matrix03)) @@ -856,7 +826,6 @@ ) ) -;; definition for function target-bend-vel-turn (defbehavior target-bend-vel-turn target ((arg0 vector)) (cond ((= (-> self control unknown-surface01 vel-turn) 0.0) @@ -884,8 +853,6 @@ arg0 ) -;; definition for function target-add-slide-factor -;; INFO: Used lq/sq (defbehavior target-add-slide-factor target ((arg0 vector)) (let* ((a1-2 (vector-flatten! (new 'stack-no-clear 'vector) @@ -945,8 +912,6 @@ arg0 ) -;; definition for function add-thrust -;; INFO: Used lq/sq (defbehavior add-thrust target () (let ((s5-0 (-> self control unknown-vector01)) (gp-0 (-> self control unknown-vector00)) @@ -1106,8 +1071,6 @@ ) ) -;; definition for function add-gravity -;; INFO: Used lq/sq (defbehavior add-gravity target () (let ((s5-0 (new-stack-vector0)) (gp-0 (new-stack-vector0)) @@ -1150,7 +1113,6 @@ ) ) -;; definition for function target-compute-slopes (defbehavior target-compute-slopes target ((arg0 vector)) (let ((gp-0 (new 'stack-no-clear 'vector)) (s4-0 (vector-y-quaternion! (new 'stack-no-clear 'vector) (-> self control unknown-quaternion00))) @@ -1182,7 +1144,6 @@ 0 ) -;; definition for function do-rotations1 (defbehavior do-rotations1 target () (rotate-toward-orientation! (-> self control) @@ -1195,8 +1156,6 @@ ) ) -;; definition for function do-rotations2 -;; INFO: Used lq/sq (defbehavior do-rotations2 target () (let ((gp-0 (vector-z-quaternion! (new-stack-vector0) (-> self control dir-targ))) (s5-0 @@ -1261,7 +1220,7 @@ (bucket-id debug-no-zbuf1) (-> self control trans) gp-0 - (meters 2.0) + (meters 2) (the-as rgba (-> (new 'static 'array uint64 1 #x8000ffff) 0)) ) (add-debug-vector @@ -1269,7 +1228,7 @@ (bucket-id debug-no-zbuf1) (-> self control trans) s5-0 - (meters 2.0) + (meters 2) (the-as rgba (-> (new 'static 'array uint64 1 #x800080ff) 0)) ) ) @@ -1278,7 +1237,7 @@ (bucket-id debug-no-zbuf1) (-> self control trans) (-> self control unknown-matrix01 vector 2) - (meters 2.0) + (meters 2) (the-as rgba (-> (new 'static 'array uint64 1 #x80ff00ff) 0)) ) (rotate-toward-orientation! @@ -1311,8 +1270,6 @@ (target-compute-slopes (-> self control dynam gravity-normal)) ) -;; definition for function leg-ik-callback -;; INFO: Used lq/sq (defun leg-ik-callback ((arg0 joint-mod-ik) (arg1 object) (arg2 object) (arg3 vector)) (rlet ((acc :class vf) (vf0 :class vf) @@ -1411,9 +1368,6 @@ ) ) -;; definition for function target-update-ik -;; INFO: Used lq/sq -;; WARN: Return type mismatch int vs none. (defbehavior target-update-ik target () (rlet ((acc :class vf) (vf0 :class vf) @@ -1586,9 +1540,6 @@ ) ) -;; definition for function pre-collide-setup -;; INFO: Used lq/sq -;; WARN: Return type mismatch int vs none. (defbehavior pre-collide-setup target () (if (>= (-> self clock frame-counter) (-> self control unknown-time-frame04)) (vector-normalize! @@ -1623,13 +1574,11 @@ (none) ) -;; definition for function level-setup -;; WARN: Return type mismatch int vs none. (defbehavior level-setup target () (let ((gp-0 (-> self current-level))) (set! (-> self current-level) (level-get-target-inside *level*)) (if (-> self current-level) - (+! (-> self game unknown-array3 (-> self current-level info task-level)) + (+! (-> self game task-in-times (-> self current-level info task-level)) (- (-> self clock frame-counter) (-> self clock old-frame-counter)) ) ) @@ -1641,9 +1590,6 @@ (none) ) -;; definition for function flag-setup -;; INFO: Used lq/sq -;; WARN: Return type mismatch int vs none. (defbehavior flag-setup target () (cond ((= (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) stick0-speed) 0.0) @@ -1910,8 +1856,6 @@ (none) ) -;; definition for function post-flag-setup -;; WARN: Return type mismatch int vs none. (defbehavior post-flag-setup target () (if (logtest? (-> self control status) (cshape-moving-flags t-wall t-act)) (set! (-> self control unknown-time-frame07) (-> self clock frame-counter)) @@ -2000,8 +1944,6 @@ (none) ) -;; definition for function bend-gravity -;; INFO: Used lq/sq (defbehavior bend-gravity target () (if (and (logtest? (-> self control root-prim prim-core action) (collide-action no-normal-reset)) (zero? (logand (-> self control status) (cshape-moving-flags on-surface))) @@ -2058,7 +2000,7 @@ (bucket-id debug-no-zbuf1) (-> self control trans) gp-0 - (meters 2.0) + (meters 2) (new 'static 'rgba :b #xff :a #x80) ) ) @@ -2068,7 +2010,7 @@ (bucket-id debug-no-zbuf1) (-> self control trans) (-> self control local-normal) - (meters 2.0) + (meters 2) (the-as rgba (-> (new 'static 'array uint64 1 #x800000ff) 0)) ) (add-debug-vector @@ -2084,7 +2026,7 @@ (bucket-id debug-no-zbuf1) (-> self control trans) (-> self control dynam gravity-normal) - (meters 3.0) + (meters 3) (the-as rgba (-> (new 'static 'array uint64 1 #x80ff00ff) 0)) ) (add-debug-vector @@ -2092,7 +2034,7 @@ (bucket-id debug-no-zbuf1) (-> self control trans) (-> self control unknown-vector02) - (meters 3.0) + (meters 3) (the-as rgba (-> (new 'static 'array uint64 1 #x80ff00ff) 0)) ) (add-debug-vector @@ -2100,13 +2042,11 @@ (bucket-id debug-no-zbuf1) (-> self control trans) (vector-y-quaternion! (new 'stack-no-clear 'vector) (-> self control unknown-quaternion00)) - (meters 3.0) + (meters 3) (the-as rgba (-> (new 'static 'array uint64 1 #x800000ff) 0)) ) ) -;; definition for function target-compute-edge -;; INFO: Used lq/sq (defbehavior target-compute-edge target () (let ((s5-0 *edge-grab-info*)) (cond @@ -2256,8 +2196,6 @@ (none) ) -;; definition for function target-compute-edge-rider -;; INFO: Used lq/sq (defbehavior target-compute-edge-rider target () (let ((gp-0 *edge-grab-info*)) (cond @@ -2322,8 +2260,6 @@ (none) ) -;; definition for function target-compute-pole -;; INFO: Used lq/sq (defbehavior target-compute-pole target () (let* ((s2-0 (handle->process (-> self control unknown-handle01))) (gp-0 (-> (the-as swingpole s2-0) dir)) @@ -2426,9 +2362,6 @@ (none) ) -;; definition for function target-calc-camera-pos -;; INFO: Used lq/sq -;; WARN: Return type mismatch int vs none. (defbehavior target-calc-camera-pos target () (let ((s5-0 (new 'stack-no-clear 'vector)) (gp-0 (new 'stack-no-clear 'vector)) @@ -2519,9 +2452,6 @@ (none) ) -;; definition for function joint-points -;; INFO: Used lq/sq -;; WARN: Return type mismatch int vs none. (defbehavior joint-points target () (let ((f0-1 (* 0.00078125 (the float (-> self neck loock-at-count))))) (if (!= f0-1 0.0) @@ -2616,9 +2546,6 @@ (none) ) -;; definition for function do-target-gspot -;; INFO: Used lq/sq -;; WARN: Return type mismatch int vs none. (defbehavior do-target-gspot target () (cond ((and (logtest? (-> self control status) (cshape-moving-flags on-surface)) @@ -2650,8 +2577,6 @@ (none) ) -;; definition for function target-real-post -;; INFO: Used lq/sq (defbehavior target-real-post target () (let ((f30-0 (-> self clock clock-ratio))) (let ((gp-1 (max 1 (the int (-> self clock time-adjust-ratio))))) @@ -2739,7 +2664,7 @@ (set! (-> a2-3 ignore-pat) (-> v1-52 pat-ignore-mask)) ) (set! (-> a2-3 action-mask) (collide-action solid)) - (collide-shape-method-32 (-> self control) (-> self control transv) a2-3 (meters 1.0)) + (collide-shape-method-32 (-> self control) (-> self control transv) a2-3 (meters 1)) ) (if (and (logtest? (-> self control root-prim prim-core action) (collide-action check-edge)) (>= (vector-dot @@ -2818,14 +2743,11 @@ (none) ) -;; definition for function target-post (defbehavior target-post target () (target-real-post) (none) ) -;; definition for function target-swim-post -;; INFO: Used lq/sq (defbehavior target-swim-post target () (let ((f30-0 (-> self clock clock-ratio))) (let ((gp-1 (max 1 (the int (-> self clock time-adjust-ratio))))) @@ -2875,7 +2797,7 @@ (set! (-> a2-0 ignore-pat) (-> v1-30 pat-ignore-mask)) ) (set! (-> a2-0 action-mask) (collide-action solid)) - (collide-shape-method-32 (-> self control) (-> self control transv) a2-0 (meters 1.0)) + (collide-shape-method-32 (-> self control) (-> self control transv) a2-0 (meters 1)) ) (if (and (logtest? (-> self control root-prim prim-core action) (collide-action check-edge)) (>= (vector-dot @@ -2953,8 +2875,6 @@ (none) ) -;; definition for function target-no-stick-post -;; INFO: Used lq/sq (defbehavior target-no-stick-post target () (let ((f30-0 (-> self clock clock-ratio))) (let ((gp-1 (max 1 (the int (-> self clock time-adjust-ratio))))) @@ -3004,7 +2924,7 @@ (set! (-> a2-0 ignore-pat) (-> v1-29 pat-ignore-mask)) ) (set! (-> a2-0 action-mask) (collide-action solid)) - (collide-shape-method-32 (-> self control) (-> self control transv) a2-0 (meters 1.0)) + (collide-shape-method-32 (-> self control) (-> self control transv) a2-0 (meters 1)) ) (if (and (logtest? (-> self control root-prim prim-core action) (collide-action check-edge)) (>= (vector-dot @@ -3083,8 +3003,6 @@ (none) ) -;; definition for function target-no-move-post -;; INFO: Used lq/sq (defbehavior target-no-move-post target () (let ((f30-0 (-> self clock clock-ratio))) (let ((gp-1 (max 1 (the int (-> self clock time-adjust-ratio))))) @@ -3182,7 +3100,6 @@ (none) ) -;; definition for function target-no-ja-move-post (defbehavior target-no-ja-move-post target () (vector-! (-> self control unknown-vector05) @@ -3202,8 +3119,6 @@ (none) ) -;; definition for function reset-target-state -;; INFO: Used lq/sq (defbehavior reset-target-state target ((arg0 symbol)) (when arg0 (vector-identity! (-> self control scale)) @@ -3233,9 +3148,6 @@ self ) -;; definition for method 28 of type target -;; INFO: Used lq/sq -;; WARN: Return type mismatch int vs none. (defmethod init-target target ((obj target) (arg0 continue-point) (arg1 symbol)) (local-vars (s1-0 int) (s2-0 int) (s3-0 int) (s4-0 int) (sv-16 collide-shape-prim-group)) (set! (-> obj tobot?) arg1) @@ -3247,7 +3159,7 @@ (set! (-> *setting-control* cam-default mode-name) 'cam-string) (apply-settings *setting-control*) (if (not arg0) - (set! arg0 (get-current-continue-point *game-info*)) + (set! arg0 (get-current-continue-forced *game-info*)) ) (set-continue! *game-info* arg0 #f) (stack-size-set! (-> obj main-thread) 1024) @@ -3470,7 +3382,6 @@ (none) ) -;; definition for function target-init ;; WARN: Return type mismatch object vs none. (defbehavior target-init target ((arg0 continue-point)) (init-target self arg0 #f) @@ -3480,7 +3391,6 @@ (none) ) -;; definition for function tobot-init ;; WARN: Return type mismatch object vs none. (defbehavior tobot-init target ((arg0 symbol)) (init-target self (the-as continue-point #f) 'tobot) @@ -3491,7 +3401,6 @@ (none) ) -;; definition for method 10 of type target (defmethod deactivate target ((obj target)) (kill-persister *setting-control* (the-as engine-pers 'bg-a-speed) 'bg-a-speed) (if (nonzero? (-> obj darkjak)) @@ -3503,7 +3412,6 @@ (none) ) -;; definition for function stop (defun stop ((arg0 symbol)) (when *target* (kill-by-name "target" *active-pool*) @@ -3513,7 +3421,6 @@ 0 ) -;; definition for function start (defun start ((arg0 symbol) (arg1 continue-point)) (let ((v1-0 arg0)) (set! (-> *level* play?) (if (= v1-0 'play) @@ -3544,7 +3451,6 @@ *target* ) -;; definition for function tobot-start ;; WARN: Return type mismatch (pointer process) vs target. (defun tobot-start ((arg0 symbol)) (the-as target (process-spawn @@ -3558,7 +3464,6 @@ ) ) -;; definition for function tobot-stop (defun tobot-stop () (kill-by-name "tobot" *active-pool*) 0 diff --git a/goal_src/jak2/engine/target/target2.gc b/goal_src/jak2/engine/target/target2.gc index 161fe0e6d6..12e7858615 100644 --- a/goal_src/jak2/engine/target/target2.gc +++ b/goal_src/jak2/engine/target/target2.gc @@ -7,3 +7,7 @@ ;; DECOMP BEGINS +(defstate target-clone-anim (target) + :code (behavior ((hnd handle)) + (looping-code)) + ) \ No newline at end of file diff --git a/goal_src/jak2/engine/ui/hud-h.gc b/goal_src/jak2/engine/ui/hud-h.gc index 3a355e21c8..de098da91d 100644 --- a/goal_src/jak2/engine/ui/hud-h.gc +++ b/goal_src/jak2/engine/ui/hud-h.gc @@ -499,3 +499,8 @@ :size-assert #xba4 :flag-assert #x1b0b300ba4 ) + + +(define-extern hud-init-by-other (function object :behavior hud)) + +(define-extern show-hud (function object none)) diff --git a/goal_src/jak2/engine/ui/hud.gc b/goal_src/jak2/engine/ui/hud.gc index 3347c19086..8a68c5928e 100644 --- a/goal_src/jak2/engine/ui/hud.gc +++ b/goal_src/jak2/engine/ui/hud.gc @@ -6,4 +6,3 @@ ;; dgos: ENGINE, GAME ;; DECOMP BEGINS - diff --git a/goal_src/jak2/engine/ui/minimap-h.gc b/goal_src/jak2/engine/ui/minimap-h.gc index afb8c9e3e9..cef6d9daf1 100644 --- a/goal_src/jak2/engine/ui/minimap-h.gc +++ b/goal_src/jak2/engine/ui/minimap-h.gc @@ -4,6 +4,7 @@ ;; name: minimap-h.gc ;; name in dgo: minimap-h ;; dgos: ENGINE, GAME + (defenum minimap-flag :bitfield #t :type uint16 @@ -118,6 +119,7 @@ :flag-assert #x900000024 ) + (deftype connection-minimap (connection-pers) ((handle handle :offset 8) (position vector :offset 16) @@ -134,6 +136,7 @@ :flag-assert #x900000050 ) + (deftype engine-minimap (engine-pers) ((alive-list-override connection-minimap :offset 24) (dead-list-override connection-minimap :offset 28) @@ -143,6 +146,7 @@ :flag-assert #xf00000020 ) + (deftype minimap-trail (structure) ((used-by connection-minimap :offset-assert 0) (search-id uint32 :offset-assert 4) @@ -162,6 +166,7 @@ ) ) + (deftype minimap-draw-work (structure) ((buf basic :offset-assert 0) (justify-right basic :offset-assert 4) @@ -174,6 +179,7 @@ :flag-assert #x9000000a0 ) + (deftype minimap (structure) ((draw-tmpl dma-gif-packet :inline :offset-assert 0) (draw2-tmpl dma-gif-packet :inline :offset-assert 32) @@ -192,7 +198,7 @@ (ctywide basic :offset-assert 268) (inv-scale float :offset 212) (fade float :offset 220) - (engine basic :offset-assert 272) + (engine engine-minimap :offset-assert 272) (engine-key uint32 :offset-assert 276) (trail minimap-trail 6 :inline :offset-assert 288) (race-tex basic :offset-assert 1536) @@ -210,7 +216,7 @@ (minimap-method-9 () none 9) (minimap-method-10 () none 10) (minimap-method-11 () none 11) - (minimap-method-12 () none 12) + (minimap-method-12 (_type_ process uint int vector int) connection-minimap 12) (minimap-method-13 () none 13) (minimap-method-14 () none 14) (minimap-method-15 () none 15) @@ -229,3 +235,6 @@ ) ) + +(define-extern *minimap* minimap) + diff --git a/goal_src/jak2/engine/ui/text-id-h.gc b/goal_src/jak2/engine/ui/text-id-h.gc index f4b5e2a09d..2d286e057b 100644 --- a/goal_src/jak2/engine/ui/text-id-h.gc +++ b/goal_src/jak2/engine/ui/text-id-h.gc @@ -11,6 +11,217 @@ :type uint32 :bitfield #f ;; GAME-TEXT-ID ENUM BEGINS - (pause 257) + (null 0) + + (pause #x0101) + + (text-x180 #x0180) + (text-x181 #x0181) + (text-x182 #x0182) + (text-x183 #x0183) + (text-x184 #x0184) + (text-x185 #x0185) + (text-x186 #x0186) + (text-x187 #x0187) + (text-x188 #x0188) + (text-x189 #x0189) + (text-x18a #x018a) + (text-x18b #x018b) + (text-x18c #x018c) + (text-x18d #x018d) + (text-x18e #x018e) + (text-x18f #x018f) + (text-x190 #x0190) + (text-x191 #x0191) + (text-x192 #x0192) + (text-x193 #x0193) + (text-x194 #x0194) + (text-x195 #x0195) + (text-x196 #x0196) + (text-x197 #x0197) + (text-x198 #x0198) + (text-x199 #x0199) + (text-x19a #x019a) + (text-x19b #x019b) + (text-x19c #x019c) + (text-x19d #x019d) + (text-x19e #x019e) + (text-x19f #x019f) + (text-x1a0 #x01a0) + (text-x1a1 #x01a1) + (text-x1a2 #x01a2) + (text-x1a3 #x01a3) + (text-x1a4 #x01a4) + (text-x1a5 #x01a5) + (text-x1a6 #x01a6) + (text-x1a7 #x01a7) + (text-x1a8 #x01a8) + (text-x1a9 #x01a9) + (text-x1aa #x01aa) + (text-x1ab #x01ab) + (text-x1ac #x01ac) + (text-x1ad #x01ad) + (text-x1ae #x01ae) + (text-x1af #x01af) + (text-x1b0 #x01b0) + (text-x1b1 #x01b1) + (text-x1b2 #x01b2) + (text-x1b3 #x01b3) + (text-x1b4 #x01b4) + (text-x1b5 #x01b5) + (text-x1b6 #x01b6) + (text-x1b7 #x01b7) + (text-x1b8 #x01b8) + (text-x1b9 #x01b9) + (text-x1ba #x01ba) + (text-x1bb #x01bb) + (text-x1bc #x01bc) + (text-x1bd #x01bd) + (text-x1be #x01be) + (text-x1bf #x01bf) + (text-x1c0 #x01c0) + (text-x1c1 #x01c1) + (text-x1c2 #x01c2) + (text-x1c3 #x01c3) + (text-x1c4 #x01c4) + (text-x1c5 #x01c5) + (text-x1c6 #x01c6) + (text-x1c7 #x01c7) + (text-x1c8 #x01c8) + (text-x1c9 #x01c9) + (text-x1ca #x01ca) + (text-x1cb #x01cb) + (text-x1cc #x01cc) + (text-x1cd #x01cd) + (text-x1ce #x01ce) + (text-x1cf #x01cf) + (text-x1d0 #x01d0) + (text-x1d1 #x01d1) + (text-x1d2 #x01d2) + (text-x1d3 #x01d3) + (text-x1d4 #x01d4) + (text-x1d5 #x01d5) + (text-x1d6 #x01d6) + (text-x1d7 #x01d7) + (text-x1d8 #x01d8) + (text-x1d9 #x01d9) + (text-x1da #x01da) + (text-x1db #x01db) + (text-x1dc #x01dc) + (text-x1dd #x01dd) + (text-x1de #x01de) + (text-x1df #x01df) + (text-x1e0 #x01e0) + (text-x1e1 #x01e1) + (text-x1e2 #x01e2) + (text-x1e3 #x01e3) + (text-x1e4 #x01e4) + (text-x1e5 #x01e5) + (text-x1e6 #x01e6) + (text-x1e7 #x01e7) + (text-x1e8 #x01e8) + (text-x1e9 #x01e9) + (text-x1ea #x01ea) + (text-x1eb #x01eb) + (text-x1ec #x01ec) + (text-x1ed #x01ed) + (text-x1ee #x01ee) + (text-x1ef #x01ef) + (text-x1f0 #x01f0) + (text-x1f1 #x01f1) + (text-x1f2 #x01f2) + (text-x1f3 #x01f3) + (text-x1f4 #x01f4) + (text-x1f5 #x01f5) + (text-x1f6 #x01f6) + (text-x1f7 #x01f7) + (text-x1f8 #x01f8) + (text-x1f9 #x01f9) + (text-x1fa #x01fa) + (text-x1fb #x01fb) + (text-x1fc #x01fc) + (text-x1fd #x01fd) + (text-x1fe #x01fe) + (text-x1ff #x01ff) + (text-x200 #x0200) + (text-x201 #x0201) + (text-x202 #x0202) + (text-x203 #x0203) + (text-x204 #x0204) + (text-x205 #x0205) + (text-x206 #x0206) + (text-x207 #x0207) + (text-x208 #x0208) + (text-x209 #x0209) + (text-x20a #x020a) + (text-x20b #x020b) + (text-x20c #x020c) + (text-x20d #x020d) + (text-x20e #x020e) + (text-x20f #x020f) + (text-x210 #x0210) + (text-x211 #x0211) + (text-x212 #x0212) + (text-x213 #x0213) + (text-x214 #x0214) + (text-x215 #x0215) + (text-x216 #x0216) + (text-x217 #x0217) + (text-x218 #x0218) + (text-x219 #x0219) + (text-x21a #x021a) + (text-x21b #x021b) + (text-x21c #x021c) + (text-x21d #x021d) + (text-x21e #x021e) + (text-x21f #x021f) + (text-x220 #x0220) + (text-x221 #x0221) + (text-x222 #x0222) + (text-x223 #x0223) + (text-x224 #x0224) + (text-x225 #x0225) + (text-x226 #x0226) + (text-x227 #x0227) + (text-x228 #x0228) + (text-x229 #x0229) + (text-x22a #x022a) + (text-x22b #x022b) + (text-x22c #x022c) + (text-x22d #x022d) + (text-x22e #x022e) + (text-x22f #x022f) + (text-x230 #x0230) + (text-x231 #x0231) + (text-x232 #x0232) + (text-x233 #x0233) + (text-x234 #x0234) + (text-x235 #x0235) + (text-x236 #x0236) + (text-x237 #x0237) + (text-x238 #x0238) + (text-x239 #x0239) + (text-x23a #x023a) + (text-x23b #x023b) + (text-x23c #x023c) + (text-x23d #x023d) + (text-x23e #x023e) + (text-x23f #x023f) + (text-x240 #x0240) + (text-x241 #x0241) + (text-x242 #x0242) + (text-x243 #x0243) + (text-x244 #x0244) + (text-x245 #x0245) + (text-x246 #x0246) + (text-x247 #x0247) + (text-x248 #x0248) + (text-x249 #x0249) + (text-x24a #x024a) + (text-x24b #x024b) + (text-x24c #x024c) + (text-x24d #x024d) + (text-x24e #x024e) + (text-x24f #x024f) ;; GAME-TEXT-ID ENUM ENDS -) + ) diff --git a/goal_src/jak2/engine/util/script-h.gc b/goal_src/jak2/engine/util/script-h.gc index ec41456aef..b1895833aa 100644 --- a/goal_src/jak2/engine/util/script-h.gc +++ b/goal_src/jak2/engine/util/script-h.gc @@ -50,7 +50,7 @@ :flag-assert #xc000000a0 (:methods (new (symbol type basic process vector) _type_ 0) - (eval! (_type_ object) object 9) + (eval! (_type_ pair) object 9) (script-context-method-10 (_type_ object pair) object 10) (script-context-method-11 (_type_ pair pair symbol) symbol 11) ) @@ -74,9 +74,3 @@ ) ) ) - -0 - - - - diff --git a/goal_src/jak2/engine/util/script.gc b/goal_src/jak2/engine/util/script.gc index 8414feb9f9..fee1ffe9be 100644 --- a/goal_src/jak2/engine/util/script.gc +++ b/goal_src/jak2/engine/util/script.gc @@ -7,6 +7,8 @@ ;; DECOMP BEGINS +(with-pp + (defun command-get-int ((arg0 object) (arg1 int)) (cond ((null? arg0) @@ -44,3 +46,3330 @@ ) ) ) + +;; WARN: Return type mismatch int vs time-frame. +(defun command-get-time ((arg0 object) (arg1 int)) + (the-as time-frame (cond + ((null? arg0) + (empty) + arg1 + ) + ((and (pair? arg0) (= (car arg0) 'seconds)) + (the int (* 300.0 (command-get-float (car (cdr arg0)) 0.0))) + ) + ((and (pair? arg0) (= (car arg0) 'frame-time)) + (the int (* 5.0000005 (command-get-float (car (cdr arg0)) 0.0))) + ) + ((and (pair? arg0) (= (car arg0) 'frame-time-30)) + (the int (* 10.000001 (command-get-float (car (cdr arg0)) 0.0))) + ) + ((and (pair? arg0) (= (car arg0) 'frame-range)) + (let ((f30-3 (command-get-float (car (cdr arg0)) 0.0)) + (f28-0 (command-get-float (car (cdr (cdr arg0))) 0.0)) + (f0-9 (command-get-float (car (cdr (cdr (cdr arg0)))) 0.0)) + ) + (if (= f0-9 0.0) + (set! f0-9 30.0) + ) + (the int (* 300.0 (/ (- f28-0 f30-3) f0-9))) + ) + ) + ((type? arg0 binteger) + (the-as int (/ (the-as int arg0) 8)) + ) + ((type? arg0 bfloat) + (the int (-> (the-as (pointer float) arg0) 0)) + ) + (else + (empty) + arg1 + ) + ) + ) + ) + +(defun command-get-param ((arg0 object) (arg1 object)) + (cond + ((null? arg0) + arg1 + ) + ((and (pair? arg0) (= (car arg0) 'seconds)) + (the int (* 300.0 (command-get-float (car (cdr arg0)) 0.0))) + ) + ((and (pair? arg0) (= (car arg0) 'meters)) + (* 4096.0 (command-get-float (car (cdr arg0)) 0.0)) + ) + ((and (pair? arg0) (= (car arg0) 'deg)) + (* 182.04445 (command-get-float (car (cdr arg0)) 0.0)) + ) + ((and (pair? arg0) (= (car arg0) 'static-vectorm)) + (let ((s4-0 (the-as object (new 'static 'vector4)))) + (set-vector! + (the-as vector4 s4-0) + (* 4096.0 (command-get-float (car (cdr arg0)) 0.0)) + (* 4096.0 (command-get-float (car (cdr (cdr arg0))) 0.0)) + (* 4096.0 (command-get-float (car (cdr (cdr (cdr arg0)))) 0.0)) + 1.0 + ) + s4-0 + ) + ) + ((type? arg0 binteger) + (/ (the-as int arg0) 8) + ) + ((type? arg0 bfloat) + (-> (the-as (pointer float) arg0) 0) + ) + (else + arg0 + ) + ) + ) + +(defun command-get-quoted-param ((arg0 object) (arg1 object)) + (if (and (pair? arg0) (= (car arg0) 'quote)) + (command-get-param (car (cdr arg0)) arg1) + (command-get-param arg0 arg1) + ) + ) + +;; WARN: Return type mismatch object vs process. +;; WARN: Using new Jak 2 rtype-of +(defun command-get-process ((arg0 object) (arg1 process)) + (with-pp + (set! arg1 + (cond + ((or (null? arg0) (not arg0)) + (empty) + arg1 + ) + ((or (type? arg0 process) (= (rtype-of arg0) actor-group)) + (the-as process arg0) + ) + ((type? arg0 entity-actor) + (-> (the-as entity-actor arg0) extra process) + ) + ((= arg0 'target) + *target* + ) + ((= arg0 'sidekick) + (when *target* + (let ((v1-11 (-> *target* sidekick))) + (if v1-11 + (the-as process (-> v1-11 0 self)) + ) + ) + ) + ) + ((= arg0 'parent) + (let ((v1-14 (-> pp parent))) + (if v1-14 + (the-as process (-> v1-14 0 self)) + ) + ) + ) + ((= arg0 'camera) + *camera* + ) + ((= arg0 '*task-manager*) + (let ((v1-19 (-> *setting-control* user-current exclusive-task))) + (when v1-19 + (let ((a0-9 (-> *task-manager-engine* alive-list next0))) + *task-manager-engine* + (let ((a1-5 (-> (the-as connection a0-9) next0))) + (while (!= a0-9 (-> *task-manager-engine* alive-list-end)) + (when (= (-> (the-as game-task-node-info (-> (the-as connection a0-9) param2)) task) v1-19) + (set! arg1 (the-as process (-> (the-as connection a0-9) param1))) + (goto cfg-87) + ) + (set! a0-9 (the-as connection a1-5)) + *task-manager-engine* + (set! a1-5 (-> a1-5 next0)) + ) + ) + ) + ) + ) + (let ((v1-23 (-> *task-manager-engine* alive-list next0))) + *task-manager-engine* + (-> (the-as connection v1-23) next0) + (while (!= v1-23 (-> *task-manager-engine* alive-list-end)) + (set! arg1 (the-as process (-> (the-as connection v1-23) param1))) + (b! #t cfg-87 :delay (nop!)) + ;; (the-as none 0) + ;; (the-as none *task-manager-engine*) + ;; (the-as none 0) + ;; (the-as none 0) + ;; (set! v1-23 (the-as connectable (l.wu 0))) + ) + ) + (the-as process #f) + ) + ((type? arg0 string) + (set! arg1 (process-by-ename (the-as string arg0))) + (cond + (arg1 + (empty) + arg1 + ) + ((-> *setting-control* user-current movie) + (let ((s5-1 (ppointer->process (-> *setting-control* user-current movie 0 child)))) + (while s5-1 + (when (name= arg0 (-> s5-1 name)) + (set! arg1 (the-as process s5-1)) + (goto cfg-87) + ) + (set! s5-1 (ppointer->process (-> s5-1 brother))) + ) + ) + (let ((s5-2 (ppointer->process (-> *setting-control* user-current movie 0 child)))) + (while s5-2 + (let* ((s3-0 s5-2) + (s4-0 (if (type? s3-0 process-drawable) + (the-as process-drawable s3-0) + ) + ) + ) + (format (clear *temp-string*) "~S-lod0" arg0) + (let ((s3-2 *temp-string*)) + (when (and s4-0 + (nonzero? (-> s4-0 draw)) + (or (and (nonzero? (-> s4-0 draw art-group)) (string= (the-as string arg0) (-> s4-0 draw art-group name))) + (and (nonzero? (-> s4-0 draw jgeo)) (string= s3-2 (-> s4-0 draw jgeo name))) + ) + ) + (format 0 "WARNING: command-get-process returning art-group or jgeo named ~A~%" arg0) + (set! arg1 s4-0) + (goto cfg-87) + ) + ) + ) + (set! s5-2 (ppointer->process (-> s5-2 brother))) + ) + ) + (the-as process #f) + ) + (else + (let ((v1-64 (process-by-name (the-as string arg0) *active-pool*))) + (if v1-64 + v1-64 + ) + ) + ) + ) + ) + (else + (empty) + arg1 + ) + ) + ) + (label cfg-87) + (the-as process arg1) + ) + ) + +;; WARN: Return type mismatch object vs entity. +(defun command-get-entity ((search object) (fallback entity)) + "- If `search` is a [[process]] - return it's `entity` + - If `search` is an [[entity]] - return it + - If `search` is a [[string]] - return the result of [[entity-by-name]] + - If `search` is [[null?]] or [[empty]] or if no other condition passes, return `fallback`" + (the-as entity (cond + ((null? search) + (empty) + fallback + ) + ((type? search process) + (-> (the-as process search) entity) + ) + ((type? search entity) + (the-as entity search) + ) + ((type? search string) + (entity-by-name (the-as string search)) + ) + (else + (empty) + fallback + ) + ) + ) + ) + +;; WARN: Using new Jak 2 rtype-of +(defun command-get-trans ((arg0 object) (arg1 vector)) + (cond + ((or (not arg0) (null? arg0)) + (empty) + arg1 + ) + ((= arg0 'null) + *null-vector* + ) + ((= arg0 'target) + (target-pos 0) + ) + ((= (rtype-of arg0) string) + (let ((v1-5 (the-as process-drawable (command-get-process arg0 *target*)))) + (cond + ((and v1-5 (nonzero? (-> v1-5 root))) + (-> v1-5 root trans) + ) + (else + (empty) + arg1 + ) + ) + ) + ) + ((pair? arg0) + (let* ((s3-0 (command-get-process (car arg0) *target*)) + (s4-0 (if (type? s3-0 process-drawable) + (the-as process-drawable s3-0) + ) + ) + (a1-7 (car (cdr arg0))) + ) + (cond + ((and s4-0 (nonzero? (-> s4-0 draw)) (nonzero? (-> s4-0 node-list))) + (let ((a0-12 (the-as joint (get-art-by-name-method (-> s4-0 draw jgeo) (the-as string a1-7) (the-as type #f))))) + (cond + (a0-12 + (-> s4-0 node-list data (+ (-> a0-12 number) 1) bone transform trans) + ) + (else + (empty) + arg1 + ) + ) + ) + ) + (else + (empty) + arg1 + ) + ) + ) + ) + (else + (empty) + arg1 + ) + ) + ) + +;; WARN: Using new Jak 2 rtype-of +(defmethod script-context-method-10 script-context ((obj script-context) (arg0 object) (arg1 pair)) + (let* ((s5-0 (rtype-of arg0)) + (s4-0 arg1) + (s3-0 (car s4-0)) + ) + (while (not (null? s4-0)) + (cond + ((not s3-0) + (if (not arg0) + (return 'symbol) + ) + ) + (else + (let ((a1-1 (-> (the-as symbol s3-0) value))) + (if (type-type? s5-0 (the-as type a1-1)) + (return s3-0) + ) + ) + ) + ) + (set! s4-0 (cdr s4-0)) + (set! s3-0 (car s4-0)) + ) + ) + #f + ) + +;; WARN: Return type mismatch object vs pair. +(defun key-assoc ((arg0 object) (arg1 pair) (arg2 vector4w)) + "TODO [[vector4w]] is probably wrong!" + (set! (-> arg2 dword 0) (the-as uint 0)) + (let ((v1-0 arg1)) + (while (not (or (null? v1-0) (= (car (car v1-0)) arg0))) + (+! (-> arg2 dword 0) 1) + (set! v1-0 (cdr v1-0)) + ) + (the-as pair (if (not (null? v1-0)) + (car v1-0) + ) + ) + ) + ) + +;; WARN: Stack slot offset 28 signed mismatch +;; WARN: Stack slot offset 28 signed mismatch +;; WARN: Stack slot offset 28 signed mismatch +;; WARN: Stack slot offset 28 signed mismatch +;; WARN: Stack slot offset 28 signed mismatch +;; WARN: Stack slot offset 28 signed mismatch +;; WARN: Stack slot offset 28 signed mismatch +;; WARN: Stack slot offset 28 signed mismatch +;; WARN: Stack slot offset 28 signed mismatch +;; WARN: Stack slot offset 28 signed mismatch +;; WARN: Stack slot offset 28 signed mismatch +;; WARN: Stack slot offset 28 signed mismatch +;; WARN: Using new Jak 2 rtype-of +;; WARN: Using new Jak 2 rtype-of +;; WARN: Using new Jak 2 rtype-of +;; WARN: Using new Jak 2 rtype-of +(defmethod script-context-method-11 script-context ((obj script-context) (arg0 pair) (arg1 pair) (arg2 symbol)) + (local-vars (sv-16 symbol) (sv-20 pair) (sv-24 pair) (sv-28 int) (sv-32 int) (sv-40 pair)) + (let ((s3-0 (cdr arg1))) + (set! sv-16 (the-as symbol #f)) + (set! sv-20 arg0) + (set! sv-24 s3-0) + (set! (-> obj param-count) 0) + (set! (-> obj expr) arg0) + (let ((a1-1 (car sv-20)) + (s2-0 (car s3-0)) + ) + (while (not (and (null? sv-20) (null? sv-24))) + (cond + ((= s2-0 '&rest) + (let ((v1-2 (-> obj param-count))) + (set! (-> obj param v1-2) sv-20) + (set! (-> obj param-type v1-2) 'pair) + (set! (-> obj param-count) (+ v1-2 1)) + ) + (return (not sv-16)) + ) + ((= s2-0 '&key) + (set! sv-28 (-> obj param-count)) + (set! sv-32 0) + (set! sv-24 (cdr sv-24)) + (let ((v1-11 sv-28)) + (let* ((a0-3 sv-24) + (a1-6 (car a0-3)) + ) + (while (not (null? a0-3)) + (set! (-> obj param v1-11) (car (cdr (cdr (cdr a1-6))))) + (let ((a1-13 (-> obj param v1-11))) + (set! (-> obj param-type v1-11) (-> (rtype-of a1-13) symbol)) + ) + (+! v1-11 1) + (set! a0-3 (cdr a0-3)) + (set! a1-6 (car a0-3)) + ) + ) + (set! (-> obj param-count) v1-11) + ) + (while (not (null? sv-20)) + (set! sv-40 (key-assoc (car sv-20) sv-24 (the-as vector4w (& sv-32)))) + (cond + (sv-40 + (set! sv-20 (cdr sv-20)) + (let* ((v1-18 (car (cdr sv-40))) + (s3-1 (if (= v1-18 'eval) + (eval! obj (the-as pair (car sv-20))) + (car sv-20) + ) + ) + (s2-1 (+ sv-28 sv-32)) + ) + (set! (-> obj param s2-1) s3-1) + (let ((v1-29 (script-context-method-10 obj s3-1 (the-as pair (car (cdr (cdr sv-40))))))) + (set! (-> obj param-type s2-1) v1-29) + (when (not v1-29) + (set! sv-16 #t) + (if arg2 + (format + 0 + "ERROR: SCRIPT: param ~A = ~A is type ~A, needed type ~A.~%" + (car sv-40) + s3-1 + (rtype-of s3-1) + (car (cdr (cdr sv-40))) + ) + ) + ) + ) + ) + ) + (else + (set! sv-16 #t) + (if arg2 + (format 0 "ERROR: SCRIPT: found unknown keyword ~A in expression ~A.~%" (car sv-20) arg0) + ) + (set! sv-20 (cdr sv-20)) + ) + ) + (set! sv-20 (cdr sv-20)) + ) + (return (not sv-16)) + ) + ((null? s2-0) + (if arg2 + (format 0 "ERROR: SCRIPT: got too many params matching ~A to ~A~%" arg0 s3-0) + ) + (return #f) + ) + ((null? a1-1) + (cond + ((null? (car (cdr (cdr (cdr s2-0))))) + (if arg2 + (format 0 "ERROR: SCRIPT: got too few params matching ~A to ~A~%" arg0 s3-0) + ) + (return #f) + ) + (else + (let ((v1-62 (-> obj param-count))) + (set! (-> obj param v1-62) (car (cdr (cdr (cdr s2-0))))) + (let ((a0-28 (-> obj param v1-62))) + (set! (-> obj param-type v1-62) (-> (rtype-of a0-28) symbol)) + ) + (set! (-> obj param-count) (+ v1-62 1)) + ) + (set! sv-24 (cdr sv-24)) + ) + ) + ) + (else + (let* ((v1-67 (car (cdr s2-0))) + (s0-0 (if (= v1-67 'eval) + (eval! obj (the-as pair a1-1)) + a1-1 + ) + ) + (s1-0 (-> obj param-count)) + ) + (set! (-> obj param s1-0) s0-0) + (let ((v1-74 (script-context-method-10 obj s0-0 (the-as pair (car (cdr (cdr s2-0))))))) + (set! (-> obj param-type s1-0) v1-74) + (when (not v1-74) + (set! sv-16 #t) + (if arg2 + (format + 0 + "ERROR: SCRIPT: param ~A = ~A is type ~A, needed type ~A.~%" + (car s2-0) + s0-0 + (rtype-of s0-0) + (car (cdr (cdr s2-0))) + ) + ) + ) + ) + (set! (-> obj param-count) (+ s1-0 1)) + ) + (set! sv-20 (cdr sv-20)) + (set! sv-24 (cdr sv-24)) + ) + ) + (set! a1-1 (car sv-20)) + (set! s2-0 (car sv-24)) + ) + ) + ) + (not sv-16) + ) + +(define-extern *script-form* (inline-array script-form)) + +;; WARN: Using new Jak 2 rtype-of +(defmethod eval! script-context ((obj script-context) (arg0 pair)) + (let ((s4-0 (the-as object #f))) + (set! (-> obj expr) arg0) + (case (rtype-of arg0) + ((pair) + (let ((a2-0 (car arg0))) + (cond + ((null? arg0) + (set! s4-0 '()) + ) + (else + (let ((s3-0 (-> *script-form* 0))) + (while (nonzero? (-> s3-0 name)) + (when (= a2-0 (-> s3-0 name)) + (let ((s2-0 (new 'stack-no-clear 'script-context))) + (set! (-> s2-0 load-state) (-> obj load-state)) + (set! (-> s2-0 key) (-> obj key)) + (set! (-> s2-0 process) (-> obj process)) + (set! (-> s2-0 trans) (-> obj trans)) + (set! (-> s2-0 side-effect?) (-> obj side-effect?)) + (set! (-> s2-0 got-error?) #f) + (cond + ((script-context-method-11 s2-0 arg0 (-> s3-0 spec) #t) + (set! (-> s2-0 expr) arg0) + (set! s4-0 ((-> s3-0 func) s2-0)) + ) + (else + (set! (-> s2-0 got-error?) #t) + ) + ) + (set! (-> obj got-error?) (or (-> obj got-error?) (-> s2-0 got-error?))) + ) + (goto cfg-23) + ) + (&+! s3-0 12) + ) + ) + (format 0 "ERROR: SCRIPT: taking the value of unknown symbol ~A in ~A for application.~%" a2-0 arg0) + (set! (-> obj got-error?) #t) + ) + ) + ) + (label cfg-23) + s4-0 + ) + ((symbol) + (let ((s4-1 (the-as symbol arg0))) + (cond + ((string-prefix= "GAME_TASK_" (symbol->string s4-1)) + (let ((gp-1 (c-string->game-task (symbol->string s4-1)))) + (if (= gp-1 (game-task unknown)) + (format 0 "ERROR: SCRIPT: taking the value of unknown game-task ~A.~%" arg0) + ) + (set! s4-0 (* gp-1 8)) + ) + ) + ((= s4-1 'MINIMAP_FLAG_MINIMAP) + (set! s4-0 1024) + ) + ((= s4-1 'FACT_SUPER_SKILL_INC) + (set! s4-0 (* (the int (-> *FACT-bank* super-skill-inc)) 8)) + ) + ((= s4-1 'self) + (set! s4-0 (-> obj process)) + ) + ((= s4-1 'key) + (set! s4-0 (-> obj key)) + ) + ((= s4-1 '*time-of-day*) + (set! s4-0 (ppointer->process *time-of-day*)) + ) + ((= s4-1 '*task-manager*) + (set! s4-0 (command-get-process s4-1 *target*)) + ) + (else + (set! s4-0 (-> s4-1 value)) + ) + ) + ) + s4-0 + ) + (else + arg0 + ) + ) + ) + ) + +(define *script-form* (the-as (inline-array script-form) (malloc 'global 1536))) + +(let ((v1-10 (-> *script-form* 0))) + (set! (-> v1-10 name) 'quote) + (set! (-> v1-10 spec) '((return macro (object)) (function macro (symbol)) (value macro (object)))) + (set! (-> v1-10 func) (lambda ((arg0 script-context)) (-> arg0 param 1))) + ) + +(let ((v1-12 (-> *script-form* 1))) + (set! (-> v1-12 name) 'meters) + (set! (-> v1-12 spec) '((return macro (float)) (function macro (symbol)) (value eval (bfloat binteger)))) + (set! (-> v1-12 func) + (lambda ((arg0 script-context)) (the-as meters (* 4096.0 (command-get-float (-> arg0 param 1) 0.0)))) + ) + ) + +(let ((v1-14 (-> *script-form* 2))) + (set! (-> v1-14 name) 'seconds) + (set! (-> v1-14 spec) '((return macro (integer)) (function macro (symbol)) (value eval (bfloat binteger)))) + (set! (-> v1-14 func) + (lambda ((arg0 script-context)) (the time-frame (* 300.0 (command-get-float (-> arg0 param 1) 0.0)))) + ) + ) + +(let ((v1-16 (-> *script-form* 3))) + (set! (-> v1-16 name) 'float) + (set! (-> v1-16 spec) '((return macro (float)) (function macro (symbol)) (value eval (bfloat binteger)))) + (set! (-> v1-16 func) (lambda ((arg0 script-context)) (command-get-float (-> arg0 param 1) 0.0))) + ) + +(let ((v1-18 (-> *script-form* 4))) + (set! (-> v1-18 name) 'int) + (set! (-> v1-18 spec) '((return macro (integer)) (function macro (symbol)) (value eval (bfloat binteger)))) + (set! (-> v1-18 func) (lambda ((arg0 script-context)) (command-get-int (-> arg0 param 1) 0))) + ) + +(let ((v1-20 (-> *script-form* 5))) + (set! (-> v1-20 name) 'begin) + (set! (-> v1-20 spec) '((return macro (object)) (function macro (symbol)) &rest body)) + (set! (-> v1-20 func) (lambda ((arg0 script-context)) (let ((v0-0 (the-as object #f))) + (let* ((s5-0 (-> arg0 param 1)) + (a1-0 (car (the-as pair s5-0))) + ) + (while (not (null? s5-0)) + (set! v0-0 (eval! arg0 (the-as pair a1-0))) + (set! s5-0 (cdr s5-0)) + (set! a1-0 (car (the-as pair s5-0))) + ) + ) + (the-as pair v0-0) + ) + ) + ) + ) + +(let ((v1-22 (-> *script-form* 6))) + (set! (-> v1-22 name) 'print) + (set! (-> v1-22 spec) '((return macro (object)) (function macro (symbol)) (value eval (object)))) + (set! (-> v1-22 func) (lambda ((arg0 script-context)) (if (-> arg0 side-effect?) + (printl (-> arg0 param 1)) + (-> arg0 param 1) + ) + ) + ) + ) + +(let ((v1-24 (-> *script-form* 7))) + (set! (-> v1-24 name) 'if) + (set! (-> v1-24 spec) '((return macro (object)) + (function macro (symbol)) + (condition eval (object)) + (if macro + (object) + ) + (else + macro + (object) + #f + ) + ) + ) + (set! (-> v1-24 func) + (lambda ((arg0 script-context)) (the-as pair (if (-> arg0 param 1) + (eval! arg0 (the-as pair (-> arg0 param 2))) + (eval! arg0 (the-as pair (-> arg0 param 3))) + ) + ) + ) + ) + ) + +(let ((v1-26 (-> *script-form* 8))) + (set! (-> v1-26 name) 'not) + (set! (-> v1-26 spec) '((return macro (object)) (function macro (symbol)) (condition eval (object)))) + (set! (-> v1-26 func) (lambda ((arg0 script-context)) (not (-> arg0 param 1)))) + ) + +(let ((v1-28 (-> *script-form* 9))) + (set! (-> v1-28 name) 'and) + (set! (-> v1-28 spec) '((return macro (object)) (function macro (symbol)) &rest body)) + (set! (-> v1-28 func) (lambda ((arg0 script-context)) (let ((s5-0 (-> arg0 param 1)) + (v0-0 (the-as object #f)) + ) + (let ((a1-0 (car (the-as pair s5-0)))) + (while (not (null? s5-0)) + (set! v0-0 (eval! arg0 (the-as pair a1-0))) + (if (not v0-0) + (return (the-as pair #f)) + ) + (set! s5-0 (cdr s5-0)) + (set! a1-0 (car (the-as pair s5-0))) + ) + ) + (the-as pair v0-0) + ) + ) + ) + ) + +(let ((v1-30 (-> *script-form* 10))) + (set! (-> v1-30 name) 'or) + (set! (-> v1-30 spec) '((return macro (object)) (function macro (symbol)) &rest body)) + (set! (-> v1-30 func) (lambda ((arg0 script-context)) + (let ((s5-0 (-> arg0 param 1))) + (let ((a1-0 (car (the-as pair s5-0)))) + (while (not (null? s5-0)) + (let ((v1-2 (eval! arg0 (the-as pair a1-0)))) + (if v1-2 + (return (the-as pair v1-2)) + ) + ) + (set! s5-0 (cdr s5-0)) + (set! a1-0 (car (the-as pair s5-0))) + ) + ) + ) + (the-as pair #f) + ) + ) + ) + +(let ((v1-32 (-> *script-form* 11))) + (set! (-> v1-32 name) 'when) + (set! (-> v1-32 spec) + '((return macro (object)) (function macro (symbol)) (condition eval (object)) &rest body) + ) + (set! (-> v1-32 func) (lambda ((arg0 script-context)) (let ((v0-0 (the-as object #f))) + (when (-> arg0 param 1) + (let* ((s5-0 (-> arg0 param 2)) + (a1-0 (car (the-as pair s5-0))) + ) + (while (not (null? s5-0)) + (set! v0-0 (eval! arg0 (the-as pair a1-0))) + (set! s5-0 (cdr s5-0)) + (set! a1-0 (car (the-as pair s5-0))) + ) + ) + ) + (the-as pair v0-0) + ) + ) + ) + ) + +(let ((v1-34 (-> *script-form* 12))) + (set! (-> v1-34 name) 'unless) + (set! (-> v1-34 spec) + '((return macro (object)) (function macro (symbol)) (condition eval (object)) &rest body) + ) + (set! (-> v1-34 func) (lambda ((arg0 script-context)) (let ((v0-0 (the-as object #f))) + (when (not (-> arg0 param 1)) + (let* ((s5-0 (-> arg0 param 2)) + (a1-0 (car (the-as pair s5-0))) + ) + (while (not (null? s5-0)) + (set! v0-0 (eval! arg0 (the-as pair a1-0))) + (set! s5-0 (cdr s5-0)) + (set! a1-0 (car (the-as pair s5-0))) + ) + ) + ) + (the-as pair v0-0) + ) + ) + ) + ) + +(let ((v1-36 (-> *script-form* 13))) + (set! (-> v1-36 name) 'cond) + (set! (-> v1-36 spec) '((return macro (object)) (function macro (symbol)) &rest body)) + (set! (-> v1-36 func) + (lambda ((arg0 script-context)) (let ((gp-0 (the-as object #f))) + (let* ((s4-0 (-> arg0 param 1)) + (s3-0 (car (the-as pair s4-0))) + ) + (while (not (null? s4-0)) + (when (pair? s3-0) + (when (or (= s3-0 'else) (eval! arg0 (the-as pair (car s3-0)))) + (let* ((s4-1 (cdr s3-0)) + (a1-1 (car s4-1)) + ) + (while (not (null? s4-1)) + (set! gp-0 (eval! arg0 (the-as pair a1-1))) + (set! s4-1 (cdr s4-1)) + (set! a1-1 (car s4-1)) + ) + ) + (set! gp-0 gp-0) + (goto cfg-14) + ) + ) + (set! s4-0 (cdr s4-0)) + (set! s3-0 (car (the-as pair s4-0))) + ) + ) + (label cfg-14) + (the-as pair gp-0) + ) + ) + ) + ) + +(let ((v1-38 (-> *script-form* 14))) + (set! (-> v1-38 name) 'set!) + (set! (-> v1-38 spec) + '((return macro (object)) (function macro (symbol)) (symbol macro (symbol)) (value eval (object))) + ) + (set! (-> v1-38 func) + (lambda ((arg0 script-context)) (when (-> arg0 side-effect?) + (let ((v0-0 (-> arg0 param 2))) + (set! (-> (the-as symbol (-> arg0 param 1)) value) v0-0) + v0-0 + ) + ) + ) + ) + ) + +(let ((v1-40 (-> *script-form* 15))) + (set! (-> v1-40 name) 'eval) + (set! (-> v1-40 spec) '((return macro (object)) (function macro (symbol)) (value eval (object)))) + (set! (-> v1-40 func) + (lambda ((arg0 script-context)) (the-as pair (if (-> arg0 side-effect?) + (eval! arg0 (the-as pair (-> arg0 param 1))) + ) + ) + ) + ) + ) + +(let ((v1-42 (-> *script-form* 16))) + (set! (-> v1-42 name) 'apply) + (set! (-> v1-42 spec) '((return macro (object)) (function macro (symbol)) (value eval (function)))) + (set! (-> v1-42 func) + (lambda ((arg0 script-context)) (if (-> arg0 side-effect?) + ((the-as (function script-context symbol) (-> arg0 param 1)) arg0) + ) + ) + ) + ) + +(let ((v1-44 (-> *script-form* 17))) + (set! (-> v1-44 name) '=) + (set! (-> v1-44 spec) + '((return macro (object)) + (function macro (symbol)) + (test1 eval (bfloat binteger)) + (test2 eval (bfloat binteger)) + ) + ) + (set! (-> v1-44 func) + (lambda ((arg0 script-context)) + (= (command-get-float (-> arg0 param 1) 0.0) (command-get-float (-> arg0 param 2) 0.0)) + ) + ) + ) + +(let ((v1-46 (-> *script-form* 18))) + (set! (-> v1-46 name) '<=) + (set! (-> v1-46 spec) + '((return macro (object)) + (function macro (symbol)) + (test1 eval (bfloat binteger)) + (test2 eval (bfloat binteger)) + ) + ) + (set! (-> v1-46 func) + (lambda ((arg0 script-context)) + (>= (command-get-float (-> arg0 param 2) 0.0) (command-get-float (-> arg0 param 1) 0.0)) + ) + ) + ) + +(let ((v1-48 (-> *script-form* 19))) + (set! (-> v1-48 name) '<) + (set! (-> v1-48 spec) + '((return macro (object)) + (function macro (symbol)) + (test1 eval (bfloat binteger)) + (test2 eval (bfloat binteger)) + ) + ) + (set! (-> v1-48 func) + (lambda ((arg0 script-context)) + (< (command-get-float (-> arg0 param 1) 0.0) (command-get-float (-> arg0 param 2) 0.0)) + ) + ) + ) + +(let ((v1-50 (-> *script-form* 20))) + (set! (-> v1-50 name) 'eq?) + (set! (-> v1-50 spec) + '((return macro (object)) (function macro (symbol)) (test1 eval (object)) (test2 eval (object))) + ) + (set! (-> v1-50 func) + (lambda ((arg0 script-context)) (let ((gp-0 (-> arg0 param 1)) + (s5-0 (-> arg0 param 2)) + ) + (if (and (type? gp-0 string) (type? s5-0 string)) + (string= (the-as string gp-0) (the-as string s5-0)) + (= gp-0 s5-0) + ) + ) + ) + ) + ) + +(let ((v1-52 (-> *script-form* 21))) + (set! (-> v1-52 name) 'unbox) + (set! (-> v1-52 spec) '((return macro (object)) (function macro (symbol)) (value eval (bfloat binteger)))) + (set! (-> v1-52 func) (lambda ((arg0 script-context)) (cond + ((zero? (logand (the-as int (-> arg0 param 1)) 7)) + (/ (the-as int (-> arg0 param 1)) 8) + ) + (else + (let ((v1-3 bfloat) + (a1-0 (-> arg0 param 1)) + ) + (if (= (rtype-of a1-0) v1-3) + (-> (the-as bfloat (-> arg0 param 1)) data) + (-> arg0 param 1) + ) + ) + ) + ) + ) + ) + ) + +(defun level-from-heap ((arg0 int)) + (dotimes (v1-0 (-> *level* length)) + (let ((a1-3 (-> *level* level v1-0))) + (when (= (-> a1-3 status) 'active) + (let ((a3-1 (-> a1-3 heap base)) + (a2-3 (-> a1-3 heap top-base)) + ) + (if (and (>= arg0 (the-as int a3-1)) (< arg0 (the-as int a2-3))) + (return a1-3) + ) + ) + ) + ) + ) + (the-as level #f) + ) + +(let ((v1-55 (-> *script-form* 22))) + (set! (-> v1-55 name) 'want-vis) + (set! (-> v1-55 spec) '((return macro (none)) (function macro (symbol)) (level eval (symbol)))) + (set! (-> v1-55 func) (the-as + (function script-context object) + (lambda ((arg0 script-context)) + (if (and (-> arg0 side-effect?) (-> *level* border?)) + (want-vis-level (-> arg0 load-state) (the-as symbol (-> arg0 param 1))) + ) + (none) + ) + ) + ) + ) + +(let ((v1-57 (-> *script-form* 23))) + (set! (-> v1-57 name) 'want-load) + (set! (-> v1-57 spec) '((return macro (none)) (function macro (symbol)) &rest levels)) + (set! (-> v1-57 func) + (the-as + (function script-context object) + (lambda ((arg0 script-context)) + (let ((s5-0 6) + (a0-1 (-> arg0 param 1)) + ) + (cond + ((>= s5-0 ((method-of-type (rtype-of a0-1) length) a0-1)) + (when (and (-> arg0 side-effect?) + (-> *level* border?) + (let ((s5-1 (-> *setting-control* user-current exclusive-load))) + (or (not s5-1) (let ((v1-9 (level-from-heap (the-as int (-> arg0 key))))) + (and v1-9 (= (-> v1-9 name) s5-1)) + ) + ) + ) + ) + (let ((s5-2 (new 'static 'boxed-array :type symbol :length 0 :allocated-length 6))) + (dotimes (s4-0 6) + (let ((a1-3 (ref (-> arg0 param 1) s4-0))) + (set! (-> s5-2 s4-0) (the-as symbol (if (not (null? a1-3)) + (eval! arg0 (the-as pair a1-3)) + ) + ) + ) + ) + ) + (want-levels (-> arg0 load-state) (-> s5-2 data)) + ) + ) + ) + (else + (format 0 "ERROR: SCRIPT: got too many params to want-load ~A~%" (-> arg0 param 1)) + (set! (-> arg0 got-error?) #t) + ) + ) + ) + 0 + (none) + ) + ) + ) + ) + +(let ((v1-59 (-> *script-form* 24))) + (set! (-> v1-59 name) 'want-sound) + (set! (-> v1-59 spec) '((return macro (none)) (function macro (symbol)) &rest sounds)) + (set! (-> v1-59 func) + (the-as + (function script-context object) + (lambda ((arg0 script-context)) + (let ((s5-0 3) + (a0-1 (-> arg0 param 1)) + ) + (cond + ((>= s5-0 ((method-of-type (rtype-of a0-1) length) a0-1)) + (when (and (-> arg0 side-effect?) + (-> *level* border?) + (let ((s5-1 (-> *setting-control* user-current exclusive-load))) + (or (not s5-1) (let ((v1-9 (level-from-heap (the-as int (-> arg0 key))))) + (and v1-9 (= (-> v1-9 name) s5-1)) + ) + ) + ) + ) + (let ((s5-2 (new 'static 'boxed-array :type symbol :length 0 :allocated-length 3))) + (dotimes (s4-0 3) + (let ((a1-3 (ref (-> arg0 param 1) s4-0))) + (set! (-> s5-2 s4-0) (the-as symbol (if (not (null? a1-3)) + (eval! arg0 (the-as pair a1-3)) + ) + ) + ) + ) + ) + (want-sound-banks (-> arg0 load-state) (-> s5-2 data)) + ) + ) + ) + (else + (format 0 "ERROR: SCRIPT: got too many params to want-sound ~A~%" (-> arg0 param 1)) + (set! (-> arg0 got-error?) #t) + ) + ) + ) + 0 + (none) + ) + ) + ) + ) + +(let ((v1-61 (-> *script-form* 25))) + (set! (-> v1-61 name) 'want-display) + (set! (-> v1-61 spec) + '((return macro (none)) (function macro (symbol)) (level eval (symbol)) (mode eval (symbol) display)) + ) + (set! (-> v1-61 func) + (the-as + (function script-context object) + (lambda ((arg0 script-context)) + (if (and (-> arg0 side-effect?) + (-> *level* border?) + (let ((s5-0 (-> *setting-control* user-current exclusive-load))) + (or (not s5-0) (let ((v1-5 (level-from-heap (the-as int (-> arg0 key))))) + (and v1-5 (= (-> v1-5 name) s5-0)) + ) + ) + ) + ) + (want-display-level (-> arg0 load-state) (the-as symbol (-> arg0 param 1)) (the-as symbol (-> arg0 param 2))) + ) + 0 + (none) + ) + ) + ) + ) + +(let ((v1-63 (-> *script-form* 26))) + (set! (-> v1-63 name) 'want-force-vis) + (set! (-> v1-63 spec) + '((return macro (none)) (function macro (symbol)) (level eval (symbol)) (mode eval (symbol) #t)) + ) + (set! (-> v1-63 func) + (the-as + (function script-context object) + (lambda ((arg0 script-context)) + (if (and (-> arg0 side-effect?) (-> *level* border?)) + (want-force-vis (-> arg0 load-state) (the-as symbol (-> arg0 param 1)) (the-as symbol (-> arg0 param 2))) + ) + 0 + (none) + ) + ) + ) + ) + +(let ((v1-65 (-> *script-form* 27))) + (set! (-> v1-65 name) 'want-force-inside) + (set! (-> v1-65 spec) + '((return macro (none)) (function macro (symbol)) (level eval (symbol)) (mode eval (symbol) #t)) + ) + (set! (-> v1-65 func) + (the-as + (function script-context object) + (lambda ((arg0 script-context)) + (if (and (-> arg0 side-effect?) (-> *level* border?)) + (want-force-inside (-> arg0 load-state) (the-as symbol (-> arg0 param 1)) (the-as symbol (-> arg0 param 2))) + ) + 0 + (none) + ) + ) + ) + ) + +(let ((v1-67 (-> *script-form* 28))) + (set! (-> v1-67 name) 'want-continue) + (set! (-> v1-67 spec) '((return macro (none)) (function macro (symbol)) (continue-point eval (string)))) + (set! (-> v1-67 func) + (the-as + (function script-context object) + (lambda ((arg0 script-context)) + (when (and (-> arg0 side-effect?) (-> *setting-control* user-current allow-continue)) + (set-continue! *game-info* (the-as basic (-> arg0 param 1)) #f) + (send-event *target* 'want-continue (-> arg0 param 1)) + ) + 0 + (none) + ) + ) + ) + ) + +(let ((v1-69 (-> *script-form* 29))) + (set! (-> v1-69 name) 'want-anim) + (set! (-> v1-69 spec) '((return macro (none)) (function macro (symbol)) (name eval (string)))) + (set! (-> v1-69 func) (the-as (function script-context object) (lambda ((arg0 script-context)) + "we want to preload this anim." + (if (-> arg0 side-effect?) + (gui-control-method-12 + *gui-control* + (-> arg0 process) + (gui-channel art-load) + (gui-action queue) + (the-as string (-> arg0 param 1)) + 0 + -1.0 + (new 'static 'sound-id) + ) + ) + 0 + (none) + ) + ) + ) + ) + +(let ((v1-71 (-> *script-form* 30))) + (set! (-> v1-71 name) 'send-event) + (set! (-> v1-71 spec) + '((return macro (object)) + (function macro (symbol)) + (target eval (string process entity-actor actor-group #f binteger)) + (message eval (symbol)) + &rest + params + ) + ) + (set! (-> v1-71 func) + (lambda ((arg0 script-context)) + (local-vars (sv-96 (function script-context pair object))) + (the-as + symbol + (when (-> arg0 side-effect?) + (let ((gp-0 (command-get-process (-> arg0 param 1) (the-as process #f))) + (s5-0 (new 'stack-no-clear 'event-message-block)) + (s2-0 (-> arg0 param 3)) + (s4-0 (the-as object #f)) + ) + (when gp-0 + (set! (-> s5-0 from) (process->ppointer (-> arg0 process))) + (set! (-> s5-0 message) (the-as symbol (-> arg0 param 2))) + (let ((a0-3 s2-0)) + (set! (-> s5-0 num-params) ((method-of-type (rtype-of a0-3) length) a0-3)) + ) + (dotimes (s1-0 (-> s5-0 num-params)) + (let ((s0-0 arg0)) + (set! sv-96 (method-of-type script-context eval!)) + (let ((a1-4 (ref s2-0 s1-0))) + (set! (-> s5-0 param s1-0) (the-as uint (sv-96 s0-0 (the-as pair a1-4)))) + ) + ) + ) + (cond + ((= (-> gp-0 type) actor-group) + (dotimes (s3-1 (the-as int (-> gp-0 name))) + (let ((t9-4 send-event-function) + (v1-18 (the-as object (-> (the-as (pointer uint32) (+ (+ (* s3-1 8) 12) (the-as int gp-0)))))) + ) + (set! s4-0 (t9-4 + (if (the-as uint v1-18) + (-> (the-as entity-actor v1-18) extra process) + ) + s5-0 + ) + ) + ) + ) + ) + (else + (set! s4-0 (send-event-function gp-0 s5-0)) + ) + ) + ) + s4-0 + ) + ) + ) + ) + ) + ) + +(let ((v1-73 (-> *script-form* 31))) + (set! (-> v1-73 name) 'send-event-attack) + (set! (-> v1-73 spec) + '((return macro (object)) + (function macro (symbol)) + (target eval (string process entity-actor actor-group #f binteger)) + (none macro (object)) + &key + (mode eval (symbol) generic) + (message eval (symbol) attack) + ) + ) + (set! (-> v1-73 func) + (lambda ((arg0 script-context)) + (with-pp + (the-as + symbol + (when (-> arg0 side-effect?) + (let ((s5-0 (command-get-process (-> arg0 param 1) (the-as process #f))) + (v0-0 (the-as object #f)) + ) + (when s5-0 + (cond + ((= (-> s5-0 type) actor-group) + (dotimes (s4-0 (the-as int (-> s5-0 name))) + (let ((a1-1 (new 'stack-no-clear 'event-message-block))) + (set! (-> a1-1 from) (process->ppointer pp)) + (set! (-> a1-1 num-params) 2) + (set! (-> a1-1 message) (the-as symbol (-> arg0 param 4))) + (set! (-> a1-1 param 0) (the-as uint #f)) + (let ((v1-6 (new 'static 'attack-info :mask (attack-info-mask mode id)))) + (let* ((a0-4 *game-info*) + (a2-1 (+ (-> a0-4 attack-id) 1)) + ) + (set! (-> a0-4 attack-id) a2-1) + (set! (-> v1-6 id) a2-1) + ) + (set! (-> v1-6 mode) (the-as symbol (-> arg0 param 3))) + (set! (-> a1-1 param 1) (the-as uint v1-6)) + ) + (let ((t9-1 send-event-function) + (v1-10 (the-as object (-> (the-as (pointer uint32) (+ (+ (* s4-0 8) 12) (the-as int s5-0)))))) + ) + (set! v0-0 (t9-1 + (if (the-as uint v1-10) + (-> (the-as entity-actor v1-10) extra process) + ) + a1-1 + ) + ) + ) + ) + ) + ) + (else + (let ((a1-2 (new 'stack-no-clear 'event-message-block))) + (set! (-> a1-2 from) (process->ppointer pp)) + (set! (-> a1-2 num-params) 2) + (set! (-> a1-2 message) (the-as symbol (-> arg0 param 4))) + (set! (-> a1-2 param 0) (the-as uint #f)) + (let ((v1-18 (new 'static 'attack-info :mask (attack-info-mask mode id)))) + (let* ((a0-8 *game-info*) + (a2-3 (+ (-> a0-8 attack-id) 1)) + ) + (set! (-> a0-8 attack-id) a2-3) + (set! (-> v1-18 id) a2-3) + ) + (set! (-> v1-18 mode) (the-as symbol (-> arg0 param 3))) + (set! (-> a1-2 param 1) (the-as uint v1-18)) + ) + (set! v0-0 (send-event-function s5-0 a1-2)) + ) + ) + ) + ) + v0-0 + ) + ) + ) + ) + ) + ) + ) + +(let ((v1-75 (-> *script-form* 32))) + (set! (-> v1-75 name) 'focus-test?) + (set! (-> v1-75 spec) + '((return macro (symbol)) + (function macro (symbol)) + (target eval (string process entity-actor actor-group #f binteger)) + &rest + params + ) + ) + (set! (-> v1-75 func) + (lambda ((arg0 script-context)) + (let* ((s4-0 (command-get-process (-> arg0 param 1) (the-as process #f))) + (gp-0 (if (type? s4-0 process-focusable) + (the-as process-focusable s4-0) + ) + ) + ) + (when gp-0 + (let* ((s5-1 (-> arg0 param 2)) + (v1-0 (car (the-as pair s5-1))) + ) + (while (not (null? s5-1)) + (cond + ((logtest? (the-as int v1-0) 1) + (cond + ((= v1-0 'board) + (if (logtest? (focus-status board) (-> gp-0 focus-status)) + (return #t) + ) + ) + ((= v1-0 'gun) + (if (logtest? (focus-status gun) (-> gp-0 focus-status)) + (return #t) + ) + ) + ((= v1-0 'mech) + (if (logtest? (focus-status mech) (-> gp-0 focus-status)) + (return #t) + ) + ) + ((= v1-0 'pilot) + (if (logtest? (focus-status pilot) (-> gp-0 focus-status)) + (return #t) + ) + ) + ((= v1-0 'grabbed) + (if (logtest? (-> gp-0 focus-status) (focus-status grabbed)) + (return #t) + ) + ) + ((= v1-0 'indax) + (if (logtest? (focus-status indax) (-> gp-0 focus-status)) + (return #t) + ) + ) + ((= v1-0 'dark) + (if (logtest? (focus-status dark) (-> gp-0 focus-status)) + (return #t) + ) + ) + ) + ) + (else + (format 0 "ERROR: SCRIPT: param bit = ~A is type ~A, needed type ~A.~%" v1-0 (rtype-of v1-0) 'symbol) + ) + ) + (set! s5-1 (cdr s5-1)) + (set! v1-0 (car (the-as pair s5-1))) + ) + ) + #f + ) + ) + ) + ) + ) + +(let ((v1-77 (-> *script-form* 33))) + (set! (-> v1-77 name) 'game-feature!) + (set! (-> v1-77 spec) + '((return macro (none)) (function macro (symbol)) (feature macro (symbol)) (value eval (symbol))) + ) + (set! (-> v1-77 func) (the-as + (function script-context object) + (lambda ((arg0 script-context)) + (case (-> arg0 param 1) + (('board) + (if (-> arg0 param 2) + (logior! (-> *game-info* features) (game-feature board)) + (logclear! (-> *game-info* features) (game-feature board)) + ) + ) + (else + (format 0 "ERROR: SCRIPT: unknown feature type ~A~%" (-> arg0 param 1)) + ) + ) + 0 + (none) + ) + ) + ) + ) + +(let ((v1-79 (-> *script-form* 34))) + (set! (-> v1-79 name) 'game-feature?) + (set! (-> v1-79 spec) '((return macro (boolean)) (function macro (symbol)) (feature macro (symbol)))) + (set! (-> v1-79 func) + (lambda ((arg0 script-context)) (case (-> arg0 param 1) + (('board) + (logtest? (-> *game-info* features) (game-feature board)) + ) + (else + (format 0 "ERROR: SCRIPT: unknown feature type ~A~%" (-> arg0 param 1)) + #f + ) + ) + ) + ) + ) + +(let ((v1-81 (-> *script-form* 35))) + (set! (-> v1-81 name) 'entity-status?) + (set! (-> v1-81 spec) + '((return macro (symbol)) + (function macro (symbol)) + (target eval (string process entity-actor actor-group #f binteger)) + &rest + params + ) + ) + (set! (-> v1-81 func) + (lambda ((arg0 script-context)) + (let ((v1-0 (command-get-entity (-> arg0 param 1) (the-as entity #f)))) + (when v1-0 + (let* ((gp-1 (-> arg0 param 2)) + (s5-0 (-> v1-0 extra perm status)) + (v1-2 (car (the-as pair gp-1))) + ) + (while (not (null? gp-1)) + (cond + ((logtest? (the-as int v1-2) 1) + (cond + ((or (= v1-2 'no-birth) (= v1-2 'dead)) + (if (logtest? s5-0 (entity-perm-status dead)) + (return #t) + ) + ) + ((= v1-2 'subtask-complete) + (if (logtest? s5-0 (entity-perm-status subtask-complete bit-12)) + (return #t) + ) + ) + ) + ) + (else + (format 0 "ERROR: SCRIPT: param bit = ~A is type ~A, needed type ~A.~%" v1-2 (rtype-of v1-2) 'symbol) + ) + ) + (set! gp-1 (cdr gp-1)) + (set! v1-2 (car (the-as pair gp-1))) + ) + ) + #f + ) + ) + ) + ) + ) + +(let ((v1-83 (-> *script-form* 36))) + (set! (-> v1-83 name) 'setting-set) + (set! (-> v1-83 spec) + '((return macro (none)) + (function macro (symbol)) + (setting macro (symbol)) + &key + (mode eval (object)) + (value eval (bfloat)) + (mask eval (binteger)) + ) + ) + (set! (-> v1-83 func) + (the-as (function script-context object) (lambda ((arg0 script-context)) + " + '(setting-set bg-a :mode 'abs :value 1.0) + " + (if (-> arg0 side-effect?) + (add-setting + *setting-control* + (-> arg0 process) + (the-as symbol (-> arg0 param 1)) + (-> arg0 param 2) + (command-get-float (-> arg0 param 3) 0.0) + (command-get-int (-> arg0 param 4) 0) + ) + ) + (none) + ) + ) + ) + ) + +(let ((v1-85 (-> *script-form* 37))) + (set! (-> v1-85 name) 'setting-reset) + (set! (-> v1-85 spec) + '((return macro (none)) + (function macro (symbol)) + (setting macro (symbol)) + &key + (mode eval (object)) + (value eval (bfloat)) + (mask eval (binteger)) + ) + ) + (set! (-> v1-85 func) + (the-as (function script-context object) (lambda ((arg0 script-context)) + (if (-> arg0 side-effect?) + (set-setting + *setting-control* + (-> arg0 process) + (the-as symbol (-> arg0 param 1)) + (-> arg0 param 2) + (command-get-float (-> arg0 param 3) 0.0) + (command-get-int (-> arg0 param 4) 0) + ) + ) + (none) + ) + ) + ) + ) + +(let ((v1-87 (-> *script-form* 38))) + (set! (-> v1-87 name) 'setting-pers) + (set! (-> v1-87 spec) + '((return macro (none)) + (function macro (symbol)) + (setting macro (symbol)) + &key + (mode eval (object) #f) + (value macro (bfloat pair) (new 'static 'bfloat)) + (mask eval (binteger) 0) + (time macro (pair) 0) + ) + ) + (set! (-> v1-87 func) + (the-as + (function script-context object) + (lambda ((arg0 script-context)) + " + (setting-pers ambient-volume :mode 'rel :value 0.5) + " + (local-vars (sv-16 pair) (sv-24 object) (sv-32 float) (sv-48 float)) + (when (-> arg0 side-effect?) + (set! sv-16 (-> arg0 expr)) + (set! sv-24 (eval! arg0 (the-as pair (-> arg0 param 5)))) + (set! sv-32 (the-as float (if (pair? (-> arg0 param 3)) + (eval! arg0 (the-as pair (-> arg0 param 3))) + (command-get-float (-> arg0 param 3) 0.0) + ) + ) + ) + (let* ((s5-0 *setting-control*) + (s4-0 (method-of-object s5-0 persist-with-delay)) + (s3-0 sv-16) + (s2-0 sv-24) + (s1-0 (-> arg0 param 1)) + (s0-0 (-> arg0 param 2)) + ) + (set! sv-48 sv-32) + (let ((t2-0 (command-get-int (-> arg0 param 4) 0))) + (s4-0 s5-0 (the-as symbol s3-0) (the-as time-frame s2-0) (the-as symbol s1-0) (the-as symbol s0-0) sv-48 t2-0) + ) + ) + ) + (none) + ) + ) + ) + ) + +(let ((v1-89 (-> *script-form* 39))) + (set! (-> v1-89 name) 'setting-unset) + (set! (-> v1-89 spec) '((return macro (none)) (function macro (symbol)) (setting macro (symbol)))) + (set! (-> v1-89 func) + (the-as + (function script-context object) + (lambda ((arg0 script-context)) + (if (-> arg0 side-effect?) + (remove-setting *setting-control* (-> arg0 process) (the-as symbol (-> arg0 param 1))) + ) + (none) + ) + ) + ) + ) + +(let ((v1-91 (-> *script-form* 40))) + (set! (-> v1-91 name) 'setting-value) + (set! (-> v1-91 spec) '((return macro (object)) (function macro (symbol)) (setting macro (symbol)))) + (set! (-> v1-91 func) (lambda ((arg0 script-context)) + "return the value of a setting." + (case (-> arg0 param 1) + (('entity-name) + (-> *setting-control* cam-current entity-name) + ) + (('airlock) + (-> *setting-control* user-current airlock) + ) + (('exclusive-task) + (* (-> *setting-control* user-current exclusive-task) 8) + ) + ) + ) + ) + ) + +(let ((v1-93 (-> *script-form* 41))) + (set! (-> v1-93 name) 'setting-update) + (set! (-> v1-93 spec) '((return macro (none)) (function macro (symbol)))) + (set! (-> v1-93 func) (the-as (function script-context object) (lambda ((arg0 script-context)) + "update settings" + (if (-> arg0 side-effect?) + (apply-settings *setting-control*) + ) + 0 + (none) + ) + ) + ) + ) + +(let ((v1-95 (-> *script-form* 42))) + (set! (-> v1-95 name) 'sound-play) + (set! (-> v1-95 spec) '((return macro (none)) + (function macro (symbol)) + (name eval (string)) + &key + (volume eval (bfloat binteger) (new 'static 'bfloat :data 1.0)) + (pitch-mod eval (bfloat binteger) (new 'static 'bfloat)) + (bend eval (bfloat binteger) (new 'static 'bfloat)) + (trans eval (vector) #f) + (ground-effect (symbol) #t) + ) + ) + (set! (-> v1-95 func) (lambda ((arg0 script-context)) + (when (-> arg0 side-effect?) + (let ((s5-0 sound-play-by-name) + (s4-0 (string->sound-name (the-as string (-> arg0 param 1)))) + (s3-0 (new-sound-id)) + (s2-0 (the int (* 1024.0 (command-get-float (-> arg0 param 2) 0.0)))) + (s1-0 (the int (* 1524.0 (command-get-float (-> arg0 param 3) 0.0)))) + (t0-0 (the int (* 327.66998 (command-get-float (-> arg0 param 4) 0.0)))) + (t1-0 1) + (t2-0 (-> arg0 param 5)) + ) + (set! t2-0 (cond + (t2-0 + (empty) + t2-0 + ) + (else + (-> arg0 trans) + ) + ) + ) + (s5-0 s4-0 s3-0 s2-0 s1-0 t0-0 (the-as sound-group t1-0) t2-0) + ) + ) + ) + ) + ) + +(let ((v1-97 (-> *script-form* 43))) + (set! (-> v1-97 name) 'sound-play-loop) + (set! (-> v1-97 spec) + '((return macro (none)) + (function macro (symbol)) + (name eval (string)) + &key + (volume eval (bfloat binteger) (new 'static 'bfloat :data 1.0)) + (pitch-mod eval (bfloat binteger) (new 'static 'bfloat)) + (bend eval (bfloat binteger) (new 'static 'bfloat)) + (trans eval (vector) #f) + ) + ) + (set! (-> v1-97 func) + (lambda ((arg0 script-context)) + (when (-> arg0 side-effect?) + (let ((s3-0 (schedule-callback *sound-loop-engine* (-> arg0 expr) 0))) + (when s3-0 + (if (zero? (-> s3-0 param-int64 0)) + (set! (-> s3-0 param-int64 0) (the-as int (new-sound-id))) + ) + (let ((s5-0 sound-play-by-name) + (s4-0 (string->sound-name (the-as string (-> arg0 param 1)))) + (s3-1 (-> s3-0 param-int64 0)) + (s2-0 (the int (* 1024.0 (command-get-float (-> arg0 param 2) 0.0)))) + (a3-0 (the int (* 1524.0 (command-get-float (-> arg0 param 3) 0.0)))) + (t0-0 0) + (t1-0 1) + (t2-0 (-> arg0 param 5)) + ) + (set! t2-0 (cond + (t2-0 + (empty) + t2-0 + ) + (else + (-> arg0 trans) + ) + ) + ) + (s5-0 s4-0 (the-as sound-id s3-1) s2-0 a3-0 t0-0 (the-as sound-group t1-0) t2-0) + ) + ) + ) + ) + ) + ) + ) + +(let ((v1-99 (-> *script-form* 44))) + (set! (-> v1-99 name) 'blackout) + (set! (-> v1-99 spec) '((return macro (none)) (function macro (symbol)) (time macro (binteger bfloat pair)))) + (set! (-> v1-99 func) + (the-as + (function script-context object) + (lambda ((arg0 script-context)) + (when (-> arg0 side-effect?) + (let ((a2-0 (if (pair? (-> arg0 param 1)) + (the-as int (command-get-time (-> arg0 param 1) 1)) + (the int (* 5.0000005 (the float (command-get-int (-> arg0 param 1) 0)))) + ) + ) + ) + (persist-with-delay *setting-control* 'blackout (the-as time-frame a2-0) 'bg-a-force 'abs 1.0 0) + ) + ) + (none) + ) + ) + ) + ) + +(let ((v1-101 (-> *script-form* 45))) + (set! (-> v1-101 name) 'fadeout) + (set! (-> v1-101 spec) '((return macro (none)) (function macro (symbol)) (time macro (binteger bfloat pair)))) + (set! (-> v1-101 func) + (the-as + (function script-context object) + (lambda ((arg0 script-context)) + (when (-> arg0 side-effect?) + (let ((gp-0 (command-get-time (-> arg0 param 1) 1))) + (persist-with-delay + *setting-control* + 'bg-a-speed + (+ gp-0 (seconds 1)) + 'bg-a-speed + 'abs + (/ 300.0 (the float gp-0)) + 0 + ) + (persist-with-delay *setting-control* 'bg-a (+ gp-0 (seconds 1)) 'bg-a 'abs 1.0 0) + ) + ) + 0 + (none) + ) + ) + ) + ) + +(let ((v1-103 (-> *script-form* 46))) + (set! (-> v1-103 name) 'fadein) + (set! (-> v1-103 spec) '((return macro (none)) (function macro (symbol)) (time macro (binteger bfloat pair)))) + (set! (-> v1-103 func) + (the-as (function script-context object) (lambda ((arg0 script-context)) + (when (-> arg0 side-effect?) + (let ((gp-0 (command-get-time (-> arg0 param 1) 1))) + (set! (-> *setting-control* user-current bg-a) 1.0) + (apply-settings *setting-control*) + (persist-with-delay + *setting-control* + 'bg-a-speed + (+ gp-0 (seconds 1)) + 'bg-a-speed + 'abs + (/ 300.0 (the float gp-0)) + 0 + ) + ) + ) + 0 + (none) + ) + ) + ) + ) + +(let ((v1-105 (-> *script-form* 47))) + (set! (-> v1-105 name) 'time-of-day) + (set! (-> v1-105 spec) '((return macro (none)) (function macro (symbol)) (value eval (binteger bfloat)))) + (set! (-> v1-105 func) (lambda :behavior time-of-day-proc + ((arg0 script-context)) + (when (-> arg0 side-effect?) + (let ((v1-1 (command-get-int (-> arg0 param 1) 0))) + (cond + ((< v1-1 0) + (send-event (ppointer->process *time-of-day*) 'change 'ratio #x3f800000) + ) + (else + (send-event (ppointer->process *time-of-day*) 'change 'hour v1-1) + (send-event (ppointer->process *time-of-day*) 'change 'ratio 0) + ) + ) + ) + ) + ) + ) + ) + +(let ((v1-107 (-> *script-form* 48))) + (set! (-> v1-107 name) 'time-of-day?) + (set! (-> v1-107 spec) '((return macro (boolean)) (function macro (symbol)) (value macro (symbol)))) + (set! (-> v1-107 func) + (lambda :behavior time-of-day-proc + ((arg0 script-context)) + (let ((a1-0 (new 'stack-no-clear 'event-message-block))) + (set! (-> a1-0 from) (process->ppointer self)) + (set! (-> a1-0 num-params) 0) + (set! (-> a1-0 message) 'hour) + (let ((v1-4 (the-as int (send-event-function (ppointer->process *time-of-day*) a1-0))) + (a0-3 (-> arg0 param 1)) + ) + (the-as symbol (cond + ((= a0-3 'night) + (or (>= v1-4 18) (< v1-4 6)) + ) + ((= a0-3 'day) + (and (>= v1-4 6) (< v1-4 18)) + ) + ((= a0-3 'dawn) + (and (>= v1-4 4) (< v1-4 7)) + ) + ((= a0-3 'dusk) + (and (>= v1-4 16) (< v1-4 19)) + ) + (else + (format 0 "ERROR: SCRIPT: unknown time-of-day? test '~A'~%" (-> arg0 param 1)) + ) + ) + ) + ) + ) + ) + ) + ) + +(let ((v1-109 (-> *script-form* 49))) + (set! (-> v1-109 name) 'region-prim) + (set! (-> v1-109 spec) + '((return macro (drawable-region-prim)) (function macro (symbol)) (id eval (binteger))) + ) + (set! (-> v1-109 func) (lambda ((arg0 script-context)) + "lookup a region by number and return the region-prim." + (let ((gp-0 region-prim-lookup-by-id) + (a0-2 (command-get-int (-> arg0 param 1) 0)) + ) + 0 + (gp-0 a0-2) + ) + ) + ) + ) + +(let ((v1-111 (-> *script-form* 50))) + (set! (-> v1-111 name) 'region) + (set! (-> v1-111 spec) + '((return macro (drawable-region-prim)) (function macro (symbol)) (id eval (binteger))) + ) + (set! (-> v1-111 func) (lambda ((arg0 script-context)) + "lookup a region by number and return the region-prim." + (region-lookup-by-id (command-get-int (-> arg0 param 1) 0)) + ) + ) + ) + +(let ((v1-113 (-> *script-form* 51))) + (set! (-> v1-113 name) 'part-tracker) + (set! (-> v1-113 spec) + '((return macro (none)) + (function macro (symbol)) + (name eval (string symbol)) + &key + (entity eval (string process entity-actor drawable-region-prim #f) #f) + (joint eval (string) #f) + (track eval (symbol) #f) + (duration macro (object) 0) + ) + ) + (set! (-> v1-113 func) + (lambda ((arg0 script-context)) + " spawn a part tracker. If the :entity is given, do it at that process's location. Otherwise use the (-> context process), if not that then the (-> context trans). + " + (local-vars + (a1-14 process-tree) + (sv-80 sparticle-launch-group) + (sv-84 process-drawable) + (sv-88 entity) + (sv-92 drawable-region-prim) + (sv-96 matrix) + (sv-104 int) + (sv-112 object) + (sv-120 time-frame) + ) + (when (-> arg0 side-effect?) + (if (not (-> arg0 param 2)) + (set! (-> arg0 param 2) (-> arg0 process)) + ) + (set! sv-80 (if (logtest? (the-as int (-> arg0 param 1)) 1) + (lookup-part-group-by-name (symbol->string (the-as symbol (-> arg0 param 1)))) + (lookup-part-group-by-name (the-as string (-> arg0 param 1))) + ) + ) + (let ((gp-0 (command-get-process (-> arg0 param 2) (the-as process #f)))) + (set! sv-84 (if (type? gp-0 process-drawable) + (the-as process-drawable gp-0) + ) + ) + ) + (set! sv-88 (the-as entity #f)) + (set! sv-92 (the-as drawable-region-prim #f)) + (set! sv-96 (matrix-identity! (new 'stack-no-clear 'matrix))) + (set! sv-104 0) + (set! sv-112 (-> arg0 param 4)) + (set! sv-120 (command-get-time (-> arg0 param 5) 1)) + (let* ((s4-0 sv-80) + (gp-1 (if (type? s4-0 sparticle-launch-group) + s4-0 + ) + ) + (v1-12 (-> arg0 param 2)) + (s4-1 (and (= (rtype-of v1-12) string) (string= (the-as string (-> arg0 param 2)) "zero"))) + ) + (cond + (gp-1 + (when (not sv-84) + (set! sv-112 #f) + (set! sv-88 (command-get-entity (-> arg0 param 2) (the-as entity #f))) + (when (not sv-88) + (let ((s3-0 (-> arg0 param 2))) + (set! sv-92 (if (type? s3-0 drawable-region-prim) + (the-as drawable-region-prim s3-0) + ) + ) + ) + ) + ) + (if (and (not sv-84) (and (not sv-88) (-> arg0 param 2) (not s4-1))) + (format 0 "ERROR: SCRIPT: part-tracker: unknown entity ~A in:~%~T~A~%" (-> arg0 param 2) (-> arg0 expr)) + ) + (when (or sv-84 sv-88 sv-92 (-> arg0 trans) s4-1) + (cond + ((and sv-84 (nonzero? (-> sv-84 root))) + (let ((a1-9 (-> arg0 param 3))) + (cond + (a1-9 + (let ((v1-37 (if (nonzero? (-> sv-84 draw)) + (the-as joint (get-art-by-name-method (-> sv-84 draw jgeo) (the-as string a1-9) (the-as type #f))) + ) + ) + ) + (cond + (v1-37 + (set! sv-104 (+ (-> v1-37 number) 1)) + (let ((a1-10 (-> sv-84 node-list data sv-104))) + (let* ((v1-46 sv-96) + (t0-0 (-> a1-10 bone transform)) + (a0-23 (-> t0-0 vector 0 quad)) + (a2-2 (-> t0-0 vector 1 quad)) + (a3-1 (-> t0-0 vector 2 quad)) + (t0-1 (-> t0-0 trans quad)) + ) + (set! (-> v1-46 vector 0 quad) a0-23) + (set! (-> v1-46 vector 1 quad) a2-2) + (set! (-> v1-46 vector 2 quad) a3-1) + (set! (-> v1-46 trans quad) t0-1) + ) + (vector<-cspace! (-> sv-96 trans) a1-10) + ) + ) + (else + (format 0 "ERROR: SCRIPT: part-tracker: unknown joint ~A in:~%~T~A~%" (-> arg0 param 3) (-> arg0 expr)) + (set! (-> sv-96 trans quad) (-> sv-84 root trans quad)) + ) + ) + ) + ) + (else + (set! (-> sv-96 trans quad) (-> sv-84 root trans quad)) + ) + ) + ) + ) + (sv-88 + (set! (-> sv-96 trans quad) (-> sv-88 extra trans quad)) + ) + (sv-92 + (set! (-> sv-96 trans quad) (-> sv-92 bsphere quad)) + ) + (s4-1 + (set! (-> sv-96 trans quad) (-> *null-vector* quad)) + ) + (else + (set! (-> sv-96 trans quad) (-> arg0 trans quad)) + ) + ) + ) + (when (logtest? (-> sv-80 flags) (sp-group-flag screen-space)) + (let* ((a2-4 sv-96) + (a3-3 *identity-matrix*) + (v1-67 (-> a3-3 vector 0 quad)) + (a0-45 (-> a3-3 vector 1 quad)) + (a1-12 (-> a3-3 vector 2 quad)) + (a3-4 (-> a3-3 trans quad)) + ) + (set! (-> a2-4 vector 0 quad) v1-67) + (set! (-> a2-4 vector 1 quad) a0-45) + (set! (-> a2-4 vector 2 quad) a1-12) + (set! (-> a2-4 trans quad) a3-4) + ) + ) + (let ((s5-1 (get-process *default-dead-pool* part-tracker #x4000))) + (when s5-1 + (let ((t9-15 (method-of-type part-tracker activate)) + (a0-47 s5-1) + ) + (set! a1-14 (cond + (sv-112 + sv-84 + ) + (else + (set! a1-14 (ppointer->process (-> *setting-control* user-current movie))) + (cond + (a1-14 + (empty) + a1-14 + ) + (else + *entity-pool* + ) + ) + ) + ) + ) + (t9-15 + (the-as part-tracker a0-47) + a1-14 + (symbol->string (-> part-tracker symbol)) + (the-as pointer #x70004000) + ) + ) + (run-now-in-process + s5-1 + part-tracker-init + gp-1 + sv-120 + #f + #f + (if sv-112 + sv-84 + (the-as process-drawable #f) + ) + (if sv-112 + sv-104 + sv-96 + ) + ) + (-> s5-1 ppointer) + ) + ) + ) + (else + (format + 0 + "ERROR: SCRIPT: part-tracker: unknown particle group \"~S\" in:~%~T~A~%" + (-> arg0 param 1) + (-> arg0 expr) + ) + ) + ) + ) + ) + ) + ) + ) + +(let ((v1-115 (-> *script-form* 52))) + (set! (-> v1-115 name) 'lightning-tracker) + (set! (-> v1-115 spec) + '((return macro (none)) + (function macro (symbol)) + (name eval (string symbol)) + &key + (from-entity eval (string process entity-actor drawable-region-prim #f) #f) + (to-entity eval (string process entity-actor drawable-region-prim #f) #f) + (from-joint eval (string) #f) + (to-joint eval (string) #f) + (duration macro (object) 0) + ) + ) + (set! (-> v1-115 func) + (the-as + (function script-context object) + (lambda ((arg0 script-context)) + (local-vars (sv-48 vector) (sv-52 vector) (sv-56 int) (sv-64 int) (sv-72 time-frame) (sv-80 lightning-spec)) + (when (-> arg0 side-effect?) + (if (not (-> arg0 param 2)) + (set! (-> arg0 param 2) (-> arg0 process)) + ) + (if (logtest? (the-as int (-> arg0 param 1)) 1) + (set! sv-80 (lookup-lightning-spec-by-name (symbol->string (the-as symbol (-> arg0 param 1))))) + (set! sv-80 (lookup-lightning-spec-by-name (the-as string (-> arg0 param 1)))) + ) + (let* ((s5-0 (command-get-process (-> arg0 param 2) (the-as process #f))) + (gp-0 (if (type? s5-0 process-drawable) + (the-as process-drawable s5-0) + ) + ) + (s5-1 (command-get-process (-> arg0 param 3) (the-as process #f))) + (s4-0 (if (type? s5-1 process-drawable) + (the-as process-drawable s5-1) + ) + ) + (s0-0 (the-as entity #f)) + (s1-0 (the-as entity #f)) + (s5-2 #f) + ) + (set! sv-48 (vector-reset! (new 'stack-no-clear 'vector))) + (set! sv-52 (vector-reset! (new 'stack-no-clear 'vector))) + (set! sv-56 0) + (set! sv-64 0) + (set! sv-72 (command-get-time (-> arg0 param 6) 1)) + (let ((s3-0 (if (type? sv-80 lightning-spec) + sv-80 + ) + ) + ) + (when s3-0 + (if (not gp-0) + (set! s0-0 (command-get-entity (-> arg0 param 2) (the-as entity #f))) + ) + (if (not s4-0) + (set! s1-0 (command-get-entity (-> arg0 param 3) (the-as entity #f))) + ) + (when (or (and gp-0 s4-0) (and s0-0 s1-0)) + (cond + ((and gp-0 s4-0) + (set! s5-2 #t) + (let ((s0-1 (-> arg0 param 4)) + (s1-1 (-> arg0 param 5)) + ) + (cond + (s0-1 + (let ((v1-21 (the-as joint (get-art-by-name-method (-> gp-0 draw jgeo) (the-as string s0-1) (the-as type #f))))) + (cond + (v1-21 + (set! sv-56 (+ (-> v1-21 number) 1)) + (let ((a1-9 (-> gp-0 node-list data sv-56))) + (vector<-cspace! sv-48 a1-9) + ) + ) + (else + (format 0 "ERROR: SCRIPT: lightning-tracker: unknown from-joint ~A in:~%~T~A~%" s0-1 (-> arg0 expr)) + (set! (-> sv-48 quad) (-> gp-0 root trans quad)) + ) + ) + ) + ) + (else + (set! (-> sv-48 quad) (-> gp-0 root trans quad)) + ) + ) + (cond + (s1-1 + (let ((v1-32 (the-as joint (get-art-by-name-method (-> s4-0 draw jgeo) (the-as string s1-1) (the-as type #f))))) + (cond + (v1-32 + (set! sv-64 (+ (-> v1-32 number) 1)) + (let ((a1-12 (-> s4-0 node-list data sv-64))) + (vector<-cspace! sv-52 a1-12) + ) + ) + (else + (format 0 "ERROR: SCRIPT: lightning-tracker: unknown to-joint ~A in:~%~T~A~%" s1-1 (-> arg0 expr)) + (set! (-> sv-52 quad) (-> s4-0 root trans quad)) + ) + ) + ) + ) + (else + (set! (-> sv-52 quad) (-> s4-0 root trans quad)) + ) + ) + ) + ) + ((and s0-0 s1-0) + (set! (-> sv-48 quad) (-> s0-0 extra trans quad)) + (set! (-> sv-52 quad) (-> s1-0 extra trans quad)) + ) + ) + ) + (process-spawn + lightning-tracker + :init lightning-tracker-init + s3-0 + sv-72 + #f + (cond + (s5-2 + (empty) + gp-0 + ) + (else + (the-as process-drawable #f) + ) + ) + (if s5-2 + sv-56 + sv-48 + ) + (if s5-2 + sv-64 + sv-52 + ) + :to (cond + (s5-2 + (empty) + s4-0 + ) + (else + (let ((v1-48 (-> *setting-control* user-current movie))) + (set! s4-0 (if v1-48 + (the-as process-drawable (-> v1-48 0 self)) + ) + ) + ) + (cond + (s4-0 + (empty) + s4-0 + ) + (else + (the-as process-drawable *entity-pool*) + ) + ) + ) + ) + ) + ) + ) + ) + ) + (none) + ) + ) + ) + ) + +(let ((v1-117 (-> *script-form* 53))) + (set! (-> v1-117 name) 'joint-eval) + (set! (-> v1-117 spec) + '((return macro (none)) + (function macro (symbol)) + (lambda eval (function)) + &key + (entity eval (string process entity-actor #f) #f) + (joint eval (string) #f) + ) + ) + (set! (-> v1-117 func) + (the-as + (function script-context object) + (lambda ((arg0 script-context)) + " call a (lambda (process vector cspace)) on the specified location. + + e.g `(joint-eval ,(lambda ((proc process) (trans vector) (cs cspace)) (format #t \"~A ~`vector`P ~`cspace`P~%\" proc trans cs)) :entity *target* :joint \"neckB\") + + proc - the process or #f + trans - the position specified (will always be true) + cs - the cspace, or #f + + " + (when (-> arg0 side-effect?) + (if (not (-> arg0 param 2)) + (set! (-> arg0 param 2) (-> arg0 process)) + ) + (let* ((s5-0 (-> arg0 param 1)) + (gp-0 (if (type? s5-0 function) + (the-as (function process vector cspace) s5-0) + ) + ) + (s3-0 (command-get-process (-> arg0 param 2) (the-as process #f))) + (s5-1 (if (type? s3-0 process-drawable) + (the-as process-drawable s3-0) + ) + ) + (v1-5 (the-as entity #f)) + ) + (let ((s3-1 (the-as object #f))) + (if (not s5-1) + (set! v1-5 (command-get-entity (-> arg0 param 2) (the-as entity #f))) + ) + (if (or s5-1 v1-5 (-> arg0 trans)) + (gp-0 + s5-1 + (cond + ((and s5-1 (nonzero? (-> s5-1 draw)) (nonzero? (-> s5-1 node-list))) + (let ((a1-5 (-> arg0 param 3))) + (cond + (a1-5 + (let ((v1-8 (the-as joint (get-art-by-name-method (-> s5-1 draw jgeo) (the-as string a1-5) (the-as type #f))))) + (cond + (v1-8 + (set! s3-1 (-> s5-1 node-list data (+ (-> v1-8 number) 1))) + (vector<-cspace! (new 'stack-no-clear 'vector) (the-as cspace s3-1)) + ) + (else + (format 0 "ERROR: SCRIPT: joint-eval: unknown joint ~A in:~%~T~A~%" (-> arg0 param 3) (-> arg0 expr)) + (set! s3-1 (-> s5-1 node-list data)) + (-> s5-1 root trans) + ) + ) + ) + ) + (else + (set! s3-1 (-> s5-1 node-list data)) + (-> s5-1 root trans) + ) + ) + ) + ) + (v1-5 + (-> v1-5 extra trans) + ) + (else + (-> arg0 trans) + ) + ) + ) + (format 0 "ERROR: SCRIPT: joint-eval: unknown entity ~A in:~%~T~A~%" (-> arg0 param 2) (-> arg0 expr)) + ) + ) + ) + ) + (none) + ) + ) + ) + ) + +(let ((v1-119 (-> *script-form* 54))) + (set! (-> v1-119 name) 'auto-save) + (set! (-> v1-119 spec) '((return macro (none)) (function macro (symbol)) (value eval (symbol)))) + (set! (-> v1-119 func) (the-as + (function script-context object) + (lambda ((arg0 script-context)) + (if (-> arg0 side-effect?) + (auto-save-command (the-as symbol (-> arg0 param 1)) 0 0 *default-pool* #f) + ) + (none) + ) + ) + ) + ) + +(let ((v1-121 (-> *script-form* 55))) + (set! (-> v1-121 name) 'teleport) + (set! (-> v1-121 spec) '((return macro (none)) (function macro (symbol)))) + (set! (-> v1-121 func) (lambda ((arg0 script-context)) (when (-> arg0 side-effect?) + (let ((v0-0 #t)) + (set! *teleport* v0-0) + v0-0 + ) + ) + ) + ) + ) + +(let ((v1-123 (-> *script-form* 56))) + (set! (-> v1-123 name) 'scene-play) + (set! (-> v1-123 spec) '((return macro (none)) (function macro (symbol)) (name eval (string pair)))) + (set! (-> v1-123 func) (lambda ((arg0 script-context)) + (if (and (-> arg0 side-effect?) + *target* + (not *scene-player*) + (zero? (logand (-> *target* focus-status) (focus-status dead))) + ) + (process-spawn scene-player :init scene-player-init (-> arg0 param 1) #t #f) + ) + ) + ) + ) + +(let ((v1-125 (-> *script-form* 57))) + (set! (-> v1-125 name) 'kill) + (set! (-> v1-125 spec) + '((return macro (none)) + (function macro (symbol)) + (entity eval (string entity-actor process #f)) + &key + (store eval (symbol) #t) + ) + ) + (set! (-> v1-125 func) + (lambda ((arg0 script-context)) + "Store an entity's state in the load-state and then kill him and set him to be dead." + (local-vars (v0-0 entity-perm-status) (v1-5 int)) + (when (-> arg0 side-effect?) + (let* ((s5-0 (-> arg0 load-state)) + (s3-0 (command-get-entity (-> arg0 param 1) (the-as entity #f))) + (gp-0 (if (type? s3-0 entity-actor) + s3-0 + ) + ) + ) + (when gp-0 + (let ((a0-4 (res-lump-struct gp-0 'name structure))) + (cond + ((-> arg0 param 2) + (dotimes (v1-4 256) + (when (not (-> s5-0 object-name v1-4)) + (set! (-> s5-0 object-name v1-4) (the-as string a0-4)) + (set! (-> s5-0 object-status v1-4) (the-as basic (-> gp-0 extra perm status))) + (set! v1-5 v1-4) + (goto cfg-12) + ) + ) + (set! v1-5 -1) + (label cfg-12) + (when (>= v1-5 0) + (if (-> gp-0 extra process) + (kill! gp-0) + ) + (set! v0-0 (logior (-> gp-0 extra perm status) (entity-perm-status dead))) + (set! (-> gp-0 extra perm status) v0-0) + v0-0 + ) + ) + (else + (if (-> gp-0 extra process) + (kill! gp-0) + ) + (set! v0-0 (logior (-> gp-0 extra perm status) (entity-perm-status dead))) + (set! (-> gp-0 extra perm status) v0-0) + v0-0 + ) + ) + ) + ) + ) + ) + ) + ) + ) + +(let ((v1-127 (-> *script-form* 58))) + (set! (-> v1-127 name) 'alive) + (set! (-> v1-127 spec) + '((return macro (none)) + (function macro (symbol)) + (entity eval (string entity-actor process #f)) + &key + (store eval (symbol) #t) + ) + ) + (set! (-> v1-127 func) + (the-as + (function script-context object) + (lambda ((arg0 script-context)) + "Store an entity's state in the load-state and then force him to be alive." + (local-vars (v1-12 int)) + (when (-> arg0 side-effect?) + (let* ((s5-0 (-> arg0 load-state)) + (s3-0 (command-get-entity (-> arg0 param 1) (the-as entity #f))) + (gp-0 (if (type? s3-0 entity-actor) + s3-0 + ) + ) + ) + (when gp-0 + (cond + ((-> arg0 param 2) + (dotimes (s4-1 256) + (when (not (-> s5-0 object-name s4-1)) + (set! (-> s5-0 object-name s4-1) (res-lump-struct gp-0 'name string)) + (set! (-> s5-0 object-status s4-1) (the-as basic (-> gp-0 extra perm status))) + (set! v1-12 s4-1) + (goto cfg-12) + ) + ) + (set! v1-12 -1) + (label cfg-12) + (when (>= v1-12 0) + (entity-birth-no-kill gp-0) + (let ((v1-16 (-> gp-0 extra process))) + (when v1-16 + (logclear! (-> v1-16 mask) (process-mask actor-pause)) + (logclear! (-> v1-16 mask) (-> *kernel-context* prevent-from-run)) + ) + ) + ) + ) + (else + (entity-birth-no-kill gp-0) + ) + ) + ) + ) + ) + (none) + ) + ) + ) + ) + +(let ((v1-129 (-> *script-form* 59))) + (set! (-> v1-129 name) 'restore) + (set! (-> v1-129 spec) + '((return macro (none)) (function macro (symbol)) (entity eval (string entity-actor process #f))) + ) + (set! (-> v1-129 func) + (lambda ((arg0 script-context)) + "restore an entity's state fromt he load-state storage. Will reset him if he is alive." + (when (-> arg0 side-effect?) + (let* ((gp-0 (-> arg0 load-state)) + (s4-0 (command-get-entity (-> arg0 param 1) (the-as entity #f))) + (s5-0 (if (type? s4-0 entity-actor) + s4-0 + ) + ) + ) + (when s5-0 + (let ((s3-0 (res-lump-struct s5-0 'name structure))) + (dotimes (s4-1 256) + (when (string= (-> gp-0 object-name s4-1) (the-as string s3-0)) + (set! (-> s5-0 extra perm status) (the-as entity-perm-status (-> gp-0 object-status s4-1))) + (if (-> s5-0 extra process) + (kill! s5-0) + ) + (set! (-> gp-0 object-name s4-1) #f) + (return #f) + ) + ) + ) + #f + ) + ) + ) + ) + ) + ) + +(let ((v1-131 (-> *script-form* 60))) + (set! (-> v1-131 name) 'special) + (set! (-> v1-131 spec) + '((return macro (none)) + (function macro (symbol)) + (entity eval (string entity-actor process #f)) + (value eval (symbol)) + ) + ) + (set! (-> v1-131 func) + (the-as + (function script-context object) + (lambda ((arg0 script-context)) + "make a guy special or not." + (when (-> arg0 side-effect?) + (let* ((s5-0 (command-get-entity (-> arg0 param 1) (the-as entity #f))) + (a0-3 (if (type? s5-0 entity-actor) + (the-as entity-actor s5-0) + ) + ) + ) + (if a0-3 + (toggle-status a0-3 (entity-perm-status bit-7) (the-as symbol (-> arg0 param 2))) + ) + ) + ) + (none) + ) + ) + ) + ) + +(let ((v1-133 (-> *script-form* 61))) + (set! (-> v1-133 name) 'save) + (set! (-> v1-133 spec) '((return macro (none)) (function macro (symbol)))) + (set! (-> v1-133 func) (lambda ((arg0 script-context)) + "make changes permanent." + (when (-> arg0 side-effect?) + (mem-copy! (&-> *backup-load-state* type) (&-> (-> arg0 load-state) type) 2168) + (set! (-> *backup-load-state* command-list) '()) + (dotimes (v1-5 256) + (if (-> *backup-load-state* object-name v1-5) + (set! (-> *backup-load-state* object-name v1-5) #f) + ) + ) + #f + ) + ) + ) + ) + +(let ((v1-135 (-> *script-form* 62))) + (set! (-> v1-135 name) 'task-close!) + (set! (-> v1-135 spec) '((return macro (none)) (function macro (symbol)) (task eval (binteger string)))) + (set! (-> v1-135 func) + (the-as + (function script-context object) + (lambda ((arg0 script-context)) + "close a task stage." + (when (-> arg0 side-effect?) + (cond + ((zero? (logand (the-as int (-> arg0 param 1)) 7)) + (task-node-close! (the-as game-task-node (command-get-int (-> arg0 param 1) 0))) + ) + (else + (let ((s5-1 (-> arg0 param 1))) + (let ((s4-0 (-> *game-info* sub-task-list))) + (dotimes (s3-0 (-> s4-0 length)) + (when (nonzero? s3-0) + (let ((s2-0 (-> s4-0 s3-0))) + (when (string= (the-as string s5-1) (-> s2-0 name)) + (close! s2-0 'event) + (return 0) + ) + ) + ) + ) + ) + (format 0 "ERROR: SCRIPT: unknown task-node ~A in command ~A.~%" s5-1 (-> arg0 expr)) + ) + ) + ) + ) + (none) + ) + ) + ) + ) + +(let ((v1-137 (-> *script-form* 63))) + (set! (-> v1-137 name) 'task-open!) + (set! (-> v1-137 spec) '((return macro (none)) (function macro (symbol)) (task eval (binteger string)))) + (set! (-> v1-137 func) + (the-as + (function script-context object) + (lambda ((arg0 script-context)) + "close a task stage." + (when (-> arg0 side-effect?) + (cond + ((zero? (logand (the-as int (-> arg0 param 1)) 7)) + (task-node-open! (the-as game-task-node (command-get-int (-> arg0 param 1) 0))) + ) + (else + (let ((s5-1 (-> arg0 param 1))) + (let ((s4-0 (-> *game-info* sub-task-list))) + (dotimes (s3-0 (-> s4-0 length)) + (when (nonzero? s3-0) + (let ((s2-0 (-> s4-0 s3-0))) + (when (string= (the-as string s5-1) (-> s2-0 name)) + (open! s2-0 'event) + (return 0) + ) + ) + ) + ) + ) + (format 0 "ERROR: SCRIPT: unknown task-node ~A in command ~A.~%" s5-1 (-> arg0 expr)) + ) + ) + ) + ) + (none) + ) + ) + ) + ) + +(let ((v1-139 (-> *script-form* 64))) + (set! (-> v1-139 name) 'task-complete?) + (set! (-> v1-139 spec) '((return macro (none)) (function macro (symbol)) (task eval (binteger)))) + (set! (-> v1-139 func) + (lambda ((arg0 script-context)) + "test whether the need resolution stage of a task is closed (actually tests the bit array)" + (task-complete? *game-info* (the-as game-task (command-get-int (-> arg0 param 1) 0))) + ) + ) + ) + +(let ((v1-141 (-> *script-form* 65))) + (set! (-> v1-141 name) 'task-closed?) + (set! (-> v1-141 spec) '((return macro (boolean)) (function macro (symbol)) (task eval (binteger string)))) + (set! (-> v1-141 func) + (lambda ((arg0 script-context)) + "test whether the need resolution stage of a task is closed (actually tests the bit array)" + (cond + ((zero? (logand (the-as int (-> arg0 param 1)) 7)) + (task-node-closed? (the-as game-task-node (command-get-int (-> arg0 param 1) 0))) + ) + (else + (let ((s5-1 (-> arg0 param 1))) + (let ((s4-0 (-> *game-info* sub-task-list))) + (dotimes (s3-0 (-> s4-0 length)) + (when (nonzero? s3-0) + (let ((s2-0 (-> s4-0 s3-0))) + (if (string= (the-as string s5-1) (-> s2-0 name)) + (return (logtest? (-> s2-0 flags) (game-task-node-flag closed))) + ) + ) + ) + ) + ) + (format 0 "ERROR: SCRIPT: unknown task-node ~A in command ~A.~%" s5-1 (-> arg0 expr)) + ) + ) + ) + #f + ) + ) + ) + +(let ((v1-143 (-> *script-form* 66))) + (set! (-> v1-143 name) 'task-open?) + (set! (-> v1-143 spec) '((return macro (boolean)) (function macro (symbol)) (task eval (string)))) + (set! (-> v1-143 func) + (lambda ((arg0 script-context)) + "test whether the need resolution stage of a task is closed (actually tests the bit array)" + (let ((s5-0 (-> arg0 param 1))) + (let ((s4-0 (-> *game-info* sub-task-list)) + (s3-0 0) + ) + (while (< s3-0 (-> s4-0 length)) + (when (nonzero? s3-0) + (let ((v1-5 (-> s4-0 s3-0))) + (if (string= (the-as string s5-0) (-> v1-5 name)) + (return (task-node-open? (the-as game-task-node s3-0))) + ) + ) + ) + (set! s3-0 (+ s3-0 1)) + ) + ) + (format 0 "ERROR: SCRIPT: unknown task-node ~A in command ~A.~%" s5-0 (-> arg0 expr)) + ) + #f + ) + ) + ) + +(let ((v1-145 (-> *script-form* 67))) + (set! (-> v1-145 name) 'play-task) + (set! (-> v1-145 spec) '((return macro (none)) (function macro (symbol)) (task eval (binteger)))) + (set! (-> v1-145 func) (lambda ((arg0 script-context)) + "set the attributes for a task." + (if (-> arg0 side-effect?) + (play-task (the-as game-task (command-get-int (-> arg0 param 1) 0)) 'debug #f) + ) + ) + ) + ) + +(let ((v1-147 (-> *script-form* 68))) + (set! (-> v1-147 name) 'task-manager) + (set! (-> v1-147 spec) + '((return macro (process)) + (function macro (symbol)) + &key + (type macro (symbol) task-manager) + (level macro (symbol) #f) + ) + ) + (set! (-> v1-147 func) + (lambda ((arg0 script-context)) + "set the attributes for a task." + (when (-> arg0 side-effect?) + (let* ((s4-0 (-> arg0 key)) + (gp-0 (if (type? s4-0 game-task-node-info) + (the-as game-task-node-info s4-0) + ) + ) + (s3-0 (-> (the-as symbol (-> arg0 param 1)) value)) + (s4-1 (if (type? s3-0 type) + s3-0 + ) + ) + (s5-1 (-> arg0 param 2)) + ) + (set! s5-1 (cond + (s5-1 + (empty) + s5-1 + ) + (else + (if (and gp-0 (-> gp-0 info)) + (-> gp-0 info level) + ) + ) + ) + ) + (cond + ((and gp-0 (-> gp-0 info) s4-1 (or (not s5-1) (= (level-status *level* (the-as symbol s5-1)) 'active))) + (when (not (handle->process (-> gp-0 info manager))) + (let* ((s4-2 (get-process *default-dead-pool* (the-as type s4-1) #x4000)) + (v0-0 + (the-as object (ppointer->handle (when s4-2 + (let ((t9-4 (method-of-type process activate))) + (t9-4 s4-2 *entity-pool* (-> gp-0 name) (the-as pointer #x70004000)) + ) + (run-now-in-process s4-2 task-manager-init-by-other gp-0 s5-1) + (-> s4-2 ppointer) + ) + ) + ) + ) + ) + (set! (-> gp-0 info manager) (the-as handle v0-0)) + v0-0 + ) + ) + ) + (*debug-segment* + (format 0 "ERROR: SCRIPT: could not spawn task-manager for node ~A level ~A~%" gp-0 s5-1) + ) + ) + ) + ) + ) + ) + ) + +(let ((v1-149 (-> *script-form* 69))) + (set! (-> v1-149 name) 'water) + (set! (-> v1-149 spec) '((return macro (pair)) + (function macro (symbol)) + (mode macro (symbol)) + (data eval (object)) + (params macro (pair)) + ) + ) + (set! (-> v1-149 func) (lambda :behavior process + ((arg0 script-context)) + "define a water volume. command does nothing, just defines the syntax." + (-> arg0 expr) + ) + ) + ) + +(let ((v1-151 (-> *script-form* 70))) + (set! (-> v1-151 name) 'movie?) + (set! (-> v1-151 spec) '((return macro (boolean)) (function macro (symbol)))) + (set! (-> v1-151 func) (lambda ((arg0 script-context)) (movie?))) + ) + +(let ((v1-153 (-> *script-form* 71))) + (set! (-> v1-153 name) 'demo?) + (set! (-> v1-153 spec) '((return macro (boolean)) (function macro (symbol)))) + (set! (-> v1-153 func) (lambda ((arg0 script-context)) "are we in demo?" (demo?))) + ) + +(let ((v1-155 (-> *script-form* 72))) + (set! (-> v1-155 name) 'scene-player?) + (set! (-> v1-155 spec) '((return macro (boolean)) (function macro (symbol)))) + (set! (-> v1-155 func) + (lambda ((arg0 script-context)) + "test whether the need resolution stage of a task is closed (actually tests the bit array)" + (if *scene-player* + #t + #f + ) + ) + ) + ) + +(let ((v1-157 (-> *script-form* 73))) + (set! (-> v1-157 name) 'talker-spawn) + (set! (-> v1-157 spec) '((return macro (binteger)) (function macro (symbol)) (message eval (string)))) + (set! (-> v1-157 func) + (the-as (function script-context object) (lambda :behavior process + ((arg0 script-context)) + (if (-> arg0 side-effect?) + (* (talker-spawn-func + (string->talker-speech (the-as string (-> arg0 param 1))) + *entity-pool* + (target-pos 0) + (the-as region (-> arg0 key)) + ) + 8 + ) + 0 + ) + (none) + ) + ) + ) + ) + +(let ((v1-159 (-> *script-form* 74))) + (set! (-> v1-159 name) 'mark-played!) + (set! (-> v1-159 spec) '((return macro (none)) (function macro (symbol)) (message eval (string)))) + (set! (-> v1-159 func) (the-as + (function script-context object) + (lambda :behavior process + ((arg0 script-context)) + (when (-> arg0 side-effect?) + (let ((a0-2 (string->talker-speech (the-as string (-> arg0 param 1))))) + (if a0-2 + (talker-speech-class-method-10 a0-2) + ) + ) + ) + 0 + (none) + ) + ) + ) + ) + +(let ((v1-161 (-> *script-form* 75))) + (set! (-> v1-161 name) 'yes-play!) + (set! (-> v1-161 spec) + '((return macro (none)) (function macro (symbol)) (message eval (string)) (count eval (binteger bfloat))) + ) + (set! (-> v1-161 func) (the-as + (function script-context object) + (lambda :behavior process + ((arg0 script-context)) + (when (-> arg0 side-effect?) + (let ((s5-0 (string->talker-speech (the-as string (-> arg0 param 1)))) + (a1-1 (command-get-int (-> arg0 param 2) 0)) + ) + (if s5-0 + (talker-speech-class-method-12 s5-0 a1-1) + ) + ) + ) + 0 + (none) + ) + ) + ) + ) + +(let ((v1-163 (-> *script-form* 76))) + (set! (-> v1-163 name) 'no-play!) + (set! (-> v1-163 spec) + '((return macro (none)) (function macro (symbol)) (message eval (string)) (count eval (binteger bfloat))) + ) + (set! (-> v1-163 func) (the-as + (function script-context object) + (lambda :behavior process + ((arg0 script-context)) + (when (-> arg0 side-effect?) + (let ((s5-0 (string->talker-speech (the-as string (-> arg0 param 1)))) + (a1-1 (command-get-int (-> arg0 param 2) 0)) + ) + (if s5-0 + (talker-speech-class-method-13 s5-0 a1-1) + ) + ) + ) + 0 + (none) + ) + ) + ) + ) + +(let ((v1-165 (-> *script-form* 77))) + (set! (-> v1-165 name) 'endlessfall) + (set! (-> v1-165 spec) '((return macro (object)) (function macro (symbol)))) + (set! (-> v1-165 func) (lambda :behavior process + ((arg0 script-context)) + (when (-> arg0 side-effect?) + (let ((a1-0 (new 'stack-no-clear 'event-message-block))) + (set! (-> a1-0 from) (process->ppointer self)) + (set! (-> a1-0 num-params) 2) + (set! (-> a1-0 message) 'attack-invinc) + (set! (-> a1-0 param 0) (the-as uint #f)) + (let ((v1-4 (new 'static 'attack-info :mask (attack-info-mask mode id)))) + (set! (-> v1-4 id) (the-as uint 2)) + (set! (-> v1-4 mode) 'endlessfall) + (set! (-> a1-0 param 1) (the-as uint v1-4)) + ) + (send-event-function *target* a1-0) + ) + ) + ) + ) + ) + +(let ((v1-167 (-> *script-form* 78))) + (set! (-> v1-167 name) 'birth-pickup) + (set! (-> v1-167 spec) + '((return macro (process)) + (function macro (symbol)) + (trans macro (vector symbol string pair)) + (pickup macro (symbol)) + (amount eval (bfloat binteger)) + &key + (flags macro (pair) ('())) + ) + ) + (set! (-> v1-167 func) + (lambda ((arg0 script-context)) + (when (-> arg0 side-effect?) + (let* ((v1-1 (-> arg0 param 2)) + (s5-0 (cond + ((= v1-1 'board) + 28 + ) + ((= v1-1 'skill) + 22 + ) + (else + 0 + ) + ) + ) + ) + (cond + ((nonzero? s5-0) + (let ((s4-0 (new 'static 'fact-info))) + (set! (-> s4-0 options) (actor-option)) + (let* ((v1-2 (-> arg0 param 4)) + (a0-3 (car (the-as pair v1-2))) + ) + (while (not (null? v1-2)) + (cond + ((= a0-3 'suck-in) + (logior! (-> s4-0 options) (actor-option suck-in)) + ) + ((= a0-3 'auto-pickup) + (logior! (-> s4-0 options) (actor-option auto-pickup)) + ) + ) + (set! v1-2 (cdr v1-2)) + (set! a0-3 (car (the-as pair v1-2))) + ) + ) + (ppointer->process (birth-pickup-at-point + (command-get-trans (-> arg0 param 1) (-> arg0 trans)) + (the-as pickup-type s5-0) + (command-get-float (-> arg0 param 3) 0.0) + #t + *entity-pool* + s4-0 + ) + ) + ) + ) + (else + (format 0 "ERROR: SCRIPT: could not spawn pickup, unknown type ~A~%" (-> arg0 param 2)) + ) + ) + ) + ) + ) + ) + ) + +(let ((v1-169 (-> *script-form* 79))) + (set! (-> v1-169 name) 'test-pickup) + (set! (-> v1-169 spec) '((return macro (binteger)) (function macro (symbol)) (pickup macro (symbol)))) + (set! (-> v1-169 func) + (lambda ((arg0 script-context)) (case (-> arg0 param 1) + (('gem) + (* (the int (the float (send-event *target* 'test-pickup 21))) 8) + ) + (else + 0 + ) + ) + ) + ) + ) + +(let ((v1-171 (-> *script-form* 80))) + (set! (-> v1-171 name) 'get-alert-level) + (set! (-> v1-171 spec) '((return macro (binteger)) (function macro (symbol)))) + (set! (-> v1-171 func) (lambda :behavior process + ((arg0 script-context)) + (let ((a1-0 (new 'stack-no-clear 'event-message-block))) + (set! (-> a1-0 from) (process->ppointer self)) + (set! (-> a1-0 num-params) 0) + (set! (-> a1-0 message) 'get-alert-level) + (let ((v1-2 (send-event-function *traffic-manager* a1-0))) + (if v1-2 + (* (the-as int v1-2) 8) + 0 + ) + ) + ) + ) + ) + ) + +(let ((v1-173 (-> *script-form* 81))) + (set! (-> v1-173 name) 'pause) + (set! (-> v1-173 spec) '((return macro (none)) (function macro (symbol)))) + (set! (-> v1-173 func) (lambda ((arg0 script-context)) (set-master-mode 'pause) 0)) + ) + +(let ((v1-175 (-> *script-form* 82))) + (set! (-> v1-175 name) 'camera-smush) + (set! (-> v1-175 spec) '((return macro (none)) + (function macro (symbol)) + &key + (size macro (binteger bfloat pair) (meters (new 'static 'bfloat :data 0.1))) + (duration macro (binteger bfloat pair) (seconds (new 'static 'bfloat :data 0.25))) + ) + ) + (set! (-> v1-175 func) (lambda ((arg0 script-context)) + (if (-> arg0 side-effect?) + (activate! + *camera-smush-control* + (the-as float (command-get-param (-> arg0 param 1) #f)) + 15 + (the-as int (command-get-time (-> arg0 param 2) 1)) + 1.0 + 0.98 + (-> *display* camera-clock) + ) + ) + 0 + ) + ) + ) + +(let ((v1-177 (-> *script-form* 83))) + (set! (-> v1-177 name) 'show-hud) + (set! (-> v1-177 spec) '((return macro (none)) (function macro (symbol)) (name eval (symbol)))) + (set! (-> v1-177 func) (lambda ((arg0 script-context)) + (if (-> arg0 side-effect?) + (show-hud (-> arg0 param 1)) + ) + 0 + ) + ) + ) + +(let ((v1-179 (-> *script-form* 84))) + (set! (-> v1-179 name) 'fma-sphere) + (set! (-> v1-179 spec) + '((return macro (none)) + (function macro (symbol)) + (mode macro (pair)) + &key + (entity eval (string process entity-actor #f) #f) + (joint eval (string) #f) + (duration macro (object) (frame-time 0)) + (sphere eval (binteger #f) #f) + (danger eval (binteger #f) #f) + ) + ) + (set! (-> v1-179 func) + (the-as + (function script-context object) + (lambda ((arg0 script-context)) + (local-vars + (a1-7 process-tree) + (sv-16 object) + (sv-20 int) + (sv-24 process-drawable) + (sv-32 int) + (sv-40 time-frame) + (sv-48 object) + (sv-52 object) + ) + (when (-> arg0 side-effect?) + (set! sv-16 (-> arg0 param 1)) + (set! sv-20 0) + (let ((s5-0 (command-get-process (-> arg0 param 2) (the-as process #f)))) + (set! sv-24 (if (type? s5-0 process-drawable) + (the-as process-drawable s5-0) + ) + ) + ) + (set! sv-32 -1) + (set! sv-40 (command-get-time (-> arg0 param 4) 1)) + (set! sv-48 (-> arg0 param 5)) + (set! sv-52 (-> arg0 param 6)) + (let* ((s5-1 sv-16) + (a2-0 (car (the-as pair s5-1))) + ) + (while (not (null? s5-1)) + (case a2-0 + (('nav) + (set! sv-20 (logior sv-20 1)) + ) + (('kill-once) + (set! sv-20 (logior sv-20 2)) + ) + (('danger) + (set! sv-20 (logior sv-20 4)) + ) + (('deadly-overlap) + (set! sv-20 (logior sv-20 8)) + ) + (else + (format 0 "ERROR: SCRIPT: unknown fma-sphere-mode ~A~%" a2-0) + ) + ) + (set! s5-1 (cdr s5-1)) + (set! a2-0 (car (the-as pair s5-1))) + ) + ) + (when (and sv-24 (and (nonzero? (-> sv-24 draw)) (nonzero? (-> sv-24 node-list)))) + (let ((a1-4 (-> arg0 param 3))) + (when a1-4 + (let ((v1-31 (the-as joint (get-art-by-name-method (-> sv-24 draw jgeo) (the-as string a1-4) (the-as type #f))))) + (if v1-31 + (set! sv-32 (+ (-> v1-31 number) 1)) + (format 0 "ERROR: SCRIPT: joint-eval: unknown joint ~A in:~%~T~A~%" (-> arg0 param 3) (-> arg0 expr)) + ) + ) + ) + ) + ) + (let ((gp-1 (get-process *default-dead-pool* fma-sphere #x4000))) + (when gp-1 + (let ((t9-7 (method-of-type fma-sphere activate)) + (a0-14 gp-1) + ) + (set! a1-7 (cond + (sv-24 + sv-24 + ) + (else + (set! a1-7 (ppointer->process (-> *setting-control* user-current movie))) + (cond + (a1-7 + (empty) + a1-7 + ) + (else + *entity-pool* + ) + ) + ) + ) + ) + (t9-7 (the-as fma-sphere a0-14) a1-7 (symbol->string (-> fma-sphere symbol)) (the-as pointer #x70004000)) + ) + (run-now-in-process gp-1 fma-sphere-init-by-other sv-20 sv-24 sv-32 sv-40 sv-48 sv-52) + (-> gp-1 ppointer) + ) + ) + ) + 0 + (none) + ) + ) + ) + ) + +(let ((v1-182 (new 'global 'script-context (the-as basic (process->ppointer pp)) pp (the-as vector #f)))) + (set! (-> v1-182 side-effect?) #f) + (set! *syntax-context* v1-182) + ) + +(define *script-context* + (new 'global 'script-context (the-as basic (process->ppointer pp)) pp (the-as vector #f)) + ) + +) diff --git a/goal_src/jak2/kernel-defs.gc b/goal_src/jak2/kernel-defs.gc index 37f90dcfa6..a72d3e44f0 100644 --- a/goal_src/jak2/kernel-defs.gc +++ b/goal_src/jak2/kernel-defs.gc @@ -142,6 +142,7 @@ (define-extern kmalloc (function kheap int kmalloc-flags string pointer)) (define-extern *kernel-boot-message* symbol) +(define-extern *user* symbol) (define-extern new-dynamic-structure (function symbol type int structure)) diff --git a/goal_src/jak2/kernel/gkernel-h.gc b/goal_src/jak2/kernel/gkernel-h.gc index 929d2d5fa4..a45b48a116 100644 --- a/goal_src/jak2/kernel/gkernel-h.gc +++ b/goal_src/jak2/kernel/gkernel-h.gc @@ -273,7 +273,7 @@ (pid int32 ) ;; globally unique ID, never reused for another (main-thread cpu-thread :offset-assert 48) ;; suspendable main thread (top-thread cpu-thread :offset-assert 52) ;; currently running thread - (entity entity :offset-assert 56) ;; if we were spawned from an entity, that entity + (entity entity-actor :offset-assert 56) ;; if we were spawned from an entity, that entity (level level :offset-assert 60) ;; if we're associated with a level, that level (state state :offset-assert 64) ;; current state, if we're in one (next-state state :offset-assert 68) ;; set if we have a pending (go) diff --git a/goal_src/jak2/levels/common/airlock.gc b/goal_src/jak2/levels/common/airlock.gc index 7089058f1d..c430bfdd98 100644 --- a/goal_src/jak2/levels/common/airlock.gc +++ b/goal_src/jak2/levels/common/airlock.gc @@ -87,7 +87,7 @@ (defmethod init-airlock! com-airlock ((obj com-airlock)) (process-entity-status! obj (entity-perm-status subtask-complete) #f) - (process-drawable-from-entity! obj (the-as entity-actor (-> obj entity))) + (process-drawable-from-entity! obj (-> obj entity)) (logclear! (-> obj mask) (process-mask actor-pause)) (set! (-> obj were-behind?) #f) (set! (-> obj inner?) @@ -149,7 +149,10 @@ (when (and (< f30-0 0.0) (< 0.0 (-> obj last-distance))) (let ((s5-1 (res-lump-struct (-> obj entity) 'on-cross structure))) (if s5-1 - (eval! (new 'stack 'script-context (the-as basic (process->ppointer self)) self (the-as vector #f)) s5-1) + (eval! + (new 'stack 'script-context (the-as basic (process->ppointer self)) self (the-as vector #f)) + (the-as pair s5-1) + ) ) ) ) @@ -202,7 +205,7 @@ ) (and (eval! (new 'stack 'script-context (the-as basic (process->ppointer self)) self (the-as vector #f)) - (-> obj open-test) + (the-as pair (-> obj open-test)) ) (-> *setting-control* user-current airlock) ) @@ -230,7 +233,7 @@ (with-pp (let ((gp-1 (eval! (new 'stack 'script-context (the-as basic (process->ppointer pp)) pp (the-as vector #f)) - (-> obj level-name) + (the-as pair (-> obj level-name)) ) ) (s4-0 #f) @@ -322,9 +325,8 @@ (-> obj gear-rotv) ) -;; WARN: Return type mismatch int vs none. (defmethod play-city-voice-sound com-airlock ((obj com-airlock) (arg0 symbol)) - (let ((gp-0 (the-as array #f))) + (let ((gp-0 (the-as (array string) #f))) (case arg0 (('enter) (set! gp-0 (new 'static 'boxed-array :type string "cityv005" "cityv006" "cityv007" "cityv008" "cityv009")) @@ -490,7 +492,10 @@ (begin (let ((gp-0 (res-lump-struct (-> self entity) 'on-activate structure))) (if gp-0 - (eval! (new 'stack 'script-context (the-as basic (process->ppointer self)) self (the-as vector #f)) gp-0) + (eval! + (new 'stack 'script-context (the-as basic (process->ppointer self)) self (the-as vector #f)) + (the-as pair gp-0) + ) ) ) (destination-loaded? self #f) @@ -555,7 +560,10 @@ () (let ((gp-0 (res-lump-struct (-> self entity) 'on-exit structure))) (if (and gp-0 (not *scene-player*)) - (eval! (new 'stack 'script-context (the-as basic (process->ppointer self)) self (the-as vector #f)) gp-0) + (eval! + (new 'stack 'script-context (the-as basic (process->ppointer self)) self (the-as vector #f)) + (the-as pair gp-0) + ) ) ) (the-as @@ -564,7 +572,10 @@ (let ((gp-1 (res-lump-struct (-> self entity) 'on-inside structure))) (set! (-> self were-behind?) #f) (if (and gp-1 (not *scene-player*)) - (eval! (new 'stack 'script-context (the-as basic (process->ppointer self)) self (the-as vector #f)) gp-1) + (eval! + (new 'stack 'script-context (the-as basic (process->ppointer self)) self (the-as vector #f)) + (the-as pair gp-1) + ) ) ) ) @@ -621,7 +632,10 @@ (when (< 0.0 (check-crossing-distance self (target-pos 0) #f)) (let ((gp-3 (res-lump-struct (-> self entity) 'on-deactivate structure))) (if (and gp-3 (not *scene-player*)) - (eval! (new 'stack 'script-context (the-as basic (process->ppointer self)) self (the-as vector #f)) gp-3) + (eval! + (new 'stack 'script-context (the-as basic (process->ppointer self)) self (the-as vector #f)) + (the-as pair gp-3) + ) ) ) ) @@ -755,7 +769,10 @@ (process-entity-status! self (entity-perm-status subtask-complete) #t) (let ((s5-10 (res-lump-struct (-> self entity) 'on-enter structure))) (if s5-10 - (eval! (new 'stack 'script-context (the-as basic (process->ppointer self)) self (the-as vector #f)) s5-10) + (eval! + (new 'stack 'script-context (the-as basic (process->ppointer self)) self (the-as vector #f)) + (the-as pair s5-10) + ) ) ) (if (and (-> self sound-open) @@ -1473,7 +1490,3 @@ (go (method-of-object obj close) #t) (none) ) - - - - diff --git a/goalc/compiler/compilation/Static.cpp b/goalc/compiler/compilation/Static.cpp index b5e1b26b2c..ddb1a304ac 100644 --- a/goalc/compiler/compilation/Static.cpp +++ b/goalc/compiler/compilation/Static.cpp @@ -586,14 +586,14 @@ StaticResult Compiler::compile_static_no_eval_for_pairs(const goos::Object& form bool can_macro) { auto fie = env->file_env(); 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" || - form.as_pair()->car.as_symbol()->name == "lambda")) { + if (form.as_pair()->car.is_symbol("new") || form.as_pair()->car.is_symbol("the") || + (can_macro && form.as_pair()->car.is_symbol("lambda"))) { return compile_static(form, env); } if (form.as_pair()->car.is_symbol() && form.as_pair()->car.as_symbol()->name == "unquote") { // ,(macro-name args...) is actually (unquote (macro-name args...)) // decompile the arg as macro if possible. + // ,(lambda ...) is also a special case. auto& unq_arg_pair = form.as_pair()->cdr; if (unq_arg_pair.is_empty_list()) { throw_compiler_error(form, "Cannot unquote empty list"); @@ -603,7 +603,8 @@ StaticResult Compiler::compile_static_no_eval_for_pairs(const goos::Object& form throw_compiler_error(form, "Cannot unquote non-list"); } goos::Object macro_obj; - if (!try_getting_macro_from_goos(unq_arg.as_pair()->car, ¯o_obj)) { + if (!unq_arg.as_pair()->car.is_symbol("lambda") && + !try_getting_macro_from_goos(unq_arg.as_pair()->car, ¯o_obj)) { throw_compiler_error(form, "Macro {} not found", unq_arg.as_pair()->car.print()); } return compile_static_no_eval_for_pairs(form.as_pair()->cdr.as_pair()->car, env, seg, true); diff --git a/goalc/debugger/Debugger.cpp b/goalc/debugger/Debugger.cpp index 5bff933f7c..b3adb9e74c 100644 --- a/goalc/debugger/Debugger.cpp +++ b/goalc/debugger/Debugger.cpp @@ -668,7 +668,7 @@ void Debugger::read_symbol_table_jak2() { str_buff[127] = '\0'; // GOAL sym - s7 - auto sym_offset = s32(offset + st_base + BASIC_OFFSET) - s32(m_debug_context.s7); + auto sym_offset = s32(offset + st_base) - s32(m_debug_context.s7); ASSERT(sym_offset >= -SYM_TABLE_MEM_SIZE / 4); ASSERT(sym_offset < SYM_TABLE_MEM_SIZE / 4); @@ -1100,8 +1100,7 @@ std::string Debugger::disassemble_x86_with_symbols(int len, u64 base_addr) const pos += op_mov_string.length(); auto r14_pos = result.find(sym_false_string, pos); if (r14_pos < result.find(op_mov_string, pos)) { - result.replace(r14_pos, sym_false_string.length(), - fmt::format(", '{}", get_symbol_name_from_offset(0))); + result.replace(r14_pos, sym_false_string.length(), fmt::format(", '#f")); } } diff --git a/scripts/batch/gk2-display.bat b/scripts/batch/gk2-display.bat new file mode 100644 index 0000000000..b2fe4e4252 --- /dev/null +++ b/scripts/batch/gk2-display.bat @@ -0,0 +1,4 @@ +@echo off +cd ..\.. +out\build\Release\bin\gk -boot -fakeiso -debug -v -jak2 +pause diff --git a/scripts/batch/gk2-noboot.bat b/scripts/batch/gk2-noboot.bat new file mode 100644 index 0000000000..9794f57567 --- /dev/null +++ b/scripts/batch/gk2-noboot.bat @@ -0,0 +1,4 @@ +@echo off +cd ..\.. +out\build\Release\bin\gk -fakeiso -debug -v -jak2 +pause diff --git a/scripts/batch/test-offline-and-update.bat b/scripts/batch/test-offline-and-update.bat index d7283bf545..e9cacc432d 100644 --- a/scripts/batch/test-offline-and-update.bat +++ b/scripts/batch/test-offline-and-update.bat @@ -1,6 +1,6 @@ @echo off cd ..\.. out\build\Release\bin\offline-test -d --iso_data_path iso_data\jak1\ --game jak1 -scripts\update_decomp_reference.py failures\ test\decompiler\reference\jak1\ +python3 scripts\update_decomp_reference.py failures\ test\decompiler\reference\ --game jak1 RMDIR /Q/S failures pause \ No newline at end of file diff --git a/scripts/batch/test2-offline-and-update.bat b/scripts/batch/test2-offline-and-update.bat index 0bef3a474e..e6f59036d1 100644 --- a/scripts/batch/test2-offline-and-update.bat +++ b/scripts/batch/test2-offline-and-update.bat @@ -1,6 +1,6 @@ @echo off cd ..\.. out\build\Release\bin\offline-test -d --iso_data_path iso_data\jak2\ --game jak2 -scripts\update_decomp_reference.py failures\ test\decompiler\reference\jak2\ +python3 scripts\update_decomp_reference.py failures\ test\decompiler\reference\ --game jak2 RMDIR /Q/S failures pause \ No newline at end of file diff --git a/scripts/batch/update-gsrc-via-refs-jak2.bat b/scripts/batch/update-gsrc-via-refs-jak2.bat new file mode 100644 index 0000000000..c44cc3fc1a --- /dev/null +++ b/scripts/batch/update-gsrc-via-refs-jak2.bat @@ -0,0 +1,4 @@ +@echo off +cd ..\.. +python3 scripts\gsrc\update-gsrc-via-refs.py --game jak2 --decompiler out\build\Release\bin\decompiler.exe --decompiler_config .\decompiler\config\jak2_ntsc_v1.jsonc +pause \ No newline at end of file diff --git a/test/decompiler/reference/jak1/engine/camera/cam-layout_REF.gc b/test/decompiler/reference/jak1/engine/camera/cam-layout_REF.gc index 78ae8c13a7..f29a75da33 100644 --- a/test/decompiler/reference/jak1/engine/camera/cam-layout_REF.gc +++ b/test/decompiler/reference/jak1/engine/camera/cam-layout_REF.gc @@ -595,13 +595,7 @@ (format *stdcon* "~S ~f~%" (-> arg1 disp) (vector-length gp-0)) (vector+! gp-0 gp-0 (-> arg1 origin)) (camera-line (-> arg1 origin) gp-0 (-> arg1 color)) - (camera-cross - (new 'static 'vector :y 1024.0) - (new 'static 'vector :z 1024.0) - gp-0 - (-> arg1 color) - (meters 1.0) - ) + (camera-cross (new 'static 'vector :y 1024.0) (new 'static 'vector :z 1024.0) gp-0 (-> arg1 color) (meters 1)) ) ) @@ -623,13 +617,7 @@ (format *stdcon* "~S ~f~%" (-> arg1 disp) (vector-length gp-0)) (vector+! gp-0 gp-0 (-> arg1 origin)) (camera-line (-> arg1 origin) gp-0 (-> arg1 color)) - (camera-cross - (new 'static 'vector :y 1024.0) - (new 'static 'vector :z 1024.0) - gp-0 - (-> arg1 color) - (meters 1.0) - ) + (camera-cross (new 'static 'vector :y 1024.0) (new 'static 'vector :z 1024.0) gp-0 (-> arg1 color) (meters 1)) ) ) @@ -665,7 +653,7 @@ (new 'static 'vector :z 1024.0) s5-1 (new 'static 'vector4w :x #x80 :w #x80) - (meters 1.0) + (meters 1) ) ) ) @@ -678,7 +666,7 @@ (new 'static 'vector :z 1024.0) s5-2 (new 'static 'vector4w :y #x80 :w #x80) - (meters 1.0) + (meters 1) ) ) ) @@ -691,7 +679,7 @@ (new 'static 'vector :z 1024.0) s5-3 (new 'static 'vector4w :x #x80 :z #x80 :w #x80) - (meters 1.0) + (meters 1) ) ) ) @@ -742,7 +730,7 @@ (new 'static 'vector :z 1024.0) s5-4 (new 'static 'vector4w :x #xff :y #xff :w #x80) - (meters 1.0) + (meters 1) ) ) ) @@ -785,7 +773,7 @@ (new 'static 'vector :z 1024.0) s5-5 (new 'static 'vector4w :z #xff :w #x80) - (meters 1.0) + (meters 1) ) (curve-get-pos! s5-5 (cam-slave-get-float arg0 'intro-exitValue (the-as float 0.0)) s3-2) (vector+! s5-5 s5-5 s4-2) @@ -794,7 +782,7 @@ (new 'static 'vector :z 1024.0) s5-5 (new 'static 'vector4w :z #xff :w #x80) - (meters 1.0) + (meters 1) ) ) ) @@ -822,7 +810,7 @@ (new 'static 'vector :z 1024.0) s5-6 (new 'static 'vector4w :x #xff :y #xff :w #x80) - (meters 1.0) + (meters 1) ) ) ) @@ -846,7 +834,7 @@ (new 'static 'vector :z 1024.0) s5-7 (new 'static 'vector4w :y #xff :z #xff :w #x80) - (meters 1.0) + (meters 1) ) ) ) diff --git a/test/decompiler/reference/jak1/engine/debug/debug_REF.gc b/test/decompiler/reference/jak1/engine/debug/debug_REF.gc index 3ab7339e88..9028d29d82 100644 --- a/test/decompiler/reference/jak1/engine/debug/debug_REF.gc +++ b/test/decompiler/reference/jak1/engine/debug/debug_REF.gc @@ -995,7 +995,7 @@ arg1 (-> arg2 vector 3) (the-as vector (-> arg2 vector)) - (meters 2.0) + (meters 2) (new 'static 'rgba :r #xff :a #x80) ) (add-debug-vector @@ -1003,7 +1003,7 @@ arg1 (-> arg2 vector 3) (-> arg2 vector 1) - (meters 2.0) + (meters 2) (new 'static 'rgba :g #xff :a #x80) ) (add-debug-vector @@ -1011,7 +1011,7 @@ arg1 (-> arg2 vector 3) (-> arg2 vector 2) - (meters 2.0) + (meters 2) (new 'static 'rgba :b #xff :a #x80) ) arg2 @@ -1024,11 +1024,11 @@ arg1 arg3 (the-as vector (-> arg2 vector)) - (meters 2.0) + (meters 2) (new 'static 'rgba :r #xff :a #x80) ) - (add-debug-vector arg0 arg1 arg3 (-> arg2 vector 1) (meters 2.0) (new 'static 'rgba :g #xff :a #x80)) - (add-debug-vector arg0 arg1 arg3 (-> arg2 vector 2) (meters 2.0) (new 'static 'rgba :b #xff :a #x80)) + (add-debug-vector arg0 arg1 arg3 (-> arg2 vector 1) (meters 2) (new 'static 'rgba :g #xff :a #x80)) + (add-debug-vector arg0 arg1 arg3 (-> arg2 vector 2) (meters 2) (new 'static 'rgba :b #xff :a #x80)) arg2 ) @@ -1291,7 +1291,7 @@ arg1 arg3 (-> arg2 direction) - (meters 3.0) + (meters 3) (new 'static 'rgba :r #xff :g #xff :b #xff :a #x80) ) (let ((s2-1 (vector+*! (new-stack-vector0) arg3 (-> arg2 direction) (* 12288.0 (-> arg2 levels x)))) diff --git a/test/decompiler/reference/jak1/engine/debug/default-menu_REF.gc b/test/decompiler/reference/jak1/engine/debug/default-menu_REF.gc index c05b53fc5b..08cfe5ec17 100644 --- a/test/decompiler/reference/jak1/engine/debug/default-menu_REF.gc +++ b/test/decompiler/reference/jak1/engine/debug/default-menu_REF.gc @@ -3424,8 +3424,8 @@ (flag "Use menu subdiv" *artist-use-menu-subdiv* dm-boolean-toggle-pick-func) (float-var "Subdiv Close" close dm-subdiv-float 10 1 #t 1 200 1) (float-var "Subdiv Far" far dm-subdiv-float 10 1 #t 1 200 1) - (function "Target Start" #f (lambda () (start 'debug (get-or-create-continue! *game-info*)))) - (function "Target Stop" #f (lambda () (stop 'debug))) + (function "Target Start" #f ,(lambda () (start 'debug (get-or-create-continue! *game-info*)))) + (function "Target Stop" #f ,(lambda () (stop 'debug))) (menu "Anim Tester" (int-var "Speed" anim-speed dm-subdiv-int 10 10 #t -300 1000) @@ -3454,34 +3454,34 @@ (function "New Game" #f - (lambda () (initialize! *game-info* 'game (the-as game-save #f) (the-as string #f)) (none)) + ,(lambda () (initialize! *game-info* 'game (the-as game-save #f) (the-as string #f)) (none)) ) (function "New Life" #f - (lambda () (initialize! *game-info* 'die (the-as game-save #f) (the-as string #f)) (none)) + ,(lambda () (initialize! *game-info* 'die (the-as game-save #f) (the-as string #f)) (none)) ) (function "Reset Game" #f - (lambda () - (set! (-> *game-info* mode) 'debug) - (initialize! *game-info* 'game (the-as game-save #f) (the-as string #f)) - (none) - ) + ,(lambda () + (set! (-> *game-info* mode) 'debug) + (initialize! *game-info* 'game (the-as game-save #f) (the-as string #f)) + (none) + ) ) - (function "Reset Actors" #f (lambda () (reset-actors 'debug) (none))) - (function "Save Game" #f (lambda () (auto-save-command 'save 0 0 *default-pool*) (none))) - (function "Load Game" #f (lambda () (auto-save-command 'restore 0 0 *default-pool*) (none))) - (flag "Target" #f (lambda ((arg0 int) (arg1 debug-menu-msg)) - (when (= arg1 (debug-menu-msg press)) - (if *target* - (stop 'debug) - (start 'debug (get-or-create-continue! *game-info*)) - ) - ) - *target* - ) + (function "Reset Actors" #f ,(lambda () (reset-actors 'debug) (none))) + (function "Save Game" #f ,(lambda () (auto-save-command 'save 0 0 *default-pool*) (none))) + (function "Load Game" #f ,(lambda () (auto-save-command 'restore 0 0 *default-pool*) (none))) + (flag "Target" #f ,(lambda ((arg0 int) (arg1 debug-menu-msg)) + (when (= arg1 (debug-menu-msg press)) + (if *target* + (stop 'debug) + (start 'debug (get-or-create-continue! *game-info*)) + ) + ) + *target* + ) ) (flag "Game Mode" play dm-game-mode-pick-func) (flag "Debug Mode" debug dm-game-mode-pick-func) @@ -3491,12 +3491,12 @@ (float-var "sfx-volume" #f - (lambda ((arg0 int) (arg1 debug-menu-msg) (arg2 float)) - (if (= arg1 (debug-menu-msg press)) - (set! (-> *setting-control* default sfx-volume) arg2) - (-> *setting-control* default sfx-volume) - ) - ) + ,(lambda ((arg0 int) (arg1 debug-menu-msg) (arg2 float)) + (if (= arg1 (debug-menu-msg press)) + (set! (-> *setting-control* default sfx-volume) arg2) + (-> *setting-control* default sfx-volume) + ) + ) 2 1 #t @@ -3507,12 +3507,12 @@ (float-var "music-volume" #f - (lambda ((arg0 int) (arg1 debug-menu-msg) (arg2 float)) - (if (= arg1 (debug-menu-msg press)) - (set! (-> *setting-control* default music-volume) arg2) - (-> *setting-control* default music-volume) - ) - ) + ,(lambda ((arg0 int) (arg1 debug-menu-msg) (arg2 float)) + (if (= arg1 (debug-menu-msg press)) + (set! (-> *setting-control* default music-volume) arg2) + (-> *setting-control* default music-volume) + ) + ) 2 1 #t @@ -3523,12 +3523,12 @@ (float-var "dialog-volume" #f - (lambda ((arg0 int) (arg1 debug-menu-msg) (arg2 float)) - (if (= arg1 (debug-menu-msg press)) - (set! (-> *setting-control* default dialog-volume) arg2) - (-> *setting-control* default dialog-volume) - ) - ) + ,(lambda ((arg0 int) (arg1 debug-menu-msg) (arg2 float)) + (if (= arg1 (debug-menu-msg press)) + (set! (-> *setting-control* default dialog-volume) arg2) + (-> *setting-control* default dialog-volume) + ) + ) 2 1 #t @@ -3549,32 +3549,32 @@ (flag "play-hints " #f - (lambda ((arg0 int) (arg1 debug-menu-msg)) - (if (= arg1 (debug-menu-msg press)) - (set! (-> *setting-control* default play-hints) (not (-> *setting-control* default play-hints))) - ) - (-> *setting-control* default play-hints) - ) + ,(lambda ((arg0 int) (arg1 debug-menu-msg)) + (if (= arg1 (debug-menu-msg press)) + (set! (-> *setting-control* default play-hints) (not (-> *setting-control* default play-hints))) + ) + (-> *setting-control* default play-hints) + ) ) (flag "vibration" #f - (lambda ((arg0 int) (arg1 debug-menu-msg)) - (if (= arg1 (debug-menu-msg press)) - (set! (-> *setting-control* default vibration) (not (-> *setting-control* default vibration))) - ) - (-> *setting-control* default vibration) - ) + ,(lambda ((arg0 int) (arg1 debug-menu-msg)) + (if (= arg1 (debug-menu-msg press)) + (set! (-> *setting-control* default vibration) (not (-> *setting-control* default vibration))) + ) + (-> *setting-control* default vibration) + ) ) (flag "border-mode" #f - (lambda ((arg0 int) (arg1 debug-menu-msg)) - (if (= arg1 (debug-menu-msg press)) - (set! (-> *setting-control* default border-mode) (not (-> *setting-control* default border-mode))) - ) - (-> *setting-control* default border-mode) - ) + ,(lambda ((arg0 int) (arg1 debug-menu-msg)) + (if (= arg1 (debug-menu-msg press)) + (set! (-> *setting-control* default border-mode) (not (-> *setting-control* default border-mode))) + ) + (-> *setting-control* default border-mode) + ) ) ) ) @@ -3742,7 +3742,7 @@ '(menu "Actor" (flag "Spawn Actors" *spawn-actors* dm-boolean-toggle-pick-func) - (function "Reset Actors" #f (lambda () (reset-actors 'debug) (none))) + (function "Reset Actors" #f ,(lambda () (reset-actors 'debug) (none))) (menu "Actor Compaction" (flag "off" #f dm-compact-actor-pick-func) @@ -3784,63 +3784,63 @@ '(menu "Target" (flag "Target Stats" *stats-target* dm-boolean-toggle-pick-func) - (function "Play" #f (lambda () (play #t #t))) - (function "Start" #f (lambda () (the-as int (start 'debug (get-or-create-continue! *game-info*))))) - (function "Stop" #f (lambda () (stop 'debug))) + (function "Play" #f ,(lambda () (play #t #t))) + (function "Start" #f ,(lambda () (the-as int (start 'debug (get-or-create-continue! *game-info*))))) + (function "Stop" #f ,(lambda () (stop 'debug))) (flag "Invulnerable" #f - (lambda ((arg0 int) (arg1 debug-menu-msg)) - (when (= arg1 (debug-menu-msg press)) - (if *target* - (logxor! (-> *target* state-flags) (state-flags invulnerable)) - ) - ) - (the-as symbol (and *target* (logtest? (-> *target* state-flags) (state-flags invulnerable)))) - ) + ,(lambda ((arg0 int) (arg1 debug-menu-msg)) + (when (= arg1 (debug-menu-msg press)) + (if *target* + (logxor! (-> *target* state-flags) (state-flags invulnerable)) + ) + ) + (the-as symbol (and *target* (logtest? (-> *target* state-flags) (state-flags invulnerable)))) + ) ) (function "Reset Trans" #f - (lambda () (when *target* - (position-in-front-of-camera! (target-pos 0) (the-as float 40960.0) (the-as float 4096.0)) - (set! (-> *target* control transv quad) (the-as uint128 0)) - (quaternion-identity! (-> *target* control quat)) - (quaternion-identity! (-> *target* control unknown-quaternion00)) - (quaternion-identity! (-> *target* control dir-targ)) - ) - ) + ,(lambda () (when *target* + (position-in-front-of-camera! (target-pos 0) (the-as float 40960.0) (the-as float 4096.0)) + (set! (-> *target* control transv quad) (the-as uint128 0)) + (quaternion-identity! (-> *target* control quat)) + (quaternion-identity! (-> *target* control unknown-quaternion00)) + (quaternion-identity! (-> *target* control dir-targ)) + ) + ) ) - (function "Zero Trans" #f (lambda () (when *target* - (set-vector! (-> *target* control trans) 0.0 163840.0 0.0 1.0) - (set! (-> *target* control transv quad) (the-as uint128 0)) - (quaternion-identity! (-> *target* control quat)) - (quaternion-identity! (-> *target* control unknown-quaternion00)) - (quaternion-identity! (-> *target* control dir-targ)) - ) - ) + (function "Zero Trans" #f ,(lambda () (when *target* + (set-vector! (-> *target* control trans) 0.0 163840.0 0.0 1.0) + (set! (-> *target* control transv quad) (the-as uint128 0)) + (quaternion-identity! (-> *target* control quat)) + (quaternion-identity! (-> *target* control unknown-quaternion00)) + (quaternion-identity! (-> *target* control dir-targ)) + ) + ) ) (menu "Mode" - (function "normal" #f (lambda () (send-event *target* 'end-mode))) - (function "racing" #f (lambda () (send-event *target* 'change-mode 'racing #f))) - (function "snowball" #f (lambda () (send-event *target* 'change-mode 'snowball #f))) + (function "normal" #f ,(lambda () (send-event *target* 'end-mode))) + (function "racing" #f ,(lambda () (send-event *target* 'change-mode 'racing #f))) + (function "snowball" #f ,(lambda () (send-event *target* 'change-mode 'snowball #f))) ) (flag "Slow Frame Rate" *slow-frame-rate* dm-boolean-toggle-pick-func) - (function "Print Pos" #f (lambda () - (let ((v1-0 (target-pos 0))) - (format #t "~6,,2m ~6,,2m ~6,,2m~%" (-> v1-0 x) (-> v1-0 y) (-> v1-0 z)) - ) - 0 - (none) - ) + (function "Print Pos" #f ,(lambda () + (let ((v1-0 (target-pos 0))) + (format #t "~6,,2m ~6,,2m ~6,,2m~%" (-> v1-0 x) (-> v1-0 y) (-> v1-0 z)) + ) + 0 + (none) + ) ) - (function "Save Continue" #f (lambda () - (if *target* - (trsq->continue-point (-> *target* control)) - ) - (none) - ) + (function "Save Continue" #f ,(lambda () + (if *target* + (trsq->continue-point (-> *target* control)) + ) + (none) + ) ) ) ) @@ -3902,7 +3902,7 @@ (flag "Amb Snd Class" *ambient-sound-class* dm-boolean-toggle-pick-func) (flag "Amb Spheres" *execute-ambients* dm-boolean-toggle-pick-func) (flag "Sound channels" *display-iop-info* dm-boolean-toggle-pick-func) - (function "List Sounds" #f (lambda () (list-sounds))) + (function "List Sounds" #f ,(lambda () (list-sounds))) ) ) ) @@ -3923,48 +3923,48 @@ '(main-menu "Popup" (flag "Cam 1" pad-1 dm-cam-externalize) - (flag "Target" #f (lambda ((arg0 int) (arg1 debug-menu-msg)) - (when (= arg1 (debug-menu-msg press)) - (if *target* - (stop 'debug) - (start 'debug (get-or-create-continue! *game-info*)) - ) - ) - *target* - ) - ) - (flag "Game" #f (lambda ((arg0 int) (arg1 debug-menu-msg)) - (when (= arg1 (debug-menu-msg press)) - (let ((v1-3 (-> *game-info* mode))) - (set! (-> *game-info* mode) (cond - ((= v1-3 'play) - 'debug - ) - ((= v1-3 'debug) - 'play - ) - (else - (-> *game-info* mode) - ) - ) - ) - ) - ) - (= (-> *game-info* mode) 'play) - ) - ) - (function "Clean" #f (lambda ((arg0 int) (arg1 debug-menu-msg)) - (if (time-of-day-setup #f) - (time-of-day-setup #t) + (flag "Target" #f ,(lambda ((arg0 int) (arg1 debug-menu-msg)) + (when (= arg1 (debug-menu-msg press)) + (if *target* + (stop 'debug) + (start 'debug (get-or-create-continue! *game-info*)) ) - (set! *display-entity-errors* #f) - (set! *display-profile* #f) - (set! *display-actor-marks* #f) - #f ) + *target* + ) + ) + (flag "Game" #f ,(lambda ((arg0 int) (arg1 debug-menu-msg)) + (when (= arg1 (debug-menu-msg press)) + (let ((v1-3 (-> *game-info* mode))) + (set! (-> *game-info* mode) (cond + ((= v1-3 'play) + 'debug + ) + ((= v1-3 'debug) + 'play + ) + (else + (-> *game-info* mode) + ) + ) + ) + ) + ) + (= (-> *game-info* mode) 'play) + ) + ) + (function "Clean" #f ,(lambda ((arg0 int) (arg1 debug-menu-msg)) + (if (time-of-day-setup #f) + (time-of-day-setup #t) + ) + (set! *display-entity-errors* #f) + (set! *display-profile* #f) + (set! *display-actor-marks* #f) + #f + ) ) (flag "Stats" *stats-target* dm-boolean-toggle-pick-func) - (function "Reset" #f (lambda () (reset-actors 'debug) (none))) + (function "Reset" #f ,(lambda () (reset-actors 'debug) (none))) ) ) arg0 diff --git a/test/decompiler/reference/jak1/engine/game/game-info_REF.gc b/test/decompiler/reference/jak1/engine/game/game-info_REF.gc index 85aee06f4a..d348793b99 100644 --- a/test/decompiler/reference/jak1/engine/game/game-info_REF.gc +++ b/test/decompiler/reference/jak1/engine/game/game-info_REF.gc @@ -12,7 +12,7 @@ ) ) (add-debug-text-sphere #t (bucket-id debug-no-zbuf) (-> obj trans) 819.2 (symbol->string (-> obj name)) s5-0) - (add-debug-vector #t (bucket-id debug-no-zbuf) (-> obj trans) (-> obj normal) (meters 2.0) s5-0) + (add-debug-vector #t (bucket-id debug-no-zbuf) (-> obj trans) (-> obj normal) (meters 2) s5-0) ) 0 (none) @@ -743,7 +743,7 @@ (bucket-id debug-no-zbuf) (-> obj trans) a3-2 - (meters 2.0) + (meters 2) (new 'static 'rgba :r #xff :g #x80 :a #x80) ) ) diff --git a/test/decompiler/reference/jak1/engine/gfx/tfrag/subdivide_REF.gc b/test/decompiler/reference/jak1/engine/gfx/tfrag/subdivide_REF.gc index a17d64b34f..d18c59bd0d 100644 --- a/test/decompiler/reference/jak1/engine/gfx/tfrag/subdivide_REF.gc +++ b/test/decompiler/reference/jak1/engine/gfx/tfrag/subdivide_REF.gc @@ -145,7 +145,7 @@ ) ;; definition for symbol *subdivide-settings*, type subdivide-settings -(define *subdivide-settings* (new 'global 'subdivide-settings (meters 30.0) (meters 70.0))) +(define *subdivide-settings* (new 'global 'subdivide-settings (meters 30) (meters 70))) ;; definition for function set-tfrag-dists! ;; INFO: Return type mismatch tfrag-dists vs none. diff --git a/test/decompiler/reference/jak1/engine/nav/navigate_REF.gc b/test/decompiler/reference/jak1/engine/nav/navigate_REF.gc index 49ad74afb2..db0e487e75 100644 --- a/test/decompiler/reference/jak1/engine/nav/navigate_REF.gc +++ b/test/decompiler/reference/jak1/engine/nav/navigate_REF.gc @@ -1735,8 +1735,8 @@ (-> s5-0 bounds w) (new 'static 'rgba :r #xff :g #xff :a #x20) ) - (add-debug-vector #t (bucket-id debug-no-zbuf) (-> s5-0 origin) *x-vector* (meters 1.0) *color-red*) - (add-debug-vector #t (bucket-id debug-no-zbuf) (-> s5-0 origin) *z-vector* (meters 1.0) *color-blue*) + (add-debug-vector #t (bucket-id debug-no-zbuf) (-> s5-0 origin) *x-vector* (meters 1) *color-red*) + (add-debug-vector #t (bucket-id debug-no-zbuf) (-> s5-0 origin) *z-vector* (meters 1) *color-blue*) (when (logtest? (-> obj flags) (nav-control-flags navcf2)) (dotimes (s3-0 (-> s5-0 vertex-count)) (add-debug-x diff --git a/test/decompiler/reference/jak1/engine/target/logic-target_REF.gc b/test/decompiler/reference/jak1/engine/target/logic-target_REF.gc index d7745f415b..a704bf25c8 100644 --- a/test/decompiler/reference/jak1/engine/target/logic-target_REF.gc +++ b/test/decompiler/reference/jak1/engine/target/logic-target_REF.gc @@ -126,7 +126,7 @@ (bucket-id debug-no-zbuf) (-> s2-0 intersect) (-> s2-0 surface-normal) - (meters 1.0) + (meters 1) (the-as rgba (+ s1-1 (shl s4-0 24))) ) (add-debug-vector @@ -134,7 +134,7 @@ (bucket-id debug-no-zbuf) (-> s2-0 intersect) (-> s2-0 local-normal) - (meters 1.0) + (meters 1) (the-as rgba (+ s1-1 (shl s4-0 24))) ) ) @@ -966,7 +966,7 @@ (bucket-id debug-no-zbuf) (-> self control trans) gp-0 - (meters 2.0) + (meters 2) (new 'static 'rgba :r #xff :g #xff :b #xff :a #x80) ) (add-debug-vector @@ -974,7 +974,7 @@ (bucket-id debug-no-zbuf) (-> self control trans) s5-0 - (meters 2.0) + (meters 2) (new 'static 'rgba :r #xff :a #x80) ) ) @@ -983,7 +983,7 @@ (bucket-id debug-no-zbuf) (-> self control trans) (-> self control unknown-matrix01 vector 2) - (meters 2.0) + (meters 2) (new 'static 'rgba :r #xff :b #xff :a #x80) ) (rotate-toward-orientation! @@ -1231,7 +1231,7 @@ (bucket-id debug-no-zbuf) (-> self control trans) (-> self control ground-poly-normal) - (meters 2.0) + (meters 2) (new 'static 'rgba :b #xff :a #x80) ) (add-debug-vector @@ -1239,7 +1239,7 @@ (bucket-id debug-no-zbuf) (-> self control trans) (-> self control local-normal) - (meters 2.0) + (meters 2) (new 'static 'rgba :b #xff :a #x80) ) (add-debug-vector @@ -1255,7 +1255,7 @@ (bucket-id debug-no-zbuf) (-> self control trans) (-> self control dynam gravity-normal) - (meters 3.0) + (meters 3) (new 'static 'rgba :r #xff :b #xff :a #x80) ) ) @@ -1386,7 +1386,7 @@ (bucket-id debug-no-zbuf) (-> (the-as swingpole s4-0) root trans) (the-as vector (&-> s4-0 stack 16)) - (meters 3.0) + (meters 3) (new 'static 'rgba :r #xff :b #xff :a #x80) ) (add-debug-sphere diff --git a/test/decompiler/reference/jak1/levels/finalboss/sage-finalboss_REF.gc b/test/decompiler/reference/jak1/levels/finalboss/sage-finalboss_REF.gc index e8d4bddc2e..ae47f219ac 100644 --- a/test/decompiler/reference/jak1/levels/finalboss/sage-finalboss_REF.gc +++ b/test/decompiler/reference/jak1/levels/finalboss/sage-finalboss_REF.gc @@ -426,13 +426,13 @@ (271 joint "camera") (269 send-event self activate-particle 5) (272 send-event self flash) - (272 eval (lambda :behavior sage-finalboss - () - (let ((a0-1 (get-task-control (game-task finalboss-movies)))) - (save-reminder a0-1 (logior (get-reminder a0-1 0) 1) 0) - ) - (none) - ) + (272 eval ,(lambda :behavior sage-finalboss + () + (let ((a0-1 (get-task-control (game-task finalboss-movies)))) + (save-reminder a0-1 (logior (get-reminder a0-1 0) 1) 0) + ) + (none) + ) ) (273 send-event self deactivate-particle 5) (333 joint "cameraB") diff --git a/test/decompiler/reference/jak1/levels/flut_common/target-flut_REF.gc b/test/decompiler/reference/jak1/levels/flut_common/target-flut_REF.gc index 8c6301d735..5514b74e3d 100644 --- a/test/decompiler/reference/jak1/levels/flut_common/target-flut_REF.gc +++ b/test/decompiler/reference/jak1/levels/flut_common/target-flut_REF.gc @@ -1335,7 +1335,7 @@ ) (!= (-> self control unknown-uint31) 1) ) - (target-shoved (meters 2.0) (-> *TARGET-bank* smack-surface-height) (the-as process #f) target-flut-hit) + (target-shoved (meters 2) (-> *TARGET-bank* smack-surface-height) (the-as process #f) target-flut-hit) ) (if (and (logtest? (-> self water flags) (water-flags wt09)) (zero? (mod (- (-> *display* base-frame-counter) (-> self state-time)) 21)) diff --git a/test/decompiler/reference/jak1/levels/ogre/flying-lurker_REF.gc b/test/decompiler/reference/jak1/levels/ogre/flying-lurker_REF.gc index 61049c8a32..be2509c17c 100644 --- a/test/decompiler/reference/jak1/levels/ogre/flying-lurker_REF.gc +++ b/test/decompiler/reference/jak1/levels/ogre/flying-lurker_REF.gc @@ -750,7 +750,7 @@ :trans (behavior () (dummy-20 self) (when (not (movie?)) - (flying-lurker-calc-speed (meters 15.0) (meters 30.0) (meters 0.11666667) (meters 0.083333336)) + (flying-lurker-calc-speed (meters 15) (meters 30) (meters 0.11666667) (meters 0.083333336)) (flying-lurker-move) (flying-lurker-rotate) (when (and (-> self alt-actor) diff --git a/test/decompiler/reference/jak1/levels/sunken/target-tube_REF.gc b/test/decompiler/reference/jak1/levels/sunken/target-tube_REF.gc index bed4ce7d3e..90dc968438 100644 --- a/test/decompiler/reference/jak1/levels/sunken/target-tube_REF.gc +++ b/test/decompiler/reference/jak1/levels/sunken/target-tube_REF.gc @@ -281,7 +281,7 @@ (bucket-id debug-no-zbuf) (-> self control trans) s3-1 - (meters 2.0) + (meters 2) (new 'static 'rgba :r #xff :g #xff :a #x80) ) (vector-matrix*! s3-1 s3-1 (-> self control unknown-matrix00)) @@ -294,7 +294,7 @@ (bucket-id debug-no-zbuf) (-> self control trans) s4-2 - (meters 2.0) + (meters 2) (new 'static 'rgba :r #xff :g #x80 :b #x40 :a #x80) ) (vector-matrix*! s4-2 s4-2 (-> self control unknown-matrix00)) diff --git a/test/decompiler/reference/jak2/decompiler-macros.gc b/test/decompiler/reference/jak2/decompiler-macros.gc index 1943bcd6d7..fa0dd1b001 100644 --- a/test/decompiler/reference/jak2/decompiler-macros.gc +++ b/test/decompiler/reference/jak2/decompiler-macros.gc @@ -965,4 +965,4 @@ :fo-curve ,fo-curve :mask (sound-mask ,@snd-mask) )) - ) \ No newline at end of file + ) diff --git a/test/decompiler/reference/jak2/engine/anim/joint-mod-h_REF.gc b/test/decompiler/reference/jak2/engine/anim/joint-mod-h_REF.gc index ab8c1d077b..c3cec7f984 100644 --- a/test/decompiler/reference/jak2/engine/anim/joint-mod-h_REF.gc +++ b/test/decompiler/reference/jak2/engine/anim/joint-mod-h_REF.gc @@ -156,7 +156,7 @@ ;; definition (debug) for function joint-mod-debug-draw ;; WARN: Return type mismatch int vs none. (defun-debug joint-mod-debug-draw ((arg0 joint-mod)) - (add-debug-matrix #t (bucket-id debug-no-zbuf1) (-> arg0 joint bone transform) (meters 2.0)) + (add-debug-matrix #t (bucket-id debug-no-zbuf1) (-> arg0 joint bone transform) (meters 2)) 0 (none) ) diff --git a/test/decompiler/reference/jak2/engine/camera/cam-layout_REF.gc b/test/decompiler/reference/jak2/engine/camera/cam-layout_REF.gc index cca9b38ea2..c1c25ef899 100644 --- a/test/decompiler/reference/jak2/engine/camera/cam-layout_REF.gc +++ b/test/decompiler/reference/jak2/engine/camera/cam-layout_REF.gc @@ -655,13 +655,7 @@ (format *stdcon* "~S ~f~%" (-> arg1 disp) (vector-length s5-0)) (vector+! s5-0 s5-0 (-> arg1 origin)) (camera-line (-> arg1 origin) s5-0 (-> arg1 color)) - (camera-cross - (new 'static 'vector :y 1024.0) - (new 'static 'vector :z 1024.0) - s5-0 - (-> arg1 color) - (meters 1.0) - ) + (camera-cross (new 'static 'vector :y 1024.0) (new 'static 'vector :z 1024.0) s5-0 (-> arg1 color) (meters 1)) ) (none) ) @@ -684,13 +678,7 @@ (format *stdcon* "~S ~f~%" (-> arg1 disp) (vector-length s5-0)) (vector+! s5-0 s5-0 (-> arg1 origin)) (camera-line (-> arg1 origin) s5-0 (-> arg1 color)) - (camera-cross - (new 'static 'vector :y 1024.0) - (new 'static 'vector :z 1024.0) - s5-0 - (-> arg1 color) - (meters 1.0) - ) + (camera-cross (new 'static 'vector :y 1024.0) (new 'static 'vector :z 1024.0) s5-0 (-> arg1 color) (meters 1)) ) (none) ) @@ -721,7 +709,7 @@ (new 'static 'vector :z 1024.0) s5-1 (new 'static 'vector4w :x #x80 :w #x80) - (meters 1.0) + (meters 1) ) ) ) @@ -734,7 +722,7 @@ (new 'static 'vector :z 1024.0) s5-2 (new 'static 'vector4w :y #x80 :w #x80) - (meters 1.0) + (meters 1) ) ) ) @@ -749,7 +737,7 @@ (new 'static 'vector :z 1024.0) s5-3 (new 'static 'vector4w :x #x80 :z #x80 :w #x80) - (meters 1.0) + (meters 1) ) ) ) @@ -800,7 +788,7 @@ (new 'static 'vector :z 1024.0) s5-4 (new 'static 'vector4w :x #xff :y #xff :w #x80) - (meters 1.0) + (meters 1) ) ) ) @@ -843,7 +831,7 @@ (new 'static 'vector :z 1024.0) s5-5 (new 'static 'vector4w :z #xff :w #x80) - (meters 1.0) + (meters 1) ) (curve-get-pos! s5-5 (cam-slave-get-float arg0 'intro-exitValue 0.0) s3-2) (vector+! s5-5 s5-5 s4-2) @@ -852,7 +840,7 @@ (new 'static 'vector :z 1024.0) s5-5 (new 'static 'vector4w :z #xff :w #x80) - (meters 1.0) + (meters 1) ) ) ) @@ -882,7 +870,7 @@ (new 'static 'vector :z 1024.0) s5-6 (new 'static 'vector4w :x #xff :y #xff :w #x80) - (meters 1.0) + (meters 1) ) ) ) @@ -908,7 +896,7 @@ (new 'static 'vector :z 1024.0) s5-7 (new 'static 'vector4w :y #xff :z #xff :w #x80) - (meters 1.0) + (meters 1) ) ) ) diff --git a/test/decompiler/reference/jak2/engine/debug/debug_REF.gc b/test/decompiler/reference/jak2/engine/debug/debug_REF.gc index 51b5738862..b80c433a3e 100644 --- a/test/decompiler/reference/jak2/engine/debug/debug_REF.gc +++ b/test/decompiler/reference/jak2/engine/debug/debug_REF.gc @@ -1283,11 +1283,11 @@ bucket position (the-as vector (-> mat vector)) - (meters 2.0) + (meters 2) (new 'static 'rgba :r #xff :a #x80) ) - (add-debug-vector enable bucket position (-> mat vector 1) (meters 2.0) (new 'static 'rgba :g #xff :a #x80)) - (add-debug-vector enable bucket position (-> mat vector 2) (meters 2.0) (new 'static 'rgba :b #xff :a #x80)) + (add-debug-vector enable bucket position (-> mat vector 1) (meters 2) (new 'static 'rgba :g #xff :a #x80)) + (add-debug-vector enable bucket position (-> mat vector 2) (meters 2) (new 'static 'rgba :b #xff :a #x80)) mat ) @@ -1305,7 +1305,7 @@ ;; definition (debug) for function add-debug-cspace (defun-debug add-debug-cspace ((enable symbol) (bucket bucket-id) (csp cspace)) - (add-debug-matrix enable bucket (-> csp bone transform) (meters 2.0)) + (add-debug-matrix enable bucket (-> csp bone transform) (meters 2)) csp ) @@ -1636,7 +1636,7 @@ bucket position (-> light direction) - (meters 3.0) + (meters 3) (new 'static 'rgba :r #xff :g #xff :b #xff :a #x80) ) (let ((sphere-pos (new-stack-vector0))) diff --git a/test/decompiler/reference/jak2/engine/debug/default-menu_REF.gc b/test/decompiler/reference/jak2/engine/debug/default-menu_REF.gc index 9b106eca4a..5dd841eeb8 100644 --- a/test/decompiler/reference/jak2/engine/debug/default-menu_REF.gc +++ b/test/decompiler/reference/jak2/engine/debug/default-menu_REF.gc @@ -344,7 +344,7 @@ (if (= arg1 (debug-menu-msg press)) (start 'play (get-continue-by-name *game-info* arg0)) ) - (string= (-> (get-current-continue-point *game-info*) name) arg0) + (string= (-> (get-current-continue-forced *game-info*) name) arg0) ) ;; definition for function dm-subdiv-draw-func @@ -1034,7 +1034,7 @@ ;; WARN: Return type mismatch int vs none. (defun dm-bug-report-report-pick-func ((arg0 symbol) (arg1 debug-menu-msg)) (if (= arg1 (debug-menu-msg press)) - (bug-report-display) + (bug-report-display arg0) ) 0 (none) @@ -2691,11 +2691,13 @@ (let ((gp-0 (/ (the-as int arg0) 8))) (when (= arg1 (debug-menu-msg press)) (if (cpad-hold? 0 l1) - (task-node-open! (the-as game-task gp-0)) - (task-node-close! (the-as game-task gp-0)) + (task-node-open! (the-as game-task-node gp-0)) + (task-node-close! (the-as game-task-node gp-0)) ) ) - (if (and (not (task-node-closed? (the-as game-task-node gp-0))) (not (task-node-open? (the-as game-task gp-0)))) + (if (and (not (task-node-closed? (the-as game-task-node gp-0))) + (not (task-node-open? (the-as game-task-node gp-0))) + ) (return 'invalid) ) (task-node-closed? (the-as game-task-node gp-0)) @@ -2704,7 +2706,7 @@ ;; definition for function debug-menu-make-continue-sub-menu ;; INFO: Used lq/sq -(defun debug-menu-make-continue-sub-menu ((arg0 debug-menu-context) (arg1 symbol)) +(defun debug-menu-make-continue-sub-menu ((arg0 game-info) (arg1 symbol)) (local-vars (sv-16 (function symbol type object object pair)) (sv-32 symbol) @@ -2984,8 +2986,7 @@ ;; definition for function debug-menu-make-play-menu ;; INFO: Used lq/sq -;; WARN: Return type mismatch debug-menu-node vs none. -(defun debug-menu-make-play-menu ((arg0 symbol)) +(defun debug-menu-make-play-menu ((arg0 debug-menu-context)) (local-vars (sv-16 symbol) (sv-32 type) @@ -3029,9 +3030,8 @@ ) ) ) - (debug-menu-make-from-template (the-as debug-menu-context arg0) (cons 'menu (cons "Play" gp-0))) + (debug-menu-make-from-template arg0 (cons 'menu (cons "Play" gp-0))) ) - (none) ) ;; definition for function dm-anim-tester-flag-func @@ -3084,7 +3084,7 @@ (defun dm-pilot-mode ((arg0 object)) "TODO - what is the third arg to target's change-mode?" (if (not *target*) - (start 'debug (get-current-continue-point *game-info*)) + (start 'debug (get-current-continue-forced *game-info*)) ) (send-event *target* 'change-mode 'pilot #f arg0 #t) (none) @@ -3095,7 +3095,7 @@ (defun dm-pilot-race-mode ((arg0 object)) "TODO - what is the third arg to target's change-mode?" (if (not *target*) - (start 'debug (get-current-continue-point *game-info*)) + (start 'debug (get-current-continue-forced *game-info*)) ) (send-event *target* 'change-mode 'pilot-race #f arg0 #t) (none) @@ -3142,8 +3142,8 @@ (flag "Use menu subdiv" *artist-use-menu-subdiv* dm-boolean-toggle-pick-func) (float-var "Subdiv Close" close dm-subdiv-float 10 1 #t 1 200 1) (float-var "Subdiv Far" far dm-subdiv-float 10 1 #t 1 200 1) - (function "Target Start" #f (lambda () (start 'debug (get-current-continue-point *game-info*)))) - (function "Target Stop" #f (lambda () (stop 'debug))) + (function "Target Start" #f ,(lambda () (start 'debug (get-current-continue-forced *game-info*)))) + (function "Target Stop" #f ,(lambda () (stop 'debug))) (menu "Anim Tester" (int-var "Speed" anim-speed dm-subdiv-int 10 10 #t -300 1000) @@ -3163,37 +3163,37 @@ (function "Mike F" #f - (lambda () (debug-actor "drill-crane-14") (send-event (the-as process-tree *debug-actor*) 'die)) + ,(lambda () (debug-actor "drill-crane-14") (send-event (the-as process-tree *debug-actor*) 'die)) ) (function "Editor" #f - (lambda () - (kill-by-type editable-player *active-pool*) - (process-spawn editable-player :init editable-player-init #f :to *entity-pool*) - (set-master-mode 'game) - (none) - ) + ,(lambda () + (kill-by-type editable-player *active-pool*) + (process-spawn editable-player :init editable-player-init #f :to *entity-pool*) + (set-master-mode 'game) + (none) + ) ) (flag "Screen shot highres enable" #f - (lambda ((arg0 object) (arg1 debug-menu-msg)) - (if (= arg1 (debug-menu-msg press)) - (set! (-> *screen-shot-work* highres-enable) (not (-> *screen-shot-work* highres-enable))) - ) - (-> *screen-shot-work* highres-enable) - ) + ,(lambda ((arg0 object) (arg1 debug-menu-msg)) + (if (= arg1 (debug-menu-msg press)) + (set! (-> *screen-shot-work* highres-enable) (not (-> *screen-shot-work* highres-enable))) + ) + (-> *screen-shot-work* highres-enable) + ) ) (flag "Screen shot hud enable" #f - (lambda ((arg0 object) (arg1 debug-menu-msg)) - (if (= arg1 (debug-menu-msg press)) - (set! (-> *screen-shot-work* hud-enable) (not (-> *screen-shot-work* hud-enable))) - ) - (-> *screen-shot-work* hud-enable) - ) + ,(lambda ((arg0 object) (arg1 debug-menu-msg)) + (if (= arg1 (debug-menu-msg press)) + (set! (-> *screen-shot-work* hud-enable) (not (-> *screen-shot-work* hud-enable))) + ) + (-> *screen-shot-work* hud-enable) + ) ) ) ) @@ -3204,63 +3204,63 @@ arg0 '(menu "Game" - (function "New Game" #f (lambda () (initialize! *game-info* 'game (the-as game-save #f) (the-as string #f)))) - (function "New Life" #f (lambda () (initialize! *game-info* 'dead (the-as game-save #f) (the-as string #f)))) + (function "New Game" #f ,(lambda () (initialize! *game-info* 'game (the-as game-save #f) (the-as string #f)))) + (function "New Life" #f ,(lambda () (initialize! *game-info* 'dead (the-as game-save #f) (the-as string #f)))) (function "Reset Game" #f - (lambda () - (set! (-> *game-info* mode) 'debug) - (initialize! *game-info* 'game (the-as game-save #f) (the-as string #f)) - ) + ,(lambda () + (set! (-> *game-info* mode) 'debug) + (initialize! *game-info* 'game (the-as game-save #f) (the-as string #f)) + ) ) - (function "Reset Actors" #f (lambda () (reset-actors 'debug) (none))) - (function "Save Game" #f (lambda () (auto-save-command 'save 0 0 *default-pool* #f) (none))) - (function "Load Game" #f (lambda () (auto-save-command 'restore 0 0 *default-pool* #f) (none))) - (flag "Target" #f (lambda ((arg0 object) (arg1 debug-menu-msg)) - (when (= arg1 (debug-menu-msg press)) - (if *target* - (stop 'debug) - (start 'debug (get-current-continue-point *game-info*)) - ) - ) - *target* - ) + (function "Reset Actors" #f ,(lambda () (reset-actors 'debug) (none))) + (function "Save Game" #f ,(lambda () (auto-save-command 'save 0 0 *default-pool* #f) (none))) + (function "Load Game" #f ,(lambda () (auto-save-command 'restore 0 0 *default-pool* #f) (none))) + (flag "Target" #f ,(lambda ((arg0 object) (arg1 debug-menu-msg)) + (when (= arg1 (debug-menu-msg press)) + (if *target* + (stop 'debug) + (start 'debug (get-current-continue-forced *game-info*)) + ) + ) + *target* + ) ) (flag "Game Mode" play dm-game-mode-pick-func) (flag "Debug Mode" debug dm-game-mode-pick-func) (function "Stop Watch Start" #f - (lambda () - (remove-by-param0 *debug-engine* stop-watch-display) - (add-connection *debug-engine* *dproc* stop-watch-display *dproc* *stdcon0* #f) - (set! (-> *game-info* stop-watch-start) (the-as uint (-> *display* base-clock frame-counter))) - (set! (-> *game-info* stop-watch-stop) (the-as uint 0)) - (format #t "Stop watch started!~%") - (none) - ) + ,(lambda () + (remove-by-param0 *debug-engine* stop-watch-display) + (add-connection *debug-engine* *dproc* stop-watch-display *dproc* *stdcon0* #f) + (set! (-> *game-info* stop-watch-start) (the-as uint (-> *display* base-clock frame-counter))) + (set! (-> *game-info* stop-watch-stop) (the-as uint 0)) + (format #t "Stop watch started!~%") + (none) + ) ) (function "Stop Watch Stop" #f - (lambda () - (remove-by-param0 *debug-engine* stop-watch-display) - (set! (-> *game-info* stop-watch-stop) (the-as uint (-> *display* base-clock frame-counter))) - (let ((v1-7 (- (-> *game-info* stop-watch-stop) (-> *game-info* stop-watch-start)))) - (format - #t - "Stop watch elasped time was ~D:~D:~D~%" - (/ (the-as int v1-7) #x4650) - (/ (mod (the-as int v1-7) #x4650) 300) - (/ (* 100 (mod (the-as int v1-7) 300)) 300) - ) - ) - (none) - ) + ,(lambda () + (remove-by-param0 *debug-engine* stop-watch-display) + (set! (-> *game-info* stop-watch-stop) (the-as uint (-> *display* base-clock frame-counter))) + (let ((v1-7 (- (-> *game-info* stop-watch-stop) (-> *game-info* stop-watch-start)))) + (format + #t + "Stop watch elasped time was ~D:~D:~D~%" + (/ (the-as int v1-7) #x4650) + (/ (mod (the-as int v1-7) #x4650) 300) + (/ (* 100 (mod (the-as int v1-7) 300)) 300) + ) + ) + (none) + ) ) - (function "Continue Start" #f (lambda () (start 'play (-> *game-info* current-continue)))) - (function "Kiosk Reset" #f (lambda () (auto-save-command 'restore 0 0 *default-pool* #f) (none))) + (function "Continue Start" #f ,(lambda () (start 'play (-> *game-info* current-continue)))) + (function "Kiosk Reset" #f ,(lambda () (auto-save-command 'restore 0 0 *default-pool* #f) (none))) (menu "Secrets" (flag "toggle-beard" 1 dm-game-secret-toggle-pick-func) @@ -3287,21 +3287,21 @@ (float-var "sfx-volume" #f - (lambda ((arg0 object) (arg1 debug-menu-msg) (arg2 float)) - (cond - ((= arg1 (debug-menu-msg press)) - (if (and *setting-control* (nonzero? *setting-control*)) - (set! (-> *setting-control* user-default sfx-volume) arg2) - ) - ) - ((or (not *setting-control*) (zero? *setting-control*)) - 0.0 - ) - (else - (-> *setting-control* user-default sfx-volume) + ,(lambda ((arg0 object) (arg1 debug-menu-msg) (arg2 float)) + (cond + ((= arg1 (debug-menu-msg press)) + (if (and *setting-control* (nonzero? *setting-control*)) + (set! (-> *setting-control* user-default sfx-volume) arg2) + ) ) - ) - ) + ((or (not *setting-control*) (zero? *setting-control*)) + 0.0 + ) + (else + (-> *setting-control* user-default sfx-volume) + ) + ) + ) 2 (new 'static 'bfloat :data 0.01) #t @@ -3312,21 +3312,21 @@ (float-var "ambient-volume" #f - (lambda ((arg0 object) (arg1 debug-menu-msg) (arg2 float)) - (cond - ((= arg1 (debug-menu-msg press)) - (if (and *setting-control* (nonzero? *setting-control*)) - (set! (-> *setting-control* user-default ambient-volume) arg2) - ) - ) - ((or (not *setting-control*) (zero? *setting-control*)) - 0.0 - ) - (else - (-> *setting-control* user-default ambient-volume) + ,(lambda ((arg0 object) (arg1 debug-menu-msg) (arg2 float)) + (cond + ((= arg1 (debug-menu-msg press)) + (if (and *setting-control* (nonzero? *setting-control*)) + (set! (-> *setting-control* user-default ambient-volume) arg2) + ) ) - ) - ) + ((or (not *setting-control*) (zero? *setting-control*)) + 0.0 + ) + (else + (-> *setting-control* user-default ambient-volume) + ) + ) + ) 2 (new 'static 'bfloat :data 0.01) #t @@ -3337,21 +3337,21 @@ (float-var "music-volume" #f - (lambda ((arg0 object) (arg1 debug-menu-msg) (arg2 float)) - (cond - ((= arg1 (debug-menu-msg press)) - (if (and *setting-control* (nonzero? *setting-control*)) - (set! (-> *setting-control* user-default music-volume) arg2) - ) - ) - ((or (not *setting-control*) (zero? *setting-control*)) - 0.0 - ) - (else - (-> *setting-control* user-default music-volume) + ,(lambda ((arg0 object) (arg1 debug-menu-msg) (arg2 float)) + (cond + ((= arg1 (debug-menu-msg press)) + (if (and *setting-control* (nonzero? *setting-control*)) + (set! (-> *setting-control* user-default music-volume) arg2) + ) ) - ) - ) + ((or (not *setting-control*) (zero? *setting-control*)) + 0.0 + ) + (else + (-> *setting-control* user-default music-volume) + ) + ) + ) 2 (new 'static 'bfloat :data 0.01) #t @@ -3362,21 +3362,21 @@ (float-var "dialog-volume" #f - (lambda ((arg0 object) (arg1 debug-menu-msg) (arg2 float)) - (cond - ((= arg1 (debug-menu-msg press)) - (if (and *setting-control* (nonzero? *setting-control*)) - (set! (-> *setting-control* user-default dialog-volume) arg2) - ) - ) - ((or (not *setting-control*) (zero? *setting-control*)) - 0.0 - ) - (else - (-> *setting-control* user-default dialog-volume) + ,(lambda ((arg0 object) (arg1 debug-menu-msg) (arg2 float)) + (cond + ((= arg1 (debug-menu-msg press)) + (if (and *setting-control* (nonzero? *setting-control*)) + (set! (-> *setting-control* user-default dialog-volume) arg2) + ) ) - ) - ) + ((or (not *setting-control*) (zero? *setting-control*)) + 0.0 + ) + (else + (-> *setting-control* user-default dialog-volume) + ) + ) + ) 2 (new 'static 'bfloat :data 0.01) #t @@ -3409,32 +3409,32 @@ (flag "play-hints " #f - (lambda ((arg0 object) (arg1 debug-menu-msg)) - (if (= arg1 (debug-menu-msg press)) - (set! (-> *setting-control* user-default play-hints) (not (-> *setting-control* user-default play-hints))) - ) - (the-as uint (-> *setting-control* user-default play-hints)) - ) + ,(lambda ((arg0 object) (arg1 debug-menu-msg)) + (if (= arg1 (debug-menu-msg press)) + (set! (-> *setting-control* user-default play-hints) (not (-> *setting-control* user-default play-hints))) + ) + (the-as uint (-> *setting-control* user-default play-hints)) + ) ) (flag "subtitle " #f - (lambda ((arg0 object) (arg1 debug-menu-msg)) - (if (= arg1 (debug-menu-msg press)) - (set! (-> *setting-control* user-default subtitle) (not (-> *setting-control* user-default subtitle))) - ) - (-> *setting-control* user-default subtitle) - ) + ,(lambda ((arg0 object) (arg1 debug-menu-msg)) + (if (= arg1 (debug-menu-msg press)) + (set! (-> *setting-control* user-default subtitle) (not (-> *setting-control* user-default subtitle))) + ) + (-> *setting-control* user-default subtitle) + ) ) (flag "vibration" #f - (lambda ((arg0 object) (arg1 debug-menu-msg)) - (if (= arg1 (debug-menu-msg press)) - (set! (-> *setting-control* user-default vibration) (not (-> *setting-control* user-default vibration))) - ) - (the-as uint (-> *setting-control* user-default vibration)) - ) + ,(lambda ((arg0 object) (arg1 debug-menu-msg)) + (if (= arg1 (debug-menu-msg press)) + (set! (-> *setting-control* user-default vibration) (not (-> *setting-control* user-default vibration))) + ) + (the-as uint (-> *setting-control* user-default vibration)) + ) ) (menu "Stereo Mode" @@ -3445,37 +3445,37 @@ (flag "camera-stick-dir" #f - (lambda ((arg0 object) (arg1 debug-menu-msg)) - (if (= arg1 (debug-menu-msg press)) - (set! (-> *setting-control* user-default unknowng-symbol-00) - (not (-> *setting-control* user-default unknowng-symbol-00)) - ) - ) - (the-as uint (-> *setting-control* user-default unknowng-symbol-00)) - ) + ,(lambda ((arg0 object) (arg1 debug-menu-msg)) + (if (= arg1 (debug-menu-msg press)) + (set! (-> *setting-control* user-default unknowng-symbol-00) + (not (-> *setting-control* user-default unknowng-symbol-00)) + ) + ) + (the-as uint (-> *setting-control* user-default unknowng-symbol-00)) + ) ) (flag "progressive-scan" #f - (lambda ((arg0 object) (arg1 debug-menu-msg)) - (if (= arg1 (debug-menu-msg press)) - (set! (-> *setting-control* user-default use-progressive-scan) - (not (-> *setting-control* user-default use-progressive-scan)) - ) - ) - (the-as uint (-> *setting-control* user-default use-progressive-scan)) - ) + ,(lambda ((arg0 object) (arg1 debug-menu-msg)) + (if (= arg1 (debug-menu-msg press)) + (set! (-> *setting-control* user-default use-progressive-scan) + (not (-> *setting-control* user-default use-progressive-scan)) + ) + ) + (the-as uint (-> *setting-control* user-default use-progressive-scan)) + ) ) (flag "border-mode" #f - (lambda ((arg0 object) (arg1 debug-menu-msg)) - (when (= arg1 (debug-menu-msg press)) - (set! (-> *setting-control* user-default border-mode) (not (-> *setting-control* user-default border-mode))) - (set! (-> *level* play?) (-> *setting-control* user-default border-mode)) - ) - (-> *setting-control* user-default border-mode) - ) + ,(lambda ((arg0 object) (arg1 debug-menu-msg)) + (when (= arg1 (debug-menu-msg press)) + (set! (-> *setting-control* user-default border-mode) (not (-> *setting-control* user-default border-mode))) + (set! (-> *level* play?) (-> *setting-control* user-default border-mode)) + ) + (-> *setting-control* user-default border-mode) + ) ) ) (menu @@ -3535,7 +3535,7 @@ (s0-0 debug-menu-make-from-template) ) (set! sv-16 arg0) - (let ((a1-8 (debug-menu-make-continue-sub-menu (the-as debug-menu-context *game-info*) (the-as symbol a1-7)))) + (let ((a1-8 (debug-menu-make-continue-sub-menu *game-info* (the-as symbol a1-7)))) (s2-0 s1-0 (s0-0 sv-16 a1-8)) ) ) @@ -3571,42 +3571,42 @@ (function "Print Entity Memory" #f - (lambda () - (format #t "~%~%========================= Entity Memory =========================~%~%") - (let ((gp-0 (-> *level* level0))) - (inspect (-> gp-0 art-group)) - (dotimes (s5-0 (-> gp-0 art-group art-group-array length)) - (inspect (-> gp-0 art-group art-group-array s5-0)) - ) - ) - #f - ) + ,(lambda () + (format #t "~%~%========================= Entity Memory =========================~%~%") + (let ((gp-0 (-> *level* level0))) + (inspect (-> gp-0 art-group)) + (dotimes (s5-0 (-> gp-0 art-group art-group-array length)) + (inspect (-> gp-0 art-group art-group-array s5-0)) + ) + ) + #f + ) ) (function "Print Texture Info" #f - (lambda () - (format #t "~%~%========================= Texture Info =========================~%~%") - (inspect *texture-page-dir*) - ) + ,(lambda () + (format #t "~%~%========================= Texture Info =========================~%~%") + (inspect *texture-page-dir*) + ) ) (function "Print Texture Verbose" #f - (lambda () - (format #t "~%~%========================= Texture Info =========================~%~%") - (texture-page-dir-inspect *texture-page-dir* #t) - (none) - ) + ,(lambda () + (format #t "~%~%========================= Texture Info =========================~%~%") + (texture-page-dir-inspect *texture-page-dir* #t) + (none) + ) ) (function "Print Merc Stats" #f - (lambda () - (format #t "~%~%========================== Merc Stats ==========================~%~%") - (merc-stats) - (none) - ) + ,(lambda () + (format #t "~%~%========================== Merc Stats ==========================~%~%") + (merc-stats) + (none) + ) ) ) ) @@ -3808,9 +3808,18 @@ '(menu "Actor" (flag "Spawn Actors" *spawn-actors* dm-boolean-toggle-pick-func) - (function "Reset Actors" #f (lambda () (reset-actors 'debug) (none))) - (function "Traffic Start" #f (lambda () - (let ((gp-0 traffic-start)) + (function "Reset Actors" #f ,(lambda () (reset-actors 'debug) (none))) + (function "Traffic Start" #f ,(lambda () + (let ((gp-0 traffic-start)) + (if (valid? gp-0 function (the-as symbol "") #t 0) + (gp-0) + ) + ) + (none) + ) + ) + (function "Traffic Kill" #f ,(lambda () + (let ((gp-0 traffic-kill)) (if (valid? gp-0 function (the-as symbol "") #t 0) (gp-0) ) @@ -3818,28 +3827,19 @@ (none) ) ) - (function "Traffic Kill" #f (lambda () - (let ((gp-0 traffic-kill)) - (if (valid? gp-0 function (the-as symbol "") #t 0) - (gp-0) - ) - ) - (none) - ) - ) (menu "Bot" (function "Bot Next" #f - (lambda () - (send-event (process-by-name "sig-atoll-1" *active-pool*) 'skip) - (send-event (process-by-name "hal-sewer-1" *active-pool*) 'skip) - (send-event (process-by-name "hal-escort-1" *active-pool*) 'skip) - (send-event (process-by-name "squid-2" *active-pool*) 'skip) - (send-event (process-by-name "metalkor-1" *active-pool*) 'skip) - (send-event (process-by-name "sig-under-1" *active-pool*) 'skip) - ) + ,(lambda () + (send-event (process-by-name "sig-atoll-1" *active-pool*) 'skip) + (send-event (process-by-name "hal-sewer-1" *active-pool*) 'skip) + (send-event (process-by-name "hal-escort-1" *active-pool*) 'skip) + (send-event (process-by-name "squid-2" *active-pool*) 'skip) + (send-event (process-by-name "metalkor-1" *active-pool*) 'skip) + (send-event (process-by-name "sig-under-1" *active-pool*) 'skip) + ) ) (menu "Bot Marks" @@ -3851,20 +3851,20 @@ (function "Record sig5-cent1-path0" #f - (lambda () - (set! *bot-record-path* 0) - (dm-play-task-with-continue (game-task under-sig) "cent1-path0-record-path") - (none) - ) + ,(lambda () + (set! *bot-record-path* 0) + (dm-play-task-with-continue (game-task under-sig) "cent1-path0-record-path") + (none) + ) ) (function "Record sig5-cent2-path0" #f - (lambda () - (set! *bot-record-path* 1) - (dm-play-task-with-continue (game-task under-sig) "cent2-path0-record-path") - (none) - ) + ,(lambda () + (set! *bot-record-path* 1) + (dm-play-task-with-continue (game-task under-sig) "cent2-path0-record-path") + (none) + ) ) ) (menu @@ -3915,154 +3915,154 @@ "Target" (menu "Mode" - (function "normal" #f (lambda () (send-event *target* 'end-mode))) - (function "racer" #f (lambda () + (function "normal" #f ,(lambda () (send-event *target* 'end-mode))) + (function "racer" #f ,(lambda () + (if (not *target*) + (start 'debug (get-current-continue-forced *game-info*)) + ) + (send-event *target* 'change-mode 'racer #f) + ) + ) + (function "flut" #f ,(lambda () (if (not *target*) - (start 'debug (get-current-continue-point *game-info*)) + (start 'debug (get-current-continue-forced *game-info*)) ) - (send-event *target* 'change-mode 'racer #f) + (send-event *target* 'change-mode 'flut #f) ) ) - (function "flut" #f (lambda () + (function "board" #f ,(lambda () + (if (not *target*) + (start 'debug (get-current-continue-forced *game-info*)) + ) + (logior! (-> *game-info* features) (game-feature board)) + (logior! (-> *game-info* debug-features) (game-feature board)) + (send-event *target* 'change-mode 'board #f) + ) + ) + (function "mech" #f ,(lambda () + (if (not *target*) + (start 'debug (get-current-continue-forced *game-info*)) + ) + (send-event *target* 'change-mode 'mech #f) + ) + ) + (function "gun" #f ,(lambda () (if (not *target*) - (start 'debug (get-current-continue-point *game-info*)) + (start 'debug (get-current-continue-forced *game-info*)) ) - (send-event *target* 'change-mode 'flut #f) + (logior! (-> *game-info* features) (game-feature unk-game-feature-06)) + (logior! (-> *game-info* debug-features) (game-feature unk-game-feature-06)) + (send-event *target* 'change-mode 'gun #f 0) ) ) - (function "board" #f (lambda () - (if (not *target*) - (start 'debug (get-current-continue-point *game-info*)) - ) - (logior! (-> *game-info* features) (game-feature board)) - (logior! (-> *game-info* debug-features) (game-feature board)) - (send-event *target* 'change-mode 'board #f) - ) - ) - (function "mech" #f (lambda () - (if (not *target*) - (start 'debug (get-current-continue-point *game-info*)) + (function "darkjak" #f ,(lambda () + (if (not *target*) + (start 'debug (get-current-continue-forced *game-info*)) + ) + (logior! (-> *game-info* features) (game-feature darkjak)) + (logior! (-> *game-info* debug-features) (game-feature darkjak)) + (send-event *target* 'change-mode 'darkjak #f 3) ) - (send-event *target* 'change-mode 'mech #f) - ) ) - (function "gun" #f (lambda () - (if (not *target*) - (start 'debug (get-current-continue-point *game-info*)) - ) - (logior! (-> *game-info* features) (game-feature unk-game-feature-06)) - (logior! (-> *game-info* debug-features) (game-feature unk-game-feature-06)) - (send-event *target* 'change-mode 'gun #f 0) - ) - ) - (function "darkjak" #f (lambda () - (if (not *target*) - (start 'debug (get-current-continue-point *game-info*)) - ) - (logior! (-> *game-info* features) (game-feature darkjak)) - (logior! (-> *game-info* debug-features) (game-feature darkjak)) - (send-event *target* 'change-mode 'darkjak #f 3) - ) - ) - (function "indax" #f (lambda () - (if (not *target*) - (start 'debug (get-current-continue-point *game-info*)) - ) - (send-event *target* 'change-mode 'indax #f) - ) + (function "indax" #f ,(lambda () + (if (not *target*) + (start 'debug (get-current-continue-forced *game-info*)) + ) + (send-event *target* 'change-mode 'indax #f) + ) ) ) (menu "Pilot Mode" - (function "bikea" #f (lambda () (dm-pilot-mode 0) (none))) - (function "bikeb" #f (lambda () (dm-pilot-mode 1) (none))) - (function "bikec" #f (lambda () (dm-pilot-mode 2) (none))) - (function "crimson-bike" #f (lambda () (dm-pilot-mode 6) (none))) - (function "cara" #f (lambda () (dm-pilot-mode 3) (none))) - (function "carb" #f (lambda () (dm-pilot-mode 4) (none))) - (function "carc" #f (lambda () (dm-pilot-mode 5) (none))) - (function "hellcat" #f (lambda () (dm-pilot-mode 7) (none))) - (function "race-bike-a" #f (lambda () (dm-pilot-race-mode 0) (none))) - (function "race-bike-b" #f (lambda () (dm-pilot-race-mode 1) (none))) - (function "race-bike-c" #f (lambda () (dm-pilot-race-mode 2) (none))) - (function "evantestbike" #f (lambda () (dm-pilot-mode 8) (none))) - (function "test-bike" #f (lambda () (dm-pilot-mode 9) (none))) - (function "test-car" #f (lambda () (dm-pilot-mode 10) (none))) + (function "bikea" #f ,(lambda () (dm-pilot-mode 0) (none))) + (function "bikeb" #f ,(lambda () (dm-pilot-mode 1) (none))) + (function "bikec" #f ,(lambda () (dm-pilot-mode 2) (none))) + (function "crimson-bike" #f ,(lambda () (dm-pilot-mode 6) (none))) + (function "cara" #f ,(lambda () (dm-pilot-mode 3) (none))) + (function "carb" #f ,(lambda () (dm-pilot-mode 4) (none))) + (function "carc" #f ,(lambda () (dm-pilot-mode 5) (none))) + (function "hellcat" #f ,(lambda () (dm-pilot-mode 7) (none))) + (function "race-bike-a" #f ,(lambda () (dm-pilot-race-mode 0) (none))) + (function "race-bike-b" #f ,(lambda () (dm-pilot-race-mode 1) (none))) + (function "race-bike-c" #f ,(lambda () (dm-pilot-race-mode 2) (none))) + (function "evantestbike" #f ,(lambda () (dm-pilot-mode 8) (none))) + (function "test-bike" #f ,(lambda () (dm-pilot-mode 9) (none))) + (function "test-car" #f ,(lambda () (dm-pilot-mode 10) (none))) ) - (flag "Target" #f (lambda ((arg0 object) (arg1 debug-menu-msg)) - (when (= arg1 (debug-menu-msg press)) - (if *target* - (stop 'debug) - (start 'debug (get-current-continue-point *game-info*)) - ) - ) - *target* - ) + (flag "Target" #f ,(lambda ((arg0 object) (arg1 debug-menu-msg)) + (when (= arg1 (debug-menu-msg press)) + (if *target* + (stop 'debug) + (start 'debug (get-current-continue-forced *game-info*)) + ) + ) + *target* + ) ) (menu "Darkjak" (function "get all" #f - (lambda ((arg0 object) (arg1 debug-menu-msg)) - (set! (-> *game-info* features) - (logior (game-feature darkjak darkjak-bomb0 darkjak-bomb1 darkjak-invinc darkjak-giant) - (-> *game-info* features) - ) - ) - (set! (-> *game-info* debug-features) - (logior (game-feature darkjak darkjak-bomb0 darkjak-bomb1 darkjak-invinc darkjak-giant) - (-> *game-info* debug-features) - ) - ) - (send-event *target* 'get-pickup 7 #x42c80000) - ) + ,(lambda ((arg0 object) (arg1 debug-menu-msg)) + (set! (-> *game-info* features) + (logior (game-feature darkjak darkjak-bomb0 darkjak-bomb1 darkjak-invinc darkjak-giant) + (-> *game-info* features) + ) + ) + (set! (-> *game-info* debug-features) + (logior (game-feature darkjak darkjak-bomb0 darkjak-bomb1 darkjak-invinc darkjak-giant) + (-> *game-info* debug-features) + ) + ) + (send-event *target* 'get-pickup 7 #x42c80000) + ) ) - (function "manual" #f (lambda ((arg0 object) (arg1 debug-menu-msg)) + (function "manual" #f ,(lambda ((arg0 object) (arg1 debug-menu-msg)) + (if (not *target*) + (start 'debug (get-current-continue-forced *game-info*)) + ) + (logior! (-> *game-info* features) (game-feature darkjak)) + (logior! (-> *game-info* debug-features) (game-feature darkjak)) + (send-event *target* 'change-mode 'darkjak #f 3) + ) + ) + (function "rapid" #f ,(lambda ((arg0 object) (arg1 debug-menu-msg)) (if (not *target*) - (start 'debug (get-current-continue-point *game-info*)) + (start 'debug (get-current-continue-forced *game-info*)) ) (logior! (-> *game-info* features) (game-feature darkjak)) (logior! (-> *game-info* debug-features) (game-feature darkjak)) - (send-event *target* 'change-mode 'darkjak #f 3) + (send-event *target* 'change-mode 'darkjak #f 2) ) ) - (function "rapid" #f (lambda ((arg0 object) (arg1 debug-menu-msg)) - (if (not *target*) - (start 'debug (get-current-continue-point *game-info*)) - ) - (logior! (-> *game-info* features) (game-feature darkjak)) - (logior! (-> *game-info* debug-features) (game-feature darkjak)) - (send-event *target* 'change-mode 'darkjak #f 2) - ) - ) - (function "bomb0" #f (lambda ((arg0 object) (arg1 debug-menu-msg)) - (if (not *target*) - (start 'debug (get-current-continue-point *game-info*)) - ) - (send-event *target* 'change-mode 'darkjak #f 7) - ) - ) - (function "bomb1" #f (lambda ((arg0 object) (arg1 debug-menu-msg)) - (if (not *target*) - (start 'debug (get-current-continue-point *game-info*)) - ) - (send-event *target* 'change-mode 'darkjak #f 15) - ) - ) - (function "invinc" #f (lambda ((arg0 object) (arg1 debug-menu-msg)) + (function "bomb0" #f ,(lambda ((arg0 object) (arg1 debug-menu-msg)) (if (not *target*) - (start 'debug (get-current-continue-point *game-info*)) + (start 'debug (get-current-continue-forced *game-info*)) ) - (send-event *target* 'change-mode 'darkjak #f 31) + (send-event *target* 'change-mode 'darkjak #f 7) ) ) - (function "giant" #f (lambda ((arg0 object) (arg1 debug-menu-msg)) - (if (not *target*) - (start 'debug (get-current-continue-point *game-info*)) - ) - (send-event *target* 'change-mode 'darkjak #f 63) - ) + (function "bomb1" #f ,(lambda ((arg0 object) (arg1 debug-menu-msg)) + (if (not *target*) + (start 'debug (get-current-continue-forced *game-info*)) + ) + (send-event *target* 'change-mode 'darkjak #f 15) + ) + ) + (function "invinc" #f ,(lambda ((arg0 object) (arg1 debug-menu-msg)) + (if (not *target*) + (start 'debug (get-current-continue-forced *game-info*)) + ) + (send-event *target* 'change-mode 'darkjak #f 31) + ) + ) + (function "giant" #f ,(lambda ((arg0 object) (arg1 debug-menu-msg)) + (if (not *target*) + (start 'debug (get-current-continue-forced *game-info*)) + ) + (send-event *target* 'change-mode 'darkjak #f 63) + ) ) ) (menu @@ -4079,67 +4079,76 @@ (flag "Gun Marks" *gun-marks* dm-boolean-toggle-pick-func) (flag "Target Stats" *stats-target* dm-boolean-toggle-pick-func) (flag "Sidekick Stats" *display-sidekick-stats* dm-boolean-toggle-pick-func) - (flag "Invulnerable" #f (lambda ((arg0 object) (arg1 debug-menu-msg)) - (when (= arg1 (debug-menu-msg press)) - (if *target* - (logxor! (-> *target* state-flags) (state-flags sf2)) - ) - ) - (and *target* (logtest? (-> *target* state-flags) (state-flags sf2))) - ) + (flag "Invulnerable" #f ,(lambda ((arg0 object) (arg1 debug-menu-msg)) + (when (= arg1 (debug-menu-msg press)) + (if *target* + (logxor! (-> *target* state-flags) (state-flags sf2)) + ) + ) + (and *target* (logtest? (-> *target* state-flags) (state-flags sf2))) + ) ) (flag "Endless Ammo" #f - (lambda ((arg0 object) (arg1 debug-menu-msg)) - (when (= arg1 (debug-menu-msg press)) - (if *target* - (set! (-> *target* state-flags) (the-as state-flags (logxor #x10000 (the-as int (-> *target* state-flags))))) - ) - ) - (and *target* (logtest? (state-flags sf16) (-> *target* state-flags))) - ) + ,(lambda ((arg0 object) (arg1 debug-menu-msg)) + (when (= arg1 (debug-menu-msg press)) + (if *target* + (set! (-> *target* state-flags) (the-as state-flags (logxor #x10000 (the-as int (-> *target* state-flags))))) + ) + ) + (and *target* (logtest? (state-flags sf16) (-> *target* state-flags))) + ) ) (function "Full Stuff" #f - (lambda () - (send-event *target* 'get-pickup 18 #x447a0000) - (send-event *target* 'get-pickup 17 #x447a0000) - (send-event *target* 'get-pickup 13 #x447a0000) - (send-event *target* 'get-pickup 14 #x447a0000) - (send-event *target* 'get-pickup 15 #x447a0000) - (send-event *target* 'get-pickup 16 #x447a0000) - (send-event *target* 'get-pickup 7 #x42c80000) - (logior! - (-> *game-info* features) - (game-feature unk-game-feature-06 gun-yellow gun-red gun-blue gun-dark board darkjak) - ) - (let ((v0-7 - (logior (-> *game-info* debug-features) - (game-feature unk-game-feature-06 gun-yellow gun-red gun-blue gun-dark board darkjak) - ) - ) - ) - (set! (-> *game-info* debug-features) v0-7) - v0-7 - ) - ) + ,(lambda () + (send-event *target* 'get-pickup 18 #x447a0000) + (send-event *target* 'get-pickup 17 #x447a0000) + (send-event *target* 'get-pickup 13 #x447a0000) + (send-event *target* 'get-pickup 14 #x447a0000) + (send-event *target* 'get-pickup 15 #x447a0000) + (send-event *target* 'get-pickup 16 #x447a0000) + (send-event *target* 'get-pickup 7 #x42c80000) + (logior! + (-> *game-info* features) + (game-feature unk-game-feature-06 gun-yellow gun-red gun-blue gun-dark board darkjak) + ) + (let ((v0-7 + (logior (-> *game-info* debug-features) + (game-feature unk-game-feature-06 gun-yellow gun-red gun-blue gun-dark board darkjak) + ) + ) + ) + (set! (-> *game-info* debug-features) v0-7) + v0-7 + ) + ) ) (function "Dump Stuff" #f - (lambda () - (send-event *target* 'get-pickup 17 -998637568) - (send-event *target* 'get-pickup 13 -998637568) - (send-event *target* 'get-pickup 14 -998637568) - (send-event *target* 'get-pickup 15 -998637568) - (send-event *target* 'get-pickup 16 -998637568) - ) + ,(lambda () + (send-event *target* 'get-pickup 17 -998637568) + (send-event *target* 'get-pickup 13 -998637568) + (send-event *target* 'get-pickup 14 -998637568) + (send-event *target* 'get-pickup 15 -998637568) + (send-event *target* 'get-pickup 16 -998637568) + ) ) - (function "Trick Mode" #f (lambda () (send-event *target* 'get-pickup 20 #x468ca000))) - (function "Reset Trans" #f (lambda () (when *target* - (position-in-front-of-camera! (target-pos 0) 40960.0 4096.0) + (function "Trick Mode" #f ,(lambda () (send-event *target* 'get-pickup 20 #x468ca000))) + (function "Reset Trans" #f ,(lambda () (when *target* + (position-in-front-of-camera! (target-pos 0) 40960.0 4096.0) + (set! (-> *target* control transv quad) (the-as uint128 0)) + (quaternion-identity! (-> *target* control quat)) + (quaternion-identity! (-> *target* control unknown-quaternion00)) + (quaternion-identity! (-> *target* control dir-targ)) + ) + ) + ) + (function "Zero Trans" #f ,(lambda () (when *target* + (set-vector! (-> *target* control trans) 0.0 163840.0 0.0 1.0) (set! (-> *target* control transv quad) (the-as uint128 0)) (quaternion-identity! (-> *target* control quat)) (quaternion-identity! (-> *target* control unknown-quaternion00)) @@ -4147,28 +4156,19 @@ ) ) ) - (function "Zero Trans" #f (lambda () (when *target* - (set-vector! (-> *target* control trans) 0.0 163840.0 0.0 1.0) - (set! (-> *target* control transv quad) (the-as uint128 0)) - (quaternion-identity! (-> *target* control quat)) - (quaternion-identity! (-> *target* control unknown-quaternion00)) - (quaternion-identity! (-> *target* control dir-targ)) - ) - ) - ) (flag "Slow Frame Rate" *slow-frame-rate* dm-boolean-toggle-pick-func) - (function "Print Pos" #f (lambda () - (let ((v1-0 (target-pos 0))) - (format #t "~6,,2m ~6,,2m ~6,,2m~%" (-> v1-0 x) (-> v1-0 y) (-> v1-0 z)) - ) - 0 - ) + (function "Print Pos" #f ,(lambda () + (let ((v1-0 (target-pos 0))) + (format #t "~6,,2m ~6,,2m ~6,,2m~%" (-> v1-0 x) (-> v1-0 y) (-> v1-0 z)) + ) + 0 + ) ) - (function "Save Continue" #f (lambda () (the-as symbol (if *target* - (trsq->continue-point (-> *target* control)) - ) - ) - ) + (function "Save Continue" #f ,(lambda () (the-as symbol (if *target* + (trsq->continue-point (-> *target* control)) + ) + ) + ) ) (flag "RC Board Controls" *target-rc-board-controls* dm-boolean-toggle-pick-func) ) @@ -4210,9 +4210,9 @@ (function "Record Selected Path" #f - (lambda () (set! *race-record-path* #t) (dm-play-race *select-race* #t) (none)) + ,(lambda () (set! *race-record-path* #t) (dm-play-race *select-race* #t) (none)) ) - (function "Play Race" #f (lambda () (set! *race-record-path* #f) (dm-play-race *select-race* #f) (none))) + (function "Play Race" #f ,(lambda () (set! *race-record-path* #f) (dm-play-race *select-race* #f) (none))) ) ) ) @@ -4222,103 +4222,103 @@ arg0 '(menu "Nav Graph" - (function "Start Editor" #f (lambda () - (if (not (get-nav-graph-editor)) - (run-nav-graph-editor 'test) + (function "Start Editor" #f ,(lambda () + (if (not (get-nav-graph-editor)) + (run-nav-graph-editor 'test) + ) + (none) + ) + ) + (function "Exit Editor" #f ,(lambda () + (if (get-nav-graph-editor) + (exit-nav-graph-editor) ) (none) ) ) - (function "Exit Editor" #f (lambda () - (if (get-nav-graph-editor) - (exit-nav-graph-editor) - ) - (none) - ) + (function "Toggle Plane Mode" #f ,(lambda () + (let ((a0-0 (get-nav-graph-editor))) + (if a0-0 + ((method-of-object a0-0 nav-graph-editor-method-60)) + ) + ) + (none) + ) ) - (function "Toggle Plane Mode" #f (lambda () - (let ((a0-0 (get-nav-graph-editor))) - (if a0-0 - ((method-of-object a0-0 nav-graph-editor-method-60)) - ) - ) - (none) - ) - ) - (function "Toggle Hover Mode" #f (lambda () - (let ((a0-0 (get-nav-graph-editor))) - (if a0-0 - ((method-of-object a0-0 nav-graph-editor-method-61)) - ) - ) - (none) - ) + (function "Toggle Hover Mode" #f ,(lambda () + (let ((a0-0 (get-nav-graph-editor))) + (if a0-0 + ((method-of-object a0-0 nav-graph-editor-method-61)) + ) + ) + (none) + ) ) (menu "Load" - (function "Hover Drillmid" #f (lambda () - (let ((a0-0 (get-nav-graph-editor))) - (if a0-0 - (nav-graph-editor-method-62 a0-0 'hover 'drillmid) - ) - ) - (none) - ) + (function "Hover Drillmid" #f ,(lambda () + (let ((a0-0 (get-nav-graph-editor))) + (if a0-0 + (nav-graph-editor-method-62 a0-0 'hover 'drillmid) + ) + ) + (none) + ) ) - (function "Hover Forresca" #f (lambda () - (let ((a0-0 (get-nav-graph-editor))) - (if a0-0 - (nav-graph-editor-method-62 a0-0 'hover 'forresca) - ) - ) - (none) - ) + (function "Hover Forresca" #f ,(lambda () + (let ((a0-0 (get-nav-graph-editor))) + (if a0-0 + (nav-graph-editor-method-62 a0-0 'hover 'forresca) + ) + ) + (none) + ) ) - (function "Hover Forest" #f (lambda () + (function "Hover Forest" #f ,(lambda () + (let ((a0-0 (get-nav-graph-editor))) + (if a0-0 + (nav-graph-editor-method-62 a0-0 'hover 'forest) + ) + ) + (none) + ) + ) + (function "Hover Under" #f ,(lambda () (let ((a0-0 (get-nav-graph-editor))) (if a0-0 - (nav-graph-editor-method-62 a0-0 'hover 'forest) + (nav-graph-editor-method-62 a0-0 'hover 'under) ) ) (none) ) ) - (function "Hover Under" #f (lambda () - (let ((a0-0 (get-nav-graph-editor))) - (if a0-0 - (nav-graph-editor-method-62 a0-0 'hover 'under) - ) - ) - (none) - ) + (function "Traffic" #f ,(lambda () + (let ((a0-0 (get-nav-graph-editor))) + (if a0-0 + (nav-graph-editor-method-62 a0-0 'traffic #f) + ) + ) + (none) + ) ) - (function "Traffic" #f (lambda () - (let ((a0-0 (get-nav-graph-editor))) - (if a0-0 - (nav-graph-editor-method-62 a0-0 'traffic #f) - ) - ) - (none) - ) - ) - (function "Minimap" #f (lambda () - (let ((a0-0 (get-nav-graph-editor))) - (if a0-0 - (nav-graph-editor-method-62 a0-0 'minimap #f) - ) - ) - (none) - ) + (function "Minimap" #f ,(lambda () + (let ((a0-0 (get-nav-graph-editor))) + (if a0-0 + (nav-graph-editor-method-62 a0-0 'minimap #f) + ) + ) + (none) + ) ) ) - (function "Save" #f (lambda () - (let ((a0-0 (get-nav-graph-editor))) - (if a0-0 - ((method-of-object a0-0 nav-graph-editor-method-63)) - ) - ) - (none) - ) + (function "Save" #f ,(lambda () + (let ((a0-0 (get-nav-graph-editor))) + (if a0-0 + ((method-of-object a0-0 nav-graph-editor-method-63)) + ) + ) + (none) + ) ) ) ) @@ -4329,66 +4329,66 @@ arg0 '(menu "Map" - (flag "Record Mode" #f (lambda ((arg0 object) (arg1 debug-menu-msg)) - (if (= arg1 (debug-menu-msg press)) - (set! (-> *bigmap* recording-flag) (not (-> *bigmap* recording-flag))) - ) - (-> *bigmap* recording-flag) - ) + (flag "Record Mode" #f ,(lambda ((arg0 object) (arg1 debug-menu-msg)) + (if (= arg1 (debug-menu-msg press)) + (set! (-> *bigmap* recording-flag) (not (-> *bigmap* recording-flag))) + ) + (-> *bigmap* recording-flag) + ) ) (function "Clear map" #f - (lambda () - (let ((v1-1 - (process-spawn-function - process - (lambda () (with-pp - (set-master-mode 'game) - (let ((gp-0 (-> pp clock frame-counter))) - (until (>= (- (-> pp clock frame-counter) gp-0) (seconds 0.3)) - (suspend) - ) - ) - (until #f - (format *stdcon* "press x clear map, press circle cancel~%") - (cond - ((cpad-pressed? 0 x) - (initialize *bigmap*) - (return #f) + ,(lambda () + (let ((v1-1 + (process-spawn-function + process + (lambda () (with-pp + (set-master-mode 'game) + (let ((gp-0 (-> pp clock frame-counter))) + (until (>= (- (-> pp clock frame-counter) gp-0) (seconds 0.3)) + (suspend) ) - ((cpad-pressed? 0 circle) - (return #f) + ) + (until #f + (format *stdcon* "press x clear map, press circle cancel~%") + (cond + ((cpad-pressed? 0 x) + (initialize *bigmap*) + (return #f) + ) + ((cpad-pressed? 0 circle) + (return #f) + ) ) - ) - (suspend) - ) - #f - ) - ) - ) - ) - ) - (when v1-1 - (let ((v0-3 (logclear (-> v1-1 0 mask) (process-mask menu)))) - (set! (-> v1-1 0 mask) v0-3) - v0-3 - ) - ) - ) - ) + (suspend) + ) + #f + ) + ) + ) + ) + ) + (when v1-1 + (let ((v0-3 (logclear (-> v1-1 0 mask) (process-mask menu)))) + (set! (-> v1-1 0 mask) v0-3) + v0-3 + ) + ) + ) + ) ) - (flag "Fill in" #f (lambda ((arg0 object) (arg1 debug-menu-msg)) - (if (= arg1 (debug-menu-msg press)) - (set! (-> *bigmap* fill-flag) (not (-> *bigmap* fill-flag))) - ) - (-> *bigmap* fill-flag) - ) + (flag "Fill in" #f ,(lambda ((arg0 object) (arg1 debug-menu-msg)) + (if (= arg1 (debug-menu-msg press)) + (set! (-> *bigmap* fill-flag) (not (-> *bigmap* fill-flag))) + ) + (-> *bigmap* fill-flag) + ) ) (function "Save" #f - (lambda ((arg0 object) (arg1 debug-menu-msg)) ((method-of-object *bigmap* bigmap-method-16)) (none)) + ,(lambda ((arg0 object) (arg1 debug-menu-msg)) ((method-of-object *bigmap* bigmap-method-16)) (none)) ) ) ) @@ -4453,53 +4453,53 @@ (flag "Overide Enable" #f - (lambda ((arg0 object) (arg1 debug-menu-msg)) - (if (= arg1 (debug-menu-msg press)) - (set! (-> *time-of-day-context* overide-enable) (not (-> *time-of-day-context* overide-enable))) - ) - (-> *time-of-day-context* overide-enable) - ) + ,(lambda ((arg0 object) (arg1 debug-menu-msg)) + (if (= arg1 (debug-menu-msg press)) + (set! (-> *time-of-day-context* overide-enable) (not (-> *time-of-day-context* overide-enable))) + ) + (-> *time-of-day-context* overide-enable) + ) ) (menu "Weather" (flag "Overide Weather Enable" #f - (lambda ((arg0 object) (arg1 debug-menu-msg)) - (if (= arg1 (debug-menu-msg press)) - (set! (-> *mood-control* overide-weather-flag) (not (-> *mood-control* overide-weather-flag))) - ) - (-> *mood-control* overide-weather-flag) - ) + ,(lambda ((arg0 object) (arg1 debug-menu-msg)) + (if (= arg1 (debug-menu-msg press)) + (set! (-> *mood-control* overide-weather-flag) (not (-> *mood-control* overide-weather-flag))) + ) + (-> *mood-control* overide-weather-flag) + ) ) (flag "Display Values" #f - (lambda ((arg0 object) (arg1 debug-menu-msg)) - (if (= arg1 (debug-menu-msg press)) - (set! (-> *mood-control* display-flag) (not (-> *mood-control* display-flag))) - ) - (-> *mood-control* display-flag) - ) + ,(lambda ((arg0 object) (arg1 debug-menu-msg)) + (if (= arg1 (debug-menu-msg press)) + (set! (-> *mood-control* display-flag) (not (-> *mood-control* display-flag))) + ) + (-> *mood-control* display-flag) + ) ) (float-var "Clouds" #f - (lambda ((arg0 object) (arg1 debug-menu-msg) (arg2 float)) - (cond - ((= arg1 (debug-menu-msg press)) - (if (and *mood-control* (nonzero? *mood-control*)) - (set! (-> *mood-control* overide cloud) arg2) - ) - ) - ((or (not *mood-control*) (zero? *mood-control*)) - 0.0 - ) - (else - (-> *mood-control* overide cloud) + ,(lambda ((arg0 object) (arg1 debug-menu-msg) (arg2 float)) + (cond + ((= arg1 (debug-menu-msg press)) + (if (and *mood-control* (nonzero? *mood-control*)) + (set! (-> *mood-control* overide cloud) arg2) + ) ) - ) - ) + ((or (not *mood-control*) (zero? *mood-control*)) + 0.0 + ) + (else + (-> *mood-control* overide cloud) + ) + ) + ) 1 (new 'static 'bfloat :data 0.00390625) #t @@ -4510,21 +4510,21 @@ (float-var "Fog" #f - (lambda ((arg0 object) (arg1 debug-menu-msg) (arg2 float)) - (cond - ((= arg1 (debug-menu-msg press)) - (if (and *mood-control* (nonzero? *mood-control*)) - (set! (-> *mood-control* overide fog) arg2) - ) - ) - ((or (not *mood-control*) (zero? *mood-control*)) - 0.0 - ) - (else - (-> *mood-control* overide fog) + ,(lambda ((arg0 object) (arg1 debug-menu-msg) (arg2 float)) + (cond + ((= arg1 (debug-menu-msg press)) + (if (and *mood-control* (nonzero? *mood-control*)) + (set! (-> *mood-control* overide fog) arg2) + ) ) - ) - ) + ((or (not *mood-control*) (zero? *mood-control*)) + 0.0 + ) + (else + (-> *mood-control* overide fog) + ) + ) + ) 1 (new 'static 'bfloat :data 0.00390625) #t @@ -4547,33 +4547,33 @@ (float-var "Ambient Red" #f - (lambda ((arg0 object) (arg1 debug-menu-msg) (arg2 float)) - (cond - ((= arg1 (debug-menu-msg press)) - (if (and *overide-mood-color-table* (nonzero? *overide-mood-color-table*)) - (set! (-> *overide-mood-color-table* - data - (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2)) - amb-color - x - ) - arg2 - ) - ) - ) - ((or (not *overide-mood-color-table*) (zero? *overide-mood-color-table*)) - 0.0 - ) - (else - (-> *overide-mood-color-table* - data - (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2)) - amb-color - x + ,(lambda ((arg0 object) (arg1 debug-menu-msg) (arg2 float)) + (cond + ((= arg1 (debug-menu-msg press)) + (if (and *overide-mood-color-table* (nonzero? *overide-mood-color-table*)) + (set! (-> *overide-mood-color-table* + data + (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2)) + amb-color + x + ) + arg2 + ) ) ) - ) - ) + ((or (not *overide-mood-color-table*) (zero? *overide-mood-color-table*)) + 0.0 + ) + (else + (-> *overide-mood-color-table* + data + (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2)) + amb-color + x + ) + ) + ) + ) 2 (new 'static 'bfloat :data 0.00390625) #t @@ -4584,33 +4584,33 @@ (float-var "Ambient Green" #f - (lambda ((arg0 object) (arg1 debug-menu-msg) (arg2 float)) - (cond - ((= arg1 (debug-menu-msg press)) - (if (and *overide-mood-color-table* (nonzero? *overide-mood-color-table*)) - (set! (-> *overide-mood-color-table* - data - (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2)) - amb-color - y - ) - arg2 - ) - ) - ) - ((or (not *overide-mood-color-table*) (zero? *overide-mood-color-table*)) - 0.0 - ) - (else - (-> *overide-mood-color-table* - data - (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2)) - amb-color - y + ,(lambda ((arg0 object) (arg1 debug-menu-msg) (arg2 float)) + (cond + ((= arg1 (debug-menu-msg press)) + (if (and *overide-mood-color-table* (nonzero? *overide-mood-color-table*)) + (set! (-> *overide-mood-color-table* + data + (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2)) + amb-color + y + ) + arg2 + ) ) ) - ) - ) + ((or (not *overide-mood-color-table*) (zero? *overide-mood-color-table*)) + 0.0 + ) + (else + (-> *overide-mood-color-table* + data + (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2)) + amb-color + y + ) + ) + ) + ) 2 (new 'static 'bfloat :data 0.00390625) #t @@ -4621,33 +4621,33 @@ (float-var "Ambient Blue" #f - (lambda ((arg0 object) (arg1 debug-menu-msg) (arg2 float)) - (cond - ((= arg1 (debug-menu-msg press)) - (if (and *overide-mood-color-table* (nonzero? *overide-mood-color-table*)) - (set! (-> *overide-mood-color-table* - data - (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2)) - amb-color - z - ) - arg2 - ) - ) - ) - ((or (not *overide-mood-color-table*) (zero? *overide-mood-color-table*)) - 0.0 - ) - (else - (-> *overide-mood-color-table* - data - (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2)) - amb-color - z + ,(lambda ((arg0 object) (arg1 debug-menu-msg) (arg2 float)) + (cond + ((= arg1 (debug-menu-msg press)) + (if (and *overide-mood-color-table* (nonzero? *overide-mood-color-table*)) + (set! (-> *overide-mood-color-table* + data + (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2)) + amb-color + z + ) + arg2 + ) ) ) - ) - ) + ((or (not *overide-mood-color-table*) (zero? *overide-mood-color-table*)) + 0.0 + ) + (else + (-> *overide-mood-color-table* + data + (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2)) + amb-color + z + ) + ) + ) + ) 2 (new 'static 'bfloat :data 0.00390625) #t @@ -4658,33 +4658,33 @@ (float-var "Ambient Mult" #f - (lambda ((arg0 object) (arg1 debug-menu-msg) (arg2 float)) - (cond - ((= arg1 (debug-menu-msg press)) - (if (and *overide-mood-color-table* (nonzero? *overide-mood-color-table*)) - (set! (-> *overide-mood-color-table* - data - (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2)) - amb-color - w - ) - arg2 - ) - ) - ) - ((or (not *overide-mood-color-table*) (zero? *overide-mood-color-table*)) - 0.0 - ) - (else - (-> *overide-mood-color-table* - data - (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2)) - amb-color - w + ,(lambda ((arg0 object) (arg1 debug-menu-msg) (arg2 float)) + (cond + ((= arg1 (debug-menu-msg press)) + (if (and *overide-mood-color-table* (nonzero? *overide-mood-color-table*)) + (set! (-> *overide-mood-color-table* + data + (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2)) + amb-color + w + ) + arg2 + ) ) ) - ) - ) + ((or (not *overide-mood-color-table*) (zero? *overide-mood-color-table*)) + 0.0 + ) + (else + (-> *overide-mood-color-table* + data + (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2)) + amb-color + w + ) + ) + ) + ) 2 (new 'static 'bfloat :data 0.00390625) #t @@ -4695,33 +4695,33 @@ (float-var "Light Red" #f - (lambda ((arg0 object) (arg1 debug-menu-msg) (arg2 float)) - (cond - ((= arg1 (debug-menu-msg press)) - (if (and *overide-mood-color-table* (nonzero? *overide-mood-color-table*)) - (set! (-> *overide-mood-color-table* - data - (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2)) - lgt-color - x - ) - arg2 - ) - ) - ) - ((or (not *overide-mood-color-table*) (zero? *overide-mood-color-table*)) - 0.0 - ) - (else - (-> *overide-mood-color-table* - data - (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2)) - lgt-color - x + ,(lambda ((arg0 object) (arg1 debug-menu-msg) (arg2 float)) + (cond + ((= arg1 (debug-menu-msg press)) + (if (and *overide-mood-color-table* (nonzero? *overide-mood-color-table*)) + (set! (-> *overide-mood-color-table* + data + (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2)) + lgt-color + x + ) + arg2 + ) ) ) - ) - ) + ((or (not *overide-mood-color-table*) (zero? *overide-mood-color-table*)) + 0.0 + ) + (else + (-> *overide-mood-color-table* + data + (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2)) + lgt-color + x + ) + ) + ) + ) 2 (new 'static 'bfloat :data 0.00390625) #t @@ -4732,33 +4732,33 @@ (float-var "Light Green" #f - (lambda ((arg0 object) (arg1 debug-menu-msg) (arg2 float)) - (cond - ((= arg1 (debug-menu-msg press)) - (if (and *overide-mood-color-table* (nonzero? *overide-mood-color-table*)) - (set! (-> *overide-mood-color-table* - data - (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2)) - lgt-color - y - ) - arg2 - ) - ) - ) - ((or (not *overide-mood-color-table*) (zero? *overide-mood-color-table*)) - 0.0 - ) - (else - (-> *overide-mood-color-table* - data - (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2)) - lgt-color - y + ,(lambda ((arg0 object) (arg1 debug-menu-msg) (arg2 float)) + (cond + ((= arg1 (debug-menu-msg press)) + (if (and *overide-mood-color-table* (nonzero? *overide-mood-color-table*)) + (set! (-> *overide-mood-color-table* + data + (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2)) + lgt-color + y + ) + arg2 + ) ) ) - ) - ) + ((or (not *overide-mood-color-table*) (zero? *overide-mood-color-table*)) + 0.0 + ) + (else + (-> *overide-mood-color-table* + data + (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2)) + lgt-color + y + ) + ) + ) + ) 2 (new 'static 'bfloat :data 0.00390625) #t @@ -4769,33 +4769,33 @@ (float-var "Light Blue" #f - (lambda ((arg0 object) (arg1 debug-menu-msg) (arg2 float)) - (cond - ((= arg1 (debug-menu-msg press)) - (if (and *overide-mood-color-table* (nonzero? *overide-mood-color-table*)) - (set! (-> *overide-mood-color-table* - data - (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2)) - lgt-color - z - ) - arg2 - ) - ) - ) - ((or (not *overide-mood-color-table*) (zero? *overide-mood-color-table*)) - 0.0 - ) - (else - (-> *overide-mood-color-table* - data - (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2)) - lgt-color - z + ,(lambda ((arg0 object) (arg1 debug-menu-msg) (arg2 float)) + (cond + ((= arg1 (debug-menu-msg press)) + (if (and *overide-mood-color-table* (nonzero? *overide-mood-color-table*)) + (set! (-> *overide-mood-color-table* + data + (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2)) + lgt-color + z + ) + arg2 + ) ) ) - ) - ) + ((or (not *overide-mood-color-table*) (zero? *overide-mood-color-table*)) + 0.0 + ) + (else + (-> *overide-mood-color-table* + data + (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2)) + lgt-color + z + ) + ) + ) + ) 2 (new 'static 'bfloat :data 0.00390625) #t @@ -4806,33 +4806,33 @@ (float-var "Light Mult" #f - (lambda ((arg0 object) (arg1 debug-menu-msg) (arg2 float)) - (cond - ((= arg1 (debug-menu-msg press)) - (if (and *overide-mood-color-table* (nonzero? *overide-mood-color-table*)) - (set! (-> *overide-mood-color-table* - data - (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2)) - lgt-color - w - ) - arg2 - ) - ) - ) - ((or (not *overide-mood-color-table*) (zero? *overide-mood-color-table*)) - 0.0 - ) - (else - (-> *overide-mood-color-table* - data - (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2)) - lgt-color - w + ,(lambda ((arg0 object) (arg1 debug-menu-msg) (arg2 float)) + (cond + ((= arg1 (debug-menu-msg press)) + (if (and *overide-mood-color-table* (nonzero? *overide-mood-color-table*)) + (set! (-> *overide-mood-color-table* + data + (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2)) + lgt-color + w + ) + arg2 + ) ) ) - ) - ) + ((or (not *overide-mood-color-table*) (zero? *overide-mood-color-table*)) + 0.0 + ) + (else + (-> *overide-mood-color-table* + data + (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2)) + lgt-color + w + ) + ) + ) + ) 2 (new 'static 'bfloat :data 0.00390625) #t @@ -4843,58 +4843,58 @@ (function "reset selected time" #f - (lambda ((arg0 object) (arg1 debug-menu-msg) (arg2 float)) - (mem-copy! - (the-as - pointer - (-> *overide-mood-color-table* - data - (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2)) - ) - ) - (the-as - pointer - (-> *mood-control* - mood-color-table - data - (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2)) - ) - ) - 32 - ) - (set! (-> *overide-mood-color-table* - data - (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2)) - lgt-color - w - ) - 1.0 - ) - (set! (-> *overide-mood-color-table* - data - (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2)) - amb-color - w - ) - 1.0 - ) - ) + ,(lambda ((arg0 object) (arg1 debug-menu-msg) (arg2 float)) + (mem-copy! + (the-as + pointer + (-> *overide-mood-color-table* + data + (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2)) + ) + ) + (the-as + pointer + (-> *mood-control* + mood-color-table + data + (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2)) + ) + ) + 32 + ) + (set! (-> *overide-mood-color-table* + data + (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2)) + lgt-color + w + ) + 1.0 + ) + (set! (-> *overide-mood-color-table* + data + (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2)) + amb-color + w + ) + 1.0 + ) + ) ) (function "reset all times" #f - (lambda ((arg0 object) (arg1 debug-menu-msg) (arg2 float)) - (mem-copy! - (the-as pointer *overide-mood-color-table*) - (the-as pointer (-> *mood-control* mood-color-table)) - 256 - ) - (dotimes (v1-1 8) - (set! (-> *overide-mood-color-table* data v1-1 lgt-color w) 1.0) - (set! (-> *overide-mood-color-table* data v1-1 amb-color w) 1.0) - ) - (the-as float #f) - ) + ,(lambda ((arg0 object) (arg1 debug-menu-msg) (arg2 float)) + (mem-copy! + (the-as pointer *overide-mood-color-table*) + (the-as pointer (-> *mood-control* mood-color-table)) + 256 + ) + (dotimes (v1-1 8) + (set! (-> *overide-mood-color-table* data v1-1 lgt-color w) 1.0) + (set! (-> *overide-mood-color-table* data v1-1 amb-color w) 1.0) + ) + (the-as float #f) + ) ) ) (menu @@ -4911,33 +4911,33 @@ (float-var "Red" #f - (lambda ((arg0 object) (arg1 debug-menu-msg) (arg2 float)) - (cond - ((= arg1 (debug-menu-msg press)) - (if (and *overide-mood-fog-table* (nonzero? *overide-mood-fog-table*)) - (set! (-> *overide-mood-fog-table* - data - (the-as uint (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2))) - fog-color - x - ) - arg2 - ) - ) - ) - ((or (not *overide-mood-fog-table*) (zero? *overide-mood-fog-table*)) - 0.0 - ) - (else - (-> *overide-mood-fog-table* - data - (the-as uint (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2))) - fog-color - x + ,(lambda ((arg0 object) (arg1 debug-menu-msg) (arg2 float)) + (cond + ((= arg1 (debug-menu-msg press)) + (if (and *overide-mood-fog-table* (nonzero? *overide-mood-fog-table*)) + (set! (-> *overide-mood-fog-table* + data + (the-as uint (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2))) + fog-color + x + ) + arg2 + ) ) ) - ) - ) + ((or (not *overide-mood-fog-table*) (zero? *overide-mood-fog-table*)) + 0.0 + ) + (else + (-> *overide-mood-fog-table* + data + (the-as uint (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2))) + fog-color + x + ) + ) + ) + ) 2 (new 'static 'bfloat :data 1.0) #t @@ -4948,33 +4948,33 @@ (float-var "Green" #f - (lambda ((arg0 object) (arg1 debug-menu-msg) (arg2 float)) - (cond - ((= arg1 (debug-menu-msg press)) - (if (and *overide-mood-fog-table* (nonzero? *overide-mood-fog-table*)) - (set! (-> *overide-mood-fog-table* - data - (the-as uint (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2))) - fog-color - y - ) - arg2 - ) - ) - ) - ((or (not *overide-mood-fog-table*) (zero? *overide-mood-fog-table*)) - 0.0 - ) - (else - (-> *overide-mood-fog-table* - data - (the-as uint (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2))) - fog-color - y + ,(lambda ((arg0 object) (arg1 debug-menu-msg) (arg2 float)) + (cond + ((= arg1 (debug-menu-msg press)) + (if (and *overide-mood-fog-table* (nonzero? *overide-mood-fog-table*)) + (set! (-> *overide-mood-fog-table* + data + (the-as uint (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2))) + fog-color + y + ) + arg2 + ) ) ) - ) - ) + ((or (not *overide-mood-fog-table*) (zero? *overide-mood-fog-table*)) + 0.0 + ) + (else + (-> *overide-mood-fog-table* + data + (the-as uint (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2))) + fog-color + y + ) + ) + ) + ) 2 (new 'static 'bfloat :data 1.0) #t @@ -4985,33 +4985,33 @@ (float-var "Blue" #f - (lambda ((arg0 object) (arg1 debug-menu-msg) (arg2 float)) - (cond - ((= arg1 (debug-menu-msg press)) - (if (and *overide-mood-fog-table* (nonzero? *overide-mood-fog-table*)) - (set! (-> *overide-mood-fog-table* - data - (the-as uint (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2))) - fog-color - z - ) - arg2 - ) - ) - ) - ((or (not *overide-mood-fog-table*) (zero? *overide-mood-fog-table*)) - 0.0 - ) - (else - (-> *overide-mood-fog-table* - data - (the-as uint (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2))) - fog-color - z + ,(lambda ((arg0 object) (arg1 debug-menu-msg) (arg2 float)) + (cond + ((= arg1 (debug-menu-msg press)) + (if (and *overide-mood-fog-table* (nonzero? *overide-mood-fog-table*)) + (set! (-> *overide-mood-fog-table* + data + (the-as uint (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2))) + fog-color + z + ) + arg2 + ) ) ) - ) - ) + ((or (not *overide-mood-fog-table*) (zero? *overide-mood-fog-table*)) + 0.0 + ) + (else + (-> *overide-mood-fog-table* + data + (the-as uint (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2))) + fog-color + z + ) + ) + ) + ) 2 (new 'static 'bfloat :data 1.0) #t @@ -5022,33 +5022,33 @@ (float-var "Mult" #f - (lambda ((arg0 object) (arg1 debug-menu-msg) (arg2 float)) - (cond - ((= arg1 (debug-menu-msg press)) - (if (and *overide-mood-fog-table* (nonzero? *overide-mood-fog-table*)) - (set! (-> *overide-mood-fog-table* - data - (the-as uint (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2))) - fog-color - w - ) - arg2 - ) - ) - ) - ((or (not *overide-mood-fog-table*) (zero? *overide-mood-fog-table*)) - 0.0 - ) - (else - (-> *overide-mood-fog-table* - data - (the-as uint (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2))) - fog-color - w + ,(lambda ((arg0 object) (arg1 debug-menu-msg) (arg2 float)) + (cond + ((= arg1 (debug-menu-msg press)) + (if (and *overide-mood-fog-table* (nonzero? *overide-mood-fog-table*)) + (set! (-> *overide-mood-fog-table* + data + (the-as uint (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2))) + fog-color + w + ) + arg2 + ) ) ) - ) - ) + ((or (not *overide-mood-fog-table*) (zero? *overide-mood-fog-table*)) + 0.0 + ) + (else + (-> *overide-mood-fog-table* + data + (the-as uint (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2))) + fog-color + w + ) + ) + ) + ) 2 (new 'static 'bfloat :data 0.00390625) #t @@ -5059,33 +5059,33 @@ (float-var "Start" #f - (lambda ((arg0 object) (arg1 debug-menu-msg) (arg2 float)) - (cond - ((= arg1 (debug-menu-msg press)) - (if (and *overide-mood-fog-table* (nonzero? *overide-mood-fog-table*)) - (set! (-> *overide-mood-fog-table* - data - (the-as uint (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2))) - fog-dists - x - ) - arg2 - ) - ) - ) - ((or (not *overide-mood-fog-table*) (zero? *overide-mood-fog-table*)) - 0.0 - ) - (else - (-> *overide-mood-fog-table* - data - (the-as uint (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2))) - fog-dists - x + ,(lambda ((arg0 object) (arg1 debug-menu-msg) (arg2 float)) + (cond + ((= arg1 (debug-menu-msg press)) + (if (and *overide-mood-fog-table* (nonzero? *overide-mood-fog-table*)) + (set! (-> *overide-mood-fog-table* + data + (the-as uint (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2))) + fog-dists + x + ) + arg2 + ) ) ) - ) - ) + ((or (not *overide-mood-fog-table*) (zero? *overide-mood-fog-table*)) + 0.0 + ) + (else + (-> *overide-mood-fog-table* + data + (the-as uint (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2))) + fog-dists + x + ) + ) + ) + ) 2 (new 'static 'bfloat :data 1.0) #t @@ -5096,33 +5096,33 @@ (float-var "End" #f - (lambda ((arg0 object) (arg1 debug-menu-msg) (arg2 float)) - (cond - ((= arg1 (debug-menu-msg press)) - (if (and *overide-mood-fog-table* (nonzero? *overide-mood-fog-table*)) - (set! (-> *overide-mood-fog-table* - data - (the-as uint (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2))) - fog-dists - y - ) - arg2 - ) - ) - ) - ((or (not *overide-mood-fog-table*) (zero? *overide-mood-fog-table*)) - 0.0 - ) - (else - (-> *overide-mood-fog-table* - data - (the-as uint (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2))) - fog-dists - y + ,(lambda ((arg0 object) (arg1 debug-menu-msg) (arg2 float)) + (cond + ((= arg1 (debug-menu-msg press)) + (if (and *overide-mood-fog-table* (nonzero? *overide-mood-fog-table*)) + (set! (-> *overide-mood-fog-table* + data + (the-as uint (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2))) + fog-dists + y + ) + arg2 + ) ) ) - ) - ) + ((or (not *overide-mood-fog-table*) (zero? *overide-mood-fog-table*)) + 0.0 + ) + (else + (-> *overide-mood-fog-table* + data + (the-as uint (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2))) + fog-dists + y + ) + ) + ) + ) 2 (new 'static 'bfloat :data 1.0) #t @@ -5133,33 +5133,33 @@ (float-var "Max" #f - (lambda ((arg0 object) (arg1 debug-menu-msg) (arg2 float)) - (cond - ((= arg1 (debug-menu-msg press)) - (if (and *overide-mood-fog-table* (nonzero? *overide-mood-fog-table*)) - (set! (-> *overide-mood-fog-table* - data - (the-as uint (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2))) - fog-dists - w - ) - arg2 - ) - ) - ) - ((or (not *overide-mood-fog-table*) (zero? *overide-mood-fog-table*)) - 0.0 - ) - (else - (-> *overide-mood-fog-table* - data - (the-as uint (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2))) - fog-dists - w + ,(lambda ((arg0 object) (arg1 debug-menu-msg) (arg2 float)) + (cond + ((= arg1 (debug-menu-msg press)) + (if (and *overide-mood-fog-table* (nonzero? *overide-mood-fog-table*)) + (set! (-> *overide-mood-fog-table* + data + (the-as uint (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2))) + fog-dists + w + ) + arg2 + ) ) ) - ) - ) + ((or (not *overide-mood-fog-table*) (zero? *overide-mood-fog-table*)) + 0.0 + ) + (else + (-> *overide-mood-fog-table* + data + (the-as uint (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2))) + fog-dists + w + ) + ) + ) + ) 2 (new 'static 'bfloat :data 0.5) #t @@ -5170,33 +5170,33 @@ (float-var "Min" #f - (lambda ((arg0 object) (arg1 debug-menu-msg) (arg2 float)) - (cond - ((= arg1 (debug-menu-msg press)) - (if (and *overide-mood-fog-table* (nonzero? *overide-mood-fog-table*)) - (set! (-> *overide-mood-fog-table* - data - (the-as uint (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2))) - fog-dists - z - ) - arg2 - ) - ) - ) - ((or (not *overide-mood-fog-table*) (zero? *overide-mood-fog-table*)) - 0.0 - ) - (else - (-> *overide-mood-fog-table* - data - (the-as uint (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2))) - fog-dists - z + ,(lambda ((arg0 object) (arg1 debug-menu-msg) (arg2 float)) + (cond + ((= arg1 (debug-menu-msg press)) + (if (and *overide-mood-fog-table* (nonzero? *overide-mood-fog-table*)) + (set! (-> *overide-mood-fog-table* + data + (the-as uint (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2))) + fog-dists + z + ) + arg2 + ) ) ) - ) - ) + ((or (not *overide-mood-fog-table*) (zero? *overide-mood-fog-table*)) + 0.0 + ) + (else + (-> *overide-mood-fog-table* + data + (the-as uint (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2))) + fog-dists + z + ) + ) + ) + ) 2 (new 'static 'bfloat :data 0.5) #t @@ -5207,81 +5207,81 @@ (function "reset selected time" #f - (lambda ((arg0 object) (arg1 debug-menu-msg) (arg2 float)) - (mem-copy! - (the-as - pointer - (-> *overide-mood-fog-table* - data - (the-as uint (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2))) - ) - ) - (the-as - pointer - (-> *mood-control* - mood-fog-table - data - (the-as uint (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2))) - ) - ) - 48 - ) - (set! (-> *overide-mood-fog-table* - data - (the-as uint (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2))) - fog-color - w - ) - 1.0 - ) - (set! (-> *overide-mood-fog-table* - data - (the-as uint (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2))) - fog-dists - x - ) - (* 0.00024414062 - (-> *overide-mood-fog-table* - data - (the-as uint (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2))) - fog-dists - x - ) + ,(lambda ((arg0 object) (arg1 debug-menu-msg) (arg2 float)) + (mem-copy! + (the-as + pointer + (-> *overide-mood-fog-table* + data + (the-as uint (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2))) ) - ) - (set! (-> *overide-mood-fog-table* - data - (the-as uint (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2))) - fog-dists - y - ) - (* 0.00024414062 - (-> *overide-mood-fog-table* - data - (the-as uint (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2))) - fog-dists - y - ) + ) + (the-as + pointer + (-> *mood-control* + mood-fog-table + data + (the-as uint (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2))) ) - ) - ) + ) + 48 + ) + (set! (-> *overide-mood-fog-table* + data + (the-as uint (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2))) + fog-color + w + ) + 1.0 + ) + (set! (-> *overide-mood-fog-table* + data + (the-as uint (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2))) + fog-dists + x + ) + (* 0.00024414062 + (-> *overide-mood-fog-table* + data + (the-as uint (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2))) + fog-dists + x + ) + ) + ) + (set! (-> *overide-mood-fog-table* + data + (the-as uint (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2))) + fog-dists + y + ) + (* 0.00024414062 + (-> *overide-mood-fog-table* + data + (the-as uint (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2))) + fog-dists + y + ) + ) + ) + ) ) (function "reset all times" #f - (lambda () - (mem-copy! (the-as pointer *overide-mood-fog-table*) (the-as pointer (-> *mood-control* mood-fog-table)) 384) - (dotimes (v1-1 8) - (set! (-> *overide-mood-fog-table* data v1-1 fog-color w) 1.0) - (set! (-> *overide-mood-fog-table* data v1-1 fog-dists x) - (* 0.00024414062 (-> *overide-mood-fog-table* data v1-1 fog-dists x)) - ) - (set! (-> *overide-mood-fog-table* data v1-1 fog-dists y) - (* 0.00024414062 (-> *overide-mood-fog-table* data v1-1 fog-dists y)) - ) - ) - #f - ) + ,(lambda () + (mem-copy! (the-as pointer *overide-mood-fog-table*) (the-as pointer (-> *mood-control* mood-fog-table)) 384) + (dotimes (v1-1 8) + (set! (-> *overide-mood-fog-table* data v1-1 fog-color w) 1.0) + (set! (-> *overide-mood-fog-table* data v1-1 fog-dists x) + (* 0.00024414062 (-> *overide-mood-fog-table* data v1-1 fog-dists x)) + ) + (set! (-> *overide-mood-fog-table* data v1-1 fog-dists y) + (* 0.00024414062 (-> *overide-mood-fog-table* data v1-1 fog-dists y)) + ) + ) + #f + ) ) ) (menu @@ -5298,21 +5298,21 @@ (float-var "Red" #f - (lambda ((arg0 object) (arg1 debug-menu-msg) (arg2 float)) - (cond - ((= arg1 (debug-menu-msg press)) - (if (and *time-of-day-context* (nonzero? *time-of-day-context*)) - (set! (-> *time-of-day-context* times (-> *time-of-day-context* overide-palette) x) arg2) - ) - ) - ((or (not *time-of-day-context*) (zero? *time-of-day-context*)) - 0.0 - ) - (else - (-> *time-of-day-context* times (-> *time-of-day-context* overide-palette) x) + ,(lambda ((arg0 object) (arg1 debug-menu-msg) (arg2 float)) + (cond + ((= arg1 (debug-menu-msg press)) + (if (and *time-of-day-context* (nonzero? *time-of-day-context*)) + (set! (-> *time-of-day-context* times (-> *time-of-day-context* overide-palette) x) arg2) + ) ) - ) - ) + ((or (not *time-of-day-context*) (zero? *time-of-day-context*)) + 0.0 + ) + (else + (-> *time-of-day-context* times (-> *time-of-day-context* overide-palette) x) + ) + ) + ) 2 (new 'static 'bfloat :data 0.00390625) #t @@ -5323,21 +5323,21 @@ (float-var "Green" #f - (lambda ((arg0 object) (arg1 debug-menu-msg) (arg2 float)) - (cond - ((= arg1 (debug-menu-msg press)) - (if (and *time-of-day-context* (nonzero? *time-of-day-context*)) - (set! (-> *time-of-day-context* times (-> *time-of-day-context* overide-palette) y) arg2) - ) - ) - ((or (not *time-of-day-context*) (zero? *time-of-day-context*)) - 0.0 - ) - (else - (-> *time-of-day-context* times (-> *time-of-day-context* overide-palette) y) + ,(lambda ((arg0 object) (arg1 debug-menu-msg) (arg2 float)) + (cond + ((= arg1 (debug-menu-msg press)) + (if (and *time-of-day-context* (nonzero? *time-of-day-context*)) + (set! (-> *time-of-day-context* times (-> *time-of-day-context* overide-palette) y) arg2) + ) ) - ) - ) + ((or (not *time-of-day-context*) (zero? *time-of-day-context*)) + 0.0 + ) + (else + (-> *time-of-day-context* times (-> *time-of-day-context* overide-palette) y) + ) + ) + ) 2 (new 'static 'bfloat :data 0.00390625) #t @@ -5348,21 +5348,21 @@ (float-var "Blue" #f - (lambda ((arg0 object) (arg1 debug-menu-msg) (arg2 float)) - (cond - ((= arg1 (debug-menu-msg press)) - (if (and *time-of-day-context* (nonzero? *time-of-day-context*)) - (set! (-> *time-of-day-context* times (-> *time-of-day-context* overide-palette) z) arg2) - ) - ) - ((or (not *time-of-day-context*) (zero? *time-of-day-context*)) - 0.0 - ) - (else - (-> *time-of-day-context* times (-> *time-of-day-context* overide-palette) z) + ,(lambda ((arg0 object) (arg1 debug-menu-msg) (arg2 float)) + (cond + ((= arg1 (debug-menu-msg press)) + (if (and *time-of-day-context* (nonzero? *time-of-day-context*)) + (set! (-> *time-of-day-context* times (-> *time-of-day-context* overide-palette) z) arg2) + ) ) - ) - ) + ((or (not *time-of-day-context*) (zero? *time-of-day-context*)) + 0.0 + ) + (else + (-> *time-of-day-context* times (-> *time-of-day-context* overide-palette) z) + ) + ) + ) 2 (new 'static 'bfloat :data 0.00390625) #t @@ -5373,21 +5373,21 @@ (float-var "Mult" #f - (lambda ((arg0 object) (arg1 debug-menu-msg) (arg2 float)) - (cond - ((= arg1 (debug-menu-msg press)) - (if (and *time-of-day-context* (nonzero? *time-of-day-context*)) - (set! (-> *time-of-day-context* times (-> *time-of-day-context* overide-palette) w) arg2) - ) - ) - ((or (not *time-of-day-context*) (zero? *time-of-day-context*)) - 0.0 - ) - (else - (-> *time-of-day-context* times (-> *time-of-day-context* overide-palette) w) + ,(lambda ((arg0 object) (arg1 debug-menu-msg) (arg2 float)) + (cond + ((= arg1 (debug-menu-msg press)) + (if (and *time-of-day-context* (nonzero? *time-of-day-context*)) + (set! (-> *time-of-day-context* times (-> *time-of-day-context* overide-palette) w) arg2) + ) ) - ) - ) + ((or (not *time-of-day-context*) (zero? *time-of-day-context*)) + 0.0 + ) + (else + (-> *time-of-day-context* times (-> *time-of-day-context* overide-palette) w) + ) + ) + ) 2 (new 'static 'bfloat :data 0.00390625) #t @@ -5398,21 +5398,21 @@ (function "reset selected time" #f - (lambda () (let ((v0-0 (-> *time-of-day-context* times (-> *time-of-day-context* overide-palette)))) - (set! (-> v0-0 x) 1.0) - (set! (-> v0-0 y) 1.0) - (set! (-> v0-0 z) 1.0) - (set! (-> v0-0 w) 1.0) - v0-0 - ) - ) + ,(lambda () (let ((v0-0 (-> *time-of-day-context* times (-> *time-of-day-context* overide-palette)))) + (set! (-> v0-0 x) 1.0) + (set! (-> v0-0 y) 1.0) + (set! (-> v0-0 z) 1.0) + (set! (-> v0-0 w) 1.0) + v0-0 + ) + ) ) - (function "reset all times" #f (lambda () - (dotimes (v1-0 8) - (set-vector! (-> *time-of-day-context* times v1-0) 1.0 1.0 1.0 1.0) - ) - #f - ) + (function "reset all times" #f ,(lambda () + (dotimes (v1-0 8) + (set-vector! (-> *time-of-day-context* times v1-0) 1.0 1.0 1.0 1.0) + ) + #f + ) ) ) (menu @@ -5420,21 +5420,21 @@ (float-var "Red" #f - (lambda ((arg0 object) (arg1 debug-menu-msg) (arg2 float)) - (cond - ((= arg1 (debug-menu-msg press)) - (if (and *time-of-day-context* (nonzero? *time-of-day-context*)) - (set! (-> *time-of-day-context* filter-color x) arg2) - ) - ) - ((or (not *time-of-day-context*) (zero? *time-of-day-context*)) - 0.0 - ) - (else - (-> *time-of-day-context* filter-color x) + ,(lambda ((arg0 object) (arg1 debug-menu-msg) (arg2 float)) + (cond + ((= arg1 (debug-menu-msg press)) + (if (and *time-of-day-context* (nonzero? *time-of-day-context*)) + (set! (-> *time-of-day-context* filter-color x) arg2) + ) ) - ) - ) + ((or (not *time-of-day-context*) (zero? *time-of-day-context*)) + 0.0 + ) + (else + (-> *time-of-day-context* filter-color x) + ) + ) + ) 2 (new 'static 'bfloat :data 0.00390625) #t @@ -5445,21 +5445,21 @@ (float-var "Green" #f - (lambda ((arg0 object) (arg1 debug-menu-msg) (arg2 float)) - (cond - ((= arg1 (debug-menu-msg press)) - (if (and *time-of-day-context* (nonzero? *time-of-day-context*)) - (set! (-> *time-of-day-context* filter-color y) arg2) - ) - ) - ((or (not *time-of-day-context*) (zero? *time-of-day-context*)) - 0.0 - ) - (else - (-> *time-of-day-context* filter-color y) + ,(lambda ((arg0 object) (arg1 debug-menu-msg) (arg2 float)) + (cond + ((= arg1 (debug-menu-msg press)) + (if (and *time-of-day-context* (nonzero? *time-of-day-context*)) + (set! (-> *time-of-day-context* filter-color y) arg2) + ) ) - ) - ) + ((or (not *time-of-day-context*) (zero? *time-of-day-context*)) + 0.0 + ) + (else + (-> *time-of-day-context* filter-color y) + ) + ) + ) 2 (new 'static 'bfloat :data 0.00390625) #t @@ -5470,21 +5470,21 @@ (float-var "Blue" #f - (lambda ((arg0 object) (arg1 debug-menu-msg) (arg2 float)) - (cond - ((= arg1 (debug-menu-msg press)) - (if (and *time-of-day-context* (nonzero? *time-of-day-context*)) - (set! (-> *time-of-day-context* filter-color z) arg2) - ) - ) - ((or (not *time-of-day-context*) (zero? *time-of-day-context*)) - 0.0 - ) - (else - (-> *time-of-day-context* filter-color z) + ,(lambda ((arg0 object) (arg1 debug-menu-msg) (arg2 float)) + (cond + ((= arg1 (debug-menu-msg press)) + (if (and *time-of-day-context* (nonzero? *time-of-day-context*)) + (set! (-> *time-of-day-context* filter-color z) arg2) + ) ) - ) - ) + ((or (not *time-of-day-context*) (zero? *time-of-day-context*)) + 0.0 + ) + (else + (-> *time-of-day-context* filter-color z) + ) + ) + ) 2 (new 'static 'bfloat :data 0.00390625) #t @@ -5495,21 +5495,21 @@ (float-var "Mult" #f - (lambda ((arg0 object) (arg1 debug-menu-msg) (arg2 float)) - (cond - ((= arg1 (debug-menu-msg press)) - (if (and *time-of-day-context* (nonzero? *time-of-day-context*)) - (set! (-> *time-of-day-context* filter-color w) arg2) - ) - ) - ((or (not *time-of-day-context*) (zero? *time-of-day-context*)) - 0.0 - ) - (else - (-> *time-of-day-context* filter-color w) + ,(lambda ((arg0 object) (arg1 debug-menu-msg) (arg2 float)) + (cond + ((= arg1 (debug-menu-msg press)) + (if (and *time-of-day-context* (nonzero? *time-of-day-context*)) + (set! (-> *time-of-day-context* filter-color w) arg2) + ) ) - ) - ) + ((or (not *time-of-day-context*) (zero? *time-of-day-context*)) + 0.0 + ) + (else + (-> *time-of-day-context* filter-color w) + ) + ) + ) 2 (new 'static 'bfloat :data 0.00390625) #t @@ -5517,14 +5517,14 @@ 2 0 ) - (function "reset filter" #f (lambda () (let ((v0-0 (-> *time-of-day-context* filter-color))) - (set! (-> v0-0 x) 1.0) - (set! (-> v0-0 y) 1.0) - (set! (-> v0-0 z) 1.0) - (set! (-> v0-0 w) 1.0) - (the-as symbol v0-0) - ) - ) + (function "reset filter" #f ,(lambda () (let ((v0-0 (-> *time-of-day-context* filter-color))) + (set! (-> v0-0 x) 1.0) + (set! (-> v0-0 y) 1.0) + (set! (-> v0-0 z) 1.0) + (set! (-> v0-0 w) 1.0) + (the-as symbol v0-0) + ) + ) ) ) (menu @@ -5532,21 +5532,21 @@ (float-var "Cloud Min" #f - (lambda ((arg0 object) (arg1 debug-menu-msg) (arg2 float)) - (cond - ((= arg1 (debug-menu-msg press)) - (if (and *time-of-day-context* (nonzero? *time-of-day-context*)) - (set! (-> *time-of-day-context* current-clouds cloud-min) arg2) - ) - ) - ((or (not *time-of-day-context*) (zero? *time-of-day-context*)) - 0.0 - ) - (else - (-> *time-of-day-context* current-clouds cloud-min) + ,(lambda ((arg0 object) (arg1 debug-menu-msg) (arg2 float)) + (cond + ((= arg1 (debug-menu-msg press)) + (if (and *time-of-day-context* (nonzero? *time-of-day-context*)) + (set! (-> *time-of-day-context* current-clouds cloud-min) arg2) + ) ) - ) - ) + ((or (not *time-of-day-context*) (zero? *time-of-day-context*)) + 0.0 + ) + (else + (-> *time-of-day-context* current-clouds cloud-min) + ) + ) + ) 1 (new 'static 'bfloat :data 0.00390625) #t @@ -5557,21 +5557,21 @@ (float-var "Cloud Max" #f - (lambda ((arg0 object) (arg1 debug-menu-msg) (arg2 float)) - (cond - ((= arg1 (debug-menu-msg press)) - (if (and *time-of-day-context* (nonzero? *time-of-day-context*)) - (set! (-> *time-of-day-context* current-clouds cloud-max) arg2) - ) - ) - ((or (not *time-of-day-context*) (zero? *time-of-day-context*)) - 0.0 - ) - (else - (-> *time-of-day-context* current-clouds cloud-max) + ,(lambda ((arg0 object) (arg1 debug-menu-msg) (arg2 float)) + (cond + ((= arg1 (debug-menu-msg press)) + (if (and *time-of-day-context* (nonzero? *time-of-day-context*)) + (set! (-> *time-of-day-context* current-clouds cloud-max) arg2) + ) ) - ) - ) + ((or (not *time-of-day-context*) (zero? *time-of-day-context*)) + 0.0 + ) + (else + (-> *time-of-day-context* current-clouds cloud-max) + ) + ) + ) 1 (new 'static 'bfloat :data 0.00390625) #t @@ -5582,39 +5582,39 @@ (function "reset sky" #f - (lambda () - (set! (-> *time-of-day-context* current-clouds cloud-min) (-> *mood-control* mood-clouds cloud-min)) - (set! (-> *time-of-day-context* current-clouds cloud-max) (-> *mood-control* mood-clouds cloud-max)) - ) + ,(lambda () + (set! (-> *time-of-day-context* current-clouds cloud-min) (-> *mood-control* mood-clouds cloud-min)) + (set! (-> *time-of-day-context* current-clouds cloud-max) (-> *mood-control* mood-clouds cloud-max)) + ) ) ) - (function "Print mood tables" #f (lambda () (print-mood-tables) (none))) + (function "Print mood tables" #f ,(lambda () (print-mood-tables) (none))) (function "reset everything" #f - (lambda () - (mem-copy! - (the-as pointer *overide-mood-color-table*) - (the-as pointer (-> *mood-control* mood-color-table)) - 256 - ) - (mem-copy! (the-as pointer *overide-mood-fog-table*) (the-as pointer (-> *mood-control* mood-fog-table)) 384) - (dotimes (v1-2 8) - (set! (-> *overide-mood-color-table* data v1-2 lgt-color w) 1.0) - (set! (-> *overide-mood-color-table* data v1-2 amb-color w) 1.0) - (set! (-> *overide-mood-fog-table* data v1-2 fog-color w) 1.0) - (set! (-> *overide-mood-fog-table* data v1-2 fog-dists x) - (* 0.00024414062 (-> *overide-mood-fog-table* data v1-2 fog-dists x)) - ) - (set! (-> *overide-mood-fog-table* data v1-2 fog-dists y) - (* 0.00024414062 (-> *overide-mood-fog-table* data v1-2 fog-dists y)) - ) - (set-vector! (-> *time-of-day-context* times v1-2) 1.0 1.0 1.0 1.0) - ) - (set-vector! (-> *time-of-day-context* filter-color) 1.0 1.0 1.0 1.0) - (set! (-> *time-of-day-context* current-clouds cloud-min) (-> *mood-control* mood-clouds cloud-min)) - (set! (-> *time-of-day-context* current-clouds cloud-max) (-> *mood-control* mood-clouds cloud-max)) - ) + ,(lambda () + (mem-copy! + (the-as pointer *overide-mood-color-table*) + (the-as pointer (-> *mood-control* mood-color-table)) + 256 + ) + (mem-copy! (the-as pointer *overide-mood-fog-table*) (the-as pointer (-> *mood-control* mood-fog-table)) 384) + (dotimes (v1-2 8) + (set! (-> *overide-mood-color-table* data v1-2 lgt-color w) 1.0) + (set! (-> *overide-mood-color-table* data v1-2 amb-color w) 1.0) + (set! (-> *overide-mood-fog-table* data v1-2 fog-color w) 1.0) + (set! (-> *overide-mood-fog-table* data v1-2 fog-dists x) + (* 0.00024414062 (-> *overide-mood-fog-table* data v1-2 fog-dists x)) + ) + (set! (-> *overide-mood-fog-table* data v1-2 fog-dists y) + (* 0.00024414062 (-> *overide-mood-fog-table* data v1-2 fog-dists y)) + ) + (set-vector! (-> *time-of-day-context* times v1-2) 1.0 1.0 1.0 1.0) + ) + (set-vector! (-> *time-of-day-context* filter-color) 1.0 1.0 1.0 1.0) + (set! (-> *time-of-day-context* current-clouds cloud-min) (-> *mood-control* mood-clouds cloud-min)) + (set! (-> *time-of-day-context* current-clouds cloud-max) (-> *mood-control* mood-clouds cloud-max)) + ) ) ) ) @@ -5630,8 +5630,8 @@ (flag "Region Marks" *display-region-marks* dm-boolean-toggle-pick-func) (flag "Sound channels" *display-iop-info* dm-boolean-toggle-pick-func) (function "Reload Banks" #f sound-bank-reload) - (function "List Sounds" #f (lambda () (list-sounds) (none))) - (function "IOP Info" #f (lambda () (loader-test-command (sound-command iop-mem) (the-as uint 0)) (none))) + (function "List Sounds" #f ,(lambda () (list-sounds) (none))) + (function "IOP Info" #f ,(lambda () (loader-test-command (sound-command iop-mem) (the-as uint 0)) (none))) ) ) ) @@ -6006,7 +6006,7 @@ ) ) (debug-menu-append-item s5-0 (debug-menu-make-task-menu arg0)) - (debug-menu-append-item s5-0 (the-as debug-menu-node (debug-menu-make-play-menu (the-as symbol arg0)))) + (debug-menu-append-item s5-0 (debug-menu-make-play-menu arg0)) ) arg0 ) @@ -6021,113 +6021,113 @@ '(main-menu "Popup" (flag "Cam 1" pad-1 dm-cam-externalize) - (flag "Target" #f (lambda ((arg0 object) (arg1 debug-menu-msg)) - (when (= arg1 (debug-menu-msg press)) - (if *target* - (stop 'debug) - (start 'debug (get-current-continue-point *game-info*)) - ) - ) - *target* - ) + (flag "Target" #f ,(lambda ((arg0 object) (arg1 debug-menu-msg)) + (when (= arg1 (debug-menu-msg press)) + (if *target* + (stop 'debug) + (start 'debug (get-current-continue-forced *game-info*)) + ) + ) + *target* + ) ) (menu "Mode" - (function "normal" #f (lambda () (send-event *target* 'end-mode))) - (function "racer" #f (lambda () + (function "normal" #f ,(lambda () (send-event *target* 'end-mode))) + (function "racer" #f ,(lambda () + (if (not *target*) + (start 'debug (get-current-continue-forced *game-info*)) + ) + (send-event *target* 'change-mode 'racer #f) + ) + ) + (function "flut" #f ,(lambda () (if (not *target*) - (start 'debug (get-current-continue-point *game-info*)) + (start 'debug (get-current-continue-forced *game-info*)) ) - (send-event *target* 'change-mode 'racer #f) + (send-event *target* 'change-mode 'flut #f) ) ) - (function "flut" #f (lambda () + (function "board" #f ,(lambda () + (if (not *target*) + (start 'debug (get-current-continue-forced *game-info*)) + ) + (logior! (-> *game-info* features) (game-feature board)) + (logior! (-> *game-info* debug-features) (game-feature board)) + (send-event *target* 'change-mode 'board #f) + ) + ) + (function "mech" #f ,(lambda () + (if (not *target*) + (start 'debug (get-current-continue-forced *game-info*)) + ) + (send-event *target* 'change-mode 'mech #f) + ) + ) + (function "gun" #f ,(lambda () (if (not *target*) - (start 'debug (get-current-continue-point *game-info*)) + (start 'debug (get-current-continue-forced *game-info*)) ) - (send-event *target* 'change-mode 'flut #f) + (logior! (-> *game-info* features) (game-feature unk-game-feature-06)) + (logior! (-> *game-info* debug-features) (game-feature unk-game-feature-06)) + (send-event *target* 'change-mode 'gun #f 0) ) ) - (function "board" #f (lambda () - (if (not *target*) - (start 'debug (get-current-continue-point *game-info*)) - ) - (logior! (-> *game-info* features) (game-feature board)) - (logior! (-> *game-info* debug-features) (game-feature board)) - (send-event *target* 'change-mode 'board #f) - ) - ) - (function "mech" #f (lambda () - (if (not *target*) - (start 'debug (get-current-continue-point *game-info*)) + (function "darkjak" #f ,(lambda () + (if (not *target*) + (start 'debug (get-current-continue-forced *game-info*)) + ) + (logior! (-> *game-info* features) (game-feature darkjak)) + (logior! (-> *game-info* debug-features) (game-feature darkjak)) + (send-event *target* 'change-mode 'darkjak #f 3) ) - (send-event *target* 'change-mode 'mech #f) - ) ) - (function "gun" #f (lambda () - (if (not *target*) - (start 'debug (get-current-continue-point *game-info*)) - ) - (logior! (-> *game-info* features) (game-feature unk-game-feature-06)) - (logior! (-> *game-info* debug-features) (game-feature unk-game-feature-06)) - (send-event *target* 'change-mode 'gun #f 0) - ) - ) - (function "darkjak" #f (lambda () - (if (not *target*) - (start 'debug (get-current-continue-point *game-info*)) - ) - (logior! (-> *game-info* features) (game-feature darkjak)) - (logior! (-> *game-info* debug-features) (game-feature darkjak)) - (send-event *target* 'change-mode 'darkjak #f 3) - ) - ) - (function "indax" #f (lambda () - (if (not *target*) - (start 'debug (get-current-continue-point *game-info*)) - ) - (send-event *target* 'change-mode 'indax #f) - ) + (function "indax" #f ,(lambda () + (if (not *target*) + (start 'debug (get-current-continue-forced *game-info*)) + ) + (send-event *target* 'change-mode 'indax #f) + ) ) ) - (flag "Game" #f (lambda ((arg0 object) (arg1 debug-menu-msg)) - (when (= arg1 (debug-menu-msg press)) - (let ((v1-3 (-> *game-info* mode))) - (set! (-> *game-info* mode) (cond - ((= v1-3 'play) - 'debug - ) - ((= v1-3 'debug) - 'play - ) - (else - (-> *game-info* mode) + (flag "Game" #f ,(lambda ((arg0 object) (arg1 debug-menu-msg)) + (when (= arg1 (debug-menu-msg press)) + (let ((v1-3 (-> *game-info* mode))) + (set! (-> *game-info* mode) (cond + ((= v1-3 'play) + 'debug ) - ) - ) - ) - ) - (= (-> *game-info* mode) 'play) - ) - ) - (function "Clean" #f (lambda () - (if (time-of-day-setup #f) - (time-of-day-setup #t) - ) - (play-clean #f) - (none) + ((= v1-3 'debug) + 'play + ) + (else + (-> *game-info* mode) + ) + ) + ) ) - ) - (flag "Stats" *stats-target* dm-boolean-toggle-pick-func) - (function "Reset" #f (lambda () (reset-actors 'debug) (none))) - (function "Start" #f (lambda () (start 'play (-> *game-info* current-continue)) (none))) - (function "Editor" #f (lambda () - (kill-by-type editable-player *active-pool*) - (process-spawn editable-player :init editable-player-init #f :to *entity-pool*) - (set-master-mode 'game) + ) + (= (-> *game-info* mode) 'play) + ) + ) + (function "Clean" #f ,(lambda () + (if (time-of-day-setup #f) + (time-of-day-setup #t) + ) + (play-clean #f) (none) ) ) + (flag "Stats" *stats-target* dm-boolean-toggle-pick-func) + (function "Reset" #f ,(lambda () (reset-actors 'debug) (none))) + (function "Start" #f ,(lambda () (start 'play (-> *game-info* current-continue)) (none))) + (function "Editor" #f ,(lambda () + (kill-by-type editable-player *active-pool*) + (process-spawn editable-player :init editable-player-init #f :to *entity-pool*) + (set-master-mode 'game) + (none) + ) + ) ) ) arg0 diff --git a/test/decompiler/reference/jak2/engine/debug/editable-player_REF.gc b/test/decompiler/reference/jak2/engine/debug/editable-player_REF.gc index efe3e0395f..22c47677ef 100644 --- a/test/decompiler/reference/jak2/engine/debug/editable-player_REF.gc +++ b/test/decompiler/reference/jak2/engine/debug/editable-player_REF.gc @@ -1686,7 +1686,7 @@ (when s4-0 (let ((gp-1 (-> arg3 param 0))) (set! (-> *syntax-context* got-error?) #f) - (eval! *syntax-context* gp-1) + (eval! *syntax-context* (the-as pair gp-1)) (when (not (-> *syntax-context* got-error?)) (set! (-> s4-0 changed) #t) (cond @@ -2285,192 +2285,67 @@ ) ;; definition for function dm-editable-light-float-func -;; ERROR: failed type prop at 36: add failed: editable uint - -;; WARN: Return type mismatch symbol vs object. -(defun dm-editable-light-float-func ((a0-0 object) (a1-0 debug-menu-msg) (a2-0 float) (a3-0 symbol)) - (local-vars - (v0-0 symbol) - (v0-1 symbol) - (v0-2 none) - (v0-3 none) - (v1-0 (pointer editable-player)) - (v1-1 int) - (v1-2 (pointer editable-player)) - (v1-3 editable-player) - (v1-4 editable-array) - (v1-5 int) - (v1-6 int) - (v1-7 symbol) - (v1-8 symbol) - (v1-11 uint) - (v1-12 none) - (v1-13 none) - (v1-14 none) - (v1-15 none) - (v1-17 none) - (v1-18 none) - (v1-19 none) - (v1-21 none) - (v1-22 none) - (v1-23 none) - (v1-24 none) - (v1-25 none) - (v1-26 none) - (v1-27 none) - (v1-29 none) - (v1-30 none) - (v1-31 none) - (v1-32 none) - (v1-33 none) - (a0-1 (pointer editable-player)) - (a0-2 editable-player) - (a0-3 editable-array) - (a0-4 editable-flag) - (a0-5 editable-flag) - (a0-6 editable) - (a0-7 editable) - (a0-8 none) - (a0-9 none) - (a0-10 none) - (a0-11 none) - (a0-12 none) - (a0-13 none) - (a0-14 none) - (a0-15 none) - (a0-18 none) - (a0-20 none) - (a0-21 none) - (a0-22 none) - (a1-1 type) - (a1-3 none) - (a1-4 none) - (s2-0 editable) - (s3-0 int) - (s3-1 none) - (s4-0 int) - (s4-1 none) - (s5-1 none) - (t9-0 (function object type symbol)) - (t9-1 none) - (t9-2 none) - (f0-0 float) - (f30-0 none) - ) +(defun dm-editable-light-float-func ((arg0 int) (arg1 debug-menu-msg) (arg2 float) (arg3 float)) (cond - ((begin (set! v1-0 *editable*) (not v1-0)) - (set! v0-0 a3-0) + ((not *editable*) + arg3 ) - ((begin (set! v1-1 4) (= a1-0 v1-1)) - (set! v1-2 *editable*) - (set! v1-3 (-> v1-2 0)) - (set! v1-4 (-> v1-3 current)) - (set! s4-0 (-> v1-4 length)) - (set! s3-0 0) - (set! v1-5 (sll s3-0 2)) - (set! a0-1 *editable*) - (set! a0-2 (-> a0-1 0)) - (set! a0-3 (-> a0-2 current)) - (set! v1-6 (+ v1-5 a0-3)) - (set! s2-0 (dynamic-array-field-access v1-6 data PLACEHOLDER)) - (while (<.si s3-0 s4-0) - (when (begin - (and s2-0 - (begin (set! v1-8 #t) (set! a0-4 (-> s2-0 flags)) (set! a0-5 (logand a0-4 1)) (cmove-#f-zero v1-7 a0-5 v1-8)) - ) - v1-7 - ) - (when (begin - (if (begin (set! t9-0 type?) (set! a0-6 s2-0) (set! a1-1 editable-light) (set! v0-1 (call! a0-6 a1-1)) v0-1) - (set! a0-7 s2-0) - ) - a0-7 + ((= arg1 (debug-menu-msg press)) + (let* ((s4-0 (-> *editable* 0 current length)) + (s3-0 0) + (s2-0 (-> *editable* 0 current data s3-0)) + ) + (while (< s3-0 s4-0) + (when (and s2-0 (logtest? (-> s2-0 flags) (editable-flag selected))) + (let ((a0-7 (if (type? s2-0 editable-light) + s2-0 + ) + ) ) - (when (begin - (set! f0-0 (gpr->fpr a2-0)) - (set! v1-11 (sra a0-0 3)) - (set! v1-12 (the-as none (+ a0-7 v1-11))) - (s.f! v1-12 f0-0) - (set! v1-13 (the-as none (-> a0-7 flags))) - (set! v1-14 (the-as none (logior v1-13 2048))) - (set! (-> a0-7 flags) (the-as editable-flag v1-14)) - (set! v1-15 (the-as none (-> a0-7 region))) - v1-15 - ) - (set! a1-3 (the-as none #t)) - (s.w! v1-15 a1-3) + (when (the-as editable a0-7) + (set! (-> (&+ (the-as (pointer float) a0-7) (/ arg0 8)) 0) arg2) + (logior! (-> (the-as editable a0-7) flags) (editable-flag changed)) + (let ((v1-15 (-> (the-as editable a0-7) region))) + (if v1-15 + (set! (-> v1-15 changed) #t) + ) + ) + (update-light-sphere-from-editable-light (the-as editable-light a0-7)) + ) ) - (set! t9-1 (the-as none update-light-sphere-from-editable-light)) - (call!) - (set! v1-16 (the-as none v0-2)) ) + (+! s3-0 1) + (set! s2-0 (-> *editable* 0 current data s3-0)) ) - (set! s3-0 (the-as int (+ s3-0 1))) - (set! v1-17 (the-as none (sll s3-0 2))) - (set! a0-8 (the-as none *editable*)) - (set! a0-9 (the-as none (l.wu a0-8))) - (set! a0-10 (the-as none (l.wu (+ a0-9 196)))) - (set! v1-18 (the-as none (+ v1-17 a0-10))) - (set! v1-19 (the-as none (l.wu (+ v1-18 120)))) - (set! s2-0 (the-as editable v1-19)) ) - (set! v0-0 #f) + (the-as float #f) ) (else - (set! f30-0 (the-as none (gpr->fpr a3-0))) - (set! v1-21 (the-as none *editable*)) - (set! v1-22 (the-as none (l.wu v1-21))) - (set! v1-23 (the-as none (l.wu (+ v1-22 196)))) - (set! s5-1 (the-as none (l.w (+ v1-23 4)))) - (set! s4-1 (the-as none 0)) - (set! v1-24 (the-as none (sll s4-1 2))) - (set! a0-11 (the-as none *editable*)) - (set! a0-12 (the-as none (l.wu a0-11))) - (set! a0-13 (the-as none (l.wu (+ a0-12 196)))) - (set! v1-25 (the-as none (+ v1-24 a0-13))) - (set! s3-1 (the-as none (l.wu (+ v1-25 120)))) - (while (<.si s4-1 s5-1) - (when (begin - (and s3-1 (begin - (set! v1-27 (the-as none #t)) - (set! a0-14 (the-as none (l.wu s3-1))) - (set! a0-15 (the-as none (logand a0-14 1))) - (cmove-#f-zero v1-26 a0-15 v1-27) - ) - ) - v1-26 + (let ((f30-0 arg3)) + (let* ((s5-1 (-> *editable* 0 current length)) + (s4-1 0) + (s3-1 (-> *editable* 0 current data s4-1)) + ) + (while (< s4-1 s5-1) + (when (and s3-1 (logtest? (-> s3-1 flags) (editable-flag selected))) + (let ((v1-29 (if (type? s3-1 editable-light) + s3-1 + ) + ) + ) + (if (the-as editable v1-29) + (set! f30-0 (-> (&+ (the-as (pointer float) v1-29) (/ arg0 8)) 0)) + ) ) - (when (begin - (if (begin - (set! t9-2 (the-as none type?)) - (set! a0-16 (the-as none s3-1)) - (set! a1-4 (the-as none editable-light)) - (set! v0-3 (the-as none (call!))) - v0-3 - ) - (set! v1-29 (the-as none s3-1)) - ) - v1-29 - ) - (set! a0-18 (the-as none (sra a0-0 3))) - (set! v1-30 (the-as none (+ v1-29 a0-18))) - (set! f30-0 (the-as none (l.f v1-30))) - (set! a0-19 (the-as none (fpr->gpr f30-0))) + ) + (+! s4-1 1) + (set! s3-1 (-> *editable* 0 current data s4-1)) ) ) - (set! s4-1 (the-as none (+ s4-1 1))) - (set! v1-31 (the-as none (sll s4-1 2))) - (set! a0-20 (the-as none *editable*)) - (set! a0-21 (the-as none (l.wu a0-20))) - (set! a0-22 (the-as none (l.wu (+ a0-21 196)))) - (set! v1-32 (the-as none (+ v1-31 a0-22))) - (set! v1-33 (the-as none (l.wu (+ v1-32 120)))) - (set! s3-1 (the-as none v1-33)) + f30-0 ) - (set! v0-0 (the-as symbol (fpr->gpr f30-0))) ) ) - (ret-value v0-0) ) ;; definition for function dm-cam-externalize2 @@ -2503,44 +2378,203 @@ ) ;; definition for function dm-editable-boolean-toggle-pick-func -;; ERROR: failed type prop at 5: add failed: editable-player int - -(defun dm-editable-boolean-toggle-pick-func ((a0-0 int) (a1-0 debug-menu-msg)) - (local-vars - (v0-0 none) - (v1-0 (pointer editable-player)) - (v1-1 (pointer editable-player)) - (v1-2 editable-player) - (v1-3 none) - (a0-1 int) - (a0-2 none) - (a0-4 none) - (a0-5 none) - ) +(defun dm-editable-boolean-toggle-pick-func ((arg0 int) (arg1 debug-menu-msg)) (cond - ((begin (set! v1-0 *editable*) v1-0) - (when (begin - (set! v1-1 *editable*) - (set! v1-2 (-> v1-1 0)) - (set! a0-1 (sra a0-0 3)) - (set! v1-3 (the-as none (+ v1-2 a0-1))) - (set! a0-2 (the-as none 4)) - (= a1-0 a0-2) - ) - (set! a0-4 (the-as none (l.wu v1-3))) - (set! a0-5 (the-as none (not a0-4))) - (s.w! v1-3 a0-5) - ) - (set! v0-0 (the-as none (l.wu v1-3))) - ) + (*editable* + (let ((v1-3 (&+ (the-as (pointer symbol) (-> *editable* 0)) (/ arg0 8)))) + (if (= arg1 (debug-menu-msg press)) + (set! (-> v1-3 0) (not (-> v1-3 0))) + ) + (-> v1-3 0) + ) + ) (else + #f ) ) - (ret-none) ) ;; definition for function editable-menu-context-make-menus -;; ERROR: function was not converted to expressions. Cannot decompile. +(defun editable-menu-context-make-menus ((arg0 debug-menu-context)) + (debug-menu-make-from-template + arg0 + '(main-menu + "Editable" + (flag "Cam 1" pad-1 dm-cam-externalize2) + (flag "Left Handed" 212 dm-editable-boolean-toggle-pick-func) + (menu + "Insert" + (function "Sphere" 27 editable-menu-command) + (function "Point" 28 editable-menu-command) + (function "Sample" 29 editable-menu-command) + (function "Light" 31 editable-menu-command) + (function "Entity" 32 editable-menu-command) + (function "Face" 33 editable-menu-command) + (function "Plane" 34 editable-menu-command) + (function "Box" 35 editable-menu-command) + (function "Edit-Plane Set" 45 editable-menu-command) + (function "Edit-Plane Clear" 46 editable-menu-command) + ) + (menu + "Select" + (function "None" 6 editable-menu-command) + (function "All" 5 editable-menu-command) + (function "Owner" 10 editable-menu-command) + (function "Current Region" 11 editable-menu-command) + (function "Current Face" 12 editable-menu-command) + (function "Current Prim" 13 editable-menu-command) + ) + (menu + "Selection" + (function "Copy" 37 editable-menu-command) + (function "Delete" 36 editable-menu-command) + (function "Flip Side" 42 editable-menu-command) + (function "Snap to Ground" 39 editable-menu-command) + (function "Snap XZ" 40 editable-menu-command) + (function "Snap Y" 41 editable-menu-command) + (function "Resize to Param" 38 editable-menu-command) + (function "Set to current Region" 43 editable-menu-command) + (function "Set to new Region" 44 editable-menu-command) + (flag "No Save" 2 dm-editable-flag-pick-func) + (flag "Top Set" 512 dm-editable-flag-pick-func) + (flag "Bot Set" 1024 dm-editable-flag-pick-func) + ) + (menu + "Region" + (function "Print Info" 53 editable-menu-command) + (function "Copy" 48 editable-menu-command) + (function "Delete" 47 editable-menu-command) + (function "Add to current Region" 49 editable-menu-command) + (flag + "Region Lock" + #f + ,(lambda ((arg0 int) (arg1 float) (arg2 float)) + (if (= arg1 4) + (set! (-> *editable* 0 current region-lock?) (not (-> *editable* 0 current region-lock?))) + ) + (-> *editable* 0 current region-lock?) + ) + ) + (flag "Camera" camera dm-region-tree-pick-func) + (flag "Target" target dm-region-tree-pick-func) + (flag "Water" water dm-region-tree-pick-func) + (flag "Data" data dm-region-tree-pick-func) + (flag "City Vis" city_vis dm-region-tree-pick-func) + ) + (menu + "Filter" + (flag "None" 1 dm-editable-filter0-pick-func) + (flag "Unknown" 2 dm-editable-filter0-pick-func) + (flag "Sound" 4 dm-editable-filter0-pick-func) + (flag "Part" 8 dm-editable-filter0-pick-func) + (flag "Load" 64 dm-editable-filter0-pick-func) + (flag "User Setting" 16 dm-editable-filter0-pick-func) + (flag "Cam Setting" 32 dm-editable-filter0-pick-func) + (flag "Camera" 256 dm-editable-filter1-pick-func) + (flag "Target" 512 dm-editable-filter1-pick-func) + (flag "Water" 1024 dm-editable-filter1-pick-func) + (flag "Data" 2048 dm-editable-filter1-pick-func) + (flag "Sample" 8192 dm-editable-filter1-pick-func) + (flag "Light" 16384 dm-editable-filter1-pick-func) + (flag "Entity" 32768 dm-editable-filter1-pick-func) + (flag "City Vis" 4096 dm-editable-filter1-pick-func) + ) + (menu + "Light" + (flag "Show Light Names" 216 dm-editable-boolean-toggle-pick-func) + (float-var + "Red" + 60 + dm-editable-light-float-func + 2 + (new 'static 'bfloat :data 0.00390625) + #t + 0 + (new 'static 'bfloat :data 1.9921875) + 0 + ) + (float-var + "Green" + 64 + dm-editable-light-float-func + 2 + (new 'static 'bfloat :data 0.00390625) + #t + 0 + (new 'static 'bfloat :data 1.9921875) + 0 + ) + (float-var + "Blue" + 68 + dm-editable-light-float-func + 2 + (new 'static 'bfloat :data 0.00390625) + #t + 0 + (new 'static 'bfloat :data 1.9921875) + 0 + ) + (float-var + "Palette Index" + 72 + dm-editable-light-float-func + 2 + (new 'static 'bfloat :data 1.0) + #t + (new 'static 'bfloat :data -1.0) + (new 'static 'bfloat :data 7.0) + 0 + ) + (float-var "Decay Start" 76 dm-editable-light-float-func 2 (new 'static 'bfloat :data 0.00390625) #t 0 1 0) + (float-var + "Ambient Point Ratio" + 80 + dm-editable-light-float-func + 2 + (new 'static 'bfloat :data 0.00390625) + #t + 0 + 1 + 0 + ) + (float-var "Brightness" 84 dm-editable-light-float-func 2 (new 'static 'bfloat :data 0.00390625) #t 0 1 0) + ) + (float-var + "Param" + #f + ,(lambda ((arg0 int) (arg1 float) (arg2 float)) (cond + ((= arg1 4) + (if (and *editable* (nonzero? *editable*)) + (set! (-> *editable* 0 current edit-param0) arg2) + ) + ) + ((or (not *editable*) (zero? *editable*)) + 0.0 + ) + (else + (-> *editable* 0 current edit-param0) + ) + ) + ) + 3 + (new 'static 'bfloat :data 0.5) + #t + 0 + 500 + 1 + ) + (function "Rotate Level" 55 editable-menu-command) + (function "Trans Y Level" 56 editable-menu-command) + (function "Revert" 51 editable-menu-command) + (function "Save" 50 editable-menu-command-no-close) + (function "Update Game" 52 editable-menu-command-no-close) + (function "Cancel" 17 editable-menu-command) + (function "Exit" 1 editable-menu-command) + ) + ) + arg0 + ) ;; failed to figure out what this is: (editable-menu-context-make-menus *editable-menu-context*) diff --git a/test/decompiler/reference/jak2/engine/debug/editable_REF.gc b/test/decompiler/reference/jak2/engine/debug/editable_REF.gc index d589338c60..39a6859d12 100644 --- a/test/decompiler/reference/jak2/engine/debug/editable_REF.gc +++ b/test/decompiler/reference/jak2/engine/debug/editable_REF.gc @@ -1390,7 +1390,7 @@ (bucket-id debug-no-zbuf1) (edit-get-trans obj) s1-0 - (meters 2.0) + (meters 2) (the-as rgba (-> (new 'static 'array uint64 1 #x8000ffff) 0)) ) ) diff --git a/test/decompiler/reference/jak2/engine/debug/history_REF.gc b/test/decompiler/reference/jak2/engine/debug/history_REF.gc index f4317a2b85..b526f649ed 100644 --- a/test/decompiler/reference/jak2/engine/debug/history_REF.gc +++ b/test/decompiler/reference/jak2/engine/debug/history_REF.gc @@ -713,7 +713,7 @@ (bucket-id debug-no-zbuf1) (-> s5-0 origin) (-> s5-0 vector) - (meters 1.0) + (meters 1) (the-as rgba (logior t1-7 (shl v1-8 24))) ) ) @@ -751,6 +751,3 @@ 0 ) - - - diff --git a/test/decompiler/reference/jak2/engine/entity/actor-link-h_REF.gc b/test/decompiler/reference/jak2/engine/entity/actor-link-h_REF.gc index 9d451c1960..1912bf5338 100644 --- a/test/decompiler/reference/jak2/engine/entity/actor-link-h_REF.gc +++ b/test/decompiler/reference/jak2/engine/entity/actor-link-h_REF.gc @@ -173,7 +173,7 @@ (set! s4-0 (entity-actor-lookup s4-0 'prev-actor 0)) ) (while s4-0 - (if (arg0 (the-as entity-actor s4-0) arg1) + (if (arg0 s4-0 arg1) (return (the-as int #f)) ) (let ((a0-4 s4-0)) @@ -300,7 +300,7 @@ ;; definition for method 9 of type actor-link-info (defmethod get-matching-actor-type-mask actor-link-info ((obj actor-link-info) (arg0 type)) - (let ((s3-0 (the-as entity-actor (-> obj process entity))) + (let ((s3-0 (-> obj process entity)) (s5-0 0) ) (let ((s4-0 1)) diff --git a/test/decompiler/reference/jak2/engine/entity/entity-h_REF.gc b/test/decompiler/reference/jak2/engine/entity/entity-h_REF.gc index df88ed5e27..dbeb380c48 100644 --- a/test/decompiler/reference/jak2/engine/entity/entity-h_REF.gc +++ b/test/decompiler/reference/jak2/engine/entity/entity-h_REF.gc @@ -31,7 +31,7 @@ :size-assert #x10 :flag-assert #xa00000010 (:methods - (update-perm! (_type_ symbol entity-perm-status) _type_ 9) + (update (_type_ symbol entity-perm-status) _type_ 9) ) ) diff --git a/test/decompiler/reference/jak2/engine/entity/entity_REF.gc b/test/decompiler/reference/jak2/engine/entity/entity_REF.gc index abb4c0e865..dc688dbcba 100644 --- a/test/decompiler/reference/jak2/engine/entity/entity_REF.gc +++ b/test/decompiler/reference/jak2/engine/entity/entity_REF.gc @@ -515,7 +515,7 @@ ) ;; definition for function process-entity-set! -(defun process-entity-set! ((arg0 process) (arg1 entity)) +(defun process-entity-set! ((arg0 process) (arg1 entity-actor)) (set! (-> arg0 entity) arg1) (if arg1 (set! (-> arg0 level) (-> arg1 extra level)) @@ -1262,7 +1262,7 @@ ;; definition (debug) for function draw-actor-marks ;; WARN: Return type mismatch int vs none. (defun-debug draw-actor-marks ((arg0 process)) - (local-vars (sv-16 entity) (sv-20 (pointer int32))) + (local-vars (sv-16 entity-actor) (sv-20 (pointer int32))) (b! (not (and (or (type? arg0 process-drawable) (= (-> arg0 type) part-tracker) (type? arg0 part-spawner)) (nonzero? (-> (the-as part-spawner arg0) root)) @@ -2147,7 +2147,7 @@ ) ;; definition for method 9 of type entity-perm -(defmethod update-perm! entity-perm ((obj entity-perm) (arg0 symbol) (arg1 entity-perm-status)) +(defmethod update entity-perm ((obj entity-perm) (arg0 symbol) (arg1 entity-perm-status)) (cond ((= arg0 'game) (logclear! (-> obj status) arg1) @@ -2211,7 +2211,7 @@ (if (not (and (-> s0-0 extra process) (logtest? (-> s0-0 extra process mask) (process-mask no-kill)))) (kill! s0-0) ) - (update-perm! (-> s0-0 extra perm) arg0 (the-as entity-perm-status s5-0)) + (update (-> s0-0 extra perm) arg0 (the-as entity-perm-status s5-0)) ) ) ) @@ -2220,13 +2220,13 @@ ) (let ((s3-1 (-> s4-0 task-perm-list))) (dotimes (s2-1 (-> s3-1 length)) - (update-perm! (-> s3-1 data s2-1) arg0 (the-as entity-perm-status s5-0)) + (update (-> s3-1 data s2-1) arg0 (the-as entity-perm-status s5-0)) ) (logior! (-> s3-1 data 1 status) (entity-perm-status complete)) ) (let ((s4-1 (-> s4-0 perm-list))) (dotimes (s3-2 (-> s4-1 length)) - (update-perm! (-> s4-1 data s3-2) arg0 (the-as entity-perm-status s5-0)) + (update (-> s4-1 data s3-2) arg0 (the-as entity-perm-status s5-0)) ) ) ) diff --git a/test/decompiler/reference/jak2/engine/game/fact-h_REF.gc b/test/decompiler/reference/jak2/engine/game/fact-h_REF.gc index e3866cb53d..473e9abea4 100644 --- a/test/decompiler/reference/jak2/engine/game/fact-h_REF.gc +++ b/test/decompiler/reference/jak2/engine/game/fact-h_REF.gc @@ -480,7 +480,7 @@ (eco-level float :offset-assert 44) (eco-pickup-time time-frame :offset-assert 48) (eco-timeout time-frame :offset-assert 56) - (eco-source uint64 :offset-assert 64) + (eco-source handle :offset-assert 64) (eco-source-time time-frame :offset-assert 72) (health float :offset-assert 80) (health-max float :offset-assert 84) @@ -1342,9 +1342,9 @@ ;; INFO: Used lq/sq ;; WARN: Return type mismatch object vs fact-info. (defmethod new fact-info ((allocation symbol) (type-to-make type) (arg0 process) (arg1 pickup-type) (arg2 float)) - (local-vars (sv-16 fact-info) (sv-20 entity) (sv-24 task-mask)) + (local-vars (sv-16 fact-info) (sv-20 res-lump) (sv-24 task-mask)) (set! sv-16 (object-new allocation type-to-make (the-as int (-> type-to-make size)))) - (set! sv-20 (-> arg0 entity)) + (set! sv-20 (the-as res-lump (-> arg0 entity))) (set! sv-24 (process-task-mask arg0)) (when (zero? sv-16) (go process-drawable-art-error "memory") @@ -1353,7 +1353,7 @@ (set! (-> sv-16 process) arg0) (set! (-> sv-16 pickup-type) arg1) (set! (-> sv-16 pickup-amount) arg2) - (let ((s4-1 (-> ((method-of-type res-lump lookup-tag-idx) sv-20 'eco-info 'base -1000000000.0) lo))) + (let ((s4-1 (-> (lookup-tag-idx sv-20 'eco-info 'base -1000000000.0) lo))) (when (>= (the-as int s4-1) 0) (let ((s3-0 (the-as int s4-1)) (s2-0 (-> sv-20 tag s4-1)) @@ -1429,7 +1429,7 @@ ) (local-vars (sv-16 res-tag) (sv-32 res-tag)) (let ((gp-0 (the-as fact-info-enemy ((method-of-type fact-info new) allocation type-to-make arg0 arg2 arg3)))) - (let ((s5-0 (-> gp-0 process entity))) + (let ((s5-0 (the-as res-lump (-> gp-0 process entity)))) (set! (-> gp-0 speed) (res-lump-float s5-0 'speed :default 1.0)) (set! (-> gp-0 idle-distance) (res-lump-float s5-0 'idle-distance :default (-> arg1 0))) (set! (-> gp-0 notice-top) (res-lump-float s5-0 'notice-top :default 4096000.0)) @@ -1492,7 +1492,7 @@ ;; definition for method 0 of type fact-info-crate (defmethod new fact-info-crate ((allocation symbol) (type-to-make type) (arg0 process) (arg1 pickup-type) (arg2 float)) (let ((gp-0 (the-as fact-info-crate ((method-of-type fact-info new) allocation type-to-make arg0 arg1 arg2)))) - (let ((a0-1 (-> gp-0 process entity))) + (let ((a0-1 (the-as res-lump (-> gp-0 process entity)))) (set! (-> gp-0 suck-count) (res-lump-value a0-1 'suck-count int :time -1000000000.0)) ) gp-0 @@ -1502,7 +1502,7 @@ ;; definition for method 0 of type fact-info-target (defmethod new fact-info-target ((allocation symbol) (type-to-make type) (arg0 process-drawable) (arg1 pickup-type) (arg2 float)) (let ((gp-0 (the-as fact-info-target ((method-of-type fact-info new) allocation type-to-make arg0 arg1 arg2)))) - (set! (-> gp-0 eco-source) (the-as uint #f)) + (set! (-> gp-0 eco-source) (the-as handle #f)) (reset! gp-0 #f) gp-0 ) diff --git a/test/decompiler/reference/jak2/engine/game/game-info-h_REF.gc b/test/decompiler/reference/jak2/engine/game/game-info-h_REF.gc index da3ed9184b..c6ea668433 100644 --- a/test/decompiler/reference/jak2/engine/game/game-info-h_REF.gc +++ b/test/decompiler/reference/jak2/engine/game/game-info-h_REF.gc @@ -52,17 +52,17 @@ ;; definition of type highscore-info (deftype highscore-info (structure) - ((flags uint8 :offset-assert 0) - (award-scores float 3 :offset-assert 4) - (bronze-score float :offset 4) - (silver-score float :offset 8) - (gold-score float :offset 12) + ((flags highscore-flags :offset-assert 0) + (award-scores float 3 :offset-assert 4) + (bronze-score float :offset 4) + (silver-score float :offset 8) + (gold-score float :offset 12) ) :method-count-assert 10 :size-assert #x10 :flag-assert #xa00000010 (:methods - (highscore-info-method-9 () none 9) + (get-rank (_type_ float) int 9) ) ) @@ -176,7 +176,7 @@ (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) + (camera-rot vector3s 3 :inline :offset-assert 64) (on-goto pair :offset-assert 100) (vis-nick symbol :offset-assert 104) (want level-buffer-state 6 :inline :offset-assert 108) @@ -186,9 +186,9 @@ :size-assert #xd8 :flag-assert #xc000000d8 (:methods - (continue-point-method-9 () none 9) - (continue-point-method-10 () none 10) - (continue-point-method-11 (_type_) none 11) + (debug-draw (_type_) int 9) + (continue-point-method-10 (_type_ load-state) continue-point 10) + (move-camera! (_type_) none 11) ) ) @@ -249,10 +249,10 @@ (gun-ammo float 4 :offset-assert 164) (shield float :offset-assert 180) (score float :offset-assert 184) - (score-owner uint64 :offset-assert 192) - (timer uint64 :offset-assert 200) - (timer-owner uint64 :offset-assert 208) - (timer-flash basic :offset-assert 216) + (score-owner handle :offset-assert 192) + (timer time-frame :offset-assert 200) + (timer-owner handle :offset-assert 208) + (timer-flash symbol :offset-assert 216) (counter float :offset-assert 220) (counter-flash basic :offset-assert 224) (attack-id uint32 :offset-assert 228) @@ -262,9 +262,9 @@ (last-continue continue-point :offset-assert 244) (play-list (array game-task-info) :offset-assert 248) (sub-task-list (array game-task-node-info) :offset-assert 252) - (unknown-pad5 array :offset-assert 256) + (unknown-pad5 (array game-task-node-info) :offset-assert 256) (task-counter uint32 :offset-assert 260) - (unknown-pad6 uint32 :offset-assert 264) + (unknown-pad6 (array uint16) :offset-assert 264) (level-opened uint8 32 :offset-assert 268) (total-deaths int32 :offset-assert 300) (continue-deaths int32 :offset-assert 304) @@ -275,9 +275,9 @@ (death-time time-frame :offset-assert 336) (hit-time time-frame :offset-assert 344) (task-pickup-time time-frame :offset-assert 352) - (unknown-array1 (array uint64) :offset-assert 360) - (unknown-array2 (array uint64) :offset-assert 364) - (unknown-array3 (array uint64) :offset-assert 368) + (unknown-array1 (array time-frame) :offset-assert 360) + (task-enter-times (array time-frame) :offset-assert 364) + (task-in-times (array time-frame) :offset-assert 368) (death-pos vector-array :offset 372) (stop-watch-start uint64 :offset-assert 376) (stop-watch-stop uint64 :offset-assert 384) @@ -293,8 +293,8 @@ (auto-save-card int32 :offset-assert 452) (auto-save-which int32 :offset-assert 456) (auto-save-count int32 :offset-assert 460) - (pov-camera-handle uint64 :offset-assert 464) - (other-camera-handle uint64 :offset-assert 472) + (pov-camera-handle handle :offset-assert 464) + (other-camera-handle handle :offset-assert 472) (controller handle 2 :offset-assert 480) (race-timer uint64 :offset-assert 496) (race-current-lap-count int32 :offset-assert 504) @@ -307,11 +307,11 @@ (distance float :offset-assert 540) (kiosk-timeout uint64 :offset-assert 544) (pause-start-time time-frame :offset-assert 552) - (game-score (array highscore-info) :offset-assert 560) + (game-score (array float) :offset-assert 560) (goal float :offset-assert 564) (miss float :offset-assert 568) (miss-max float :offset-assert 572) - (unknown-array4 (array uint64) :offset-assert 576) + (task-close-times (array time-frame) :offset-assert 576) (live-eco-pill-count int32 :offset-assert 580) (live-gem-count int32 :offset-assert 584) (air-supply float :offset-assert 588) @@ -324,27 +324,27 @@ :flag-assert #x1f0000025c (:methods (initialize! (_type_ symbol game-save string) _type_ 9) - (game-info-method-10 () none 10) + (give (_type_ symbol float handle) float 10) (task-complete? (_type_ game-task) symbol 11) - (game-info-method-12 (_type_) none 12) - (game-info-method-13 () none 13) - (game-info-method-14 () none 14) - (game-info-method-15 () none 15) - (copy-perms-from-level! (_type_ level) none 16) - (copy-perms-to-level! (_type_ level) none 17) - (game-info-method-18 () none 18) - (get-current-continue-point (_type_) continue-point 19) + (subtask-index-by-name (_type_ string) int 12) + (set-subtask-hook! (_type_ int int function) function 13) + (actor-perm (_type_ actor-id) entity-perm 14) + (task-perm-by-index (_type_ int) entity-perm 15) + (copy-perms-from-level! (_type_ level) int 16) + (copy-perms-to-level! (_type_ level) int 17) + (game-info-method-18 (_type_ symbol) _type_ 18) + (get-current-continue-forced (_type_) continue-point 19) (get-continue-by-name (_type_ string) continue-point 20) - (set-continue! (_type_ basic object) continue-point 21) - (game-info-method-22 () none 22) - (game-info-method-23 () none 23) - (game-info-method-24 () none 24) - (game-info-method-25 () none 25) - (game-info-method-26 () none 26) + (set-continue! (_type_ basic symbol) continue-point 21) + (game-info-method-22 (_type_) int 22) + (game-info-method-23 (_type_ game-save string) int 23) + (game-info-method-24 (_type_ game-save) none 24) + (you-suck-stage (_type_ symbol) int 25) + (you-suck-scale (_type_) float 26) (get-next-attack-id (_type_) uint 27) - (game-info-method-28 () none 28) - (game-info-method-29 () none 29) - (game-info-method-30 () none 30) + (game-info-method-28 (_type_ game-score float) int 28) + (get-game-score-ref (_type_ int) (pointer float) 29) + (calculate-percentage (_type_) float 30) ) ) @@ -454,13 +454,14 @@ ) ;; failed to figure out what this is: -(set! gp-0 (when (or (not *game-info*) (zero? *game-info*)) - (set! gp-0 (new 'static 'game-info :mode 'debug :current-continue #f :last-continue #f)) - (set! (-> gp-0 unknown-array1) (new 'global 'boxed-array uint64 110)) - (set! (-> gp-0 unknown-array4) (new 'global 'boxed-array uint64 110)) - (set! (-> gp-0 unknown-array2) (new 'global 'boxed-array uint64 32)) - (set! (-> gp-0 unknown-array3) (new 'global 'boxed-array uint64 32)) - (set! *game-info* gp-0) - gp-0 - ) +(set! gp-0 + (when (or (not *game-info*) (zero? *game-info*)) + (set! gp-0 (new 'static 'game-info :mode 'debug :current-continue #f :last-continue #f)) + (set! (-> gp-0 unknown-array1) (the-as (array time-frame) (new 'global 'boxed-array uint64 110))) + (set! (-> gp-0 task-close-times) (the-as (array time-frame) (new 'global 'boxed-array uint64 110))) + (set! (-> gp-0 task-enter-times) (the-as (array time-frame) (new 'global 'boxed-array uint64 32))) + (set! (-> gp-0 task-in-times) (the-as (array time-frame) (new 'global 'boxed-array uint64 32))) + (set! *game-info* gp-0) + gp-0 + ) ) diff --git a/test/decompiler/reference/jak2/engine/game/game-info_REF.gc b/test/decompiler/reference/jak2/engine/game/game-info_REF.gc new file mode 100644 index 0000000000..40000f2689 --- /dev/null +++ b/test/decompiler/reference/jak2/engine/game/game-info_REF.gc @@ -0,0 +1,1770 @@ +;;-*-Lisp-*- +(in-package goal) + +;; definition for method 9 of type border-plane +(defmethod debug-draw border-plane ((obj border-plane)) + (let* ((v1-0 (-> obj action)) + (plane-color (if (= v1-0 'load) + (the-as uint #x8000ff00) + (the-as uint #x800000ff) + ) + ) + ) + (add-debug-text-sphere + #t + (bucket-id debug-no-zbuf1) + (-> obj trans) + (meters 0.2) + (symbol->string (-> obj name)) + (the-as rgba plane-color) + ) + (add-debug-vector + #t + (bucket-id debug-no-zbuf1) + (-> obj trans) + (-> obj normal) + (meters 2) + (the-as rgba plane-color) + ) + ) + 0 + ) + +;; definition for method 10 of type border-plane +(defmethod point-past-plane? border-plane ((obj border-plane) (arg0 vector)) + (>= (vector-dot (vector-! (new 'stack-no-clear 'vector) arg0 (-> obj trans)) (-> obj normal)) 0.0) + ) + +;; definition for method 11 of type game-info +(defmethod task-complete? game-info ((obj game-info) (arg0 game-task)) + (logtest? (-> obj task-perm-list data arg0 status) (entity-perm-status complete)) + ) + +;; definition for method 12 of type game-info +(defmethod subtask-index-by-name game-info ((obj game-info) (arg0 string)) + (let ((subtasks (-> *game-info* sub-task-list))) + (dotimes (i (-> subtasks length)) + (when (nonzero? i) + (let ((v1-4 (-> subtasks i))) + (if (string= arg0 (-> v1-4 name)) + (return i) + ) + ) + ) + ) + ) + 0 + ) + +;; definition for method 13 of type game-info +(defmethod set-subtask-hook! game-info ((obj game-info) (arg0 int) (arg1 int) (arg2 function)) + (let ((subtask (-> obj sub-task-list arg0))) + (if (and subtask (-> subtask info)) + (set! (-> subtask info hooks arg1) (the-as (function object) arg2)) + ) + ) + arg2 + ) + +;; definition for symbol *default-continue*, type continue-point +(define *default-continue* + (new 'static 'continue-point + :name "default" + :level #f + :flags (continue-flags cf2) + :trans (new 'static 'vector :w 1.0) + :quat (new 'static 'vector :w 1.0) + :camera-trans (new 'static 'vector :w 1.0) + :on-goto #f + :vis-nick #f + :want (new 'static 'inline-array level-buffer-state 6 + (new 'static 'level-buffer-state :name #f :display? #f :force-vis? #f :force-inside? #f) + (new 'static 'level-buffer-state :name #f :display? #f :force-vis? #f :force-inside? #f) + (new 'static 'level-buffer-state :name #f :display? #f :force-vis? #f :force-inside? #f) + (new 'static 'level-buffer-state :name #f :display? #f :force-vis? #f :force-inside? #f) + (new 'static 'level-buffer-state :name #f :display? #f :force-vis? #f :force-inside? #f) + (new 'static 'level-buffer-state :name #f :display? #f :force-vis? #f :force-inside? #f) + ) + :want-sound (new 'static 'array symbol 3 #f #f #f) + ) + ) + +;; definition for method 10 of type continue-point +;; INFO: Used lq/sq +(defmethod continue-point-method-10 continue-point ((obj continue-point) (arg0 load-state)) + (let ((v1-0 (lookup-level-info (-> obj vis-nick)))) + (set! (-> obj vis-nick) (if v1-0 + (-> v1-0 name) + ) + ) + ) + (dotimes (s4-0 6) + (mem-copy! (the-as pointer (-> obj want s4-0)) (the-as pointer (-> arg0 want s4-0)) 16) + ) + (dotimes (v1-7 3) + (set! (-> obj want-sound v1-7) (-> arg0 want-sound v1-7)) + ) + (set! (-> obj camera-trans quad) (-> *camera-combiner* trans quad)) + (when *camera-combiner* + (let ((a0-10 (-> *camera-combiner* inv-camera-rot)) + (v1-14 (-> obj camera-rot)) + ) + (set! (-> v1-14 0 x) (-> a0-10 vector 0 x)) + (set! (-> v1-14 0 y) (-> a0-10 vector 0 y)) + (set! (-> v1-14 0 z) (-> a0-10 vector 0 z)) + (set! (-> v1-14 1 x) (-> a0-10 vector 1 x)) + (set! (-> v1-14 1 y) (-> a0-10 vector 1 y)) + (set! (-> v1-14 1 z) (-> a0-10 vector 1 z)) + (set! (-> v1-14 2 x) (-> a0-10 vector 2 x)) + (set! (-> v1-14 2 y) (-> a0-10 vector 2 y)) + (set! (-> v1-14 2 z) (-> a0-10 vector 2 z)) + ) + ) + (add-borrow-levels arg0) + obj + ) + +;; definition for method 11 of type continue-point +;; INFO: Used lq/sq +;; WARN: Return type mismatch int vs none. +(defmethod move-camera! continue-point ((obj continue-point)) + (set! (-> *camera-combiner* trans quad) (-> obj camera-trans quad)) + (let ((gp-0 (-> *camera-combiner* inv-camera-rot)) + (s5-0 (-> obj camera-rot)) + ) + (matrix-identity! gp-0) + (set! (-> gp-0 vector 0 x) (-> s5-0 0 x)) + (set! (-> gp-0 vector 0 y) (-> s5-0 0 y)) + (set! (-> gp-0 vector 0 z) (-> s5-0 0 z)) + (set! (-> gp-0 vector 1 x) (-> s5-0 1 x)) + (set! (-> gp-0 vector 1 y) (-> s5-0 1 y)) + (set! (-> gp-0 vector 1 z) (-> s5-0 1 z)) + (set! (-> gp-0 vector 2 x) (-> s5-0 2 x)) + (set! (-> gp-0 vector 2 y) (-> s5-0 2 y)) + (set! (-> gp-0 vector 2 z) (-> s5-0 2 z)) + ) + (send-event *camera* 'change-target *target*) + (cam-master-activate-slave #t) + 0 + (none) + ) + +;; definition for method 19 of type game-info +(defmethod get-current-continue-forced game-info ((obj game-info)) + (cond + ((and (= (-> obj mode) 'play) (-> obj current-continue)) + (-> obj current-continue) + ) + (else + (let ((dfault *default-continue*)) + (position-in-front-of-camera! (-> dfault trans) 40960.0 4096.0) + (quaternion-identity! (the-as quaternion (-> dfault quat))) + (continue-point-method-10 dfault *load-state*) + dfault + ) + ) + ) + ) + +;; definition for method 20 of type game-info +(defmethod get-continue-by-name game-info ((obj game-info) (arg0 string)) + (if (not arg0) + (return (the-as continue-point #f)) + ) + (let ((s5-0 *level-load-list*)) + (while (not (null? s5-0)) + (let ((continues (-> (the-as level-load-info (-> (the-as symbol (car s5-0)) value)) continues))) + (while (not (null? continues)) + (let ((cont (the-as continue-point (car continues)))) + (if (string= arg0 (-> cont name)) + (return cont) + ) + ) + (set! continues (cdr continues)) + ) + ) + (set! s5-0 (cdr s5-0)) + ) + ) + (the-as continue-point #f) + ) + +;; definition for method 21 of type game-info +;; WARN: Using new Jak 2 rtype-of +(defmethod set-continue! game-info ((obj game-info) (arg0 basic) (arg1 symbol)) + (let ((s5-0 (-> obj current-continue))) + (if (null? arg0) + (set! arg0 (the-as basic #f)) + ) + (case (rtype-of arg0) + ((string) + (let ((v1-7 (get-continue-by-name obj (the-as string arg0)))) + (if v1-7 + (set! (-> obj current-continue) v1-7) + ) + ) + ) + ((continue-point) + (set! (-> obj current-continue) (the-as continue-point arg0)) + ) + (else + (let ((dfault *default-continue*)) + (position-in-front-of-camera! (-> dfault trans) 40960.0 4096.0) + (quaternion-identity! (the-as quaternion (-> dfault quat))) + (let ((v1-9 (lookup-level-info (-> *load-state* vis-nick)))) + (set! (-> dfault vis-nick) (if v1-9 + (-> v1-9 name) + ) + ) + ) + (dotimes (s2-0 6) + (mem-copy! (the-as pointer (-> dfault want s2-0)) (the-as pointer (-> *load-state* want s2-0)) 16) + ) + (dotimes (v1-16 3) + (set! (-> dfault want-sound v1-16) (-> *load-state* want-sound v1-16)) + ) + (set! (-> obj current-continue) dfault) + ) + ) + ) + (if (and (logtest? (-> obj current-continue flags) (continue-flags cf2)) + (and (!= (-> obj current-continue) *default-continue*) (not arg1)) + ) + (set! (-> obj current-continue) s5-0) + ) + (when (!= s5-0 (-> obj current-continue)) + (set! (-> obj continue-deaths) 0) + (set! (-> obj continue-time) (-> *display* game-clock frame-counter)) + ) + ) + (-> obj current-continue) + ) + +;; definition for method 15 of type game-info +(defmethod task-perm-by-index game-info ((obj game-info) (arg0 int)) + (-> obj task-perm-list data arg0) + ) + +;; definition for method 30 of type game-info +(defmethod calculate-percentage game-info ((obj game-info)) + (let ((story-total 0) + (story-complete 0) + ) + 0.0 + (let ((story-min (game-task fortress-escape)) + (story-max (game-task nest-boss)) + ) + (while (>= (the-as uint story-max) (the-as uint story-min)) + (when (not (or (= story-min (game-task city-blue-gun-training)) (= story-min (game-task city-dark-gun-training)))) + (+! story-total 1) + (if (task-complete? obj story-min) + (+! story-complete 1) + ) + ) + (+! story-min 1) + ) + ) + (let ((percent (/ (* 100.0 (the float story-complete)) (the float story-total)))) + (when (= story-complete story-total) + (let ((bbush-min (game-task city-burning-bush-ring-1)) + (bbush-max (game-task stadium-burning-bush-race-class1-r)) + ) + (while (>= (the-as uint bbush-max) (the-as uint bbush-min)) + (if (task-complete? obj bbush-min) + (set! percent (+ 1.0 percent)) + ) + (+! bbush-min 1) + ) + ) + ) + percent + ) + ) + ) + +;; definition for function task-level->string +(defun task-level->string ((arg0 int)) + (symbol->string (-> *task-level* arg0)) + ) + +;; definition for function level-name->task-level +(defun level-name->task-level ((arg0 symbol)) + (let ((v1-0 (lookup-level-info arg0))) + (if v1-0 + (the-as int (-> v1-0 task-level)) + 0 + ) + ) + ) + +;; definition for method 9 of type game-info +;; INFO: Used lq/sq +;; WARN: rewrite_to_get_var got a none typed variable. Is there unreachable code? [OP: 512] +;; ERROR: Expression building failed: In (method 9 game-info): Expression pass could not find the set-to-run function. Found t9-31 instead. Make sure there are no casts on this function. +(defmethod initialize! game-info ((obj game-info) (arg0 symbol) (arg1 game-save) (arg2 string)) + (local-vars + (v0-17 none) + (v0-29 process-tree) + (v0-30 continue-point) + (v0-31 none) + (v0-32 game-info) + (v1-0 symbol) + (v1-16 symbol) + (v1-135 symbol) + (v1-154 process) + (v1-157 (pointer process)) + (v1-158 type) + (v1-159 int) + (v1-160 (pointer string)) + (v1-161 symbol) + (v1-162 type) + (v1-163 process) + (a0-95 process) + (a0-96 game-info) + (a0-97 cpu-thread) + (a0-99 int) + (a0-100 symbol) + (a1-47 process-tree) + (a1-48 (function symbol symbol continue-point game-save none :behavior process)) + (a2-11 type) + (a2-12 symbol) + (a2-13 string) + (a2-14 symbol) + (a3-4 int) + (a3-5 symbol) + (t0-3 continue-point) + (t1-3 game-save) + (s0-1 (function symbol symbol continue-point game-save none :behavior process)) + (s1-2 cpu-thread) + (s2-2 function) + (s3-2 process) + (s4-1 level-load-info) + (t9-29 (function process process-tree basic pointer process-tree)) + (t9-30 (function game-info continue-point)) + (t9-31 function) + (t9-32 (function symbol none)) + (sv-96 game-task-node-info) + (sv-112 symbol) + ) + (cond + ((or (= v1-0 'dead) (= v1-0 'life)) + (+! (-> obj total-deaths) 1) + (+! (-> obj continue-deaths) 1) + (+! (-> obj task-deaths) 1) + (when *target* + (set! s4-1 (-> *target* current-level info)) + (set! (-> obj deaths-per-level (-> s4-1 task-level)) + (the-as uint (seekl (the-as int (-> obj deaths-per-level (-> s4-1 task-level))) 255 1)) + ) + ) + (set! v1-16 (-> obj mode)) + (cond + ((= v1-16 'play) + (set! arg0 'life) + ) + (else + (set! obj obj) + (goto cfg-131) + ) + ) + ) + ((= v1-0 'try) + (+! (-> obj total-trys) 1) + ) + ) + (cond + ((= v1-135 'movie) + (task-node-reset arg0) + (update-task-masks arg0) + ) + ((= v1-135 'debug) + (reset-actors arg0) + (if arg1 + (game-info-method-24 obj arg1) + ) + ) + ((= v1-135 'play) + (when (begin + (if v1-154 + (-> v1-154 ppointer) + ) + (when s3-2 + (set! v1-158 process) + (set! t9-29 (method-of-type process activate)) + (set! a0-95 s3-2) + (set! a1-47 *default-pool*) + (set! v1-159 #xff37) + (set! a2-11 process) + (set! a2-12 (-> process symbol)) + (set! v1-160 (sym->str-ptr (-> process symbol))) + (set! a2-13 (symbol->string (-> process symbol))) + (set! a3-4 #x70004000) + (call! a0-95 a1-47 a2-13 a3-4) + (set! s2-2 set-to-run) + (set! s1-2 (-> s3-2 main-thread)) + (set! s0-1 (lambda :behavior process + ((arg0 symbol) (arg1 symbol) (arg2 continue-point) (arg3 game-save)) + (set! (-> self mask) (process-mask)) + (stop arg0) + (reset-actors arg1) + (close! (-> *game-info* sub-task-list 1) 'event) + (set-continue! *game-info* arg2 #f) + (when arg3 + (game-info-method-24 *game-info* arg3) + (set! arg2 (get-current-continue-forced *game-info*)) + (reset-actors 'life) + (send-event (handle->process (-> *game-info* auto-save-proc)) 'done) + ) + (suspend) + (start arg0 arg2) + (none) + ) + ) + (set! v1-161 (-> obj mode)) + (set! sv-112 v1-161) + (set! a0-96 obj) + (set! v1-162 (-> a0-96 type)) + (set! t9-30 (method-of-object a0-96 get-current-continue-forced)) + (set! v0-30 (get-current-continue-forced obj)) + (set! t0-3 v0-30) + (set! t1-3 arg1) + (set! t9-31 s2-2) + (set! a0-97 s1-2) + (set! a1-48 s0-1) + (set! a2-14 sv-112) + (set! a3-5 arg0) + (call! a0-97 a1-48 a2-14 a3-5 t0-3 t1-3) + (set! v1-157 (-> s3-2 ppointer)) + ) + v1-157 + ) + (set! v1-163 (-> v1-157 0)) + (set! (-> v1-163 mask) (the-as process-mask 0)) + (set! a0-99 0) + ) + (set! t9-32 set-master-mode) + (set! a0-100 'game) + (set! v0-17 (call! a0-100)) + ) + ) + (set! v1-164 v0-17) + (label cfg-131) + (set! v0-32 obj) + (ret-value v0-32) + ) + +;; definition for method 10 of type game-info +(defmethod give game-info ((obj game-info) (arg0 symbol) (arg1 float) (arg2 handle)) + (local-vars (ammo-max float)) + (with-pp + (case arg0 + (('life) + (if (>= arg1 0.0) + (seek! (-> obj life) (-> obj life-max) arg1) + (seek! (-> obj life) 0.0 (- arg1)) + ) + (-> obj life) + ) + (('money) + (if (< 0.0 arg1) + (+! (-> obj money-total) arg1) + ) + (set! (-> obj money) (+ (-> obj money) arg1)) + ) + (('gem) + (when (< 0.0 arg1) + (+! (-> obj gem-total) arg1) + (let ((v1-7 (handle->process arg2))) + (if (and v1-7 (-> v1-7 entity)) + (toggle-status (-> v1-7 entity) (entity-perm-status save) #t) + ) + ) + ) + (set! (-> obj gem) (+ (-> obj gem) arg1)) + ) + (('skill) + (if (< 0.0 arg1) + (+! (-> obj skill-total) arg1) + ) + (set! (-> obj skill) (+ (-> obj skill) arg1)) + ) + (('karma) + (set! (-> obj karma) (+ (-> obj karma) arg1)) + ) + (('eco-pill-dark) + (cond + ((< 0.0 arg1) + (seek! (-> obj eco-pill-dark) (-> *FACT-bank* eco-pill-dark-max-default) arg1) + (if (and (demo?) (= (-> obj eco-pill-dark) (-> *FACT-bank* eco-pill-dark-max-default))) + (talker-spawn-func (-> *talker-speech* 79) *entity-pool* (target-pos 0) (the-as region #f)) + ) + (+! (-> obj eco-pill-dark-total) arg1) + ) + (else + (seek! (-> obj eco-pill-dark) 0.0 (- arg1)) + ) + ) + (-> obj eco-pill-dark) + ) + (('fuel-cell) + (let ((task (the int arg1))) + (when (not (or (task-complete? obj (the-as game-task task)) (>= (the-as uint 1) (the-as uint task)))) + (set! (-> obj task-deaths) 0) + (set! (-> obj task-pickup-time) (-> *display* game-clock frame-counter)) + (set! (-> obj unknown-array1 task) (-> *display* game-clock frame-counter)) + (set! (-> obj fuel) (+ 1.0 (-> obj fuel))) + (logior! (-> obj task-perm-list data task status) (entity-perm-status complete)) + (task-resolution-close! (the-as game-task task)) + ) + ) + (-> obj fuel) + ) + (('buzzer) + (logand (the int arg1) #xffff) + (sar (the int arg1) 16) + 0.0 + ) + (('ammo-yellow 'ammo-red 'ammo-blue 'ammo-dark) + 0.0 + (let* ((v1-41 arg0) + (ammo-kind (cond + ((= v1-41 'ammo-yellow) + (set! ammo-max (-> *FACT-bank* ammo-yellow-max)) + 0 + ) + ((= v1-41 'ammo-red) + (set! ammo-max (-> *FACT-bank* ammo-red-max)) + 1 + ) + ((= v1-41 'ammo-blue) + (set! ammo-max (-> *FACT-bank* ammo-blue-max)) + 2 + ) + (else + (set! ammo-max (-> *FACT-bank* ammo-dark-max)) + 3 + ) + ) + ) + ) + (if (logtest? (-> obj features) (game-feature gun-upgrade-ammo)) + (set! ammo-max (* 2.0 ammo-max)) + ) + (if (>= arg1 0.0) + (seek! (-> obj gun-ammo ammo-kind) ammo-max arg1) + (seek! (-> obj gun-ammo ammo-kind) 0.0 (fabs arg1)) + ) + (set! (-> obj gun-ammo ammo-kind) (fmin (-> obj gun-ammo ammo-kind) ammo-max)) + (-> obj gun-ammo ammo-kind) + ) + ) + (('gun-yellow) + (let ((a1-13 (new 'stack-no-clear 'event-message-block))) + (set! (-> a1-13 from) (process->ppointer pp)) + (set! (-> a1-13 num-params) 0) + (set! (-> a1-13 message) 'complete) + (let ((t9-12 send-event-function) + (v1-71 (-> *game-info* sub-task-list 43)) + ) + (t9-12 + (handle->process (if (-> v1-71 info) + (-> v1-71 info manager) + (the-as handle #f) + ) + ) + a1-13 + ) + ) + ) + (if (logtest? (logand (-> *setting-control* user-current features) (game-feature gun-yellow)) (-> obj features)) + 1.0 + 0.0 + ) + ) + (('gun-dark) + (let ((a1-14 (new 'stack-no-clear 'event-message-block))) + (set! (-> a1-14 from) (process->ppointer pp)) + (set! (-> a1-14 num-params) 0) + (set! (-> a1-14 message) 'complete) + (let ((t9-13 send-event-function) + (v1-85 (-> *game-info* sub-task-list 177)) + ) + (t9-13 + (handle->process (if (-> v1-85 info) + (-> v1-85 info manager) + (the-as handle #f) + ) + ) + a1-14 + ) + ) + ) + (if (logtest? (logand (-> *setting-control* user-current features) (game-feature gun-dark)) (-> obj features)) + 1.0 + 0.0 + ) + ) + (('board) + (cond + ((< 0.0 arg1) + (logior! (-> obj features) (game-feature board)) + ) + ((< arg1 0.0) + (logclear! (-> obj features) (game-feature board)) + ) + ) + (if (logtest? (-> obj features) (game-feature board)) + 1.0 + 0.0 + ) + ) + (('shield) + (if (>= arg1 0.0) + (seek! (-> obj shield) (-> *FACT-bank* shield-max) arg1) + (seek! (-> obj shield) 0.0 (fabs arg1)) + ) + (-> obj shield) + ) + ) + ) + ) + +;; definition for method 22 of type game-info +(defmethod game-info-method-22 game-info ((obj game-info)) + 0 + ) + +;; definition for method 10 of type fact-info-target +;; WARN: Return type mismatch float vs none. +(defmethod reset! fact-info-target ((obj fact-info-target) (arg0 symbol)) + (when (or (not arg0) (= arg0 'eco)) + (set! (-> obj eco-timeout) 0) + (set! (-> obj eco-level) 0.0) + (set! (-> obj eco-pickup-time) (-> *display* game-clock frame-counter)) + ) + (when (or (not arg0) (= arg0 'health) (= arg0 'eco-green)) + (set! (-> obj health-max) (-> *FACT-bank* health-max-default)) + (set! (-> obj health) (-> obj health-max)) + (set! (-> obj health-pickup-time) (seconds -100)) + ) + (when (or (not arg0) (= arg0 'buzzer)) + (set! (-> obj buzzer-max) (-> *FACT-bank* buzzer-max-default)) + (set! (-> obj buzzer) 0.0) + ) + (when (or (not arg0) (= arg0 'eco-pill-green)) + (set! (-> obj eco-pill-green-max) (-> *FACT-bank* eco-pill-green-max-default)) + (set! (-> obj eco-pill-green) 0.0) + ) + (when (or (not arg0) (= arg0 'trick-judge)) + (set! (-> obj trick-point-start-time) 0) + (set! (-> obj trick-point-duration) 0) + 0 + ) + (when (or (not arg0) (= arg0 'trick-point)) + (set! (-> obj trick-point) 0.0) + (set! (-> (the-as target (-> obj process)) game score) 0.0) + ) + (none) + ) + +;; definition for method 11 of type fact-info-target +(defmethod pickup-collectable! fact-info-target ((obj fact-info-target) (arg0 pickup-type) (arg1 float) (arg2 handle)) + (case arg0 + (((pickup-type health) (pickup-type eco-green)) + (cond + ((>= arg1 0.0) + (when (< 0.0 arg1) + (if (or (!= (handle->process arg2) (handle->process (-> obj eco-source))) + (>= (- (-> *display* game-clock frame-counter) (-> obj eco-source-time)) (seconds 0.5)) + ) + (sound-play "get-green-eco") + ) + (send-event (-> obj process) 'color-effect 'health 60) + (when (handle->process arg2) + (set! (-> obj eco-source) arg2) + (set! (-> obj eco-source-time) (-> *display* game-clock frame-counter)) + ) + ) + (set! (-> obj health-pickup-time) (-> *display* game-clock frame-counter)) + (seek! (-> obj health) (-> obj health-max) arg1) + ) + (else + (seek! (-> obj health) 0.0 (- arg1)) + (if (>= arg1 -10.0) + (pickup-collectable! obj (pickup-type eco-pill-green) 0.0 arg2) + ) + (if (= (-> obj health) 0.0) + (give (-> (the-as target (-> obj process)) game) 'life (- (-> *GAME-bank* life-single-inc)) arg2) + ) + ) + ) + (-> obj health) + ) + (((pickup-type eco-pill-green)) + (when (>= arg1 0.0) + (set! (-> obj eco-pill-green-pickup-time) (-> *display* game-clock frame-counter)) + (seek! (-> obj eco-pill-green) (-> obj eco-pill-green-max) arg1) + (when (and (>= (-> obj eco-pill-green) (-> *FACT-bank* eco-pill-green-max-default)) + (< (-> obj health) (-> obj health-max)) + ) + (set! (-> obj eco-pill-green) (- (-> obj eco-pill-green) (-> *FACT-bank* eco-pill-green-max-default))) + (pickup-collectable! + obj + (pickup-type health) + (-> *FACT-bank* health-small-inc) + (process->handle (-> obj process)) + ) + ) + ) + (-> obj eco-pill-green) + ) + (((pickup-type eco-pill-dark)) + (when (< 0.0 arg1) + (if (>= (- (-> *display* game-clock frame-counter) (-> obj eco-pill-dark-pickup-time)) (seconds 0.05)) + (sound-play "get-dark-eco") + ) + (send-event (-> obj process) 'color-effect 'eco-pill-dark 60) + (cond + ((>= (- (-> *display* game-clock frame-counter) (-> (the-as target (-> obj process)) shock-effect-time)) + (seconds 0.1) + ) + (set! (-> (the-as target (-> obj process)) shock-effect-time) (-> *display* game-clock frame-counter)) + (let ((s3-3 (rand-vu-int-range 0 2))) + (dotimes (s2-2 s3-3) + (process-drawable-shock-effect + (the-as process-drawable (-> obj process)) + *lightning-darkjak-pill* + lightning-probe-callback + (the-as sparticle-launcher #f) + 0 + 0 + 40960.0 + ) + ) + ) + ) + (else + (send-event (handle->process arg2) 'effect #f) + ) + ) + (set! (-> obj eco-pill-dark-pickup-time) (-> *display* game-clock frame-counter)) + ) + (give (-> (the-as target (-> obj process)) game) 'eco-pill-dark arg1 arg2) + ) + (((pickup-type trick-judge)) + (when (< 0.0 arg1) + (set! (-> obj trick-point) 0.0) + (set! (-> obj trick-point-start-time) (-> *display* game-clock frame-counter)) + (set! (-> obj trick-point-duration) (the-as time-frame (the int arg1))) + ) + (the float (-> obj trick-point-duration)) + ) + (((pickup-type trick-point)) + (when (nonzero? (-> obj trick-point-duration)) + (set! (-> obj trick-point-pickup-time) (-> *display* game-clock frame-counter)) + (set! (-> obj trick-point) (fmax 0.0 (fmin (+ (-> obj trick-point) arg1) (-> *FACT-bank* trick-point-max)))) + (when (!= arg1 0.0) + (sound-play "get-trick-point") + (process-spawn-function + process + (lambda :behavior target + ((arg0 symbol) (arg1 symbol) (arg2 int)) + (let ((s3-0 (new 'stack-no-clear 'vector4w))) + (set! (-> s3-0 quad) (the-as uint128 0)) + (when (transform-point-qword! s3-0 (the-as vector arg0)) + (let ((s5-0 + (new + 'stack + 'font-context + *font-default-matrix* + (+ (the int (/ (the float (+ (/ (the-as int (-> s3-0 x)) 16) -1792)) (-> *video-params* relative-x-scale))) + -48 + ) + (the-as int (+ (/ (the-as int (-> s3-0 y)) 16) -1855)) + 0.0 + (font-color gold-#ba9200) + (font-flags shadow kerning) + ) + ) + ) + (set! (-> s5-0 scale) (lerp-scale 0.6 1.0 (the-as float arg1) 50.0 8000.0)) + (let ((v1-9 s5-0)) + (set! (-> v1-9 origin z) (the float (/ (the-as int (-> s3-0 z)) 16))) + ) + (set! (-> s5-0 flags) (font-flags shadow kerning large)) + (let ((s3-1 (-> self clock frame-counter))) + (until (>= (- (-> self clock frame-counter) s3-1) (+ arg2 -75)) + (+! (-> s5-0 origin y) (* -120.0 (-> self clock seconds-per-frame))) + (let ((s2-0 print-game-text)) + (format (clear *temp-string*) "~4,,0f" arg1) + (s2-0 *temp-string* s5-0 #f 44 318) + ) + (suspend) + ) + ) + (let ((s4-1 (-> self clock frame-counter))) + (until (>= (- (-> self clock frame-counter) s4-1) (seconds 0.25)) + (set! (-> s5-0 alpha) (lerp-scale 1.0 0.0 (the float (- (-> self clock frame-counter) s4-1)) 0.0 150.0)) + (+! (-> s5-0 origin y) (* -120.0 (-> self clock seconds-per-frame))) + (let ((s3-2 print-game-text)) + (format (clear *temp-string*) "~4,,0f" arg1) + (s3-2 *temp-string* s5-0 #f 44 318) + ) + (suspend) + ) + ) + ) + ) + ) + (none) + ) + (get-trans (the-as target (-> obj process)) 3) + arg1 + 510 + :to (-> obj process) + ) + ) + ) + (-> obj trick-point) + ) + (((pickup-type money)) + (when (< 0.0 arg1) + (if (>= (- (-> *display* game-clock frame-counter) (-> obj money-pickup-time)) (seconds 0.05)) + (sound-play "money-pickup") + ) + (set! (-> obj money-pickup-time) (-> *display* game-clock frame-counter)) + ) + (give (-> (the-as target (-> obj process)) game) 'money arg1 arg2) + ) + (((pickup-type gem)) + (when (< 0.0 arg1) + (if (>= (- (-> *display* game-clock frame-counter) (-> obj gem-pickup-time)) (seconds 0.05)) + (sound-play "gem-pickup") + ) + (set! (-> obj gem-pickup-time) (-> *display* game-clock frame-counter)) + ) + (give (-> (the-as target (-> obj process)) game) 'gem arg1 arg2) + ) + (((pickup-type skill)) + (when (< 0.0 arg1) + (if (>= (- (-> *display* game-clock frame-counter) (-> obj skill-pickup-time)) (seconds 0.05)) + (sound-play "skill-pickup") + ) + (set! (-> obj skill-pickup-time) (-> *display* game-clock frame-counter)) + ) + (give (-> (the-as target (-> obj process)) game) 'skill arg1 arg2) + ) + (((pickup-type karma)) + (if (!= arg1 0.0) + (set! (-> obj karma-pickup-time) (-> *display* game-clock frame-counter)) + ) + (give (-> (the-as target (-> obj process)) game) 'karma arg1 arg2) + ) + (((pickup-type fuel-cell)) + (let ((s3-9 (the int arg1))) + (if (not (or (task-complete? (-> (the-as target (-> obj process)) game) (the-as game-task s3-9)) + (>= (the-as uint 1) (the-as uint s3-9)) + ) + ) + (set! (-> obj task-pickup-time) (-> *display* game-clock frame-counter)) + ) + ) + (give (-> (the-as target (-> obj process)) game) 'fuel-cell arg1 arg2) + ) + (((pickup-type buzzer)) + (let ((f0-41 (give (-> (the-as target (-> obj process)) game) 'buzzer arg1 arg2))) + (if (!= f0-41 (-> obj buzzer)) + (set! (-> obj buzzer-pickup-time) (-> *display* game-clock frame-counter)) + ) + (set! (-> obj buzzer) f0-41) + ) + (-> obj buzzer) + ) + (((pickup-type ammo-yellow) (pickup-type ammo-red) (pickup-type ammo-blue) (pickup-type ammo-dark)) + (if (< 0.0 arg1) + (set! (-> obj ammo-pickup-time) (-> *display* game-clock frame-counter)) + ) + (let ((ammo-kind (cond + ((= arg0 (pickup-type ammo-yellow)) + 'ammo-yellow + ) + ((= arg0 (pickup-type ammo-red)) + 'ammo-red + ) + ((= arg0 (pickup-type ammo-blue)) + 'ammo-blue + ) + (else + 'ammo-dark + ) + ) + ) + ) + (if (< 0.0 arg1) + (send-event (-> obj process) 'color-effect ammo-kind 60) + ) + (give (-> (the-as target (-> obj process)) game) ammo-kind arg1 arg2) + ) + ) + (((pickup-type gun-yellow) + (pickup-type gun-red) + (pickup-type gun-blue) + (pickup-type gun-dark) + (pickup-type board) + ) + (let ((v1-192 arg0)) + (give + (-> (the-as target (-> obj process)) game) + (cond + ((= v1-192 (pickup-type gun-yellow)) + 'gun-yellow + ) + ((= v1-192 (pickup-type gun-red)) + 'gun-red + ) + ((= v1-192 (pickup-type gun-blue)) + 'gun-blue + ) + ((= v1-192 (pickup-type gun-dark)) + 'gun-dark + ) + (else + 'board + ) + ) + arg1 + arg2 + ) + ) + ) + (((pickup-type shield)) + (if (< 0.0 arg1) + (set! (-> obj shield-pickup-time) (-> *display* game-clock frame-counter)) + ) + (give (-> (the-as target (-> obj process)) game) 'shield arg1 arg2) + ) + (((pickup-type eco-red) (pickup-type eco-blue) (pickup-type eco-yellow)) + (if (= arg1 0.0) + (return (if (= (-> obj eco-type) arg0) + (-> obj eco-level) + 0.0 + ) + ) + ) + (when (!= (-> obj eco-type) arg0) + (set! (-> obj eco-level) 0.0) + (set! (-> obj eco-timeout) 0) + 0 + ) + (set! (-> obj eco-type) (the-as int arg0)) + (let ((f0-49 (-> obj eco-level))) + (set! (-> obj eco-level) 1.0) + (when (and (= f0-49 0.0) (< 0.0 (-> obj eco-level))) + (set! (-> obj eco-pickup-time) (-> *display* game-clock frame-counter)) + (send-event (-> obj process) 'reset-collide) + ) + ) + (set! (-> obj eco-timeout) + (the-as + time-frame + (min + (+ (-> obj eco-timeout) (* (the-as int (-> *FACT-bank* eco-single-timeout)) (the int arg1))) + (the-as + time-frame + (+ (-> *FACT-bank* eco-full-timeout) (- (-> *display* game-clock frame-counter) (-> obj eco-pickup-time))) + ) + ) + ) + ) + (if (>= (- (-> obj eco-timeout) (- (-> *display* game-clock frame-counter) (-> obj eco-pickup-time))) + (the-as time-frame (-> *FACT-bank* eco-full-timeout)) + ) + (set! (-> obj eco-level) 2.0) + ) + (when (not (and (= (handle->process arg2) (handle->process (-> obj eco-source))) + (< (- (-> *display* game-clock frame-counter) (-> obj eco-source-time)) (seconds 0.5)) + ) + ) + (cpad-set-buzz! (-> *cpad-list* cpads 0) 1 127 (seconds 0.2)) + (cpad-set-buzz! (-> *cpad-list* cpads 0) 0 17 (seconds 0.2)) + (case arg0 + (((pickup-type eco-blue)) + (sound-play "get-blue-eco") + ) + (((pickup-type eco-green) (pickup-type health)) + (sound-play "get-green-eco") + ) + (((pickup-type eco-yellow)) + (sound-play "get-yellow-eco") + ) + (((pickup-type eco-red)) + (sound-play "get-red-eco") + ) + ) + ) + (set! (-> obj eco-source) arg2) + (set! (-> obj eco-source-time) (-> *display* game-clock frame-counter)) + (-> obj eco-level) + ) + (else + ((method-of-type fact-info pickup-collectable!) obj arg0 arg1 arg2) + ) + ) + ) + +;; definition for method 14 of type game-info +(defmethod actor-perm game-info ((obj game-info) (arg0 actor-id)) + (let ((game-perms (-> obj perm-list))) + (countdown (i (-> game-perms length)) + (if (= arg0 (-> game-perms data i aid)) + (return (-> game-perms data i)) + ) + ) + ) + (the-as entity-perm #f) + ) + +;; definition for method 16 of type game-info +;; INFO: Used lq/sq +(defmethod copy-perms-from-level! game-info ((obj game-info) (arg0 level)) + (let ((game-perms (-> obj perm-list)) + (level-entities (-> arg0 bsp level entity)) + ) + (dotimes (i (-> level-entities length)) + (let ((entity-perm (-> level-entities data i entity extra perm))) + (when (or (nonzero? (-> entity-perm task)) (logtest? (-> entity-perm status) (entity-perm-status save))) + (let ((actor-perm (actor-perm obj (-> entity-perm aid)))) + (cond + (actor-perm + (set! (-> actor-perm quad) (-> entity-perm quad)) + ) + ((< (-> game-perms length) (-> game-perms allocated-length)) + (set! (-> game-perms data (-> game-perms length) quad) (-> entity-perm quad)) + (+! (-> game-perms length) 1) + ) + ) + ) + ) + ) + ) + ) + 0 + ) + +;; definition for method 17 of type game-info +;; INFO: Used lq/sq +(defmethod copy-perms-to-level! game-info ((obj game-info) (arg0 level)) + (let ((level-entities (-> arg0 bsp level entity))) + (dotimes (i (-> level-entities length)) + (let* ((entity-perm (-> level-entities data i entity extra perm)) + (actor-perm (actor-perm obj (-> entity-perm aid))) + ) + (when actor-perm + (set! (-> entity-perm quad) (-> actor-perm quad)) + (update entity-perm 'try (entity-perm-status bit-0 bit-1 dead no-kill bit-5 subtask-complete bit-9 bit-12)) + ) + ) + ) + ) + 0 + ) + +;; definition for method 2 of type continue-point +(defmethod print continue-point ((obj continue-point)) + (format #t "#<~A ~S @ #x~X>" (-> obj type) (-> obj name) obj) + obj + ) + +;; definition for method 9 of type continue-point +;; INFO: Used lq/sq +(defmethod debug-draw continue-point ((obj continue-point)) + (add-debug-x #t (bucket-id debug-no-zbuf1) (-> obj trans) (new 'static 'rgba :r #xff :a #x80)) + (add-debug-text-3d + #t + (bucket-id debug-no-zbuf1) + (-> obj name) + (-> obj trans) + (font-color #dadada) + (new 'static 'vector2h :data (new 'static 'array int16 2 0 8)) + ) + (let ((a3-2 (vector-z-quaternion! (new-stack-vector0) (the-as quaternion (-> obj quat))))) + (add-debug-vector + #t + (bucket-id debug-no-zbuf1) + (-> obj trans) + a3-2 + (meters 2) + (new 'static 'rgba :r #xff :g #x80 :a #x80) + ) + ) + 0 + ) + +;; definition (debug) for function trsq->continue-point +(defun-debug trsq->continue-point ((arg0 trsq)) + (let ((v1-1 (level-get-target-inside *level*))) + (format #t "~%(static-continue-point ~A ()~%" (symbol->string (-> v1-1 name))) + ) + (format #t " (target ~m ~m ~m " (-> arg0 trans x) (-> arg0 trans y) (-> arg0 trans z)) + (format #t "~f ~f ~f ~f)~%" (-> arg0 quat x) (-> arg0 quat y) (-> arg0 quat z) (-> arg0 quat w)) + (let ((gp-1 *math-camera*)) + (format + #t + " (camera ~m ~m ~m ~f ~f ~f " + (-> gp-1 trans x) + (-> gp-1 trans y) + (-> gp-1 trans z) + (-> gp-1 inv-camera-rot vector 0 x) + (-> gp-1 inv-camera-rot vector 0 y) + (-> gp-1 inv-camera-rot vector 0 z) + ) + (format + #t + "~f ~f ~f ~f ~f ~f)~%" + (-> gp-1 inv-camera-rot vector 1 x) + (-> gp-1 inv-camera-rot vector 1 y) + (-> gp-1 inv-camera-rot vector 1 z) + (-> gp-1 inv-camera-rot vector 2 x) + (-> gp-1 inv-camera-rot vector 2 y) + (-> gp-1 inv-camera-rot vector 2 z) + ) + ) + (let ((gp-2 format) + (s5-0 #t) + (s4-0 " (load '~A ") + (v1-7 (lookup-level-info (-> *load-state* vis-nick))) + ) + (gp-2 s5-0 s4-0 (if v1-7 + (-> v1-7 name) + ) + ) + ) + (dotimes (gp-3 4) + (let ((v1-10 (lookup-level-info (-> *load-state* want gp-3 name)))) + (if (and v1-10 (!= (-> v1-10 memory-mode) 4)) + (format #t "'~A '~A " (-> *load-state* want gp-3 name) (-> *load-state* want gp-3 display?)) + (format #t "#f #f ") + ) + ) + ) + (format #t ")~% (sound ") + (dotimes (gp-4 3) + (format #t "~A " (-> *load-state* want-sound gp-4)) + ) + (format #t ")~%)~%") + 0 + ) + +;; definition for function position->stream +;; WARN: Return type mismatch int vs none. +(defun position->stream ((arg0 string) (arg1 symbol) (arg2 symbol)) + (format + arg0 + "bug-report ~S ~S ~DK " + *user* + arg1 + (shr (* (dma-buffer-length (-> *display* frames (-> *display* last-screen) global-buf)) 16) 10) + ) + (if arg2 + (format arg0 "~%") + ) + (let* ((s4-1 format) + (s3-1 arg0) + (s2-1 "nick ~S continue ~S ") + (v1-9 (lookup-level-info (-> *load-state* vis-nick))) + (a2-2 (if v1-9 + (-> v1-9 name) + ) + ) + (v1-11 (-> *game-info* current-continue)) + ) + (s4-1 s3-1 s2-1 a2-2 (if v1-11 + (-> v1-11 name) + ) + ) + ) + (if arg2 + (format arg0 "~%") + ) + (dotimes (s4-2 6) + (if (or (= (-> *level* level s4-2 status) 'active) + (= (-> *level* level s4-2 status) 'alive) + (= (-> *level* level s4-2 status) 'loaded) + ) + (format arg0 "level ~D ~-8A ~-8A " s4-2 (-> *level* level s4-2 name) (-> *level* level s4-2 display?)) + (format arg0 "level ~D ~-8A ~-8A " s4-2 #f #f) + ) + (if arg2 + (format arg0 "~%") + ) + ) + (format arg0 "music ~-8S sound " (-> *setting-control* user-current music)) + (dotimes (s4-3 3) + (format arg0 "~-8S " (-> *level* sound-bank s4-3)) + ) + (if arg2 + (format arg0 "~%") + ) + (let ((v1-41 (target-pos 0))) + (format arg0 "target ~m ~m ~m " (-> v1-41 x) (-> v1-41 y) (-> v1-41 z)) + ) + (if arg2 + (format arg0 "~%") + ) + (let ((v1-45 (math-camera-pos))) + (format arg0 "camera-trans ~m ~m ~m " (-> v1-45 x) (-> v1-45 y) (-> v1-45 z)) + ) + (if arg2 + (format arg0 "~%") + ) + (let* ((a1-15 (math-camera-matrix)) + (v1-49 (matrix->quaternion (new 'stack-no-clear 'quaternion) a1-15)) + ) + (format arg0 "camera-rot ~f ~f ~f ~f" (-> v1-49 x) (-> v1-49 y) (-> v1-49 z) (-> v1-49 w)) + ) + (format arg0 "~%") + 0 + (none) + ) + +;; definition for function bug-report-display +(defun bug-report-display ((arg0 symbol)) + (case *bug-report-output-mode* + (('*stdcon*) + (let ((conts + " " + ) + ) + (clear conts) + (position->stream conts arg0 #t) + (process-spawn-function + process + (lambda :behavior process + ((arg0 string)) + (let ((s5-0 (-> self clock frame-counter))) + (until (>= (- (-> self clock frame-counter) s5-0) (seconds 10)) + (format *stdcon* "~S~%" arg0) + (suspend) + ) + ) + (none) + ) + conts + ) + ) + ) + (('file-stream) + (format (clear *temp-string*) "db/bug-report/bug-report-~S.txt" *user*) + *temp-string* + (let ((s5-2 (new 'stack 'file-stream *temp-string* 'append))) + (file-stream-seek s5-2 0 2) + (position->stream (the-as string s5-2) arg0 #f) + (file-stream-close s5-2) + ) + ) + (else + (position->stream (the-as string #t) arg0 #f) + ) + ) + 0 + ) + +;; definition (debug) for function print-continues +(defun-debug print-continues () + (let ((levels *level-load-list*)) + (while (not (null? levels)) + (let ((conts (-> (the-as level-load-info (-> (the-as symbol (car levels)) value)) continues))) + (while (not (null? conts)) + (let ((cont (the-as continue-point (car conts)))) + (if (zero? (logand (-> cont flags) (continue-flags cf2))) + (format #t "~S~%" (-> cont name)) + ) + ) + (set! conts (cdr conts)) + ) + ) + (set! levels (cdr levels)) + ) + ) + 0 + ) + +;; definition for method 2 of type game-task-info +(defmethod print game-task-info ((obj game-task-info)) + (format #t "#" (-> obj name) obj) + obj + ) + +;; definition for method 18 of type game-info +;; INFO: Used lq/sq +(defmethod game-info-method-18 game-info ((obj game-info) (arg0 symbol)) + (local-vars + (sv-16 int) + (sv-24 int) + (sv-32 int) + (sv-40 int) + (sv-48 int) + (sv-56 int) + (sv-64 string) + (sv-80 string) + (sv-96 string) + (sv-112 string) + ) + (inspect obj) + (when (or (not arg0) (= arg0 'game-task)) + (format #t "~Tgame-task:~%") + (format #t "~T~T~-32S intro play death gem skill~%" "task") + (format #t "~T~T--------------------~%") + (let ((s4-0 2) + (s3-0 109) + ) + (while (>= (the-as uint s3-0) (the-as uint s4-0)) + (when (task-complete? obj (the-as game-task s4-0)) + (set! sv-16 0) + (set! sv-24 0) + (set! sv-32 0) + (set! sv-40 0) + (set! sv-48 0) + (set! sv-56 0) + (let ((game-subtasks (-> *game-info* sub-task-list))) + (dotimes (i (-> game-subtasks length)) + (when (nonzero? i) + (let ((subtasks (-> game-subtasks i))) + (when (= (-> subtasks task) s4-0) + (when (zero? sv-24) + (set! sv-24 (the-as int (-> subtasks close-time))) + (set! sv-16 (the-as int (-> subtasks close-time))) + ) + (when (logtest? (-> subtasks flags) (game-task-node-flag closed)) + (set! sv-32 (the-as int (-> subtasks close-time))) + (set! sv-40 (the-as int (-> subtasks gem-count))) + (set! sv-48 (the-as int (-> subtasks skill-count))) + ) + (set! sv-56 (+ sv-56 (-> subtasks death-count))) + (if (logtest? (-> subtasks flags) (game-task-node-flag close-task)) + (goto cfg-19) + ) + ) + ) + ) + ) + ) + (label cfg-19) + (if (nonzero? (-> obj task-close-times s4-0)) + (set! sv-24 (max sv-24 (-> obj task-close-times s4-0))) + ) + (format + #t + "~T~T~-32S ~6,,1f min ~6,,1f min ~3d ~3d ~3d~%" + (game-task->string (the-as game-task s4-0)) + (* 0.000055555556 (the float (- sv-24 sv-16))) + (* 0.000055555556 (the float (- sv-32 sv-24))) + sv-56 + sv-40 + sv-48 + ) + ) + (+! s4-0 1) + ) + ) + ) + (when (= arg0 'game-task-node) + (let ((s4-1 (-> *game-info* sub-task-list))) + (dotimes (s3-1 (-> s4-1 length)) + (when (nonzero? s3-1) + (let ((s2-1 (-> s4-1 s3-1)) + (s1-1 format) + (s0-1 #t) + ) + (set! sv-64 "~-55S ~-16S ~S ~A~%") + (set! sv-80 (-> s2-1 name)) + (cond + ((logtest? (-> s2-1 flags) (game-task-node-flag closed)) + (set! sv-96 "closed") + ) + ((open? s2-1) + (set! sv-96 "open") + ) + (else + (set! sv-96 "inactive") + ) + ) + (if (task-complete? *game-info* (-> s2-1 task)) + (set! sv-112 "res") + (set! sv-112 " ") + ) + (let ((t1-1 (lookup-text! *common-text* (-> s2-1 description) #f))) + (s1-1 s0-1 sv-64 sv-80 sv-96 sv-112 t1-1) + ) + ) + ) + ) + ) + ) + (when (or (not arg0) (= arg0 'level)) + (format #t "~Tlevel:~%") + (format #t "~T~T~-32S death in-time enter-time~%" "level") + (format #t "~T~T--------------------~%") + (dotimes (s4-2 (-> *task-level* length)) + (format + #t + "~T~T~-32S ~3d ~6,,1f min ~6,,1f min~%" + (-> *task-level* s4-2) + (-> obj deaths-per-level s4-2) + (* 0.000055555556 (the float (-> obj task-in-times s4-2))) + (* 0.000055555556 (the float (-> obj task-enter-times s4-2))) + ) + ) + ) + (when (or (not arg0) (= arg0 'score)) + (format #t "~Tscore:~%") + (format #t "~T~T--------------------~%") + (dotimes (s4-3 19) + (let ((v1-71 (get-game-score-ref obj s4-3)) + (t9-18 format) + (a0-26 #t) + (a1-24 "~T~T~-32S ~8,,0f ~8,,0f ~8,,0f~%") + (a2-22 s4-3) + ) + (t9-18 + a0-26 + a1-24 + (cond + ((= a2-22 16) + "reverse-race-1" + ) + ((= a2-22 7) + "gungame-dark" + ) + ((= a2-22 14) + "bush-port" + ) + ((= a2-22 12) + "bush-race-2" + ) + ((= a2-22 9) + "whack" + ) + ((= a2-22 1) + "race-1" + ) + ((= a2-22 11) + "bush-race-1" + ) + ((= a2-22 4) + "gungame-red" + ) + ((= a2-22 6) + "gungame-blue" + ) + ((= a2-22 5) + "gungame-yellow" + ) + ((= a2-22 15) + "bush-errol" + ) + ((= a2-22 2) + "race-2" + ) + ((zero? a2-22) + "none" + ) + ((= a2-22 10) + "judge-skatea" + ) + ((= a2-22 17) + "reverse-race-2" + ) + ((= a2-22 18) + "reverse-race-3" + ) + ((= a2-22 13) + "bush-race-3" + ) + ((= a2-22 8) + "onin-game" + ) + ((= a2-22 3) + "race-3" + ) + (else + "*unknown*" + ) + ) + (-> v1-71 0) + (-> v1-71 1) + (-> v1-71 2) + ) + ) + ) + ) + (when (= arg0 'entity-perm) + (format #t "~Tentity-perm:~%") + (let ((game-perms (-> obj perm-list))) + (dotimes (s4-4 (-> game-perms length)) + (format #t "~T~T~`entity-perm`P~%" (-> game-perms data s4-4)) + ) + ) + ) + obj + ) + +;; definition for method 25 of type game-info +(defmethod you-suck-stage game-info ((obj game-info) (arg0 symbol)) + (cond + ((logtest? (-> *game-info* secrets) (game-secrets hero-mode)) + 0 + ) + (else + (let ((game-subtasks (-> *game-info* sub-task-list))) + (dotimes (i (-> game-subtasks length)) + (when (nonzero? i) + (let ((subtask (-> game-subtasks i))) + (when (open? subtask) + (let ((cur-lev (level-get-target-inside *level*))) + (when (and cur-lev (= (-> cur-lev info taskname) (-> subtask level))) + (let* ((suck-death-count (if (zero? (-> subtask suck-death-count)) + 5 + (the-as int (-> subtask suck-death-count)) + ) + ) + (suck-death-stage (/ (the float (-> subtask death-count)) (the float suck-death-count))) + ) + (return (min 4 (the int suck-death-stage))) + ) + ) + ) + ) + ) + ) + ) + ) + 0 + ) + ) + ) + +;; definition for method 26 of type game-info +(defmethod you-suck-scale game-info ((obj game-info)) + (* 0.25 (the float (you-suck-stage obj #f))) + ) + +;; definition for method 9 of type cpad-info +(defmethod adjust-to-screen-flip cpad-info ((obj cpad-info)) + (when (logtest? (-> *game-info* secrets) (game-secrets hflip-screen)) + (set! (-> obj leftx) (- 255 (the-as int (-> obj leftx)))) + (set! (-> obj rightx) (- 255 (the-as int (-> obj rightx)))) + ) + 0 + ) + +;; definition for method 28 of type game-info +(defmethod game-info-method-28 game-info ((obj game-info) (arg0 game-score) (arg1 float)) + (when (!= arg1 0.0) + (let ((v1-3 (&+ (-> obj game-score data) (* (* arg0 8) 4)))) + (case arg0 + (((game-score race-1) + (game-score race-2) + (game-score race-3) + (game-score bush-race-1) + (game-score bush-race-2) + (game-score bush-race-3) + (game-score bush-port) + (game-score bush-errol) + (game-score reverse-race-1) + (game-score reverse-race-2) + (game-score reverse-race-3) + ) + (dotimes (a0-5 8) + (when (or (= (-> (&+ v1-3 (* a0-5 4)) 0) 0.0) (< arg1 (-> (&+ v1-3 (* a0-5 4)) 0))) + (let ((a1-19 7)) + (while (< a0-5 a1-19) + (set! (-> (&+ v1-3 (* a1-19 4)) 0) (-> (&+ v1-3 (* (+ a1-19 -1) 4)) 0)) + (+! a1-19 -1) + ) + ) + (set! (-> (&+ v1-3 (* a0-5 4)) 0) arg1) + (return a0-5) + ) + ) + ) + (else + (dotimes (a0-6 8) + (when (< (-> (&+ v1-3 (* a0-6 4)) 0) arg1) + (let ((a1-26 7)) + (while (< a0-6 a1-26) + (set! (-> (&+ v1-3 (* a1-26 4)) 0) (-> (&+ v1-3 (* (+ a1-26 -1) 4)) 0)) + (+! a1-26 -1) + ) + ) + (set! (-> (&+ v1-3 (* a0-6 4)) 0) arg1) + (return a0-6) + ) + ) + ) + ) + ) + ) + -1 + ) + +;; definition for method 29 of type game-info +(defmethod get-game-score-ref game-info ((obj game-info) (arg0 int)) + (&+ (-> obj game-score data) (* (* arg0 8) 4)) + ) + +;; definition for method 9 of type highscore-info +(defmethod get-rank highscore-info ((obj highscore-info) (arg0 float)) + (let ((v0-0 0)) + (cond + ((logtest? (-> obj flags) (highscore-flags time)) + (cond + ((= arg0 0.0) + ) + ((>= (-> obj gold-score) arg0) + (set! v0-0 3) + ) + ((>= (-> obj silver-score) arg0) + (set! v0-0 2) + ) + ((>= (-> obj bronze-score) arg0) + (set! v0-0 1) + ) + ) + ) + (else + (cond + ((>= arg0 (-> obj gold-score)) + (set! v0-0 3) + ) + ((>= arg0 (-> obj silver-score)) + (set! v0-0 2) + ) + ((>= arg0 (-> obj bronze-score)) + (set! v0-0 1) + ) + ) + ) + ) + v0-0 + ) + ) + +;; failed to figure out what this is: +(kmemopen global "game-info") + +;; failed to figure out what this is: +(let ((gp-0 *game-info*)) + (set! (-> gp-0 task-counter) (the-as uint 1)) + (when (zero? (-> gp-0 perm-list)) + (set! (-> gp-0 perm-list) (new 'global 'entity-perm-array 4096)) + (set! (-> gp-0 perm-list length) 0) + 0 + ) + (if (zero? (-> gp-0 unknown-pad6)) + (set! (-> gp-0 unknown-pad6) (new 'global 'boxed-array uint16 1860)) + ) + (when (zero? (-> gp-0 death-pos)) + (set! (-> gp-0 death-pos) (new 'global 'vector-array 64)) + (set! (-> gp-0 death-pos length) 0) + 0 + ) + (if (zero? (-> gp-0 display-text-handle)) + (set! (-> gp-0 display-text-handle) (the-as uint #f)) + ) + (if (zero? (-> gp-0 game-score)) + (set! (-> gp-0 game-score) (new 'global 'boxed-array float 152)) + ) + (if (not (-> gp-0 current-continue)) + (set-continue! gp-0 *default-continue* #f) + ) + (if (not (-> gp-0 last-continue)) + (set! (-> gp-0 last-continue) *default-continue*) + ) + (set! (-> gp-0 want-auto-save) #f) + (set! (-> gp-0 auto-save-proc) (the-as handle #f)) + (set! (-> gp-0 auto-save-status) (mc-status-code ok)) + (set! (-> gp-0 auto-save-card) 0) + (set! (-> gp-0 auto-save-which) -1) + (set! (-> gp-0 pov-camera-handle) (the-as handle #f)) + (set! (-> gp-0 other-camera-handle) (the-as handle #f)) + (set! (-> gp-0 features) + (game-feature unk-game-feature-06 gun-yellow gun-red gun-blue gun-dark board sidekick darkjak) + ) + (dotimes (v1-43 2) + (set! (-> gp-0 controller v1-43) (the-as handle #f)) + ) + (set! (-> gp-0 gun-ammo 0) (-> *FACT-bank* ammo-yellow-start)) + (set! (-> gp-0 gun-ammo 1) (-> *FACT-bank* ammo-red-start)) + (set! (-> gp-0 gun-ammo 2) (-> *FACT-bank* ammo-blue-start)) + (set! (-> gp-0 gun-ammo 3) (-> *FACT-bank* ammo-dark-start)) + (set! (-> gp-0 shield) 100.0) + (set! (-> gp-0 score) 0.0) + (set! (-> gp-0 score-owner) (the-as handle #f)) + (set! (-> gp-0 timer) 0) + (set! (-> gp-0 timer-flash) #f) + (set! (-> gp-0 timer-owner) (the-as handle #f)) + (set! (-> gp-0 counter) 0.0) + (set! (-> gp-0 counter-flash) #f) + (set! (-> gp-0 wanted-flash) #f) + (set! (-> gp-0 distance) 0.0) + ) + +;; failed to figure out what this is: +0 + +;; failed to figure out what this is: +(kmemclose) + +;; definition for symbol *highscore-info-array*, type (array highscore-info) +(define *highscore-info-array* + (new 'static 'boxed-array :type highscore-info + (new 'static 'highscore-info) + (new 'static 'highscore-info) + (new 'static 'highscore-info) + (new 'static 'highscore-info) + (new 'static 'highscore-info :award-scores (new 'static 'array float 3 8000.0 10000.0 12000.0)) + (new 'static 'highscore-info :award-scores (new 'static 'array float 3 9000.0 11000.0 13000.0)) + (new 'static 'highscore-info :award-scores (new 'static 'array float 3 11000.0 13000.0 15000.0)) + (new 'static 'highscore-info :award-scores (new 'static 'array float 3 11000.0 13000.0 15000.0)) + (new 'static 'highscore-info + :award-scores (new 'static 'array float 3 1000000000.0 1000000000.0 1000000000.0) + ) + (new 'static 'highscore-info + :award-scores (new 'static 'array float 3 1000000000.0 1000000000.0 1000000000.0) + ) + (new 'static 'highscore-info :award-scores (new 'static 'array float 3 50000.0 90000.0 120000.0)) + (new 'static 'highscore-info + :flags (highscore-flags time) + :award-scores (new 'static 'array float 3 142.0 138.0 133.0) + ) + (new 'static 'highscore-info + :flags (highscore-flags time) + :award-scores (new 'static 'array float 3 140.0 135.0 130.0) + ) + (new 'static 'highscore-info + :flags (highscore-flags time) + :award-scores (new 'static 'array float 3 149.0 144.0 139.0) + ) + (new 'static 'highscore-info + :flags (highscore-flags time) + :award-scores (new 'static 'array float 3 142.0 137.0 132.0) + ) + (new 'static 'highscore-info + :flags (highscore-flags time) + :award-scores (new 'static 'array float 3 137.0 132.0 127.0) + ) + (new 'static 'highscore-info + :flags (highscore-flags time) + :award-scores (new 'static 'array float 3 150.0 145.0 140.0) + ) + (new 'static 'highscore-info + :flags (highscore-flags time) + :award-scores (new 'static 'array float 3 155.0 150.0 145.0) + ) + (new 'static 'highscore-info + :flags (highscore-flags time) + :award-scores (new 'static 'array float 3 178.0 173.0 168.0) + ) + ) + ) diff --git a/test/decompiler/reference/jak2/engine/game/settings-h_REF.gc b/test/decompiler/reference/jak2/engine/game/settings-h_REF.gc index 52d2963830..68644c861e 100644 --- a/test/decompiler/reference/jak2/engine/game/settings-h_REF.gc +++ b/test/decompiler/reference/jak2/engine/game/settings-h_REF.gc @@ -43,7 +43,7 @@ (board symbol :offset-assert 156) (jump symbol :offset-assert 160) (speed-mult float :offset-assert 164) - (features uint64 :offset-assert 168) + (features game-feature :offset-assert 168) (sfx-volume float :offset-assert 176) (sfx-movie-volume float :offset-assert 180) (music-volume float :offset-assert 184) @@ -70,7 +70,7 @@ (allow-continue symbol :offset-assert 268) (spotlight-color rgba :offset-assert 272) (subtitle symbol :offset-assert 276) - (borrow symbol :offset-assert 280) + (borrow pair :offset-assert 280) (doorway symbol :offset-assert 284) (gen symbol :offset-assert 288) (half-speed symbol :offset-assert 292) diff --git a/test/decompiler/reference/jak2/engine/game/settings_REF.gc b/test/decompiler/reference/jak2/engine/game/settings_REF.gc index e5914a5aaa..19a034924f 100644 --- a/test/decompiler/reference/jak2/engine/game/settings_REF.gc +++ b/test/decompiler/reference/jak2/engine/game/settings_REF.gc @@ -440,7 +440,7 @@ (logclear! (-> obj features) arg3) ) (('abs) - (set! (-> obj features) arg3) + (set! (-> obj features) (the-as game-feature arg3)) ) ) ) @@ -464,7 +464,7 @@ (set! (-> obj race-minimap) (the-as int arg3)) ) (('borrow) - (set! (-> obj borrow) arg1) + (set! (-> obj borrow) (the-as pair arg1)) ) (('half-speed) (set! (-> obj half-speed) arg1) @@ -910,8 +910,7 @@ ;; definition for method 17 of type setting-control (defmethod apply-settings setting-control ((obj setting-control)) - *speech-control* - ((method-of-type speech-control speech-control-method-11)) + (speech-control-method-11 *speech-control*) (let ((s5-0 (-> obj user-current))) (let ((s4-0 (-> obj user-target))) (mem-copy! (the-as pointer s4-0) (the-as pointer (-> obj user-default)) 528) @@ -1413,7 +1412,7 @@ (set! (-> gp-0 allow-look-around) #t) (set! (-> gp-0 border-mode) #f) (set! (-> gp-0 region-mode) #t) - (set! (-> gp-0 borrow) (the-as symbol '())) + (set! (-> gp-0 borrow) '()) (set! (-> gp-0 sfx-volume) (* 0.01000001 f0-1)) (set! (-> gp-0 music-volume) (* 0.01000001 f0-1)) (set! (-> gp-0 dialog-volume) (* 0.01000001 f0-1)) @@ -1489,7 +1488,7 @@ (set! (-> gp-0 speed-mult) 1.0) (set! (-> gp-0 rain) 0.0) (set! (-> gp-0 snow) 0.0) - (set! (-> gp-0 features) (the-as uint -1)) + (set! (-> gp-0 features) (the-as game-feature -1)) (set! (-> gp-0 sound-flava) (the-as uint 0)) (set! (-> gp-0 sound-flava-priority) 0.0) (set! (-> gp-0 sound-reverb) 0.0) diff --git a/test/decompiler/reference/jak2/engine/game/task/game-task_REF.gc b/test/decompiler/reference/jak2/engine/game/task/game-task_REF.gc new file mode 100644 index 0000000000..5794284370 --- /dev/null +++ b/test/decompiler/reference/jak2/engine/game/task/game-task_REF.gc @@ -0,0 +1,12322 @@ +;;-*-Lisp-*- +(in-package goal) + +;; failed to figure out what this is: +(kmemopen global "game-info") + +;; failed to figure out what this is: +(let ((gp-0 *game-info*)) + (set! (-> gp-0 play-list) + (new 'static 'boxed-array :type game-task-info + (new 'static 'game-task-info :name "none" :pre-play-continue #f :play-continue #f :kiosk-play-continue #f) + (new 'static 'game-task-info :name "complete" :pre-play-continue #f :play-continue #f :kiosk-play-continue #f) + (new 'static 'game-task-info :name "dummy0" :pre-play-continue #f :play-continue #f :kiosk-play-continue #f) + (new 'static 'game-task-info + :name "eco-blue-button" + :pre-play-continue #f + :play-continue #f + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "eco-yellow-button" + :pre-play-continue #f + :play-continue #f + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "eco-red-button" + :pre-play-continue #f + :play-continue #f + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "fortress-escape" + :text-name (game-text-id text-x1b6) + :pre-play-node (game-task-node fortress-escape-start) + :kiosk-play-node (game-task-node fortress-escape-introduction) + :pre-play-continue #f + :play-node (game-task-node fortress-escape-resolution) + :play-continue "prison-start" + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "city-help-kid" + :text-name (game-text-id text-x1b7) + :pre-play-node (game-task-node city-help-kid-introduction) + :kiosk-play-node (game-task-node city-help-kid-battle) + :pre-play-continue #f + :play-node (game-task-node city-help-kid-introduction) + :play-continue "ctyslumb-fort" + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "city-vehicle-training" + :pre-play-node (game-task-node city-vehicle-training-map) + :kiosk-play-node (game-task-node city-vehicle-training-hover-zone-1) + :pre-play-continue #f + :play-node (game-task-node city-vehicle-training-hover-zone-1) + :play-continue #f + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "ruins-tower" + :text-name (game-text-id text-x1b8) + :pre-play-node (game-task-node ruins-tower-introduction) + :kiosk-play-node (game-task-node ruins-tower-resolution) + :pre-play-continue "ctysluma-tower-intro" + :play-node (game-task-node ruins-tower-resolution) + :play-continue "ruins-start" + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "atoll-water" + :text-name (game-text-id text-x1b9) + :pre-play-node (game-task-node atoll-water-introduction) + :kiosk-play-node (game-task-node atoll-water-find) + :pre-play-continue "hideout-start" + :play-node (game-task-node atoll-water-find) + :play-continue "atoll-start" + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "fortress-dump" + :text-name (game-text-id text-x1ba) + :pre-play-node (game-task-node fortress-dump-introduction) + :kiosk-play-node (game-task-node fortress-dump-deal) + :pre-play-continue "hideout-start" + :play-node (game-task-node fortress-dump-deal) + :play-continue "fordumpa-start" + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "city-krew-delivery" + :text-name (game-text-id text-x1bb) + :pre-play-node (game-task-node city-krew-delivery-introduction) + :kiosk-play-node (game-task-node city-krew-delivery-delivery) + :pre-play-continue "hideout-start" + :play-node (game-task-node city-krew-delivery-delivery) + :play-continue "ctysluma-alley" + :kiosk-play-continue "hideout-start" + ) + (new 'static 'game-task-info + :name "city-red-gun-training" + :text-name (game-text-id text-x1bc) + :pre-play-node (game-task-node city-krew-delivery-resolution) + :kiosk-play-node (game-task-node city-red-gun-training-try-once) + :pre-play-continue "hiphog-start" + :play-node (game-task-node city-red-gun-training-try-once) + :play-continue "gungame-start" + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "atoll-sig" + :text-name (game-text-id text-x1bd) + :pre-play-node (game-task-node atoll-sig-introduction) + :kiosk-play-node (game-task-node atoll-sig-sig-introduction) + :pre-play-continue "hiphog-start" + :play-node (game-task-node atoll-sig-sig-introduction) + :play-continue "atoll-start" + :kiosk-play-continue "atoll-start" + ) + (new 'static 'game-task-info + :name "sewer-enemy" + :text-name (game-text-id text-x1be) + :pre-play-node (game-task-node sewer-enemy-introduction) + :kiosk-play-node (game-task-node sewer-enemy-blow-up-turrets) + :pre-play-continue "hiphog-start" + :play-node (game-task-node sewer-enemy-blow-up-turrets) + :play-continue "sewer-start" + :kiosk-play-continue "sewer-start-kiosk" + ) + (new 'static 'game-task-info + :name "strip-rescue" + :text-name (game-text-id text-x1c0) + :pre-play-node (game-task-node strip-rescue-introduction) + :kiosk-play-node (game-task-node strip-rescue-battle) + :pre-play-continue "vinroom-start" + :play-node (game-task-node strip-rescue-battle) + :play-continue "strip-warp" + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "atoll-battle" + :text-name (game-text-id text-x1c4) + :pre-play-node (game-task-node atoll-battle-introduction) + :kiosk-play-node (game-task-node atoll-battle-rescue) + :pre-play-continue "hideout-start" + :play-node (game-task-node atoll-battle-rescue) + :play-continue "atoll-start" + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "mountain-lens" + :text-name (game-text-id text-x1c7) + :pre-play-node (game-task-node mountain-lens-introduction) + :kiosk-play-node (game-task-node mountain-lens-started) + :pre-play-continue "onintent-start" + :play-node (game-task-node mountain-lens-started) + :play-continue "mountain-start" + :kiosk-play-continue "mountain-kiosk" + ) + (new 'static 'game-task-info + :name "mountain-gear" + :text-name (game-text-id text-x1c9) + :pre-play-node (game-task-node mountain-gear-find) + :kiosk-play-node (game-task-node mountain-gear-resolution) + :pre-play-continue #f + :play-node (game-task-node mountain-gear-resolution) + :play-continue "mountain-start" + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "mountain-shard" + :text-name (game-text-id text-x1c8) + :pre-play-node (game-task-node mountain-shard-dice) + :kiosk-play-node (game-task-node mountain-shard-resolution) + :pre-play-continue #f + :play-node (game-task-node mountain-shard-resolution) + :play-continue "mountain-start" + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "mountain-collection" + :pre-play-node (game-task-node mountain-collection-resolution) + :kiosk-play-node (game-task-node city-keira-delivery-introduction) + :pre-play-continue #f + :play-node (game-task-node city-keira-delivery-introduction) + :play-continue #f + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "city-keira-delivery" + :text-name (game-text-id text-x1c1) + :pre-play-node (game-task-node city-keira-delivery-introduction) + :kiosk-play-node (game-task-node city-keira-delivery-delivery) + :pre-play-continue "hiphog-start" + :play-node (game-task-node city-keira-delivery-delivery) + :play-continue "ctyport-hiphog-no-hiphog" + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "stadium-board1" + :text-name (game-text-id text-x1c6) + :pre-play-node (game-task-node stadium-board1-introduction) + :kiosk-play-node (game-task-node stadium-board1-board) + :pre-play-continue "garage-start-skate" + :play-node (game-task-node stadium-board1-board) + :play-continue "skatea-training" + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "city-krew-collection" + :text-name (game-text-id text-x1c5) + :pre-play-node (game-task-node city-krew-collection-introduction) + :kiosk-play-node (game-task-node city-krew-collection-collection) + :pre-play-continue "hiphog-start" + :play-node (game-task-node city-krew-collection-collection) + :play-continue "ctyport-hiphog" + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "city-yellow-gun-training" + :text-name (game-text-id text-x1c2) + :pre-play-node (game-task-node city-krew-collection-resolution) + :kiosk-play-node (game-task-node city-yellow-gun-training-resolution) + :pre-play-continue "hiphog-start" + :play-node (game-task-node city-yellow-gun-training-resolution) + :play-continue "gungame-start" + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "drill-eggs" + :text-name (game-text-id text-x1c3) + :pre-play-node (game-task-node drill-eggs-introduction) + :kiosk-play-node (game-task-node drill-eggs-eggs-0) + :pre-play-continue "vinroom-start" + :play-node (game-task-node drill-eggs-eggs-0) + :play-continue "drill1-warp" + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "city-power" + :text-name (game-text-id text-x1ca) + :pre-play-node (game-task-node city-power-introduction) + :kiosk-play-node (game-task-node city-power-vinroom) + :pre-play-continue "vinroom-start" + :play-node (game-task-node city-power-resolution) + :play-continue "ctyinda-vinroom" + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "palace-cable" + :text-name (game-text-id text-x1cb) + :pre-play-node (game-task-node palace-cable-introduction) + :kiosk-play-node (game-task-node palace-cable-resolution) + :pre-play-continue "ctygenb-start" + :play-node (game-task-node palace-cable-resolution) + :play-continue "palcab-start" + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "palace-boss" + :text-name (game-text-id text-x1cc) + :pre-play-node (game-task-node palace-boss-introduction) + :kiosk-play-node (game-task-node palace-boss-battle) + :pre-play-continue "palroof-throne" + :play-node (game-task-node palace-boss-battle) + :play-continue "palroof-boss" + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "city-shuttle" + :text-name (game-text-id text-x1cd) + :pre-play-node (game-task-node city-shuttle-introduction) + :kiosk-play-node (game-task-node city-shuttle-shuttle) + :pre-play-continue "hideout-start" + :play-node (game-task-node city-shuttle-shuttle) + :play-continue "ctysluma-alley" + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "ruins-enemy" + :text-name (game-text-id text-x1ce) + :pre-play-node (game-task-node ruins-enemy-introduction) + :kiosk-play-node (game-task-node ruins-enemy-resolution) + :pre-play-continue "hideout-start" + :play-node (game-task-node ruins-enemy-resolution) + :play-continue "ruins-start" + :kiosk-play-continue "ruins-start" + ) + (new 'static 'game-task-info + :name "city-blue-gun-training" + :pre-play-node (game-task-node city-blue-gun-training-bronze) + :kiosk-play-node (game-task-node city-blue-gun-training-silver) + :pre-play-continue #f + :play-node (game-task-node city-blue-gun-training-silver) + :play-continue #f + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "forest-scouts" + :text-name (game-text-id text-x1cf) + :pre-play-node (game-task-node forest-scouts-introduction) + :kiosk-play-node (game-task-node forest-scouts-introduction) + :pre-play-continue "hideout-start" + :play-node (game-task-node forest-scouts-pegasus) + :play-continue "forest-start" + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "city-escort-kid" + :text-name (game-text-id text-x1d0) + :pre-play-node (game-task-node city-escort-kid-introduction) + :kiosk-play-node (game-task-node city-escort-kid-introduction) + :pre-play-continue "ctysluma-escort-retry" + :play-node (game-task-node city-escort-kid-resolution) + :play-continue "escort-kid-intro" + :kiosk-play-continue "ctysluma-escort-retry" + ) + (new 'static 'game-task-info + :name "dig-knock-down" + :text-name (game-text-id text-x1d4) + :pre-play-node (game-task-node dig-knock-down-introduction) + :kiosk-play-node (game-task-node dig-knock-down-resolution) + :pre-play-continue "vinroom-start" + :play-node (game-task-node dig-knock-down-resolution) + :play-continue "dig1-start" + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "strip-grenade" + :text-name (game-text-id text-x1d5) + :pre-play-node (game-task-node strip-grenade-introduction) + :kiosk-play-node (game-task-node strip-grenade-explode) + :pre-play-continue "vinroom-start" + :play-node (game-task-node strip-grenade-explode) + :play-continue "strip-warp" + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "drill-ship" + :text-name (game-text-id text-x1d7) + :pre-play-node (game-task-node drill-ship-introduction) + :kiosk-play-node (game-task-node drill-ship-resolution) + :pre-play-continue "vinroom-start" + :play-node (game-task-node drill-ship-resolution) + :play-continue "drill-warp-gunship" + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "city-port-run" + :text-name (game-text-id text-x1d2) + :pre-play-node (game-task-node city-port-run-introduction) + :kiosk-play-node (game-task-node city-port-run-resolution) + :pre-play-continue "ctyport-hiphog-no-hiphog" + :play-node (game-task-node city-port-run-resolution) + :play-continue "ctyport-hiphog-no-hiphog" + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "city-meet-brutter" + :text-name (game-text-id text-x1d1) + :pre-play-node (game-task-node city-meet-brutter-pre-intro) + :kiosk-play-node (game-task-node city-meet-brutter-introduction) + :pre-play-continue "hiphog-start" + :play-node (game-task-node city-meet-brutter-introduction) + :play-continue "hiphog-start" + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "sewer-board" + :text-name (game-text-id text-x1d6) + :pre-play-node (game-task-node sewer-board-introduction) + :kiosk-play-node (game-task-node sewer-board-drain) + :pre-play-continue "hiphog-start" + :play-node (game-task-node sewer-board-drain) + :play-continue "sewer-start" + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "forest-hunt" + :text-name (game-text-id text-x1d9) + :pre-play-node (game-task-node forest-hunt-introduction) + :kiosk-play-node (game-task-node forest-hunt-resolution) + :pre-play-continue "hiphog-start" + :play-node (game-task-node forest-hunt-resolution) + :play-continue "forest-start" + :kiosk-play-continue "forest-start" + ) + (new 'static 'game-task-info + :name "city-intercept-tanker" + :text-name (game-text-id text-x1d3) + :pre-play-node (game-task-node city-intercept-tanker-roof-explode) + :kiosk-play-node (game-task-node city-intercept-tanker-introduction) + :pre-play-continue #f + :play-node (game-task-node city-intercept-tanker-roof-explode) + :play-continue "ctymarkb-tanker" + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "stadium-race-class3" + :text-name (game-text-id text-x1da) + :pre-play-node (game-task-node stadium-race-class3-introduction) + :kiosk-play-node (game-task-node stadium-race-class3-race) + :pre-play-continue "garage-start-class3" + :play-node (game-task-node stadium-race-class3-race) + :play-continue "stadiumb-race-fail" + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "city-protect-water-slums" + :text-name (game-text-id text-x1dc) + :pre-play-node (game-task-node city-protect-water-slums-introduction) + :kiosk-play-node (game-task-node city-protect-water-slums-get-seal) + :pre-play-continue #f + :play-node (game-task-node city-protect-water-slums-resolution) + :play-continue "ctyslumc-slums" + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "dig-find-totem" + :text-name (game-text-id text-x1db) + :pre-play-node (game-task-node dig-find-totem-introduction) + :kiosk-play-node (game-task-node dig-find-totem-raise-log) + :pre-play-continue "onintent-start" + :play-node (game-task-node dig-find-totem-raise-log) + :play-continue "dig3-start" + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "city-destroy-guard-vehicles" + :text-name (game-text-id text-x1dd) + :pre-play-node (game-task-node city-destroy-guard-vehicles-introduction) + :kiosk-play-node (game-task-node city-destroy-guard-vehicles-destroy) + :pre-play-continue "hideout-start" + :play-node (game-task-node city-destroy-guard-vehicles-destroy) + :play-continue "ctysluma-alley" + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "city-play-onin-game" + :text-name (game-text-id text-x1de) + :pre-play-node (game-task-node city-play-onin-game-introduction) + :kiosk-play-node (game-task-node city-play-onin-game-wait) + :pre-play-continue "onintent-start" + :play-node (game-task-node city-play-onin-game-wait) + :play-continue "onintent-start" + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "canyon-insert-items" + :text-name (game-text-id text-x1df) + :pre-play-node (game-task-node canyon-insert-items-door) + :kiosk-play-node (game-task-node canyon-insert-items-door) + :pre-play-continue "mountain-door" + :play-node (game-task-node canyon-insert-items-gear) + :play-continue "mincan-start" + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "tomb-poles" + :text-name (game-text-id text-x1e2) + :pre-play-node (game-task-node tomb-poles-introduction) + :kiosk-play-node (game-task-node tomb-poles-block) + :pre-play-continue "tombd-start" + :play-node (game-task-node tomb-poles-block) + :play-continue "tomb-start" + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "tomb-water" + :text-name (game-text-id text-x1e3) + :pre-play-node (game-task-node tomb-water-vibe) + :kiosk-play-node (game-task-node tomb-water-resolution) + :pre-play-continue #f + :play-node (game-task-node tomb-water-vibe) + :play-continue "tomb-start" + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "tomb-boss" + :text-name (game-text-id text-x1e4) + :pre-play-node (game-task-node tomb-boss-introduction) + :kiosk-play-node (game-task-node tomb-boss-door) + :pre-play-continue "tombboss-start" + :play-node (game-task-node tomb-boss-introduction) + :play-continue "tombboss-play-start" + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "fortress-save-friends" + :text-name (game-text-id text-x1e5) + :pre-play-node (game-task-node fortress-save-friends-introduction) + :kiosk-play-node (game-task-node fortress-save-friends-resolution) + :pre-play-continue "hideout-start" + :play-node (game-task-node fortress-save-friends-resolution) + :play-continue "forresca-start" + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "sewer-escort" + :text-name (game-text-id text-x1e6) + :pre-play-node (game-task-node sewer-escort-introduction) + :kiosk-play-node (game-task-node sewer-escort-explode-wall1) + :pre-play-continue "hiphog-start" + :play-node (game-task-node sewer-escort-explode-wall1) + :play-continue "sewesc-start" + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "city-dark-gun-training" + :pre-play-node (game-task-node city-dark-gun-training-bronze) + :kiosk-play-node (game-task-node city-dark-gun-training-silver) + :pre-play-continue #f + :play-node (game-task-node city-dark-gun-training-silver) + :play-continue #f + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "stadium-race-class2" + :text-name (game-text-id text-x1e8) + :pre-play-node (game-task-node stadium-race-class2-introduction) + :kiosk-play-node (game-task-node stadium-race-class2-race) + :pre-play-continue "garage-start-class3" + :play-node (game-task-node stadium-race-class2-race) + :play-continue "stadiumc-race-retry-pidax" + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "city-stop-bomb-bots" + :text-name (game-text-id text-x1e9) + :pre-play-node (game-task-node city-stop-bomb-bots-introduction) + :kiosk-play-node (game-task-node city-stop-bomb-bots-destroy) + :pre-play-continue "hideout-start" + :play-node (game-task-node city-stop-bomb-bots-destroy) + :play-continue "ctysluma-alley" + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "city-errol-challenge" + :text-name (game-text-id text-x1ec) + :pre-play-node (game-task-node city-errol-challenge-introduction) + :kiosk-play-node (game-task-node city-errol-challenge-race) + :pre-play-continue "hiphog-start" + :play-node (game-task-node city-errol-challenge-race) + :play-continue "ctyport-errol-race-retry" + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "strip-drop" + :text-name (game-text-id text-x1ed) + :pre-play-node (game-task-node strip-drop-introduction) + :kiosk-play-node (game-task-node strip-drop-resolution) + :pre-play-continue "vinroom-start" + :play-node (game-task-node strip-drop-resolution) + :play-continue "strip-warp" + :kiosk-play-continue "vinroom-start" + ) + (new 'static 'game-task-info + :name "ruins-mech" + :text-name (game-text-id text-x1ee) + :pre-play-node (game-task-node ruins-mech-introduction) + :kiosk-play-node (game-task-node ruins-mech-break-wall-1) + :pre-play-continue #f + :play-node (game-task-node ruins-mech-break-wall-1) + :play-continue "ruins-start" + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "forest-protect" + :text-name (game-text-id text-x1f0) + :pre-play-node (game-task-node forest-protect-introduction) + :kiosk-play-node (game-task-node forest-protect-meeting) + :pre-play-continue "onintent-start" + :play-node (game-task-node forest-protect-meeting) + :play-continue "forest-tree" + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "drill-mech" + :text-name (game-text-id text-x1f1) + :pre-play-node (game-task-node drill-mech-introduction) + :kiosk-play-node (game-task-node drill-mech-started-smashing) + :pre-play-continue "vinroom-start" + :play-node (game-task-node drill-mech-started-smashing) + :play-continue "drill3-warp" + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "city-save-lurkers" + :text-name (game-text-id text-x1d1) + :pre-play-node (game-task-node city-save-lurkers-introduction) + :kiosk-play-node (game-task-node city-save-lurkers-save-lurkers) + :pre-play-continue #f + :play-node (game-task-node city-save-lurkers-save-lurkers) + :play-continue "kiosk-start" + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "stadium-race-class1" + :text-name (game-text-id text-x1f2) + :pre-play-node (game-task-node stadium-race-class1-introduction) + :kiosk-play-node (game-task-node stadium-race-class1-race) + :pre-play-continue "garage-start-class3" + :play-node (game-task-node stadium-race-class1-race) + :play-continue "stadiumd-race-fail" + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "palace-sneak-in" + :text-name (game-text-id text-x1f3) + :pre-play-node (game-task-node palace-sneak-in-introduction) + :kiosk-play-node (game-task-node palace-sneak-in-meeting) + :pre-play-continue #f + :play-node (game-task-node palace-sneak-in-meeting) + :play-continue "ctypal-shaft" + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "castle-break-in" + :text-name (game-text-id text-x1f4) + :pre-play-node (game-task-node castle-break-in-introduction) + :kiosk-play-node (game-task-node castle-break-in-castle-1) + :pre-play-continue #f + :play-node (game-task-node castle-break-in-castle-1) + :play-continue "caspad-face-castle" + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "castle-boss" + :text-name (game-text-id text-x1f5) + :pre-play-node (game-task-node castle-boss-introduction) + :kiosk-play-node (game-task-node castle-boss-resolution) + :pre-play-continue #f + :play-node (game-task-node castle-boss-resolution) + :play-continue "casboss-start" + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "city-whack" + :text-name (game-text-id text-x20e) + :pre-play-node (game-task-node city-whack-introduction) + :kiosk-play-node (game-task-node city-whack-introduction) + :pre-play-continue "hiphog-start" + :play-node (game-task-node city-whack-wait) + :play-continue "hiphog-start" + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "under-mech" + :text-name (game-text-id text-x1f7) + :pre-play-node (game-task-node under-mech-resolution) + :kiosk-play-node (game-task-node under-mech-resolution) + :pre-play-continue "ctyport-under" + :play-node (game-task-node under-mech-resolution) + :play-continue "under-airlock" + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "under-sig" + :text-name (game-text-id text-x1f8) + :pre-play-node (game-task-node under-sig-introduction) + :kiosk-play-node (game-task-node under-sig-centipede1-start) + :pre-play-continue "under-start" + :play-node (game-task-node under-sig-introduction) + :play-continue "under-start" + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "city-defend-stadium" + :text-name (game-text-id text-x1f9) + :pre-play-node (game-task-node city-defend-stadium-introduction) + :kiosk-play-node (game-task-node city-defend-stadium-introduction) + :pre-play-continue "stadium-blimp-intro" + :play-node (game-task-node city-defend-stadium-resolution) + :play-continue "stadium-blimp-intro" + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "consite-find-baron" + :text-name (game-text-id text-x210) + :pre-play-node (game-task-node consite-find-baron-introduction) + :kiosk-play-node (game-task-node consite-find-baron-resolution) + :pre-play-continue #f + :play-node (game-task-node consite-find-baron-resolution) + :play-continue "consite-start" + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "nest-get-to-gun" + :text-name (game-text-id text-x1fe) + :pre-play-node (game-task-node nest-get-to-gun-introduction) + :kiosk-play-node (game-task-node nest-get-to-gun-resolution) + :pre-play-continue #f + :play-node (game-task-node nest-get-to-gun-resolution) + :play-continue "nest-start" + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "nest-enter" + :text-name (game-text-id text-x211) + :pre-play-node (game-task-node nest-enter-introduction) + :kiosk-play-node (game-task-node nest-enter-resolution) + :pre-play-continue #f + :play-node (game-task-node nest-enter-resolution) + :play-continue "nest-barrier" + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "nest-boss" + :text-name (game-text-id text-x1ff) + :pre-play-node (game-task-node nest-boss-introduction) + :kiosk-play-node (game-task-node nest-boss-resolution) + :pre-play-continue "nestb-start" + :play-node (game-task-node nest-boss-resolution) + :play-continue "nestb-boss-pit" + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "city-win" + :pre-play-node (game-task-node city-win-pre-intro) + :kiosk-play-node (game-task-node city-win-introduction) + :pre-play-continue #f + :play-node (game-task-node city-win-introduction) + :play-continue #f + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "city-oracle" + :pre-play-node (game-task-node city-oracle-introduction) + :kiosk-play-node (game-task-node city-oracle-level0) + :pre-play-continue #f + :play-node (game-task-node city-oracle-level0) + :play-continue #f + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "city-burning-bush-ring-1" + :pre-play-node (game-task-node city-burning-bush-ring-1-introduction) + :kiosk-play-node (game-task-node city-burning-bush-ring-1-resolution) + :pre-play-continue #f + :play-node (game-task-node city-burning-bush-ring-1-resolution) + :play-continue "ctyslumb-burning-bush" + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "city-burning-bush-get-to-1" + :pre-play-node (game-task-node city-burning-bush-get-to-1-introduction) + :kiosk-play-node (game-task-node city-burning-bush-get-to-1-resolution) + :pre-play-continue "ctysluma-burning-bush" + :play-node (game-task-node city-burning-bush-get-to-1-resolution) + :play-continue "ctysluma-burning-bush" + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "city-burning-bush-get-to-2" + :pre-play-node (game-task-node city-burning-bush-get-to-2-introduction) + :kiosk-play-node (game-task-node city-burning-bush-get-to-2-resolution) + :pre-play-continue "ctyindb-burning-bush" + :play-node (game-task-node city-burning-bush-get-to-2-resolution) + :play-continue "ctyindb-burning-bush" + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "city-burning-bush-get-to-3" + :pre-play-node (game-task-node city-burning-bush-get-to-3-introduction) + :kiosk-play-node (game-task-node city-burning-bush-get-to-3-resolution) + :pre-play-continue "ctyport-burning-bush-3" + :play-node (game-task-node city-burning-bush-get-to-3-resolution) + :play-continue "ctyport-burning-bush-3" + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "city-burning-bush-get-to-4" + :pre-play-node (game-task-node city-burning-bush-get-to-4-introduction) + :kiosk-play-node (game-task-node city-burning-bush-get-to-4-resolution) + :pre-play-continue "ctyslumc-burning-bush" + :play-node (game-task-node city-burning-bush-get-to-4-resolution) + :play-continue "ctyslumc-burning-bush" + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "city-burning-bush-collection-1" + :pre-play-node (game-task-node city-burning-bush-collection-1-introduction) + :kiosk-play-node (game-task-node city-burning-bush-collection-1-resolution) + :pre-play-continue #f + :play-node (game-task-node city-burning-bush-collection-1-resolution) + :play-continue "ctygenb-burning-bush" + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "city-burning-bush-racepoint-1" + :pre-play-node (game-task-node city-burning-bush-racepoint-1-introduction) + :kiosk-play-node (game-task-node city-burning-bush-racepoint-1-resolution) + :pre-play-continue #f + :play-node (game-task-node city-burning-bush-racepoint-1-resolution) + :play-continue "ctymarka-burning-bush" + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "city-burning-bush-ring-2" + :pre-play-node (game-task-node city-burning-bush-ring-2-introduction) + :kiosk-play-node (game-task-node city-burning-bush-ring-2-resolution) + :pre-play-continue #f + :play-node (game-task-node city-burning-bush-ring-2-resolution) + :play-continue "ctyport-burning-bush" + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "city-burning-bush-get-to-5" + :pre-play-node (game-task-node city-burning-bush-get-to-5-introduction) + :kiosk-play-node (game-task-node city-burning-bush-get-to-5-resolution) + :pre-play-continue "ctyfarmb-burning-bush" + :play-node (game-task-node city-burning-bush-get-to-5-resolution) + :play-continue "ctyfarmb-burning-bush" + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "city-burning-bush-get-to-6" + :pre-play-node (game-task-node city-burning-bush-get-to-6-introduction) + :kiosk-play-node (game-task-node city-burning-bush-get-to-6-resolution) + :pre-play-continue "ctymarkb-burning-bush-2" + :play-node (game-task-node city-burning-bush-get-to-6-resolution) + :play-continue "ctymarkb-burning-bush-2" + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "city-burning-bush-shuttle-1" + :pre-play-node (game-task-node city-burning-bush-shuttle-1-introduction) + :kiosk-play-node (game-task-node city-burning-bush-shuttle-1-resolution) + :pre-play-continue #f + :play-node (game-task-node city-burning-bush-shuttle-1-resolution) + :play-continue "ctymarka-burning-bush" + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "city-burning-bush-get-to-7" + :pre-play-node (game-task-node city-burning-bush-get-to-7-introduction) + :kiosk-play-node (game-task-node city-burning-bush-get-to-7-resolution) + :pre-play-continue "ctymarkb-burning-bush" + :play-node (game-task-node city-burning-bush-get-to-7-resolution) + :play-continue "ctymarkb-burning-bush" + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "city-burning-bush-get-to-8" + :pre-play-node (game-task-node city-burning-bush-get-to-8-introduction) + :kiosk-play-node (game-task-node city-burning-bush-get-to-8-resolution) + :pre-play-continue "ctyfarma-burning-bush" + :play-node (game-task-node city-burning-bush-get-to-8-resolution) + :play-continue "ctyfarma-burning-bush" + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "city-burning-bush-get-to-9" + :pre-play-node (game-task-node city-burning-bush-get-to-9-introduction) + :kiosk-play-node (game-task-node city-burning-bush-get-to-9-resolution) + :pre-play-continue "ctygenb-burning-bush" + :play-node (game-task-node city-burning-bush-get-to-9-resolution) + :play-continue "ctygenb-burning-bush" + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "city-burning-bush-collection-2" + :pre-play-node (game-task-node city-burning-bush-collection-2-introduction) + :kiosk-play-node (game-task-node city-burning-bush-collection-2-resolution) + :pre-play-continue #f + :play-node (game-task-node city-burning-bush-collection-2-resolution) + :play-continue "ctygenc-burning-bush" + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "city-burning-bush-get-to-10" + :pre-play-node (game-task-node city-burning-bush-get-to-10-introduction) + :kiosk-play-node (game-task-node city-burning-bush-get-to-10-resolution) + :pre-play-continue "ctyinda-burning-bush" + :play-node (game-task-node city-burning-bush-get-to-10-resolution) + :play-continue "ctyinda-burning-bush" + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "city-burning-bush-get-to-11" + :pre-play-node (game-task-node city-burning-bush-get-to-11-introduction) + :kiosk-play-node (game-task-node city-burning-bush-get-to-11-resolution) + :pre-play-continue "ctygena-burning-bush" + :play-node (game-task-node city-burning-bush-get-to-11-resolution) + :play-continue "ctygena-burning-bush" + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "city-burning-bush-ring-3" + :pre-play-node (game-task-node city-burning-bush-ring-3-introduction) + :kiosk-play-node (game-task-node city-burning-bush-ring-3-resolution) + :pre-play-continue #f + :play-node (game-task-node city-burning-bush-ring-3-resolution) + :play-continue "ctyslumb-burning-bush" + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "city-burning-bush-get-to-12" + :pre-play-node (game-task-node city-burning-bush-get-to-12-introduction) + :kiosk-play-node (game-task-node city-burning-bush-get-to-12-resolution) + :pre-play-continue #f + :play-node (game-task-node city-burning-bush-get-to-12-resolution) + :play-continue "ctymarka-burning-bush" + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "city-burning-bush-bombbot-1" + :pre-play-node (game-task-node city-burning-bush-bombbot-1-introduction) + :kiosk-play-node (game-task-node city-burning-bush-bombbot-1-resolution) + :pre-play-continue #f + :play-node (game-task-node city-burning-bush-bombbot-1-resolution) + :play-continue "ctymarka-burning-bush" + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "city-burning-bush-get-to-13" + :pre-play-node (game-task-node city-burning-bush-get-to-13-introduction) + :kiosk-play-node (game-task-node city-burning-bush-get-to-13-resolution) + :pre-play-continue "ctyslumb-burning-bush-2" + :play-node (game-task-node city-burning-bush-get-to-13-resolution) + :play-continue "ctyslumb-burning-bush-2" + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "city-burning-bush-get-to-14" + :pre-play-node (game-task-node city-burning-bush-get-to-14-introduction) + :kiosk-play-node (game-task-node city-burning-bush-get-to-14-resolution) + :pre-play-continue "ctygena-burning-bush-2" + :play-node (game-task-node city-burning-bush-get-to-14-resolution) + :play-continue "ctygena-burning-bush-2" + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "city-burning-bush-get-to-15" + :pre-play-node (game-task-node city-burning-bush-get-to-15-introduction) + :kiosk-play-node (game-task-node city-burning-bush-get-to-15-resolution) + :pre-play-continue "ctypal-burning-bush" + :play-node (game-task-node city-burning-bush-get-to-15-resolution) + :play-continue "ctypal-burning-bush" + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "city-burning-bush-collection-3" + :pre-play-node (game-task-node city-burning-bush-collection-3-introduction) + :kiosk-play-node (game-task-node city-burning-bush-collection-3-resolution) + :pre-play-continue #f + :play-node (game-task-node city-burning-bush-collection-3-resolution) + :play-continue "ctyfarma-burning-bush" + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "city-burning-bush-race-errol" + :pre-play-node (game-task-node city-burning-bush-race-errol-introduction) + :kiosk-play-node (game-task-node city-burning-bush-race-errol-resolution) + :pre-play-continue "ctyport-burning-bush" + :play-node (game-task-node city-burning-bush-race-errol-resolution) + :play-continue "ctyport-errol-race-retry" + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "city-burning-bush-race-port" + :pre-play-node (game-task-node city-burning-bush-race-port-introduction) + :kiosk-play-node (game-task-node city-burning-bush-race-port-resolution) + :pre-play-continue "ctyport-burning-bush-3" + :play-node (game-task-node city-burning-bush-race-port-resolution) + :play-continue "ctyport-race-retry" + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "stadium-burning-bush-race-board" + :pre-play-node (game-task-node stadium-burning-bush-race-board-introduction) + :kiosk-play-node (game-task-node stadium-burning-bush-race-board-resolution) + :pre-play-continue "stadium-burning-bush" + :play-node (game-task-node stadium-burning-bush-race-board-resolution) + :play-continue "skatea-training" + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "stadium-burning-bush-race-class3" + :pre-play-node (game-task-node stadium-burning-bush-race-class3-introduction) + :kiosk-play-node (game-task-node stadium-burning-bush-race-class3-resolution) + :pre-play-continue "stadium-burning-bush" + :play-node (game-task-node stadium-burning-bush-race-class3-resolution) + :play-continue "stadiumb-race-fail" + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "stadium-burning-bush-race-class2" + :pre-play-node (game-task-node stadium-burning-bush-race-class2-introduction) + :kiosk-play-node (game-task-node stadium-burning-bush-race-class2-resolution) + :pre-play-continue "stadium-burning-bush" + :play-node (game-task-node stadium-burning-bush-race-class2-resolution) + :play-continue "stadiumc-race-fail" + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "stadium-burning-bush-race-class1" + :pre-play-node (game-task-node stadium-burning-bush-race-class1-introduction) + :kiosk-play-node (game-task-node stadium-burning-bush-race-class1-resolution) + :pre-play-continue "stadium-burning-bush" + :play-node (game-task-node stadium-burning-bush-race-class1-resolution) + :play-continue "stadiumd-race-fail" + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "stadium-burning-bush-race-class3-r" + :pre-play-node (game-task-node stadium-burning-bush-race-class3-r-introduction) + :kiosk-play-node (game-task-node stadium-burning-bush-race-class3-r-resolution) + :pre-play-continue "stadium-burning-bush" + :play-node (game-task-node stadium-burning-bush-race-class3-r-resolution) + :play-continue "stadiumb-race-fail" + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "stadium-burning-bush-race-class2-r" + :pre-play-node (game-task-node stadium-burning-bush-race-class2-r-introduction) + :kiosk-play-node (game-task-node stadium-burning-bush-race-class2-r-resolution) + :pre-play-continue "stadium-burning-bush" + :play-node (game-task-node stadium-burning-bush-race-class2-r-resolution) + :play-continue "stadiumc-race-fail" + :kiosk-play-continue #f + ) + (new 'static 'game-task-info + :name "stadium-burning-bush-race-class1-r" + :pre-play-node (game-task-node stadium-burning-bush-race-class1-r-introduction) + :kiosk-play-node (game-task-node stadium-burning-bush-race-class1-r-resolution) + :pre-play-continue "stadium-burning-bush" + :play-node (game-task-node stadium-burning-bush-race-class1-r-resolution) + :play-continue "stadiumd-race-fail" + :kiosk-play-continue #f + ) + ) + ) + (set! (-> gp-0 sub-task-list) + (new 'static 'boxed-array :type game-task-node-info + (new 'static 'game-task-node-info + :level 'none + :name "none" + :flags (game-task-node-flag closed) + :on-open #f + :info #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task fortress-escape) + :name "fortress-escape-start" + :when-open #f + :flags (game-task-node-flag closed auto-close save-on-life abs-task-mask utility-node) + :task-mask (task-mask task0 task1 task2 task3) + :on-open #f + :info #f + :borrow '((hiphog 0 #f #f) + (hideout 0 #f #f) + (ctywide 0 #f #f) + (ctywide 1 lwidea special) + (prison 0 #f #f) + (throne 0 #f #f) + (garage 0 #f #f) + (stadium 0 #f #f) + (introcst 0 lintcstb #f) + (onintent 0 ltentout display) + ) + :open? #f + :on-close #f + :add (game-task-node-command add-sidekick) + ) + (new 'static 'game-task-node-info + :level 'fortress + :task (game-task fortress-escape) + :name "fortress-escape-introduction" + :when-open #f + :flags (game-task-node-flag save-on-life task-manager) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node fortress-escape-start) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info (new 'static 'task-manager-info + :level 'forexita + :intro-scene #f + :resolution-scene #f + :resolution-scene-continue #f + :retry-continue #f + :fail-continue #f + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node fortress-escape-resolution) + :on-complete #f + :on-fail #f + ) + :borrow '((prison 0 ldjakbrn #f)) + :open? #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'fortress + :task (game-task fortress-escape) + :name "fortress-escape-resolution" + :when-open #f + :flags (game-task-node-flag close-task abs-task-mask) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node fortress-escape-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :task-mask (task-mask task1) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + :description (game-text-id text-x1b6) + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-help-kid) + :name "city-help-kid-introduction" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor kor-alley) + :action (game-task-action say) + :tex (game-task-icon gaticon-02) + :scene "city-help-kid-intro" + ) + ) + :flags (game-task-node-flag task-manager no-audio) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node fortress-escape-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info (new 'static 'task-manager-info + :level 'ctywide + :intro-scene #f + :resolution-scene #f + :resolution-scene-continue #f + :retry-continue #f + :fail-continue #f + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node city-help-kid-resolution) + :on-complete #f + :on-fail #f + ) + :borrow '() + :open? #f + :on-close #f + :description (game-text-id text-x200) + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-help-kid) + :name "city-help-kid-battle" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor kor-alley) + :action (game-task-action idle) + :tex (game-task-icon gaticon-01) + :scene #f + ) + ) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-help-kid-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + :description (game-text-id text-x1b7) + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-help-kid) + :name "city-help-kid-resolution" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor kor-alley) + :action (game-task-action say) + :tex (game-task-icon gaticon-02) + :scene "city-help-kid-resolution" + ) + ) + :flags (game-task-node-flag close-task) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-help-kid-battle) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + :add (game-task-node-command add-darkjak) + :description (game-text-id text-x1b7) + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-vehicle-training) + :name "city-vehicle-training-map" + :when-open #f + :flags (game-task-node-flag save-on-life city-wait task-manager) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-help-kid-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info (new 'static 'task-manager-info + :level 'ctywide + :intro-scene #f + :resolution-scene #f + :resolution-scene-continue #f + :retry-continue #f + :fail-continue #f + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node city-vehicle-training-map) + :intro-delay #xbb8 + :on-complete #f + :on-fail #f + ) + :borrow '() + :open? #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-vehicle-training) + :name "city-vehicle-training-hover-zone-1" + :when-open #f + :flags (game-task-node-flag save-on-life city-wait task-manager) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-vehicle-training-map) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info (new 'static 'task-manager-info + :level 'ctywide + :intro-scene #f + :resolution-scene #f + :resolution-scene-continue #f + :retry-continue #f + :fail-continue #f + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node city-vehicle-training-hover-zone-1) + :intro-delay #x12c + :on-complete #f + :on-fail #f + ) + :borrow '() + :open? #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-vehicle-training) + :name "city-vehicle-training-hover-zone-2" + :when-open #f + :flags (game-task-node-flag save-on-life city-wait task-manager) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-vehicle-training-hover-zone-1) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info (new 'static 'task-manager-info + :level 'ctywide + :intro-scene #f + :resolution-scene #f + :resolution-scene-continue #f + :retry-continue #f + :fail-continue #f + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node city-vehicle-training-hover-zone-2) + :intro-delay #x12c + :on-complete #f + :on-fail #f + ) + :borrow '() + :open? #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-vehicle-training) + :name "city-vehicle-training-resolution" + :when-open #f + :flags (game-task-node-flag close-task) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-vehicle-training-hover-zone-2) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'ruins + :task (game-task ruins-tower) + :name "ruins-tower-introduction" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor torn-alley) + :action (game-task-action say) + :tex (game-task-icon gaticon-02) + :scene "ruins-tower-intro" + :distance (meters 20) + ) + (new 'static 'game-task-event + :actor (game-task-actor tess-alley) + :action (game-task-action idle) + :tex (game-task-icon gaticon-01) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-05) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-life) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-help-kid-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + :description (game-text-id text-x201) + ) + (new 'static 'game-task-node-info + :level 'ruins + :task (game-task ruins-tower) + :name "ruins-tower-resolution" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor torn-alley) + :action (game-task-action talk) + :tex (game-task-icon gaticon-03) + :flags (game-task-flags gatflag-00) + :scene "ruins-tower-intro" + ) + (new 'static 'game-task-event + :actor (game-task-actor tess-alley) + :action (game-task-action idle) + :tex (game-task-icon gaticon-01) + :flags (game-task-flags gatflag-00) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-02) + :scene #f + ) + ) + :flags (game-task-node-flag close-task) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node ruins-tower-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + :description (game-text-id text-x1b8) + ) + (new 'static 'game-task-node-info + :level 'ruins + :task (game-task ruins-tower) + :name "ruins-tower-exit" + :when-open #f + :flags (game-task-node-flag save-on-life task-manager) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node ruins-tower-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info (new 'static 'task-manager-info + :level 'ruins + :intro-scene #f + :resolution-scene #f + :resolution-scene-continue #f + :retry-continue #f + :fail-continue #f + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node ruins-tower-exit) + :on-complete #f + :on-fail #f + :end-sphere (new 'static 'sphere :x 3419490.2 :y -9.8304 :z -1391682.0 :r 57344.0) + ) + :borrow '() + :open? #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'atoll + :task (game-task atoll-water) + :name "atoll-water-introduction" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor torn-hideout) + :action (game-task-action say) + :tex (game-task-icon gaticon-02) + :scene "atoll-1-int" + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-05) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-life) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node ruins-tower-exit) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '((hideout 0 ltrnysam special)) + :open? #f + :on-close #f + :description (game-text-id text-x201) + ) + (new 'static 'game-task-node-info + :level 'atoll + :task (game-task atoll-water) + :name "atoll-water-find" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor torn-hideout) + :action (game-task-action talk) + :tex (game-task-icon gaticon-03) + :scene "atoll-1-int" + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-07) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-63) + :scene #f + ) + ) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node atoll-water-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '((hideout 0 ltrnysam special)) + :open? #f + :on-close #f + :description (game-text-id text-x1b9) + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task atoll-water) + :name "atoll-water-valve" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor torn-hideout) + :action (game-task-action talk) + :tex (game-task-icon gaticon-03) + :scene "atoll-1-int" + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-07) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-63) + :scene #f + ) + ) + :flags (game-task-node-flag clear-task-mask utility-node) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node atoll-water-find) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :task-mask (task-mask task0) + :on-open #f + :info #f + :borrow '((hideout 0 ltrnysam special)) + :open? #f + :on-close #f + :description (game-text-id text-x1b9) + ) + (new 'static 'game-task-node-info + :level 'atoll + :task (game-task atoll-water) + :name "atoll-water-resolution" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor torn-hideout) + :action (game-task-action talk) + :tex (game-task-icon gaticon-03) + :scene "atoll-1-int" + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-07) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-63) + :scene #f + ) + ) + :flags (game-task-node-flag close-task) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node atoll-water-valve) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '((hideout 0 ltrnysam special)) + :open? #f + :on-close #f + :description (game-text-id text-x1b9) + ) + (new 'static 'game-task-node-info + :level 'atoll + :task (game-task atoll-water) + :name "atoll-water-exit" + :when-open #f + :flags (game-task-node-flag save-on-life task-manager) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node atoll-water-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info (new 'static 'task-manager-info + :level 'atoll + :intro-scene #f + :resolution-scene #f + :resolution-scene-continue #f + :retry-continue #f + :fail-continue #f + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node atoll-water-exit) + :on-complete #f + :on-fail #f + :end-sphere (new 'static 'sphere :x 2286840.2 :y 2954.0352 :z -3471073.8 :r 81920.0) + ) + :borrow '() + :open? #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'fortress + :task (game-task fortress-dump) + :name "fortress-dump-introduction" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor torn-hideout) + :action (game-task-action say) + :tex (game-task-icon gaticon-02) + :scene "fortress-2-intro" + :distance (meters 45) + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-05) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-life) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node atoll-water-exit) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '((hideout 0 ltrnysam special)) + :open? #f + :on-close #f + :description (game-text-id text-x201) + ) + (new 'static 'game-task-node-info + :level 'fortress + :task (game-task fortress-dump) + :name "fortress-dump-deal" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor torn-hideout) + :action (game-task-action talk) + :tex (game-task-icon gaticon-03) + :scene "fortress-2-intro" + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-09) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-life reset-on-try) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node fortress-dump-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '((hideout 0 ltrnysam special)) + :open? #f + :on-close #f + :add (game-task-node-command add-pass-red) + :description (game-text-id text-x1ba) + ) + (new 'static 'game-task-node-info + :level 'fortress + :task (game-task fortress-dump) + :name "fortress-dump-missile" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor torn-hideout) + :action (game-task-action talk) + :tex (game-task-icon gaticon-03) + :scene "fortress-2-intro" + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-09) + :scene #f + ) + ) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node fortress-dump-deal) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '((hideout 0 ltrnysam special)) + :open? #f + :on-close #f + :description (game-text-id text-x1ba) + ) + (new 'static 'game-task-node-info + :level 'fortress + :task (game-task fortress-dump) + :name "fortress-dump-resolution" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-09) + :scene #f + ) + ) + :flags (game-task-node-flag close-task) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node fortress-dump-missile) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + :description (game-text-id text-x1ba) + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-krew-delivery) + :name "city-krew-delivery-introduction" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor torn-hideout) + :action (game-task-action say) + :tex (game-task-icon gaticon-02) + :scene "city-krew-delivery-intro" + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-05) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-try) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node fortress-dump-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '((ctywide 0 lpackage display) (hideout 0 ltrnysam special)) + :open? #f + :on-close '(task-close! "city-vehicle-training-resolution") + :description (game-text-id text-x201) + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-krew-delivery) + :name "city-krew-delivery-delivery" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor torn-hideout) + :action (game-task-action talk) + :tex (game-task-icon gaticon-03) + :scene "city-krew-delivery-intro" + ) + ) + :flags (game-task-node-flag task-retry task-manager) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-krew-delivery-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info (new 'static 'task-manager-info + :mask (task-manager-mask resolution-scene) + :level 'lpackage + :intro-scene #f + :resolution-scene "krew-delivery-res" + :resolution-scene-continue "hiphog-start" + :retry-continue "ctysluma-alley-no-hideout" + :fail-continue #f + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node city-krew-delivery-resolution) + :on-complete #f + :on-fail #f + ) + :borrow '((ctywide 0 lpackage display) (hideout 0 ltrnysam special) (hiphog 0 lguard #f)) + :open? #f + :on-close #f + :description (game-text-id text-x1bb) + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-krew-delivery) + :name "city-krew-delivery-resolution" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor krew-hiphog) + :action (game-task-action say) + :tex (game-task-icon gaticon-02) + :scene "krew-delivery-res" + ) + ) + :flags (game-task-node-flag close-task) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-krew-delivery-delivery) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '((ctywide 0 lpackage display) (hiphog 0 lguard special)) + :open? #f + :on-close #f + :add (game-task-node-command add-gun-red) + :description (game-text-id text-x1bb) + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-red-gun-training) + :name "city-red-gun-training-introduction" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor krew-hiphog) + :action (game-task-action talk) + :tex (game-task-icon gaticon-03) + :scene "krew-delivery-res" + ) + (new 'static 'game-task-event + :actor (game-task-actor sig-hiphog) + :action (game-task-action idle) + :tex (game-task-icon gaticon-01) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-10) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-life) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-krew-delivery-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '((hiphog 0 lguard special)) + :open? #f + :on-close #f + :description (game-text-id text-x1bc) + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-red-gun-training) + :name "city-red-gun-training-try-once" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor krew-hiphog) + :action (game-task-action idle) + :tex (game-task-icon gaticon-01) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor sig-hiphog) + :action (game-task-action idle) + :tex (game-task-icon gaticon-01) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-10) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-life) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-red-gun-training-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '((hiphog 0 lguard special)) + :open? #f + :on-close #f + :description (game-text-id text-x1bc) + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-red-gun-training) + :name "city-red-gun-training-resolution" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-10) + :scene #f + ) + ) + :flags (game-task-node-flag close-task) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-red-gun-training-try-once) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + :description (game-text-id text-x1bc) + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-red-gun-training) + :name "city-red-gun-training-bronze" + :when-open #f + :flags (game-task-node-flag save-on-life) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-red-gun-training-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-red-gun-training) + :name "city-red-gun-training-silver" + :when-open #f + :flags (game-task-node-flag save-on-life) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-red-gun-training-bronze) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-red-gun-training) + :name "city-red-gun-training-gold" + :when-open #f + :flags (game-task-node-flag save-on-life) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-red-gun-training-silver) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'atoll + :task (game-task atoll-sig) + :name "atoll-sig-introduction" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor krew-hiphog) + :action (game-task-action say) + :tex (game-task-icon gaticon-02) + :scene "atoll-2-intro" + :distance (meters 34) + ) + (new 'static 'game-task-event + :actor (game-task-actor sig-hiphog) + :action (game-task-action idle) + :tex (game-task-icon gaticon-01) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-08) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-life abs-task-mask) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-red-gun-training-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :task-mask (task-mask task1) + :on-open #f + :info #f + :borrow '((hiphog 0 lguard special)) + :open? #f + :on-close #f + :description (game-text-id text-x202) + ) + (new 'static 'game-task-node-info + :level 'atoll + :task (game-task atoll-sig) + :name "atoll-sig-sig-introduction" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor krew-hiphog) + :action (game-task-action talk) + :tex (game-task-icon gaticon-03) + :scene "atoll-2-intro" + ) + (new 'static 'game-task-event + :actor (game-task-actor sig-atoll) + :action (game-task-action say) + :tex (game-task-icon gaticon-02) + :scene "atoll-sig-intro" + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-07) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-life) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node atoll-sig-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '((hiphog 0 lguard special)) + :open? #f + :on-close #f + :description (game-text-id text-x1bd) + ) + (new 'static 'game-task-node-info + :level 'atoll + :task (game-task atoll-sig) + :name "atoll-sig-tank" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor krew-hiphog) + :action (game-task-action idle) + :tex (game-task-icon gaticon-01) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor sig-atoll) + :action (game-task-action idle) + :tex (game-task-icon gaticon-01) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-07) + :scene #f + ) + ) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node atoll-sig-sig-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '((hiphog 0 lguard special)) + :open? #f + :on-close #f + :description (game-text-id text-x1bd) + ) + (new 'static 'game-task-node-info + :level 'atoll + :task (game-task atoll-sig) + :name "atoll-sig-sniper-a" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor krew-hiphog) + :action (game-task-action idle) + :tex (game-task-icon gaticon-01) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor sig-atoll) + :action (game-task-action idle) + :tex (game-task-icon gaticon-01) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-07) + :scene #f + ) + ) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node atoll-sig-tank) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '((hiphog 0 lguard special)) + :open? #f + :on-close #f + :description (game-text-id text-x1bd) + ) + (new 'static 'game-task-node-info + :level 'atoll + :task (game-task atoll-sig) + :name "atoll-sig-sniper-b" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor krew-hiphog) + :action (game-task-action idle) + :tex (game-task-icon gaticon-01) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor sig-atoll) + :action (game-task-action idle) + :tex (game-task-icon gaticon-01) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-07) + :scene #f + ) + ) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node atoll-sig-sniper-a) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '((hiphog 0 lguard special)) + :open? #f + :on-close #f + :description (game-text-id text-x1bd) + ) + (new 'static 'game-task-node-info + :level 'atoll + :task (game-task atoll-sig) + :name "atoll-sig-sniper-c" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor krew-hiphog) + :action (game-task-action idle) + :tex (game-task-icon gaticon-01) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor sig-atoll) + :action (game-task-action idle) + :tex (game-task-icon gaticon-01) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-07) + :scene #f + ) + ) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node atoll-sig-sniper-b) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '((hiphog 0 lguard special)) + :open? #f + :on-close #f + :description (game-text-id text-x1bd) + ) + (new 'static 'game-task-node-info + :level 'atoll + :task (game-task atoll-sig) + :name "atoll-sig-sniper-d" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor krew-hiphog) + :action (game-task-action idle) + :tex (game-task-icon gaticon-01) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor sig-atoll) + :action (game-task-action idle) + :tex (game-task-icon gaticon-01) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-07) + :scene #f + ) + ) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node atoll-sig-sniper-c) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '((hiphog 0 lguard special)) + :open? #f + :on-close #f + :description (game-text-id text-x1bd) + ) + (new 'static 'game-task-node-info + :level 'atoll + :task (game-task atoll-sig) + :name "atoll-sig-resolution" + :when-open #f + :flags (game-task-node-flag close-task) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node atoll-sig-sniper-d) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + :description (game-text-id text-x1bd) + ) + (new 'static 'game-task-node-info + :level 'sewer + :task (game-task sewer-enemy) + :name "sewer-enemy-introduction" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor krew-hiphog) + :action (game-task-action say) + :tex (game-task-icon gaticon-02) + :scene "sewer-1-intro" + :distance (meters 34) + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-08) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-life) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node atoll-sig-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '((hiphog 0 lguard special)) + :open? #f + :on-close #f + :description (game-text-id text-x202) + ) + (new 'static 'game-task-node-info + :level 'sewer + :task (game-task sewer-enemy) + :name "sewer-enemy-blow-up-turrets" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor krew-hiphog) + :action (game-task-action talk) + :tex (game-task-icon gaticon-03) + :scene "sewer-1-intro" + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-06) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-life task-manager) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node sewer-enemy-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info (new 'static 'task-manager-info + :level 'sewerb + :intro-scene #f + :resolution-scene #f + :resolution-scene-continue #f + :retry-continue #f + :fail-continue #f + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node sewer-enemy-blow-up-turrets) + :on-complete '(talker-spawn "krew010") + :on-fail #f + ) + :borrow '((hiphog 0 lguard special)) + :open? #f + :on-close #f + :description (game-text-id text-x1be) + ) + (new 'static 'game-task-node-info + :level 'sewer + :task (game-task sewer-enemy) + :name "sewer-enemy-talk-to-krew" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor krew-hiphog) + :action (game-task-action say) + :tex (game-task-icon gaticon-02) + :scene "sewer-1-res" + :distance (meters 40) + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-08) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-life) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node sewer-enemy-blow-up-turrets) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '((hiphog 0 lguard special)) + :open? #f + :on-close #f + :description (game-text-id text-x202) + ) + (new 'static 'game-task-node-info + :level 'sewer + :task (game-task sewer-enemy) + :name "sewer-enemy-resolution" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-11) + :scene #f + ) + ) + :flags (game-task-node-flag close-task abs-task-mask task-manager) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node sewer-enemy-talk-to-krew) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :task-mask (task-mask task1) + :on-open #f + :info (new 'static 'task-manager-info + :mask (task-manager-mask resolution-scene) + :level 'gungame + :intro-scene #f + :resolution-scene "city-get-yellow-gun" + :resolution-scene-continue #f + :retry-continue #f + :fail-continue #f + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node sewer-enemy-resolution) + :on-complete #f + :on-fail #f + ) + :borrow '() + :open? #f + :on-close #f + :add (game-task-node-command add-gun-yellow) + :description (game-text-id text-x1bf) + ) + (new 'static 'game-task-node-info + :level 'strip + :task (game-task strip-rescue) + :name "strip-rescue-introduction" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor torn-hideout) + :action (game-task-action say) + :tex (game-task-icon gaticon-02) + :scene "vin-rescue-intro" + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-05) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-life) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node sewer-enemy-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '((hideout 0 ltrnysam special)) + :open? #f + :on-close #f + :description (game-text-id text-x201) + ) + (new 'static 'game-task-node-info + :level 'strip + :task (game-task strip-rescue) + :name "strip-rescue-battle" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor torn-hideout) + :action (game-task-action talk) + :tex (game-task-icon gaticon-03) + :scene "vin-rescue-intro" + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-03) + :scene #f + ) + ) + :flags (game-task-node-flag task-manager) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node strip-rescue-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info (new 'static 'task-manager-info + :level 'strip + :intro-scene #f + :resolution-scene #f + :resolution-scene-continue #f + :retry-continue #f + :fail-continue #f + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node strip-rescue-resolution) + :on-complete #f + :on-fail #f + :end-sphere (new 'static 'sphere :x 9618717.0 :y 368630.6 :z -177470.27 :r 81920.0) + ) + :borrow '((hideout 0 ltrnysam special)) + :open? #f + :on-close #f + :description (game-text-id text-x1c0) + ) + (new 'static 'game-task-node-info + :level 'strip + :task (game-task strip-rescue) + :name "strip-rescue-resolution" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor torn-hideout) + :action (game-task-action talk) + :tex (game-task-icon gaticon-03) + :scene "vin-rescue-intro" + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-03) + :scene #f + ) + ) + :flags (game-task-node-flag close-task abs-task-mask) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node strip-rescue-battle) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :task-mask (task-mask task1) + :on-open #f + :info #f + :borrow '((hideout 0 ltrnysam special)) + :open? #f + :on-close #f + :description (game-text-id text-x1c0) + ) + (new 'static 'game-task-node-info + :level 'atoll + :task (game-task atoll-battle) + :name "atoll-battle-introduction" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor torn-hideout) + :action (game-task-action say) + :tex (game-task-icon gaticon-02) + :scene "atoll-3-intro" + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-05) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-life abs-task-mask) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node strip-rescue-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :task-mask (task-mask task2) + :on-open #f + :info #f + :borrow '((hideout 0 ltrnysam special)) + :open? #f + :on-close #f + :description (game-text-id text-x201) + ) + (new 'static 'game-task-node-info + :level 'atoll + :task (game-task atoll-battle) + :name "atoll-battle-rescue" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor torn-hideout) + :action (game-task-action talk) + :tex (game-task-icon gaticon-03) + :scene "atoll-3-intro" + ) + (new 'static 'game-task-event + :actor (game-task-actor ashelin-atoll) + :action (game-task-action say) + :tex (game-task-icon gaticon-02) + :scene "atoll-save-ashelin-res-a" + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-07) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-64) + :scene #f + ) + ) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node atoll-battle-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '((hideout 0 ltrnysam special)) + :open? #f + :on-close #f + :description (game-text-id text-x1c4) + ) + (new 'static 'game-task-node-info + :level 'atoll + :task (game-task atoll-battle) + :name "atoll-battle-battle" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor torn-hideout) + :action (game-task-action talk) + :tex (game-task-icon gaticon-03) + :scene "atoll-3-intro" + ) + (new 'static 'game-task-event + :actor (game-task-actor ashelin-atoll) + :action (game-task-action idle) + :tex (game-task-icon gaticon-01) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-07) + :scene #f + ) + ) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node atoll-battle-rescue) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '((hideout 0 ltrnysam special)) + :open? #f + :on-close #f + :description (game-text-id text-x1c4) + ) + (new 'static 'game-task-node-info + :level 'atoll + :task (game-task atoll-battle) + :name "atoll-battle-resolution" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor torn-hideout) + :action (game-task-action talk) + :tex (game-task-icon gaticon-03) + :scene "atoll-3-intro" + ) + (new 'static 'game-task-event + :actor (game-task-actor ashelin-atoll) + :action (game-task-action say) + :tex (game-task-icon gaticon-02) + :scene "atoll-save-ashelin-res-b" + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-07) + :scene #f + ) + ) + :flags (game-task-node-flag close-task abs-task-mask) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node atoll-battle-battle) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :task-mask (task-mask done) + :on-open #f + :info #f + :borrow '((hideout 0 ltrnysam special)) + :open? #f + :on-close #f + :add (game-task-node-command add-pass-yellow) + :description (game-text-id text-x1c4) + ) + (new 'static 'game-task-node-info + :level 'mountain + :task (game-task mountain-lens) + :name "mountain-lens-introduction" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor onin-onintent) + :action (game-task-action say) + :tex (game-task-icon gaticon-02) + :scene "mountain-finditems-intro" + ) + (new 'static 'game-task-event + :actor (game-task-actor pecker-onintent) + :action (game-task-action idle) + :tex (game-task-icon gaticon-01) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-01) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-life) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node atoll-battle-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + :description (game-text-id text-x203) + ) + (new 'static 'game-task-node-info + :level 'mountain + :task (game-task mountain-lens) + :name "mountain-lens-started" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor onin-onintent) + :action (game-task-action talk) + :tex (game-task-icon gaticon-03) + :scene "mountain-finditems-intro" + ) + (new 'static 'game-task-event + :actor (game-task-actor pecker-onintent) + :action (game-task-action idle) + :tex (game-task-icon gaticon-01) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-04) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-65) + :scene #f + ) + ) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node mountain-lens-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + :description (game-text-id text-x1c7) + ) + (new 'static 'game-task-node-info + :level 'mountain + :task (game-task mountain-lens) + :name "mountain-lens-intermediate" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor onin-onintent) + :action (game-task-action talk) + :tex (game-task-icon gaticon-03) + :scene "mountain-finditems-intro" + ) + (new 'static 'game-task-event + :actor (game-task-actor pecker-onintent) + :action (game-task-action idle) + :tex (game-task-icon gaticon-01) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-04) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-65) + :scene #f + ) + ) + :flags (game-task-node-flag clear-task-mask) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node mountain-lens-started) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :task-mask (task-mask task3) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + :description (game-text-id text-x1c7) + ) + (new 'static 'game-task-node-info + :level 'mountain + :task (game-task mountain-lens) + :name "mountain-lens-resolution" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor onin-onintent) + :action (game-task-action talk) + :tex (game-task-icon gaticon-03) + :scene "mountain-finditems-intro" + ) + (new 'static 'game-task-event + :actor (game-task-actor pecker-onintent) + :action (game-task-action idle) + :tex (game-task-icon gaticon-01) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-04) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-65) + :scene #f + ) + ) + :flags (game-task-node-flag close-task set-task-mask) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node mountain-lens-intermediate) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :task-mask (task-mask task0) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + :description (game-text-id text-x1c7) + ) + (new 'static 'game-task-node-info + :level 'mountain + :task (game-task mountain-gear) + :name "mountain-gear-find" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor onin-onintent) + :action (game-task-action talk) + :tex (game-task-icon gaticon-03) + :scene "mountain-finditems-intro" + ) + (new 'static 'game-task-event + :actor (game-task-actor pecker-onintent) + :action (game-task-action idle) + :tex (game-task-icon gaticon-01) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-04) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-67) + :scene #f + ) + ) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node mountain-lens-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + :description (game-text-id text-x1c9) + ) + (new 'static 'game-task-node-info + :level 'mountain + :task (game-task mountain-gear) + :name "mountain-gear-resolution" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor onin-onintent) + :action (game-task-action talk) + :tex (game-task-icon gaticon-03) + :scene "mountain-finditems-intro" + ) + (new 'static 'game-task-event + :actor (game-task-actor pecker-onintent) + :action (game-task-action idle) + :tex (game-task-icon gaticon-01) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-04) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-67) + :scene #f + ) + ) + :flags (game-task-node-flag close-task set-task-mask) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node mountain-gear-find) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :task-mask (task-mask task1) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + :description (game-text-id text-x1c9) + ) + (new 'static 'game-task-node-info + :level 'mountain + :task (game-task mountain-shard) + :name "mountain-shard-dice" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor onin-onintent) + :action (game-task-action talk) + :tex (game-task-icon gaticon-03) + :scene "mountain-finditems-intro" + ) + (new 'static 'game-task-event + :actor (game-task-actor pecker-onintent) + :action (game-task-action idle) + :tex (game-task-icon gaticon-01) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-04) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-66) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-life) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node mountain-lens-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + :description (game-text-id text-x1c8) + ) + (new 'static 'game-task-node-info + :level 'mountain + :task (game-task mountain-shard) + :name "mountain-shard-resolution" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor onin-onintent) + :action (game-task-action talk) + :tex (game-task-icon gaticon-03) + :scene "mountain-finditems-intro" + ) + (new 'static 'game-task-event + :actor (game-task-actor pecker-onintent) + :action (game-task-action idle) + :tex (game-task-icon gaticon-01) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-04) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-66) + :scene #f + ) + ) + :flags (game-task-node-flag close-task set-task-mask) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node mountain-lens-introduction) + (game-task-node mountain-shard-dice) + (game-task-node none) + (game-task-node none) + ) + :task-mask (task-mask task2) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + :description (game-text-id text-x1c8) + ) + (new 'static 'game-task-node-info + :level 'mountain + :task (game-task mountain-collection) + :name "mountain-collection-resolution" + :when-open #f + :flags (game-task-node-flag close-task set-task-mask) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node mountain-lens-resolution) + (game-task-node mountain-gear-resolution) + (game-task-node mountain-shard-resolution) + (game-task-node none) + ) + :task-mask (task-mask done) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-keira-delivery) + :name "city-keira-delivery-introduction" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor krew-hiphog) + :action (game-task-action say) + :tex (game-task-icon gaticon-02) + :scene "city-keira-delivery-intro" + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-08) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-try) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node sewer-enemy-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '((hiphog 0 lguard special)) + :open? #f + :on-close #f + :add (game-task-node-command add-pass-green) + :description (game-text-id text-x202) + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-keira-delivery) + :name "city-keira-delivery-delivery" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor krew-hiphog) + :action (game-task-action talk) + :tex (game-task-icon gaticon-03) + :scene "city-keira-delivery-intro" + ) + (new 'static 'game-task-event + :actor (game-task-actor keira-garage) + :action (game-task-action idle) + :tex (game-task-icon gaticon-01) + :scene #f + ) + ) + :flags (game-task-node-flag task-retry city-wait task-manager) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-keira-delivery-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info (new 'static 'task-manager-info + :mask (task-manager-mask resolution-scene) + :level 'ctywide + :intro-scene #f + :resolution-scene "city-keira-hover-challenge-intro" + :resolution-scene-continue "garage-start-skate" + :retry-continue "ctyport-hiphog-no-hiphog" + :fail-continue #f + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node city-keira-delivery-resolution) + :on-complete #f + :on-fail #f + ) + :borrow '((hiphog 0 lguard special)) + :open? #f + :on-close #f + :description (game-text-id text-x1c1) + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-keira-delivery) + :name "city-keira-delivery-resolution" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor krew-hiphog) + :action (game-task-action idle) + :tex (game-task-icon gaticon-01) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor keira-garage) + :action (game-task-action say) + :tex (game-task-icon gaticon-02) + :scene "city-keira-hover-challenge-intro" + :distance (meters 30) + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-12) + :scene #f + ) + ) + :flags (game-task-node-flag close-task) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-keira-delivery-delivery) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '((hiphog 0 lguard special)) + :open? #f + :on-close #f + :description (game-text-id text-x1c1) + ) + (new 'static 'game-task-node-info + :level 'stadium + :task (game-task stadium-board1) + :name "stadium-board1-introduction" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor keira-garage) + :action (game-task-action say) + :tex (game-task-icon gaticon-02) + :scene "city-keira-hover-challenge-intro" + :distance (meters 30) + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-12) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-life) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-keira-delivery-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'stadium + :task (game-task stadium-board1) + :name "stadium-board1-board" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor keira-garage) + :action (game-task-action talk) + :tex (game-task-icon gaticon-03) + :scene "city-keira-hover-challenge-intro" + ) + ) + :flags (game-task-node-flag task-manager) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node stadium-board1-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info (new 'static 'task-manager-info + :level 'ctywide + :intro-scene #f + :resolution-scene #f + :resolution-scene-continue #f + :retry-continue #f + :fail-continue #f + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node stadium-board1-board) + :on-complete #f + :on-fail #f + ) + :borrow '() + :open? #f + :on-close #f + :add (game-task-node-command add-board) + :description (game-text-id text-x1c6) + ) + (new 'static 'game-task-node-info + :level 'stadium + :task (game-task stadium-board1) + :name "stadium-board1-training" + :when-open #f + :flags (game-task-node-flag save-on-life save-on-try) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node stadium-board1-board) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + :description (game-text-id text-x1c6) + ) + (new 'static 'game-task-node-info + :level 'stadium + :task (game-task stadium-board1) + :name "stadium-board1-training-judge" + :when-open #f + :flags (game-task-node-flag save-on-life task-manager) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node stadium-board1-training) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info (new 'static 'task-manager-info + :level 'ctywide + :intro-scene #f + :resolution-scene #f + :resolution-scene-continue #f + :retry-continue "skatea-training-judge" + :fail-continue "skatea-training-judge" + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node stadium-board1-training-judge) + :on-complete #f + :on-fail #f + ) + :borrow '() + :open? #f + :on-close #f + :add (game-task-node-command add-board-training) + :description (game-text-id text-x1c6) + ) + (new 'static 'game-task-node-info + :level 'stadium + :task (game-task stadium-board1) + :name "stadium-board1-done" + :when-open #f + :flags (game-task-node-flag save-on-life) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node stadium-board1-training-judge) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + :add (game-task-node-command sub-board) + :description (game-text-id text-x1c6) + ) + (new 'static 'game-task-node-info + :level 'stadium + :task (game-task stadium-board1) + :name "stadium-board1-resolution" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor keira-garage) + :action (game-task-action say) + :tex (game-task-icon gaticon-02) + :scene "city-keira-hover-challenge-res" + :distance (meters 30) + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-12) + :scene #f + ) + ) + :flags (game-task-node-flag close-task task-manager) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node stadium-board1-done) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info (new 'static 'task-manager-info + :level 'ctywide + :intro-scene #f + :resolution-scene #f + :resolution-scene-continue #f + :retry-continue #f + :fail-continue #f + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node stadium-board1-resolution) + :on-complete #f + :on-fail #f + ) + :borrow '() + :open? #f + :on-close #f + :description (game-text-id text-x244) + ) + (new 'static 'game-task-node-info + :level 'stadium + :task (game-task stadium-board1) + :name "stadium-board1-bronze" + :when-open #f + :flags (game-task-node-flag save-on-life) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node stadium-board1-board) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'stadium + :task (game-task stadium-board1) + :name "stadium-board1-silver" + :when-open #f + :flags (game-task-node-flag save-on-life) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node stadium-board1-bronze) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'stadium + :task (game-task stadium-board1) + :name "stadium-board1-gold" + :when-open #f + :flags (game-task-node-flag save-on-life) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node stadium-board1-silver) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-krew-collection) + :name "city-krew-collection-introduction" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor krew-hiphog) + :action (game-task-action say) + :tex (game-task-icon gaticon-02) + :scene "city-krew-collection-intro" + ) + (new 'static 'game-task-event + :actor (game-task-actor tess-hiphog) + :action (game-task-action idle) + :tex (game-task-icon gaticon-01) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-08) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-try) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-keira-delivery-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '((hiphog 0 ltess special) (ctywide 0 lsack display)) + :open? #f + :on-close #f + :description (game-text-id text-x202) + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-krew-collection) + :name "city-krew-collection-collection" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor krew-hiphog) + :action (game-task-action idle) + :tex (game-task-icon gaticon-01) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor tess-hiphog) + :action (game-task-action idle) + :tex (game-task-icon gaticon-01) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-life task-retry city-wait task-manager) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-krew-collection-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info (new 'static 'task-manager-info + :level 'lsack + :intro-scene #f + :resolution-scene #f + :resolution-scene-continue #f + :retry-continue "ctyport-hiphog-no-hiphog" + :fail-continue #f + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node city-krew-collection-collection) + :on-complete #f + :on-fail #f + ) + :borrow '((ctywide 0 lsack display) (hiphog 0 ltess special)) + :open? #f + :on-close #f + :description (game-text-id text-x1c5) + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-krew-collection) + :name "city-krew-collection-resolution" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor krew-hiphog) + :action (game-task-action say) + :tex (game-task-icon gaticon-02) + :scene "city-krew-collection-res" + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-08) + :scene #f + ) + ) + :flags (game-task-node-flag close-task) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-krew-collection-collection) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '((ctywide 0 lsack display) (hiphog 0 lguard special)) + :open? #f + :on-close #f + :add (game-task-node-command add-gun-up-1) + :description (game-text-id text-x1c5) + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-yellow-gun-training) + :name "city-yellow-gun-training-introduction" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-10) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-life) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node sewer-enemy-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + :description (game-text-id text-x1c2) + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-yellow-gun-training) + :name "city-yellow-gun-training-resolution" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-10) + :scene #f + ) + ) + :flags (game-task-node-flag close-task) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-yellow-gun-training-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + :description (game-text-id text-x1c2) + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-yellow-gun-training) + :name "city-yellow-gun-training-bronze" + :when-open #f + :flags (game-task-node-flag save-on-life) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-yellow-gun-training-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-yellow-gun-training) + :name "city-yellow-gun-training-silver" + :when-open #f + :flags (game-task-node-flag save-on-life) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-yellow-gun-training-bronze) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-yellow-gun-training) + :name "city-yellow-gun-training-gold" + :when-open #f + :flags (game-task-node-flag save-on-life) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-yellow-gun-training-silver) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'drill + :task (game-task drill-eggs) + :name "drill-eggs-introduction" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor vin-vinroom) + :action (game-task-action say) + :tex (game-task-icon gaticon-02) + :scene "drill-kill-metal-heads-intro" + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-03) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-life) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node strip-rescue-resolution) + (game-task-node city-yellow-gun-training-resolution) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + :description (game-text-id text-x204) + ) + (new 'static 'game-task-node-info + :level 'drill + :task (game-task drill-eggs) + :name "drill-eggs-eggs-0" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor vin-vinroom) + :action (game-task-action talk) + :tex (game-task-icon gaticon-03) + :scene "drill-kill-metal-heads-intro" + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-03) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-life) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node drill-eggs-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + :description (game-text-id text-x1c3) + ) + (new 'static 'game-task-node-info + :level 'drill + :task (game-task drill-eggs) + :name "drill-eggs-eggs-1" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor vin-vinroom) + :action (game-task-action talk) + :tex (game-task-icon gaticon-03) + :scene "drill-kill-metal-heads-intro" + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-03) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-life) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node drill-eggs-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + :description (game-text-id text-x1c3) + ) + (new 'static 'game-task-node-info + :level 'drill + :task (game-task drill-eggs) + :name "drill-eggs-eggs-2" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor vin-vinroom) + :action (game-task-action talk) + :tex (game-task-icon gaticon-03) + :scene "drill-kill-metal-heads-intro" + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-03) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-life) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node drill-eggs-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + :description (game-text-id text-x1c3) + ) + (new 'static 'game-task-node-info + :level 'drill + :task (game-task drill-eggs) + :name "drill-eggs-resolution" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor vin-vinroom) + :action (game-task-action talk) + :tex (game-task-icon gaticon-03) + :scene "drill-kill-metal-heads-intro" + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-03) + :scene #f + ) + ) + :flags (game-task-node-flag auto-close close-task) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node drill-eggs-eggs-0) + (game-task-node drill-eggs-eggs-1) + (game-task-node drill-eggs-eggs-2) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + :description (game-text-id text-x1c3) + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-power) + :name "city-power-introduction" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor vin-vinroom) + :action (game-task-action say) + :tex (game-task-icon gaticon-02) + :scene "city-switch-on-power-intro" + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-03) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-life) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node drill-eggs-resolution) + (game-task-node stadium-board1-resolution) + (game-task-node atoll-battle-resolution) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + :description (game-text-id text-x204) + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-power) + :name "city-power-vinroom" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor vin-vinroom) + :action (game-task-action talk) + :tex (game-task-icon gaticon-03) + :scene "city-switch-on-power-intro" + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-03) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-try) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-power-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + :description (game-text-id text-x204) + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-power) + :name "city-power-resolution" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor vin-vinroom) + :action (game-task-action idle) + :tex (game-task-icon gaticon-01) + :scene #f + ) + ) + :flags (game-task-node-flag close-task task-retry city-wait task-manager) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-power-vinroom) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info (new 'static 'task-manager-info + :level 'lpower + :intro-scene #f + :resolution-scene #f + :resolution-scene-continue #f + :retry-continue "ctyinda-vinroom" + :fail-continue #f + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node city-power-post-win) + :on-complete #f + :on-fail #f + ) + :borrow '((ctywide 0 lpower display)) + :open? #f + :on-close #f + :description (game-text-id text-x1ca) + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-power) + :name "city-power-post-win" + :when-open #f + :flags (game-task-node-flag save-on-life) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-power-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '((ctywide 0 lpower display)) + :open? #f + :on-close #f + :description (game-text-id text-x1ca) + ) + (new 'static 'game-task-node-info + :level 'palace + :task (game-task palace-cable) + :name "palace-cable-introduction" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-13) + :scene #f + ) + ) + :flags (game-task-node-flag auto-close save-on-life) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-power-post-win) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'palace + :task (game-task palace-cable) + :name "palace-cable-resolution" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-13) + :scene #f + ) + ) + :flags (game-task-node-flag close-task abs-task-mask) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node palace-cable-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :task-mask (task-mask task1) + :on-open #f + :info #f + :borrow '((throne 0 lbrnermk special)) + :open? #f + :on-close #f + :description (game-text-id text-x1cb) + ) + (new 'static 'game-task-node-info + :level 'palace + :task (game-task palace-boss) + :name "palace-boss-introduction" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor baron-palace) + :action (game-task-action say) + :tex (game-task-icon gaticon-02) + :scene "palace-outside-window-res-b" + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-13) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-life) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node palace-cable-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'palace + :task (game-task palace-boss) + :name "palace-boss-battle" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor baron-palace) + :action (game-task-action idle) + :tex (game-task-icon gaticon-01) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-13) + :scene #f + ) + ) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node palace-boss-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + :description (game-text-id text-x1cc) + ) + (new 'static 'game-task-node-info + :level 'palace + :task (game-task palace-boss) + :name "palace-boss-resolution" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor baron-palace) + :action (game-task-action say) + :tex (game-task-icon gaticon-02) + :scene "palace-boss-res" + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-13) + :scene #f + ) + ) + :flags (game-task-node-flag close-task abs-task-mask) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node palace-boss-battle) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :task-mask (task-mask done) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + :description (game-text-id text-x1cc) + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-shuttle) + :name "city-shuttle-introduction" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor torn-hideout) + :action (game-task-action say) + :tex (game-task-icon gaticon-02) + :scene "city-shuttle-underground-intro" + ) + (new 'static 'game-task-event + :actor (game-task-actor kor-hideout) + :action (game-task-action idle) + :tex (game-task-icon gaticon-01) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor kid-hideout) + :action (game-task-action idle) + :tex (game-task-icon gaticon-01) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-05) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-try) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node mountain-collection-resolution) + (game-task-node palace-boss-resolution) + (game-task-node city-krew-collection-resolution) + (game-task-node city-yellow-gun-training-resolution) + ) + :on-open #f + :info #f + :borrow '((hideout 0 ltrnkrkd special)) + :open? #f + :on-close #f + :description (game-text-id text-x201) + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-shuttle) + :name "city-shuttle-shuttle" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor torn-hideout) + :action (game-task-action idle) + :tex (game-task-icon gaticon-01) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor kor-hideout) + :action (game-task-action idle) + :tex (game-task-icon gaticon-01) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor kid-hideout) + :action (game-task-action idle) + :tex (game-task-icon gaticon-01) + :scene #f + ) + ) + :flags (game-task-node-flag task-retry task-manager) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-shuttle-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info (new 'static 'task-manager-info + :level 'lshuttle + :intro-scene #f + :resolution-scene #f + :resolution-scene-continue #f + :retry-continue "ctysluma-alley-no-hideout" + :fail-continue #f + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node city-shuttle-resolution) + :on-complete #f + :on-fail #f + ) + :borrow '((hideout 0 ltrnkrkd special) (ctywide 0 lshuttle display)) + :open? #f + :on-close #f + :description (game-text-id text-x1cd) + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-shuttle) + :name "city-shuttle-resolution" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor torn-hideout) + :action (game-task-action say) + :tex (game-task-icon gaticon-02) + :scene "city-shuttle-underground-intro" + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-05) + :scene #f + ) + ) + :flags (game-task-node-flag close-task) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-shuttle-shuttle) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '((hideout 0 ltrnkrkd special)) + :open? #f + :on-close #f + :description (game-text-id text-x1cd) + ) + (new 'static 'game-task-node-info + :level 'ruins + :task (game-task ruins-enemy) + :name "ruins-enemy-introduction" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor torn-hideout) + :action (game-task-action say) + :tex (game-task-icon gaticon-02) + :scene "ruins-sacred-intro" + :distance (meters 20) + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-05) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-life abs-task-mask) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-shuttle-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :task-mask (task-mask task1) + :on-open #f + :info #f + :borrow '((hideout 0 ltrnysam special)) + :open? #f + :on-close #f + :add (game-task-node-command add-gun-blue) + :description (game-text-id text-x201) + ) + (new 'static 'game-task-node-info + :level 'ruins + :task (game-task ruins-enemy) + :name "ruins-enemy-resolution" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor torn-hideout) + :action (game-task-action talk) + :tex (game-task-icon gaticon-03) + :scene "ruins-sacred-intro" + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-02) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-68) + :scene #f + ) + ) + :flags (game-task-node-flag close-task) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node ruins-enemy-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '((hideout 0 ltrnysam special)) + :open? #f + :on-close #f + :description (game-text-id text-x1ce) + ) + (new 'static 'game-task-node-info + :level 'ruins + :task (game-task ruins-enemy) + :name "ruins-enemy-exit" + :when-open #f + :flags (game-task-node-flag save-on-life task-manager) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node ruins-enemy-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info (new 'static 'task-manager-info + :level 'ruins + :intro-scene #f + :resolution-scene #f + :resolution-scene-continue #f + :retry-continue #f + :fail-continue #f + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node ruins-enemy-exit) + :on-complete #f + :on-fail #f + :end-sphere (new 'static 'sphere :x 3419490.2 :y -9.8304 :z -1391682.0 :r 57344.0) + ) + :borrow '() + :open? #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-blue-gun-training) + :name "city-blue-gun-training-bronze" + :when-open #f + :flags (game-task-node-flag save-on-life) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node ruins-enemy-exit) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-blue-gun-training) + :name "city-blue-gun-training-silver" + :when-open #f + :flags (game-task-node-flag save-on-life) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-blue-gun-training-bronze) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-blue-gun-training) + :name "city-blue-gun-training-gold" + :when-open #f + :flags (game-task-node-flag save-on-life) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-blue-gun-training-silver) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'forest + :task (game-task forest-scouts) + :name "forest-scouts-pre-intro" + :when-open #f + :flags (game-task-node-flag save-on-life intro-wait city-wait task-manager) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node ruins-enemy-exit) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info (new 'static 'task-manager-info + :mask (task-manager-mask intro-scene) + :level 'ctywide + :intro-scene "ds006" + :resolution-scene #f + :resolution-scene-continue #f + :retry-continue #f + :fail-continue #f + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node forest-scouts-pre-intro) + :intro-delay #x5dc + :on-complete #f + :on-fail #f + ) + :borrow '() + :open? #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'forest + :task (game-task forest-scouts) + :name "forest-scouts-introduction" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor youngsamos-hideout) + :action (game-task-action say) + :tex (game-task-icon gaticon-02) + :scene "forest-catch-metal-heads-intro" + :distance (meters 35) + ) + (new 'static 'game-task-event + :actor (game-task-actor torn-hideout) + :action (game-task-action idle) + :tex (game-task-icon gaticon-01) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-05) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-life) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node forest-scouts-pre-intro) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '((hideout 0 ltrnysam special)) + :open? #f + :on-close #f + :description (game-text-id text-x205) + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task forest-scouts) + :name "forest-scouts-voicebox" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor youngsamos-hideout) + :action (game-task-action talk) + :tex (game-task-icon gaticon-03) + :scene "forest-catch-metal-heads-intro" + ) + (new 'static 'game-task-event + :actor (game-task-actor torn-hideout) + :action (game-task-action idle) + :tex (game-task-icon gaticon-01) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-18) + :scene #f + ) + ) + :flags (game-task-node-flag intro-wait city-wait task-manager utility-node) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node forest-scouts-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info (new 'static 'task-manager-info + :mask (task-manager-mask intro-scene) + :level 'ctywide + :intro-scene "kei026" + :resolution-scene #f + :resolution-scene-continue #f + :retry-continue #f + :fail-continue #f + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node forest-scouts-voicebox) + :intro-delay #x1770 + :on-complete #f + :on-fail #f + ) + :borrow '((hideout 0 ltrnysam special)) + :open? #f + :on-close #f + :description (game-text-id text-x1cf) + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task forest-scouts) + :name "forest-scouts-get-board" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor youngsamos-hideout) + :action (game-task-action talk) + :tex (game-task-icon gaticon-03) + :scene "forest-catch-metal-heads-intro" + ) + (new 'static 'game-task-event + :actor (game-task-actor torn-hideout) + :action (game-task-action idle) + :tex (game-task-icon gaticon-01) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-18) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-life utility-node) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node forest-scouts-voicebox) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '((hideout 0 ltrnysam special)) + :open? #f + :on-close #f + :add (game-task-node-command add-board) + :description (game-text-id text-x1cf) + ) + (new 'static 'game-task-node-info + :level 'forest + :task (game-task forest-scouts) + :name "forest-scouts-pegasus" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor youngsamos-hideout) + :action (game-task-action talk) + :tex (game-task-icon gaticon-03) + :scene "forest-catch-metal-heads-intro" + ) + (new 'static 'game-task-event + :actor (game-task-actor torn-hideout) + :action (game-task-action idle) + :tex (game-task-icon gaticon-01) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-18) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-life task-manager) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node forest-scouts-get-board) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info (new 'static 'task-manager-info + :level 'forest + :intro-scene #f + :resolution-scene #f + :resolution-scene-continue #f + :retry-continue #f + :fail-continue #f + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node forest-scouts-pegasus) + :on-complete #f + :on-fail #f + ) + :borrow '((hideout 0 ltrnysam special)) + :open? #f + :on-close #f + :description (game-text-id text-x1cf) + ) + (new 'static 'game-task-node-info + :level 'forest + :task (game-task forest-scouts) + :name "forest-scouts-resolution" + :when-open #f + :flags (game-task-node-flag close-task) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node forest-scouts-pegasus) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + :description (game-text-id text-x1cf) + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-escort-kid) + :name "city-escort-kid-pre-intro" + :when-open #f + :flags (game-task-node-flag auto-close save-on-life clear-task-mask) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node forest-scouts-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :task-mask (task-mask task1) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-escort-kid) + :name "city-escort-kid-introduction" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor youngsamos-alley) + :action (game-task-action say) + :tex (game-task-icon gaticon-02) + :scene "city-escort-kid-intro" + :distance (meters 15) + ) + (new 'static 'game-task-event + :actor (game-task-actor kid-alley) + :action (game-task-action idle) + :tex (game-task-icon gaticon-01) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor crocadog-alley) + :action (game-task-action idle) + :tex (game-task-icon gaticon-01) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-05) + :scene #f + ) + ) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-escort-kid-pre-intro) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + :description (game-text-id text-x205) + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-escort-kid) + :name "city-escort-kid-resolution" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor youngsamos-alley) + :action (game-task-action idle) + :tex (game-task-icon gaticon-01) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-03) + :scene #f + ) + ) + :flags (game-task-node-flag close-task set-task-mask task-manager no-audio) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-escort-kid-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :task-mask (task-mask task1) + :on-open #f + :info (new 'static 'task-manager-info + :level 'lkiddoge + :intro-scene #f + :resolution-scene #f + :resolution-scene-continue #f + :retry-continue "ctysluma-escort-retry" + :fail-continue "ctysluma-escort-retry" + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node city-escort-kid-resolution) + :on-complete #f + :on-fail #f + ) + :borrow '((ctywide 0 lkiddoge display)) + :open? #f + :on-close #f + :description (game-text-id text-x1d0) + ) + (new 'static 'game-task-node-info + :level 'dig + :task (game-task dig-knock-down) + :name "dig-knock-down-introduction" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor kor-vinroom) + :action (game-task-action say) + :tex (game-task-icon gaticon-02) + :scene "dig-knock-down-scaffolding-intro" + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-03) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-life) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-escort-kid-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + :description (game-text-id text-x200) + ) + (new 'static 'game-task-node-info + :level 'dig + :task (game-task dig-knock-down) + :name "dig-knock-down-resolution" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor kor-vinroom) + :action (game-task-action talk) + :tex (game-task-icon gaticon-03) + :scene "dig-knock-down-scaffolding-intro" + ) + (new 'static 'game-task-event + :actor (game-task-actor kid-vinroom) + :action (game-task-action idle) + :tex (game-task-icon gaticon-01) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor crocadog-vinroom) + :action (game-task-action idle) + :tex (game-task-icon gaticon-01) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-20) + :scene #f + ) + ) + :flags (game-task-node-flag close-task) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node dig-knock-down-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + :description (game-text-id text-x1d4) + ) + (new 'static 'game-task-node-info + :level 'strip + :task (game-task strip-grenade) + :name "strip-grenade-introduction" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor vin-vinroom) + :action (game-task-action say) + :tex (game-task-icon gaticon-02) + :scene "ecowells-intro" + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-03) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-life) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node dig-knock-down-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + :description (game-text-id text-x204) + ) + (new 'static 'game-task-node-info + :level 'strip + :task (game-task strip-grenade) + :name "strip-grenade-explode" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor vin-vinroom) + :action (game-task-action talk) + :tex (game-task-icon gaticon-03) + :scene "ecowells-intro" + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-03) + :scene #f + ) + ) + :flags (game-task-node-flag task-manager) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node strip-grenade-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info (new 'static 'task-manager-info + :mask (task-manager-mask resolution-scene) + :level 'strip + :intro-scene #f + :resolution-scene "ecowells-victory" + :resolution-scene-continue #f + :retry-continue #f + :fail-continue #f + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node strip-grenade-resolution) + :on-complete #f + :on-fail #f + ) + :borrow '() + :open? #f + :on-close #f + :description (game-text-id text-x1d5) + ) + (new 'static 'game-task-node-info + :level 'strip + :task (game-task strip-grenade) + :name "strip-grenade-resolution" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor vin-vinroom) + :action (game-task-action idle) + :tex (game-task-icon gaticon-01) + :scene #f + ) + ) + :flags (game-task-node-flag close-task abs-task-mask) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node strip-grenade-explode) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :task-mask (task-mask task2) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + :description (game-text-id text-x1d5) + ) + (new 'static 'game-task-node-info + :level 'drill + :task (game-task drill-ship) + :name "drill-ship-introduction" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor vin-vinroom) + :action (game-task-action say) + :tex (game-task-icon gaticon-02) + :scene "drill-destroy-ship-intro" + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-03) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-life abs-task-mask) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node strip-grenade-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :task-mask (task-mask task1) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + :description (game-text-id text-x200) + ) + (new 'static 'game-task-node-info + :level 'drill + :task (game-task drill-ship) + :name "drill-ship-resolution" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor kor-vinroom) + :action (game-task-action talk) + :tex (game-task-icon gaticon-03) + :scene "drill-destroy-ship-intro" + ) + (new 'static 'game-task-event + :actor (game-task-actor vin-vinroom) + :action (game-task-action idle) + :tex (game-task-icon gaticon-01) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-03) + :scene #f + ) + ) + :flags (game-task-node-flag close-task task-manager) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node drill-ship-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info (new 'static 'task-manager-info + :level 'drillmid + :intro-scene #f + :resolution-scene #f + :resolution-scene-continue #f + :retry-continue #f + :fail-continue #f + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node drill-ship-resolution) + :on-complete #f + :on-fail #f + ) + :borrow '() + :open? #f + :on-close #f + :description (game-text-id text-x1d7) + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-port-run) + :name "city-port-run-introduction" + :when-open #f + :flags (game-task-node-flag save-on-life save-on-try task-manager) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node forest-scouts-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info (new 'static 'task-manager-info + :level 'lportrun + :intro-scene #f + :resolution-scene #f + :resolution-scene-continue #f + :retry-continue #f + :fail-continue #f + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node city-port-run-introduction) + :on-complete #f + :on-fail #f + ) + :borrow '((ctywide 0 lportrun display)) + :open? (lambda ((arg0 game-task-node-info)) + (let ((v1-1 (level-get-target-inside *level*))) + (the-as symbol (and v1-1 (logtest? (-> v1-1 info level-flags) 1) (!= (-> v1-1 name) 'ctysluma))) + ) + ) + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-port-run) + :name "city-port-run-resolution" + :when-open #f + :flags (game-task-node-flag close-task task-manager) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-port-run-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info (new 'static 'task-manager-info + :level 'lportrun + :intro-scene #f + :resolution-scene #f + :resolution-scene-continue #f + :retry-continue "ctyport-hiphog-no-hiphog" + :fail-continue #f + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node city-port-run-post-win) + :on-complete #f + :on-fail #f + ) + :borrow '((ctywide 0 lportrun display)) + :open? (lambda ((arg0 game-task-node-info)) + (let ((v1-1 (level-get-target-inside *level*))) + (the-as symbol (and v1-1 (logtest? (-> v1-1 info level-flags) 1) (!= (-> v1-1 name) 'ctysluma))) + ) + ) + :on-close #f + :description (game-text-id text-x1d2) + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-port-run) + :name "city-port-run-post-win" + :when-open #f + :flags (game-task-node-flag save-on-life) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-port-run-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '((ctywide 0 lportrun display)) + :open? #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-meet-brutter) + :name "city-meet-brutter-pre-intro" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor krew-hiphog) + :action (game-task-action say) + :tex (game-task-icon gaticon-02) + :scene "city-meet-brutter-intro" + :distance (meters 34) + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-08) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-life) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-port-run-post-win) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '((hiphog 0 lguard special)) + :open? #f + :on-close #f + :add (game-task-node-command add-gun-up-2) + :description (game-text-id text-x202) + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-meet-brutter) + :name "city-meet-brutter-introduction" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor krew-hiphog) + :action (game-task-action say) + :tex (game-task-icon gaticon-02) + :scene "city-meet-brutter-intro" + :distance (meters 34) + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-08) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-try) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-meet-brutter-pre-intro) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '((hiphog 0 lguard special)) + :open? #f + :on-close #f + :description (game-text-id text-x202) + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-meet-brutter) + :name "city-meet-brutter-meet-brutter" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor krew-hiphog) + :action (game-task-action talk) + :tex (game-task-icon gaticon-03) + :scene "city-meet-brutter-intro" + ) + ) + :flags (game-task-node-flag task-retry city-wait task-manager) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-meet-brutter-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info (new 'static 'task-manager-info + :mask (task-manager-mask resolution-scene) + :level 'lmeetbrt + :intro-scene #f + :resolution-scene "city-meet-brutter-res" + :resolution-scene-continue #f + :retry-continue "ctyport-hiphog-no-hiphog" + :fail-continue #f + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node city-meet-brutter-resolution) + :on-complete #f + :on-fail #f + ) + :borrow '((ctywide 0 lmeetbrt display) (hiphog 0 lguard special)) + :open? #f + :on-close #f + :description (game-text-id text-x1d1) + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-meet-brutter) + :name "city-meet-brutter-resolution" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor brutter-kiosk) + :action (game-task-action idle) + :tex (game-task-icon gaticon-01) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-19) + :scene #f + ) + ) + :flags (game-task-node-flag close-task) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-meet-brutter-meet-brutter) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + :description (game-text-id text-x1d1) + ) + (new 'static 'game-task-node-info + :level 'sewer + :task (game-task sewer-board) + :name "sewer-board-introduction" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor krew-hiphog) + :action (game-task-action say) + :tex (game-task-icon gaticon-02) + :scene "sewer-2-intro" + ) + (new 'static 'game-task-event + :actor (game-task-actor brutter-kiosk) + :action (game-task-action idle) + :tex (game-task-icon gaticon-01) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-08) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-life) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-meet-brutter-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '((hiphog 0 lguard special)) + :open? #f + :on-close #f + :description (game-text-id text-x202) + ) + (new 'static 'game-task-node-info + :level 'sewer + :task (game-task sewer-board) + :name "sewer-board-drain" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor krew-hiphog) + :action (game-task-action talk) + :tex (game-task-icon gaticon-03) + :scene "sewer-2-intro" + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-06) + :scene #f + ) + ) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node sewer-board-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '((hiphog 0 lguard special)) + :open? #f + :on-close #f + :description (game-text-id text-x1d6) + ) + (new 'static 'game-task-node-info + :level 'sewer + :task (game-task sewer-board) + :name "sewer-board-resolution" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor krew-hiphog) + :action (game-task-action talk) + :tex (game-task-icon gaticon-03) + :scene "sewer-2-intro" + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-06) + :scene #f + ) + ) + :flags (game-task-node-flag close-task abs-task-mask) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node sewer-board-drain) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :task-mask (task-mask task2) + :on-open #f + :info #f + :borrow '((hiphog 0 lguard special)) + :open? #f + :on-close #f + :description (game-text-id text-x1d6) + ) + (new 'static 'game-task-node-info + :level 'forest + :task (game-task forest-hunt) + :name "forest-hunt-introduction" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor sig-hiphog) + :action (game-task-action say) + :tex (game-task-icon gaticon-02) + :scene "forest-hunt-camo-metal-heads-intro" + ) + (new 'static 'game-task-event + :actor (game-task-actor tess-hiphog) + :action (game-task-action idle) + :tex (game-task-icon gaticon-01) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-08) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-life abs-task-mask) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node sewer-board-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :task-mask (task-mask task1) + :on-open #f + :info #f + :borrow '((hiphog 0 ltess special)) + :open? #f + :on-close #f + :description (game-text-id text-x206) + ) + (new 'static 'game-task-node-info + :level 'forest + :task (game-task forest-hunt) + :name "forest-hunt-resolution" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor sig-hiphog) + :action (game-task-action talk) + :tex (game-task-icon gaticon-03) + :scene "forest-hunt-camo-metal-heads-intro" + ) + (new 'static 'game-task-event + :actor (game-task-actor tess-hiphog) + :action (game-task-action idle) + :tex (game-task-icon gaticon-01) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-18) + :scene #f + ) + ) + :flags (game-task-node-flag close-task) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node forest-hunt-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '((hiphog 0 ltess special)) + :open? #f + :on-close #f + :description (game-text-id text-x1d9) + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-intercept-tanker) + :name "city-intercept-tanker-roof-explode" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor ashelin-market) + :action (game-task-action say) + :tex (game-task-icon gaticon-02) + :scene "city-intercept-tanker-intro" + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-23) + :scene #f + ) + ) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node forest-scouts-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + :description (game-text-id text-x20a) + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-intercept-tanker) + :name "city-intercept-tanker-introduction" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor ashelin-market) + :action (game-task-action say) + :tex (game-task-icon gaticon-02) + :scene "city-intercept-tanker-intro" + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-23) + :scene #f + ) + ) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-intercept-tanker-roof-explode) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + :description (game-text-id text-x20a) + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-intercept-tanker) + :name "city-intercept-tanker-battle" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor ashelin-market) + :action (game-task-action idle) + :tex (game-task-icon gaticon-01) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-23) + :scene #f + ) + ) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-intercept-tanker-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + :description (game-text-id text-x1d3) + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-intercept-tanker) + :name "city-intercept-tanker-resolution" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor ashelin-market) + :action (game-task-action say) + :tex (game-task-icon gaticon-02) + :scene "city-intercept-tanker-res" + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-23) + :scene #f + ) + ) + :flags (game-task-node-flag close-task) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-intercept-tanker-battle) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + :description (game-text-id text-x1d3) + ) + (new 'static 'game-task-node-info + :level 'stadium + :task (game-task stadium-race-class3) + :name "stadium-race-class3-introduction" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor keira-garage) + :action (game-task-action say) + :tex (game-task-icon gaticon-02) + :scene "city-class-3-race-intro" + :distance (meters 30) + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-12) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-life) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node sewer-board-resolution) + (game-task-node city-intercept-tanker-resolution) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '((garage 0 lgarcsta #f)) + :open? (lambda ((arg0 game-task-node-info)) (!= *kernel-boot-message* 'preview)) + :on-close #f + :description (game-text-id text-x207) + ) + (new 'static 'game-task-node-info + :level 'stadium + :task (game-task stadium-race-class3) + :name "stadium-race-class3-race" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor keira-garage) + :action (game-task-action talk) + :tex (game-task-icon gaticon-03) + :scene "city-class-3-race-intro" + ) + ) + :flags (game-task-node-flag save-on-life task-retry task-manager no-fail-on-death no-slow-down) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node stadium-race-class3-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info (new 'static 'task-manager-info + :mask (task-manager-mask resolution-scene) + :level 'ctywide + :intro-scene #f + :resolution-scene "city-class-3-race-res" + :resolution-scene-continue "garage-start-class3" + :retry-continue "stadiumb-race-retry" + :fail-continue "stadiumb-race-fail" + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node stadium-race-class3-race) + :on-complete #f + :on-fail #f + ) + :borrow '((garage 0 lgarcsta #f) (stadium 0 lracelit special) (ctywide 0 lracebf special)) + :open? (lambda ((arg0 game-task-node-info)) (= (level-status *level* 'stadium) 'active)) + :on-close #f + :description (game-text-id text-x1da) + ) + (new 'static 'game-task-node-info + :level 'stadium + :task (game-task stadium-race-class3) + :name "stadium-race-class3-resolution" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor keira-garage) + :action (game-task-action say) + :tex (game-task-icon gaticon-02) + :scene "city-class-3-race-res" + :distance (meters 30) + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-12) + :scene #f + ) + ) + :flags (game-task-node-flag close-task) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node stadium-race-class3-race) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '((garage 0 lashgrd #f) (stadium 0 lracelit special) (ctywide 0 lracebf special)) + :open? #f + :on-close #f + :description (game-text-id text-x1da) + ) + (new 'static 'game-task-node-info + :level 'stadium + :task (game-task stadium-race-class3) + :name "stadium-race-class3-select-bush" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor burning-bush-stadium) + :action (game-task-action menu) + :tex (game-task-icon gaticon-07) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-62) + :scene #f + ) + ) + :flags (game-task-node-flag no-restart) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node stadium-race-class3-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close '(begin + (task-open! "stadium-burning-bush-race-board-introduction") + (task-open! "stadium-burning-bush-race-class3-introduction") + (task-open! "stadium-burning-bush-race-class3-r-introduction") + ) + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-protect-water-slums) + :name "city-protect-water-slums-introduction" + :when-open #f + :flags (game-task-node-flag save-on-life intro-wait city-wait task-manager) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node sewer-board-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info (new 'static 'task-manager-info + :mask (task-manager-mask intro-scene) + :level 'ctywide + :intro-scene "bru002" + :resolution-scene #f + :resolution-scene-continue #f + :retry-continue #f + :fail-continue #f + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node city-protect-water-slums-introduction) + :intro-delay #x1770 + :on-complete #f + :on-fail #f + ) + :borrow '() + :open? (lambda ((arg0 game-task-node-info)) (!= *kernel-boot-message* 'preview)) + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-protect-water-slums) + :name "city-protect-water-slums-get-seal" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-35) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-life task-manager) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-protect-water-slums-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info (new 'static 'task-manager-info + :level 'ctywide + :intro-scene #f + :resolution-scene #f + :resolution-scene-continue #f + :retry-continue #f + :fail-continue #f + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node city-protect-water-slums-get-seal) + :on-complete #f + :on-fail #f + ) + :borrow '() + :open? #f + :on-close #f + :description (game-text-id text-x20b) + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-protect-water-slums) + :name "city-protect-water-slums-fight" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-35) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-life task-manager) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-protect-water-slums-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info (new 'static 'task-manager-info + :level 'lprotect + :intro-scene #f + :resolution-scene #f + :resolution-scene-continue #f + :retry-continue #f + :fail-continue #f + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node city-protect-water-slums-fight) + :on-complete #f + :on-fail #f + ) + :borrow '((ctywide 0 lprotect special)) + :open? (lambda ((arg0 game-task-node-info)) (let ((v1-1 (level-get-target-inside *level*))) + (the-as symbol (and v1-1 (= (-> v1-1 name) 'ctyslumc))) + ) + ) + :on-close '(task-close! "city-protect-water-slums-get-seal") + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-protect-water-slums) + :name "city-protect-water-slums-resolution" + :when-open #f + :flags (game-task-node-flag close-task save-on-life task-manager) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-protect-water-slums-fight) + (game-task-node city-protect-water-slums-get-seal) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info (new 'static 'task-manager-info + :level 'lprotect + :intro-scene #f + :resolution-scene #f + :resolution-scene-continue #f + :retry-continue "ctyslumc-slums" + :fail-continue "ctyslumc-slums" + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node city-protect-water-slums-resolution) + :on-complete #f + :on-fail #f + ) + :borrow '((ctywide 0 lprotect display)) + :open? #f + :on-close #f + :description (game-text-id text-x1dc) + ) + (new 'static 'game-task-node-info + :level 'dig + :task (game-task dig-find-totem) + :name "dig-find-totem-introduction" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor onin-onintent) + :action (game-task-action say) + :tex (game-task-icon gaticon-02) + :scene "dig-find-totem-intro" + ) + (new 'static 'game-task-event + :actor (game-task-actor pecker-onintent) + :action (game-task-action idle) + :tex (game-task-icon gaticon-01) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor youngsamos-onintent) + :action (game-task-action idle) + :tex (game-task-icon gaticon-01) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-01) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-life) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node drill-ship-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? (lambda ((arg0 game-task-node-info)) (!= *kernel-boot-message* 'preview)) + :on-close #f + :description (game-text-id text-x203) + ) + (new 'static 'game-task-node-info + :level 'dig + :task (game-task dig-find-totem) + :name "dig-find-totem-raise-log" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor onin-onintent) + :action (game-task-action talk) + :tex (game-task-icon gaticon-03) + :scene "dig-find-totem-intro" + ) + (new 'static 'game-task-event + :actor (game-task-actor pecker-onintent) + :action (game-task-action idle) + :tex (game-task-icon gaticon-01) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor youngsamos-onintent) + :action (game-task-action idle) + :tex (game-task-icon gaticon-01) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-20) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-life) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node dig-find-totem-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + :description (game-text-id text-x1db) + ) + (new 'static 'game-task-node-info + :level 'dig + :task (game-task dig-find-totem) + :name "dig-find-totem-resolution" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor onin-onintent) + :action (game-task-action talk) + :tex (game-task-icon gaticon-03) + :scene "dig-find-totem-intro" + ) + (new 'static 'game-task-event + :actor (game-task-actor pecker-onintent) + :action (game-task-action idle) + :tex (game-task-icon gaticon-01) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor youngsamos-onintent) + :action (game-task-action idle) + :tex (game-task-icon gaticon-01) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-20) + :scene #f + ) + ) + :flags (game-task-node-flag close-task) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node dig-find-totem-raise-log) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + :description (game-text-id text-x1db) + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-destroy-guard-vehicles) + :name "city-destroy-guard-vehicles-introduction" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor torn-hideout) + :action (game-task-action say) + :tex (game-task-icon gaticon-02) + :scene "city-destroy-guard-vehicles-intro" + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-05) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-try) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node dig-find-totem-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '((hideout 0 ltrnysam special)) + :open? #f + :on-close #f + :description (game-text-id text-x201) + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-destroy-guard-vehicles) + :name "city-destroy-guard-vehicles-destroy" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor torn-hideout) + :action (game-task-action talk) + :tex (game-task-icon gaticon-03) + :scene "city-destroy-guard-vehicles-intro" + ) + ) + :flags (game-task-node-flag save-on-life task-retry task-manager) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-destroy-guard-vehicles-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info (new 'static 'task-manager-info + :level 'lhelldog + :intro-scene #f + :resolution-scene #f + :resolution-scene-continue #f + :retry-continue "ctysluma-alley-no-hideout" + :fail-continue #f + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node city-destroy-guard-vehicles-resolution) + :on-complete #f + :on-fail #f + ) + :borrow '((ctywide 0 lhelldog display) (hideout 0 ltrnysam special)) + :open? #f + :on-close #f + :description (game-text-id text-x1dd) + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-destroy-guard-vehicles) + :name "city-destroy-guard-vehicles-resolution" + :when-open #f + :flags (game-task-node-flag close-task) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-destroy-guard-vehicles-destroy) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '((ctywide 0 lhelldog display)) + :open? #f + :on-close #f + :description (game-text-id text-x1dd) + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-play-onin-game) + :name "city-play-onin-game-introduction" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor onin-onintent) + :action (game-task-action say) + :tex (game-task-icon gaticon-02) + :scene "city-play-onin-game-intro" + ) + (new 'static 'game-task-event + :actor (game-task-actor pecker-onintent) + :action (game-task-action idle) + :tex (game-task-icon gaticon-01) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor kor-onintent) + :action (game-task-action idle) + :tex (game-task-icon gaticon-01) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-01) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-life) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-destroy-guard-vehicles-resolution) + (game-task-node city-protect-water-slums-resolution) + (game-task-node stadium-race-class3-resolution) + (game-task-node forest-hunt-resolution) + ) + :on-open #f + :info #f + :borrow '((onintent 0 ltentob display)) + :open? #f + :on-close #f + :description (game-text-id text-x203) + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-play-onin-game) + :name "city-play-onin-game-wait" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor onin-onintent) + :action (game-task-action talk) + :tex (game-task-icon gaticon-03) + :scene "city-play-onin-game-intro" + ) + (new 'static 'game-task-event + :actor (game-task-actor pecker-onintent) + :action (game-task-action idle) + :tex (game-task-icon gaticon-01) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor kor-onintent) + :action (game-task-action idle) + :tex (game-task-icon gaticon-01) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-01) + :scene #f + ) + ) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-play-onin-game-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '((onintent 0 ltentob display)) + :open? #f + :on-close #f + :description (game-text-id text-x1de) + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-play-onin-game) + :name "city-play-onin-game-resolution" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor onin-onintent) + :action (game-task-action play) + :tex (game-task-icon gaticon-06) + :scene "onin-game" + ) + (new 'static 'game-task-event + :actor (game-task-actor pecker-onintent) + :action (game-task-action idle) + :tex (game-task-icon gaticon-01) + :flags (game-task-flags gatflag-02) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor kor-onintent) + :action (game-task-action idle) + :tex (game-task-icon gaticon-01) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-01) + :scene #f + ) + ) + :flags (game-task-node-flag close-task task-manager) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-play-onin-game-wait) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info (new 'static 'task-manager-info + :mask (task-manager-mask resolution-scene fail-message) + :level 'onintent + :intro-scene #f + :resolution-scene "city-play-onin-game-res" + :resolution-scene-continue #f + :retry-continue #f + :fail-continue "onintent-start" + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node city-play-onin-game-resolution) + :on-complete #f + :on-fail #f + ) + :borrow '((onintent 0 ltentob display)) + :open? #f + :on-close #f + :description (game-text-id text-x1de) + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-play-onin-game) + :name "city-play-onin-game-skill" + :when-open #f + :flags (game-task-node-flag no-restart) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-play-onin-game-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-play-onin-game) + :name "city-play-onin-game-post-game" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor onin-onintent) + :action (game-task-action play) + :tex (game-task-icon gaticon-06) + :scene "onin-game" + ) + (new 'static 'game-task-event + :actor (game-task-actor pecker-onintent) + :action (game-task-action idle) + :tex (game-task-icon gaticon-01) + :flags (game-task-flags gatflag-02) + :scene #f + ) + ) + :flags (game-task-node-flag no-restart) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-play-onin-game-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '((onintent 0 ltentob display)) + :open? #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'canyon + :task (game-task canyon-insert-items) + :name "canyon-insert-items-introduction" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-21) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-life) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-play-onin-game-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + :description (game-text-id text-x20c) + ) + (new 'static 'game-task-node-info + :level 'canyon + :task (game-task canyon-insert-items) + :name "canyon-insert-items-door" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-21) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-life task-manager) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node canyon-insert-items-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info (new 'static 'task-manager-info + :mask (task-manager-mask resolution-scene) + :level 'mountain + :intro-scene #f + :resolution-scene "canyon-insert-items-intro" + :resolution-scene-continue #f + :retry-continue #f + :fail-continue #f + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node canyon-insert-items-door) + :on-complete #f + :on-fail #f + :end-sphere (new 'static 'sphere :x -2629474.0 :y 324481.44 :z 689014.4 :r 28672.0) + ) + :borrow '() + :open? #f + :on-close #f + :description (game-text-id text-x1df) + ) + (new 'static 'game-task-node-info + :level 'canyon + :task (game-task canyon-insert-items) + :name "canyon-insert-items-gear" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-21) + :scene #f + ) + ) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node canyon-insert-items-door) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + :description (game-text-id text-x1df) + ) + (new 'static 'game-task-node-info + :level 'canyon + :task (game-task canyon-insert-items) + :name "canyon-insert-items-shard" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-21) + :scene #f + ) + ) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node canyon-insert-items-gear) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + :description (game-text-id text-x1df) + ) + (new 'static 'game-task-node-info + :level 'canyon + :task (game-task canyon-insert-items) + :name "canyon-insert-items-resolution" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-21) + :scene #f + ) + ) + :flags (game-task-node-flag close-task) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node canyon-insert-items-shard) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + :description (game-text-id text-x1df) + ) + (new 'static 'game-task-node-info + :level 'tomb + :task (game-task tomb-poles) + :name "tomb-poles-introduction" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor youngsamos-tomb) + :action (game-task-action say) + :tex (game-task-icon gaticon-02) + :scene "tomb-face-tests-intro" + ) + (new 'static 'game-task-event + :actor (game-task-actor kor-tomb) + :action (game-task-action idle) + :tex (game-task-icon gaticon-01) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor kid-tomb) + :action (game-task-action idle) + :tex (game-task-icon gaticon-01) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-22) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-life) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node canyon-insert-items-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + :description (game-text-id text-x20d) + ) + (new 'static 'game-task-node-info + :level 'tomb + :task (game-task tomb-poles) + :name "tomb-poles-block" + :when-open #f + :flags (game-task-node-flag save-on-life) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node tomb-poles-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + :description (game-text-id text-x1e2) + ) + (new 'static 'game-task-node-info + :level 'tomb + :task (game-task tomb-poles) + :name "tomb-poles-poles" + :when-open #f + :flags (game-task-node-flag save-on-life reset-on-try) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node tomb-poles-block) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + :description (game-text-id text-x1e2) + ) + (new 'static 'game-task-node-info + :level 'tomb + :task (game-task tomb-poles) + :name "tomb-poles-boulder" + :when-open #f + :flags (game-task-node-flag save-on-life) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node tomb-poles-poles) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + :add (game-task-node-command sub-sidekick) + :description (game-text-id text-x1e2) + ) + (new 'static 'game-task-node-info + :level 'tomb + :task (game-task tomb-poles) + :name "tomb-poles-poles2" + :when-open #f + :parent-node (new 'static 'array game-task-node 4 + (game-task-node tomb-poles-boulder) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + :description (game-text-id text-x1e2) + ) + (new 'static 'game-task-node-info + :level 'tomb + :task (game-task tomb-poles) + :name "tomb-poles-resolution" + :when-open #f + :flags (game-task-node-flag close-task save-on-life) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node tomb-poles-poles2) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + :description (game-text-id text-x1e2) + ) + (new 'static 'game-task-node-info + :level 'tomb + :task (game-task tomb-water) + :name "tomb-water-vibe" + :when-open #f + :flags (game-task-node-flag save-on-life) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node tomb-poles-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + :description (game-text-id text-x1e3) + ) + (new 'static 'game-task-node-info + :level 'tomb + :task (game-task tomb-water) + :name "tomb-water-resolution" + :when-open #f + :flags (game-task-node-flag close-task save-on-life) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node tomb-water-vibe) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + :description (game-text-id text-x1e3) + ) + (new 'static 'game-task-node-info + :level 'tomb + :task (game-task tomb-boss) + :name "tomb-boss-torches" + :when-open #f + :flags (game-task-node-flag save-on-life set-task-mask no-restart) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node tomb-poles-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :task-mask (task-mask task0) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'tomb + :task (game-task tomb-boss) + :name "tomb-boss-door" + :when-open #f + :flags (game-task-node-flag save-on-life) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node tomb-boss-torches) + (game-task-node tomb-water-resolution) + (game-task-node tomb-poles-resolution) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'tomb + :task (game-task tomb-boss) + :name "tomb-boss-introduction" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor daxter-tomb) + :action (game-task-action idle) + :tex (game-task-icon gaticon-01) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-22) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-life) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node tomb-boss-door) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + :add (game-task-node-command add-sidekick) + ) + (new 'static 'game-task-node-info + :level 'tomb + :task (game-task tomb-boss) + :name "tomb-boss-resolution" + :when-open #f + :flags (game-task-node-flag close-task) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node tomb-boss-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + :description (game-text-id text-x1e4) + ) + (new 'static 'game-task-node-info + :level 'fortress + :task (game-task fortress-save-friends) + :name "fortress-save-friends-introduction" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor torn-hideout) + :action (game-task-action say) + :tex (game-task-icon gaticon-02) + :scene "fortress-save-friends-intro-a" + :distance (meters 20) + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-05) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-life abs-task-mask) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node tomb-boss-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :task-mask (task-mask task2) + :on-open #f + :info #f + :borrow '((hideout 0 ltrnysam special) (prison 0 lprsncst special)) + :open? #f + :on-close #f + :description (game-text-id text-x201) + ) + (new 'static 'game-task-node-info + :level 'fortress + :task (game-task fortress-save-friends) + :name "fortress-save-friends-resolution" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor torn-hideout) + :action (game-task-action talk) + :tex (game-task-icon gaticon-03) + :scene "fortress-save-friends-intro-a" + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-09) + :scene #f + ) + ) + :flags (game-task-node-flag close-task abs-task-mask task-manager) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node fortress-save-friends-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :task-mask (task-mask done) + :on-open #f + :info (new 'static 'task-manager-info + :level 'forrescb + :intro-scene #f + :resolution-scene #f + :resolution-scene-continue #f + :retry-continue #f + :fail-continue #f + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node fortress-save-friends-resolution) + :on-complete #f + :on-fail #f + ) + :borrow '((hideout 0 ltrnysam special)) + :open? #f + :on-close #f + :description (game-text-id text-x1e5) + ) + (new 'static 'game-task-node-info + :level 'sewer + :task (game-task sewer-escort) + :name "sewer-escort-introduction" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor krew-hiphog) + :action (game-task-action say) + :tex (game-task-icon gaticon-02) + :scene "sewer-blow-up-statue-intro" + ) + (new 'static 'game-task-event + :actor (game-task-actor sig-hiphog) + :action (game-task-action idle) + :tex (game-task-icon gaticon-01) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-08) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-life) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node fortress-save-friends-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '((hiphog 0 lguard special)) + :open? #f + :on-close #f + :description (game-text-id text-x202) + ) + (new 'static 'game-task-node-info + :level 'sewer + :task (game-task sewer-escort) + :name "sewer-escort-explode-wall1" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor krew-hiphog) + :action (game-task-action talk) + :tex (game-task-icon gaticon-03) + :scene "sewer-blow-up-statue-intro" + ) + (new 'static 'game-task-event + :actor (game-task-actor sig-hiphog) + :action (game-task-action idle) + :tex (game-task-icon gaticon-01) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-06) + :scene #f + ) + ) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node sewer-escort-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '((hiphog 0 lguard special)) + :open? #f + :on-close #f + :description (game-text-id text-x1e6) + ) + (new 'static 'game-task-node-info + :level 'sewer + :task (game-task sewer-escort) + :name "sewer-escort-explode-wall2" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor krew-hiphog) + :action (game-task-action talk) + :tex (game-task-icon gaticon-03) + :scene "sewer-blow-up-statue-intro" + ) + (new 'static 'game-task-event + :actor (game-task-actor sig-hiphog) + :action (game-task-action idle) + :tex (game-task-icon gaticon-01) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-06) + :scene #f + ) + ) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node sewer-escort-explode-wall1) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '((hiphog 0 lguard special)) + :open? #f + :on-close #f + :description (game-text-id text-x1e6) + ) + (new 'static 'game-task-node-info + :level 'sewer + :task (game-task sewer-escort) + :name "sewer-escort-resolution" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor krew-hiphog) + :action (game-task-action talk) + :tex (game-task-icon gaticon-03) + :scene "sewer-blow-up-statue-intro" + ) + (new 'static 'game-task-event + :actor (game-task-actor sig-hiphog) + :action (game-task-action idle) + :tex (game-task-icon gaticon-01) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-06) + :scene #f + ) + ) + :flags (game-task-node-flag close-task save-on-life abs-task-mask) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node sewer-escort-explode-wall2) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :task-mask (task-mask done) + :on-open #f + :info #f + :borrow '((hiphog 0 lguard special)) + :open? #f + :on-close #f + :description (game-text-id text-x1e6) + ) + (new 'static 'game-task-node-info + :level 'sewer + :task (game-task sewer-escort) + :name "sewer-escort-get-gun" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor krew-hiphog) + :action (game-task-action idle) + :tex (game-task-icon gaticon-01) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-34) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-life task-manager) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node sewer-escort-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info (new 'static 'task-manager-info + :mask (task-manager-mask resolution-scene) + :level 'gungame + :intro-scene #f + :resolution-scene "city-get-dark-gun" + :resolution-scene-continue #f + :retry-continue #f + :fail-continue #f + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node sewer-escort-get-gun) + :on-complete #f + :on-fail #f + ) + :borrow '((hiphog 0 lguard special)) + :open? #f + :on-close #f + :add (game-task-node-command add-gun-dark) + :description (game-text-id text-x1e7) + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-dark-gun-training) + :name "city-dark-gun-training-bronze" + :when-open #f + :flags (game-task-node-flag save-on-life) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node sewer-escort-get-gun) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-dark-gun-training) + :name "city-dark-gun-training-silver" + :when-open #f + :flags (game-task-node-flag save-on-life) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-dark-gun-training-bronze) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-dark-gun-training) + :name "city-dark-gun-training-gold" + :when-open #f + :flags (game-task-node-flag save-on-life) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-dark-gun-training-silver) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'stadium + :task (game-task stadium-race-class2) + :name "stadium-race-class2-introduction" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor keira-garage) + :action (game-task-action say) + :tex (game-task-icon gaticon-02) + :scene "city-class-2-race-intro" + :distance (meters 30) + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-12) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-try) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node fortress-save-friends-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '((garage 0 lsamergd #f)) + :open? #f + :on-close '(task-close! "stadium-race-class3-select-bush") + :description (game-text-id text-x208) + ) + (new 'static 'game-task-node-info + :level 'stadium + :task (game-task stadium-race-class2) + :name "stadium-race-class2-race" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor keira-garage) + :action (game-task-action talk) + :tex (game-task-icon gaticon-03) + :scene "city-class-2-race-intro" + ) + ) + :flags (game-task-node-flag save-on-life task-retry task-manager no-fail-on-death no-slow-down) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node stadium-race-class2-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info (new 'static 'task-manager-info + :mask (task-manager-mask resolution-scene) + :level 'ctywide + :intro-scene #f + :resolution-scene "city-class-2-race-res" + :resolution-scene-continue "garage-class3-movie" + :retry-continue "stadiumc-race-retry-pidax" + :fail-continue "garage-start-class3" + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node stadium-race-class2-race) + :index 1 + :on-complete #f + :on-fail #f + ) + :borrow '((garage 0 lsamergd #f) (stadium 0 lracelit special) (ctywide 0 lracecf special)) + :open? (lambda ((arg0 game-task-node-info)) (= (level-status *level* 'stadium) 'active)) + :on-close #f + :description (game-text-id text-x1e8) + ) + (new 'static 'game-task-node-info + :level 'stadium + :task (game-task stadium-race-class2) + :name "stadium-race-class2-resolution" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor keira-garage) + :action (game-task-action say) + :tex (game-task-icon gaticon-02) + :scene "city-class-2-race-res" + :distance (meters 30) + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-12) + :scene #f + ) + ) + :flags (game-task-node-flag close-task) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node stadium-race-class2-race) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '((garage 0 lashgrd #f) (stadium 0 lracelit special) (ctywide 0 lracecf special)) + :open? #f + :on-close #f + :description (game-text-id text-x1e8) + ) + (new 'static 'game-task-node-info + :level 'stadium + :task (game-task stadium-race-class2) + :name "stadium-race-class2-select-bush" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor burning-bush-stadium) + :action (game-task-action menu) + :tex (game-task-icon gaticon-07) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-62) + :scene #f + ) + ) + :flags (game-task-node-flag no-restart) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node stadium-race-class2-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close '(begin + (task-open! "stadium-burning-bush-race-board-introduction") + (task-open! "stadium-burning-bush-race-class3-introduction") + (task-open! "stadium-burning-bush-race-class3-r-introduction") + (task-open! "stadium-burning-bush-race-class2-introduction") + (task-open! "stadium-burning-bush-race-class2-r-introduction") + ) + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-stop-bomb-bots) + :name "city-stop-bomb-bots-introduction" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor youngsamos-hideout) + :action (game-task-action say) + :tex (game-task-icon gaticon-02) + :scene "city-stop-bomb-bots-intro" + ) + (new 'static 'game-task-event + :actor (game-task-actor samos-hideout) + :action (game-task-action idle) + :tex (game-task-icon gaticon-01) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-05) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-try) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node fortress-save-friends-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '((hideout 0 lysamsam special)) + :open? #f + :on-close #f + :description (game-text-id text-x201) + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-stop-bomb-bots) + :name "city-stop-bomb-bots-destroy" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor youngsamos-hideout) + :action (game-task-action talk) + :tex (game-task-icon gaticon-03) + :scene "city-stop-bomb-bots-intro" + ) + (new 'static 'game-task-event + :actor (game-task-actor samos-hideout) + :action (game-task-action idle) + :tex (game-task-icon gaticon-01) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-life task-retry task-manager) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-stop-bomb-bots-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info (new 'static 'task-manager-info + :level 'lbombbot + :intro-scene #f + :resolution-scene #f + :resolution-scene-continue #f + :retry-continue "ctysluma-alley-no-hideout" + :fail-continue #f + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node city-stop-bomb-bots-resolution) + :on-complete #f + :on-fail #f + ) + :borrow '((ctywide 0 lbombbot display) (hideout 0 lysamsam special)) + :open? #f + :on-close #f + :description (game-text-id text-x1e9) + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-stop-bomb-bots) + :name "city-stop-bomb-bots-resolution" + :when-open #f + :flags (game-task-node-flag close-task) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-stop-bomb-bots-destroy) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '((ctywide 0 lbombbot display)) + :open? #f + :on-close #f + :description (game-text-id text-x1e9) + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-errol-challenge) + :name "city-errol-challenge-introduction" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor krew-hiphog) + :action (game-task-action say) + :tex (game-task-icon gaticon-02) + :scene "city-errol-challenge-intro" + ) + (new 'static 'game-task-event + :actor (game-task-actor tess-hiphog) + :action (game-task-action idle) + :tex (game-task-icon gaticon-01) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-08) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-try) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node sewer-escort-get-gun) + (game-task-node stadium-race-class2-resolution) + (game-task-node city-stop-bomb-bots-resolution) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '((hiphog 0 lerltess special)) + :open? #f + :on-close #f + :description (game-text-id text-x202) + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-errol-challenge) + :name "city-errol-challenge-race" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor krew-hiphog) + :action (game-task-action talk) + :tex (game-task-icon gaticon-03) + :scene "city-errol-challenge-intro" + ) + (new 'static 'game-task-event + :actor (game-task-actor tess-hiphog) + :action (game-task-action idle) + :tex (game-task-icon gaticon-01) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor keira-garage) + :action (game-task-action idle) + :tex (game-task-icon gaticon-01) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-12) + :scene #f + ) + ) + :flags (game-task-node-flag task-retry city-wait task-manager) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-errol-challenge-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info (new 'static 'task-manager-info + :mask (task-manager-mask resolution-scene) + :level 'lerlchal + :intro-scene #f + :resolution-scene "city-errol-challenge-res" + :resolution-scene-continue "garage-start-class3" + :retry-continue "ctyport-errol-race-retry" + :fail-continue "ctyport-hiphog-no-hiphog" + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node city-errol-challenge-resolution) + :index 3 + :on-complete #f + :on-fail #f + ) + :borrow '((ctywide 0 lerlchal display) (hiphog 0 lerltess special)) + :open? #f + :on-close #f + :description (game-text-id text-x1ec) + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-errol-challenge) + :name "city-errol-challenge-resolution" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor krew-hiphog) + :action (game-task-action idle) + :tex (game-task-icon gaticon-01) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor keira-garage) + :action (game-task-action idle) + :tex (game-task-icon gaticon-01) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-12) + :scene #f + ) + ) + :flags (game-task-node-flag close-task) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-errol-challenge-race) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '((ctywide 0 lerlchal display) (stadium 0 lerrol special)) + :open? #f + :on-close #f + :description (game-text-id text-x1ec) + ) + (new 'static 'game-task-node-info + :level 'strip + :task (game-task strip-drop) + :name "strip-drop-introduction" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor vin-vinroom) + :action (game-task-action say) + :tex (game-task-icon gaticon-02) + :scene "crane-intro" + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-03) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-life) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-errol-challenge-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + :description (game-text-id text-x204) + ) + (new 'static 'game-task-node-info + :level 'strip + :task (game-task strip-drop) + :name "strip-drop-resolution" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor vin-vinroom) + :action (game-task-action talk) + :tex (game-task-icon gaticon-03) + :scene "crane-intro" + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-03) + :scene #f + ) + ) + :flags (game-task-node-flag close-task abs-task-mask) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node strip-drop-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :task-mask (task-mask done) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + :description (game-text-id text-x1ed) + ) + (new 'static 'game-task-node-info + :level 'ruins + :task (game-task ruins-mech) + :name "ruins-mech-introduction" + :when-open #f + :flags (game-task-node-flag save-on-life abs-task-mask intro-wait city-wait task-manager) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-errol-challenge-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :task-mask (task-mask task2) + :on-open #f + :info (new 'static 'task-manager-info + :mask (task-manager-mask intro-scene) + :level 'ctywide + :intro-scene "sam001" + :resolution-scene #f + :resolution-scene-continue #f + :retry-continue #f + :fail-continue #f + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node ruins-mech-introduction) + :intro-delay #x1770 + :on-complete #f + :on-fail #f + ) + :borrow '() + :open? #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'ruins + :task (game-task ruins-mech) + :name "ruins-mech-break-wall-1" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-02) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-68) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-life task-manager) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node ruins-mech-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info (new 'static 'task-manager-info + :level 'ruins + :intro-scene #f + :resolution-scene #f + :resolution-scene-continue #f + :retry-continue #f + :fail-continue #f + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node ruins-mech-break-wall-1) + :on-complete #f + :on-fail #f + ) + :borrow '() + :open? #f + :on-close #f + :description (game-text-id text-x1ee) + ) + (new 'static 'game-task-node-info + :level 'ruins + :task (game-task ruins-mech) + :name "ruins-mech-move-block-1" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-02) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-68) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-life task-manager) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node ruins-mech-break-wall-1) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info (new 'static 'task-manager-info + :level 'ruins + :intro-scene #f + :resolution-scene #f + :resolution-scene-continue #f + :retry-continue #f + :fail-continue #f + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node ruins-mech-move-block-1) + :on-complete #f + :on-fail #f + ) + :borrow '() + :open? #f + :on-close #f + :description (game-text-id text-x1ee) + ) + (new 'static 'game-task-node-info + :level 'ruins + :task (game-task ruins-mech) + :name "ruins-mech-throw-block-1" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-02) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-68) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-life task-manager) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node ruins-mech-move-block-1) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info (new 'static 'task-manager-info + :level 'ruins + :intro-scene #f + :resolution-scene #f + :resolution-scene-continue #f + :retry-continue #f + :fail-continue #f + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node ruins-mech-throw-block-1) + :on-complete #f + :on-fail #f + ) + :borrow '() + :open? #f + :on-close #f + :description (game-text-id text-x1ee) + ) + (new 'static 'game-task-node-info + :level 'ruins + :task (game-task ruins-mech) + :name "ruins-mech-resolution" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-02) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-68) + :scene #f + ) + ) + :flags (game-task-node-flag close-task abs-task-mask) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node ruins-mech-throw-block-1) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :task-mask (task-mask done) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + :description (game-text-id text-x1ee) + ) + (new 'static 'game-task-node-info + :level 'forest + :task (game-task forest-protect) + :name "forest-protect-introduction" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor onin-onintent) + :action (game-task-action say) + :tex (game-task-icon gaticon-02) + :scene "forest-protect-samos-intro-a" + ) + (new 'static 'game-task-event + :actor (game-task-actor pecker-onintent) + :action (game-task-action idle) + :tex (game-task-icon gaticon-01) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-01) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-life abs-task-mask) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node ruins-mech-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :task-mask (task-mask task2) + :on-open #f + :info #f + :borrow '() + :open? (lambda ((arg0 game-task-node-info)) (task-node-close! (game-task-node city-play-onin-game-post-game)) #t) + :on-close #f + :description (game-text-id text-x203) + ) + (new 'static 'game-task-node-info + :level 'forest + :task (game-task forest-protect) + :name "forest-protect-meeting" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor onin-onintent) + :action (game-task-action talk) + :tex (game-task-icon gaticon-03) + :scene "forest-protect-samos-intro-a" + ) + (new 'static 'game-task-event + :actor (game-task-actor pecker-onintent) + :action (game-task-action idle) + :tex (game-task-icon gaticon-01) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-18) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-69) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor youngsamos-forest) + :action (game-task-action say) + :tex (game-task-icon gaticon-02) + :scene "forest-protect-samos-intro-b" + :distance (meters 24) + ) + ) + :flags (game-task-node-flag abs-task-mask) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node forest-protect-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :task-mask (task-mask task3) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + :description (game-text-id text-x1ef) + ) + (new 'static 'game-task-node-info + :level 'forest + :task (game-task forest-protect) + :name "forest-protect-resolution" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor onin-onintent) + :action (game-task-action idle) + :tex (game-task-icon gaticon-01) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor pecker-onintent) + :action (game-task-action idle) + :tex (game-task-icon gaticon-01) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-18) + :scene #f + ) + ) + :flags (game-task-node-flag close-task abs-task-mask task-manager) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node forest-protect-meeting) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :task-mask (task-mask done) + :on-open #f + :info (new 'static 'task-manager-info + :mask (task-manager-mask resolution-scene) + :level 'forest + :intro-scene #f + :resolution-scene "forest-protect-samos-res" + :resolution-scene-continue #f + :retry-continue "forest-tree" + :fail-continue "forest-tree" + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node forest-protect-resolution) + :on-complete #f + :on-fail #f + ) + :borrow '() + :open? #f + :on-close #f + :description (game-text-id text-x1f0) + ) + (new 'static 'game-task-node-info + :level 'forest + :task (game-task forest-protect) + :name "forest-protect-post-game" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor onin-onintent) + :action (game-task-action play) + :tex (game-task-icon gaticon-06) + :scene "onin-game" + ) + (new 'static 'game-task-event + :actor (game-task-actor pecker-onintent) + :action (game-task-action idle) + :tex (game-task-icon gaticon-01) + :flags (game-task-flags gatflag-02) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor youngsamos-forest) + :action (game-task-action idle) + :tex (game-task-icon gaticon-01) + :scene #f + ) + ) + :flags (game-task-node-flag no-restart) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node forest-protect-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'drill + :task (game-task drill-mech) + :name "drill-mech-introduction" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor kor-vinroom) + :action (game-task-action say) + :tex (game-task-icon gaticon-02) + :scene "drill-destroy-control-tower-intro" + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-03) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-life abs-task-mask) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node forest-protect-resolution) + (game-task-node strip-drop-resolution) + (game-task-node none) + (game-task-node none) + ) + :task-mask (task-mask task2) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + :description (game-text-id text-x200) + ) + (new 'static 'game-task-node-info + :level 'drill + :task (game-task drill-mech) + :name "drill-mech-started-smashing" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor kor-vinroom) + :action (game-task-action idle) + :tex (game-task-icon gaticon-01) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-03) + :scene #f + ) + ) + :flags (game-task-node-flag task-manager) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node drill-mech-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info (new 'static 'task-manager-info + :level 'drillmid + :intro-scene #f + :resolution-scene #f + :resolution-scene-continue #f + :retry-continue "drill3-warp" + :fail-continue #f + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node drill-mech-resolution) + :on-complete #f + :on-fail #f + ) + :borrow '() + :open? #f + :on-close #f + :description (game-text-id text-x1f1) + ) + (new 'static 'game-task-node-info + :level 'drill + :task (game-task drill-mech) + :name "drill-mech-smash-consoles" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor kor-vinroom) + :action (game-task-action idle) + :tex (game-task-icon gaticon-01) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-03) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-life abs-task-mask reset-on-try) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node drill-mech-started-smashing) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :task-mask (task-mask task2 task3) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + :description (game-text-id text-x1f1) + ) + (new 'static 'game-task-node-info + :level 'drill + :task (game-task drill-mech) + :name "drill-mech-resolution" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor kor-vinroom) + :action (game-task-action talk) + :tex (game-task-icon gaticon-03) + :scene "drill-destroy-control-tower-intro" + ) + ) + :flags (game-task-node-flag close-task abs-task-mask) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node drill-mech-smash-consoles) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :task-mask (task-mask done) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + :description (game-text-id text-x1f1) + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-save-lurkers) + :name "city-save-lurkers-introduction" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor brutter-kiosk) + :action (game-task-action say) + :tex (game-task-icon gaticon-02) + :scene "city-save-lurkers-intro" + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-19) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-try) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node forest-protect-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + :description (game-text-id text-x209) + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-save-lurkers) + :name "city-save-lurkers-save-lurkers" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor brutter-kiosk) + :action (game-task-action talk) + :tex (game-task-icon gaticon-03) + :scene "city-save-lurkers-intro" + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-19) + :scene #f + ) + ) + :flags (game-task-node-flag task-retry task-manager) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-save-lurkers-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info (new 'static 'task-manager-info + :level 'lmeetbrt + :intro-scene #f + :resolution-scene #f + :resolution-scene-continue #f + :retry-continue "kiosk-start" + :fail-continue #f + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node city-save-lurkers-resolution) + :on-complete '(talker-spawn "bru001") + :on-fail #f + ) + :borrow '((ctywide 0 lmeetbrt display)) + :open? #f + :on-close #f + :description (game-text-id text-x1d1) + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-save-lurkers) + :name "city-save-lurkers-resolution" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor brutter-kiosk) + :action (game-task-action talk) + :tex (game-task-icon gaticon-03) + :scene "city-save-lurkers-intro" + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-19) + :scene #f + ) + ) + :flags (game-task-node-flag close-task) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-save-lurkers-save-lurkers) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '((ctywide 0 lmeetbrt display)) + :open? #f + :on-close #f + :description (game-text-id text-x1d1) + ) + (new 'static 'game-task-node-info + :level 'stadium + :task (game-task stadium-race-class) + :name "stadium-race-class1-introduction" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor keira-garage) + :action (game-task-action say) + :tex (game-task-icon gaticon-02) + :scene "city-class-1-race-intro-a" + :distance (meters 30) + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-12) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-life) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node drill-mech-resolution) + (game-task-node city-save-lurkers-resolution) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '((garage 0 lsamergd special)) + :open? #f + :on-close '(task-close! "stadium-race-class2-select-bush") + :description (game-text-id text-x208) + ) + (new 'static 'game-task-node-info + :level 'stadium + :task (game-task stadium-race-class) + :name "stadium-race-class1-race" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor keira-garage) + :action (game-task-action talk) + :tex (game-task-icon gaticon-03) + :scene "city-class-1-race-intro-a" + ) + ) + :flags (game-task-node-flag save-on-life task-retry task-manager no-fail-on-death no-slow-down) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node stadium-race-class1-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info (new 'static 'task-manager-info + :mask (task-manager-mask resolution-scene) + :level 'ctywide + :intro-scene #f + :resolution-scene "city-class-1-race-res" + :resolution-scene-continue #f + :retry-continue "stadiumd-race-retry" + :fail-continue "stadiumd-race-fail" + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node stadium-race-class1-race) + :index 2 + :on-complete #f + :on-fail #f + ) + :borrow '((stadium 0 lracelit special) (ctywide 0 lracedf special)) + :open? (lambda ((arg0 game-task-node-info)) (= (level-status *level* 'stadium) 'active)) + :on-close #f + :description (game-text-id text-x1f2) + ) + (new 'static 'game-task-node-info + :level 'stadium + :task (game-task stadium-race-class) + :name "stadium-race-class1-resolution" + :when-open #f + :flags (game-task-node-flag close-task save-on-life task-retry task-manager) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node stadium-race-class1-race) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info (new 'static 'task-manager-info + :level 'ctywide + :intro-scene #f + :resolution-scene #f + :resolution-scene-continue #f + :retry-continue #f + :fail-continue #f + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node stadium-race-class1-resolution) + :on-complete #f + :on-fail #f + ) + :borrow '() + :open? #f + :on-close #f + :description (game-text-id text-x1f2) + ) + (new 'static 'game-task-node-info + :level 'stadium + :task (game-task stadium-race-class) + :name "stadium-race-class1-select-bush" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor burning-bush-stadium) + :action (game-task-action menu) + :tex (game-task-icon gaticon-07) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-62) + :scene #f + ) + ) + :flags (game-task-node-flag no-restart) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node stadium-race-class1-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'palace + :task (game-task palace-sneak-in) + :name "palace-sneak-in-introduction" + :when-open #f + :flags (game-task-node-flag auto-close save-on-life abs-task-mask intro-wait city-wait task-manager) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node stadium-race-class1-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :task-mask (task-mask task2) + :on-open #f + :info (new 'static 'task-manager-info + :mask (task-manager-mask intro-scene) + :level 'ctywide + :intro-scene "ds163" + :resolution-scene #f + :resolution-scene-continue #f + :retry-continue #f + :fail-continue #f + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node palace-sneak-in-introduction) + :intro-delay #x1770 + :on-complete #f + :on-fail #f + ) + :borrow '() + :open? #f + :on-close #f + :description (game-text-id text-x1f3) + ) + (new 'static 'game-task-node-info + :level 'palace + :task (game-task palace-sneak-in) + :name "palace-sneak-in-meeting" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor ashelin-throne) + :action (game-task-action say) + :tex (game-task-icon gaticon-02) + :scene "palace-sneak-in-res" + :distance (meters 40) + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-26) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-life reset-on-try) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node palace-sneak-in-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '((throne 0 lashthrn special)) + :open? #f + :on-close #f + :description (game-text-id text-x1f3) + ) + (new 'static 'game-task-node-info + :level 'palace + :task (game-task palace-sneak-in) + :name "palace-sneak-in-palace-3" + :when-open #f + :flags (game-task-node-flag save-on-life) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node palace-sneak-in-meeting) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + :description (game-text-id text-x1f3) + ) + (new 'static 'game-task-node-info + :level 'palace + :task (game-task palace-sneak-in) + :name "palace-sneak-in-door" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-26) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-life) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node palace-sneak-in-palace-3) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + :description (game-text-id text-x1f3) + ) + (new 'static 'game-task-node-info + :level 'palace + :task (game-task palace-sneak-in) + :name "palace-sneak-in-resolution" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-26) + :scene #f + ) + ) + :flags (game-task-node-flag close-task abs-task-mask) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node palace-sneak-in-door) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :task-mask (task-mask done) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + :description (game-text-id text-x1f3) + ) + (new 'static 'game-task-node-info + :level 'castle + :task (game-task castle-break-in) + :name "castle-break-in-introduction" + :when-open #f + :flags (game-task-node-flag save-on-life intro-wait city-wait task-manager) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node palace-sneak-in-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info (new 'static 'task-manager-info + :mask (task-manager-mask intro-scene) + :level 'ctywide + :intro-scene "asht002" + :resolution-scene #f + :resolution-scene-continue #f + :retry-continue #f + :fail-continue #f + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node castle-break-in-introduction) + :intro-delay #x5dc + :on-complete #f + :on-fail #f + ) + :borrow '() + :open? #f + :on-close #f + :description (game-text-id text-x1f4) + ) + (new 'static 'game-task-node-info + :level 'castle + :task (game-task castle-break-in) + :name "castle-break-in-castle-1" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-20) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-life task-manager) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node castle-break-in-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info (new 'static 'task-manager-info + :level 'caspad + :intro-scene #f + :resolution-scene #f + :resolution-scene-continue #f + :retry-continue #f + :fail-continue #f + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node castle-break-in-castle-1) + :on-complete #f + :on-fail #f + :end-sphere (new 'static 'sphere :x 195072.81 :y 223707.95 :z -6889803.0 :r 28672.0) + ) + :borrow '() + :open? #f + :on-close #f + :description (game-text-id text-x1f4) + ) + (new 'static 'game-task-node-info + :level 'castle + :task (game-task castle-break-in) + :name "castle-break-in-resolution" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-27) + :scene #f + ) + ) + :flags (game-task-node-flag close-task) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node castle-break-in-castle-1) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + :description (game-text-id text-x1f4) + ) + (new 'static 'game-task-node-info + :level 'castle + :task (game-task castle-boss) + :name "castle-boss-introduction" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor baron-castle) + :action (game-task-action say) + :tex (game-task-icon gaticon-02) + :scene "castle-krew-boss-fight-intro" + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-27) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-life abs-task-mask) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node castle-break-in-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :task-mask (task-mask task1) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + :add (game-task-node-command add-gun-up-3) + ) + (new 'static 'game-task-node-info + :level 'castle + :task (game-task castle-boss) + :name "castle-boss-resolution" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-27) + :scene #f + ) + ) + :flags (game-task-node-flag close-task) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node castle-boss-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + :description (game-text-id text-x1f5) + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-whack) + :name "city-whack-pre-intro" + :when-open #f + :flags (game-task-node-flag save-on-life intro-wait city-wait task-manager) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node castle-boss-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info (new 'static 'task-manager-info + :mask (task-manager-mask intro-scene) + :level 'ctywide + :intro-scene "tess001" + :resolution-scene #f + :resolution-scene-continue #f + :retry-continue #f + :fail-continue #f + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node city-whack-pre-intro) + :intro-delay #xbb8 + :on-complete #f + :on-fail #f + ) + :borrow '() + :open? #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-whack) + :name "city-whack-introduction" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor tess-hiphog) + :action (game-task-action say) + :tex (game-task-icon gaticon-02) + :scene "city-whack-a-metal-intro" + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-08) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-life) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-whack-pre-intro) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '((hiphog 0 lwhack special)) + :open? #f + :on-close #f + :description (game-text-id text-x20e) + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-whack) + :name "city-whack-wait" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor tess-hiphog) + :action (game-task-action talk) + :tex (game-task-icon gaticon-03) + :scene "city-whack-a-metal-intro" + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-08) + :scene #f + ) + ) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-whack-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '((hiphog 0 lwhack special)) + :open? #f + :on-close #f + :description (game-text-id text-x20e) + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-whack) + :name "city-whack-resolution" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-08) + :scene #f + ) + ) + :flags (game-task-node-flag close-task set-task-mask task-manager) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-whack-wait) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :task-mask (task-mask task5) + :on-open #f + :info (new 'static 'task-manager-info + :mask (task-manager-mask resolution-scene) + :level 'lwhack + :intro-scene #f + :resolution-scene "city-whack-a-metal-res" + :resolution-scene-continue #f + :retry-continue #f + :fail-continue "hiphog-start" + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node city-whack-resolution) + :on-complete #f + :on-fail #f + ) + :borrow '((hiphog 0 lwhack special)) + :open? #f + :on-close #f + :description (game-text-id text-x20e) + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-whack) + :name "city-whack-post-game" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor whack-a-metal-hiphog) + :action (game-task-action play) + :tex (game-task-icon gaticon-06) + :scene "whack-game" + :distance (meters 6) + ) + ) + :flags (game-task-node-flag no-restart) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-whack-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'under + :task (game-task under-mech) + :name "under-mech-introduction" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor tess-hiphog) + :action (game-task-action idle) + :tex (game-task-icon gaticon-01) + :scene #f + ) + ) + :flags (game-task-node-flag auto-close save-on-life abs-task-mask) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-whack-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :task-mask (task-mask task0) + :on-open #f + :info #f + :borrow '((ctywide 1 lwideb special) (hiphog 0 lwhack special)) + :open? #f + :on-close #f + :description (game-text-id text-x1f7) + ) + (new 'static 'game-task-node-info + :level 'under + :task (game-task under-mech) + :name "under-mech-resolution" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-28) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor tess-hiphog) + :action (game-task-action idle) + :tex (game-task-icon gaticon-01) + :scene #f + ) + ) + :flags (game-task-node-flag close-task abs-task-mask) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node under-mech-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :task-mask (task-mask task1) + :on-open #f + :info #f + :borrow '((ctywide 1 lwideb special) (hiphog 0 lwhack special)) + :open? #f + :on-close #f + :description (game-text-id text-x1f7) + ) + (new 'static 'game-task-node-info + :level 'under + :task (game-task under-sig) + :name "under-sig-introduction" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-28) + :scene #f + ) + ) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node under-mech-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '((ctywide 1 lwideb special)) + :open? #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'under + :task (game-task under-sig) + :name "under-sig-centipede1-start" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-28) + :scene #f + ) + ) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node under-sig-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '((ctywide 1 lwideb special)) + :open? #f + :on-close #f + :description (game-text-id text-x1f8) + ) + (new 'static 'game-task-node-info + :level 'under + :task (game-task under-sig) + :name "under-sig-centipede1-end" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-28) + :scene #f + ) + ) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node under-sig-centipede1-start) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '((ctywide 1 lwideb special)) + :open? #f + :on-close #f + :description (game-text-id text-x1f8) + ) + (new 'static 'game-task-node-info + :level 'under + :task (game-task under-sig) + :name "under-sig-centipede2-start" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-28) + :scene #f + ) + ) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node under-sig-centipede1-end) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '((ctywide 1 lwideb special)) + :open? #f + :on-close #f + :description (game-text-id text-x1f8) + ) + (new 'static 'game-task-node-info + :level 'under + :task (game-task under-sig) + :name "under-sig-resolution" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-28) + :scene #f + ) + ) + :flags (game-task-node-flag close-task abs-task-mask) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node under-sig-centipede2-start) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :task-mask (task-mask done) + :on-open #f + :info #f + :borrow '((ctywide 1 lwideb special)) + :open? #f + :on-close #f + :description (game-text-id text-x1f8) + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-defend-stadium) + :name "city-defend-stadium-pre-intro" + :when-open #f + :flags (game-task-node-flag save-on-life intro-wait city-wait task-manager) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node under-sig-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info (new 'static 'task-manager-info + :mask (task-manager-mask intro-scene) + :level 'ctywide + :intro-scene "kei029" + :resolution-scene #f + :resolution-scene-continue #f + :retry-continue #f + :fail-continue #f + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node city-defend-stadium-pre-intro) + :intro-delay #x258 + :on-complete #f + :on-fail #f + ) + :borrow '((ctywide 1 lwideb special)) + :open? #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'stadium + :task (game-task city-defend-stadium) + :name "city-defend-stadium-introduction" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor keira-stadium) + :action (game-task-action say) + :tex (game-task-icon gaticon-02) + :scene "city-defend-stadium-intro" + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-29) + :scene #f + ) + ) + :flags (game-task-node-flag abs-task-mask task-manager) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-defend-stadium-pre-intro) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :task-mask (task-mask task1) + :on-open #f + :info (new 'static 'task-manager-info + :level 'stadium + :intro-scene #f + :resolution-scene #f + :resolution-scene-continue #f + :retry-continue #f + :fail-continue #f + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node city-defend-stadium-introduction) + :on-complete #f + :on-fail #f + ) + :borrow '((stadium 0 lkeirift special) (ctywide 1 lwideb special)) + :open? #f + :on-close #f + :description (game-text-id text-x208) + ) + (new 'static 'game-task-node-info + :level 'stadium + :task (game-task city-defend-stadium) + :name "city-defend-stadium-resolution" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-29) + :scene #f + ) + ) + :flags (game-task-node-flag close-task abs-task-mask task-manager) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-defend-stadium-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :task-mask (task-mask done) + :on-open #f + :info (new 'static 'task-manager-info + :mask (task-manager-mask resolution-scene) + :level 'stadium + :intro-scene #f + :resolution-scene "city-defend-stadium-res" + :resolution-scene-continue #f + :retry-continue "stadium-blimp-intro" + :fail-continue "stadium-blimp-intro" + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node city-defend-stadium-resolution) + :on-complete #f + :on-fail #f + ) + :borrow '((stadium 0 lkeirift special) (ctywide 1 lwideb special)) + :open? #f + :on-close #f + :description (game-text-id text-x1f9) + ) + (new 'static 'game-task-node-info + :level 'consite + :task (game-task consite-find-baron) + :name "consite-find-baron-introduction" + :when-open #f + :flags (game-task-node-flag save-on-life intro-wait task-manager) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-defend-stadium-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info (new 'static 'task-manager-info + :mask (task-manager-mask intro-scene) + :level 'ctywide + :intro-scene "vin013" + :resolution-scene #f + :resolution-scene-continue #f + :retry-continue #f + :fail-continue #f + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node consite-find-baron-introduction) + :intro-delay #x258 + :on-complete #f + :on-fail #f + ) + :borrow '((ctywide 1 lwideb special)) + :open? #f + :on-close #f + :description (game-text-id text-x210) + ) + (new 'static 'game-task-node-info + :level 'consite + :task (game-task consite-find-baron) + :name "consite-find-baron-resolution" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor baron-consite) + :action (game-task-action say) + :tex (game-task-icon gaticon-02) + :scene "consite-find-baron-res" + :distance (meters 80) + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-25) + :scene #f + ) + ) + :flags (game-task-node-flag close-task) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node consite-find-baron-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '((ctywide 1 lwideb special)) + :open? #f + :on-close #f + :description (game-text-id text-x210) + ) + (new 'static 'game-task-node-info + :level 'nest + :task (game-task nest-get-to-gun) + :name "nest-get-to-gun-introduction" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor baron-consite) + :action (game-task-action idle) + :tex (game-task-icon gaticon-01) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-life intro-wait city-wait task-manager) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node consite-find-baron-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info (new 'static 'task-manager-info + :mask (task-manager-mask intro-scene) + :level 'ctywide + :intro-scene "asht006" + :resolution-scene #f + :resolution-scene-continue #f + :retry-continue #f + :fail-continue #f + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node nest-get-to-gun-introduction) + :intro-delay #x258 + :on-complete #f + :on-fail #f + ) + :borrow '((ctywide 1 lwideb special)) + :open? #f + :on-close #f + :description (game-text-id text-x1fe) + ) + (new 'static 'game-task-node-info + :level 'nest + :task (game-task nest-get-to-gun) + :name "nest-get-to-gun-resolution" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-20) + :scene #f + ) + ) + :flags (game-task-node-flag close-task) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node nest-get-to-gun-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '((ctywide 1 lwideb special)) + :open? #f + :on-close #f + :description (game-text-id text-x1fe) + ) + (new 'static 'game-task-node-info + :level 'nest + :task (game-task nest-enter) + :name "nest-enter-introduction" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-20) + :scene #f + ) + ) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node nest-get-to-gun-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '((ctywide 1 lwideb special)) + :open? #f + :on-close #f + :description (game-text-id text-x211) + ) + (new 'static 'game-task-node-info + :level 'nest + :task (game-task nest-enter) + :name "nest-enter-resolution" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-20) + :scene #f + ) + ) + :flags (game-task-node-flag close-task) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node nest-enter-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '((ctywide 1 lwideb special)) + :open? #f + :on-close #f + :description (game-text-id text-x211) + ) + (new 'static 'game-task-node-info + :level 'nest + :task (game-task nest-boss) + :name "nest-boss-introduction" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-20) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-life) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node nest-enter-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '((ctywide 1 lwideb special)) + :open? #f + :on-close #f + :description (game-text-id text-x1ff) + ) + (new 'static 'game-task-node-info + :level 'nest + :task (game-task nest-boss) + :name "nest-boss-resolution" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-20) + :scene #f + ) + ) + :flags (game-task-node-flag close-task task-manager) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node nest-boss-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info (new 'static 'task-manager-info + :level 'nestb + :intro-scene #f + :resolution-scene #f + :resolution-scene-continue #f + :retry-continue #f + :fail-continue #f + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node nest-boss-resolution) + :on-complete #f + :on-fail #f + ) + :borrow '((ctywide 1 lwideb special) (outrocst 0 loutcstb special)) + :open? #f + :on-close #f + :description (game-text-id text-x1ff) + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-win) + :name "city-win-pre-intro" + :when-open #f + :flags (game-task-node-flag clear-task-mask) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node nest-boss-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :task-mask (task-mask task3 task5) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-win) + :name "city-win-introduction" + :when-open #f + :flags (game-task-node-flag save-on-life set-task-mask) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-win-pre-intro) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :task-mask (task-mask task4) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-win) + :name "city-win-resolution" + :when-open #f + :flags (game-task-node-flag close-task save-on-life) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-win-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '((hiphog 0 lhipout display)) + :open? #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-oracle) + :name "city-oracle-introduction" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-31) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor oracle-oracle) + :action (game-task-action say) + :tex (game-task-icon gaticon-02) + :scene "city-oracle-intro" + ) + ) + :flags (game-task-node-flag save-on-life) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node atoll-water-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + :description (game-text-id text-x212) + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-oracle) + :name "city-oracle-level0" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-31) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor oracle-oracle) + :action (game-task-action say) + :tex (game-task-icon gaticon-02) + :scene "city-oracle-level-0" + ) + ) + :flags (game-task-node-flag save-on-life task-manager) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-oracle-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info (new 'static 'task-manager-info + :level 'oracle + :intro-scene #f + :resolution-scene #f + :resolution-scene-continue #f + :retry-continue #f + :fail-continue #f + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node city-oracle-level0) + :on-complete #f + :on-fail #f + ) + :borrow '() + :open? (lambda ((arg0 game-task-node-info)) (>= (-> *game-info* gem) 25.0)) + :on-close #f + :add (game-task-node-command add-darkjak-0) + :description (game-text-id text-x212) + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-oracle) + :name "city-oracle-level0-training" + :when-open #f + :flags (game-task-node-flag save-on-life task-manager) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-oracle-level0) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info (new 'static 'task-manager-info + :level 'oracle + :intro-scene #f + :resolution-scene #f + :resolution-scene-continue #f + :retry-continue #f + :fail-continue #f + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node city-oracle-level0-training) + :on-complete #f + :on-fail #f + ) + :borrow '() + :open? #f + :on-close #f + :description (game-text-id text-x212) + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-oracle) + :name "city-oracle-level1" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-31) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor oracle-oracle) + :action (game-task-action say) + :tex (game-task-icon gaticon-02) + :scene "city-oracle-level-1" + ) + ) + :flags (game-task-node-flag save-on-life task-manager) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-oracle-level0-training) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info (new 'static 'task-manager-info + :level 'oracle + :intro-scene #f + :resolution-scene #f + :resolution-scene-continue #f + :retry-continue #f + :fail-continue #f + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node city-oracle-level1) + :on-complete #f + :on-fail #f + ) + :borrow '() + :open? (lambda ((arg0 game-task-node-info)) (>= (-> *game-info* gem) 200.0)) + :on-close #f + :add (game-task-node-command add-darkjak-1) + :description (game-text-id text-x212) + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-oracle) + :name "city-oracle-level1-training" + :when-open #f + :flags (game-task-node-flag save-on-life task-manager) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-oracle-level1) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info (new 'static 'task-manager-info + :level 'oracle + :intro-scene #f + :resolution-scene #f + :resolution-scene-continue #f + :retry-continue #f + :fail-continue #f + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node city-oracle-level1-training) + :on-complete #f + :on-fail #f + ) + :borrow '() + :open? #f + :on-close #f + :description (game-text-id text-x212) + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-oracle) + :name "city-oracle-level2" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-31) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor oracle-oracle) + :action (game-task-action say) + :tex (game-task-icon gaticon-02) + :scene "city-oracle-level-2" + ) + ) + :flags (game-task-node-flag save-on-life task-manager) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-oracle-level1-training) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info (new 'static 'task-manager-info + :level 'oracle + :intro-scene #f + :resolution-scene #f + :resolution-scene-continue #f + :retry-continue #f + :fail-continue #f + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node city-oracle-level2) + :on-complete #f + :on-fail #f + ) + :borrow '() + :open? (lambda ((arg0 game-task-node-info)) (>= (-> *game-info* gem) 200.0)) + :on-close #f + :add (game-task-node-command add-darkjak-2) + :description (game-text-id text-x212) + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-oracle) + :name "city-oracle-level2-training" + :when-open #f + :flags (game-task-node-flag save-on-life task-manager) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-oracle-level2) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info (new 'static 'task-manager-info + :level 'oracle + :intro-scene #f + :resolution-scene #f + :resolution-scene-continue #f + :retry-continue #f + :fail-continue #f + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node city-oracle-level2-training) + :on-complete #f + :on-fail #f + ) + :borrow '() + :open? #f + :on-close #f + :description (game-text-id text-x212) + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-oracle) + :name "city-oracle-level3" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-31) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor oracle-oracle) + :action (game-task-action say) + :tex (game-task-icon gaticon-02) + :scene "city-oracle-level-3" + ) + ) + :flags (game-task-node-flag save-on-life task-manager) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-oracle-level2-training) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info (new 'static 'task-manager-info + :level 'oracle + :intro-scene #f + :resolution-scene #f + :resolution-scene-continue #f + :retry-continue #f + :fail-continue #f + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node city-oracle-level3) + :on-complete #f + :on-fail #f + ) + :borrow '() + :open? (lambda ((arg0 game-task-node-info)) (>= (-> *game-info* gem) 100.0)) + :on-close #f + :add (game-task-node-command add-darkjak-3) + :description (game-text-id text-x212) + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-oracle) + :name "city-oracle-level3-training" + :when-open #f + :flags (game-task-node-flag save-on-life task-manager) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-oracle-level3) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info (new 'static 'task-manager-info + :level 'oracle + :intro-scene #f + :resolution-scene #f + :resolution-scene-continue #f + :retry-continue #f + :fail-continue #f + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node city-oracle-level3-training) + :on-complete #f + :on-fail #f + ) + :borrow '() + :open? #f + :on-close #f + :description (game-text-id text-x212) + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-burning-bush-ring-1) + :name "city-burning-bush-ring-1-introduction" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor burning-bush-slumb) + :action (game-task-action show) + :tex (game-task-icon gaticon-04) + :scene "bb01int" + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-47) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-try) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node atoll-water-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-burning-bush-ring-1) + :name "city-burning-bush-ring-1-resolution" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor burning-bush-slumb) + :action (game-task-action play) + :tex (game-task-icon gaticon-06) + :scene #f + ) + ) + :flags (game-task-node-flag close-task task-retry task-manager) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-burning-bush-ring-1-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info (new 'static 'task-manager-info + :level 'lbbush + :intro-scene #f + :resolution-scene #f + :resolution-scene-continue #f + :retry-continue "ctyslumb-burning-bush" + :fail-continue #f + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node city-burning-bush-ring-1-resolution) + :index 1 + :on-complete '(talker-spawn "bb01win") + :on-fail #f + ) + :borrow '((ctywide 0 lbbush display)) + :open? #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-burning-bush-get-to-1) + :name "city-burning-bush-get-to-1-introduction" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor burning-bush-sluma) + :action (game-task-action show) + :tex (game-task-icon gaticon-04) + :scene "bb26int" + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-46) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-try) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-red-gun-training-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-burning-bush-get-to-1) + :name "city-burning-bush-get-to-1-resolution" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor burning-bush-sluma) + :action (game-task-action play) + :tex (game-task-icon gaticon-06) + :scene #f + ) + ) + :flags (game-task-node-flag close-task task-retry task-manager) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-burning-bush-get-to-1-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info (new 'static 'task-manager-info + :level 'lbbush + :intro-scene #f + :resolution-scene #f + :resolution-scene-continue #f + :retry-continue "ctysluma-burning-bush" + :fail-continue #f + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node city-burning-bush-get-to-1-resolution) + :index 1 + :on-complete '(talker-spawn "bb10win") + :on-fail #f + ) + :borrow '((ctywide 0 lbbush display)) + :open? #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-burning-bush-get-to-2) + :name "city-burning-bush-get-to-2-introduction" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor burning-bush-indb) + :action (game-task-action show) + :tex (game-task-icon gaticon-04) + :scene "bb30int" + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-56) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-try) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node atoll-sig-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-burning-bush-get-to-2) + :name "city-burning-bush-get-to-2-resolution" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor burning-bush-indb) + :action (game-task-action play) + :tex (game-task-icon gaticon-06) + :scene #f + ) + ) + :flags (game-task-node-flag close-task task-retry task-manager) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-burning-bush-get-to-2-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info (new 'static 'task-manager-info + :level 'lbbush + :intro-scene #f + :resolution-scene #f + :resolution-scene-continue #f + :retry-continue "ctyindb-burning-bush" + :fail-continue #f + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node city-burning-bush-get-to-2-resolution) + :index #xe + :on-complete '(talker-spawn "bb10win") + :on-fail #f + ) + :borrow '((ctywide 0 lbbush display)) + :open? #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-burning-bush-get-to-3) + :name "city-burning-bush-get-to-3-introduction" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor burning-bush-port-3) + :action (game-task-action show) + :tex (game-task-icon gaticon-04) + :scene "bb27int" + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-50) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-try) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node sewer-enemy-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-burning-bush-get-to-3) + :name "city-burning-bush-get-to-3-resolution" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor burning-bush-port-3) + :action (game-task-action play) + :tex (game-task-icon gaticon-06) + :scene #f + ) + ) + :flags (game-task-node-flag close-task task-retry task-manager) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-burning-bush-get-to-3-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info (new 'static 'task-manager-info + :level 'lbbush + :intro-scene #f + :resolution-scene #f + :resolution-scene-continue #f + :retry-continue "ctyport-burning-bush-3" + :fail-continue #f + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node city-burning-bush-get-to-3-resolution) + :index 3 + :on-complete '(talker-spawn "bb10win") + :on-fail #f + ) + :borrow '((ctywide 0 lbbush display)) + :open? #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-burning-bush-get-to-4) + :name "city-burning-bush-get-to-4-introduction" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor burning-bush-slumc) + :action (game-task-action show) + :tex (game-task-icon gaticon-04) + :scene "bb28int" + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-49) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-try) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node atoll-battle-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-burning-bush-get-to-4) + :name "city-burning-bush-get-to-4-resolution" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor burning-bush-slumc) + :action (game-task-action play) + :tex (game-task-icon gaticon-06) + :scene #f + ) + ) + :flags (game-task-node-flag close-task task-retry task-manager) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-burning-bush-get-to-4-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info (new 'static 'task-manager-info + :level 'lbbush + :intro-scene #f + :resolution-scene #f + :resolution-scene-continue #f + :retry-continue "ctyslumc-burning-bush" + :fail-continue #f + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node city-burning-bush-get-to-4-resolution) + :index #xa + :on-complete '(talker-spawn "bb10win") + :on-fail #f + ) + :borrow '((ctywide 0 lbbush display)) + :open? #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-burning-bush-collection-1) + :name "city-burning-bush-collection-1-introduction" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor burning-bush-genb) + :action (game-task-action show) + :tex (game-task-icon gaticon-04) + :scene "bb19int" + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-42) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-try) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node stadium-board1-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-burning-bush-collection-1) + :name "city-burning-bush-collection-1-resolution" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor burning-bush-genb) + :action (game-task-action play) + :tex (game-task-icon gaticon-06) + :scene #f + ) + ) + :flags (game-task-node-flag close-task task-retry task-manager) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-burning-bush-collection-1-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info (new 'static 'task-manager-info + :level 'lbbush + :intro-scene #f + :resolution-scene #f + :resolution-scene-continue #f + :retry-continue "ctygenb-burning-bush" + :fail-continue #f + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node city-burning-bush-collection-1-resolution) + :index 1 + :on-complete '(talker-spawn "bb19win") + :on-fail #f + ) + :borrow '((ctywide 0 lbbush display)) + :open? #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-burning-bush-racepoint-1) + :name "city-burning-bush-racepoint-1-introduction" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor burning-bush-marka) + :action (game-task-action show) + :tex (game-task-icon gaticon-04) + :scene "bb10int" + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-57) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-try) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node mountain-collection-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? (lambda ((arg0 game-task-node-info)) (or (not (task-node-closed? (game-task-node forest-scouts-resolution))) + (task-node-closed? (game-task-node city-escort-kid-resolution)) + ) + ) + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-burning-bush-racepoint-1) + :name "city-burning-bush-racepoint-1-resolution" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor burning-bush-marka) + :action (game-task-action play) + :tex (game-task-icon gaticon-06) + :scene #f + ) + ) + :flags (game-task-node-flag close-task task-retry task-manager) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-burning-bush-racepoint-1-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info (new 'static 'task-manager-info + :level 'ctywide + :intro-scene #f + :resolution-scene #f + :resolution-scene-continue #f + :retry-continue "ctymarka-burning-bush" + :fail-continue #f + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node city-burning-bush-racepoint-1-resolution) + :on-complete '(talker-spawn "bb14win") + :on-fail #f + ) + :borrow '() + :open? #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-burning-bush-ring-2) + :name "city-burning-bush-ring-2-introduction" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor burning-bush-port) + :action (game-task-action show) + :tex (game-task-icon gaticon-04) + :scene "bb02int" + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-52) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-try) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node forest-scouts-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-burning-bush-ring-2) + :name "city-burning-bush-ring-2-resolution" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor burning-bush-port) + :action (game-task-action play) + :tex (game-task-icon gaticon-06) + :scene #f + ) + ) + :flags (game-task-node-flag close-task task-retry task-manager) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-burning-bush-ring-2-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info (new 'static 'task-manager-info + :level 'lbbush + :intro-scene #f + :resolution-scene #f + :resolution-scene-continue #f + :retry-continue "ctyport-burning-bush" + :fail-continue #f + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node city-burning-bush-ring-2-resolution) + :index 2 + :on-complete '(talker-spawn "bb02win") + :on-fail #f + ) + :borrow '((ctywide 0 lbbush display)) + :open? #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-burning-bush-get-to-5) + :name "city-burning-bush-get-to-5-introduction" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor burning-bush-farmb) + :action (game-task-action show) + :tex (game-task-icon gaticon-04) + :scene "bb29int" + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-54) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-try) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node forest-scouts-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-burning-bush-get-to-5) + :name "city-burning-bush-get-to-5-resolution" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor burning-bush-farmb) + :action (game-task-action play) + :tex (game-task-icon gaticon-06) + :scene #f + ) + ) + :flags (game-task-node-flag close-task task-retry task-manager) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-burning-bush-get-to-5-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info (new 'static 'task-manager-info + :level 'lbbush + :intro-scene #f + :resolution-scene #f + :resolution-scene-continue #f + :retry-continue "ctyfarmb-burning-bush" + :fail-continue #f + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node city-burning-bush-get-to-5-resolution) + :index 5 + :on-complete '(talker-spawn "bb10win") + :on-fail #f + ) + :borrow '((ctywide 0 lbbush display)) + :open? #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-burning-bush-get-to-6) + :name "city-burning-bush-get-to-6-introduction" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor burning-bush-markb-2) + :action (game-task-action show) + :tex (game-task-icon gaticon-04) + :scene "bb31int" + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-59) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-try) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-intercept-tanker-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-burning-bush-get-to-6) + :name "city-burning-bush-get-to-6-resolution" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor burning-bush-markb-2) + :action (game-task-action play) + :tex (game-task-icon gaticon-06) + :scene #f + ) + ) + :flags (game-task-node-flag close-task task-retry task-manager) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-burning-bush-get-to-6-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info (new 'static 'task-manager-info + :level 'lbbush + :intro-scene #f + :resolution-scene #f + :resolution-scene-continue #f + :retry-continue "ctymarkb-burning-bush-2" + :fail-continue #f + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node city-burning-bush-get-to-6-resolution) + :index #xd + :on-complete '(talker-spawn "bb10win") + :on-fail #f + ) + :borrow '((ctywide 0 lbbush display)) + :open? #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-burning-bush-shuttle-1) + :name "city-burning-bush-shuttle-1-introduction" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor burning-bush-marka) + :action (game-task-action show) + :tex (game-task-icon gaticon-04) + :scene "bb07int" + ) + (new 'static 'game-task-event + :actor (game-task-actor brutter-kiosk) + :action (game-task-action idle) + :tex (game-task-icon gaticon-01) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-57) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-try) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-meet-brutter-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-burning-bush-shuttle-1) + :name "city-burning-bush-shuttle-1-resolution" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor burning-bush-marka) + :action (game-task-action play) + :tex (game-task-icon gaticon-06) + :scene #f + ) + ) + :flags (game-task-node-flag close-task task-retry task-manager) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-burning-bush-shuttle-1-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info (new 'static 'task-manager-info + :level 'lshuttle + :intro-scene #f + :resolution-scene #f + :resolution-scene-continue #f + :retry-continue "ctymarka-burning-bush" + :fail-continue #f + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node city-burning-bush-shuttle-1-resolution) + :on-complete '(talker-spawn "bb07win") + :on-fail #f + ) + :borrow '((ctywide 0 lshuttle display)) + :open? #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-burning-bush-get-to-7) + :name "city-burning-bush-get-to-7-introduction" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor burning-bush-markb) + :action (game-task-action show) + :tex (game-task-icon gaticon-04) + :scene "bb32int" + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-58) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-try) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node drill-ship-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-burning-bush-get-to-7) + :name "city-burning-bush-get-to-7-resolution" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor burning-bush-markb) + :action (game-task-action play) + :tex (game-task-icon gaticon-06) + :scene #f + ) + ) + :flags (game-task-node-flag close-task task-retry task-manager) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-burning-bush-get-to-7-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info (new 'static 'task-manager-info + :level 'lbbush + :intro-scene #f + :resolution-scene #f + :resolution-scene-continue #f + :retry-continue "ctymarkb-burning-bush" + :fail-continue #f + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node city-burning-bush-get-to-7-resolution) + :index #xc + :on-complete '(talker-spawn "bb10win") + :on-fail #f + ) + :borrow '((ctywide 0 lbbush display)) + :open? #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-burning-bush-get-to-8) + :name "city-burning-bush-get-to-8-introduction" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor burning-bush-farma) + :action (game-task-action show) + :tex (game-task-icon gaticon-04) + :scene "bb33int" + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-53) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-try) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node forest-hunt-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-burning-bush-get-to-8) + :name "city-burning-bush-get-to-8-resolution" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor burning-bush-farma) + :action (game-task-action play) + :tex (game-task-icon gaticon-06) + :scene #f + ) + ) + :flags (game-task-node-flag close-task task-retry task-manager) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-burning-bush-get-to-8-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info (new 'static 'task-manager-info + :level 'lbbush + :intro-scene #f + :resolution-scene #f + :resolution-scene-continue #f + :retry-continue "ctyfarma-burning-bush" + :fail-continue #f + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node city-burning-bush-get-to-8-resolution) + :index #x6 + :on-complete '(talker-spawn "bb10win") + :on-fail #f + ) + :borrow '((ctywide 0 lbbush display)) + :open? #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-burning-bush-get-to-9) + :name "city-burning-bush-get-to-9-introduction" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor burning-bush-genb) + :action (game-task-action show) + :tex (game-task-icon gaticon-04) + :scene "bb34int" + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-42) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-try) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node stadium-race-class3-resolution) + (game-task-node city-burning-bush-collection-1-resolution) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-burning-bush-get-to-9) + :name "city-burning-bush-get-to-9-resolution" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor burning-bush-genb) + :action (game-task-action play) + :tex (game-task-icon gaticon-06) + :scene #f + ) + ) + :flags (game-task-node-flag close-task task-retry task-manager) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-burning-bush-get-to-9-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info (new 'static 'task-manager-info + :level 'lbbush + :intro-scene #f + :resolution-scene #f + :resolution-scene-continue #f + :retry-continue "ctygenb-burning-bush" + :fail-continue #f + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node city-burning-bush-get-to-9-resolution) + :index #x8 + :on-complete '(talker-spawn "bb10win") + :on-fail #f + ) + :borrow '((ctywide 0 lbbush display)) + :open? #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-burning-bush-collection-2) + :name "city-burning-bush-collection-2-introduction" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor burning-bush-genc) + :action (game-task-action show) + :tex (game-task-icon gaticon-04) + :scene "bb20int" + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-44) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-try) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-destroy-guard-vehicles-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-burning-bush-collection-2) + :name "city-burning-bush-collection-2-resolution" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor burning-bush-genc) + :action (game-task-action play) + :tex (game-task-icon gaticon-06) + :scene #f + ) + ) + :flags (game-task-node-flag close-task task-retry task-manager) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-burning-bush-collection-2-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info (new 'static 'task-manager-info + :level 'lbbush + :intro-scene #f + :resolution-scene #f + :resolution-scene-continue #f + :retry-continue "ctygenc-burning-bush" + :fail-continue #f + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node city-burning-bush-collection-2-resolution) + :on-complete '(talker-spawn "bb20win") + :on-fail #f + ) + :borrow '((ctywide 0 lbbush display)) + :open? #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-burning-bush-get-to-10) + :name "city-burning-bush-get-to-10-introduction" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor burning-bush-inda) + :action (game-task-action show) + :tex (game-task-icon gaticon-04) + :scene "bb35int" + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-55) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-try) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-errol-challenge-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-burning-bush-get-to-10) + :name "city-burning-bush-get-to-10-resolution" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor burning-bush-inda) + :action (game-task-action play) + :tex (game-task-icon gaticon-06) + :scene #f + ) + ) + :flags (game-task-node-flag close-task task-retry task-manager) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-burning-bush-get-to-10-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info (new 'static 'task-manager-info + :level 'lbbush + :intro-scene #f + :resolution-scene #f + :resolution-scene-continue #f + :retry-continue "ctyinda-burning-bush" + :fail-continue #f + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node city-burning-bush-get-to-10-resolution) + :index 2 + :on-complete '(talker-spawn "bb10win") + :on-fail #f + ) + :borrow '((ctywide 0 lbbush display)) + :open? #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-burning-bush-get-to-11) + :name "city-burning-bush-get-to-11-introduction" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor burning-bush-gena) + :action (game-task-action show) + :tex (game-task-icon gaticon-04) + :scene "bb36int" + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-40) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-try) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-errol-challenge-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-burning-bush-get-to-11) + :name "city-burning-bush-get-to-11-resolution" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor burning-bush-gena) + :action (game-task-action play) + :tex (game-task-icon gaticon-06) + :scene #f + ) + ) + :flags (game-task-node-flag close-task task-retry task-manager) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-burning-bush-get-to-11-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info (new 'static 'task-manager-info + :level 'lbbush + :intro-scene #f + :resolution-scene #f + :resolution-scene-continue #f + :retry-continue "ctygena-burning-bush" + :fail-continue #f + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node city-burning-bush-get-to-11-resolution) + :index #x9 + :on-complete '(talker-spawn "bb10win") + :on-fail #f + ) + :borrow '((ctywide 0 lbbush display)) + :open? #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-burning-bush-ring-3) + :name "city-burning-bush-ring-3-introduction" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor burning-bush-slumb) + :action (game-task-action show) + :tex (game-task-icon gaticon-04) + :scene "bb03int" + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-47) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-try) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node ruins-mech-resolution) + (game-task-node city-burning-bush-ring-1-resolution) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-burning-bush-ring-3) + :name "city-burning-bush-ring-3-resolution" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor burning-bush-slumb) + :action (game-task-action play) + :tex (game-task-icon gaticon-06) + :scene #f + ) + ) + :flags (game-task-node-flag close-task task-retry task-manager) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-burning-bush-ring-3-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info (new 'static 'task-manager-info + :level 'lbbush + :intro-scene #f + :resolution-scene #f + :resolution-scene-continue #f + :retry-continue "ctyslumb-burning-bush" + :fail-continue #f + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node city-burning-bush-ring-3-resolution) + :on-complete '(talker-spawn "bb03win") + :on-fail #f + ) + :borrow '((ctywide 0 lbbush display)) + :open? #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-burning-bush-get-to-12) + :name "city-burning-bush-get-to-12-introduction" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor burning-bush-marka) + :action (game-task-action show) + :tex (game-task-icon gaticon-04) + :scene "bb37int" + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-57) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-try) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node forest-protect-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-burning-bush-get-to-12) + :name "city-burning-bush-get-to-12-resolution" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor burning-bush-marka) + :action (game-task-action play) + :tex (game-task-icon gaticon-06) + :scene #f + ) + ) + :flags (game-task-node-flag close-task task-retry task-manager) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-burning-bush-get-to-12-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info (new 'static 'task-manager-info + :level 'lbbush + :intro-scene #f + :resolution-scene #f + :resolution-scene-continue #f + :retry-continue "ctymarka-burning-bush" + :fail-continue #f + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node city-burning-bush-get-to-12-resolution) + :on-complete '(talker-spawn "bb10win") + :on-fail #f + ) + :borrow '((ctywide 0 lbbush display)) + :open? #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-burning-bush-bombbot-1) + :name "city-burning-bush-bombbot-1-introduction" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor burning-bush-marka) + :action (game-task-action show) + :tex (game-task-icon gaticon-04) + :scene "bb05int" + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-57) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-try) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-save-lurkers-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-burning-bush-bombbot-1) + :name "city-burning-bush-bombbot-1-resolution" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor burning-bush-marka) + :action (game-task-action play) + :tex (game-task-icon gaticon-06) + :scene #f + ) + ) + :flags (game-task-node-flag close-task task-retry task-manager) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-burning-bush-bombbot-1-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info (new 'static 'task-manager-info + :level 'lbombbot + :intro-scene #f + :resolution-scene #f + :resolution-scene-continue #f + :retry-continue "ctymarka-burning-bush" + :fail-continue #f + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node city-burning-bush-bombbot-1-resolution) + :on-complete '(talker-spawn "bb05win") + :on-fail #f + ) + :borrow '((ctywide 0 lbombbot display)) + :open? #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-burning-bush-get-to-13) + :name "city-burning-bush-get-to-13-introduction" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor burning-bush-slumb-2) + :action (game-task-action show) + :tex (game-task-icon gaticon-04) + :scene "bb28int" + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-48) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-try) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node stadium-race-class1-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-burning-bush-get-to-13) + :name "city-burning-bush-get-to-13-resolution" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor burning-bush-slumb-2) + :action (game-task-action play) + :tex (game-task-icon gaticon-06) + :scene #f + ) + ) + :flags (game-task-node-flag close-task task-retry task-manager) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-burning-bush-get-to-13-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info (new 'static 'task-manager-info + :level 'lbbush + :intro-scene #f + :resolution-scene #f + :resolution-scene-continue #f + :retry-continue "ctyslumb-burning-bush-2" + :fail-continue #f + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node city-burning-bush-get-to-13-resolution) + :index #xb + :on-complete '(talker-spawn "bb10win") + :on-fail #f + ) + :borrow '((ctywide 0 lbbush display)) + :open? #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-burning-bush-get-to-14) + :name "city-burning-bush-get-to-14-introduction" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor burning-bush-gena-2) + :action (game-task-action show) + :tex (game-task-icon gaticon-04) + :scene "bb29int" + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-41) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-try) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node nest-boss-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-burning-bush-get-to-14) + :name "city-burning-bush-get-to-14-resolution" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor burning-bush-gena-2) + :action (game-task-action play) + :tex (game-task-icon gaticon-06) + :scene #f + ) + ) + :flags (game-task-node-flag close-task task-retry task-manager) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-burning-bush-get-to-14-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info (new 'static 'task-manager-info + :level 'lbbush + :intro-scene #f + :resolution-scene #f + :resolution-scene-continue #f + :retry-continue "ctygena-burning-bush-2" + :fail-continue #f + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node city-burning-bush-get-to-14-resolution) + :index #x7 + :on-complete '(talker-spawn "bb10win") + :on-fail #f + ) + :borrow '((ctywide 0 lbbush display)) + :open? #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-burning-bush-get-to-15) + :name "city-burning-bush-get-to-15-introduction" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor burning-bush-pal) + :action (game-task-action show) + :tex (game-task-icon gaticon-04) + :scene "bb30int" + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-60) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-try) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node nest-boss-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-burning-bush-get-to-15) + :name "city-burning-bush-get-to-15-resolution" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor burning-bush-pal) + :action (game-task-action play) + :tex (game-task-icon gaticon-06) + :scene #f + ) + ) + :flags (game-task-node-flag close-task task-retry task-manager) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-burning-bush-get-to-15-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info (new 'static 'task-manager-info + :level 'lbbush + :intro-scene #f + :resolution-scene #f + :resolution-scene-continue #f + :retry-continue "ctypal-burning-bush" + :fail-continue #f + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node city-burning-bush-get-to-15-resolution) + :index 4 + :on-complete '(talker-spawn "bb10win") + :on-fail #f + ) + :borrow '((ctywide 0 lbbush display)) + :open? #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-burning-bush-collection-3) + :name "city-burning-bush-collection-3-introduction" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor burning-bush-farma) + :action (game-task-action show) + :tex (game-task-icon gaticon-04) + :scene "cityv152" + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-53) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-try) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node nest-boss-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-burning-bush-collection-3) + :name "city-burning-bush-collection-3-resolution" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor burning-bush-farma) + :action (game-task-action play) + :tex (game-task-icon gaticon-06) + :scene #f + ) + ) + :flags (game-task-node-flag close-task task-retry task-manager) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-burning-bush-collection-3-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info (new 'static 'task-manager-info + :level 'lbbush + :intro-scene #f + :resolution-scene #f + :resolution-scene-continue #f + :retry-continue "ctyfarma-burning-bush" + :fail-continue #f + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node city-burning-bush-collection-3-resolution) + :index 2 + :on-complete '(talker-spawn "cityv154") + :on-fail #f + ) + :borrow '((ctywide 0 lbbush display)) + :open? #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-burning-bush-race-errol) + :name "city-burning-bush-race-errol-introduction" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor burning-bush-port) + :action (game-task-action show) + :tex (game-task-icon gaticon-04) + :scene "bb23int" + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-52) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-try) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-errol-challenge-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-burning-bush-race-errol) + :name "city-burning-bush-race-errol-resolution" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor burning-bush-port) + :action (game-task-action play) + :tex (game-task-icon gaticon-06) + :scene #f + ) + ) + :flags (game-task-node-flag close-task save-on-life task-retry city-wait task-manager) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-burning-bush-race-errol-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info (new 'static 'task-manager-info + :level 'lerlchal + :intro-scene #f + :resolution-scene #f + :resolution-scene-continue #f + :retry-continue "ctyport-errol-race-retry" + :fail-continue "ctyport-burning-bush" + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node city-burning-bush-race-errol-resolution) + :index #x7 + :on-complete #f + :on-fail #f + ) + :borrow '((ctywide 0 lerlchal display)) + :open? #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-burning-bush-race-port) + :name "city-burning-bush-race-port-introduction" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor burning-bush-port-3) + :action (game-task-action show) + :tex (game-task-icon gaticon-04) + :scene "bb24int" + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-50) + :scene #f + ) + ) + :flags (game-task-node-flag save-on-try) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node stadium-race-class1-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'city + :task (game-task city-burning-bush-race-port) + :name "city-burning-bush-race-port-resolution" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor burning-bush-port-3) + :action (game-task-action play) + :tex (game-task-icon gaticon-06) + :scene #f + ) + ) + :flags (game-task-node-flag close-task save-on-life task-retry city-wait task-manager) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node city-burning-bush-race-port-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info (new 'static 'task-manager-info + :level 'lprtrace + :intro-scene #f + :resolution-scene #f + :resolution-scene-continue #f + :retry-continue "ctyport-race-retry" + :fail-continue "ctyport-burning-bush-3" + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node city-burning-bush-race-port-resolution) + :index #x8 + :on-complete #f + :on-fail #f + ) + :borrow '((ctywide 0 lprtrace display)) + :open? #f + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'stadium + :task (game-task stadium-burning-bush-race-board) + :name "stadium-burning-bush-race-board-introduction" + :when-open #f + :flags (game-task-node-flag save-on-life) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node stadium-race-class3-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close '(begin + (when (task-closed? "stadium-race-class3-resolution") + (task-open! "stadium-burning-bush-race-class3-introduction") + (task-open! "stadium-burning-bush-race-class3-r-introduction") + ) + (when (task-closed? "stadium-race-class2-resolution") + (task-open! "stadium-burning-bush-race-class2-introduction") + (task-open! "stadium-burning-bush-race-class2-r-introduction") + ) + (when (task-closed? "stadium-race-class1-resolution") + (task-open! "stadium-burning-bush-race-class1-introduction") + (task-open! "stadium-burning-bush-race-class1-r-introduction") + ) + ) + ) + (new 'static 'game-task-node-info + :level 'stadium + :task (game-task stadium-burning-bush-race-board) + :name "stadium-burning-bush-race-board-resolution" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor burning-bush-stadium) + :action (game-task-action play) + :tex (game-task-icon gaticon-06) + :scene #f + ) + (new 'static 'game-task-event + :actor (game-task-actor minimap) + :action (game-task-action show) + :tex (game-task-icon gaticon-39) + :scene #f + ) + ) + :flags (game-task-node-flag close-task task-retry task-manager) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node stadium-burning-bush-race-board-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info (new 'static 'task-manager-info + :level 'ctywide + :intro-scene #f + :resolution-scene #f + :resolution-scene-continue #f + :retry-continue "skatea-training-judge" + :fail-continue "stadium-burning-bush" + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node stadium-burning-bush-race-board-resolution) + :on-complete #f + :on-fail #f + ) + :borrow '() + :open? (lambda ((arg0 game-task-node-info)) (let ((v1-1 (level-get-target-inside *level*))) + (the-as symbol (and v1-1 (= (-> v1-1 info taskname) (-> arg0 level)))) + ) + ) + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'stadium + :task (game-task stadium-burning-bush-race-class3) + :name "stadium-burning-bush-race-class3-introduction" + :when-open #f + :flags (game-task-node-flag save-on-life) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node stadium-race-class3-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close '(begin + (when (task-closed? "stadium-board1-resolution") + (task-open! "stadium-burning-bush-race-board-introduction") + ) + (when (task-closed? "stadium-race-class2-resolution") + (task-open! "stadium-burning-bush-race-class2-introduction") + (task-open! "stadium-burning-bush-race-class2-r-introduction") + ) + (when (task-closed? "stadium-race-class1-resolution") + (task-open! "stadium-burning-bush-race-class1-introduction") + (task-open! "stadium-burning-bush-race-class1-r-introduction") + ) + (task-open! "stadium-burning-bush-race-class3-r-introduction") + ) + ) + (new 'static 'game-task-node-info + :level 'stadium + :task (game-task stadium-burning-bush-race-class3) + :name "stadium-burning-bush-race-class3-resolution" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor burning-bush-stadium) + :action (game-task-action play) + :tex (game-task-icon gaticon-06) + :scene #f + ) + ) + :flags (game-task-node-flag close-task task-retry task-manager no-slow-down) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node stadium-burning-bush-race-class3-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info (new 'static 'task-manager-info + :level 'ctywide + :intro-scene #f + :resolution-scene #f + :resolution-scene-continue #f + :retry-continue "stadiumb-race-retry" + :fail-continue "stadiumb-race-fail" + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node stadium-burning-bush-race-class3-resolution) + :index 4 + :on-complete #f + :on-fail #f + ) + :borrow '((stadium 0 lracelit special) (ctywide 0 lracebf special)) + :open? (lambda ((arg0 game-task-node-info)) (let ((v1-1 (level-get-target-inside *level*))) + (the-as symbol (and v1-1 (= (-> v1-1 info taskname) (-> arg0 level)))) + ) + ) + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'stadium + :task (game-task stadium-burning-bush-race-class2) + :name "stadium-burning-bush-race-class2-introduction" + :when-open #f + :flags (game-task-node-flag save-on-life) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node stadium-race-class2-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close '(begin + (when (task-closed? "stadium-board1-resolution") + (task-open! "stadium-burning-bush-race-board-introduction") + ) + (when (task-closed? "stadium-race-class3-resolution") + (task-open! "stadium-burning-bush-race-class3-introduction") + (task-open! "stadium-burning-bush-race-class3-r-introduction") + ) + (when (task-closed? "stadium-race-class1-resolution") + (task-open! "stadium-burning-bush-race-class1-introduction") + (task-open! "stadium-burning-bush-race-class1-r-introduction") + ) + (task-open! "stadium-burning-bush-race-class2-r-introduction") + ) + ) + (new 'static 'game-task-node-info + :level 'stadium + :task (game-task stadium-burning-bush-race-class2) + :name "stadium-burning-bush-race-class2-resolution" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor burning-bush-stadium) + :action (game-task-action play) + :tex (game-task-icon gaticon-06) + :scene #f + ) + ) + :flags (game-task-node-flag close-task task-retry task-manager no-slow-down) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node stadium-burning-bush-race-class2-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info (new 'static 'task-manager-info + :level 'ctywide + :intro-scene #f + :resolution-scene #f + :resolution-scene-continue #f + :retry-continue "stadiumc-race-retry" + :fail-continue "stadiumc-race-fail" + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node stadium-burning-bush-race-class2-resolution) + :index 5 + :on-complete #f + :on-fail #f + ) + :borrow '((stadium 0 lracelit special) (ctywide 0 lracecf special)) + :open? (lambda ((arg0 game-task-node-info)) (let ((v1-1 (level-get-target-inside *level*))) + (the-as symbol (and v1-1 (= (-> v1-1 info taskname) (-> arg0 level)))) + ) + ) + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'stadium + :task (game-task stadium-burning-bush-race-class1) + :name "stadium-burning-bush-race-class1-introduction" + :when-open #f + :flags (game-task-node-flag save-on-life) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node stadium-race-class1-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? #f + :on-close '(begin + (when (task-closed? "stadium-board1-resolution") + (task-open! "stadium-burning-bush-race-board-introduction") + ) + (when (task-closed? "stadium-race-class3-resolution") + (task-open! "stadium-burning-bush-race-class3-introduction") + (task-open! "stadium-burning-bush-race-class3-r-introduction") + ) + (when (task-closed? "stadium-race-class2-resolution") + (task-open! "stadium-burning-bush-race-class2-introduction") + (task-open! "stadium-burning-bush-race-class2-r-introduction") + ) + (task-open! "stadium-burning-bush-race-class1-r-introduction") + ) + ) + (new 'static 'game-task-node-info + :level 'stadium + :task (game-task stadium-burning-bush-race-class1) + :name "stadium-burning-bush-race-class1-resolution" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor burning-bush-stadium) + :action (game-task-action play) + :tex (game-task-icon gaticon-06) + :scene #f + ) + ) + :flags (game-task-node-flag close-task task-retry task-manager no-slow-down) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node stadium-burning-bush-race-class1-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info (new 'static 'task-manager-info + :level 'ctywide + :intro-scene #f + :resolution-scene #f + :resolution-scene-continue #f + :retry-continue "stadiumd-race-retry" + :fail-continue "stadiumd-race-fail" + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node stadium-burning-bush-race-class1-resolution) + :index #x6 + :on-complete #f + :on-fail #f + ) + :borrow '((stadium 0 lracelit special) (ctywide 0 lracedf special)) + :open? (lambda ((arg0 game-task-node-info)) (let ((v1-1 (level-get-target-inside *level*))) + (the-as symbol (and v1-1 (= (-> v1-1 info taskname) (-> arg0 level)))) + ) + ) + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'stadium + :task (game-task stadium-burning-bush-race-class3-r) + :name "stadium-burning-bush-race-class3-r-introduction" + :when-open #f + :flags (game-task-node-flag save-on-life) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node stadium-race-class1-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? (lambda ((arg0 game-task-node-info)) (logtest? (-> *game-info* secrets) (game-secrets reverse-races))) + :on-close '(begin + (task-open! "stadium-burning-bush-race-board-introduction") + (task-open! "stadium-burning-bush-race-class2-introduction") + (task-open! "stadium-burning-bush-race-class2-r-introduction") + (task-open! "stadium-burning-bush-race-class1-introduction") + (task-open! "stadium-burning-bush-race-class1-r-introduction") + (task-open! "stadium-burning-bush-race-class3-introduction") + ) + ) + (new 'static 'game-task-node-info + :level 'stadium + :task (game-task stadium-burning-bush-race-class3-r) + :name "stadium-burning-bush-race-class3-r-resolution" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor burning-bush-stadium) + :action (game-task-action play) + :tex (game-task-icon gaticon-06) + :scene #f + ) + ) + :flags (game-task-node-flag close-task task-retry task-manager no-slow-down) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node stadium-burning-bush-race-class3-r-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info (new 'static 'task-manager-info + :level 'ctywide + :intro-scene #f + :resolution-scene #f + :resolution-scene-continue #f + :retry-continue "stadiumb-race-r-retry" + :fail-continue "stadiumb-race-fail" + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node stadium-burning-bush-race-class3-r-resolution) + :index #x9 + :on-complete #f + :on-fail #f + ) + :borrow '((stadium 0 lracelit special) (ctywide 0 lracebb special)) + :open? (lambda ((arg0 game-task-node-info)) (let ((v1-1 (level-get-target-inside *level*))) + (the-as symbol (and v1-1 (= (-> v1-1 info taskname) (-> arg0 level)))) + ) + ) + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'stadium + :task (game-task stadium-burning-bush-race-class2-r) + :name "stadium-burning-bush-race-class2-r-introduction" + :when-open #f + :flags (game-task-node-flag save-on-life) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node stadium-race-class1-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? (lambda ((arg0 game-task-node-info)) (logtest? (-> *game-info* secrets) (game-secrets reverse-races))) + :on-close '(begin + (task-open! "stadium-burning-bush-race-board-introduction") + (task-open! "stadium-burning-bush-race-class3-introduction") + (task-open! "stadium-burning-bush-race-class3-r-introduction") + (task-open! "stadium-burning-bush-race-class1-introduction") + (task-open! "stadium-burning-bush-race-class1-r-introduction") + (task-open! "stadium-burning-bush-race-class2-introduction") + ) + ) + (new 'static 'game-task-node-info + :level 'stadium + :task (game-task stadium-burning-bush-race-class2-r) + :name "stadium-burning-bush-race-class2-r-resolution" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor burning-bush-stadium) + :action (game-task-action play) + :tex (game-task-icon gaticon-06) + :scene #f + ) + ) + :flags (game-task-node-flag close-task task-retry task-manager no-slow-down) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node stadium-burning-bush-race-class2-r-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info (new 'static 'task-manager-info + :level 'ctywide + :intro-scene #f + :resolution-scene #f + :resolution-scene-continue #f + :retry-continue "stadiumc-race-r-retry" + :fail-continue "stadiumc-race-fail" + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node stadium-burning-bush-race-class2-r-resolution) + :index #xa + :on-complete #f + :on-fail #f + ) + :borrow '((stadium 0 lracelit special) (ctywide 0 lracecb special)) + :open? (lambda ((arg0 game-task-node-info)) (let ((v1-1 (level-get-target-inside *level*))) + (the-as symbol (and v1-1 (= (-> v1-1 info taskname) (-> arg0 level)))) + ) + ) + :on-close #f + ) + (new 'static 'game-task-node-info + :level 'stadium + :task (game-task stadium-burning-bush-race-class1-r) + :name "stadium-burning-bush-race-class1-r-introduction" + :when-open #f + :flags (game-task-node-flag save-on-life) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node stadium-race-class1-resolution) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info #f + :borrow '() + :open? (lambda ((arg0 game-task-node-info)) (logtest? (-> *game-info* secrets) (game-secrets reverse-races))) + :on-close '(begin + (task-open! "stadium-burning-bush-race-board-introduction") + (task-open! "stadium-burning-bush-race-class3-introduction") + (task-open! "stadium-burning-bush-race-class3-r-introduction") + (task-open! "stadium-burning-bush-race-class2-introduction") + (task-open! "stadium-burning-bush-race-class2-r-introduction") + (task-open! "stadium-burning-bush-race-class1-introduction") + ) + ) + (new 'static 'game-task-node-info + :level 'stadium + :task (game-task stadium-burning-bush-race-class1-r) + :name "stadium-burning-bush-race-class1-r-resolution" + :when-open (new 'static 'boxed-array :type game-task-event + (new 'static 'game-task-event + :actor (game-task-actor burning-bush-stadium) + :action (game-task-action play) + :tex (game-task-icon gaticon-06) + :scene #f + ) + ) + :flags (game-task-node-flag close-task task-retry task-manager no-slow-down) + :parent-node (new 'static 'array game-task-node 4 + (game-task-node stadium-burning-bush-race-class1-r-introduction) + (game-task-node none) + (game-task-node none) + (game-task-node none) + ) + :on-open #f + :info (new 'static 'task-manager-info + :level 'ctywide + :intro-scene #f + :resolution-scene #f + :resolution-scene-continue #f + :retry-continue "stadiumd-race-r-retry" + :fail-continue "stadiumd-race-fail" + :init-hook #f + :cleanup-hook #f + :update-hook #f + :code-hook #f + :complete-hook #f + :fail-hook #f + :event-hook #f + :final-node (game-task-node stadium-burning-bush-race-class1-r-resolution) + :index #xb + :on-complete #f + :on-fail #f + ) + :borrow '((stadium 0 lracelit special) (ctywide 0 lracedb special)) + :open? (lambda ((arg0 game-task-node-info)) (let ((v1-1 (level-get-target-inside *level*))) + (the-as symbol (and v1-1 (= (-> v1-1 info taskname) (-> arg0 level)))) + ) + ) + :on-close #f + ) + ) + ) + (set! (-> gp-0 unknown-pad5) (new 'global 'boxed-array game-task-node-info 324)) + (dotimes (v1-3 (-> gp-0 sub-task-list length)) + (if (-> gp-0 sub-task-list v1-3 info) + (set! (-> gp-0 sub-task-list v1-3 info manager) (the-as handle #f)) + ) + ) + (when (zero? (-> gp-0 task-perm-list)) + (let ((v1-8 (new 'global 'entity-perm-array 110))) + (set! (-> gp-0 task-perm-list) v1-8) + (dotimes (a0-16 (-> v1-8 length)) + (set! (-> v1-8 data a0-16 task) (the-as uint a0-16)) + ) + (logior! (-> v1-8 data 1 status) (entity-perm-status complete)) + ) + ) + ) + +;; failed to figure out what this is: +(kmemclose) diff --git a/test/decompiler/reference/jak2/engine/task/task-control-h_REF.gc b/test/decompiler/reference/jak2/engine/game/task/task-control-h_REF.gc similarity index 84% rename from test/decompiler/reference/jak2/engine/task/task-control-h_REF.gc rename to test/decompiler/reference/jak2/engine/game/task/task-control-h_REF.gc index 7a1e5fcec0..49d55aa6d6 100644 --- a/test/decompiler/reference/jak2/engine/task/task-control-h_REF.gc +++ b/test/decompiler/reference/jak2/engine/game/task/task-control-h_REF.gc @@ -937,7 +937,8 @@ (deftype game-task-event (basic) ((actor game-task-actor :offset-assert 4) (action game-task-action :offset-assert 5) - (icon game-task-icon :offset 6) + (tex game-task-icon :offset-assert 6) + (icon uint16 :offset 6) (flags game-task-flags :offset 7) (scene basic :offset 8) (distance meters :offset-assert 12) @@ -966,33 +967,34 @@ ;; definition of type task-manager-info (deftype task-manager-info (structure) - ((mask task-manager-mask :offset-assert 0) - (level basic :offset-assert 4) - (manager handle :offset-assert 8) - (fail-message uint32 :offset-assert 16) - (retry-message uint32 :offset-assert 20) - (intro-scene basic :offset-assert 24) - (resolution-scene basic :offset-assert 28) - (resolution-scene-continue basic :offset-assert 32) - (retry-continue basic :offset-assert 36) - (fail-continue basic :offset-assert 40) - (init-hook basic :offset-assert 44) - (cleanup-hook basic :offset-assert 48) - (update-hook basic :offset-assert 52) - (code-hook basic :offset-assert 56) - (complete-hook basic :offset-assert 60) - (fail-hook basic :offset-assert 64) - (event-hook basic :offset-assert 68) - (final-node uint16 :offset-assert 72) - (time-limit int32 :offset-assert 76) - (sphere-count int8 :offset-assert 80) - (index int8 :offset-assert 81) - (intro-delay uint16 :offset-assert 82) - (sphere-array uint32 :offset-assert 84) - (on-complete basic :offset-assert 88) - (on-fail basic :offset-assert 92) - (begin-sphere sphere :inline :offset-assert 96) - (end-sphere sphere :inline :offset-assert 112) + ((mask task-manager-mask :offset-assert 0) + (level symbol :offset-assert 4) + (manager handle :offset-assert 8) + (fail-message game-text-id :offset-assert 16) + (retry-message game-text-id :offset-assert 20) + (intro-scene string :offset-assert 24) + (resolution-scene string :offset-assert 28) + (resolution-scene-continue string :offset-assert 32) + (retry-continue string :offset-assert 36) + (fail-continue string :offset-assert 40) + (init-hook (function object) :offset-assert 44) + (cleanup-hook (function object) :offset-assert 48) + (update-hook (function object) :offset-assert 52) + (code-hook (function object) :offset-assert 56) + (complete-hook (function object) :offset-assert 60) + (fail-hook (function object) :offset-assert 64) + (event-hook (function process int symbol event-message-block object) :offset-assert 68) + (hooks (function object) 7 :offset 44) + (final-node game-task-node :offset-assert 72) + (time-limit int32 :offset-assert 76) + (sphere-count int8 :offset-assert 80) + (index int8 :offset-assert 81) + (intro-delay uint16 :offset-assert 82) + (sphere-array uint32 :offset-assert 84) + (on-complete pair :offset-assert 88) + (on-fail pair :offset-assert 92) + (begin-sphere sphere :inline :offset-assert 96) + (end-sphere sphere :inline :offset-assert 112) ) :method-count-assert 9 :size-assert #x80 @@ -1059,7 +1061,6 @@ ) ;; definition (debug) for function game-task-node-flag->string -;; WARN: Return type mismatch object vs none. (defun-debug game-task-node-flag->string ((arg0 game-task-node-flag)) (if (= (logand arg0 (game-task-node-flag clear-task-mask)) (game-task-node-flag clear-task-mask)) (format #t "clear-task-mask ") @@ -1121,7 +1122,6 @@ (if (= (logand (game-task-node-flag no-audio) arg0) (game-task-node-flag no-audio)) (format #t "no-audio ") ) - (none) ) ;; definition (debug) for function game-task-node-command->string @@ -1204,35 +1204,35 @@ ;; definition of type game-task-node-info (deftype game-task-node-info (basic) - ((level basic :offset-assert 4) - (task game-task :offset-assert 8) - (name string :offset-assert 12) - (when-open array :offset-assert 16) - (flags game-task-node-flag :offset-assert 20) - (parent-node uint16 4 :offset-assert 24) - (task-mask task-mask :offset-assert 32) - (on-open basic :offset-assert 36) - (info task-manager-info :offset-assert 40) - (borrow basic :offset-assert 44) - (open? symbol :offset-assert 48) - (on-close basic :offset-assert 52) - (close-time time-frame :offset-assert 56) - (death-count uint16 :offset-assert 64) - (gem-count uint16 :offset-assert 66) - (skill-count uint16 :offset-assert 68) - (suck-death-count uint8 :offset-assert 70) - (add game-task-node-command :offset-assert 71) - (description uint32 :offset-assert 72) + ((level symbol :offset-assert 4) + (task game-task :offset-assert 8) + (name string :offset-assert 12) + (when-open (array game-task-event) :offset-assert 16) + (flags game-task-node-flag :offset-assert 20) + (parent-node game-task-node 4 :offset-assert 24) + (task-mask task-mask :offset-assert 32) + (on-open pair :offset-assert 36) + (info task-manager-info :offset-assert 40) + (borrow pair :offset-assert 44) + (open? (function game-task-node-info symbol) :offset-assert 48) + (on-close pair :offset-assert 52) + (close-time time-frame :offset-assert 56) + (death-count uint16 :offset-assert 64) + (gem-count uint16 :offset-assert 66) + (skill-count uint16 :offset-assert 68) + (suck-death-count uint8 :offset-assert 70) + (add game-task-node-command :offset-assert 71) + (description game-text-id :offset-assert 72) ) :method-count-assert 14 :size-assert #x4c :flag-assert #xe0000004c (:methods - (dummy-9 () none 9) - (dummy-10 () none 10) - (dummy-11 () none 11) - (dummy-12 () none 12) - (dummy-13 () none 13) + (close! (_type_ symbol) int 9) + (open! (_type_ symbol) int 10) + (open? (_type_) symbol 11) + (copy-hooks! (_type_ game-task-node-info) game-task-node-info 12) + (eval-add (_type_) int 13) ) ) @@ -1333,14 +1333,14 @@ ;; definition of type game-task-info (deftype game-task-info (basic) - ((name string :offset-assert 4) - (text-name uint32 :offset-assert 8) - (pre-play-node uint16 :offset-assert 12) - (kiosk-play-node uint16 :offset-assert 14) - (pre-play-continue string :offset-assert 16) - (play-node uint16 :offset-assert 20) - (play-continue string :offset-assert 24) - (kiosk-play-continue string :offset-assert 28) + ((name string :offset-assert 4) + (text-name game-text-id :offset-assert 8) + (pre-play-node game-task-node :offset-assert 12) + (kiosk-play-node game-task-node :offset-assert 14) + (pre-play-continue string :offset-assert 16) + (play-node game-task-node :offset-assert 20) + (play-continue string :offset-assert 24) + (kiosk-play-continue string :offset-assert 28) ) :method-count-assert 9 :size-assert #x20 @@ -1370,14 +1370,15 @@ (deftype game-task-control (basic) ((counter uint32 :offset-assert 4) (actor game-task-actor :offset-assert 8) - (current-node uint16 :offset-assert 10) - (current-event uint32 :offset-assert 12) + (current-node game-task-node :offset-assert 10) + (current-event game-task-event :offset-assert 12) ) :method-count-assert 10 :size-assert #x10 :flag-assert #xa00000010 (:methods - (dummy-9 () none 9) + (new (symbol type game-task-actor) _type_ 0) + (game-task-control-method-9 (_type_) game-task-event 9) ) ) @@ -1398,52 +1399,52 @@ ;; definition of type task-manager (deftype task-manager (process) - ((node-info basic :offset-assert 128) - (info task-manager-info :offset-assert 132) - (lev-name basic :offset-assert 136) - (fail-on-death? symbol :offset-assert 140) - (fail-now basic :offset-assert 144) - (retry-now basic :offset-assert 148) - (allow-fail basic :offset-assert 152) - (state-time time-frame :offset-assert 160) - (count int16 :offset-assert 168) - (max-count int16 :offset-assert 170) - (sub-state uint32 :offset-assert 172) - (slave uint64 32 :offset-assert 176) - (arrow uint64 :offset-assert 432) - (link uint32 :offset-assert 440) - (start-time time-frame :offset-assert 448) - (total-time time-frame :offset-assert 456) - (beep-time time-frame :offset-assert 464) - (time-limit time-frame :offset-assert 472) - (begin-pos vector :inline :offset-assert 480) - (end-pos vector :inline :offset-assert 496) - (data-int8 int8 32 :offset-assert 512) - (data-int32 int32 32 :offset-assert 544) - (data-float float 32 :offset-assert 672) - (data-vector vector 32 :inline :offset-assert 800) - (actor-group uint32 4 :offset-assert 1312) - (minimap uint32 8 :offset-assert 1328) - (hud uint64 4 :offset-assert 1360) - (hud-timer time-frame :offset 1360) - (hud-counter int64 :offset 1368) - (sound-id uint32 4 :offset-assert 1392) - (intro-time time-frame :offset-assert 1408) + ((node-info game-task-node-info :offset-assert 128) + (info task-manager-info :offset-assert 132) + (lev-name symbol :offset-assert 136) + (fail-on-death? symbol :offset-assert 140) + (fail-now symbol :offset-assert 144) + (retry-now symbol :offset-assert 148) + (allow-fail symbol :offset-assert 152) + (state-time time-frame :offset-assert 160) + (count int16 :offset-assert 168) + (max-count int16 :offset-assert 170) + (sub-state uint32 :offset-assert 172) + (slave handle 32 :offset-assert 176) + (arrow handle :offset-assert 432) + (link uint32 :offset-assert 440) + (start-time time-frame :offset-assert 448) + (total-time time-frame :offset-assert 456) + (beep-time time-frame :offset-assert 464) + (time-limit time-frame :offset-assert 472) + (begin-pos vector :inline :offset-assert 480) + (end-pos vector :inline :offset-assert 496) + (data-int8 int8 32 :offset-assert 512) + (data-int32 int32 32 :offset-assert 544) + (data-float float 32 :offset-assert 672) + (data-vector vector 32 :inline :offset-assert 800) + (actor-group uint32 4 :offset-assert 1312) + (minimap uint32 8 :offset-assert 1328) + (hud handle 4 :offset-assert 1360) + (hud-timer handle :offset 1360) + (hud-counter handle :offset 1368) + (sound-id sound-id 4 :offset-assert 1392) + (intro-time time-frame :offset-assert 1408) ) :heap-base #x510 :method-count-assert 23 :size-assert #x588 :flag-assert #x1705100588 (:methods - (dummy-14 () none 14) - (dummy-15 () none 15) - (dummy-16 () none 16) - (dummy-17 () none 17) - (dummy-18 () none 18) - (dummy-19 () none 19) - (dummy-20 () none 20) - (dummy-21 () none 21) - (dummy-22 () none 22) + (wait () _type_ :state 14) + (active () _type_ :state 15) + (complete () _type_ :state 16) + (fail () _type_ :state 17) + (retry () _type_ :state 18) + (initialize! (_type_) int 19) + (kill-all-children (_type_) int 20) + (check-time (_type_) int 21) + (task-manager-method-22 (_type_) symbol 22) ) ) diff --git a/test/decompiler/reference/jak2/engine/game/task/task-control_REF.gc b/test/decompiler/reference/jak2/engine/game/task/task-control_REF.gc new file mode 100644 index 0000000000..abbbaa169d --- /dev/null +++ b/test/decompiler/reference/jak2/engine/game/task/task-control_REF.gc @@ -0,0 +1,2421 @@ +;;-*-Lisp-*- +(in-package goal) + +;; definition of type fail-mission-params +(deftype fail-mission-params (structure) + ((message fail-mission-message :offset-assert 0) + (flags fail-mission-flags :offset-assert 1) + (retry-continue basic :offset-assert 4) + (fail-continue basic :offset-assert 8) + (reset-delay uint32 :offset-assert 12) + (task game-task :offset-assert 16) + (fail-message game-text-id :offset-assert 20) + ) + :method-count-assert 9 + :size-assert #x18 + :flag-assert #x900000018 + ) + +;; definition for method 3 of type fail-mission-params +(defmethod inspect fail-mission-params ((obj fail-mission-params)) + (when (not obj) + (set! obj obj) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" obj 'fail-mission-params) + (format #t "~1Tmessage: ~D~%" (-> obj message)) + (format #t "~1Tflags: ~D~%" (-> obj flags)) + (format #t "~1Tretry-continue: ~A~%" (-> obj retry-continue)) + (format #t "~1Tfail-continue: ~A~%" (-> obj fail-continue)) + (format #t "~1Treset-delay: ~D~%" (-> obj reset-delay)) + (format #t "~1Ttask: ~D~%" (-> obj task)) + (format #t "~1Tfail-message: ~D~%" (-> obj fail-message)) + (label cfg-4) + obj + ) + +;; definition of type fail-mission-control +(deftype fail-mission-control (basic) + ((process handle :offset-assert 8) + (handle-init-hack pointer :offset 8) + ) + :method-count-assert 13 + :size-assert #x10 + :flag-assert #xd00000010 + (:methods + (reset? (_type_) symbol 9) + (get-proc (_type_) fail-mission 10) + (start! (_type_ fail-mission-params) symbol 11) + (reset! (_type_) object 12) + ) + ) + +;; definition for method 3 of type fail-mission-control +(defmethod inspect fail-mission-control ((obj fail-mission-control)) + (when (not obj) + (set! obj obj) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" obj (-> obj type)) + (format #t "~1Tprocess: ~D~%" (-> obj process)) + (format #t "~1Thandle-init-hack: ~A~%" (-> obj handle-init-hack)) + (label cfg-4) + obj + ) + +;; definition for symbol *fail-mission-control*, type fail-mission-control +(define *fail-mission-control* (new 'static 'fail-mission-control :handle-init-hack #f)) + +;; definition for function game-task-node->string +(defun game-task-node->string ((arg0 game-task-node)) + (-> *game-info* sub-task-list arg0 name) + ) + +;; definition for function update-task-masks +(defun update-task-masks ((arg0 symbol)) + (with-pp + (if (= arg0 'none) + (return 0) + ) + (cond + ((or (= arg0 'debug) (= arg0 'level)) + ) + ((logtest? (-> *game-info* secrets) (game-secrets hero-mode)) + (set! (-> *game-info* features) (game-feature unk-game-feature-06 gun-yellow gun-red gun-blue gun-dark)) + ) + (else + (set! (-> *game-info* features) (game-feature)) + 0 + ) + ) + (let ((s5-0 (the-as connection-pers (-> *minimap* engine alive-list-override)))) + (while s5-0 + (let ((s4-0 (the-as connection-minimap s5-0))) + (if (and (logtest? (-> s4-0 flags) (minimap-flag task-graph)) + (not (open? (-> *game-info* sub-task-list (-> s4-0 node)))) + ) + (logior! (-> s4-0 flags) (minimap-flag fade-out)) + ) + ) + (set! s5-0 (-> s5-0 next)) + ) + ) + (let ((borrow-eval (lambda ((arg0 pair)) + (let ((a0-1 (car arg0))) + (while (not (null? arg0)) + (let* ((v1-0 (car a0-1)) + (s5-0 (/ (the-as int (car (cdr a0-1))) 8)) + (s4-0 (car (cdr (cdr a0-1)))) + (s3-0 (car (cdr (cdr (cdr a0-1))))) + (s2-0 (-> (the-as symbol v1-0) value)) + (v1-1 (if (type? s2-0 level-load-info) + (the-as level-load-info s2-0) + ) + ) + ) + (when v1-1 + (set! (-> v1-1 borrow-level s5-0) (the-as symbol s4-0)) + (set! (-> v1-1 borrow-display? s5-0) (the-as symbol s3-0)) + ) + ) + (set! arg0 (cdr arg0)) + (set! a0-1 (car arg0)) + ) + ) + #f + ) + ) + ) + (borrow-eval (-> *game-info* sub-task-list 1 borrow)) + (let ((game-nodes (-> *game-info* sub-task-list))) + (dotimes (i (-> game-nodes length)) + (when (nonzero? i) + (let ((node (-> game-nodes i))) + (case arg0 + (('debug 'level) + ) + (else + (if (logtest? (-> node flags) (game-task-node-flag closed)) + (eval-add node) + ) + ) + ) + (let ((node-open? (open? node))) + (if (and (logtest? (-> node flags) (game-task-node-flag task-manager)) + (and (-> node info) (or node-open? (and (logtest? (-> node flags) (game-task-node-flag closed)) + (not (task-node-closed? (-> node info final-node))) + ) + ) + ) + ) + (eval! (new 'stack 'script-context node pp (the-as vector #f)) '(task-manager)) + ) + (when node-open? + (if (-> node on-open) + (eval! (new 'stack 'script-context node pp (the-as vector #f)) (-> node on-open)) + ) + (when (-> node when-open) + (countdown (node-ev-i (-> node when-open length)) + (let ((node-open-ev (-> node when-open node-ev-i))) + (case (-> node-open-ev actor) + (((game-task-actor minimap)) + (let ((v1-67 (minimap-method-12 + *minimap* + *dproc* + (-> node-open-ev icon) + (the-as int (-> node-open-ev icon)) + (the-as vector #f) + i + ) + ) + ) + (if v1-67 + (logior! (-> v1-67 flags) (minimap-flag task-graph)) + ) + ) + ) + ) + ) + ) + ) + (borrow-eval (-> node borrow)) + ) + ) + ) + ) + ) + ) + (logior! (-> *game-info* features) (-> *game-info* debug-features)) + (borrow-eval (-> *setting-control* user-current borrow)) + ) + (add-borrow-levels *load-state*) + (dotimes (lev-i (-> *level* length)) + (let ((lev (-> *level* level lev-i))) + (if (= (-> lev status) 'active) + (level-method-22 lev arg0) + ) + ) + ) + 0 + ) + ) + +;; definition for method 22 of type level +(defmethod level-method-22 level ((obj level) (arg0 symbol)) + (if (= arg0 'none) + (return 0) + ) + (set! (-> obj task-mask) + (logand (-> obj info base-task-mask) (task-mask task0 task1 task2 task3 task4 task5 task6 task7 done)) + ) + (let ((name (-> obj info taskname)) + (game-subtasks (-> *game-info* sub-task-list)) + ) + (dotimes (i (-> game-subtasks length)) + (when (nonzero? i) + (let ((subtask (-> game-subtasks i))) + (when (and (logtest? (-> subtask flags) (game-task-node-flag closed)) (= (-> subtask level) name)) + (cond + ((logtest? (-> subtask flags) (game-task-node-flag abs-task-mask)) + (set! (-> obj task-mask) (-> subtask task-mask)) + ) + ((logtest? (-> subtask flags) (game-task-node-flag set-task-mask)) + (logior! (-> obj task-mask) (-> subtask task-mask)) + ) + ((logtest? (-> subtask flags) (game-task-node-flag clear-task-mask)) + (logclear! (-> obj task-mask) (-> subtask task-mask)) + ) + ) + ) + ) + ) + ) + ) + (case (-> obj name) + (('strip) + (prototypes-game-visible-set! + '("strip-ev-base-ring.mb" + "strip-ev-base-top.mb" + "strip-ev-base.mb" + "strip-ev-panel.mb" + "strip-ev-pipe-01.mb" + "strip-ev-pipe-02.mb" + "strip-ev-pipe-03.mb" + "strip-ev-tank.mb" + "strip-ev-band.mb" + "strip-ev-little-block.mb" + ) + (not (task-node-closed? (game-task-node strip-grenade-explode))) + ) + (prototypes-game-visible-set! + '("strip-pipe-01.mb" + "strip-pipe-02-nut-drop.mb" + "strip-shrub-nut-drop.mb" + "strip-shrub-yellow-stripe.mb" + "strip-pipe-col-disappear.mb" + ) + (or (and (task-complete? *game-info* (game-task strip-grenade)) + (task-node-closed? (game-task-node strip-drop-introduction)) + ) + (demo?) + ) + ) + (prototypes-game-visible-set! + '("strip-blown-up-vent-base.mb" "strip-blown-up-vent-pieces.mb") + (task-complete? *game-info* (game-task strip-grenade)) + ) + (prototypes-game-visible-set! + '("strip-blocker-crate-01.mb" + "strip-blocker-crate-02.mb" + "strip-blocker-crate-03.mb" + "strip-blocker-crate-04.mb" + "strip-blocker-crate-05.mb" + "strip-blocker-crate-06.mb" + ) + (not (task-complete? *game-info* (game-task strip-rescue))) + ) + (prototypes-game-visible-set! + '("lowres-casboss.mb") + (not (task-node-closed? (game-task-node castle-boss-resolution))) + ) + ) + (('ruins) + (prototypes-game-visible-set! + '("ruins-board-task2.mb" + "ruins-lgcollision-task2.mb" + "ruins-plank-task2.mb" + "ruins-smlcollision-task2.mb" + "ruins-support-task2.mb" + ) + (and (task-complete? *game-info* (game-task ruins-tower)) + (task-node-closed? (game-task-node ruins-enemy-introduction)) + ) + ) + (prototypes-game-visible-set! '("ruin-tower-junk.mb") (task-complete? *game-info* (game-task ruins-tower))) + (prototypes-game-visible-set! + '("ruin-balcony-01-tower.mb" + "ruin-balcony-02-tower.mb" + "ruin-bar-01-tower.mb" + "ruin-bar-02-tower.mb" + "ruin-bar-03-tower.mb" + "ruin-bridge-01-tower.mb" + "ruin-lamp-post-01-tower.mb" + "ruin-lamp-post-03-tower.mb" + "ruin-lamp-post-04-tower.mb" + "ruin-lampbase-02-tower.mb" + "ruin-lamplite-01-tower.mb" + "ruin-pillar-broken-01-tower.mb" + "ruin-pillar-broken-03-tower.mb" + "ruin-top-tower.mb" + "ruin-tower-window-01.mb" + "ruin-window-01-tower.mb" + "ruins-city-corner-roof-tower.mb" + "ruins-city-roof-01-tower.mb" + "ruins-cracked-roof-tower.mb" + "ruins-pipe-2m-end-tower.mb" + "ruins-pipe-elbow-tower.mb" + "ruins-pipe-mid-tower.mb" + "ruins-pipe-ring-tower.mb" + "ruins-support-01-tower.mb" + "ruins-support-02-tower.mb" + "swingpole-geo.mb" + "ruin-top-brick-01.mb" + "ruin-brick-side-01.mb" + ) + (not (task-complete? *game-info* (game-task ruins-tower))) + ) + ) + (('atoll) + (prototypes-game-visible-set! + '("atoll-tank.mb") + (and (not (task-complete? *game-info* (game-task atoll-sig))) + (not (task-node-closed? (game-task-node atoll-sig-tank))) + ) + ) + (prototypes-game-visible-set! + '("lowres-casboss.mb") + (not (task-node-closed? (game-task-node castle-boss-resolution))) + ) + ) + (('ctymarkb) + (prototypes-game-visible-set! + '("city-mark-roof-before-broken.mb") + (not (task-node-closed? (game-task-node city-intercept-tanker-roof-explode))) + ) + (prototypes-game-visible-set! + '("city-mark-roof-broken.mb") + (task-node-closed? (game-task-node city-intercept-tanker-introduction)) + ) + ) + (('ctypal) + (prototypes-game-visible-set! + '("ctyp-statue-wall-breakable.mb") + (not (task-node-closed? (game-task-node canyon-insert-items-shard))) + ) + (prototypes-game-visible-set! + '("ctyp-statue-rubble-a.mb" "ctyp-statue-rubble-b.mb" "ctyp-statue-rubble-big-a.mb") + (task-node-closed? (game-task-node canyon-insert-items-shard)) + ) + ) + (('sewer 'sewerb 'sewesc 'sewescb) + (prototypes-game-visible-set! + '("sewer-c-connect-door.mb") + (not (and (task-complete? *game-info* (game-task sewer-enemy)) + (task-node-closed? (game-task-node sewer-board-introduction)) + (not (task-complete? *game-info* (game-task sewer-board))) + ) + ) + ) + (prototypes-game-visible-set! + '("sewer-hover-door.mb") + (and (task-complete? *game-info* (game-task sewer-enemy)) + (task-node-closed? (game-task-node sewer-board-introduction)) + (not (task-complete? *game-info* (game-task sewer-board))) + ) + ) + (cond + ((= arg0 'debug) + ) + ((task-complete? *game-info* (game-task sewer-board)) + (set! *ocean-height-hack* (ocean-height-hack sewer-lo)) + (set-height! *ocean-map-sewer* -368050.2) + ) + ((not (task-node-closed? (game-task-node sewer-board-drain))) + (set! *ocean-height-hack* (ocean-height-hack zero)) + (set-height! *ocean-map-sewer* -216498.17) + ) + ) + ) + (('ctyasha) + (prototypes-game-visible-set! + '("cty-tanker-barrel.mb") + (task-node-closed? (game-task-node city-intercept-tanker-introduction)) + ) + ) + (('consite) + (prototypes-game-visible-set! + '("consite-barrel-broken.mb" + "consite-cor-sheet-8x16-hi-broken.mb" + "consite-scaffold-assmb-24m-mid-broken.mb" + "consite-scaffold-beam-4m-broken.mb" + "consite-scaffold-beam-8m-broken.mb" + "consite-scaffold-i-hook-broken.mb" + "consite-scaffold-i-span-broken.mb" + "consite-scaffold-t-connector-broken.mb" + "consite-scaffold-x-connector-corner-broken.mb" + "consite-scaffold-x-connector-corner-out-broken.mb" + "consite-plank-double-broken.mb" + "consite-plank-single-broken.mb" + "consite-rope-14m-broken.mb" + "consite-rope-8m-broken.mb" + "consite-rope-ring-broken.mb" + "consite-scaffold-x-connector-broken.mb" + ) + (task-node-closed? (game-task-node consite-find-baron-resolution)) + ) + ) + (('caspad) + (prototypes-game-visible-set! + '("cpad-bigtank-side.mb" + "cpad-bigtank-top.mb" + "cpad-bigtank-top-details.mb" + "cpad-crane.mb" + "cpad-crane-base.mb" + "cpad-elev-scaffolding.mb" + "cpad-elev-shaft-ex.mb" + "cpad-elev-shaft-ex-detail.mb" + "cpad-elev-shaft-roof.mb" + "cpad-liltank-side.mb" + "cpad-liltank-top.mb" + "cpad-pipe-base.mb" + "cpad-pipe-flat.mb" + "cpad-pipe-lil-elbo.mb" + "cpad-pipe-lil-strt.mb" + "cpad-pipe-med-elbo.mb" + "cpad-pipe-med-strt.mb" + "cpad-pipe-tank-45.mb" + "cpad-pipe-tank-strt.mb" + "cpad-scaffold-structure.mb" + "cpad-scaff-x-beam.mb" + "cpad-stonework.mb" + "cpad-top.mb" + "cpad-tower-bottom.mb" + "cpad-tower-centrifuse.mb" + "cpad-tower-generator.mb" + "cpad-tower-generator-panels.mb" + "cpad-tower-smokestack.mb" + "cpad-tower-supports-lower.mb" + "cpad-tower-turbine.mb" + "cpad-tower-walkway-lower.mb" + "cpad-x-beam.mb" + ) + (not (task-node-closed? (game-task-node castle-boss-resolution))) + ) + ) + (('stadiumb) + (prototypes-game-visible-set! + '("stdmb-tunnel-ramp-reverse.mb") + (task-node-closed? (game-task-node stadium-burning-bush-race-class3-r-introduction)) + ) + (prototypes-game-visible-set! + '("stdmb-tunnel-ramp.mb") + (not (task-node-closed? (game-task-node stadium-burning-bush-race-class3-r-introduction))) + ) + ) + (('hiphog) + (prototypes-game-visible-set! + '("hip-paintings-bar-a.mb" "hip-paintings-wall-reflection-a.mb" "hip-paintings-wall-a.mb") + (not (task-node-closed? (game-task-node nest-boss-resolution))) + ) + (prototypes-game-visible-set! + '("hip-paintings-bar-b.mb" "hip-paintings-wall-reflection-b.mb" "hip-paintings-wall-b.mb") + (task-node-closed? (game-task-node nest-boss-resolution)) + ) + ) + ) + (logior! (-> obj task-mask) (-> *setting-control* user-current task-mask)) + 0 + ) + +;; definition for function play-clean +(defun play-clean ((arg0 symbol)) + (set! *display-entity-errors* #f) + (set! *display-profile* #f) + (set! *display-actor-marks* #f) + (set! (-> *level* play?) #t) + (time-of-day-setup #t) + (set! *time-of-day-fast* #f) + (send-event (ppointer->process *time-of-day*) 'change 'ratio #x3f800000) + (when arg0 + (let ((s5-0 (-> *game-info* mode))) + (set! (-> *game-info* mode) arg0) + (initialize! *game-info* 'game (the-as game-save #f) (the-as string #f)) + (set! (-> *game-info* mode) s5-0) + ) + ) + 0 + ) + +;; definition for function play-task +(defun play-task ((arg0 game-task) (arg1 symbol) (arg2 symbol)) + (play-clean arg1) + (let ((gp-1 (-> *game-info* play-list arg0))) + (cond + ((and (= arg2 'pre-play) (-> gp-1 pre-play-continue)) + (task-node-open! (-> gp-1 pre-play-node)) + (-> gp-1 pre-play-continue) + ) + ((and (= arg2 'kiosk) (-> gp-1 kiosk-play-continue)) + (task-node-open! (-> gp-1 kiosk-play-node)) + (-> gp-1 kiosk-play-continue) + ) + (else + (if (-> gp-1 play-continue) + (task-node-open! (-> gp-1 play-node)) + ) + (-> gp-1 play-continue) + ) + ) + ) + ) + +;; definition for function restart-mission +(defun restart-mission () + (let ((restart? #t)) + (let ((mgr-status #f)) + (let ((v1-1 (the-as connection (-> *task-manager-engine* alive-list next0)))) + *task-manager-engine* + (let ((s4-0 (the-as connection (-> v1-1 next0)))) + (while (!= v1-1 (-> *task-manager-engine* alive-list-end)) + (let ((task-mgr (the-as process (-> v1-1 param1)))) + (if (not mgr-status) + (set! mgr-status #t) + ) + (if (and (-> task-mgr next-state) (let ((v1-7 (-> task-mgr next-state name))) + (or (= v1-7 'complete) (= v1-7 'fail) (= v1-7 'retry)) + ) + ) + (set! mgr-status 'busy) + ) + (if (send-event task-mgr 'retry) + (set! restart? #f) + ) + ) + (set! v1-1 s4-0) + *task-manager-engine* + (set! s4-0 (the-as connection (-> s4-0 next0))) + ) + ) + ) + (if (or (and *target* (logtest? (-> *target* focus-status) (focus-status dead)) mgr-status) (= mgr-status 'busy)) + (return (the-as int #f)) + ) + ) + (when restart? + (let ((gp-1 0)) + (let ((cur-lev (level-get-target-inside *level*))) + (when (and cur-lev (zero? (logand (-> cur-lev info level-flags) 1))) + (let ((game-nodes (-> *game-info* sub-task-list))) + (dotimes (i (-> game-nodes length)) + (when (nonzero? i) + (let ((node (-> game-nodes i))) + (if (and (= (-> node level) (-> cur-lev info taskname)) + (!= (-> node level) 'city) + (zero? (logand (game-task-node-flag no-restart) (-> node flags))) + (open? node) + ) + (set! gp-1 (the-as int (-> node task))) + ) + ) + ) + ) + ) + ) + ) + (when (nonzero? gp-1) + (let ((a1-4 (-> *game-info* play-list gp-1 play-continue))) + (if a1-4 + (set-continue! *game-info* a1-4 #t) + ) + ) + ) + ) + (let ((a1-5 (new 'stack-no-clear 'fail-mission-params))) + (set! (-> a1-5 flags) (fail-mission-flags famflags-0 famflags-2)) + (set! (-> a1-5 message) (fail-mission-message fammsg-0)) + (set! (-> a1-5 retry-continue) #f) + (set! (-> a1-5 fail-continue) #f) + (set! (-> a1-5 reset-delay) (the-as uint 1500)) + (set! (-> a1-5 task) (game-task none)) + (set! (-> a1-5 fail-message) (game-text-id null)) + (logior! (-> a1-5 flags) (fail-mission-flags famflags-3 famflags-4)) + (start! *fail-mission-control* a1-5) + ) + ) + ) + 0 + ) + +;; definition for function task-node-by-name +(defun task-node-by-name ((arg0 string)) + (let ((game-nodes (-> *game-info* sub-task-list))) + (dotimes (i (-> game-nodes length)) + (when (nonzero? i) + (let ((node (-> game-nodes i))) + (if (string= arg0 (-> node name)) + (return node) + ) + ) + ) + ) + ) + (the-as game-task-node-info #f) + ) + +;; definition for function task-resolution-close! +(defun task-resolution-close! ((arg0 game-task)) + (let ((game-nodes (-> *game-info* sub-task-list))) + (dotimes (i (-> game-nodes length)) + (when (nonzero? i) + (let ((node (-> game-nodes i))) + (when (and (= (-> node task) arg0) (logtest? (-> node flags) (game-task-node-flag close-task))) + (close! node 'event) + (return #t) + ) + ) + ) + ) + ) + #f + ) + +;; definition for function task-close! +(defun task-close! ((arg0 string)) + (let ((game-nodes (-> *game-info* sub-task-list))) + (dotimes (i (-> game-nodes length)) + (when (nonzero? i) + (let ((node (-> game-nodes i))) + (when (string= arg0 (-> node name)) + (let ((gp-2 (zero? (logand (-> node flags) (game-task-node-flag closed))))) + (close! node 'event) + (return gp-2) + ) + ) + ) + ) + ) + ) + (format 0 "ERROR: attempting to close unknown task node ~A.~%" arg0) + #f + ) + +;; definition for function task-closed? +(defun task-closed? ((arg0 string)) + (let ((game-nodes (-> *game-info* sub-task-list))) + (dotimes (i (-> game-nodes length)) + (when (nonzero? i) + (let ((node (-> game-nodes i))) + (if (string= arg0 (-> node name)) + (return (logtest? (-> node flags) (game-task-node-flag closed))) + ) + ) + ) + ) + ) + (format 0 "ERROR: attempting to query closed? of unknown task node ~A.~%" arg0) + #f + ) + +;; definition for function open-task-nodes +(defun open-task-nodes ((arg0 (array game-task-node-info))) + (local-vars (a3-4 symbol)) + (set! (-> arg0 length) 0) + (let ((game-nodes (-> *game-info* sub-task-list))) + (dotimes (i (-> game-nodes length)) + (when (nonzero? i) + (let ((node (-> game-nodes i))) + (when (and (zero? (logand (-> node flags) (game-task-node-flag closed))) + (begin + (dotimes (a3-3 4) + (when (and (nonzero? (-> node parent-node a3-3)) + (zero? (logand (-> game-nodes (-> node parent-node a3-3) flags) (game-task-node-flag closed))) + ) + (set! a3-4 #f) + (goto cfg-14) + ) + ) + (set! a3-4 #t) + (label cfg-14) + (and a3-4 (< (-> arg0 length) (-> arg0 allocated-length))) + ) + ) + (set! (-> arg0 (-> arg0 length)) node) + (+! (-> arg0 length) 1) + ) + ) + ) + ) + ) + arg0 + ) + +;; definition for method 2 of type game-task-node-info +(defmethod print game-task-node-info ((obj game-task-node-info)) + (format + #t + "#" + (-> obj name) + (cond + ((logtest? (-> obj flags) (game-task-node-flag closed)) + "closed" + ) + ((open? obj) + "open" + ) + (else + "inactive" + ) + ) + obj + ) + obj + ) + +;; definition for method 9 of type game-task-node-info +(defmethod close! game-task-node-info ((obj game-task-node-info) (arg0 symbol)) + (when (zero? (logand (-> obj flags) (game-task-node-flag closed))) + (let ((task-node-close-func + (lambda ((arg0 game-task-node-info)) + (with-pp + (logior! (-> arg0 flags) (game-task-node-flag closed)) + (+! (-> *game-info* task-counter) 1) + (when (zero? (-> arg0 close-time)) + (set! (-> arg0 gem-count) (the-as uint (the int (-> *game-info* gem)))) + (set! (-> arg0 skill-count) (the-as uint (the int (-> *game-info* skill)))) + (set! (-> arg0 close-time) (-> *display* game-clock frame-counter)) + ) + (if (-> arg0 on-close) + (eval! (new 'stack 'script-context arg0 pp (the-as vector #f)) (-> arg0 on-close)) + ) + (if (logtest? (-> arg0 flags) (game-task-node-flag close-task)) + ((lambda ((arg0 game-task-node-info)) + (if *target* + (send-event *target* 'get-pickup 10 (the float (-> arg0 task))) + (give *game-info* 'fuel-cell (the float (-> arg0 task)) (the-as handle #f)) + ) + ) + arg0 + ) + ) + ) + ) + ) + ) + (let ((p-node-count 0) + (s3-0 (new 'stack-no-clear 'inline-array 'qword 8)) + ) + (let ((s1-0 obj)) + (loop + (cond + ((= (-> s1-0 parent-node 0) (game-task-node none)) + (goto cfg-21) + ) + ((= (-> s1-0 parent-node 1) (game-task-node none)) + (let ((v1-10 (-> *game-info* sub-task-list (-> s1-0 parent-node 0)))) + (cond + ((logtest? (-> v1-10 flags) (game-task-node-flag closed)) + (goto cfg-21) + ) + (else + (set! (-> (&-> s3-0 0 hword p-node-count) 0) (the-as uint (-> s1-0 parent-node 0))) + (+! p-node-count 1) + (when (< 64 p-node-count) + (break!) + 0 + ) + ) + ) + (set! s1-0 v1-10) + ) + ) + (else + (dotimes (p-i 4) + (let ((v1-15 (-> s1-0 parent-node p-i))) + (if (nonzero? v1-15) + (close! (-> *game-info* sub-task-list v1-15) 'none) + ) + ) + ) + (goto cfg-21) + ) + ) + ) + ) + (label cfg-21) + (while (nonzero? p-node-count) + (+! p-node-count -1) + (task-node-close-func (-> *game-info* sub-task-list (-> (&-> s3-0 0 hword p-node-count) 0))) + ) + ) + (task-node-close-func obj) + ) + (let ((game-nodes (-> *game-info* sub-task-list))) + (dotimes (i (-> game-nodes length)) + (when (nonzero? i) + (let ((node (-> game-nodes i))) + (if (and (logtest? (-> node flags) (game-task-node-flag auto-close)) (open? node)) + (close! node 'none) + ) + ) + ) + ) + ) + (update-task-masks arg0) + ) + 0 + ) + +;; definition for function task-node-closed? +(defun task-node-closed? ((arg0 game-task-node)) + (let ((node (-> *game-info* sub-task-list arg0))) + (logtest? (-> node flags) (game-task-node-flag closed)) + ) + ) + +;; definition for function task-node-close! +(defun task-node-close! ((arg0 game-task-node)) + (close! (-> *game-info* sub-task-list arg0) 'event) + 0 + ) + +;; definition for method 10 of type game-task-node-info +(defmethod open! game-task-node-info ((obj game-task-node-info) (arg0 symbol)) + (local-vars (v1-19 symbol)) + (when (logtest? (-> obj flags) (game-task-node-flag closed)) + (logclear! (-> obj flags) (game-task-node-flag closed)) + (+! (-> *game-info* task-counter) 1) + (if (logtest? (-> obj flags) (game-task-node-flag close-task)) + (logclear! (-> *game-info* task-perm-list data (-> obj task) status) (entity-perm-status complete)) + ) + (let ((game-nodes (-> *game-info* sub-task-list))) + (dotimes (i (-> game-nodes length)) + (when (nonzero? i) + (let ((node (-> game-nodes i))) + (set! v1-19 + (and (logtest? (-> node flags) (game-task-node-flag closed)) + (begin + (dotimes (ii 4) + (when (and (nonzero? (-> node parent-node ii)) + (zero? (logand (-> game-nodes (-> node parent-node ii) flags) (game-task-node-flag closed))) + ) + (set! v1-19 #t) + (goto cfg-17) + ) + ) + #f + ) + ) + ) + (label cfg-17) + (if v1-19 + (open! node 'none) + ) + ) + ) + ) + ) + (update-task-masks arg0) + ) + 0 + ) + +;; definition for function task-node-open? +(defun task-node-open? ((arg0 game-task-node)) + (let ((game-nodes (-> *game-info* sub-task-list))) + (open? (-> game-nodes arg0)) + ) + ) + +;; definition for method 11 of type game-task-node-info +(defmethod open? game-task-node-info ((obj game-task-node-info)) + (local-vars (a1-1 symbol)) + (let ((game-nodes (-> *game-info* sub-task-list)) + (node-info obj) + ) + (and (zero? (logand (-> node-info flags) (game-task-node-flag closed))) + (begin + (dotimes (pi 4) + (let ((t0-0 (-> node-info parent-node pi))) + (when (and (nonzero? t0-0) (zero? (logand (-> game-nodes t0-0 flags) (game-task-node-flag closed)))) + (set! a1-1 #f) + (goto cfg-12) + ) + ) + ) + (set! a1-1 #t) + (label cfg-12) + (and a1-1 + (or (zero? (-> *setting-control* user-current exclusive-task)) + (= (-> *setting-control* user-current exclusive-task) (-> obj task)) + (logtest? (-> node-info flags) (game-task-node-flag auto-close)) + ) + (or (not (-> node-info open?)) ((-> node-info open?) node-info)) + ) + ) + ) + ) + ) + +;; definition for function task-node-open! +(defun task-node-open! ((arg0 game-task-node)) + (let ((game-node (-> *game-info* sub-task-list arg0))) + (dotimes (p-i 4) + (if (nonzero? (-> game-node parent-node p-i)) + (close! (-> *game-info* sub-task-list (-> game-node parent-node p-i)) 'event) + ) + ) + (open! game-node 'event) + ) + 0 + ) + +;; definition for method 13 of type game-task-node-info +(defmethod eval-add game-task-node-info ((obj game-task-node-info)) + (case (-> obj add) + (((game-task-node-command none)) + ) + (((game-task-node-command add-sidekick)) + (logior! (-> *game-info* features) (game-feature sidekick)) + ) + (((game-task-node-command sub-sidekick)) + (logclear! (-> *game-info* features) (game-feature sidekick)) + ) + (((game-task-node-command add-board)) + (logior! (-> *game-info* features) (game-feature board)) + ) + (((game-task-node-command add-board-training)) + (set! (-> *game-info* features) (logior (game-feature board-training) (-> *game-info* features))) + ) + (((game-task-node-command sub-board)) + (logclear! (-> *game-info* features) (game-feature board)) + ) + (((game-task-node-command add-gun-red)) + (logior! (-> *game-info* features) (game-feature unk-game-feature-06 gun-red)) + ) + (((game-task-node-command add-gun-yellow)) + (logior! (-> *game-info* features) (game-feature unk-game-feature-06 gun-yellow)) + ) + (((game-task-node-command add-gun-blue)) + (logior! (-> *game-info* features) (game-feature unk-game-feature-06 gun-blue)) + ) + (((game-task-node-command add-gun-dark)) + (logior! (-> *game-info* features) (game-feature unk-game-feature-06 gun-dark)) + ) + (((game-task-node-command add-gun-up-1)) + (logior! (-> *game-info* features) (game-feature unk-game-feature-06 gun-upgrade-speed)) + ) + (((game-task-node-command add-gun-up-2)) + (logior! (-> *game-info* features) (game-feature unk-game-feature-06 gun-upgrade-ammo)) + ) + (((game-task-node-command add-gun-up-3)) + (set! (-> *game-info* features) + (logior (game-feature unk-game-feature-06 gun-upgrade-damage) (-> *game-info* features)) + ) + ) + (((game-task-node-command add-pass-red)) + (set! (-> *game-info* features) (logior (game-feature pass-red) (-> *game-info* features))) + ) + (((game-task-node-command add-pass-green)) + (set! (-> *game-info* features) (logior (game-feature pass-green) (-> *game-info* features))) + ) + (((game-task-node-command add-pass-yellow)) + (set! (-> *game-info* features) (logior (game-feature pass-yellow) (-> *game-info* features))) + ) + (((game-task-node-command add-pass-blue)) + (set! (-> *game-info* features) (logior (game-feature pass-blue) (-> *game-info* features))) + ) + (((game-task-node-command add-darkjak)) + (logior! (-> *game-info* features) (game-feature darkjak)) + ) + (((game-task-node-command add-darkjak-0)) + (set! (-> *game-info* features) (logior (game-feature darkjak-bomb0) (-> *game-info* features))) + ) + (((game-task-node-command add-darkjak-1)) + (set! (-> *game-info* features) (logior (game-feature darkjak-bomb1) (-> *game-info* features))) + ) + (((game-task-node-command add-darkjak-2)) + (set! (-> *game-info* features) (logior (game-feature darkjak-invinc) (-> *game-info* features))) + ) + (((game-task-node-command add-darkjak-3)) + (set! (-> *game-info* features) (logior (game-feature darkjak-giant) (-> *game-info* features))) + ) + ) + 0 + ) + +;; definition for function task-node-reset +(defun task-node-reset ((arg0 symbol)) + (let ((game-nodes (-> *game-info* sub-task-list))) + (dotimes (i (-> game-nodes length)) + (when (nonzero? i) + (let ((node (-> game-nodes i))) + (when (logtest? (-> node flags) (game-task-node-flag closed)) + (case arg0 + (('game) + (if (nonzero? i) + (logclear! (-> node flags) (game-task-node-flag closed)) + ) + ) + (('life) + (if (and (not (task-complete? *game-info* (-> node task))) + (zero? (logand (-> node flags) (game-task-node-flag save-on-life))) + ) + (logclear! (-> node flags) (game-task-node-flag closed)) + ) + ) + (('try) + (if (and (not (task-complete? *game-info* (-> node task))) + (or (zero? (logand (-> node flags) (game-task-node-flag save-on-life save-on-try))) + (logtest? (-> node flags) (game-task-node-flag reset-on-try)) + ) + ) + (logclear! (-> node flags) (game-task-node-flag closed)) + ) + ) + ) + (when (logtest? (-> node flags) (game-task-node-flag closed)) + (dotimes (v1-31 4) + (if (nonzero? (-> node parent-node v1-31)) + (logior! (-> game-nodes (-> node parent-node v1-31) flags) (game-task-node-flag closed)) + ) + ) + ) + ) + ) + ) + ) + ) + (+! (-> *game-info* task-counter) 1) + 0 + ) + +;; definition (debug) for function task-node-dump +(defun-debug task-node-dump ((arg0 symbol)) + (let ((gp-0 (-> *game-info* sub-task-list))) + (dotimes (s5-0 (-> gp-0 length)) + (when (nonzero? s5-0) + (let* ((s0-0 (-> gp-0 s5-0)) + (s4-0 format) + (s3-0 #t) + (s2-0 " ~-40S ~-8S ~S~%") + (s1-0 (game-task-node->string (the-as game-task-node s5-0))) + (a3-0 (if (task-node-closed? (the-as game-task-node s5-0)) + "closed" + "open" + ) + ) + (t0-0 (and (-> s0-0 info) (handle->process (-> s0-0 info manager)))) + ) + (set! t0-0 (cond + (t0-0 + (empty) + t0-0 + ) + (else + "" + ) + ) + ) + (s4-0 s3-0 s2-0 s1-0 a3-0 t0-0) + ) + ) + ) + ) + #f + ) + +;; definition for method 2 of type game-task-event +(defmethod print game-task-event ((obj game-task-event)) + (let* ((t9-0 format) + (a0-1 #t) + (a1-0 "#") + (v1-0 (-> obj actor)) + (a2-1 (cond + ((= v1-0 (game-task-actor burning-bush-genc)) + "burning-bush-genc" + ) + ((= v1-0 (game-task-actor minimap)) + "minimap" + ) + ((= v1-0 (game-task-actor youngsamos-tomb)) + "youngsamos-tomb" + ) + ((= v1-0 (game-task-actor youngsamos-onintent)) + "youngsamos-onintent" + ) + ((= v1-0 (game-task-actor baron-consite)) + "baron-consite" + ) + ((= v1-0 (game-task-actor burning-bush-markb)) + "burning-bush-markb" + ) + ((= v1-0 (game-task-actor keira-garage)) + "keira-garage" + ) + ((= v1-0 (game-task-actor burning-bush-genc-2)) + "burning-bush-genc-2" + ) + ((= v1-0 (game-task-actor samos-garage)) + "samos-garage" + ) + ((= v1-0 (game-task-actor kid-hideout)) + "kid-hideout" + ) + ((= v1-0 (game-task-actor krew-hiphog)) + "krew-hiphog" + ) + ((= v1-0 (game-task-actor burning-bush-port-2)) + "burning-bush-port-2" + ) + ((= v1-0 (game-task-actor none)) + "none" + ) + ((= v1-0 (game-task-actor burning-bush-port-3)) + "burning-bush-port-3" + ) + ((= v1-0 (game-task-actor brutter-kiosk)) + "brutter-kiosk" + ) + ((= v1-0 (game-task-actor tess-alley)) + "tess-alley" + ) + ((= v1-0 (game-task-actor whack-a-metal-hiphog)) + "whack-a-metal-hiphog" + ) + ((= v1-0 (game-task-actor burning-bush-gena)) + "burning-bush-gena" + ) + ((= v1-0 (game-task-actor vin-vinroom)) + "vin-vinroom" + ) + ((= v1-0 (game-task-actor kor-hideout)) + "kor-hideout" + ) + ((= v1-0 (game-task-actor burning-bush-pal-2)) + "burning-bush-pal-2" + ) + ((= v1-0 (game-task-actor kid-alley)) + "kid-alley" + ) + ((= v1-0 (game-task-actor burning-bush-stadium)) + "burning-bush-stadium" + ) + ((= v1-0 (game-task-actor ashelin-market)) + "ashelin-market" + ) + ((= v1-0 (game-task-actor kid-tomb)) + "kid-tomb" + ) + ((= v1-0 (game-task-actor burning-bush-farma)) + "burning-bush-farma" + ) + ((= v1-0 (game-task-actor baron-tomb)) + "baron-tomb" + ) + ((= v1-0 (game-task-actor burning-bush-slumc)) + "burning-bush-slumc" + ) + ((= v1-0 (game-task-actor burning-bush-slumb-2)) + "burning-bush-slumb-2" + ) + ((= v1-0 (game-task-actor baron-palace)) + "baron-palace" + ) + ((= v1-0 (game-task-actor crocadog-alley)) + "crocadog-alley" + ) + ((= v1-0 (game-task-actor baron-castle)) + "baron-castle" + ) + ((= v1-0 (game-task-actor crocadog-vinroom)) + "crocadog-vinroom" + ) + ((= v1-0 (game-task-actor burning-bush-gena-2)) + "burning-bush-gena-2" + ) + ((= v1-0 (game-task-actor daxter-tomb)) + "daxter-tomb" + ) + ((= v1-0 (game-task-actor burning-bush-port)) + "burning-bush-port" + ) + ((= v1-0 (game-task-actor burning-bush-marka)) + "burning-bush-marka" + ) + ((= v1-0 (game-task-actor crocadog-tomb)) + "crocadog-tomb" + ) + ((= v1-0 (game-task-actor keira-stadium)) + "keira-stadium" + ) + ((= v1-0 (game-task-actor sig-hiphog)) + "sig-hiphog" + ) + ((= v1-0 (game-task-actor youngsamos-hideout)) + "youngsamos-hideout" + ) + ((= v1-0 (game-task-actor burning-bush-genb-2)) + "burning-bush-genb-2" + ) + ((= v1-0 (game-task-actor burning-bush-inda)) + "burning-bush-inda" + ) + ((= v1-0 (game-task-actor kor-tomb)) + "kor-tomb" + ) + ((= v1-0 (game-task-actor kor-consite)) + "kor-consite" + ) + ((= v1-0 (game-task-actor torn-hideout)) + "torn-hideout" + ) + ((= v1-0 (game-task-actor onin-onintent)) + "onin-onintent" + ) + ((= v1-0 (game-task-actor kor-alley)) + "kor-alley" + ) + ((= v1-0 (game-task-actor kid-vinroom)) + "kid-vinroom" + ) + ((= v1-0 (game-task-actor ashelin-atoll)) + "ashelin-atoll" + ) + ((= v1-0 (game-task-actor burning-bush-sluma)) + "burning-bush-sluma" + ) + ((= v1-0 (game-task-actor burning-bush-slumb)) + "burning-bush-slumb" + ) + ((= v1-0 (game-task-actor youngsamos-alley)) + "youngsamos-alley" + ) + ((= v1-0 (game-task-actor youngsamos-forest)) + "youngsamos-forest" + ) + ((= v1-0 (game-task-actor samos-hideout)) + "samos-hideout" + ) + ((= v1-0 (game-task-actor burning-bush-genb)) + "burning-bush-genb" + ) + ((= v1-0 (game-task-actor oracle-oracle)) + "oracle-oracle" + ) + ((= v1-0 (game-task-actor torn-alley)) + "torn-alley" + ) + ((= v1-0 (game-task-actor kor-onintent)) + "kor-onintent" + ) + ((= v1-0 (game-task-actor tess-hiphog)) + "tess-hiphog" + ) + ((= v1-0 (game-task-actor burning-bush-markb-2)) + "burning-bush-markb-2" + ) + ((= v1-0 (game-task-actor ashelin-throne)) + "ashelin-throne" + ) + ((= v1-0 (game-task-actor burning-bush-indb)) + "burning-bush-indb" + ) + ((= v1-0 (game-task-actor pecker-onintent)) + "pecker-onintent" + ) + ((= v1-0 (game-task-actor kor-vinroom)) + "kor-vinroom" + ) + ((= v1-0 (game-task-actor sig-atoll)) + "sig-atoll" + ) + ((= v1-0 (game-task-actor burning-bush-pal)) + "burning-bush-pal" + ) + ((= v1-0 (game-task-actor burning-bush-farmb)) + "burning-bush-farmb" + ) + (else + "*unknown*" + ) + ) + ) + (v1-1 (-> obj action)) + ) + (t9-0 + a0-1 + a1-0 + a2-1 + (cond + ((= v1-1 (game-task-action idle)) + "idle" + ) + ((= v1-1 (game-task-action play)) + "play" + ) + ((= v1-1 (game-task-action show)) + "show" + ) + ((= v1-1 (game-task-action talk)) + "talk" + ) + ((= v1-1 (game-task-action hide)) + "hide" + ) + ((= v1-1 (game-task-action say)) + "say" + ) + ((= v1-1 (game-task-action shade)) + "trade" + ) + ((= v1-1 (game-task-action menu)) + "menu" + ) + (else + "*unknown*" + ) + ) + (-> obj scene) + obj + ) + ) + obj + ) + +;; definition for method 0 of type game-task-control +(defmethod new game-task-control ((allocation symbol) (type-to-make type) (arg0 game-task-actor)) + (let ((v0-0 (object-new allocation type-to-make (the-as int (-> type-to-make size))))) + (set! (-> v0-0 actor) arg0) + v0-0 + ) + ) + +;; definition for method 9 of type game-task-control +(defmethod game-task-control-method-9 game-task-control ((obj game-task-control)) + (with-pp + (let ((gp-0 (new 'static 'game-task-event :scene #f))) + (let ((s5-0 #f)) + (when (!= (-> obj counter) (-> *game-info* task-counter)) + (set! (-> obj counter) (-> *game-info* task-counter)) + (set! (-> obj current-node) (game-task-node none)) + (set! (-> obj current-event) #f) + (set! s5-0 #t) + (let ((game-nodes (-> *game-info* sub-task-list))) + (dotimes (i (-> game-nodes length)) + (when (nonzero? i) + (let ((node (-> game-nodes i))) + (when (and (task-node-open? (the-as game-task-node i)) + (-> node when-open) + (begin + (countdown (v1-12 (-> node when-open length)) + (when (= (-> obj actor) (-> node when-open v1-12 actor)) + (set! (-> obj current-event) (-> node when-open v1-12)) + (set! (-> obj current-node) (the-as game-task-node i)) + #t + (goto cfg-18) + ) + ) + #f + ) + ) + ) + ) + ) + ) + ) + ) + (label cfg-18) + (cond + ((= (-> obj current-node) (game-task-node none)) + (set! (-> gp-0 actor) (-> obj actor)) + ) + (else + (set! gp-0 (-> obj current-event)) + (cond + ((and (logtest? (-> gp-0 flags) (game-task-flags gatflag-00)) + (let ((a1-2 (new 'stack-no-clear 'event-message-block))) + (set! (-> a1-2 from) (process->ppointer pp)) + (set! (-> a1-2 num-params) 0) + (set! (-> a1-2 message) 'get-alert-level) + (let ((a0-11 (send-event-function *traffic-manager* a1-2))) + (and a0-11 (nonzero? a0-11)) + ) + ) + ) + (set! (-> gp-0 action) (game-task-action hide)) + 0 + ) + (else + (set! (-> gp-0 action) (the-as game-task-action (-> gp-0 tex))) + ) + ) + ) + ) + (if s5-0 + (logior! (-> gp-0 flags) (game-task-flags gatflag-01)) + (logclear! (-> gp-0 flags) (game-task-flags gatflag-01)) + ) + ) + gp-0 + ) + ) + ) + +;; definition of type fail-mission +(deftype fail-mission (process) + ((message fail-mission-message :offset-assert 128) + (flags fail-mission-flags :offset-assert 129) + (retry-continue basic :offset-assert 132) + (fail-continue basic :offset-assert 136) + (reset-delay uint32 :offset-assert 140) + (grabbed-time time-frame :offset-assert 144) + (retry symbol :offset-assert 152) + (task game-task :offset-assert 156) + (message-id uint32 :offset-assert 160) + (fail-message uint32 :offset-assert 164) + (stinger uint32 :offset-assert 168) + ) + :heap-base #x30 + :method-count-assert 17 + :size-assert #xac + :flag-assert #x11003000ac + (:methods + (idle () _type_ :state 14) + (resetting () _type_ :state 15) + (print-text (_type_) float 16) + ) + ) + +;; definition for method 3 of type fail-mission +(defmethod inspect fail-mission ((obj fail-mission)) + (when (not obj) + (set! obj obj) + (goto cfg-4) + ) + (let ((t9-0 (method-of-type process inspect))) + (t9-0 obj) + ) + (format #t "~2Tmessage: ~D~%" (-> obj message)) + (format #t "~2Tflags: ~D~%" (-> obj flags)) + (format #t "~2Tretry-continue: ~A~%" (-> obj retry-continue)) + (format #t "~2Tfail-continue: ~A~%" (-> obj fail-continue)) + (format #t "~2Treset-delay: ~D~%" (-> obj reset-delay)) + (format #t "~2Tgrabbed-time: ~D~%" (-> obj grabbed-time)) + (format #t "~2Tretry: ~A~%" (-> obj retry)) + (format #t "~2Ttask: ~D~%" (-> obj task)) + (format #t "~2Tmessage-id: ~D~%" (-> obj message-id)) + (format #t "~2Tfail-message: ~D~%" (-> obj fail-message)) + (format #t "~2Tstinger: ~D~%" (-> obj stinger)) + (label cfg-4) + obj + ) + +;; definition for method 12 of type fail-mission +(defmethod run-logic? fail-mission ((obj fail-mission)) + #t + ) + +;; definition for method 16 of type fail-mission +(defmethod print-text fail-mission ((obj fail-mission)) + (when (and (zero? (logand (-> obj flags) (fail-mission-flags famflags-6))) + (= (gui-control-method-17 *gui-control* (the-as sound-id (-> obj message-id))) (gui-action playing)) + ) + (let ((gp-0 (new + 'stack + 'font-context + *font-default-matrix* + 70 + 20 + 0.0 + (font-color gold-#ba9200) + (font-flags shadow kerning) + ) + ) + ) + (set! (-> gp-0 origin x) 120.0) + (let ((v1-7 gp-0)) + (set! (-> v1-7 scale) 0.7) + ) + (let ((v1-8 gp-0)) + (set! (-> v1-8 width) (the float (the-as float #x12c))) + ) + (let ((v1-9 gp-0)) + (set! (-> v1-9 height) (the float (the-as float #x23))) + ) + (set! (-> gp-0 flags) (font-flags shadow kerning middle left large)) + (let ((s4-0 (if (logtest? (-> obj flags) (fail-mission-flags famflags-2)) + (the-as int (-> obj fail-message)) + 393 + ) + ) + ) + (when (nonzero? s4-0) + (let ((s3-0 print-game-text)) + (format (clear *temp-string*) (lookup-text! *common-text* (the-as game-text-id s4-0) #f) 1) + (s3-0 *temp-string* gp-0 #f 44 320) + ) + ) + ) + (when (= (-> obj message) (fail-mission-message fammsg-1)) + (let ((v1-17 gp-0)) + (set! (-> v1-17 height) (the float (the-as float #x5f))) + ) + (let ((s5-1 print-game-text)) + (format (clear *temp-string*) (lookup-text! *common-text* (game-text-id text-x18a) #f) 1) + (s5-1 *temp-string* gp-0 #f 44 320) + ) + (let ((v1-19 gp-0)) + (set! (-> v1-19 height) (the float (the-as float #x9b))) + ) + (let ((s5-2 print-game-text)) + (format (clear *temp-string*) (lookup-text! *common-text* (game-text-id text-x180) #f) 1) + (s5-2 *temp-string* gp-0 #f 44 320) + ) + ) + ) + ) + ) + +;; failed to figure out what this is: +(defstate idle (fail-mission) + :virtual #t + :event (behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block)) + (case arg2 + (('reset) + (cond + ((logtest? (-> self flags) (fail-mission-flags famflags-1)) + (persist-with-delay *setting-control* 'fail (seconds 10) 'bg-a 'abs 1.0 0) + (go-virtual resetting) + ) + (else + (logior! (-> self flags) (fail-mission-flags famflags-0)) + (set! (-> self reset-delay) (the-as uint 0)) + #t + ) + ) + ) + (('query) + (case (-> arg3 param 0) + (('reset) + (logtest? (-> self flags) (fail-mission-flags famflags-1)) + ) + ) + ) + ) + ) + :exit (behavior () + (update-rates! (-> *display* bg-clock) 1.0) + (update-rates! (-> *display* entity-clock) 1.0) + (update-rates! (-> *display* target-clock) 1.0) + (update-rates! (-> *display* camera-clock) 1.0) + (none) + ) + :code (behavior () + (when (and *target* (logtest? (-> *target* focus-status) (focus-status dead))) + (if (and (logtest? (-> self flags) (fail-mission-flags famflags-3)) (zero? (-> self message))) + (deactivate self) + ) + (if (= (-> self message) (fail-mission-message fammsg-0)) + (logior! (-> self flags) (fail-mission-flags famflags-3)) + ) + ) + (case (-> self message) + (((fail-mission-message fammsg-0)) + (while (begin + (if (and *target* (logtest? (-> *target* focus-status) (focus-status grabbed))) + (process-release? *target*) + ) + (let ((a1-0 (new 'stack-no-clear 'event-message-block))) + (set! (-> a1-0 from) (process->ppointer self)) + (set! (-> a1-0 num-params) 2) + (set! (-> a1-0 message) 'attack-invinc) + (set! (-> a1-0 param 0) (the-as uint #f)) + (let ((v1-24 (new 'static 'attack-info :mask (attack-info-mask mode id)))) + (let* ((a0-10 *game-info*) + (a2-1 (+ (-> a0-10 attack-id) 1)) + ) + (set! (-> a0-10 attack-id) a2-1) + (set! (-> v1-24 id) a2-1) + ) + (set! (-> v1-24 mode) 'bot) + (set! (-> a1-0 param 1) (the-as uint v1-24)) + ) + (not (or (send-event-function *target* a1-0) + (and *target* (logtest? (-> *target* focus-status) (focus-status dead))) + ) + ) + ) + ) + (suspend) + ) + ) + (((fail-mission-message fammsg-1)) + (while (let ((t9-3 process-grab?) + (a0-17 *target*) + ) + 'dead + (not (t9-3 a0-17)) + ) + (suspend) + ) + ) + ) + (logior! (-> self flags) (fail-mission-flags famflags-1)) + (set! (-> self grabbed-time) (-> self clock frame-counter)) + (when (zero? (logand (-> self flags) (fail-mission-flags famflags-3))) + (when (zero? (logand (-> self flags) (fail-mission-flags famflags-5))) + (while (< (- (-> self clock frame-counter) (-> self grabbed-time)) (seconds 1.5)) + (let ((f30-0 (lerp-scale 0.0 1.0 (the float (- (-> self clock frame-counter) (-> self grabbed-time))) 0.0 450.0))) + (set-filter-color! + (lerp-scale 1.0 1.25 f30-0 0.0 1.0) + (lerp-scale 1.0 0.875 f30-0 0.0 1.0) + (lerp-scale 1.0 0.25 f30-0 0.0 1.0) + ) + (update-rates! (-> *display* bg-clock) (- 1.0 f30-0)) + (update-rates! (-> *display* entity-clock) (- 1.0 f30-0)) + (update-rates! (-> *display* target-clock) (- 1.0 f30-0)) + (update-rates! (-> *display* camera-clock) (- 1.0 f30-0)) + ) + (print-text self) + (suspend) + ) + (set! (-> self clock) (-> *display* real-clock)) + (logclear! (-> self mask) (process-mask freeze)) + (set-master-mode 'freeze) + ) + ) + (case (-> self message) + (((fail-mission-message fammsg-0)) + (until #f + (when (or (and (logtest? (-> self flags) (fail-mission-flags famflags-0)) + (>= (- (-> self clock frame-counter) (-> self grabbed-time)) (the-as time-frame (-> self reset-delay))) + ) + (or (logtest? (pad-buttons confirm) (-> *cpad-list* cpads 0 button0-rel 0)) + (logtest? (-> self flags) (fail-mission-flags famflags-3)) + ) + ) + (logclear! (-> *cpad-list* cpads 0 button0-abs 0) (pad-buttons confirm)) + (logclear! (-> *cpad-list* cpads 0 button0-rel 0) (pad-buttons confirm)) + (persist-with-delay *setting-control* 'fail (seconds 10) 'bg-a 'abs 1.0 0) + (go-virtual resetting) + ) + (print-text self) + (suspend) + ) + #f + ) + (((fail-mission-message fammsg-1)) + (until #f + (when (or (logtest? (pad-buttons confirm) (-> *cpad-list* cpads 0 button0-rel 0)) + (logtest? (-> self flags) (fail-mission-flags famflags-3)) + ) + (logclear! (-> *cpad-list* cpads 0 button0-abs 0) (pad-buttons confirm)) + (logclear! (-> *cpad-list* cpads 0 button0-rel 0) (pad-buttons confirm)) + (set! (-> self retry) #t) + (while (not (process-release? *target*)) + (suspend) + ) + (suspend) + (persist-with-delay *setting-control* 'fail (seconds 10) 'bg-a 'abs 1.0 0) + (go-virtual resetting) + ) + (when (cpad-pressed? 0 triangle) + (logclear! (-> *cpad-list* cpads 0 button0-abs 0) (pad-buttons triangle)) + (logclear! (-> *cpad-list* cpads 0 button0-rel 0) (pad-buttons triangle)) + (set! (-> self retry) #f) + (while (not (process-release? *target*)) + (suspend) + ) + (suspend) + (go-virtual resetting) + ) + (print-text self) + (suspend) + ) + #f + ) + ) + (none) + ) + ) + +;; definition for method 10 of type fail-mission +;; WARN: Return type mismatch process vs none. +(defmethod deactivate fail-mission ((obj fail-mission)) + (set-filter-color! 1.0 1.0 1.0) + (sound-group-continue (sound-group sfx music dialog sog3 ambient dialog2 sog6 sog7)) + (update-rates! (-> *display* bg-clock) 1.0) + (update-rates! (-> *display* entity-clock) 1.0) + (update-rates! (-> *display* target-clock) 1.0) + (update-rates! (-> *display* camera-clock) 1.0) + ((the-as (function process process) (find-parent-method fail-mission 10)) obj) + (none) + ) + +;; failed to figure out what this is: +(defstate resetting (fail-mission) + :virtual #t + :event (behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block)) + (let ((v1-0 arg2)) + (the-as object (cond + ((= v1-0 'reset) + #t + ) + ((= v1-0 'query) + (case (-> arg3 param 0) + (('reset) + #t + ) + ) + ) + ) + ) + ) + ) + :enter (behavior () + '() + (none) + ) + :exit (behavior () + (if (= *master-mode* 'freeze) + (set-master-mode 'game) + ) + (process-release? *target*) + (none) + ) + :code (behavior () + (local-vars (a1-10 basic)) + (let ((gp-0 (-> self clock frame-counter))) + (until (>= (- (-> self clock frame-counter) gp-0) (seconds 1)) + (let ((f30-0 (lerp-scale 1.0 0.0 (the float (- (-> self clock frame-counter) gp-0)) 0.0 270.0))) + (when *sound-player-enable* + (let ((v1-6 (the-as sound-rpc-set-param (get-sound-buffer-entry)))) + (set! (-> v1-6 command) (sound-command set-param)) + (set! (-> v1-6 id) (the-as sound-id (-> self stinger))) + (set! (-> v1-6 params volume) (the int (* 1024.0 f30-0))) + (set! (-> v1-6 params mask) (the-as uint 1)) + (-> v1-6 id) + ) + ) + ) + (let ((f30-1 (lerp-scale 1.0 0.0 (the float (- (-> self clock frame-counter) gp-0)) 0.0 300.0))) + (set-filter-color! + (lerp-scale 1.0 1.25 f30-1 0.0 1.0) + (lerp-scale 1.0 0.875 f30-1 0.0 1.0) + (lerp-scale 1.0 0.25 f30-1 0.0 1.0) + ) + ) + (suspend) + ) + ) + (case (-> self message) + (((fail-mission-message fammsg-0)) + (let ((a1-6 (-> self fail-continue))) + (if a1-6 + (set-continue! *game-info* a1-6 #t) + ) + ) + (task-node-reset 'life) + (update-task-masks 'life) + (send-event *target* 'end-mode) + ) + (((fail-mission-message fammsg-1)) + (cond + ((-> self retry) + (let ((a1-8 (-> self retry-continue))) + (if a1-8 + (set-continue! *game-info* a1-8 #t) + ) + ) + (initialize! *game-info* 'try (the-as game-save #f) (the-as string #f)) + ) + ((begin (set! a1-10 (-> self fail-continue)) a1-10) + (set-continue! *game-info* a1-10 #t) + (initialize! *game-info* 'life (the-as game-save #f) (the-as string #f)) + ) + (else + (task-node-reset 'life) + (update-task-masks 'life) + (if (and *target* (logtest? (-> *target* focus-status) (focus-status dead grabbed))) + (send-event *target* 'end-mode) + ) + ) + ) + ) + ) + (persist-with-delay *setting-control* 'allow-continue (seconds 3) 'allow-continue #f 0.0 0) + (persist-with-delay *setting-control* 'speech-control (seconds 3) 'speech-control #f 0.0 0) + (persist-with-delay *setting-control* 'music-volume (seconds 3) 'music-volume 'abs 0.0 0) + (persist-with-delay *setting-control* 'sfx-volume (seconds 3) 'music-volume 'abs 0.0 0) + (none) + ) + ) + +;; definition for function fail-mission-init-by-other +(defbehavior fail-mission-init-by-other fail-mission ((arg0 fail-mission-params)) + (set! (-> self message) (-> arg0 message)) + (set! (-> self flags) (-> arg0 flags)) + (set! (-> self retry-continue) (-> arg0 retry-continue)) + (set! (-> self fail-continue) (-> arg0 fail-continue)) + (set! (-> self reset-delay) (-> arg0 reset-delay)) + (set! (-> self task) (-> arg0 task)) + (set! (-> self fail-message) (the-as uint (-> arg0 fail-message))) + (set-setting! 'allow-continue #f 0 0) + (set-setting! 'minimap 'clear 0 128) + (gui-control-method-16 + *gui-control* + (gui-action stop) + (the-as sound-id 1) + (gui-channel guard) + (gui-action none) + (the-as string #f) + (the-as (function gui-connection symbol) #f) + (the-as process #f) + ) + (gui-control-method-16 + *gui-control* + (gui-action stop) + (the-as sound-id 1) + (gui-channel citizen) + (gui-action none) + (the-as string #f) + (the-as (function gui-connection symbol) #f) + (the-as process #f) + ) + (when (zero? (logand (-> arg0 flags) (fail-mission-flags famflags-4))) + (if (not (and *target* (logtest? (-> *target* focus-status) (focus-status dead)) (zero? (-> self message)))) + (set! (-> self stinger) + (the-as + uint + (gui-control-method-9 *gui-control* *target* (gui-channel background) (gui-action play) "lose1" -99.0 0) + ) + ) + ) + ) + (set-setting! 'music-volume 'abs 0 0) + (set-setting! 'sfx-volume 'abs 0 0) + (set-setting! 'speech-control #f 0 0) + (set! (-> self clock) (-> *display* base-clock)) + (apply-settings *setting-control*) + (if (or (zero? (logand (-> self flags) (fail-mission-flags famflags-2))) + (nonzero? (-> self fail-message)) + (= (-> self message) (fail-mission-message fammsg-1)) + ) + (set! (-> self message-id) + (the-as + uint + (gui-control-method-9 *gui-control* self (gui-channel supertitle) (gui-action play) "fail" 81920.0 0) + ) + ) + ) + (go-virtual idle) + ) + +;; definition for method 11 of type fail-mission-control +(defmethod start! fail-mission-control ((obj fail-mission-control) (arg0 fail-mission-params)) + (when (not (handle->process (-> obj process))) + (let ((v1-4 (process-spawn fail-mission arg0 :to *entity-pool*))) + (when v1-4 + (set! (-> obj process) (process->handle (-> v1-4 0))) + #t + ) + ) + ) + ) + +;; definition for method 12 of type fail-mission-control +(defmethod reset! fail-mission-control ((obj fail-mission-control)) + (send-event (handle->process (-> obj process)) 'reset) + ) + +;; definition for method 9 of type fail-mission-control +;; WARN: Return type mismatch object vs symbol. +(defmethod reset? fail-mission-control ((obj fail-mission-control)) + (the-as symbol (send-event (handle->process (-> obj process)) 'query 'reset)) + ) + +;; definition for method 10 of type fail-mission-control +;; WARN: Return type mismatch process vs fail-mission. +(defmethod get-proc fail-mission-control ((obj fail-mission-control)) + (the-as fail-mission (handle->process (-> obj process))) + ) + +;; definition for method 12 of type game-task-node-info +(defmethod copy-hooks! game-task-node-info ((obj game-task-node-info) (arg0 game-task-node-info)) + (when (and (-> obj info) (-> arg0 info)) + (countdown (v1-3 7) + (set! (-> obj info hooks v1-3) (-> arg0 info hooks v1-3)) + ) + ) + obj + ) + +;; definition for method 7 of type task-manager +;; WARN: Return type mismatch process vs task-manager. +(defmethod relocate task-manager ((obj task-manager) (arg0 int)) + (if (nonzero? (-> obj link)) + (+! (-> obj link) arg0) + ) + (the-as task-manager ((method-of-type process relocate) obj arg0)) + ) + +;; definition for function task-manager-init-by-other +(defbehavior task-manager-init-by-other task-manager ((arg0 game-task-node-info) (arg1 symbol)) + (stack-size-set! (-> self main-thread) 1024) + (add-connection *task-manager-engine* self nothing self arg0 #f) + (set! (-> self node-info) arg0) + (set! (-> self lev-name) arg1) + (add-setting! 'task arg0 0 0) + (add-setting! 'task-manager (process->ppointer self) 0 0) + (set! (-> self intro-time) (-> self clock frame-counter)) + (set! (-> self fail-on-death?) (zero? (logand (-> arg0 flags) (game-task-node-flag no-fail-on-death)))) + (when arg1 + (let* ((v1-15 (level-get *level* arg1)) + (a1-6 (if (and (nonzero? (-> v1-15 entity)) (> (-> v1-15 entity length) 0)) + (-> v1-15 entity data 0 entity) + ) + ) + ) + (if a1-6 + (process-entity-set! self (the-as entity-actor a1-6)) + ) + ) + ) + (initialize! self) + (go-virtual wait) + ) + +;; definition for method 20 of type task-manager +(defmethod kill-all-children task-manager ((obj task-manager)) + (while (-> obj child) + (deactivate (ppointer->process (-> obj child))) + ) + 0 + ) + +;; definition for method 21 of type task-manager +(defmethod check-time task-manager ((obj task-manager)) + (with-pp + (when (nonzero? (-> obj start-time)) + (let ((v1-3 (handle->process (-> obj hud-timer)))) + (if (and *target* (not v1-3)) + (set! (-> obj hud-timer) (ppointer->handle (process-spawn hud-timer :init hud-init-by-other :to *target*))) + ) + ) + (let ((v1-15 (- (-> obj time-limit) (- (-> pp clock frame-counter) (-> obj start-time))))) + (let ((a0-15 *game-info*)) + (set! (-> a0-15 timer) v1-15) + (set! (-> a0-15 timer-flash) (< v1-15 (seconds 10))) + ) + (when (< v1-15 0) + (if *debug-segment* + (format #t "task failed: ran out of time~%") + ) + (send-event (handle->process (-> obj hud-timer)) 'hide-and-die) + (go (method-of-object obj fail)) + ) + ) + ) + 0 + ) + ) + +;; definition for method 19 of type task-manager +(defmethod initialize! task-manager ((obj task-manager)) + (set! (-> obj info) (-> obj node-info info)) + (countdown (v1-2 32) + (set! (-> obj slave v1-2) (the-as handle #f)) + ) + (countdown (v1-5 4) + (set! (-> obj hud v1-5) (the-as handle #f)) + ) + (set! (-> obj arrow) (the-as handle #f)) + (countdown (v1-8 4) + (set! (-> obj minimap v1-8) (the-as uint #f)) + ) + (countdown (v1-11 4) + (set! (-> obj actor-group v1-11) (the-as uint #f)) + ) + (set! (-> obj fail-now) #f) + (set! (-> obj retry-now) #f) + (set! (-> obj allow-fail) #t) + 0 + ) + +;; definition for method 10 of type task-manager +(defmethod deactivate task-manager ((obj task-manager)) + (with-pp + (let ((s5-0 pp)) + (set! pp obj) + (let ((t9-0 (-> obj info cleanup-hook))) + (if t9-0 + (t9-0) + ) + ) + (set! pp s5-0) + ) + (countdown (s5-1 4) + (send-event (handle->process (-> obj hud s5-1)) 'hide-and-die) + ) + ((method-of-type process deactivate) obj) + (none) + ) + ) + +;; definition for function task-manager-event-handler +(defbehavior task-manager-event-handler task-manager ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block)) + (local-vars (v0-0 object)) + (case arg2 + (('fail) + (if (not (and (-> self next-state) (let ((v1-4 (-> self next-state name))) + (or (= v1-4 'complete) (= v1-4 'fail) (= v1-4 'retry)) + ) + ) + ) + (go-virtual fail) + ) + ) + (('retry) + (if (and (not (and (-> self next-state) (let ((v1-10 (-> self next-state name))) + (or (= v1-10 'complete) (= v1-10 'fail) (= v1-10 'retry)) + ) + ) + ) + (-> self info retry-continue) + ) + (go-virtual retry) + ) + ) + (('complete) + (if (or (not (and (-> self next-state) (let ((v1-18 (-> self next-state name))) + (or (= v1-18 'complete) (= v1-18 'fail) (= v1-18 'retry)) + ) + ) + ) + (not (-> self allow-fail)) + ) + (go-virtual complete) + ) + ) + (('wait) + (go-virtual wait) + ) + (('active) + (go-virtual active) + ) + (('fail-on-death) + (set! v0-0 (-> arg3 param 0)) + (set! (-> self fail-on-death?) (the-as symbol v0-0)) + v0-0 + ) + (('target) + (case (-> arg3 param 0) + (('die) + (when (-> self fail-on-death?) + (if (and (-> self next-state) (= (-> self next-state name) 'active)) + (go-virtual fail) + ) + (when (and (-> self next-state) (let ((v1-40 (-> self next-state name))) + (or (= v1-40 'active) (= v1-40 'fail) (= v1-40 'retry)) + ) + ) + (if (or (-> self info retry-continue) (-> self info fail-continue)) + 'wait + #f + ) + ) + ) + ) + ) + ) + (('fail-continue) + (if (and (-> self info fail-continue) + (= (-> *setting-control* user-current exclusive-task) (-> self node-info task)) + ) + (-> self info fail-continue) + ) + ) + (('fail-immediately) + (when (or (not (and (-> self next-state) (let ((v1-54 (-> self next-state name))) + (or (= v1-54 'complete) (= v1-54 'fail) (= v1-54 'retry)) + ) + ) + ) + (not (-> self allow-fail)) + ) + (set! (-> self allow-fail) #t) + (set! (-> self fail-now) #t) + (go-virtual fail) + ) + ) + (('allow-fail) + (set! v0-0 (-> arg3 param 0)) + (set! (-> self allow-fail) (the-as symbol v0-0)) + v0-0 + ) + (('retry-immediately) + (when (and (or (not (and (-> self next-state) (let ((v1-64 (-> self next-state name))) + (or (= v1-64 'complete) (= v1-64 'fail) (= v1-64 'retry)) + ) + ) + ) + (not (-> self allow-fail)) + ) + (-> self info retry-continue) + ) + (set! (-> self retry-now) #t) + (go-virtual retry) + ) + ) + (else + (let ((t9-8 (-> self info event-hook))) + (if t9-8 + (t9-8 arg0 arg1 arg2 arg3) + ) + ) + ) + ) + ) + +;; definition for method 22 of type task-manager +;; WARN: Return type mismatch object vs symbol. +(defmethod task-manager-method-22 task-manager ((obj task-manager)) + (with-pp + (the-as + symbol + (and (or (zero? (logand (-> obj node-info flags) (game-task-node-flag city-wait))) + (let ((a0-2 (level-get-target-inside *level*))) + (cond + ((not (and a0-2 (logtest? (-> a0-2 info level-flags) 1))) + (set! (-> obj intro-time) (-> pp clock frame-counter)) + #f + ) + (else + #t + ) + ) + ) + ) + (or (zero? (-> obj info intro-delay)) + (>= (- (-> pp clock frame-counter) (-> obj intro-time)) (the-as time-frame (-> obj info intro-delay))) + ) + (and *target* (zero? (logand (focus-status dead teleporting) (-> *target* focus-status)))) + ) + ) + ) + ) + +;; failed to figure out what this is: +(defstate wait (task-manager) + :virtual #t + :event task-manager-event-handler + :trans (behavior () + (if (or (and (nonzero? (-> self info final-node)) (task-node-closed? (-> self info final-node))) + (and (zero? (logand (-> self node-info flags) (game-task-node-flag closed))) + (not (open? (-> self node-info))) + ) + ) + (deactivate self) + ) + (none) + ) + :code (behavior () + (while (or (not *target*) (not *spawn-actors*)) + (suspend) + ) + (when (or (logtest? (-> self node-info flags) (game-task-node-flag intro-wait city-wait)) + (nonzero? (-> self info intro-delay)) + ) + (while (not (task-manager-method-22 self)) + (suspend) + ) + (let ((a0-3 (-> self info intro-scene))) + (if a0-3 + (talker-spawn-func (string->talker-speech a0-3) *entity-pool* (target-pos 0) (the-as region #f)) + ) + ) + (if (logtest? (-> self node-info flags) (game-task-node-flag intro-wait)) + (close! (-> self node-info) 'event) + ) + ) + (let ((t9-5 (-> self info init-hook))) + (if t9-5 + (t9-5) + ) + ) + (go-virtual active) + (none) + ) + ) + +;; failed to figure out what this is: +(defstate active (task-manager) + :virtual #t + :event task-manager-event-handler + :trans (behavior () + ((-> (method-of-object self wait) trans)) + (let ((t9-1 (-> self info update-hook))) + (if t9-1 + (t9-1) + ) + ) + (none) + ) + :code (behavior () + (let ((t9-0 (-> self info code-hook))) + (if t9-0 + (t9-0) + ) + ) + (until #f + (if *debug-segment* + (format *stdcon* "task-manager: alive task ~A~%" (game-task->string (-> self node-info task))) + ) + (suspend) + ) + #f + (none) + ) + ) + +;; failed to figure out what this is: +(defstate complete (task-manager) + :virtual #t + :event task-manager-event-handler + :code (behavior () + (if (handle->process (-> *fail-mission-control* process)) + (sleep-code) + ) + (send-event (handle->process (-> self arrow)) 'die) + (countdown (gp-0 4) + (send-event (handle->process (-> self hud gp-0)) 'hide-and-die) + ) + (let ((t9-3 (-> self info complete-hook))) + (if t9-3 + (t9-3) + ) + ) + (set! (-> self state-time) (-> self clock frame-counter)) + (when (logtest? (-> self info mask) (task-manager-mask resolution-scene)) + (let ((gp-2 (ppointer->handle (process-spawn + scene-player + :init scene-player-init + (-> self info resolution-scene) + #t + (-> self info resolution-scene-continue) + ) + ) + ) + ) + (while (handle->process (the-as handle gp-2)) + (suspend) + ) + ) + ) + (let ((gp-3 (-> self info on-complete))) + (if gp-3 + (eval! (new 'stack 'script-context (the-as basic (process->ppointer self)) self (the-as vector #f)) gp-3) + ) + ) + (task-node-close! (-> self info final-node)) + (while (-> self child) + (suspend) + ) + (none) + ) + ) + +;; failed to figure out what this is: +(defstate fail (task-manager) + :virtual #t + :event task-manager-event-handler + :exit (behavior () + (disable *screen-filter*) + (none) + ) + :code (behavior () + (while (not (-> self allow-fail)) + (suspend) + ) + (send-event (handle->process (-> self arrow)) 'die) + (countdown (gp-0 4) + (send-event (handle->process (-> self hud gp-0)) 'hide-and-die) + ) + (let ((t9-2 (-> self info fail-hook))) + (if t9-2 + (t9-2) + ) + ) + (let ((gp-1 (-> self info on-fail))) + (if gp-1 + (eval! (new 'stack 'script-context (the-as basic (process->ppointer self)) self (the-as vector #f)) gp-1) + ) + ) + (let ((a0-10 (-> self info retry-continue)) + (v1-28 (-> self info fail-continue)) + ) + (when (or a0-10 v1-28) + (let ((a1-5 (new 'stack-no-clear 'fail-mission-params))) + (cond + ((and (logtest? (-> self node-info flags) (game-task-node-flag task-retry)) + (logtest? (-> self info mask) (task-manager-mask retry-message)) + ) + (set! (-> a1-5 flags) (fail-mission-flags famflags-0 famflags-2)) + (set! (-> a1-5 message) (fail-mission-message fammsg-1)) + (set! (-> a1-5 retry-continue) a0-10) + (set! (-> a1-5 fail-continue) v1-28) + (set! (-> a1-5 reset-delay) (the-as uint 1500)) + (set! (-> a1-5 task) (-> self node-info task)) + (set! (-> a1-5 fail-message) (-> self info retry-message)) + ) + ((logtest? (-> self node-info flags) (game-task-node-flag task-retry)) + (set! (-> a1-5 flags) (fail-mission-flags famflags-0)) + (set! (-> a1-5 message) (fail-mission-message fammsg-1)) + (set! (-> a1-5 retry-continue) a0-10) + (set! (-> a1-5 fail-continue) v1-28) + (set! (-> a1-5 reset-delay) (the-as uint 1500)) + (set! (-> a1-5 task) (-> self node-info task)) + (set! (-> a1-5 fail-message) (game-text-id null)) + ) + ((logtest? (-> self info mask) (task-manager-mask fail-message)) + (set! (-> a1-5 flags) (fail-mission-flags famflags-0 famflags-2)) + (set! (-> a1-5 message) (fail-mission-message fammsg-0)) + (set! (-> a1-5 retry-continue) a0-10) + (set! (-> a1-5 fail-continue) v1-28) + (set! (-> a1-5 reset-delay) (the-as uint 1500)) + (set! (-> a1-5 task) (-> self node-info task)) + (set! (-> a1-5 fail-message) (-> self info fail-message)) + ) + (else + (set! (-> a1-5 flags) (fail-mission-flags famflags-0)) + (set! (-> a1-5 message) (fail-mission-message fammsg-0)) + (set! (-> a1-5 retry-continue) a0-10) + (set! (-> a1-5 fail-continue) v1-28) + (set! (-> a1-5 reset-delay) (the-as uint 1500)) + (set! (-> a1-5 task) (-> self node-info task)) + (set! (-> a1-5 fail-message) (game-text-id null)) + ) + ) + (if (logtest? (game-task-node-flag no-audio) (-> self node-info flags)) + (logior! (-> a1-5 flags) (fail-mission-flags famflags-4)) + ) + (if (logtest? (game-task-node-flag no-slow-down) (-> self node-info flags)) + (logior! (-> a1-5 flags) (fail-mission-flags famflags-5)) + ) + (when (-> self fail-now) + (set! (-> a1-5 flags) (fail-mission-flags famflags-0 famflags-2)) + (set! (-> a1-5 message) (fail-mission-message fammsg-0)) + (set! (-> a1-5 retry-continue) v1-28) + (set! (-> a1-5 fail-continue) v1-28) + (set! (-> a1-5 reset-delay) (the-as uint 1500)) + (set! (-> a1-5 task) (-> self node-info task)) + (set! (-> a1-5 fail-message) (game-text-id null)) + (set! (-> a1-5 reset-delay) (the-as uint 0)) + (logior! (-> a1-5 flags) (fail-mission-flags famflags-0 famflags-3 famflags-4 famflags-5 famflags-6)) + ) + (start! *fail-mission-control* a1-5) + ) + (while (handle->process (-> *fail-mission-control* process)) + (suspend) + ) + ) + ) + (none) + ) + ) + +;; failed to figure out what this is: +(defstate retry (task-manager) + :virtual #t + :event task-manager-event-handler + :exit (-> (method-of-type task-manager fail) exit) + :code (behavior () + (send-event (handle->process (-> self arrow)) 'die) + (countdown (gp-0 4) + (send-event (handle->process (-> self hud gp-0)) 'hide-and-die) + ) + (let ((t9-2 (-> self info fail-hook))) + (if t9-2 + (t9-2) + ) + ) + (let ((v1-20 (-> self info retry-continue))) + (cond + (v1-20 + (let ((a1-2 (new 'stack-no-clear 'fail-mission-params))) + (set! (-> a1-2 flags) (fail-mission-flags famflags-0 famflags-2)) + (set! (-> a1-2 message) (fail-mission-message fammsg-1)) + (set! (-> a1-2 retry-continue) v1-20) + (set! (-> a1-2 fail-continue) v1-20) + (set! (-> a1-2 reset-delay) (the-as uint 1500)) + (set! (-> a1-2 task) (-> self node-info task)) + (set! (-> a1-2 fail-message) (game-text-id null)) + (logior! (-> a1-2 flags) (fail-mission-flags famflags-3 famflags-4)) + (when (-> self retry-now) + (set! (-> a1-2 reset-delay) (the-as uint 0)) + (logior! (-> a1-2 flags) (fail-mission-flags famflags-0 famflags-3 famflags-4 famflags-5 famflags-6)) + ) + (start! *fail-mission-control* a1-2) + ) + (while (handle->process (-> *fail-mission-control* process)) + (suspend) + ) + ) + (else + (initialize! *game-info* 'try (the-as game-save #f) (the-as string #f)) + ) + ) + ) + (none) + ) + ) diff --git a/test/decompiler/reference/jak2/engine/geometry/geometry-h_REF.gc b/test/decompiler/reference/jak2/engine/geometry/geometry-h_REF.gc index 97bd2d7b2b..43ab6d101a 100644 --- a/test/decompiler/reference/jak2/engine/geometry/geometry-h_REF.gc +++ b/test/decompiler/reference/jak2/engine/geometry/geometry-h_REF.gc @@ -42,7 +42,7 @@ :size-assert #x30 :flag-assert #xb00000030 (:methods - (debug-draw! (_type_) none 9) + (debug-draw (_type_) int 9) (point-past-plane? (_type_ vector) symbol 10) ) ) @@ -65,7 +65,3 @@ ;; failed to figure out what this is: 0 - - - - diff --git a/test/decompiler/reference/jak2/engine/gfx/mood/mood-funcs_REF.gc b/test/decompiler/reference/jak2/engine/gfx/mood/mood-funcs_REF.gc index 5716acf485..7a5adfda0e 100644 --- a/test/decompiler/reference/jak2/engine/gfx/mood/mood-funcs_REF.gc +++ b/test/decompiler/reference/jak2/engine/gfx/mood/mood-funcs_REF.gc @@ -1336,8 +1336,8 @@ (set! (-> arg0 times 5 w) 1.0) (set! (-> arg0 times 4 w) (-> gp-1 fire-floor)) (update-mood-flames arg0 6 1 12 0.9 0.0009765625 2.0) - (if (and (task-node-closed? (game-task-node drill-mech-resolution)) - (not (task-node-closed? (game-task-node drill-mech-started-smashing))) + (if (and (task-node-closed? (game-task-node drill-mech-smash-consoles)) + (not (task-node-closed? (game-task-node drill-mech-resolution))) ) (update-mood-pulse arg0 7 52 0.75 0.25 (* 65536.0 (-> self clock seconds-per-frame)) 16384.0) ) @@ -1460,8 +1460,8 @@ (let ((gp-0 (the-as drillb-states (-> arg0 state)))) (set! (-> arg0 times 1 w) 1.0) (set! (-> arg0 times 4 w) (-> gp-0 fire-floor)) - (if (and (task-node-closed? (game-task-node drill-mech-resolution)) - (not (task-node-closed? (game-task-node drill-mech-started-smashing))) + (if (and (task-node-closed? (game-task-node drill-mech-smash-consoles)) + (not (task-node-closed? (game-task-node drill-mech-resolution))) ) (update-mood-pulse arg0 7 12 0.75 0.25 (* 65536.0 (-> self clock seconds-per-frame)) 16384.0) ) diff --git a/test/decompiler/reference/jak2/engine/gfx/sprite/particles/sparticle-launcher_REF.gc b/test/decompiler/reference/jak2/engine/gfx/sprite/particles/sparticle-launcher_REF.gc index dd5ec06eea..88d8921646 100644 --- a/test/decompiler/reference/jak2/engine/gfx/sprite/particles/sparticle-launcher_REF.gc +++ b/test/decompiler/reference/jak2/engine/gfx/sprite/particles/sparticle-launcher_REF.gc @@ -1279,7 +1279,7 @@ (-> s5-1 w) (new 'static 'rgba :g #xff :a #x80) ) - (add-debug-matrix *display-sprite-marks* (bucket-id debug2) (-> obj origin) (meters 2.0)) + (add-debug-matrix *display-sprite-marks* (bucket-id debug2) (-> obj origin) (meters 2)) ) (sphere-in-view-frustum? (the-as sphere s5-1)) ) diff --git a/test/decompiler/reference/jak2/engine/level/level-h_REF.gc b/test/decompiler/reference/jak2/engine/level/level-h_REF.gc index 88ce5ae829..89a2c991b0 100644 --- a/test/decompiler/reference/jak2/engine/level/level-h_REF.gc +++ b/test/decompiler/reference/jak2/engine/level/level-h_REF.gc @@ -485,7 +485,7 @@ (login-begin (_type_) _type_ 19) (debug-print-region-splitbox (_type_ vector object) none 20) (get-art-group-by-name (_type_ string) art-group 21) - (level-method-22 () none 22) + (level-method-22 (_type_ symbol) int 22) (lookup-text (_type_ game-text-id symbol) string 23) (level-method-24 () none 24) (birth (_type_) _type_ 25) diff --git a/test/decompiler/reference/jak2/engine/level/level-info_REF.gc b/test/decompiler/reference/jak2/engine/level/level-info_REF.gc index cca2f5d476..c27c4bd6a8 100644 --- a/test/decompiler/reference/jak2/engine/level/level-info_REF.gc +++ b/test/decompiler/reference/jak2/engine/level/level-info_REF.gc @@ -162,7 +162,11 @@ :trans (new 'static 'vector :x 4014080.0 :y 348160.0 :z 1417216.0 :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) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.8743 0.0 0.4852)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.2117 0.8997 0.3816)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.4365 -0.4364 0.7866)) + ) :on-goto #f :vis-nick 'demo :want (new 'static 'inline-array level-buffer-state 6 @@ -182,7 +186,11 @@ :trans (new 'static 'vector :x 4014080.0 :y 348160.0 :z 1417216.0 :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) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.8743 0.0 0.4852)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.2117 0.8997 0.3816)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.4365 -0.4364 0.7866)) + ) :on-goto #f :vis-nick 'demo :want (new 'static 'inline-array level-buffer-state 6 @@ -201,7 +209,11 @@ :trans (new 'static 'vector :x 4014080.0 :y 348160.0 :z 1417216.0 :w 1.0) :quat (new 'static 'vector :w 1.0) :camera-trans (new 'static 'vector :x 4349280.0 :y 54451.406 :z 960109.4 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.9995 0.0 -0.0307 0.0037 0.9925 -0.1216 0.0305 -0.1216 -0.9921) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.9995 0.0 -0.0307)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.0037 0.9925 -0.1216)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.0305 -0.1216 -0.9921)) + ) :on-goto #f :vis-nick 'demo :want (new 'static 'inline-array level-buffer-state 6 @@ -221,7 +233,11 @@ :trans (new 'static 'vector :x 4014080.0 :y 348160.0 :z 1417216.0 :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) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.8743 0.0 0.4852)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.2117 0.8997 0.3816)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.4365 -0.4364 0.7866)) + ) :on-goto #f :vis-nick 'demo :want (new 'static 'inline-array level-buffer-state 6 @@ -241,7 +257,11 @@ :trans (new 'static 'vector :x 4468809.5 :y 32759.809 :z 775372.4 :w 1.0) :quat (new 'static 'vector :y -0.8818 :w -0.4715) :camera-trans (new 'static 'vector :x 4418151.0 :y 53856.258 :z 783193.3 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.1471 0.0 -0.9891 0.1193 0.9926 -0.0177 0.9818 -0.1207 -0.146) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.1471 0.0 -0.9891)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.1193 0.9926 -0.0177)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.9818 -0.1207 -0.146)) + ) :on-goto #f :vis-nick 'ctysluma :want (new 'static 'inline-array level-buffer-state 6 @@ -316,7 +336,11 @@ :trans (new 'static 'vector :x 4014080.0 :y 348160.0 :z 1417216.0 :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) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.8743 0.0 0.4852)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.2117 0.8997 0.3816)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.4365 -0.4364 0.7866)) + ) :on-goto #f :vis-nick 'title :want (new 'static 'inline-array level-buffer-state 6 @@ -336,7 +360,11 @@ :trans (new 'static 'vector :x 4014080.0 :y 348160.0 :z 1417216.0 :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) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.8743 0.0 0.4852)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.2117 0.8997 0.3816)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.4365 -0.4364 0.7866)) + ) :on-goto '(want-continue "title-start") :vis-nick 'title :want (new 'static 'inline-array level-buffer-state 6 @@ -356,7 +384,11 @@ :trans (new 'static 'vector :x 4014080.0 :y 348160.0 :z 1417216.0 :w 1.0) :quat (new 'static 'vector :w 1.0) :camera-trans (new 'static 'vector :x 4349280.0 :y 54451.406 :z 960109.4 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.9995 0.0 -0.0307 0.0037 0.9925 -0.1216 0.0305 -0.1216 -0.9921) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.9995 0.0 -0.0307)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.0037 0.9925 -0.1216)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.0305 -0.1216 -0.9921)) + ) :on-goto #f :vis-nick 'title :want (new 'static 'inline-array level-buffer-state 6 @@ -376,7 +408,11 @@ :trans (new 'static 'vector :x 4014080.0 :y 348160.0 :z 1417216.0 :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) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.8743 0.0 0.4852)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.2117 0.8997 0.3816)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.4365 -0.4364 0.7866)) + ) :on-goto #f :vis-nick 'title :want (new 'static 'inline-array level-buffer-state 6 @@ -451,7 +487,11 @@ :trans (new 'static 'vector :x 4544927.5 :y 104448.0 :z 4547219.5 :w 1.0) :quat (new 'static 'vector :y 0.5579 :w 0.8298) :camera-trans (new 'static 'vector :x 4518831.0 :y 122459.75 :z 4524515.5 :w 1.0) - :camera-rot (new 'static 'array float 9 0.655 0.0 -0.7555 0.1562 0.9783 0.1355 0.7392 -0.2068 0.6408) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.655 0.0 -0.7555)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.1562 0.9783 0.1355)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.7392 -0.2068 0.6408)) + ) :on-goto #f :vis-nick 'vinroom :want (new 'static 'inline-array level-buffer-state 6 @@ -471,7 +511,11 @@ :trans (new 'static 'vector :x 4589356.0 :y 104436.53 :z 4648794.0 :w 1.0) :quat (new 'static 'vector :y -0.0314 :w -0.9995) :camera-trans (new 'static 'vector :x 4588769.0 :y 125421.16 :z 4597935.5 :w 1.0) - :camera-rot (new 'static 'array float 9 0.9999 0.0 -0.0116 0.0014 0.9926 0.1206 0.0115 -0.1206 0.9926) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.9999 0.0 -0.0116)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.0014 0.9926 0.1206)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.0115 -0.1206 0.9926)) + ) :on-goto #f :vis-nick 'vinroom :want (new 'static 'inline-array level-buffer-state 6 @@ -491,7 +535,11 @@ :trans (new 'static 'vector :x 4539276.5 :y 104448.0 :z 4540455.0 :w 1.0) :quat (new 'static 'vector :y 0.9082 :w -0.4184) :camera-trans (new 'static 'vector :x 4575779.0 :y 125541.99 :z 4576384.0 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.7131 0.0 0.701 -0.0849 0.9926 -0.0863 -0.6958 -0.1211 -0.7078) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.7131 0.0 0.701)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.0849 0.9926 -0.0863)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.6958 -0.1211 -0.7078)) + ) :on-goto #f :vis-nick 'vinroom :want (new 'static 'inline-array level-buffer-state 6 @@ -511,7 +559,11 @@ :trans (new 'static 'vector :x 4544927.5 :y 104448.0 :z 4547219.5 :w 1.0) :quat (new 'static 'vector :y 0.5579 :w 0.8298) :camera-trans (new 'static 'vector :x 4518831.0 :y 122459.75 :z 4524515.5 :w 1.0) - :camera-rot (new 'static 'array float 9 0.655 0.0 -0.7555 0.1562 0.9783 0.1355 0.7392 -0.2068 0.6408) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.655 0.0 -0.7555)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.1562 0.9783 0.1355)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.7392 -0.2068 0.6408)) + ) :on-goto #f :vis-nick 'vinroom :want (new 'static 'inline-array level-buffer-state 6 @@ -531,7 +583,11 @@ :trans (new 'static 'vector :x 4587913.0 :y 104439.805 :z 4673306.0 :w 1.0) :quat (new 'static 'vector :y -0.9985 :w 0.0533) :camera-trans (new 'static 'vector :x 4586831.5 :y 123462.86 :z 4636004.5 :w 1.0) - :camera-rot (new 'static 'array float 9 0.9998 0.0 -0.0193 0.0037 0.9804 0.1966 0.0189 -0.1967 0.9802) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.9998 0.0 -0.0193)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.0037 0.9804 0.1966)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.0189 -0.1967 0.9802)) + ) :on-goto #f :vis-nick 'vinroom :want (new 'static 'inline-array level-buffer-state 6 @@ -551,7 +607,11 @@ :trans (new 'static 'vector :x 4590761.0 :y 104436.53 :z 4592729.0 :w 1.0) :quat (new 'static 'vector :y -0.8565 :w 0.516) :camera-trans (new 'static 'vector :x 4562904.0 :y 121919.08 :z 4567433.5 :w 1.0) - :camera-rot (new 'static 'array float 9 0.6942 0.0 -0.7196 0.1163 0.9868 0.1122 0.7102 -0.1616 0.6851) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.6942 0.0 -0.7196)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.1163 0.9868 0.1122)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.7102 -0.1616 0.6851)) + ) :on-goto #f :vis-nick 'vinroom :want (new 'static 'inline-array level-buffer-state 6 @@ -571,7 +631,11 @@ :trans (new 'static 'vector :x 4590761.0 :y 104436.53 :z 4592729.0 :w 1.0) :quat (new 'static 'vector :y -0.8565 :w 0.516) :camera-trans (new 'static 'vector :x 4562904.0 :y 121919.08 :z 4567433.5 :w 1.0) - :camera-rot (new 'static 'array float 9 0.6942 0.0 -0.7196 0.1163 0.9868 0.1122 0.7102 -0.1616 0.6851) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.6942 0.0 -0.7196)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.1163 0.9868 0.1122)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.7102 -0.1616 0.6851)) + ) :on-goto #f :vis-nick 'vinroom :want (new 'static 'inline-array level-buffer-state 6 @@ -648,7 +712,11 @@ :trans (new 'static 'vector :x -350734.34 :y 32768.0 :z 885082.1 :w 1.0) :quat (new 'static 'vector :y -0.6878 :w 0.7258) :camera-trans (new 'static 'vector :x -391860.62 :y 53180.008 :z 885485.2 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.0034 0.0 -0.9999 0.1944 0.9809 -0.0006 0.9809 -0.1944 -0.0033) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.0034 0.0 -0.9999)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.1944 0.9809 -0.0006)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.9809 -0.1944 -0.0033)) + ) :on-goto #f :vis-nick 'drillmid :want (new 'static 'inline-array level-buffer-state 6 @@ -668,7 +736,11 @@ :trans (new 'static 'vector :x 108875.77 :y 65527.81 :z 27369.473 :w 1.0) :quat (new 'static 'vector :y -0.7367 :w -0.6761) :camera-trans (new 'static 'vector :x 149320.5 :y 85877.15 :z 20893.287 :w 1.0) - :camera-rot (new 'static 'array float 9 0.1677 0.0 0.9858 -0.1916 0.9809 0.0326 -0.967 -0.1944 0.1645) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.1677 0.0 0.9858)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.1916 0.9809 0.0326)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.967 -0.1944 0.1645)) + ) :on-goto #f :vis-nick 'drillmid :want (new 'static 'inline-array level-buffer-state 6 @@ -688,7 +760,11 @@ :trans (new 'static 'vector :x 858380.7 :y 49152.0 :z -652619.75 :w 1.0) :quat (new 'static 'vector :y 0.9999 :w -0.0117) :camera-trans (new 'static 'vector :x 859736.06 :y 70317.67 :z -609632.25 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.9996 0.0 0.0278 -0.0049 0.984 -0.178 -0.0274 -0.1781 -0.9836) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.9996 0.0 0.0278)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.0049 0.984 -0.178)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.0274 -0.1781 -0.9836)) + ) :on-goto #f :vis-nick 'drillmid :want (new 'static 'inline-array level-buffer-state 6 @@ -708,7 +784,11 @@ :trans (new 'static 'vector :x -700254.2 :y 49141.35 :z -849702.06 :w 1.0) :quat (new 'static 'vector :y 0.6248 :w -0.7807) :camera-trans (new 'static 'vector :x -663167.4 :y 70235.75 :z -871562.9 :w 1.0) - :camera-rot (new 'static 'array float 9 0.506 0.0 0.8625 -0.1509 0.9845 0.0885 -0.8491 -0.175 0.4982) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.506 0.0 0.8625)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.1509 0.9845 0.0885)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.8491 -0.175 0.4982)) + ) :on-goto #f :vis-nick 'drillmid :want (new 'static 'inline-array level-buffer-state 6 @@ -728,7 +808,11 @@ :trans (new 'static 'vector :x -711355.6 :y 98293.35 :z -723961.06 :w 1.0) :quat (new 'static 'vector :y 0.9459 :w 0.3242) :camera-trans (new 'static 'vector :x -736509.1 :y 119387.34 :z -688592.9 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.7988 0.0 -0.6014 0.1034 0.985 -0.1374 0.5925 -0.172 -0.7869) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.7988 0.0 -0.6014)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.1034 0.985 -0.1374)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.5925 -0.172 -0.7869)) + ) :on-goto #f :vis-nick 'drillmid :want (new 'static 'inline-array level-buffer-state 6 @@ -748,7 +832,11 @@ :trans (new 'static 'vector :x 675723.25 :y 98298.67 :z -740878.75 :w 1.0) :quat (new 'static 'vector :y -0.4186 :w -0.9081) :camera-trans (new 'static 'vector :x 646477.8 :y 119392.664 :z -772429.8 :w 1.0) - :camera-rot (new 'static 'array float 9 0.7325 0.0 -0.6807 0.1193 0.9844 0.1284 0.6701 -0.1753 0.7211) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.7325 0.0 -0.6807)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.1193 0.9844 0.1284)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.6701 -0.1753 0.7211)) + ) :on-goto #f :vis-nick 'drillmid :want (new 'static 'inline-array level-buffer-state 6 @@ -768,7 +856,11 @@ :trans (new 'static 'vector :x -350734.34 :y 32768.0 :z 885082.1 :w 1.0) :quat (new 'static 'vector :y -0.6878 :w 0.7258) :camera-trans (new 'static 'vector :x -391860.62 :y 53180.008 :z 885485.2 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.0034 0.0 -0.9999 0.1944 0.9809 -0.0006 0.9809 -0.1944 -0.0033) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.0034 0.0 -0.9999)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.1944 0.9809 -0.0006)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.9809 -0.1944 -0.0033)) + ) :on-goto #f :vis-nick 'drillmid :want (new 'static 'inline-array level-buffer-state 6 @@ -788,7 +880,11 @@ :trans (new 'static 'vector :x 590609.2 :y -114696.6 :z -383934.47 :w 1.0) :quat (new 'static 'vector :y -0.1772 :w -0.9841) :camera-trans (new 'static 'vector :x 584495.94 :y -93804.95 :z -434038.78 :w 1.0) - :camera-rot (new 'static 'array float 9 0.9926 0.0 -0.1206 0.0145 0.9927 0.1196 0.1197 -0.1205 0.9854) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.9926 0.0 -0.1206)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.0145 0.9927 0.1196)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.1197 -0.1205 0.9854)) + ) :on-goto #f :vis-nick 'drillmid :want (new 'static 'inline-array level-buffer-state 6 @@ -1030,7 +1126,11 @@ :trans (new 'static 'vector :x 4626914.0 :y -207171.17 :z 2095240.8 :w 1.0) :quat (new 'static 'vector :x -0.0011 :y -0.7059 :z 0.0011 :w -0.7082) :camera-trans (new 'static 'vector :x 4575577.5 :y -186075.14 :z 2093692.5 :w 1.0) - :camera-rot (new 'static 'array float 9 0.0298 0.0 -0.9995 0.1202 0.9927 0.0035 0.9922 -0.1203 0.0296) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.0298 0.0 -0.9995)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.1202 0.9927 0.0035)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.9922 -0.1203 0.0296)) + ) :on-goto #f :vis-nick 'sewer :want (new 'static 'inline-array level-buffer-state 6 @@ -1050,7 +1150,11 @@ :trans (new 'static 'vector :x 4609054.5 :y -207171.17 :z 2096862.0 :w 1.0) :quat (new 'static 'vector :x -0.001 :y -0.7399 :z 0.0009 :w -0.6726) :camera-trans (new 'static 'vector :x 4566007.5 :y -186076.78 :z 2096889.9 :w 1.0) - :camera-rot (new 'static 'array float 9 0.0007 0.0 -0.9999 0.175 0.9845 0.0001 0.9845 -0.175 0.0007) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.0007 0.0 -0.9999)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.175 0.9845 0.0001)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.9845 -0.175 0.0007)) + ) :on-goto #f :vis-nick 'sewer :want (new 'static 'inline-array level-buffer-state 6 @@ -1182,7 +1286,11 @@ :trans (new 'static 'vector :x 4510956.0 :y -199200.77 :z 2098181.0 :w 1.0) :quat (new 'static 'vector :y 0.6989 :w 0.7151) :camera-trans (new 'static 'vector :x 4481299.0 :y -183847.73 :z 2098697.8 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.0182 0.0 -0.9998 0.2118 0.9772 -0.0038 0.9771 -0.2118 -0.0178) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.0182 0.0 -0.9998)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.2118 0.9772 -0.0038)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.9771 -0.2118 -0.0178)) + ) :on-goto #f :vis-nick 'sewesc :want (new 'static 'inline-array level-buffer-state 6 @@ -1202,7 +1310,11 @@ :trans (new 'static 'vector :x 4714868.5 :y -273857.75 :z 1846698.8 :w 1.0) :quat (new 'static 'vector :y -0.9872 :w 0.1593) :camera-trans (new 'static 'vector :x 4715987.0 :y -253211.44 :z 1895919.6 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.9996 0.0 0.027 -0.0033 0.9921 -0.1249 -0.0268 -0.125 -0.9917) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.9996 0.0 0.027)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.0033 0.9921 -0.1249)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.0268 -0.125 -0.9917)) + ) :on-goto '(begin (send-event "hosehead-10" 'die-fast) (send-event "hosehead-6" 'die-fast) @@ -1226,7 +1338,11 @@ :trans (new 'static 'vector :x 4890738.5 :y -236485.84 :z 1366747.1 :w 1.0) :quat (new 'static 'vector :y -0.0163 :w 0.9998) :camera-trans (new 'static 'vector :x 4882573.5 :y -215391.03 :z 1316146.0 :w 1.0) - :camera-rot (new 'static 'array float 9 0.9872 0.0 -0.1589 0.0191 0.9927 0.1189 0.1577 -0.1205 0.98) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.9872 0.0 -0.1589)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.0191 0.9927 0.1189)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.1577 -0.1205 0.98)) + ) :on-goto '(begin (send-event "battle-42" 'beaten) (send-event "hosehead-7" 'die-fast) @@ -1254,7 +1370,11 @@ :trans (new 'static 'vector :x 5797019.0 :y -373470.8 :z 2002612.2 :w 1.0) :quat (new 'static 'vector :y -0.5003 :w 0.8658) :camera-trans (new 'static 'vector :x 5833251.0 :y -356394.6 :z 2001096.2 :w 1.0) - :camera-rot (new 'static 'array float 9 0.0433 0.0 0.999 -0.1673 0.9858 0.0072 -0.9849 -0.1675 0.0427) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.0433 0.0 0.999)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.1673 0.9858 0.0072)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.9849 -0.1675 0.0427)) + ) :on-goto #f :vis-nick 'sewesc :want (new 'static 'inline-array level-buffer-state 6 @@ -1387,7 +1507,11 @@ :trans (new 'static 'vector :x 788477.56 :y -131086.34 :z 4270196.5 :w 1.0) :quat (new 'static 'vector :y 0.1202 :w -0.9927) :camera-trans (new 'static 'vector :x 787632.1 :y -109991.94 :z 4227172.0 :w 1.0) - :camera-rot (new 'static 'array float 9 0.9998 0.0 -0.019 0.0033 0.9845 0.1751 0.0187 -0.1751 0.9843) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.9998 0.0 -0.019)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.0033 0.9845 0.1751)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.0187 -0.1751 0.9843)) + ) :on-goto '(cond ((task-closed? "tomb-boss-resolution") (want-load 'tomba 'tombd) @@ -1414,7 +1538,11 @@ :trans (new 'static 'vector :x 546954.06 :y -221173.77 :z 4443352.5 :w 1.0) :quat (new 'static 'vector :y 0.4261 :w 0.9046) :camera-trans (new 'static 'vector :x 517370.25 :y -201672.7 :z 4408801.0 :w 1.0) - :camera-rot (new 'static 'array float 9 0.7655 0.0 -0.6434 0.0811 0.992 0.0964 0.6382 -0.126 0.7594) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.7655 0.0 -0.6434)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.0811 0.992 0.0964)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.6382 -0.126 0.7594)) + ) :on-goto #f :vis-nick 'tomba :want (new 'static 'inline-array level-buffer-state 6 @@ -1434,7 +1562,11 @@ :trans (new 'static 'vector :x 1024811.8 :y -221145.1 :z 4446944.5 :w 1.0) :quat (new 'static 'vector :y -0.3799 :w 0.9249) :camera-trans (new 'static 'vector :x 1055031.8 :y -200876.03 :z 4409347.5 :w 1.0) - :camera-rot (new 'static 'array float 9 0.7783 0.0 0.6278 -0.0749 0.9928 0.0929 -0.6233 -0.1194 0.7727) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.7783 0.0 0.6278)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.0749 0.9928 0.0929)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.6233 -0.1194 0.7727)) + ) :on-goto #f :vis-nick 'tomba :want (new 'static 'inline-array level-buffer-state 6 @@ -1454,7 +1586,11 @@ :trans (new 'static 'vector :x 1112014.0 :y -319493.3 :z 5235235.0 :w 1.0) :quat (new 'static 'vector :y 0.627 :w 0.7789) :camera-trans (new 'static 'vector :x 1069004.8 :y -298403.84 :z 5235391.5 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.0024 0.0 -0.9999 0.1759 0.9844 -0.0004 0.9844 -0.1759 -0.0024) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.0024 0.0 -0.9999)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.1759 0.9844 -0.0004)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.9844 -0.1759 -0.0024)) + ) :on-goto #f :vis-nick 'tomba :want (new 'static 'inline-array level-buffer-state 6 @@ -1474,7 +1610,11 @@ :trans (new 'static 'vector :x 301066.25 :y -249855.6 :z 5230534.5 :w 1.0) :quat (new 'static 'vector :y 0.7382 :w -0.6745) :camera-trans (new 'static 'vector :x 343957.5 :y -228723.92 :z 5233923.5 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.0808 0.0 0.9967 -0.1759 0.9842 -0.0142 -0.981 -0.1765 -0.0795) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.0808 0.0 0.9967)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.1759 0.9842 -0.0142)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.981 -0.1765 -0.0795)) + ) :on-goto #f :vis-nick 'tomba :want (new 'static 'inline-array level-buffer-state 6 @@ -1493,7 +1633,11 @@ :trans (new 'static 'vector :x 787469.1 :y -328398.44 :z 4641485.0 :w 1.0) :quat (new 'static 'vector :y 0.0711 :w -0.9974) :camera-trans (new 'static 'vector :x 786737.1 :y -308266.6 :z 4601024.0 :w 1.0) - :camera-rot (new 'static 'array float 9 0.9998 0.0 -0.0167 0.003 0.983 0.1833 0.0164 -0.1834 0.9828) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.9998 0.0 -0.0167)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.003 0.983 0.1833)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.0164 -0.1834 0.9828)) + ) :on-goto #f :vis-nick 'tomba :want (new 'static 'inline-array level-buffer-state 6 @@ -1568,7 +1712,11 @@ :trans (new 'static 'vector :x 1422869.2 :y -471039.6 :z 4741993.5 :w 1.0) :quat (new 'static 'vector :y 0.9394 :w -0.3426) :camera-trans (new 'static 'vector :x 1438060.1 :y -455063.16 :z 4770099.0 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.8799 0.0 0.475 -0.0932 0.9805 -0.1727 -0.4658 -0.1962 -0.8628) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.8799 0.0 0.475)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.0932 0.9805 -0.1727)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.4658 -0.1962 -0.8628)) + ) :on-goto '(begin (send-event "tomb-boulder-4" 'reset)) :vis-nick 'tombb :want (new 'static 'inline-array level-buffer-state 6 @@ -1588,7 +1736,11 @@ :trans (new 'static 'vector :x 1380638.8 :y -471055.56 :z 4636391.5 :w 1.0) :quat (new 'static 'vector :y -0.9989 :w -0.0447) :camera-trans (new 'static 'vector :x 1384123.6 :y -451303.44 :z 4682465.0 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.9969 0.0 0.0776 -0.0096 0.9922 -0.1238 -0.077 -0.1242 -0.9892) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.9969 0.0 0.0776)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.0096 0.9922 -0.1238)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.077 -0.1242 -0.9892)) + ) :on-goto '(begin (send-event "tomb-boulder-door-1" 'reset) (send-event "tomb-boulder-4" 'reset)) :vis-nick 'tombb :want (new 'static 'inline-array level-buffer-state 6 @@ -1663,7 +1815,11 @@ :trans (new 'static 'vector :x -40754.79 :y -225288.61 :z 5402507.0 :w 1.0) :quat (new 'static 'vector :y 0.9992 :w -0.0391) :camera-trans (new 'static 'vector :x -35458.664 :y -204193.8 :z 5445199.5 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.9923 0.0 0.1231 -0.0215 0.9845 -0.1739 -0.1212 -0.1752 -0.977) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.9923 0.0 0.1231)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.0215 0.9845 -0.1739)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.1212 -0.1752 -0.977)) + ) :on-goto #f :vis-nick 'tombc :want (new 'static 'inline-array level-buffer-state 6 @@ -1737,7 +1893,11 @@ :trans (new 'static 'vector :x 791477.06 :y -131071.59 :z 4095800.0 :w 1.0) :quat (new 'static 'vector :y 0.023 :w 0.9997) :camera-trans (new 'static 'vector :x 790579.2 :y -109949.75 :z 4052774.0 :w 1.0) - :camera-rot (new 'static 'array float 9 0.9997 0.0 -0.0236 0.0041 0.9843 0.176 0.0232 -0.1761 0.984) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.9997 0.0 -0.0236)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.0041 0.9843 0.176)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.0232 -0.1761 0.984)) + ) :on-goto #f :vis-nick 'tombd :want (new 'static 'inline-array level-buffer-state 6 @@ -1812,7 +1972,11 @@ :trans (new 'static 'vector :x 1434184.9 :y -471039.6 :z 4588284.5 :w 1.0) :quat (new 'static 'vector :y -0.7083 :w -0.7058) :camera-trans (new 'static 'vector :x 1475034.8 :y -450687.78 :z 4586864.0 :w 1.0) - :camera-rot (new 'static 'array float 9 0.0335 0.0 0.9994 -0.1939 0.9809 0.0065 -0.9804 -0.1941 0.0329) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.0335 0.0 0.9994)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.1939 0.9809 0.0065)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.9804 -0.1941 0.0329)) + ) :on-goto '(begin (task-close! "tomb-poles-poles") (send-event "tomb-boulder-4" 'reset)) :vis-nick 'tombe :want (new 'static 'inline-array level-buffer-state 6 @@ -1832,7 +1996,11 @@ :trans (new 'static 'vector :x 1884670.0 :y -511351.2 :z 4874090.5 :w 1.0) :quat (new 'static 'vector :y 0.1226 :w -0.9924) :camera-trans (new 'static 'vector :x 1884803.1 :y -503642.53 :z 4929176.0 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.9995 0.0 0.0305 -0.0041 0.9907 -0.1355 -0.0302 -0.1356 -0.9902) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.9995 0.0 0.0305)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.0041 0.9907 -0.1355)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.0302 -0.1356 -0.9902)) + ) :on-goto '(begin (task-close! "tomb-poles-poles") (send-event "tomb-boulder-4" 'reset)) :vis-nick 'tombe :want (new 'static 'inline-array level-buffer-state 6 @@ -1852,7 +2020,11 @@ :trans (new 'static 'vector :x 1628354.5 :y -593924.5 :z 5830940.0 :w 1.0) :quat (new 'static 'vector :y 0.5849 :w -0.811) :camera-trans (new 'static 'vector :x 1614351.1 :y -519260.56 :z 5832011.5 :w 1.0) - :camera-rot (new 'static 'array float 9 0.0 0.0 -1.0 1.0 0.0 0.0 0.0 -1.0 0.0) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.0 0.0 -1.0)) + (new 'static 'vector3s :data (new 'static 'array float 3 1.0 0.0 0.0)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.0 -1.0 0.0)) + ) :on-goto '(begin (task-close! "tomb-poles-poles") (alive "tomb-boulder-4" store #f) @@ -1985,7 +2157,11 @@ :trans (new 'static 'vector :x 788065.5 :y -294914.06 :z 5738845.5 :w 1.0) :quat (new 'static 'vector :y 0.1262 :w 0.9919) :camera-trans (new 'static 'vector :x 790481.3 :y -274841.2 :z 5698627.0 :w 1.0) - :camera-rot (new 'static 'array float 9 0.9982 0.0 0.0596 -0.0109 0.9829 0.1832 -0.0586 -0.1836 0.9812) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.9982 0.0 0.0596)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.0109 0.9829 0.1832)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.0586 -0.1836 0.9812)) + ) :on-goto #f :vis-nick 'tombboss :want (new 'static 'inline-array level-buffer-state 6 @@ -2004,7 +2180,11 @@ :trans (new 'static 'vector :x 790505.06 :y -294911.6 :z 5844947.0 :w 1.0) :quat (new 'static 'vector :y 0.7064 :w 0.7077) :camera-trans (new 'static 'vector :x 791466.4 :y -279683.06 :z 5803118.5 :w 1.0) - :camera-rot (new 'static 'array float 9 0.9955 0.0 -0.0944 0.0071 0.9971 0.0754 0.0941 -0.0758 0.9926) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.9955 0.0 -0.0944)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.0071 0.9971 0.0754)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.0941 -0.0758 0.9926)) + ) :on-goto #f :vis-nick 'tombboss :want (new 'static 'inline-array level-buffer-state 6 @@ -2080,8 +2260,12 @@ :trans (new 'static 'vector :x -107954.99 :y -266244.1 :z 7974990.0 :w 1.0) :quat (new 'static 'vector :y -0.8287 :w 0.5596) :camera-trans (new 'static 'vector :x -62684.773 :y -245149.28 :z 7998945.5 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.4672 0.0 0.8841 -0.1071 0.9926 -0.0566 -0.8776 -0.1211 -0.4637) - :on-goto '(apply (lambda () (set! *bot-record-path* -1) (none))) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.4672 0.0 0.8841)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.1071 0.9926 -0.0566)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.8776 -0.1211 -0.4637)) + ) + :on-goto '(apply ,(lambda () (set! *bot-record-path* -1) (none))) :vis-nick 'under :want (new 'static 'inline-array level-buffer-state 6 (new 'static 'level-buffer-state :name 'underb :display? 'display :force-vis? #f :force-inside? #f) @@ -2156,7 +2340,11 @@ :trans (new 'static 'vector :x 247507.36 :y -265523.62 :z 7132200.0 :w 1.0) :quat (new 'static 'vector :y -0.8764 :w -0.4814) :camera-trans (new 'static 'vector :x 205734.7 :y -246507.11 :z 7122904.5 :w 1.0) - :camera-rot (new 'static 'array float 9 0.2238 0.0 -0.9746 0.1366 0.9901 0.0313 0.9649 -0.1401 0.2216) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.2238 0.0 -0.9746)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.1366 0.9901 0.0313)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.9649 -0.1401 0.2216)) + ) :on-goto #f :vis-nick 'underb :want (new 'static 'inline-array level-buffer-state 6 @@ -2176,8 +2364,12 @@ :trans (new 'static 'vector :x -324353.22 :y -274439.78 :z 8362734.5 :w 1.0) :quat (new 'static 'vector :y 0.1254 :w -0.992) :camera-trans (new 'static 'vector :x -308162.56 :y -253848.78 :z 8316009.0 :w 1.0) - :camera-rot (new 'static 'array float 9 0.9453 0.0 0.3261 -0.0392 0.9927 0.1137 -0.3238 -0.1202 0.9384) - :on-goto '(apply (lambda () (reset! (-> *display* user0-clock)) (none))) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.9453 0.0 0.3261)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.0392 0.9927 0.1137)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.3238 -0.1202 0.9384)) + ) + :on-goto '(apply ,(lambda () (reset! (-> *display* user0-clock)) (none))) :vis-nick 'under :want (new 'static 'inline-array level-buffer-state 6 (new 'static 'level-buffer-state :name 'underb :display? 'display :force-vis? #f :force-inside? #f) @@ -2196,8 +2388,12 @@ :trans (new 'static 'vector :x -855634.3 :y -290815.6 :z 7995028.5 :w 1.0) :quat (new 'static 'vector :y 0.6088 :w 0.7933) :camera-trans (new 'static 'vector :x -899652.0 :y -269720.78 :z 7968866.5 :w 1.0) - :camera-rot (new 'static 'array float 9 0.5098 0.0 -0.8602 0.1043 0.9926 0.0618 0.8539 -0.1213 0.506) - :on-goto '(apply (lambda () (reset! (-> *display* user0-clock)) (none))) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.5098 0.0 -0.8602)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.1043 0.9926 0.0618)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.8539 -0.1213 0.506)) + ) + :on-goto '(apply ,(lambda () (reset! (-> *display* user0-clock)) (none))) :vis-nick 'under :want (new 'static 'inline-array level-buffer-state 6 (new 'static 'level-buffer-state :name 'underb :display? 'display :force-vis? #f :force-inside? #f) @@ -2216,7 +2412,11 @@ :trans (new 'static 'vector :x -1036247.9 :y -290824.2 :z 8022382.0 :w 1.0) :quat (new 'static 'vector :y 0.9395 :w 0.3424) :camera-trans (new 'static 'vector :x -1064226.9 :y -261537.8 :z 8065295.0 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.8375 0.0 -0.5463 0.1432 0.9649 -0.2196 0.5272 -0.2622 -0.8082) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.8375 0.0 -0.5463)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.1432 0.9649 -0.2196)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.5272 -0.2622 -0.8082)) + ) :on-goto #f :vis-nick 'under :want (new 'static 'inline-array level-buffer-state 6 @@ -2294,7 +2494,11 @@ :trans (new 'static 'vector :x 929748.56 :y 1803958.2 :z -568005.8 :w 1.0) :quat (new 'static 'vector :y -0.2346 :w -0.972) :camera-trans (new 'static 'vector :x 930469.5 :y 1825050.6 :z -611119.94 :w 1.0) - :camera-rot (new 'static 'array float 9 0.9999 0.0 0.0055 -0.0009 0.9845 0.175 -0.0054 -0.175 0.9845) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.9999 0.0 0.0055)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.0009 0.9845 0.175)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.0054 -0.175 0.9845)) + ) :on-goto #f :vis-nick 'palcab :want (new 'static 'inline-array level-buffer-state 6 @@ -2313,7 +2517,11 @@ :trans (new 'static 'vector :x 852117.94 :y 1597557.1 :z 857580.3 :w 1.0) :quat (new 'static 'vector :y -0.2086 :w 0.9779) :camera-trans (new 'static 'vector :x 854145.44 :y 1628896.9 :z 814619.9 :w 1.0) - :camera-rot (new 'static 'array float 9 0.9987 0.0 0.05 -0.0178 0.9338 0.3571 -0.0467 -0.3576 0.9326) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.9987 0.0 0.05)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.0178 0.9338 0.3571)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.0467 -0.3576 0.9326)) + ) :on-goto '(begin (kill "pal-gun-turret-1" store #f) (kill "crate-731" store #f) (kill "crate-730" store #f)) :vis-nick 'palcab :want (new 'static 'inline-array level-buffer-state 6 @@ -2390,7 +2598,11 @@ :trans (new 'static 'vector :x 598668.5 :y 69131.06 :z 2697706.0 :w 1.0) :quat (new 'static 'vector :y 0.9982 :w -0.0596) :camera-trans (new 'static 'vector :x 626226.0 :y 88880.74 :z 2734727.5 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.8034 0.0 0.5953 -0.0742 0.9922 -0.1001 -0.5907 -0.1246 -0.7971) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.8034 0.0 0.5953)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.0742 0.9922 -0.1001)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.5907 -0.1246 -0.7971)) + ) :on-goto #f :vis-nick 'palshaft :want (new 'static 'inline-array level-buffer-state 6 @@ -2522,7 +2734,11 @@ :trans (new 'static 'vector :x 589710.56 :y 1735487.9 :z 2039465.6 :w 1.0) :quat (new 'static 'vector :y -0.452 :w 0.8919) :camera-trans (new 'static 'vector :x 622908.2 :y 1756602.4 :z 2012121.9 :w 1.0) - :camera-rot (new 'static 'array float 9 0.635 0.0 0.7724 -0.1363 0.9843 0.112 -0.7603 -0.1764 0.625) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.635 0.0 0.7724)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.1363 0.9843 0.112)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.7603 -0.1764 0.625)) + ) :on-goto #f :vis-nick 'palroof :want (new 'static 'inline-array level-buffer-state 6 @@ -2542,7 +2758,11 @@ :trans (new 'static 'vector :x 870794.06 :y 1671154.9 :z 2027482.4 :w 1.0) :quat (new 'static 'vector :y 0.4793 :w 0.8776) :camera-trans (new 'static 'vector :x 831816.06 :y 1693132.0 :z 2045632.9 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.4095 0.0 -0.9122 0.179 0.9805 -0.0804 0.8945 -0.1963 -0.4016) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.4095 0.0 -0.9122)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.179 0.9805 -0.0804)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.8945 -0.1963 -0.4016)) + ) :on-goto #f :vis-nick 'palroof :want (new 'static 'inline-array level-buffer-state 6 @@ -2562,7 +2782,11 @@ :trans (new 'static 'vector :x 1175203.4 :y 1671159.0 :z 2741709.5 :w 1.0) :quat (new 'static 'vector :y -0.7428 :w 0.6694) :camera-trans (new 'static 'vector :x 1222606.5 :y 1692250.5 :z 2761046.0 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.3758 0.0 0.9266 -0.1125 0.9925 -0.0456 -0.9198 -0.1214 -0.373) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.3758 0.0 0.9266)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.1125 0.9925 -0.0456)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.9198 -0.1214 -0.373)) + ) :on-goto #f :vis-nick 'palroof :want (new 'static 'inline-array level-buffer-state 6 @@ -2695,7 +2919,11 @@ :trans (new 'static 'vector :x 634090.3 :y 1414044.9 :z 2314699.2 :w 1.0) :quat (new 'static 'vector :y 0.9525 :w -0.3044) :camera-trans (new 'static 'vector :x 660229.75 :y 1435136.9 :z 2348906.5 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.7945 0.0 0.6071 -0.1061 0.9845 -0.1389 -0.5978 -0.1748 -0.7823) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.7945 0.0 0.6071)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.1061 0.9845 -0.1389)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.5978 -0.1748 -0.7823)) + ) :on-goto #f :vis-nick 'throne :want (new 'static 'inline-array level-buffer-state 6 @@ -2715,7 +2943,11 @@ :trans (new 'static 'vector :x 634090.3 :y 1414044.9 :z 2314699.2 :w 1.0) :quat (new 'static 'vector :y 0.9525 :w -0.3044) :camera-trans (new 'static 'vector :x 660229.75 :y 1435136.9 :z 2348906.5 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.7945 0.0 0.6071 -0.1061 0.9845 -0.1389 -0.5978 -0.1748 -0.7823) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.7945 0.0 0.6071)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.1061 0.9845 -0.1389)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.5978 -0.1748 -0.7823)) + ) :on-goto #f :vis-nick 'throne :want (new 'static 'inline-array level-buffer-state 6 @@ -2961,7 +3193,11 @@ :trans (new 'static 'vector :x 689051.6 :y 1413868.8 :z 2516459.5 :w 1.0) :quat (new 'static 'vector :y 0.9997 :z -0.0013 :w -0.0211) :camera-trans (new 'static 'vector :x 664995.44 :y 1434960.8 :z 2552149.5 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.832 0.0 -0.5547 0.0972 0.9844 -0.1459 0.5461 -0.1753 -0.8191) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.832 0.0 -0.5547)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.0972 0.9844 -0.1459)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.5461 -0.1753 -0.8191)) + ) :on-goto #f :vis-nick 'palent :want (new 'static 'inline-array level-buffer-state 6 @@ -2980,7 +3216,11 @@ :trans (new 'static 'vector :x 790896.6 :y 1329465.4 :z 2156753.0 :w 1.0) :quat (new 'static 'vector :y -0.9978 :w -0.0661) :camera-trans (new 'static 'vector :x 780353.1 :y 1350556.0 :z 2198482.0 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.9694 0.0 -0.2452 0.0429 0.9845 -0.1696 0.2414 -0.175 -0.9544) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.9694 0.0 -0.2452)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.0429 0.9845 -0.1696)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.2414 -0.175 -0.9544)) + ) :on-goto #f :vis-nick 'palent :want (new 'static 'inline-array level-buffer-state 6 @@ -3056,7 +3296,11 @@ :trans (new 'static 'vector :x 1942413.2 :y 34479.31 :z 275525.62 :w 1.0) :quat (new 'static 'vector :y 0.4562 :w 0.8898) :camera-trans (new 'static 'vector :x 1921090.8 :y 53425.766 :z 237949.75 :w 1.0) - :camera-rot (new 'static 'array float 9 0.869 0.0 -0.4947 0.0663 0.9909 0.1165 0.4903 -0.134 0.8611) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.869 0.0 -0.4947)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.0663 0.9909 0.1165)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.4903 -0.134 0.8611)) + ) :on-goto #f :vis-nick 'prison :want (new 'static 'inline-array level-buffer-state 6 @@ -3076,7 +3320,11 @@ :trans (new 'static 'vector :x 1942413.2 :y 34479.31 :z 275525.62 :w 1.0) :quat (new 'static 'vector :y 0.4562 :w 0.8898) :camera-trans (new 'static 'vector :x 1921090.8 :y 53425.766 :z 237949.75 :w 1.0) - :camera-rot (new 'static 'array float 9 0.869 0.0 -0.4947 0.0663 0.9909 0.1165 0.4903 -0.134 0.8611) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.869 0.0 -0.4947)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.0663 0.9909 0.1165)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.4903 -0.134 0.8611)) + ) :on-goto #f :vis-nick 'prison :want (new 'static 'inline-array level-buffer-state 6 @@ -3096,7 +3344,11 @@ :trans (new 'static 'vector :x 1942413.2 :y 34479.31 :z 275525.62 :w 1.0) :quat (new 'static 'vector :y 0.4562 :w 0.8898) :camera-trans (new 'static 'vector :x 1921090.8 :y 53425.766 :z 237949.75 :w 1.0) - :camera-rot (new 'static 'array float 9 0.869 0.0 -0.4947 0.0663 0.9909 0.1165 0.4903 -0.134 0.8611) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.869 0.0 -0.4947)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.0663 0.9909 0.1165)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.4903 -0.134 0.8611)) + ) :on-goto #f :vis-nick 'prison :want (new 'static 'inline-array level-buffer-state 6 @@ -3282,7 +3534,11 @@ :trans (new 'static 'vector :x 2350610.0 :y 106496.0 :z 771498.4 :w 1.0) :quat (new 'static 'vector :y -0.9953 :w -0.0961) :camera-trans (new 'static 'vector :x 2314255.2 :y 125394.945 :z 794408.94 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.5484 0.0 -0.8361 0.1139 0.9906 -0.0747 0.8283 -0.1362 -0.5433) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.5484 0.0 -0.8361)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.1139 0.9906 -0.0747)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.8283 -0.1362 -0.5433)) + ) :on-goto #f :vis-nick 'forexita :want (new 'static 'inline-array level-buffer-state 6 @@ -3302,7 +3558,11 @@ :trans (new 'static 'vector :x 3037138.0 :y 295920.03 :z 686462.2 :w 1.0) :quat (new 'static 'vector :y -0.9805 :w -0.1963) :camera-trans (new 'static 'vector :x 3038071.2 :y 317014.03 :z 729465.6 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.9998 0.0 0.0192 -0.0033 0.9843 -0.1759 -0.0189 -0.1759 -0.9842) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.9998 0.0 0.0192)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.0033 0.9843 -0.1759)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.0189 -0.1759 -0.9842)) + ) :on-goto #f :vis-nick 'forexita :want (new 'static 'inline-array level-buffer-state 6 @@ -3378,7 +3638,11 @@ :trans (new 'static 'vector :x 2338518.2 :y 123119.62 :z 41246.31 :w 1.0) :quat (new 'static 'vector :y 0.9969 :w 0.078) :camera-trans (new 'static 'vector :x 2333426.0 :y 144214.02 :z 92192.36 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.9954 0.0 -0.0954 0.0116 0.9925 -0.1212 0.0947 -0.1217 -0.988) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.9954 0.0 -0.0954)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.0116 0.9925 -0.1212)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.0947 -0.1217 -0.988)) + ) :on-goto #f :vis-nick 'forexitb :want (new 'static 'inline-array level-buffer-state 6 @@ -3398,7 +3662,11 @@ :trans (new 'static 'vector :x 2698146.5 :y 245757.95 :z 169426.94 :w 1.0) :quat (new 'static 'vector :y -0.0838 :w 0.9964) :camera-trans (new 'static 'vector :x 2697397.8 :y 267042.0 :z 118417.0 :w 1.0) - :camera-rot (new 'static 'array float 9 0.9999 0.0 -0.0018 0.0002 0.992 0.1254 0.0018 -0.1254 0.992) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.9999 0.0 -0.0018)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.0002 0.992 0.1254)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.0018 -0.1254 0.992)) + ) :on-goto #f :vis-nick 'forexitb :want (new 'static 'inline-array level-buffer-state 6 @@ -3473,7 +3741,11 @@ :trans (new 'static 'vector :x 2999090.5 :y 33777.664 :z 924853.9 :w 1.0) :quat (new 'static 'vector :y -0.5685 :w 0.8226) :camera-trans (new 'static 'vector :x 3049807.8 :y 54745.496 :z 923088.06 :w 1.0) - :camera-rot (new 'static 'array float 9 0.0353 0.0 0.9993 -0.1203 0.9927 0.0042 -0.992 -0.1204 0.0351) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.0353 0.0 0.9993)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.1203 0.9927 0.0042)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.992 -0.1204 0.0351)) + ) :on-goto #f :vis-nick 'forresca :want (new 'static 'inline-array level-buffer-state 6 @@ -3549,7 +3821,11 @@ :trans (new 'static 'vector :x 1873107.4 :y 55606.066 :z 602671.94 :w 1.0) :quat (new 'static 'vector :y -0.6722 :w 0.7403) :camera-trans (new 'static 'vector :x 1917880.4 :y 74982.195 :z 601561.5 :w 1.0) - :camera-rot (new 'static 'array float 9 0.0242 0.0 0.9997 -0.1286 0.9916 0.0031 -0.9913 -0.1286 0.024) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.0242 0.0 0.9997)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.1286 0.9916 0.0031)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.9913 -0.1286 0.024)) + ) :on-goto #f :vis-nick 'forrescb :want (new 'static 'inline-array level-buffer-state 6 @@ -3624,7 +3900,11 @@ :trans (new 'static 'vector :x 3016168.2 :y 37068.39 :z 937013.7 :w 1.0) :quat (new 'static 'vector :y -0.4976 :w 0.8673) :camera-trans (new 'static 'vector :x 3033360.0 :y 56420.76 :z 903003.75 :w 1.0) - :camera-rot (new 'static 'array float 9 0.8897 0.0 0.4564 -0.0884 0.981 0.1723 -0.4478 -0.1937 0.8728) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.8897 0.0 0.4564)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.0884 0.981 0.1723)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.4478 -0.1937 0.8728)) + ) :on-goto #f :vis-nick 'fordumpa :want (new 'static 'inline-array level-buffer-state 6 @@ -3644,7 +3924,11 @@ :trans (new 'static 'vector :x 1918058.5 :y 94208.0 :z 1170815.8 :w 1.0) :quat (new 'static 'vector :y -0.7063 :w 0.7078) :camera-trans (new 'static 'vector :x 1960915.4 :y 115301.99 :z 1166747.2 :w 1.0) - :camera-rot (new 'static 'array float 9 0.0944 0.0 0.9955 -0.1741 0.9845 0.0165 -0.9801 -0.1749 0.0929) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.0944 0.0 0.9955)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.1741 0.9845 0.0165)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.9801 -0.1749 0.0929)) + ) :on-goto #f :vis-nick 'fordumpa :want (new 'static 'inline-array level-buffer-state 6 @@ -3721,7 +4005,11 @@ :trans (new 'static 'vector :x 1730156.5 :y 94197.35 :z 1192282.9 :w 1.0) :quat (new 'static 'vector :y 0.297 :w -0.9548) :camera-trans (new 'static 'vector :x 1769338.5 :y 113987.99 :z 1167812.6 :w 1.0) - :camera-rot (new 'static 'array float 9 0.5295 0.0 0.8483 -0.1061 0.9921 0.0662 -0.8416 -0.1251 0.5253) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.5295 0.0 0.8483)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.1061 0.9921 0.0662)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.8416 -0.1251 0.5253)) + ) :on-goto #f :vis-nick 'fordumpb :want (new 'static 'inline-array level-buffer-state 6 @@ -3797,7 +4085,11 @@ :trans (new 'static 'vector :x 2587180.8 :y 147453.95 :z 1446389.4 :w 1.0) :quat (new 'static 'vector :y -0.992 :w -0.1258) :camera-trans (new 'static 'vector :x 2593020.8 :y 168384.92 :z 1404207.9 :w 1.0) - :camera-rot (new 'static 'array float 9 0.9922 0.0 0.1239 -0.0242 0.9806 0.1943 -0.1215 -0.1958 0.973) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.9922 0.0 0.1239)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.0242 0.9806 0.1943)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.1215 -0.1958 0.973)) + ) :on-goto #f :vis-nick 'fordumpc :want (new 'static 'inline-array level-buffer-state 6 @@ -3817,7 +4109,11 @@ :trans (new 'static 'vector :x 2572884.0 :y 147681.28 :z 1454391.8 :w 1.0) :quat (new 'static 'vector :y 0.5741 :w 0.8187) :camera-trans (new 'static 'vector :x 2561296.0 :y 168775.69 :z 1412936.1 :w 1.0) - :camera-rot (new 'static 'array float 9 0.9529 0.0 -0.3032 0.0533 0.9844 0.1676 0.2984 -0.1758 0.938) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.9529 0.0 -0.3032)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.0533 0.9844 0.1676)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.2984 -0.1758 0.938)) + ) :on-goto #f :vis-nick 'fordumpc :want (new 'static 'inline-array level-buffer-state 6 @@ -3837,7 +4133,11 @@ :trans (new 'static 'vector :x 2572884.0 :y 147681.28 :z 1454391.8 :w 1.0) :quat (new 'static 'vector :y 0.5741 :w 0.8187) :camera-trans (new 'static 'vector :x 2561296.0 :y 168775.69 :z 1412936.1 :w 1.0) - :camera-rot (new 'static 'array float 9 0.9529 0.0 -0.3032 0.0533 0.9844 0.1676 0.2984 -0.1758 0.938) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.9529 0.0 -0.3032)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.0533 0.9844 0.1676)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.2984 -0.1758 0.938)) + ) :on-goto #f :vis-nick 'fordumpc :want (new 'static 'inline-array level-buffer-state 6 @@ -3969,7 +4269,11 @@ :trans (new 'static 'vector :x 10392208.0 :y 291383.72 :z -194403.94 :w 1.0) :quat (new 'static 'vector :y -0.7102 :w 0.7039) :camera-trans (new 'static 'vector :x 10421589.0 :y 307730.44 :z -178237.84 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.4791 0.0 0.8777 -0.1612 0.9829 -0.088 -0.8628 -0.1837 -0.4709) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.4791 0.0 0.8777)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.1612 0.9829 -0.088)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.8628 -0.1837 -0.4709)) + ) :on-goto #f :vis-nick 'strip :want (new 'static 'inline-array level-buffer-state 6 @@ -3989,7 +4293,11 @@ :trans (new 'static 'vector :x 10392208.0 :y 291383.72 :z -194403.94 :w 1.0) :quat (new 'static 'vector :y -0.7102 :w 0.7039) :camera-trans (new 'static 'vector :x 10421589.0 :y 307730.44 :z -178237.84 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.4791 0.0 0.8777 -0.1612 0.9829 -0.088 -0.8628 -0.1837 -0.4709) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.4791 0.0 0.8777)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.1612 0.9829 -0.088)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.8628 -0.1837 -0.4709)) + ) :on-goto #f :vis-nick 'strip :want (new 'static 'inline-array level-buffer-state 6 @@ -4009,7 +4317,11 @@ :trans (new 'static 'vector :x 9677517.0 :y 368640.0 :z -174448.23 :w 1.0) :quat (new 'static 'vector :y 0.7146 :w -0.6994) :camera-trans (new 'static 'vector :x 9634240.0 :y 388288.9 :z -160018.44 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.3543 0.0 -0.9351 0.1344 0.9896 -0.0509 0.9253 -0.1437 -0.3506) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.3543 0.0 -0.9351)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.1344 0.9896 -0.0509)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.9253 -0.1437 -0.3506)) + ) :on-goto #f :vis-nick 'strip :want (new 'static 'inline-array level-buffer-state 6 @@ -4029,7 +4341,11 @@ :trans (new 'static 'vector :x 11098202.0 :y 469663.34 :z 371692.34 :w 1.0) :quat (new 'static 'vector :y -0.878 :w 0.4786) :camera-trans (new 'static 'vector :x 11138690.0 :y 490766.34 :z 403012.8 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.6111 0.0 0.7915 -0.0967 0.9925 -0.0746 -0.7855 -0.1222 -0.6065) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.6111 0.0 0.7915)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.0967 0.9925 -0.0746)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.7855 -0.1222 -0.6065)) + ) :on-goto #f :vis-nick 'strip :want (new 'static 'inline-array level-buffer-state 6 @@ -4106,7 +4422,11 @@ :trans (new 'static 'vector :x 3439019.2 :y 22.1184 :z -1390645.6 :w 1.0) :quat (new 'static 'vector :y -0.6937 :w -0.7201) :camera-trans (new 'static 'vector :x 3390097.0 :y 20509.9 :z -1391488.6 :w 1.0) - :camera-rot (new 'static 'array float 9 0.0182 0.0 -0.9998 0.1205 0.9927 0.0021 0.9925 -0.1205 0.0181) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.0182 0.0 -0.9998)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.1205 0.9927 0.0021)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.9925 -0.1205 0.0181)) + ) :on-goto #f :vis-nick 'ruins :want (new 'static 'inline-array level-buffer-state 6 @@ -4125,7 +4445,11 @@ :trans (new 'static 'vector :x 4147599.2 :y 98304.0 :z -1044046.6 :w 1.0) :quat (new 'static 'vector :y -0.6965 :w -0.7174) :camera-trans (new 'static 'vector :x 4096345.2 :y 119399.625 :z -1043145.1 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.0169 0.0 -0.9998 0.1209 0.9926 -0.002 0.9925 -0.1209 -0.0168) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.0169 0.0 -0.9998)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.1209 0.9926 -0.002)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.9925 -0.1209 -0.0168)) + ) :on-goto #f :vis-nick 'ruins :want (new 'static 'inline-array level-buffer-state 6 @@ -4145,7 +4469,11 @@ :trans (new 'static 'vector :x 3597612.2 :y 2788.9663 :z -898058.25 :w 1.0) :quat (new 'static 'vector :y 0.9108 :w -0.4127) :camera-trans (new 'static 'vector :x 3600432.0 :y 23778.51 :z -847371.9 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.9974 0.0 0.0716 -0.0084 0.9929 -0.1179 -0.071 -0.1182 -0.9904) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.9974 0.0 0.0716)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.0084 0.9929 -0.1179)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.071 -0.1182 -0.9904)) + ) :on-goto #f :vis-nick 'ruins :want (new 'static 'inline-array level-buffer-state 6 @@ -4165,7 +4493,11 @@ :trans (new 'static 'vector :x 4338732.0 :y 99318.99 :z -1983915.2 :w 1.0) :quat (new 'static 'vector :y 0.964 :w 0.2657) :camera-trans (new 'static 'vector :x 4320175.0 :y 120442.47 :z -1945102.8 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.9011 0.0 -0.4335 0.0765 0.9843 -0.159 0.4267 -0.1764 -0.887) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.9011 0.0 -0.4335)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.0765 0.9843 -0.159)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.4267 -0.1764 -0.887)) + ) :on-goto '(cond ((task-closed? "ruins-mech-introduction") (want-sound 'ruins1 'ruins3 'mech) @@ -4192,7 +4524,11 @@ :trans (new 'static 'vector :x 4631596.0 :y 188402.08 :z -991184.9 :w 1.0) :quat (new 'static 'vector :y -0.9987 :w -0.0508) :camera-trans (new 'static 'vector :x 4670624.0 :y 206847.19 :z -979009.56 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.3887 0.0 0.9213 -0.3308 0.9333 -0.1395 -0.8599 -0.359 -0.3628) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.3887 0.0 0.9213)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.3308 0.9333 -0.1395)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.8599 -0.359 -0.3628)) + ) :on-goto #f :vis-nick 'ruins :want (new 'static 'inline-array level-buffer-state 6 @@ -4326,7 +4662,11 @@ :trans (new 'static 'vector :x 2288109.5 :y 8801.075 :z -3452941.0 :w 1.0) :quat (new 'static 'vector :y -0.9998 :w -0.0175) :camera-trans (new 'static 'vector :x 2289175.2 :y 29895.475 :z -3401749.0 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.9997 0.0 0.02 -0.0024 0.9925 -0.1216 -0.0198 -0.1216 -0.9923) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.9997 0.0 0.02)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.0024 0.9925 -0.1216)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.0198 -0.1216 -0.9923)) + ) :on-goto #f :vis-nick 'atoll :want (new 'static 'inline-array level-buffer-state 6 @@ -4346,7 +4686,11 @@ :trans (new 'static 'vector :x 2284922.5 :y 10056.09 :z -3324549.0 :w 1.0) :quat (new 'static 'vector :y 0.9999 :w 0.0044) :camera-trans (new 'static 'vector :x 2280927.8 :y 29319.986 :z -3280357.5 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.9959 0.0 -0.0902 0.0117 0.9914 -0.1297 0.0894 -0.1302 -0.9874) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.9959 0.0 -0.0902)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.0117 0.9914 -0.1297)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.0894 -0.1302 -0.9874)) + ) :on-goto #f :vis-nick 'atoll :want (new 'static 'inline-array level-buffer-state 6 @@ -4366,7 +4710,11 @@ :trans (new 'static 'vector :x 2288109.5 :y 8801.075 :z -3452941.0 :w 1.0) :quat (new 'static 'vector :y -0.9998 :w -0.0175) :camera-trans (new 'static 'vector :x 2289175.2 :y 29895.475 :z -3401749.0 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.9997 0.0 0.02 -0.0024 0.9925 -0.1216 -0.0198 -0.1216 -0.9923) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.9997 0.0 0.02)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.0024 0.9925 -0.1216)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.0198 -0.1216 -0.9923)) + ) :on-goto #f :vis-nick 'atoll :want (new 'static 'inline-array level-buffer-state 6 @@ -4386,7 +4734,11 @@ :trans (new 'static 'vector :x 2026609.9 :y 53760.0 :z -3877329.2 :w 1.0) :quat (new 'static 'vector :y 0.6803 :w -0.7328) :camera-trans (new 'static 'vector :x 2043578.0 :y 77001.93 :z -3838212.5 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.8804 0.0 0.4741 -0.1035 0.9758 -0.1923 -0.4627 -0.2184 -0.8591) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.8804 0.0 0.4741)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.1035 0.9758 -0.1923)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.4627 -0.2184 -0.8591)) + ) :on-goto #f :vis-nick 'atoll :want (new 'static 'inline-array level-buffer-state 6 @@ -4406,7 +4758,11 @@ :trans (new 'static 'vector :x 1762283.5 :y 53711.668 :z -4027283.8 :w 1.0) :quat (new 'static 'vector :x -0.0001 :y 0.9401 :w 0.3406) :camera-trans (new 'static 'vector :x 1721253.9 :y 95286.07 :z -3956288.2 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.8548 0.0 -0.5188 0.1357 0.9651 -0.2236 0.5008 -0.2616 -0.825) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.8548 0.0 -0.5188)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.1357 0.9651 -0.2236)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.5008 -0.2616 -0.825)) + ) :on-goto #f :vis-nick 'atoll :want (new 'static 'inline-array level-buffer-state 6 @@ -4426,7 +4782,11 @@ :trans (new 'static 'vector :x 1552601.1 :y 53711.668 :z -4779247.5 :w 1.0) :quat (new 'static 'vector :y 0.962 :w -0.2727) :camera-trans (new 'static 'vector :x 1513808.8 :y 73827.125 :z -4806706.5 :w 1.0) - :camera-rot (new 'static 'array float 9 0.5386 0.0 -0.8425 0.1216 0.9895 0.0777 0.8337 -0.1443 0.5329) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.5386 0.0 -0.8425)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.1216 0.9895 0.0777)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.8337 -0.1443 0.5329)) + ) :on-goto #f :vis-nick 'atoll :want (new 'static 'inline-array level-buffer-state 6 @@ -4446,7 +4806,11 @@ :trans (new 'static 'vector :x 1874199.0 :y 6223.872 :z -4438985.0 :w 1.0) :quat (new 'static 'vector :y 0.3639 :w 0.9314) :camera-trans (new 'static 'vector :x 1838270.9 :y 27303.936 :z -4475633.0 :w 1.0) - :camera-rot (new 'static 'array float 9 0.702 0.0 -0.7121 0.0863 0.9926 0.0851 0.7068 -0.1212 0.6968) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.702 0.0 -0.7121)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.0863 0.9926 0.0851)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.7068 -0.1212 0.6968)) + ) :on-goto #f :vis-nick 'atoll :want (new 'static 'inline-array level-buffer-state 6 @@ -4466,7 +4830,11 @@ :trans (new 'static 'vector :x 2293206.8 :y 4907.4175 :z -4265200.5 :w 1.0) :quat (new 'static 'vector :x -0.0013 :y -0.8686 :z 0.0003 :w -0.4954) :camera-trans (new 'static 'vector :x 2213943.0 :y 46524.414 :z -4285937.0 :w 1.0) - :camera-rot (new 'static 'array float 9 0.2418 0.0 -0.9703 0.2518 0.9657 0.0627 0.937 -0.2595 0.2335) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.2418 0.0 -0.9703)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.2518 0.9657 0.0627)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.937 -0.2595 0.2335)) + ) :on-goto #f :vis-nick 'atoll :want (new 'static 'inline-array level-buffer-state 6 @@ -4486,7 +4854,11 @@ :trans (new 'static 'vector :x 1786353.6 :y 173371.8 :z -4885427.5 :w 1.0) :quat (new 'static 'vector :y 0.7184 :w 0.6955) :camera-trans (new 'static 'vector :x 1744994.2 :y 194462.92 :z -4897220.0 :w 1.0) - :camera-rot (new 'static 'array float 9 0.276 0.0 -0.9611 0.1691 0.9843 0.0485 0.9461 -0.1759 0.2717) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.276 0.0 -0.9611)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.1691 0.9843 0.0485)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.9461 -0.1759 0.2717)) + ) :on-goto #f :vis-nick 'atoll :want (new 'static 'inline-array level-buffer-state 6 @@ -4618,7 +4990,11 @@ :trans (new 'static 'vector :x -2323968.5 :y 492110.66 :z 847190.44 :w 1.0) :quat (new 'static 'vector :y 0.7072 :w -0.7069) :camera-trans (new 'static 'vector :x -2366673.8 :y 513098.12 :z 852492.3 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.1179 0.0 -0.993 0.1507 0.9884 -0.0179 0.9815 -0.1517 -0.1166) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.1179 0.0 -0.993)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.1507 0.9884 -0.0179)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.9815 -0.1517 -0.1166)) + ) :on-goto #f :vis-nick 'mountain :want (new 'static 'inline-array level-buffer-state 6 @@ -4638,7 +5014,11 @@ :trans (new 'static 'vector :x -2344385.0 :y 493619.2 :z 855861.7 :w 1.0) :quat (new 'static 'vector :y 0.7897 :w -0.6134) :camera-trans (new 'static 'vector :x -2395385.8 :y 514670.2 :z 853979.1 :w 1.0) - :camera-rot (new 'static 'array float 9 0.0086 0.0 -0.9999 0.1517 0.9884 0.0013 0.9883 -0.1517 0.0085) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.0086 0.0 -0.9999)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.1517 0.9884 0.0013)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.9883 -0.1517 0.0085)) + ) :on-goto '(want-continue "mountain-top") :vis-nick 'mountain :want (new 'static 'inline-array level-buffer-state 6 @@ -4657,7 +5037,11 @@ :trans (new 'static 'vector :x -2334868.2 :y 492775.0 :z 856738.6 :w 1.0) :quat (new 'static 'vector :y -0.9432 :w 0.3321) :camera-trans (new 'static 'vector :x -2363013.5 :y 513332.03 :z 816399.1 :w 1.0) - :camera-rot (new 'static 'array float 9 0.8248 0.0 -0.5653 0.0855 0.9884 0.1247 0.5588 -0.1512 0.8153) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.8248 0.0 -0.5653)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.0855 0.9884 0.1247)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.5588 -0.1512 0.8153)) + ) :on-goto #f :vis-nick 'mountain :want (new 'static 'inline-array level-buffer-state 6 @@ -4677,7 +5061,11 @@ :trans (new 'static 'vector :x -1928867.9 :y 119072.36 :z 762851.3 :w 1.0) :quat (new 'static 'vector :y 0.1361 :w -0.9906) :camera-trans (new 'static 'vector :x -1970202.2 :y 140129.89 :z 792840.2 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.5181 0.0 -0.8552 0.1229 0.9896 -0.0744 0.8464 -0.1437 -0.5127) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.5181 0.0 -0.8552)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.1229 0.9896 -0.0744)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.8464 -0.1437 -0.5127)) + ) :on-goto '(want-continue "mountain-warp-bottom") :vis-nick 'mountain :want (new 'static 'inline-array level-buffer-state 6 @@ -4697,7 +5085,11 @@ :trans (new 'static 'vector :x -1928867.9 :y 119072.36 :z 762851.3 :w 1.0) :quat (new 'static 'vector :y 0.1361 :w -0.9906) :camera-trans (new 'static 'vector :x -1970202.2 :y 140129.89 :z 792840.2 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.5181 0.0 -0.8552 0.1229 0.9896 -0.0744 0.8464 -0.1437 -0.5127) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.5181 0.0 -0.8552)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.1229 0.9896 -0.0744)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.8464 -0.1437 -0.5127)) + ) :on-goto #f :vis-nick 'mountain :want (new 'static 'inline-array level-buffer-state 6 @@ -4717,7 +5109,11 @@ :trans (new 'static 'vector :x -3678913.0 :y 242899.36 :z 547868.7 :w 1.0) :quat (new 'static 'vector :x -0.0014 :y 0.2389 :z -0.0006 :w -0.971) :camera-trans (new 'static 'vector :x -3658512.0 :y 263992.94 :z 500907.62 :w 1.0) - :camera-rot (new 'static 'array float 9 0.9168 0.0 0.3991 -0.0485 0.9925 0.1115 -0.3961 -0.1217 0.91) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.9168 0.0 0.3991)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.0485 0.9925 0.1115)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.3961 -0.1217 0.91)) + ) :on-goto '(begin (kill "metalmonk-72" store #f) (kill "metalmonk-73" store #f) @@ -4743,7 +5139,11 @@ :trans (new 'static 'vector :x -2598416.5 :y 385700.25 :z -131157.2 :w 1.0) :quat (new 'static 'vector :y 0.0011 :w -0.9999) :camera-trans (new 'static 'vector :x -2589366.2 :y 398878.72 :z -150739.77 :w 1.0) - :camera-rot (new 'static 'array float 9 0.9091 0.0 0.4165 -0.122 0.9561 0.2663 -0.3982 -0.2929 0.8692) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.9091 0.0 0.4165)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.122 0.9561 0.2663)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.3982 -0.2929 0.8692)) + ) :on-goto #f :vis-nick 'mountain :want (new 'static 'inline-array level-buffer-state 6 @@ -4763,7 +5163,11 @@ :trans (new 'static 'vector :x -2389323.0 :y 495015.53 :z 963041.25 :w 1.0) :quat (new 'static 'vector :y -0.5072 :w 0.8617) :camera-trans (new 'static 'vector :x -2350041.5 :y 516124.7 :z 945515.75 :w 1.0) - :camera-rot (new 'static 'array float 9 0.4066 0.0 0.9135 -0.1607 0.9843 0.0715 -0.8993 -0.1759 0.4003) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.4066 0.0 0.9135)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.1607 0.9843 0.0715)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.8993 -0.1759 0.4003)) + ) :on-goto #f :vis-nick 'mountain :want (new 'static 'inline-array level-buffer-state 6 @@ -4783,7 +5187,11 @@ :trans (new 'static 'vector :x -2488779.2 :y 278519.4 :z 485033.97 :w 1.0) :quat (new 'static 'vector :y 0.7587 :w 0.6513) :camera-trans (new 'static 'vector :x -2531265.8 :y 299651.06 :z 491683.84 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.1542 0.0 -0.988 0.1754 0.9841 -0.0273 0.9723 -0.1776 -0.1517) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.1542 0.0 -0.988)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.1754 0.9841 -0.0273)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.9723 -0.1776 -0.1517)) + ) :on-goto #f :vis-nick 'mountain :want (new 'static 'inline-array level-buffer-state 6 @@ -4803,7 +5211,11 @@ :trans (new 'static 'vector :x -2629474.0 :y 324481.44 :z 689014.4 :w 1.0) :quat (new 'static 'vector :y 0.9621 :w -0.2726) :camera-trans (new 'static 'vector :x -2631735.8 :y 344205.72 :z 735101.3 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.9987 0.0 -0.0494 0.0061 0.9922 -0.1239 0.049 -0.1241 -0.991) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.9987 0.0 -0.0494)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.0061 0.9922 -0.1239)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.049 -0.1241 -0.991)) + ) :on-goto #f :vis-nick 'mountain :want (new 'static 'inline-array level-buffer-state 6 @@ -4937,7 +5349,11 @@ :trans (new 'static 'vector :x -2384070.2 :y 133192.9 :z 2334096.2 :w 1.0) :quat (new 'static 'vector :y -0.1023 :w -0.9947) :camera-trans (new 'static 'vector :x -2391456.2 :y 153984.2 :z 2292528.2 :w 1.0) - :camera-rot (new 'static 'array float 9 0.9845 0.0 -0.1749 0.0313 0.9838 0.1762 0.1721 -0.1789 0.9686) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.9845 0.0 -0.1749)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.0313 0.9838 0.1762)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.1721 -0.1789 0.9686)) + ) :on-goto #f :vis-nick 'forest :want (new 'static 'inline-array level-buffer-state 6 @@ -4957,7 +5373,11 @@ :trans (new 'static 'vector :x -2612326.8 :y 149986.92 :z 3560990.0 :w 1.0) :quat (new 'static 'vector :x 0.0001 :y 0.3242 :z -0.0013 :w 0.9459) :camera-trans (new 'static 'vector :x -2642006.0 :y 171092.78 :z 3519268.5 :w 1.0) - :camera-rot (new 'static 'array float 9 0.815 0.0 -0.5794 0.0703 0.9925 0.099 0.5751 -0.1214 0.809) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.815 0.0 -0.5794)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.0703 0.9925 0.099)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.5751 -0.1214 0.809)) + ) :on-goto #f :vis-nick 'forest :want (new 'static 'inline-array level-buffer-state 6 @@ -5091,7 +5511,11 @@ :trans (new 'static 'vector :x -1980823.1 :y 116416.516 :z -62922.344 :w 1.0) :quat (new 'static 'vector :y -0.9607 :z -0.0014 :w -0.2775) :camera-trans (new 'static 'vector :x -2001351.5 :y 131235.44 :z -44465.766 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.6695 0.0 -0.7427 0.1703 0.9733 -0.1535 0.7229 -0.2294 -0.6516) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.6695 0.0 -0.7427)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.1703 0.9733 -0.1535)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.7229 -0.2294 -0.6516)) + ) :on-goto #f :vis-nick 'mountain :want (new 'static 'inline-array level-buffer-state 6 @@ -5111,7 +5535,11 @@ :trans (new 'static 'vector :x -2134463.8 :y 66739.41 :z -724928.1 :w 1.0) :quat (new 'static 'vector :y 0.5441 :w 0.839) :camera-trans (new 'static 'vector :x -2155888.2 :y 87833.4 :z -762217.25 :w 1.0) - :camera-rot (new 'static 'array float 9 0.8643 0.0 -0.5028 0.0885 0.9843 0.1521 0.4949 -0.176 0.8508) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.8643 0.0 -0.5028)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.0885 0.9843 0.1521)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.4949 -0.176 0.8508)) + ) :on-goto #f :vis-nick 'mincan :want (new 'static 'inline-array level-buffer-state 6 @@ -5531,7 +5959,11 @@ :trans (new 'static 'vector :x -960852.8 :y 39766.836 :z -805551.7 :w 1.0) :quat (new 'static 'vector :x 0.0011 :y -0.7123 :z 0.0005 :w -0.7018) :camera-trans (new 'static 'vector :x -1010105.1 :y 60324.25 :z -807308.06 :w 1.0) - :camera-rot (new 'static 'array float 9 0.0363 0.0 -0.9993 0.1199 0.9927 0.0043 0.9921 -0.1199 0.0361) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.0363 0.0 -0.9993)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.1199 0.9927 0.0043)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.9921 -0.1199 0.0361)) + ) :on-goto #f :vis-nick 'ctygena :want (new 'static 'inline-array level-buffer-state 6 @@ -5551,7 +5983,11 @@ :trans (new 'static 'vector :x -1549425.0 :y 32753.254 :z -805722.1 :w 1.0) :quat (new 'static 'vector :y -0.6395 :w 0.7687) :camera-trans (new 'static 'vector :x -1498315.1 :y 53847.656 :z -808805.2 :w 1.0) - :camera-rot (new 'static 'array float 9 0.0599 0.0 0.9982 -0.1207 0.9926 0.0072 -0.9908 -0.1209 0.0595) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.0599 0.0 0.9982)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.1207 0.9926 0.0072)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.9908 -0.1209 0.0595)) + ) :on-goto #f :vis-nick 'ctygena :want (new 'static 'inline-array level-buffer-state 6 @@ -5571,7 +6007,11 @@ :trans (new 'static 'vector :x -256512.4 :y 32768.0 :z -116162.15 :w 1.0) :quat (new 'static 'vector :y 0.0466 :w -0.9989) :camera-trans (new 'static 'vector :x -255002.22 :y 53861.992 :z -167339.62 :w 1.0) - :camera-rot (new 'static 'array float 9 0.9995 0.0 0.0305 -0.0037 0.9925 0.1216 -0.0302 -0.1216 0.9921) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.9995 0.0 0.0305)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.0037 0.9925 0.1216)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.0302 -0.1216 0.9921)) + ) :on-goto #f :vis-nick 'ctygena :want (new 'static 'inline-array level-buffer-state 6 @@ -5649,7 +6089,11 @@ :trans (new 'static 'vector :x 686539.56 :y 40271.87 :z -1015174.75 :w 1.0) :quat (new 'static 'vector :x 0.0009 :y 0.6545 :z 0.0007 :w -0.756) :camera-trans (new 'static 'vector :x 647089.75 :y 59344.49 :z -1026199.94 :w 1.0) - :camera-rot (new 'static 'array float 9 0.3195 0.0 -0.9475 0.151 0.9872 0.0509 0.9354 -0.1594 0.3154) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.3195 0.0 -0.9475)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.151 0.9872 0.0509)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.9354 -0.1594 0.3154)) + ) :on-goto #f :vis-nick 'ctygenb :want (new 'static 'inline-array level-buffer-state 6 @@ -5669,7 +6113,11 @@ :trans (new 'static 'vector :x 685747.8 :y 32765.543 :z -1213995.9 :w 1.0) :quat (new 'static 'vector :y 0.9949 :w 0.1007) :camera-trans (new 'static 'vector :x 686984.8 :y 53859.53 :z -1162769.6 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.9997 0.0 0.0243 -0.0029 0.9926 -0.1207 -0.0242 -0.1207 -0.9923) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.9997 0.0 0.0243)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.0029 0.9926 -0.1207)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.0242 -0.1207 -0.9923)) + ) :on-goto #f :vis-nick 'ctygenb :want (new 'static 'inline-array level-buffer-state 6 @@ -5689,7 +6137,11 @@ :trans (new 'static 'vector :x 1092419.1 :y 32768.0 :z -269985.38 :w 1.0) :quat (new 'static 'vector :y 0.749 :w 0.6624) :camera-trans (new 'static 'vector :x 1041223.7 :y 53868.543 :z -270698.9 :w 1.0) - :camera-rot (new 'static 'array float 9 0.0146 0.0 -0.9998 0.1217 0.9925 0.0017 0.9924 -0.1217 0.0145) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.0146 0.0 -0.9998)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.1217 0.9925 0.0017)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.9924 -0.1217 0.0145)) + ) :on-goto #f :vis-nick 'ctygenb :want (new 'static 'inline-array level-buffer-state 6 @@ -5767,7 +6219,11 @@ :trans (new 'static 'vector :x 781528.25 :y 39733.656 :z 1322450.5 :w 1.0) :quat (new 'static 'vector :y -0.9673 :w 0.2534) :camera-trans (new 'static 'vector :x 778921.56 :y 60838.707 :z 1373583.8 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.9988 0.0 -0.0471 0.0057 0.9925 -0.1213 0.0468 -0.1214 -0.9914) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.9988 0.0 -0.0471)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.0057 0.9925 -0.1213)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.0468 -0.1214 -0.9914)) + ) :on-goto #f :vis-nick 'ctygenc :want (new 'static 'inline-array level-buffer-state 6 @@ -5787,7 +6243,11 @@ :trans (new 'static 'vector :x 883602.25 :y 32770.047 :z 35872.36 :w 1.0) :quat (new 'static 'vector :y -0.9999 :w 0.0085) :camera-trans (new 'static 'vector :x 883981.5 :y 53224.242 :z 84615.17 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.9999 0.0 0.0087 -0.001 0.9926 -0.1211 -0.0086 -0.1211 -0.9925) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.9999 0.0 0.0087)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.001 0.9926 -0.1211)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.0086 -0.1211 -0.9925)) + ) :on-goto #f :vis-nick 'ctygenc :want (new 'static 'inline-array level-buffer-state 6 @@ -5807,7 +6267,11 @@ :trans (new 'static 'vector :x 141574.14 :y 32772.098 :z 1081112.6 :w 1.0) :quat (new 'static 'vector :y -0.7665 :w -0.6422) :camera-trans (new 'static 'vector :x 90349.98 :y 53866.496 :z 1080261.0 :w 1.0) - :camera-rot (new 'static 'array float 9 0.0167 0.0 -0.9998 0.1206 0.9926 0.002 0.9925 -0.1206 0.0166) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.0167 0.0 -0.9998)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.1206 0.9926 0.002)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.9925 -0.1206 0.0166)) + ) :on-goto #f :vis-nick 'ctygenc :want (new 'static 'inline-array level-buffer-state 6 @@ -5884,7 +6348,11 @@ :trans (new 'static 'vector :x 4350905.0 :y 33359.87 :z 908947.44 :w 1.0) :quat (new 'static 'vector :x -0.0001 :y 0.9951 :w -0.0979) :camera-trans (new 'static 'vector :x 4349280.0 :y 54451.406 :z 960109.4 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.9995 0.0 -0.0307 0.0037 0.9925 -0.1216 0.0305 -0.1216 -0.9921) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.9995 0.0 -0.0307)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.0037 0.9925 -0.1216)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.0305 -0.1216 -0.9921)) + ) :on-goto #f :vis-nick 'ctysluma :want (new 'static 'inline-array level-buffer-state 6 @@ -5904,7 +6372,11 @@ :trans (new 'static 'vector :x 4660709.0 :y 33364.38 :z 61360.54 :w 1.0) :quat (new 'static 'vector :y -0.2484 :w -0.9686) :camera-trans (new 'static 'vector :x 4635918.5 :y 54458.367 :z 26214.4 :w 1.0) - :camera-rot (new 'static 'array float 9 0.8175 0.0 -0.5758 0.1013 0.9843 0.1439 0.5668 -0.176 0.8048) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.8175 0.0 -0.5758)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.1013 0.9843 0.1439)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.5668 -0.176 0.8048)) + ) :on-goto #f :vis-nick 'ctysluma :want (new 'static 'inline-array level-buffer-state 6 @@ -5924,7 +6396,11 @@ :trans (new 'static 'vector :x 4660709.0 :y 33364.38 :z 61360.54 :w 1.0) :quat (new 'static 'vector :y -0.2484 :w -0.9686) :camera-trans (new 'static 'vector :x 4635918.5 :y 54458.367 :z 26214.4 :w 1.0) - :camera-rot (new 'static 'array float 9 0.8175 0.0 -0.5758 0.1013 0.9843 0.1439 0.5668 -0.176 0.8048) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.8175 0.0 -0.5758)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.1013 0.9843 0.1439)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.5668 -0.176 0.8048)) + ) :on-goto #f :vis-nick 'ctysluma :want (new 'static 'inline-array level-buffer-state 6 @@ -5944,7 +6420,11 @@ :trans (new 'static 'vector :x 4713875.5 :y 33354.957 :z 247486.47 :w 1.0) :quat (new 'static 'vector :y -0.9986 :w 0.0522) :camera-trans (new 'static 'vector :x 4724241.5 :y 54449.355 :z 297623.97 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.9794 0.0 0.2016 -0.0245 0.9925 -0.1192 -0.2001 -0.1217 -0.9721) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.9794 0.0 0.2016)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.0245 0.9925 -0.1192)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.2001 -0.1217 -0.9721)) + ) :on-goto #f :vis-nick 'ctysluma :want (new 'static 'inline-array level-buffer-state 6 @@ -5964,7 +6444,11 @@ :trans (new 'static 'vector :x 4660709.0 :y 33364.38 :z 61360.54 :w 1.0) :quat (new 'static 'vector :y -0.2484 :w -0.9686) :camera-trans (new 'static 'vector :x 4635918.5 :y 54458.367 :z 26214.4 :w 1.0) - :camera-rot (new 'static 'array float 9 0.8175 0.0 -0.5758 0.1013 0.9843 0.1439 0.5668 -0.176 0.8048) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.8175 0.0 -0.5758)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.1013 0.9843 0.1439)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.5668 -0.176 0.8048)) + ) :on-goto #f :vis-nick 'ctysluma :want (new 'static 'inline-array level-buffer-state 6 @@ -5984,7 +6468,11 @@ :trans (new 'static 'vector :x 3200250.2 :y 26049.332 :z 926289.94 :w 1.0) :quat (new 'static 'vector :y -0.6 :w 0.7999) :camera-trans (new 'static 'vector :x 3251440.8 :y 47171.176 :z 926989.1 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.0123 0.0 0.9999 -0.1219 0.9925 -0.0015 -0.9924 -0.122 -0.0122) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.0123 0.0 0.9999)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.1219 0.9925 -0.0015)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.9924 -0.122 -0.0122)) + ) :on-goto #f :vis-nick 'ctysluma :want (new 'static 'inline-array level-buffer-state 6 @@ -6004,7 +6492,11 @@ :trans (new 'static 'vector :x 3241306.0 :y 33350.86 :z 1429365.1 :w 1.0) :quat (new 'static 'vector :y -0.7632 :w -0.646) :camera-trans (new 'static 'vector :x 3282688.5 :y 53891.48 :z 1433176.5 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.1259 0.0 0.992 -0.1911 0.9812 -0.0242 -0.9734 -0.1926 -0.1236) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.1259 0.0 0.992)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.1911 0.9812 -0.0242)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.9734 -0.1926 -0.1236)) + ) :on-goto #f :vis-nick 'ctysluma :want (new 'static 'inline-array level-buffer-state 6 @@ -6024,7 +6516,11 @@ :trans (new 'static 'vector :x 4720627.5 :y 33350.453 :z 238358.53 :w 1.0) :quat (new 'static 'vector :y -0.9882 :w 0.153) :camera-trans (new 'static 'vector :x 4725391.0 :y 54444.85 :z 289359.06 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.9956 0.0 0.0927 -0.0112 0.9926 -0.1202 -0.092 -0.1207 -0.9883) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.9956 0.0 0.0927)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.0112 0.9926 -0.1202)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.092 -0.1207 -0.9883)) + ) :on-goto '(begin (kill "parking-spot-8" store #f) (want-continue "ctysluma-escort-retry")) :vis-nick 'ctysluma :want (new 'static 'inline-array level-buffer-state 6 @@ -6044,7 +6540,11 @@ :trans (new 'static 'vector :x 4701751.5 :y 33350.453 :z 196943.88 :w 1.0) :quat (new 'static 'vector :y -0.2309 :w -0.9729) :camera-trans (new 'static 'vector :x 4686596.0 :y 54444.85 :z 156687.56 :w 1.0) - :camera-rot (new 'static 'array float 9 0.9351 0.0 -0.3541 0.0623 0.9843 0.1645 0.3486 -0.1759 0.9205) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.9351 0.0 -0.3541)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.0623 0.9843 0.1645)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.3486 -0.1759 0.9205)) + ) :on-goto #f :vis-nick 'ctysluma :want (new 'static 'inline-array level-buffer-state 6 @@ -6064,7 +6564,11 @@ :trans (new 'static 'vector :x 3420067.8 :y 33357.414 :z 984182.4 :w 1.0) :quat (new 'static 'vector :x 0.0002 :y -0.5079 :w 0.8614) :camera-trans (new 'static 'vector :x 3465968.8 :y 53951.69 :z 1002505.0 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.3607 0.0 0.9326 -0.1111 0.9928 -0.0429 -0.9259 -0.1191 -0.3582) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.3607 0.0 0.9326)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.1111 0.9928 -0.0429)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.9259 -0.1191 -0.3582)) + ) :on-goto #f :vis-nick 'ctysluma :want (new 'static 'inline-array level-buffer-state 6 @@ -6141,7 +6645,11 @@ :trans (new 'static 'vector :x 2408425.5 :y 32736.05 :z -1015882.94 :w 1.0) :quat (new 'static 'vector :x -0.0018 :y 0.7448 :z -0.0022 :w -0.6672) :camera-trans (new 'static 'vector :x 2393250.2 :y 51793.1 :z -991323.75 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.9004 0.0 -0.435 0.1357 0.95 -0.281 0.4133 -0.312 -0.8554) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.9004 0.0 -0.435)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.1357 0.95 -0.281)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.4133 -0.312 -0.8554)) + ) :on-goto #f :vis-nick 'ctyslumb :want (new 'static 'inline-array level-buffer-state 6 @@ -6160,7 +6668,11 @@ :trans (new 'static 'vector :x 2497021.2 :y 32760.627 :z -107427.43 :w 1.0) :quat (new 'static 'vector :y 0.9297 :w 0.3682) :camera-trans (new 'static 'vector :x 2476040.5 :y 54580.43 :z -61865.984 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.9015 0.0 -0.4327 0.0601 0.9902 -0.1253 0.4285 -0.139 -0.8927) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.9015 0.0 -0.4327)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.0601 0.9902 -0.1253)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.4285 -0.139 -0.8927)) + ) :on-goto #f :vis-nick 'ctyslumb :want (new 'static 'inline-array level-buffer-state 6 @@ -6180,7 +6692,11 @@ :trans (new 'static 'vector :x 2895687.8 :y 33280.41 :z -332780.75 :w 1.0) :quat (new 'static 'vector :x 0.0002 :y 0.5948 :z -0.0003 :w 0.8038) :camera-trans (new 'static 'vector :x 2892613.8 :y 54387.508 :z -383899.25 :w 1.0) - :camera-rot (new 'static 'array float 9 0.9924 0.0 -0.123 0.0142 0.9932 0.1152 0.1221 -0.1161 0.9856) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.9924 0.0 -0.123)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.0142 0.9932 0.1152)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.1221 -0.1161 0.9856)) + ) :on-goto #f :vis-nick 'ctyslumb :want (new 'static 'inline-array level-buffer-state 6 @@ -6200,7 +6716,11 @@ :trans (new 'static 'vector :x 1747023.5 :y 32766.771 :z -249536.52 :w 1.0) :quat (new 'static 'vector :y 0.9992 :w -0.0382) :camera-trans (new 'static 'vector :x 1763576.2 :y 53857.895 :z -200809.67 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.9468 0.0 0.3217 -0.0385 0.9927 -0.1134 -0.3194 -0.1198 -0.94) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.9468 0.0 0.3217)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.0385 0.9927 -0.1134)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.3194 -0.1198 -0.94)) + ) :on-goto #f :vis-nick 'ctyslumb :want (new 'static 'inline-array level-buffer-state 6 @@ -6278,7 +6798,11 @@ :trans (new 'static 'vector :x 2453099.8 :y 32505.855 :z -2268892.8 :w 1.0) :quat (new 'static 'vector :y -0.6958 :w 0.7182) :camera-trans (new 'static 'vector :x 2468703.8 :y 53571.586 :z -2220125.5 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.9194 0.0 0.3931 -0.046 0.9931 -0.1076 -0.3904 -0.117 -0.9131) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.9194 0.0 0.3931)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.046 0.9931 -0.1076)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.3904 -0.117 -0.9131)) + ) :on-goto #f :vis-nick 'ctyslumc :want (new 'static 'inline-array level-buffer-state 6 @@ -6297,7 +6821,11 @@ :trans (new 'static 'vector :x 3095949.8 :y 38379.52 :z -2931103.2 :w 1.0) :quat (new 'static 'vector :y -0.1147 :w 0.9933) :camera-trans (new 'static 'vector :x 3105172.8 :y 58562.152 :z -2978129.0 :w 1.0) - :camera-rot (new 'static 'array float 9 0.9814 0.0 0.1914 -0.0228 0.9928 0.117 -0.1901 -0.1192 0.9744) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.9814 0.0 0.1914)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.0228 0.9928 0.117)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.1901 -0.1192 0.9744)) + ) :on-goto #f :vis-nick 'ctyslumc :want (new 'static 'inline-array level-buffer-state 6 @@ -6317,7 +6845,11 @@ :trans (new 'static 'vector :x 3095949.8 :y 38379.52 :z -2931103.2 :w 1.0) :quat (new 'static 'vector :y -0.1147 :w 0.9933) :camera-trans (new 'static 'vector :x 3105172.8 :y 58562.152 :z -2978129.0 :w 1.0) - :camera-rot (new 'static 'array float 9 0.9814 0.0 0.1914 -0.0228 0.9928 0.117 -0.1901 -0.1192 0.9744) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.9814 0.0 0.1914)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.0228 0.9928 0.117)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.1901 -0.1192 0.9744)) + ) :on-goto #f :vis-nick 'ctyslumc :want (new 'static 'inline-array level-buffer-state 6 @@ -6337,7 +6869,11 @@ :trans (new 'static 'vector :x 2201559.0 :y 32754.074 :z -2377998.0 :w 1.0) :quat (new 'static 'vector :y 0.8793 :w -0.4762) :camera-trans (new 'static 'vector :x 2230809.8 :y 53886.156 :z -2335975.5 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.8202 0.0 0.572 -0.0702 0.9924 -0.1006 -0.5677 -0.1227 -0.814) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.8202 0.0 0.572)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.0702 0.9924 -0.1006)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.5677 -0.1227 -0.814)) + ) :on-goto #f :vis-nick 'ctyslumc :want (new 'static 'inline-array level-buffer-state 6 @@ -6415,7 +6951,11 @@ :trans (new 'static 'vector :x 790611.94 :y 70801.82 :z 7184308.0 :w 1.0) :quat (new 'static 'vector :y -0.9991 :w -0.0414) :camera-trans (new 'static 'vector :x 790445.7 :y 91896.22 :z 7235498.0 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.9999 0.0 -0.0056 0.0006 0.9925 -0.1216 0.0055 -0.1216 -0.9925) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.9999 0.0 -0.0056)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.0006 0.9925 -0.1216)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.0055 -0.1216 -0.9925)) + ) :on-goto #f :vis-nick 'ctyport :want (new 'static 'inline-array level-buffer-state 6 @@ -6435,7 +6975,11 @@ :trans (new 'static 'vector :x -237165.36 :y 31635.455 :z 5517031.5 :w 1.0) :quat (new 'static 'vector :y -0.9709 :w 0.239) :camera-trans (new 'static 'vector :x -213388.9 :y 52731.086 :z 5552992.5 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.834 0.0 0.5516 -0.0959 0.9847 -0.145 -0.5432 -0.1739 -0.8213) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.834 0.0 0.5516)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.0959 0.9847 -0.145)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.5432 -0.1739 -0.8213)) + ) :on-goto #f :vis-nick 'ctyport :want (new 'static 'inline-array level-buffer-state 6 @@ -6455,7 +6999,11 @@ :trans (new 'static 'vector :x -263350.7 :y 31665.357 :z 5478634.5 :w 1.0) :quat (new 'static 'vector :y -0.7746 :w 0.6324) :camera-trans (new 'static 'vector :x -239528.75 :y 52765.082 :z 5523948.5 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.873 0.0 0.4876 -0.0571 0.9931 -0.1022 -0.4842 -0.1171 -0.867) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.873 0.0 0.4876)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.0571 0.9931 -0.1022)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.4842 -0.1171 -0.867)) + ) :on-goto #f :vis-nick 'ctyport :want (new 'static 'inline-array level-buffer-state 6 @@ -6475,7 +7023,11 @@ :trans (new 'static 'vector :x 1740270.8 :y 31670.271 :z 5416671.0 :w 1.0) :quat (new 'static 'vector :y 0.9703 :w 0.2417) :camera-trans (new 'static 'vector :x 1719776.0 :y 52764.26 :z 5463587.5 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.9162 0.0 -0.4006 0.0485 0.9926 -0.1111 0.3976 -0.1212 -0.9094) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.9162 0.0 -0.4006)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.0485 0.9926 -0.1111)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.3976 -0.1212 -0.9094)) + ) :on-goto #f :vis-nick 'ctyport :want (new 'static 'inline-array level-buffer-state 6 @@ -6494,7 +7046,11 @@ :trans (new 'static 'vector :x 1526301.1 :y 31448.27 :z 7370150.5 :w 1.0) :quat (new 'static 'vector :x -0.0014 :y -0.9505 :z -0.0005 :w 0.3106) :camera-trans (new 'static 'vector :x 1511200.0 :y 50669.16 :z 7328715.0 :w 1.0) - :camera-rot (new 'static 'array float 9 0.9515 0.0 -0.3075 0.0451 0.9891 0.1396 0.3042 -0.1467 0.9412) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.9515 0.0 -0.3075)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.0451 0.9891 0.1396)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.3042 -0.1467 0.9412)) + ) :on-goto #f :vis-nick 'ctyport :want (new 'static 'inline-array level-buffer-state 6 @@ -6514,7 +7070,11 @@ :trans (new 'static 'vector :x 1526301.1 :y 31448.27 :z 7370150.5 :w 1.0) :quat (new 'static 'vector :x -0.0014 :y -0.9505 :z -0.0005 :w 0.3106) :camera-trans (new 'static 'vector :x 1511200.0 :y 50669.16 :z 7328715.0 :w 1.0) - :camera-rot (new 'static 'array float 9 0.9515 0.0 -0.3075 0.0451 0.9891 0.1396 0.3042 -0.1467 0.9412) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.9515 0.0 -0.3075)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.0451 0.9891 0.1396)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.3042 -0.1467 0.9412)) + ) :on-goto #f :vis-nick 'ctyport :want (new 'static 'inline-array level-buffer-state 6 @@ -6534,7 +7094,11 @@ :trans (new 'static 'vector :x 1526301.1 :y 31448.27 :z 7370150.5 :w 1.0) :quat (new 'static 'vector :x -0.0014 :y -0.9505 :z -0.0005 :w 0.3106) :camera-trans (new 'static 'vector :x 1511200.0 :y 50669.16 :z 7328715.0 :w 1.0) - :camera-rot (new 'static 'array float 9 0.9515 0.0 -0.3075 0.0451 0.9891 0.1396 0.3042 -0.1467 0.9412) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.9515 0.0 -0.3075)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.0451 0.9891 0.1396)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.3042 -0.1467 0.9412)) + ) :on-goto #f :vis-nick 'ctyport :want (new 'static 'inline-array level-buffer-state 6 @@ -6553,7 +7117,11 @@ :trans (new 'static 'vector :x 44259.33 :y 31529.78 :z 7135264.0 :w 1.0) :quat (new 'static 'vector :x -0.0003 :y 0.8529 :z -0.0015 :w 0.5219) :camera-trans (new 'static 'vector :x 2474.3936 :y 52346.47 :z 7130423.5 :w 1.0) - :camera-rot (new 'static 'array float 9 0.105 0.0 -0.9944 0.1792 0.9836 0.0189 0.9781 -0.1802 0.1033) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.105 0.0 -0.9944)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.1792 0.9836 0.0189)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.9781 -0.1802 0.1033)) + ) :on-goto #f :vis-nick 'ctyport :want (new 'static 'inline-array level-buffer-state 6 @@ -6573,7 +7141,11 @@ :trans (new 'static 'vector :x -204202.39 :y 42518.117 :z 5517981.5 :w 1.0) :quat (new 'static 'vector :x 0.0218 :y -0.4594 :z -0.0486 :w 0.8866) :camera-trans (new 'static 'vector :x -185733.12 :y 53058.766 :z 5505444.0 :w 1.0) - :camera-rot (new 'static 'array float 9 0.5624 0.0 0.8268 -0.2574 0.9503 0.1751 -0.7857 -0.3113 0.5344) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.5624 0.0 0.8268)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.2574 0.9503 0.1751)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.7857 -0.3113 0.5344)) + ) :on-goto #f :vis-nick 'ctyport :want (new 'static 'inline-array level-buffer-state 6 @@ -6593,7 +7165,11 @@ :trans (new 'static 'vector :x 2450949.8 :y 45615.105 :z 6574133.5 :w 1.0) :quat (new 'static 'vector :x -0.0072 :y -0.3548 :z 0.0109 :w 0.9348) :camera-trans (new 'static 'vector :x 2464248.2 :y 55870.258 :z 6559149.5 :w 1.0) - :camera-rot (new 'static 'array float 9 0.7479 0.0 0.6637 -0.2306 0.9377 0.2598 -0.6224 -0.3474 0.7013) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.7479 0.0 0.6637)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.2306 0.9377 0.2598)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.6224 -0.3474 0.7013)) + ) :on-goto #f :vis-nick 'ctyport :want (new 'static 'inline-array level-buffer-state 6 @@ -6613,7 +7189,11 @@ :trans (new 'static 'vector :x 2519127.8 :y 31612.518 :z 6545450.0 :w 1.0) :quat (new 'static 'vector :x 0.0003 :y -0.1359 :z 0.0013 :w -0.9907) :camera-trans (new 'static 'vector :x 2552038.5 :y 50085.887 :z 6520416.0 :w 1.0) - :camera-rot (new 'static 'array float 9 0.6623 0.0 0.7492 -0.1081 0.9895 0.0956 -0.7413 -0.1443 0.6553) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.6623 0.0 0.7492)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.1081 0.9895 0.0956)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.7413 -0.1443 0.6553)) + ) :on-goto #f :vis-nick 'ctyport :want (new 'static 'inline-array level-buffer-state 6 @@ -6633,7 +7213,11 @@ :trans (new 'static 'vector :x -237435.3 :y 31652.25 :z 5468062.0 :w 1.0) :quat (new 'static 'vector :y -0.4713 :w -0.8819) :camera-trans (new 'static 'vector :x -285678.78 :y 51959.4 :z 5466700.0 :w 1.0) - :camera-rot (new 'static 'array float 9 0.0311 0.0 -0.9995 0.119 0.9928 0.0037 0.9924 -0.119 0.0309) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.0311 0.0 -0.9995)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.119 0.9928 0.0037)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.9924 -0.119 0.0309)) + ) :on-goto #f :vis-nick 'ctyport :want (new 'static 'inline-array level-buffer-state 6 @@ -6653,7 +7237,11 @@ :trans (new 'static 'vector :x 2491680.0 :y 44982.273 :z 6575569.5 :w 1.0) :quat (new 'static 'vector :x 0.0289 :y 0.5081 :z 0.0742 :w -0.8575) :camera-trans (new 'static 'vector :x 2511393.2 :y 56725.094 :z 6565603.5 :w 1.0) - :camera-rot (new 'static 'array float 9 0.452 0.0 0.892 -0.2805 0.9492 0.1421 -0.8467 -0.3145 0.429) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.452 0.0 0.892)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.2805 0.9492 0.1421)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.8467 -0.3145 0.429)) + ) :on-goto #f :vis-nick 'ctyport :want (new 'static 'inline-array level-buffer-state 6 @@ -6673,7 +7261,11 @@ :trans (new 'static 'vector :x -325973.6 :y 36371.25 :z 5391642.0 :w 1.0) :quat (new 'static 'vector :y 0.9867 :w -0.162) :camera-trans (new 'static 'vector :x -301305.84 :y 51219.66 :z 5399168.5 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.3137 0.0 0.9495 -0.2469 0.9655 -0.0816 -0.9168 -0.2601 -0.3029) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.3137 0.0 0.9495)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.2469 0.9655 -0.0816)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.9168 -0.2601 -0.3029)) + ) :on-goto #f :vis-nick 'ctyport :want (new 'static 'inline-array level-buffer-state 6 @@ -6693,7 +7285,11 @@ :trans (new 'static 'vector :x 306485.66 :y 31610.47 :z 5660605.0 :w 1.0) :quat (new 'static 'vector :y -0.0814 :w 0.9966) :camera-trans (new 'static 'vector :x 304445.03 :y 55391.848 :z 5609440.5 :w 1.0) - :camera-rot (new 'static 'array float 9 0.9992 0.0 -0.0395 0.0063 0.9868 0.1616 0.0389 -0.1618 0.986) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.9992 0.0 -0.0395)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.0063 0.9868 0.1616)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.0389 -0.1618 0.986)) + ) :on-goto #f :vis-nick 'ctyport :want (new 'static 'inline-array level-buffer-state 6 @@ -6713,7 +7309,11 @@ :trans (new 'static 'vector :x 2568996.8 :y 31641.6 :z 6469675.5 :w 1.0) :quat (new 'static 'vector :y 0.8877 :w 0.4602) :camera-trans (new 'static 'vector :x 2526983.0 :y 52228.098 :z 6496139.0 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.5353 0.0 -0.8446 0.1028 0.9925 -0.0651 0.8383 -0.1217 -0.5313) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.5353 0.0 -0.8446)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.1028 0.9925 -0.0651)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.8383 -0.1217 -0.5313)) + ) :on-goto #f :vis-nick 'ctyport :want (new 'static 'inline-array level-buffer-state 6 @@ -6733,7 +7333,11 @@ :trans (new 'static 'vector :x -409080.22 :y 31759.154 :z 5577668.5 :w 1.0) :quat (new 'static 'vector :y 0.9767 :w -0.2145) :camera-trans (new 'static 'vector :x -378350.38 :y 52853.145 :z 5607808.0 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.6993 0.0 0.7148 -0.1256 0.9844 -0.1228 -0.7036 -0.1757 -0.6884) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.6993 0.0 0.7148)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.1256 0.9844 -0.1228)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.7036 -0.1757 -0.6884)) + ) :on-goto #f :vis-nick 'ctyport :want (new 'static 'inline-array level-buffer-state 6 @@ -6867,7 +7471,11 @@ :trans (new 'static 'vector :x -1346162.8 :y 35138.355 :z 858246.4 :w 1.0) :quat (new 'static 'vector :y -0.4712 :w 0.882) :camera-trans (new 'static 'vector :x -1294963.1 :y 56245.043 :z 858741.56 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.0054 0.0 0.9999 -0.1208 0.9926 -0.0006 -0.9926 -0.1208 -0.0054) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.0054 0.0 0.9999)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.1208 0.9926 -0.0006)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.9926 -0.1208 -0.0054)) + ) :on-goto #f :vis-nick 'ctyfarma :want (new 'static 'inline-array level-buffer-state 6 @@ -6887,7 +7495,11 @@ :trans (new 'static 'vector :x -1773681.9 :y 124271.82 :z 852637.3 :w 1.0) :quat (new 'static 'vector :y -0.6773 :w 0.7356) :camera-trans (new 'static 'vector :x -1739667.0 :y 142474.44 :z 861517.0 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.2439 0.0 0.9697 -0.198 0.9789 -0.0498 -0.9493 -0.2042 -0.2388) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.2439 0.0 0.9697)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.198 0.9789 -0.0498)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.9493 -0.2042 -0.2388)) + ) :on-goto #f :vis-nick 'ctyfarma :want (new 'static 'inline-array level-buffer-state 6 @@ -6907,7 +7519,11 @@ :trans (new 'static 'vector :x -1788942.4 :y 124271.82 :z 853132.5 :w 1.0) :quat (new 'static 'vector :x -0.0012 :y -0.7734 :z -0.001 :w 0.6339) :camera-trans (new 'static 'vector :x -1739187.0 :y 145007.4 :z 849631.6 :w 1.0) - :camera-rot (new 'static 'array float 9 0.0699 0.0 0.9975 -0.1197 0.9927 0.0083 -0.9903 -0.12 0.0694) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.0699 0.0 0.9975)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.1197 0.9927 0.0083)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.9903 -0.12 0.0694)) + ) :on-goto #f :vis-nick 'ctyfarma :want (new 'static 'inline-array level-buffer-state 6 @@ -6927,7 +7543,11 @@ :trans (new 'static 'vector :x -236415.39 :y 32763.904 :z 389540.25 :w 1.0) :quat (new 'static 'vector :y 0.9803 :w 0.1972) :camera-trans (new 'static 'vector :x -258035.72 :y 53921.383 :z 436186.72 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.9061 0.0 -0.423 0.0514 0.9925 -0.1102 0.4198 -0.1216 -0.8993) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.9061 0.0 -0.423)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.0514 0.9925 -0.1102)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.4198 -0.1216 -0.8993)) + ) :on-goto #f :vis-nick 'ctyfarma :want (new 'static 'inline-array level-buffer-state 6 @@ -7006,7 +7626,11 @@ :trans (new 'static 'vector :x -1473722.4 :y 32758.988 :z 4695127.0 :w 1.0) :quat (new 'static 'vector :y -0.9428 :w 0.3332) :camera-trans (new 'static 'vector :x -1457872.5 :y 54232.27 :z 4735104.0 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.929 0.0 0.3699 -0.0687 0.9825 -0.1725 -0.3635 -0.1857 -0.9128) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.929 0.0 0.3699)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.0687 0.9825 -0.1725)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.3635 -0.1857 -0.9128)) + ) :on-goto #f :vis-nick 'ctyfarmb :want (new 'static 'inline-array level-buffer-state 6 @@ -7026,7 +7650,11 @@ :trans (new 'static 'vector :x -1292948.6 :y 32763.904 :z 4407961.5 :w 1.0) :quat (new 'static 'vector :y -0.7097 :w -0.7044) :camera-trans (new 'static 'vector :x -1337764.2 :y 52156.824 :z 4405888.0 :w 1.0) - :camera-rot (new 'static 'array float 9 0.0466 0.0 -0.9989 0.1284 0.9916 0.006 0.9906 -0.1286 0.0463) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.0466 0.0 -0.9989)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.1284 0.9916 0.006)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.9906 -0.1286 0.0463)) + ) :on-goto #f :vis-nick 'ctyfarmb :want (new 'static 'inline-array level-buffer-state 6 @@ -7104,7 +7732,11 @@ :trans (new 'static 'vector :x 3945097.8 :y 110584.625 :z 3721824.8 :w 1.0) :quat (new 'static 'vector :y 0.0533 :w 0.9985) :camera-trans (new 'static 'vector :x 3971861.0 :y 129763.734 :z 3686880.0 :w 1.0) - :camera-rot (new 'static 'array float 9 0.8024 0.0 0.5967 -0.0789 0.9912 0.1061 -0.5914 -0.1322 0.7954) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.8024 0.0 0.5967)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.0789 0.9912 0.1061)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.5914 -0.1322 0.7954)) + ) :on-goto #f :vis-nick 'ctyinda :want (new 'static 'inline-array level-buffer-state 6 @@ -7123,7 +7755,11 @@ :trans (new 'static 'vector :x 4475576.5 :y 101718.42 :z 4479149.5 :w 1.0) :quat (new 'static 'vector :y 0.8623 :w -0.5063) :camera-trans (new 'static 'vector :x 4442404.5 :y 121393.15 :z 4447620.5 :w 1.0) - :camera-rot (new 'static 'array float 9 0.7124 0.0 -0.7017 0.1039 0.9889 0.1055 0.6939 -0.1481 0.7046) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.7124 0.0 -0.7017)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.1039 0.9889 0.1055)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.6939 -0.1481 0.7046)) + ) :on-goto #f :vis-nick 'ctyinda :want (new 'static 'inline-array level-buffer-state 6 @@ -7143,7 +7779,11 @@ :trans (new 'static 'vector :x 4069240.5 :y 32741.785 :z 4647774.5 :w 1.0) :quat (new 'static 'vector :x 0.0001 :y -0.6735 :w -0.7391) :camera-trans (new 'static 'vector :x 4019418.0 :y 53836.188 :z 4635805.5 :w 1.0) - :camera-rot (new 'static 'array float 9 0.2316 0.0 -0.9727 0.1175 0.9926 0.028 0.9656 -0.1208 0.2299) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.2316 0.0 -0.9727)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.1175 0.9926 0.028)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.9656 -0.1208 0.2299)) + ) :on-goto #f :vis-nick 'ctyinda :want (new 'static 'inline-array level-buffer-state 6 @@ -7162,7 +7802,11 @@ :trans (new 'static 'vector :x 3183906.5 :y 32741.785 :z 3551941.5 :w 1.0) :quat (new 'static 'vector :y -0.6714 :z -0.0001 :w 0.741) :camera-trans (new 'static 'vector :x 3226667.0 :y 53836.188 :z 3546805.5 :w 1.0) - :camera-rot (new 'static 'array float 9 0.1191 0.0 0.9928 -0.1734 0.9846 0.0208 -0.9776 -0.1746 0.1173) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.1191 0.0 0.9928)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.1734 0.9846 0.0208)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.9776 -0.1746 0.1173)) + ) :on-goto #f :vis-nick 'ctyinda :want (new 'static 'inline-array level-buffer-state 6 @@ -7182,7 +7826,11 @@ :trans (new 'static 'vector :x 3184090.0 :y 34360.934 :z 3365469.8 :w 1.0) :quat (new 'static 'vector :y -0.9999 :w -0.0007) :camera-trans (new 'static 'vector :x 3190731.2 :y 55454.926 :z 3416230.2 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.9917 0.0 0.1283 -0.0156 0.9925 -0.1207 -0.1274 -0.1217 -0.9843) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.9917 0.0 0.1283)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.0156 0.9925 -0.1207)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.1274 -0.1217 -0.9843)) + ) :on-goto #f :vis-nick 'ctyinda :want (new 'static 'inline-array level-buffer-state 6 @@ -7260,7 +7908,11 @@ :trans (new 'static 'vector :x 2858555.0 :y 19556.352 :z 3729141.8 :w 1.0) :quat (new 'static 'vector :y -0.9948 :w 0.1013) :camera-trans (new 'static 'vector :x 2838449.2 :y 40298.086 :z 3684069.0 :w 1.0) - :camera-rot (new 'static 'array float 9 0.9058 0.0 -0.4235 0.061 0.9895 0.1306 0.419 -0.1442 0.8964) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.9058 0.0 -0.4235)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.061 0.9895 0.1306)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.419 -0.1442 0.8964)) + ) :on-goto #f :vis-nick 'consite :want (new 'static 'inline-array level-buffer-state 6 @@ -7279,7 +7931,11 @@ :trans (new 'static 'vector :x 2856634.2 :y -21184.102 :z 3609188.2 :w 1.0) :quat (new 'static 'vector :y 0.1138 :w 0.9934) :camera-trans (new 'static 'vector :x 2852975.8 :y -113.0496 :z 3558113.2 :w 1.0) - :camera-rot (new 'static 'array float 9 0.9974 0.0 -0.0715 0.0086 0.9927 0.1199 0.071 -0.1202 0.9901) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.9974 0.0 -0.0715)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.0086 0.9927 0.1199)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.071 -0.1202 0.9901)) + ) :on-goto #f :vis-nick 'consiteb :want (new 'static 'inline-array level-buffer-state 6 @@ -7355,7 +8011,11 @@ :trans (new 'static 'vector :x 3066312.0 :y 32770.047 :z 3563767.5 :w 1.0) :quat (new 'static 'vector :y 0.3085 :w -0.9511) :camera-trans (new 'static 'vector :x 3076502.8 :y 46825.883 :z 3541120.2 :w 1.0) - :camera-rot (new 'static 'array float 9 0.9122 0.0 0.4095 -0.1046 0.9668 0.233 -0.3959 -0.2554 0.882) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.9122 0.0 0.4095)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.1046 0.9668 0.233)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.3959 -0.2554 0.882)) + ) :on-goto #f :vis-nick 'consiteb :want (new 'static 'inline-array level-buffer-state 6 @@ -7431,7 +8091,11 @@ :trans (new 'static 'vector :x 3978918.2 :y 32761.447 :z 2236849.8 :w 1.0) :quat (new 'static 'vector :y 0.9493 :w 0.3141) :camera-trans (new 'static 'vector :x 3946840.5 :y 52216.22 :z 2267846.2 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.6944 0.0 -0.7195 0.0953 0.9911 -0.092 0.7132 -0.1325 -0.6883) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.6944 0.0 -0.7195)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.0953 0.9911 -0.092)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.7132 -0.1325 -0.6883)) + ) :on-goto #f :vis-nick 'ctyindb :want (new 'static 'inline-array level-buffer-state 6 @@ -7451,7 +8115,11 @@ :trans (new 'static 'vector :x 3978918.2 :y 32761.447 :z 2236849.8 :w 1.0) :quat (new 'static 'vector :y 0.9493 :w 0.3141) :camera-trans (new 'static 'vector :x 3946840.5 :y 52216.22 :z 2267846.2 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.6944 0.0 -0.7195 0.0953 0.9911 -0.092 0.7132 -0.1325 -0.6883) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.6944 0.0 -0.7195)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.0953 0.9911 -0.092)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.7132 -0.1325 -0.6883)) + ) :on-goto #f :vis-nick 'ctyindb :want (new 'static 'inline-array level-buffer-state 6 @@ -7471,7 +8139,11 @@ :trans (new 'static 'vector :x 3214073.5 :y 32741.785 :z 2913456.2 :w 1.0) :quat (new 'static 'vector :y -0.535 :w 0.8448) :camera-trans (new 'static 'vector :x 3260565.0 :y 52803.176 :z 2904624.0 :w 1.0) - :camera-rot (new 'static 'array float 9 0.1846 0.0 0.9828 -0.118 0.9927 0.0221 -0.9756 -0.1201 0.1833) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.1846 0.0 0.9828)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.118 0.9927 0.0221)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.9756 -0.1201 0.1833)) + ) :on-goto #f :vis-nick 'ctyindb :want (new 'static 'inline-array level-buffer-state 6 @@ -7550,7 +8222,11 @@ :trans (new 'static 'vector :x -439072.34 :y 32768.0 :z 1956770.6 :w 1.0) :quat (new 'static 'vector :y -0.1582 :w 0.9874) :camera-trans (new 'static 'vector :x -396247.84 :y 53861.992 :z 1952489.9 :w 1.0) - :camera-rot (new 'static 'array float 9 0.1584 0.0 0.9873 -0.1741 0.9843 0.0279 -0.9718 -0.1763 0.1559) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.1584 0.0 0.9873)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.1741 0.9843 0.0279)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.9718 -0.1763 0.1559)) + ) :on-goto #f :vis-nick 'ctymarka :want (new 'static 'inline-array level-buffer-state 6 @@ -7570,7 +8246,11 @@ :trans (new 'static 'vector :x -730452.8 :y 32765.543 :z 3454441.5 :w 1.0) :quat (new 'static 'vector :x -0.001 :y -0.0118 :z -0.0009 :w 0.9999) :camera-trans (new 'static 'vector :x -727241.94 :y 53859.94 :z 3403332.8 :w 1.0) - :camera-rot (new 'static 'array float 9 0.998 0.0 0.0631 -0.0076 0.9926 0.1208 -0.0626 -0.121 0.9906) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.998 0.0 0.0631)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.0076 0.9926 0.1208)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.0626 -0.121 0.9906)) + ) :on-goto #f :vis-nick 'ctymarka :want (new 'static 'inline-array level-buffer-state 6 @@ -7649,7 +8329,11 @@ :trans (new 'static 'vector :x 2147489.0 :y 34444.902 :z 1948003.1 :w 1.0) :quat (new 'static 'vector :y 0.2325 :w -0.9725) :camera-trans (new 'static 'vector :x 2176129.5 :y 55539.3 :z 1905562.0 :w 1.0) - :camera-rot (new 'static 'array float 9 0.8282 0.0 0.5603 -0.068 0.9925 0.1006 -0.5561 -0.1215 0.8221) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.8282 0.0 0.5603)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.068 0.9925 0.1006)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.5561 -0.1215 0.8221)) + ) :on-goto #f :vis-nick 'ctymarkb :want (new 'static 'inline-array level-buffer-state 6 @@ -7669,7 +8353,11 @@ :trans (new 'static 'vector :x 1931610.1 :y 34406.4 :z 1769602.6 :w 1.0) :quat (new 'static 'vector :y -0.3655 :w 0.9307) :camera-trans (new 'static 'vector :x 1956000.1 :y 53861.992 :z 1734111.2 :w 1.0) - :camera-rot (new 'static 'array float 9 0.8208 0.0 0.5711 -0.1001 0.9844 0.1439 -0.5622 -0.1754 0.8081) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.8208 0.0 0.5711)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.1001 0.9844 0.1439)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.5622 -0.1754 0.8081)) + ) :on-goto #f :vis-nick 'ctymarkb :want (new 'static 'inline-array level-buffer-state 6 @@ -7689,7 +8377,11 @@ :trans (new 'static 'vector :x 2977968.2 :y 34444.902 :z 2160323.0 :w 1.0) :quat (new 'static 'vector :y -0.1398 :w -0.9901) :camera-trans (new 'static 'vector :x 2964785.5 :y 54040.574 :z 2116632.2 :w 1.0) - :camera-rot (new 'static 'array float 9 0.9589 0.0 -0.2835 0.0361 0.9918 0.122 0.2812 -0.1273 0.9511) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.9589 0.0 -0.2835)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.0361 0.9918 0.122)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.2812 -0.1273 0.9511)) + ) :on-goto #f :vis-nick 'ctymarkb :want (new 'static 'inline-array level-buffer-state 6 @@ -7709,7 +8401,11 @@ :trans (new 'static 'vector :x 2575240.5 :y 34444.902 :z 3103047.2 :w 1.0) :quat (new 'static 'vector :y 0.0787 :w 0.9968) :camera-trans (new 'static 'vector :x 2563072.0 :y 54984.293 :z 3055447.2 :w 1.0) - :camera-rot (new 'static 'array float 9 0.9676 0.0 -0.2522 0.0305 0.9926 0.1173 0.2503 -0.1212 0.9605) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.9676 0.0 -0.2522)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.0305 0.9926 0.1173)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.2503 -0.1212 0.9605)) + ) :on-goto #f :vis-nick 'ctymarkb :want (new 'static 'inline-array level-buffer-state 6 @@ -7786,7 +8482,11 @@ :trans (new 'static 'vector :x 783051.2 :y 32758.58 :z 3168950.8 :w 1.0) :quat (new 'static 'vector :y 0.9998 :w 0.0183) :camera-trans (new 'static 'vector :x 779300.06 :y 53952.51 :z 3220006.0 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.9973 0.0 -0.0732 0.009 0.9922 -0.1236 0.0726 -0.124 -0.9896) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.9973 0.0 -0.0732)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.009 0.9922 -0.1236)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.0726 -0.124 -0.9896)) + ) :on-goto '(when (task-closed? "palace-sneak-in-door") (task-close! "palace-sneak-in-resolution") ) @@ -7807,7 +8507,11 @@ :trans (new 'static 'vector :x 785581.7 :y 32768.0 :z 3718206.8 :w 1.0) :quat (new 'static 'vector :y -0.2525 :w 0.9675) :camera-trans (new 'static 'vector :x 788226.06 :y 53861.992 :z 3667072.5 :w 1.0) - :camera-rot (new 'static 'array float 9 0.9985 0.0 0.054 -0.0065 0.9926 0.1209 -0.0536 -0.1211 0.9911) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.9985 0.0 0.054)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.0065 0.9926 0.1209)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.0536 -0.1211 0.9911)) + ) :on-goto #f :vis-nick 'ctypal :want (new 'static 'inline-array level-buffer-state 6 @@ -7827,7 +8531,11 @@ :trans (new 'static 'vector :x 377386.6 :y 65546.65 :z 1834825.8 :w 1.0) :quat (new 'static 'vector :y -0.0469 :w 0.9988) :camera-trans (new 'static 'vector :x 372478.38 :y 86293.71 :z 1785120.0 :w 1.0) - :camera-rot (new 'static 'array float 9 0.9952 0.0 -0.0968 0.0116 0.9927 0.1197 0.0961 -0.1203 0.988) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.9952 0.0 -0.0968)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.0116 0.9927 0.1197)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.0961 -0.1203 0.988)) + ) :on-goto #f :vis-nick 'ctypal :want (new 'static 'inline-array level-buffer-state 6 @@ -7847,7 +8555,11 @@ :trans (new 'static 'vector :x 1236813.0 :y 32766.361 :z 3622210.2 :w 1.0) :quat (new 'static 'vector :y 0.7451 :w 0.6668) :camera-trans (new 'static 'vector :x 1185874.8 :y 53860.76 :z 3627872.8 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.1102 0.0 -0.9939 0.1199 0.9926 -0.0133 0.9866 -0.1206 -0.1094) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.1102 0.0 -0.9939)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.1199 0.9926 -0.0133)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.9866 -0.1206 -0.1094)) + ) :on-goto #f :vis-nick 'ctypal :want (new 'static 'inline-array level-buffer-state 6 @@ -7924,7 +8636,11 @@ :trans (new 'static 'vector :x 1221186.4 :y -16384.0 :z -1861414.1 :w 1.0) :quat (new 'static 'vector :y -0.806 :w 0.5918) :camera-trans (new 'static 'vector :x 1270103.6 :y 4613.7344 :z -1847696.6 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.27 0.0 0.9628 -0.1178 0.9924 -0.033 -0.9556 -0.1224 -0.2679) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.27 0.0 0.9628)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.1178 0.9924 -0.033)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.9556 -0.1224 -0.2679)) + ) :on-goto #f :vis-nick 'stadium :want (new 'static 'inline-array level-buffer-state 6 @@ -7944,7 +8660,11 @@ :trans (new 'static 'vector :x 1391598.4 :y 32767.59 :z -3062397.8 :w 1.0) :quat (new 'static 'vector :x -0.0002 :y 0.6685 :z -0.0001 :w -0.7436) :camera-trans (new 'static 'vector :x 1390407.6 :y 52200.242 :z -3017585.5 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.9956 0.0 0.093 -0.0123 0.9911 -0.1324 -0.0922 -0.133 -0.9868) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.9956 0.0 0.093)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.0123 0.9911 -0.1324)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.0922 -0.133 -0.9868)) + ) :on-goto #f :vis-nick 'stadium :want (new 'static 'inline-array level-buffer-state 6 @@ -7964,7 +8684,11 @@ :trans (new 'static 'vector :x 572500.4 :y 49152.0 :z -2737227.0 :w 1.0) :quat (new 'static 'vector :y 0.4807 :z -0.0014 :w 0.8768) :camera-trans (new 'static 'vector :x 603791.75 :y 69309.234 :z -2701270.8 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.7787 0.0 0.6273 -0.0932 0.9888 -0.1157 -0.6204 -0.1486 -0.77) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.7787 0.0 0.6273)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.0932 0.9888 -0.1157)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.6204 -0.1486 -0.77)) + ) :on-goto #f :vis-nick 'stadium :want (new 'static 'inline-array level-buffer-state 6 @@ -7984,7 +8708,11 @@ :trans (new 'static 'vector :x 1139318.8 :y -16393.83 :z -2717514.5 :w 1.0) :quat (new 'static 'vector :y 0.9647 :w -0.263) :camera-trans (new 'static 'vector :x 1140867.5 :y 4700.16 :z -2666331.2 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.9995 0.0 0.0315 -0.0038 0.9926 -0.1207 -0.0313 -0.1208 -0.9921) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.9995 0.0 0.0315)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.0038 0.9926 -0.1207)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.0313 -0.1208 -0.9921)) + ) :on-goto #f :vis-nick 'stadium :want (new 'static 'inline-array level-buffer-state 6 @@ -8004,7 +8732,11 @@ :trans (new 'static 'vector :x 1172569.2 :y -16393.83 :z -2875689.0 :w 1.0) :quat (new 'static 'vector :y 0.1113 :w -0.9937) :camera-trans (new 'static 'vector :x 1203939.4 :y 4689.92 :z -2916101.8 :w 1.0) - :camera-rot (new 'static 'array float 9 0.7905 0.0 0.6124 -0.074 0.9926 0.0955 -0.6079 -0.1208 0.7847) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.7905 0.0 0.6124)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.074 0.9926 0.0955)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.6079 -0.1208 0.7847)) + ) :on-goto #f :vis-nick 'stadium :want (new 'static 'inline-array level-buffer-state 6 @@ -8081,7 +8813,11 @@ :trans (new 'static 'vector :x 139325.44 :y 34127.87 :z -2636048.5 :w 1.0) :quat (new 'static 'vector :y -0.2687 :w -0.9632) :camera-trans (new 'static 'vector :x 105139.81 :y 54302.72 :z -2669469.0 :w 1.0) - :camera-rot (new 'static 'array float 9 0.7004 0.0 -0.7137 0.0855 0.9927 0.0839 0.7085 -0.1199 0.6953) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.7004 0.0 -0.7137)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.0855 0.9927 0.0839)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.7085 -0.1199 0.6953)) + ) :on-goto #f :vis-nick 'stadiumb :want (new 'static 'inline-array level-buffer-state 6 @@ -8101,7 +8837,11 @@ :trans (new 'static 'vector :x 296361.56 :y 47104.0 :z -2499580.2 :w 1.0) :quat (new 'static 'vector :y 0.4434 :w -0.8962) :camera-trans (new 'static 'vector :x 336107.94 :y 68197.99 :z -2531864.5 :w 1.0) - :camera-rot (new 'static 'array float 9 0.6311 0.0 0.7756 -0.095 0.9924 0.0773 -0.7697 -0.1225 0.6264) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.6311 0.0 0.7756)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.095 0.9924 0.0773)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.7697 -0.1225 0.6264)) + ) :on-goto #f :vis-nick 'stadiumb :want (new 'static 'inline-array level-buffer-state 6 @@ -8121,7 +8861,11 @@ :trans (new 'static 'vector :x 232675.73 :y -10616.832 :z -2443733.5 :w 1.0) :quat (new 'static 'vector :y 0.3456 :w 0.9383) :camera-trans (new 'static 'vector :x 217686.02 :y 1695.744 :z -2461328.2 :w 1.0) - :camera-rot (new 'static 'array float 9 0.761 0.0 -0.6486 0.1541 0.9713 0.1808 0.6301 -0.2376 0.7392) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.761 0.0 -0.6486)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.1541 0.9713 0.1808)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.6301 -0.2376 0.7392)) + ) :on-goto #f :vis-nick 'stadiumb :want (new 'static 'inline-array level-buffer-state 6 @@ -8141,7 +8885,11 @@ :trans (new 'static 'vector :x 284379.97 :y -14743.143 :z -2426257.5 :w 1.0) :quat (new 'static 'vector :y 0.9385 :w -0.345) :camera-trans (new 'static 'vector :x 303667.2 :y -2424.0127 :z -2403514.0 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.7628 0.0 0.6466 -0.0851 0.9912 -0.1005 -0.6409 -0.1317 -0.7561) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.7628 0.0 0.6466)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.0851 0.9912 -0.1005)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.6409 -0.1317 -0.7561)) + ) :on-goto #f :vis-nick 'stadiumb :want (new 'static 'inline-array level-buffer-state 6 @@ -8161,7 +8909,11 @@ :trans (new 'static 'vector :x -192482.52 :y -124127.234 :z -1315588.5 :w 1.0) :quat (new 'static 'vector :x 0.0395 :y -0.9955 :z -0.0827 :w 0.0227) :camera-trans (new 'static 'vector :x -191463.02 :y -115947.11 :z -1293051.5 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.9989 0.0 0.0456 -0.0139 0.9523 -0.3047 -0.0434 -0.3051 -0.9513) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.9989 0.0 0.0456)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.0139 0.9523 -0.3047)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.0434 -0.3051 -0.9513)) + ) :on-goto #f :vis-nick 'stadiumb :want (new 'static 'inline-array level-buffer-state 6 @@ -8237,7 +8989,11 @@ :trans (new 'static 'vector :x 139325.44 :y 34127.87 :z -2636048.5 :w 1.0) :quat (new 'static 'vector :y -0.2687 :w -0.9632) :camera-trans (new 'static 'vector :x 105139.81 :y 54302.72 :z -2669469.0 :w 1.0) - :camera-rot (new 'static 'array float 9 0.7004 0.0 -0.7137 0.0855 0.9927 0.0839 0.7085 -0.1199 0.6953) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.7004 0.0 -0.7137)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.0855 0.9927 0.0839)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.7085 -0.1199 0.6953)) + ) :on-goto #f :vis-nick 'stadiumc :want (new 'static 'inline-array level-buffer-state 6 @@ -8257,7 +9013,11 @@ :trans (new 'static 'vector :x -337180.7 :y -24649.318 :z -2695884.5 :w 1.0) :quat (new 'static 'vector :y 0.7066 :w 0.7075) :camera-trans (new 'static 'vector :x -386829.94 :y -12293.734 :z -2695941.0 :w 1.0) - :camera-rot (new 'static 'array float 9 0.0012 0.0 -0.9999 0.0283 0.9995 0.0 0.9995 -0.0283 0.0012) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.0012 0.0 -0.9999)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.0283 0.9995 0.0)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.9995 -0.0283 0.0012)) + ) :on-goto #f :vis-nick 'stadiumc :want (new 'static 'inline-array level-buffer-state 6 @@ -8277,7 +9037,11 @@ :trans (new 'static 'vector :x -337180.7 :y -24649.318 :z -2695884.5 :w 1.0) :quat (new 'static 'vector :y 0.7066 :w 0.7075) :camera-trans (new 'static 'vector :x -386829.94 :y -12293.734 :z -2695941.0 :w 1.0) - :camera-rot (new 'static 'array float 9 0.0012 0.0 -0.9999 0.0283 0.9995 0.0 0.9995 -0.0283 0.0012) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.0012 0.0 -0.9999)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.0283 0.9995 0.0)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.9995 -0.0283 0.0012)) + ) :on-goto #f :vis-nick 'stadiumc :want (new 'static 'inline-array level-buffer-state 6 @@ -8297,7 +9061,11 @@ :trans (new 'static 'vector :x -261450.55 :y -28719.924 :z -2723475.5 :w 1.0) :quat (new 'static 'vector :y -0.6995 :w 0.7146) :camera-trans (new 'static 'vector :x -210261.61 :y -16378.266 :z -2724553.0 :w 1.0) - :camera-rot (new 'static 'array float 9 0.02 0.0 0.9997 -0.0247 0.9996 0.0004 -0.9994 -0.0247 0.02) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.02 0.0 0.9997)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.0247 0.9996 0.0004)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.9994 -0.0247 0.02)) + ) :on-goto #f :vis-nick 'stadiumc :want (new 'static 'inline-array level-buffer-state 6 @@ -8317,7 +9085,11 @@ :trans (new 'static 'vector :x -350173.2 :y 47088.027 :z -2750787.2 :w 1.0) :quat (new 'static 'vector :y 0.227 :w -0.9738) :camera-trans (new 'static 'vector :x -350950.6 :y 68182.42 :z -2801975.2 :w 1.0) - :camera-rot (new 'static 'array float 9 0.9999 0.0 -0.0137 0.0016 0.9926 0.1208 0.0136 -0.1208 0.9925) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.9999 0.0 -0.0137)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.0016 0.9926 0.1208)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.0136 -0.1208 0.9925)) + ) :on-goto #f :vis-nick 'stadiumc :want (new 'static 'inline-array level-buffer-state 6 @@ -8337,7 +9109,11 @@ :trans (new 'static 'vector :x 70463.484 :y -171052.64 :z -2836438.8 :w 1.0) :quat (new 'static 'vector :x 0.0448 :y 0.2377 :z -0.0047 :w -0.9702) :camera-trans (new 'static 'vector :x 80398.336 :y -160836.4 :z -2856782.2 :w 1.0) - :camera-rot (new 'static 'array float 9 0.8986 0.0 0.4386 -0.1336 0.9524 0.2737 -0.4177 -0.3046 0.8559) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.8986 0.0 0.4386)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.1336 0.9524 0.2737)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.4177 -0.3046 0.8559)) + ) :on-goto #f :vis-nick 'stadium :want (new 'static 'inline-array level-buffer-state 6 @@ -8413,7 +9189,11 @@ :trans (new 'static 'vector :x 139325.44 :y 34127.87 :z -2636048.5 :w 1.0) :quat (new 'static 'vector :y -0.2687 :w -0.9632) :camera-trans (new 'static 'vector :x 105139.81 :y 54302.72 :z -2669469.0 :w 1.0) - :camera-rot (new 'static 'array float 9 0.7004 0.0 -0.7137 0.0855 0.9927 0.0839 0.7085 -0.1199 0.6953) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.7004 0.0 -0.7137)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.0855 0.9927 0.0839)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.7085 -0.1199 0.6953)) + ) :on-goto #f :vis-nick 'stadiumd :want (new 'static 'inline-array level-buffer-state 6 @@ -8433,7 +9213,11 @@ :trans (new 'static 'vector :x 79271.12 :y 47103.59 :z -2669285.5 :w 1.0) :quat (new 'static 'vector :y -0.1495 :w 0.9887) :camera-trans (new 'static 'vector :x 103847.94 :y 67127.3 :z -2709570.0 :w 1.0) - :camera-rot (new 'static 'array float 9 0.8523 0.0 0.5229 -0.064 0.9924 0.1043 -0.5189 -0.1224 0.8459) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.8523 0.0 0.5229)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.064 0.9924 0.1043)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.5189 -0.1224 0.8459)) + ) :on-goto #f :vis-nick 'stadiumd :want (new 'static 'inline-array level-buffer-state 6 @@ -8453,7 +9237,11 @@ :trans (new 'static 'vector :x 18072.781 :y -19255.297 :z -2648879.0 :w 1.0) :quat (new 'static 'vector :y 0.5232 :w 0.8521) :camera-trans (new 'static 'vector :x -27583.283 :y -6946.4062 :z -2672047.8 :w 1.0) - :camera-rot (new 'static 'array float 9 0.4523 0.0 -0.8918 0.0222 0.9996 0.0112 0.8915 -0.0249 0.4521) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.4523 0.0 -0.8918)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.0222 0.9996 0.0112)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.8915 -0.0249 0.4521)) + ) :on-goto #f :vis-nick 'stadiumd :want (new 'static 'inline-array level-buffer-state 6 @@ -8473,7 +9261,11 @@ :trans (new 'static 'vector :x 96944.54 :y -23309.518 :z -2578265.0 :w 1.0) :quat (new 'static 'vector :y -0.8521 :w 0.5232) :camera-trans (new 'static 'vector :x 125187.27 :y -11000.627 :z -2563945.8 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.4517 0.0 0.8921 -0.0971 0.994 -0.0492 -0.8868 -0.1089 -0.449) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.4517 0.0 0.8921)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.0971 0.994 -0.0492)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.8868 -0.1089 -0.449)) + ) :on-goto #f :vis-nick 'stadiumd :want (new 'static 'inline-array level-buffer-state 6 @@ -8493,7 +9285,11 @@ :trans (new 'static 'vector :x -1065634.2 :y -90913.18 :z -1832483.2 :w 1.0) :quat (new 'static 'vector :x 0.0316 :y -0.899 :z 0.0115 :w -0.4364) :camera-trans (new 'static 'vector :x -1082339.8 :y -78608.38 :z -1817219.9 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.675 0.0 -0.7377 0.226 0.9518 -0.2068 0.7022 -0.3064 -0.6426) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.675 0.0 -0.7377)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.226 0.9518 -0.2068)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.7022 -0.3064 -0.6426)) + ) :on-goto #f :vis-nick 'stadiumd :want (new 'static 'inline-array level-buffer-state 6 @@ -8568,7 +9364,11 @@ :trans (new 'static 'vector :x 446888.75 :y -38911.59 :z -2322099.8 :w 1.0) :quat (new 'static 'vector :w 1.0) :camera-trans (new 'static 'vector :x 457174.22 :y -18563.072 :z -2274887.8 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.9705 0.0 0.2409 -0.0364 0.9885 -0.1466 -0.2381 -0.1511 -0.9593) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.9705 0.0 0.2409)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.0364 0.9885 -0.1466)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.2381 -0.1511 -0.9593)) + ) :on-goto #f :vis-nick 'skatea :want (new 'static 'inline-array level-buffer-state 6 @@ -8588,7 +9388,11 @@ :trans (new 'static 'vector :x 497077.44 :y -38912.41 :z -2587993.0 :w 1.0) :quat (new 'static 'vector :y -0.0379 :w -0.9992) :camera-trans (new 'static 'vector :x 494938.12 :y -18720.36 :z -2635767.8 :w 1.0) - :camera-rot (new 'static 'array float 9 0.9989 0.0 -0.0455 0.0054 0.9928 0.1195 0.0452 -0.1196 0.9917) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.9989 0.0 -0.0455)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.0054 0.9928 0.1195)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.0452 -0.1196 0.9917)) + ) :on-goto #f :vis-nick 'skatea :want (new 'static 'inline-array level-buffer-state 6 @@ -8607,7 +9411,11 @@ :trans (new 'static 'vector :x 233773.47 :y -55359.08 :z -2150226.0 :w 1.0) :quat (new 'static 'vector :y -0.6942 :w 0.7197) :camera-trans (new 'static 'vector :x 285005.0 :y -34259.76 :z -2150090.0 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.0026 0.0 0.9999 -0.1208 0.9926 -0.0003 -0.9926 -0.1208 -0.0026) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.0026 0.0 0.9999)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.1208 0.9926 -0.0003)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.9926 -0.1208 -0.0026)) + ) :on-goto #f :vis-nick 'skatea :want (new 'static 'inline-array level-buffer-state 6 @@ -8682,7 +9490,11 @@ :trans (new 'static 'vector :x 362617.25 :y 49152.0 :z -1795099.5 :w 1.0) :quat (new 'static 'vector :y -0.4053 :w 0.9141) :camera-trans (new 'static 'vector :x 402171.1 :y 70245.99 :z -1812076.1 :w 1.0) - :camera-rot (new 'static 'array float 9 0.3942 0.0 0.919 -0.1608 0.9845 0.069 -0.9048 -0.175 0.3881) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.3942 0.0 0.919)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.1608 0.9845 0.069)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.9048 -0.175 0.3881)) + ) :on-goto #f :vis-nick 'garage :want (new 'static 'inline-array level-buffer-state 6 @@ -8702,7 +9514,11 @@ :trans (new 'static 'vector :x 433220.4 :y 49152.0 :z -1832372.2 :w 1.0) :quat (new 'static 'vector :y -0.9926 :w 0.1212) :camera-trans (new 'static 'vector :x 449114.53 :y 69541.07 :z -1870120.1 :w 1.0) - :camera-rot (new 'static 'array float 9 0.8912 0.0 0.4534 -0.084 0.9826 0.1652 -0.4455 -0.1854 0.8758) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.8912 0.0 0.4534)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.084 0.9826 0.1652)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.4455 -0.1854 0.8758)) + ) :on-goto #f :vis-nick 'garage :want (new 'static 'inline-array level-buffer-state 6 @@ -8722,7 +9538,11 @@ :trans (new 'static 'vector :x 433220.4 :y 49152.0 :z -1832372.2 :w 1.0) :quat (new 'static 'vector :y -0.9926 :w 0.1212) :camera-trans (new 'static 'vector :x 449114.53 :y 69541.07 :z -1870120.1 :w 1.0) - :camera-rot (new 'static 'array float 9 0.8912 0.0 0.4534 -0.084 0.9826 0.1652 -0.4455 -0.1854 0.8758) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.8912 0.0 0.4534)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.084 0.9826 0.1652)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.4455 -0.1854 0.8758)) + ) :on-goto #f :vis-nick 'garage :want (new 'static 'inline-array level-buffer-state 6 @@ -9703,7 +10523,11 @@ :trans (new 'static 'vector :x 2918937.5 :y 34444.902 :z 3093502.2 :w 1.0) :quat (new 'static 'vector :y -0.9989 :w 0.0465) :camera-trans (new 'static 'vector :x 2921813.5 :y 55538.484 :z 3144613.5 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.9984 0.0 0.0554 -0.0067 0.9925 -0.1217 -0.055 -0.1219 -0.991) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.9984 0.0 0.0554)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.0067 0.9925 -0.1217)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.055 -0.1219 -0.991)) + ) :on-goto #f :vis-nick 'ctymarkb :want (new 'static 'inline-array level-buffer-state 6 @@ -9892,7 +10716,11 @@ :trans (new 'static 'vector :x -439072.34 :y 32768.0 :z 1956770.6 :w 1.0) :quat (new 'static 'vector :y -0.1582 :w 0.9874) :camera-trans (new 'static 'vector :x -396247.84 :y 53861.992 :z 1952489.9 :w 1.0) - :camera-rot (new 'static 'array float 9 0.1584 0.0 0.9873 -0.1741 0.9843 0.0279 -0.9718 -0.1763 0.1559) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.1584 0.0 0.9873)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.1741 0.9843 0.0279)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.9718 -0.1763 0.1559)) + ) :on-goto #f :vis-nick 'kiosk :want (new 'static 'inline-array level-buffer-state 6 @@ -9968,7 +10796,11 @@ :trans (new 'static 'vector :x 2893301.2 :y 24565.35 :z -1878591.9 :w 1.0) :quat (new 'static 'vector :y -0.1552 :w -0.9878) :camera-trans (new 'static 'vector :x 2885879.0 :y 45466.83 :z -1928682.8 :w 1.0) - :camera-rot (new 'static 'array float 9 0.9891 0.0 -0.1466 0.0175 0.9927 0.1185 0.1455 -0.1198 0.982) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.9891 0.0 -0.1466)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.0175 0.9927 0.1185)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.1455 -0.1198 0.982)) + ) :on-goto #f :vis-nick 'oracle :want (new 'static 'inline-array level-buffer-state 6 @@ -10042,7 +10874,11 @@ :trans (new 'static 'vector :x 4880597.0 :y 15103.181 :z 244580.77 :w 1.0) :quat (new 'static 'vector :y 0.7269 :w 0.6866) :camera-trans (new 'static 'vector :x 4842975.5 :y 32609.484 :z 244427.98 :w 1.0) - :camera-rot (new 'static 'array float 9 0.0036 0.0 -0.9999 0.161 0.9869 0.0005 0.9869 -0.161 0.0036) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.0036 0.0 -0.9999)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.161 0.9869 0.0005)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.9869 -0.161 0.0036)) + ) :on-goto #f :vis-nick 'hideout :want (new 'static 'inline-array level-buffer-state 6 @@ -10062,7 +10898,11 @@ :trans (new 'static 'vector :x 4880597.0 :y 15103.181 :z 244580.77 :w 1.0) :quat (new 'static 'vector :y 0.7269 :w 0.6866) :camera-trans (new 'static 'vector :x 4842975.5 :y 32609.484 :z 244427.98 :w 1.0) - :camera-rot (new 'static 'array float 9 0.0036 0.0 -0.9999 0.161 0.9869 0.0005 0.9869 -0.161 0.0036) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.0036 0.0 -0.9999)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.161 0.9869 0.0005)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.9869 -0.161 0.0036)) + ) :on-goto #f :vis-nick 'hideout :want (new 'static 'inline-array level-buffer-state 6 @@ -11143,7 +11983,11 @@ :trans (new 'static 'vector :x -325973.6 :y 36371.25 :z 5391642.0 :w 1.0) :quat (new 'static 'vector :y 0.9867 :w -0.162) :camera-trans (new 'static 'vector :x -301305.84 :y 51219.66 :z 5399168.5 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.3137 0.0 0.9495 -0.2469 0.9655 -0.0816 -0.9168 -0.2601 -0.3029) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.3137 0.0 0.9495)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.2469 0.9655 -0.0816)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.9168 -0.2601 -0.3029)) + ) :on-goto #f :vis-nick 'hiphog :want (new 'static 'inline-array level-buffer-state 6 @@ -11163,7 +12007,11 @@ :trans (new 'static 'vector :x -325973.6 :y 36371.25 :z 5391642.0 :w 1.0) :quat (new 'static 'vector :y 0.9867 :w -0.162) :camera-trans (new 'static 'vector :x -301305.84 :y 51219.66 :z 5399168.5 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.3137 0.0 0.9495 -0.2469 0.9655 -0.0816 -0.9168 -0.2601 -0.3029) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.3137 0.0 0.9495)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.2469 0.9655 -0.0816)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.9168 -0.2601 -0.3029)) + ) :on-goto #f :vis-nick 'hiphog :want (new 'static 'inline-array level-buffer-state 6 @@ -11183,7 +12031,11 @@ :trans (new 'static 'vector :x -325973.6 :y 36371.25 :z 5391642.0 :w 1.0) :quat (new 'static 'vector :y 0.9867 :w -0.162) :camera-trans (new 'static 'vector :x -301305.84 :y 51219.66 :z 5399168.5 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.3137 0.0 0.9495 -0.2469 0.9655 -0.0816 -0.9168 -0.2601 -0.3029) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.3137 0.0 0.9495)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.2469 0.9655 -0.0816)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.9168 -0.2601 -0.3029)) + ) :on-goto #f :vis-nick 'hiphog :want (new 'static 'inline-array level-buffer-state 6 @@ -11203,7 +12055,11 @@ :trans (new 'static 'vector :x -325973.6 :y 36371.25 :z 5391642.0 :w 1.0) :quat (new 'static 'vector :y 0.9867 :w -0.162) :camera-trans (new 'static 'vector :x -301305.84 :y 51219.66 :z 5399168.5 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.3137 0.0 0.9495 -0.2469 0.9655 -0.0816 -0.9168 -0.2601 -0.3029) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.3137 0.0 0.9495)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.2469 0.9655 -0.0816)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.9168 -0.2601 -0.3029)) + ) :on-goto #f :vis-nick 'hiphog :want (new 'static 'inline-array level-buffer-state 6 @@ -11223,7 +12079,11 @@ :trans (new 'static 'vector :x 2284730.0 :y 8799.847 :z -3431194.2 :w 1.0) :quat (new 'static 'vector :y 0.9929 :w -0.1181) :camera-trans (new 'static 'vector :x 2282735.5 :y 26317.62 :z -3393441.5 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.9986 0.0 -0.0516 0.0082 0.9871 -0.1595 0.0509 -0.1597 -0.9858) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.9986 0.0 -0.0516)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.0082 0.9871 -0.1595)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.0509 -0.1597 -0.9858)) + ) :on-goto #f :vis-nick 'demo :want (new 'static 'inline-array level-buffer-state 6 @@ -11243,7 +12103,11 @@ :trans (new 'static 'vector :x -325973.6 :y 36371.25 :z 5391642.0 :w 1.0) :quat (new 'static 'vector :y 0.9867 :w -0.162) :camera-trans (new 'static 'vector :x -301305.84 :y 51219.66 :z 5399168.5 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.3137 0.0 0.9495 -0.2469 0.9655 -0.0816 -0.9168 -0.2601 -0.3029) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.3137 0.0 0.9495)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.2469 0.9655 -0.0816)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.9168 -0.2601 -0.3029)) + ) :on-goto #f :vis-nick 'hiphog :want (new 'static 'inline-array level-buffer-state 6 @@ -11656,7 +12520,11 @@ :trans (new 'static 'vector :x 1797717.2 :y 34816.0 :z 5337087.0 :w 1.0) :quat (new 'static 'vector :y -0.9956 :w 0.0932) :camera-trans (new 'static 'vector :x 1807258.4 :y 55836.67 :z 5378828.5 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.9756 0.0 0.2193 -0.0387 0.9843 -0.1721 -0.2158 -0.1764 -0.9603) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.9756 0.0 0.2193)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.0387 0.9843 -0.1721)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.2158 -0.1764 -0.9603)) + ) :on-goto #f :vis-nick 'gungame :want (new 'static 'inline-array level-buffer-state 6 @@ -11676,7 +12544,11 @@ :trans (new 'static 'vector :x 1797717.2 :y 34816.0 :z 5337087.0 :w 1.0) :quat (new 'static 'vector :y -0.9956 :w 0.0932) :camera-trans (new 'static 'vector :x 1807258.4 :y 55836.67 :z 5378828.5 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.9756 0.0 0.2193 -0.0387 0.9843 -0.1721 -0.2158 -0.1764 -0.9603) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.9756 0.0 0.2193)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.0387 0.9843 -0.1721)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.2158 -0.1764 -0.9603)) + ) :on-goto #f :vis-nick 'gungame :want (new 'static 'inline-array level-buffer-state 6 @@ -11753,7 +12625,11 @@ :trans (new 'static 'vector :x 1759030.1 :y -244842.1 :z -7407948.5 :w 1.0) :quat (new 'static 'vector :y 0.8886 :w -0.4586) :camera-trans (new 'static 'vector :x 1799911.9 :y -223814.86 :z -7395168.5 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.2993 0.0 0.9541 -0.169 0.9841 -0.053 -0.939 -0.1771 -0.2946) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.2993 0.0 0.9541)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.169 0.9841 -0.053)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.939 -0.1771 -0.2946)) + ) :on-goto '(begin (kill "crimson-guard-level-198" store #f) (kill "crimson-guard-level-199" store #f)) :vis-nick 'dig1 :want (new 'static 'inline-array level-buffer-state 6 @@ -11830,7 +12706,11 @@ :trans (new 'static 'vector :x 1759030.1 :y -244842.1 :z -7407948.5 :w 1.0) :quat (new 'static 'vector :y 0.8886 :w -0.4586) :camera-trans (new 'static 'vector :x 1799911.9 :y -223814.86 :z -7395168.5 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.2993 0.0 0.9541 -0.169 0.9841 -0.053 -0.939 -0.1771 -0.2946) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.2993 0.0 0.9541)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.169 0.9841 -0.053)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.939 -0.1771 -0.2946)) + ) :on-goto '(begin (kill "flitter-255" store #f) (kill "flitter-256" store #f) @@ -11856,7 +12736,11 @@ :trans (new 'static 'vector :x 772547.8 :y -57348.098 :z -7644002.5 :w 1.0) :quat (new 'static 'vector :y -0.4492 :w 0.8934) :camera-trans (new 'static 'vector :x 788845.4 :y -36243.867 :z -7683787.0 :w 1.0) - :camera-rot (new 'static 'array float 9 0.924 0.0 0.3823 -0.0676 0.9842 0.1635 -0.3763 -0.1769 0.9094) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.924 0.0 0.3823)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.0676 0.9842 0.1635)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.3763 -0.1769 0.9094)) + ) :on-goto #f :vis-nick 'dig3a :want (new 'static 'inline-array level-buffer-state 6 @@ -11876,7 +12760,11 @@ :trans (new 'static 'vector :x 1150306.2 :y -217773.67 :z -8811749.0 :w 1.0) :quat (new 'static 'vector :y 0.7541 :w -0.6566) :camera-trans (new 'static 'vector :x 1192340.6 :y -196685.0 :z -8802656.0 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.2109 0.0 0.9775 -0.1712 0.9845 -0.0369 -0.9623 -0.1751 -0.2076) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.2109 0.0 0.9775)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.1712 0.9845 -0.0369)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.9623 -0.1751 -0.2076)) + ) :on-goto #f :vis-nick 'dig3b :want (new 'static 'inline-array level-buffer-state 6 @@ -11895,7 +12783,11 @@ :trans (new 'static 'vector :x 1406619.2 :y -303026.2 :z -8176758.5 :w 1.0) :quat (new 'static 'vector :y 0.9223 :w -0.3864) :camera-trans (new 'static 'vector :x 1434400.8 :y -281924.0 :z -8143880.0 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.7632 0.0 0.6461 -0.1136 0.9844 -0.1341 -0.636 -0.1758 -0.7513) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.7632 0.0 0.6461)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.1136 0.9844 -0.1341)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.636 -0.1758 -0.7513)) + ) :on-goto '(begin (kill "flitter-244" store #f) (kill "flitter-245" store #f)) :vis-nick 'dig3b :want (new 'static 'inline-array level-buffer-state 6 @@ -12025,7 +12917,11 @@ :trans (new 'static 'vector :x 1173561.4 :y 81917.13 :z -6861326.0 :w 1.0) :quat (new 'static 'vector :y 0.9645 :w -0.2637) :camera-trans (new 'static 'vector :x 1216548.0 :y 103011.53 :z -6859337.5 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.0855 0.0 0.9963 -0.1752 0.9844 -0.015 -0.9807 -0.1759 -0.0842) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.0855 0.0 0.9963)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.1752 0.9844 -0.015)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.9807 -0.1759 -0.0842)) + ) :on-goto #f :vis-nick 'caspad :want (new 'static 'inline-array level-buffer-state 6 @@ -12045,7 +12941,11 @@ :trans (new 'static 'vector :x 1152265.0 :y 114685.13 :z -6746448.5 :w 1.0) :quat (new 'static 'vector :y 0.9282 :w 0.3719) :camera-trans (new 'static 'vector :x 1121375.9 :y 135779.12 :z -6705579.0 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.7972 0.0 -0.6036 0.0733 0.9925 -0.0968 0.5992 -0.1214 -0.7913) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.7972 0.0 -0.6036)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.0733 0.9925 -0.0968)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.5992 -0.1214 -0.7913)) + ) :on-goto '(send-event "cpad-elevator-1" 'jump-to 'top) :vis-nick 'caspad :want (new 'static 'inline-array level-buffer-state 6 @@ -12065,7 +12965,11 @@ :trans (new 'static 'vector :x 1103312.9 :y 114685.13 :z -6718415.5 :w 1.0) :quat (new 'static 'vector :y 0.7686 :w -0.6396) :camera-trans (new 'static 'vector :x 1153423.8 :y 135779.12 :z -6707907.0 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.2059 0.0 0.9785 -0.1191 0.9925 -0.025 -0.9712 -0.1217 -0.2044) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.2059 0.0 0.9785)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.1191 0.9925 -0.025)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.9712 -0.1217 -0.2044)) + ) :on-goto '(send-event "cpad-elevator-1" 'jump-to 'top) :vis-nick 'caspad :want (new 'static 'inline-array level-buffer-state 6 @@ -12143,7 +13047,11 @@ :trans (new 'static 'vector :x 21039.924 :y 229371.9 :z -6893704.5 :w 1.0) :quat (new 'static 'vector :y 0.8039 :w -0.5946) :camera-trans (new 'static 'vector :x 72232.96 :y 250453.2 :z -6894464.0 :w 1.0) - :camera-rot (new 'static 'array float 9 0.0151 0.0 0.9998 -0.1207 0.9926 0.0018 -0.9925 -0.1207 0.015) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.0151 0.0 0.9998)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.1207 0.9926 0.0018)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.9925 -0.1207 0.015)) + ) :on-goto #f :vis-nick 'castle :want (new 'static 'inline-array level-buffer-state 6 @@ -12162,7 +13070,11 @@ :trans (new 'static 'vector :x -536164.75 :y 196603.5 :z -6979012.0 :w 1.0) :quat (new 'static 'vector :y -0.7785 :w 0.6275) :camera-trans (new 'static 'vector :x -530788.4 :y 217697.89 :z -7021644.0 :w 1.0) - :camera-rot (new 'static 'array float 9 0.9722 0.0 0.2338 -0.0418 0.9838 0.1739 -0.23 -0.1789 0.9565) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.9722 0.0 0.2338)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.0418 0.9838 0.1739)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.23 -0.1789 0.9565)) + ) :on-goto #f :vis-nick 'castle :want (new 'static 'inline-array level-buffer-state 6 @@ -12238,7 +13150,11 @@ :trans (new 'static 'vector :x -1351936.0 :y 1454352.4 :z -6874412.0 :w 1.0) :quat (new 'static 'vector :y -0.7631 :w -0.6462) :camera-trans (new 'static 'vector :x -1403063.9 :y 1475443.1 :z -6877073.5 :w 1.0) - :camera-rot (new 'static 'array float 9 0.0508 0.0 -0.9987 0.1215 0.9925 0.0061 0.9912 -0.1217 0.0504) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.0508 0.0 -0.9987)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.1215 0.9925 0.0061)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.9912 -0.1217 0.0504)) + ) :on-goto #f :vis-nick 'casboss :want (new 'static 'inline-array level-buffer-state 6 @@ -12428,7 +13344,11 @@ :trans (new 'static 'vector :x -687440.7 :y 154998.38 :z 752476.2 :w 1.0) :quat (new 'static 'vector :y 0.8595 :w 0.511) :camera-trans (new 'static 'vector :x -724766.3 :y 176109.56 :z 773868.75 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.4882 0.0 -0.8726 0.1537 0.9843 -0.086 0.859 -0.1762 -0.4806) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.4882 0.0 -0.8726)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.1537 0.9843 -0.086)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.859 -0.1762 -0.4806)) + ) :on-goto #f :vis-nick 'village1 :want (new 'static 'inline-array level-buffer-state 6 @@ -12448,7 +13368,11 @@ :trans (new 'static 'vector :x -687440.7 :y 154998.38 :z 752476.2 :w 1.0) :quat (new 'static 'vector :y 0.8595 :w 0.511) :camera-trans (new 'static 'vector :x -724766.3 :y 176109.56 :z 773868.75 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.4882 0.0 -0.8726 0.1537 0.9843 -0.086 0.859 -0.1762 -0.4806) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.4882 0.0 -0.8726)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.1537 0.9843 -0.086)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.859 -0.1762 -0.4806)) + ) :on-goto #f :vis-nick 'village1 :want (new 'static 'inline-array level-buffer-state 6 @@ -12468,7 +13392,11 @@ :trans (new 'static 'vector :x -687440.7 :y 154998.38 :z 752476.2 :w 1.0) :quat (new 'static 'vector :y 0.8595 :w 0.511) :camera-trans (new 'static 'vector :x -724766.3 :y 176109.56 :z 773868.75 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.4882 0.0 -0.8726 0.1537 0.9843 -0.086 0.859 -0.1762 -0.4806) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.4882 0.0 -0.8726)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.1537 0.9843 -0.086)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.859 -0.1762 -0.4806)) + ) :on-goto #f :vis-nick 'village1 :want (new 'static 'inline-array level-buffer-state 6 @@ -12770,7 +13698,11 @@ :trans (new 'static 'vector :x 15416.524 :y -4361.8306 :z -400347.97 :w 1.0) :quat (new 'static 'vector :y -0.9467 :w 0.322) :camera-trans (new 'static 'vector :x 31184.486 :y 16731.75 :z -351637.9 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.9514 0.0 0.3079 -0.0374 0.9925 -0.1158 -0.3056 -0.1217 -0.9443) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.9514 0.0 0.3079)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.0374 0.9925 -0.1158)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.3056 -0.1217 -0.9443)) + ) :on-goto #f :vis-nick 'nest :want (new 'static 'inline-array level-buffer-state 6 @@ -12790,7 +13722,11 @@ :trans (new 'static 'vector :x 52140.44 :y -4358.9634 :z -309093.16 :w 1.0) :quat (new 'static 'vector :y -0.0195 :w -0.9998) :camera-trans (new 'static 'vector :x 62153.523 :y 16219.75 :z -357362.06 :w 1.0) - :camera-rot (new 'static 'array float 9 0.9789 0.0 0.2039 -0.0244 0.9927 0.1175 -0.2024 -0.12 0.9719) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.9789 0.0 0.2039)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.0244 0.9927 0.1175)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.2024 -0.12 0.9719)) + ) :on-goto #f :vis-nick 'nest :want (new 'static 'inline-array level-buffer-state 6 @@ -12809,7 +13745,11 @@ :trans (new 'static 'vector :x -467713.22 :y 122876.73 :z -631910.4 :w 1.0) :quat (new 'static 'vector :y 0.0352 :w -0.9993) :camera-trans (new 'static 'vector :x -461033.88 :y 143970.3 :z -674393.7 :w 1.0) - :camera-rot (new 'static 'array float 9 0.988 0.0 0.1543 -0.0271 0.9843 0.1739 -0.1519 -0.1761 0.9725) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.988 0.0 0.1543)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.0271 0.9843 0.1739)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.1519 -0.1761 0.9725)) + ) :on-goto #f :vis-nick 'nest :want (new 'static 'inline-array level-buffer-state 6 @@ -12829,7 +13769,11 @@ :trans (new 'static 'vector :x -467713.22 :y 122876.73 :z -631910.4 :w 1.0) :quat (new 'static 'vector :y 0.0352 :w -0.9993) :camera-trans (new 'static 'vector :x -461033.88 :y 143970.3 :z -674393.7 :w 1.0) - :camera-rot (new 'static 'array float 9 0.988 0.0 0.1543 -0.0271 0.9843 0.1739 -0.1519 -0.1761 0.9725) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.988 0.0 0.1543)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.0271 0.9843 0.1739)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.1519 -0.1761 0.9725)) + ) :on-goto #f :vis-nick 'nest :want (new 'static 'inline-array level-buffer-state 6 @@ -12906,7 +13850,11 @@ :trans (new 'static 'vector :x 328095.34 :y 141232.12 :z -1315237.9 :w 1.0) :quat (new 'static 'vector :x -0.0005 :y 0.8541 :z 0.0013 :w 0.52) :camera-trans (new 'static 'vector :x 307591.16 :y 157170.89 :z -1291318.9 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.7269 0.0 -0.6866 0.053 0.997 -0.0561 0.6846 -0.0772 -0.7248) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.7269 0.0 -0.6866)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.053 0.997 -0.0561)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.6846 -0.0772 -0.7248)) + ) :on-goto #f :vis-nick 'nestb :want (new 'static 'inline-array level-buffer-state 6 @@ -12926,7 +13874,11 @@ :trans (new 'static 'vector :x 634325.0 :y 134077.23 :z -1619793.1 :w 1.0) :quat (new 'static 'vector :y -0.9292 :w -0.3694) :camera-trans (new 'static 'vector :x 606261.7 :y 153914.58 :z -1591727.8 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.7046 0.0 -0.7095 0.1314 0.9826 -0.1305 0.6972 -0.1852 -0.6924) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.7046 0.0 -0.7095)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.1314 0.9826 -0.1305)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.6972 -0.1852 -0.6924)) + ) :on-goto #f :vis-nick 'nestb :want (new 'static 'inline-array level-buffer-state 6 @@ -12946,7 +13898,11 @@ :trans (new 'static 'vector :x 690462.3 :y 84592.64 :z -1698655.0 :w 1.0) :quat (new 'static 'vector :y 0.8663 :w 0.4993) :camera-trans (new 'static 'vector :x 642789.8 :y 105517.47 :z -1715050.5 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.0005 0.0 -0.9999 0.008 0.9999 0.0 0.9999 -0.008 -0.0005) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.0005 0.0 -0.9999)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.008 0.9999 0.0)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.9999 -0.008 -0.0005)) + ) :on-goto #f :vis-nick 'nestb :want (new 'static 'inline-array level-buffer-state 6 @@ -12966,7 +13922,11 @@ :trans (new 'static 'vector :x 634325.0 :y 134077.23 :z -1619793.1 :w 1.0) :quat (new 'static 'vector :y -0.9292 :w -0.3694) :camera-trans (new 'static 'vector :x 606261.7 :y 153914.58 :z -1591727.8 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.7046 0.0 -0.7095 0.1314 0.9826 -0.1305 0.6972 -0.1852 -0.6924) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.7046 0.0 -0.7095)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.1314 0.9826 -0.1305)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.6972 -0.1852 -0.6924)) + ) :on-goto #f :vis-nick 'nestb :want (new 'static 'inline-array level-buffer-state 6 @@ -13209,7 +14169,11 @@ :trans (new 'static 'vector :x -63374.133 :y 23056.385 :z 99968.62 :w 1.0) :quat (new 'static 'vector :y -0.0282 :w 0.9995) :camera-trans (new 'static 'vector :x -75443.81 :y 44169.625 :z 50212.453 :w 1.0) - :camera-rot (new 'static 'array float 9 0.9721 0.0 -0.2344 0.0285 0.9925 0.1184 0.2326 -0.1218 0.9648) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 0.9721 0.0 -0.2344)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.0285 0.9925 0.1184)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.2326 -0.1218 0.9648)) + ) :on-goto #f :vis-nick 'island1 :want (new 'static 'inline-array level-buffer-state 6 @@ -13302,7 +14266,11 @@ :trans (new 'static 'vector :x 229338.31 :y 40960.0 :z 732819.9 :w 1.0) :quat (new 'static 'vector :x 0.0013 :y -0.9682 :z 0.0008 :w -0.2499) :camera-trans (new 'static 'vector :x 193991.89 :y 60429.516 :z 760925.8 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.6255 0.0 -0.7801 0.0995 0.9918 -0.0798 0.7737 -0.1276 -0.6204) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.6255 0.0 -0.7801)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.0995 0.9918 -0.0798)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.7737 -0.1276 -0.6204)) + ) :on-goto #f :vis-nick #f :want (new 'static 'inline-array level-buffer-state 6 @@ -13379,7 +14347,11 @@ :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) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.979 0.0 -0.2037)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.0545 0.9634 -0.2622)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.1963 -0.2678 -0.9432)) + ) :on-goto #f :vis-nick #f :want (new 'static 'inline-array level-buffer-state 6 @@ -13623,7 +14595,11 @@ :trans (new 'static 'vector :x 32127.385 :z 4703.846 :w 1.0) :quat (new 'static 'vector :y 0.6223 :w 0.7827) :camera-trans (new 'static 'vector :x -15613.133 :y 21093.99 :z 23271.424 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.3584 0.0 -0.9335 0.1116 0.9928 -0.0428 0.9268 -0.1196 -0.3559) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.3584 0.0 -0.9335)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.1116 0.9928 -0.0428)) + (new 'static 'vector3s :data (new 'static 'array float 3 0.9268 -0.1196 -0.3559)) + ) :on-goto #f :vis-nick 'chartest :want (new 'static 'inline-array level-buffer-state 6 @@ -13698,7 +14674,11 @@ :trans (new 'static 'vector :x 370575.78 :y 4786.995 :z 775480.94 :w 1.0) :quat (new 'static 'vector :y 0.9867 :w -0.162) :camera-trans (new 'static 'vector :x 375318.53 :y 25830.605 :z 826459.75 :w 1.0) - :camera-rot (new 'static 'array float 9 -0.9956 0.0 0.0933 -0.0112 0.9927 -0.1195 -0.0926 -0.12 -0.9884) + :camera-rot (new 'static 'inline-array vector3s 3 + (new 'static 'vector3s :data (new 'static 'array float 3 -0.9956 0.0 0.0933)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.0112 0.9927 -0.1195)) + (new 'static 'vector3s :data (new 'static 'array float 3 -0.0926 -0.12 -0.9884)) + ) :on-goto #f :vis-nick 'atoll :want (new 'static 'inline-array level-buffer-state 6 diff --git a/test/decompiler/reference/jak2/engine/load/load-state_REF.gc b/test/decompiler/reference/jak2/engine/load/load-state_REF.gc new file mode 100644 index 0000000000..a41c5ed258 --- /dev/null +++ b/test/decompiler/reference/jak2/engine/load/load-state_REF.gc @@ -0,0 +1,359 @@ +;;-*-Lisp-*- +(in-package goal) + +;; definition for method 2 of type level-buffer-state +(defmethod print level-buffer-state ((obj level-buffer-state)) + (format + #t + "#" + (-> obj name) + (-> obj display?) + (-> obj force-vis?) + (-> obj force-inside?) + obj + ) + obj + ) + +;; definition for method 9 of type load-state +(defmethod reset! load-state ((obj load-state)) + (dotimes (v1-0 6) + (set! (-> obj want v1-0 name) #f) + (set! (-> obj want v1-0 display?) #f) + (set! (-> obj want v1-0 force-vis?) #f) + (set! (-> obj want v1-0 force-inside?) #f) + ) + (dotimes (v1-3 3) + (set! (-> obj want-sound v1-3) #f) + ) + (set! (-> obj command-list) '()) + (dotimes (v1-7 256) + (set! (-> obj object-name v1-7) #f) + (set! (-> obj object-status v1-7) (the-as basic 0)) + ) + obj + ) + +;; definition for method 11 of type load-state +(defmethod want-levels load-state ((obj load-state) (arg0 (pointer symbol))) + (dotimes (v1-0 6) + (dotimes (a2-0 6) + (when (= (-> obj want v1-0 name) (-> arg0 a2-0)) + (set! (-> arg0 a2-0) #f) + (goto cfg-8) + ) + ) + (set! (-> obj want v1-0 name) #f) + (label cfg-8) + ) + (dotimes (v1-3 6) + (when (-> arg0 v1-3) + (dotimes (a2-13 6) + (when (not (-> obj want a2-13 name)) + (set! (-> obj want a2-13 name) (-> arg0 v1-3)) + (set! (-> obj want a2-13 display?) #f) + (set! (-> obj want a2-13 force-vis?) #f) + (set! (-> obj want a2-13 force-inside?) #f) + (goto cfg-19) + ) + ) + ) + (label cfg-19) + ) + (add-borrow-levels obj) + 0 + ) + +;; definition for method 12 of type load-state +;; WARN: Return type mismatch int vs none. +(defmethod want-sound-banks load-state ((obj load-state) (arg0 (pointer symbol))) + (dotimes (v1-0 3) + (dotimes (a2-0 3) + (when (= (-> obj want-sound v1-0) (-> arg0 a2-0)) + (set! (-> arg0 a2-0) #f) + (goto cfg-8) + ) + ) + (set! (-> obj want-sound v1-0) #f) + (label cfg-8) + ) + (dotimes (v1-3 3) + (when (-> arg0 v1-3) + (dotimes (a2-13 3) + (when (not (-> obj want-sound a2-13)) + (set! (-> obj want-sound a2-13) (-> arg0 v1-3)) + (goto cfg-19) + ) + ) + ) + (label cfg-19) + ) + 0 + (none) + ) + +;; definition for method 13 of type load-state +(defmethod want-display-level load-state ((obj load-state) (arg0 symbol) (arg1 symbol)) + (dotimes (v1-0 6) + (when (= (-> obj want v1-0 name) arg0) + (set! (-> obj want v1-0 display?) arg1) + (add-borrow-levels obj) + (return 0) + ) + ) + (if arg1 + (format 0 "ERROR: can't display ~A because it isn't loaded~%" arg0) + ) + 0 + ) + +;; definition for method 14 of type load-state +;; WARN: Return type mismatch int vs none. +(defmethod want-vis-level load-state ((obj load-state) (arg0 symbol)) + (let ((v1-0 (lookup-level-info arg0))) + (if v1-0 + (set! arg0 (-> v1-0 name)) + ) + ) + (set! (-> obj vis-nick) arg0) + 0 + (none) + ) + +;; definition for method 15 of type load-state +(defmethod want-force-vis load-state ((obj load-state) (arg0 symbol) (arg1 symbol)) + (dotimes (v1-0 6) + (when (= (-> obj want v1-0 name) arg0) + (set! (-> obj want v1-0 force-vis?) arg1) + (return 0) + ) + ) + (format 0 "ERROR: can't force vis on ~A because it isn't loaded~%" arg0) + 0 + ) + +;; definition for method 16 of type load-state +;; WARN: Return type mismatch int vs none. +;; WARN: Function (method 16 load-state) has a return type of none, but the expression builder found a return statement. +(defmethod want-force-inside load-state ((obj load-state) (arg0 symbol) (arg1 symbol)) + (dotimes (v1-0 6) + (when (= (-> obj want v1-0 name) arg0) + (set! (-> obj want v1-0 force-inside?) arg1) + (return 0) + ) + ) + (format 0 "ERROR: can't force inside on ~A because it isn't loaded~%" arg0) + 0 + (none) + ) + +;; definition for method 21 of type load-state +;; WARN: Return type mismatch int vs none. +(defmethod add-borrow-levels load-state ((obj load-state)) + (dotimes (s5-0 6) + (let ((a0-1 (-> obj want s5-0 name))) + (when a0-1 + (let ((a0-2 (lookup-level-info a0-1))) + (when (= (-> a0-2 memory-mode) (load-buffer-mode borrow)) + (set! (-> obj want s5-0 name) #f) + (set! (-> obj want s5-0 display?) #f) + (set! (-> obj want s5-0 force-vis?) #f) + (set! (-> obj want s5-0 force-inside?) #f) + ) + ) + ) + ) + ) + (let ((s5-1 (new 'stack 'array symbol 24))) + (set! (-> s5-1 length) 0) + (dotimes (s4-0 6) + (let ((a0-5 (-> obj want s4-0 name))) + (when a0-5 + (let ((v1-22 (+ (* (-> s5-1 length) 4) (the-as int s5-1)))) + (s.w! (+ v1-22 12) a0-5) + ) + (let ((v1-25 (-> obj want s4-0 display?)) + (a1-4 (+ (* (+ (-> s5-1 length) 1) 4) (the-as int s5-1))) + ) + (s.w! (+ a1-4 12) v1-25) + ) + (let ((v1-28 (-> obj want s4-0 force-vis?)) + (a1-8 (+ (* (+ (-> s5-1 length) 2) 4) (the-as int s5-1))) + ) + (s.w! (+ a1-8 12) v1-28) + ) + (let ((v1-31 (-> obj want s4-0 force-inside?)) + (a1-12 (+ (* (+ (-> s5-1 length) 3) 4) (the-as int s5-1))) + ) + (s.w! (+ a1-12 12) v1-31) + ) + (+! (-> s5-1 length) 4) + (let ((v1-34 (lookup-level-info a0-5))) + (countdown (a0-6 2) + (when (and (-> v1-34 borrow-level a0-6) (< (-> s5-1 length) (-> s5-1 allocated-length))) + (let ((a1-21 (-> v1-34 borrow-level a0-6)) + (a2-4 (+ (* (-> s5-1 length) 4) (the-as int s5-1))) + ) + (s.w! (+ a2-4 12) a1-21) + ) + (let ((a1-25 (if (-> obj want s4-0 display?) + (-> v1-34 borrow-display? a0-6) + ) + ) + (a2-8 (+ (* (+ (-> s5-1 length) 1) 4) (the-as int s5-1))) + ) + (s.w! (+ a2-8 12) a1-25) + ) + (let ((a1-31 (+ (* (+ (-> s5-1 length) 2) 4) (the-as int s5-1)))) + (s.w! (+ a1-31 12) #f) + ) + (let ((a1-35 (+ (* (+ (-> s5-1 length) 3) 4) (the-as int s5-1)))) + (s.w! (+ a1-35 12) #f) + ) + (+! (-> s5-1 length) 4) + ) + ) + ) + ) + ) + ) + (dotimes (v1-39 6) + (cond + ((< (* v1-39 4) (-> s5-1 length)) + (set! (-> obj want v1-39 name) (the-as symbol (l.wu (+ (* (* v1-39 4) 4) (the-as int s5-1) 12)))) + (set! (-> obj want v1-39 display?) (the-as symbol (l.wu (+ (* (+ (* v1-39 4) 1) 4) (the-as int s5-1) 12)))) + (set! (-> obj want v1-39 force-vis?) (the-as symbol (l.wu (+ (* (+ (* v1-39 4) 2) 4) (the-as int s5-1) 12)))) + (set! (-> obj want v1-39 force-inside?) + (the-as symbol (l.wu (+ (* (+ (* v1-39 4) 3) 4) (the-as int s5-1) 12))) + ) + ) + (else + (set! (-> obj want v1-39 name) #f) + (set! (-> obj want v1-39 display?) #f) + (set! (-> obj want v1-39 force-vis?) #f) + (set! (-> obj want v1-39 force-inside?) #f) + ) + ) + ) + ) + 0 + (none) + ) + +;; definition for symbol *display-load-commands*, type symbol +(define *display-load-commands* #f) + +;; definition for method 18 of type load-state +(defmethod backup-load-state-and-set-cmds load-state ((obj load-state) (arg0 pair)) + (dotimes (s4-0 256) + (when (-> obj object-name s4-0) + (format 0 "WARNING: load state somehow aquired object command ~A~%" (-> obj object-name s4-0)) + (set! (-> obj object-name s4-0) #f) + ) + ) + (mem-copy! (&-> *backup-load-state* type) (&-> obj type) 2168) + (set! (-> *backup-load-state* command-list) '()) + (set! (-> obj command-list) arg0) + 0 + ) + +;; definition for method 19 of type load-state +(defmethod restore-load-state-and-cleanup load-state ((obj load-state)) + (with-pp + (execute-commands-up-to obj 100000.0) + (dotimes (s5-0 256) + (when (-> obj object-name s5-0) + (let ((a0-3 (entity-by-name (-> obj object-name s5-0)))) + (set! (-> a0-3 extra perm status) (the-as entity-perm-status (-> obj object-status s5-0))) + (if (-> a0-3 extra process) + (kill! a0-3) + ) + ) + (set! (-> obj object-name s5-0) #f) + ) + ) + (let ((s5-1 (new 'stack-no-clear 'inline-array 'level-buffer-state 6))) + (dotimes (s4-0 6) + ((method-of-type level-buffer-state new) (the-as symbol (-> s5-1 s4-0)) level-buffer-state) + ) + (dotimes (s4-1 6) + (mem-copy! (the-as pointer (-> s5-1 s4-1)) (the-as pointer (-> *load-state* want s4-1)) 16) + ) + (mem-copy! (&-> obj type) (&-> *backup-load-state* type) 2168) + (when (!= (-> pp type) scene-player) + (dotimes (gp-1 6) + (mem-copy! (the-as pointer (-> *load-state* want gp-1)) (the-as pointer (-> s5-1 gp-1)) 16) + ) + ) + ) + (add-borrow-levels *load-state*) + 0 + ) + ) + +;; definition for method 20 of type load-state +(defmethod restore-load-state load-state ((obj load-state)) + (dotimes (v1-0 256) + (if (-> obj object-name v1-0) + (set! (-> obj object-name v1-0) #f) + ) + ) + (mem-copy! (&-> obj type) (&-> *backup-load-state* type) 2168) + 0 + ) + +;; definition for method 17 of type load-state +;; WARN: Return type mismatch int vs none. +;; WARN: Function (method 17 load-state) has a return type of none, but the expression builder found a return statement. +(defmethod execute-commands-up-to load-state ((obj load-state) (arg0 float)) + (with-pp + (let ((s4-0 (new 'stack 'script-context (the-as basic (process->ppointer pp)) pp (the-as vector #f)))) + (set! (-> s4-0 load-state) obj) + (while (not (null? (-> obj command-list))) + (let ((f0-0 (command-get-float (car (car (-> obj command-list))) 0.0)) + (s3-0 (cdr (car (-> obj command-list)))) + ) + (if (< arg0 f0-0) + (return #f) + ) + (if *display-load-commands* + (format 0 "NOTICE: ~D: ~f: execute command ~A~%" (-> pp clock frame-counter) f0-0 s3-0) + ) + (cond + ((pair? (car s3-0)) + (let ((a1-4 (car s3-0))) + (while (not (null? s3-0)) + (eval! s4-0 (the-as pair a1-4)) + (set! s3-0 (cdr s3-0)) + (set! a1-4 (car s3-0)) + ) + ) + ) + (else + (eval! s4-0 s3-0) + ) + ) + ) + (set! (-> obj command-list) (cdr (-> obj command-list))) + ) + ) + 0 + (none) + ) + ) + +;; failed to figure out what this is: +(kmemopen global "load-state") + +;; definition for symbol *backup-load-state*, type load-state +(define *backup-load-state* (new 'global 'load-state)) + +;; definition (perm) for symbol *load-state*, type load-state +(define-perm *load-state* load-state (new 'global 'load-state)) + +;; failed to figure out what this is: +(kmemclose) + + + + diff --git a/test/decompiler/reference/jak2/engine/math/vector-h_REF.gc b/test/decompiler/reference/jak2/engine/math/vector-h_REF.gc index 0e56d29c7a..aeab375b01 100644 --- a/test/decompiler/reference/jak2/engine/math/vector-h_REF.gc +++ b/test/decompiler/reference/jak2/engine/math/vector-h_REF.gc @@ -1058,6 +1058,7 @@ (y float :offset 4) (z float :offset 8) ) + :pack-me :method-count-assert 9 :size-assert #xc :flag-assert #x90000000c diff --git a/test/decompiler/reference/jak2/engine/ps2/memcard-h_REF.gc b/test/decompiler/reference/jak2/engine/ps2/memcard-h_REF.gc index 495c86ffd2..c526694317 100644 --- a/test/decompiler/reference/jak2/engine/ps2/memcard-h_REF.gc +++ b/test/decompiler/reference/jak2/engine/ps2/memcard-h_REF.gc @@ -74,6 +74,7 @@ (mem-actual int32 :offset-assert 24) (file mc-file-info 4 :inline :offset-assert 28) ) + :pack-me :method-count-assert 9 :size-assert #x12c :flag-assert #x90000012c diff --git a/test/decompiler/reference/jak2/engine/ps2/pad_REF.gc b/test/decompiler/reference/jak2/engine/ps2/pad_REF.gc index 165c3cdca7..a135141414 100644 --- a/test/decompiler/reference/jak2/engine/ps2/pad_REF.gc +++ b/test/decompiler/reference/jak2/engine/ps2/pad_REF.gc @@ -106,7 +106,7 @@ :flag-assert #xa00000090 (:methods (new (symbol type int) _type_ 0) - (invert-analog-if-needed (_type_) none 9) + (adjust-to-screen-flip (_type_) int 9) ) ) @@ -286,166 +286,166 @@ ;; definition for function service-cpads (defun service-cpads () - (let ((gp-0 *cpad-list*)) - (dotimes (s5-0 (-> gp-0 num-cpads)) - (let ((s4-0 (-> *cpad-list* cpads s5-0))) - (set! (-> s4-0 old-leftx 1) (-> s4-0 old-leftx 0)) - (set! (-> s4-0 old-leftx 0) (-> s4-0 leftx)) - (set! (-> s4-0 old-lefty 1) (-> s4-0 old-lefty 0)) - (set! (-> s4-0 old-lefty 0) (-> s4-0 lefty)) - (set! (-> s4-0 old-rightx 1) (-> s4-0 old-rightx 0)) - (set! (-> s4-0 old-rightx 0) (-> s4-0 rightx)) - (set! (-> s4-0 old-righty 1) (-> s4-0 old-righty 0)) - (set! (-> s4-0 old-righty 0) (-> s4-0 righty)) - (cpad-get-data s4-0) - (invert-analog-if-needed s4-0) + (let ((pads *cpad-list*)) + (dotimes (i (-> pads num-cpads)) + (let ((pad (-> *cpad-list* cpads i))) + (set! (-> pad old-leftx 1) (-> pad old-leftx 0)) + (set! (-> pad old-leftx 0) (-> pad leftx)) + (set! (-> pad old-lefty 1) (-> pad old-lefty 0)) + (set! (-> pad old-lefty 0) (-> pad lefty)) + (set! (-> pad old-rightx 1) (-> pad old-rightx 0)) + (set! (-> pad old-rightx 0) (-> pad rightx)) + (set! (-> pad old-righty 1) (-> pad old-righty 0)) + (set! (-> pad old-righty 0) (-> pad righty)) + (cpad-get-data pad) + (adjust-to-screen-flip pad) (cond - ((zero? (logand (-> s4-0 valid) 128)) - (dotimes (s3-0 2) + ((zero? (logand (-> pad valid) 128)) + (dotimes (buzz-i 2) (cond - ((and (-> s4-0 buzz) (< (get-current-time) (-> s4-0 buzz-time s3-0)) (= *master-mode* 'game)) - (let ((v1-20 s3-0)) + ((and (-> pad buzz) (< (get-current-time) (-> pad buzz-time buzz-i)) (= *master-mode* 'game)) + (let ((v1-20 buzz-i)) (cond ((zero? v1-20) - (set! (-> s4-0 direct s3-0) - (logand (ash (-> s4-0 buzz-val s3-0) (- (the-as int (logand (get-integral-current-time) 7)))) 1) + (set! (-> pad direct buzz-i) + (logand (ash (-> pad buzz-val buzz-i) (- (the-as int (logand (get-integral-current-time) 7)))) 1) ) ) ((= v1-20 1) - (set! (-> s4-0 direct s3-0) (-> s4-0 buzz-val s3-0)) + (set! (-> pad direct buzz-i) (-> pad buzz-val buzz-i)) ) ) ) ) - ((and (zero? s3-0) (> (-> s4-0 buzz-pause-time) 0)) - (set! (-> s4-0 direct s3-0) - (logand (ash (-> s4-0 buzz-pause-val s3-0) (- (the-as int (logand (get-integral-current-time) 7)))) 1) + ((and (zero? buzz-i) (> (-> pad buzz-pause-time) 0)) + (set! (-> pad direct buzz-i) + (logand (ash (-> pad buzz-pause-val buzz-i) (- (the-as int (logand (get-integral-current-time) 7)))) 1) ) - (+! (-> s4-0 buzz-pause-time) -1) + (+! (-> pad buzz-pause-time) -1) ) (else - (set! (-> s4-0 buzz-val s3-0) (the-as uint 0)) - (set! (-> s4-0 direct s3-0) (the-as uint 0)) - (when (zero? s3-0) - (set! (-> s4-0 buzz-pause-time) (the-as uint 0)) + (set! (-> pad buzz-val buzz-i) (the-as uint 0)) + (set! (-> pad direct buzz-i) (the-as uint 0)) + (when (zero? buzz-i) + (set! (-> pad buzz-pause-time) (the-as uint 0)) 0 ) ) ) ) - (when (< (the-as uint 192) (-> s4-0 direct 1)) - (set! (-> s4-0 direct 0) (the-as uint 0)) + (when (< (the-as uint 192) (-> pad direct 1)) + (set! (-> pad direct 0) (the-as uint 0)) 0 ) - (set! (-> s4-0 button0-abs 2) (-> s4-0 button0-abs 1)) - (set! (-> s4-0 button0-abs 1) (-> s4-0 button0-shadow-abs 0)) - (set! (-> s4-0 button0-rel 2) (-> s4-0 button0-rel 1)) - (set! (-> s4-0 button0-rel 1) (-> s4-0 button0-rel 0)) - (when (= (-> s4-0 status) 115) - (set! (-> s4-0 abutton 0) (the-as uint (if (logtest? (-> s4-0 button0-abs 0) (pad-buttons right)) + (set! (-> pad button0-abs 2) (-> pad button0-abs 1)) + (set! (-> pad button0-abs 1) (-> pad button0-shadow-abs 0)) + (set! (-> pad button0-rel 2) (-> pad button0-rel 1)) + (set! (-> pad button0-rel 1) (-> pad button0-rel 0)) + (when (= (-> pad status) 115) + (set! (-> pad abutton 0) (the-as uint (if (logtest? (-> pad button0-abs 0) (pad-buttons right)) + 255 + 0 + ) + ) + ) + (set! (-> pad abutton 1) (the-as uint (if (logtest? (-> pad button0-abs 0) (pad-buttons left)) + 255 + 0 + ) + ) + ) + (set! (-> pad abutton 2) (the-as uint (if (logtest? (-> pad button0-abs 0) (pad-buttons up)) + 255 + 0 + ) + ) + ) + (set! (-> pad abutton 3) (the-as uint (if (logtest? (-> pad button0-abs 0) (pad-buttons down)) + 255 + 0 + ) + ) + ) + (set! (-> pad abutton 6) (the-as uint (if (logtest? (-> pad button0-abs 0) (pad-buttons x)) + 255 + 0 + ) + ) + ) + (set! (-> pad abutton 5) (the-as uint (if (logtest? (-> pad button0-abs 0) (pad-buttons circle)) + 255 + 0 + ) + ) + ) + (set! (-> pad abutton 4) (the-as uint (if (logtest? (-> pad button0-abs 0) (pad-buttons triangle)) + 255 + 0 + ) + ) + ) + (set! (-> pad abutton 7) (the-as uint (if (logtest? (-> pad button0-abs 0) (pad-buttons square)) + 255 + 0 + ) + ) + ) + (set! (-> pad abutton 8) (the-as uint (if (logtest? (-> pad button0-abs 0) (pad-buttons l1)) + 255 + 0 + ) + ) + ) + (set! (-> pad abutton 10) (the-as uint (if (logtest? (-> pad button0-abs 0) (pad-buttons l2)) 255 0 ) ) ) - (set! (-> s4-0 abutton 1) (the-as uint (if (logtest? (-> s4-0 button0-abs 0) (pad-buttons left)) + (set! (-> pad abutton 9) (the-as uint (if (logtest? (-> pad button0-abs 0) (pad-buttons r1)) + 255 + 0 + ) + ) + ) + (set! (-> pad abutton 11) (the-as uint (if (logtest? (-> pad button0-abs 0) (pad-buttons r2)) 255 0 ) ) ) - (set! (-> s4-0 abutton 2) (the-as uint (if (logtest? (-> s4-0 button0-abs 0) (pad-buttons up)) - 255 - 0 - ) - ) - ) - (set! (-> s4-0 abutton 3) (the-as uint (if (logtest? (-> s4-0 button0-abs 0) (pad-buttons down)) - 255 - 0 - ) - ) - ) - (set! (-> s4-0 abutton 6) (the-as uint (if (logtest? (-> s4-0 button0-abs 0) (pad-buttons x)) - 255 - 0 - ) - ) - ) - (set! (-> s4-0 abutton 5) (the-as uint (if (logtest? (-> s4-0 button0-abs 0) (pad-buttons circle)) - 255 - 0 - ) - ) - ) - (set! (-> s4-0 abutton 4) (the-as uint (if (logtest? (-> s4-0 button0-abs 0) (pad-buttons triangle)) - 255 - 0 - ) - ) - ) - (set! (-> s4-0 abutton 7) (the-as uint (if (logtest? (-> s4-0 button0-abs 0) (pad-buttons square)) - 255 - 0 - ) - ) - ) - (set! (-> s4-0 abutton 8) (the-as uint (if (logtest? (-> s4-0 button0-abs 0) (pad-buttons l1)) - 255 - 0 - ) - ) - ) - (set! (-> s4-0 abutton 10) (the-as uint (if (logtest? (-> s4-0 button0-abs 0) (pad-buttons l2)) - 255 - 0 - ) - ) - ) - (set! (-> s4-0 abutton 9) (the-as uint (if (logtest? (-> s4-0 button0-abs 0) (pad-buttons r1)) - 255 - 0 - ) - ) - ) - (set! (-> s4-0 abutton 11) (the-as uint (if (logtest? (-> s4-0 button0-abs 0) (pad-buttons r2)) - 255 - 0 - ) - ) - ) ) - (let ((s3-1 (-> s4-0 button0))) + (let ((buttons-pushed (the-as pad-buttons (-> pad button0)))) (cond - ((< (-> s4-0 lefty) (the-as uint 30)) - (set! s3-1 (logior #x10000 s3-1)) + ((< (-> pad lefty) (the-as uint 30)) + (set! buttons-pushed (logior (pad-buttons l-analog-down) buttons-pushed)) ) - ((< (the-as uint 225) (-> s4-0 lefty)) - (set! s3-1 (logior #x40000 s3-1)) + ((< (the-as uint 225) (-> pad lefty)) + (set! buttons-pushed (logior (pad-buttons l-analog-up) buttons-pushed)) ) ) (cond - ((< (-> s4-0 leftx) (the-as uint 30)) - (set! s3-1 (logior #x80000 s3-1)) + ((< (-> pad leftx) (the-as uint 30)) + (set! buttons-pushed (logior (pad-buttons l-analog-left) buttons-pushed)) ) - ((< (the-as uint 225) (-> s4-0 leftx)) - (set! s3-1 (logior #x20000 s3-1)) + ((< (the-as uint 225) (-> pad leftx)) + (set! buttons-pushed (logior (pad-buttons l-analog-right) buttons-pushed)) ) ) (cond - ((< (-> s4-0 righty) (the-as uint 30)) - (set! s3-1 (logior #x100000 s3-1)) + ((< (-> pad righty) (the-as uint 30)) + (set! buttons-pushed (logior (pad-buttons r-analog-down) buttons-pushed)) ) - ((< (the-as uint 225) (-> s4-0 righty)) - (set! s3-1 (logior #x400000 s3-1)) + ((< (the-as uint 225) (-> pad righty)) + (set! buttons-pushed (logior (pad-buttons r-analog-up) buttons-pushed)) ) ) (cond - ((< (-> s4-0 rightx) (the-as uint 30)) - (set! s3-1 (logior #x800000 s3-1)) + ((< (-> pad rightx) (the-as uint 30)) + (set! buttons-pushed (logior (pad-buttons r-analog-left) buttons-pushed)) ) - ((< (the-as uint 225) (-> s4-0 rightx)) - (set! s3-1 (logior #x200000 s3-1)) + ((< (the-as uint 225) (-> pad rightx)) + (set! buttons-pushed (logior (pad-buttons r-analog-right) buttons-pushed)) ) ) (let ((v1-123 (get-current-language))) @@ -453,13 +453,13 @@ ((or (= v1-123 (language-enum japanese)) (= v1-123 (language-enum korean))) (case (scf-get-territory) ((2 3) - (if (logtest? s3-1 8192) - (set! s3-1 (logior #x1000000 s3-1)) + (if (logtest? buttons-pushed (pad-buttons circle)) + (set! buttons-pushed (logior (pad-buttons confirm) buttons-pushed)) ) ) (else - (if (logtest? s3-1 #x6000) - (set! s3-1 (logior #x1000000 s3-1)) + (if (logtest? buttons-pushed (pad-buttons circle x)) + (set! buttons-pushed (logior (pad-buttons confirm) buttons-pushed)) ) ) ) @@ -467,55 +467,55 @@ ((let ((v1-135 (scf-get-territory))) (or (= v1-135 2) (= v1-135 3)) ) - (if (logtest? s3-1 #x6000) - (set! s3-1 (logior #x1000000 s3-1)) + (if (logtest? buttons-pushed (pad-buttons circle x)) + (set! buttons-pushed (logior (pad-buttons confirm) buttons-pushed)) ) ) (else - (if (logtest? s3-1 #x4000) - (set! s3-1 (logior #x1000000 s3-1)) + (if (logtest? buttons-pushed (pad-buttons x)) + (set! buttons-pushed (logior (pad-buttons confirm) buttons-pushed)) ) ) ) ) - (set! (-> s4-0 button0-shadow-abs 0) (the-as pad-buttons s3-1)) - (set! (-> s4-0 button0-abs 0) (the-as pad-buttons s3-1)) + (set! (-> pad button0-shadow-abs 0) buttons-pushed) + (set! (-> pad button0-abs 0) buttons-pushed) ) - (set! (-> s4-0 button0-rel 0) (logclear (-> s4-0 button0-abs 0) (-> s4-0 button0-abs 1))) + (set! (-> pad button0-rel 0) (logclear (-> pad button0-abs 0) (-> pad button0-abs 1))) (when *cpad-debug* - (set! (-> s4-0 leftx) (the-as uint 255)) - (set! (-> s4-0 rightx) (the-as uint 255)) + (set! (-> pad leftx) (the-as uint 255)) + (set! (-> pad rightx) (the-as uint 255)) ) - (set! (-> s4-0 stick0-speed) 1.0) + (set! (-> pad stick0-speed) 1.0) (cond - ((= (shr (-> s4-0 status) 4) 7) - (let ((f30-0 (* 0.0078125 (the float (+ (-> s4-0 leftx) -128)))) - (f28-0 (* 0.0078125 (the float (- 127 (the-as int (-> s4-0 lefty)))))) + ((= (shr (-> pad status) 4) 7) + (let ((f30-0 (* 0.0078125 (the float (+ (-> pad leftx) -128)))) + (f28-0 (* 0.0078125 (the float (- 127 (the-as int (-> pad lefty)))))) ) - (set! (-> s4-0 stick0-dir) (atan (- f30-0) f28-0)) - (set! (-> s4-0 stick0-speed) (fmin 1.0 (sqrtf (+ (* f30-0 f30-0) (* f28-0 f28-0))))) + (set! (-> pad stick0-dir) (atan (- f30-0) f28-0)) + (set! (-> pad stick0-speed) (fmin 1.0 (sqrtf (+ (* f30-0 f30-0) (* f28-0 f28-0))))) ) - (if (< (-> s4-0 stick0-speed) 0.3) - (set! (-> s4-0 stick0-speed) 0.0) + (if (< (-> pad stick0-speed) 0.3) + (set! (-> pad stick0-speed) 0.0) ) ) (else - (set! (-> s4-0 leftx) (the-as uint 128)) - (set! (-> s4-0 lefty) (the-as uint 128)) - (set! (-> s4-0 rightx) (the-as uint 128)) - (set! (-> s4-0 righty) (the-as uint 128)) - (set! (-> s4-0 stick0-dir) 0.0) - (set! (-> s4-0 stick0-speed) 0.0) + (set! (-> pad leftx) (the-as uint 128)) + (set! (-> pad lefty) (the-as uint 128)) + (set! (-> pad rightx) (the-as uint 128)) + (set! (-> pad righty) (the-as uint 128)) + (set! (-> pad stick0-dir) 0.0) + (set! (-> pad stick0-speed) 0.0) ) ) - (if (or (!= (-> s4-0 button0-abs 0) (-> s4-0 button0-abs 1)) - (or (< 0.3 (-> s4-0 stick0-speed)) (zero? (-> s4-0 change-time))) + (if (or (!= (-> pad button0-abs 0) (-> pad button0-abs 1)) + (or (< 0.3 (-> pad stick0-speed)) (zero? (-> pad change-time))) ) - (set! (-> s4-0 change-time) (get-current-time)) + (set! (-> pad change-time) (get-current-time)) ) ) (else - (cpad-invalid! s4-0) + (cpad-invalid! pad) ) ) ) diff --git a/test/decompiler/reference/jak2/engine/sound/speech-h_REF.gc b/test/decompiler/reference/jak2/engine/sound/speech-h_REF.gc index d0aa517be6..768cdee61f 100644 --- a/test/decompiler/reference/jak2/engine/sound/speech-h_REF.gc +++ b/test/decompiler/reference/jak2/engine/sound/speech-h_REF.gc @@ -137,7 +137,7 @@ (:methods (speech-control-method-9 () none 9) (speech-control-method-10 () none 10) - (speech-control-method-11 () none 11) + (speech-control-method-11 (_type_) none 11) (speech-control-method-12 () none 12) (speech-control-method-13 () none 13) (speech-control-method-14 () none 14) @@ -161,7 +161,3 @@ ;; failed to figure out what this is: 0 - - - - diff --git a/test/decompiler/reference/jak2/engine/target/board/board-states_REF.gc b/test/decompiler/reference/jak2/engine/target/board/board-states_REF.gc index 37ad081e7a..f8160360f4 100644 --- a/test/decompiler/reference/jak2/engine/target/board/board-states_REF.gc +++ b/test/decompiler/reference/jak2/engine/target/board/board-states_REF.gc @@ -924,7 +924,7 @@ :enter (behavior ((arg0 meters) (arg1 meters) (arg2 symbol)) (local-vars (sv-144 (function vector entity-actor skeleton-group vector none :behavior manipy)) - (sv-160 entity) + (sv-160 entity-actor) ) (if (= arg2 'hit) (set! arg2 #f) diff --git a/test/decompiler/reference/jak2/engine/target/board/target-board_REF.gc b/test/decompiler/reference/jak2/engine/target/board/target-board_REF.gc index 65d3bd424d..efa988bcce 100644 --- a/test/decompiler/reference/jak2/engine/target/board/target-board_REF.gc +++ b/test/decompiler/reference/jak2/engine/target/board/target-board_REF.gc @@ -1240,7 +1240,7 @@ (set! (-> a2-6 ignore-process1) #f) (set! (-> a2-6 ignore-pat) (-> v1-30 pat-ignore-mask)) (set! (-> a2-6 action-mask) (collide-action solid)) - (collide-shape-method-32 v1-30 (-> v1-30 transv) a2-6 (meters 1.0)) + (collide-shape-method-32 v1-30 (-> v1-30 transv) a2-6 (meters 1)) ) (when (logtest? (-> self control root-prim prim-core action) (collide-action check-edge)) (set! (-> *collide-edge-board-spec* flags) (logand -3 (-> *collide-edge-board-spec* flags))) @@ -1660,7 +1660,7 @@ (bucket-id debug-no-zbuf1) (-> self control trans) s5-0 - (meters 2.0) + (meters 2) (the-as rgba (-> (new 'static 'array uint64 1 #x8000ff00) 0)) ) ) @@ -2438,7 +2438,7 @@ (set! (-> a2-4 ignore-process1) #f) (set! (-> a2-4 ignore-pat) (-> v1-103 pat-ignore-mask)) (set! (-> a2-4 action-mask) (collide-action solid)) - (collide-shape-method-32 v1-103 (-> v1-103 transv) a2-4 (meters 1.0)) + (collide-shape-method-32 v1-103 (-> v1-103 transv) a2-4 (meters 1)) ) (when (logtest? (-> self control root-prim prim-core action) (collide-action check-edge)) (set! (-> *collide-edge-board-spec* flags) (logand -5 (-> *collide-edge-board-spec* flags))) diff --git a/test/decompiler/reference/jak2/engine/target/gun/gun-h_REF.gc b/test/decompiler/reference/jak2/engine/target/gun/gun-h_REF.gc index 31be589bfb..f01f5efe6b 100644 --- a/test/decompiler/reference/jak2/engine/target/gun/gun-h_REF.gc +++ b/test/decompiler/reference/jak2/engine/target/gun/gun-h_REF.gc @@ -469,7 +469,7 @@ (zero? (logand (focus-status dead hit board mech dark teleporting) (-> arg0 focus-status))) (zero? (logand (surface-flag gun-inactive gun-hide gun-off) (-> arg0 control unknown-surface01 flags))) (zero? (logand (state-flags sf18) (-> arg0 state-flags))) - (logtest? (the-as game-feature (logand (-> *setting-control* user-current features) 960)) + (logtest? (logand (-> *setting-control* user-current features) (game-feature gun-yellow gun-red gun-blue gun-dark)) (-> arg0 game features) ) (or (zero? (logand (-> arg0 control unknown-surface01 flags) (surface-flag duck))) (can-exit-duck?)) diff --git a/test/decompiler/reference/jak2/engine/target/logic-target_REF.gc b/test/decompiler/reference/jak2/engine/target/logic-target_REF.gc index fda4843d28..e3a204c12f 100644 --- a/test/decompiler/reference/jak2/engine/target/logic-target_REF.gc +++ b/test/decompiler/reference/jak2/engine/target/logic-target_REF.gc @@ -1232,7 +1232,7 @@ (bucket-id debug-no-zbuf1) (-> self control trans) gp-0 - (meters 2.0) + (meters 2) (the-as rgba (-> (new 'static 'array uint64 1 #x8000ffff) 0)) ) (add-debug-vector @@ -1240,7 +1240,7 @@ (bucket-id debug-no-zbuf1) (-> self control trans) s5-0 - (meters 2.0) + (meters 2) (the-as rgba (-> (new 'static 'array uint64 1 #x800080ff) 0)) ) ) @@ -1249,7 +1249,7 @@ (bucket-id debug-no-zbuf1) (-> self control trans) (-> self control unknown-matrix01 vector 2) - (meters 2.0) + (meters 2) (the-as rgba (-> (new 'static 'array uint64 1 #x80ff00ff) 0)) ) (rotate-toward-orientation! @@ -1600,7 +1600,7 @@ (let ((gp-0 (-> self current-level))) (set! (-> self current-level) (level-get-target-inside *level*)) (if (-> self current-level) - (+! (-> self game unknown-array3 (-> self current-level info task-level)) + (+! (-> self game task-in-times (-> self current-level info task-level)) (- (-> self clock frame-counter) (-> self clock old-frame-counter)) ) ) @@ -2029,7 +2029,7 @@ (bucket-id debug-no-zbuf1) (-> self control trans) gp-0 - (meters 2.0) + (meters 2) (new 'static 'rgba :b #xff :a #x80) ) ) @@ -2039,7 +2039,7 @@ (bucket-id debug-no-zbuf1) (-> self control trans) (-> self control local-normal) - (meters 2.0) + (meters 2) (the-as rgba (-> (new 'static 'array uint64 1 #x800000ff) 0)) ) (add-debug-vector @@ -2055,7 +2055,7 @@ (bucket-id debug-no-zbuf1) (-> self control trans) (-> self control dynam gravity-normal) - (meters 3.0) + (meters 3) (the-as rgba (-> (new 'static 'array uint64 1 #x80ff00ff) 0)) ) (add-debug-vector @@ -2063,7 +2063,7 @@ (bucket-id debug-no-zbuf1) (-> self control trans) (-> self control unknown-vector02) - (meters 3.0) + (meters 3) (the-as rgba (-> (new 'static 'array uint64 1 #x80ff00ff) 0)) ) (add-debug-vector @@ -2071,7 +2071,7 @@ (bucket-id debug-no-zbuf1) (-> self control trans) (vector-y-quaternion! (new 'stack-no-clear 'vector) (-> self control unknown-quaternion00)) - (meters 3.0) + (meters 3) (the-as rgba (-> (new 'static 'array uint64 1 #x800000ff) 0)) ) ) @@ -2335,7 +2335,7 @@ (bucket-id debug-no-zbuf1) (-> (the-as swingpole s2-0) root trans) (-> (the-as swingpole s2-0) dir) - (meters 3.0) + (meters 3) (the-as rgba (-> (new 'static 'array uint64 1 #x80ff00ff) 0)) ) (add-debug-sphere @@ -2710,7 +2710,7 @@ (set! (-> a2-3 ignore-pat) (-> v1-52 pat-ignore-mask)) ) (set! (-> a2-3 action-mask) (collide-action solid)) - (collide-shape-method-32 (-> self control) (-> self control transv) a2-3 (meters 1.0)) + (collide-shape-method-32 (-> self control) (-> self control transv) a2-3 (meters 1)) ) (if (and (logtest? (-> self control root-prim prim-core action) (collide-action check-edge)) (>= (vector-dot @@ -2846,7 +2846,7 @@ (set! (-> a2-0 ignore-pat) (-> v1-30 pat-ignore-mask)) ) (set! (-> a2-0 action-mask) (collide-action solid)) - (collide-shape-method-32 (-> self control) (-> self control transv) a2-0 (meters 1.0)) + (collide-shape-method-32 (-> self control) (-> self control transv) a2-0 (meters 1)) ) (if (and (logtest? (-> self control root-prim prim-core action) (collide-action check-edge)) (>= (vector-dot @@ -2975,7 +2975,7 @@ (set! (-> a2-0 ignore-pat) (-> v1-29 pat-ignore-mask)) ) (set! (-> a2-0 action-mask) (collide-action solid)) - (collide-shape-method-32 (-> self control) (-> self control transv) a2-0 (meters 1.0)) + (collide-shape-method-32 (-> self control) (-> self control transv) a2-0 (meters 1)) ) (if (and (logtest? (-> self control root-prim prim-core action) (collide-action check-edge)) (>= (vector-dot @@ -3218,7 +3218,7 @@ (set! (-> *setting-control* cam-default mode-name) 'cam-string) (apply-settings *setting-control*) (if (not arg0) - (set! arg0 (get-current-continue-point *game-info*)) + (set! arg0 (get-current-continue-forced *game-info*)) ) (set-continue! *game-info* arg0 #f) (stack-size-set! (-> obj main-thread) 1024) diff --git a/test/decompiler/reference/jak2/engine/ui/minimap-h_REF.gc b/test/decompiler/reference/jak2/engine/ui/minimap-h_REF.gc index c30346a2fd..026fbfc1db 100644 --- a/test/decompiler/reference/jak2/engine/ui/minimap-h_REF.gc +++ b/test/decompiler/reference/jak2/engine/ui/minimap-h_REF.gc @@ -337,7 +337,7 @@ (format #t "[~8x] ~A~%" obj 'connection-minimap) (format #t "~1Tnext: #~%" (-> obj next)) (format #t "~1Tkey: ~A~%" (-> obj key)) - (format #t "~1Tupdate-time: ~D~%" (-> obj update-time)) + (format #t "~1Tupdate-time: ~D~%" (-> obj handle)) (format #t "~1Tparam[4] @ #x~X~%" (-> obj param)) (dotimes (s5-0 4) (format #t "~T [~D]~1Tparam: ~A~%" s5-0 (-> obj param s5-0)) @@ -355,7 +355,7 @@ (format #t "~T [~D]~1Tparam-float: ~f~%" s5-3 (the-as float (-> obj param s5-3))) ) (format #t "~1Tparam-quat: #x~X~%" (-> obj param-quat)) - (format #t "~1Thandle: ~D~%" (-> obj update-time)) + (format #t "~1Thandle: ~D~%" (-> obj handle)) (format #t "~1Tposition: #~%" (-> obj position)) (format #t "~1Talpha: ~f~%" (-> obj alpha)) (format #t "~1Tclass: #~%" (-> obj class)) @@ -441,8 +441,8 @@ (format #t "~1Tallocated-length: ~D~%" (-> obj allocated-length)) (format #t "~1Telement-type: ~A~%" (-> obj element-type)) (format #t "~1Texecute-time: ~D~%" (-> obj execute-time)) - (format #t "~1Talive-list: #~%" (-> obj alive-list)) - (format #t "~1Tdead-list: #~%" (-> obj dead-list)) + (format #t "~1Talive-list: #~%" (-> obj alive-list-override)) + (format #t "~1Tdead-list: #~%" (-> obj dead-list-override)) (format #t "~1Tdata[0] @ #x~X~%" (-> obj data)) (label cfg-4) obj @@ -535,7 +535,7 @@ (ctywide basic :offset-assert 268) (inv-scale float :offset 212) (fade float :offset 220) - (engine basic :offset-assert 272) + (engine engine-minimap :offset-assert 272) (engine-key uint32 :offset-assert 276) (trail minimap-trail 6 :inline :offset-assert 288) (race-tex basic :offset-assert 1536) @@ -553,7 +553,7 @@ (minimap-method-9 () none 9) (minimap-method-10 () none 10) (minimap-method-11 () none 11) - (minimap-method-12 () none 12) + (minimap-method-12 (_type_ process uint int vector int) connection-minimap 12) (minimap-method-13 () none 13) (minimap-method-14 () none 14) (minimap-method-15 () none 15) @@ -612,7 +612,3 @@ ;; failed to figure out what this is: 0 - - - - diff --git a/test/decompiler/reference/jak2/engine/util/script-h_REF.gc b/test/decompiler/reference/jak2/engine/util/script-h_REF.gc index 78c23e5a24..088d97e699 100644 --- a/test/decompiler/reference/jak2/engine/util/script-h_REF.gc +++ b/test/decompiler/reference/jak2/engine/util/script-h_REF.gc @@ -48,7 +48,7 @@ :flag-assert #xc000000a0 (:methods (new (symbol type basic process vector) _type_ 0) - (eval! (_type_ object) object 9) + (eval! (_type_ pair) object 9) (script-context-method-10 (_type_ object pair) object 10) (script-context-method-11 (_type_ pair pair symbol) symbol 11) ) diff --git a/test/decompiler/reference/jak2/kernel/gkernel_REF.gc b/test/decompiler/reference/jak2/kernel/gkernel_REF.gc index 1a2ab26ea9..0c5b420b6f 100644 --- a/test/decompiler/reference/jak2/kernel/gkernel_REF.gc +++ b/test/decompiler/reference/jak2/kernel/gkernel_REF.gc @@ -1493,7 +1493,7 @@ (when (!= (-> obj status) 'dead) (set! (-> obj next-state) dead-state) (if (-> obj entity) - (entity-deactivate-handler obj (the-as entity-actor (-> obj entity))) + (entity-deactivate-handler obj (-> obj entity)) ) (let ((s5-0 pp)) (set! pp obj) diff --git a/test/decompiler/reference/jak2/levels/common/airlock_REF.gc b/test/decompiler/reference/jak2/levels/common/airlock_REF.gc index fa70595fc8..67c83e8c66 100644 --- a/test/decompiler/reference/jak2/levels/common/airlock_REF.gc +++ b/test/decompiler/reference/jak2/levels/common/airlock_REF.gc @@ -134,7 +134,7 @@ ;; definition for method 22 of type com-airlock (defmethod init-airlock! com-airlock ((obj com-airlock)) (process-entity-status! obj (entity-perm-status subtask-complete) #f) - (process-drawable-from-entity! obj (the-as entity-actor (-> obj entity))) + (process-drawable-from-entity! obj (-> obj entity)) (logclear! (-> obj mask) (process-mask actor-pause)) (set! (-> obj were-behind?) #f) (set! (-> obj inner?) @@ -197,7 +197,10 @@ (when (and (< f30-0 0.0) (< 0.0 (-> obj last-distance))) (let ((s5-1 (res-lump-struct (-> obj entity) 'on-cross structure))) (if s5-1 - (eval! (new 'stack 'script-context (the-as basic (process->ppointer self)) self (the-as vector #f)) s5-1) + (eval! + (new 'stack 'script-context (the-as basic (process->ppointer self)) self (the-as vector #f)) + (the-as pair s5-1) + ) ) ) ) @@ -251,7 +254,7 @@ ) (and (eval! (new 'stack 'script-context (the-as basic (process->ppointer self)) self (the-as vector #f)) - (-> obj open-test) + (the-as pair (-> obj open-test)) ) (-> *setting-control* user-current airlock) ) @@ -280,7 +283,7 @@ (with-pp (let ((gp-1 (eval! (new 'stack 'script-context (the-as basic (process->ppointer pp)) pp (the-as vector #f)) - (-> obj level-name) + (the-as pair (-> obj level-name)) ) ) (s4-0 #f) @@ -545,7 +548,10 @@ (begin (let ((gp-0 (res-lump-struct (-> self entity) 'on-activate structure))) (if gp-0 - (eval! (new 'stack 'script-context (the-as basic (process->ppointer self)) self (the-as vector #f)) gp-0) + (eval! + (new 'stack 'script-context (the-as basic (process->ppointer self)) self (the-as vector #f)) + (the-as pair gp-0) + ) ) ) (destination-loaded? self #f) @@ -610,7 +616,10 @@ () (let ((gp-0 (res-lump-struct (-> self entity) 'on-exit structure))) (if (and gp-0 (not *scene-player*)) - (eval! (new 'stack 'script-context (the-as basic (process->ppointer self)) self (the-as vector #f)) gp-0) + (eval! + (new 'stack 'script-context (the-as basic (process->ppointer self)) self (the-as vector #f)) + (the-as pair gp-0) + ) ) ) (the-as @@ -619,7 +628,10 @@ (let ((gp-1 (res-lump-struct (-> self entity) 'on-inside structure))) (set! (-> self were-behind?) #f) (if (and gp-1 (not *scene-player*)) - (eval! (new 'stack 'script-context (the-as basic (process->ppointer self)) self (the-as vector #f)) gp-1) + (eval! + (new 'stack 'script-context (the-as basic (process->ppointer self)) self (the-as vector #f)) + (the-as pair gp-1) + ) ) ) ) @@ -676,7 +688,10 @@ (when (< 0.0 (check-crossing-distance self (target-pos 0) #f)) (let ((gp-3 (res-lump-struct (-> self entity) 'on-deactivate structure))) (if (and gp-3 (not *scene-player*)) - (eval! (new 'stack 'script-context (the-as basic (process->ppointer self)) self (the-as vector #f)) gp-3) + (eval! + (new 'stack 'script-context (the-as basic (process->ppointer self)) self (the-as vector #f)) + (the-as pair gp-3) + ) ) ) ) @@ -811,7 +826,10 @@ (process-entity-status! self (entity-perm-status subtask-complete) #t) (let ((s5-10 (res-lump-struct (-> self entity) 'on-enter structure))) (if s5-10 - (eval! (new 'stack 'script-context (the-as basic (process->ppointer self)) self (the-as vector #f)) s5-10) + (eval! + (new 'stack 'script-context (the-as basic (process->ppointer self)) self (the-as vector #f)) + (the-as pair s5-10) + ) ) ) (if (and (-> self sound-open) diff --git a/test/offline/config/jak2/config.jsonc b/test/offline/config/jak2/config.jsonc index 5f5ce550f6..b832ec7196 100644 --- a/test/offline/config/jak2/config.jsonc +++ b/test/offline/config/jak2/config.jsonc @@ -143,6 +143,11 @@ // texture "(method 9 texture-page-dir)", // asm + // game-info + "(method 9 game-info)", // todo + "(method 28 game-info)", // todo + "(method 29 game-info)", // todo + // mysql-nav-graph "(method 18 mysql-nav-graph)", // asm / dead-code "(method 10 mysql-nav-graph)", @@ -157,6 +162,8 @@ "(method 9 drawable-tree-instance-tie)", // duplicate + "(method 21 load-state)", + "i-hopefully-will-never-exist-dont-add-anything-after-me-please" ],