diff --git a/decompiler/config/jak2/all-types.gc b/decompiler/config/jak2/all-types.gc index ae9fe4158d..d2660affde 100644 --- a/decompiler/config/jak2/all-types.gc +++ b/decompiler/config/jak2/all-types.gc @@ -6465,7 +6465,7 @@ (define-extern vblank-handler (function int)) (define-extern set-display-gs-state (function dma-buffer int int int int int dma-buffer)) (define-extern set-display-gs-state-offset (function dma-buffer int int int int int int int dma-buffer)) -(define-extern reset-display-gs-state (function display dma-buffer int display)) +(define-extern reset-display-gs-state (function display dma-buffer display)) (define-extern *vu0-dma-list* dma-buffer) (define-extern *display* display) @@ -7056,6 +7056,14 @@ ;; trail-h ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +(defenum trail-node-flag + :type uint8 + :bitfield #t + (tnf0 0) ;; unused?? + (tnf1 1) + ) +(declare-type trail-graph basic) + (deftype trail-node (structure) ((next-id int16 :offset-assert 0) (prev-id int16 :offset-assert 2) @@ -7065,16 +7073,17 @@ (first-conn uint16 :offset-assert 10) (cost-from-start uint16 :offset-assert 12) (cost-to-goal uint16 :offset-assert 14) - (flags uint8 :offset-assert 16) + (flags trail-node-flag :offset-assert 16) (conn-count uint8 :offset-assert 17) ) + :pack-me :method-count-assert 12 :size-assert #x12 :flag-assert #xc00000012 (:methods - (trail-node-method-9 () none 9) - (trail-node-method-10 () none 10) - (trail-node-method-11 () none 11) + (get-dist-score (_type_ vector) uint 9) + (debug-draw (_type_ int) none 10) + (get-position "Unpack the position to a vector" (_type_ vector) vector 11) ) ) @@ -7088,19 +7097,28 @@ :flag-assert #x900000004 ) +(defenum conn-flag + :type uint8 + :bitfield #t + (cf0 0) + (cf1 1) + (cf2 2) + (cf3 3) + ) (deftype trail-conn (structure) ((head-id uint16 :offset-assert 0) (tail-id uint16 :offset-assert 2) - (flags uint8 :offset-assert 4) + (flags conn-flag :offset-assert 4) (visgroup-id uint8 :offset-assert 5) (cost uint16 :offset-assert 6) ) + :pack-me :method-count-assert 10 :size-assert #x8 :flag-assert #xa00000008 (:methods - (trail-conn-method-9 () none 9) + (debug-draw (_type_ trail-graph int) none 9) ) ) @@ -7109,6 +7127,7 @@ (conn-count uint8 :offset-assert 2) (pad uint8 :offset-assert 3) ) + :pack-me :method-count-assert 9 :size-assert #x4 :flag-assert #x900000004 @@ -7136,8 +7155,8 @@ (deftype trail-conn-hash (basic) ((cell-width meters :offset-assert 4) (origin vector :inline :offset-assert 16) - (cell uint32 :offset-assert 32) - (conn-ids uint32 :offset-assert 36) + (cell (inline-array trail-conn-hash-cell) :offset-assert 32) + (conn-ids (pointer uint16) :offset-assert 36) ) :method-count-assert 9 :size-assert #x28 @@ -7165,12 +7184,12 @@ (node-count uint16 :offset-assert 18) (conn-count uint16 :offset-assert 20) (conn-mask uint8 :offset-assert 22) - (node uint32 :offset-assert 24) - (conn uint32 :offset-assert 28) - (conn-ids uint32 :offset-assert 32) - (visgroup uint32 :offset-assert 36) - (visnode-ids uint32 :offset-assert 40) - (conn-hash basic :offset-assert 44) + (node (inline-array trail-node) :offset-assert 24) + (conn (inline-array trail-conn) :offset-assert 28) + (conn-ids (pointer uint16) :offset-assert 32) + (visgroup (inline-array trail-conn-hash-cell) :offset-assert 36) + (visnode-ids (pointer uint16) :offset-assert 40) + (conn-hash trail-conn-hash :offset-assert 44) (orig-start-pos vector :inline :offset-assert 48) (orig-goal-pos vector :inline :offset-assert 64) (conn-start-pos vector :inline :offset-assert 80) @@ -7184,26 +7203,26 @@ :size-assert #x130 :flag-assert #x1d00000130 (:methods - (trail-graph-method-9 () none 9) - (trail-graph-method-10 () none 10) - (trail-graph-method-11 () none 11) - (trail-graph-method-12 () none 12) - (trail-graph-method-13 () none 13) - (trail-graph-method-14 () none 14) - (trail-graph-method-15 () none 15) + (trail-graph-method-9 (_type_ int) none 9) + (trail-graph-method-10 (_type_ int) none 10) + (trail-graph-method-11 (_type_ int int) trail-node 11) + (debug-draw (_type_) none 12) + (debug-draw-cell (_type_ int) none 13) + (debug-draw-path (_type_ int (pointer uint16) vector vector rgba float) symbol 14) + (do-path (_type_ vector vector) int 15) (trail-graph-method-16 () none 16) - (trail-graph-method-17 () none 17) - (trail-graph-method-18 () none 18) - (trail-graph-method-19 () none 19) - (trail-graph-method-20 () none 20) - (trail-graph-method-21 () none 21) - (trail-graph-method-22 () none 22) - (trail-graph-method-23 () none 23) - (trail-graph-method-24 () none 24) - (trail-graph-method-25 () none 25) - (trail-graph-method-26 () none 26) - (trail-graph-method-27 () none 27) - (trail-graph-method-28 () none 28) + (get-node-location-by-id "Get the location of the node with the given ID" (_type_ uint vector) vector 17) + (get-path-to-root "Get the path from goal to root, following parent-id" (_type_ (pointer uint16) int (pointer int32) (pointer float)) int 18) + (trail-graph-method-19 (_type_ int int) symbol 19) + (try-initialize "Init and verify that constants are good." (_type_) symbol 20) + (update-node-flags-for-conn "Set arg1, clear arg2" (_type_ int trail-node-flag trail-node-flag) none 21) + (trail-graph-method-22 (_type_ int) none 22) + (reset-search-state "Reset the search/goal." (_type_) none 23) + (get-next-to-explore (_type_) int 24) + (trail-graph-method-25 (_type_ trail-conn-search int int) none 25) + (do-search! (_type_ vector vector trail-cached-search-info) none 26) + (do-some-work (_type_) int 27) + (run-until-done-or-timeout (_type_ int) none 28) ) ) @@ -7320,6 +7339,7 @@ (scale float :offset-assert 28) (color rgba :offset-assert 32) ) + :pack-me :method-count-assert 9 :size-assert #x24 :flag-assert #x900000024 @@ -7329,7 +7349,7 @@ (deftype connection-minimap (connection-pers) ((handle handle :offset 8 :score 50) ;; override - (position vector :offset 16) + (position object :offset 16) (alpha float :offset 20) (class minimap-class-node :offset 24) (flags minimap-flag :offset 28) @@ -7369,19 +7389,19 @@ :size-assert #xd0 :flag-assert #xb000000d0 (:methods - (minimap-trail-method-9 (_type_ vector vector) float 9) - (minimap-trail-method-10 () none 10) + (get-distance-with-path "Assuming we go from a to b, using this path in the middle, how long is it?" (_type_ vector vector) float 9) + (reset (_type_) none 10) ) ) (deftype minimap-draw-work (structure) - ((buf basic :offset-assert 0) - (justify-right basic :offset-assert 4) + ((buf dma-buffer :offset-assert 0) + (justify-right symbol :offset-assert 4) (draw-pos vector4w :inline :offset-assert 16) (mat matrix :inline :offset-assert 32) - (corner vector4w 4 :inline :offset-assert 96) + (corner vector 4 :inline :offset-assert 96) ) :method-count-assert 9 :size-assert #xa0 @@ -7398,20 +7418,20 @@ (color vector4w :inline :offset-assert 192) (offset vector :inline :offset-assert 208) (minimap-corner vector :inline :offset-assert 224) - (last-name basic :offset-assert 240) + (last-name string :offset-assert 240) (last-tex basic :offset-assert 244) (target-inv-scale float :offset-assert 248) (map-bits uint64 :offset-assert 256) - (level basic :offset-assert 264) - (ctywide basic :offset-assert 268) + (level level :offset-assert 264) + (ctywide level :offset-assert 268) (inv-scale float :offset 212) (fade float :offset 220) (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) + (race-tex texture :offset-assert 1536) (race-scale float :offset-assert 1540) - (race-level basic :offset-assert 1544) + (race-level level :offset-assert 1544) (sprite2-tmpl dma-gif-packet :inline :offset-assert 1552) (race-corner vector :inline :offset-assert 1584) (goal-time float :offset-assert 1600) @@ -7421,25 +7441,26 @@ :size-assert #x648 :flag-assert #x1c00000648 (:methods - (minimap-method-9 () none 9) - (minimap-method-10 (_type_ connection-minimap minimap-trail) minimap-trail 10) - (minimap-method-11 () none 11) - (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 (_type_ dma-buffer vector4w symbol) none 15) ;; hud sprite 1 draw - (minimap-method-16 () none 16) - (minimap-method-17 () none 17) - (minimap-method-18 () none 18) - (minimap-method-19 () none 19) - (minimap-method-20 (_type_) symbol 20) - (minimap-method-21 () none 21) - (minimap-method-22 () none 22) - (minimap-method-23 () none 23) - (minimap-method-24 (_type_ dma-buffer vector4w symbol) none 24) ;; hud sprite 2 draw - (minimap-method-25 (_type_ texture float) none 25) - (minimap-method-26 () none 26) - (minimap-method-27 (_type_ float float) none 27) + (debug-draw (_type_) none 9) + (get-trail-for-connection "Get a trail for connection. If arg1 is set, allow allocating a new one." (_type_ connection-minimap symbol) minimap-trail 10) + (get-icon-draw-pos "Follow the path from the start until it reaches the border of the map, then get this position." + (_type_ connection-minimap minimap-trail vector float vector) symbol 11) + (add-icon! "Add an icon to the map!" (_type_ process uint int vector int) connection-minimap 12) + (free-trail-by-connection "Free the trail associated with this connection." (_type_ connection-minimap) none 13) + (update-trails "Main function to do trail search per-frame" (_type_) none 14) + (draw-1 (_type_ dma-buffer vector4w symbol) none 15) ;; hud sprite 1 draw + (draw-connection (_type_ minimap-draw-work connection-minimap) none 16) + (draw-frustum-1 (_type_ minimap-draw-work connection-minimap) none 17) + (draw-frustum-2 (_type_ minimap-draw-work connection-minimap) none 18) + (sub-draw-1-2 (_type_ minimap-draw-work) none 19) + (update! (_type_) symbol 20) + (sub-draw-1-1 (_type_ minimap-draw-work) none 21) + (set-color (_type_ vector) none 22) + (draw-racer-2 (_type_ minimap-draw-work connection-minimap) none 23) ;; not done + (draw-sprite2 (_type_ dma-buffer vector4w symbol) none 24) ;; hud sprite 2 draw + (set-race-texture (_type_ texture float level) none 25) + (draw-racer-1 (_type_ minimap-draw-work connection-minimap float float float) none 26) + (set-race-corner (_type_ float float) none 27) ) ) @@ -30714,7 +30735,7 @@ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (deftype minimap-texture-name-array (structure) - ((data object 35 :offset-assert 0) + ((data string 35 :offset-assert 0) ) :method-count-assert 9 :size-assert #x8c @@ -30722,7 +30743,7 @@ ) (deftype minimap-corner-array (structure) - ((data uint128 35 :offset-assert 0) + ((data vector 35 :inline :offset-assert 0) ) :method-count-assert 9 :size-assert #x230 @@ -30733,7 +30754,7 @@ (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) +(define-extern lookup-minimap-texture-by-name (function string string (pointer texture-page) texture)) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; bigmap-data ;; @@ -50894,20 +50915,18 @@ ;; trail ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -#| (deftype trail-vis-work (structure) ((best-count uint32 :offset-assert 0) (best-dist float :offset-assert 4) (start-conn-id uint32 :offset-assert 8) (p0 vector :inline :offset-assert 16) (p1 vector :inline :offset-assert 32) - (best-node-id UNKNOWN 64 :offset-assert 48) + (best-node-id uint16 64 :offset-assert 48) ) :method-count-assert 9 :size-assert #xb0 :flag-assert #x9000000b0 ) -|# ;; (define-extern *trail-graph* object) diff --git a/decompiler/config/jak2/hacks.jsonc b/decompiler/config/jak2/hacks.jsonc index 70f2210491..2233d8788e 100644 --- a/decompiler/config/jak2/hacks.jsonc +++ b/decompiler/config/jak2/hacks.jsonc @@ -54,9 +54,6 @@ "(method 9 bot-speech-list)", "(method 9 bot-speech-list-shuffle)", "(anon-function 10 sig-recorder)", - "(method 14 trail-graph)", - "(method 12 trail-graph)", - "(method 11 trail-graph)", // actual asm "quad-copy!", "return-from-thread", diff --git a/decompiler/config/jak2/label_types.jsonc b/decompiler/config/jak2/label_types.jsonc index 00a4d2db02..27de37bd2e 100644 --- a/decompiler/config/jak2/label_types.jsonc +++ b/decompiler/config/jak2/label_types.jsonc @@ -938,5 +938,6 @@ ["L135", "attack-info"] ], "dig-obs": [["L111", "(inline-array vector)", 2]], - "dig1-obs": [["L91", "(inline-array vector)", 8]] + "dig1-obs": [["L91", "(inline-array vector)", 8]], + "minimap": [["L250", "(inline-array minimap-class-node)", 71]] } diff --git a/decompiler/config/jak2/stack_structures.jsonc b/decompiler/config/jak2/stack_structures.jsonc index 5035d3ef3e..fe8c5c4ba8 100644 --- a/decompiler/config/jak2/stack_structures.jsonc +++ b/decompiler/config/jak2/stack_structures.jsonc @@ -1431,5 +1431,18 @@ [368, "vector"], [400, "vector"], [416, "vector"] - ] + ], + "(method 24 minimap)": [[16, "minimap-draw-work"]], + "(method 15 minimap)": [[16, "minimap-draw-work"]], + "(method 11 minimap)": [[16, ["inline-array", "vector", 4]]], + "(method 26 minimap)": [[32, "vector"], [64, "matrix"], [48, "vector"]], + "(method 23 minimap)": [[32, "vector"], [48, "vector"], [64, "matrix"], [80, "matrix"], [144, "matrix"]], + "(method 17 minimap)": [[32, "vector"], [48, "vector"], [64, "matrix"], [80, "matrix"], [144, "matrix"], [240, "vector"], [256, "vector"]], + "(method 18 minimap)": [[32, "vector"], [48, "vector"], [64, "matrix"], [80, "matrix"], [144, "matrix"], [240, "vector"], [256, "vector"]], + "(method 19 minimap)": [[16, "vector"], [32, "matrix"]], + "(method 12 trail-graph)": [[16, ["inline-array", "vector", 2]]], + "(method 14 trail-graph)": [[16, ["inline-array", "vector", 2]]], + "(method 13 trail-graph)": [[16, ["inline-array", "vector", 2]]], + "(method 19 trail-graph)": [[16, "trail-vis-work"]], + "(method 15 trail-graph)": [[16, "trail-conn-search"]] } diff --git a/decompiler/config/jak2/type_casts.jsonc b/decompiler/config/jak2/type_casts.jsonc index 5038f9dfbc..0eece578da 100644 --- a/decompiler/config/jak2/type_casts.jsonc +++ b/decompiler/config/jak2/type_casts.jsonc @@ -6533,5 +6533,192 @@ "(post idle fish-manager)": [ [517, "v1", "process-drawable"], [522, "v1", "process-drawable"] + ], + "(method 14 minimap)": [ + [84, "v1", "process-drawable"], + [99, "v1", "entity-actor"], + [108, "v1", "process-drawable"], + [112, "s2", "entity-actor"], + [93, "s2", "basic"] + ], + "(method 3 engine-minimap)": [ + [7, "t9", "(function engine-minimap engine-minimap)"] + ], + "(method 24 minimap)":[ + [189, "s2", "connection-minimap"], + [194, "s2", "connection-minimap"], + [18, "v1", "(pointer uint128)"], + [74, "v1", "(pointer uint128)"], + [81, "v1", "(inline-array vector)"], + [91, "v1", "(inline-array vector4w)"], + [96, "v1", "(inline-array vector)"], + [108, "v1", "(inline-array vector4w)"], + [114, "v1", "(inline-array vector)"], + [124, "v1", "(inline-array vector4w)"], + [129, "v1", "(inline-array vector)"], + [141, "v1", "(inline-array vector4w)"], + [161, "s2", "(pointer uint128)"] + ], + "(method 15 minimap)": [ + [48, "s2", "(pointer uint128)"] + ], + "(method 16 minimap)": [ + [[30, 35], "v1", "process-drawable"], + [56, "v1", "entity-actor"], + [66, "a0", "process-drawable"], + [77, "a0", "entity-actor"], + [88, "a0", "vector"], + [50, "v1", "basic"], + [516, "v1", "(pointer uint128)"], + [517, "v1", "(inline-array vector4w)"], + [529, "v1", "(inline-array vector4w)"], + [534, "v1", "(inline-array vector4w)"], + [550, "v1", "(inline-array vector4w)"], + [555, "v1", "(inline-array vector4w)"] + ], + "(method 14 engine-minimap)": [ + [150, "a0", "entity-actor"], + [[3, 180], "s3", "connection-minimap"], + [143, "v1", "basic"] + ], + "(method 10 engine-minimap)": [ + [6, "s5", "connection-minimap"] + ], + "(method 26 minimap)": [ + [34, "a0", "process-drawable"], + [49, "v1", "process-drawable"], + [64, "a0", "process-drawable"], + [303, "a1", "(pointer uint128)"], + [305, "a0", "(inline-array vector4w)"], + [318, "v1", "(inline-array vector)"], + [329, "v1", "(inline-array vector4w)"], + [346, "v1", "(inline-array vector)"], + [358, "v1", "(inline-array vector4w)"], + [375, "v1", "(inline-array vector)"], + [387, "v1", "(inline-array vector4w)"], + [404, "v1", "(inline-array vector)"], + [417, "v1", "(inline-array vector4w)"] + ], + "(method 21 minimap)": [ + [16, "s3", "(pointer uint128)"], + [[32, 39], "a0", "dma-packet"], + [[41, 48], "a0", "gs-gif-tag"], + [51, "a0", "(pointer gs-clamp)"], + [53, "a0", "(pointer gs-reg64)"], + [55, "a0", "(pointer gs-test)"], + [57, "a0", "(pointer gs-reg64)"], + [60, "a0", "(pointer gs-texa)"], + [62, "a0", "(pointer gs-reg64)"], + [71, "s3", "(pointer uint128)"], + [215, "s3", "(inline-array vector4w)"], + [224, "s3", "(inline-array vector)"], + [235, "s3", "(inline-array vector4w)"], + [241, "s3", "(inline-array vector)"], + [252, "s3", "(inline-array vector4w)"], + [259, "s3", "(inline-array vector)"], + [270, "s3", "(inline-array vector4w)"], + [277, "s3", "(inline-array vector)"], + [288, "s3", "(inline-array vector4w)"], + [[322, 329], "a0", "dma-packet"], + [[331, 338], "a0", "gs-gif-tag"], + [342, "a0", "(pointer gs-xy-offset)"], + [344, "a0", "(pointer gs-reg64)"], + [355, "a2", "connection-minimap"], + [379, "s2", "(pointer uint128)"], + [400, "a2", "connection-minimap"], + [424, "s3", "(pointer uint128)"], + [438, "a2", "connection-minimap"], + [[453, 460], "a0", "dma-packet"], + [[462, 469], "a0", "gs-gif-tag"], + [478, "a0", "(pointer gs-frame)"], + [480, "a0", "(pointer gs-reg64)"], + [482, "a0", "(pointer gs-alpha)"], + [484, "a0", "(pointer gs-reg64)"], + [485, "a0", "(pointer gs-xy-offset)"], + [487, "a0", "(pointer gs-reg64)"], + [[494, 508], "s3", "(pointer uint128)"], + [508, "s3", "(inline-array vector4w)"], + [517, "s3", "(inline-array vector4w)"], + [522, "s3", "(inline-array vector4w)"], + [528, "s3", "(inline-array vector4w)"], + [535, "s3", "(inline-array vector4w)"] + ], + "(method 23 minimap)": [ + [28, "a0", "process-drawable"], + [62, "v1", "process-drawable"], + [81, "a0", "process-drawable"], + [305, "a1", "(pointer uint128)"], + [307, "a0", "(inline-array vector4w)"], + [320, "v1", "(inline-array vector)"], + [331, "v1", "(inline-array vector4w)"], + [348, "v1", "(inline-array vector)"], + [360, "v1", "(inline-array vector4w)"], + [377, "v1", "(inline-array vector)"], + [389, "v1", "(inline-array vector4w)"], + [406, "v1", "(inline-array vector)"], + [419, "v1", "(inline-array vector4w)"] + ], + "(method 17 minimap)": [ + [28, "a0", "process-drawable"], + [68, "v1", "process-drawable"], + [87, "a0", "process-drawable"], + [357, "a0", "(pointer uint128)"], + [365, "a0", "(pointer uint128)"], + [368, "a0", "(pointer uint128)"], + [370, "v1", "(inline-array vector4w)"], + [383, "v1", "(inline-array vector)"], + [394, "v1", "(inline-array vector4w)"], + [410, "v1", "(inline-array vector)"], + [422, "v1", "(inline-array vector4w)"], + [438, "v1", "(inline-array vector)"], + [450, "v1", "(inline-array vector4w)"], + [466, "v1", "(inline-array vector)"], + [479, "v1", "(inline-array vector4w)"] + ], + "(method 18 minimap)": [ + [28, "a0", "process-drawable"], + [68, "v1", "process-drawable"], + [87, "a0", "process-drawable"], + [323, "t1", "(pointer uint128)"], + [325, "t0", "(inline-array vector4w)"], + [338, "a3", "(inline-array vector4w)"], + [344, "a3", "(inline-array vector4w)"], + [360, "a3", "(inline-array vector4w)"], + [366, "a2", "(inline-array vector4w)"], + [382, "a2", "(inline-array vector4w)"], + [388, "a1", "(inline-array vector4w)"], + [404, "a1", "(inline-array vector4w)"], + [410, "v1", "(inline-array vector4w)"] + ], + "(method 19 minimap)": [ + [[8, 15], "a0", "dma-packet"], + [[17, 24], "a0", "gs-gif-tag"], + [28, "s2", "(pointer gs-test)"], + [30, "s2", "(pointer gs-reg64)"], + [32, "s2", "(pointer gs-alpha)"], + [34, "s2", "(pointer gs-reg64)"], + [53, "s2", "(pointer gs-tex0)"], + [55, "s2", "(pointer gs-reg64)"], + [57, "s2", "(pointer gs-tex1)"], + [59, "s2", "(pointer gs-reg64)"], + [61, "s2", "(pointer gs-clamp)"], + [63, "s2", "(pointer gs-reg64)"], + [64, "s2", "(pointer uint64)"], + [66, "s2", "(pointer gs-reg64)"], + [109, "v1", "(pointer uint128)"], + [[116, 157], "v1", "(inline-array vector4w)"], + [[165, 172], "a0", "dma-packet"], + [[174, 181], "a0", "gs-gif-tag"], + [185, "a0", "(pointer gs-test)"], + [187, "a0", "(pointer gs-reg64)"], + [[505, 514], "s3", "(pointer uint128)"], + [[514, 596], "s3", "(inline-array vector4w)"] + ], + "(method 21 trail-graph)": [ + [4, "a3", "trail-conn"], + [[11, 17], "a3", "trail-conn-hash-cell"], + [20, "a0", "(pointer uint16)"], + [33, "a3", "trail-conn"], + [37, "a3", "trail-conn"] ] } diff --git a/decompiler/util/data_decompile.cpp b/decompiler/util/data_decompile.cpp index 9dc986ae19..895d75b5d9 100644 --- a/decompiler/util/data_decompile.cpp +++ b/decompiler/util/data_decompile.cpp @@ -519,7 +519,7 @@ goos::Object decomp_ref_to_inline_array_guess_size( auto& word = all_words.at(my_seg).at(pad_byte_idx / 4); switch (word.kind()) { case LinkedWord::PLAIN_DATA: - ASSERT(word.get_byte(pad_byte_idx) == 0); + ASSERT(word.get_byte(pad_byte_idx % 4) == 0); break; case LinkedWord::TYPE_PTR: break; @@ -831,6 +831,21 @@ const std::unordered_map< {"nav-mesh", {{"poly-array", ArrayFieldDecompMeta(TypeSpec("nav-poly"), 64)}, {"nav-control-array", ArrayFieldDecompMeta(TypeSpec("nav-control"), 288)}}}, + {"trail-conn-hash", + {{"cell", ArrayFieldDecompMeta(TypeSpec("trail-conn-hash-cell"), 4)}, + {"conn-ids", ArrayFieldDecompMeta(TypeSpec("uint16"), + 2, + ArrayFieldDecompMeta::Kind::REF_TO_INTEGER_ARR)}}}, + {"trail-graph", + {{"node", ArrayFieldDecompMeta(TypeSpec("trail-node"), 18)}, + {"conn", ArrayFieldDecompMeta(TypeSpec("trail-conn"), 8)}, + {"conn-ids", ArrayFieldDecompMeta(TypeSpec("uint16"), + 2, + ArrayFieldDecompMeta::Kind::REF_TO_INTEGER_ARR)}, + {"visgroup", ArrayFieldDecompMeta(TypeSpec("trail-conn-hash-cell"), 4)}, + {"visnode-ids", ArrayFieldDecompMeta(TypeSpec("uint16"), + 2, + ArrayFieldDecompMeta::Kind::REF_TO_INTEGER_ARR)}}}, {"predator-graph", {{"node", ArrayFieldDecompMeta(TypeSpec("predator-node"), 48)}, {"edge", ArrayFieldDecompMeta(TypeSpec("predator-edge"), 4)}}}}}}; @@ -902,6 +917,7 @@ goos::Object decompile_structure(const TypeSpec& type, } int word_count = (type_info->get_size_in_memory() + 3) / 4; + int byte_count = type_info->get_size_in_memory(); // check alignment if (offset_location % 8) { @@ -935,24 +951,17 @@ goos::Object decompile_structure(const TypeSpec& type, // status of each byte. enum ByteStatus : u8 { ZERO_UNREAD, HAS_DATA_UNREAD, ZERO_READ, HAS_DATA_READ }; std::vector field_status_per_byte; - for (int i = 0; i < word_count; i++) { - auto& w = obj_words.at(i); + for (int i = 0; i < byte_count; i++) { + auto& w = obj_words.at(i / 4); switch (w.kind()) { case LinkedWord::TYPE_PTR: case LinkedWord::PTR: case LinkedWord::SYM_PTR: case LinkedWord::EMPTY_PTR: - field_status_per_byte.push_back(HAS_DATA_UNREAD); - field_status_per_byte.push_back(HAS_DATA_UNREAD); - field_status_per_byte.push_back(HAS_DATA_UNREAD); field_status_per_byte.push_back(HAS_DATA_UNREAD); break; case LinkedWord::PLAIN_DATA: { - u8 bytes[4]; - memcpy(bytes, &w.data, 4); - for (auto b : bytes) { - field_status_per_byte.push_back(b ? HAS_DATA_UNREAD : ZERO_UNREAD); - } + field_status_per_byte.push_back(w.get_byte(i % 4) ? HAS_DATA_UNREAD : ZERO_UNREAD); } break; default: throw std::runtime_error("Unsupported word in static data"); diff --git a/goal_src/jak2/engine/game/task/task-arrow.gc b/goal_src/jak2/engine/game/task/task-arrow.gc index 04d787bb7b..023e6e76aa 100644 --- a/goal_src/jak2/engine/game/task/task-arrow.gc +++ b/goal_src/jak2/engine/game/task/task-arrow.gc @@ -109,9 +109,9 @@ (if (and (not (handle->process (-> obj hud-dist))) *target*) (set! (-> obj hud-dist) (ppointer->handle (process-spawn hud-progress :init hud-init-by-other :to *target*))) ) - (let ((s5-1 (minimap-method-10 *minimap* (-> obj minimap) (the-as minimap-trail #f)))) + (let ((s5-1 (get-trail-for-connection *minimap* (-> obj minimap) #f))) (if (and s5-1 (nonzero? (-> s5-1 last-updated))) - (set! (-> obj dist) (minimap-trail-method-9 s5-1 (target-pos 0) (-> obj pos))) + (set! (-> obj dist) (get-distance-with-path s5-1 (target-pos 0) (-> obj pos))) ) ) (if (= (-> obj max-dist) 0.0) @@ -147,9 +147,7 @@ ((< (* f0-15 f0-15) (vector-vector-xz-distance-squared (-> obj pos) (-> obj root trans))) (kill-callback (-> *minimap* engine) (-> obj minimap)) (set! (-> obj root trans quad) (-> obj pos quad)) - (set! (-> obj minimap) - (minimap-method-12 *minimap* obj (-> obj map-icon) (the-as int #f) (the-as vector #t) 0) - ) + (set! (-> obj minimap) (add-icon! *minimap* obj (-> obj map-icon) (the-as int #f) (the-as vector #t) 0)) ) (else (set! (-> obj root trans quad) (-> obj pos quad)) @@ -228,7 +226,7 @@ (kill-callback (-> *minimap* engine) (-> self minimap)) (let ((a2-1 (-> event param 0))) (set! (-> self map-icon) a2-1) - (set! v0-2 (minimap-method-12 *minimap* self a2-1 (the-as int #f) (the-as vector #t) 0)) + (set! v0-2 (add-icon! *minimap* self a2-1 (the-as int #f) (the-as vector #t) 0)) ) (set! (-> self minimap) (the-as connection-minimap v0-2)) v0-2 @@ -286,9 +284,7 @@ (set! (-> self max-dist) 0.0) (set! (-> self theta) 0.0) (set! (-> self phi) 0.0) - (set! (-> self minimap) - (minimap-method-12 *minimap* self (-> arg0 map-icon) (the-as int #f) (the-as vector #t) 0) - ) + (set! (-> self minimap) (add-icon! *minimap* self (-> arg0 map-icon) (the-as int #f) (the-as vector #t) 0)) (cond ((not (logtest? (-> self flags) (task-arrow-flags task-arrow-flag-02))) (set! (-> self part) (create-launch-control (-> *part-group-id-table* 78) self)) diff --git a/goal_src/jak2/engine/game/task/task-control.gc b/goal_src/jak2/engine/game/task/task-control.gc index c36d5fb7fd..8362540247 100644 --- a/goal_src/jak2/engine/game/task/task-control.gc +++ b/goal_src/jak2/engine/game/task/task-control.gc @@ -85,19 +85,18 @@ 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 ((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)) @@ -157,20 +156,20 @@ (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)) - ;; ) - ;; ) + (let ((v1-67 (add-icon! + *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)) + ) + ) ) ) ) diff --git a/goal_src/jak2/engine/gfx/hw/display.gc b/goal_src/jak2/engine/gfx/hw/display.gc index d44fc2bb7a..b737bc0e44 100644 --- a/goal_src/jak2/engine/gfx/hw/display.gc +++ b/goal_src/jak2/engine/gfx/hw/display.gc @@ -607,7 +607,7 @@ arg0 ) -(defun reset-display-gs-state ((arg0 display) (arg1 dma-buffer) (arg2 int)) +(defun reset-display-gs-state ((arg0 display) (arg1 dma-buffer)) (let* ((v1-0 arg1) (a2-1 (the-as object (-> v1-0 base))) ) diff --git a/goal_src/jak2/engine/gfx/ocean/ocean-texture.gc b/goal_src/jak2/engine/gfx/ocean/ocean-texture.gc index 19c8e0c1c5..8b7bdcf97c 100644 --- a/goal_src/jak2/engine/gfx/ocean/ocean-texture.gc +++ b/goal_src/jak2/engine/gfx/ocean/ocean-texture.gc @@ -198,15 +198,13 @@ (+! s3-1 3072) (ocean-texture-add-call-rest obj arg0) ) - (let ((a2-5 s3-1)) - (ocean-texture-add-verts-last obj arg0 a2-5 (+ arg1 0)) - (ocean-texture-add-call-rest obj arg0) - (ocean-texture-add-call-done obj arg0) - (ocean-method-81 obj arg0) - (reset-display-gs-state *display* arg0 a2-5) - ) + (ocean-texture-add-verts-last obj arg0 s3-1 (+ arg1 0)) ) ) + (ocean-texture-add-call-rest obj arg0) + (ocean-texture-add-call-done obj arg0) + (ocean-method-81 obj arg0) + (reset-display-gs-state *display* arg0) 0 (none) ) @@ -407,22 +405,16 @@ (set! (-> v1-69 6 quad) (-> obj xy88 quad)) ) (&+! (-> arg0 base) 112) - (let ((t9-15 set-display-gs-state) - (a0-71 arg0) - (a1-31 66) - (a2-5 8) - ) - (t9-15 a0-71 a1-31 a2-5 8 0 0) - (let ((v1-72 (the-as (inline-array vector4w) (-> arg0 base)))) - (set! (-> v1-72 0 quad) (-> obj erase-tmpl dma-vif quad)) - (set! (-> v1-72 1 quad) (-> obj erase-tmpl quad 1)) - (set! (-> v1-72 2 quad) (-> obj color80808000 quad)) - (set! (-> v1-72 3 quad) (-> obj xy00 quad)) - (set! (-> v1-72 4 quad) (-> obj xy88 quad)) - ) - (set! (-> arg0 base) (the-as pointer (-> (the-as (inline-array vector4w) (-> arg0 base)) 5))) - (reset-display-gs-state *display* arg0 a2-5) + (set-display-gs-state arg0 66 8 8 0 0) + (let ((v1-72 (the-as (inline-array vector4w) (-> arg0 base)))) + (set! (-> v1-72 0 quad) (-> obj erase-tmpl dma-vif quad)) + (set! (-> v1-72 1 quad) (-> obj erase-tmpl quad 1)) + (set! (-> v1-72 2 quad) (-> obj color80808000 quad)) + (set! (-> v1-72 3 quad) (-> obj xy00 quad)) + (set! (-> v1-72 4 quad) (-> obj xy88 quad)) ) + (set! (-> arg0 base) (the-as pointer (-> (the-as (inline-array vector4w) (-> arg0 base)) 5))) + (reset-display-gs-state *display* arg0) 0 (none) ) @@ -1526,95 +1518,89 @@ (ocean-method-85 obj arg0) (ocean-method-88 obj arg0) (set-display-gs-state arg0 (the-as int (-> *ocean-envmap-texture-base* vram-page)) 64 64 0 0) - (let ((a0-43 obj) - (t9-13 (method-of-type ocean ocean-method-83)) - (a1-43 arg0) - (a2-5 32768.0) - ) - (t9-13 a0-43 a1-43 a2-5) - (let* ((v1-44 arg0) - (a0-44 (the-as object (-> v1-44 base))) - ) - (set! (-> (the-as dma-packet a0-44) dma) (new 'static 'dma-tag :qwc #x7 :id (dma-tag-id cnt))) - (set! (-> (the-as dma-packet a0-44) vif0) (new 'static 'vif-tag)) - (set! (-> (the-as dma-packet a0-44) vif1) (new 'static 'vif-tag :imm #x7 :cmd (vif-cmd direct) :msk #x1)) - (set! (-> v1-44 base) (&+ (the-as pointer a0-44) 16)) - ) - (let* ((v1-45 arg0) - (a0-46 (the-as object (-> v1-45 base))) - ) - (set! (-> (the-as gs-gif-tag a0-46) tag) (new 'static 'gif-tag64 :nloop #x1 :eop #x1 :nreg #x6)) - (set! (-> (the-as gs-gif-tag a0-46) regs) GIF_REGS_ALL_AD) - (set! (-> v1-45 base) (&+ (the-as pointer a0-46) 16)) - ) - (let* ((s4-4 arg0) - (s3-2 (-> s4-4 base)) - ) - (set! (-> (the-as (pointer gs-alpha) s3-2) 0) (new 'static 'gs-alpha :b #x1 :d #x1)) - (set! (-> (the-as (pointer gs-reg64) s3-2) 1) (gs-reg64 alpha-1)) - (set! (-> (the-as (pointer gs-tex0) s3-2) 2) - (new 'static 'gs-tex0 - :tbw #x1 - :tcc #x1 - :th (log2 32) - :tw (log2 64) - :tbp0 (-> *ocean-envmap-texture-base* vram-block) - ) - ) - (set! (-> (the-as (pointer gs-reg64) s3-2) 3) (gs-reg64 tex0-1)) - (set! (-> (the-as (pointer gs-tex1) s3-2) 4) (new 'static 'gs-tex1 :mmag #x1 :mmin #x1)) - (set! (-> (the-as (pointer gs-reg64) s3-2) 5) (gs-reg64 tex1-1)) - (set! (-> (the-as (pointer gs-clamp) s3-2) 6) - (new 'static 'gs-clamp :wms (gs-tex-wrap-mode clamp) :wmt (gs-tex-wrap-mode clamp)) - ) - (set! (-> (the-as (pointer gs-reg64) s3-2) 7) (gs-reg64 clamp-1)) - (set! (-> (the-as (pointer gs-rgbaq) s3-2) 8) (new 'static 'gs-rgbaq :r #x80 :g #x80 :b #x80 :a #x80 :q 1.0)) - (set! (-> (the-as (pointer gs-reg64) s3-2) 9) (gs-reg64 rgbaq)) - (set! (-> (the-as (pointer uint64) s3-2) 10) (the-as uint 0)) - (set! (-> (the-as (pointer gs-reg64) s3-2) 11) (gs-reg64 texflush)) - (set! (-> s4-4 base) (&+ s3-2 96)) - ) - (let* ((v1-63 arg0) - (a0-54 (the-as object (-> v1-63 base))) - ) - (set! (-> (the-as dma-packet a0-54) dma) (new 'static 'dma-tag :qwc #x3 :id (dma-tag-id cnt))) - (set! (-> (the-as dma-packet a0-54) vif0) (new 'static 'vif-tag)) - (set! (-> (the-as dma-packet a0-54) vif1) (new 'static 'vif-tag :imm #x3 :cmd (vif-cmd direct) :msk #x1)) - (set! (-> v1-63 base) (&+ (the-as pointer a0-54) 16)) - ) - (let* ((v1-64 arg0) - (a0-56 (the-as object (-> v1-64 base))) - ) - (set! (-> (the-as gs-gif-tag a0-56) tag) (new 'static 'gif-tag64 :nloop #x1 :eop #x1 :nreg #x2)) - (set! (-> (the-as gs-gif-tag a0-56) regs) GIF_REGS_ALL_AD) - (set! (-> v1-64 base) (&+ (the-as pointer a0-56) 16)) - ) - (let* ((v1-65 arg0) - (a0-58 (-> v1-65 base)) - ) - (set! (-> (the-as (pointer gs-tex1) a0-58) 0) (new 'static 'gs-tex1)) - (set! (-> (the-as (pointer gs-reg64) a0-58) 1) (gs-reg64 tex1-1)) - (set! (-> (the-as (pointer uint64) a0-58) 2) (the-as uint 0)) - (set! (-> (the-as (pointer gs-reg64) a0-58) 3) (gs-reg64 texflush)) - (set! (-> v1-65 base) (&+ a0-58 32)) - ) - (let ((v1-66 (the-as (inline-array vector4w) (-> arg0 base)))) - (set! (-> v1-66 0 quad) (-> obj sprite-tmpl dma-vif quad)) - (set! (-> v1-66 1 quad) (-> obj sprite-tmpl quad 1)) - (set-vector! (-> v1-66 2) 128 128 128 128) - (set-vector! (-> v1-66 3) 8 520 0 0) - (set-vector! (-> v1-66 4) 0 512 #xffffff 0) - (set-vector! (-> v1-66 5) 1032 8 0 0) - (let ((v1-67 (the-as object (-> v1-66 6)))) - (set! (-> (the-as (inline-array vector4w) v1-67) 0 x) 1024) - (set! (-> (the-as vector4w v1-67) y) 1024) - (set! (-> (the-as vector4w v1-67) z) #xffffff) - (set! (-> (the-as vector4w v1-67) w) 0) - ) - ) - (&+! (-> arg0 base) 112) - (reset-display-gs-state *display* arg0 (the-as int a2-5)) + (ocean-method-83 obj arg0 32768.0) + (let* ((v1-44 arg0) + (a0-44 (the-as object (-> v1-44 base))) + ) + (set! (-> (the-as dma-packet a0-44) dma) (new 'static 'dma-tag :qwc #x7 :id (dma-tag-id cnt))) + (set! (-> (the-as dma-packet a0-44) vif0) (new 'static 'vif-tag)) + (set! (-> (the-as dma-packet a0-44) vif1) (new 'static 'vif-tag :imm #x7 :cmd (vif-cmd direct) :msk #x1)) + (set! (-> v1-44 base) (&+ (the-as pointer a0-44) 16)) ) + (let* ((v1-45 arg0) + (a0-46 (the-as object (-> v1-45 base))) + ) + (set! (-> (the-as gs-gif-tag a0-46) tag) (new 'static 'gif-tag64 :nloop #x1 :eop #x1 :nreg #x6)) + (set! (-> (the-as gs-gif-tag a0-46) regs) GIF_REGS_ALL_AD) + (set! (-> v1-45 base) (&+ (the-as pointer a0-46) 16)) + ) + (let* ((s4-4 arg0) + (s3-2 (-> s4-4 base)) + ) + (set! (-> (the-as (pointer gs-alpha) s3-2) 0) (new 'static 'gs-alpha :b #x1 :d #x1)) + (set! (-> (the-as (pointer gs-reg64) s3-2) 1) (gs-reg64 alpha-1)) + (set! (-> (the-as (pointer gs-tex0) s3-2) 2) + (new 'static 'gs-tex0 + :tbw #x1 + :tcc #x1 + :th (log2 32) + :tw (log2 64) + :tbp0 (-> *ocean-envmap-texture-base* vram-block) + ) + ) + (set! (-> (the-as (pointer gs-reg64) s3-2) 3) (gs-reg64 tex0-1)) + (set! (-> (the-as (pointer gs-tex1) s3-2) 4) (new 'static 'gs-tex1 :mmag #x1 :mmin #x1)) + (set! (-> (the-as (pointer gs-reg64) s3-2) 5) (gs-reg64 tex1-1)) + (set! (-> (the-as (pointer gs-clamp) s3-2) 6) + (new 'static 'gs-clamp :wms (gs-tex-wrap-mode clamp) :wmt (gs-tex-wrap-mode clamp)) + ) + (set! (-> (the-as (pointer gs-reg64) s3-2) 7) (gs-reg64 clamp-1)) + (set! (-> (the-as (pointer gs-rgbaq) s3-2) 8) (new 'static 'gs-rgbaq :r #x80 :g #x80 :b #x80 :a #x80 :q 1.0)) + (set! (-> (the-as (pointer gs-reg64) s3-2) 9) (gs-reg64 rgbaq)) + (set! (-> (the-as (pointer uint64) s3-2) 10) (the-as uint 0)) + (set! (-> (the-as (pointer gs-reg64) s3-2) 11) (gs-reg64 texflush)) + (set! (-> s4-4 base) (&+ s3-2 96)) + ) + (let* ((v1-63 arg0) + (a0-54 (the-as object (-> v1-63 base))) + ) + (set! (-> (the-as dma-packet a0-54) dma) (new 'static 'dma-tag :qwc #x3 :id (dma-tag-id cnt))) + (set! (-> (the-as dma-packet a0-54) vif0) (new 'static 'vif-tag)) + (set! (-> (the-as dma-packet a0-54) vif1) (new 'static 'vif-tag :imm #x3 :cmd (vif-cmd direct) :msk #x1)) + (set! (-> v1-63 base) (&+ (the-as pointer a0-54) 16)) + ) + (let* ((v1-64 arg0) + (a0-56 (the-as object (-> v1-64 base))) + ) + (set! (-> (the-as gs-gif-tag a0-56) tag) (new 'static 'gif-tag64 :nloop #x1 :eop #x1 :nreg #x2)) + (set! (-> (the-as gs-gif-tag a0-56) regs) GIF_REGS_ALL_AD) + (set! (-> v1-64 base) (&+ (the-as pointer a0-56) 16)) + ) + (let* ((v1-65 arg0) + (a0-58 (-> v1-65 base)) + ) + (set! (-> (the-as (pointer gs-tex1) a0-58) 0) (new 'static 'gs-tex1)) + (set! (-> (the-as (pointer gs-reg64) a0-58) 1) (gs-reg64 tex1-1)) + (set! (-> (the-as (pointer uint64) a0-58) 2) (the-as uint 0)) + (set! (-> (the-as (pointer gs-reg64) a0-58) 3) (gs-reg64 texflush)) + (set! (-> v1-65 base) (&+ a0-58 32)) + ) + (let ((v1-66 (the-as (inline-array vector4w) (-> arg0 base)))) + (set! (-> v1-66 0 quad) (-> obj sprite-tmpl dma-vif quad)) + (set! (-> v1-66 1 quad) (-> obj sprite-tmpl quad 1)) + (set-vector! (-> v1-66 2) 128 128 128 128) + (set-vector! (-> v1-66 3) 8 520 0 0) + (set-vector! (-> v1-66 4) 0 512 #xffffff 0) + (set-vector! (-> v1-66 5) 1032 8 0 0) + (let ((v1-67 (the-as object (-> v1-66 6)))) + (set! (-> (the-as (inline-array vector4w) v1-67) 0 x) 1024) + (set! (-> (the-as vector4w v1-67) y) 1024) + (set! (-> (the-as vector4w v1-67) z) #xffffff) + (set! (-> (the-as vector4w v1-67) w) 0) + ) + ) + (&+! (-> arg0 base) 112) + (reset-display-gs-state *display* arg0) 0 (none) ) diff --git a/goal_src/jak2/engine/ui/hud-classes.gc b/goal_src/jak2/engine/ui/hud-classes.gc index 1f322b1334..c9809abe14 100644 --- a/goal_src/jak2/engine/ui/hud-classes.gc +++ b/goal_src/jak2/engine/ui/hud-classes.gc @@ -7,6 +7,8 @@ ;; DECOMP BEGINS +(defglobalconstant SKIP_MINIMAP_DRAW #t) + ;; WARN: Failed store: (s.w! (+ v1-35 8) 0) at op 135 ;; WARN: Failed store: (s.w! (+ v1-35 12) 0) at op 136 ;; WARN: Failed store: (s.w! (+ v1-61 8) 0) at op 213 @@ -25,14 +27,12 @@ (set! (-> obj sprites 0 color w) (the int (+ 70.0 (* 70.0 (sin (* 182.04445 (the float (-> obj values 1 current))))))) ) - (when (nonzero? *minimap*) ;; added check - (set! (-> *minimap* color y) - (the int (- 96.0 (* 32.0 (sin (* 182.04445 (the float (-> obj values 1 current))))))) - ) - (set! (-> *minimap* color z) - (the int (- 96.0 (* 32.0 (sin (* 182.04445 (the float (-> obj values 1 current))))))) - ) - ) + (set! (-> *minimap* color y) + (the int (- 96.0 (* 32.0 (sin (* 182.04445 (the float (-> obj values 1 current))))))) + ) + (set! (-> *minimap* color z) + (the int (- 96.0 (* 32.0 (sin (* 182.04445 (the float (-> obj values 1 current))))))) + ) (set! (-> obj sprites 0 scale-x) 1.0) (set! (-> obj sprites 0 scale-y) 1.0) (when (>= (-> *setting-control* user-current race-minimap) 0) @@ -44,29 +44,33 @@ (let ((t9-5 (method-of-type hud draw))) (t9-5 obj) ) + (#when SKIP_MINIMAP_DRAW + (return #f) + ) (cond ((< (-> *setting-control* user-current race-minimap) 0) (with-dma-buffer-add-bucket ((s4-0 (-> *display* frames (-> *display* on-screen) global-buf)) (bucket-id progress) ) (set-as-offset-from! (-> obj sprites 2) (the-as vector4w (-> obj sprites 1)) 2 -3) - (minimap-method-15 *minimap* s4-0 (the-as vector4w (-> obj sprites 2)) #t) + (draw-1 *minimap* s4-0 (the-as vector4w (-> obj sprites 2)) #t) ) ) ((zero? (-> *setting-control* user-current race-minimap)) (let ((s5-1 (level-get *level* 'stadiumb))) (when (and s5-1 (= (-> s5-1 status) 'active)) - (minimap-method-25 + (set-race-texture *minimap* (lookup-texture-by-id (new 'static 'texture-id :index #x10 :page #xc25)) 16837.018 + s5-1 ) - (minimap-method-27 *minimap* -1609044.0 -2978676.8) + (set-race-corner *minimap* -1609044.0 -2978676.8) (with-dma-buffer-add-bucket ((s4-2 (-> *display* frames (-> *display* on-screen) global-buf)) (bucket-id progress) ) (set-as-offset-from! (-> obj sprites 2) (the-as vector4w (-> obj sprites 1)) 10 -15) - (minimap-method-24 *minimap* s4-2 (the-as vector4w (-> obj sprites 2)) #t) + (draw-sprite2 *minimap* s4-2 (the-as vector4w (-> obj sprites 2)) #t) ) ) ) @@ -74,17 +78,18 @@ ((= (-> *setting-control* user-current race-minimap) 1) (let ((s5-3 (level-get *level* 'stadiumc))) (when (and s5-3 (= (-> s5-3 status) 'active)) - (minimap-method-27 *minimap* -951910.4 -3694182.5) - (minimap-method-25 + (set-race-corner *minimap* -951910.4 -3694182.5) + (set-race-texture *minimap* (lookup-texture-by-id (new 'static 'texture-id :index #x1 :page #xd17)) 13907.148 + s5-3 ) (with-dma-buffer-add-bucket ((s4-4 (-> *display* frames (-> *display* on-screen) global-buf)) (bucket-id progress) ) (set-as-offset-from! (-> obj sprites 2) (the-as vector4w (-> obj sprites 1)) 20 -8) - (minimap-method-24 *minimap* s4-4 (the-as vector4w (-> obj sprites 2)) #t) + (draw-sprite2 *minimap* s4-4 (the-as vector4w (-> obj sprites 2)) #t) ) ) ) @@ -92,17 +97,18 @@ ((= (-> *setting-control* user-current race-minimap) 2) (let ((s5-5 (level-get *level* 'stadiumd))) (when (and s5-5 (= (-> s5-5 status) 'active)) - (minimap-method-27 *minimap* -1862860.8 -3283353.5) - (minimap-method-25 + (set-race-corner *minimap* -1862860.8 -3283353.5) + (set-race-texture *minimap* (lookup-texture-by-id (new 'static 'texture-id :index #x1 :page #xd18)) 18255.871 + s5-5 ) (with-dma-buffer-add-bucket ((s4-6 (-> *display* frames (-> *display* on-screen) global-buf)) (bucket-id progress) ) (set-as-offset-from! (-> obj sprites 2) (the-as vector4w (-> obj sprites 1)) 10 -8) - (minimap-method-24 *minimap* s4-6 (the-as vector4w (-> obj sprites 2)) #t) + (draw-sprite2 *minimap* s4-6 (the-as vector4w (-> obj sprites 2)) #t) ) ) ) @@ -117,7 +123,7 @@ (defmethod update-values hud-map ((obj hud-map)) (cond - ((minimap-method-20 *minimap*) + ((update! *minimap*) (logior! (-> obj flags) (hud-flags show)) (let ((t9-1 (method-of-type hud update-values))) (t9-1 obj) @@ -156,7 +162,7 @@ (set! (-> obj sprites 1 flags) (the-as uint 4)) (set! (-> obj sprites 1 pos z) #xffff00) (set! (-> obj values 0 current) 0) - (minimap-method-20 *minimap*) + (update! *minimap*) 0 (none) ) diff --git a/goal_src/jak2/engine/ui/minimap-h.gc b/goal_src/jak2/engine/ui/minimap-h.gc index b22dc3fd7c..58b94b9b2f 100644 --- a/goal_src/jak2/engine/ui/minimap-h.gc +++ b/goal_src/jak2/engine/ui/minimap-h.gc @@ -117,6 +117,7 @@ (scale float :offset-assert 28) (color rgba :offset-assert 32) ) + :pack-me :method-count-assert 9 :size-assert #x24 :flag-assert #x900000024 @@ -125,7 +126,7 @@ (deftype connection-minimap (connection-pers) ((handle handle :offset 8) - (position vector :offset 16) + (position object :offset 16) (alpha float :offset 20) (class minimap-class-node :offset 24) (flags minimap-flag :offset 28) @@ -164,18 +165,18 @@ :size-assert #xd0 :flag-assert #xb000000d0 (:methods - (minimap-trail-method-9 (_type_ vector vector) float 9) - (minimap-trail-method-10 () none 10) + (get-distance-with-path (_type_ vector vector) float 9) + (reset (_type_) none 10) ) ) (deftype minimap-draw-work (structure) - ((buf basic :offset-assert 0) - (justify-right basic :offset-assert 4) - (draw-pos vector4w :inline :offset-assert 16) - (mat matrix :inline :offset-assert 32) - (corner vector4w 4 :inline :offset-assert 96) + ((buf dma-buffer :offset-assert 0) + (justify-right symbol :offset-assert 4) + (draw-pos vector4w :inline :offset-assert 16) + (mat matrix :inline :offset-assert 32) + (corner vector 4 :inline :offset-assert 96) ) :method-count-assert 9 :size-assert #xa0 @@ -193,20 +194,20 @@ (color vector4w :inline :offset-assert 192) (offset vector :inline :offset-assert 208) (minimap-corner vector :inline :offset-assert 224) - (last-name basic :offset-assert 240) + (last-name string :offset-assert 240) (last-tex basic :offset-assert 244) (target-inv-scale float :offset-assert 248) (map-bits uint64 :offset-assert 256) - (level basic :offset-assert 264) - (ctywide basic :offset-assert 268) + (level level :offset-assert 264) + (ctywide level :offset-assert 268) (inv-scale float :offset 212) (fade float :offset 220) (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) + (race-tex texture :offset-assert 1536) (race-scale float :offset-assert 1540) - (race-level basic :offset-assert 1544) + (race-level level :offset-assert 1544) (sprite2-tmpl dma-gif-packet :inline :offset-assert 1552) (race-corner vector :inline :offset-assert 1584) (goal-time float :offset-assert 1600) @@ -216,24 +217,24 @@ :size-assert #x648 :flag-assert #x1c00000648 (:methods - (minimap-method-9 () none 9) - (minimap-method-10 (_type_ connection-minimap minimap-trail) minimap-trail 10) - (minimap-method-11 () none 11) - (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 (_type_ dma-buffer vector4w symbol) none 15) - (minimap-method-16 () none 16) - (minimap-method-17 () none 17) - (minimap-method-18 () none 18) - (minimap-method-19 () none 19) - (minimap-method-20 (_type_) symbol 20) - (minimap-method-21 () none 21) - (minimap-method-22 () none 22) - (minimap-method-23 () none 23) - (minimap-method-24 (_type_ dma-buffer vector4w symbol) none 24) - (minimap-method-25 (_type_ texture float) none 25) - (minimap-method-26 () none 26) - (minimap-method-27 (_type_ float float) none 27) + (debug-draw (_type_) none 9) + (get-trail-for-connection (_type_ connection-minimap symbol) minimap-trail 10) + (get-icon-draw-pos (_type_ connection-minimap minimap-trail vector float vector) symbol 11) + (add-icon! (_type_ process uint int vector int) connection-minimap 12) + (free-trail-by-connection (_type_ connection-minimap) none 13) + (update-trails (_type_) none 14) + (draw-1 (_type_ dma-buffer vector4w symbol) none 15) + (draw-connection (_type_ minimap-draw-work connection-minimap) none 16) + (draw-frustum-1 (_type_ minimap-draw-work connection-minimap) none 17) + (draw-frustum-2 (_type_ minimap-draw-work connection-minimap) none 18) + (sub-draw-1-2 (_type_ minimap-draw-work) none 19) + (update! (_type_) symbol 20) + (sub-draw-1-1 (_type_ minimap-draw-work) none 21) + (set-color (_type_ vector) none 22) + (draw-racer-2 (_type_ minimap-draw-work connection-minimap) none 23) + (draw-sprite2 (_type_ dma-buffer vector4w symbol) none 24) + (set-race-texture (_type_ texture float level) none 25) + (draw-racer-1 (_type_ minimap-draw-work connection-minimap float float float) none 26) + (set-race-corner (_type_ float float) none 27) ) ) diff --git a/goal_src/jak2/engine/ui/minimap.gc b/goal_src/jak2/engine/ui/minimap.gc index e9dc899e92..5d6d1d4140 100644 --- a/goal_src/jak2/engine/ui/minimap.gc +++ b/goal_src/jak2/engine/ui/minimap.gc @@ -10,55 +10,2790 @@ ;; DECOMP BEGINS -(defmethod minimap-method-12 minimap ((obj minimap) (arg0 process) (arg1 uint) (arg2 int) (arg3 vector) (arg4 int)) - (the-as connection-minimap #f) ;; TODO - stubbed! - ;; (when (not arg2) - ;; (let ((v1-3 (+ (-> *minimap* engine-key) 1))) - ;; (set! (-> *minimap* engine-key) v1-3) - ;; (set! arg2 (the-as int v1-3)) - ;; ) - ;; ) - ;; (let ((s3-0 (the-as connection-minimap (schedule-callback (-> obj engine) arg2 0)))) - ;; (let ((s2-1 (-> *minimap-class-list* arg1))) - ;; (when s3-0 - ;; (when (not (logtest? (-> s3-0 flags) (minimap-flag active))) - ;; (set! (-> s3-0 class) s2-1) - ;; (set! (-> s3-0 last-world-pos quad) (-> s2-1 default-position quad)) - ;; (vector-! (-> s3-0 last-relative-pos) (target-pos 0) (-> s3-0 last-world-pos)) - ;; (set! (-> s3-0 edge-ry) -131072.0) - ;; ) - ;; (set! (-> s3-0 handle) (process->handle arg0)) - ;; (set! arg3 (cond - ;; (arg3 - ;; (empty) - ;; arg3 - ;; ) - ;; (else - ;; (-> s2-1 default-position) - ;; ) - ;; ) - ;; ) - ;; (set! (-> s3-0 position) arg3) - ;; (set! (-> s3-0 flags) (minimap-flag active fade-in)) - ;; (set! (-> s3-0 node) (the-as uint arg4)) - ;; ) - ;; ) - ;; s3-0 - ;; ) +(deftype minimap-texture-name-array (structure) + ((data string 35 :offset-assert 0) + ) + :method-count-assert 9 + :size-assert #x8c + :flag-assert #x90000008c ) -(defmethod minimap-method-20 minimap ((obj minimap)) - #t) + +(deftype minimap-corner-array (structure) + ((data vector 35 :inline :offset-assert 0) + ) + :method-count-assert 9 + :size-assert #x230 + :flag-assert #x900000230 + ) -(defmethod minimap-method-15 minimap ((obj minimap) (dma dma-buffer) (a vector4w) (k symbol)) - (none)) +(define *minimap-texture-name-array* + (new 'static 'minimap-texture-name-array :data (new 'static 'array string 35 + #f + #f + "map-stadium" + "map-ctyslumc" + #f + #f + "map-ctygena" + "map-ctygenb" + "map-ctyslumb" + #f + #f + "map-ctyfarma" + "map-ctygenc" + #f + "map-ctysluma" + #f + "map-ctymarka" + "map-ctypala" + "map-ctymarkb" + "map-ctyindb" + #f + "map-ctyfarmb" + "map-ctypalb" + #f + "map-ctyinda" + #f + "map-ctyporta" + "map-ctyportb" + "map-ctyportc" + #f + #f + "map-ctyportd" + "map-ctyporte" + "map-ctyportf" + #f + ) + ) + ) -(defmethod minimap-method-24 minimap ((obj minimap) (dma dma-buffer) (a vector4w) (k symbol)) - (none)) +(define *minimap-corner-array* + (new 'static 'minimap-corner-array :data (new 'static 'inline-array vector 35 + (new 'static 'vector :x -4456448.0 :z -4456448.0 :w 1.0) + (new 'static 'vector :x -2883584.0 :z -4456448.0 :w 1.0) + (new 'static 'vector :x -1310720.0 :z -4456448.0 :w 1.0) + (new 'static 'vector :x 262144.0 :z -4456448.0 :w 1.0) + (new 'static 'vector :x 1835008.0 :z -4456448.0 :w 1.0) + (new 'static 'vector :x -4456448.0 :z -2883584.0 :w 1.0) + (new 'static 'vector :x -2883584.0 :z -2883584.0 :w 1.0) + (new 'static 'vector :x -1310720.0 :z -2883584.0 :w 1.0) + (new 'static 'vector :x 262144.0 :z -2883584.0 :w 1.0) + (new 'static 'vector :x 1835008.0 :z -2883584.0 :w 1.0) + (new 'static 'vector :x -4456448.0 :z -1310720.0 :w 1.0) + (new 'static 'vector :x -2883584.0 :z -1310720.0 :w 1.0) + (new 'static 'vector :x -1310720.0 :z -1310720.0 :w 1.0) + (new 'static 'vector :x 262144.0 :z -1310720.0 :w 1.0) + (new 'static 'vector :x 1835008.0 :z -1310720.0 :w 1.0) + (new 'static 'vector :x -4456448.0 :z 262144.0 :w 1.0) + (new 'static 'vector :x -2883584.0 :z 262144.0 :w 1.0) + (new 'static 'vector :x -1310720.0 :z 262144.0 :w 1.0) + (new 'static 'vector :x 262144.0 :z 262144.0 :w 1.0) + (new 'static 'vector :x 1835008.0 :z 262144.0 :w 1.0) + (new 'static 'vector :x -4456448.0 :z 1835008.0 :w 1.0) + (new 'static 'vector :x -2883584.0 :z 1835008.0 :w 1.0) + (new 'static 'vector :x -1310720.0 :z 1835008.0 :w 1.0) + (new 'static 'vector :x 262144.0 :z 1835008.0 :w 1.0) + (new 'static 'vector :x 1835008.0 :z 1835008.0 :w 1.0) + (new 'static 'vector :x -4456448.0 :z 3407872.0 :w 1.0) + (new 'static 'vector :x -2883584.0 :z 3407872.0 :w 1.0) + (new 'static 'vector :x -1310720.0 :z 3407872.0 :w 1.0) + (new 'static 'vector :x 262144.0 :z 3407872.0 :w 1.0) + (new 'static 'vector :x 1835008.0 :z 3407872.0 :w 1.0) + (new 'static 'vector :x -4456448.0 :z 4980736.0 :w 1.0) + (new 'static 'vector :x -2883584.0 :z 4980736.0 :w 1.0) + (new 'static 'vector :x -1310720.0 :z 4980736.0 :w 1.0) + (new 'static 'vector :x 262144.0 :z 4980736.0 :w 1.0) + (new 'static 'vector :x 1835008.0 :z 4980736.0 :w 1.0) + ) + ) + ) -(defmethod minimap-method-25 minimap ((obj minimap) (text texture) (a float)) - (none)) +(define *minimap* + (new 'static 'minimap + :draw-tmpl (new 'static 'dma-gif-packet + :dma-vif (new 'static 'dma-packet + :dma (new 'static 'dma-tag :qwc #xa :id (dma-tag-id cnt)) + :vif1 (new 'static 'vif-tag :imm #xa :cmd (vif-cmd direct) :msk #x1) + ) + :gif0 (new 'static 'gif-tag64 + :nloop #x1 + :eop #x1 + :pre #x1 + :prim (new 'static 'gs-prim :prim (gs-prim-type tri-strip) :tme #x1 :fst #x1) + :nreg #x9 + ) + :gif1 (new 'static 'gif-tag-regs + :regs0 (gif-reg-id rgbaq) + :regs1 (gif-reg-id uv) + :regs2 (gif-reg-id xyz2) + :regs3 (gif-reg-id uv) + :regs4 (gif-reg-id xyz2) + :regs5 (gif-reg-id uv) + :regs6 (gif-reg-id xyz2) + :regs7 (gif-reg-id uv) + :regs8 (gif-reg-id xyz2) + ) + ) + :draw2-tmpl (new 'static 'dma-gif-packet + :dma-vif (new 'static 'dma-packet + :dma (new 'static 'dma-tag :qwc #xa :id (dma-tag-id cnt)) + :vif1 (new 'static 'vif-tag :imm #xa :cmd (vif-cmd direct) :msk #x1) + ) + :gif0 (new 'static 'gif-tag64 + :nloop #x1 + :eop #x1 + :pre #x1 + :prim (new 'static 'gs-prim :prim (gs-prim-type tri-strip) :tme #x1) + :nreg #x9 + ) + :gif1 (new 'static 'gif-tag-regs + :regs0 (gif-reg-id rgbaq) + :regs1 (gif-reg-id st) + :regs2 (gif-reg-id xyz2) + :regs3 (gif-reg-id st) + :regs4 (gif-reg-id xyz2) + :regs5 (gif-reg-id st) + :regs6 (gif-reg-id xyz2) + :regs7 (gif-reg-id st) + :regs8 (gif-reg-id xyz2) + ) + ) + :draw3-tmpl (new 'static 'dma-gif-packet + :dma-vif (new 'static 'dma-packet + :dma (new 'static 'dma-tag :qwc #xa :id (dma-tag-id cnt)) + :vif1 (new 'static 'vif-tag :imm #xa :cmd (vif-cmd direct) :msk #x1) + ) + :gif0 (new 'static 'gif-tag64 + :nloop #x1 + :eop #x1 + :pre #x1 + :prim (new 'static 'gs-prim :prim (gs-prim-type tri-strip) :tme #x1 :abe #x1 :fst #x1) + :nreg #x9 + ) + :gif1 (new 'static 'gif-tag-regs + :regs0 (gif-reg-id rgbaq) + :regs1 (gif-reg-id uv) + :regs2 (gif-reg-id xyz2) + :regs3 (gif-reg-id uv) + :regs4 (gif-reg-id xyz2) + :regs5 (gif-reg-id uv) + :regs6 (gif-reg-id xyz2) + :regs7 (gif-reg-id uv) + :regs8 (gif-reg-id xyz2) + ) + ) + :draw4-tmpl (new 'static 'dma-gif-packet + :dma-vif (new 'static 'dma-packet + :dma (new 'static 'dma-tag :qwc #xa :id (dma-tag-id cnt)) + :vif1 (new 'static 'vif-tag :imm #xa :cmd (vif-cmd direct) :msk #x1) + ) + :gif0 (new 'static 'gif-tag64 + :nloop #x1 + :eop #x1 + :pre #x1 + :prim (new 'static 'gs-prim :prim (gs-prim-type tri-strip) :tme #x1 :abe #x1) + :nreg #x9 + ) + :gif1 (new 'static 'gif-tag-regs + :regs0 (gif-reg-id rgbaq) + :regs1 (gif-reg-id st) + :regs2 (gif-reg-id xyz2) + :regs3 (gif-reg-id st) + :regs4 (gif-reg-id xyz2) + :regs5 (gif-reg-id st) + :regs6 (gif-reg-id xyz2) + :regs7 (gif-reg-id st) + :regs8 (gif-reg-id xyz2) + ) + ) + :sprite-tmpl (new 'static 'dma-gif-packet + :dma-vif (new 'static 'dma-packet + :dma (new 'static 'dma-tag :qwc #x6 :id (dma-tag-id cnt)) + :vif1 (new 'static 'vif-tag :imm #x6 :cmd (vif-cmd direct) :msk #x1) + ) + :gif0 (new 'static 'gif-tag64 + :nloop #x1 + :eop #x1 + :pre #x1 + :prim (new 'static 'gs-prim :prim (gs-prim-type sprite) :tme #x1 :abe #x1 :fst #x1) + :nreg #x5 + ) + :gif1 (new 'static 'gif-tag-regs + :regs0 (gif-reg-id rgbaq) + :regs1 (gif-reg-id uv) + :regs2 (gif-reg-id xyz2) + :regs3 (gif-reg-id uv) + :regs4 (gif-reg-id xyz2) + ) + ) + :adgif-tmpl (new 'static 'dma-gif-packet + :dma-vif (new 'static 'dma-packet + :dma (new 'static 'dma-tag :qwc #x6 :id (dma-tag-id cnt)) + :vif1 (new 'static 'vif-tag :imm #x6 :cmd (vif-cmd direct) :msk #x1) + ) + :gif0 (new 'static 'gif-tag64 :nloop #x5 :eop #x1 :nreg #x1) + :gif1 (new 'static 'gif-tag-regs :regs0 (gif-reg-id a+d)) + ) + :color (new 'static 'vector4w :x #x80 :y #x80 :z #x80 :w #x80) + :offset (new 'static 'vector :x 1.0 :y 1.0 :z 1.0) + :last-name #f + :last-tex #f + :engine #f + :engine-key #x800 + :race-tex #f + :race-scale 16384.0 + :race-level #f + :sprite2-tmpl (new 'static 'dma-gif-packet + :dma-vif (new 'static 'dma-packet + :dma (new 'static 'dma-tag :qwc #x6 :id (dma-tag-id cnt)) + :vif1 (new 'static 'vif-tag :imm #x6 :cmd (vif-cmd direct) :msk #x1) + ) + :gif0 (new 'static 'gif-tag64 + :nloop #x1 + :eop #x1 + :pre #x1 + :prim (new 'static 'gs-prim :prim (gs-prim-type sprite) :tme #x1 :abe #x1) + :nreg #x5 + ) + :gif1 (new 'static 'gif-tag-regs + :regs0 (gif-reg-id rgbaq) + :regs1 (gif-reg-id st) + :regs2 (gif-reg-id xyz2) + :regs3 (gif-reg-id st) + :regs4 (gif-reg-id xyz2) + ) + ) + :frustum-alpha 1.0 + ) + ) -(defmethod minimap-method-27 minimap ((obj minimap) (dma float) (a float)) - (none)) \ No newline at end of file +(define *minimap-class-list* (new 'static 'inline-array minimap-class-node 71 + (new 'static 'minimap-class-node + :default-position (new 'static 'vector :w 1.0) + :flags (minimap-flag trail bigmap) + :name "none" + :scale 1.0 + :color (new 'static 'rgba :r #xff :g #xff :b #xff :a #x80) + ) + (new 'static 'minimap-class-node + :default-position (new 'static 'vector :x 2920448.0 :y 32768.0 :z 3080192.0 :w 1.0) + :flags (minimap-flag trail bigmap city-only) + :name "onintent" + :scale 1.0 + :color (new 'static 'rgba :r #xff :g #xff :b #xff :a #x80) + ) + (new 'static 'minimap-class-node + :default-position (new 'static 'vector :x 3346432.0 :y 32768.0 :z -1384448.0 :w 1.0) + :flags (minimap-flag trail bigmap city-only) + :name "ruins" + :icon-xy (new 'static 'vector2ub :data (new 'static 'array uint8 2 #x1 #x0)) + :scale 1.0 + :color (new 'static 'rgba :r #xff :g #xff :b #xff :a #x80) + ) + (new 'static 'minimap-class-node + :default-position (new 'static 'vector :x 4505600.0 :z 4505600.0 :w 1.0) + :flags (minimap-flag trail bigmap city-only) + :name "vinroom" + :icon-xy (new 'static 'vector2ub :data (new 'static 'array uint8 2 #x2 #x0)) + :scale 1.0 + :color (new 'static 'rgba :r #xff :g #xff :b #xff :a #x80) + ) + (new 'static 'minimap-class-node + :default-position (new 'static 'vector :x -1761280.0 :z 856064.0 :w 1.0) + :flags (minimap-flag trail bigmap city-only) + :name "mountain" + :icon-xy (new 'static 'vector2ub :data (new 'static 'array uint8 2 #x3 #x0)) + :scale 1.0 + :color (new 'static 'rgba :r #xff :g #xff :b #xff :a #x80) + ) + (new 'static 'minimap-class-node + :default-position (new 'static 'vector :x 4751360.0 :y 32768.0 :z 241664.0 :w 1.0) + :flags (minimap-flag trail bigmap city-only) + :name "hideout" + :icon-xy (new 'static 'vector2ub :data (new 'static 'array uint8 2 #x4 #x0)) + :scale 1.0 + :color (new 'static 'rgba :r #xff :g #xff :b #xff :a #x80) + ) + (new 'static 'minimap-class-node + :default-position (new 'static 'vector :x 4378624.0 :y -34734.08 :z 2097152.0 :w 1.0) + :flags (minimap-flag trail bigmap city-only) + :name "sewer" + :icon-xy (new 'static 'vector2ub :data (new 'static 'array uint8 2 #x1 #x1)) + :scale 1.0 + :color (new 'static 'rgba :r #xff :g #xff :b #xff :a #x80) + ) + (new 'static 'minimap-class-node + :default-position (new 'static 'vector :x 2285568.0 :y 32768.0 :z -3252224.0 :w 1.0) + :flags (minimap-flag trail bigmap city-only) + :name "atoll" + :icon-xy (new 'static 'vector2ub :data (new 'static 'array uint8 2 #x2 #x1)) + :scale 1.0 + :color (new 'static 'rgba :r #xff :g #xff :b #xff :a #x80) + ) + (new 'static 'minimap-class-node + :default-position (new 'static 'vector :x -282624.0 :y 45056.0 :z 5464064.0 :w 1.0) + :flags (minimap-flag trail bigmap city-only) + :name "hiphog" + :icon-xy (new 'static 'vector2ub :data (new 'static 'array uint8 2 #x3 #x1)) + :scale 1.0 + :color (new 'static 'rgba :r #xff :g #xff :b #xff :a #x80) + ) + (new 'static 'minimap-class-node + :default-position (new 'static 'vector :x 3084288.0 :z 929792.0 :w 1.0) + :flags (minimap-flag trail bigmap city-only) + :name "fortress" + :icon-xy (new 'static 'vector2ub :data (new 'static 'array uint8 2 #x4 #x1)) + :scale 1.0 + :color (new 'static 'rgba :r #xff :g #xff :b #xff :a #x80) + ) + (new 'static 'minimap-class-node + :default-position (new 'static 'vector :x 1757184.0 :z 5386240.0 :w 1.0) + :flags (minimap-flag trail bigmap city-only) + :name "gungame" + :icon-xy (new 'static 'vector2ub :data (new 'static 'array uint8 2 #x5 #x1)) + :scale 1.0 + :color (new 'static 'rgba :r #xff :g #xff :b #xff :a #x80) + ) + (new 'static 'minimap-class-node + :default-position (new 'static 'vector :x 1843200.0 :y 34816.0 :z 5275648.0 :w 1.0) + :flags (minimap-flag trail bigmap city-only) + :name "gun-yellow" + :icon-xy (new 'static 'vector2ub :data (new 'static 'array uint8 2 #x1 #x2)) + :scale 1.0 + :color (new 'static 'rgba :g #x7f :b #x7f :a #x80) + ) + (new 'static 'minimap-class-node + :default-position (new 'static 'vector :x 442368.0 :z -1843200.0 :w 1.0) + :flags (minimap-flag trail bigmap city-only) + :name "garage" + :icon-xy (new 'static 'vector2ub :data (new 'static 'array uint8 2 #x0 #x2)) + :scale 1.0 + :color (new 'static 'rgba :r #xff :g #xff :b #xff :a #x80) + ) + (new 'static 'minimap-class-node + :default-position (new 'static 'vector :x 835584.0 :z -712704.0 :w 1.0) + :flags (minimap-flag trail bigmap city-only) + :name "palace-cable" + :icon-xy (new 'static 'vector2ub :data (new 'static 'array uint8 2 #x4 #x3)) + :scale 1.0 + :color (new 'static 'rgba :r #xff :g #xff :b #xff :a #x80) + ) + (new 'static 'minimap-class-node + :default-position (new 'static 'vector :w 1.0) + :name "guard" + :icon-xy (new 'static 'vector2ub :data (new 'static 'array uint8 2 #x0 #x1)) + :scale 1.0 + :color (new 'static 'rgba :r #x7f :a #x80) + ) + (new 'static 'minimap-class-node + :default-position (new 'static 'vector :w 1.0) + :flags (minimap-flag trail bigmap goal) + :name "goal" + :icon-xy (new 'static 'vector2ub :data (new 'static 'array uint8 2 #x0 #x4)) + :scale 1.0 + :color (new 'static 'rgba :g #x7f :a #x80) + ) + (new 'static 'minimap-class-node + :default-position (new 'static 'vector :w 1.0) + :flags (minimap-flag clamp bigmap goal) + :name "goal-no-trail" + :icon-xy (new 'static 'vector2ub :data (new 'static 'array uint8 2 #x0 #x4)) + :scale 1.0 + :color (new 'static 'rgba :g #x7f :a #x80) + ) + (new 'static 'minimap-class-node + :default-position (new 'static 'vector :w 1.0) + :name "parking-spot" + :icon-xy (new 'static 'vector2ub :data (new 'static 'array uint8 2 #x0 #x1)) + :scale 1.0 + :color (new 'static 'rgba :r #x7f :g #x7f :b #x7f :a #x80) + ) + (new 'static 'minimap-class-node + :default-position (new 'static 'vector :x -1761280.0 :z 856064.0 :w 1.0) + :flags (minimap-flag trail bigmap city-only) + :name "forest" + :icon-xy (new 'static 'vector2ub :data (new 'static 'array uint8 2 #x3 #x0)) + :scale 1.0 + :color (new 'static 'rgba :r #xff :g #xff :b #xff :a #x80) + ) + (new 'static 'minimap-class-node + :default-position (new 'static 'vector :x -450560.0 :z 1982464.0 :w 1.0) + :flags (minimap-flag trail bigmap) + :name "kiosk" + :icon-xy (new 'static 'vector2ub :data (new 'static 'array uint8 2 #x3 #x2)) + :scale 1.0 + :color (new 'static 'rgba :r #xff :g #xff :b #xff :a #x80) + ) + (new 'static 'minimap-class-node + :default-position (new 'static 'vector :x 1523712.0 :z 7372800.0 :w 1.0) + :flags (minimap-flag trail bigmap city-only) + :name "dig" + :icon-xy (new 'static 'vector2ub :data (new 'static 'array uint8 2 #x2 #x2)) + :scale 1.0 + :color (new 'static 'rgba :r #xff :g #xff :b #xff :a #x80) + ) + (new 'static 'minimap-class-node + :default-position (new 'static 'vector :x -1761280.0 :z 856064.0 :w 1.0) + :flags (minimap-flag trail bigmap city-only) + :name "canyon" + :icon-xy (new 'static 'vector2ub :data (new 'static 'array uint8 2 #x3 #x0)) + :scale 1.0 + :color (new 'static 'rgba :r #xff :g #xff :b #xff :a #x80) + ) + (new 'static 'minimap-class-node + :default-position (new 'static 'vector :x 839680.0 :z 3756032.0 :w 1.0) + :flags (minimap-flag trail bigmap city-only) + :name "tomb" + :icon-xy (new 'static 'vector2ub :data (new 'static 'array uint8 2 #x4 #x2)) + :scale 1.0 + :color (new 'static 'rgba :r #xff :g #xff :b #xff :a #x80) + ) + (new 'static 'minimap-class-node + :default-position (new 'static 'vector :x 1904640.0 :z 1753088.0 :w 1.0) + :flags (minimap-flag trail bigmap city-only) + :name "tanker" + :icon-xy (new 'static 'vector2ub :data (new 'static 'array uint8 2 #x5 #x0)) + :scale 1.0 + :color (new 'static 'rgba :r #xff :g #xff :b #xff :a #x80) + ) + (new 'static 'minimap-class-node + :default-position (new 'static 'vector :w 1.0) + :flags (minimap-flag trail flash bigmap) + :name "kid" + :icon-xy (new 'static 'vector2ub :data (new 'static 'array uint8 2 #x0 #x1)) + :scale 1.0 + :color (new 'static 'rgba :g #x7f :b #x7f :a #x80) + ) + (new 'static 'minimap-class-node + :default-position (new 'static 'vector :x 3121152.0 :z 3551232.0 :w 1.0) + :flags (minimap-flag trail bigmap city-only) + :name "consite" + :icon-xy (new 'static 'vector2ub :data (new 'static 'array uint8 2 #x5 #x2)) + :scale 1.0 + :color (new 'static 'rgba :g #x7f :a #x80) + ) + (new 'static 'minimap-class-node + :default-position (new 'static 'vector :x 786432.0 :z 3014656.0 :w 1.0) + :flags (minimap-flag trail bigmap city-only) + :name "palace" + :icon-xy (new 'static 'vector2ub :data (new 'static 'array uint8 2 #x5 #x0)) + :scale 1.0 + :color (new 'static 'rgba :r #xff :g #xff :b #xff :a #x80) + ) + (new 'static 'minimap-class-node + :default-position (new 'static 'vector :x 1523712.0 :z 7372800.0 :w 1.0) + :flags (minimap-flag trail bigmap city-only) + :name "castle" + :icon-xy (new 'static 'vector2ub :data (new 'static 'array uint8 2 #x2 #x2)) + :scale 1.0 + :color (new 'static 'rgba :r #xff :g #xff :b #xff :a #x80) + ) + (new 'static 'minimap-class-node + :default-position (new 'static 'vector :x 86016.0 :z 7151616.0 :w 1.0) + :flags (minimap-flag trail bigmap city-only) + :name "underport" + :icon-xy (new 'static 'vector2ub :data (new 'static 'array uint8 2 #x0 #x3)) + :scale 1.0 + :color (new 'static 'rgba :g #x7f :a #x80) + ) + (new 'static 'minimap-class-node + :default-position (new 'static 'vector :x 1126400.0 :z -2863104.0 :w 1.0) + :flags (minimap-flag trail bigmap city-only) + :name "stadium" + :icon-xy (new 'static 'vector2ub :data (new 'static 'array uint8 2 #x0 #x2)) + :scale 1.0 + :color (new 'static 'rgba :r #xff :g #xff :b #xff :a #x80) + ) + (new 'static 'minimap-class-node + :default-position (new 'static 'vector :x 2408448.0 :z 7798784.0 :w 1.0) + :flags (minimap-flag trail bigmap) + :name "port-turret" + :icon-xy (new 'static 'vector2ub :data (new 'static 'array uint8 2 #x5 #x1)) + :scale 1.0 + :color (new 'static 'rgba :r #xff :g #xff :b #xff :a #x80) + ) + (new 'static 'minimap-class-node + :default-position (new 'static 'vector :x 2895872.0 :z -1855488.0 :w 1.0) + :flags (minimap-flag trail bigmap city-only) + :name "oracle" + :icon-xy (new 'static 'vector2ub :data (new 'static 'array uint8 2 #x1 #x3)) + :scale 1.0 + :color (new 'static 'rgba :r #xff :g #xff :b #xff :a #x80) + ) + (new 'static 'minimap-class-node + :default-position (new 'static 'vector :w 1.0) + :flags (minimap-flag frustum) + :name "guard-frustum" + :icon-xy (new 'static 'vector2ub :data (new 'static 'array uint8 2 #x0 #x1)) + :scale 1.0 + :color (new 'static 'rgba :r #x7f :a #x80) + ) + (new 'static 'minimap-class-node + :default-position (new 'static 'vector :w 1.0) + :flags (minimap-flag bigmap city-only) + :name "burning-bush" + :icon-xy (new 'static 'vector2ub :data (new 'static 'array uint8 2 #x2 #x3)) + :scale 1.0 + :color (new 'static 'rgba :r #xff :g #xff :b #xff :a #x80) + ) + (new 'static 'minimap-class-node + :default-position (new 'static 'vector :x 1843200.0 :y 34816.0 :z 5275648.0 :w 1.0) + :flags (minimap-flag trail bigmap city-only) + :name "gun-dark" + :icon-xy (new 'static 'vector2ub :data (new 'static 'array uint8 2 #x1 #x2)) + :scale 1.0 + :color (new 'static 'rgba :g #x7f :b #x7f :a #x80) + ) + (new 'static 'minimap-class-node + :default-position (new 'static 'vector :x 3137536.0 :y 34324.48 :z -2962923.5 :w 1.0) + :flags (minimap-flag trail bigmap city-only) + :name "slumc-seal" + :icon-xy (new 'static 'vector2ub :data (new 'static 'array uint8 2 #x3 #x3)) + :scale 1.0 + :color (new 'static 'rgba :r #xff :g #xff :b #xff :a #x80) + ) + (new 'static 'minimap-class-node + :default-position (new 'static 'vector :w 1.0) + :flags (minimap-flag racer) + :name "racer" + :scale 1.0 + :color (new 'static 'rgba :r #xff :g #xff :b #x7f :a #x80) + ) + (new 'static 'minimap-class-node + :default-position (new 'static 'vector :w 1.0) + :flags (minimap-flag racer) + :name "racer-target" + :scale 1.0 + :color (new 'static 'rgba :g #xff :b #xff :a #x80) + ) + (new 'static 'minimap-class-node + :default-position (new 'static 'vector :w 1.0) + :flags (minimap-flag racer) + :name "racer-errol" + :scale 1.0 + :color (new 'static 'rgba :r #xff :a #x80) + ) + (new 'static 'minimap-class-node + :default-position (new 'static 'vector :x 166871.05 :y 49192.96 :z -2900009.0 :w 1.0) + :flags (minimap-flag trail bigmap) + :name "flag" + :icon-xy (new 'static 'vector2ub :data (new 'static 'array uint8 2 #x5 #x3)) + :scale 1.0 + :color (new 'static 'rgba :r #xff :g #xff :b #xff :a #x80) + ) + (new 'static 'minimap-class-node + :default-position (new 'static 'vector :x -258048.0 :y 32768.0 :z -96256.0 :w 1.0) + :flags (minimap-flag bigmap city-only) + :name "bbush-gena" + :icon-xy (new 'static 'vector2ub :data (new 'static 'array uint8 2 #x2 #x3)) + :scale 1.0 + :color (new 'static 'rgba :r #xff :g #xff :b #xff :a #x80) + ) + (new 'static 'minimap-class-node + :default-position (new 'static 'vector :x -1567539.2 :y 32768.0 :z -805683.2 :w 1.0) + :flags (minimap-flag bigmap city-only) + :name "bbush-gena-2" + :icon-xy (new 'static 'vector2ub :data (new 'static 'array uint8 2 #x2 #x3)) + :scale 1.0 + :color (new 'static 'rgba :r #xff :g #xff :b #xff :a #x80) + ) + (new 'static 'minimap-class-node + :default-position (new 'static 'vector :x 683663.4 :y 32768.0 :z -1237483.5 :w 1.0) + :flags (minimap-flag bigmap city-only) + :name "bbush-genb" + :icon-xy (new 'static 'vector2ub :data (new 'static 'array uint8 2 #x2 #x3)) + :scale 1.0 + :color (new 'static 'rgba :r #xff :g #xff :b #xff :a #x80) + ) + (new 'static 'minimap-class-node + :default-position (new 'static 'vector :x 1126400.0 :y 32768.0 :z -270336.0 :w 1.0) + :flags (minimap-flag bigmap city-only) + :name "bbush-genb-2" + :icon-xy (new 'static 'vector2ub :data (new 'static 'array uint8 2 #x2 #x3)) + :scale 1.0 + :color (new 'static 'rgba :r #xff :g #xff :b #xff :a #x80) + ) + (new 'static 'minimap-class-node + :default-position (new 'static 'vector :x 884736.0 :y 32768.0 :z 9445.376 :w 1.0) + :flags (minimap-flag bigmap city-only) + :name "bbush-genc" + :icon-xy (new 'static 'vector2ub :data (new 'static 'array uint8 2 #x2 #x3)) + :scale 1.0 + :color (new 'static 'rgba :r #xff :g #xff :b #xff :a #x80) + ) + (new 'static 'minimap-class-node + :default-position (new 'static 'vector :x 159744.0 :y 32768.0 :z 1081344.0 :w 1.0) + :flags (minimap-flag bigmap city-only) + :name "bbush-genc-2" + :icon-xy (new 'static 'vector2ub :data (new 'static 'array uint8 2 #x2 #x3)) + :scale 1.0 + :color (new 'static 'rgba :r #xff :g #xff :b #xff :a #x80) + ) + (new 'static 'minimap-class-node + :default-position (new 'static 'vector :x 3391774.8 :y 33341.44 :z 984637.44 :w 1.0) + :flags (minimap-flag bigmap city-only) + :name "bbush-sluma" + :icon-xy (new 'static 'vector2ub :data (new 'static 'array uint8 2 #x2 #x3)) + :scale 1.0 + :color (new 'static 'rgba :r #xff :g #xff :b #xff :a #x80) + ) + (new 'static 'minimap-class-node + :default-position (new 'static 'vector :x 2891899.0 :y 32768.0 :z -306487.28 :w 1.0) + :flags (minimap-flag bigmap city-only) + :name "bbush-slumb" + :icon-xy (new 'static 'vector2ub :data (new 'static 'array uint8 2 #x2 #x3)) + :scale 1.0 + :color (new 'static 'rgba :r #xff :g #xff :b #xff :a #x80) + ) + (new 'static 'minimap-class-node + :default-position (new 'static 'vector :x 1738997.8 :y 32768.0 :z -280698.88 :w 1.0) + :flags (minimap-flag bigmap city-only) + :name "bbush-slumb-2" + :icon-xy (new 'static 'vector2ub :data (new 'static 'array uint8 2 #x2 #x3)) + :scale 1.0 + :color (new 'static 'rgba :r #xff :g #xff :b #xff :a #x80) + ) + (new 'static 'minimap-class-node + :default-position (new 'static 'vector :x 2180219.0 :y 32768.0 :z -2407219.2 :w 1.0) + :flags (minimap-flag bigmap city-only) + :name "bbush-slumc" + :icon-xy (new 'static 'vector2ub :data (new 'static 'array uint8 2 #x2 #x3)) + :scale 1.0 + :color (new 'static 'rgba :r #xff :g #xff :b #xff :a #x80) + ) + (new 'static 'minimap-class-node + :default-position (new 'static 'vector :x 2602066.0 :y 31662.08 :z 6453739.5 :w 1.0) + :flags (minimap-flag bigmap city-only) + :name "bbush-port-3" + :icon-xy (new 'static 'vector2ub :data (new 'static 'array uint8 2 #x2 #x3)) + :scale 1.0 + :color (new 'static 'rgba :r #xff :g #xff :b #xff :a #x80) + ) + (new 'static 'minimap-class-node + :default-position (new 'static 'vector :x 1839267.9 :y 31662.08 :z 5443010.5 :w 1.0) + :flags (minimap-flag bigmap city-only) + :name "bbush-port-2" + :icon-xy (new 'static 'vector2ub :data (new 'static 'array uint8 2 #x2 #x3)) + :scale 1.0 + :color (new 'static 'rgba :r #xff :g #xff :b #xff :a #x80) + ) + (new 'static 'minimap-class-node + :default-position (new 'static 'vector :x -423485.44 :y 31744.0 :z 5558599.5 :w 1.0) + :flags (minimap-flag bigmap city-only) + :name "bbush-port" + :icon-xy (new 'static 'vector2ub :data (new 'static 'array uint8 2 #x2 #x3)) + :scale 1.0 + :color (new 'static 'rgba :r #xff :g #xff :b #xff :a #x80) + ) + (new 'static 'minimap-class-node + :default-position (new 'static 'vector :x -224952.31 :y 32768.0 :z 362332.16 :w 1.0) + :flags (minimap-flag bigmap city-only) + :name "bbush-farma" + :icon-xy (new 'static 'vector2ub :data (new 'static 'array uint8 2 #x2 #x3)) + :scale 1.0 + :color (new 'static 'rgba :r #xff :g #xff :b #xff :a #x80) + ) + (new 'static 'minimap-class-node + :default-position (new 'static 'vector :x -1280532.5 :y 32768.0 :z 4410286.0 :w 1.0) + :flags (minimap-flag bigmap city-only) + :name "bbush-farmb" + :icon-xy (new 'static 'vector2ub :data (new 'static 'array uint8 2 #x2 #x3)) + :scale 1.0 + :color (new 'static 'rgba :r #xff :g #xff :b #xff :a #x80) + ) + (new 'static 'minimap-class-node + :default-position (new 'static 'vector :x 3178741.8 :y 32768.0 :z 3331031.0 :w 1.0) + :flags (minimap-flag bigmap city-only) + :name "bbush-inda" + :icon-xy (new 'static 'vector2ub :data (new 'static 'array uint8 2 #x2 #x3)) + :scale 1.0 + :color (new 'static 'rgba :r #xff :g #xff :b #xff :a #x80) + ) + (new 'static 'minimap-class-node + :default-position (new 'static 'vector :x 3182592.0 :y 32768.0 :z 2916352.0 :w 1.0) + :flags (minimap-flag bigmap city-only) + :name "bbush-indb" + :icon-xy (new 'static 'vector2ub :data (new 'static 'array uint8 2 #x2 #x3)) + :scale 1.0 + :color (new 'static 'rgba :r #xff :g #xff :b #xff :a #x80) + ) + (new 'static 'minimap-class-node + :default-position (new 'static 'vector :x -733184.0 :y 32768.0 :z 3481600.0 :w 1.0) + :flags (minimap-flag bigmap city-only) + :name "bbush-marka" + :icon-xy (new 'static 'vector2ub :data (new 'static 'array uint8 2 #x2 #x3)) + :scale 1.0 + :color (new 'static 'rgba :r #xff :g #xff :b #xff :a #x80) + ) + (new 'static 'minimap-class-node + :default-position (new 'static 'vector :x 2985451.5 :y 34406.4 :z 2185216.0 :w 1.0) + :flags (minimap-flag bigmap city-only) + :name "bbush-markb" + :icon-xy (new 'static 'vector2ub :data (new 'static 'array uint8 2 #x2 #x3)) + :scale 1.0 + :color (new 'static 'rgba :r #xff :g #xff :b #xff :a #x80) + ) + (new 'static 'minimap-class-node + :default-position (new 'static 'vector :x 2576916.5 :y 34406.4 :z 3131310.0 :w 1.0) + :flags (minimap-flag bigmap city-only) + :name "bbush-markb-2" + :icon-xy (new 'static 'vector2ub :data (new 'static 'array uint8 2 #x2 #x3)) + :scale 1.0 + :color (new 'static 'rgba :r #xff :g #xff :b #xff :a #x80) + ) + (new 'static 'minimap-class-node + :default-position (new 'static 'vector :x 378306.56 :y 65536.0 :z 1866915.9 :w 1.0) + :flags (minimap-flag bigmap city-only) + :name "bbush-pal" + :icon-xy (new 'static 'vector2ub :data (new 'static 'array uint8 2 #x2 #x3)) + :scale 1.0 + :color (new 'static 'rgba :r #xff :g #xff :b #xff :a #x80) + ) + (new 'static 'minimap-class-node + :default-position (new 'static 'vector :x 1256243.2 :y 32768.0 :z 3622092.8 :w 1.0) + :flags (minimap-flag bigmap city-only) + :name "bbush-pal-2" + :icon-xy (new 'static 'vector2ub :data (new 'static 'array uint8 2 #x2 #x3)) + :scale 1.0 + :color (new 'static 'rgba :r #xff :g #xff :b #xff :a #x80) + ) + (new 'static 'minimap-class-node + :default-position (new 'static 'vector :x 1392926.8 :y 32768.0 :z -3109273.5 :w 1.0) + :flags (minimap-flag bigmap city-only) + :name "bbush-stadium" + :icon-xy (new 'static 'vector2ub :data (new 'static 'array uint8 2 #x2 #x3)) + :scale 1.0 + :color (new 'static 'rgba :r #xff :g #xff :b #xff :a #x80) + ) + (new 'static 'minimap-class-node + :default-position (new 'static 'vector :x 1542847.2 :y 196168.9 :z -4314233.0 :w 1.0) + :flags (minimap-flag bigmap goal) + :name "atoll-valve" + :icon-xy (new 'static 'vector2ub :data (new 'static 'array uint8 2 #x0 #x4)) + :scale 1.0 + :color (new 'static 'rgba :g #x7f :a #x80) + ) + (new 'static 'minimap-class-node + :default-position (new 'static 'vector :x 2277804.5 :y 217672.9 :z -4571725.5 :w 1.0) + :flags (minimap-flag bigmap goal) + :name "atoll-ashelin" + :icon-xy (new 'static 'vector2ub :data (new 'static 'array uint8 2 #x0 #x4)) + :scale 1.0 + :color (new 'static 'rgba :g #x7f :a #x80) + ) + (new 'static 'minimap-class-node + :default-position (new 'static 'vector :x -3100565.5 :y 547275.56 :z 1190112.5 :w 1.0) + :flags (minimap-flag bigmap goal) + :name "mountain-lens" + :icon-xy (new 'static 'vector2ub :data (new 'static 'array uint8 2 #x0 #x4)) + :scale 1.0 + :color (new 'static 'rgba :g #x7f :a #x80) + ) + (new 'static 'minimap-class-node + :default-position (new 'static 'vector :x -2833539.0 :y 496445.44 :z 11345.101 :w 1.0) + :flags (minimap-flag bigmap goal) + :name "mountain-shard" + :icon-xy (new 'static 'vector2ub :data (new 'static 'array uint8 2 #x0 #x4)) + :scale 1.0 + :color (new 'static 'rgba :g #x7f :a #x80) + ) + (new 'static 'minimap-class-node + :default-position (new 'static 'vector :x -3448408.5 :y 567047.8 :z 1029759.4 :w 1.0) + :flags (minimap-flag bigmap goal) + :name "mountain-gear" + :icon-xy (new 'static 'vector2ub :data (new 'static 'array uint8 2 #x0 #x4)) + :scale 1.0 + :color (new 'static 'rgba :g #x7f :a #x80) + ) + (new 'static 'minimap-class-node + :default-position (new 'static 'vector :x 4357507.5 :y 205120.72 :z -2286701.2 :w 1.0) + :flags (minimap-flag bigmap goal) + :name "ruins-hut" + :icon-xy (new 'static 'vector2ub :data (new 'static 'array uint8 2 #x0 #x4)) + :scale 1.0 + :color (new 'static 'rgba :g #x7f :a #x80) + ) + (new 'static 'minimap-class-node + :default-position (new 'static 'vector :x -2575550.8 :y 156067.02 :z 3728844.8 :w 1.0) + :flags (minimap-flag bigmap goal) + :name "forest-samos" + :icon-xy (new 'static 'vector2ub :data (new 'static 'array uint8 2 #x0 #x4)) + :scale 1.0 + :color (new 'static 'rgba :g #x7f :a #x80) + ) + (new 'static 'minimap-class-node + :default-position (new 'static 'vector :w 1.0) + :name "metalhead" + :icon-xy (new 'static 'vector2ub :data (new 'static 'array uint8 2 #x0 #x1)) + :scale 1.0 + :color (new 'static 'rgba :r #x7f :b #x7f :a #x80) + ) + ) + ) + +(let ((gp-0 *minimap*)) + (set! (-> gp-0 engine) (new 'global 'engine-minimap '*minimap* 64 connection-minimap)) + (countdown (v1-7 6) + (set! (-> gp-0 trail v1-7 used-by) #f) + ) + ) + +(defmethod debug-draw minimap ((obj minimap)) + (with-pp + (when *trail-graph* + (dotimes (s5-0 6) + (let ((s4-0 (-> obj trail s5-0))) + (when (and (-> s4-0 used-by) + (>= (-> s4-0 node-count) 0) + (< (- (-> pp clock frame-counter) (the-as int (-> s4-0 last-updated))) (seconds 5)) + ) + (let* ((a3-0 (target-pos 0)) + (v1-12 s5-0) + (t1-0 (cond + ((zero? v1-12) + *color-green* + ) + ((= v1-12 1) + *color-blue* + ) + ((= v1-12 2) + *color-white* + ) + ((= v1-12 3) + *color-red* + ) + (else + *color-magenta* + ) + ) + ) + ) + (debug-draw-path + *trail-graph* + (-> s4-0 node-count) + (-> s4-0 node-id) + a3-0 + (-> s4-0 cached-info orig-goal-pos) + t1-0 + (* 1024.0 (the float s5-0)) + ) + ) + ) + ) + ) + ) + 0 + (none) + ) + ) + +;; ERROR: Unsupported inline assembly instruction kind - [mfc0 v1, Count] +(defmethod update-trails minimap ((obj minimap)) + "Main function to do trail search per-frame" + (with-pp + (let ((s5-0 *trail-graph*)) + (when s5-0 + (.mtc0 Count 0) + (let ((v1-1 0)) + (while (< (the-as uint v1-1) (the-as uint #x605a)) + (let ((v1-2 (-> s5-0 mode))) + (cond + ((= v1-2 1) + (run-until-done-or-timeout s5-0 #x605a) + ) + ((zero? v1-2) + (let ((v1-5 -1)) + (let ((a0-5 0)) + (countdown (a1-1 6) + (let* ((a2-3 (-> obj trail a1-1)) + (a3-0 (-> a2-3 used-by)) + ) + (when (and a3-0 (and (< 0.0 (-> a3-0 alpha)) (or (< v1-5 0) (< (the-as int (-> a2-3 last-updated)) a0-5)))) + (set! v1-5 a1-1) + (set! a0-5 (the-as int (-> a2-3 last-updated))) + ) + ) + ) + (let ((a1-5 (-> pp clock frame-counter))) + (if (or (< v1-5 0) (= a0-5 a1-5)) + (goto cfg-68) + ) + ) + ) + (let ((s4-0 (-> obj trail v1-5)) + (s3-0 (the-as object #f)) + ) + (let* ((v1-9 (-> s4-0 used-by)) + (s2-0 (-> v1-9 position)) + ) + (set! s3-0 (cond + ((= s2-0 #t) + (let* ((s2-1 (handle->process (-> v1-9 handle))) + (v1-13 (if (type? s2-1 process-drawable) + s2-1 + ) + ) + ) + (if v1-13 + (set! s3-0 (-> (the-as process-drawable v1-13) root trans)) + ) + ) + s3-0 + ) + ((and (= (logand (the-as int s2-0) 7) 4) (= (-> (the-as basic s2-0) type) entity-actor)) + (let* ((v1-19 s2-0) + (s3-1 (if v1-19 + (-> (the-as entity-actor v1-19) extra process) + ) + ) + (v1-21 (if (type? s3-1 process-drawable) + s3-1 + ) + ) + ) + (if v1-21 + (set! s3-0 (-> (the-as process-drawable v1-21) root trans)) + (set! s3-0 (-> (the-as entity-actor s2-0) extra trans)) + ) + ) + s3-0 + ) + (else + s2-0 + ) + ) + ) + ) + (when s3-0 + (do-search! s5-0 (target-pos 0) (the-as vector s3-0) (-> s4-0 cached-info)) + (set! (-> s4-0 search-id) (-> s5-0 search-id)) + ) + ) + ) + ) + ((or (= v1-2 3) (= v1-2 2)) + (countdown (v1-33 6) + (let ((s4-1 (-> obj trail v1-33))) + (when (and (= (-> s4-1 search-id) (-> s5-0 search-id)) (-> s4-1 used-by)) + (set! (-> s4-1 node-count) + (get-path-to-root s5-0 (-> s4-1 node-id) 64 (&-> s4-1 goal-node-id) (&-> s4-1 node-path-dist)) + ) + (set! (-> s4-1 last-updated) (the-as uint (-> pp clock frame-counter))) + (goto cfg-64) + ) + ) + ) + (label cfg-64) + (reset-search-state s5-0) + ) + ) + ) + (.mfc0 v1-1 Count) + ) + ) + (label cfg-68) + 0 + ) + ) + 0 + (none) + ) + ) + +(defmethod get-trail-for-connection minimap ((obj minimap) (arg0 connection-minimap) (arg1 symbol)) + "Get a trail for connection. If arg1 is set, allow allocating a new one." + (local-vars (gp-0 minimap-trail)) + (countdown (v1-0 6) + (let ((a3-3 (-> obj trail v1-0))) + (when (= (-> a3-3 used-by) arg0) + (set! gp-0 a3-3) + (goto cfg-14) + ) + ) + ) + (when arg1 + (dotimes (v1-4 6) + (let ((a3-7 (-> obj trail v1-4))) + (when (not (-> a3-7 used-by)) + (set! (-> a3-7 used-by) arg0) + (set! gp-0 a3-7) + (goto cfg-14) + ) + ) + ) + ) + (set! gp-0 (the-as minimap-trail #f)) + (label cfg-14) + (if (and gp-0 arg1) + (reset gp-0) + ) + gp-0 + ) + +;; WARN: Function (method 13 minimap) has a return type of none, but the expression builder found a return statement. +(defmethod free-trail-by-connection minimap ((obj minimap) (arg0 connection-minimap)) + "Free the trail associated with this connection." + (countdown (v1-0 6) + (let ((a2-3 (-> obj trail v1-0))) + (when (= (-> a2-3 used-by) arg0) + (set! (-> a2-3 used-by) #f) + (reset a2-3) + (return #f) + ) + ) + ) + 0 + (none) + ) + +(defmethod reset minimap-trail ((obj minimap-trail)) + (set! (-> obj node-count) -1) + (set! (-> obj search-id) (the-as uint 0)) + (set! (-> obj last-updated) (the-as uint 0)) + (set! (-> obj cached-info goal-conn-id) -1) + (none) + ) + +(defmethod get-icon-draw-pos minimap ((obj minimap) (arg0 connection-minimap) (arg1 minimap-trail) (arg2 vector) (arg3 float) (arg4 vector)) + "Follow the path from the start until it reaches the border of the map, then get this position." + (let ((s5-0 (new 'stack-no-clear 'inline-array 'vector 4))) + (vector-reset! (-> s5-0 2)) + (vector-reset! (-> s5-0 1)) + (let ((s1-0 0)) + (while (>= (-> arg1 node-count) s1-0) + (set! (-> s5-0 0 quad) (-> s5-0 1 quad)) + (cond + ((< s1-0 (-> arg1 node-count)) + (get-node-location-by-id *trail-graph* (-> arg1 node-id s1-0) (-> s5-0 1)) + (+! s1-0 1) + (vector-! (-> s5-0 1) (-> s5-0 1) arg2) + (set! (-> s5-0 1 x) (* (-> s5-0 1 x) arg3)) + (set! (-> s5-0 1 z) (* (-> s5-0 1 z) arg3)) + (set! (-> s5-0 1 y) 0.0) + (set! (-> s5-0 1 w) 1.0) + ) + (else + (vector-negate! (-> s5-0 1) arg4) + (+! s1-0 1) + ) + ) + (let ((v1-12 (-> s5-0 1))) + (when (>= (sqrtf (+ (* (-> v1-12 x) (-> v1-12 x)) (* (-> v1-12 z) (-> v1-12 z)))) 50.0) + (vector-! (-> s5-0 3) (-> s5-0 0) (-> s5-0 1)) + (let* ((f1-6 (ray-sphere-intersect (-> s5-0 1) (-> s5-0 3) (-> s5-0 2) 50.0)) + (f0-12 (fmax 0.0 (fmin 1.0 f1-6))) + ) + (vector-float*! arg4 (-> s5-0 3) f0-12) + ) + (vector+! arg4 arg4 (-> s5-0 1)) + (vector-negate! arg4 arg4) + (return #t) + ) + ) + ) + ) + ) + #f + ) + +(defmethod get-distance-with-path minimap-trail ((obj minimap-trail) (arg0 vector) (arg1 vector)) + "Assuming we go from a to b, using this path in the middle, how long is it?" + 0.0 + (let ((s4-0 *trail-graph*)) + (cond + ((and s4-0 (> (-> obj node-count) 0)) + (let ((f30-0 (-> obj node-path-dist)) + (s2-0 (new 'stack-no-clear 'vector)) + ) + (get-node-location-by-id s4-0 (-> obj node-id 0) s2-0) + (let ((f30-1 (+ f30-0 (vector-vector-xz-distance arg0 s2-0)))) + (get-node-location-by-id s4-0 (the-as uint (-> obj goal-node-id)) s2-0) + (+ f30-1 (vector-vector-xz-distance arg1 s2-0)) + ) + ) + ) + (else + (vector-vector-xz-distance arg0 arg1) + ) + ) + ) + ) + +(defmethod print connection-minimap ((obj connection-minimap)) + (format + #t + "#" + (-> obj class name) + (-> obj flags) + (handle->process (-> obj handle)) + obj + ) + obj + ) + + +(defmethod run-pending-updates! engine-minimap ((obj engine-minimap) (arg0 time-frame)) + (with-pp + (let ((s2-0 (the-as (pointer connection-pers) (&-> obj alive-list-override))) + (s3-0 (-> obj alive-list-override)) + ) + (while s3-0 + (let ((s4-0 (-> s3-0 next))) + (when (not (paused?)) + (cond + ((logtest? (-> s3-0 flags) (minimap-flag fade-out)) + (logclear! (-> s3-0 flags) (minimap-flag fade-in)) + (seek! (-> s3-0 alpha) 0.0 (-> pp clock seconds-per-frame)) + ) + ((and (logtest? (-> s3-0 flags) (minimap-flag task-graph)) + (zero? (logand (-> *setting-control* user-current minimap) 32)) + ) + (logior! (-> s3-0 flags) (minimap-flag fade-in)) + (seek! (-> s3-0 alpha) 0.0 (-> pp clock seconds-per-frame)) + ) + ((logtest? (-> s3-0 flags) (minimap-flag fade-in)) + (let ((f30-0 1.0)) + (when (logtest? (-> s3-0 class flags) (minimap-flag trail)) + (let ((v1-26 (get-trail-for-connection *minimap* s3-0 #f))) + (if (or (not v1-26) (>= (- (-> pp clock frame-counter) (the-as int (-> v1-26 last-updated))) (seconds 5))) + (set! f30-0 0.0001) + ) + ) + ) + (seek! (-> s3-0 alpha) f30-0 (-> pp clock seconds-per-frame)) + ) + (if (= (-> s3-0 alpha) 1.0) + (logclear! (-> s3-0 flags) (minimap-flag fade-in)) + ) + ) + ) + ) + (cond + ((and (logtest? (-> s3-0 flags) (minimap-flag fade-out)) (= (-> s3-0 alpha) 0.0)) + (kill-callback obj s3-0) + (set! (-> s2-0 0) (-> s3-0 next)) + (set! (-> s3-0 next) (-> obj dead-list-override)) + (set! (-> obj dead-list-override) s3-0) + (+! (-> obj length) -1) + ) + ((and (handle->process (-> s3-0 handle)) + (not (and (= (logand (the-as int (-> s3-0 position)) 7) 4) + (= (-> (the-as basic (-> s3-0 position)) type) entity-actor) + (logtest? (-> (the-as entity-actor (-> s3-0 position)) extra perm status) + (entity-perm-status dead subtask-complete bit-12) + ) + ) + ) + ) + (update-callback obj) + (set! s2-0 (&-> s3-0 next)) + ) + (else + (logior! (-> s3-0 flags) (minimap-flag fade-out)) + (update-callback obj) + (set! s2-0 (&-> s3-0 next)) + ) + ) + (set! s3-0 (the-as connection-minimap s4-0)) + ) + ) + ) + (set! (-> obj execute-time) arg0) + 0 + (none) + ) + ) + +(defmethod add-icon! minimap ((obj minimap) (arg0 process) (arg1 uint) (arg2 int) (arg3 vector) (arg4 int)) + "Add an icon to the map!" + (when (not arg2) + (let ((v1-3 (+ (-> *minimap* engine-key) 1))) + (set! (-> *minimap* engine-key) v1-3) + (set! arg2 (the-as int v1-3)) + ) + ) + (let ((s3-0 (the-as connection-minimap (schedule-callback (-> obj engine) arg2 0)))) + (let ((s2-1 (-> *minimap-class-list* arg1))) + (when s3-0 + (when (not (logtest? (-> s3-0 flags) (minimap-flag active))) + (set! (-> s3-0 class) s2-1) + (set! (-> s3-0 last-world-pos quad) (-> s2-1 default-position quad)) + (vector-! (-> s3-0 last-relative-pos) (target-pos 0) (-> s3-0 last-world-pos)) + (set! (-> s3-0 edge-ry) -131072.0) + ) + (set! (-> s3-0 handle) (process->handle arg0)) + (set! arg3 (cond + (arg3 + (empty) + arg3 + ) + (else + (-> s2-1 default-position) + ) + ) + ) + (set! (-> s3-0 position) arg3) + (set! (-> s3-0 flags) (minimap-flag active fade-in)) + (set! (-> s3-0 node) (the-as uint arg4)) + ) + ) + s3-0 + ) + ) + +;; WARN: Function (method 10 engine-minimap) has a return type of none, but the expression builder found a return statement. +(defmethod kill-callback engine-minimap ((obj engine-minimap) (arg0 connection-pers)) + (if (not arg0) + (return #f) + ) + (if (logtest? (-> (the-as connection-minimap arg0) class flags) (minimap-flag trail)) + (free-trail-by-connection *minimap* (the-as connection-minimap arg0)) + ) + (set! (-> arg0 update-time) (the-as time-frame #f)) + ((method-of-type engine-pers kill-callback) obj arg0) + (none) + ) + +(defun lookup-minimap-texture-by-name ((arg0 string) (arg1 string) (arg2 (pointer texture-page))) + (local-vars (sv-16 texture-page)) + (dotimes (s3-0 7) + (let ((s2-0 (-> *level* level s3-0))) + (when (or (= (-> s2-0 status) 'active) (= (-> s2-0 status) 'reserved)) + (set! sv-16 (-> s2-0 texture-page 8)) + (when (and sv-16 (or (not arg1) (string= (-> sv-16 name) arg1))) + (dotimes (s1-0 (-> sv-16 length)) + (let ((s0-0 (-> sv-16 data s1-0))) + (when (and s0-0 (string= (-> s0-0 name) arg0)) + (if arg2 + (set! (-> arg2 0) sv-16) + ) + (set! (-> s2-0 texture-mask 8 mask quad) (-> s0-0 masks data 0 mask quad)) + (return s0-0) + ) + ) + ) + ) + ) + ) + ) + (the-as texture #f) + ) + +(defmethod update! minimap ((obj minimap)) + (with-pp + (set! (-> obj ctywide) (level-get *level* 'ctywide)) + (set! (-> obj map-bits) (the-as uint 0)) + (dotimes (v1-2 (-> *level* length)) + (let ((a0-5 (-> *level* level v1-2))) + (if (= (-> a0-5 status) 'active) + (logior! (-> obj map-bits) (-> a0-5 info city-map-bits)) + ) + ) + ) + (let ((s5-0 (the int (* 0.0000006357829 (+ 3145728.0 (-> (target-pos 0) x))))) + (v1-9 (the int (* 0.0000006357829 (+ 3145728.0 (-> (target-pos 0) z))))) + ) + (when (and (< s5-0 5) (< v1-9 7) (logtest? (-> obj map-bits) (ash 1 (+ (* 5 v1-9) s5-0)))) + (let ((a0-19 (-> *minimap-texture-name-array* data (+ (* 5 v1-9) s5-0)))) + (when a0-19 + (set! (-> obj last-name) a0-19) + (set! (-> obj minimap-corner quad) (-> *minimap-corner-array* data (+ (* 5 v1-9) s5-0) quad)) + (dotimes (a0-21 (-> *level* length)) + (let ((a1-23 (-> *level* level a0-21))) + (when (= (-> a1-23 status) 'active) + (if (logtest? (-> a1-23 info city-map-bits) (ash 1 (+ (* 5 v1-9) s5-0))) + (set! (-> obj level) a1-23) + ) + ) + ) + ) + ) + ) + ) + ) + (set! (-> obj last-tex) + (lookup-minimap-texture-by-name (-> obj last-name) (the-as string #f) (the-as (pointer texture-page) #f)) + ) + (let ((f30-2 (-> pp clock seconds-per-frame))) + (let ((v1-12 (-> obj last-tex))) + (cond + ((or (not (-> obj level)) (zero? (-> obj level)) (!= (-> obj level status) 'active) (not v1-12)) + (set! (-> obj offset w) 0.0) + ) + ((not (logtest? (-> *setting-control* user-current minimap) 128)) + (seek! (-> obj offset w) 0.0 f30-2) + ) + ((and *target* (nonzero? (-> obj map-bits))) + (set! (-> obj offset w) (fmin 0.5 (+ (-> obj offset w) f30-2))) + ) + (else + (set! (-> obj offset w) 0.0) + ) + ) + ) + (cond + ((and *target* (logtest? (focus-status board pilot) (-> *target* focus-status))) + (let ((f0-14 0.5) + (f1-2 0.000008138021) + (f2-0 122880.0) + (v1-33 (-> *target* control transv)) + ) + (set! (-> obj target-inv-scale) + (fmax f0-14 (* f1-2 (fmin f2-0 (sqrtf (+ (* (-> v1-33 x) (-> v1-33 x)) (* (-> v1-33 z) (-> v1-33 z))))))) + ) + ) + ) + (else + (set! (-> obj target-inv-scale) 0.5) + ) + ) + (seek! (-> obj offset y) (-> obj target-inv-scale) (* 0.5 f30-2)) + ) + (run-pending-updates! (-> obj engine) (-> *display* base-clock frame-counter)) + (when (and (-> obj ctywide) (and (= (-> obj ctywide status) 'active) (!= (-> obj offset w) 0.0))) + (update-trails obj) + (if *display-trail-graph* + (debug-draw obj) + ) + #t + ) + ) + ) + +;; WARN: Return type mismatch pointer vs none. +(defmethod draw-racer-2 minimap ((obj minimap) (arg0 minimap-draw-work) (arg1 connection-minimap)) + (local-vars + (sv-16 process) + (sv-20 dma-buffer) + (sv-208 pointer) + (sv-212 vector) + (sv-216 vector) + (sv-220 matrix) + (sv-224 matrix) + (sv-228 matrix) + ) + (let ((s3-0 (handle->process (-> arg1 handle)))) + (set! sv-16 (if (type? s3-0 process-drawable) + s3-0 + ) + ) + ) + (set! sv-20 (-> arg0 buf)) + (when (and sv-16 (nonzero? (-> (the-as process-drawable sv-16) root))) + (set! sv-208 (-> sv-20 base)) + (set! sv-212 (new 'stack-no-clear 'vector)) + (set! sv-216 (new 'stack-no-clear 'vector)) + (set! sv-220 (new 'stack-no-clear 'matrix)) + (set! sv-224 (new 'stack-no-clear 'matrix)) + (set! sv-228 (new 'stack-no-clear 'matrix)) + (set! (-> sv-216 quad) (-> (matrix-world->local #f #f) vector 2 quad)) + (set! (-> sv-216 y) 0.0) + (vector-normalize! sv-216 1.0) + (vector-z-quaternion! (the-as vector sv-220) (-> (the-as process-drawable sv-16) root quat)) + (vector-xz-normalize! (the-as vector sv-220) 1.0) + (set! (-> sv-220 vector 0 y) 0.0) + (set! (-> sv-220 vector 0 w) 0.0) + (vector-! sv-212 (target-pos 0) (-> (the-as process-drawable sv-16) root trans)) + (let ((f0-4 (/ (-> sv-212 x) (* 16384.0 (-> obj offset y)))) + (f1-3 (/ (-> sv-212 z) (* 16384.0 (-> obj offset y)))) + ) + (set-vector! (-> sv-224 vector 0) (-> sv-216 z) 0.0 (- (-> sv-216 x)) 0.0) + (set-vector! (-> sv-224 vector 1) 0.0 1.0 0.0 0.0) + (set-vector! (-> sv-224 vector 2) (-> sv-216 x) 0.0 (-> sv-216 z) 0.0) + (set-vector! (-> sv-224 trans) 164.0 0.0 164.0 1.0) + (set-vector! (-> sv-228 vector 0) (-> sv-220 vector 0 z) 0.0 (- (-> sv-220 vector 0 x)) 0.0) + (set-vector! (-> sv-228 vector 1) 0.0 1.0 0.0 0.0) + (set-vector! (-> sv-228 vector 2) (-> sv-220 vector 0 x) 0.0 (-> sv-220 vector 0 z) 0.0) + (set-vector! (-> sv-228 trans) f0-4 0.0 f1-3 1.0) + ) + (matrix*! sv-228 sv-228 sv-224) + (let ((f0-7 7.0)) + (set-vector! (-> arg0 corner 0) 0.0 0.0 (- f0-7) 1.0) + (set-vector! (-> arg0 corner 1) f0-7 0.0 0.0 1.0) + (set-vector! (-> arg0 corner 2) (- f0-7) 0.0 0.0 1.0) + (set-vector! (-> arg0 corner 3) 0.0 0.0 f0-7 1.0) + ) + (vector-matrix*! (the-as vector (-> arg0 corner)) (the-as vector (-> arg0 corner)) sv-228) + (vector-matrix*! (-> arg0 corner 1) (-> arg0 corner 1) sv-228) + (vector-matrix*! (-> arg0 corner 2) (-> arg0 corner 2) sv-228) + (vector-matrix*! (-> arg0 corner 3) (-> arg0 corner 3) sv-228) + (let* ((a0-38 (-> arg1 class color)) + (a0-45 (copy-and-set-field a0-38 r (shr (* (-> a0-38 r) (the-as uint (-> obj color x))) 7))) + (a0-52 (copy-and-set-field a0-45 g (shr (* (-> a0-45 g) (the-as uint (-> obj color y))) 7))) + (v1-57 + (copy-and-set-field + (copy-and-set-field a0-52 b (shr (* (-> a0-52 b) (the-as uint (-> obj color z))) 7)) + a + (the int (* 128.0 (-> arg1 alpha))) + ) + ) + ) + (let ((a0-64 (-> obj draw4-tmpl dma-vif quad))) + (set! (-> (the-as (pointer uint128) sv-208)) a0-64) + ) + (let ((a0-65 (-> obj draw4-tmpl quad 1))) + (set! (-> (the-as (pointer uint128) sv-208) 1) a0-65) + ) + (set-vector! + (-> (the-as (inline-array vector4w) sv-208) 2) + (the-as int (-> v1-57 r)) + (the-as int (-> v1-57 g)) + (the-as int (-> v1-57 b)) + (the-as int (-> v1-57 a)) + ) + ) + (set-vector! (-> (the-as (inline-array vector) sv-208) 3) 0.0 0.0 1.0 0.0) + (set-vector! + (-> (the-as (inline-array vector4w) sv-208) 4) + (the int (* 16.0 (-> arg0 corner 0 x))) + (the int (* 16.0 (-> arg0 corner 0 z))) + #xffffff + 0 + ) + (set-vector! (-> (the-as (inline-array vector) sv-208) 5) 1.0 0.0 1.0 0.0) + (set-vector! + (-> (the-as (inline-array vector4w) sv-208) 6) + (the int (* 16.0 (-> arg0 corner 1 x))) + (the int (* 16.0 (-> arg0 corner 1 z))) + #xffffff + 0 + ) + (set-vector! (-> (the-as (inline-array vector) sv-208) 7) 0.0 1.0 1.0 0.0) + (set-vector! + (-> (the-as (inline-array vector4w) sv-208) 8) + (the int (* 16.0 (-> arg0 corner 2 x))) + (the int (* 16.0 (-> arg0 corner 2 z))) + #xffffff + 0 + ) + (set-vector! (-> (the-as (inline-array vector) sv-208) 9) 1.0 1.0 1.0 0.0) + (set-vector! + (-> (the-as (inline-array vector4w) sv-208) 10) + (the int (* 16.0 (-> arg0 corner 3 x))) + (the int (* 16.0 (-> arg0 corner 3 z))) + #xffffff + 0 + ) + (&+! (-> sv-20 base) 176) + ) + (none) + ) + +;; WARN: Return type mismatch pointer vs none. +(defmethod draw-racer-1 minimap ((obj minimap) (arg0 minimap-draw-work) (arg1 connection-minimap) (arg2 float) (arg3 float) (arg4 float)) + (local-vars + (sv-16 process) + (sv-20 float) + (sv-24 dma-buffer) + (sv-128 pointer) + (sv-132 vector) + (sv-136 vector) + (sv-140 matrix) + ) + (let ((s0-0 (handle->process (-> arg1 handle)))) + (set! sv-16 (if (type? s0-0 process-drawable) + s0-0 + ) + ) + ) + (set! sv-20 (-> *video-params* relative-x-scale)) + (set! sv-24 (-> arg0 buf)) + (when (and sv-16 (nonzero? (-> (the-as process-drawable sv-16) root))) + (set! sv-128 (-> sv-24 base)) + (set! sv-132 (new 'stack-no-clear 'vector)) + (set! sv-136 (new 'stack-no-clear 'vector)) + (set! sv-140 (new 'stack-no-clear 'matrix)) + (vector-z-quaternion! sv-136 (-> (the-as process-drawable sv-16) root quat)) + (vector-xz-normalize! sv-136 -1.0) + (set! (-> sv-136 y) 0.0) + (set! (-> sv-136 w) 0.0) + (vector-! sv-132 (-> (the-as process-drawable sv-16) root trans) (-> obj race-corner)) + (cond + ((-> *blit-displays-work* horizontal-flip-flag) + (let ((f0-4 (+ arg3 (* (- 128.0 (/ (-> sv-132 x) arg2)) sv-20))) + (f1-4 (+ arg4 (/ (-> sv-132 z) arg2))) + ) + (set-vector! (-> sv-140 vector 0) (-> sv-136 z) 0.0 (-> sv-136 x) 0.0) + (set-vector! (-> sv-140 vector 1) 0.0 1.0 0.0 0.0) + (set-vector! (-> sv-140 vector 2) (- (-> sv-136 x)) 0.0 (-> sv-136 z) 0.0) + (set-vector! (-> sv-140 trans) f0-4 0.0 f1-4 1.0) + ) + ) + (else + (let ((f0-8 (+ arg3 (* (/ (-> sv-132 x) arg2) sv-20))) + (f1-9 (+ arg4 (/ (-> sv-132 z) arg2))) + ) + (set-vector! (-> sv-140 vector 0) (-> sv-136 z) 0.0 (- (-> sv-136 x)) 0.0) + (set-vector! (-> sv-140 vector 1) 0.0 1.0 0.0 0.0) + (set-vector! (-> sv-140 vector 2) (-> sv-136 x) 0.0 (-> sv-136 z) 0.0) + (set-vector! (-> sv-140 trans) f0-8 0.0 f1-9 1.0) + ) + ) + ) + (let ((f0-11 7.0)) + (set-vector! (-> arg0 corner 0) 0.0 0.0 (- f0-11) 1.0) + (set-vector! (-> arg0 corner 1) f0-11 0.0 0.0 1.0) + (set-vector! (-> arg0 corner 2) (- f0-11) 0.0 0.0 1.0) + (set-vector! (-> arg0 corner 3) 0.0 0.0 f0-11 1.0) + ) + (vector-matrix*! (the-as vector (-> arg0 corner)) (the-as vector (-> arg0 corner)) sv-140) + (vector-matrix*! (-> arg0 corner 1) (-> arg0 corner 1) sv-140) + (vector-matrix*! (-> arg0 corner 2) (-> arg0 corner 2) sv-140) + (vector-matrix*! (-> arg0 corner 3) (-> arg0 corner 3) sv-140) + (let* ((a0-32 (-> arg1 class color)) + (a0-39 (copy-and-set-field a0-32 r (shr (* (-> a0-32 r) (the-as uint (-> obj color x))) 7))) + (a0-46 (copy-and-set-field a0-39 g (shr (* (-> a0-39 g) (the-as uint (-> obj color y))) 7))) + (v1-59 + (copy-and-set-field + (copy-and-set-field a0-46 b (shr (* (-> a0-46 b) (the-as uint (-> obj color z))) 7)) + a + (the int (* 128.0 (-> arg1 alpha))) + ) + ) + ) + (let ((a0-58 (-> obj draw4-tmpl dma-vif quad))) + (set! (-> (the-as (pointer uint128) sv-128)) a0-58) + ) + (let ((a0-59 (-> obj draw4-tmpl quad 1))) + (set! (-> (the-as (pointer uint128) sv-128) 1) a0-59) + ) + (set-vector! + (-> (the-as (inline-array vector4w) sv-128) 2) + (the-as int (-> v1-59 r)) + (the-as int (-> v1-59 g)) + (the-as int (-> v1-59 b)) + (the-as int (-> v1-59 a)) + ) + ) + (set-vector! (-> (the-as (inline-array vector) sv-128) 3) 0.0 0.0 1.0 0.0) + (set-vector! + (-> (the-as (inline-array vector4w) sv-128) 4) + (the int (* 16.0 (-> arg0 corner 0 x))) + (the int (* 16.0 (-> arg0 corner 0 z))) + #xffffff + 0 + ) + (set-vector! (-> (the-as (inline-array vector) sv-128) 5) 1.0 0.0 1.0 0.0) + (set-vector! + (-> (the-as (inline-array vector4w) sv-128) 6) + (the int (* 16.0 (-> arg0 corner 1 x))) + (the int (* 16.0 (-> arg0 corner 1 z))) + #xffffff + 0 + ) + (set-vector! (-> (the-as (inline-array vector) sv-128) 7) 0.0 1.0 1.0 0.0) + (set-vector! + (-> (the-as (inline-array vector4w) sv-128) 8) + (the int (* 16.0 (-> arg0 corner 2 x))) + (the int (* 16.0 (-> arg0 corner 2 z))) + #xffffff + 0 + ) + (set-vector! (-> (the-as (inline-array vector) sv-128) 9) 1.0 1.0 1.0 0.0) + (set-vector! + (-> (the-as (inline-array vector4w) sv-128) 10) + (the int (* 16.0 (-> arg0 corner 3 x))) + (the int (* 16.0 (-> arg0 corner 3 z))) + #xffffff + 0 + ) + (&+! (-> sv-24 base) 176) + ) + (none) + ) + +;; WARN: Return type mismatch pointer vs none. +(defmethod draw-frustum-1 minimap ((obj minimap) (arg0 minimap-draw-work) (arg1 connection-minimap)) + (local-vars + (sv-16 process) + (sv-20 dma-buffer) + (sv-208 pointer) + (sv-212 texture) + (sv-216 vector) + (sv-220 vector) + (sv-224 matrix) + (sv-228 matrix) + (sv-232 matrix) + ) + (rlet ((vf1 :class vf) + (vf2 :class vf) + (vf3 :class vf) + (vf4 :class vf) + (vf5 :class vf) + ) + (let ((s3-0 (handle->process (-> arg1 handle)))) + (set! sv-16 (if (type? s3-0 process-drawable) + s3-0 + ) + ) + ) + (set! sv-20 (-> arg0 buf)) + (when (and sv-16 (nonzero? (-> (the-as process-drawable sv-16) root))) + (set! sv-208 (-> sv-20 base)) + (set! sv-212 (lookup-texture-by-id-fast (new 'static 'texture-id :index #x9 :page #x679))) + (set! sv-216 (new 'stack-no-clear 'vector)) + (set! sv-220 (new 'stack-no-clear 'vector)) + (set! sv-224 (new 'stack-no-clear 'matrix)) + (set! sv-228 (new 'stack-no-clear 'matrix)) + (set! sv-232 (new 'stack-no-clear 'matrix)) + (when sv-212 + (set! (-> sv-220 quad) (-> (matrix-world->local #f #f) vector 2 quad)) + (set! (-> sv-220 y) 0.0) + (vector-normalize! sv-220 1.0) + (vector-z-quaternion! (the-as vector sv-224) (-> (the-as process-drawable sv-16) root quat)) + (vector-xz-normalize! (the-as vector sv-224) 1.0) + (set! (-> sv-224 vector 0 y) 0.0) + (set! (-> sv-224 vector 0 w) 0.0) + (vector-! sv-216 (target-pos 0) (-> (the-as process-drawable sv-16) root trans)) + (let ((f0-4 (/ (-> sv-216 x) (* 16384.0 (-> obj offset y)))) + (f1-3 (/ (-> sv-216 z) (* 16384.0 (-> obj offset y)))) + ) + (set-vector! (-> sv-228 vector 0) (-> sv-220 z) 0.0 (- (-> sv-220 x)) 0.0) + (set-vector! (-> sv-228 vector 1) 0.0 1.0 0.0 0.0) + (set-vector! (-> sv-228 vector 2) (-> sv-220 x) 0.0 (-> sv-220 z) 0.0) + (set-vector! (-> sv-228 trans) 164.0 0.0 164.0 1.0) + (set-vector! (-> sv-232 vector 0) (-> sv-224 vector 0 z) 0.0 (- (-> sv-224 vector 0 x)) 0.0) + (set-vector! (-> sv-232 vector 1) 0.0 1.0 0.0 0.0) + (set-vector! (-> sv-232 vector 2) (-> sv-224 vector 0 x) 0.0 (-> sv-224 vector 0 z) 0.0) + (set-vector! (-> sv-232 trans) f0-4 0.0 f1-3 1.0) + ) + (matrix*! sv-232 sv-232 sv-228) + (let ((f0-8 (/ -10.0 (-> obj offset y)))) + (set-vector! (-> arg0 corner 0) 0.0 0.0 0.0 1.0) + (set-vector! (-> arg0 corner 1) (- f0-8) 0.0 f0-8 1.0) + (set-vector! (-> arg0 corner 2) f0-8 0.0 f0-8 1.0) + (set-vector! (-> arg0 corner 3) 0.0 0.0 (* 2.0 f0-8) 1.0) + ) + (vector-matrix*! (the-as vector (-> arg0 corner)) (the-as vector (-> arg0 corner)) sv-232) + (vector-matrix*! (-> arg0 corner 1) (-> arg0 corner 1) sv-232) + (vector-matrix*! (-> arg0 corner 2) (-> arg0 corner 2) sv-232) + (vector-matrix*! (-> arg0 corner 3) (-> arg0 corner 3) sv-232) + (let ((a0-40 (new 'stack-no-clear 'vector)) + (v1-49 (new 'stack-no-clear 'vector)) + ) + (.lvf vf1 (&-> arg0 corner 0 quad)) + (.lvf vf2 (&-> arg0 corner 1 quad)) + (.lvf vf3 (&-> arg0 corner 2 quad)) + (.lvf vf4 (&-> arg0 corner 3 quad)) + (.min.vf vf5 vf1 vf2) + (.min.vf vf5 vf5 vf3) + (.min.vf vf5 vf5 vf4) + (.max.vf vf5 vf1 vf2) + (.max.vf vf5 vf5 vf3) + (.max.vf vf5 vf5 vf4) + (.svf (&-> a0-40 quad) vf5) + (.svf (&-> v1-49 quad) vf5) + (when (and (< (-> a0-40 x) 228.0) (< (-> a0-40 z) 228.0) (< 100.0 (-> v1-49 x)) (< 100.0 (-> v1-49 z))) + (let* ((a0-46 (-> arg1 class color)) + (a0-53 (copy-and-set-field a0-46 r (shr (* (-> a0-46 r) (the-as uint (-> obj color x))) 7))) + (a0-60 (copy-and-set-field a0-53 g (shr (* (-> a0-53 g) (the-as uint (-> obj color y))) 7))) + (s4-1 + (copy-and-set-field + (copy-and-set-field a0-60 b (shr (* (-> a0-60 b) (the-as uint (-> obj color z))) 7)) + a + (the int (* 128.0 (-> obj frustum-alpha) (-> arg1 alpha))) + ) + ) + ) + (let ((v1-60 (-> obj adgif-tmpl dma-vif quad))) + (set! (-> (the-as (pointer uint128) sv-208)) v1-60) + ) + (let ((v1-61 (-> obj adgif-tmpl quad 1))) + (set! (-> (the-as (pointer uint128) sv-208) 1) v1-61) + ) + (adgif-shader<-texture-simple! (the-as adgif-shader (&+ sv-208 32)) sv-212) + (let ((v1-63 (-> obj draw4-tmpl dma-vif quad))) + (set! (-> (the-as (pointer uint128) sv-208) 7) v1-63) + ) + (let ((v1-64 (-> obj draw4-tmpl quad 1))) + (set! (-> (the-as (pointer uint128) sv-208) 8) v1-64) + ) + (set-vector! + (-> (the-as (inline-array vector4w) sv-208) 9) + (the-as int (-> s4-1 r)) + (the-as int (-> s4-1 g)) + (the-as int (-> s4-1 b)) + (the-as int (-> s4-1 a)) + ) + ) + (set-vector! (-> (the-as (inline-array vector) sv-208) 10) 0.0 0.0 1.0 0.0) + (set-vector! + (-> (the-as (inline-array vector4w) sv-208) 11) + (the int (* 16.0 (-> arg0 corner 0 x))) + (the int (* 16.0 (-> arg0 corner 0 z))) + 0 + 0 + ) + (set-vector! (-> (the-as (inline-array vector) sv-208) 12) 1.0 0.0 1.0 0.0) + (set-vector! + (-> (the-as (inline-array vector4w) sv-208) 13) + (the int (* 16.0 (-> arg0 corner 1 x))) + (the int (* 16.0 (-> arg0 corner 1 z))) + 0 + 0 + ) + (set-vector! (-> (the-as (inline-array vector) sv-208) 14) 0.0 1.0 1.0 0.0) + (set-vector! + (-> (the-as (inline-array vector4w) sv-208) 15) + (the int (* 16.0 (-> arg0 corner 2 x))) + (the int (* 16.0 (-> arg0 corner 2 z))) + 0 + 0 + ) + (set-vector! (-> (the-as (inline-array vector) sv-208) 16) 1.0 1.0 1.0 0.0) + (set-vector! + (-> (the-as (inline-array vector4w) sv-208) 17) + (the int (* 16.0 (-> arg0 corner 3 x))) + (the int (* 16.0 (-> arg0 corner 3 z))) + 0 + 0 + ) + (&+! (-> sv-20 base) 288) + ) + ) + ) + ) + (none) + ) + ) + +;; WARN: Return type mismatch pointer vs none. +(defmethod draw-frustum-2 minimap ((obj minimap) (arg0 minimap-draw-work) (arg1 connection-minimap)) + (local-vars + (sv-16 process) + (sv-20 dma-buffer) + (sv-208 pointer) + (sv-212 texture) + (sv-216 vector) + (sv-220 vector) + (sv-224 matrix) + (sv-228 matrix) + (sv-232 matrix) + ) + (let ((s3-0 (handle->process (-> arg1 handle)))) + (set! sv-16 (if (type? s3-0 process-drawable) + s3-0 + ) + ) + ) + (set! sv-20 (-> arg0 buf)) + (when (and sv-16 (nonzero? (-> (the-as process-drawable sv-16) root))) + (set! sv-208 (-> sv-20 base)) + (set! sv-212 (lookup-texture-by-id-fast (new 'static 'texture-id :index #x9 :page #x679))) + (set! sv-216 (new 'stack-no-clear 'vector)) + (set! sv-220 (new 'stack-no-clear 'vector)) + (set! sv-224 (new 'stack-no-clear 'matrix)) + (set! sv-228 (new 'stack-no-clear 'matrix)) + (set! sv-232 (new 'stack-no-clear 'matrix)) + (when sv-212 + (set! (-> sv-220 quad) (-> (matrix-world->local #f #f) vector 2 quad)) + (set! (-> sv-220 y) 0.0) + (vector-normalize! sv-220 1.0) + (vector-z-quaternion! (the-as vector sv-224) (-> (the-as process-drawable sv-16) root quat)) + (vector-xz-normalize! (the-as vector sv-224) 1.0) + (set! (-> sv-224 vector 0 y) 0.0) + (set! (-> sv-224 vector 0 w) 0.0) + (vector-! sv-216 (target-pos 0) (-> (the-as process-drawable sv-16) root trans)) + (let ((f0-4 (/ (-> sv-216 x) (* 16384.0 (-> obj offset y)))) + (f1-3 (/ (-> sv-216 z) (* 16384.0 (-> obj offset y)))) + ) + (set-vector! (-> sv-228 vector 0) (-> sv-220 z) 0.0 (- (-> sv-220 x)) 0.0) + (set-vector! (-> sv-228 vector 1) 0.0 1.0 0.0 0.0) + (set-vector! (-> sv-228 vector 2) (-> sv-220 x) 0.0 (-> sv-220 z) 0.0) + (set-vector! (-> sv-228 trans) 164.0 0.0 164.0 1.0) + (set-vector! (-> sv-232 vector 0) (-> sv-224 vector 0 z) 0.0 (- (-> sv-224 vector 0 x)) 0.0) + (set-vector! (-> sv-232 vector 1) 0.0 1.0 0.0 0.0) + (set-vector! (-> sv-232 vector 2) (-> sv-224 vector 0 x) 0.0 (-> sv-224 vector 0 z) 0.0) + (set-vector! (-> sv-232 trans) f0-4 0.0 f1-3 1.0) + ) + (matrix*! sv-232 sv-232 sv-228) + (let ((f0-7 12.0)) + (set-vector! (-> arg0 corner 0) (- f0-7) 0.0 0.0 1.0) + (set-vector! (-> arg0 corner 1) 0.0 0.0 f0-7 1.0) + (set-vector! (-> arg0 corner 2) 0.0 0.0 (- f0-7) 1.0) + (set-vector! (-> arg0 corner 3) f0-7 0.0 0.0 1.0) + ) + (vector-matrix*! (the-as vector (-> arg0 corner)) (the-as vector (-> arg0 corner)) sv-232) + (vector-matrix*! (-> arg0 corner 1) (-> arg0 corner 1) sv-232) + (vector-matrix*! (-> arg0 corner 2) (-> arg0 corner 2) sv-232) + (vector-matrix*! (-> arg0 corner 3) (-> arg0 corner 3) sv-232) + (let* ((a3-0 (-> arg1 class color)) + (a2-6 (+ (* (the-as uint 320) (-> arg1 class icon-xy x)) 8)) + (a1-12 (+ (* (the-as uint 320) (-> arg1 class icon-xy y)) 8)) + (v1-54 (+ a2-6 304)) + (a0-43 (+ a1-12 304)) + ) + (let* ((t0-2 (copy-and-set-field a3-0 r (shr (* (-> a3-0 r) (the-as uint (-> obj color x))) 7))) + (t0-9 (copy-and-set-field t0-2 g (shr (* (-> t0-2 g) (the-as uint (-> obj color y))) 7))) + (a3-13 + (copy-and-set-field + (copy-and-set-field t0-9 b (shr (* (-> t0-9 b) (the-as uint (-> obj color z))) 7)) + a + (the int (* 128.0 (-> arg1 alpha))) + ) + ) + ) + (let ((t0-21 (-> obj draw3-tmpl dma-vif quad))) + (set! (-> (the-as (pointer uint128) sv-208)) t0-21) + ) + (let ((t0-22 (-> obj draw3-tmpl quad 1))) + (set! (-> (the-as (pointer uint128) sv-208) 1) t0-22) + ) + (set-vector! + (-> (the-as (inline-array vector4w) sv-208) 2) + (the-as int (-> a3-13 r)) + (the-as int (-> a3-13 g)) + (the-as int (-> a3-13 b)) + (the-as int (-> a3-13 a)) + ) + ) + (set-vector! (-> (the-as (inline-array vector4w) sv-208) 3) (the-as int a2-6) (the-as int a1-12) 0 0) + (set-vector! + (-> (the-as (inline-array vector4w) sv-208) 4) + (the int (* 16.0 (-> arg0 corner 0 x))) + (the int (* 16.0 (-> arg0 corner 0 z))) + 0 + 0 + ) + (set-vector! (-> (the-as (inline-array vector4w) sv-208) 5) (the-as int a2-6) (the-as int a0-43) 0 0) + (set-vector! + (-> (the-as (inline-array vector4w) sv-208) 6) + (the int (* 16.0 (-> arg0 corner 1 x))) + (the int (* 16.0 (-> arg0 corner 1 z))) + 0 + 0 + ) + (set-vector! (-> (the-as (inline-array vector4w) sv-208) 7) (the-as int v1-54) (the-as int a1-12) 0 0) + (set-vector! + (-> (the-as (inline-array vector4w) sv-208) 8) + (the int (* 16.0 (-> arg0 corner 2 x))) + (the int (* 16.0 (-> arg0 corner 2 z))) + 0 + 0 + ) + (set-vector! (-> (the-as (inline-array vector4w) sv-208) 9) (the-as int v1-54) (the-as int a0-43) 0 0) + ) + (set-vector! + (-> (the-as (inline-array vector4w) sv-208) 10) + (the int (* 16.0 (-> arg0 corner 3 x))) + (the int (* 16.0 (-> arg0 corner 3 z))) + 0 + 0 + ) + (&+! (-> sv-20 base) 176) + ) + ) + (none) + ) + +(defmethod sub-draw-1-1 minimap ((obj minimap) (arg0 minimap-draw-work)) + (with-pp + (let ((s5-0 (-> arg0 buf))) + (set-display-gs-state s5-0 (the-as int (-> *map-texture-base* vram-page)) 128 128 0 0) + (let ((s3-0 (-> s5-0 base))) + (set! (-> (the-as (pointer uint128) s3-0)) (-> obj adgif-tmpl dma-vif quad)) + (set! (-> (the-as (pointer uint128) s3-0) 1) (-> obj adgif-tmpl quad 1)) + (let ((a1-2 (-> obj last-tex))) + (if (not a1-2) + (set! a1-2 (lookup-texture-by-id-fast (new 'static 'texture-id :index #x9b :page #xb))) + ) + (adgif-shader<-texture-simple! (the-as adgif-shader (&+ s3-0 32)) (the-as texture a1-2)) + ) + ) + (&+! (-> s5-0 base) 112) + (let* ((v1-8 s5-0) + (a0-4 (the-as dma-packet (-> v1-8 base))) + ) + (set! (-> a0-4 dma) (new 'static 'dma-tag :qwc #x4 :id (dma-tag-id cnt))) + (set! (-> a0-4 vif0) (new 'static 'vif-tag)) + (set! (-> a0-4 vif1) (new 'static 'vif-tag :imm #x4 :cmd (vif-cmd direct) :msk #x1)) + (set! (-> v1-8 base) (the-as pointer (&+ a0-4 16))) + ) + (let* ((v1-9 s5-0) + (a0-6 (the-as gs-gif-tag (-> v1-9 base))) + ) + (set! (-> a0-6 tag) (new 'static 'gif-tag64 :nloop #x1 :eop #x1 :nreg #x3)) + (set! (-> a0-6 regs) GIF_REGS_ALL_AD) + (set! (-> v1-9 base) (the-as pointer (&+ a0-6 16))) + ) + (let* ((v1-10 s5-0) + (a0-8 (-> v1-10 base)) + ) + (set! (-> (the-as (pointer gs-clamp) a0-8) 0) (new 'static 'gs-clamp)) + (set! (-> (the-as (pointer gs-reg64) a0-8) 1) (gs-reg64 clamp-1)) + (set! (-> (the-as (pointer gs-test) a0-8) 2) + (new 'static 'gs-test :ate #x1 :afail #x1 :zte #x1 :ztst (gs-ztest always)) + ) + (set! (-> (the-as (pointer gs-reg64) a0-8) 3) (gs-reg64 test-1)) + (set! (-> (the-as (pointer gs-texa) a0-8) 4) (new 'static 'gs-texa :ta1 #x80)) + (set! (-> (the-as (pointer gs-reg64) a0-8) 5) (gs-reg64 texa)) + (set! (-> v1-10 base) (&+ a0-8 48)) + ) + (let ((s3-1 (the-as object (-> s5-0 base)))) + (let ((f30-0 (-> *video-params* relative-x-scale))) + (set! (-> (the-as (pointer uint128) s3-1)) (-> obj draw2-tmpl dma-vif quad)) + (set! (-> (the-as (pointer uint128) s3-1) 1) (-> obj draw2-tmpl quad 1)) + (let ((s2-0 (new-stack-vector0))) + (let ((s1-0 (new-stack-vector0))) + (let ((s0-0 s1-0) + (t9-3 matrix-local->world) + (a0-10 #f) + ) + (set! (-> s0-0 quad) (-> (t9-3 a0-10) vector 2 quad)) + ) + (set! (-> s1-0 y) 0.0) + (vector-normalize! s1-0 1.0) + (let ((v1-16 (-> arg0 mat))) + (set! (-> v1-16 vector 0 x) (* (-> s1-0 z) f30-0)) + (set! (-> v1-16 vector 0 y) 0.0) + (set! (-> v1-16 vector 0 z) (- (-> s1-0 x))) + (set! (-> v1-16 vector 0 w) 0.0) + ) + (set-vector! (-> arg0 mat vector 1) 0.0 1.0 0.0 0.0) + (set-vector! (-> arg0 mat vector 2) (* (-> s1-0 x) f30-0) 0.0 (-> s1-0 z) 0.0) + ) + (vector-! s2-0 (target-pos 0) (-> obj minimap-corner)) + (set! (-> s2-0 x) (* 0.00000023841858 (-> s2-0 x))) + (set! (-> s2-0 z) (* 0.00000023841858 (-> s2-0 z))) + (vector+! (-> arg0 mat trans) s2-0 (-> obj offset)) + ) + ) + (set! (-> arg0 mat trans y) 0.0) + (set! (-> arg0 corner 0 x) (* 0.25 (-> obj offset y))) + (set! (-> arg0 corner 0 z) (* 0.25 (-> obj offset y))) + (set! (-> arg0 corner 0 w) 1.0) + (set! (-> arg0 corner 1 x) (* -0.25 (-> obj offset y))) + (set! (-> arg0 corner 1 z) (* 0.25 (-> obj offset y))) + (set! (-> arg0 corner 1 w) 1.0) + (set! (-> arg0 corner 2 x) (* 0.25 (-> obj offset y))) + (set! (-> arg0 corner 2 z) (* -0.25 (-> obj offset y))) + (set! (-> arg0 corner 2 w) 1.0) + (set! (-> arg0 corner 3 x) (* -0.25 (-> obj offset y))) + (set! (-> arg0 corner 3 z) (* -0.25 (-> obj offset y))) + (set! (-> arg0 corner 3 w) 1.0) + (vector-matrix*! (the-as vector (-> arg0 corner)) (the-as vector (-> arg0 corner)) (-> arg0 mat)) + (vector-matrix*! (-> arg0 corner 1) (-> arg0 corner 1) (-> arg0 mat)) + (vector-matrix*! (-> arg0 corner 2) (-> arg0 corner 2) (-> arg0 mat)) + (vector-matrix*! (-> arg0 corner 3) (-> arg0 corner 3) (-> arg0 mat)) + (set-vector! (-> (the-as (inline-array vector4w) s3-1) 2) 128 128 128 128) + (set-vector! (-> (the-as (inline-array vector) s3-1) 3) (-> arg0 corner 0 x) (-> arg0 corner 0 z) 1.0 1.0) + (set-vector! (-> (the-as (inline-array vector4w) s3-1) 4) 0 0 #xffffff 0) + (set-vector! (-> (the-as (inline-array vector) s3-1) 5) (-> arg0 corner 1 x) (-> arg0 corner 1 z) 1.0 1.0) + (set-vector! (-> (the-as (inline-array vector4w) s3-1) 6) 2048 0 #xffffff 0) + (set-vector! (-> (the-as (inline-array vector) s3-1) 7) (-> arg0 corner 2 x) (-> arg0 corner 2 z) 1.0 1.0) + (set-vector! (-> (the-as (inline-array vector4w) s3-1) 8) 0 2048 #xffffff 0) + (set-vector! (-> (the-as (inline-array vector) s3-1) 9) (-> arg0 corner 3 x) (-> arg0 corner 3 z) 1.0 1.0) + (set-vector! (-> (the-as (inline-array vector4w) s3-1) 10) 2048 2048 #xffffff 0) + ) + (&+! (-> s5-0 base) 176) + (let ((f0-57 1.0)) + (when *target* + (if (logtest? (focus-status pilot) (-> *target* focus-status)) + (set! f0-57 0.0) + ) + ) + (seek! (-> obj frustum-alpha) f0-57 (-> pp clock seconds-per-frame)) + ) + (let* ((v1-55 s5-0) + (a0-44 (the-as dma-packet (-> v1-55 base))) + ) + (set! (-> a0-44 dma) (new 'static 'dma-tag :qwc #x2 :id (dma-tag-id cnt))) + (set! (-> a0-44 vif0) (new 'static 'vif-tag)) + (set! (-> a0-44 vif1) (new 'static 'vif-tag :imm #x2 :cmd (vif-cmd direct) :msk #x1)) + (set! (-> v1-55 base) (the-as pointer (&+ a0-44 16))) + ) + (let* ((v1-56 s5-0) + (a0-46 (the-as gs-gif-tag (-> v1-56 base))) + ) + (set! (-> a0-46 tag) (new 'static 'gif-tag64 :nloop #x1 :eop #x1 :nreg #x1)) + (set! (-> a0-46 regs) GIF_REGS_ALL_AD) + (set! (-> v1-56 base) (the-as pointer (&+ a0-46 16))) + ) + (let* ((v1-57 s5-0) + (a0-48 (-> v1-57 base)) + ) + (set! (-> (the-as (pointer gs-xy-offset) a0-48) 0) (new 'static 'gs-xy-offset :ofx #x640 :ofy #x640)) + (set! (-> (the-as (pointer gs-reg64) a0-48) 1) (gs-reg64 xyoffset-1)) + (set! (-> v1-57 base) (&+ a0-48 16)) + ) + (when (!= (-> obj frustum-alpha) 0.0) + (let ((s3-2 (the-as connection-pers (-> *minimap* engine alive-list-override)))) + (while s3-2 + (let ((a2-6 s3-2)) + (if (logtest? (-> (the-as connection-minimap a2-6) class flags) (minimap-flag frustum)) + (draw-frustum-1 obj arg0 (the-as connection-minimap a2-6)) + ) + ) + (set! s3-2 (-> s3-2 next)) + ) + ) + ) + (let ((s2-1 (-> arg0 buf base)) + (s3-3 (lookup-texture-by-id-fast (new 'static 'texture-id :page #x679))) + ) + (when s3-3 + (set! (-> (the-as (pointer uint128) s2-1)) (-> obj adgif-tmpl dma-vif quad)) + (set! (-> (the-as (pointer uint128) s2-1) 1) (-> obj adgif-tmpl quad 1)) + (adgif-shader<-texture-simple! (the-as adgif-shader (&+ s2-1 32)) s3-3) + (&+! (-> arg0 buf base) 112) + ) + (if (not s3-3) + (format *stdcon* "minimap: mini-map-icons texture is #f~%") + ) + ) + (let ((s3-4 (the-as connection-pers (-> *minimap* engine alive-list-override)))) + (while s3-4 + (let ((a2-7 s3-4)) + (if (logtest? (-> (the-as connection-minimap a2-7) class flags) (minimap-flag frustum)) + (draw-frustum-2 obj arg0 (the-as connection-minimap a2-7)) + ) + ) + (set! s3-4 (-> s3-4 next)) + ) + ) + (let ((s3-5 (-> arg0 buf base)) + (a1-32 (lookup-texture-by-id-fast (new 'static 'texture-id :index #x42 :page #xb))) + ) + (when a1-32 + (set! (-> (the-as (pointer uint128) s3-5)) (-> obj adgif-tmpl dma-vif quad)) + (set! (-> (the-as (pointer uint128) s3-5) 1) (-> obj adgif-tmpl quad 1)) + (adgif-shader<-texture-simple! (the-as adgif-shader (&+ s3-5 32)) a1-32) + (&+! (-> arg0 buf base) 112) + ) + ) + (let ((s3-6 (the-as connection-pers (-> *minimap* engine alive-list-override)))) + (while s3-6 + (let ((a2-8 s3-6)) + (if (logtest? (-> (the-as connection-minimap a2-8) class flags) (minimap-flag racer)) + (draw-racer-2 obj arg0 (the-as connection-minimap a2-8)) + ) + ) + (set! s3-6 (-> s3-6 next)) + ) + ) + (let* ((v1-105 s5-0) + (a0-60 (the-as dma-packet (-> v1-105 base))) + ) + (set! (-> a0-60 dma) (new 'static 'dma-tag :qwc #x4 :id (dma-tag-id cnt))) + (set! (-> a0-60 vif0) (new 'static 'vif-tag)) + (set! (-> a0-60 vif1) (new 'static 'vif-tag :imm #x4 :cmd (vif-cmd direct) :msk #x1)) + (set! (-> v1-105 base) (the-as pointer (&+ a0-60 16))) + ) + (let* ((v1-106 s5-0) + (a0-62 (the-as gs-gif-tag (-> v1-106 base))) + ) + (set! (-> a0-62 tag) (new 'static 'gif-tag64 :nloop #x1 :eop #x1 :nreg #x3)) + (set! (-> a0-62 regs) GIF_REGS_ALL_AD) + (set! (-> v1-106 base) (the-as pointer (&+ a0-62 16))) + ) + (let* ((v1-107 s5-0) + (a0-64 (-> v1-107 base)) + ) + (set! (-> (the-as (pointer gs-frame) a0-64) 0) + (new 'static 'gs-frame :fbw #x2 :fbmsk #xffffff :fbp (-> *map-texture-base* vram-page)) + ) + (set! (-> (the-as (pointer gs-reg64) a0-64) 1) (gs-reg64 frame-1)) + (set! (-> (the-as (pointer gs-alpha) a0-64) 2) (new 'static 'gs-alpha :b #x1 :d #x1)) + (set! (-> (the-as (pointer gs-reg64) a0-64) 3) (gs-reg64 alpha-1)) + (set! (-> (the-as (pointer gs-xy-offset) a0-64) 4) (new 'static 'gs-xy-offset)) + (set! (-> (the-as (pointer gs-reg64) a0-64) 5) (gs-reg64 xyoffset-1)) + (set! (-> v1-107 base) (&+ a0-64 48)) + ) + (let ((s3-7 (the-as object (-> s5-0 base)))) + (set! (-> (the-as (pointer uint128) s3-7)) (-> obj adgif-tmpl dma-vif quad)) + (set! (-> (the-as (pointer uint128) s3-7) 1) (-> obj adgif-tmpl quad 1)) + (adgif-shader<-texture-simple! + (the-as adgif-shader (&-> (the-as (pointer uint128) s3-7) 2)) + (lookup-texture-by-id-fast (new 'static 'texture-id :index #x2a :page #x67a)) + ) + (set! (-> (the-as (pointer uint128) s3-7) 7) (-> obj sprite-tmpl dma-vif quad)) + (set! (-> (the-as (pointer uint128) s3-7) 8) (-> obj sprite-tmpl quad 1)) + (set-vector! (-> (the-as (inline-array vector4w) s3-7) 9) 128 128 128 128) + (set-vector! (-> (the-as (inline-array vector4w) s3-7) 10) 0 0 0 0) + (set-vector! (-> (the-as (inline-array vector4w) s3-7) 11) 0 0 #xffffff 0) + (set-vector! (-> (the-as (inline-array vector4w) s3-7) 12) 1024 1024 0 0) + (set-vector! (-> (the-as (inline-array vector4w) s3-7) 13) 2048 2048 #xffffff 0) + ) + (&+! (-> s5-0 base) 224) + (set! (-> arg0 buf) s5-0) + ) + 0 + (none) + ) + ) + +(defmethod sub-draw-1-2 minimap ((obj minimap) (arg0 minimap-draw-work)) + (local-vars (a3-4 int) (t0-4 int) (sv-48 vector) (sv-52 matrix) (sv-56 vector)) + (let ((s5-0 (-> arg0 buf))) + (reset-display-gs-state *display* s5-0) + (let* ((v1-0 s5-0) + (a0-2 (the-as dma-packet (-> v1-0 base))) + ) + (set! (-> a0-2 dma) (new 'static 'dma-tag :qwc #x7 :id (dma-tag-id cnt))) + (set! (-> a0-2 vif0) (new 'static 'vif-tag)) + (set! (-> a0-2 vif1) (new 'static 'vif-tag :imm #x7 :cmd (vif-cmd direct) :msk #x1)) + (set! (-> v1-0 base) (the-as pointer (&+ a0-2 16))) + ) + (let* ((v1-1 s5-0) + (a0-4 (the-as gs-gif-tag (-> v1-1 base))) + ) + (set! (-> a0-4 tag) (new 'static 'gif-tag64 :nloop #x1 :eop #x1 :nreg #x6)) + (set! (-> a0-4 regs) GIF_REGS_ALL_AD) + (set! (-> v1-1 base) (the-as pointer (&+ a0-4 16))) + ) + (let* ((s3-0 s5-0) + (s2-0 (-> s3-0 base)) + ) + (set! (-> (the-as (pointer gs-test) s2-0) 0) (new 'static 'gs-test :zte #x1 :ztst (gs-ztest greater-equal))) + (set! (-> (the-as (pointer gs-reg64) s2-0) 1) (gs-reg64 test-1)) + (set! (-> (the-as (pointer gs-alpha) s2-0) 2) (new 'static 'gs-alpha :b #x1 :d #x1)) + (set! (-> (the-as (pointer gs-reg64) s2-0) 3) (gs-reg64 alpha-1)) + (set! (-> (the-as (pointer gs-tex0) s2-0) 4) + (new 'static 'gs-tex0 + :tbw #x2 + :tcc #x1 + :th (log2 128) + :tw (log2 128) + :tbp0 (-> *map-texture-base* vram-block) + ) + ) + (set! (-> (the-as (pointer gs-reg64) s2-0) 5) (gs-reg64 tex0-1)) + (set! (-> (the-as (pointer gs-tex1) s2-0) 6) (new 'static 'gs-tex1 :mmag #x1 :mmin #x1)) + (set! (-> (the-as (pointer gs-reg64) s2-0) 7) (gs-reg64 tex1-1)) + (set! (-> (the-as (pointer gs-clamp) s2-0) 8) + (new 'static 'gs-clamp :wms (gs-tex-wrap-mode clamp) :wmt (gs-tex-wrap-mode clamp)) + ) + (set! (-> (the-as (pointer gs-reg64) s2-0) 9) (gs-reg64 clamp-1)) + (set! (-> (the-as (pointer uint64) s2-0) 10) (the-as uint 0)) + (set! (-> (the-as (pointer gs-reg64) s2-0) 11) (gs-reg64 texflush)) + (set! (-> s3-0 base) (&+ s2-0 96)) + ) + (let ((f30-0 (-> *video-params* relative-x-scale))) + (let ((v1-20 (the-as object (-> s5-0 base))) + (t0-0 (the int (* 112.0 f30-0))) + ) + 0 + 0 + (let ((a2-0 (* (+ (-> arg0 draw-pos y) 1840) 16)) + (a0-19 (* (+ (-> arg0 draw-pos y) 1952) 16)) + (a1-7 (-> arg0 draw-pos z)) + ) + (cond + ((-> arg0 justify-right) + (set! a3-4 (* (+ (- 1792 t0-0) (-> arg0 draw-pos x)) 16)) + (set! t0-4 (* (+ (-> arg0 draw-pos x) 1792) 16)) + ) + (else + (set! a3-4 (* (+ (-> arg0 draw-pos x) 1792) 16)) + (set! t0-4 (* (+ t0-0 1792 (-> arg0 draw-pos x)) 16)) + ) + ) + (set! (-> (the-as (pointer uint128) v1-20)) (-> obj sprite-tmpl dma-vif quad)) + (set! (-> (the-as (pointer uint128) v1-20) 1) (-> obj sprite-tmpl quad 1)) + (let ((t1-5 (-> obj color quad))) + (set! (-> (the-as (pointer uint128) (&+ (the-as pointer v1-20) 32))) t1-5) + ) + (cond + ((-> *blit-displays-work* horizontal-flip-flag) + (set-vector! (-> (the-as (inline-array vector4w) v1-20) 3) 0 0 0 0) + (set-vector! (-> (the-as (inline-array vector4w) v1-20) 4) t0-4 a2-0 a1-7 0) + (set-vector! (-> (the-as (inline-array vector4w) v1-20) 5) 2048 2048 0 0) + (let ((v1-21 (the-as (inline-array vector4w) (-> (the-as (inline-array vector4w) v1-20) 6)))) + (set! (-> v1-21 0 x) a3-4) + (set! (-> v1-21 0 y) a0-19) + (set! (-> v1-21 0 z) a1-7) + (set! (-> v1-21 0 w) 0) + ) + ) + (else + (set-vector! (-> (the-as (inline-array vector4w) v1-20) 3) 0 0 0 0) + (set-vector! (-> (the-as (inline-array vector4w) v1-20) 4) a3-4 a2-0 a1-7 0) + (set-vector! (-> (the-as (inline-array vector4w) v1-20) 5) 2048 2048 0 0) + (set-vector! (-> (the-as (inline-array vector4w) v1-20) 6) t0-4 a0-19 a1-7 0) + ) + ) + ) + ) + (&+! (-> s5-0 base) 112) + (let* ((v1-25 s5-0) + (a0-20 (the-as dma-packet (-> v1-25 base))) + ) + (set! (-> a0-20 dma) (new 'static 'dma-tag :qwc #x2 :id (dma-tag-id cnt))) + (set! (-> a0-20 vif0) (new 'static 'vif-tag)) + (set! (-> a0-20 vif1) (new 'static 'vif-tag :imm #x2 :cmd (vif-cmd direct) :msk #x1)) + (set! (-> v1-25 base) (the-as pointer (&+ a0-20 16))) + ) + (let* ((v1-26 s5-0) + (a0-22 (the-as gs-gif-tag (-> v1-26 base))) + ) + (set! (-> a0-22 tag) (new 'static 'gif-tag64 :nloop #x1 :eop #x1 :nreg #x1)) + (set! (-> a0-22 regs) GIF_REGS_ALL_AD) + (set! (-> v1-26 base) (the-as pointer (&+ a0-22 16))) + ) + (let* ((v1-27 s5-0) + (a0-24 (-> v1-27 base)) + ) + (set! (-> (the-as (pointer gs-test) a0-24) 0) + (new 'static 'gs-test :ate #x1 :atst (gs-atest greater) :zte #x1 :ztst (gs-ztest always)) + ) + (set! (-> (the-as (pointer gs-reg64) a0-24) 1) (gs-reg64 test-1)) + (set! (-> v1-27 base) (&+ a0-24 16)) + ) + (set! sv-48 (new-stack-vector0)) + (let ((v1-29 (new 'stack-no-clear 'matrix))) + (set! (-> v1-29 quad 0) (the-as uint128 0)) + (set! sv-52 v1-29) + ) + (set! sv-56 (target-pos 0)) + (set! (-> sv-52 quad 0) (-> (matrix-world->local #f #f) vector 2 quad)) + (set! (-> sv-52 vector 0 y) 0.0) + (vector-normalize! (the-as vector sv-52) 1.0) + (cond + ((-> *blit-displays-work* horizontal-flip-flag) + (let ((v1-35 (-> arg0 mat))) + (set! (-> v1-35 vector 0 x) (* (-> sv-52 vector 0 z) (- f30-0))) + (set! (-> v1-35 vector 0 y) 0.0) + (set! (-> v1-35 vector 0 z) (- (-> sv-52 vector 0 x))) + (set! (-> v1-35 vector 0 w) 0.0) + ) + (set-vector! (-> arg0 mat vector 1) 0.0 1.0 0.0 0.0) + (set-vector! (-> arg0 mat vector 2) (* (-> sv-52 vector 0 x) (- f30-0)) 0.0 (-> sv-52 vector 0 z) 0.0) + (set-vector! (-> arg0 mat trans) 0.0 0.0 (the float (+ (-> arg0 draw-pos y) 1896)) 1.0) + ) + (else + (let ((v1-39 (-> arg0 mat))) + (set! (-> v1-39 vector 0 x) (* (-> sv-52 vector 0 z) f30-0)) + (set! (-> v1-39 vector 0 y) 0.0) + (set! (-> v1-39 vector 0 z) (- (-> sv-52 vector 0 x))) + (set! (-> v1-39 vector 0 w) 0.0) + ) + (set-vector! (-> arg0 mat vector 1) 0.0 1.0 0.0 0.0) + (set-vector! (-> arg0 mat vector 2) (* (-> sv-52 vector 0 x) f30-0) 0.0 (-> sv-52 vector 0 z) 0.0) + (set-vector! (-> arg0 mat trans) 0.0 0.0 (the float (+ (-> arg0 draw-pos y) 1896)) 1.0) + ) + ) + (let ((v1-44 (the int (* 56.0 f30-0)))) + (if (-> arg0 justify-right) + (set! (-> arg0 mat trans x) (the float (+ (- 1792 v1-44) (-> arg0 draw-pos x)))) + (set! (-> arg0 mat trans x) (the float (+ v1-44 1792 (-> arg0 draw-pos x)))) + ) + ) + (when *target* + (vector-z-quaternion! (the-as vector sv-52) (-> *target* control quat)) + (vector-xz-normalize! (the-as vector sv-52) 1.0) + (set! (-> sv-52 vector 0 y) 0.0) + (set! (-> sv-52 vector 0 w) 0.0) + (vector-matrix*! (the-as vector sv-52) (the-as vector sv-52) (-> arg0 mat)) + (let ((s3-2 (the-as object (-> s5-0 base))) + (s2-1 (lookup-texture-by-id-fast (new 'static 'texture-id :index #x42 :page #xb))) + (s1-2 (new 'stack-no-clear 'matrix)) + (v1-57 (the int (* 56.0 f30-0))) + ) + (when s2-1 + (set-vector! (-> s1-2 vector 0) (* (-> sv-52 vector 0 z) f30-0) 0.0 (- (-> sv-52 vector 0 x)) 0.0) + (set-vector! (-> s1-2 vector 1) 0.0 1.0 0.0 0.0) + (set-vector! (-> s1-2 vector 2) (* (-> sv-52 vector 0 x) f30-0) 0.0 (-> sv-52 vector 0 z) 1.0) + (set-vector! (-> s1-2 trans) 0.0 0.0 (the float (+ (-> arg0 draw-pos y) 1896)) 1.0) + (if (-> arg0 justify-right) + (set! (-> s1-2 trans x) (the float (+ (- 1792 v1-57) (-> arg0 draw-pos x)))) + (set! (-> s1-2 trans x) (the float (+ v1-57 1792 (-> arg0 draw-pos x)))) + ) + (let ((f0-80 7.0)) + (set-vector! (-> arg0 corner 0) 0.0 0.0 (- f0-80) 1.0) + (set-vector! (-> arg0 corner 1) f0-80 0.0 0.0 1.0) + (set-vector! (-> arg0 corner 2) (- f0-80) 0.0 0.0 1.0) + (set-vector! (-> arg0 corner 3) 0.0 0.0 f0-80 1.0) + ) + (vector-matrix*! (the-as vector (-> arg0 corner)) (the-as vector (-> arg0 corner)) s1-2) + (vector-matrix*! (-> arg0 corner 1) (-> arg0 corner 1) s1-2) + (vector-matrix*! (-> arg0 corner 2) (-> arg0 corner 2) s1-2) + (vector-matrix*! (-> arg0 corner 3) (-> arg0 corner 3) s1-2) + (set! (-> (the-as (pointer uint128) s3-2)) (-> obj adgif-tmpl dma-vif quad)) + (set! (-> (the-as (pointer uint128) s3-2) 1) (-> obj adgif-tmpl quad 1)) + (adgif-shader<-texture-simple! (the-as adgif-shader (&-> (the-as (pointer uint128) s3-2) 2)) s2-1) + (set! (-> (the-as (pointer uint128) s3-2) 7) (-> obj draw-tmpl dma-vif quad)) + (set! (-> (the-as (pointer uint128) s3-2) 8) (-> obj draw-tmpl quad 1)) + (set-vector! (-> (the-as (inline-array vector4w) s3-2) 9) 0 255 255 128) + (set-vector! (-> (the-as (inline-array vector4w) s3-2) 10) 0 0 #xffffff 0) + (set-vector! + (-> (the-as (inline-array vector4w) s3-2) 11) + (the int (* 16.0 (-> arg0 corner 0 x))) + (the int (* 16.0 (-> arg0 corner 0 z))) + 0 + 0 + ) + (set-vector! (-> (the-as (inline-array vector4w) s3-2) 12) 256 0 #xffffff 0) + (set-vector! + (-> (the-as (inline-array vector4w) s3-2) 13) + (the int (* 16.0 (-> arg0 corner 1 x))) + (the int (* 16.0 (-> arg0 corner 1 z))) + 0 + 0 + ) + (set-vector! (-> (the-as (inline-array vector4w) s3-2) 14) 0 256 #xffffff 0) + (set-vector! + (-> (the-as (inline-array vector4w) s3-2) 15) + (the int (* 16.0 (-> arg0 corner 2 x))) + (the int (* 16.0 (-> arg0 corner 2 z))) + 0 + 0 + ) + (set-vector! (-> (the-as (inline-array vector4w) s3-2) 16) 256 256 #xffffff 0) + (set-vector! + (-> (the-as (inline-array vector4w) s3-2) 17) + (the int (* 16.0 (-> arg0 corner 3 x))) + (the int (* 16.0 (-> arg0 corner 3 z))) + 0 + 0 + ) + (&+! (-> s5-0 base) 288) + ) + ) + ) + ) + (set! (-> arg0 buf) s5-0) + ) + 0 + (none) + ) + +;; WARN: Return type mismatch pointer vs none. +(defmethod draw-connection minimap ((obj minimap) (arg0 minimap-draw-work) (arg1 connection-minimap)) + (with-pp + (let ((s1-0 (target-pos 0))) + (cond + ((= (-> arg1 position) #t) + (let* ((s3-0 (handle->process (-> arg1 handle))) + (v1-4 (if (type? s3-0 process-drawable) + s3-0 + ) + ) + ) + (when (and v1-4 (nonzero? (-> (the-as process-drawable v1-4) root))) + (set! (-> arg1 last-world-pos quad) (-> (the-as process-drawable v1-4) root trans quad)) + (vector-! (-> arg1 last-relative-pos) s1-0 (-> arg1 last-world-pos)) + ) + ) + ) + ((and (= (logand (the-as int (-> arg1 position)) 7) 4) + (= (-> (the-as basic (-> arg1 position)) type) entity-actor) + ) + (let* ((v1-15 (-> arg1 position)) + (s3-1 (if v1-15 + (-> (the-as entity-actor v1-15) extra process) + ) + ) + (a0-16 (if (type? s3-1 process-drawable) + s3-1 + ) + ) + ) + (cond + (a0-16 + (set! (-> arg1 last-world-pos quad) (-> (the-as process-drawable a0-16) root trans quad)) + (vector-! (-> arg1 last-relative-pos) s1-0 (-> arg1 last-world-pos)) + ) + (else + (set! (-> arg1 last-world-pos quad) (-> (the-as entity-actor (-> arg1 position)) extra trans quad)) + (vector-! (-> arg1 last-relative-pos) s1-0 (-> arg1 last-world-pos)) + ) + ) + ) + ) + (else + (set! (-> arg1 last-world-pos quad) (-> (the-as vector (-> arg1 position)) quad)) + (vector-! (-> arg1 last-relative-pos) s1-0 (-> arg1 last-world-pos)) + ) + ) + (let ((s3-2 (new 'stack-no-clear 'vector)) + (s2-0 #f) + ) + (let ((f30-0 (/ 1.0 (* 16384.0 (-> obj offset y))))) + 0.0 + (set! (-> s3-2 quad) (-> arg1 last-relative-pos quad)) + (set! (-> s3-2 x) (* (-> s3-2 x) f30-0)) + (set! (-> s3-2 z) (* (-> s3-2 z) f30-0)) + (set! (-> s3-2 y) 0.0) + (set! (-> s3-2 w) 1.0) + (let* ((v1-29 s3-2) + (f28-0 (sqrtf (+ (* (-> v1-29 x) (-> v1-29 x)) (* (-> v1-29 z) (-> v1-29 z))))) + ) + (cond + ((logtest? (-> arg1 class flags) (minimap-flag trail)) + (cond + (*trail-graph* + (let ((a2-2 (get-trail-for-connection obj arg1 #f))) + (cond + ((not a2-2) + (when (!= (-> arg1 alpha) 0.0) + (when (not (get-trail-for-connection obj arg1 #t)) + (let ((s2-1 (the-as connection-pers (-> *minimap* engine alive-list-override)))) + (while s2-1 + (let ((a1-12 s2-1)) + (if (and (= (the-as float (-> a1-12 param 1)) 0.0) (logtest? (-> arg1 class flags) (minimap-flag trail))) + (free-trail-by-connection *minimap* (the-as connection-minimap a1-12)) + ) + ) + (set! s2-1 (-> s2-1 next)) + ) + ) + ) + ) + (set! s2-0 #t) + (set! (-> arg1 edge-ry) -131072.0) + ) + ((>= (- (-> pp clock frame-counter) (the-as int (-> a2-2 last-updated))) (seconds 5)) + (set! s2-0 #t) + (set! (-> arg1 edge-ry) -131072.0) + ) + ((< 50.0 f28-0) + (let ((s0-0 (new 'stack-no-clear 'vector))) + (set! (-> s0-0 quad) (-> s3-2 quad)) + (let ((s1-1 (get-icon-draw-pos *minimap* arg1 a2-2 s1-0 f30-0 s3-2))) + (if (not s1-1) + (vector-normalize-copy! s3-2 s0-0 66.0) + ) + (let ((f30-1 (atan (-> s3-2 x) (-> s3-2 z)))) + (let ((f28-1 (-> arg1 edge-ry))) + (when (!= f28-1 -131072.0) + (let* ((f0-20 (deg- f30-1 f28-1)) + (f1-7 (fabs f0-20)) + (f2-3 (* 16384.0 (-> pp clock seconds-per-frame))) + ) + (when (< f2-3 f1-7) + (set! f30-1 (+ f28-1 (if (>= f0-20 0.0) + f2-3 + (- f2-3) + ) + ) + ) + (set-vector! s3-2 (sin f30-1) 0.0 (cos f30-1) 1.0) + (vector-normalize! s3-2 (if s1-1 + 50.0 + 66.0 + ) + ) + ) + ) + ) + ) + (set! (-> arg1 edge-ry) f30-1) + ) + ) + ) + ) + (else + (set! (-> arg1 edge-ry) (atan (-> s3-2 x) (-> s3-2 z))) + ) + ) + ) + ) + (else + (set! s2-0 #t) + (set! (-> arg1 edge-ry) -131072.0) + ) + ) + ) + ((logtest? (-> arg1 class flags) (minimap-flag clamp)) + (cond + ((< 50.0 f28-0) + (let ((a1-19 (new 'stack-no-clear 'vector))) + (set! (-> a1-19 quad) (-> s3-2 quad)) + (vector-normalize-copy! s3-2 a1-19 54.0) + ) + (let ((f30-2 (atan (-> s3-2 x) (-> s3-2 z)))) + (let ((f28-2 (-> arg1 edge-ry))) + (when (!= f28-2 -131072.0) + (let* ((f0-35 (deg- f30-2 f28-2)) + (f1-9 (fabs f0-35)) + (f2-5 (* 16384.0 (-> pp clock seconds-per-frame))) + ) + (when (< f2-5 f1-9) + (set! f30-2 (+ f28-2 (if (>= f0-35 0.0) + f2-5 + (- f2-5) + ) + ) + ) + (set-vector! s3-2 (sin f30-2) 0.0 (cos f30-2) 1.0) + (vector-normalize! s3-2 54.0) + ) + ) + ) + ) + (set! (-> arg1 edge-ry) f30-2) + ) + ) + (else + (set! (-> arg1 edge-ry) (atan (-> s3-2 x) (-> s3-2 z))) + ) + ) + ) + (else + (if (< 50.0 f28-0) + (set! s2-0 #t) + ) + ) + ) + ) + ) + (if (or (logtest? (-> arg1 class flags) (minimap-flag frustum)) + (logtest? (-> arg1 class flags) (minimap-flag racer)) + (and (logtest? (-> arg1 class flags) (minimap-flag flash)) + (< (the-as int (logand (-> *display* base-clock integral-frame-counter) 15)) 8) + ) + ) + (set! s2-0 #t) + ) + (if (logtest? (-> arg1 class flags) (minimap-flag goal)) + (set! (-> arg1 class icon-xy x) (the-as uint (mod (the int (-> obj goal-time)) 6))) + ) + (when (not s2-0) + (vector-matrix*! s3-2 s3-2 (-> arg0 mat)) + (let ((v1-115 (the-as object (-> arg0 buf base)))) + (let* ((f0-48 (-> arg1 class scale)) + (a1-25 (-> arg1 class color)) + (a1-32 (copy-and-set-field a1-25 r (shr (* (-> a1-25 r) (the-as uint (-> obj color x))) 7))) + (a1-39 (copy-and-set-field a1-32 g (shr (* (-> a1-32 g) (the-as uint (-> obj color y))) 7))) + (a0-70 + (copy-and-set-field + (copy-and-set-field a1-39 b (shr (* (-> a1-39 b) (the-as uint (-> obj color z))) 7)) + a + (the int (* 128.0 (-> arg1 alpha))) + ) + ) + ) + (let ((f1-16 (* 20.0 (-> *video-params* relative-x-scale) f0-48)) + (f0-49 (* 20.0 f0-48)) + ) + (set! (-> arg0 corner 0 x) (the float (the int (- (-> s3-2 x) (* 0.5 f1-16))))) + (set! (-> arg0 corner 0 z) (the float (the int (- (-> s3-2 z) (* 0.5 f0-49))))) + (set! (-> arg0 corner 1 x) (+ (-> arg0 corner 0 x) f1-16)) + (set! (-> arg0 corner 1 z) (+ (-> arg0 corner 0 z) f0-49)) + ) + (let* ((a3-1 (+ (* (the-as uint 320) (-> arg1 class icon-xy x)) 8)) + (t0-1 (+ (* (the-as uint 320) (-> arg1 class icon-xy y)) 8)) + (a1-61 (+ a3-1 312)) + (a2-14 (+ t0-1 312)) + ) + (set! (-> (the-as (pointer uint128) v1-115)) (-> obj sprite-tmpl dma-vif quad)) + (set! (-> (the-as (pointer uint128) v1-115) 1) (-> obj sprite-tmpl quad 1)) + (set-vector! + (-> (the-as (inline-array vector4w) v1-115) 2) + (the-as int (-> a0-70 r)) + (the-as int (-> a0-70 g)) + (the-as int (-> a0-70 b)) + (the-as int (-> a0-70 a)) + ) + (set-vector! (-> (the-as (inline-array vector4w) v1-115) 3) (the-as int a3-1) (the-as int t0-1) 0 0) + (set-vector! + (-> (the-as (inline-array vector4w) v1-115) 4) + (the int (* 16.0 (-> arg0 corner 0 x))) + (the int (* 16.0 (-> arg0 corner 0 z))) + #xffffff + 0 + ) + (set-vector! (-> (the-as (inline-array vector4w) v1-115) 5) (the-as int a1-61) (the-as int a2-14) 0 0) + ) + ) + (set-vector! + (-> (the-as (inline-array vector4w) v1-115) 6) + (the int (* 16.0 (-> arg0 corner 1 x))) + (the int (* 16.0 (-> arg0 corner 1 z))) + #xffffff + 0 + ) + ) + (&+! (-> arg0 buf base) 112) + ) + ) + ) + (none) + ) + ) + +(defmethod draw-1 minimap ((obj minimap) (arg0 dma-buffer) (arg1 vector4w) (arg2 symbol)) + (local-vars (v1-19 uint128)) + (with-pp + (when (= (level-status *level* 'ctywide) 'active) + (let ((s5-1 (new 'stack-no-clear 'minimap-draw-work))) + (set! (-> s5-1 buf) arg0) + (set! (-> s5-1 draw-pos quad) (-> arg1 quad)) + (set! (-> s5-1 justify-right) arg2) + (sub-draw-1-1 obj s5-1) + (sub-draw-1-2 obj s5-1) + (set! (-> obj ctywide) (level-get *level* 'ctywide)) + (let ((s2-1 (-> s5-1 buf base)) + (s4-1 (lookup-texture-by-id-fast (new 'static 'texture-id :page #x679))) + ) + (let ((s3-1 (-> obj ctywide texture-mask 8))) + (when s4-1 + (set! (-> (the-as (pointer uint128) s2-1)) (-> obj adgif-tmpl dma-vif quad)) + (set! (-> (the-as (pointer uint128) s2-1) 1) (-> obj adgif-tmpl quad 1)) + (adgif-shader<-texture-simple! (the-as adgif-shader (&+ s2-1 32)) s4-1) + (&+! (-> s5-1 buf base) 112) + (let ((v1-18 (-> s3-1 mask quad)) + (a0-8 (-> s4-1 masks data 0 mask quad)) + ) + (.por v1-19 v1-18 a0-8) + ) + (set! (-> s3-1 mask quad) v1-19) + ) + ) + (if (not s4-1) + (format *stdcon* "minimap: mini-map-icons texture is #f~%") + ) + ) + (let ((s4-2 (the-as connection-pers (-> *minimap* engine alive-list-override)))) + (while s4-2 + (let ((a2-1 s4-2)) + (draw-connection obj s5-1 (the-as connection-minimap a2-1)) + ) + (set! s4-2 (-> s4-2 next)) + ) + ) + (if (not (paused?)) + (+! (-> obj goal-time) (* 14.0 (-> pp clock seconds-per-frame))) + ) + (reset-display-gs-state *display* (-> s5-1 buf)) + ) + ) + 0 + (none) + ) + ) + +(defmethod draw-sprite2 minimap ((obj minimap) (arg0 dma-buffer) (arg1 vector4w) (arg2 symbol)) + (local-vars (v1-24 uint128) (a0-8 uint128) (a3-5 int) (t0-4 int)) + (when (-> obj race-tex) + (let ((s5-0 (new 'stack-no-clear 'minimap-draw-work))) + (set! (-> s5-0 buf) arg0) + (set! (-> s5-0 draw-pos quad) (-> arg1 quad)) + (set! (-> s5-0 justify-right) arg2) + (let ((v1-4 (-> s5-0 buf base)) + (s3-0 (-> obj race-tex)) + (s2-0 (-> obj race-level texture-mask 8)) + ) + (when s3-0 + (set! (-> (the-as (pointer uint128) v1-4)) (-> obj adgif-tmpl dma-vif quad)) + (set! (-> (the-as (pointer uint128) v1-4) 1) (-> obj adgif-tmpl quad 1)) + (adgif-shader<-texture-simple! (the-as adgif-shader (&+ v1-4 32)) s3-0) + (&+! (-> s5-0 buf base) 112) + (let ((v1-8 (-> s2-0 mask quad)) + (a0-7 (-> s3-0 masks data 0 mask quad)) + ) + (.por a0-8 v1-8 a0-7) + ) + (set! (-> s2-0 mask quad) a0-8) + ) + ) + (let* ((f0-0 (-> *video-params* relative-x-scale)) + (v1-10 (the-as object (-> arg0 base))) + (t0-0 (the int (* 128.0 f0-0))) + ) + 0 + 0 + (let ((a2-1 (* (+ (-> s5-0 draw-pos y) 1840) 16)) + (a0-16 (* (+ (-> s5-0 draw-pos y) 1968) 16)) + (a1-2 (-> s5-0 draw-pos z)) + ) + (cond + ((-> s5-0 justify-right) + (set! a3-5 (* (+ (- 1792 t0-0) (-> s5-0 draw-pos x)) 16)) + (set! t0-4 (* (+ (-> s5-0 draw-pos x) 1792) 16)) + ) + (else + (set! a3-5 (* (+ (-> s5-0 draw-pos x) 1792) 16)) + (set! t0-4 (* (+ t0-0 1792 (-> s5-0 draw-pos x)) 16)) + ) + ) + (set! (-> s5-0 draw-pos x) a3-5) + (set! (-> s5-0 draw-pos y) a2-1) + (set! (-> (the-as (pointer uint128) v1-10)) (-> obj sprite2-tmpl dma-vif quad)) + (set! (-> (the-as (pointer uint128) v1-10) 1) (-> obj sprite2-tmpl quad 1)) + (let ((t1-5 (-> obj color quad))) + (set! (-> (the-as (pointer uint128) (&+ (the-as pointer v1-10) 32))) t1-5) + ) + (cond + ((-> *blit-displays-work* horizontal-flip-flag) + (set-vector! (-> (the-as (inline-array vector) v1-10) 3) 0.0 0.0 1.0 0.0) + (set-vector! (-> (the-as (inline-array vector4w) v1-10) 4) t0-4 a2-1 a1-2 0) + (set-vector! (-> (the-as (inline-array vector) v1-10) 5) 1.0 1.0 1.0 0.0) + (set-vector! (-> (the-as (inline-array vector4w) v1-10) 6) a3-5 a0-16 a1-2 0) + ) + (else + (set-vector! (-> (the-as (inline-array vector) v1-10) 3) 0.0 0.0 1.0 0.0) + (set-vector! (-> (the-as (inline-array vector4w) v1-10) 4) a3-5 a2-1 a1-2 0) + (set-vector! (-> (the-as (inline-array vector) v1-10) 5) 1.0 1.0 1.0 0.0) + (set-vector! (-> (the-as (inline-array vector4w) v1-10) 6) t0-4 a0-16 a1-2 0) + ) + ) + ) + ) + (&+! (-> arg0 base) 112) + (let ((s2-1 (-> s5-0 buf base)) + (s4-1 (lookup-texture-by-id-fast (new 'static 'texture-id :index #x42 :page #xb))) + (s3-1 (-> obj ctywide texture-mask 8)) + ) + (when s4-1 + (set! (-> (the-as (pointer uint128) s2-1)) (-> obj adgif-tmpl dma-vif quad)) + (set! (-> (the-as (pointer uint128) s2-1) 1) (-> obj adgif-tmpl quad 1)) + (adgif-shader<-texture-simple! (the-as adgif-shader (&+ s2-1 32)) s4-1) + (&+! (-> s5-0 buf base) 112) + (let ((v1-23 (-> s3-1 mask quad)) + (a0-20 (-> s4-1 masks data 0 mask quad)) + ) + (.por v1-24 v1-23 a0-20) + ) + (set! (-> s3-1 mask quad) v1-24) + ) + ) + (let ((f30-0 (the float (/ (-> s5-0 draw-pos x) 16))) + (f28-0 (the float (/ (-> s5-0 draw-pos y) 16))) + (s4-2 (the-as connection-pers #f)) + ) + (let ((s3-2 (the-as connection-pers (-> *minimap* engine alive-list-override)))) + (while s3-2 + (let ((s2-2 s3-2)) + (when (logtest? (-> (the-as connection-minimap s2-2) class flags) (minimap-flag racer)) + (if (string= (the-as string (-> (the-as connection-minimap s2-2) class name)) "racer-target") + (set! s4-2 s2-2) + (draw-racer-1 obj s5-0 (the-as connection-minimap s2-2) (-> obj race-scale) f30-0 f28-0) + ) + ) + ) + (set! s3-2 (-> s3-2 next)) + ) + ) + (if s4-2 + (draw-racer-1 obj s5-0 (the-as connection-minimap s4-2) (-> obj race-scale) f30-0 f28-0) + ) + ) + ) + ) + 0 + (none) + ) + +(defmethod set-race-texture minimap ((obj minimap) (arg0 texture) (arg1 float) (arg2 level)) + (set! (-> obj race-tex) arg0) + (set! (-> obj race-scale) arg1) + (set! (-> obj race-level) arg2) + 0 + (none) + ) + +(defmethod set-race-corner minimap ((obj minimap) (arg0 float) (arg1 float)) + (set! (-> obj race-corner x) arg0) + (set! (-> obj race-corner z) arg1) + 0 + (none) + ) + +(defmethod set-color minimap ((obj minimap) (arg0 vector)) + (set! (-> obj color quad) (-> arg0 quad)) + 0 + (none) + ) diff --git a/goal_src/jak2/levels/city/common/trail-graph.gc b/goal_src/jak2/levels/city/common/trail-graph.gc index 72c39388a6..f06b25cf2a 100644 --- a/goal_src/jak2/levels/city/common/trail-graph.gc +++ b/goal_src/jak2/levels/city/common/trail-graph.gc @@ -7,3 +7,5218 @@ ;; DECOMP BEGINS +(define *trail-graph* + (new 'static 'trail-graph + :node-count #x297 + :conn-count #x317 + :node (new 'static 'inline-array trail-node 663 + (new 'static 'trail-node :x #x47d :z 88 :conn-count #x1) + (new 'static 'trail-node :next-id #x100 :z #x47b :first-conn #x1b :cost-from-start #x1) + (new 'static 'trail-node :x #x46e :z 16 :first-conn #x3 :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z #x45e :first-conn #x17 :cost-from-start #x5) + (new 'static 'trail-node :x #x454 :z 42 :first-conn #x7 :conn-count #x3) + (new 'static 'trail-node :next-id #x300 :z #x41d :first-conn #x7f :cost-from-start #xa) + (new 'static 'trail-node :x #x404 :z #x8e :first-conn #xf :conn-count #x4) + (new 'static 'trail-node :next-id #x400 :z #x404 :first-conn #xbb :cost-from-start #x13) + (new 'static 'trail-node :x #x413 :z #xbc :first-conn #x17 :conn-count #x5) + (new 'static 'trail-node :next-id #x500 :z #x443 :first-conn #xb2 :cost-from-start #x1c) + (new 'static 'trail-node :x #x445 :z #x8b :first-conn #x20 :conn-count #x3) + (new 'static 'trail-node :next-id #x300 :z #x430 :first-conn #x7b :cost-from-start #x23) + (new 'static 'trail-node :x #x42d :z #xbc :first-conn #x25 :conn-count #x4) + (new 'static 'trail-node :next-id #x400 :z #x44f :first-conn #xc0 :cost-from-start #x29) + (new 'static 'trail-node :x #x472 :z #xeb :first-conn #x2e :conn-count #x3) + (new 'static 'trail-node :next-id #x300 :z #x472 :first-conn #xb7 :cost-from-start #x31) + (new 'static 'trail-node :x #x473 :z #x96 :first-conn #x34 :conn-count #x1) + (new 'static 'trail-node :next-id #x100 :z #x473 :first-conn #x114 :cost-from-start #x35) + (new 'static 'trail-node :x #x46e :z #x126 :first-conn #x37 :conn-count #x3) + (new 'static 'trail-node :next-id #x300 :z #x446 :first-conn #x163 :cost-from-start #x3a) + (new 'static 'trail-node :x #x41a :z #x13f :first-conn #x3d :conn-count #x3) + (new 'static 'trail-node :next-id #x300 :z #x3ec :first-conn #x15d :cost-from-start #x40) + (new 'static 'trail-node :x #x391 :z #x15d :first-conn #x42 :conn-count #x3) + (new 'static 'trail-node :next-id #x300 :z #x37f :first-conn #x148 :cost-from-start #x45) + (new 'static 'trail-node :x #x387 :z #x12c :first-conn #x48 :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z #x3d5 :first-conn #x127 :cost-from-start #x4a) + (new 'static 'trail-node :x #x3e3 :z #x119 :first-conn #x4c :conn-count #x3) + (new 'static 'trail-node :next-id #x300 :z #x3df :first-conn #xf8 :cost-from-start #x4f) + (new 'static 'trail-node :x #x416 :z #xee :first-conn #x53 :conn-count #x3) + (new 'static 'trail-node :next-id #x300 :z #x42a :first-conn #xd6 :cost-from-start #x56) + (new 'static 'trail-node :x #x374 :z #x162 :first-conn #x5b :conn-count #x3) + (new 'static 'trail-node :next-id #x300 :z #x359 :first-conn #x15e :cost-from-start #x5e) + (new 'static 'trail-node :x #x344 :z #x140 :first-conn #x61 :conn-count #x3) + (new 'static 'trail-node :next-id #x300 :z #x350 :first-conn #x111 :cost-from-start #x64) + (new 'static 'trail-node :x #x384 :z #xe8 :first-conn #x67 :conn-count #x3) + (new 'static 'trail-node :next-id #x300 :z #x3a9 :first-conn #xee :cost-from-start #x6a) + (new 'static 'trail-node :x #x3cd :z #xf4 :first-conn #x6c :conn-count #x3) + (new 'static 'trail-node :next-id #x300 :z #x3d9 :first-conn #xd8 :cost-from-start #x6f) + (new 'static 'trail-node :x #x3e4 :z #xc0 :first-conn #x74 :conn-count #x4) + (new 'static 'trail-node :next-id #x400 :z #x32c :first-conn #x15b :cost-from-start #x78) + (new 'static 'trail-node :x #x308 :z #x156 :first-conn #x7b :conn-count #x3) + (new 'static 'trail-node :next-id #x300 :z #x331 :first-conn #xc2 :cost-from-start #x7e) + (new 'static 'trail-node :x #x354 :z #xc9 :first-conn #x80 :conn-count #x3) + (new 'static 'trail-node :next-id #x300 :z #x316 :first-conn #xca :cost-from-start #x83) + (new 'static 'trail-node :x #x3d2 :z #x95 :first-conn #x86 :conn-count #x4) + (new 'static 'trail-node :next-id #x400 :z #x3a7 :first-conn #x9b :cost-from-start #x8a) + (new 'static 'trail-node :x #x368 :z #x75 :first-conn #x8e :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z #x326 :first-conn #xc :cost-from-start #x90) + (new 'static 'trail-node :x #x335 :z 58 :first-conn #x92 :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z #x31a :first-conn #xffe7 :cost-from-start #x94) + (new 'static 'trail-node :x #x2e1 :z -81 :first-conn #x96 :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z #x44b :first-conn #x199 :cost-from-start #x98) + (new 'static 'trail-node :x #x464 :z #x1c8 :first-conn #x9c :conn-count #x3) + (new 'static 'trail-node :next-id #x300 :z #x46a :first-conn #x1f8 :cost-from-start #x9f) + (new 'static 'trail-node :x #x3e0 :z #x1bf :first-conn #xa0 :conn-count #x5) + (new 'static 'trail-node :next-id #x500 :z #x3c7 :first-conn #x1d9 :cost-from-start #xa5) + (new 'static 'trail-node :x #x389 :z #x1e1 :first-conn #xa8 :conn-count #x4) + (new 'static 'trail-node :next-id #x400 :z #x387 :first-conn #x1a2 :cost-from-start #xac) + (new 'static 'trail-node :x #x381 :z #x21c :first-conn #xaf :conn-count #x3) + (new 'static 'trail-node :next-id #x300 :z #x391 :first-conn #x236 :cost-from-start #xb2) + (new 'static 'trail-node :x #x3bc :z #x23d :first-conn #xb6 :conn-count #x4) + (new 'static 'trail-node :next-id #x400 :z #x3d0 :first-conn #x1f7 :cost-from-start #xba) + (new 'static 'trail-node :x #x410 :z #x200 :first-conn #xbe :conn-count #x4) + (new 'static 'trail-node :next-id #x400 :z #x425 :first-conn #x23a :cost-from-start #xc2) + (new 'static 'trail-node :x #x453 :z #x23e :first-conn #xc6 :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z #x468 :first-conn #x24f :cost-from-start #xc8) + (new 'static 'trail-node :x #x468 :z #x290 :first-conn #xca :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z #x463 :first-conn #x2be :cost-from-start #xcc) + (new 'static 'trail-node :x #x435 :z #x2be :first-conn #xce :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z #x449 :first-conn #x29d :cost-from-start #xd0) + (new 'static 'trail-node :x #x42e :z #x28c :first-conn #xd2 :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z #x41a :first-conn #x279 :cost-from-start #xd4) + (new 'static 'trail-node :x #x3d7 :z #x27a :first-conn #xd6 :conn-count #x3) + (new 'static 'trail-node :next-id #x300 :z #x3a0 :first-conn #x27b :cost-from-start #xd9) + (new 'static 'trail-node :x #x363 :z #x27e :first-conn #xdc :conn-count #x3) + (new 'static 'trail-node :next-id #x300 :z #x35b :first-conn #x2dd :cost-from-start #xdf) + (new 'static 'trail-node :x #x312 :z #x2d5 :first-conn #xe3 :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z #x312 :first-conn #x27d :cost-from-start #xe5) + (new 'static 'trail-node :x #x344 :z #x214 :first-conn #xe7 :conn-count #x3) + (new 'static 'trail-node :next-id #x300 :z #x319 :first-conn #x232 :cost-from-start #xea) + (new 'static 'trail-node :x #x32f :z #x1f7 :first-conn #xec :conn-count #x3) + (new 'static 'trail-node :next-id #x300 :z #x32c :first-conn #x1c7 :cost-from-start #xef) + (new 'static 'trail-node :x #x2fd :z #x1ad :first-conn #xf1 :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z #x30b :first-conn #x1ad :cost-from-start #xf3) + (new 'static 'trail-node :x #x419 :z #x34a :first-conn #xf5 :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z #x434 :first-conn #x334 :cost-from-start #xf7) + (new 'static 'trail-node :x #x438 :z #x30e :first-conn #xf9 :conn-count #x1) + (new 'static 'trail-node :next-id #x100 :z #x3a5 :first-conn #x351 :cost-from-start #xfa) + (new 'static 'trail-node :x #x373 :z #x351 :first-conn #xfd :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z #x363 :first-conn #x334 :cost-from-start #xff) + (new 'static 'trail-node :x #x3dc :z #x34e :first-conn #x102 :conn-count #x3) + (new 'static 'trail-node :next-id #x300 :z #x3bf :first-conn #x36a :cost-from-start #x105) + (new 'static 'trail-node :x #x3db :z #x384 :first-conn #x10a :conn-count #x4) + (new 'static 'trail-node :next-id #x400 :z #x3be :first-conn #x3a7 :cost-from-start #x10e) + (new 'static 'trail-node :x #x3a0 :z #x38b :first-conn #x112 :conn-count #x4) + (new 'static 'trail-node :next-id #x400 :z #x341 :first-conn #x388 :cost-from-start #x116) + (new 'static 'trail-node :x #x31a :z #x36e :first-conn #x119 :conn-count #x3) + (new 'static 'trail-node :next-id #x300 :z #x318 :first-conn #x330 :cost-from-start #x11c) + (new 'static 'trail-node :x #x31d :z #x3a8 :first-conn #x11d :conn-count #x3) + (new 'static 'trail-node :next-id #x300 :z #x31d :first-conn #x3d0 :cost-from-start #x120) + (new 'static 'trail-node :x #x337 :z #x3f1 :first-conn #x122 :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z #x365 :first-conn #x3f7 :cost-from-start #x124) + (new 'static 'trail-node :x #x375 :z #x415 :first-conn #x126 :conn-count #x4) + (new 'static 'trail-node :next-id #x400 :z #x363 :first-conn #x439 :cost-from-start #x12a) + (new 'static 'trail-node :x #x36a :z #x473 :first-conn #x12f :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z #x3ca :first-conn #x468 :cost-from-start #x131) + (new 'static 'trail-node :x #x39e :z #x426 :first-conn #x136 :conn-count #x3) + (new 'static 'trail-node :next-id #x300 :z #x3bd :first-conn #x41a :cost-from-start #x139) + (new 'static 'trail-node :x #x3be :z #x3dd :first-conn #x13c :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z #x33d :first-conn #x43a :cost-from-start #x13e) + (new 'static 'trail-node :x #x30a :z #x43b :first-conn #x141 :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z #x30a :first-conn #x455 :cost-from-start #x143) + (new 'static 'trail-node :x #x332 :z #x45d :first-conn #x145 :conn-count #x3) + (new 'static 'trail-node :next-id #x300 :z #x332 :first-conn #x488 :cost-from-start #x148) + (new 'static 'trail-node :x #x3f8 :z #x384 :first-conn #x14a :conn-count #x3) + (new 'static 'trail-node :next-id #x300 :z #x410 :first-conn #x39b :cost-from-start #x14d) + (new 'static 'trail-node :x #x412 :z #x3eb :first-conn #x150 :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z #x427 :first-conn #x3fa :cost-from-start #x152) + (new 'static 'trail-node :x #x452 :z #x3f3 :first-conn #x154 :conn-count #x3) + (new 'static 'trail-node :next-id #x300 :z #x468 :first-conn #x3d2 :cost-from-start #x157) + (new 'static 'trail-node :x #x467 :z #x3ad :first-conn #x15a :conn-count #x3) + (new 'static 'trail-node :next-id #x300 :z #x447 :first-conn #x385 :cost-from-start #x15d) + (new 'static 'trail-node :x #x417 :z #x469 :first-conn #x160 :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z #x468 :first-conn #x425 :cost-from-start #x162) + (new 'static 'trail-node :x #x468 :z #x405 :first-conn #x164 :conn-count #x3) + (new 'static 'trail-node :next-id #x300 :z #x46a :first-conn #x362 :cost-from-start #x167) + (new 'static 'trail-node :x #x46f :z #x331 :first-conn #x16a :conn-count #x1) + (new 'static 'trail-node :next-id #x100 :z #x2f5 :first-conn #x4cc :cost-from-start #x16b) + (new 'static 'trail-node :x #x2e8 :z #x53c :first-conn #x16d :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z #x2d4 :first-conn #x56a :cost-from-start #x16f) + (new 'static 'trail-node :x #x25a :z #x5b8 :first-conn #x171 :conn-count #x3) + (new 'static 'trail-node :next-id #x300 :z #x257 :first-conn #x5e6 :cost-from-start #x174) + (new 'static 'trail-node :x #x26c :z #x796 :first-conn #x177 :conn-count #x1) + (new 'static 'trail-node :next-id #x100 :z #x231 :first-conn #x5b3 :cost-from-start #x178) + (new 'static 'trail-node :x #xda :z #x556 :first-conn #x17d :conn-count #x4) + (new 'static 'trail-node :next-id #x400 :z #xc0 :first-conn #x53c :cost-from-start #x181) + (new 'static 'trail-node :x #xa8 :z #x555 :first-conn #x184 :conn-count #x4) + (new 'static 'trail-node :next-id #x400 :z -62 :first-conn #x53e :cost-from-start #x188) + (new 'static 'trail-node :x -169 :z #x5ad :first-conn #x18a :conn-count #x5) + (new 'static 'trail-node :next-id #x500 :z -224 :first-conn #x5b9 :cost-from-start #x18f) + (new 'static 'trail-node :x -212 :z #x5ec :first-conn #x192 :conn-count #x3) + (new 'static 'trail-node :next-id #x300 :z -230 :first-conn #x794 :cost-from-start #x195) + (new 'static 'trail-node :x -340 :z #x56b :first-conn #x196 :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z -364 :first-conn #x546 :cost-from-start #x198) + (new 'static 'trail-node :x -368 :z #x4e4 :first-conn #x19a :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z #x2c5 :first-conn #xff99 :cost-from-start #x19c) + (new 'static 'trail-node :x #x2cb :z -132 :first-conn #x19e :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z #x2e4 :first-conn #xff68 :cost-from-start #x1a0) + (new 'static 'trail-node :x #x2e2 :z -183 :first-conn #x1a2 :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z #x2ba :first-conn #xfee2 :cost-from-start #x1a4) + (new 'static 'trail-node :x #x2cd :z -268 :first-conn #x1a7 :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z #x2a6 :first-conn #xfef0 :cost-from-start #x1a9) + (new 'static 'trail-node :x #x293 :z -212 :first-conn #x1ac :conn-count #x3) + (new 'static 'trail-node :next-id #x300 :z #x28e :first-conn #xff57 :cost-from-start #x1af) + (new 'static 'trail-node :x #x28f :z -136 :first-conn #x1b2 :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z #x25e :first-conn #xffe7 :cost-from-start #x1b4) + (new 'static 'trail-node :x #x22e :z -13 :first-conn #x1b6 :conn-count #x1) + (new 'static 'trail-node :next-id #x100 :z #x272 :first-conn #xff3f :cost-from-start #x1b7) + (new 'static 'trail-node :x #x248 :z -165 :first-conn #x1bd :conn-count #x5) + (new 'static 'trail-node :next-id #x500 :z #x1f4 :first-conn #xffec :cost-from-start #x1c2) + (new 'static 'trail-node :x #x1d1 :z -20 :first-conn #x1c4 :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z #x18b :first-conn #xffcd :cost-from-start #x1c6) + (new 'static 'trail-node :x #x199 :z -271 :first-conn #x1c8 :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z #x1a9 :first-conn #xff6a :cost-from-start #x1ca) + (new 'static 'trail-node :x #x1bc :z -124 :first-conn #x1cc :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z #x1dd :first-conn #xff7d :cost-from-start #x1ce) + (new 'static 'trail-node :x #x21f :z -208 :first-conn #x1d0 :conn-count #x5) + (new 'static 'trail-node :next-id #x500 :z #x236 :first-conn #xfefa :cost-from-start #x1d5) + (new 'static 'trail-node :x #x25c :z -246 :first-conn #x1da :conn-count #x5) + (new 'static 'trail-node :next-id #x500 :z #x283 :first-conn #xfece :cost-from-start #x1df) + (new 'static 'trail-node :x #x25b :z -335 :first-conn #x1e2 :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z #x237 :first-conn #xfed0 :cost-from-start #x1e4) + (new 'static 'trail-node :x #x296 :z -310 :first-conn #x1e6 :conn-count #x3) + (new 'static 'trail-node :next-id #x300 :z #x2a8 :first-conn #xfed2 :cost-from-start #x1e9) + (new 'static 'trail-node :x #x2a8 :z -336 :first-conn #x1ed :conn-count #x3) + (new 'static 'trail-node :next-id #x300 :z #x2f5 :first-conn #xfea4 :cost-from-start #x1f0) + (new 'static 'trail-node :x #x309 :z -339 :first-conn #x1f2 :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z #x322 :first-conn #xfeab :cost-from-start #x1f4) + (new 'static 'trail-node :x #x270 :z -651 :first-conn #x1f5 :conn-count #x3) + (new 'static 'trail-node :next-id #x300 :z #x257 :first-conn #xfd47 :cost-from-start #x1f8) + (new 'static 'trail-node :x #x19b :z -290 :first-conn #x1fa :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z #x161 :first-conn #xff89 :cost-from-start #x1fc) + (new 'static 'trail-node :x #x11c :z -123 :first-conn #x1fe :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z #x10e :first-conn #xff90 :cost-from-start #x200) + (new 'static 'trail-node :x #x100 :z -90 :first-conn #x202 :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z #xe4 :first-conn #xffb9 :cost-from-start #x204) + (new 'static 'trail-node :x #xb5 :z -95 :first-conn #x207 :conn-count #x4) + (new 'static 'trail-node :next-id #x400 :z #x98 :first-conn #xffc3 :cost-from-start #x20b) + (new 'static 'trail-node :x #x7d :z -61 :first-conn #x20f :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z #xb3 :first-conn #xff73 :cost-from-start #x211) + (new 'static 'trail-node :x #xbc :z -208 :first-conn #x215 :conn-count #x3) + (new 'static 'trail-node :next-id #x300 :z 43 :first-conn #xff71 :cost-from-start #x218) + (new 'static 'trail-node :x 30 :z -128 :first-conn #x21a :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z 16 :first-conn #xffb1 :cost-from-start #x21c) + (new 'static 'trail-node :x 73 :z -240 :first-conn #x21e :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z 47 :first-conn #xfec4 :cost-from-start #x220) + (new 'static 'trail-node :x 22 :z -346 :first-conn #x222 :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z #xf7 :first-conn #xff0e :cost-from-start #x224) + (new 'static 'trail-node :x #x145 :z -261 :first-conn #x227 :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z #x158 :first-conn #xfeed :cost-from-start #x229) + (new 'static 'trail-node :x #x152 :z -374 :first-conn #x22b :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z #xb8 :first-conn #xfe9f :cost-from-start #x22d) + (new 'static 'trail-node :x #x94 :z -162 :first-conn #x22f :conn-count #x4) + (new 'static 'trail-node :next-id #x400 :z #x87 :first-conn #xff2d :cost-from-start #x233) + (new 'static 'trail-node :x #x16a :z -434 :first-conn #x238 :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z #x168 :first-conn #xfe33 :cost-from-start #x23a) + (new 'static 'trail-node :x #x13f :z -476 :first-conn #x23c :conn-count #x6) + (new 'static 'trail-node :next-id #x600 :z #x117 :first-conn #xfe64 :cost-from-start #x242) + (new 'static 'trail-node :x #xc7 :z -407 :first-conn #x244 :conn-count #x6) + (new 'static 'trail-node :next-id #x600 :z #x8e :first-conn #xfe6a :cost-from-start #x24a) + (new 'static 'trail-node :x #x8c :z -485 :first-conn #x24b :conn-count #x5) + (new 'static 'trail-node :next-id #x500 :z #x13f :first-conn #xfd5b :cost-from-start #x250) + (new 'static 'trail-node :x #x111 :z -753 :first-conn #x257 :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z #x157 :first-conn #xfd0f :cost-from-start #x259) + (new 'static 'trail-node :x #x16b :z -706 :first-conn #x25a :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z 46 :first-conn #xfd2a :cost-from-start #x25c) + (new 'static 'trail-node :x 99 :z -706 :first-conn #x25d :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z #x94 :first-conn #xfd6d :cost-from-start #x25f) + (new 'static 'trail-node :x #xaa :z -612 :first-conn #x263 :conn-count #x3) + (new 'static 'trail-node :next-id #x300 :z #xa7 :first-conn #xfde6 :cost-from-start #x266) + (new 'static 'trail-node :x 96 :z -444 :first-conn #x269 :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z 53 :first-conn #xfe56 :cost-from-start #x26b) + (new 'static 'trail-node :x -57 :z -71 :first-conn #x26c :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z -77 :first-conn #xffaa :cost-from-start #x26e) + (new 'static 'trail-node :x -78 :z -117 :first-conn #x270 :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z -55 :first-conn #xff66 :cost-from-start #x272) + (new 'static 'trail-node :x -65 :z -245 :first-conn #x275 :conn-count #x4) + (new 'static 'trail-node :next-id #x400 :z -91 :first-conn #xff41 :cost-from-start #x279) + (new 'static 'trail-node :x -132 :z -192 :first-conn #x27c :conn-count #x4) + (new 'static 'trail-node :next-id #x400 :z -203 :first-conn #xff3a :cost-from-start #x280) + (new 'static 'trail-node :x -160 :z -221 :first-conn #x284 :conn-count #x3) + (new 'static 'trail-node :next-id #x300 :z -161 :first-conn #xfed9 :cost-from-start #x287) + (new 'static 'trail-node :x -170 :z -334 :first-conn #x289 :conn-count #x1) + (new 'static 'trail-node :next-id #x100 :z -151 :first-conn #xfecc :cost-from-start #x28a) + (new 'static 'trail-node :x -102 :z -308 :first-conn #x28c :conn-count #x3) + (new 'static 'trail-node :next-id #x300 :z -57 :first-conn #xfeb6 :cost-from-start #x28f) + (new 'static 'trail-node :x -28 :z -348 :first-conn #x292 :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z -85 :first-conn #xfe8a :cost-from-start #x294) + (new 'static 'trail-node :x -172 :z -376 :first-conn #x295 :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z -27 :first-conn #xff66 :cost-from-start #x297) + (new 'static 'trail-node :x -13 :z -222 :first-conn #x299 :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z -205 :first-conn #xff4f :cost-from-start #x29b) + (new 'static 'trail-node :x -269 :z -221 :first-conn #x29d :conn-count #x3) + (new 'static 'trail-node :next-id #x300 :z -265 :first-conn #xff5c :cost-from-start #x2a0) + (new 'static 'trail-node :x -263 :z -114 :first-conn #x2a4 :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z -167 :first-conn #xff9e :cost-from-start #x2a6) + (new 'static 'trail-node :x -166 :z -53 :first-conn #x2a8 :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z -231 :first-conn #xffe3 :cost-from-start #x2aa) + (new 'static 'trail-node :x -277 :z -275 :first-conn #x2ac :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z -300 :first-conn #xfee2 :cost-from-start #x2ae) + (new 'static 'trail-node :x -332 :z -269 :first-conn #x2b0 :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z -356 :first-conn #x21 :cost-from-start #x2b2) + (new 'static 'trail-node :x -234 :z 8 :first-conn #x2bc :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z -219 :first-conn #x14 :cost-from-start #x2be) + (new 'static 'trail-node :x 18 :z 24 :first-conn #x2c0 :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z 28 :first-conn #x47 :cost-from-start #x2c2) + (new 'static 'trail-node :x 87 :z 17 :first-conn #x2c5 :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z #x128 :first-conn #xf :cost-from-start #x2c7) + (new 'static 'trail-node :x #x163 :z 69 :first-conn #x2c9 :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z #x163 :first-conn #xd4 :cost-from-start #x2cb) + (new 'static 'trail-node :x #x163 :z #x167 :first-conn #x2ce :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z #x12d :first-conn #x164 :cost-from-start #x2d0) + (new 'static 'trail-node :x #x131 :z #xd5 :first-conn #x2d6 :conn-count #x6) + (new 'static 'trail-node :next-id #x600 :z #x129 :first-conn #x46 :cost-from-start #x2dc) + (new 'static 'trail-node :x 87 :z 72 :first-conn #x2e3 :conn-count #x7) + (new 'static 'trail-node :next-id #x700 :z 80 :first-conn #xd1 :cost-from-start #x2ea) + (new 'static 'trail-node :x 84 :z #x163 :first-conn #x2f0 :conn-count #x6) + (new 'static 'trail-node :next-id #x600 :z 28 :first-conn #x161 :cost-from-start #x2f6) + (new 'static 'trail-node :x 29 :z #xd1 :first-conn #x2f8 :conn-count #x3) + (new 'static 'trail-node :next-id #x300 :z #x169 :first-conn #x1b1 :cost-from-start #x2fb) + (new 'static 'trail-node :x #x16c :z #x2cd :first-conn #x2fd :conn-count #x3) + (new 'static 'trail-node :next-id #x300 :z #x167 :first-conn #x301 :cost-from-start #x300) + (new 'static 'trail-node :x 22 :z #x300 :first-conn #x302 :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z 34 :first-conn #x1ab :cost-from-start #x304) + (new 'static 'trail-node :x #xbf :z #x469 :first-conn #x306 :conn-count #x3) + (new 'static 'trail-node :next-id #x300 :z -110 :first-conn #x29f :cost-from-start #x309) + (new 'static 'trail-node :x -126 :z #x254 :first-conn #x30b :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z -129 :first-conn #x1c0 :cost-from-start #x30d) + (new 'static 'trail-node :x -163 :z #x1c1 :first-conn #x30e :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z -237 :first-conn #x1fb :cost-from-start #x310) + (new 'static 'trail-node :x -244 :z #x22f :first-conn #x312 :conn-count #x4) + (new 'static 'trail-node :next-id #x400 :z -168 :first-conn #x252 :cost-from-start #x316) + (new 'static 'trail-node :x -179 :z #x294 :first-conn #x319 :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z -302 :first-conn #x292 :cost-from-start #x31b) + (new 'static 'trail-node :x -304 :z #x268 :first-conn #x31e :conn-count #x3) + (new 'static 'trail-node :next-id #x300 :z -293 :first-conn #x231 :cost-from-start #x321) + (new 'static 'trail-node :x -348 :z #x215 :first-conn #x324 :conn-count #x3) + (new 'static 'trail-node :next-id #x300 :z -349 :first-conn #x1ec :cost-from-start #x327) + (new 'static 'trail-node :x -8 :z #x2ae :first-conn #x329 :conn-count #x3) + (new 'static 'trail-node :next-id #x300 :z -282 :first-conn #x1a3 :cost-from-start #x32c) + (new 'static 'trail-node :x -283 :z #x1e3 :first-conn #x32d :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z -292 :first-conn #x19a :cost-from-start #x32f) + (new 'static 'trail-node :x -238 :z #x2ae :first-conn #x331 :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z -176 :first-conn #x27b :cost-from-start #x333) + (new 'static 'trail-node :x #x190 :z #x2b7 :first-conn #x336 :conn-count #x3) + (new 'static 'trail-node :next-id #x300 :z #x1cb :first-conn #x289 :cost-from-start #x339) + (new 'static 'trail-node :x #x1b9 :z #x240 :first-conn #x33b :conn-count #x3) + (new 'static 'trail-node :next-id #x300 :z #x1a6 :first-conn #x253 :cost-from-start #x33e) + (new 'static 'trail-node :x #x1a9 :z #x236 :first-conn #x341 :conn-count #x3) + (new 'static 'trail-node :next-id #x300 :z #x1a7 :first-conn #x209 :cost-from-start #x344) + (new 'static 'trail-node :x #x209 :z #x206 :first-conn #x346 :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z #x209 :first-conn #x1e9 :cost-from-start #x348) + (new 'static 'trail-node :x #x1e5 :z #x1e3 :first-conn #x34b :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z #x299 :first-conn #x2ce :cost-from-start #x34d) + (new 'static 'trail-node :x #x22d :z #x1bd :first-conn #x34f :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z #x28e :first-conn #x21d :cost-from-start #x351) + (new 'static 'trail-node :x #x267 :z #x1fa :first-conn #x354 :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z #x25d :first-conn #x1bc :cost-from-start #x356) + (new 'static 'trail-node :x #x256 :z #x1b4 :first-conn #x358 :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z #x244 :first-conn #x1b4 :cost-from-start #x35a) + (new 'static 'trail-node :x #x269 :z #x21c :first-conn #x35c :conn-count #x3) + (new 'static 'trail-node :next-id #x300 :z #x209 :first-conn #x1ab :cost-from-start #x35f) + (new 'static 'trail-node :x #x208 :z #x1ce :first-conn #x360 :conn-count #x1) + (new 'static 'trail-node :next-id #x100 :z #x236 :first-conn #x260 :cost-from-start #x361) + (new 'static 'trail-node :x #x216 :z #x256 :first-conn #x364 :conn-count #x3) + (new 'static 'trail-node :next-id #x300 :z #x1fe :first-conn #x241 :cost-from-start #x367) + (new 'static 'trail-node :x #x1d9 :z #x23f :first-conn #x36b :conn-count #x4) + (new 'static 'trail-node :next-id #x400 :z #x2d7 :first-conn #x20b :cost-from-start #x36f) + (new 'static 'trail-node :x #x1e3 :z #x1ae :first-conn #x371 :conn-count #x1) + (new 'static 'trail-node :next-id #x100 :z #x1f7 :first-conn #x20b :cost-from-start #x372) + (new 'static 'trail-node :x #x19c :z #x1ae :first-conn #x376 :conn-count #x1) + (new 'static 'trail-node :next-id #x100 :z #x19b :first-conn #x1d6 :cost-from-start #x377) + (new 'static 'trail-node :x #x19d :z #x1e3 :first-conn #x378 :conn-count #x1) + (new 'static 'trail-node :next-id #x100 :z #x1a4 :first-conn #x2cd :cost-from-start #x379) + (new 'static 'trail-node :x #x1da :z #x208 :first-conn #x37a :conn-count #x4) + (new 'static 'trail-node :next-id #x400 :z #x1cd :first-conn #x2b5 :cost-from-start #x37e) + (new 'static 'trail-node :x #x20c :z #x2b3 :first-conn #x382 :conn-count #x3) + (new 'static 'trail-node :next-id #x300 :z #x210 :first-conn #x2e8 :cost-from-start #x385) + (new 'static 'trail-node :x #x226 :z #x2ee :first-conn #x388 :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z #x270 :first-conn #x2af :cost-from-start #x38a) + (new 'static 'trail-node :x #x1a5 :z #x2e5 :first-conn #x38b :conn-count #x1) + (new 'static 'trail-node :next-id #x100 :z #x2bd :first-conn #x20d :cost-from-start #x38c) + (new 'static 'trail-node :x #x2b7 :z #x1b2 :first-conn #x38e :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z #x20f :first-conn #x295 :cost-from-start #x390) + (new 'static 'trail-node :x #x2c7 :z #x264 :first-conn #x393 :conn-count #x3) + (new 'static 'trail-node :next-id #x300 :z #x2d6 :first-conn #x2e9 :cost-from-start #x396) + (new 'static 'trail-node :x #x2a9 :z #x2d6 :first-conn #x397 :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z #x2a9 :first-conn #x2b7 :cost-from-start #x399) + (new 'static 'trail-node :x #x2d9 :z #x2ad :first-conn #x39b :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z #x2d9 :first-conn #x290 :cost-from-start #x39d) + (new 'static 'trail-node :x #x2d1 :z #x271 :first-conn #x3a0 :conn-count #x3) + (new 'static 'trail-node :next-id #x300 :z #x2cf :first-conn #x289 :cost-from-start #x3a3) + (new 'static 'trail-node :x #x274 :z #x28c :first-conn #x3a6 :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z #x2da :first-conn #x1b0 :cost-from-start #x3a8) + (new 'static 'trail-node :x #x243 :z #x2ea :first-conn #x3aa :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z #x1a5 :first-conn #x279 :cost-from-start #x3ac) + (new 'static 'trail-node :x #x3bf :z #x291 :first-conn #x3ae :conn-count #x3) + (new 'static 'trail-node :next-id #x300 :z #x3c1 :first-conn #x307 :cost-from-start #x3b1) + (new 'static 'trail-node :x #x3d2 :z #x335 :first-conn #x3b3 :conn-count #x1) + (new 'static 'trail-node :next-id #x100 :z #x3af :first-conn #x336 :cost-from-start #x3b4) + (new 'static 'trail-node :x #x432 :z #x1ff :first-conn #x3b5 :conn-count #x1) + (new 'static 'trail-node :next-id #x100 :z #xc0 :first-conn #x4ab :cost-from-start #x3b6) + (new 'static 'trail-node :x #xc0 :z #x49c :first-conn #x3b8 :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z #x449 :first-conn #x17d :cost-from-start #x3ba) + (new 'static 'trail-node :x #x44b :z #x18b :first-conn #x3bc :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z #x2f6 :first-conn #xe2 :cost-from-start #x3be) + (new 'static 'trail-node :x #x428 :z #x385 :first-conn #x3c0 :conn-count #x3) + (new 'static 'trail-node :next-id #x300 :z -369 :first-conn #x4cf :cost-from-start #x3c3) + (new 'static 'trail-node :x -370 :z #x4ba :first-conn #x3c5 :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z #x1a7 :first-conn #x52c :cost-from-start #x3c7) + (new 'static 'trail-node :x #xc1 :z #x17e :first-conn #x3c9 :conn-count #x3) + (new 'static 'trail-node :next-id #x300 :z -304 :first-conn #xfea5 :cost-from-start #x3cc) + (new 'static 'trail-node :x -350 :z -328 :first-conn #x3ce :conn-count #x1) + (new 'static 'trail-node :next-id #x100 :z -204 :first-conn #xff71 :cost-from-start #x3cf) + (new 'static 'trail-node :x -205 :z -161 :first-conn #x3d0 :conn-count #x1) + (new 'static 'trail-node :next-id #x100 :z 82 :first-conn #xffd3 :cost-from-start #x3d1) + (new 'static 'trail-node :x -57 :z -121 :first-conn #x3d3 :conn-count #x1) + (new 'static 'trail-node :next-id #x100 :z -30 :first-conn #xff0a :cost-from-start #x3d4) + (new 'static 'trail-node :x -247 :z -326 :first-conn #x3d5 :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z -241 :first-conn #xfeec :cost-from-start #x3d7) + (new 'static 'trail-node :x 88 :z -209 :first-conn #x3d8 :conn-count #x3) + (new 'static 'trail-node :next-id #x300 :z 75 :first-conn #xff73 :cost-from-start #x3db) + (new 'static 'trail-node :x 90 :z -160 :first-conn #x3e0 :conn-count #x5) + (new 'static 'trail-node :next-id #x500 :z 31 :first-conn #xfe8b :cost-from-start #x3e5) + (new 'static 'trail-node :x #x87 :z -153 :first-conn #x3e6 :conn-count #x7) + (new 'static 'trail-node :next-id #x700 :z #xb8 :first-conn #xff5b :cost-from-start #x3ed) + (new 'static 'trail-node :x #x83 :z -112 :first-conn #x3f0 :conn-count #x5) + (new 'static 'trail-node :next-id #x500 :z #x66 :first-conn #xffa0 :cost-from-start #x3f5) + (new 'static 'trail-node :x #xb5 :z -113 :first-conn #x3fa :conn-count #x3) + (new 'static 'trail-node :next-id #x300 :z #xbc :first-conn #xfd26 :cost-from-start #x3fd) + (new 'static 'trail-node :x #x90 :z -742 :first-conn #x403 :conn-count #x1) + (new 'static 'trail-node :next-id #x100 :z #x14c :first-conn #xfdf3 :cost-from-start #x404) + (new 'static 'trail-node :x #x160 :z -528 :first-conn #x405 :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z #x161 :first-conn #xfd95 :cost-from-start #x407) + (new 'static 'trail-node :x #x14a :z -625 :first-conn #x409 :conn-count #x1) + (new 'static 'trail-node :next-id #x100 :z #x17f :first-conn #xffce :cost-from-start #x40a) + (new 'static 'trail-node :x #xa8 :z -101 :first-conn #x40c :conn-count #x4) + (new 'static 'trail-node :next-id #x400 :z #x1b1 :first-conn #xffbe :cost-from-start #x410) + (new 'static 'trail-node :x #x1c9 :z -54 :first-conn #x411 :conn-count #x1) + (new 'static 'trail-node :next-id #x100 :z #x178 :first-conn #xffef :cost-from-start #x412) + (new 'static 'trail-node :x #x178 :z -74 :first-conn #x413 :conn-count #x1) + (new 'static 'trail-node :next-id #x100 :z #x190 :first-conn #xffb8 :cost-from-start #x414) + (new 'static 'trail-node :x #x190 :z -18 :first-conn #x415 :conn-count #x1) + (new 'static 'trail-node :next-id #x100 :z #x2e7 :first-conn #xfe98 :cost-from-start #x416) + (new 'static 'trail-node :x #x27e :z -65 :first-conn #x418 :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z #x22d :first-conn #xffa7 :cost-from-start #x41a) + (new 'static 'trail-node :x #x248 :z -105 :first-conn #x41b :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z #x256 :first-conn #xff78 :cost-from-start #x41d) + (new 'static 'trail-node :x #x229 :z -650 :first-conn #x41e :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z #x1f9 :first-conn #xfd67 :cost-from-start #x420) + (new 'static 'trail-node :x #x1e2 :z -768 :first-conn #x422 :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z #x22e :first-conn #xfcfc :cost-from-start #x424) + (new 'static 'trail-node :x #x268 :z -616 :first-conn #x426 :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z #x219 :first-conn #xfdc8 :cost-from-start #x428) + (new 'static 'trail-node :x #x1d0 :z -602 :first-conn #x429 :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z #x194 :first-conn #xfdab :cost-from-start #x42b) + (new 'static 'trail-node :x #x18f :z -563 :first-conn #x42d :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z #x191 :first-conn #xfe0b :cost-from-start #x42f) + (new 'static 'trail-node :x #x189 :z -435 :first-conn #x431 :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z #x193 :first-conn #xfec8 :cost-from-start #x433) + (new 'static 'trail-node :x #x192 :z -379 :first-conn #x434 :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z #x22e :first-conn #xfce6 :cost-from-start #x436) + (new 'static 'trail-node :x #x248 :z -695 :first-conn #x437 :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z #x21d :first-conn #xfcfc :cost-from-start #x439) + (new 'static 'trail-node :x #x312 :z -430 :first-conn #x43b :conn-count #x1) + (new 'static 'trail-node :next-id #x100 :z #x2c3 :first-conn #xfe5e :cost-from-start #x43c) + (new 'static 'trail-node :x #x298 :z -433 :first-conn #x43e :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z #x27c :first-conn #xfe27 :cost-from-start #x440) + (new 'static 'trail-node :x #x25f :z -471 :first-conn #x442 :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z #x1cb :first-conn #xfe42 :cost-from-start #x444) + (new 'static 'trail-node :x #x205 :z -386 :first-conn #x446 :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z #x1dd :first-conn #xfeed :cost-from-start #x448) + (new 'static 'trail-node :x #x1b5 :z -298 :first-conn #x44a :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z #x1a8 :first-conn #xfeda :cost-from-start #x44c) + (new 'static 'trail-node :x #x2c2 :z -472 :first-conn #x44d :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z #x248 :first-conn #xfdc7 :cost-from-start #x44f) + (new 'static 'trail-node :x #x43f :z #x17f :first-conn #x452 :conn-count #x1) + (new 'static 'trail-node :next-id #x100 :z #x453 :first-conn #x17c :cost-from-start #x453) + (new 'static 'trail-node :x #x442 :z #x18d :first-conn #x454 :conn-count #x1) + (new 'static 'trail-node :next-id #x100 :z #x456 :first-conn #x18a :cost-from-start #x455) + (new 'static 'trail-node :x #x468 :z #x2a0 :first-conn #x456 :conn-count #x1) + (new 'static 'trail-node :next-id #x100 :z #x42f :first-conn #x2a2 :cost-from-start #x457) + (new 'static 'trail-node :x -108 :z #x88 :first-conn #x458 :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z -81 :first-conn #xb8 :cost-from-start #x45a) + (new 'static 'trail-node :x -270 :z #x120 :first-conn #x45c :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z -180 :first-conn #xf7 :cost-from-start #x45e) + (new 'static 'trail-node :x -418 :z #xcf :first-conn #x461 :conn-count #x1) + (new 'static 'trail-node :next-id #x100 :z -267 :first-conn #x152 :cost-from-start #x462) + (new 'static 'trail-node :x -356 :z #x19e :first-conn #x464 :conn-count #x1) + (new 'static 'trail-node :next-id #x100 :z -303 :first-conn #x172 :cost-from-start #x465) + (new 'static 'trail-node :x -352 :z #x161 :first-conn #x466 :conn-count #x1) + (new 'static 'trail-node :next-id #x100 :z -182 :first-conn #x136 :cost-from-start #x467) + (new 'static 'trail-node :x -125 :z #x16e :first-conn #x46a :conn-count #x1) + (new 'static 'trail-node :next-id #x100 :z -76 :first-conn #x16d :cost-from-start #x46b) + (new 'static 'trail-node :x -129 :z #x12f :first-conn #x46d :conn-count #x1) + (new 'static 'trail-node :next-id #x100 :z -40 :first-conn #x14f :cost-from-start #x46e) + (new 'static 'trail-node :x -28 :z #xbb :first-conn #x470 :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z -37 :first-conn #x77 :cost-from-start #x472) + (new 'static 'trail-node :x -101 :z 56 :first-conn #x474 :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z -299 :first-conn #x36 :cost-from-start #x476) + (new 'static 'trail-node :x -399 :z #x7a :first-conn #x477 :conn-count #x1) + (new 'static 'trail-node :next-id #x100 :z -149 :first-conn #x86 :cost-from-start #x478) + (new 'static 'trail-node :x -320 :z 84 :first-conn #x479 :conn-count #x1) + (new 'static 'trail-node :next-id #x100 :z -124 :first-conn #xc3 :cost-from-start #x47a) + (new 'static 'trail-node :x -142 :z #xa7 :first-conn #x47c :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z -403 :first-conn #xa3 :cost-from-start #x47e) + (new 'static 'trail-node :x -401 :z #xe6 :first-conn #x47f :conn-count #x1) + (new 'static 'trail-node :next-id #x100 :z -247 :first-conn #xfb :cost-from-start #x480) + (new 'static 'trail-node :x -210 :z #x11a :first-conn #x481 :conn-count #x1) + (new 'static 'trail-node :next-id #x100 :z -82 :first-conn #x147 :cost-from-start #x482) + (new 'static 'trail-node :x -126 :z #x151 :first-conn #x484 :conn-count #x3) + (new 'static 'trail-node :next-id #x300 :z -104 :first-conn #x157 :cost-from-start #x487) + (new 'static 'trail-node :x -334 :z 62 :first-conn #x489 :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z -327 :first-conn #x1e5 :cost-from-start #x48b) + (new 'static 'trail-node :x -311 :z #x19c :first-conn #x48c :conn-count #x1) + (new 'static 'trail-node :next-id #x100 :z -323 :first-conn #x489 :cost-from-start #x48d) + (new 'static 'trail-node :x -372 :z #x264 :first-conn #x48f :conn-count #x1) + (new 'static 'trail-node :next-id #x100 :z -327 :first-conn #x264 :cost-from-start #x490) + (new 'static 'trail-node :x -276 :z #x2b0 :first-conn #x491 :conn-count #x3) + (new 'static 'trail-node :next-id #x300 :z -286 :first-conn #x2ee :cost-from-start #x494) + (new 'static 'trail-node :x -323 :z #x299 :first-conn #x497 :conn-count #x1) + (new 'static 'trail-node :next-id #x100 :z -362 :first-conn #x299 :cost-from-start #x498) + (new 'static 'trail-node :x -361 :z #x2e5 :first-conn #x499 :conn-count #x1) + (new 'static 'trail-node :next-id #x100 :z -307 :first-conn #x2e6 :cost-from-start #x49a) + (new 'static 'trail-node :x -245 :z #x243 :first-conn #x49b :conn-count #x1) + (new 'static 'trail-node :next-id #x100 :z -246 :first-conn #x275 :cost-from-start #x49c) + (new 'static 'trail-node :x -196 :z #x275 :first-conn #x49e :conn-count #x1) + (new 'static 'trail-node :next-id #x100 :z -170 :first-conn #x23f :cost-from-start #x49f) + (new 'static 'trail-node :x -170 :z #x227 :first-conn #x4a0 :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z -221 :first-conn #x228 :cost-from-start #x4a2) + (new 'static 'trail-node :x -212 :z #x1f7 :first-conn #x4a3 :conn-count #x1) + (new 'static 'trail-node :next-id #x100 :z -175 :first-conn #x1f7 :cost-from-start #x4a4) + (new 'static 'trail-node :x -172 :z #x1d7 :first-conn #x4a6 :conn-count #x1) + (new 'static 'trail-node :next-id #x100 :z -244 :first-conn #x1e3 :cost-from-start #x4a7) + (new 'static 'trail-node :x -243 :z #x1ad :first-conn #x4a8 :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z -173 :first-conn #x1ac :cost-from-start #x4aa) + (new 'static 'trail-node :x -126 :z #x1af :first-conn #x4ab :conn-count #x1) + (new 'static 'trail-node :next-id #x100 :z -119 :first-conn #x19e :cost-from-start #x4ac) + (new 'static 'trail-node :x -52 :z #x1a0 :first-conn #x4ae :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z -51 :first-conn #x1e8 :cost-from-start #x4b0) + (new 'static 'trail-node :x -118 :z #x1e7 :first-conn #x4b2 :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z -121 :first-conn #x1d1 :cost-from-start #x4b4) + (new 'static 'trail-node :x -112 :z #x263 :first-conn #x4b5 :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z -117 :first-conn #x238 :cost-from-start #x4b7) + (new 'static 'trail-node :x -117 :z #x21a :first-conn #x4b8 :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z -44 :first-conn #x21b :cost-from-start #x4ba) + (new 'static 'trail-node :x -44 :z #x265 :first-conn #x4bc :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z -90 :first-conn #x265 :cost-from-start #x4be) + (new 'static 'trail-node :x 20 :z #x1dd :first-conn #x4bf :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z 27 :first-conn #x201 :cost-from-start #x4c1) + (new 'static 'trail-node :x 27 :z #x297 :first-conn #x4c3 :conn-count #x3) + (new 'static 'trail-node :next-id #x300 :z 19 :first-conn #x1ba :cost-from-start #x4c6) + (new 'static 'trail-node :x 18 :z #x2d1 :first-conn #x4c8 :conn-count #x3) + (new 'static 'trail-node :next-id #x300 :z -119 :first-conn #x2a1 :cost-from-start #x4cb) + (new 'static 'trail-node :x -119 :z #x2e7 :first-conn #x4cc :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z -42 :first-conn #x2e5 :cost-from-start #x4ce) + (new 'static 'trail-node :x -41 :z #x2cc :first-conn #x4d0 :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z -14 :first-conn #x2c8 :cost-from-start #x4d2) + (new 'static 'trail-node :x -152 :z #x29a :first-conn #x4d3 :conn-count #x1) + (new 'static 'trail-node :next-id #x100 :z -152 :first-conn #x2e5 :cost-from-start #x4d4) + (new 'static 'trail-node :x -227 :z #x2e6 :first-conn #x4d6 :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z -228 :first-conn #x2c2 :cost-from-start #x4d8) + (new 'static 'trail-node :x -203 :z #x298 :first-conn #x4d9 :conn-count #x1) + (new 'static 'trail-node :next-id #x100 :z -232 :first-conn #x298 :cost-from-start #x4da) + (new 'static 'trail-node :x -233 :z #x2a1 :first-conn #x4dc :conn-count #x1) + (new 'static 'trail-node :next-id #x100 :z #xa2 :first-conn #x30e :cost-from-start #x4dd) + (new 'static 'trail-node :x #x9d :z #x368 :first-conn #x4e1 :conn-count #x4) + (new 'static 'trail-node :next-id #x400 :z #xd8 :first-conn #x30f :cost-from-start #x4e5) + (new 'static 'trail-node :x #xda :z #x369 :first-conn #x4e9 :conn-count #x4) + (new 'static 'trail-node :next-id #x400 :z #x6c :first-conn #x389 :cost-from-start #x4ed) + (new 'static 'trail-node :x #x66 :z #x425 :first-conn #x4ef :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z #x87 :first-conn #x440 :cost-from-start #x4f1) + (new 'static 'trail-node :x #x11a :z #x38a :first-conn #x4f4 :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z #x116 :first-conn #x42f :cost-from-start #x4f6) + (new 'static 'trail-node :x #xe8 :z #x43b :first-conn #x4f8 :conn-count #x3) + (new 'static 'trail-node :next-id #x300 :z #xa4 :first-conn #x1a9 :cost-from-start #x4fb) + (new 'static 'trail-node :x #xdb :z #x1a9 :first-conn #x4fe :conn-count #x3) + (new 'static 'trail-node :next-id #x300 :z -286 :first-conn #x302 :cost-from-start #x501) + (new 'static 'trail-node :x -224 :z #x31d :first-conn #x503 :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z -188 :first-conn #x31e :cost-from-start #x505) + (new 'static 'trail-node :x -131 :z #x355 :first-conn #x507 :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z -308 :first-conn #x30a :cost-from-start #x509) + (new 'static 'trail-node :x -310 :z #x354 :first-conn #x50a :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z -234 :first-conn #x353 :cost-from-start #x50c) + (new 'static 'trail-node :x -233 :z #x331 :first-conn #x50e :conn-count #x1) + (new 'static 'trail-node :next-id #x100 :z -182 :first-conn #x30b :cost-from-start #x50f) + (new 'static 'trail-node :x -106 :z #x30b :first-conn #x510 :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z -107 :first-conn #x357 :cost-from-start #x512) + (new 'static 'trail-node :x -151 :z #x357 :first-conn #x513 :conn-count #x1) + (new 'static 'trail-node :next-id #x100 :z -183 :first-conn #x357 :cost-from-start #x514) + (new 'static 'trail-node :x -183 :z #x336 :first-conn #x516 :conn-count #x1) + (new 'static 'trail-node :next-id #x100 :z -126 :first-conn #x378 :cost-from-start #x517) + (new 'static 'trail-node :x -71 :z #x428 :first-conn #x519 :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z -77 :first-conn #x451 :cost-from-start #x51b) + (new 'static 'trail-node :x -232 :z #x461 :first-conn #x51d :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z -254 :first-conn #x3e1 :cost-from-start #x51f) + (new 'static 'trail-node :x -372 :z #x3ea :first-conn #x521 :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z -382 :first-conn #x401 :cost-from-start #x523) + (new 'static 'trail-node :x -299 :z #x49d :first-conn #x525 :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z -124 :first-conn #x42b :cost-from-start #x527) + (new 'static 'trail-node :x -86 :z #x42b :first-conn #x529 :conn-count #x1) + (new 'static 'trail-node :next-id #x100 :z -62 :first-conn #x430 :cost-from-start #x52a) + (new 'static 'trail-node :x -111 :z #x37d :first-conn #x52c :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z -16 :first-conn #x391 :cost-from-start #x52e) + (new 'static 'trail-node :x -15 :z #x3ea :first-conn #x530 :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z -59 :first-conn #x438 :cost-from-start #x532) + (new 'static 'trail-node :x -17 :z #x449 :first-conn #x534 :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z -15 :first-conn #x3f8 :cost-from-start #x536) + (new 'static 'trail-node :x -218 :z #x46b :first-conn #x538 :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z -102 :first-conn #x45f :cost-from-start #x53a) + (new 'static 'trail-node :x -141 :z #x49d :first-conn #x53c :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z -57 :first-conn #x454 :cost-from-start #x53e) + (new 'static 'trail-node :x -31 :z #x498 :first-conn #x540 :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z -11 :first-conn #x471 :cost-from-start #x542) + (new 'static 'trail-node :x -17 :z #x452 :first-conn #x544 :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z -71 :first-conn #x45a :cost-from-start #x546) + (new 'static 'trail-node :x -87 :z #x45c :first-conn #x548 :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z -130 :first-conn #x4a1 :cost-from-start #x54a) + (new 'static 'trail-node :x -49 :z #x4a0 :first-conn #x54c :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z -55 :first-conn #x449 :cost-from-start #x54e) + (new 'static 'trail-node :x -256 :z #x463 :first-conn #x550 :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z -245 :first-conn #x3f9 :cost-from-start #x552) + (new 'static 'trail-node :x -238 :z #x475 :first-conn #x554 :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z -252 :first-conn #x467 :cost-from-start #x556) + (new 'static 'trail-node :x -293 :z #x4a4 :first-conn #x558 :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z -225 :first-conn #x4a2 :cost-from-start #x55a) + (new 'static 'trail-node :x -226 :z #x437 :first-conn #x55c :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z -225 :first-conn #x3ed :cost-from-start #x55e) + (new 'static 'trail-node :x -173 :z #x3d9 :first-conn #x560 :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z -371 :first-conn #x391 :cost-from-start #x562) + (new 'static 'trail-node :x -258 :z #x392 :first-conn #x564 :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z -254 :first-conn #x3d1 :cost-from-start #x566) + (new 'static 'trail-node :x -173 :z #x3be :first-conn #x568 :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z -171 :first-conn #x393 :cost-from-start #x56a) + (new 'static 'trail-node :x -239 :z #x392 :first-conn #x56c :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z -245 :first-conn #x44c :cost-from-start #x56e) + (new 'static 'trail-node :x -439 :z #x395 :first-conn #x570 :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z -383 :first-conn #x393 :cost-from-start #x572) + (new 'static 'trail-node :x -379 :z #x3d6 :first-conn #x574 :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z -235 :first-conn #x3d6 :cost-from-start #x576) + (new 'static 'trail-node :x -199 :z #x4a0 :first-conn #x578 :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z -65 :first-conn #x43d :cost-from-start #x57a) + (new 'static 'trail-node :x -140 :z #x380 :first-conn #x57c :conn-count #x1) + (new 'static 'trail-node :next-id #x100 :z -145 :first-conn #x409 :cost-from-start #x57d) + (new 'static 'trail-node :x -190 :z #x430 :first-conn #x57f :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z -175 :first-conn #x412 :cost-from-start #x581) + (new 'static 'trail-node :x -370 :z #x4a3 :first-conn #x583 :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z #xda :first-conn #x156 :cost-from-start #x585) + (new 'static 'trail-node :x #xa7 :z #x157 :first-conn #x589 :conn-count #x4) + (new 'static 'trail-node :next-id #x400 :z #xf3 :first-conn #x116 :cost-from-start #x58d) + (new 'static 'trail-node :x #x8c :z #x116 :first-conn #x594 :conn-count #x7) + (new 'static 'trail-node :next-id #x700 :z #xed :first-conn #x80 :cost-from-start #x59b) + (new 'static 'trail-node :x #x92 :z #x80 :first-conn #x5a0 :conn-count #x5) + (new 'static 'trail-node :next-id #x500 :z #xbf :first-conn #x6f :cost-from-start #x5a5) + (new 'static 'trail-node :x #xc1 :z #x130 :first-conn #x5a9 :conn-count #x4) + (new 'static 'trail-node :next-id #x400 :z #x9b :first-conn #x141 :cost-from-start #x5ad) + (new 'static 'trail-node :x #xe4 :z #x140 :first-conn #x5b1 :conn-count #x4) + (new 'static 'trail-node :next-id #x400 :z #x10f :first-conn #xf9 :cost-from-start #x5b5) + (new 'static 'trail-node :x #x71 :z #xf8 :first-conn #x5ba :conn-count #x5) + (new 'static 'trail-node :next-id #x500 :z #x107 :first-conn #xb6 :cost-from-start #x5bf) + (new 'static 'trail-node :x #x77 :z #xb6 :first-conn #x5c4 :conn-count #x5) + (new 'static 'trail-node :next-id #x500 :z #xf0 :first-conn #xc8 :cost-from-start #x5c9) + (new 'static 'trail-node :x #x8f :z #xc7 :first-conn #x5cf :conn-count #x6) + (new 'static 'trail-node :next-id #x600 :z #x79 :first-conn #xcb :cost-from-start #x5d5) + (new 'static 'trail-node :x #x7f :z #xe1 :first-conn #x5da :conn-count #x4) + (new 'static 'trail-node :next-id #x400 :z #x105 :first-conn #xcc :cost-from-start #x5de) + (new 'static 'trail-node :x #x100 :z #xe1 :first-conn #x5e3 :conn-count #x4) + (new 'static 'trail-node :next-id #x400 :z #x36f :first-conn #x309 :cost-from-start #x5e7) + (new 'static 'trail-node :x -325 :z 83 :first-conn #x5ea :conn-count #x1) + (new 'static 'trail-node :next-id #x100 :z -339 :first-conn #x4e :cost-from-start #x5eb) + (new 'static 'trail-node :x -337 :z 82 :first-conn #x5ec :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z -337 :first-conn #x47 :cost-from-start #x5ee) + (new 'static 'trail-node :x -347 :z 72 :first-conn #x5f0 :conn-count #x1) + (new 'static 'trail-node :next-id #x100 :z -339 :first-conn #x55 :cost-from-start #x5f1) + (new 'static 'trail-node :x -338 :z 82 :first-conn #x5f2 :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z -349 :first-conn #x59 :cost-from-start #x5f4) + (new 'static 'trail-node :x -337 :z 90 :first-conn #x5f6 :conn-count #x1) + (new 'static 'trail-node :next-id #x100 :z -333 :first-conn #x53 :cost-from-start #x5f7) + (new 'static 'trail-node :x -338 :z 80 :first-conn #x5f8 :conn-count #x1) + (new 'static 'trail-node :next-id #x100 :z -325 :first-conn #x123 :cost-from-start #x5f9) + (new 'static 'trail-node :x -282 :z #x176 :first-conn #x5fa :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z -314 :first-conn #x40b :cost-from-start #x5fc) + (new 'static 'trail-node :x -265 :z #x407 :first-conn #x5fe :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z -371 :first-conn #x3d5 :cost-from-start #x600) + (new 'static 'trail-node :x -351 :z #x42c :first-conn #x602 :conn-count #x1) + (new 'static 'trail-node :next-id #x100 :z -350 :first-conn #x4aa :cost-from-start #x603) + (new 'static 'trail-node :x #x169 :z #x29d :first-conn #x604 :conn-count #x3) + (new 'static 'trail-node :next-id #x300 :z #x286 :first-conn #x25e :cost-from-start #x607) + (new 'static 'trail-node :x #x299 :z #x2f6 :first-conn #x60a :conn-count #x1) + (new 'static 'trail-node :next-id #x100 :z #x270 :first-conn #x2f5 :cost-from-start #x60b) + (new 'static 'trail-node :x #x297 :z #x1b4 :first-conn #x60c :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z #x28e :first-conn #x23f :cost-from-start #x60e) + (new 'static 'trail-node :x #x1e4 :z #x1d8 :first-conn #x612 :conn-count #x1) + (new 'static 'trail-node :next-id #x100 :z #x2d7 :first-conn #x1c5 :cost-from-start #x613) + (new 'static 'trail-node :x #x2bc :z #x1c7 :first-conn #x614 :conn-count #x1) + (new 'static 'trail-node :next-id #x100 :z #x29a :first-conn #x2ba :cost-from-start #x615) + (new 'static 'trail-node :x #xc0 :z #x192 :first-conn #x616 :conn-count #x3) + (new 'static 'trail-node :next-id #x300 :z -354 :first-conn #xffed :cost-from-start #x619) + (new 'static 'trail-node :x -354 :z 1 :first-conn #x61b :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z #x9b :first-conn #xfea0 :cost-from-start #x61d) + (new 'static 'trail-node :x #x93 :z -270 :first-conn #x61f :conn-count #x1) + (new 'static 'trail-node :next-id #x100 :z #xc3 :first-conn #xfed5 :cost-from-start #x620) + (new 'static 'trail-node :x 72 :z -370 :first-conn #x621 :conn-count #x1) + (new 'static 'trail-node :next-id #x100 :z #x163 :first-conn #xfe9d :cost-from-start #x622) + (new 'static 'trail-node :x #x174 :z -329 :first-conn #x623 :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z #x173 :first-conn #xfeef :cost-from-start #x625) + (new 'static 'trail-node :x #x171 :z -236 :first-conn #x627 :conn-count #x1) + (new 'static 'trail-node :next-id #x100 :z 35 :first-conn #xfee0 :cost-from-start #x628) + (new 'static 'trail-node :x 37 :z -232 :first-conn #x629 :conn-count #x1) + (new 'static 'trail-node :next-id #x100 :z -69 :first-conn #xffe0 :cost-from-start #x62a) + (new 'static 'trail-node :x 28 :z -36 :first-conn #x62b :conn-count #x1) + (new 'static 'trail-node :next-id #x100 :z #x70 :first-conn #xffd2 :cost-from-start #x62c) + (new 'static 'trail-node :x 82 :z -74 :first-conn #x62d :conn-count #x1) + ) + :conn (new 'static 'inline-array trail-conn 792 + (new 'static 'trail-conn :tail-id #x1 :cost #x1e9) + (new 'static 'trail-conn :head-id #x1 :tail-id #x2 :cost #x89) + (new 'static 'trail-conn :head-id #x2 :tail-id #x3 :cost #x8c) + (new 'static 'trail-conn :head-id #x3 :tail-id #x4 :cost #xac) + (new 'static 'trail-conn :head-id #x4 :tail-id #x5 :visgroup-id #x1 :cost #x32a) + (new 'static 'trail-conn :head-id #x4 :tail-id #xa :visgroup-id #x1 :cost #x312) + (new 'static 'trail-conn :head-id #x5 :tail-id #x6 :visgroup-id #x2 :cost #xea) + (new 'static 'trail-conn :head-id #x5 :tail-id #x7 :visgroup-id #x2 :cost #x209) + (new 'static 'trail-conn :head-id #x5 :tail-id #x8 :visgroup-id #x2 :cost #x1ef) + (new 'static 'trail-conn :head-id #x6 :tail-id #x7 :visgroup-id #x2 :cost #x169) + (new 'static 'trail-conn :head-id #x6 :tail-id #x8 :visgroup-id #x2 :cost #x184) + (new 'static 'trail-conn :head-id #x6 :tail-id #x2c :cost #x194) + (new 'static 'trail-conn :head-id #x7 :tail-id #x8 :visgroup-id #x2 :cost #x79) + (new 'static 'trail-conn :head-id #x8 :tail-id #xc :cost #xd1) + (new 'static 'trail-conn :head-id #x9 :tail-id #xa :cost #x139) + (new 'static 'trail-conn :head-id #x9 :tail-id #xd :visgroup-id #x3 :cost #x94) + (new 'static 'trail-conn :head-id #xa :tail-id #xb :visgroup-id #x1 :cost #xd4) + (new 'static 'trail-conn :head-id #x5 :tail-id #xb :visgroup-id #x1 :cost #x9c) + (new 'static 'trail-conn :head-id #x9 :tail-id #xc :visgroup-id #x3 :cost #xc2) + (new 'static 'trail-conn :head-id #xc :tail-id #xd :visgroup-id #x3 :cost #x112) + (new 'static 'trail-conn :head-id #xd :tail-id #xe :visgroup-id #x4 :cost #x1bc) + (new 'static 'trail-conn :head-id #xe :tail-id #x11 :cost #x149) + (new 'static 'trail-conn :head-id #xe :tail-id #xf :visgroup-id #x4 :cost #x1a1) + (new 'static 'trail-conn :head-id #xd :tail-id #xf :visgroup-id #x4 :cost #x122) + (new 'static 'trail-conn :head-id #xf :tail-id #x10 :cost #x109) + (new 'static 'trail-conn :head-id #x11 :tail-id #x12 :cost #x96) + (new 'static 'trail-conn :head-id #x12 :tail-id #x13 :visgroup-id #x5 :cost #x248) + (new 'static 'trail-conn :head-id #x12 :tail-id #x14 :visgroup-id #x5 :cost #x2be) + (new 'static 'trail-conn :head-id #x13 :tail-id #x14 :visgroup-id #x5 :cost #x1c7) + (new 'static 'trail-conn :head-id #x14 :tail-id #x15 :cost #x1b8) + (new 'static 'trail-conn :head-id #x15 :tail-id #x16 :cost #x2d9) + (new 'static 'trail-conn :head-id #x16 :tail-id #x17 :cost #xde) + (new 'static 'trail-conn :head-id #x16 :tail-id #x1e :cost #xec) + (new 'static 'trail-conn :head-id #x17 :tail-id #x18 :cost #xe9) + (new 'static 'trail-conn :head-id #x17 :tail-id #x1e :cost #xe2) + (new 'static 'trail-conn :head-id #x18 :tail-id #x19 :cost #x272) + (new 'static 'trail-conn :head-id #x19 :tail-id #x1a :cost #x9f) + (new 'static 'trail-conn :head-id #x1a :tail-id #x1b :visgroup-id #x6 :cost #x10a) + (new 'static 'trail-conn :head-id #x1b :tail-id #x1c :visgroup-id #x6 :cost #x1c0) + (new 'static 'trail-conn :head-id #x1b :tail-id #x24 :cost #x94) + (new 'static 'trail-conn :head-id #x1b :tail-id #x25 :cost #x105) + (new 'static 'trail-conn :head-id #x1c :tail-id #x1d :cost #xfa) + (new 'static 'trail-conn :head-id #x1a :tail-id #x1c :visgroup-id #x6 :cost #x216) + (new 'static 'trail-conn :head-id #x8 :tail-id #x1d :cost #x116) + (new 'static 'trail-conn :head-id #x9 :tail-id #x1d :visgroup-id #x3 :cost #x15f) + (new 'static 'trail-conn :head-id #xc :tail-id #x1d :visgroup-id #x7 :cost #xd2) + (new 'static 'trail-conn :head-id #xd :tail-id #x1d :visgroup-id #x3 :cost #x159) + (new 'static 'trail-conn :head-id #x1e :tail-id #x1f :cost #xdb) + (new 'static 'trail-conn :head-id #x1f :tail-id #x20 :cost #x125) + (new 'static 'trail-conn :head-id #x1f :tail-id #x27 :cost #x169) + (new 'static 'trail-conn :head-id #x20 :tail-id #x21 :cost #x185) + (new 'static 'trail-conn :head-id #x20 :tail-id #x27 :cost #x121) + (new 'static 'trail-conn :head-id #x21 :tail-id #x22 :visgroup-id #x8 :cost #x212) + (new 'static 'trail-conn :head-id #x22 :tail-id #x23 :cost #x12c) + (new 'static 'trail-conn :head-id #x23 :tail-id #x24 :cost #x124) + (new 'static 'trail-conn :head-id #x25 :tail-id #x26 :visgroup-id #x9 :cost #xd4) + (new 'static 'trail-conn :head-id #x25 :tail-id #x2c :visgroup-id #x9 :cost #x21b) + (new 'static 'trail-conn :head-id #x25 :tail-id #x2d :visgroup-id #x9 :cost #x277) + (new 'static 'trail-conn :head-id #x24 :tail-id #x25 :cost #xf4) + (new 'static 'trail-conn :head-id #x7 :tail-id #x26 :cost #x104) + (new 'static 'trail-conn :head-id #x26 :tail-id #x2c :visgroup-id #x9 :cost #x175) + (new 'static 'trail-conn :head-id #x26 :tail-id #x2d :visgroup-id #x9 :cost #x23b) + (new 'static 'trail-conn :head-id #x27 :tail-id #x28 :cost #x123) + (new 'static 'trail-conn :head-id #x28 :tail-id #x2b :visgroup-id #xa :cost #x466) + (new 'static 'trail-conn :head-id #x29 :tail-id #x2a :cost #x11e) + (new 'static 'trail-conn :head-id #x21 :tail-id #x2a :visgroup-id #x8 :cost #x241) + (new 'static 'trail-conn :head-id #x22 :tail-id #x2a :visgroup-id #x8 :cost #x1ca) + (new 'static 'trail-conn :head-id #x2b :tail-id #x163 :visgroup-id #xa :cost #x141) + (new 'static 'trail-conn :head-id #x29 :tail-id #x2b :cost #xe2) + (new 'static 'trail-conn :head-id #x2c :tail-id #x2d :visgroup-id #x9 :cost #x15c) + (new 'static 'trail-conn :head-id #x2d :tail-id #x2e :cost #x24d) + (new 'static 'trail-conn :head-id #x2e :tail-id #x30 :cost #x270) + (new 'static 'trail-conn :head-id #x2f :tail-id #x30 :cost #x184) + (new 'static 'trail-conn :head-id #x2f :tail-id #x31 :cost #x138) + (new 'static 'trail-conn :head-id #x31 :tail-id #x32 :cost #x280) + (new 'static 'trail-conn :head-id #x32 :tail-id #x91 :cost #x11d) + (new 'static 'trail-conn :head-id #x33 :tail-id #x34 :visgroup-id #xb :cost #x1aa) + (new 'static 'trail-conn :head-id #x33 :tail-id #x36 :visgroup-id #xb :cost #x38d) + (new 'static 'trail-conn :head-id #x33 :tail-id #x39 :visgroup-id #xc :cost #x622) + (new 'static 'trail-conn :head-id #x34 :tail-id #x36 :visgroup-id #xb :cost #x423) + (new 'static 'trail-conn :head-id #x34 :tail-id #x35 :cost #x183) + (new 'static 'trail-conn :head-id #x36 :tail-id #x37 :visgroup-id #xd :cost #x121) + (new 'static 'trail-conn :head-id #x37 :tail-id #x38 :visgroup-id #xd :cost #x1f5) + (new 'static 'trail-conn :head-id #x37 :tail-id #x3d :cost #xfb) + (new 'static 'trail-conn :head-id #x36 :tail-id #x38 :visgroup-id #xd :cost #x2ec) + (new 'static 'trail-conn :head-id #x38 :tail-id #x3a :cost #x1dd) + (new 'static 'trail-conn :head-id #x36 :tail-id #x39 :visgroup-id #xc :cost #x2ed) + (new 'static 'trail-conn :head-id #x38 :tail-id #x39 :visgroup-id #xe :cost #x1f9) + (new 'static 'trail-conn :head-id #x3a :tail-id #x3b :visgroup-id #xf :cost #xf5) + (new 'static 'trail-conn :head-id #x3a :tail-id #x4e :visgroup-id #xf :cost #x1ed) + (new 'static 'trail-conn :head-id #x3b :tail-id #x3c :cost #x15d) + (new 'static 'trail-conn :head-id #x3b :tail-id #x4f :visgroup-id #x10 :cost #x3c1) + (new 'static 'trail-conn :head-id #x3b :tail-id #x4e :visgroup-id #xf :cost #x2a2) + (new 'static 'trail-conn :head-id #x3c :tail-id #x3d :visgroup-id #x11 :cost #x247) + (new 'static 'trail-conn :head-id #x3c :tail-id #x3e :visgroup-id #x11 :cost #x33f) + (new 'static 'trail-conn :head-id #x3c :tail-id #x3f :visgroup-id #x11 :cost #x349) + (new 'static 'trail-conn :head-id #x3d :tail-id #x3e :visgroup-id #x11 :cost #x206) + (new 'static 'trail-conn :head-id #x3d :tail-id #x3f :visgroup-id #x11 :cost #x362) + (new 'static 'trail-conn :head-id #x3e :tail-id #x3f :visgroup-id #x11 :cost #x1ee) + (new 'static 'trail-conn :head-id #x3f :tail-id #x40 :cost #x172) + (new 'static 'trail-conn :head-id #x40 :tail-id #x41 :cost #xd9) + (new 'static 'trail-conn :head-id #x41 :tail-id #x42 :cost #x209) + (new 'static 'trail-conn :head-id #x42 :tail-id #x45 :cost #x10d) + (new 'static 'trail-conn :head-id #x43 :tail-id #x44 :visgroup-id #x12 :cost #x171) + (new 'static 'trail-conn :head-id #x43 :tail-id #x1ae :visgroup-id #x13 :cost #xf4) + (new 'static 'trail-conn :head-id #x44 :tail-id #x1af :visgroup-id #x14 :cost #xe6) + (new 'static 'trail-conn :head-id #x45 :tail-id #x46 :cost #x100) + (new 'static 'trail-conn :head-id #x47 :tail-id #x48 :cost #x219) + (new 'static 'trail-conn :head-id #x46 :tail-id #x47 :cost #xdd) + (new 'static 'trail-conn :head-id #x48 :tail-id #x49 :visgroup-id #x15 :cost #x1b9) + (new 'static 'trail-conn :head-id #x49 :tail-id #x4a :cost #x1e9) + (new 'static 'trail-conn :head-id #x4a :tail-id #x4b :visgroup-id #x16 :cost #x2fb) + (new 'static 'trail-conn :head-id #x4b :tail-id #x4c :visgroup-id #x16 :cost #x24c) + (new 'static 'trail-conn :head-id #x4c :tail-id #x4d :visgroup-id #x16 :cost #x2c1) + (new 'static 'trail-conn :head-id #x4a :tail-id #x4d :visgroup-id #x16 :cost #x289) + (new 'static 'trail-conn :head-id #x4e :tail-id #x50 :cost #x11f) + (new 'static 'trail-conn :head-id #x4f :tail-id #x50 :visgroup-id #x17 :cost #x1f8) + (new 'static 'trail-conn :head-id #x50 :tail-id #x51 :cost #x181) + (new 'static 'trail-conn :head-id #x52 :tail-id #x53 :flags (conn-flag cf2) :cost #x71) + (new 'static 'trail-conn :head-id #x51 :tail-id #x53 :cost #x151) + (new 'static 'trail-conn :head-id #x54 :tail-id #x5a :cost #x1ea) + (new 'static 'trail-conn :head-id #x54 :tail-id #x55 :cost #x117) + (new 'static 'trail-conn :head-id #x55 :tail-id #x56 :cost #x132) + (new 'static 'trail-conn :head-id #x57 :tail-id #x58 :cost #x191) + (new 'static 'trail-conn :head-id #x57 :tail-id #x5a :cost #x1b9) + (new 'static 'trail-conn :head-id #x57 :tail-id #x5b :cost #x121) + (new 'static 'trail-conn :head-id #x58 :tail-id #x59 :cost #x109) + (new 'static 'trail-conn :head-id #x4b :tail-id #x59 :visgroup-id #x18 :cost #x2bb) + (new 'static 'trail-conn :head-id #x5a :tail-id #x5b :cost #x143) + (new 'static 'trail-conn :head-id #x5b :tail-id #x5c :visgroup-id #x19 :cost #x132) + (new 'static 'trail-conn :head-id #x5b :tail-id #x5d :visgroup-id #x19 :cost #x1e9) + (new 'static 'trail-conn :head-id #x5c :tail-id #x5d :visgroup-id #x19 :cost #x16c) + (new 'static 'trail-conn :head-id #x5c :tail-id #x5e :visgroup-id #x19 :cost #x1dc) + (new 'static 'trail-conn :head-id #x5c :tail-id #x72 :cost #xe9) + (new 'static 'trail-conn :head-id #x5d :tail-id #x5e :visgroup-id #x19 :cost #x149) + (new 'static 'trail-conn :head-id #x5b :tail-id #x5e :visgroup-id #x19 :cost #x16b) + (new 'static 'trail-conn :head-id #x5e :tail-id #x5f :cost #x2f9) + (new 'static 'trail-conn :head-id #x5f :tail-id #x60 :visgroup-id #x1a :cost #x177) + (new 'static 'trail-conn :head-id #x5f :tail-id #x62 :visgroup-id #x1a :cost #x182) + (new 'static 'trail-conn :head-id #x60 :tail-id #x62 :visgroup-id #x1a :cost #x1d1) + (new 'static 'trail-conn :head-id #x60 :tail-id #x61 :cost #x1f1) + (new 'static 'trail-conn :head-id #x62 :tail-id #x63 :cost #x141) + (new 'static 'trail-conn :head-id #x63 :tail-id #x64 :cost #x151) + (new 'static 'trail-conn :head-id #x64 :tail-id #x65 :cost #x174) + (new 'static 'trail-conn :head-id #x65 :tail-id #x66 :cost #x111) + (new 'static 'trail-conn :head-id #x66 :tail-id #x67 :visgroup-id #x1b :cost #x142) + (new 'static 'trail-conn :head-id #x66 :tail-id #x6a :visgroup-id #x1b :cost #x164) + (new 'static 'trail-conn :head-id #x67 :tail-id #x68 :visgroup-id #x1c :cost #x1d4) + (new 'static 'trail-conn :head-id #x67 :tail-id #x6d :cost #x131) + (new 'static 'trail-conn :head-id #x68 :tail-id #x69 :visgroup-id #x1c :cost #x306) + (new 'static 'trail-conn :head-id #x66 :tail-id #x69 :visgroup-id #x1b :cost #x3b7) + (new 'static 'trail-conn :head-id #x67 :tail-id #x69 :visgroup-id #x1c :cost #x38a) + (new 'static 'trail-conn :head-id #x69 :tail-id #x6b :visgroup-id #x1d :cost #x279) + (new 'static 'trail-conn :head-id #x69 :tail-id #x7a :cost #x269) + (new 'static 'trail-conn :head-id #x67 :tail-id #x6a :visgroup-id #x1b :cost #x1f0) + (new 'static 'trail-conn :head-id #x6a :tail-id #x6b :visgroup-id #x1e :cost #x10a) + (new 'static 'trail-conn :head-id #x6b :tail-id #x6c :cost #x1e9) + (new 'static 'trail-conn :head-id #x5d :tail-id #x6c :cost #x1b1) + (new 'static 'trail-conn :head-id #x6d :tail-id #x6e :visgroup-id #x1f :cost #x199) + (new 'static 'trail-conn :head-id #x6e :tail-id #x6f :visgroup-id #x1f :cost #xd1) + (new 'static 'trail-conn :head-id #x6f :tail-id #x70 :visgroup-id #x1f :cost #x147) + (new 'static 'trail-conn :head-id #x6d :tail-id #x70 :visgroup-id #x1f :cost #x126) + (new 'static 'trail-conn :head-id #x70 :tail-id #x71 :cost #x159) + (new 'static 'trail-conn :head-id #x72 :tail-id #x73 :visgroup-id #x20 :cost #x10a) + (new 'static 'trail-conn :head-id #x73 :tail-id #x74 :cost #x281) + (new 'static 'trail-conn :head-id #x73 :tail-id #x164 :visgroup-id #x20 :cost #x105) + (new 'static 'trail-conn :head-id #x74 :tail-id #x75 :cost #xcf) + (new 'static 'trail-conn :head-id #x75 :tail-id #x76 :cost #x15d) + (new 'static 'trail-conn :head-id #x76 :tail-id #x77 :visgroup-id #x21 :cost #x13e) + (new 'static 'trail-conn :head-id #x77 :tail-id #x78 :cost #x129) + (new 'static 'trail-conn :head-id #x78 :tail-id #x79 :visgroup-id #x22 :cost #x19a) + (new 'static 'trail-conn :head-id #x79 :tail-id #x164 :cost #xf9) + (new 'static 'trail-conn :head-id #x7a :tail-id #x7b :cost #x34f) + (new 'static 'trail-conn :head-id #x7b :tail-id #x7c :cost #x101) + (new 'static 'trail-conn :head-id #x76 :tail-id #x7c :visgroup-id #x21 :cost #xe4) + (new 'static 'trail-conn :head-id #x77 :tail-id #x7c :visgroup-id #x21 :cost #x199) + (new 'static 'trail-conn :head-id #x78 :tail-id #x7d :visgroup-id #x22 :cost #x259) + (new 'static 'trail-conn :head-id #x79 :tail-id #x7d :visgroup-id #x22 :cost #x18c) + (new 'static 'trail-conn :head-id #x7d :tail-id #x7e :cost #x18b) + (new 'static 'trail-conn :head-id #x71 :tail-id #x7f :cost #x2db) + (new 'static 'trail-conn :head-id #x7f :tail-id #x80 :cost #x387) + (new 'static 'trail-conn :head-id #x80 :tail-id #x81 :cost #x192) + (new 'static 'trail-conn :head-id #x81 :tail-id #x82 :cost #x487) + (new 'static 'trail-conn :head-id #x82 :tail-id #x83 :visgroup-id #x23 :cost #x171) + (new 'static 'trail-conn :head-id #x82 :tail-id #x85 :visgroup-id #x23 :cost #x14b) + (new 'static 'trail-conn :head-id #x83 :tail-id #x85 :visgroup-id #x24 :cost #x1fd) + (new 'static 'trail-conn :head-id #x83 :tail-id #x84 :visgroup-id #x24 :cost #xd85) + (new 'static 'trail-conn :head-id #x85 :tail-id #x167 :visgroup-id #x24 :cost #x609) + (new 'static 'trail-conn :head-id #x86 :tail-id #x88 :visgroup-id #x24 :cost #x191) + (new 'static 'trail-conn :head-id #x86 :tail-id #x87 :visgroup-id #x25 :cost #x127) + (new 'static 'trail-conn :head-id #x85 :tail-id #x86 :visgroup-id #x24 :cost #xb1c) + (new 'static 'trail-conn :head-id #x87 :tail-id #x88 :visgroup-id #x25 :cost #x116) + (new 'static 'trail-conn :head-id #x88 :tail-id #x89 :visgroup-id #x24 :cost #x73a) + (new 'static 'trail-conn :head-id #x85 :tail-id #x8a :visgroup-id #x24 :cost #x16d1) + (new 'static 'trail-conn :head-id #x8a :tail-id #x8b :visgroup-id #x26 :cost #x1c3) + (new 'static 'trail-conn :head-id #x88 :tail-id #x8a :visgroup-id #x24 :cost #xae3) + (new 'static 'trail-conn :head-id #x89 :tail-id #x8a :visgroup-id #x24 :cost #x4d2) + (new 'static 'trail-conn :head-id #x8b :tail-id #x8c :visgroup-id #x26 :cost #x1a4) + (new 'static 'trail-conn :head-id #x8a :tail-id #x8c :visgroup-id #x24 :cost #x263) + (new 'static 'trail-conn :head-id #x8c :tail-id #x8d :visgroup-id #x24 :cost #xd44) + (new 'static 'trail-conn :head-id #x8b :tail-id #x8e :cost #x45f) + (new 'static 'trail-conn :head-id #x8e :tail-id #x8f :cost #x161) + (new 'static 'trail-conn :head-id #x90 :tail-id #x165 :flags (conn-flag cf2) :cost #xa9) + (new 'static 'trail-conn :head-id #x8f :tail-id #x90 :cost #x311) + (new 'static 'trail-conn :head-id #x91 :tail-id #x92 :cost #xed) + (new 'static 'trail-conn :head-id #x92 :tail-id #x93 :cost #x101) + (new 'static 'trail-conn :head-id #x93 :tail-id #x94 :cost #xf9) + (new 'static 'trail-conn :head-id #x94 :tail-id #x96 :cost #x2bd) + (new 'static 'trail-conn :head-id #x95 :tail-id #x96 :cost #xd2) + (new 'static 'trail-conn :head-id #x95 :tail-id #x97 :visgroup-id #x27 :cost #xc4) + (new 'static 'trail-conn :head-id #x97 :tail-id #x98 :cost #x1f8) + (new 'static 'trail-conn :head-id #x98 :tail-id #x99 :visgroup-id #x28 :cost #x15b) + (new 'static 'trail-conn :head-id #x98 :tail-id #x9d :visgroup-id #x28 :cost #x131) + (new 'static 'trail-conn :head-id #x99 :tail-id #x9a :cost #x109) + (new 'static 'trail-conn :head-id #x9b :tail-id #x18a :cost #x19a) + (new 'static 'trail-conn :head-id #x9b :tail-id #x9c :cost #x18c) + (new 'static 'trail-conn :head-id #x9d :tail-id #x9e :visgroup-id #x29 :cost #x194) + (new 'static 'trail-conn :head-id #x9d :tail-id #xa6 :visgroup-id #x29 :cost #x2a3) + (new 'static 'trail-conn :head-id #x99 :tail-id #x9d :visgroup-id #x28 :cost #x128) + (new 'static 'trail-conn :head-id #x9e :tail-id #x9f :cost #x53d) + (new 'static 'trail-conn :head-id #x9f :tail-id #xa0 :cost #x119) + (new 'static 'trail-conn :head-id #xa0 :tail-id #xa1 :cost #x265) + (new 'static 'trail-conn :head-id #xa2 :tail-id #xb4 :cost #x99) + (new 'static 'trail-conn :head-id #xa3 :tail-id #xa4 :cost #x102) + (new 'static 'trail-conn :head-id #xa2 :tail-id #xa3 :cost #x3d1) + (new 'static 'trail-conn :head-id #xa4 :tail-id #xa5 :cost #x10e) + (new 'static 'trail-conn :head-id #xa5 :tail-id #xa6 :cost #x32c) + (new 'static 'trail-conn :head-id #x9e :tail-id #xa6 :visgroup-id #x29 :cost #x1dc) + (new 'static 'trail-conn :head-id #xa6 :tail-id #xa7 :visgroup-id #x29 :cost #x1d6) + (new 'static 'trail-conn :head-id #xa7 :tail-id #xa8 :visgroup-id #x29 :cost #x14a) + (new 'static 'trail-conn :head-id #x9d :tail-id #xa7 :visgroup-id #x29 :cost #x2dc) + (new 'static 'trail-conn :head-id #x9e :tail-id #xa7 :visgroup-id #x29 :cost #x316) + (new 'static 'trail-conn :head-id #xa6 :tail-id #xa8 :visgroup-id #x29 :cost #x23f) + (new 'static 'trail-conn :head-id #xa8 :tail-id #xa9 :cost #x23d) + (new 'static 'trail-conn :head-id #x9d :tail-id #xa8 :visgroup-id #x29 :cost #x1cc) + (new 'static 'trail-conn :head-id #x9e :tail-id #xa8 :visgroup-id #x29 :cost #x29c) + (new 'static 'trail-conn :head-id #xa9 :tail-id #xaa :cost #x18c) + (new 'static 'trail-conn :head-id #xa9 :tail-id #xac :cost #x9c) + (new 'static 'trail-conn :head-id #xaa :tail-id #xab :cost #x17d) + (new 'static 'trail-conn :head-id #xa7 :tail-id #xab :cost #x151) + (new 'static 'trail-conn :head-id #xac :tail-id #xad :visgroup-id #x2a :cost #x9e) + (new 'static 'trail-conn :head-id #x95 :tail-id #xad :visgroup-id #x27 :cost #xc1) + (new 'static 'trail-conn :head-id #x97 :tail-id #xad :visgroup-id #x27 :cost #xf1) + (new 'static 'trail-conn :head-id #xad :tail-id #xae :visgroup-id #x2a :cost #x111) + (new 'static 'trail-conn :head-id #xac :tail-id #xae :visgroup-id #x2a :cost #xfd) + (new 'static 'trail-conn :head-id #xaf :tail-id #x189 :cost #x94) + (new 'static 'trail-conn :head-id #xaf :tail-id #xb0 :cost #xb0) + (new 'static 'trail-conn :head-id #xb0 :tail-id #xb1 :cost #xc9) + (new 'static 'trail-conn :head-id #xb2 :tail-id #x192 :visgroup-id #x2b :cost #x120) + (new 'static 'trail-conn :head-id #xb2 :tail-id #x1a8 :visgroup-id #x2b :cost #x628) + (new 'static 'trail-conn :head-id #xb2 :tail-id #xb3 :cost #x1a3) + (new 'static 'trail-conn :head-id #xb3 :tail-id #x191 :cost #x2ac) + (new 'static 'trail-conn :head-id #xb4 :tail-id #x1a3 :cost #x51a) + (new 'static 'trail-conn :head-id #xb5 :tail-id #x181 :cost #x25a) + (new 'static 'trail-conn :head-id #xb5 :tail-id #xb6 :cost #x229) + (new 'static 'trail-conn :head-id #xb6 :tail-id #xb7 :cost #x8f) + (new 'static 'trail-conn :head-id #xb7 :tail-id #xb8 :cost #xd1) + (new 'static 'trail-conn :head-id #xb8 :tail-id #xb9 :cost #x10f) + (new 'static 'trail-conn :head-id #xb9 :tail-id #xba :visgroup-id #x2c :cost #x1a7) + (new 'static 'trail-conn :head-id #xb9 :tail-id #xbb :visgroup-id #x2c :cost #x266) + (new 'static 'trail-conn :head-id #xba :tail-id #xbb :visgroup-id #x2d :cost #x166) + (new 'static 'trail-conn :head-id #xba :tail-id #x182 :visgroup-id #x2e :cost #x73) + (new 'static 'trail-conn :head-id #xbb :tail-id #xbc :cost #xd9) + (new 'static 'trail-conn :head-id #xbc :tail-id #x179 :cost #x150) + (new 'static 'trail-conn :head-id #xbd :tail-id #xca :visgroup-id #x2f :cost #x12c) + (new 'static 'trail-conn :head-id #xbd :tail-id #x17a :cost #xe1) + (new 'static 'trail-conn :head-id #xbe :tail-id #xc5 :visgroup-id #x30 :cost #x221) + (new 'static 'trail-conn :head-id #xbe :tail-id #x177 :cost #x15a) + (new 'static 'trail-conn :head-id #xbf :tail-id #xc0 :cost #x9f) + (new 'static 'trail-conn :head-id #xc0 :tail-id #xc1 :cost #x198) + (new 'static 'trail-conn :head-id #xc1 :tail-id #xde :cost #x24c) + (new 'static 'trail-conn :head-id #xc2 :tail-id #xc3 :cost #x283) + (new 'static 'trail-conn :head-id #xc3 :tail-id #xc4 :cost #x139) + (new 'static 'trail-conn :head-id #xc4 :tail-id #xec :cost #x191) + (new 'static 'trail-conn :head-id #xc5 :tail-id #xcb :visgroup-id #x30 :cost #x3a2) + (new 'static 'trail-conn :head-id #xc5 :tail-id #xc6 :cost #x283) + (new 'static 'trail-conn :head-id #xc6 :tail-id #xc7 :cost #xbd) + (new 'static 'trail-conn :head-id #xc7 :tail-id #xc8 :cost #x31a) + (new 'static 'trail-conn :head-id #xc8 :tail-id #xcc :cost #x205) + (new 'static 'trail-conn :head-id #xc9 :tail-id #x28b :visgroup-id #x30 :cost #x1b9) + (new 'static 'trail-conn :head-id #xc9 :tail-id #x289 :visgroup-id #x30 :cost #xe9) + (new 'static 'trail-conn :head-id #xca :tail-id #x176 :visgroup-id #x31 :cost #x7f) + (new 'static 'trail-conn :head-id #xca :tail-id #xcb :visgroup-id #x32 :cost #x196) + (new 'static 'trail-conn :head-id #xbe :tail-id #xcb :visgroup-id #x30 :cost #x1a9) + (new 'static 'trail-conn :head-id #xcb :tail-id #x172 :cost #x179) + (new 'static 'trail-conn :head-id #xcc :tail-id #xcd :cost #xd9) + (new 'static 'trail-conn :head-id #xcd :tail-id #xce :cost #x15e) + (new 'static 'trail-conn :head-id #xce :tail-id #xcf :visgroup-id #x33 :cost #x25c) + (new 'static 'trail-conn :head-id #xce :tail-id #xd3 :visgroup-id #x33 :cost #x649) + (new 'static 'trail-conn :head-id #xce :tail-id #xd0 :visgroup-id #x33 :cost #x454) + (new 'static 'trail-conn :head-id #xce :tail-id #xd2 :visgroup-id #x33 :cost #x59a) + (new 'static 'trail-conn :head-id #xcf :tail-id #xd0 :visgroup-id #x33 :cost #x282) + (new 'static 'trail-conn :head-id #xd0 :tail-id #xd2 :visgroup-id #x34 :cost #x30f) + (new 'static 'trail-conn :head-id #xd0 :tail-id #xdb :visgroup-id #x33 :cost #x437) + (new 'static 'trail-conn :head-id #xd0 :tail-id #xd1 :cost #x1c9) + (new 'static 'trail-conn :head-id #xd2 :tail-id #xdb :visgroup-id #x33 :cost #x1dc) + (new 'static 'trail-conn :head-id #xd2 :tail-id #xd3 :visgroup-id #x33 :cost #x834) + (new 'static 'trail-conn :head-id #xd3 :tail-id #xd9 :visgroup-id #x33 :cost #x560) + (new 'static 'trail-conn :head-id #xd3 :tail-id #x17b :visgroup-id #x33 :cost #x46b) + (new 'static 'trail-conn :head-id #xd0 :tail-id #xd3 :visgroup-id #x33 :cost #x93c) + (new 'static 'trail-conn :head-id #xd3 :tail-id #xd4 :visgroup-id #x33 :cost #x2c7) + (new 'static 'trail-conn :head-id #xd4 :tail-id #x17b :visgroup-id #x35 :cost #x2c1) + (new 'static 'trail-conn :head-id #xd5 :tail-id #xd6 :cost #x199) + (new 'static 'trail-conn :head-id #xd3 :tail-id #xd6 :cost #x1a6) + (new 'static 'trail-conn :head-id #xd7 :tail-id #xd8 :cost #x1c6) + (new 'static 'trail-conn :head-id #xd8 :tail-id #xd9 :cost #x220) + (new 'static 'trail-conn :head-id #xd9 :tail-id #xda :visgroup-id #x33 :cost #x1a0) + (new 'static 'trail-conn :head-id #xda :tail-id #xdb :visgroup-id #x33 :cost #x251) + (new 'static 'trail-conn :head-id #xd2 :tail-id #xdc :cost #x1e2) + (new 'static 'trail-conn :head-id #xdc :tail-id #xdd :cost #x175) + (new 'static 'trail-conn :head-id #xde :tail-id #xdf :cost #xc9) + (new 'static 'trail-conn :head-id #xdf :tail-id #xe0 :cost #xf9) + (new 'static 'trail-conn :head-id #xe0 :tail-id #xe1 :cost #x15d) + (new 'static 'trail-conn :head-id #xe1 :tail-id #xe2 :visgroup-id #x36 :cost #x2dd) + (new 'static 'trail-conn :head-id #xe1 :tail-id #xe3 :visgroup-id #x36 :cost #x19d) + (new 'static 'trail-conn :head-id #xe2 :tail-id #xe3 :visgroup-id #x36 :cost #x1e0) + (new 'static 'trail-conn :head-id #xe2 :tail-id #xea :visgroup-id #x37 :cost #x249) + (new 'static 'trail-conn :head-id #xe2 :tail-id #xeb :visgroup-id #x37 :cost #x2ac) + (new 'static 'trail-conn :head-id #xe3 :tail-id #xe4 :cost #x149) + (new 'static 'trail-conn :head-id #xe4 :tail-id #xe5 :visgroup-id #x38 :cost #x23b) + (new 'static 'trail-conn :head-id #xe4 :tail-id #xe6 :visgroup-id #x38 :cost #x143) + (new 'static 'trail-conn :head-id #xe5 :tail-id #xe6 :visgroup-id #x38 :cost #x187) + (new 'static 'trail-conn :head-id #xe5 :tail-id #xf2 :visgroup-id #x38 :cost #x230) + (new 'static 'trail-conn :head-id #xe5 :tail-id #xf3 :visgroup-id #x38 :cost #x236) + (new 'static 'trail-conn :head-id #xe6 :tail-id #xe7 :cost #x251) + (new 'static 'trail-conn :head-id #xe9 :tail-id #xea :cost #x189) + (new 'static 'trail-conn :head-id #xe7 :tail-id #xe9 :cost #x84) + (new 'static 'trail-conn :head-id #xea :tail-id #xeb :visgroup-id #x37 :cost #x191) + (new 'static 'trail-conn :head-id #xeb :tail-id #xec :visgroup-id #x39 :cost #x112) + (new 'static 'trail-conn :head-id #xed :tail-id #xee :visgroup-id #x3a :cost #x2b9) + (new 'static 'trail-conn :head-id #xe8 :tail-id #xee :visgroup-id #x3a :cost #x151) + (new 'static 'trail-conn :head-id #xef :tail-id #xf0 :visgroup-id #x36 :cost #x22c) + (new 'static 'trail-conn :head-id #xf0 :tail-id #x16f :visgroup-id #x36 :cost #xec) + (new 'static 'trail-conn :head-id #xf1 :tail-id #xf3 :visgroup-id #x38 :cost #x1ec) + (new 'static 'trail-conn :head-id #xe4 :tail-id #xf1 :visgroup-id #x38 :cost #x255) + (new 'static 'trail-conn :head-id #xf2 :tail-id #xf3 :visgroup-id #x38 :cost #x1ca) + (new 'static 'trail-conn :head-id #xf2 :tail-id #xf8 :cost #x1b5) + (new 'static 'trail-conn :head-id #xf3 :tail-id #xf4 :cost #x191) + (new 'static 'trail-conn :head-id #xf4 :tail-id #xf5 :cost #x30b) + (new 'static 'trail-conn :head-id #xf5 :tail-id #xf6 :cost #x169) + (new 'static 'trail-conn :head-id #xf6 :tail-id #xf7 :visgroup-id #x3b :cost #x22b) + (new 'static 'trail-conn :head-id #xf7 :tail-id #xfc :visgroup-id #x3c :cost #x129) + (new 'static 'trail-conn :head-id #xf8 :tail-id #xf9 :cost #xcc) + (new 'static 'trail-conn :head-id #xf9 :tail-id #xfa :cost #x122) + (new 'static 'trail-conn :head-id #xfa :tail-id #x287 :cost #x7d8) + (new 'static 'trail-conn :head-id #xfb :tail-id #x26b :cost #x181) + (new 'static 'trail-conn :head-id #xfb :tail-id #x26a :cost #x1d7) + (new 'static 'trail-conn :head-id #xfb :tail-id #x1c4 :cost #x1f4) + (new 'static 'trail-conn :head-id #xfb :tail-id #x1ce :cost #x124) + (new 'static 'trail-conn :head-id #xfb :tail-id #x26c :cost #x1a5) + (new 'static 'trail-conn :head-id #xfb :tail-id #x26f :cost #x1b6) + (new 'static 'trail-conn :head-id #xfb :tail-id #x270 :cost #x1a2) + (new 'static 'trail-conn :head-id #xfb :tail-id #x273 :cost #x1b9) + (new 'static 'trail-conn :head-id #xfb :tail-id #x274 :cost #x193) + (new 'static 'trail-conn :head-id #xfc :tail-id #xfd :visgroup-id #x3d :cost #x9a) + (new 'static 'trail-conn :head-id #xfd :tail-id #xfe :cost #x769) + (new 'static 'trail-conn :head-id #xfe :tail-id #xff :cost #x181) + (new 'static 'trail-conn :head-id #xff :tail-id #x108 :cost #x1d9) + (new 'static 'trail-conn :head-id #x100 :tail-id #x101 :cost #x689) + (new 'static 'trail-conn :head-id #x100 :tail-id #x108 :cost #x1b9) + (new 'static 'trail-conn :head-id #x101 :tail-id #x107 :cost #x1b9) + (new 'static 'trail-conn :head-id #x102 :tail-id #x103 :cost #x479) + (new 'static 'trail-conn :head-id #x102 :tail-id #x107 :cost #x1d1) + (new 'static 'trail-conn :head-id #x103 :tail-id #x106 :cost #x191) + (new 'static 'trail-conn :head-id #x103 :tail-id #x104 :cost #x499) + (new 'static 'trail-conn :head-id #x104 :tail-id #x105 :cost #x1b1) + (new 'static 'trail-conn :head-id #x105 :tail-id #x25e :visgroup-id #x3e :cost #x28c) + (new 'static 'trail-conn :head-id #x105 :tail-id #x257 :visgroup-id #x3f :cost #x30a) + (new 'static 'trail-conn :head-id #x106 :tail-id #x261 :visgroup-id #x40 :cost #x1a2) + (new 'static 'trail-conn :head-id #x105 :tail-id #x106 :visgroup-id #x40 :cost #x479) + (new 'static 'trail-conn :head-id #x106 :tail-id #x267 :visgroup-id #x40 :cost #x168) + (new 'static 'trail-conn :head-id #x106 :tail-id #x107 :visgroup-id #x40 :cost #x47a) + (new 'static 'trail-conn :head-id #x107 :tail-id #x108 :visgroup-id #x41 :cost #x691) + (new 'static 'trail-conn :head-id #x107 :tail-id #x259 :visgroup-id #x42 :cost #x29c) + (new 'static 'trail-conn :head-id #x108 :tail-id #x109 :visgroup-id #x43 :cost #x44a) + (new 'static 'trail-conn :head-id #x108 :tail-id #x25b :visgroup-id #x41 :cost #x379) + (new 'static 'trail-conn :head-id #x109 :tail-id #x10a :visgroup-id #x43 :cost #x491) + (new 'static 'trail-conn :head-id #x10a :tail-id #x10b :cost #x1c1) + (new 'static 'trail-conn :head-id #x10b :tail-id #x10c :cost #x481) + (new 'static 'trail-conn :head-id #x109 :tail-id #x10c :cost #x199) + (new 'static 'trail-conn :head-id #xff :tail-id #x10c :cost #x451) + (new 'static 'trail-conn :head-id #x10e :tail-id #x10f :cost #x1a2) + (new 'static 'trail-conn :head-id #x10e :tail-id #x126 :visgroup-id #x44 :cost #x152) + (new 'static 'trail-conn :head-id #x10e :tail-id #x27c :visgroup-id #x44 :cost #x181) + (new 'static 'trail-conn :head-id #x10f :tail-id #x205 :cost #x47e) + (new 'static 'trail-conn :head-id #x110 :tail-id #x203 :cost #x466) + (new 'static 'trail-conn :head-id #x111 :tail-id #x20d :cost #x411) + (new 'static 'trail-conn :head-id #x111 :tail-id #x1f5 :cost #xaa) + (new 'static 'trail-conn :head-id #x114 :tail-id #x119 :cost #x151) + (new 'static 'trail-conn :head-id #x114 :tail-id #x1ec :cost #xa5) + (new 'static 'trail-conn :head-id #x115 :tail-id #x116 :cost #x111) + (new 'static 'trail-conn :head-id #x116 :tail-id #x117 :visgroup-id #x45 :cost #x2f1) + (new 'static 'trail-conn :head-id #x117 :tail-id #x118 :cost #x1a4) + (new 'static 'trail-conn :head-id #x118 :tail-id #x119 :visgroup-id #x46 :cost #x29e) + (new 'static 'trail-conn :head-id #x118 :tail-id #x125 :visgroup-id #x46 :cost #x330) + (new 'static 'trail-conn :head-id #x119 :tail-id #x125 :visgroup-id #x46 :cost #x14f) + (new 'static 'trail-conn :head-id #x11a :tail-id #x124 :cost #x204) + (new 'static 'trail-conn :head-id #x11b :tail-id #x11c :cost #x151) + (new 'static 'trail-conn :head-id #x11b :tail-id #x1d4 :visgroup-id #x47 :cost #x13e) + (new 'static 'trail-conn :head-id #x11c :tail-id #x11d :visgroup-id #x48 :cost #x1c1) + (new 'static 'trail-conn :head-id #x11c :tail-id #x11e :visgroup-id #x48 :cost #x2f0) + (new 'static 'trail-conn :head-id #x118 :tail-id #x11d :cost #x189) + (new 'static 'trail-conn :head-id #x11d :tail-id #x11e :visgroup-id #x48 :cost #x1ee) + (new 'static 'trail-conn :head-id #x11e :tail-id #x11f :cost #x149) + (new 'static 'trail-conn :head-id #x11f :tail-id #x123 :visgroup-id #x49 :cost #x31f) + (new 'static 'trail-conn :head-id #x113 :tail-id #x120 :cost #x339) + (new 'static 'trail-conn :head-id #x120 :tail-id #x1f6 :visgroup-id #x4a :cost #x15d) + (new 'static 'trail-conn :head-id #x121 :tail-id #x122 :visgroup-id #x4b :cost #x201) + (new 'static 'trail-conn :head-id #x122 :tail-id #x1cf :visgroup-id #x4b :cost #x161) + (new 'static 'trail-conn :head-id #x11a :tail-id #x125 :cost #xca) + (new 'static 'trail-conn :head-id #x126 :tail-id #x145 :cost #x1e9) + (new 'static 'trail-conn :head-id #x128 :tail-id #x129 :visgroup-id #x4c :cost #xd7) + (new 'static 'trail-conn :head-id #x128 :tail-id #x12a :visgroup-id #x4c :cost #x97) + (new 'static 'trail-conn :head-id #x129 :tail-id #x12a :visgroup-id #x4c :cost #xea) + (new 'static 'trail-conn :head-id #x129 :tail-id #x159 :cost #x131) + (new 'static 'trail-conn :head-id #x12a :tail-id #x12b :cost #x169) + (new 'static 'trail-conn :head-id #x12b :tail-id #x144 :cost #x199) + (new 'static 'trail-conn :head-id #x12c :tail-id #x12d :cost #xe9) + (new 'static 'trail-conn :head-id #x12c :tail-id #x13f :cost #x96) + (new 'static 'trail-conn :head-id #x12d :tail-id #x12e :cost #x124) + (new 'static 'trail-conn :head-id #x12e :tail-id #x142 :cost #x241) + (new 'static 'trail-conn :head-id #x12f :tail-id #x27e :visgroup-id #x4d :cost #x141) + (new 'static 'trail-conn :head-id #x12f :tail-id #x285 :visgroup-id #x4e :cost #xa1) + (new 'static 'trail-conn :head-id #x130 :tail-id #x135 :cost #xc6) + (new 'static 'trail-conn :head-id #x12d :tail-id #x130 :cost #x1c7) + (new 'static 'trail-conn :head-id #x131 :tail-id #x280 :cost #x34c) + (new 'static 'trail-conn :head-id #x132 :tail-id #x133 :cost #x1f7) + (new 'static 'trail-conn :head-id #x132 :tail-id #x136 :cost #x111) + (new 'static 'trail-conn :head-id #x133 :tail-id #x134 :cost #x56) + (new 'static 'trail-conn :head-id #x134 :tail-id #x135 :cost #x91) + (new 'static 'trail-conn :head-id #x136 :tail-id #x281 :visgroup-id #x4f :cost #x198) + (new 'static 'trail-conn :head-id #x131 :tail-id #x136 :visgroup-id #x4f :cost #x129) + (new 'static 'trail-conn :head-id #x137 :tail-id #x138 :visgroup-id #x50 :cost #x119) + (new 'static 'trail-conn :head-id #x139 :tail-id #x13a :visgroup-id #x51 :cost #x10d) + (new 'static 'trail-conn :head-id #x139 :tail-id #x14d :visgroup-id #x51 :cost #x20f) + (new 'static 'trail-conn :head-id #x13a :tail-id #x13b :cost #x100) + (new 'static 'trail-conn :head-id #x13b :tail-id #x13f :visgroup-id #x52 :cost #x1b4) + (new 'static 'trail-conn :head-id #x13b :tail-id #x13c :visgroup-id #x52 :cost #x129) + (new 'static 'trail-conn :head-id #x128 :tail-id #x13c :cost #x101) + (new 'static 'trail-conn :head-id #x13c :tail-id #x144 :visgroup-id #x52 :cost #x1b9) + (new 'static 'trail-conn :head-id #x13d :tail-id #x283 :visgroup-id #x53 :cost #x231) + (new 'static 'trail-conn :head-id #x13d :tail-id #x14b :visgroup-id #x53 :cost #xd1) + (new 'static 'trail-conn :head-id #x13e :tail-id #x282 :visgroup-id #x54 :cost #x151) + (new 'static 'trail-conn :head-id #x13c :tail-id #x13f :visgroup-id #x52 :cost #x1e1) + (new 'static 'trail-conn :head-id #x13f :tail-id #x144 :visgroup-id #x52 :cost #xea) + (new 'static 'trail-conn :head-id #x140 :tail-id #x141 :visgroup-id #x54 :cost #x141) + (new 'static 'trail-conn :head-id #x13b :tail-id #x144 :visgroup-id #x52 :cost #x21c) + (new 'static 'trail-conn :head-id #x145 :tail-id #x146 :visgroup-id #x55 :cost #x1f9) + (new 'static 'trail-conn :head-id #x145 :tail-id #x147 :visgroup-id #x55 :cost #x2a2) + (new 'static 'trail-conn :head-id #x127 :tail-id #x145 :cost #x161) + (new 'static 'trail-conn :head-id #x146 :tail-id #x147 :visgroup-id #x55 :cost #x1aa) + (new 'static 'trail-conn :head-id #x146 :tail-id #x14d :cost #xf2) + (new 'static 'trail-conn :head-id #x147 :tail-id #x148 :cost #xb7) + (new 'static 'trail-conn :head-id #x148 :tail-id #x158 :cost #xeb) + (new 'static 'trail-conn :head-id #x149 :tail-id #x27f :visgroup-id #x56 :cost #x231) + (new 'static 'trail-conn :head-id #x143 :tail-id #x14a :visgroup-id #x57 :cost #xc1) + (new 'static 'trail-conn :head-id #x14b :tail-id #x284 :visgroup-id #x53 :cost #x231) + (new 'static 'trail-conn :head-id #x14c :tail-id #x280 :cost #x101) + (new 'static 'trail-conn :head-id #x13a :tail-id #x14d :visgroup-id #x51 :cost #x1fc) + (new 'static 'trail-conn :head-id #x14e :tail-id #x27d :visgroup-id #x58 :cost #x20b) + (new 'static 'trail-conn :head-id #x14f :tail-id #x150 :cost #x187) + (new 'static 'trail-conn :head-id #x150 :tail-id #x151 :cost #xf9) + (new 'static 'trail-conn :head-id #x151 :tail-id #x152 :cost #x189) + (new 'static 'trail-conn :head-id #x152 :tail-id #x153 :cost #xe9) + (new 'static 'trail-conn :head-id #x153 :tail-id #x155 :visgroup-id #x59 :cost #x62) + (new 'static 'trail-conn :head-id #x14e :tail-id #x154 :cost #x84) + (new 'static 'trail-conn :head-id #x153 :tail-id #x154 :visgroup-id #x59 :cost #x101) + (new 'static 'trail-conn :head-id #x154 :tail-id #x155 :visgroup-id #x59 :cost #xc1) + (new 'static 'trail-conn :head-id #x155 :tail-id #x156 :cost #x2d9) + (new 'static 'trail-conn :head-id #x14c :tail-id #x157 :cost #x119) + (new 'static 'trail-conn :head-id #x52 :tail-id #x157 :cost #x11a) + (new 'static 'trail-conn :head-id #x156 :tail-id #x158 :cost #x351) + (new 'static 'trail-conn :head-id #x127 :tail-id #x159 :cost #x14a) + (new 'static 'trail-conn :head-id #x48 :tail-id #x15a :visgroup-id #x15 :cost #x10a) + (new 'static 'trail-conn :head-id #x49 :tail-id #x15a :visgroup-id #x15 :cost #x131) + (new 'static 'trail-conn :head-id #x15a :tail-id #x15b :cost #x3b1) + (new 'static 'trail-conn :head-id #x15c :tail-id #x15d :visgroup-id #x5a :cost #x119) + (new 'static 'trail-conn :head-id #x3e :tail-id #x15e :cost #x111) + (new 'static 'trail-conn :head-id #x87 :tail-id #x15f :cost #x489) + (new 'static 'trail-conn :head-id #x15f :tail-id #x160 :flags (conn-flag cf2) :cost #x79) + (new 'static 'trail-conn :head-id #x112 :tail-id #x160 :cost #x199) + (new 'static 'trail-conn :head-id #x13 :tail-id #x161 :cost #xd2) + (new 'static 'trail-conn :head-id #x161 :tail-id #x162 :flags (conn-flag cf0) :cost #x72) + (new 'static 'trail-conn :head-id #x33 :tail-id #x162 :cost #x71) + (new 'static 'trail-conn :head-id #x28 :tail-id #x163 :visgroup-id #xa :cost #x3ac) + (new 'static 'trail-conn :head-id #x72 :tail-id #x164 :visgroup-id #x20 :cost #x181) + (new 'static 'trail-conn :head-id #x165 :tail-id #x166 :cost #xa9) + (new 'static 'trail-conn :head-id #x166 :tail-id #x254 :cost #xb9) + (new 'static 'trail-conn :head-id #x86 :tail-id #x167 :visgroup-id #x24 :cost #x68b) + (new 'static 'trail-conn :head-id #x168 :tail-id #x256 :visgroup-id #x5b :cost #x177) + (new 'static 'trail-conn :head-id #x168 :tail-id #x255 :visgroup-id #x5b :cost #x17a) + (new 'static 'trail-conn :head-id #x169 :tail-id #x16a :visgroup-id #x5c :cost #x18f) + (new 'static 'trail-conn :head-id #x169 :tail-id #x170 :visgroup-id #x5d :cost #x1e6) + (new 'static 'trail-conn :head-id #x16b :tail-id #x16c :visgroup-id #x5e :cost #x91) + (new 'static 'trail-conn :head-id #x16d :tail-id #x296 :visgroup-id #x5f :cost #xe9) + (new 'static 'trail-conn :head-id #x16d :tail-id #x295 :visgroup-id #x5f :cost #xf1) + (new 'static 'trail-conn :head-id #xef :tail-id #x16e :visgroup-id #x60 :cost #x165) + (new 'static 'trail-conn :head-id #x170 :tail-id #x171 :visgroup-id #x61 :cost #x193) + (new 'static 'trail-conn :head-id #xc2 :tail-id #x172 :cost #x114) + (new 'static 'trail-conn :head-id #xbf :tail-id #x173 :cost #x101) + (new 'static 'trail-conn :head-id #x173 :tail-id #x174 :visgroup-id #x62 :cost #xc2) + (new 'static 'trail-conn :head-id #x174 :tail-id #x178 :visgroup-id #x62 :cost #x1fa) + (new 'static 'trail-conn :head-id #x174 :tail-id #x179 :visgroup-id #x62 :cost #x209) + (new 'static 'trail-conn :head-id #x172 :tail-id #x174 :cost #x189) + (new 'static 'trail-conn :head-id #x175 :tail-id #x28c :visgroup-id #x63 :cost #x149) + (new 'static 'trail-conn :head-id #x176 :tail-id #x179 :visgroup-id #x62 :cost #x20f) + (new 'static 'trail-conn :head-id #xcb :tail-id #x176 :visgroup-id #x32 :cost #x1d1) + (new 'static 'trail-conn :head-id #xbd :tail-id #x176 :visgroup-id #x64 :cost #x16d) + (new 'static 'trail-conn :head-id #x174 :tail-id #x176 :visgroup-id #x62 :cost #x16d) + (new 'static 'trail-conn :head-id #x173 :tail-id #x176 :visgroup-id #x62 :cost #x1ea) + (new 'static 'trail-conn :head-id #xca :tail-id #x177 :visgroup-id #x65 :cost #x121) + (new 'static 'trail-conn :head-id #xbd :tail-id #x177 :visgroup-id #x65 :cost #xc5) + (new 'static 'trail-conn :head-id #x173 :tail-id #x178 :visgroup-id #x62 :cost #x1f9) + (new 'static 'trail-conn :head-id #x176 :tail-id #x178 :visgroup-id #x62 :cost #x14a) + (new 'static 'trail-conn :head-id #x178 :tail-id #x182 :cost #x135) + (new 'static 'trail-conn :head-id #x173 :tail-id #x179 :visgroup-id #x62 :cost #x1a4) + (new 'static 'trail-conn :head-id #x178 :tail-id #x179 :visgroup-id #x62 :cost #x109) + (new 'static 'trail-conn :head-id #x17a :tail-id #x182 :visgroup-id #x66 :cost #x8e) + (new 'static 'trail-conn :head-id #xba :tail-id #x17a :visgroup-id #x66 :cost #x91) + (new 'static 'trail-conn :head-id #x17b :tail-id #x17c :cost #x16d) + (new 'static 'trail-conn :head-id #xd9 :tail-id #x17b :visgroup-id #x33 :cost #x28c) + (new 'static 'trail-conn :head-id #xce :tail-id #x17b :visgroup-id #x33 :cost #x8ef) + (new 'static 'trail-conn :head-id #xda :tail-id #x17b :visgroup-id #x33 :cost #x3bb) + (new 'static 'trail-conn :head-id #x17d :tail-id #x17e :visgroup-id #x33 :cost #xa2) + (new 'static 'trail-conn :head-id #x17e :tail-id #x17f :visgroup-id #x33 :cost #x2d9) + (new 'static 'trail-conn :head-id #x17f :tail-id #x180 :visgroup-id #x33 :cost #xbf) + (new 'static 'trail-conn :head-id #xa1 :tail-id #x181 :flags (conn-flag cf1) :cost #x61) + (new 'static 'trail-conn :head-id #xbb :tail-id #x182 :visgroup-id #x67 :cost #x159) + (new 'static 'trail-conn :head-id #x183 :tail-id #x184 :visgroup-id #x68 :cost #xd7) + (new 'static 'trail-conn :head-id #x185 :tail-id #x186 :visgroup-id #x69 :cost #x1c9) + (new 'static 'trail-conn :head-id #x187 :tail-id #x188 :visgroup-id #x68 :cost #x1b1) + (new 'static 'trail-conn :head-id #xae :tail-id #x189 :cost #x21c) + (new 'static 'trail-conn :head-id #x9a :tail-id #x18a :cost #x249) + (new 'static 'trail-conn :head-id #x18b :tail-id #x18c :visgroup-id #x6a :cost #xfc) + (new 'static 'trail-conn :head-id #x18c :tail-id #x18d :visgroup-id #x6a :cost #x111) + (new 'static 'trail-conn :head-id #x18e :tail-id #x18f :visgroup-id #x6b :cost #x193) + (new 'static 'trail-conn :head-id #x18e :tail-id #x19c :visgroup-id #x6b :cost #x1b6) + (new 'static 'trail-conn :head-id #x18f :tail-id #x190 :visgroup-id #x6b :cost #x34d) + (new 'static 'trail-conn :head-id #x190 :tail-id #x19d :visgroup-id #x6b :cost #x1da) + (new 'static 'trail-conn :head-id #x191 :tail-id #x19b :cost #xb1) + (new 'static 'trail-conn :head-id #x193 :tail-id #x194 :visgroup-id #x6c :cost #x285) + (new 'static 'trail-conn :head-id #x194 :tail-id #x195 :visgroup-id #x6c :cost #x1e2) + (new 'static 'trail-conn :head-id #x195 :tail-id #x196 :visgroup-id #x6c :cost #x113) + (new 'static 'trail-conn :head-id #x196 :tail-id #x197 :visgroup-id #x6c :cost #x1f1) + (new 'static 'trail-conn :head-id #x198 :tail-id #x19a :visgroup-id #x6d :cost #x1c6) + (new 'static 'trail-conn :head-id #x197 :tail-id #x198 :visgroup-id #x6e :cost #x214) + (new 'static 'trail-conn :head-id #x199 :tail-id #x19a :visgroup-id #x6d :cost #x219) + (new 'static 'trail-conn :head-id #x19c :tail-id #x19d :visgroup-id #x6b :cost #x2c2) + (new 'static 'trail-conn :head-id #x19e :tail-id #x19f :visgroup-id #x6f :cost #x280) + (new 'static 'trail-conn :head-id #x19f :tail-id #x1a0 :visgroup-id #x6f :cost #x16d) + (new 'static 'trail-conn :head-id #x1a0 :tail-id #x1a1 :visgroup-id #x6f :cost #x187) + (new 'static 'trail-conn :head-id #x1a1 :tail-id #x1a2 :visgroup-id #x70 :cost #xe9) + (new 'static 'trail-conn :head-id #x1a3 :tail-id #x1a9 :cost #x57b) + (new 'static 'trail-conn :head-id #x1a2 :tail-id #x1a4 :visgroup-id #x6e :cost #x3df) + (new 'static 'trail-conn :head-id #x1a4 :tail-id #x1a5 :visgroup-id #x6d :cost #x3b0) + (new 'static 'trail-conn :head-id #x1a5 :tail-id #x1a6 :visgroup-id #x6d :cost #x172) + (new 'static 'trail-conn :head-id #x1a6 :tail-id #x1a7 :visgroup-id #x6d :cost #x6d) + (new 'static 'trail-conn :head-id #x1a8 :tail-id #x1a9 :visgroup-id #x2b :cost #x4df) + (new 'static 'trail-conn :head-id #x192 :tail-id #x1a9 :visgroup-id #x2b :cost #x1c7) + (new 'static 'trail-conn :head-id #x1aa :tail-id #x1ab :visgroup-id #x71 :cost #xa2) + (new 'static 'trail-conn :head-id #x1ac :tail-id #x1ad :visgroup-id #x72 :cost #xa2) + (new 'static 'trail-conn :head-id #x1b0 :tail-id #x1b1 :cost #x1b9) + (new 'static 'trail-conn :head-id #x1b2 :tail-id #x275 :visgroup-id #x73 :cost #x1b9) + (new 'static 'trail-conn :head-id #x1b3 :tail-id #x1b4 :cost #x78b) + (new 'static 'trail-conn :head-id #x1b5 :tail-id #x276 :cost #x139) + (new 'static 'trail-conn :head-id #x1b5 :tail-id #x1b9 :cost #x2cc) + (new 'static 'trail-conn :head-id #x1b6 :tail-id #x1d0 :visgroup-id #x4b :cost #x169) + (new 'static 'trail-conn :head-id #x1b7 :tail-id #x1b8 :visgroup-id #x74 :cost #x19f) + (new 'static 'trail-conn :head-id #x1b9 :tail-id #x1cc :visgroup-id #x75 :cost #x1f2) + (new 'static 'trail-conn :head-id #x1b3 :tail-id #x1b9 :visgroup-id #x75 :cost #x1f9) + (new 'static 'trail-conn :head-id #x1ba :tail-id #x1bb :visgroup-id #x76 :cost #x189) + (new 'static 'trail-conn :head-id #x1bb :tail-id #x1bd :visgroup-id #x77 :cost #x177) + (new 'static 'trail-conn :head-id #x1bd :tail-id #x1be :visgroup-id #x78 :cost #x4a4) + (new 'static 'trail-conn :head-id #x1be :tail-id #x1bf :visgroup-id #x79 :cost #x225) + (new 'static 'trail-conn :head-id #x1bf :tail-id #x1c0 :visgroup-id #x7a :cost #x2cf) + (new 'static 'trail-conn :head-id #x1c0 :tail-id #x1c1 :visgroup-id #x7b :cost #x631) + (new 'static 'trail-conn :head-id #x1c2 :tail-id #x1c3 :visgroup-id #x7c :cost #x7d3) + (new 'static 'trail-conn :head-id #x1c5 :tail-id #x1c6 :visgroup-id #x7d :cost #x10b) + (new 'static 'trail-conn :head-id #x1bc :tail-id #x1c5 :visgroup-id #x75 :cost #x361) + (new 'static 'trail-conn :head-id #x1c6 :tail-id #x1c7 :visgroup-id #x7d :cost #x829) + (new 'static 'trail-conn :head-id #x1c8 :tail-id #x1c9 :visgroup-id #x7d :cost #x4dc) + (new 'static 'trail-conn :head-id #x1b2 :tail-id #x1ca :visgroup-id #x73 :cost #x1e3) + (new 'static 'trail-conn :head-id #x1b1 :tail-id #x1cb :cost #x479) + (new 'static 'trail-conn :head-id #x1cb :tail-id #x1cd :cost #xda) + (new 'static 'trail-conn :head-id #x1b3 :tail-id #x1cc :visgroup-id #x75 :cost #x348) + (new 'static 'trail-conn :head-id #x1cc :tail-id #x1cd :cost #xb7) + (new 'static 'trail-conn :head-id #x1b0 :tail-id #x1ce :cost #x76f) + (new 'static 'trail-conn :head-id #x1d1 :tail-id #x277 :visgroup-id #x7e :cost #x3f3) + (new 'static 'trail-conn :head-id #x1d2 :tail-id #x1d3 :visgroup-id #x48 :cost #x169) + (new 'static 'trail-conn :head-id #x124 :tail-id #x1d4 :cost #x131) + (new 'static 'trail-conn :head-id #x1d4 :tail-id #x1d5 :visgroup-id #x47 :cost #x1f7) + (new 'static 'trail-conn :head-id #x11b :tail-id #x1d5 :visgroup-id #x47 :cost #x2ec) + (new 'static 'trail-conn :head-id #x1d6 :tail-id #x1d7 :visgroup-id #x47 :cost #x139) + (new 'static 'trail-conn :head-id #x1d8 :tail-id #x1d9 :visgroup-id #x47 :cost #x1b1) + (new 'static 'trail-conn :head-id #x1da :tail-id #x1db :visgroup-id #x46 :cost #x191) + (new 'static 'trail-conn :head-id #x1db :tail-id #x1dc :visgroup-id #x46 :cost #x191) + (new 'static 'trail-conn :head-id #x1dd :tail-id #x1de :visgroup-id #x46 :cost #xc1) + (new 'static 'trail-conn :head-id #x1de :tail-id #x1df :visgroup-id #x46 :cost #x199) + (new 'static 'trail-conn :head-id #x1e0 :tail-id #x1e1 :visgroup-id #x45 :cost #x129) + (new 'static 'trail-conn :head-id #x1e1 :tail-id #x1e2 :visgroup-id #x45 :cost #x102) + (new 'static 'trail-conn :head-id #x1e3 :tail-id #x1e4 :visgroup-id #x45 :cost #x1b1) + (new 'static 'trail-conn :head-id #x1e4 :tail-id #x1e5 :visgroup-id #x45 :cost #x231) + (new 'static 'trail-conn :head-id #x1e6 :tail-id #x1e7 :visgroup-id #x7f :cost #x94) + (new 'static 'trail-conn :head-id #x1e7 :tail-id #x1e8 :visgroup-id #x7f :cost #x219) + (new 'static 'trail-conn :head-id #x1e8 :tail-id #x1e9 :visgroup-id #x7f :cost #x241) + (new 'static 'trail-conn :head-id #x1e9 :tail-id #x1ea :visgroup-id #x7f :cost #x219) + (new 'static 'trail-conn :head-id #x1ea :tail-id #x1eb :visgroup-id #x7f :cost #xb2) + (new 'static 'trail-conn :head-id #x113 :tail-id #x1ec :cost #x1e1) + (new 'static 'trail-conn :head-id #x1ed :tail-id #x1ee :visgroup-id #x80 :cost #xf1) + (new 'static 'trail-conn :head-id #x1ee :tail-id #x1ef :visgroup-id #x80 :cost #x249) + (new 'static 'trail-conn :head-id #x1ef :tail-id #x1f0 :visgroup-id #x80 :cost #x251) + (new 'static 'trail-conn :head-id #x1f0 :tail-id #x1f1 :visgroup-id #x80 :cost #x171) + (new 'static 'trail-conn :head-id #x1f2 :tail-id #x1f3 :cost #x126) + (new 'static 'trail-conn :head-id #x1f3 :tail-id #x1f4 :cost #x4b1) + (new 'static 'trail-conn :head-id #x120 :tail-id #x1f4 :visgroup-id #x4a :cost #x150) + (new 'static 'trail-conn :head-id #x1f2 :tail-id #x1f5 :cost #x119) + (new 'static 'trail-conn :head-id #x1f4 :tail-id #x1f6 :visgroup-id #x4a :cost #x1d6) + (new 'static 'trail-conn :head-id #x110 :tail-id #x1f6 :cost #x17a) + (new 'static 'trail-conn :head-id #x1f7 :tail-id #x1f8 :visgroup-id #x81 :cost #x231) + (new 'static 'trail-conn :head-id #x1f8 :tail-id #x1f9 :visgroup-id #x81 :cost #x269) + (new 'static 'trail-conn :head-id #x1f9 :tail-id #x1fa :visgroup-id #x81 :cost #xc9) + (new 'static 'trail-conn :head-id #x1fa :tail-id #x1fb :visgroup-id #x81 :cost #xdb) + (new 'static 'trail-conn :head-id #x1fc :tail-id #x1fd :visgroup-id #x82 :cost #x259) + (new 'static 'trail-conn :head-id #x1fd :tail-id #x1fe :visgroup-id #x82 :cost #x259) + (new 'static 'trail-conn :head-id #x1fe :tail-id #x1ff :visgroup-id #x82 :cost #x121) + (new 'static 'trail-conn :head-id #x200 :tail-id #x201 :visgroup-id #x82 :cost #xe9) + (new 'static 'trail-conn :head-id #x201 :tail-id #x202 :visgroup-id #x82 :cost #x49) + (new 'static 'trail-conn :head-id #x203 :tail-id #x204 :visgroup-id #x83 :cost #x2d2) + (new 'static 'trail-conn :head-id #x203 :tail-id #x205 :visgroup-id #x83 :cost #x1b1) + (new 'static 'trail-conn :head-id #x204 :tail-id #x205 :visgroup-id #x83 :cost #x357) + (new 'static 'trail-conn :head-id #x204 :tail-id #x207 :cost #x1d9) + (new 'static 'trail-conn :head-id #x204 :tail-id #x206 :visgroup-id #x83 :cost #x1e9) + (new 'static 'trail-conn :head-id #x205 :tail-id #x206 :visgroup-id #x83 :cost #x2d1) + (new 'static 'trail-conn :head-id #x203 :tail-id #x206 :visgroup-id #x83 :cost #x357) + (new 'static 'trail-conn :head-id #x206 :tail-id #x20a :cost #x241) + (new 'static 'trail-conn :head-id #x207 :tail-id #x208 :cost #x4e1) + (new 'static 'trail-conn :head-id #x208 :tail-id #x209 :cost #x156) + (new 'static 'trail-conn :head-id #x112 :tail-id #x209 :visgroup-id #x84 :cost #x22c) + (new 'static 'trail-conn :head-id #x209 :tail-id #x20c :visgroup-id #x84 :cost #x30a) + (new 'static 'trail-conn :head-id #x20a :tail-id #x20b :cost #x529) + (new 'static 'trail-conn :head-id #x20b :tail-id #x20c :cost #x17d) + (new 'static 'trail-conn :head-id #x112 :tail-id #x20c :visgroup-id #x84 :cost #x1ed) + (new 'static 'trail-conn :head-id #x20d :tail-id #x286 :visgroup-id #x85 :cost #x122) + (new 'static 'trail-conn :head-id #x10d :tail-id #x20e :cost #x472) + (new 'static 'trail-conn :head-id #x20d :tail-id #x20e :visgroup-id #x85 :cost #x1b9) + (new 'static 'trail-conn :head-id #x20f :tail-id #x210 :cost #x21d) + (new 'static 'trail-conn :head-id #x1d5 :tail-id #x20f :cost #xa1) + (new 'static 'trail-conn :head-id #x210 :tail-id #x211 :cost #x121) + (new 'static 'trail-conn :head-id #x211 :tail-id #x212 :cost #x27a) + (new 'static 'trail-conn :head-id #x213 :tail-id #x214 :visgroup-id #x86 :cost #x251) + (new 'static 'trail-conn :head-id #x214 :tail-id #x215 :visgroup-id #x86 :cost #x261) + (new 'static 'trail-conn :head-id #x215 :tail-id #x216 :visgroup-id #x86 :cost #x111) + (new 'static 'trail-conn :head-id #x217 :tail-id #x218 :visgroup-id #x87 :cost #x261) + (new 'static 'trail-conn :head-id #x218 :tail-id #x219 :visgroup-id #x87 :cost #x261) + (new 'static 'trail-conn :head-id #x21a :tail-id #x21b :visgroup-id #x87 :cost #x101) + (new 'static 'trail-conn :head-id #x21b :tail-id #x21c :visgroup-id #x87 :cost #x109) + (new 'static 'trail-conn :head-id #x212 :tail-id #x21d :cost #x11b) + (new 'static 'trail-conn :head-id #x21d :tail-id #x21e :cost #x5c4) + (new 'static 'trail-conn :head-id #x21e :tail-id #x24f :cost #xaf) + (new 'static 'trail-conn :head-id #x21f :tail-id #x220 :cost #x4df) + (new 'static 'trail-conn :head-id #x220 :tail-id #x249 :cost #xc6) + (new 'static 'trail-conn :head-id #x221 :tail-id #x222 :cost #x3b3) + (new 'static 'trail-conn :head-id #x222 :tail-id #x223 :cost #xc9) + (new 'static 'trail-conn :head-id #x1d1 :tail-id #x224 :visgroup-id #x7e :cost #xfa) + (new 'static 'trail-conn :head-id #x225 :tail-id #x226 :visgroup-id #x88 :cost #x131) + (new 'static 'trail-conn :head-id #x225 :tail-id #x251 :visgroup-id #x88 :cost #x140) + (new 'static 'trail-conn :head-id #x227 :tail-id #x228 :visgroup-id #x89 :cost #x5cd) + (new 'static 'trail-conn :head-id #x228 :tail-id #x229 :visgroup-id #x89 :cost #x309) + (new 'static 'trail-conn :head-id #x229 :tail-id #x22a :visgroup-id #x89 :cost #x2c9) + (new 'static 'trail-conn :head-id #x227 :tail-id #x22a :visgroup-id #x89 :cost #x2a3) + (new 'static 'trail-conn :head-id #x22b :tail-id #x22d :visgroup-id #x8a :cost #x26e) + (new 'static 'trail-conn :head-id #x22b :tail-id #x239 :visgroup-id #x8a :cost #x8c) + (new 'static 'trail-conn :head-id #x22c :tail-id #x22d :visgroup-id #x8a :cost #x289) + (new 'static 'trail-conn :head-id #x22e :tail-id #x22f :visgroup-id #x8b :cost #x3a5) + (new 'static 'trail-conn :head-id #x22e :tail-id #x24e :visgroup-id #x8b :cost #x1c3) + (new 'static 'trail-conn :head-id #x22f :tail-id #x230 :visgroup-id #x8b :cost #x24a) + (new 'static 'trail-conn :head-id #x231 :tail-id #x232 :visgroup-id #x8c :cost #x247) + (new 'static 'trail-conn :head-id #x232 :tail-id #x233 :visgroup-id #x8c :cost #x15f) + (new 'static 'trail-conn :head-id #x233 :tail-id #x234 :visgroup-id #x8c :cost #xfd) + (new 'static 'trail-conn :head-id #x231 :tail-id #x234 :visgroup-id #x8c :cost #x141) + (new 'static 'trail-conn :head-id #x235 :tail-id #x236 :visgroup-id #x8d :cost #x81) + (new 'static 'trail-conn :head-id #x236 :tail-id #x237 :visgroup-id #x8e :cost #x28b) + (new 'static 'trail-conn :head-id #x237 :tail-id #x238 :visgroup-id #x8e :cost #x289) + (new 'static 'trail-conn :head-id #x235 :tail-id #x238 :visgroup-id #x8e :cost #x24c) + (new 'static 'trail-conn :head-id #x22c :tail-id #x239 :visgroup-id #x8a :cost #x131) + (new 'static 'trail-conn :head-id #x224 :tail-id #x23a :visgroup-id #x7e :cost #x242) + (new 'static 'trail-conn :head-id #x221 :tail-id #x23b :cost #xce) + (new 'static 'trail-conn :head-id #x23c :tail-id #x23d :visgroup-id #x8f :cost #x9f) + (new 'static 'trail-conn :head-id #x23d :tail-id #x23e :visgroup-id #x8f :cost #x24c) + (new 'static 'trail-conn :head-id #x23e :tail-id #x23f :visgroup-id #x8f :cost #x221) + (new 'static 'trail-conn :head-id #x23c :tail-id #x23f :visgroup-id #x8f :cost #x177) + (new 'static 'trail-conn :head-id #x240 :tail-id #x241 :visgroup-id #x90 :cost #x251) + (new 'static 'trail-conn :head-id #x241 :tail-id #x242 :visgroup-id #x90 :cost #x1be) + (new 'static 'trail-conn :head-id #x242 :tail-id #x253 :visgroup-id #x90 :cost #x1c9) + (new 'static 'trail-conn :head-id #x243 :tail-id #x279 :visgroup-id #x91 :cost #x221) + (new 'static 'trail-conn :head-id #x243 :tail-id #x244 :visgroup-id #x91 :cost #x389) + (new 'static 'trail-conn :head-id #x244 :tail-id #x245 :visgroup-id #x91 :cost #x1fa) + (new 'static 'trail-conn :head-id #x246 :tail-id #x24d :visgroup-id #x92 :cost #x214) + (new 'static 'trail-conn :head-id #x246 :tail-id #x247 :visgroup-id #x92 :cost #x159) + (new 'static 'trail-conn :head-id #x247 :tail-id #x248 :visgroup-id #x92 :cost #x221) + (new 'static 'trail-conn :head-id #x23b :tail-id #x249 :cost #x299) + (new 'static 'trail-conn :head-id #x24a :tail-id #x24c :visgroup-id #x93 :cost #x2c4) + (new 'static 'trail-conn :head-id #x24a :tail-id #x24b :visgroup-id #x93 :cost #x1c1) + (new 'static 'trail-conn :head-id #x24b :tail-id #x24c :visgroup-id #x94 :cost #x219) + (new 'static 'trail-conn :head-id #x248 :tail-id #x24d :visgroup-id #x92 :cost #x221) + (new 'static 'trail-conn :head-id #x230 :tail-id #x24e :visgroup-id #x8b :cost #x1d1) + (new 'static 'trail-conn :head-id #x21f :tail-id #x24f :cost #xbb) + (new 'static 'trail-conn :head-id #x250 :tail-id #x251 :visgroup-id #x88 :cost #x449) + (new 'static 'trail-conn :head-id #x240 :tail-id #x252 :visgroup-id #x90 :cost #x126) + (new 'static 'trail-conn :head-id #x252 :tail-id #x253 :visgroup-id #x90 :cost #x10d) + (new 'static 'trail-conn :head-id #x223 :tail-id #x254 :cost #x514) + (new 'static 'trail-conn :head-id #x105 :tail-id #x255 :visgroup-id #x3e :cost #x2a2) + (new 'static 'trail-conn :head-id #x256 :tail-id #x25d :visgroup-id #x3e :cost #xc9) + (new 'static 'trail-conn :head-id #x255 :tail-id #x256 :visgroup-id #x95 :cost #x199) + (new 'static 'trail-conn :head-id #x10a :tail-id #x256 :visgroup-id #x3e :cost #x29f) + (new 'static 'trail-conn :head-id #x257 :tail-id #x258 :visgroup-id #x3e :cost #x339) + (new 'static 'trail-conn :head-id #x257 :tail-id #x25e :visgroup-id #x3e :cost #x165) + (new 'static 'trail-conn :head-id #x257 :tail-id #x268 :visgroup-id #x40 :cost #x1b5) + (new 'static 'trail-conn :head-id #x258 :tail-id #x260 :visgroup-id #x43 :cost #x143) + (new 'static 'trail-conn :head-id #x10a :tail-id #x258 :visgroup-id #x96 :cost #x2fa) + (new 'static 'trail-conn :head-id #x259 :tail-id #x25a :visgroup-id #x41 :cost #x2d9) + (new 'static 'trail-conn :head-id #x25a :tail-id #x25b :visgroup-id #x41 :cost #x181) + (new 'static 'trail-conn :head-id #x108 :tail-id #x25a :visgroup-id #x97 :cost #x28b) + (new 'static 'trail-conn :head-id #x107 :tail-id #x25b :visgroup-id #x41 :cost #x38e) + (new 'static 'trail-conn :head-id #x259 :tail-id #x25b :visgroup-id #x41 :cost #x189) + (new 'static 'trail-conn :head-id #x258 :tail-id #x25c :visgroup-id #x3e :cost #x1d9) + (new 'static 'trail-conn :head-id #x257 :tail-id #x25c :visgroup-id #x3e :cost #x1c3) + (new 'static 'trail-conn :head-id #x10a :tail-id #x25d :visgroup-id #x3e :cost #x276) + (new 'static 'trail-conn :head-id #x258 :tail-id #x25d :visgroup-id #x3e :cost #x16d) + (new 'static 'trail-conn :head-id #x25c :tail-id #x25d :visgroup-id #x3e :cost #x14e) + (new 'static 'trail-conn :head-id #x255 :tail-id #x25e :visgroup-id #x3e :cost #xc2) + (new 'static 'trail-conn :head-id #x25c :tail-id #x25e :visgroup-id #x98 :cost #x134) + (new 'static 'trail-conn :head-id #x25f :tail-id #x267 :visgroup-id #x40 :cost #x171) + (new 'static 'trail-conn :head-id #x105 :tail-id #x25f :visgroup-id #x40 :cost #x37a) + (new 'static 'trail-conn :head-id #x106 :tail-id #x25f :visgroup-id #x40 :cost #x18d) + (new 'static 'trail-conn :head-id #x257 :tail-id #x25f :visgroup-id #x40 :cost #x143) + (new 'static 'trail-conn :head-id #x25f :tail-id #x268 :visgroup-id #x40 :cost #xe3) + (new 'static 'trail-conn :head-id #x109 :tail-id #x260 :visgroup-id #x43 :cost #x199) + (new 'static 'trail-conn :head-id #x10a :tail-id #x260 :visgroup-id #x43 :cost #x377) + (new 'static 'trail-conn :head-id #x107 :tail-id #x261 :visgroup-id #x40 :cost #x3a9) + (new 'static 'trail-conn :head-id #x259 :tail-id #x261 :visgroup-id #x40 :cost #x1e0) + (new 'static 'trail-conn :head-id #x261 :tail-id #x263 :visgroup-id #x40 :cost #xea) + (new 'static 'trail-conn :head-id #x25a :tail-id #x262 :visgroup-id #x43 :cost #x1e3) + (new 'static 'trail-conn :head-id #x109 :tail-id #x262 :visgroup-id #x43 :cost #x17c) + (new 'static 'trail-conn :head-id #x108 :tail-id #x262 :visgroup-id #x43 :cost #x395) + (new 'static 'trail-conn :head-id #x262 :tail-id #x265 :visgroup-id #x43 :cost #xa9) + (new 'static 'trail-conn :head-id #x262 :tail-id #x264 :visgroup-id #x43 :cost #xec) + (new 'static 'trail-conn :head-id #x263 :tail-id #x264 :cost #x309) + (new 'static 'trail-conn :head-id #x257 :tail-id #x263 :visgroup-id #x40 :cost #x271) + (new 'static 'trail-conn :head-id #x259 :tail-id #x263 :visgroup-id #x40 :cost #x241) + (new 'static 'trail-conn :head-id #x25a :tail-id #x264 :visgroup-id #x43 :cost #x239) + (new 'static 'trail-conn :head-id #x258 :tail-id #x264 :visgroup-id #x43 :cost #x279) + (new 'static 'trail-conn :head-id #x260 :tail-id #x265 :visgroup-id #x43 :cost #x16e) + (new 'static 'trail-conn :head-id #x109 :tail-id #x265 :visgroup-id #x43 :cost #x14c) + (new 'static 'trail-conn :head-id #x264 :tail-id #x265 :visgroup-id #x43 :cost #xb3) + (new 'static 'trail-conn :head-id #x258 :tail-id #x266 :visgroup-id #x43 :cost #x1b5) + (new 'static 'trail-conn :head-id #x260 :tail-id #x266 :visgroup-id #x43 :cost #xd8) + (new 'static 'trail-conn :head-id #x264 :tail-id #x266 :visgroup-id #x43 :cost #xf5) + (new 'static 'trail-conn :head-id #x265 :tail-id #x266 :visgroup-id #x43 :cost #xb7) + (new 'static 'trail-conn :head-id #x261 :tail-id #x267 :visgroup-id #x40 :cost #xb1) + (new 'static 'trail-conn :head-id #x263 :tail-id #x267 :visgroup-id #x40 :cost #xac) + (new 'static 'trail-conn :head-id #x267 :tail-id #x268 :visgroup-id #x40 :cost #xad) + (new 'static 'trail-conn :head-id #x263 :tail-id #x268 :visgroup-id #x40 :cost #xee) + (new 'static 'trail-conn :head-id #x59 :tail-id #x269 :visgroup-id #x18 :cost #x166) + (new 'static 'trail-conn :head-id #x15b :tail-id #x269 :cost #x291) + (new 'static 'trail-conn :head-id #x4b :tail-id #x269 :visgroup-id #x18 :cost #x183) + (new 'static 'trail-conn :head-id #x26c :tail-id #x26d :cost #x59) + (new 'static 'trail-conn :head-id #x26d :tail-id #x26e :cost #x51) + (new 'static 'trail-conn :head-id #x270 :tail-id #x271 :cost #x69) + (new 'static 'trail-conn :head-id #x271 :tail-id #x272 :cost #x61) + (new 'static 'trail-conn :head-id #x123 :tail-id #x276 :cost #x12b) + (new 'static 'trail-conn :head-id #x277 :tail-id #x278 :visgroup-id #x7e :cost #x18a) + (new 'static 'trail-conn :head-id #x23a :tail-id #x278 :visgroup-id #x7e :cost #x2e4) + (new 'static 'trail-conn :head-id #x245 :tail-id #x279 :visgroup-id #x91 :cost #x3a9) + (new 'static 'trail-conn :head-id #x27a :tail-id #x27b :visgroup-id #x99 :cost #x3f1) + (new 'static 'trail-conn :head-id #x126 :tail-id #x27c :visgroup-id #x44 :cost #x177) + (new 'static 'trail-conn :head-id #x10d :tail-id #x27c :cost #x761) + (new 'static 'trail-conn :head-id #x139 :tail-id #x27d :cost #x281) + (new 'static 'trail-conn :head-id #x14e :tail-id #x281 :visgroup-id #x58 :cost #x220) + (new 'static 'trail-conn :head-id #x131 :tail-id #x281 :visgroup-id #x4f :cost #x111) + (new 'static 'trail-conn :head-id #x27d :tail-id #x281 :visgroup-id #x58 :cost #x101) + (new 'static 'trail-conn :head-id #x20e :tail-id #x286 :visgroup-id #x85 :cost #x11c) + (new 'static 'trail-conn :head-id #x168 :tail-id #x286 :flags (conn-flag cf2) :cost #xa1) + (new 'static 'trail-conn :head-id #x287 :tail-id #x288 :flags (conn-flag cf2) :cost #xa1) + (new 'static 'trail-conn :head-id #xfb :tail-id #x288 :cost #x101) + (new 'static 'trail-conn :head-id #x289 :tail-id #x28a :visgroup-id #x30 :cost #x294) + (new 'static 'trail-conn :head-id #x28d :tail-id #x28e :visgroup-id #x9a :cost #xf9) + (new 'static 'trail-conn :head-id #x28e :tail-id #x28f :visgroup-id #x9a :cost #x1c1) + (new 'static 'trail-conn :head-id #x28f :tail-id #x290 :visgroup-id #x9b :cost #x129) + (new 'static 'trail-conn :head-id #x291 :tail-id #x292 :visgroup-id #x9c :cost #x1c1) + (new 'static 'trail-conn :head-id #x293 :tail-id #x294 :visgroup-id #x9d :cost #x309) + (new 'static 'trail-conn) + ) + :conn-ids (new 'static 'array uint16 1584 + #x0 + #x0 + #x1 + #x1 + #x2 + #x2 + #x3 + #x3 + #x4 + #x5 + #x4 + #x6 + #x7 + #x8 + #x11 + #x6 + #x9 + #xa + #xb + #x7 + #x9 + #xc + #x3b + #x8 + #xa + #xc + #xd + #x2b + #xe + #xf + #x12 + #x2c + #x5 + #xe + #x10 + #x10 + #x11 + #xd + #x12 + #x13 + #x2d + #xf + #x13 + #x14 + #x17 + #x2e + #x14 + #x15 + #x16 + #x16 + #x17 + #x18 + #x18 + #x15 + #x19 + #x19 + #x1a + #x1b + #x1a + #x1c + #x1e1 + #x1b + #x1c + #x1d + #x1d + #x1e + #x1e + #x1f + #x20 + #x1f + #x21 + #x22 + #x21 + #x23 + #x23 + #x24 + #x24 + #x25 + #x2a + #x25 + #x26 + #x27 + #x28 + #x26 + #x29 + #x2a + #x29 + #x2b + #x2c + #x2d + #x2e + #x20 + #x22 + #x2f + #x2f + #x30 + #x31 + #x30 + #x32 + #x33 + #x32 + #x34 + #x41 + #x34 + #x35 + #x42 + #x35 + #x36 + #x27 + #x36 + #x3a + #x28 + #x37 + #x38 + #x39 + #x3a + #x37 + #x3b + #x3c + #x3d + #x31 + #x33 + #x3e + #x3e + #x3f + #x1e4 + #x40 + #x44 + #x40 + #x41 + #x42 + #x3f + #x43 + #x44 + #xb + #x38 + #x3c + #x45 + #x39 + #x3d + #x45 + #x46 + #x46 + #x47 + #x48 + #x49 + #x47 + #x48 + #x49 + #x4a + #x4a + #x4b + #x4c + #x4d + #x4e + #x1e3 + #x4c + #x4f + #x50 + #x50 + #x4d + #x4f + #x51 + #x54 + #x56 + #x51 + #x52 + #x53 + #x52 + #x54 + #x55 + #x57 + #x4e + #x56 + #x57 + #x55 + #x58 + #x59 + #x58 + #x5a + #x5b + #x5c + #x5a + #x5d + #x5e + #x5f + #x53 + #x5d + #x60 + #x61 + #x5e + #x60 + #x62 + #x1dd + #x5f + #x61 + #x62 + #x63 + #x63 + #x64 + #x64 + #x65 + #x65 + #x66 + #x67 + #x68 + #x67 + #x69 + #x66 + #x6a + #x6a + #x6c + #x6b + #x6c + #x6b + #x6d + #x1d9 + #x6d + #x6e + #x1da + #x6e + #x6f + #x72 + #x6f + #x70 + #x7f + #x2fd + #x70 + #x71 + #x71 + #x72 + #x59 + #x5c + #x73 + #x5b + #x74 + #x73 + #x74 + #x75 + #x75 + #x77 + #x76 + #x1d6 + #x76 + #x77 + #x78 + #x79 + #x79 + #x7a + #x7a + #x7b + #x7c + #x7d + #x7b + #x7e + #x7e + #x7f + #x2fb + #x78 + #x7c + #x80 + #x7d + #x80 + #x81 + #x82 + #x87 + #x81 + #x83 + #x84 + #x85 + #x82 + #x83 + #x86 + #x9d + #x84 + #x86 + #x87 + #x88 + #x88 + #x89 + #x8a + #x89 + #x8b + #x8c + #x8c + #x8a + #x8b + #x8d + #x8d + #x8e + #x8e + #x8f + #x8f + #x90 + #x90 + #x91 + #x92 + #x96 + #x91 + #x93 + #x94 + #x97 + #x9a + #x93 + #x95 + #x95 + #x96 + #x97 + #x98 + #x99 + #x92 + #x9a + #x9b + #x98 + #x9b + #x9c + #x9c + #x9d + #x94 + #x9e + #xa1 + #x9e + #x9f + #x9f + #xa0 + #xa0 + #xa1 + #xa2 + #xa2 + #xb3 + #x85 + #xa3 + #x1e5 + #xa3 + #xa4 + #xa5 + #xa4 + #xa6 + #xa6 + #xa7 + #xa7 + #xa8 + #xae + #xa8 + #xa9 + #xaf + #xa9 + #xaa + #xb0 + #xaa + #xab + #xb1 + #x99 + #xac + #xac + #xad + #xad + #xae + #xaf + #xb0 + #xb1 + #xb2 + #xb2 + #xb3 + #xb4 + #xb4 + #xb5 + #xb5 + #xb6 + #xb6 + #xb7 + #xb8 + #xb7 + #xb9 + #xba + #xba + #xb8 + #xb9 + #xbb + #xbe + #xc1 + #xbc + #xbd + #xbe + #x1e8 + #xbd + #xbf + #x1de + #xbc + #xbf + #xc0 + #xc3 + #xc0 + #xc4 + #xc1 + #xc2 + #xc3 + #xc4 + #xc6 + #xc2 + #xc5 + #xc8 + #xc5 + #xc6 + #xc7 + #xc7 + #xc8 + #xc9 + #xc9 + #xcb + #xca + #xcb + #x4b + #xcc + #xcc + #xcd + #xcd + #xce + #xce + #xcf + #xd0 + #xd1 + #xf1 + #xcf + #xd0 + #xd1 + #xd2 + #xf2 + #xd2 + #xd3 + #xd4 + #xd3 + #xd5 + #xda + #xd5 + #x214 + #xd6 + #xd7 + #xd7 + #xd4 + #xd8 + #xd9 + #xda + #xe6 + #xea + #xd8 + #xdb + #xe3 + #xe7 + #xeb + #xdb + #xdc + #xdc + #xdd + #xdd + #x20e + #xde + #xe0 + #xdf + #xe0 + #xdf + #xe1 + #xe1 + #xe2 + #xd9 + #xe2 + #xe3 + #xe4 + #xe8 + #xe4 + #xe5 + #xe6 + #xe7 + #xef + #xe5 + #xe8 + #xe9 + #xea + #xeb + #xe9 + #xec + #xed + #xec + #xee + #xee + #xef + #xed + #xf0 + #xf4 + #xf0 + #xf1 + #xf2 + #xf3 + #xf3 + #xf4 + #x213 + #xf5 + #xf6 + #xf6 + #xf7 + #xf7 + #xf8 + #xf9 + #xfa + #xfa + #xfb + #xde + #xfc + #xfd + #xfe + #xfe + #xff + #xff + #x100 + #x100 + #x101 + #x101 + #x102 + #x103 + #x102 + #x104 + #x105 + #x206 + #x103 + #x104 + #x106 + #x20f + #x106 + #x107 + #x108 + #x109 + #x1fb + #x1ff + #x10a + #x10b + #x11b + #x10c + #x1f3 + #x10c + #x10d + #x10d + #x10e + #x10f + #x1f2 + #x10f + #x110 + #x110 + #x111 + #x10a + #x112 + #x113 + #x113 + #x114 + #x114 + #x115 + #x115 + #x116 + #x117 + #x118 + #x108 + #x119 + #x11a + #x1fe + #x112 + #x11a + #x11b + #x11c + #x1fa + #x116 + #x11d + #x11d + #x11e + #x11e + #x11f + #x120 + #x121 + #x122 + #x209 + #x11f + #x123 + #x121 + #x123 + #x124 + #x125 + #x126 + #x12b + #x126 + #x122 + #x124 + #x127 + #x128 + #x134 + #x120 + #x128 + #x129 + #x12a + #x12b + #x12c + #x12f + #x12c + #x12d + #x12e + #x12e + #x12f + #x130 + #x130 + #x131 + #x129 + #x131 + #x132 + #x208 + #x132 + #x133 + #x20a + #x125 + #x127 + #x133 + #x134 + #x135 + #x135 + #x10e + #x136 + #x136 + #x137 + #x137 + #x138 + #x138 + #x139 + #x13a + #x139 + #x13b + #x13c + #x13d + #x13a + #x13b + #x13e + #x13e + #x13f + #x140 + #x14e + #x13f + #x141 + #x142 + #x143 + #x140 + #x141 + #x144 + #x144 + #x146 + #x14a + #x145 + #x146 + #x13c + #x145 + #x147 + #x13d + #x147 + #x148 + #x111 + #x148 + #x149 + #x149 + #x14a + #x14b + #x1f0 + #x14b + #x14c + #x14d + #x14e + #x142 + #x14f + #x150 + #x143 + #x14d + #x14f + #x151 + #x151 + #x152 + #x152 + #x153 + #x153 + #x154 + #x154 + #x155 + #x150 + #x156 + #x156 + #x157 + #x157 + #x158 + #x159 + #x15a + #x15b + #x15c + #x15d + #x15e + #x15f + #x160 + #x161 + #x310 + #x155 + #x162 + #x162 + #x163 + #x163 + #x164 + #x164 + #x165 + #x17c + #x166 + #x167 + #x166 + #x168 + #x169 + #x16a + #x169 + #x16b + #x16c + #x16c + #x16d + #x16d + #x16e + #x16f + #x171 + #x2c7 + #x2dd + #x16b + #x170 + #x171 + #x172 + #x173 + #x2de + #x168 + #x16a + #x173 + #x174 + #x175 + #x2d3 + #x2e3 + #x165 + #x167 + #x174 + #x176 + #x177 + #x2d2 + #x2e8 + #x176 + #x178 + #x17b + #x2e1 + #x2e7 + #x2f1 + #x178 + #x179 + #x2ca + #x2cf + #x2d7 + #x2e2 + #x179 + #x17a + #x17a + #x17b + #x17c + #x283 + #x308 + #x17d + #x17e + #x17f + #x17d + #x180 + #x181 + #x269 + #x182 + #x183 + #x1e0 + #x27d + #x281 + #x195 + #x25f + #x184 + #x185 + #x186 + #x186 + #x187 + #x187 + #x188 + #x188 + #x189 + #x18a + #x191 + #x184 + #x189 + #x18b + #x18c + #x199 + #x18d + #x18e + #x24f + #x18d + #x18f + #x190 + #x18f + #x191 + #x192 + #x190 + #x192 + #x193 + #x193 + #x194 + #x195 + #x196 + #x266 + #x197 + #x197 + #x198 + #x194 + #x302 + #x18c + #x24d + #x18a + #x18b + #x199 + #x17e + #x19a + #x307 + #x1c1 + #x1d8 + #x19b + #x19c + #x1b6 + #x19b + #x19d + #x19e + #x19c + #x19d + #x19f + #x19f + #x1a0 + #x1a1 + #x1a2 + #x1a1 + #x1a3 + #x1a8 + #x1a3 + #x1a4 + #x1a5 + #x1a6 + #x1a7 + #x1a8 + #x1a9 + #x1af + #x30b + #x1aa + #x1ab + #x1aa + #x1ac + #x1ac + #x1ad + #x1a7 + #x1ad + #x1ab + #x1ae + #x1af + #x1b0 + #x1b0 + #x1b1 + #x1b2 + #x309 + #x1b1 + #x1b3 + #x1ca + #x1b3 + #x1b4 + #x1b5 + #x1be + #x1b5 + #x1b6 + #x1b7 + #x1bb + #x1b8 + #x1b9 + #x1ba + #x1a2 + #x1b4 + #x1bb + #x1bc + #x1bd + #x1bd + #x1a4 + #x1c7 + #x1a0 + #x1b7 + #x1bc + #x1be + #x19a + #x1bf + #x1c0 + #x1c1 + #x1bf + #x1c2 + #x1c3 + #x1c0 + #x1c2 + #x1c4 + #x1c4 + #x1c5 + #x1c6 + #x1c7 + #x1b9 + #x1c8 + #x1c9 + #x1d5 + #x1b2 + #x1c3 + #x1ca + #x1cb + #x1d1 + #x30a + #x1cc + #x1cc + #x1cd + #x1cd + #x1ce + #x1ce + #x1cf + #x1cf + #x1d0 + #x1d2 + #x1d1 + #x1d2 + #x1d3 + #x1d0 + #x1d3 + #x1d4 + #x1d4 + #x1d7 + #x1d5 + #x1d6 + #x1c5 + #x1d7 + #x19e + #x1d8 + #x1d9 + #x1da + #x1db + #x1db + #x2fc + #x1dc + #x1dc + #x1dd + #x1de + #x1df + #x1df + #x1e0 + #x1e1 + #x1e2 + #x1e2 + #x1e3 + #x43 + #x1e4 + #xa5 + #xab + #x1e5 + #xca + #x1e6 + #x1e6 + #x1e7 + #xbb + #x1e8 + #x1e9 + #x1ea + #x30e + #x1eb + #x1ec + #x1eb + #x1ed + #x1ed + #x1ee + #x1ef + #x1f0 + #x14c + #x1ec + #x1f1 + #x1f1 + #x11c + #x1f2 + #x1f7 + #x1f3 + #x1f4 + #x1fd + #x200 + #x203 + #x1f4 + #x1f5 + #x1f6 + #x1f7 + #x1fc + #x1f8 + #x119 + #x1f9 + #x1fa + #x1fb + #x1fc + #x1fd + #x201 + #x10b + #x1fe + #x1ff + #x1f5 + #x200 + #x201 + #x202 + #x204 + #x107 + #x1f6 + #x1f9 + #x203 + #x204 + #x109 + #x205 + #x206 + #x12a + #x12d + #x207 + #x208 + #x209 + #x20a + #x207 + #x20b + #x20b + #x20c + #x20c + #x20d + #x20d + #xfd + #x20e + #x105 + #x202 + #x205 + #x20f + #x210 + #x210 + #x211 + #x211 + #x212 + #x212 + #xf5 + #x213 + #xd6 + #x214 + #x215 + #x215 + #x216 + #x216 + #x217 + #x218 + #x217 + #x219 + #x219 + #x21a + #xfb + #x21b + #xf8 + #x22e + #x21c + #x21c + #x21d + #x21d + #x21e + #x21e + #x21f + #x21f + #x221 + #x220 + #x221 + #x222 + #x220 + #x222 + #x21b + #x218 + #x223 + #x21a + #x223 + #x224 + #x224 + #x225 + #x225 + #x226 + #x226 + #x227 + #x227 + #x229 + #xfc + #x228 + #x229 + #x22a + #x22a + #x22b + #x22b + #x22c + #x22c + #xf9 + #x22d + #x228 + #x22d + #x22e + #x22f + #x22f + #x230 + #x230 + #x68 + #x69 + #x231 + #x24a + #x231 + #x246 + #x232 + #x245 + #x233 + #x239 + #x248 + #x233 + #x234 + #x235 + #x236 + #x237 + #x237 + #x235 + #x238 + #x239 + #x23a + #x23a + #x23b + #x242 + #x23b + #x23c + #x23c + #x23d + #x23d + #x23e + #x23e + #x23f + #x23f + #x240 + #x240 + #x15b + #x241 + #x242 + #x241 + #x243 + #x243 + #x244 + #x244 + #x245 + #x246 + #x247 + #x238 + #x248 + #x249 + #x247 + #x249 + #x15c + #x24a + #x198 + #x236 + #x24b + #x297 + #x24c + #x24c + #x18e + #x24d + #x24e + #x24e + #x24f + #x286 + #x250 + #x250 + #x251 + #x251 + #x252 + #x252 + #x253 + #x253 + #x254 + #x254 + #x255 + #x255 + #x256 + #x256 + #x257 + #x257 + #x258 + #x258 + #x259 + #x259 + #x25a + #x25a + #x25b + #x25b + #x25c + #x25c + #x25d + #x25d + #x25e + #x25e + #x185 + #x25f + #x260 + #x260 + #x261 + #x261 + #x262 + #x262 + #x263 + #x263 + #x264 + #x267 + #x264 + #x265 + #x265 + #x266 + #x268 + #x183 + #x267 + #x196 + #x268 + #x269 + #x26a + #x26a + #x26b + #x26b + #x26c + #x26c + #x26d + #x26d + #x26e + #x26e + #x26f + #x26f + #x270 + #x270 + #x271 + #x271 + #x272 + #x272 + #x181 + #x273 + #x274 + #x279 + #x273 + #x275 + #x276 + #x277 + #x180 + #x274 + #x275 + #x278 + #x277 + #x278 + #x279 + #x27a + #x276 + #x27b + #x27b + #x27c + #x27c + #x27d + #x27e + #x27a + #x27f + #x27f + #x280 + #x27e + #x280 + #x281 + #x182 + #x282 + #x284 + #x283 + #x284 + #x30d + #x285 + #x286 + #x285 + #x287 + #x287 + #x288 + #x288 + #x290 + #x289 + #x289 + #x28a + #x28a + #x28b + #x28b + #x28c + #x28c + #x28d + #x28d + #x28e + #x28e + #x28f + #x28f + #x290 + #x291 + #x291 + #x292 + #x293 + #x2c2 + #x293 + #x294 + #x295 + #x2ae + #x295 + #x296 + #x296 + #x2c6 + #x297 + #x2ad + #x298 + #x299 + #x298 + #x29a + #x29d + #x29a + #x29b + #x29b + #x29c + #x29c + #x29d + #x29e + #x29f + #x2a0 + #x2ac + #x29e + #x2a0 + #x2a1 + #x2a2 + #x2a1 + #x2a3 + #x2a3 + #x2c1 + #x2a4 + #x2a7 + #x2a4 + #x2a5 + #x2a5 + #x2a6 + #x2a6 + #x2a7 + #x2a8 + #x2ab + #x2a8 + #x2a9 + #x2a9 + #x2aa + #x2aa + #x2ab + #x29f + #x2ac + #x2ad + #x304 + #x2ae + #x2bc + #x2af + #x2b2 + #x2af + #x2b0 + #x2b0 + #x2b1 + #x2b1 + #x2b2 + #x2b3 + #x2c4 + #x2b3 + #x2b4 + #x2b4 + #x2b5 + #x2b6 + #x2b7 + #x2b7 + #x2b8 + #x2b8 + #x305 + #x2b9 + #x2ba + #x2ba + #x2bb + #x2bb + #x2c0 + #x294 + #x2bc + #x2bd + #x2be + #x2be + #x2bf + #x2bd + #x2bf + #x2b9 + #x2c0 + #x2a2 + #x2c1 + #x292 + #x2c2 + #x2c3 + #x299 + #x2c3 + #x2c4 + #x2c5 + #x2b5 + #x2c5 + #x1e7 + #x2c6 + #x1ea + #x2c7 + #x2c9 + #x2da + #x1e9 + #x2c8 + #x2c9 + #x2ca + #x16f + #x2cb + #x2cc + #x2cd + #x2d6 + #x2df + #x2ec + #x2cb + #x2ce + #x2cf + #x2d5 + #x2d8 + #x2ef + #x2f3 + #x175 + #x2d0 + #x2d4 + #x2e4 + #x2ed + #x2d0 + #x2d1 + #x2d2 + #x2e6 + #x2ee + #x177 + #x2d1 + #x2d3 + #x2d4 + #x2d5 + #x2d6 + #x2d9 + #x2db + #x2c8 + #x2d7 + #x2d8 + #x2d9 + #x16e + #x2cc + #x2da + #x2db + #x2dc + #x2dd + #x2de + #x2df + #x2e0 + #x2ce + #x2e1 + #x2e2 + #x2f0 + #x2f4 + #x170 + #x2e3 + #x2e4 + #x2e5 + #x2f7 + #x2e6 + #x2e7 + #x2e8 + #x2e9 + #x2ea + #x2e5 + #x2eb + #x2ec + #x2ed + #x2f8 + #x2fa + #x2ea + #x2eb + #x2ee + #x2ef + #x2f2 + #x2f5 + #x2e9 + #x2f0 + #x2f1 + #x2f2 + #x2f6 + #x2f3 + #x2f4 + #x2f5 + #x2f6 + #x172 + #x2dc + #x2f7 + #x2f8 + #x2f9 + #x2cd + #x2e0 + #x2f9 + #x2fa + #x2fb + #x2fc + #x2fd + #x15a + #x159 + #x15d + #x2fe + #x2fe + #x2ff + #x2ff + #x15e + #x15f + #x300 + #x300 + #x301 + #x301 + #x160 + #x161 + #x232 + #x234 + #x302 + #x24b + #x303 + #x303 + #x304 + #x2b6 + #x305 + #x306 + #x306 + #x17f + #x307 + #x308 + #x1cb + #x309 + #x30c + #x1a5 + #x1c6 + #x1a9 + #x1c9 + #x1ae + #x30a + #x30b + #x30c + #x1ba + #x1b8 + #x1c8 + #x1a6 + #x282 + #x30d + #x30e + #x158 + #x30f + #x30f + #x310 + #x118 + #x311 + #x311 + #x117 + #x1f8 + #x312 + #x312 + #x313 + #x313 + #x314 + #x314 + #x315 + #x315 + #x316 + #x316 + #x1ef + #x1ee + #x0 + #x0 + ) + :visgroup (new 'static 'inline-array trail-conn-hash-cell 160 + (new 'static 'trail-conn-hash-cell :conn-count #x4) + (new 'static 'trail-conn-hash-cell :first-conn #x4 :conn-count #x4) + (new 'static 'trail-conn-hash-cell :first-conn #x8 :conn-count #x4) + (new 'static 'trail-conn-hash-cell :first-conn #xc :conn-count #x3) + (new 'static 'trail-conn-hash-cell :first-conn #xf :conn-count #x3) + (new 'static 'trail-conn-hash-cell :first-conn #x12 :conn-count #x3) + (new 'static 'trail-conn-hash-cell :first-conn #x15 :conn-count #x5) + (new 'static 'trail-conn-hash-cell :first-conn #x1a :conn-count #x3) + (new 'static 'trail-conn-hash-cell :first-conn #x1d :conn-count #x4) + (new 'static 'trail-conn-hash-cell :first-conn #x21 :conn-count #x3) + (new 'static 'trail-conn-hash-cell :first-conn #x24 :conn-count #x4) + (new 'static 'trail-conn-hash-cell :first-conn #x28 :conn-count #x6) + (new 'static 'trail-conn-hash-cell :first-conn #x2e :conn-count #x4) + (new 'static 'trail-conn-hash-cell :first-conn #x32 :conn-count #x5) + (new 'static 'trail-conn-hash-cell :first-conn #x37 :conn-count #x3) + (new 'static 'trail-conn-hash-cell :first-conn #x3a :conn-count #x4) + (new 'static 'trail-conn-hash-cell :first-conn #x3e :conn-count #x4) + (new 'static 'trail-conn-hash-cell :first-conn #x42 :conn-count #x3) + (new 'static 'trail-conn-hash-cell :first-conn #x45 :conn-count #x2) + (new 'static 'trail-conn-hash-cell :first-conn #x47 :conn-count #x2) + (new 'static 'trail-conn-hash-cell :first-conn #x49 :conn-count #x3) + (new 'static 'trail-conn-hash-cell :first-conn #x4c :conn-count #x4) + (new 'static 'trail-conn-hash-cell :first-conn #x50 :conn-count #x3) + (new 'static 'trail-conn-hash-cell :first-conn #x53 :conn-count #x3) + (new 'static 'trail-conn-hash-cell :first-conn #x56 :conn-count #x4) + (new 'static 'trail-conn-hash-cell :first-conn #x5a :conn-count #x3) + (new 'static 'trail-conn-hash-cell :first-conn #x5d :conn-count #x5) + (new 'static 'trail-conn-hash-cell :first-conn #x62 :conn-count #x6) + (new 'static 'trail-conn-hash-cell :first-conn #x68 :conn-count #x5) + (new 'static 'trail-conn-hash-cell :first-conn #x6d :conn-count #x4) + (new 'static 'trail-conn-hash-cell :first-conn #x71 :conn-count #x4) + (new 'static 'trail-conn-hash-cell :first-conn #x75 :conn-count #x3) + (new 'static 'trail-conn-hash-cell :first-conn #x78 :conn-count #x3) + (new 'static 'trail-conn-hash-cell :first-conn #x7b :conn-count #x3) + (new 'static 'trail-conn-hash-cell :first-conn #x7e :conn-count #x5) + (new 'static 'trail-conn-hash-cell :first-conn #x83 :conn-count #xd) + (new 'static 'trail-conn-hash-cell :first-conn #x90 :conn-count #x5) + (new 'static 'trail-conn-hash-cell :first-conn #x95 :conn-count #x5) + (new 'static 'trail-conn-hash-cell :first-conn #x9a :conn-count #x3) + (new 'static 'trail-conn-hash-cell :first-conn #x9d :conn-count #x3) + (new 'static 'trail-conn-hash-cell :first-conn #xa0 :conn-count #x5) + (new 'static 'trail-conn-hash-cell :first-conn #xa5 :conn-count #x3) + (new 'static 'trail-conn-hash-cell :first-conn #xa8 :conn-count #x4) + (new 'static 'trail-conn-hash-cell :first-conn #xac :conn-count #x3) + (new 'static 'trail-conn-hash-cell :first-conn #xaf :conn-count #x4) + (new 'static 'trail-conn-hash-cell :first-conn #xb3 :conn-count #x4) + (new 'static 'trail-conn-hash-cell :first-conn #xb7 :conn-count #x4) + (new 'static 'trail-conn-hash-cell :first-conn #xbb :conn-count #x3) + (new 'static 'trail-conn-hash-cell :first-conn #xbe :conn-count #x5) + (new 'static 'trail-conn-hash-cell :first-conn #xc3 :conn-count #x3) + (new 'static 'trail-conn-hash-cell :first-conn #xc6 :conn-count #xa) + (new 'static 'trail-conn-hash-cell :first-conn #xd0 :conn-count #x6) + (new 'static 'trail-conn-hash-cell :first-conn #xd6 :conn-count #xb) + (new 'static 'trail-conn-hash-cell :first-conn #xe1 :conn-count #x3) + (new 'static 'trail-conn-hash-cell :first-conn #xe4 :conn-count #x3) + (new 'static 'trail-conn-hash-cell :first-conn #xe7 :conn-count #x6) + (new 'static 'trail-conn-hash-cell :first-conn #xed :conn-count #x4) + (new 'static 'trail-conn-hash-cell :first-conn #xf1 :conn-count #x5) + (new 'static 'trail-conn-hash-cell :first-conn #xf6 :conn-count #x2) + (new 'static 'trail-conn-hash-cell :first-conn #xf8 :conn-count #x2) + (new 'static 'trail-conn-hash-cell :first-conn #xfa :conn-count #x2) + (new 'static 'trail-conn-hash-cell :first-conn #xfc :conn-count #x9) + (new 'static 'trail-conn-hash-cell :first-conn #x105 :conn-count #x11) + (new 'static 'trail-conn-hash-cell :first-conn #x116 :conn-count #xa) + (new 'static 'trail-conn-hash-cell :first-conn #x120 :conn-count #x5) + (new 'static 'trail-conn-hash-cell :first-conn #x125 :conn-count #xd) + (new 'static 'trail-conn-hash-cell :first-conn #x132 :conn-count #xa) + (new 'static 'trail-conn-hash-cell :first-conn #x13c :conn-count #x3) + (new 'static 'trail-conn-hash-cell :first-conn #x13f :conn-count #x2) + (new 'static 'trail-conn-hash-cell :first-conn #x141 :conn-count #x3) + (new 'static 'trail-conn-hash-cell :first-conn #x144 :conn-count #x3) + (new 'static 'trail-conn-hash-cell :first-conn #x147 :conn-count #x3) + (new 'static 'trail-conn-hash-cell :first-conn #x14a :conn-count #x4) + (new 'static 'trail-conn-hash-cell :first-conn #x14e :conn-count #x3) + (new 'static 'trail-conn-hash-cell :first-conn #x151 :conn-count #x2) + (new 'static 'trail-conn-hash-cell :first-conn #x153 :conn-count #x3) + (new 'static 'trail-conn-hash-cell :first-conn #x156 :conn-count #x3) + (new 'static 'trail-conn-hash-cell :first-conn #x159 :conn-count #x2) + (new 'static 'trail-conn-hash-cell :first-conn #x15b :conn-count #x3) + (new 'static 'trail-conn-hash-cell :first-conn #x15e :conn-count #x2) + (new 'static 'trail-conn-hash-cell :first-conn #x160 :conn-count #x3) + (new 'static 'trail-conn-hash-cell :first-conn #x163 :conn-count #x4) + (new 'static 'trail-conn-hash-cell :first-conn #x167 :conn-count #x2) + (new 'static 'trail-conn-hash-cell :first-conn #x169 :conn-count #x2) + (new 'static 'trail-conn-hash-cell :first-conn #x16b :conn-count #x3) + (new 'static 'trail-conn-hash-cell :first-conn #x16e :conn-count #x2) + (new 'static 'trail-conn-hash-cell :first-conn #x170 :conn-count #x2) + (new 'static 'trail-conn-hash-cell :first-conn #x172 :conn-count #x3) + (new 'static 'trail-conn-hash-cell :first-conn #x175 :conn-count #x3) + (new 'static 'trail-conn-hash-cell :first-conn #x178 :conn-count #x3) + (new 'static 'trail-conn-hash-cell :first-conn #x17b :conn-count #x3) + (new 'static 'trail-conn-hash-cell :first-conn #x17e :conn-count #x2) + (new 'static 'trail-conn-hash-cell :first-conn #x180 :conn-count #x3) + (new 'static 'trail-conn-hash-cell :first-conn #x183 :conn-count #x1) + (new 'static 'trail-conn-hash-cell :first-conn #x184 :conn-count #x2) + (new 'static 'trail-conn-hash-cell :first-conn #x186 :conn-count #x4) + (new 'static 'trail-conn-hash-cell :first-conn #x18a :conn-count #x2) + (new 'static 'trail-conn-hash-cell :first-conn #x18c :conn-count #x5) + (new 'static 'trail-conn-hash-cell :first-conn #x191 :conn-count #x2) + (new 'static 'trail-conn-hash-cell :first-conn #x193 :conn-count #x3) + (new 'static 'trail-conn-hash-cell :first-conn #x196 :conn-count #x3) + (new 'static 'trail-conn-hash-cell :first-conn #x199 :conn-count #x3) + (new 'static 'trail-conn-hash-cell :first-conn #x19c :conn-count #x3) + (new 'static 'trail-conn-hash-cell :first-conn #x19f :conn-count #x2) + (new 'static 'trail-conn-hash-cell :first-conn #x1a1 :conn-count #x2) + (new 'static 'trail-conn-hash-cell :first-conn #x1a3 :conn-count #x2) + (new 'static 'trail-conn-hash-cell :first-conn #x1a5 :conn-count #x2) + (new 'static 'trail-conn-hash-cell :first-conn #x1a7 :conn-count #x2) + (new 'static 'trail-conn-hash-cell :first-conn #x1a9 :conn-count #x2) + (new 'static 'trail-conn-hash-cell :first-conn #x1ab :conn-count #x3) + (new 'static 'trail-conn-hash-cell :first-conn #x1ae :conn-count #x2) + (new 'static 'trail-conn-hash-cell :first-conn #x1b0 :conn-count #x3) + (new 'static 'trail-conn-hash-cell :first-conn #x1b3 :conn-count #x2) + (new 'static 'trail-conn-hash-cell :first-conn #x1b5 :conn-count #x2) + (new 'static 'trail-conn-hash-cell :first-conn #x1b7 :conn-count #x3) + (new 'static 'trail-conn-hash-cell :first-conn #x1ba :conn-count #x2) + (new 'static 'trail-conn-hash-cell :first-conn #x1bc :conn-count #x3) + (new 'static 'trail-conn-hash-cell :first-conn #x1bf :conn-count #x4) + (new 'static 'trail-conn-hash-cell :first-conn #x1c3 :conn-count #x3) + (new 'static 'trail-conn-hash-cell :first-conn #x1c6 :conn-count #x2) + (new 'static 'trail-conn-hash-cell :first-conn #x1c8 :conn-count #x3) + (new 'static 'trail-conn-hash-cell :first-conn #x1cb :conn-count #x3) + (new 'static 'trail-conn-hash-cell :first-conn #x1ce :conn-count #x2) + (new 'static 'trail-conn-hash-cell :first-conn #x1d0 :conn-count #x2) + (new 'static 'trail-conn-hash-cell :first-conn #x1d2 :conn-count #x2) + (new 'static 'trail-conn-hash-cell :first-conn #x1d4 :conn-count #x3) + (new 'static 'trail-conn-hash-cell :first-conn #x1d7 :conn-count #x1) + (new 'static 'trail-conn-hash-cell :first-conn #x1d8 :conn-count #x2) + (new 'static 'trail-conn-hash-cell :first-conn #x1da :conn-count #x2) + (new 'static 'trail-conn-hash-cell :first-conn #x1dc :conn-count #x2) + (new 'static 'trail-conn-hash-cell :first-conn #x1de :conn-count #x4) + (new 'static 'trail-conn-hash-cell :first-conn #x1e2 :conn-count #x3) + (new 'static 'trail-conn-hash-cell :first-conn #x1e5 :conn-count #x3) + (new 'static 'trail-conn-hash-cell :first-conn #x1e8 :conn-count #x2) + (new 'static 'trail-conn-hash-cell :first-conn #x1ea :conn-count #x2) + (new 'static 'trail-conn-hash-cell :first-conn #x1ec :conn-count #x2) + (new 'static 'trail-conn-hash-cell :first-conn #x1ee :conn-count #x3) + (new 'static 'trail-conn-hash-cell :first-conn #x1f1 :conn-count #x4) + (new 'static 'trail-conn-hash-cell :first-conn #x1f5 :conn-count #x2) + (new 'static 'trail-conn-hash-cell :first-conn #x1f7 :conn-count #x5) + (new 'static 'trail-conn-hash-cell :first-conn #x1fc :conn-count #x3) + (new 'static 'trail-conn-hash-cell :first-conn #x1ff :conn-count #x3) + (new 'static 'trail-conn-hash-cell :first-conn #x202 :conn-count #x3) + (new 'static 'trail-conn-hash-cell :first-conn #x205 :conn-count #x3) + (new 'static 'trail-conn-hash-cell :first-conn #x208 :conn-count #x2) + (new 'static 'trail-conn-hash-cell :first-conn #x20a :conn-count #x3) + (new 'static 'trail-conn-hash-cell :first-conn #x20d :conn-count #x3) + (new 'static 'trail-conn-hash-cell :first-conn #x210 :conn-count #x3) + (new 'static 'trail-conn-hash-cell :first-conn #x213 :conn-count #xa) + (new 'static 'trail-conn-hash-cell :first-conn #x21d :conn-count #x11) + (new 'static 'trail-conn-hash-cell :first-conn #x22e :conn-count #xd) + (new 'static 'trail-conn-hash-cell :first-conn #x23b :conn-count #x8) + (new 'static 'trail-conn-hash-cell :first-conn #x243 :conn-count #x3) + (new 'static 'trail-conn-hash-cell :first-conn #x246 :conn-count #x2) + (new 'static 'trail-conn-hash-cell :first-conn #x248 :conn-count #x3) + (new 'static 'trail-conn-hash-cell :first-conn #x24b :conn-count #x2) + (new 'static 'trail-conn-hash-cell :first-conn #x24d :conn-count #x2) + (new 'static 'trail-conn-hash-cell) + (new 'static 'trail-conn-hash-cell) + (new 'static 'trail-conn-hash-cell) + ) + :visnode-ids (new 'static 'array uint16 592 + #x4 + #x5 + #xa + #xb + #x5 + #x6 + #x7 + #x8 + #x9 + #xc + #xd + #x1d + #xd + #xe + #xf + #x12 + #x13 + #x14 + #x1a + #x1b + #x1c + #x8 + #x9 + #xc + #xd + #x1d + #x21 + #x22 + #x2a + #x25 + #x26 + #x2c + #x2d + #x28 + #x2b + #x163 + #x33 + #x34 + #x36 + #x39 + #x33 + #x34 + #x36 + #x37 + #x38 + #x39 + #x36 + #x37 + #x38 + #x39 + #x33 + #x36 + #x37 + #x38 + #x39 + #x3a + #x3b + #x4e + #x3a + #x3b + #x4e + #x50 + #x3c + #x3d + #x3e + #x3f + #x42 + #x45 + #x46 + #x42 + #x45 + #x45 + #x46 + #x48 + #x49 + #x15a + #x4a + #x4b + #x4c + #x4d + #x3b + #x4e + #x50 + #x4b + #x59 + #x269 + #x5b + #x5c + #x5d + #x5e + #x5f + #x60 + #x62 + #x66 + #x67 + #x68 + #x69 + #x6a + #x66 + #x67 + #x68 + #x69 + #x6a + #x6b + #x67 + #x68 + #x69 + #x6a + #x6b + #x68 + #x69 + #x6a + #x6b + #x6d + #x6e + #x6f + #x70 + #x72 + #x73 + #x164 + #x76 + #x77 + #x7c + #x78 + #x79 + #x7d + #x82 + #x83 + #x84 + #x85 + #x8d + #x82 + #x83 + #x84 + #x85 + #x86 + #x87 + #x88 + #x89 + #x8a + #x8b + #x8c + #x8d + #x167 + #x84 + #x86 + #x87 + #x88 + #x8d + #x84 + #x8a + #x8b + #x8c + #x8d + #x95 + #x97 + #xad + #x98 + #x99 + #x9d + #x9d + #x9e + #xa6 + #xa7 + #xa8 + #xac + #xad + #xae + #xb2 + #x192 + #x1a8 + #x1a9 + #xb9 + #xba + #xbb + #xb9 + #xba + #xbb + #x182 + #xba + #xbb + #x17a + #x182 + #xbd + #xca + #x176 + #x177 + #xbe + #xc5 + #xcb + #xbd + #xca + #xcb + #x176 + #x177 + #xca + #xcb + #x176 + #xce + #xcf + #xd0 + #xd2 + #xd3 + #xd4 + #xd9 + #xda + #xdb + #x17b + #xce + #xcf + #xd0 + #xd2 + #xd3 + #xdb + #xce + #xcf + #xd0 + #xd2 + #xd3 + #xd4 + #xd9 + #xda + #xdb + #x17b + #x17c + #xe1 + #xe2 + #xe3 + #xe2 + #xea + #xeb + #xe4 + #xe5 + #xe6 + #xf1 + #xf2 + #xf3 + #xea + #xeb + #xec + #xed + #xe7 + #xe9 + #xea + #xeb + #xec + #xf6 + #xf7 + #xf7 + #xfc + #xfc + #xfd + #x105 + #x10a + #x255 + #x256 + #x257 + #x258 + #x25c + #x25d + #x25e + #x105 + #x106 + #x107 + #x10a + #x255 + #x256 + #x257 + #x258 + #x259 + #x25c + #x25d + #x25e + #x25f + #x261 + #x263 + #x267 + #x268 + #x105 + #x106 + #x107 + #x257 + #x259 + #x25f + #x261 + #x263 + #x267 + #x268 + #x107 + #x108 + #x259 + #x25a + #x25b + #x105 + #x106 + #x107 + #x108 + #x257 + #x259 + #x25a + #x25b + #x25f + #x261 + #x263 + #x267 + #x268 + #x108 + #x109 + #x10a + #x258 + #x25a + #x260 + #x262 + #x264 + #x265 + #x266 + #x10e + #x126 + #x27c + #x116 + #x117 + #x118 + #x119 + #x125 + #x11b + #x1d4 + #x1d5 + #x11c + #x11d + #x11e + #x11f + #x121 + #x122 + #x123 + #x120 + #x1f4 + #x1f6 + #x11f + #x123 + #x128 + #x129 + #x12a + #x14f + #x150 + #x151 + #x150 + #x151 + #x131 + #x136 + #x281 + #x12d + #x130 + #x139 + #x13a + #x14d + #x13b + #x13c + #x13f + #x144 + #x14c + #x157 + #x12e + #x142 + #x145 + #x146 + #x147 + #x156 + #x158 + #x126 + #x145 + #x14e + #x27d + #x281 + #x153 + #x154 + #x155 + #x57 + #x5a + #x5b + #x168 + #x255 + #x256 + #xf9 + #xfa + #xf2 + #xf8 + #xf9 + #xf1 + #xbc + #x179 + #xe0 + #xe1 + #xe2 + #xe3 + #xf8 + #xf9 + #x173 + #x174 + #x176 + #x178 + #x179 + #xc3 + #xc4 + #xbd + #xca + #x176 + #xbd + #xca + #x177 + #xba + #x17a + #x182 + #xba + #xbb + #x182 + #xa0 + #xa1 + #xb5 + #x181 + #x9e + #x9f + #xb3 + #x191 + #x1a3 + #x1a9 + #xb4 + #x1a3 + #xb4 + #x1a3 + #x1a9 + #x1a8 + #x1a9 + #x1a3 + #x1a8 + #x1a9 + #x13 + #x161 + #x33 + #x162 + #x1b5 + #x1b9 + #x276 + #x1b5 + #x276 + #x1b3 + #x1b9 + #x1cc + #x1b9 + #x1cb + #x1cc + #x1cd + #x1b1 + #x1cb + #x1cd + #x1b1 + #x1cb + #x1b0 + #x1b1 + #x1cb + #x1b0 + #x1b1 + #x1ce + #x1b0 + #x1ce + #xfb + #x1b0 + #x1b3 + #x1b4 + #x220 + #x23b + #x249 + #x115 + #x114 + #x1ec + #x113 + #x120 + #x11a + #x124 + #x203 + #x204 + #x205 + #x206 + #x112 + #x209 + #x20c + #x20d + #x20e + #x286 + #x20f + #x210 + #x211 + #x212 + #x21d + #x21e + #x21d + #x21e + #x24f + #x21d + #x21e + #x21f + #x24f + #x21f + #x220 + #x21d + #x21e + #x21f + #x220 + #x24f + #x21e + #x21f + #x220 + #x21f + #x220 + #x24f + #x21f + #x220 + #x249 + #x221 + #x23b + #x249 + #x221 + #x222 + #x221 + #x222 + #x23b + #x221 + #x222 + #x223 + #x222 + #x223 + #x245 + #x105 + #x10a + #x168 + #x255 + #x256 + #x257 + #x258 + #x25c + #x25d + #x25e + #x105 + #x108 + #x109 + #x10a + #x255 + #x256 + #x257 + #x258 + #x25a + #x25c + #x25d + #x25e + #x260 + #x262 + #x264 + #x265 + #x266 + #x107 + #x108 + #x109 + #x10a + #x258 + #x259 + #x25a + #x25b + #x260 + #x262 + #x264 + #x265 + #x266 + #x105 + #x10a + #x255 + #x256 + #x257 + #x258 + #x25d + #x25e + #x166 + #x223 + #x254 + #xc7 + #xc8 + #xc6 + #xc7 + #xc8 + #xc2 + #xc3 + #xc1 + #xde + #x0 + ) + :conn-hash (new 'static 'trail-conn-hash + :cell-width (meters 171.0312) + :origin (new 'static 'vector :x -4150270.0 :z -3253246.2 :w 1.0) + :cell (new 'static 'inline-array trail-conn-hash-cell 256 + (new 'static 'trail-conn-hash-cell) + (new 'static 'trail-conn-hash-cell) + (new 'static 'trail-conn-hash-cell) + (new 'static 'trail-conn-hash-cell) + (new 'static 'trail-conn-hash-cell) + (new 'static 'trail-conn-hash-cell) + (new 'static 'trail-conn-hash-cell :conn-count #x7) + (new 'static 'trail-conn-hash-cell :first-conn #x7 :conn-count #xe) + (new 'static 'trail-conn-hash-cell :first-conn #x15 :conn-count #x5) + (new 'static 'trail-conn-hash-cell :first-conn #x1a :conn-count #x9) + (new 'static 'trail-conn-hash-cell :first-conn #x23) + (new 'static 'trail-conn-hash-cell :first-conn #x23) + (new 'static 'trail-conn-hash-cell :first-conn #x23) + (new 'static 'trail-conn-hash-cell :first-conn #x23) + (new 'static 'trail-conn-hash-cell :first-conn #x23) + (new 'static 'trail-conn-hash-cell :first-conn #x23) + (new 'static 'trail-conn-hash-cell :first-conn #x23) + (new 'static 'trail-conn-hash-cell :first-conn #x23) + (new 'static 'trail-conn-hash-cell :first-conn #x23) + (new 'static 'trail-conn-hash-cell :first-conn #x23) + (new 'static 'trail-conn-hash-cell :first-conn #x23) + (new 'static 'trail-conn-hash-cell :first-conn #x23) + (new 'static 'trail-conn-hash-cell :first-conn #x23 :conn-count #x9) + (new 'static 'trail-conn-hash-cell :first-conn #x2c :conn-count #xc) + (new 'static 'trail-conn-hash-cell :first-conn #x38 :conn-count #x8) + (new 'static 'trail-conn-hash-cell :first-conn #x40 :conn-count #x9) + (new 'static 'trail-conn-hash-cell :first-conn #x49 :conn-count #x2) + (new 'static 'trail-conn-hash-cell :first-conn #x4b) + (new 'static 'trail-conn-hash-cell :first-conn #x4b) + (new 'static 'trail-conn-hash-cell :first-conn #x4b) + (new 'static 'trail-conn-hash-cell :first-conn #x4b) + (new 'static 'trail-conn-hash-cell :first-conn #x4b) + (new 'static 'trail-conn-hash-cell :first-conn #x4b) + (new 'static 'trail-conn-hash-cell :first-conn #x4b) + (new 'static 'trail-conn-hash-cell :first-conn #x4b) + (new 'static 'trail-conn-hash-cell :first-conn #x4b :conn-count #x1) + (new 'static 'trail-conn-hash-cell :first-conn #x4c :conn-count #x9) + (new 'static 'trail-conn-hash-cell :first-conn #x55 :conn-count #x8) + (new 'static 'trail-conn-hash-cell :first-conn #x5d :conn-count #xb) + (new 'static 'trail-conn-hash-cell :first-conn #x68 :conn-count #xc) + (new 'static 'trail-conn-hash-cell :first-conn #x74 :conn-count #xe) + (new 'static 'trail-conn-hash-cell :first-conn #x82 :conn-count #xf) + (new 'static 'trail-conn-hash-cell :first-conn #x91 :conn-count #x9) + (new 'static 'trail-conn-hash-cell :first-conn #x9a) + (new 'static 'trail-conn-hash-cell :first-conn #x9a) + (new 'static 'trail-conn-hash-cell :first-conn #x9a) + (new 'static 'trail-conn-hash-cell :first-conn #x9a) + (new 'static 'trail-conn-hash-cell :first-conn #x9a) + (new 'static 'trail-conn-hash-cell :first-conn #x9a) + (new 'static 'trail-conn-hash-cell :first-conn #x9a) + (new 'static 'trail-conn-hash-cell :first-conn #x9a) + (new 'static 'trail-conn-hash-cell :first-conn #x9a :conn-count #x2) + (new 'static 'trail-conn-hash-cell :first-conn #x9c :conn-count #x10) + (new 'static 'trail-conn-hash-cell :first-conn #xac :conn-count #xe) + (new 'static 'trail-conn-hash-cell :first-conn #xba :conn-count #x20) + (new 'static 'trail-conn-hash-cell :first-conn #xda :conn-count #xd) + (new 'static 'trail-conn-hash-cell :first-conn #xe7 :conn-count #xa) + (new 'static 'trail-conn-hash-cell :first-conn #xf1 :conn-count #x17) + (new 'static 'trail-conn-hash-cell :first-conn #x108 :conn-count #x5) + (new 'static 'trail-conn-hash-cell :first-conn #x10d) + (new 'static 'trail-conn-hash-cell :first-conn #x10d) + (new 'static 'trail-conn-hash-cell :first-conn #x10d) + (new 'static 'trail-conn-hash-cell :first-conn #x10d) + (new 'static 'trail-conn-hash-cell :first-conn #x10d) + (new 'static 'trail-conn-hash-cell :first-conn #x10d) + (new 'static 'trail-conn-hash-cell :first-conn #x10d) + (new 'static 'trail-conn-hash-cell :first-conn #x10d) + (new 'static 'trail-conn-hash-cell :first-conn #x10d :conn-count #xc) + (new 'static 'trail-conn-hash-cell :first-conn #x119 :conn-count #x7) + (new 'static 'trail-conn-hash-cell :first-conn #x120 :conn-count #x7) + (new 'static 'trail-conn-hash-cell :first-conn #x127 :conn-count #x17) + (new 'static 'trail-conn-hash-cell :first-conn #x13e :conn-count #x6) + (new 'static 'trail-conn-hash-cell :first-conn #x144 :conn-count #x8) + (new 'static 'trail-conn-hash-cell :first-conn #x14c :conn-count #x6) + (new 'static 'trail-conn-hash-cell :first-conn #x152 :conn-count #x6) + (new 'static 'trail-conn-hash-cell :first-conn #x158) + (new 'static 'trail-conn-hash-cell :first-conn #x158 :conn-count #x6) + (new 'static 'trail-conn-hash-cell :first-conn #x15e) + (new 'static 'trail-conn-hash-cell :first-conn #x15e) + (new 'static 'trail-conn-hash-cell :first-conn #x15e) + (new 'static 'trail-conn-hash-cell :first-conn #x15e) + (new 'static 'trail-conn-hash-cell :first-conn #x15e) + (new 'static 'trail-conn-hash-cell :first-conn #x15e) + (new 'static 'trail-conn-hash-cell :first-conn #x15e :conn-count #x12) + (new 'static 'trail-conn-hash-cell :first-conn #x170 :conn-count #x6) + (new 'static 'trail-conn-hash-cell :first-conn #x176 :conn-count #xa) + (new 'static 'trail-conn-hash-cell :first-conn #x180 :conn-count #x1d) + (new 'static 'trail-conn-hash-cell :first-conn #x19d :conn-count #x1e) + (new 'static 'trail-conn-hash-cell :first-conn #x1bb) + (new 'static 'trail-conn-hash-cell :first-conn #x1bb) + (new 'static 'trail-conn-hash-cell :first-conn #x1bb :conn-count #x8) + (new 'static 'trail-conn-hash-cell :first-conn #x1c3 :conn-count #x12) + (new 'static 'trail-conn-hash-cell :first-conn #x1d5 :conn-count #x18) + (new 'static 'trail-conn-hash-cell :first-conn #x1ed) + (new 'static 'trail-conn-hash-cell :first-conn #x1ed) + (new 'static 'trail-conn-hash-cell :first-conn #x1ed) + (new 'static 'trail-conn-hash-cell :first-conn #x1ed) + (new 'static 'trail-conn-hash-cell :first-conn #x1ed) + (new 'static 'trail-conn-hash-cell :first-conn #x1ed) + (new 'static 'trail-conn-hash-cell :first-conn #x1ed :conn-count #x2) + (new 'static 'trail-conn-hash-cell :first-conn #x1ef :conn-count #xb) + (new 'static 'trail-conn-hash-cell :first-conn #x1fa :conn-count #x9) + (new 'static 'trail-conn-hash-cell :first-conn #x203 :conn-count #x14) + (new 'static 'trail-conn-hash-cell :first-conn #x217 :conn-count #x1a) + (new 'static 'trail-conn-hash-cell :first-conn #x231) + (new 'static 'trail-conn-hash-cell :first-conn #x231) + (new 'static 'trail-conn-hash-cell :first-conn #x231 :conn-count #xa) + (new 'static 'trail-conn-hash-cell :first-conn #x23b :conn-count #x13) + (new 'static 'trail-conn-hash-cell :first-conn #x24e :conn-count #x10) + (new 'static 'trail-conn-hash-cell :first-conn #x25e) + (new 'static 'trail-conn-hash-cell :first-conn #x25e) + (new 'static 'trail-conn-hash-cell :first-conn #x25e) + (new 'static 'trail-conn-hash-cell :first-conn #x25e) + (new 'static 'trail-conn-hash-cell :first-conn #x25e) + (new 'static 'trail-conn-hash-cell :first-conn #x25e) + (new 'static 'trail-conn-hash-cell :first-conn #x25e :conn-count #x5) + (new 'static 'trail-conn-hash-cell :first-conn #x263 :conn-count #x14) + (new 'static 'trail-conn-hash-cell :first-conn #x277 :conn-count #x9) + (new 'static 'trail-conn-hash-cell :first-conn #x280 :conn-count #x7) + (new 'static 'trail-conn-hash-cell :first-conn #x287 :conn-count #x4) + (new 'static 'trail-conn-hash-cell :first-conn #x28b :conn-count #x13) + (new 'static 'trail-conn-hash-cell :first-conn #x29e :conn-count #xc) + (new 'static 'trail-conn-hash-cell :first-conn #x2aa :conn-count #xd) + (new 'static 'trail-conn-hash-cell :first-conn #x2b7 :conn-count #x14) + (new 'static 'trail-conn-hash-cell :first-conn #x2cb :conn-count #xe) + (new 'static 'trail-conn-hash-cell :first-conn #x2d9) + (new 'static 'trail-conn-hash-cell :first-conn #x2d9) + (new 'static 'trail-conn-hash-cell :first-conn #x2d9) + (new 'static 'trail-conn-hash-cell :first-conn #x2d9) + (new 'static 'trail-conn-hash-cell :first-conn #x2d9) + (new 'static 'trail-conn-hash-cell :first-conn #x2d9) + (new 'static 'trail-conn-hash-cell :first-conn #x2d9 :conn-count #x3) + (new 'static 'trail-conn-hash-cell :first-conn #x2dc :conn-count #x17) + (new 'static 'trail-conn-hash-cell :first-conn #x2f3 :conn-count #xe) + (new 'static 'trail-conn-hash-cell :first-conn #x301 :conn-count #x5) + (new 'static 'trail-conn-hash-cell :first-conn #x306) + (new 'static 'trail-conn-hash-cell :first-conn #x306 :conn-count #x18) + (new 'static 'trail-conn-hash-cell :first-conn #x31e :conn-count #x16) + (new 'static 'trail-conn-hash-cell :first-conn #x334 :conn-count #x11) + (new 'static 'trail-conn-hash-cell :first-conn #x345 :conn-count #x6) + (new 'static 'trail-conn-hash-cell :first-conn #x34b :conn-count #x9) + (new 'static 'trail-conn-hash-cell :first-conn #x354) + (new 'static 'trail-conn-hash-cell :first-conn #x354) + (new 'static 'trail-conn-hash-cell :first-conn #x354) + (new 'static 'trail-conn-hash-cell :first-conn #x354) + (new 'static 'trail-conn-hash-cell :first-conn #x354) + (new 'static 'trail-conn-hash-cell :first-conn #x354) + (new 'static 'trail-conn-hash-cell :first-conn #x354 :conn-count #x4) + (new 'static 'trail-conn-hash-cell :first-conn #x358 :conn-count #x11) + (new 'static 'trail-conn-hash-cell :first-conn #x369 :conn-count #xa) + (new 'static 'trail-conn-hash-cell :first-conn #x373 :conn-count #x9) + (new 'static 'trail-conn-hash-cell :first-conn #x37c :conn-count #x8) + (new 'static 'trail-conn-hash-cell :first-conn #x384 :conn-count #x2) + (new 'static 'trail-conn-hash-cell :first-conn #x386 :conn-count #x5) + (new 'static 'trail-conn-hash-cell :first-conn #x38b :conn-count #x9) + (new 'static 'trail-conn-hash-cell :first-conn #x394 :conn-count #x15) + (new 'static 'trail-conn-hash-cell :first-conn #x3a9 :conn-count #xa) + (new 'static 'trail-conn-hash-cell :first-conn #x3b3) + (new 'static 'trail-conn-hash-cell :first-conn #x3b3) + (new 'static 'trail-conn-hash-cell :first-conn #x3b3) + (new 'static 'trail-conn-hash-cell :first-conn #x3b3) + (new 'static 'trail-conn-hash-cell :first-conn #x3b3) + (new 'static 'trail-conn-hash-cell :first-conn #x3b3) + (new 'static 'trail-conn-hash-cell :first-conn #x3b3 :conn-count #x9) + (new 'static 'trail-conn-hash-cell :first-conn #x3bc :conn-count #x10) + (new 'static 'trail-conn-hash-cell :first-conn #x3cc :conn-count #xc) + (new 'static 'trail-conn-hash-cell :first-conn #x3d8 :conn-count #x3) + (new 'static 'trail-conn-hash-cell :first-conn #x3db :conn-count #x4) + (new 'static 'trail-conn-hash-cell :first-conn #x3df) + (new 'static 'trail-conn-hash-cell :first-conn #x3df) + (new 'static 'trail-conn-hash-cell :first-conn #x3df :conn-count #xd) + (new 'static 'trail-conn-hash-cell :first-conn #x3ec :conn-count #xf) + (new 'static 'trail-conn-hash-cell :first-conn #x3fb :conn-count #xd) + (new 'static 'trail-conn-hash-cell :first-conn #x408) + (new 'static 'trail-conn-hash-cell :first-conn #x408) + (new 'static 'trail-conn-hash-cell :first-conn #x408) + (new 'static 'trail-conn-hash-cell :first-conn #x408) + (new 'static 'trail-conn-hash-cell :first-conn #x408) + (new 'static 'trail-conn-hash-cell :first-conn #x408) + (new 'static 'trail-conn-hash-cell :first-conn #x408 :conn-count #x6) + (new 'static 'trail-conn-hash-cell :first-conn #x40e :conn-count #xe) + (new 'static 'trail-conn-hash-cell :first-conn #x41c :conn-count #x10) + (new 'static 'trail-conn-hash-cell :first-conn #x42c :conn-count #x3) + (new 'static 'trail-conn-hash-cell :first-conn #x42f :conn-count #x5) + (new 'static 'trail-conn-hash-cell :first-conn #x434) + (new 'static 'trail-conn-hash-cell :first-conn #x434) + (new 'static 'trail-conn-hash-cell :first-conn #x434 :conn-count #x7) + (new 'static 'trail-conn-hash-cell :first-conn #x43b :conn-count #x6) + (new 'static 'trail-conn-hash-cell :first-conn #x441 :conn-count #x2) + (new 'static 'trail-conn-hash-cell :first-conn #x443) + (new 'static 'trail-conn-hash-cell :first-conn #x443) + (new 'static 'trail-conn-hash-cell :first-conn #x443) + (new 'static 'trail-conn-hash-cell :first-conn #x443) + (new 'static 'trail-conn-hash-cell :first-conn #x443) + (new 'static 'trail-conn-hash-cell :first-conn #x443) + (new 'static 'trail-conn-hash-cell :first-conn #x443 :conn-count #x3) + (new 'static 'trail-conn-hash-cell :first-conn #x446 :conn-count #x1) + (new 'static 'trail-conn-hash-cell :first-conn #x447 :conn-count #x3) + (new 'static 'trail-conn-hash-cell :first-conn #x44a :conn-count #x4) + (new 'static 'trail-conn-hash-cell :first-conn #x44e :conn-count #x6) + (new 'static 'trail-conn-hash-cell :first-conn #x454 :conn-count #x3) + (new 'static 'trail-conn-hash-cell :first-conn #x457 :conn-count #x2) + (new 'static 'trail-conn-hash-cell :first-conn #x459 :conn-count #x3) + (new 'static 'trail-conn-hash-cell :first-conn #x45c) + (new 'static 'trail-conn-hash-cell :first-conn #x45c) + (new 'static 'trail-conn-hash-cell :first-conn #x45c) + (new 'static 'trail-conn-hash-cell :first-conn #x45c) + (new 'static 'trail-conn-hash-cell :first-conn #x45c) + (new 'static 'trail-conn-hash-cell :first-conn #x45c) + (new 'static 'trail-conn-hash-cell :first-conn #x45c) + (new 'static 'trail-conn-hash-cell :first-conn #x45c) + (new 'static 'trail-conn-hash-cell :first-conn #x45c) + (new 'static 'trail-conn-hash-cell :first-conn #x45c :conn-count #x8) + (new 'static 'trail-conn-hash-cell :first-conn #x464 :conn-count #x3) + (new 'static 'trail-conn-hash-cell :first-conn #x467 :conn-count #x1) + (new 'static 'trail-conn-hash-cell :first-conn #x468 :conn-count #x1) + (new 'static 'trail-conn-hash-cell :first-conn #x469 :conn-count #x2) + (new 'static 'trail-conn-hash-cell :first-conn #x46b :conn-count #x8) + (new 'static 'trail-conn-hash-cell :first-conn #x473) + (new 'static 'trail-conn-hash-cell :first-conn #x473) + (new 'static 'trail-conn-hash-cell :first-conn #x473) + (new 'static 'trail-conn-hash-cell :first-conn #x473) + (new 'static 'trail-conn-hash-cell :first-conn #x473) + (new 'static 'trail-conn-hash-cell :first-conn #x473) + (new 'static 'trail-conn-hash-cell :first-conn #x473) + (new 'static 'trail-conn-hash-cell :first-conn #x473) + (new 'static 'trail-conn-hash-cell :first-conn #x473) + (new 'static 'trail-conn-hash-cell :first-conn #x473) + (new 'static 'trail-conn-hash-cell :first-conn #x473 :conn-count #x1) + (new 'static 'trail-conn-hash-cell :first-conn #x474) + (new 'static 'trail-conn-hash-cell :first-conn #x474) + (new 'static 'trail-conn-hash-cell :first-conn #x474) + (new 'static 'trail-conn-hash-cell :first-conn #x474) + (new 'static 'trail-conn-hash-cell :first-conn #x474 :conn-count #x1) + (new 'static 'trail-conn-hash-cell :first-conn #x475) + (new 'static 'trail-conn-hash-cell :first-conn #x475) + (new 'static 'trail-conn-hash-cell :first-conn #x475) + (new 'static 'trail-conn-hash-cell :first-conn #x475) + (new 'static 'trail-conn-hash-cell :first-conn #x475) + (new 'static 'trail-conn-hash-cell :first-conn #x475) + (new 'static 'trail-conn-hash-cell :first-conn #x475) + (new 'static 'trail-conn-hash-cell :first-conn #x475) + (new 'static 'trail-conn-hash-cell :first-conn #x475) + (new 'static 'trail-conn-hash-cell :first-conn #x475) + (new 'static 'trail-conn-hash-cell :first-conn #x475 :conn-count #x1) + (new 'static 'trail-conn-hash-cell :first-conn #x476) + (new 'static 'trail-conn-hash-cell :first-conn #x476) + (new 'static 'trail-conn-hash-cell :first-conn #x476) + (new 'static 'trail-conn-hash-cell :first-conn #x476) + (new 'static 'trail-conn-hash-cell :first-conn #x476 :conn-count #x1) + (new 'static 'trail-conn-hash-cell :first-conn #x477) + (new 'static 'trail-conn-hash-cell :first-conn #x477) + (new 'static 'trail-conn-hash-cell :first-conn #x477) + (new 'static 'trail-conn-hash-cell :first-conn #x477) + (new 'static 'trail-conn-hash-cell :first-conn #x477) + (new 'static 'trail-conn-hash-cell :first-conn #x477) + ) + :conn-ids (new 'static 'array uint16 1144 + #x129 + #x130 + #x131 + #x132 + #x207 + #x208 + #x20a + #x120 + #x128 + #x129 + #x12a + #x12b + #x12c + #x12d + #x12e + #x12f + #x207 + #x208 + #x209 + #x20a + #x20d + #x12e + #x12f + #x217 + #x219 + #x21a + #xf8 + #xf9 + #xfa + #xfb + #x217 + #x218 + #x21a + #x21b + #x223 + #x122 + #x124 + #x125 + #x127 + #x128 + #x132 + #x133 + #x134 + #x20a + #x11e + #x11f + #x120 + #x121 + #x122 + #x125 + #x128 + #x12b + #x209 + #x20b + #x20c + #x20d + #x11d + #x11e + #x21c + #x21d + #x21e + #x21f + #x221 + #x228 + #xf8 + #xf9 + #x21c + #x226 + #x227 + #x228 + #x229 + #x22d + #x22e + #xf9 + #x22d + #x1eb + #x144 + #x146 + #x149 + #x14a + #x156 + #x157 + #x1eb + #x1ec + #x1f1 + #x111 + #x13c + #x13d + #x145 + #x146 + #x147 + #x148 + #x149 + #x10f + #x110 + #x111 + #x118 + #x124 + #x126 + #x134 + #x135 + #x1f8 + #x311 + #x315 + #x115 + #x116 + #x117 + #x118 + #x11f + #x121 + #x123 + #x124 + #x125 + #x126 + #x12b + #x312 + #xde + #xfc + #x116 + #x11d + #x220 + #x221 + #x222 + #x228 + #x229 + #x22a + #x22b + #x22c + #x312 + #x313 + #xd1 + #xe9 + #xec + #xed + #xee + #xef + #xf0 + #xf1 + #xf2 + #xf3 + #xf4 + #x213 + #x225 + #x226 + #x229 + #xd0 + #xd1 + #xf1 + #xf5 + #xf6 + #xf7 + #x213 + #x224 + #x225 + #x157 + #x158 + #x13f + #x140 + #x141 + #x142 + #x143 + #x144 + #x14d + #x14e + #x14f + #x150 + #x151 + #x152 + #x156 + #x157 + #x1ed + #x1f1 + #x137 + #x138 + #x139 + #x13a + #x13b + #x13c + #x13d + #x13e + #x13f + #x140 + #x14b + #x14c + #x14e + #x1f0 + #x108 + #x109 + #x10c + #x10d + #x10f + #x112 + #x119 + #x11a + #x11b + #x11c + #x1f2 + #x1f3 + #x1f4 + #x1f5 + #x1f6 + #x1f7 + #x1f9 + #x1fa + #x1fb + #x1fc + #x1fd + #x1fe + #x1ff + #x200 + #x201 + #x202 + #x203 + #x204 + #x205 + #x206 + #x311 + #x315 + #xfd + #xfe + #xff + #x100 + #x10a + #x10b + #x112 + #x113 + #x114 + #x115 + #x11b + #x1fe + #x1ff + #xde + #xdf + #xe0 + #xe1 + #xe2 + #xfd + #x22a + #x22b + #x313 + #x314 + #xd1 + #xd2 + #xd3 + #xd4 + #xd5 + #xd8 + #xd9 + #xda + #xdb + #xe2 + #xe3 + #xe4 + #xe5 + #xe6 + #xe7 + #xe8 + #xe9 + #xea + #xeb + #xef + #xf2 + #x214 + #x216 + #xcc + #xcd + #xce + #xcf + #xd0 + #x158 + #x159 + #x15a + #x15b + #x15c + #x15d + #x15e + #x15f + #x160 + #x161 + #x30f + #x310 + #x152 + #x153 + #x154 + #x155 + #x162 + #x163 + #x23f + #x10e + #x136 + #x137 + #x163 + #x23e + #x23f + #x316 + #x102 + #x103 + #x104 + #x105 + #x106 + #x107 + #x10d + #x10e + #x163 + #x164 + #x166 + #x167 + #x1ee + #x1ef + #x1f6 + #x1f9 + #x202 + #x203 + #x204 + #x205 + #x206 + #x20f + #x316 + #x100 + #x101 + #x102 + #x103 + #x166 + #x168 + #xdb + #xdc + #xdd + #xfd + #x20e + #x210 + #x211 + #x212 + #xd6 + #xd7 + #xdb + #x214 + #x215 + #x216 + #x47 + #x48 + #x49 + #x4a + #x4b + #xcc + #x0 + #x1 + #x2 + #x3 + #x4 + #x5 + #x159 + #x15a + #x15b + #x15c + #x15d + #x15e + #x15f + #x160 + #x161 + #x233 + #x240 + #x243 + #x244 + #x24a + #x2fe + #x2ff + #x300 + #x301 + #x15a + #x15b + #x233 + #x240 + #x243 + #x24a + #x231 + #x23c + #x23d + #x23e + #x240 + #x241 + #x242 + #x243 + #x246 + #x24a + #x164 + #x165 + #x167 + #x174 + #x176 + #x177 + #x178 + #x17a + #x17b + #x17c + #x2d0 + #x2d1 + #x2d2 + #x2e1 + #x2e6 + #x2e7 + #x2e8 + #x2e9 + #x2ea + #x2eb + #x2ee + #x2ef + #x2f0 + #x2f1 + #x2f2 + #x2f3 + #x2f4 + #x2f5 + #x2f6 + #x168 + #x169 + #x16a + #x16b + #x16c + #x170 + #x171 + #x172 + #x173 + #x174 + #x175 + #x177 + #x2cd + #x2d0 + #x2d1 + #x2d3 + #x2d4 + #x2dc + #x2de + #x2e0 + #x2e3 + #x2e4 + #x2e5 + #x2eb + #x2ec + #x2ed + #x2f7 + #x2f8 + #x2f9 + #x2fa + #x3f + #x40 + #x41 + #x42 + #x43 + #x44 + #x47 + #x1e4 + #x6 + #x7 + #x9 + #xa + #xb + #xc + #x28 + #x37 + #x38 + #x39 + #x3a + #x3b + #x3c + #x3d + #x42 + #x45 + #x46 + #x47 + #x0 + #x4 + #x5 + #x6 + #x7 + #x8 + #xa + #xc + #xd + #xe + #xf + #x10 + #x11 + #x12 + #x13 + #x14 + #x16 + #x17 + #x18 + #x29 + #x2b + #x2c + #x2d + #x2e + #x237 + #x244 + #x232 + #x233 + #x234 + #x235 + #x237 + #x238 + #x239 + #x244 + #x245 + #x248 + #x302 + #x238 + #x23a + #x23b + #x23c + #x242 + #x246 + #x247 + #x248 + #x249 + #x178 + #x179 + #x17a + #x1e9 + #x2c8 + #x2c9 + #x2ca + #x2cb + #x2ce + #x2cf + #x2d5 + #x2d7 + #x2d8 + #x2d9 + #x2e1 + #x2e2 + #x2ef + #x2f0 + #x2f3 + #x2f4 + #x16c + #x16d + #x16e + #x16f + #x171 + #x1e9 + #x1ea + #x282 + #x2c7 + #x2c9 + #x2cb + #x2cc + #x2cd + #x2d5 + #x2d6 + #x2d9 + #x2da + #x2db + #x2dc + #x2dd + #x2de + #x2df + #x2e0 + #x2ec + #x30d + #x30e + #x2f + #x30 + #x31 + #x32 + #x33 + #x34 + #x3e + #x3f + #x41 + #x1e4 + #x1d + #x1e + #x1f + #x20 + #x21 + #x22 + #x23 + #x24 + #x25 + #x26 + #x27 + #x28 + #x2a + #x2f + #x34 + #x35 + #x36 + #x3a + #x42 + #x14 + #x15 + #x16 + #x19 + #x1a + #x1b + #x1c + #x1d + #x26 + #x29 + #x2a + #x1e1 + #x1e2 + #x1e3 + #x22f + #x230 + #x190 + #x192 + #x193 + #x194 + #x236 + #x186 + #x187 + #x188 + #x189 + #x18a + #x18f + #x190 + #x191 + #x192 + #x194 + #x197 + #x198 + #x236 + #x254 + #x255 + #x256 + #x257 + #x258 + #x259 + #x302 + #x186 + #x25a + #x25b + #x25c + #x25d + #x25e + #x260 + #x261 + #x262 + #x182 + #x183 + #x264 + #x265 + #x267 + #x282 + #x284 + #x282 + #x283 + #x284 + #x30d + #x19c + #x19d + #x19f + #x1a0 + #x1a1 + #x1a2 + #x1a3 + #x1a4 + #x1a8 + #x1b0 + #x1b4 + #x1b7 + #x1ba + #x1bb + #x1bc + #x1bd + #x1be + #x283 + #x308 + #x1a7 + #x1a8 + #x1a9 + #x1aa + #x1ab + #x1ac + #x1ad + #x1ae + #x1af + #x1c9 + #x1d5 + #x30b + #x59 + #x5b + #x5c + #x73 + #x74 + #x75 + #x76 + #x77 + #x1b8 + #x1b9 + #x1c8 + #x1d5 + #x1d6 + #x4d + #x4e + #x4f + #x51 + #x52 + #x53 + #x54 + #x55 + #x56 + #x57 + #x58 + #x59 + #x5a + #x5b + #x5c + #x5d + #x5e + #x5f + #x60 + #x61 + #x4c + #x4d + #x4e + #x4f + #x50 + #x5e + #x5f + #x60 + #x61 + #x62 + #x63 + #x64 + #x1dd + #x1e3 + #x24c + #x250 + #x251 + #x184 + #x189 + #x18a + #x18b + #x18c + #x18d + #x18e + #x18f + #x190 + #x199 + #x24c + #x24d + #x24e + #x24f + #x250 + #x251 + #x252 + #x253 + #x254 + #x26f + #x270 + #x271 + #x272 + #x184 + #x185 + #x195 + #x196 + #x25f + #x262 + #x263 + #x266 + #x26a + #x26b + #x26c + #x26d + #x26e + #x26f + #x196 + #x265 + #x266 + #x268 + #x269 + #x17d + #x17e + #x17f + #x19a + #x19b + #x19c + #x19d + #x19e + #x1b3 + #x1b4 + #x1b5 + #x1b6 + #x1b7 + #x1bb + #x1be + #x1bf + #x1c0 + #x1c1 + #x1c2 + #x1c3 + #x1c7 + #x1d8 + #x307 + #x308 + #x1a5 + #x1a6 + #x1ae + #x1b1 + #x1b2 + #x1b3 + #x1c0 + #x1c2 + #x1c3 + #x1c4 + #x1c6 + #x1ca + #x1cb + #x1cc + #x1cd + #x1ce + #x1d4 + #x1d7 + #x309 + #x30a + #x30b + #x30c + #x6e + #x6f + #x70 + #x71 + #x72 + #x7f + #x1cb + #x1cc + #x1ce + #x1cf + #x1d0 + #x1d1 + #x1d2 + #x1d3 + #x1d4 + #x2fd + #x30a + #x6b + #x6d + #x6e + #x1d9 + #x1da + #x1db + #x64 + #x65 + #x66 + #x67 + #x68 + #x69 + #x6a + #x6b + #x6c + #x2b6 + #x2b7 + #x2be + #x2bf + #x24e + #x24f + #x285 + #x286 + #x287 + #x288 + #x289 + #x28a + #x28b + #x28c + #x28e + #x28f + #x2b7 + #x2b8 + #x2ba + #x2bb + #x2c0 + #x288 + #x28c + #x28d + #x28e + #x290 + #x291 + #x29a + #x29b + #x29c + #x2c3 + #x181 + #x269 + #x273 + #x274 + #x275 + #x276 + #x277 + #x279 + #x27b + #x180 + #x274 + #x275 + #x277 + #x278 + #x279 + #x27a + #x27f + #x17d + #x180 + #x1a5 + #x1c4 + #x1c5 + #x1c6 + #x1d7 + #x7e + #x7f + #x88 + #x89 + #x8a + #x8b + #x8c + #x2fb + #x2fd + #x78 + #x7b + #x7c + #x7d + #x7e + #x80 + #x81 + #x82 + #x83 + #x84 + #x85 + #x86 + #x87 + #x88 + #xa3 + #x1db + #x1dc + #x1e5 + #x2fb + #x2fc + #x2fd + #x78 + #x79 + #x7a + #xa5 + #xaa + #xab + #xb0 + #xb1 + #xb2 + #x1e5 + #x295 + #x296 + #x2b6 + #x2bd + #x2be + #x2bf + #x2c6 + #x305 + #x306 + #x24b + #x295 + #x2ae + #x2b3 + #x2b4 + #x2b5 + #x2b8 + #x2b9 + #x2ba + #x2bc + #x2c0 + #x2c4 + #x2c5 + #x303 + #x304 + #x305 + #x291 + #x292 + #x298 + #x299 + #x29a + #x29c + #x29d + #x29e + #x29f + #x2a0 + #x2c2 + #x2c3 + #x27b + #x27c + #x27e + #x27e + #x27f + #x280 + #x281 + #x8a + #x8b + #x8d + #x8e + #x8f + #x91 + #x93 + #x94 + #x97 + #x9a + #x9e + #x9f + #xa1 + #x82 + #x83 + #x86 + #x8f + #x90 + #x91 + #x92 + #x96 + #x97 + #x98 + #x9a + #x9b + #x9c + #x9d + #xa3 + #xa3 + #xa4 + #xa5 + #xa6 + #xa7 + #xa8 + #xa9 + #xaa + #xac + #xad + #xae + #xaf + #xb0 + #xca + #xcb + #x1e6 + #x1e7 + #x2c6 + #x306 + #x24b + #x293 + #x294 + #x297 + #x2a1 + #x2a2 + #x2ad + #x2af + #x2b0 + #x2b1 + #x2b2 + #x2bc + #x2c1 + #x304 + #x293 + #x29f + #x2a0 + #x2a1 + #x2a3 + #x2a4 + #x2a5 + #x2a6 + #x2a7 + #x2a8 + #x2a9 + #x2aa + #x2ab + #x2ac + #x2c1 + #x2c2 + #x27c + #x27d + #x27e + #x1de + #x1df + #x1e0 + #x27d + #x281 + #x93 + #x9f + #xa0 + #xa1 + #xa2 + #xb3 + #xb4 + #x93 + #x95 + #x96 + #x97 + #x98 + #x99 + #x99 + #xac + #xc8 + #xc9 + #xcb + #xc8 + #xc0 + #xc3 + #xc4 + #xbc + #xbf + #xc0 + #xc3 + #xbc + #xbd + #xbe + #xbf + #x1de + #x1e8 + #xbb + #xbe + #x1e8 + #xb6 + #xbb + #xb4 + #xb5 + #xb6 + #xc1 + #xc2 + #xc3 + #xc4 + #xc5 + #xc6 + #xc7 + #xc8 + #xc1 + #xc3 + #xc4 + #xc1 + #xc1 + #xbe + #xc1 + #xb6 + #xb7 + #xb8 + #xb9 + #xba + #xbb + #xbe + #xc1 + #xc7 + #xba + #xc7 + #xba + #x0 + ) + ) + ) + ) diff --git a/goal_src/jak2/levels/city/common/trail-h.gc b/goal_src/jak2/levels/city/common/trail-h.gc index ef69e4f684..ddeffc6d62 100644 --- a/goal_src/jak2/levels/city/common/trail-h.gc +++ b/goal_src/jak2/levels/city/common/trail-h.gc @@ -5,27 +5,46 @@ ;; name in dgo: trail-h ;; dgos: ENGINE, GAME +(defenum trail-node-flag + :type uint8 + :bitfield #t + (tnf0 0) ;; unused?? + (tnf1 1) + ) + +(defenum conn-flag + :type uint8 + :bitfield #t + (cf0 0) + (cf1 1) + (cf2 2) + (cf3 3) + ) + +(declare-type trail-graph basic) + ;; DECOMP BEGINS (deftype trail-node (structure) - ((next-id int16 :offset-assert 0) - (prev-id int16 :offset-assert 2) - (parent-id int16 :offset-assert 4) - (x int16 :offset-assert 6) - (z int16 :offset-assert 8) - (first-conn uint16 :offset-assert 10) - (cost-from-start uint16 :offset-assert 12) - (cost-to-goal uint16 :offset-assert 14) - (flags uint8 :offset-assert 16) - (conn-count uint8 :offset-assert 17) + ((next-id int16 :offset-assert 0) + (prev-id int16 :offset-assert 2) + (parent-id int16 :offset-assert 4) + (x int16 :offset-assert 6) + (z int16 :offset-assert 8) + (first-conn uint16 :offset-assert 10) + (cost-from-start uint16 :offset-assert 12) + (cost-to-goal uint16 :offset-assert 14) + (flags trail-node-flag :offset-assert 16) + (conn-count uint8 :offset-assert 17) ) + :pack-me :method-count-assert 12 :size-assert #x12 :flag-assert #xc00000012 (:methods - (trail-node-method-9 () none 9) - (trail-node-method-10 () none 10) - (trail-node-method-11 () none 11) + (get-dist-score (_type_ vector) uint 9) + (debug-draw (_type_ int) none 10) + (get-position (_type_ vector) vector 11) ) ) @@ -42,30 +61,34 @@ (deftype trail-conn (structure) - ((head-id uint16 :offset-assert 0) - (tail-id uint16 :offset-assert 2) - (flags uint8 :offset-assert 4) - (visgroup-id uint8 :offset-assert 5) - (cost uint16 :offset-assert 6) + ((head-id uint16 :offset-assert 0) + (tail-id uint16 :offset-assert 2) + (flags conn-flag :offset-assert 4) + (visgroup-id uint8 :offset-assert 5) + (cost uint16 :offset-assert 6) ) + :pack-me :method-count-assert 10 :size-assert #x8 :flag-assert #xa00000008 (:methods - (trail-conn-method-9 () none 9) + (debug-draw (_type_ trail-graph int) none 9) ) ) + (deftype trail-conn-hash-cell (structure) ((first-conn uint16 :offset-assert 0) (conn-count uint8 :offset-assert 2) (pad uint8 :offset-assert 3) ) + :pack-me :method-count-assert 9 :size-assert #x4 :flag-assert #x900000004 ) + (deftype trail-conn-search (structure) ((best-conn-id int32 :offset-assert 0) (best-dist float :offset-assert 4) @@ -83,17 +106,19 @@ :flag-assert #x9000000d0 ) + (deftype trail-conn-hash (basic) - ((cell-width meters :offset-assert 4) - (origin vector :inline :offset-assert 16) - (cell uint32 :offset-assert 32) - (conn-ids uint32 :offset-assert 36) + ((cell-width meters :offset-assert 4) + (origin vector :inline :offset-assert 16) + (cell (inline-array trail-conn-hash-cell) :offset-assert 32) + (conn-ids (pointer uint16) :offset-assert 36) ) :method-count-assert 9 :size-assert #x28 :flag-assert #x900000028 ) + (deftype trail-cached-search-info (structure) ((goal-conn-id int16 :offset-assert 0) (orig-goal-pos vector :inline :offset-assert 16) @@ -104,57 +129,55 @@ :flag-assert #x900000030 ) + (deftype trail-graph (basic) - ((mode uint8 :offset-assert 4) - (search-id uint32 :offset-assert 8) - (open-head-id int16 :offset-assert 12) - (goal-conn-id int16 :offset-assert 14) - (goal-node-id int16 :offset-assert 16) - (node-count uint16 :offset-assert 18) - (conn-count uint16 :offset-assert 20) - (conn-mask uint8 :offset-assert 22) - (node uint32 :offset-assert 24) - (conn uint32 :offset-assert 28) - (conn-ids uint32 :offset-assert 32) - (visgroup uint32 :offset-assert 36) - (visnode-ids uint32 :offset-assert 40) - (conn-hash basic :offset-assert 44) - (orig-start-pos vector :inline :offset-assert 48) - (orig-goal-pos vector :inline :offset-assert 64) - (conn-start-pos vector :inline :offset-assert 80) - (conn-goal-pos vector :inline :offset-assert 96) - (open-quads qword 6 :inline :offset-assert 112) - (closed-quads qword 6 :inline :offset-assert 208) + ((mode uint8 :offset-assert 4) + (search-id uint32 :offset-assert 8) + (open-head-id int16 :offset-assert 12) + (goal-conn-id int16 :offset-assert 14) + (goal-node-id int16 :offset-assert 16) + (node-count uint16 :offset-assert 18) + (conn-count uint16 :offset-assert 20) + (conn-mask uint8 :offset-assert 22) + (node (inline-array trail-node) :offset-assert 24) + (conn (inline-array trail-conn) :offset-assert 28) + (conn-ids (pointer uint16) :offset-assert 32) + (visgroup (inline-array trail-conn-hash-cell) :offset-assert 36) + (visnode-ids (pointer uint16) :offset-assert 40) + (conn-hash trail-conn-hash :offset-assert 44) + (orig-start-pos vector :inline :offset-assert 48) + (orig-goal-pos vector :inline :offset-assert 64) + (conn-start-pos vector :inline :offset-assert 80) + (conn-goal-pos vector :inline :offset-assert 96) + (open-quads qword 6 :inline :offset-assert 112) + (closed-quads qword 6 :inline :offset-assert 208) ) :method-count-assert 29 :size-assert #x130 :flag-assert #x1d00000130 (:methods - (trail-graph-method-9 () none 9) - (trail-graph-method-10 () none 10) - (trail-graph-method-11 () none 11) - (trail-graph-method-12 () none 12) - (trail-graph-method-13 () none 13) - (trail-graph-method-14 () none 14) - (trail-graph-method-15 () none 15) + (trail-graph-method-9 (_type_ int) none 9) + (trail-graph-method-10 (_type_ int) none 10) + (trail-graph-method-11 (_type_ int int) trail-node 11) + (debug-draw (_type_) none 12) + (debug-draw-cell (_type_ int) none 13) + (debug-draw-path (_type_ int (pointer uint16) vector vector rgba float) symbol 14) + (do-path (_type_ vector vector) int 15) (trail-graph-method-16 () none 16) - (trail-graph-method-17 () none 17) - (trail-graph-method-18 () none 18) - (trail-graph-method-19 () none 19) - (trail-graph-method-20 () none 20) - (trail-graph-method-21 () none 21) - (trail-graph-method-22 () none 22) - (trail-graph-method-23 () none 23) - (trail-graph-method-24 () none 24) - (trail-graph-method-25 () none 25) - (trail-graph-method-26 () none 26) - (trail-graph-method-27 () none 27) - (trail-graph-method-28 () none 28) + (get-node-location-by-id (_type_ uint vector) vector 17) + (get-path-to-root (_type_ (pointer uint16) int (pointer int32) (pointer float)) int 18) + (trail-graph-method-19 (_type_ int int) symbol 19) + (try-initialize (_type_) symbol 20) + (update-node-flags-for-conn (_type_ int trail-node-flag trail-node-flag) none 21) + (trail-graph-method-22 (_type_ int) none 22) + (reset-search-state (_type_) none 23) + (get-next-to-explore (_type_) int 24) + (trail-graph-method-25 (_type_ trail-conn-search int int) none 25) + (do-search! (_type_ vector vector trail-cached-search-info) none 26) + (do-some-work (_type_) int 27) + (run-until-done-or-timeout (_type_ int) none 28) ) ) + (define *trail-graph* (the-as trail-graph #f)) - - - - diff --git a/goal_src/jak2/levels/city/common/trail.gc b/goal_src/jak2/levels/city/common/trail.gc index f7891cabf8..a67bc8b59d 100644 --- a/goal_src/jak2/levels/city/common/trail.gc +++ b/goal_src/jak2/levels/city/common/trail.gc @@ -7,3 +7,899 @@ ;; DECOMP BEGINS +;; WARN: Return type mismatch symbol vs none. +(defmethod debug-draw trail-conn ((obj trail-conn) (arg0 trail-graph) (arg1 int)) + (let ((a2-3 (-> arg0 node (-> obj head-id))) + (v1-2 (-> arg0 node (-> obj tail-id))) + (s4-0 (new 'stack-no-clear 'vector)) + (s3-0 (new 'stack-no-clear 'vector)) + (s5-0 (new 'stack-no-clear 'vector)) + ) + (set-vector! s4-0 (* 4096.0 (the float (-> a2-3 x))) 53248.0 (* 4096.0 (the float (-> a2-3 z))) 1.0) + (set-vector! s3-0 (* 4096.0 (the float (-> v1-2 x))) 53248.0 (* 4096.0 (the float (-> v1-2 z))) 1.0) + (vector-lerp! s5-0 s4-0 s3-0 0.5) + (let* ((s2-0 (math-camera-pos)) + (f0-12 (vector-vector-distance-squared s4-0 s2-0)) + (f1-8 819200.0) + ) + (when (or (< f0-12 (* f1-8 f1-8)) + (let ((f0-13 (vector-vector-distance-squared s3-0 s2-0)) + (f1-11 819200.0) + ) + (< f0-13 (* f1-11 f1-11)) + ) + (let ((f0-14 (vector-vector-distance-squared s5-0 s2-0)) + (f1-14 819200.0) + ) + (< f0-14 (* f1-14 f1-14)) + ) + ) + (add-debug-line #t (bucket-id debug2) s4-0 s3-0 *color-orange* #f (the-as rgba -1)) + (let ((s4-1 add-debug-text-3d) + (s3-1 #t) + (s2-1 324) + ) + (format (clear *temp-string*) "~D" arg1) + (s4-1 s3-1 (the-as bucket-id s2-1) *temp-string* s5-0 (font-color yellow-#f3f300) (the-as vector2h #f)) + ) + ) + ) + ) + (none) + ) + +;; WARN: Return type mismatch symbol vs none. +(defmethod debug-draw trail-node ((obj trail-node) (arg0 int)) + (let ((s5-0 (new 'stack-no-clear 'vector)) + (s4-0 (new 'stack-no-clear 'sphere)) + ) + (set-vector! s5-0 (* 4096.0 (the float (-> obj x))) 53248.0 (* 4096.0 (the float (-> obj z))) 1.0) + (set! (-> s4-0 quad) (-> s5-0 quad)) + (set! (-> s4-0 r) 4096.0) + (let ((f0-7 (vector-vector-distance-squared s5-0 (math-camera-pos))) + (f1-4 819200.0) + ) + (when (and (< f0-7 (* f1-4 f1-4)) (sphere-in-view-frustum? s4-0)) + (add-debug-x #t (bucket-id debug2) s5-0 *color-red*) + (let ((s4-1 add-debug-text-3d) + (s3-1 #t) + (s2-1 324) + ) + (format (clear *temp-string*) "~D" arg0) + (s4-1 s3-1 (the-as bucket-id s2-1) *temp-string* s5-0 (font-color cyan-#00fefe) (the-as vector2h #f)) + ) + ) + ) + ) + (none) + ) + +;; WARN: Return type mismatch symbol vs none. +(defmethod debug-draw-cell trail-graph ((obj trail-graph) (arg0 int)) + (local-vars (sv-80 int) (sv-96 (function _varargs_ object))) + (let* ((s5-0 (-> obj conn-hash)) + (s4-0 (-> s5-0 cell arg0)) + (s3-0 (new 'stack-no-clear 'inline-array 'vector 2)) + ) + (set-vector! + (-> s3-0 0) + (+ (* (-> s5-0 cell-width) (the float (logand arg0 15))) (-> s5-0 origin x)) + 53248.0 + (+ (* (-> s5-0 cell-width) (the float (/ arg0 16))) (-> s5-0 origin z)) + 1.0 + ) + (set! (-> s3-0 1 quad) (-> s3-0 0 quad)) + (+! (-> s3-0 1 x) (-> s5-0 cell-width)) + (set! (-> s3-0 2 quad) (-> s3-0 1 quad)) + (+! (-> s3-0 2 z) (-> s5-0 cell-width)) + (set! (-> s3-0 3 quad) (-> s3-0 2 quad)) + (set! (-> s3-0 3 x) (- (-> s3-0 3 x) (-> s5-0 cell-width))) + (add-debug-line #t (bucket-id debug-no-zbuf1) (-> s3-0 0) (-> s3-0 1) *color-white* #f (the-as rgba -1)) + (add-debug-line #t (bucket-id debug-no-zbuf1) (-> s3-0 1) (-> s3-0 2) *color-white* #f (the-as rgba -1)) + (add-debug-line #t (bucket-id debug-no-zbuf1) (-> s3-0 2) (-> s3-0 3) *color-white* #f (the-as rgba -1)) + (add-debug-line #t (bucket-id debug-no-zbuf1) (-> s3-0 3) (-> s3-0 0) *color-white* #f (the-as rgba -1)) + (set-vector! + (-> s3-0 3) + (* 0.5 (+ (-> s3-0 0 x) (-> s3-0 2 x))) + (-> s3-0 0 y) + (* 0.5 (+ (-> s3-0 0 z) (-> s3-0 2 z))) + 1.0 + ) + (let ((s1-0 add-debug-text-3d) + (s0-0 #t) + ) + (set! sv-80 324) + (set! sv-96 format) + (let ((a0-20 (clear *temp-string*)) + (a1-5 "cell ~D (~D,~D)") + (a2-4 arg0) + (a3-4 (logand arg0 15)) + (t0-4 (/ arg0 16)) + ) + (sv-96 a0-20 a1-5 a2-4 a3-4 t0-4) + ) + (let ((a2-5 *temp-string*) + (a3-5 (-> s3-0 3)) + (t0-5 1) + (t1-4 #f) + ) + (s1-0 s0-0 (the-as bucket-id sv-80) a2-5 a3-5 (the-as font-color t0-5) (the-as vector2h t1-4)) + ) + ) + (countdown (s2-1 (-> s4-0 conn-count)) + (let ((s1-1 (-> obj conn (-> s5-0 conn-ids (+ s2-1 (-> s4-0 first-conn)))))) + (get-position (-> obj node (-> s1-1 head-id)) (-> s3-0 0)) + (set! (-> s3-0 0 y) 53248.0) + (set! (-> s3-0 0 x) (+ -2048.0 (-> s3-0 0 x))) + (set! (-> s3-0 0 z) (+ -2048.0 (-> s3-0 0 z))) + (get-position (-> obj node (-> s1-1 tail-id)) (-> s3-0 1)) + ) + (set! (-> s3-0 1 y) 53248.0) + (set! (-> s3-0 1 x) (+ -2048.0 (-> s3-0 1 x))) + (set! (-> s3-0 1 z) (+ -2048.0 (-> s3-0 1 z))) + (add-debug-line #t (bucket-id debug2) (-> s3-0 0) (-> s3-0 1) *color-white* #f (the-as rgba -1)) + ) + ) + (none) + ) + +;; WARN: new jak 2 until loop case, check carefully +(defmethod debug-draw-path trail-graph ((obj trail-graph) (arg0 int) (arg1 (pointer uint16)) (arg2 vector) (arg3 vector) (arg4 rgba) (arg5 float)) + (local-vars (sv-48 int)) + (let ((s0-0 (new 'stack-no-clear 'inline-array 'vector 2))) + (set-vector! (-> s0-0 1) (+ (-> arg2 x) arg5) 53248.0 (+ (-> arg2 z) arg5) 1.0) + (set! sv-48 0) + (until #f + (set! (-> s0-0 0 quad) (-> s0-0 1 quad)) + (cond + ((< sv-48 arg0) + (let ((a0-7 (-> obj node (-> arg1 sv-48)))) + (set-vector! + (-> s0-0 1) + (+ (* 4096.0 (the float (-> a0-7 x))) arg5) + 53248.0 + (+ (* 4096.0 (the float (-> a0-7 z))) arg5) + 1.0 + ) + ) + ) + ((= sv-48 arg0) + (set-vector! (-> s0-0 1) (+ (-> arg3 x) arg5) 53248.0 (+ (-> arg3 z) arg5) 1.0) + ) + (else + (return #f) + ) + ) + (add-debug-line #t (bucket-id debug2) (-> s0-0 0) (-> s0-0 1) arg4 #f (the-as rgba -1)) + (set! sv-48 (+ sv-48 1)) + ) + ) + #f + ) + +;; WARN: new jak 2 until loop case, check carefully +(defmethod debug-draw trail-graph ((obj trail-graph)) + (when (= (-> obj mode) 3) + (let ((s5-0 (new 'stack-no-clear 'inline-array 'vector 2))) + (set! (-> s5-0 1 quad) (-> obj orig-goal-pos quad)) + (set! (-> s5-0 1 y) 53248.0) + (let ((v1-4 (-> obj goal-node-id))) + (until #f + (set! (-> s5-0 0 quad) (-> s5-0 1 quad)) + (cond + ((>= v1-4 0) + (let ((s4-0 (-> obj node v1-4))) + (set-vector! + (-> s5-0 1) + (+ 2048.0 (* 4096.0 (the float (-> s4-0 x)))) + 53248.0 + (+ 2048.0 (* 4096.0 (the float (-> s4-0 z)))) + 1.0 + ) + (add-debug-line #t (bucket-id debug2) (-> s5-0 0) (-> s5-0 1) *color-green* #f (the-as rgba -1)) + (set! v1-4 (-> s4-0 parent-id)) + ) + ) + (else + (set! (-> s5-0 1 quad) (-> obj orig-start-pos quad)) + (set! (-> s5-0 1 y) 53248.0) + (add-debug-line #t (bucket-id debug2) (-> s5-0 0) (-> s5-0 1) *color-green* #f (the-as rgba -1)) + (goto cfg-7) + ) + ) + ) + ) + ) + #f + ) + (label cfg-7) + (case (-> obj mode) + ((1 2 3) + (let ((s5-1 (new 'stack-no-clear 'vector))) + (add-debug-sphere + #t + (bucket-id debug-no-zbuf1) + (-> obj orig-start-pos) + (meters 1) + (new 'static 'rgba :r #xff :a #x80) + ) + (set! (-> s5-1 quad) (-> obj conn-start-pos quad)) + (set! (-> s5-1 y) 53248.0) + (add-debug-sphere #t (bucket-id debug-no-zbuf1) s5-1 (meters 0.25) (new 'static 'rgba :r #xff :a #x80)) + (add-debug-sphere + #t + (bucket-id debug-no-zbuf1) + (-> obj orig-goal-pos) + (meters 1) + (new 'static 'rgba :g #xff :a #x80) + ) + (set! (-> s5-1 quad) (-> obj conn-goal-pos quad)) + (set! (-> s5-1 y) 53248.0) + (add-debug-sphere #t (bucket-id debug-no-zbuf1) s5-1 (meters 0.25) (new 'static 'rgba :g #xff :a #x80)) + ) + ) + ) + (dotimes (s5-2 (the-as int (-> obj conn-count))) + (debug-draw (-> obj conn s5-2) obj s5-2) + ) + (dotimes (s5-3 (the-as int (-> obj node-count))) + (debug-draw (-> obj node s5-3) s5-3) + ) + 0 + (none) + ) + +(defmethod get-position trail-node ((obj trail-node) (arg0 vector)) + "Unpack the position to a vector" + (let ((v0-0 arg0)) + (set! (-> v0-0 x) (* 4096.0 (the float (-> obj x)))) + (set! (-> v0-0 y) 0.0) + (set! (-> v0-0 z) (* 4096.0 (the float (-> obj z)))) + (set! (-> v0-0 w) 1.0) + v0-0 + ) + ) + +(defmethod get-node-location-by-id trail-graph ((obj trail-graph) (arg0 uint) (arg1 vector)) + "Get the location of the node with the given ID" + (get-position (-> obj node (the-as int arg0)) arg1) + ) + +(defmethod get-path-to-root trail-graph ((obj trail-graph) (arg0 (pointer uint16)) (arg1 int) (arg2 (pointer int32)) (arg3 (pointer float))) + "Get the path from goal to root, following parent-id" + (set! (-> arg3 0) 0.0) + (set! (-> arg2 0) (-> obj goal-node-id)) + (let ((v0-0 -1)) + (when (= (-> obj mode) 3) + (let ((v1-3 (-> obj node)) + (a3-2 0) + ) + (let ((t1-0 (-> obj goal-node-id))) + (while (>= t1-0 0) + (+! a3-2 1) + (set! t1-0 (-> v1-3 t1-0 parent-id)) + ) + ) + (let ((t1-4 (-> obj goal-node-id))) + (let ((t2-1 (- a3-2 arg1))) + (cond + ((> t2-1 0) + (while (> t2-1 0) + (set! t1-4 (-> v1-3 t1-4 parent-id)) + (+! t2-1 -1) + ) + (set! v0-0 arg1) + ) + (else + (set! v0-0 a3-2) + ) + ) + ) + (countdown (a2-3 v0-0) + (set! (-> arg0 a2-3) (the-as uint t1-4)) + (set! t1-4 (-> v1-3 t1-4 parent-id)) + ) + ) + (when (> a3-2 0) + (let ((a0-3 (-> v1-3 (-> obj goal-node-id))) + (v1-4 (-> v1-3 (-> arg0 0))) + ) + (set! (-> arg3 0) + (- (* 512.0 (the float (-> a0-3 cost-from-start))) (* 512.0 (the float (-> v1-4 cost-from-start)))) + ) + ) + ) + ) + ) + v0-0 + ) + ) + +(defmethod try-initialize trail-graph ((obj trail-graph)) + "Init and verify that constants are good." + (let ((a3-0 (shr (+ (-> obj node-count) 127) 7))) + (when (!= a3-0 6) + (format 0 "ERROR: TRAIL_NODE_BIT_ARRAY_QUAD_COUNT is ~d, but should be ~d! Please change it!~%" 6 a3-0) + (return #f) + ) + ) + (let ((a3-1 (shr (+ (-> obj conn-count) 127) 7))) + (when (!= a3-1 7) + (format 0 "ERROR: TRAIL_CONN_BIT_ARRAY_QUAD_COUNT is ~d, but should be ~d! Please change it!~%" 7 a3-1) + (return #f) + ) + ) + (set! (-> obj mode) (the-as uint 0)) + (set! (-> obj goal-conn-id) -1) + (set! (-> obj goal-node-id) -1) + (set! (-> obj open-head-id) -1) + #t + ) + +(defmethod reset-search-state trail-graph ((obj trail-graph)) + "Reset the search/goal." + (when (nonzero? (-> obj mode)) + (set! (-> obj goal-node-id) -1) + (let ((a1-0 (-> obj goal-conn-id))) + (when (>= a1-0 0) + (update-node-flags-for-conn obj a1-0 (trail-node-flag) (trail-node-flag tnf0)) + (set! (-> obj goal-conn-id) -1) + ) + ) + (set! (-> obj open-head-id) -1) + (let ((v1-7 (-> obj open-quads))) + (set! (-> v1-7 0 quad) (the-as uint128 0)) + (set! (-> v1-7 1 quad) (the-as uint128 0)) + (set! (-> v1-7 2 quad) (the-as uint128 0)) + (set! (-> v1-7 3 quad) (the-as uint128 0)) + (set! (-> v1-7 4 quad) (the-as uint128 0)) + (set! (-> v1-7 5 quad) (the-as uint128 0)) + ) + 0 + (let ((v1-9 (-> obj closed-quads))) + (set! (-> v1-9 0 quad) (the-as uint128 0)) + (set! (-> v1-9 1 quad) (the-as uint128 0)) + (set! (-> v1-9 2 quad) (the-as uint128 0)) + (set! (-> v1-9 3 quad) (the-as uint128 0)) + (set! (-> v1-9 4 quad) (the-as uint128 0)) + (set! (-> v1-9 5 quad) (the-as uint128 0)) + ) + 0 + (set! (-> obj mode) (the-as uint 0)) + 0 + ) + (none) + ) + +;; WARN: Return type mismatch trail-node-flag vs none. +(defmethod update-node-flags-for-conn trail-graph ((obj trail-graph) (arg0 int) (arg1 trail-node-flag) (arg2 trail-node-flag)) + "Set arg1, clear arg2" + (let* ((v1-0 (lognot arg2)) + (a3-2 (-> obj conn arg0)) + (t0-0 (-> a3-2 visgroup-id)) + (a1-2 (-> obj node)) + ) + (cond + ((> t0-0 0) + (let* ((a3-4 (-> obj visgroup (+ t0-0 -1))) + (a0-2 (&-> (-> obj visnode-ids) (-> a3-4 first-conn))) + ) + (countdown (a3-5 (-> a3-4 conn-count)) + (let ((t0-8 (-> a1-2 (-> a0-2 0)))) + (set! (-> t0-8 flags) (logior (logand (-> t0-8 flags) v1-0) arg1)) + ) + (set! a0-2 (&-> a0-2 1)) + ) + ) + ) + (else + (let ((a0-5 (-> a1-2 (-> a3-2 head-id))) + (a1-3 (-> a1-2 (-> a3-2 tail-id))) + ) + (set! (-> a0-5 flags) (logior (logand (-> a0-5 flags) v1-0) arg1)) + (set! (-> a1-3 flags) (logior (logand (-> a1-3 flags) v1-0) arg1)) + ) + ) + ) + ) + (none) + ) + +;; WARN: Return type mismatch symbol vs none. +(defmethod trail-graph-method-25 trail-graph ((obj trail-graph) (arg0 trail-conn-search) (arg1 int) (arg2 int)) + (let* ((v1-1 (+ (* arg2 16) arg1)) + (a0-1 (/ v1-1 8)) + (a1-2 (ash 1 (logand v1-1 7))) + (a2-4 (-> arg0 cell-quads 0 byte a0-1)) + ) + (when (not (logtest? a2-4 a1-2)) + (set! (-> arg0 cell-quads 0 byte a0-1) (logior a2-4 a1-2)) + (let* ((v1-3 (-> obj conn-hash cell v1-1)) + (s4-0 (&-> (-> obj conn-hash conn-ids) (-> v1-3 first-conn))) + ) + (countdown (s3-0 (-> v1-3 conn-count)) + (let* ((s2-0 (-> s4-0 0)) + (v1-4 (shr s2-0 3)) + (a1-7 (ash 1 (logand s2-0 7))) + (a2-5 (-> arg0 conn-quads 0 byte v1-4)) + ) + (when (not (logtest? a2-5 a1-7)) + (set! (-> arg0 conn-quads 0 byte v1-4) (logior a2-5 a1-7)) + (let* ((v1-7 (-> obj conn s2-0)) + (a0-14 (-> v1-7 flags)) + ) + (when (= (logand (the-as conn-flag (-> obj conn-mask)) a0-14) a0-14) + (let ((a3-2 (-> obj node (-> v1-7 head-id))) + (v1-10 (-> obj node (-> v1-7 tail-id))) + (a1-14 (new 'stack-no-clear 'vector)) + (a2-7 (new 'stack-no-clear 'vector)) + (s1-0 (new 'stack-no-clear 'vector)) + ) + (set-vector! + a1-14 + (* 4096.0 (the float (-> a3-2 x))) + (-> arg0 src-pos y) + (* 4096.0 (the float (-> a3-2 z))) + 1.0 + ) + (set-vector! + a2-7 + (* 4096.0 (the float (-> v1-10 x))) + (-> arg0 src-pos y) + (* 4096.0 (the float (-> v1-10 z))) + 1.0 + ) + (let ((f0-12 (vector-segment-distance-point! (-> arg0 src-pos) a1-14 a2-7 s1-0))) + (when (or (< (-> arg0 best-conn-id) 0) (< f0-12 (-> arg0 best-dist))) + (set! (-> arg0 best-dist) f0-12) + (set! (-> arg0 best-conn-id) (the-as int s2-0)) + (set! (-> arg0 conn-pos quad) (-> s1-0 quad)) + ) + ) + ) + ) + ) + ) + ) + (set! s4-0 (&-> s4-0 1)) + ) + ) + ) + ) + (none) + ) + +(defmethod do-path trail-graph ((obj trail-graph) (arg0 vector) (arg1 vector)) + (let ((v1-0 (-> obj conn-hash)) + (s5-0 (new 'stack-no-clear 'trail-conn-search)) + ) + (set! (-> s5-0 src-pos) arg0) + (set! (-> s5-0 conn-pos) arg1) + (set! (-> s5-0 best-conn-id) -1) + (let ((a0-2 (-> s5-0 conn-quads))) + (set! (-> a0-2 0 quad) (the-as uint128 0)) + (set! (-> a0-2 1 quad) (the-as uint128 0)) + (set! (-> a0-2 2 quad) (the-as uint128 0)) + (set! (-> a0-2 3 quad) (the-as uint128 0)) + (set! (-> a0-2 4 quad) (the-as uint128 0)) + (set! (-> a0-2 5 quad) (the-as uint128 0)) + (set! (-> a0-2 6 quad) (the-as uint128 0)) + ) + 0 + (let ((a0-4 (-> s5-0 cell-quads))) + (set! (-> a0-4 0 quad) (the-as uint128 0)) + (set! (-> a0-4 1 quad) (the-as uint128 0)) + ) + 0 + (let* ((f0-0 (-> v1-0 cell-width)) + (f1-1 (* 0.5 f0-0)) + ) + (let ((f3-0 (- (-> arg0 x) f1-1)) + (f2-2 (- (-> arg0 z) f1-1)) + ) + (set! (-> s5-0 bounds min x) (max 0 (min 15 (the int (/ (- f3-0 (-> v1-0 origin x)) f0-0))))) + (set! (-> s5-0 bounds min z) (max 0 (min 15 (the int (/ (- f2-2 (-> v1-0 origin z)) f0-0))))) + ) + (let ((f2-7 (+ (-> arg0 x) f1-1)) + (f1-2 (+ (-> arg0 z) f1-1)) + ) + (set! (-> s5-0 bounds max x) (max 0 (min 15 (the int (/ (- f2-7 (-> v1-0 origin x)) f0-0))))) + (set! (-> s5-0 bounds max z) (max 0 (min 15 (the int (/ (- f1-2 (-> v1-0 origin z)) f0-0))))) + ) + ) + (let ((s3-0 (-> s5-0 bounds min z))) + (until (< (-> s5-0 bounds max z) s3-0) + (let ((s2-0 (-> s5-0 bounds min x))) + (until (< (-> s5-0 bounds max x) s2-0) + (trail-graph-method-25 obj s5-0 s2-0 s3-0) + (+! s2-0 1) + ) + ) + (+! s3-0 1) + ) + ) + (while (< (-> s5-0 best-conn-id) 0) + (let ((v1-8 15)) + (set! (-> s5-0 bounds min x) (max 0 (+ (-> s5-0 bounds min x) -1))) + (set! (-> s5-0 bounds min z) (max 0 (+ (-> s5-0 bounds min z) -1))) + (set! (-> s5-0 bounds max x) (min (+ (-> s5-0 bounds max x) 1) v1-8)) + (set! (-> s5-0 bounds max z) (min (+ (-> s5-0 bounds max z) 1) v1-8)) + ) + (let ((s3-1 (-> s5-0 bounds min x))) + (until (< (-> s5-0 bounds max x) s3-1) + (trail-graph-method-25 obj s5-0 s3-1 (-> s5-0 bounds min z)) + (trail-graph-method-25 obj s5-0 s3-1 (-> s5-0 bounds max z)) + (+! s3-1 1) + ) + ) + (let ((s3-2 (-> s5-0 bounds min z))) + (until (< (-> s5-0 bounds max z) s3-2) + (trail-graph-method-25 obj s5-0 (-> s5-0 bounds min x) s3-2) + (trail-graph-method-25 obj s5-0 (-> s5-0 bounds max x) s3-2) + (+! s3-2 1) + ) + ) + ) + (set! (-> arg1 y) 0.0) + (-> s5-0 best-conn-id) + ) + ) + +(defmethod trail-graph-method-9 trail-graph ((obj trail-graph) (arg0 int)) + (let ((s4-0 (-> obj node arg0))) + (set! (-> s4-0 cost-from-start) (get-dist-score s4-0 (-> obj orig-start-pos))) + (set! (-> s4-0 cost-to-goal) (get-dist-score s4-0 (-> obj orig-goal-pos))) + ) + (trail-graph-method-11 obj arg0 -1) + 0 + (none) + ) + +(defmethod trail-graph-method-10 trail-graph ((obj trail-graph) (arg0 int)) + (let* ((s5-0 (-> obj conn arg0)) + (v1-1 (-> s5-0 visgroup-id)) + ) + (cond + ((> v1-1 0) + (let* ((v1-4 (-> obj visgroup (+ v1-1 -1))) + (s5-1 (&-> (-> obj visnode-ids) (-> v1-4 first-conn))) + (s4-0 (-> v1-4 conn-count)) + ) + (-> obj visnode-ids) + (while (nonzero? s4-0) + (+! s4-0 -1) + (trail-graph-method-9 obj (the-as int (-> s5-1 0))) + (set! s5-1 (&-> s5-1 1)) + ) + ) + ) + (else + (trail-graph-method-9 obj (the-as int (-> s5-0 head-id))) + (trail-graph-method-9 obj (the-as int (-> s5-0 tail-id))) + ) + ) + ) + (none) + ) + +;; WARN: new jak 2 until loop case, check carefully +(defmethod trail-graph-method-11 trail-graph ((obj trail-graph) (arg0 int) (arg1 int)) + (let ((v1-0 (/ arg0 8)) + (a3-1 (ash 1 (logand arg0 7))) + ) + (logior! (-> obj open-quads 0 byte v1-0) a3-1) + ) + (let* ((v1-2 (-> obj node)) + (v0-0 (-> v1-2 arg0)) + ) + (set! (-> v0-0 parent-id) arg1) + (let ((a3-6 (+ (-> v0-0 cost-from-start) (-> v0-0 cost-to-goal))) + (t0-4 (-> obj open-head-id)) + (a2-2 -1) + ) + (until #f + (when (< t0-4 0) + (set! (-> v0-0 next-id) -1) + (set! (-> v0-0 prev-id) a2-2) + (if (>= a2-2 0) + (set! (-> v1-2 a2-2 next-id) arg0) + (set! (-> obj open-head-id) arg0) + ) + (return v0-0) + ) + (let ((t1-4 (-> v1-2 t0-4))) + (when (>= (+ (-> t1-4 cost-from-start) (-> t1-4 cost-to-goal)) a3-6) + (set! (-> v0-0 next-id) t0-4) + (set! (-> v0-0 prev-id) a2-2) + (set! (-> t1-4 prev-id) arg0) + (if (>= a2-2 0) + (set! (-> v1-2 a2-2 next-id) arg0) + (set! (-> obj open-head-id) arg0) + ) + (return v0-0) + ) + (set! a2-2 t0-4) + (set! t0-4 (-> t1-4 next-id)) + ) + ) + ) + #f + v0-0 + ) + ) + +(defmethod trail-graph-method-22 trail-graph ((obj trail-graph) (arg0 int)) + (let ((v1-0 (/ arg0 8)) + (a2-1 (ash 1 (logand arg0 7))) + ) + (logior! (-> obj open-quads 0 byte v1-0) a2-1) + ) + (let* ((v1-2 (-> obj node)) + (a2-4 (-> v1-2 arg0)) + (a1-2 (-> a2-4 prev-id)) + (a2-5 (-> a2-4 next-id)) + ) + (cond + ((>= a1-2 0) + (set! (-> v1-2 a1-2 next-id) a2-5) + (if (>= a2-5 0) + (set! (-> v1-2 a2-5 prev-id) a1-2) + ) + ) + (else + (set! (-> obj open-head-id) a2-5) + (if (>= a2-5 0) + (set! (-> v1-2 a2-5 prev-id) -1) + ) + ) + ) + ) + (none) + ) + +(defmethod get-next-to-explore trail-graph ((obj trail-graph)) + (let ((v0-0 (-> obj open-head-id))) + (when (>= v0-0 0) + (let* ((v1-1 (-> obj node)) + (a2-0 (-> v1-1 v0-0 next-id)) + ) + (set! (-> obj open-head-id) a2-0) + (if (>= a2-0 0) + (set! (-> v1-1 a2-0 prev-id) -1) + ) + ) + (let ((v1-3 (/ v0-0 8)) + (a1-6 (ash 1 (logand v0-0 7))) + ) + (logior! (-> obj closed-quads 0 byte v1-3) a1-6) + (logxor! (-> obj open-quads 0 byte v1-3) (the-as uint a1-6)) + ) + ) + v0-0 + ) + ) + +;; WARN: Return type mismatch int vs uint. +(defmethod get-dist-score trail-node ((obj trail-node) (arg0 vector)) + (let* ((f0-1 (- (-> arg0 x) (* 4096.0 (the float (-> obj x))))) + (f1-3 (- (-> arg0 z) (* 4096.0 (the float (-> obj z))))) + (f0-4 (sqrtf (+ (* f0-1 f0-1) (* f1-3 f1-3)))) + ) + (the uint (fmin 65535.0 (* 0.00024414062 (* 8.0 f0-4)))) + ) + ) + +(defmethod do-some-work trail-graph ((obj trail-graph)) + (let ((s5-0 (get-next-to-explore obj))) + (if (< s5-0 0) + (return 2) + ) + (let ((s4-0 (-> obj node s5-0))) + (when (logtest? (-> s4-0 flags) (trail-node-flag tnf0)) + (set! (-> obj goal-node-id) s5-0) + (return 3) + ) + (let ((s3-0 (&-> (-> obj conn-ids) (-> s4-0 first-conn)))) + (countdown (s2-0 (-> s4-0 conn-count)) + (let* ((a0-7 (-> obj conn (-> s3-0 0))) + (v1-12 (-> a0-7 flags)) + ) + (when (= (logand (the-as conn-flag (-> obj conn-mask)) v1-12) v1-12) + (let ((s1-0 (-> a0-7 tail-id))) + (if (= s1-0 s5-0) + (set! s1-0 (-> a0-7 head-id)) + ) + (let ((s0-0 (-> obj node s1-0)) + (v1-17 (min #xffff (the-as int (+ (-> a0-7 cost) (-> s4-0 cost-from-start))))) + (a0-10 (shr s1-0 3)) + (a1-7 (ash 1 (logand s1-0 7))) + ) + (cond + ((logtest? (-> obj open-quads 0 byte a0-10) a1-7) + (when (< (the-as uint v1-17) (-> s0-0 cost-from-start)) + (set! (-> s0-0 cost-from-start) (the-as uint v1-17)) + (trail-graph-method-22 obj (the-as int s1-0)) + (trail-graph-method-11 obj (the-as int s1-0) s5-0) + ) + ) + ((not (logtest? (-> obj closed-quads 0 byte a0-10) a1-7)) + (set! (-> s0-0 cost-from-start) (the-as uint v1-17)) + (set! (-> s0-0 cost-to-goal) (get-dist-score s0-0 (-> obj orig-goal-pos))) + (trail-graph-method-11 obj (the-as int s1-0) s5-0) + ) + ((< (the-as uint v1-17) (-> s0-0 cost-from-start)) + (set! (-> s0-0 cost-from-start) (the-as uint v1-17)) + (trail-graph-method-11 obj (the-as int s1-0) s5-0) + ) + ) + ) + ) + ) + ) + (set! s3-0 (&-> s3-0 1)) + ) + ) + ) + ) + 1 + ) + +;; ERROR: Unsupported inline assembly instruction kind - [mfc0 v1, Count] +;; ERROR: Unsupported inline assembly instruction kind - [mfc0 v1, Count] +(defmethod run-until-done-or-timeout trail-graph ((obj trail-graph) (arg0 int)) + (local-vars (v1-1 int)) + (let ((v0-0 (the-as int (-> obj mode)))) + 0 + (.mfc0 v1-1 Count) + (while (and (= v0-0 1) (< (the-as uint v1-1) (the-as uint arg0))) + (set! v0-0 (do-some-work obj)) + (.mfc0 v1-1 Count) + ) + (set! (-> obj mode) (the-as uint v0-0)) + ) + (none) + ) + +(deftype trail-vis-work (structure) + ((best-count uint32 :offset-assert 0) + (best-dist float :offset-assert 4) + (start-conn-id uint32 :offset-assert 8) + (p0 vector :inline :offset-assert 16) + (p1 vector :inline :offset-assert 32) + (best-node-id uint16 64 :offset-assert 48) + ) + :method-count-assert 9 + :size-assert #xb0 + :flag-assert #x9000000b0 + ) + + +(defmethod trail-graph-method-19 trail-graph ((obj trail-graph) (arg0 int) (arg1 int)) + (local-vars (s4-1 symbol)) + (let* ((s4-0 (-> obj node)) + (v1-2 (-> s4-0 arg1)) + (s5-0 (new 'stack-no-clear 'trail-vis-work)) + ) + (set! (-> s5-0 start-conn-id) (the-as uint arg0)) + (set-vector! + (-> s5-0 p0) + (* 4096.0 (the float (-> v1-2 x))) + (-> obj orig-goal-pos y) + (* 4096.0 (the float (-> v1-2 z))) + 1.0 + ) + (set! (-> s5-0 p1 quad) (-> s5-0 p0 quad)) + (set! (-> s5-0 best-count) (the-as uint 0)) + (set! (-> s5-0 best-dist) -1.0) + (let ((s2-0 (&-> (-> obj conn-ids) (-> v1-2 first-conn)))) + (countdown (s1-0 (-> v1-2 conn-count)) + (let* ((v1-4 (-> obj conn (-> s2-0 0))) + (s0-0 (-> v1-4 tail-id)) + ) + (if (= s0-0 arg1) + (set! s0-0 (-> v1-4 head-id)) + ) + (let ((v1-8 (-> s4-0 s0-0))) + (set! (-> s5-0 p1 x) (* 4096.0 (the float (-> v1-8 x)))) + (set! (-> s5-0 p1 z) (* 4096.0 (the float (-> v1-8 z)))) + ) + (let ((f0-11 (vector-segment-distance-point! (-> obj orig-goal-pos) (-> s5-0 p0) (-> s5-0 p1) (the-as vector #f))) + (f1-8 (-> s5-0 best-dist)) + ) + (cond + ((or (< f1-8 0.0) (< f0-11 f1-8)) + (set! (-> s5-0 best-dist) f0-11) + (set! (-> s5-0 best-count) (the-as uint 1)) + (set! (-> s5-0 best-node-id 0) s0-0) + ) + ((= f0-11 f1-8) + (let ((v1-15 (-> s5-0 best-count))) + (when (< v1-15 (the-as uint 64)) + (set! (-> s5-0 best-node-id v1-15) s0-0) + (set! (-> s5-0 best-count) (+ v1-15 1)) + ) + ) + ) + ) + ) + ) + (set! s2-0 (&-> s2-0 1)) + ) + ) + (update-node-flags-for-conn obj (the-as int (-> s5-0 start-conn-id)) (trail-node-flag tnf1) (trail-node-flag)) + (countdown (v1-20 (-> s5-0 best-count)) + (let ((a1-14 (-> s4-0 (-> s5-0 best-node-id v1-20)))) + (when (= (logand (-> a1-14 flags) (trail-node-flag tnf0 tnf1)) (trail-node-flag tnf0 tnf1)) + (set! s4-1 #t) + (goto cfg-22) + ) + ) + ) + (set! s4-1 #f) + (label cfg-22) + (update-node-flags-for-conn obj (the-as int (-> s5-0 start-conn-id)) (trail-node-flag) (trail-node-flag tnf1)) + ) + s4-1 + ) + +(defmethod do-search! trail-graph ((obj trail-graph) (arg0 vector) (arg1 vector) (arg2 trail-cached-search-info)) + (reset-search-state obj) + (+! (-> obj search-id) 1) + (set! (-> obj orig-start-pos quad) (-> arg0 quad)) + (let ((a1-1 -1)) + (when arg2 + (let ((v1-6 (-> arg2 goal-conn-id))) + (when (and (>= v1-6 0) + (= (-> arg2 orig-goal-pos x) (-> arg1 x)) + (= (-> arg2 orig-goal-pos y) (-> arg1 y)) + (= (-> arg2 orig-goal-pos z) (-> arg1 z)) + ) + (set! a1-1 v1-6) + (set! (-> obj conn-goal-pos quad) (-> arg2 conn-goal-pos quad)) + ) + ) + ) + (set! (-> obj orig-goal-pos quad) (-> arg1 quad)) + (when (< a1-1 0) + (set! a1-1 (do-path obj (-> obj orig-goal-pos) (-> obj conn-goal-pos))) + (when arg2 + (set! (-> arg2 goal-conn-id) a1-1) + (set! (-> arg2 orig-goal-pos quad) (-> obj orig-goal-pos quad)) + (set! (-> arg2 conn-goal-pos quad) (-> obj conn-goal-pos quad)) + ) + ) + (set! (-> obj goal-conn-id) a1-1) + (update-node-flags-for-conn obj a1-1 (trail-node-flag tnf0) (trail-node-flag)) + ) + (let ((v1-17 -1)) + (let ((a0-16 (-> *game-info* features))) + (if (not (logtest? (game-feature pass-red) a0-16)) + (set! v1-17 (logand -2 v1-17)) + ) + (if (not (logtest? (game-feature pass-green) a0-16)) + (set! v1-17 (logand -3 v1-17)) + ) + (if (not (logtest? (game-feature pass-yellow) a0-16)) + (set! v1-17 (logand -5 v1-17)) + ) + (if (not (logtest? (game-feature pass-blue) a0-16)) + (set! v1-17 (logand -9 v1-17)) + ) + ) + (set! (-> obj conn-mask) (the-as uint v1-17)) + ) + (let ((s5-1 (do-path obj (-> obj orig-start-pos) (-> obj conn-start-pos)))) + (trail-graph-method-10 obj s5-1) + (let ((a2-5 (-> obj open-head-id))) + (if (and (logtest? (-> obj node a2-5 flags) (trail-node-flag tnf0)) (trail-graph-method-19 obj s5-1 a2-5)) + (set! (-> obj mode) (the-as uint 3)) + (set! (-> obj mode) (the-as uint 1)) + ) + ) + ) + (none) + ) + +(if (not (try-initialize *trail-graph*)) + (set! *trail-graph* #f) + ) diff --git a/goal_src/jak2/levels/common/enemy/hopper.gc b/goal_src/jak2/levels/common/enemy/hopper.gc index c9b1df994d..0c686fbbd6 100644 --- a/goal_src/jak2/levels/common/enemy/hopper.gc +++ b/goal_src/jak2/levels/common/enemy/hopper.gc @@ -992,9 +992,7 @@ (set! (-> v1-39 nav-cull-radius) 61440.0) ) 0 - (set! (-> obj minimap) - (minimap-method-12 *minimap* obj (the-as uint 70) (the-as int #f) (the-as vector #t) 0) - ) + (set! (-> obj minimap) (add-icon! *minimap* obj (the-as uint 70) (the-as int #f) (the-as vector #t) 0)) 0 (none) ) diff --git a/goal_src/jak2/levels/common/flitter.gc b/goal_src/jak2/levels/common/flitter.gc index 4e5b6fa5bf..5525b59cd9 100644 --- a/goal_src/jak2/levels/common/flitter.gc +++ b/goal_src/jak2/levels/common/flitter.gc @@ -1445,7 +1445,7 @@ ) ) (set! (-> obj minimap) - (minimap-method-12 *minimap* obj (the-as uint 70) (the-as int #f) (the-as vector #t) 0) + (add-icon! *minimap* obj (the-as uint 70) (the-as int #f) (the-as vector #t) 0) ) (none) ) diff --git a/goal_src/jak2/levels/common/grunt.gc b/goal_src/jak2/levels/common/grunt.gc index 00681acaa8..096d395a63 100644 --- a/goal_src/jak2/levels/common/grunt.gc +++ b/goal_src/jak2/levels/common/grunt.gc @@ -1589,9 +1589,7 @@ 318 (new 'static 'vector :x -1433.6 :y 2785.28 :z -1761.28 :w 163840.0) ) - (set! (-> obj minimap) - (minimap-method-12 *minimap* obj (the-as uint 70) (the-as int #f) (the-as vector #t) 0) - ) + (set! (-> obj minimap) (add-icon! *minimap* obj (the-as uint 70) (the-as int #f) (the-as vector #t) 0)) 0 (none) ) diff --git a/goal_src/jak2/levels/dig/dig-digger.gc b/goal_src/jak2/levels/dig/dig-digger.gc index 3e7da4d1cd..2fc40cc7d3 100644 --- a/goal_src/jak2/levels/dig/dig-digger.gc +++ b/goal_src/jak2/levels/dig/dig-digger.gc @@ -741,7 +741,7 @@ (set! (-> obj draw light-index) (the-as uint 1)) (set! (-> obj part) (create-launch-control (-> *part-group-id-table* 1142) obj)) (set! (-> obj b) #f) - (set! (-> obj conn) (minimap-method-12 *minimap* obj (the-as uint 16) (the-as int #f) (the-as vector #t) 0)) + (set! (-> obj conn) (add-icon! *minimap* obj (the-as uint 16) (the-as int #f) (the-as vector #t) 0)) (if (and (-> obj entity) (logtest? (-> obj entity extra perm status) (entity-perm-status subtask-complete))) (go (method-of-object obj broken)) (go (method-of-object obj idle)) @@ -786,7 +786,7 @@ (set! (-> obj draw light-index) (the-as uint 1)) (set! (-> obj part) (create-launch-control (-> *part-group-id-table* 1142) obj)) (set! (-> obj b) (the-as basic #t)) - (set! (-> obj conn) (minimap-method-12 *minimap* obj (the-as uint 16) (the-as int #f) (the-as vector #t) 0)) + (set! (-> obj conn) (add-icon! *minimap* obj (the-as uint 16) (the-as int #f) (the-as vector #t) 0)) (if (and (-> obj entity) (logtest? (-> obj entity extra perm status) (entity-perm-status subtask-complete))) (go (method-of-object obj broken)) (go (method-of-object obj idle)) diff --git a/goal_src/jak2/levels/dig/dig-obs.gc b/goal_src/jak2/levels/dig/dig-obs.gc index 247b689d16..45233a20f3 100644 --- a/goal_src/jak2/levels/dig/dig-obs.gc +++ b/goal_src/jak2/levels/dig/dig-obs.gc @@ -687,7 +687,7 @@ (countdown (s4-2 (-> s5-2 length)) (let ((s3-1 (-> s5-2 data s4-2 actor))) (when s3-1 - (minimap-method-12 *minimap* obj (the-as uint 16) (the-as int #f) (the-as vector s3-1) 0) + (add-icon! *minimap* obj (the-as uint 16) (the-as int #f) (the-as vector s3-1) 0) (+! (-> obj total-buttons) 1) (if (logtest? (-> s3-1 extra perm status) (entity-perm-status subtask-complete)) (+! (-> obj pressed-count) 1) diff --git a/goal_src/jak2/levels/forest/pegasus.gc b/goal_src/jak2/levels/forest/pegasus.gc index 3861b772da..0af4c594e5 100644 --- a/goal_src/jak2/levels/forest/pegasus.gc +++ b/goal_src/jak2/levels/forest/pegasus.gc @@ -1462,7 +1462,7 @@ (dotimes (gp-0 (the-as int (-> self actor-group 0 0))) (let ((t0-1 (-> (&+ (-> self actor-group 0) (* gp-0 8)) 3))) (if t0-1 - (minimap-method-12 *minimap* self (the-as uint 16) (the-as int #f) (the-as vector t0-1) 0) + (add-icon! *minimap* self (the-as uint 16) (the-as int #f) (the-as vector t0-1) 0) ) ) ) diff --git a/goal_src/jak2/levels/forest/predator.gc b/goal_src/jak2/levels/forest/predator.gc index 58b83f8632..842250a738 100644 --- a/goal_src/jak2/levels/forest/predator.gc +++ b/goal_src/jak2/levels/forest/predator.gc @@ -1503,7 +1503,7 @@ ) ) (set! (-> obj enemy-flags) (logior (enemy-flag trackable-backup enable-on-hostile) (-> obj enemy-flags))) - (minimap-method-12 *minimap* obj (the-as uint 16) (the-as int #f) (the-as vector #t) 0) + (add-icon! *minimap* obj (the-as uint 16) (the-as int #f) (the-as vector #t) 0) 0 (none) ) @@ -1629,7 +1629,7 @@ (dotimes (s5-0 (length (-> obj actor-group 0))) (let ((t0-1 (-> obj actor-group 0 data s5-0 actor))) (if t0-1 - (minimap-method-12 *minimap* obj (the-as uint 16) (the-as int #f) (the-as vector t0-1) 0) + (add-icon! *minimap* obj (the-as uint 16) (the-as int #f) (the-as vector t0-1) 0) ) ) ) diff --git a/goal_src/jak2/levels/ruins/ruins-scenes.gc b/goal_src/jak2/levels/ruins/ruins-scenes.gc index 463efbed4b..723b45a784 100644 --- a/goal_src/jak2/levels/ruins/ruins-scenes.gc +++ b/goal_src/jak2/levels/ruins/ruins-scenes.gc @@ -1355,7 +1355,7 @@ (the-as pair 0) ) (set! (-> obj part) (create-launch-control (-> *part-group-id-table* 78) obj)) - (minimap-method-12 *minimap* obj (the-as uint 16) (the-as int #f) (the-as vector #t) 0) + (add-icon! *minimap* obj (the-as uint 16) (the-as int #f) (the-as vector #t) 0) (go (method-of-object obj idle)) (none) ) diff --git a/test/decompiler/reference/jak2/engine/game/task/task-arrow_REF.gc b/test/decompiler/reference/jak2/engine/game/task/task-arrow_REF.gc index faab268365..188234fc45 100644 --- a/test/decompiler/reference/jak2/engine/game/task/task-arrow_REF.gc +++ b/test/decompiler/reference/jak2/engine/game/task/task-arrow_REF.gc @@ -137,9 +137,9 @@ (if (and (not (handle->process (-> obj hud-dist))) *target*) (set! (-> obj hud-dist) (ppointer->handle (process-spawn hud-progress :init hud-init-by-other :to *target*))) ) - (let ((s5-1 (minimap-method-10 *minimap* (-> obj minimap) (the-as minimap-trail #f)))) + (let ((s5-1 (get-trail-for-connection *minimap* (-> obj minimap) #f))) (if (and s5-1 (nonzero? (-> s5-1 last-updated))) - (set! (-> obj dist) (minimap-trail-method-9 s5-1 (target-pos 0) (-> obj pos))) + (set! (-> obj dist) (get-distance-with-path s5-1 (target-pos 0) (-> obj pos))) ) ) (if (= (-> obj max-dist) 0.0) @@ -175,9 +175,7 @@ ((< (* f0-15 f0-15) (vector-vector-xz-distance-squared (-> obj pos) (-> obj root trans))) (kill-callback (-> *minimap* engine) (-> obj minimap)) (set! (-> obj root trans quad) (-> obj pos quad)) - (set! (-> obj minimap) - (minimap-method-12 *minimap* obj (-> obj map-icon) (the-as int #f) (the-as vector #t) 0) - ) + (set! (-> obj minimap) (add-icon! *minimap* obj (-> obj map-icon) (the-as int #f) (the-as vector #t) 0)) ) (else (set! (-> obj root trans quad) (-> obj pos quad)) @@ -257,7 +255,7 @@ (kill-callback (-> *minimap* engine) (-> self minimap)) (let ((a2-1 (-> event param 0))) (set! (-> self map-icon) a2-1) - (set! v0-2 (minimap-method-12 *minimap* self a2-1 (the-as int #f) (the-as vector #t) 0)) + (set! v0-2 (add-icon! *minimap* self a2-1 (the-as int #f) (the-as vector #t) 0)) ) (set! (-> self minimap) (the-as connection-minimap v0-2)) v0-2 @@ -319,9 +317,7 @@ (set! (-> self max-dist) 0.0) (set! (-> self theta) 0.0) (set! (-> self phi) 0.0) - (set! (-> self minimap) - (minimap-method-12 *minimap* self (-> arg0 map-icon) (the-as int #f) (the-as vector #t) 0) - ) + (set! (-> self minimap) (add-icon! *minimap* self (-> arg0 map-icon) (the-as int #f) (the-as vector #t) 0)) (cond ((not (logtest? (-> self flags) (task-arrow-flags task-arrow-flag-02))) (set! (-> self part) (create-launch-control (-> *part-group-id-table* 78) self)) 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 index a3411b99a0..6bc318aa4e 100644 --- a/test/decompiler/reference/jak2/engine/game/task/task-control_REF.gc +++ b/test/decompiler/reference/jak2/engine/game/task/task-control_REF.gc @@ -159,15 +159,9 @@ (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 - ) - ) + (let ((v1-67 + (add-icon! *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)) diff --git a/test/decompiler/reference/jak2/engine/gfx/hw/display_REF.gc b/test/decompiler/reference/jak2/engine/gfx/hw/display_REF.gc index b74c8a9909..ed7b7ea72d 100644 --- a/test/decompiler/reference/jak2/engine/gfx/hw/display_REF.gc +++ b/test/decompiler/reference/jak2/engine/gfx/hw/display_REF.gc @@ -392,21 +392,21 @@ ) ;; definition for function reset-display-gs-state -(defun reset-display-gs-state ((arg0 display) (arg1 dma-buffer) (arg2 int)) +(defun reset-display-gs-state ((arg0 display) (arg1 dma-buffer)) (let* ((v1-0 arg1) - (a2-1 (the-as object (-> v1-0 base))) + (a2-0 (the-as object (-> v1-0 base))) ) - (set! (-> (the-as dma-packet a2-1) dma) (new 'static 'dma-tag :qwc #x8 :id (dma-tag-id cnt))) - (set! (-> (the-as dma-packet a2-1) vif0) (new 'static 'vif-tag :cmd (vif-cmd flusha) :msk #x1)) - (set! (-> (the-as dma-packet a2-1) vif1) (new 'static 'vif-tag :imm #x8 :cmd (vif-cmd direct) :msk #x1)) - (set! (-> v1-0 base) (&+ (the-as pointer a2-1) 16)) + (set! (-> (the-as dma-packet a2-0) dma) (new 'static 'dma-tag :qwc #x8 :id (dma-tag-id cnt))) + (set! (-> (the-as dma-packet a2-0) vif0) (new 'static 'vif-tag :cmd (vif-cmd flusha) :msk #x1)) + (set! (-> (the-as dma-packet a2-0) vif1) (new 'static 'vif-tag :imm #x8 :cmd (vif-cmd direct) :msk #x1)) + (set! (-> v1-0 base) (&+ (the-as pointer a2-0) 16)) ) (let* ((v1-1 arg1) - (a2-3 (the-as object (-> v1-1 base))) + (a2-2 (the-as object (-> v1-1 base))) ) - (set! (-> (the-as gs-gif-tag a2-3) tag) (new 'static 'gif-tag64 :nloop #x1 :eop #x1 :nreg #x7)) - (set! (-> (the-as gs-gif-tag a2-3) regs) GIF_REGS_ALL_AD) - (set! (-> v1-1 base) (&+ (the-as pointer a2-3) 16)) + (set! (-> (the-as gs-gif-tag a2-2) tag) (new 'static 'gif-tag64 :nloop #x1 :eop #x1 :nreg #x7)) + (set! (-> (the-as gs-gif-tag a2-2) regs) GIF_REGS_ALL_AD) + (set! (-> v1-1 base) (&+ (the-as pointer a2-2) 16)) ) (let* ((v1-2 arg1) (a1-1 (-> v1-2 base)) diff --git a/test/decompiler/reference/jak2/engine/gfx/ocean/ocean-texture_REF.gc b/test/decompiler/reference/jak2/engine/gfx/ocean/ocean-texture_REF.gc index b3c00fb7ed..37877013c9 100644 --- a/test/decompiler/reference/jak2/engine/gfx/ocean/ocean-texture_REF.gc +++ b/test/decompiler/reference/jak2/engine/gfx/ocean/ocean-texture_REF.gc @@ -212,15 +212,13 @@ (+! s3-1 3072) (ocean-texture-add-call-rest obj arg0) ) - (let ((a2-5 s3-1)) - (ocean-texture-add-verts-last obj arg0 a2-5 (+ arg1 0)) - (ocean-texture-add-call-rest obj arg0) - (ocean-texture-add-call-done obj arg0) - (ocean-method-81 obj arg0) - (reset-display-gs-state *display* arg0 a2-5) - ) + (ocean-texture-add-verts-last obj arg0 s3-1 (+ arg1 0)) ) ) + (ocean-texture-add-call-rest obj arg0) + (ocean-texture-add-call-done obj arg0) + (ocean-method-81 obj arg0) + (reset-display-gs-state *display* arg0) 0 (none) ) @@ -424,22 +422,16 @@ (set! (-> v1-69 6 quad) (-> obj xy88 quad)) ) (&+! (-> arg0 base) 112) - (let ((t9-15 set-display-gs-state) - (a0-71 arg0) - (a1-31 66) - (a2-5 8) - ) - (t9-15 a0-71 a1-31 a2-5 8 0 0) - (let ((v1-72 (the-as (inline-array vector4w) (-> arg0 base)))) - (set! (-> v1-72 0 quad) (-> obj erase-tmpl dma-vif quad)) - (set! (-> v1-72 1 quad) (-> obj erase-tmpl quad 1)) - (set! (-> v1-72 2 quad) (-> obj color80808000 quad)) - (set! (-> v1-72 3 quad) (-> obj xy00 quad)) - (set! (-> v1-72 4 quad) (-> obj xy88 quad)) - ) - (set! (-> arg0 base) (the-as pointer (-> (the-as (inline-array vector4w) (-> arg0 base)) 5))) - (reset-display-gs-state *display* arg0 a2-5) + (set-display-gs-state arg0 66 8 8 0 0) + (let ((v1-72 (the-as (inline-array vector4w) (-> arg0 base)))) + (set! (-> v1-72 0 quad) (-> obj erase-tmpl dma-vif quad)) + (set! (-> v1-72 1 quad) (-> obj erase-tmpl quad 1)) + (set! (-> v1-72 2 quad) (-> obj color80808000 quad)) + (set! (-> v1-72 3 quad) (-> obj xy00 quad)) + (set! (-> v1-72 4 quad) (-> obj xy88 quad)) ) + (set! (-> arg0 base) (the-as pointer (-> (the-as (inline-array vector4w) (-> arg0 base)) 5))) + (reset-display-gs-state *display* arg0) 0 (none) ) @@ -1573,95 +1565,89 @@ (ocean-method-85 obj arg0) (ocean-method-88 obj arg0) (set-display-gs-state arg0 (the-as int (-> *ocean-envmap-texture-base* vram-page)) 64 64 0 0) - (let ((a0-43 obj) - (t9-13 (method-of-type ocean ocean-method-83)) - (a1-43 arg0) - (a2-5 32768.0) - ) - (t9-13 a0-43 a1-43 a2-5) - (let* ((v1-44 arg0) - (a0-44 (the-as object (-> v1-44 base))) - ) - (set! (-> (the-as dma-packet a0-44) dma) (new 'static 'dma-tag :qwc #x7 :id (dma-tag-id cnt))) - (set! (-> (the-as dma-packet a0-44) vif0) (new 'static 'vif-tag)) - (set! (-> (the-as dma-packet a0-44) vif1) (new 'static 'vif-tag :imm #x7 :cmd (vif-cmd direct) :msk #x1)) - (set! (-> v1-44 base) (&+ (the-as pointer a0-44) 16)) - ) - (let* ((v1-45 arg0) - (a0-46 (the-as object (-> v1-45 base))) - ) - (set! (-> (the-as gs-gif-tag a0-46) tag) (new 'static 'gif-tag64 :nloop #x1 :eop #x1 :nreg #x6)) - (set! (-> (the-as gs-gif-tag a0-46) regs) GIF_REGS_ALL_AD) - (set! (-> v1-45 base) (&+ (the-as pointer a0-46) 16)) - ) - (let* ((s4-4 arg0) - (s3-2 (-> s4-4 base)) - ) - (set! (-> (the-as (pointer gs-alpha) s3-2) 0) (new 'static 'gs-alpha :b #x1 :d #x1)) - (set! (-> (the-as (pointer gs-reg64) s3-2) 1) (gs-reg64 alpha-1)) - (set! (-> (the-as (pointer gs-tex0) s3-2) 2) - (new 'static 'gs-tex0 - :tbw #x1 - :tcc #x1 - :th (log2 32) - :tw (log2 64) - :tbp0 (-> *ocean-envmap-texture-base* vram-block) - ) - ) - (set! (-> (the-as (pointer gs-reg64) s3-2) 3) (gs-reg64 tex0-1)) - (set! (-> (the-as (pointer gs-tex1) s3-2) 4) (new 'static 'gs-tex1 :mmag #x1 :mmin #x1)) - (set! (-> (the-as (pointer gs-reg64) s3-2) 5) (gs-reg64 tex1-1)) - (set! (-> (the-as (pointer gs-clamp) s3-2) 6) - (new 'static 'gs-clamp :wms (gs-tex-wrap-mode clamp) :wmt (gs-tex-wrap-mode clamp)) - ) - (set! (-> (the-as (pointer gs-reg64) s3-2) 7) (gs-reg64 clamp-1)) - (set! (-> (the-as (pointer gs-rgbaq) s3-2) 8) (new 'static 'gs-rgbaq :r #x80 :g #x80 :b #x80 :a #x80 :q 1.0)) - (set! (-> (the-as (pointer gs-reg64) s3-2) 9) (gs-reg64 rgbaq)) - (set! (-> (the-as (pointer uint64) s3-2) 10) (the-as uint 0)) - (set! (-> (the-as (pointer gs-reg64) s3-2) 11) (gs-reg64 texflush)) - (set! (-> s4-4 base) (&+ s3-2 96)) - ) - (let* ((v1-63 arg0) - (a0-54 (the-as object (-> v1-63 base))) - ) - (set! (-> (the-as dma-packet a0-54) dma) (new 'static 'dma-tag :qwc #x3 :id (dma-tag-id cnt))) - (set! (-> (the-as dma-packet a0-54) vif0) (new 'static 'vif-tag)) - (set! (-> (the-as dma-packet a0-54) vif1) (new 'static 'vif-tag :imm #x3 :cmd (vif-cmd direct) :msk #x1)) - (set! (-> v1-63 base) (&+ (the-as pointer a0-54) 16)) - ) - (let* ((v1-64 arg0) - (a0-56 (the-as object (-> v1-64 base))) - ) - (set! (-> (the-as gs-gif-tag a0-56) tag) (new 'static 'gif-tag64 :nloop #x1 :eop #x1 :nreg #x2)) - (set! (-> (the-as gs-gif-tag a0-56) regs) GIF_REGS_ALL_AD) - (set! (-> v1-64 base) (&+ (the-as pointer a0-56) 16)) - ) - (let* ((v1-65 arg0) - (a0-58 (-> v1-65 base)) - ) - (set! (-> (the-as (pointer gs-tex1) a0-58) 0) (new 'static 'gs-tex1)) - (set! (-> (the-as (pointer gs-reg64) a0-58) 1) (gs-reg64 tex1-1)) - (set! (-> (the-as (pointer uint64) a0-58) 2) (the-as uint 0)) - (set! (-> (the-as (pointer gs-reg64) a0-58) 3) (gs-reg64 texflush)) - (set! (-> v1-65 base) (&+ a0-58 32)) - ) - (let ((v1-66 (the-as (inline-array vector4w) (-> arg0 base)))) - (set! (-> v1-66 0 quad) (-> obj sprite-tmpl dma-vif quad)) - (set! (-> v1-66 1 quad) (-> obj sprite-tmpl quad 1)) - (set-vector! (-> v1-66 2) 128 128 128 128) - (set-vector! (-> v1-66 3) 8 520 0 0) - (set-vector! (-> v1-66 4) 0 512 #xffffff 0) - (set-vector! (-> v1-66 5) 1032 8 0 0) - (let ((v1-67 (the-as object (-> v1-66 6)))) - (set! (-> (the-as (inline-array vector4w) v1-67) 0 x) 1024) - (set! (-> (the-as vector4w v1-67) y) 1024) - (set! (-> (the-as vector4w v1-67) z) #xffffff) - (set! (-> (the-as vector4w v1-67) w) 0) - ) - ) - (&+! (-> arg0 base) 112) - (reset-display-gs-state *display* arg0 (the-as int a2-5)) + (ocean-method-83 obj arg0 32768.0) + (let* ((v1-44 arg0) + (a0-44 (the-as object (-> v1-44 base))) + ) + (set! (-> (the-as dma-packet a0-44) dma) (new 'static 'dma-tag :qwc #x7 :id (dma-tag-id cnt))) + (set! (-> (the-as dma-packet a0-44) vif0) (new 'static 'vif-tag)) + (set! (-> (the-as dma-packet a0-44) vif1) (new 'static 'vif-tag :imm #x7 :cmd (vif-cmd direct) :msk #x1)) + (set! (-> v1-44 base) (&+ (the-as pointer a0-44) 16)) ) + (let* ((v1-45 arg0) + (a0-46 (the-as object (-> v1-45 base))) + ) + (set! (-> (the-as gs-gif-tag a0-46) tag) (new 'static 'gif-tag64 :nloop #x1 :eop #x1 :nreg #x6)) + (set! (-> (the-as gs-gif-tag a0-46) regs) GIF_REGS_ALL_AD) + (set! (-> v1-45 base) (&+ (the-as pointer a0-46) 16)) + ) + (let* ((s4-4 arg0) + (s3-2 (-> s4-4 base)) + ) + (set! (-> (the-as (pointer gs-alpha) s3-2) 0) (new 'static 'gs-alpha :b #x1 :d #x1)) + (set! (-> (the-as (pointer gs-reg64) s3-2) 1) (gs-reg64 alpha-1)) + (set! (-> (the-as (pointer gs-tex0) s3-2) 2) + (new 'static 'gs-tex0 + :tbw #x1 + :tcc #x1 + :th (log2 32) + :tw (log2 64) + :tbp0 (-> *ocean-envmap-texture-base* vram-block) + ) + ) + (set! (-> (the-as (pointer gs-reg64) s3-2) 3) (gs-reg64 tex0-1)) + (set! (-> (the-as (pointer gs-tex1) s3-2) 4) (new 'static 'gs-tex1 :mmag #x1 :mmin #x1)) + (set! (-> (the-as (pointer gs-reg64) s3-2) 5) (gs-reg64 tex1-1)) + (set! (-> (the-as (pointer gs-clamp) s3-2) 6) + (new 'static 'gs-clamp :wms (gs-tex-wrap-mode clamp) :wmt (gs-tex-wrap-mode clamp)) + ) + (set! (-> (the-as (pointer gs-reg64) s3-2) 7) (gs-reg64 clamp-1)) + (set! (-> (the-as (pointer gs-rgbaq) s3-2) 8) (new 'static 'gs-rgbaq :r #x80 :g #x80 :b #x80 :a #x80 :q 1.0)) + (set! (-> (the-as (pointer gs-reg64) s3-2) 9) (gs-reg64 rgbaq)) + (set! (-> (the-as (pointer uint64) s3-2) 10) (the-as uint 0)) + (set! (-> (the-as (pointer gs-reg64) s3-2) 11) (gs-reg64 texflush)) + (set! (-> s4-4 base) (&+ s3-2 96)) + ) + (let* ((v1-63 arg0) + (a0-54 (the-as object (-> v1-63 base))) + ) + (set! (-> (the-as dma-packet a0-54) dma) (new 'static 'dma-tag :qwc #x3 :id (dma-tag-id cnt))) + (set! (-> (the-as dma-packet a0-54) vif0) (new 'static 'vif-tag)) + (set! (-> (the-as dma-packet a0-54) vif1) (new 'static 'vif-tag :imm #x3 :cmd (vif-cmd direct) :msk #x1)) + (set! (-> v1-63 base) (&+ (the-as pointer a0-54) 16)) + ) + (let* ((v1-64 arg0) + (a0-56 (the-as object (-> v1-64 base))) + ) + (set! (-> (the-as gs-gif-tag a0-56) tag) (new 'static 'gif-tag64 :nloop #x1 :eop #x1 :nreg #x2)) + (set! (-> (the-as gs-gif-tag a0-56) regs) GIF_REGS_ALL_AD) + (set! (-> v1-64 base) (&+ (the-as pointer a0-56) 16)) + ) + (let* ((v1-65 arg0) + (a0-58 (-> v1-65 base)) + ) + (set! (-> (the-as (pointer gs-tex1) a0-58) 0) (new 'static 'gs-tex1)) + (set! (-> (the-as (pointer gs-reg64) a0-58) 1) (gs-reg64 tex1-1)) + (set! (-> (the-as (pointer uint64) a0-58) 2) (the-as uint 0)) + (set! (-> (the-as (pointer gs-reg64) a0-58) 3) (gs-reg64 texflush)) + (set! (-> v1-65 base) (&+ a0-58 32)) + ) + (let ((v1-66 (the-as (inline-array vector4w) (-> arg0 base)))) + (set! (-> v1-66 0 quad) (-> obj sprite-tmpl dma-vif quad)) + (set! (-> v1-66 1 quad) (-> obj sprite-tmpl quad 1)) + (set-vector! (-> v1-66 2) 128 128 128 128) + (set-vector! (-> v1-66 3) 8 520 0 0) + (set-vector! (-> v1-66 4) 0 512 #xffffff 0) + (set-vector! (-> v1-66 5) 1032 8 0 0) + (let ((v1-67 (the-as object (-> v1-66 6)))) + (set! (-> (the-as (inline-array vector4w) v1-67) 0 x) 1024) + (set! (-> (the-as vector4w v1-67) y) 1024) + (set! (-> (the-as vector4w v1-67) z) #xffffff) + (set! (-> (the-as vector4w v1-67) w) 0) + ) + ) + (&+! (-> arg0 base) 112) + (reset-display-gs-state *display* arg0) 0 (none) ) 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 f1126afcea..0c681b36b3 100644 --- a/test/decompiler/reference/jak2/engine/ui/minimap-h_REF.gc +++ b/test/decompiler/reference/jak2/engine/ui/minimap-h_REF.gc @@ -11,6 +11,7 @@ (scale float :offset-assert 28) (color rgba :offset-assert 32) ) + :pack-me :method-count-assert 9 :size-assert #x24 :flag-assert #x900000024 @@ -313,7 +314,7 @@ ;; definition of type connection-minimap (deftype connection-minimap (connection-pers) ((handle handle :offset 8) - (position vector :offset 16) + (position object :offset 16) (alpha float :offset 20) (class minimap-class-node :offset 24) (flags minimap-flag :offset 28) @@ -463,8 +464,8 @@ :size-assert #xd0 :flag-assert #xb000000d0 (:methods - (minimap-trail-method-9 (_type_ vector vector) float 9) - (minimap-trail-method-10 () none 10) + (get-distance-with-path (_type_ vector vector) float 9) + (reset (_type_) none 10) ) ) @@ -489,11 +490,11 @@ ;; definition of type minimap-draw-work (deftype minimap-draw-work (structure) - ((buf basic :offset-assert 0) - (justify-right basic :offset-assert 4) - (draw-pos vector4w :inline :offset-assert 16) - (mat matrix :inline :offset-assert 32) - (corner vector4w 4 :inline :offset-assert 96) + ((buf dma-buffer :offset-assert 0) + (justify-right symbol :offset-assert 4) + (draw-pos vector4w :inline :offset-assert 16) + (mat matrix :inline :offset-assert 32) + (corner vector 4 :inline :offset-assert 96) ) :method-count-assert 9 :size-assert #xa0 @@ -527,20 +528,20 @@ (color vector4w :inline :offset-assert 192) (offset vector :inline :offset-assert 208) (minimap-corner vector :inline :offset-assert 224) - (last-name basic :offset-assert 240) + (last-name string :offset-assert 240) (last-tex basic :offset-assert 244) (target-inv-scale float :offset-assert 248) (map-bits uint64 :offset-assert 256) - (level basic :offset-assert 264) - (ctywide basic :offset-assert 268) + (level level :offset-assert 264) + (ctywide level :offset-assert 268) (inv-scale float :offset 212) (fade float :offset 220) (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) + (race-tex texture :offset-assert 1536) (race-scale float :offset-assert 1540) - (race-level basic :offset-assert 1544) + (race-level level :offset-assert 1544) (sprite2-tmpl dma-gif-packet :inline :offset-assert 1552) (race-corner vector :inline :offset-assert 1584) (goal-time float :offset-assert 1600) @@ -550,25 +551,25 @@ :size-assert #x648 :flag-assert #x1c00000648 (:methods - (minimap-method-9 () none 9) - (minimap-method-10 (_type_ connection-minimap minimap-trail) minimap-trail 10) - (minimap-method-11 () none 11) - (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 (_type_ dma-buffer vector4w symbol) none 15) - (minimap-method-16 () none 16) - (minimap-method-17 () none 17) - (minimap-method-18 () none 18) - (minimap-method-19 () none 19) - (minimap-method-20 (_type_) symbol 20) - (minimap-method-21 () none 21) - (minimap-method-22 () none 22) - (minimap-method-23 () none 23) - (minimap-method-24 (_type_ dma-buffer vector4w symbol) none 24) - (minimap-method-25 (_type_ texture float) none 25) - (minimap-method-26 () none 26) - (minimap-method-27 (_type_ float float) none 27) + (debug-draw (_type_) none 9) + (get-trail-for-connection (_type_ connection-minimap symbol) minimap-trail 10) + (get-icon-draw-pos (_type_ connection-minimap minimap-trail vector float vector) symbol 11) + (add-icon! (_type_ process uint int vector int) connection-minimap 12) + (free-trail-by-connection (_type_ connection-minimap) none 13) + (update-trails (_type_) none 14) + (draw-1 (_type_ dma-buffer vector4w symbol) none 15) + (draw-connection (_type_ minimap-draw-work connection-minimap) none 16) + (draw-frustum-1 (_type_ minimap-draw-work connection-minimap) none 17) + (draw-frustum-2 (_type_ minimap-draw-work connection-minimap) none 18) + (sub-draw-1-2 (_type_ minimap-draw-work) none 19) + (update! (_type_) symbol 20) + (sub-draw-1-1 (_type_ minimap-draw-work) none 21) + (set-color (_type_ vector) none 22) + (draw-racer-2 (_type_ minimap-draw-work connection-minimap) none 23) + (draw-sprite2 (_type_ dma-buffer vector4w symbol) none 24) + (set-race-texture (_type_ texture float level) none 25) + (draw-racer-1 (_type_ minimap-draw-work connection-minimap float float float) none 26) + (set-race-corner (_type_ float float) none 27) ) ) diff --git a/test/decompiler/reference/jak2/engine/ui/minimap_REF.gc b/test/decompiler/reference/jak2/engine/ui/minimap_REF.gc new file mode 100644 index 0000000000..bd9ec18727 --- /dev/null +++ b/test/decompiler/reference/jak2/engine/ui/minimap_REF.gc @@ -0,0 +1,2896 @@ +;;-*-Lisp-*- +(in-package goal) + +;; definition of type minimap-texture-name-array +(deftype minimap-texture-name-array (structure) + ((data string 35 :offset-assert 0) + ) + :method-count-assert 9 + :size-assert #x8c + :flag-assert #x90000008c + ) + +;; definition for method 3 of type minimap-texture-name-array +(defmethod inspect minimap-texture-name-array ((obj minimap-texture-name-array)) + (when (not obj) + (set! obj obj) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" obj 'minimap-texture-name-array) + (format #t "~1Tdata[35] @ #x~X~%" (-> obj data)) + (label cfg-4) + obj + ) + +;; definition of type minimap-corner-array +(deftype minimap-corner-array (structure) + ((data vector 35 :inline :offset-assert 0) + ) + :method-count-assert 9 + :size-assert #x230 + :flag-assert #x900000230 + ) + +;; definition for method 3 of type minimap-corner-array +(defmethod inspect minimap-corner-array ((obj minimap-corner-array)) + (when (not obj) + (set! obj obj) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" obj 'minimap-corner-array) + (format #t "~1Tdata[35] @ #x~X~%" (-> obj data)) + (label cfg-4) + obj + ) + +;; definition for symbol *minimap-texture-name-array*, type minimap-texture-name-array +(define *minimap-texture-name-array* + (new 'static 'minimap-texture-name-array :data (new 'static 'array string 35 + #f + #f + "map-stadium" + "map-ctyslumc" + #f + #f + "map-ctygena" + "map-ctygenb" + "map-ctyslumb" + #f + #f + "map-ctyfarma" + "map-ctygenc" + #f + "map-ctysluma" + #f + "map-ctymarka" + "map-ctypala" + "map-ctymarkb" + "map-ctyindb" + #f + "map-ctyfarmb" + "map-ctypalb" + #f + "map-ctyinda" + #f + "map-ctyporta" + "map-ctyportb" + "map-ctyportc" + #f + #f + "map-ctyportd" + "map-ctyporte" + "map-ctyportf" + #f + ) + ) + ) + +;; definition for symbol *minimap-corner-array*, type minimap-corner-array +(define *minimap-corner-array* + (new 'static 'minimap-corner-array :data (new 'static 'inline-array vector 35 + (new 'static 'vector :x -4456448.0 :z -4456448.0 :w 1.0) + (new 'static 'vector :x -2883584.0 :z -4456448.0 :w 1.0) + (new 'static 'vector :x -1310720.0 :z -4456448.0 :w 1.0) + (new 'static 'vector :x 262144.0 :z -4456448.0 :w 1.0) + (new 'static 'vector :x 1835008.0 :z -4456448.0 :w 1.0) + (new 'static 'vector :x -4456448.0 :z -2883584.0 :w 1.0) + (new 'static 'vector :x -2883584.0 :z -2883584.0 :w 1.0) + (new 'static 'vector :x -1310720.0 :z -2883584.0 :w 1.0) + (new 'static 'vector :x 262144.0 :z -2883584.0 :w 1.0) + (new 'static 'vector :x 1835008.0 :z -2883584.0 :w 1.0) + (new 'static 'vector :x -4456448.0 :z -1310720.0 :w 1.0) + (new 'static 'vector :x -2883584.0 :z -1310720.0 :w 1.0) + (new 'static 'vector :x -1310720.0 :z -1310720.0 :w 1.0) + (new 'static 'vector :x 262144.0 :z -1310720.0 :w 1.0) + (new 'static 'vector :x 1835008.0 :z -1310720.0 :w 1.0) + (new 'static 'vector :x -4456448.0 :z 262144.0 :w 1.0) + (new 'static 'vector :x -2883584.0 :z 262144.0 :w 1.0) + (new 'static 'vector :x -1310720.0 :z 262144.0 :w 1.0) + (new 'static 'vector :x 262144.0 :z 262144.0 :w 1.0) + (new 'static 'vector :x 1835008.0 :z 262144.0 :w 1.0) + (new 'static 'vector :x -4456448.0 :z 1835008.0 :w 1.0) + (new 'static 'vector :x -2883584.0 :z 1835008.0 :w 1.0) + (new 'static 'vector :x -1310720.0 :z 1835008.0 :w 1.0) + (new 'static 'vector :x 262144.0 :z 1835008.0 :w 1.0) + (new 'static 'vector :x 1835008.0 :z 1835008.0 :w 1.0) + (new 'static 'vector :x -4456448.0 :z 3407872.0 :w 1.0) + (new 'static 'vector :x -2883584.0 :z 3407872.0 :w 1.0) + (new 'static 'vector :x -1310720.0 :z 3407872.0 :w 1.0) + (new 'static 'vector :x 262144.0 :z 3407872.0 :w 1.0) + (new 'static 'vector :x 1835008.0 :z 3407872.0 :w 1.0) + (new 'static 'vector :x -4456448.0 :z 4980736.0 :w 1.0) + (new 'static 'vector :x -2883584.0 :z 4980736.0 :w 1.0) + (new 'static 'vector :x -1310720.0 :z 4980736.0 :w 1.0) + (new 'static 'vector :x 262144.0 :z 4980736.0 :w 1.0) + (new 'static 'vector :x 1835008.0 :z 4980736.0 :w 1.0) + ) + ) + ) + +;; definition for symbol *minimap*, type minimap +(define *minimap* + (new 'static 'minimap + :draw-tmpl (new 'static 'dma-gif-packet + :dma-vif (new 'static 'dma-packet + :dma (new 'static 'dma-tag :qwc #xa :id (dma-tag-id cnt)) + :vif1 (new 'static 'vif-tag :imm #xa :cmd (vif-cmd direct) :msk #x1) + ) + :gif0 (new 'static 'gif-tag64 + :nloop #x1 + :eop #x1 + :pre #x1 + :prim (new 'static 'gs-prim :prim (gs-prim-type tri-strip) :tme #x1 :fst #x1) + :nreg #x9 + ) + :gif1 (new 'static 'gif-tag-regs + :regs0 (gif-reg-id rgbaq) + :regs1 (gif-reg-id uv) + :regs2 (gif-reg-id xyz2) + :regs3 (gif-reg-id uv) + :regs4 (gif-reg-id xyz2) + :regs5 (gif-reg-id uv) + :regs6 (gif-reg-id xyz2) + :regs7 (gif-reg-id uv) + :regs8 (gif-reg-id xyz2) + ) + ) + :draw2-tmpl (new 'static 'dma-gif-packet + :dma-vif (new 'static 'dma-packet + :dma (new 'static 'dma-tag :qwc #xa :id (dma-tag-id cnt)) + :vif1 (new 'static 'vif-tag :imm #xa :cmd (vif-cmd direct) :msk #x1) + ) + :gif0 (new 'static 'gif-tag64 + :nloop #x1 + :eop #x1 + :pre #x1 + :prim (new 'static 'gs-prim :prim (gs-prim-type tri-strip) :tme #x1) + :nreg #x9 + ) + :gif1 (new 'static 'gif-tag-regs + :regs0 (gif-reg-id rgbaq) + :regs1 (gif-reg-id st) + :regs2 (gif-reg-id xyz2) + :regs3 (gif-reg-id st) + :regs4 (gif-reg-id xyz2) + :regs5 (gif-reg-id st) + :regs6 (gif-reg-id xyz2) + :regs7 (gif-reg-id st) + :regs8 (gif-reg-id xyz2) + ) + ) + :draw3-tmpl (new 'static 'dma-gif-packet + :dma-vif (new 'static 'dma-packet + :dma (new 'static 'dma-tag :qwc #xa :id (dma-tag-id cnt)) + :vif1 (new 'static 'vif-tag :imm #xa :cmd (vif-cmd direct) :msk #x1) + ) + :gif0 (new 'static 'gif-tag64 + :nloop #x1 + :eop #x1 + :pre #x1 + :prim (new 'static 'gs-prim :prim (gs-prim-type tri-strip) :tme #x1 :abe #x1 :fst #x1) + :nreg #x9 + ) + :gif1 (new 'static 'gif-tag-regs + :regs0 (gif-reg-id rgbaq) + :regs1 (gif-reg-id uv) + :regs2 (gif-reg-id xyz2) + :regs3 (gif-reg-id uv) + :regs4 (gif-reg-id xyz2) + :regs5 (gif-reg-id uv) + :regs6 (gif-reg-id xyz2) + :regs7 (gif-reg-id uv) + :regs8 (gif-reg-id xyz2) + ) + ) + :draw4-tmpl (new 'static 'dma-gif-packet + :dma-vif (new 'static 'dma-packet + :dma (new 'static 'dma-tag :qwc #xa :id (dma-tag-id cnt)) + :vif1 (new 'static 'vif-tag :imm #xa :cmd (vif-cmd direct) :msk #x1) + ) + :gif0 (new 'static 'gif-tag64 + :nloop #x1 + :eop #x1 + :pre #x1 + :prim (new 'static 'gs-prim :prim (gs-prim-type tri-strip) :tme #x1 :abe #x1) + :nreg #x9 + ) + :gif1 (new 'static 'gif-tag-regs + :regs0 (gif-reg-id rgbaq) + :regs1 (gif-reg-id st) + :regs2 (gif-reg-id xyz2) + :regs3 (gif-reg-id st) + :regs4 (gif-reg-id xyz2) + :regs5 (gif-reg-id st) + :regs6 (gif-reg-id xyz2) + :regs7 (gif-reg-id st) + :regs8 (gif-reg-id xyz2) + ) + ) + :sprite-tmpl (new 'static 'dma-gif-packet + :dma-vif (new 'static 'dma-packet + :dma (new 'static 'dma-tag :qwc #x6 :id (dma-tag-id cnt)) + :vif1 (new 'static 'vif-tag :imm #x6 :cmd (vif-cmd direct) :msk #x1) + ) + :gif0 (new 'static 'gif-tag64 + :nloop #x1 + :eop #x1 + :pre #x1 + :prim (new 'static 'gs-prim :prim (gs-prim-type sprite) :tme #x1 :abe #x1 :fst #x1) + :nreg #x5 + ) + :gif1 (new 'static 'gif-tag-regs + :regs0 (gif-reg-id rgbaq) + :regs1 (gif-reg-id uv) + :regs2 (gif-reg-id xyz2) + :regs3 (gif-reg-id uv) + :regs4 (gif-reg-id xyz2) + ) + ) + :adgif-tmpl (new 'static 'dma-gif-packet + :dma-vif (new 'static 'dma-packet + :dma (new 'static 'dma-tag :qwc #x6 :id (dma-tag-id cnt)) + :vif1 (new 'static 'vif-tag :imm #x6 :cmd (vif-cmd direct) :msk #x1) + ) + :gif0 (new 'static 'gif-tag64 :nloop #x5 :eop #x1 :nreg #x1) + :gif1 (new 'static 'gif-tag-regs :regs0 (gif-reg-id a+d)) + ) + :color (new 'static 'vector4w :x #x80 :y #x80 :z #x80 :w #x80) + :offset (new 'static 'vector :x 1.0 :y 1.0 :z 1.0) + :last-name #f + :last-tex #f + :engine #f + :engine-key #x800 + :race-tex #f + :race-scale 16384.0 + :race-level #f + :sprite2-tmpl (new 'static 'dma-gif-packet + :dma-vif (new 'static 'dma-packet + :dma (new 'static 'dma-tag :qwc #x6 :id (dma-tag-id cnt)) + :vif1 (new 'static 'vif-tag :imm #x6 :cmd (vif-cmd direct) :msk #x1) + ) + :gif0 (new 'static 'gif-tag64 + :nloop #x1 + :eop #x1 + :pre #x1 + :prim (new 'static 'gs-prim :prim (gs-prim-type sprite) :tme #x1 :abe #x1) + :nreg #x5 + ) + :gif1 (new 'static 'gif-tag-regs + :regs0 (gif-reg-id rgbaq) + :regs1 (gif-reg-id st) + :regs2 (gif-reg-id xyz2) + :regs3 (gif-reg-id st) + :regs4 (gif-reg-id xyz2) + ) + ) + :frustum-alpha 1.0 + ) + ) + +;; definition for symbol *minimap-class-list*, type (inline-array minimap-class-node) +(define *minimap-class-list* (new 'static 'inline-array minimap-class-node 71 + (new 'static 'minimap-class-node + :default-position (new 'static 'vector :w 1.0) + :flags (minimap-flag trail bigmap) + :name "none" + :scale 1.0 + :color (new 'static 'rgba :r #xff :g #xff :b #xff :a #x80) + ) + (new 'static 'minimap-class-node + :default-position (new 'static 'vector :x 2920448.0 :y 32768.0 :z 3080192.0 :w 1.0) + :flags (minimap-flag trail bigmap city-only) + :name "onintent" + :scale 1.0 + :color (new 'static 'rgba :r #xff :g #xff :b #xff :a #x80) + ) + (new 'static 'minimap-class-node + :default-position (new 'static 'vector :x 3346432.0 :y 32768.0 :z -1384448.0 :w 1.0) + :flags (minimap-flag trail bigmap city-only) + :name "ruins" + :icon-xy (new 'static 'vector2ub :data (new 'static 'array uint8 2 #x1 #x0)) + :scale 1.0 + :color (new 'static 'rgba :r #xff :g #xff :b #xff :a #x80) + ) + (new 'static 'minimap-class-node + :default-position (new 'static 'vector :x 4505600.0 :z 4505600.0 :w 1.0) + :flags (minimap-flag trail bigmap city-only) + :name "vinroom" + :icon-xy (new 'static 'vector2ub :data (new 'static 'array uint8 2 #x2 #x0)) + :scale 1.0 + :color (new 'static 'rgba :r #xff :g #xff :b #xff :a #x80) + ) + (new 'static 'minimap-class-node + :default-position (new 'static 'vector :x -1761280.0 :z 856064.0 :w 1.0) + :flags (minimap-flag trail bigmap city-only) + :name "mountain" + :icon-xy (new 'static 'vector2ub :data (new 'static 'array uint8 2 #x3 #x0)) + :scale 1.0 + :color (new 'static 'rgba :r #xff :g #xff :b #xff :a #x80) + ) + (new 'static 'minimap-class-node + :default-position (new 'static 'vector :x 4751360.0 :y 32768.0 :z 241664.0 :w 1.0) + :flags (minimap-flag trail bigmap city-only) + :name "hideout" + :icon-xy (new 'static 'vector2ub :data (new 'static 'array uint8 2 #x4 #x0)) + :scale 1.0 + :color (new 'static 'rgba :r #xff :g #xff :b #xff :a #x80) + ) + (new 'static 'minimap-class-node + :default-position (new 'static 'vector :x 4378624.0 :y -34734.08 :z 2097152.0 :w 1.0) + :flags (minimap-flag trail bigmap city-only) + :name "sewer" + :icon-xy (new 'static 'vector2ub :data (new 'static 'array uint8 2 #x1 #x1)) + :scale 1.0 + :color (new 'static 'rgba :r #xff :g #xff :b #xff :a #x80) + ) + (new 'static 'minimap-class-node + :default-position (new 'static 'vector :x 2285568.0 :y 32768.0 :z -3252224.0 :w 1.0) + :flags (minimap-flag trail bigmap city-only) + :name "atoll" + :icon-xy (new 'static 'vector2ub :data (new 'static 'array uint8 2 #x2 #x1)) + :scale 1.0 + :color (new 'static 'rgba :r #xff :g #xff :b #xff :a #x80) + ) + (new 'static 'minimap-class-node + :default-position (new 'static 'vector :x -282624.0 :y 45056.0 :z 5464064.0 :w 1.0) + :flags (minimap-flag trail bigmap city-only) + :name "hiphog" + :icon-xy (new 'static 'vector2ub :data (new 'static 'array uint8 2 #x3 #x1)) + :scale 1.0 + :color (new 'static 'rgba :r #xff :g #xff :b #xff :a #x80) + ) + (new 'static 'minimap-class-node + :default-position (new 'static 'vector :x 3084288.0 :z 929792.0 :w 1.0) + :flags (minimap-flag trail bigmap city-only) + :name "fortress" + :icon-xy (new 'static 'vector2ub :data (new 'static 'array uint8 2 #x4 #x1)) + :scale 1.0 + :color (new 'static 'rgba :r #xff :g #xff :b #xff :a #x80) + ) + (new 'static 'minimap-class-node + :default-position (new 'static 'vector :x 1757184.0 :z 5386240.0 :w 1.0) + :flags (minimap-flag trail bigmap city-only) + :name "gungame" + :icon-xy (new 'static 'vector2ub :data (new 'static 'array uint8 2 #x5 #x1)) + :scale 1.0 + :color (new 'static 'rgba :r #xff :g #xff :b #xff :a #x80) + ) + (new 'static 'minimap-class-node + :default-position (new 'static 'vector :x 1843200.0 :y 34816.0 :z 5275648.0 :w 1.0) + :flags (minimap-flag trail bigmap city-only) + :name "gun-yellow" + :icon-xy (new 'static 'vector2ub :data (new 'static 'array uint8 2 #x1 #x2)) + :scale 1.0 + :color (new 'static 'rgba :g #x7f :b #x7f :a #x80) + ) + (new 'static 'minimap-class-node + :default-position (new 'static 'vector :x 442368.0 :z -1843200.0 :w 1.0) + :flags (minimap-flag trail bigmap city-only) + :name "garage" + :icon-xy (new 'static 'vector2ub :data (new 'static 'array uint8 2 #x0 #x2)) + :scale 1.0 + :color (new 'static 'rgba :r #xff :g #xff :b #xff :a #x80) + ) + (new 'static 'minimap-class-node + :default-position (new 'static 'vector :x 835584.0 :z -712704.0 :w 1.0) + :flags (minimap-flag trail bigmap city-only) + :name "palace-cable" + :icon-xy (new 'static 'vector2ub :data (new 'static 'array uint8 2 #x4 #x3)) + :scale 1.0 + :color (new 'static 'rgba :r #xff :g #xff :b #xff :a #x80) + ) + (new 'static 'minimap-class-node + :default-position (new 'static 'vector :w 1.0) + :name "guard" + :icon-xy (new 'static 'vector2ub :data (new 'static 'array uint8 2 #x0 #x1)) + :scale 1.0 + :color (new 'static 'rgba :r #x7f :a #x80) + ) + (new 'static 'minimap-class-node + :default-position (new 'static 'vector :w 1.0) + :flags (minimap-flag trail bigmap goal) + :name "goal" + :icon-xy (new 'static 'vector2ub :data (new 'static 'array uint8 2 #x0 #x4)) + :scale 1.0 + :color (new 'static 'rgba :g #x7f :a #x80) + ) + (new 'static 'minimap-class-node + :default-position (new 'static 'vector :w 1.0) + :flags (minimap-flag clamp bigmap goal) + :name "goal-no-trail" + :icon-xy (new 'static 'vector2ub :data (new 'static 'array uint8 2 #x0 #x4)) + :scale 1.0 + :color (new 'static 'rgba :g #x7f :a #x80) + ) + (new 'static 'minimap-class-node + :default-position (new 'static 'vector :w 1.0) + :name "parking-spot" + :icon-xy (new 'static 'vector2ub :data (new 'static 'array uint8 2 #x0 #x1)) + :scale 1.0 + :color (new 'static 'rgba :r #x7f :g #x7f :b #x7f :a #x80) + ) + (new 'static 'minimap-class-node + :default-position (new 'static 'vector :x -1761280.0 :z 856064.0 :w 1.0) + :flags (minimap-flag trail bigmap city-only) + :name "forest" + :icon-xy (new 'static 'vector2ub :data (new 'static 'array uint8 2 #x3 #x0)) + :scale 1.0 + :color (new 'static 'rgba :r #xff :g #xff :b #xff :a #x80) + ) + (new 'static 'minimap-class-node + :default-position (new 'static 'vector :x -450560.0 :z 1982464.0 :w 1.0) + :flags (minimap-flag trail bigmap) + :name "kiosk" + :icon-xy (new 'static 'vector2ub :data (new 'static 'array uint8 2 #x3 #x2)) + :scale 1.0 + :color (new 'static 'rgba :r #xff :g #xff :b #xff :a #x80) + ) + (new 'static 'minimap-class-node + :default-position (new 'static 'vector :x 1523712.0 :z 7372800.0 :w 1.0) + :flags (minimap-flag trail bigmap city-only) + :name "dig" + :icon-xy (new 'static 'vector2ub :data (new 'static 'array uint8 2 #x2 #x2)) + :scale 1.0 + :color (new 'static 'rgba :r #xff :g #xff :b #xff :a #x80) + ) + (new 'static 'minimap-class-node + :default-position (new 'static 'vector :x -1761280.0 :z 856064.0 :w 1.0) + :flags (minimap-flag trail bigmap city-only) + :name "canyon" + :icon-xy (new 'static 'vector2ub :data (new 'static 'array uint8 2 #x3 #x0)) + :scale 1.0 + :color (new 'static 'rgba :r #xff :g #xff :b #xff :a #x80) + ) + (new 'static 'minimap-class-node + :default-position (new 'static 'vector :x 839680.0 :z 3756032.0 :w 1.0) + :flags (minimap-flag trail bigmap city-only) + :name "tomb" + :icon-xy (new 'static 'vector2ub :data (new 'static 'array uint8 2 #x4 #x2)) + :scale 1.0 + :color (new 'static 'rgba :r #xff :g #xff :b #xff :a #x80) + ) + (new 'static 'minimap-class-node + :default-position (new 'static 'vector :x 1904640.0 :z 1753088.0 :w 1.0) + :flags (minimap-flag trail bigmap city-only) + :name "tanker" + :icon-xy (new 'static 'vector2ub :data (new 'static 'array uint8 2 #x5 #x0)) + :scale 1.0 + :color (new 'static 'rgba :r #xff :g #xff :b #xff :a #x80) + ) + (new 'static 'minimap-class-node + :default-position (new 'static 'vector :w 1.0) + :flags (minimap-flag trail flash bigmap) + :name "kid" + :icon-xy (new 'static 'vector2ub :data (new 'static 'array uint8 2 #x0 #x1)) + :scale 1.0 + :color (new 'static 'rgba :g #x7f :b #x7f :a #x80) + ) + (new 'static 'minimap-class-node + :default-position (new 'static 'vector :x 3121152.0 :z 3551232.0 :w 1.0) + :flags (minimap-flag trail bigmap city-only) + :name "consite" + :icon-xy (new 'static 'vector2ub :data (new 'static 'array uint8 2 #x5 #x2)) + :scale 1.0 + :color (new 'static 'rgba :g #x7f :a #x80) + ) + (new 'static 'minimap-class-node + :default-position (new 'static 'vector :x 786432.0 :z 3014656.0 :w 1.0) + :flags (minimap-flag trail bigmap city-only) + :name "palace" + :icon-xy (new 'static 'vector2ub :data (new 'static 'array uint8 2 #x5 #x0)) + :scale 1.0 + :color (new 'static 'rgba :r #xff :g #xff :b #xff :a #x80) + ) + (new 'static 'minimap-class-node + :default-position (new 'static 'vector :x 1523712.0 :z 7372800.0 :w 1.0) + :flags (minimap-flag trail bigmap city-only) + :name "castle" + :icon-xy (new 'static 'vector2ub :data (new 'static 'array uint8 2 #x2 #x2)) + :scale 1.0 + :color (new 'static 'rgba :r #xff :g #xff :b #xff :a #x80) + ) + (new 'static 'minimap-class-node + :default-position (new 'static 'vector :x 86016.0 :z 7151616.0 :w 1.0) + :flags (minimap-flag trail bigmap city-only) + :name "underport" + :icon-xy (new 'static 'vector2ub :data (new 'static 'array uint8 2 #x0 #x3)) + :scale 1.0 + :color (new 'static 'rgba :g #x7f :a #x80) + ) + (new 'static 'minimap-class-node + :default-position (new 'static 'vector :x 1126400.0 :z -2863104.0 :w 1.0) + :flags (minimap-flag trail bigmap city-only) + :name "stadium" + :icon-xy (new 'static 'vector2ub :data (new 'static 'array uint8 2 #x0 #x2)) + :scale 1.0 + :color (new 'static 'rgba :r #xff :g #xff :b #xff :a #x80) + ) + (new 'static 'minimap-class-node + :default-position (new 'static 'vector :x 2408448.0 :z 7798784.0 :w 1.0) + :flags (minimap-flag trail bigmap) + :name "port-turret" + :icon-xy (new 'static 'vector2ub :data (new 'static 'array uint8 2 #x5 #x1)) + :scale 1.0 + :color (new 'static 'rgba :r #xff :g #xff :b #xff :a #x80) + ) + (new 'static 'minimap-class-node + :default-position (new 'static 'vector :x 2895872.0 :z -1855488.0 :w 1.0) + :flags (minimap-flag trail bigmap city-only) + :name "oracle" + :icon-xy (new 'static 'vector2ub :data (new 'static 'array uint8 2 #x1 #x3)) + :scale 1.0 + :color (new 'static 'rgba :r #xff :g #xff :b #xff :a #x80) + ) + (new 'static 'minimap-class-node + :default-position (new 'static 'vector :w 1.0) + :flags (minimap-flag frustum) + :name "guard-frustum" + :icon-xy (new 'static 'vector2ub :data (new 'static 'array uint8 2 #x0 #x1)) + :scale 1.0 + :color (new 'static 'rgba :r #x7f :a #x80) + ) + (new 'static 'minimap-class-node + :default-position (new 'static 'vector :w 1.0) + :flags (minimap-flag bigmap city-only) + :name "burning-bush" + :icon-xy (new 'static 'vector2ub :data (new 'static 'array uint8 2 #x2 #x3)) + :scale 1.0 + :color (new 'static 'rgba :r #xff :g #xff :b #xff :a #x80) + ) + (new 'static 'minimap-class-node + :default-position (new 'static 'vector :x 1843200.0 :y 34816.0 :z 5275648.0 :w 1.0) + :flags (minimap-flag trail bigmap city-only) + :name "gun-dark" + :icon-xy (new 'static 'vector2ub :data (new 'static 'array uint8 2 #x1 #x2)) + :scale 1.0 + :color (new 'static 'rgba :g #x7f :b #x7f :a #x80) + ) + (new 'static 'minimap-class-node + :default-position (new 'static 'vector :x 3137536.0 :y 34324.48 :z -2962923.5 :w 1.0) + :flags (minimap-flag trail bigmap city-only) + :name "slumc-seal" + :icon-xy (new 'static 'vector2ub :data (new 'static 'array uint8 2 #x3 #x3)) + :scale 1.0 + :color (new 'static 'rgba :r #xff :g #xff :b #xff :a #x80) + ) + (new 'static 'minimap-class-node + :default-position (new 'static 'vector :w 1.0) + :flags (minimap-flag racer) + :name "racer" + :scale 1.0 + :color (new 'static 'rgba :r #xff :g #xff :b #x7f :a #x80) + ) + (new 'static 'minimap-class-node + :default-position (new 'static 'vector :w 1.0) + :flags (minimap-flag racer) + :name "racer-target" + :scale 1.0 + :color (new 'static 'rgba :g #xff :b #xff :a #x80) + ) + (new 'static 'minimap-class-node + :default-position (new 'static 'vector :w 1.0) + :flags (minimap-flag racer) + :name "racer-errol" + :scale 1.0 + :color (new 'static 'rgba :r #xff :a #x80) + ) + (new 'static 'minimap-class-node + :default-position (new 'static 'vector :x 166871.05 :y 49192.96 :z -2900009.0 :w 1.0) + :flags (minimap-flag trail bigmap) + :name "flag" + :icon-xy (new 'static 'vector2ub :data (new 'static 'array uint8 2 #x5 #x3)) + :scale 1.0 + :color (new 'static 'rgba :r #xff :g #xff :b #xff :a #x80) + ) + (new 'static 'minimap-class-node + :default-position (new 'static 'vector :x -258048.0 :y 32768.0 :z -96256.0 :w 1.0) + :flags (minimap-flag bigmap city-only) + :name "bbush-gena" + :icon-xy (new 'static 'vector2ub :data (new 'static 'array uint8 2 #x2 #x3)) + :scale 1.0 + :color (new 'static 'rgba :r #xff :g #xff :b #xff :a #x80) + ) + (new 'static 'minimap-class-node + :default-position (new 'static 'vector :x -1567539.2 :y 32768.0 :z -805683.2 :w 1.0) + :flags (minimap-flag bigmap city-only) + :name "bbush-gena-2" + :icon-xy (new 'static 'vector2ub :data (new 'static 'array uint8 2 #x2 #x3)) + :scale 1.0 + :color (new 'static 'rgba :r #xff :g #xff :b #xff :a #x80) + ) + (new 'static 'minimap-class-node + :default-position (new 'static 'vector :x 683663.4 :y 32768.0 :z -1237483.5 :w 1.0) + :flags (minimap-flag bigmap city-only) + :name "bbush-genb" + :icon-xy (new 'static 'vector2ub :data (new 'static 'array uint8 2 #x2 #x3)) + :scale 1.0 + :color (new 'static 'rgba :r #xff :g #xff :b #xff :a #x80) + ) + (new 'static 'minimap-class-node + :default-position (new 'static 'vector :x 1126400.0 :y 32768.0 :z -270336.0 :w 1.0) + :flags (minimap-flag bigmap city-only) + :name "bbush-genb-2" + :icon-xy (new 'static 'vector2ub :data (new 'static 'array uint8 2 #x2 #x3)) + :scale 1.0 + :color (new 'static 'rgba :r #xff :g #xff :b #xff :a #x80) + ) + (new 'static 'minimap-class-node + :default-position (new 'static 'vector :x 884736.0 :y 32768.0 :z 9445.376 :w 1.0) + :flags (minimap-flag bigmap city-only) + :name "bbush-genc" + :icon-xy (new 'static 'vector2ub :data (new 'static 'array uint8 2 #x2 #x3)) + :scale 1.0 + :color (new 'static 'rgba :r #xff :g #xff :b #xff :a #x80) + ) + (new 'static 'minimap-class-node + :default-position (new 'static 'vector :x 159744.0 :y 32768.0 :z 1081344.0 :w 1.0) + :flags (minimap-flag bigmap city-only) + :name "bbush-genc-2" + :icon-xy (new 'static 'vector2ub :data (new 'static 'array uint8 2 #x2 #x3)) + :scale 1.0 + :color (new 'static 'rgba :r #xff :g #xff :b #xff :a #x80) + ) + (new 'static 'minimap-class-node + :default-position (new 'static 'vector :x 3391774.8 :y 33341.44 :z 984637.44 :w 1.0) + :flags (minimap-flag bigmap city-only) + :name "bbush-sluma" + :icon-xy (new 'static 'vector2ub :data (new 'static 'array uint8 2 #x2 #x3)) + :scale 1.0 + :color (new 'static 'rgba :r #xff :g #xff :b #xff :a #x80) + ) + (new 'static 'minimap-class-node + :default-position (new 'static 'vector :x 2891899.0 :y 32768.0 :z -306487.28 :w 1.0) + :flags (minimap-flag bigmap city-only) + :name "bbush-slumb" + :icon-xy (new 'static 'vector2ub :data (new 'static 'array uint8 2 #x2 #x3)) + :scale 1.0 + :color (new 'static 'rgba :r #xff :g #xff :b #xff :a #x80) + ) + (new 'static 'minimap-class-node + :default-position (new 'static 'vector :x 1738997.8 :y 32768.0 :z -280698.88 :w 1.0) + :flags (minimap-flag bigmap city-only) + :name "bbush-slumb-2" + :icon-xy (new 'static 'vector2ub :data (new 'static 'array uint8 2 #x2 #x3)) + :scale 1.0 + :color (new 'static 'rgba :r #xff :g #xff :b #xff :a #x80) + ) + (new 'static 'minimap-class-node + :default-position (new 'static 'vector :x 2180219.0 :y 32768.0 :z -2407219.2 :w 1.0) + :flags (minimap-flag bigmap city-only) + :name "bbush-slumc" + :icon-xy (new 'static 'vector2ub :data (new 'static 'array uint8 2 #x2 #x3)) + :scale 1.0 + :color (new 'static 'rgba :r #xff :g #xff :b #xff :a #x80) + ) + (new 'static 'minimap-class-node + :default-position (new 'static 'vector :x 2602066.0 :y 31662.08 :z 6453739.5 :w 1.0) + :flags (minimap-flag bigmap city-only) + :name "bbush-port-3" + :icon-xy (new 'static 'vector2ub :data (new 'static 'array uint8 2 #x2 #x3)) + :scale 1.0 + :color (new 'static 'rgba :r #xff :g #xff :b #xff :a #x80) + ) + (new 'static 'minimap-class-node + :default-position (new 'static 'vector :x 1839267.9 :y 31662.08 :z 5443010.5 :w 1.0) + :flags (minimap-flag bigmap city-only) + :name "bbush-port-2" + :icon-xy (new 'static 'vector2ub :data (new 'static 'array uint8 2 #x2 #x3)) + :scale 1.0 + :color (new 'static 'rgba :r #xff :g #xff :b #xff :a #x80) + ) + (new 'static 'minimap-class-node + :default-position (new 'static 'vector :x -423485.44 :y 31744.0 :z 5558599.5 :w 1.0) + :flags (minimap-flag bigmap city-only) + :name "bbush-port" + :icon-xy (new 'static 'vector2ub :data (new 'static 'array uint8 2 #x2 #x3)) + :scale 1.0 + :color (new 'static 'rgba :r #xff :g #xff :b #xff :a #x80) + ) + (new 'static 'minimap-class-node + :default-position (new 'static 'vector :x -224952.31 :y 32768.0 :z 362332.16 :w 1.0) + :flags (minimap-flag bigmap city-only) + :name "bbush-farma" + :icon-xy (new 'static 'vector2ub :data (new 'static 'array uint8 2 #x2 #x3)) + :scale 1.0 + :color (new 'static 'rgba :r #xff :g #xff :b #xff :a #x80) + ) + (new 'static 'minimap-class-node + :default-position (new 'static 'vector :x -1280532.5 :y 32768.0 :z 4410286.0 :w 1.0) + :flags (minimap-flag bigmap city-only) + :name "bbush-farmb" + :icon-xy (new 'static 'vector2ub :data (new 'static 'array uint8 2 #x2 #x3)) + :scale 1.0 + :color (new 'static 'rgba :r #xff :g #xff :b #xff :a #x80) + ) + (new 'static 'minimap-class-node + :default-position (new 'static 'vector :x 3178741.8 :y 32768.0 :z 3331031.0 :w 1.0) + :flags (minimap-flag bigmap city-only) + :name "bbush-inda" + :icon-xy (new 'static 'vector2ub :data (new 'static 'array uint8 2 #x2 #x3)) + :scale 1.0 + :color (new 'static 'rgba :r #xff :g #xff :b #xff :a #x80) + ) + (new 'static 'minimap-class-node + :default-position (new 'static 'vector :x 3182592.0 :y 32768.0 :z 2916352.0 :w 1.0) + :flags (minimap-flag bigmap city-only) + :name "bbush-indb" + :icon-xy (new 'static 'vector2ub :data (new 'static 'array uint8 2 #x2 #x3)) + :scale 1.0 + :color (new 'static 'rgba :r #xff :g #xff :b #xff :a #x80) + ) + (new 'static 'minimap-class-node + :default-position (new 'static 'vector :x -733184.0 :y 32768.0 :z 3481600.0 :w 1.0) + :flags (minimap-flag bigmap city-only) + :name "bbush-marka" + :icon-xy (new 'static 'vector2ub :data (new 'static 'array uint8 2 #x2 #x3)) + :scale 1.0 + :color (new 'static 'rgba :r #xff :g #xff :b #xff :a #x80) + ) + (new 'static 'minimap-class-node + :default-position (new 'static 'vector :x 2985451.5 :y 34406.4 :z 2185216.0 :w 1.0) + :flags (minimap-flag bigmap city-only) + :name "bbush-markb" + :icon-xy (new 'static 'vector2ub :data (new 'static 'array uint8 2 #x2 #x3)) + :scale 1.0 + :color (new 'static 'rgba :r #xff :g #xff :b #xff :a #x80) + ) + (new 'static 'minimap-class-node + :default-position (new 'static 'vector :x 2576916.5 :y 34406.4 :z 3131310.0 :w 1.0) + :flags (minimap-flag bigmap city-only) + :name "bbush-markb-2" + :icon-xy (new 'static 'vector2ub :data (new 'static 'array uint8 2 #x2 #x3)) + :scale 1.0 + :color (new 'static 'rgba :r #xff :g #xff :b #xff :a #x80) + ) + (new 'static 'minimap-class-node + :default-position (new 'static 'vector :x 378306.56 :y 65536.0 :z 1866915.9 :w 1.0) + :flags (minimap-flag bigmap city-only) + :name "bbush-pal" + :icon-xy (new 'static 'vector2ub :data (new 'static 'array uint8 2 #x2 #x3)) + :scale 1.0 + :color (new 'static 'rgba :r #xff :g #xff :b #xff :a #x80) + ) + (new 'static 'minimap-class-node + :default-position (new 'static 'vector :x 1256243.2 :y 32768.0 :z 3622092.8 :w 1.0) + :flags (minimap-flag bigmap city-only) + :name "bbush-pal-2" + :icon-xy (new 'static 'vector2ub :data (new 'static 'array uint8 2 #x2 #x3)) + :scale 1.0 + :color (new 'static 'rgba :r #xff :g #xff :b #xff :a #x80) + ) + (new 'static 'minimap-class-node + :default-position (new 'static 'vector :x 1392926.8 :y 32768.0 :z -3109273.5 :w 1.0) + :flags (minimap-flag bigmap city-only) + :name "bbush-stadium" + :icon-xy (new 'static 'vector2ub :data (new 'static 'array uint8 2 #x2 #x3)) + :scale 1.0 + :color (new 'static 'rgba :r #xff :g #xff :b #xff :a #x80) + ) + (new 'static 'minimap-class-node + :default-position (new 'static 'vector :x 1542847.2 :y 196168.9 :z -4314233.0 :w 1.0) + :flags (minimap-flag bigmap goal) + :name "atoll-valve" + :icon-xy (new 'static 'vector2ub :data (new 'static 'array uint8 2 #x0 #x4)) + :scale 1.0 + :color (new 'static 'rgba :g #x7f :a #x80) + ) + (new 'static 'minimap-class-node + :default-position (new 'static 'vector :x 2277804.5 :y 217672.9 :z -4571725.5 :w 1.0) + :flags (minimap-flag bigmap goal) + :name "atoll-ashelin" + :icon-xy (new 'static 'vector2ub :data (new 'static 'array uint8 2 #x0 #x4)) + :scale 1.0 + :color (new 'static 'rgba :g #x7f :a #x80) + ) + (new 'static 'minimap-class-node + :default-position (new 'static 'vector :x -3100565.5 :y 547275.56 :z 1190112.5 :w 1.0) + :flags (minimap-flag bigmap goal) + :name "mountain-lens" + :icon-xy (new 'static 'vector2ub :data (new 'static 'array uint8 2 #x0 #x4)) + :scale 1.0 + :color (new 'static 'rgba :g #x7f :a #x80) + ) + (new 'static 'minimap-class-node + :default-position (new 'static 'vector :x -2833539.0 :y 496445.44 :z 11345.101 :w 1.0) + :flags (minimap-flag bigmap goal) + :name "mountain-shard" + :icon-xy (new 'static 'vector2ub :data (new 'static 'array uint8 2 #x0 #x4)) + :scale 1.0 + :color (new 'static 'rgba :g #x7f :a #x80) + ) + (new 'static 'minimap-class-node + :default-position (new 'static 'vector :x -3448408.5 :y 567047.8 :z 1029759.4 :w 1.0) + :flags (minimap-flag bigmap goal) + :name "mountain-gear" + :icon-xy (new 'static 'vector2ub :data (new 'static 'array uint8 2 #x0 #x4)) + :scale 1.0 + :color (new 'static 'rgba :g #x7f :a #x80) + ) + (new 'static 'minimap-class-node + :default-position (new 'static 'vector :x 4357507.5 :y 205120.72 :z -2286701.2 :w 1.0) + :flags (minimap-flag bigmap goal) + :name "ruins-hut" + :icon-xy (new 'static 'vector2ub :data (new 'static 'array uint8 2 #x0 #x4)) + :scale 1.0 + :color (new 'static 'rgba :g #x7f :a #x80) + ) + (new 'static 'minimap-class-node + :default-position (new 'static 'vector :x -2575550.8 :y 156067.02 :z 3728844.8 :w 1.0) + :flags (minimap-flag bigmap goal) + :name "forest-samos" + :icon-xy (new 'static 'vector2ub :data (new 'static 'array uint8 2 #x0 #x4)) + :scale 1.0 + :color (new 'static 'rgba :g #x7f :a #x80) + ) + (new 'static 'minimap-class-node + :default-position (new 'static 'vector :w 1.0) + :name "metalhead" + :icon-xy (new 'static 'vector2ub :data (new 'static 'array uint8 2 #x0 #x1)) + :scale 1.0 + :color (new 'static 'rgba :r #x7f :b #x7f :a #x80) + ) + ) + ) + +;; failed to figure out what this is: +(let ((gp-0 *minimap*)) + (set! (-> gp-0 engine) (new 'global 'engine-minimap '*minimap* 64 connection-minimap)) + (countdown (v1-7 6) + (set! (-> gp-0 trail v1-7 used-by) #f) + ) + ) + +;; definition for method 9 of type minimap +;; WARN: Return type mismatch int vs none. +(defmethod debug-draw minimap ((obj minimap)) + (with-pp + (when *trail-graph* + (dotimes (s5-0 6) + (let ((s4-0 (-> obj trail s5-0))) + (when (and (-> s4-0 used-by) + (>= (-> s4-0 node-count) 0) + (< (- (-> pp clock frame-counter) (the-as int (-> s4-0 last-updated))) (seconds 5)) + ) + (let* ((a3-0 (target-pos 0)) + (v1-12 s5-0) + (t1-0 (cond + ((zero? v1-12) + *color-green* + ) + ((= v1-12 1) + *color-blue* + ) + ((= v1-12 2) + *color-white* + ) + ((= v1-12 3) + *color-red* + ) + (else + *color-magenta* + ) + ) + ) + ) + (debug-draw-path + *trail-graph* + (-> s4-0 node-count) + (-> s4-0 node-id) + a3-0 + (-> s4-0 cached-info orig-goal-pos) + t1-0 + (* 1024.0 (the float s5-0)) + ) + ) + ) + ) + ) + ) + 0 + (none) + ) + ) + +;; definition for method 14 of type minimap +;; WARN: Return type mismatch int vs none. +;; ERROR: Unsupported inline assembly instruction kind - [mfc0 v1, Count] +(defmethod update-trails minimap ((obj minimap)) + "Main function to do trail search per-frame" + (with-pp + (let ((s5-0 *trail-graph*)) + (when s5-0 + (.mtc0 Count 0) + (let ((v1-1 0)) + (while (< (the-as uint v1-1) (the-as uint #x605a)) + (let ((v1-2 (-> s5-0 mode))) + (cond + ((= v1-2 1) + (run-until-done-or-timeout s5-0 #x605a) + ) + ((zero? v1-2) + (let ((v1-5 -1)) + (let ((a0-5 0)) + (countdown (a1-1 6) + (let* ((a2-3 (-> obj trail a1-1)) + (a3-0 (-> a2-3 used-by)) + ) + (when (and a3-0 (and (< 0.0 (-> a3-0 alpha)) (or (< v1-5 0) (< (the-as int (-> a2-3 last-updated)) a0-5)))) + (set! v1-5 a1-1) + (set! a0-5 (the-as int (-> a2-3 last-updated))) + ) + ) + ) + (let ((a1-5 (-> pp clock frame-counter))) + (if (or (< v1-5 0) (= a0-5 a1-5)) + (goto cfg-68) + ) + ) + ) + (let ((s4-0 (-> obj trail v1-5)) + (s3-0 (the-as object #f)) + ) + (let* ((v1-9 (-> s4-0 used-by)) + (s2-0 (-> v1-9 position)) + ) + (set! s3-0 (cond + ((= s2-0 #t) + (let* ((s2-1 (handle->process (-> v1-9 handle))) + (v1-13 (if (type? s2-1 process-drawable) + s2-1 + ) + ) + ) + (if v1-13 + (set! s3-0 (-> (the-as process-drawable v1-13) root trans)) + ) + ) + s3-0 + ) + ((and (= (logand (the-as int s2-0) 7) 4) (= (-> (the-as basic s2-0) type) entity-actor)) + (let* ((v1-19 s2-0) + (s3-1 (if v1-19 + (-> (the-as entity-actor v1-19) extra process) + ) + ) + (v1-21 (if (type? s3-1 process-drawable) + s3-1 + ) + ) + ) + (if v1-21 + (set! s3-0 (-> (the-as process-drawable v1-21) root trans)) + (set! s3-0 (-> (the-as entity-actor s2-0) extra trans)) + ) + ) + s3-0 + ) + (else + s2-0 + ) + ) + ) + ) + (when s3-0 + (do-search! s5-0 (target-pos 0) (the-as vector s3-0) (-> s4-0 cached-info)) + (set! (-> s4-0 search-id) (-> s5-0 search-id)) + ) + ) + ) + ) + ((or (= v1-2 3) (= v1-2 2)) + (countdown (v1-33 6) + (let ((s4-1 (-> obj trail v1-33))) + (when (and (= (-> s4-1 search-id) (-> s5-0 search-id)) (-> s4-1 used-by)) + (set! (-> s4-1 node-count) + (get-path-to-root s5-0 (-> s4-1 node-id) 64 (&-> s4-1 goal-node-id) (&-> s4-1 node-path-dist)) + ) + (set! (-> s4-1 last-updated) (the-as uint (-> pp clock frame-counter))) + (goto cfg-64) + ) + ) + ) + (label cfg-64) + (reset-search-state s5-0) + ) + ) + ) + (.mfc0 v1-1 Count) + ) + ) + (label cfg-68) + 0 + ) + ) + 0 + (none) + ) + ) + +;; definition for method 10 of type minimap +(defmethod get-trail-for-connection minimap ((obj minimap) (arg0 connection-minimap) (arg1 symbol)) + "Get a trail for connection. If arg1 is set, allow allocating a new one." + (local-vars (gp-0 minimap-trail)) + (countdown (v1-0 6) + (let ((a3-3 (-> obj trail v1-0))) + (when (= (-> a3-3 used-by) arg0) + (set! gp-0 a3-3) + (goto cfg-14) + ) + ) + ) + (when arg1 + (dotimes (v1-4 6) + (let ((a3-7 (-> obj trail v1-4))) + (when (not (-> a3-7 used-by)) + (set! (-> a3-7 used-by) arg0) + (set! gp-0 a3-7) + (goto cfg-14) + ) + ) + ) + ) + (set! gp-0 (the-as minimap-trail #f)) + (label cfg-14) + (if (and gp-0 arg1) + (reset gp-0) + ) + gp-0 + ) + +;; definition for method 13 of type minimap +;; WARN: Return type mismatch int vs none. +;; WARN: Function (method 13 minimap) has a return type of none, but the expression builder found a return statement. +(defmethod free-trail-by-connection minimap ((obj minimap) (arg0 connection-minimap)) + "Free the trail associated with this connection." + (countdown (v1-0 6) + (let ((a2-3 (-> obj trail v1-0))) + (when (= (-> a2-3 used-by) arg0) + (set! (-> a2-3 used-by) #f) + (reset a2-3) + (return #f) + ) + ) + ) + 0 + (none) + ) + +;; definition for method 10 of type minimap-trail +;; WARN: Return type mismatch int vs none. +(defmethod reset minimap-trail ((obj minimap-trail)) + (set! (-> obj node-count) -1) + (set! (-> obj search-id) (the-as uint 0)) + (set! (-> obj last-updated) (the-as uint 0)) + (set! (-> obj cached-info goal-conn-id) -1) + (none) + ) + +;; definition for method 11 of type minimap +;; INFO: Used lq/sq +(defmethod get-icon-draw-pos minimap ((obj minimap) (arg0 connection-minimap) (arg1 minimap-trail) (arg2 vector) (arg3 float) (arg4 vector)) + "Follow the path from the start until it reaches the border of the map, then get this position." + (let ((s5-0 (new 'stack-no-clear 'inline-array 'vector 4))) + (vector-reset! (-> s5-0 2)) + (vector-reset! (-> s5-0 1)) + (let ((s1-0 0)) + (while (>= (-> arg1 node-count) s1-0) + (set! (-> s5-0 0 quad) (-> s5-0 1 quad)) + (cond + ((< s1-0 (-> arg1 node-count)) + (get-node-location-by-id *trail-graph* (-> arg1 node-id s1-0) (-> s5-0 1)) + (+! s1-0 1) + (vector-! (-> s5-0 1) (-> s5-0 1) arg2) + (set! (-> s5-0 1 x) (* (-> s5-0 1 x) arg3)) + (set! (-> s5-0 1 z) (* (-> s5-0 1 z) arg3)) + (set! (-> s5-0 1 y) 0.0) + (set! (-> s5-0 1 w) 1.0) + ) + (else + (vector-negate! (-> s5-0 1) arg4) + (+! s1-0 1) + ) + ) + (let ((v1-12 (-> s5-0 1))) + (when (>= (sqrtf (+ (* (-> v1-12 x) (-> v1-12 x)) (* (-> v1-12 z) (-> v1-12 z)))) 50.0) + (vector-! (-> s5-0 3) (-> s5-0 0) (-> s5-0 1)) + (let* ((f1-6 (ray-sphere-intersect (-> s5-0 1) (-> s5-0 3) (-> s5-0 2) 50.0)) + (f0-12 (fmax 0.0 (fmin 1.0 f1-6))) + ) + (vector-float*! arg4 (-> s5-0 3) f0-12) + ) + (vector+! arg4 arg4 (-> s5-0 1)) + (vector-negate! arg4 arg4) + (return #t) + ) + ) + ) + ) + ) + #f + ) + +;; definition for method 9 of type minimap-trail +(defmethod get-distance-with-path minimap-trail ((obj minimap-trail) (arg0 vector) (arg1 vector)) + "Assuming we go from a to b, using this path in the middle, how long is it?" + 0.0 + (let ((s4-0 *trail-graph*)) + (cond + ((and s4-0 (> (-> obj node-count) 0)) + (let ((f30-0 (-> obj node-path-dist)) + (s2-0 (new 'stack-no-clear 'vector)) + ) + (get-node-location-by-id s4-0 (-> obj node-id 0) s2-0) + (let ((f30-1 (+ f30-0 (vector-vector-xz-distance arg0 s2-0)))) + (get-node-location-by-id s4-0 (the-as uint (-> obj goal-node-id)) s2-0) + (+ f30-1 (vector-vector-xz-distance arg1 s2-0)) + ) + ) + ) + (else + (vector-vector-xz-distance arg0 arg1) + ) + ) + ) + ) + +;; definition for method 2 of type connection-minimap +(defmethod print connection-minimap ((obj connection-minimap)) + (format + #t + "#" + (-> obj class name) + (-> obj flags) + (handle->process (-> obj handle)) + obj + ) + obj + ) + +;; definition for method 3 of type engine-minimap +(defmethod inspect engine-minimap ((obj engine-minimap)) + ((the-as (function engine-minimap engine-minimap) (find-parent-method engine-minimap 3)) obj) + (let ((s5-0 0) + (s4-0 (the-as connection-pers (-> *minimap* engine alive-list-override))) + ) + (while s4-0 + (let ((a3-0 s4-0)) + (format #t "~2T~3D: ~`connection-minimap`P~%" s5-0 a3-0) + ) + (+! s5-0 1) + (set! s4-0 (-> s4-0 next)) + ) + ) + obj + ) + +;; definition for method 14 of type engine-minimap +;; WARN: Return type mismatch int vs none. +(defmethod run-pending-updates! engine-minimap ((obj engine-minimap) (arg0 time-frame)) + (with-pp + (let ((s2-0 (the-as (pointer connection-pers) (&-> obj alive-list-override))) + (s3-0 (-> obj alive-list-override)) + ) + (while s3-0 + (let ((s4-0 (-> s3-0 next))) + (when (not (paused?)) + (cond + ((logtest? (-> s3-0 flags) (minimap-flag fade-out)) + (logclear! (-> s3-0 flags) (minimap-flag fade-in)) + (seek! (-> s3-0 alpha) 0.0 (-> pp clock seconds-per-frame)) + ) + ((and (logtest? (-> s3-0 flags) (minimap-flag task-graph)) + (zero? (logand (-> *setting-control* user-current minimap) 32)) + ) + (logior! (-> s3-0 flags) (minimap-flag fade-in)) + (seek! (-> s3-0 alpha) 0.0 (-> pp clock seconds-per-frame)) + ) + ((logtest? (-> s3-0 flags) (minimap-flag fade-in)) + (let ((f30-0 1.0)) + (when (logtest? (-> s3-0 class flags) (minimap-flag trail)) + (let ((v1-26 (get-trail-for-connection *minimap* s3-0 #f))) + (if (or (not v1-26) (>= (- (-> pp clock frame-counter) (the-as int (-> v1-26 last-updated))) (seconds 5))) + (set! f30-0 0.0001) + ) + ) + ) + (seek! (-> s3-0 alpha) f30-0 (-> pp clock seconds-per-frame)) + ) + (if (= (-> s3-0 alpha) 1.0) + (logclear! (-> s3-0 flags) (minimap-flag fade-in)) + ) + ) + ) + ) + (cond + ((and (logtest? (-> s3-0 flags) (minimap-flag fade-out)) (= (-> s3-0 alpha) 0.0)) + (kill-callback obj s3-0) + (set! (-> s2-0 0) (-> s3-0 next)) + (set! (-> s3-0 next) (-> obj dead-list-override)) + (set! (-> obj dead-list-override) s3-0) + (+! (-> obj length) -1) + ) + ((and (handle->process (-> s3-0 handle)) + (not (and (= (logand (the-as int (-> s3-0 position)) 7) 4) + (= (-> (the-as basic (-> s3-0 position)) type) entity-actor) + (logtest? (-> (the-as entity-actor (-> s3-0 position)) extra perm status) + (entity-perm-status dead subtask-complete bit-12) + ) + ) + ) + ) + (update-callback obj) + (set! s2-0 (&-> s3-0 next)) + ) + (else + (logior! (-> s3-0 flags) (minimap-flag fade-out)) + (update-callback obj) + (set! s2-0 (&-> s3-0 next)) + ) + ) + (set! s3-0 (the-as connection-minimap s4-0)) + ) + ) + ) + (set! (-> obj execute-time) arg0) + 0 + (none) + ) + ) + +;; definition for method 12 of type minimap +;; INFO: Used lq/sq +(defmethod add-icon! minimap ((obj minimap) (arg0 process) (arg1 uint) (arg2 int) (arg3 vector) (arg4 int)) + "Add an icon to the map!" + (when (not arg2) + (let ((v1-3 (+ (-> *minimap* engine-key) 1))) + (set! (-> *minimap* engine-key) v1-3) + (set! arg2 (the-as int v1-3)) + ) + ) + (let ((s3-0 (the-as connection-minimap (schedule-callback (-> obj engine) arg2 0)))) + (let ((s2-1 (-> *minimap-class-list* arg1))) + (when s3-0 + (when (not (logtest? (-> s3-0 flags) (minimap-flag active))) + (set! (-> s3-0 class) s2-1) + (set! (-> s3-0 last-world-pos quad) (-> s2-1 default-position quad)) + (vector-! (-> s3-0 last-relative-pos) (target-pos 0) (-> s3-0 last-world-pos)) + (set! (-> s3-0 edge-ry) -131072.0) + ) + (set! (-> s3-0 handle) (process->handle arg0)) + (set! arg3 (cond + (arg3 + (empty) + arg3 + ) + (else + (-> s2-1 default-position) + ) + ) + ) + (set! (-> s3-0 position) arg3) + (set! (-> s3-0 flags) (minimap-flag active fade-in)) + (set! (-> s3-0 node) (the-as uint arg4)) + ) + ) + s3-0 + ) + ) + +;; definition for method 10 of type engine-minimap +;; WARN: Function (method 10 engine-minimap) has a return type of none, but the expression builder found a return statement. +(defmethod kill-callback engine-minimap ((obj engine-minimap) (arg0 connection-pers)) + (if (not arg0) + (return #f) + ) + (if (logtest? (-> (the-as connection-minimap arg0) class flags) (minimap-flag trail)) + (free-trail-by-connection *minimap* (the-as connection-minimap arg0)) + ) + (set! (-> arg0 update-time) (the-as time-frame #f)) + ((method-of-type engine-pers kill-callback) obj arg0) + (none) + ) + +;; definition for function lookup-minimap-texture-by-name +;; INFO: Used lq/sq +(defun lookup-minimap-texture-by-name ((arg0 string) (arg1 string) (arg2 (pointer texture-page))) + (local-vars (sv-16 texture-page)) + (dotimes (s3-0 7) + (let ((s2-0 (-> *level* level s3-0))) + (when (or (= (-> s2-0 status) 'active) (= (-> s2-0 status) 'reserved)) + (set! sv-16 (-> s2-0 texture-page 8)) + (when (and sv-16 (or (not arg1) (string= (-> sv-16 name) arg1))) + (dotimes (s1-0 (-> sv-16 length)) + (let ((s0-0 (-> sv-16 data s1-0))) + (when (and s0-0 (string= (-> s0-0 name) arg0)) + (if arg2 + (set! (-> arg2 0) sv-16) + ) + (set! (-> s2-0 texture-mask 8 mask quad) (-> s0-0 masks data 0 mask quad)) + (return s0-0) + ) + ) + ) + ) + ) + ) + ) + (the-as texture #f) + ) + +;; definition for method 20 of type minimap +;; INFO: Used lq/sq +(defmethod update! minimap ((obj minimap)) + (with-pp + (set! (-> obj ctywide) (level-get *level* 'ctywide)) + (set! (-> obj map-bits) (the-as uint 0)) + (dotimes (v1-2 (-> *level* length)) + (let ((a0-5 (-> *level* level v1-2))) + (if (= (-> a0-5 status) 'active) + (logior! (-> obj map-bits) (-> a0-5 info city-map-bits)) + ) + ) + ) + (let ((s5-0 (the int (* 0.0000006357829 (+ 3145728.0 (-> (target-pos 0) x))))) + (v1-9 (the int (* 0.0000006357829 (+ 3145728.0 (-> (target-pos 0) z))))) + ) + (when (and (< s5-0 5) (< v1-9 7) (logtest? (-> obj map-bits) (ash 1 (+ (* 5 v1-9) s5-0)))) + (let ((a0-19 (-> *minimap-texture-name-array* data (+ (* 5 v1-9) s5-0)))) + (when a0-19 + (set! (-> obj last-name) a0-19) + (set! (-> obj minimap-corner quad) (-> *minimap-corner-array* data (+ (* 5 v1-9) s5-0) quad)) + (dotimes (a0-21 (-> *level* length)) + (let ((a1-23 (-> *level* level a0-21))) + (when (= (-> a1-23 status) 'active) + (if (logtest? (-> a1-23 info city-map-bits) (ash 1 (+ (* 5 v1-9) s5-0))) + (set! (-> obj level) a1-23) + ) + ) + ) + ) + ) + ) + ) + ) + (set! (-> obj last-tex) + (lookup-minimap-texture-by-name (-> obj last-name) (the-as string #f) (the-as (pointer texture-page) #f)) + ) + (let ((f30-2 (-> pp clock seconds-per-frame))) + (let ((v1-12 (-> obj last-tex))) + (cond + ((or (not (-> obj level)) (zero? (-> obj level)) (!= (-> obj level status) 'active) (not v1-12)) + (set! (-> obj offset w) 0.0) + ) + ((not (logtest? (-> *setting-control* user-current minimap) 128)) + (seek! (-> obj offset w) 0.0 f30-2) + ) + ((and *target* (nonzero? (-> obj map-bits))) + (set! (-> obj offset w) (fmin 0.5 (+ (-> obj offset w) f30-2))) + ) + (else + (set! (-> obj offset w) 0.0) + ) + ) + ) + (cond + ((and *target* (logtest? (focus-status board pilot) (-> *target* focus-status))) + (let ((f0-14 0.5) + (f1-2 0.000008138021) + (f2-0 122880.0) + (v1-33 (-> *target* control transv)) + ) + (set! (-> obj target-inv-scale) + (fmax f0-14 (* f1-2 (fmin f2-0 (sqrtf (+ (* (-> v1-33 x) (-> v1-33 x)) (* (-> v1-33 z) (-> v1-33 z))))))) + ) + ) + ) + (else + (set! (-> obj target-inv-scale) 0.5) + ) + ) + (seek! (-> obj offset y) (-> obj target-inv-scale) (* 0.5 f30-2)) + ) + (run-pending-updates! (-> obj engine) (-> *display* base-clock frame-counter)) + (when (and (-> obj ctywide) (and (= (-> obj ctywide status) 'active) (!= (-> obj offset w) 0.0))) + (update-trails obj) + (if *display-trail-graph* + (debug-draw obj) + ) + #t + ) + ) + ) + +;; definition for method 23 of type minimap +;; INFO: Used lq/sq +;; WARN: Return type mismatch pointer vs none. +(defmethod draw-racer-2 minimap ((obj minimap) (arg0 minimap-draw-work) (arg1 connection-minimap)) + (local-vars + (sv-16 process) + (sv-20 dma-buffer) + (sv-208 pointer) + (sv-212 vector) + (sv-216 vector) + (sv-220 matrix) + (sv-224 matrix) + (sv-228 matrix) + ) + (let ((s3-0 (handle->process (-> arg1 handle)))) + (set! sv-16 (if (type? s3-0 process-drawable) + s3-0 + ) + ) + ) + (set! sv-20 (-> arg0 buf)) + (when (and sv-16 (nonzero? (-> (the-as process-drawable sv-16) root))) + (set! sv-208 (-> sv-20 base)) + (set! sv-212 (new 'stack-no-clear 'vector)) + (set! sv-216 (new 'stack-no-clear 'vector)) + (set! sv-220 (new 'stack-no-clear 'matrix)) + (set! sv-224 (new 'stack-no-clear 'matrix)) + (set! sv-228 (new 'stack-no-clear 'matrix)) + (set! (-> sv-216 quad) (-> (matrix-world->local #f #f) vector 2 quad)) + (set! (-> sv-216 y) 0.0) + (vector-normalize! sv-216 1.0) + (vector-z-quaternion! (the-as vector sv-220) (-> (the-as process-drawable sv-16) root quat)) + (vector-xz-normalize! (the-as vector sv-220) 1.0) + (set! (-> sv-220 vector 0 y) 0.0) + (set! (-> sv-220 vector 0 w) 0.0) + (vector-! sv-212 (target-pos 0) (-> (the-as process-drawable sv-16) root trans)) + (let ((f0-4 (/ (-> sv-212 x) (* 16384.0 (-> obj offset y)))) + (f1-3 (/ (-> sv-212 z) (* 16384.0 (-> obj offset y)))) + ) + (set-vector! (-> sv-224 vector 0) (-> sv-216 z) 0.0 (- (-> sv-216 x)) 0.0) + (set-vector! (-> sv-224 vector 1) 0.0 1.0 0.0 0.0) + (set-vector! (-> sv-224 vector 2) (-> sv-216 x) 0.0 (-> sv-216 z) 0.0) + (set-vector! (-> sv-224 trans) 164.0 0.0 164.0 1.0) + (set-vector! (-> sv-228 vector 0) (-> sv-220 vector 0 z) 0.0 (- (-> sv-220 vector 0 x)) 0.0) + (set-vector! (-> sv-228 vector 1) 0.0 1.0 0.0 0.0) + (set-vector! (-> sv-228 vector 2) (-> sv-220 vector 0 x) 0.0 (-> sv-220 vector 0 z) 0.0) + (set-vector! (-> sv-228 trans) f0-4 0.0 f1-3 1.0) + ) + (matrix*! sv-228 sv-228 sv-224) + (let ((f0-7 7.0)) + (set-vector! (-> arg0 corner 0) 0.0 0.0 (- f0-7) 1.0) + (set-vector! (-> arg0 corner 1) f0-7 0.0 0.0 1.0) + (set-vector! (-> arg0 corner 2) (- f0-7) 0.0 0.0 1.0) + (set-vector! (-> arg0 corner 3) 0.0 0.0 f0-7 1.0) + ) + (vector-matrix*! (the-as vector (-> arg0 corner)) (the-as vector (-> arg0 corner)) sv-228) + (vector-matrix*! (-> arg0 corner 1) (-> arg0 corner 1) sv-228) + (vector-matrix*! (-> arg0 corner 2) (-> arg0 corner 2) sv-228) + (vector-matrix*! (-> arg0 corner 3) (-> arg0 corner 3) sv-228) + (let* ((a0-38 (-> arg1 class color)) + (a0-45 (copy-and-set-field a0-38 r (shr (* (-> a0-38 r) (the-as uint (-> obj color x))) 7))) + (a0-52 (copy-and-set-field a0-45 g (shr (* (-> a0-45 g) (the-as uint (-> obj color y))) 7))) + (v1-57 + (copy-and-set-field + (copy-and-set-field a0-52 b (shr (* (-> a0-52 b) (the-as uint (-> obj color z))) 7)) + a + (the int (* 128.0 (-> arg1 alpha))) + ) + ) + ) + (let ((a0-64 (-> obj draw4-tmpl dma-vif quad))) + (set! (-> (the-as (pointer uint128) sv-208)) a0-64) + ) + (let ((a0-65 (-> obj draw4-tmpl quad 1))) + (set! (-> (the-as (pointer uint128) sv-208) 1) a0-65) + ) + (set-vector! + (-> (the-as (inline-array vector4w) sv-208) 2) + (the-as int (-> v1-57 r)) + (the-as int (-> v1-57 g)) + (the-as int (-> v1-57 b)) + (the-as int (-> v1-57 a)) + ) + ) + (set-vector! (-> (the-as (inline-array vector) sv-208) 3) 0.0 0.0 1.0 0.0) + (set-vector! + (-> (the-as (inline-array vector4w) sv-208) 4) + (the int (* 16.0 (-> arg0 corner 0 x))) + (the int (* 16.0 (-> arg0 corner 0 z))) + #xffffff + 0 + ) + (set-vector! (-> (the-as (inline-array vector) sv-208) 5) 1.0 0.0 1.0 0.0) + (set-vector! + (-> (the-as (inline-array vector4w) sv-208) 6) + (the int (* 16.0 (-> arg0 corner 1 x))) + (the int (* 16.0 (-> arg0 corner 1 z))) + #xffffff + 0 + ) + (set-vector! (-> (the-as (inline-array vector) sv-208) 7) 0.0 1.0 1.0 0.0) + (set-vector! + (-> (the-as (inline-array vector4w) sv-208) 8) + (the int (* 16.0 (-> arg0 corner 2 x))) + (the int (* 16.0 (-> arg0 corner 2 z))) + #xffffff + 0 + ) + (set-vector! (-> (the-as (inline-array vector) sv-208) 9) 1.0 1.0 1.0 0.0) + (set-vector! + (-> (the-as (inline-array vector4w) sv-208) 10) + (the int (* 16.0 (-> arg0 corner 3 x))) + (the int (* 16.0 (-> arg0 corner 3 z))) + #xffffff + 0 + ) + (&+! (-> sv-20 base) 176) + ) + (none) + ) + +;; definition for method 26 of type minimap +;; 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 pointer vs none. +(defmethod draw-racer-1 minimap ((obj minimap) (arg0 minimap-draw-work) (arg1 connection-minimap) (arg2 float) (arg3 float) (arg4 float)) + (local-vars + (sv-16 process) + (sv-20 float) + (sv-24 dma-buffer) + (sv-128 pointer) + (sv-132 vector) + (sv-136 vector) + (sv-140 matrix) + ) + (let ((s0-0 (handle->process (-> arg1 handle)))) + (set! sv-16 (if (type? s0-0 process-drawable) + s0-0 + ) + ) + ) + (set! sv-20 (-> *video-params* relative-x-scale)) + (set! sv-24 (-> arg0 buf)) + (when (and sv-16 (nonzero? (-> (the-as process-drawable sv-16) root))) + (set! sv-128 (-> sv-24 base)) + (set! sv-132 (new 'stack-no-clear 'vector)) + (set! sv-136 (new 'stack-no-clear 'vector)) + (set! sv-140 (new 'stack-no-clear 'matrix)) + (vector-z-quaternion! sv-136 (-> (the-as process-drawable sv-16) root quat)) + (vector-xz-normalize! sv-136 -1.0) + (set! (-> sv-136 y) 0.0) + (set! (-> sv-136 w) 0.0) + (vector-! sv-132 (-> (the-as process-drawable sv-16) root trans) (-> obj race-corner)) + (cond + ((-> *blit-displays-work* horizontal-flip-flag) + (let ((f0-4 (+ arg3 (* (- 128.0 (/ (-> sv-132 x) arg2)) sv-20))) + (f1-4 (+ arg4 (/ (-> sv-132 z) arg2))) + ) + (set-vector! (-> sv-140 vector 0) (-> sv-136 z) 0.0 (-> sv-136 x) 0.0) + (set-vector! (-> sv-140 vector 1) 0.0 1.0 0.0 0.0) + (set-vector! (-> sv-140 vector 2) (- (-> sv-136 x)) 0.0 (-> sv-136 z) 0.0) + (set-vector! (-> sv-140 trans) f0-4 0.0 f1-4 1.0) + ) + ) + (else + (let ((f0-8 (+ arg3 (* (/ (-> sv-132 x) arg2) sv-20))) + (f1-9 (+ arg4 (/ (-> sv-132 z) arg2))) + ) + (set-vector! (-> sv-140 vector 0) (-> sv-136 z) 0.0 (- (-> sv-136 x)) 0.0) + (set-vector! (-> sv-140 vector 1) 0.0 1.0 0.0 0.0) + (set-vector! (-> sv-140 vector 2) (-> sv-136 x) 0.0 (-> sv-136 z) 0.0) + (set-vector! (-> sv-140 trans) f0-8 0.0 f1-9 1.0) + ) + ) + ) + (let ((f0-11 7.0)) + (set-vector! (-> arg0 corner 0) 0.0 0.0 (- f0-11) 1.0) + (set-vector! (-> arg0 corner 1) f0-11 0.0 0.0 1.0) + (set-vector! (-> arg0 corner 2) (- f0-11) 0.0 0.0 1.0) + (set-vector! (-> arg0 corner 3) 0.0 0.0 f0-11 1.0) + ) + (vector-matrix*! (the-as vector (-> arg0 corner)) (the-as vector (-> arg0 corner)) sv-140) + (vector-matrix*! (-> arg0 corner 1) (-> arg0 corner 1) sv-140) + (vector-matrix*! (-> arg0 corner 2) (-> arg0 corner 2) sv-140) + (vector-matrix*! (-> arg0 corner 3) (-> arg0 corner 3) sv-140) + (let* ((a0-32 (-> arg1 class color)) + (a0-39 (copy-and-set-field a0-32 r (shr (* (-> a0-32 r) (the-as uint (-> obj color x))) 7))) + (a0-46 (copy-and-set-field a0-39 g (shr (* (-> a0-39 g) (the-as uint (-> obj color y))) 7))) + (v1-59 + (copy-and-set-field + (copy-and-set-field a0-46 b (shr (* (-> a0-46 b) (the-as uint (-> obj color z))) 7)) + a + (the int (* 128.0 (-> arg1 alpha))) + ) + ) + ) + (let ((a0-58 (-> obj draw4-tmpl dma-vif quad))) + (set! (-> (the-as (pointer uint128) sv-128)) a0-58) + ) + (let ((a0-59 (-> obj draw4-tmpl quad 1))) + (set! (-> (the-as (pointer uint128) sv-128) 1) a0-59) + ) + (set-vector! + (-> (the-as (inline-array vector4w) sv-128) 2) + (the-as int (-> v1-59 r)) + (the-as int (-> v1-59 g)) + (the-as int (-> v1-59 b)) + (the-as int (-> v1-59 a)) + ) + ) + (set-vector! (-> (the-as (inline-array vector) sv-128) 3) 0.0 0.0 1.0 0.0) + (set-vector! + (-> (the-as (inline-array vector4w) sv-128) 4) + (the int (* 16.0 (-> arg0 corner 0 x))) + (the int (* 16.0 (-> arg0 corner 0 z))) + #xffffff + 0 + ) + (set-vector! (-> (the-as (inline-array vector) sv-128) 5) 1.0 0.0 1.0 0.0) + (set-vector! + (-> (the-as (inline-array vector4w) sv-128) 6) + (the int (* 16.0 (-> arg0 corner 1 x))) + (the int (* 16.0 (-> arg0 corner 1 z))) + #xffffff + 0 + ) + (set-vector! (-> (the-as (inline-array vector) sv-128) 7) 0.0 1.0 1.0 0.0) + (set-vector! + (-> (the-as (inline-array vector4w) sv-128) 8) + (the int (* 16.0 (-> arg0 corner 2 x))) + (the int (* 16.0 (-> arg0 corner 2 z))) + #xffffff + 0 + ) + (set-vector! (-> (the-as (inline-array vector) sv-128) 9) 1.0 1.0 1.0 0.0) + (set-vector! + (-> (the-as (inline-array vector4w) sv-128) 10) + (the int (* 16.0 (-> arg0 corner 3 x))) + (the int (* 16.0 (-> arg0 corner 3 z))) + #xffffff + 0 + ) + (&+! (-> sv-24 base) 176) + ) + (none) + ) + +;; definition for method 17 of type minimap +;; INFO: Used lq/sq +;; WARN: Return type mismatch pointer vs none. +(defmethod draw-frustum-1 minimap ((obj minimap) (arg0 minimap-draw-work) (arg1 connection-minimap)) + (local-vars + (sv-16 process) + (sv-20 dma-buffer) + (sv-208 pointer) + (sv-212 texture) + (sv-216 vector) + (sv-220 vector) + (sv-224 matrix) + (sv-228 matrix) + (sv-232 matrix) + ) + (rlet ((vf1 :class vf) + (vf2 :class vf) + (vf3 :class vf) + (vf4 :class vf) + (vf5 :class vf) + ) + (let ((s3-0 (handle->process (-> arg1 handle)))) + (set! sv-16 (if (type? s3-0 process-drawable) + s3-0 + ) + ) + ) + (set! sv-20 (-> arg0 buf)) + (when (and sv-16 (nonzero? (-> (the-as process-drawable sv-16) root))) + (set! sv-208 (-> sv-20 base)) + (set! sv-212 (lookup-texture-by-id-fast (new 'static 'texture-id :index #x9 :page #x679))) + (set! sv-216 (new 'stack-no-clear 'vector)) + (set! sv-220 (new 'stack-no-clear 'vector)) + (set! sv-224 (new 'stack-no-clear 'matrix)) + (set! sv-228 (new 'stack-no-clear 'matrix)) + (set! sv-232 (new 'stack-no-clear 'matrix)) + (when sv-212 + (set! (-> sv-220 quad) (-> (matrix-world->local #f #f) vector 2 quad)) + (set! (-> sv-220 y) 0.0) + (vector-normalize! sv-220 1.0) + (vector-z-quaternion! (the-as vector sv-224) (-> (the-as process-drawable sv-16) root quat)) + (vector-xz-normalize! (the-as vector sv-224) 1.0) + (set! (-> sv-224 vector 0 y) 0.0) + (set! (-> sv-224 vector 0 w) 0.0) + (vector-! sv-216 (target-pos 0) (-> (the-as process-drawable sv-16) root trans)) + (let ((f0-4 (/ (-> sv-216 x) (* 16384.0 (-> obj offset y)))) + (f1-3 (/ (-> sv-216 z) (* 16384.0 (-> obj offset y)))) + ) + (set-vector! (-> sv-228 vector 0) (-> sv-220 z) 0.0 (- (-> sv-220 x)) 0.0) + (set-vector! (-> sv-228 vector 1) 0.0 1.0 0.0 0.0) + (set-vector! (-> sv-228 vector 2) (-> sv-220 x) 0.0 (-> sv-220 z) 0.0) + (set-vector! (-> sv-228 trans) 164.0 0.0 164.0 1.0) + (set-vector! (-> sv-232 vector 0) (-> sv-224 vector 0 z) 0.0 (- (-> sv-224 vector 0 x)) 0.0) + (set-vector! (-> sv-232 vector 1) 0.0 1.0 0.0 0.0) + (set-vector! (-> sv-232 vector 2) (-> sv-224 vector 0 x) 0.0 (-> sv-224 vector 0 z) 0.0) + (set-vector! (-> sv-232 trans) f0-4 0.0 f1-3 1.0) + ) + (matrix*! sv-232 sv-232 sv-228) + (let ((f0-8 (/ -10.0 (-> obj offset y)))) + (set-vector! (-> arg0 corner 0) 0.0 0.0 0.0 1.0) + (set-vector! (-> arg0 corner 1) (- f0-8) 0.0 f0-8 1.0) + (set-vector! (-> arg0 corner 2) f0-8 0.0 f0-8 1.0) + (set-vector! (-> arg0 corner 3) 0.0 0.0 (* 2.0 f0-8) 1.0) + ) + (vector-matrix*! (the-as vector (-> arg0 corner)) (the-as vector (-> arg0 corner)) sv-232) + (vector-matrix*! (-> arg0 corner 1) (-> arg0 corner 1) sv-232) + (vector-matrix*! (-> arg0 corner 2) (-> arg0 corner 2) sv-232) + (vector-matrix*! (-> arg0 corner 3) (-> arg0 corner 3) sv-232) + (let ((a0-40 (new 'stack-no-clear 'vector)) + (v1-49 (new 'stack-no-clear 'vector)) + ) + (.lvf vf1 (&-> arg0 corner 0 quad)) + (.lvf vf2 (&-> arg0 corner 1 quad)) + (.lvf vf3 (&-> arg0 corner 2 quad)) + (.lvf vf4 (&-> arg0 corner 3 quad)) + (.min.vf vf5 vf1 vf2) + (.min.vf vf5 vf5 vf3) + (.min.vf vf5 vf5 vf4) + (.max.vf vf5 vf1 vf2) + (.max.vf vf5 vf5 vf3) + (.max.vf vf5 vf5 vf4) + (.svf (&-> a0-40 quad) vf5) + (.svf (&-> v1-49 quad) vf5) + (when (and (< (-> a0-40 x) 228.0) (< (-> a0-40 z) 228.0) (< 100.0 (-> v1-49 x)) (< 100.0 (-> v1-49 z))) + (let* ((a0-46 (-> arg1 class color)) + (a0-53 (copy-and-set-field a0-46 r (shr (* (-> a0-46 r) (the-as uint (-> obj color x))) 7))) + (a0-60 (copy-and-set-field a0-53 g (shr (* (-> a0-53 g) (the-as uint (-> obj color y))) 7))) + (s4-1 + (copy-and-set-field + (copy-and-set-field a0-60 b (shr (* (-> a0-60 b) (the-as uint (-> obj color z))) 7)) + a + (the int (* 128.0 (-> obj frustum-alpha) (-> arg1 alpha))) + ) + ) + ) + (let ((v1-60 (-> obj adgif-tmpl dma-vif quad))) + (set! (-> (the-as (pointer uint128) sv-208)) v1-60) + ) + (let ((v1-61 (-> obj adgif-tmpl quad 1))) + (set! (-> (the-as (pointer uint128) sv-208) 1) v1-61) + ) + (adgif-shader<-texture-simple! (the-as adgif-shader (&+ sv-208 32)) sv-212) + (let ((v1-63 (-> obj draw4-tmpl dma-vif quad))) + (set! (-> (the-as (pointer uint128) sv-208) 7) v1-63) + ) + (let ((v1-64 (-> obj draw4-tmpl quad 1))) + (set! (-> (the-as (pointer uint128) sv-208) 8) v1-64) + ) + (set-vector! + (-> (the-as (inline-array vector4w) sv-208) 9) + (the-as int (-> s4-1 r)) + (the-as int (-> s4-1 g)) + (the-as int (-> s4-1 b)) + (the-as int (-> s4-1 a)) + ) + ) + (set-vector! (-> (the-as (inline-array vector) sv-208) 10) 0.0 0.0 1.0 0.0) + (set-vector! + (-> (the-as (inline-array vector4w) sv-208) 11) + (the int (* 16.0 (-> arg0 corner 0 x))) + (the int (* 16.0 (-> arg0 corner 0 z))) + 0 + 0 + ) + (set-vector! (-> (the-as (inline-array vector) sv-208) 12) 1.0 0.0 1.0 0.0) + (set-vector! + (-> (the-as (inline-array vector4w) sv-208) 13) + (the int (* 16.0 (-> arg0 corner 1 x))) + (the int (* 16.0 (-> arg0 corner 1 z))) + 0 + 0 + ) + (set-vector! (-> (the-as (inline-array vector) sv-208) 14) 0.0 1.0 1.0 0.0) + (set-vector! + (-> (the-as (inline-array vector4w) sv-208) 15) + (the int (* 16.0 (-> arg0 corner 2 x))) + (the int (* 16.0 (-> arg0 corner 2 z))) + 0 + 0 + ) + (set-vector! (-> (the-as (inline-array vector) sv-208) 16) 1.0 1.0 1.0 0.0) + (set-vector! + (-> (the-as (inline-array vector4w) sv-208) 17) + (the int (* 16.0 (-> arg0 corner 3 x))) + (the int (* 16.0 (-> arg0 corner 3 z))) + 0 + 0 + ) + (&+! (-> sv-20 base) 288) + ) + ) + ) + ) + (none) + ) + ) + +;; definition for method 18 of type minimap +;; INFO: Used lq/sq +;; WARN: Return type mismatch pointer vs none. +(defmethod draw-frustum-2 minimap ((obj minimap) (arg0 minimap-draw-work) (arg1 connection-minimap)) + (local-vars + (sv-16 process) + (sv-20 dma-buffer) + (sv-208 pointer) + (sv-212 texture) + (sv-216 vector) + (sv-220 vector) + (sv-224 matrix) + (sv-228 matrix) + (sv-232 matrix) + ) + (let ((s3-0 (handle->process (-> arg1 handle)))) + (set! sv-16 (if (type? s3-0 process-drawable) + s3-0 + ) + ) + ) + (set! sv-20 (-> arg0 buf)) + (when (and sv-16 (nonzero? (-> (the-as process-drawable sv-16) root))) + (set! sv-208 (-> sv-20 base)) + (set! sv-212 (lookup-texture-by-id-fast (new 'static 'texture-id :index #x9 :page #x679))) + (set! sv-216 (new 'stack-no-clear 'vector)) + (set! sv-220 (new 'stack-no-clear 'vector)) + (set! sv-224 (new 'stack-no-clear 'matrix)) + (set! sv-228 (new 'stack-no-clear 'matrix)) + (set! sv-232 (new 'stack-no-clear 'matrix)) + (when sv-212 + (set! (-> sv-220 quad) (-> (matrix-world->local #f #f) vector 2 quad)) + (set! (-> sv-220 y) 0.0) + (vector-normalize! sv-220 1.0) + (vector-z-quaternion! (the-as vector sv-224) (-> (the-as process-drawable sv-16) root quat)) + (vector-xz-normalize! (the-as vector sv-224) 1.0) + (set! (-> sv-224 vector 0 y) 0.0) + (set! (-> sv-224 vector 0 w) 0.0) + (vector-! sv-216 (target-pos 0) (-> (the-as process-drawable sv-16) root trans)) + (let ((f0-4 (/ (-> sv-216 x) (* 16384.0 (-> obj offset y)))) + (f1-3 (/ (-> sv-216 z) (* 16384.0 (-> obj offset y)))) + ) + (set-vector! (-> sv-228 vector 0) (-> sv-220 z) 0.0 (- (-> sv-220 x)) 0.0) + (set-vector! (-> sv-228 vector 1) 0.0 1.0 0.0 0.0) + (set-vector! (-> sv-228 vector 2) (-> sv-220 x) 0.0 (-> sv-220 z) 0.0) + (set-vector! (-> sv-228 trans) 164.0 0.0 164.0 1.0) + (set-vector! (-> sv-232 vector 0) (-> sv-224 vector 0 z) 0.0 (- (-> sv-224 vector 0 x)) 0.0) + (set-vector! (-> sv-232 vector 1) 0.0 1.0 0.0 0.0) + (set-vector! (-> sv-232 vector 2) (-> sv-224 vector 0 x) 0.0 (-> sv-224 vector 0 z) 0.0) + (set-vector! (-> sv-232 trans) f0-4 0.0 f1-3 1.0) + ) + (matrix*! sv-232 sv-232 sv-228) + (let ((f0-7 12.0)) + (set-vector! (-> arg0 corner 0) (- f0-7) 0.0 0.0 1.0) + (set-vector! (-> arg0 corner 1) 0.0 0.0 f0-7 1.0) + (set-vector! (-> arg0 corner 2) 0.0 0.0 (- f0-7) 1.0) + (set-vector! (-> arg0 corner 3) f0-7 0.0 0.0 1.0) + ) + (vector-matrix*! (the-as vector (-> arg0 corner)) (the-as vector (-> arg0 corner)) sv-232) + (vector-matrix*! (-> arg0 corner 1) (-> arg0 corner 1) sv-232) + (vector-matrix*! (-> arg0 corner 2) (-> arg0 corner 2) sv-232) + (vector-matrix*! (-> arg0 corner 3) (-> arg0 corner 3) sv-232) + (let* ((a3-0 (-> arg1 class color)) + (a2-6 (+ (* (the-as uint 320) (-> arg1 class icon-xy x)) 8)) + (a1-12 (+ (* (the-as uint 320) (-> arg1 class icon-xy y)) 8)) + (v1-54 (+ a2-6 304)) + (a0-43 (+ a1-12 304)) + ) + (let* ((t0-2 (copy-and-set-field a3-0 r (shr (* (-> a3-0 r) (the-as uint (-> obj color x))) 7))) + (t0-9 (copy-and-set-field t0-2 g (shr (* (-> t0-2 g) (the-as uint (-> obj color y))) 7))) + (a3-13 + (copy-and-set-field + (copy-and-set-field t0-9 b (shr (* (-> t0-9 b) (the-as uint (-> obj color z))) 7)) + a + (the int (* 128.0 (-> arg1 alpha))) + ) + ) + ) + (let ((t0-21 (-> obj draw3-tmpl dma-vif quad))) + (set! (-> (the-as (pointer uint128) sv-208)) t0-21) + ) + (let ((t0-22 (-> obj draw3-tmpl quad 1))) + (set! (-> (the-as (pointer uint128) sv-208) 1) t0-22) + ) + (set-vector! + (-> (the-as (inline-array vector4w) sv-208) 2) + (the-as int (-> a3-13 r)) + (the-as int (-> a3-13 g)) + (the-as int (-> a3-13 b)) + (the-as int (-> a3-13 a)) + ) + ) + (set-vector! (-> (the-as (inline-array vector4w) sv-208) 3) a2-6 a1-12 0 0) + (set-vector! + (-> (the-as (inline-array vector4w) sv-208) 4) + (the int (* 16.0 (-> arg0 corner 0 x))) + (the int (* 16.0 (-> arg0 corner 0 z))) + 0 + 0 + ) + (set-vector! (-> (the-as (inline-array vector4w) sv-208) 5) a2-6 a0-43 0 0) + (set-vector! + (-> (the-as (inline-array vector4w) sv-208) 6) + (the int (* 16.0 (-> arg0 corner 1 x))) + (the int (* 16.0 (-> arg0 corner 1 z))) + 0 + 0 + ) + (set-vector! (-> (the-as (inline-array vector4w) sv-208) 7) v1-54 a1-12 0 0) + (set-vector! + (-> (the-as (inline-array vector4w) sv-208) 8) + (the int (* 16.0 (-> arg0 corner 2 x))) + (the int (* 16.0 (-> arg0 corner 2 z))) + 0 + 0 + ) + (set-vector! (-> (the-as (inline-array vector4w) sv-208) 9) v1-54 a0-43 0 0) + ) + (set-vector! + (-> (the-as (inline-array vector4w) sv-208) 10) + (the int (* 16.0 (-> arg0 corner 3 x))) + (the int (* 16.0 (-> arg0 corner 3 z))) + 0 + 0 + ) + (&+! (-> sv-20 base) 176) + ) + ) + (none) + ) + +;; definition for method 21 of type minimap +;; INFO: Used lq/sq +;; WARN: Return type mismatch int vs none. +(defmethod sub-draw-1-1 minimap ((obj minimap) (arg0 minimap-draw-work)) + (with-pp + (let ((s5-0 (-> arg0 buf))) + (set-display-gs-state s5-0 (the-as int (-> *map-texture-base* vram-page)) 128 128 0 0) + (let ((s3-0 (-> s5-0 base))) + (set! (-> (the-as (pointer uint128) s3-0)) (-> obj adgif-tmpl dma-vif quad)) + (set! (-> (the-as (pointer uint128) s3-0) 1) (-> obj adgif-tmpl quad 1)) + (let ((a1-2 (-> obj last-tex))) + (if (not a1-2) + (set! a1-2 (lookup-texture-by-id-fast (new 'static 'texture-id :index #x9b :page #xb))) + ) + (adgif-shader<-texture-simple! (the-as adgif-shader (&+ s3-0 32)) (the-as texture a1-2)) + ) + ) + (&+! (-> s5-0 base) 112) + (let* ((v1-8 s5-0) + (a0-4 (the-as dma-packet (-> v1-8 base))) + ) + (set! (-> a0-4 dma) (new 'static 'dma-tag :qwc #x4 :id (dma-tag-id cnt))) + (set! (-> a0-4 vif0) (new 'static 'vif-tag)) + (set! (-> a0-4 vif1) (new 'static 'vif-tag :imm #x4 :cmd (vif-cmd direct) :msk #x1)) + (set! (-> v1-8 base) (the-as pointer (&+ a0-4 16))) + ) + (let* ((v1-9 s5-0) + (a0-6 (the-as gs-gif-tag (-> v1-9 base))) + ) + (set! (-> a0-6 tag) (new 'static 'gif-tag64 :nloop #x1 :eop #x1 :nreg #x3)) + (set! (-> a0-6 regs) GIF_REGS_ALL_AD) + (set! (-> v1-9 base) (the-as pointer (&+ a0-6 16))) + ) + (let* ((v1-10 s5-0) + (a0-8 (-> v1-10 base)) + ) + (set! (-> (the-as (pointer gs-clamp) a0-8) 0) (new 'static 'gs-clamp)) + (set! (-> (the-as (pointer gs-reg64) a0-8) 1) (gs-reg64 clamp-1)) + (set! (-> (the-as (pointer gs-test) a0-8) 2) + (new 'static 'gs-test :ate #x1 :afail #x1 :zte #x1 :ztst (gs-ztest always)) + ) + (set! (-> (the-as (pointer gs-reg64) a0-8) 3) (gs-reg64 test-1)) + (set! (-> (the-as (pointer gs-texa) a0-8) 4) (new 'static 'gs-texa :ta1 #x80)) + (set! (-> (the-as (pointer gs-reg64) a0-8) 5) (gs-reg64 texa)) + (set! (-> v1-10 base) (&+ a0-8 48)) + ) + (let ((s3-1 (the-as object (-> s5-0 base)))) + (let ((f30-0 (-> *video-params* relative-x-scale))) + (set! (-> (the-as (pointer uint128) s3-1)) (-> obj draw2-tmpl dma-vif quad)) + (set! (-> (the-as (pointer uint128) s3-1) 1) (-> obj draw2-tmpl quad 1)) + (let ((s2-0 (new-stack-vector0))) + (let ((s1-0 (new-stack-vector0))) + (let ((s0-0 s1-0) + (t9-3 matrix-local->world) + (a0-10 #f) + ) + (set! (-> s0-0 quad) (-> (t9-3 a0-10) vector 2 quad)) + ) + (set! (-> s1-0 y) 0.0) + (vector-normalize! s1-0 1.0) + (let ((v1-16 (-> arg0 mat))) + (set! (-> v1-16 vector 0 x) (* (-> s1-0 z) f30-0)) + (set! (-> v1-16 vector 0 y) 0.0) + (set! (-> v1-16 vector 0 z) (- (-> s1-0 x))) + (set! (-> v1-16 vector 0 w) 0.0) + ) + (set-vector! (-> arg0 mat vector 1) 0.0 1.0 0.0 0.0) + (set-vector! (-> arg0 mat vector 2) (* (-> s1-0 x) f30-0) 0.0 (-> s1-0 z) 0.0) + ) + (vector-! s2-0 (target-pos 0) (-> obj minimap-corner)) + (set! (-> s2-0 x) (* 0.00000023841858 (-> s2-0 x))) + (set! (-> s2-0 z) (* 0.00000023841858 (-> s2-0 z))) + (vector+! (-> arg0 mat trans) s2-0 (-> obj offset)) + ) + ) + (set! (-> arg0 mat trans y) 0.0) + (set! (-> arg0 corner 0 x) (* 0.25 (-> obj offset y))) + (set! (-> arg0 corner 0 z) (* 0.25 (-> obj offset y))) + (set! (-> arg0 corner 0 w) 1.0) + (set! (-> arg0 corner 1 x) (* -0.25 (-> obj offset y))) + (set! (-> arg0 corner 1 z) (* 0.25 (-> obj offset y))) + (set! (-> arg0 corner 1 w) 1.0) + (set! (-> arg0 corner 2 x) (* 0.25 (-> obj offset y))) + (set! (-> arg0 corner 2 z) (* -0.25 (-> obj offset y))) + (set! (-> arg0 corner 2 w) 1.0) + (set! (-> arg0 corner 3 x) (* -0.25 (-> obj offset y))) + (set! (-> arg0 corner 3 z) (* -0.25 (-> obj offset y))) + (set! (-> arg0 corner 3 w) 1.0) + (vector-matrix*! (the-as vector (-> arg0 corner)) (the-as vector (-> arg0 corner)) (-> arg0 mat)) + (vector-matrix*! (-> arg0 corner 1) (-> arg0 corner 1) (-> arg0 mat)) + (vector-matrix*! (-> arg0 corner 2) (-> arg0 corner 2) (-> arg0 mat)) + (vector-matrix*! (-> arg0 corner 3) (-> arg0 corner 3) (-> arg0 mat)) + (set-vector! (-> (the-as (inline-array vector4w) s3-1) 2) 128 128 128 128) + (set-vector! (-> (the-as (inline-array vector) s3-1) 3) (-> arg0 corner 0 x) (-> arg0 corner 0 z) 1.0 1.0) + (set-vector! (-> (the-as (inline-array vector4w) s3-1) 4) 0 0 #xffffff 0) + (set-vector! (-> (the-as (inline-array vector) s3-1) 5) (-> arg0 corner 1 x) (-> arg0 corner 1 z) 1.0 1.0) + (set-vector! (-> (the-as (inline-array vector4w) s3-1) 6) 2048 0 #xffffff 0) + (set-vector! (-> (the-as (inline-array vector) s3-1) 7) (-> arg0 corner 2 x) (-> arg0 corner 2 z) 1.0 1.0) + (set-vector! (-> (the-as (inline-array vector4w) s3-1) 8) 0 2048 #xffffff 0) + (set-vector! (-> (the-as (inline-array vector) s3-1) 9) (-> arg0 corner 3 x) (-> arg0 corner 3 z) 1.0 1.0) + (set-vector! (-> (the-as (inline-array vector4w) s3-1) 10) 2048 2048 #xffffff 0) + ) + (&+! (-> s5-0 base) 176) + (let ((f0-57 1.0)) + (when *target* + (if (logtest? (focus-status pilot) (-> *target* focus-status)) + (set! f0-57 0.0) + ) + ) + (seek! (-> obj frustum-alpha) f0-57 (-> pp clock seconds-per-frame)) + ) + (let* ((v1-55 s5-0) + (a0-44 (the-as dma-packet (-> v1-55 base))) + ) + (set! (-> a0-44 dma) (new 'static 'dma-tag :qwc #x2 :id (dma-tag-id cnt))) + (set! (-> a0-44 vif0) (new 'static 'vif-tag)) + (set! (-> a0-44 vif1) (new 'static 'vif-tag :imm #x2 :cmd (vif-cmd direct) :msk #x1)) + (set! (-> v1-55 base) (the-as pointer (&+ a0-44 16))) + ) + (let* ((v1-56 s5-0) + (a0-46 (the-as gs-gif-tag (-> v1-56 base))) + ) + (set! (-> a0-46 tag) (new 'static 'gif-tag64 :nloop #x1 :eop #x1 :nreg #x1)) + (set! (-> a0-46 regs) GIF_REGS_ALL_AD) + (set! (-> v1-56 base) (the-as pointer (&+ a0-46 16))) + ) + (let* ((v1-57 s5-0) + (a0-48 (-> v1-57 base)) + ) + (set! (-> (the-as (pointer gs-xy-offset) a0-48) 0) (new 'static 'gs-xy-offset :ofx #x640 :ofy #x640)) + (set! (-> (the-as (pointer gs-reg64) a0-48) 1) (gs-reg64 xyoffset-1)) + (set! (-> v1-57 base) (&+ a0-48 16)) + ) + (when (!= (-> obj frustum-alpha) 0.0) + (let ((s3-2 (the-as connection-pers (-> *minimap* engine alive-list-override)))) + (while s3-2 + (let ((a2-6 s3-2)) + (if (logtest? (-> (the-as connection-minimap a2-6) class flags) (minimap-flag frustum)) + (draw-frustum-1 obj arg0 (the-as connection-minimap a2-6)) + ) + ) + (set! s3-2 (-> s3-2 next)) + ) + ) + ) + (let ((s2-1 (-> arg0 buf base)) + (s3-3 (lookup-texture-by-id-fast (new 'static 'texture-id :page #x679))) + ) + (when s3-3 + (set! (-> (the-as (pointer uint128) s2-1)) (-> obj adgif-tmpl dma-vif quad)) + (set! (-> (the-as (pointer uint128) s2-1) 1) (-> obj adgif-tmpl quad 1)) + (adgif-shader<-texture-simple! (the-as adgif-shader (&+ s2-1 32)) s3-3) + (&+! (-> arg0 buf base) 112) + ) + (if (not s3-3) + (format *stdcon* "minimap: mini-map-icons texture is #f~%") + ) + ) + (let ((s3-4 (the-as connection-pers (-> *minimap* engine alive-list-override)))) + (while s3-4 + (let ((a2-7 s3-4)) + (if (logtest? (-> (the-as connection-minimap a2-7) class flags) (minimap-flag frustum)) + (draw-frustum-2 obj arg0 (the-as connection-minimap a2-7)) + ) + ) + (set! s3-4 (-> s3-4 next)) + ) + ) + (let ((s3-5 (-> arg0 buf base)) + (a1-32 (lookup-texture-by-id-fast (new 'static 'texture-id :index #x42 :page #xb))) + ) + (when a1-32 + (set! (-> (the-as (pointer uint128) s3-5)) (-> obj adgif-tmpl dma-vif quad)) + (set! (-> (the-as (pointer uint128) s3-5) 1) (-> obj adgif-tmpl quad 1)) + (adgif-shader<-texture-simple! (the-as adgif-shader (&+ s3-5 32)) a1-32) + (&+! (-> arg0 buf base) 112) + ) + ) + (let ((s3-6 (the-as connection-pers (-> *minimap* engine alive-list-override)))) + (while s3-6 + (let ((a2-8 s3-6)) + (if (logtest? (-> (the-as connection-minimap a2-8) class flags) (minimap-flag racer)) + (draw-racer-2 obj arg0 (the-as connection-minimap a2-8)) + ) + ) + (set! s3-6 (-> s3-6 next)) + ) + ) + (let* ((v1-105 s5-0) + (a0-60 (the-as dma-packet (-> v1-105 base))) + ) + (set! (-> a0-60 dma) (new 'static 'dma-tag :qwc #x4 :id (dma-tag-id cnt))) + (set! (-> a0-60 vif0) (new 'static 'vif-tag)) + (set! (-> a0-60 vif1) (new 'static 'vif-tag :imm #x4 :cmd (vif-cmd direct) :msk #x1)) + (set! (-> v1-105 base) (the-as pointer (&+ a0-60 16))) + ) + (let* ((v1-106 s5-0) + (a0-62 (the-as gs-gif-tag (-> v1-106 base))) + ) + (set! (-> a0-62 tag) (new 'static 'gif-tag64 :nloop #x1 :eop #x1 :nreg #x3)) + (set! (-> a0-62 regs) GIF_REGS_ALL_AD) + (set! (-> v1-106 base) (the-as pointer (&+ a0-62 16))) + ) + (let* ((v1-107 s5-0) + (a0-64 (-> v1-107 base)) + ) + (set! (-> (the-as (pointer gs-frame) a0-64) 0) + (new 'static 'gs-frame :fbw #x2 :fbmsk #xffffff :fbp (-> *map-texture-base* vram-page)) + ) + (set! (-> (the-as (pointer gs-reg64) a0-64) 1) (gs-reg64 frame-1)) + (set! (-> (the-as (pointer gs-alpha) a0-64) 2) (new 'static 'gs-alpha :b #x1 :d #x1)) + (set! (-> (the-as (pointer gs-reg64) a0-64) 3) (gs-reg64 alpha-1)) + (set! (-> (the-as (pointer gs-xy-offset) a0-64) 4) (new 'static 'gs-xy-offset)) + (set! (-> (the-as (pointer gs-reg64) a0-64) 5) (gs-reg64 xyoffset-1)) + (set! (-> v1-107 base) (&+ a0-64 48)) + ) + (let ((s3-7 (the-as object (-> s5-0 base)))) + (set! (-> (the-as (pointer uint128) s3-7)) (-> obj adgif-tmpl dma-vif quad)) + (set! (-> (the-as (pointer uint128) s3-7) 1) (-> obj adgif-tmpl quad 1)) + (adgif-shader<-texture-simple! + (the-as adgif-shader (&-> (the-as (pointer uint128) s3-7) 2)) + (lookup-texture-by-id-fast (new 'static 'texture-id :index #x2a :page #x67a)) + ) + (set! (-> (the-as (pointer uint128) s3-7) 7) (-> obj sprite-tmpl dma-vif quad)) + (set! (-> (the-as (pointer uint128) s3-7) 8) (-> obj sprite-tmpl quad 1)) + (set-vector! (-> (the-as (inline-array vector4w) s3-7) 9) 128 128 128 128) + (set-vector! (-> (the-as (inline-array vector4w) s3-7) 10) 0 0 0 0) + (set-vector! (-> (the-as (inline-array vector4w) s3-7) 11) 0 0 #xffffff 0) + (set-vector! (-> (the-as (inline-array vector4w) s3-7) 12) 1024 1024 0 0) + (set-vector! (-> (the-as (inline-array vector4w) s3-7) 13) 2048 2048 #xffffff 0) + ) + (&+! (-> s5-0 base) 224) + (set! (-> arg0 buf) s5-0) + ) + 0 + (none) + ) + ) + +;; definition for method 19 of type minimap +;; INFO: Used lq/sq +;; WARN: Return type mismatch int vs none. +(defmethod sub-draw-1-2 minimap ((obj minimap) (arg0 minimap-draw-work)) + (local-vars (a3-4 int) (t0-4 int) (sv-48 vector) (sv-52 matrix) (sv-56 vector)) + (let ((s5-0 (-> arg0 buf))) + (reset-display-gs-state *display* s5-0) + (let* ((v1-0 s5-0) + (a0-2 (the-as dma-packet (-> v1-0 base))) + ) + (set! (-> a0-2 dma) (new 'static 'dma-tag :qwc #x7 :id (dma-tag-id cnt))) + (set! (-> a0-2 vif0) (new 'static 'vif-tag)) + (set! (-> a0-2 vif1) (new 'static 'vif-tag :imm #x7 :cmd (vif-cmd direct) :msk #x1)) + (set! (-> v1-0 base) (the-as pointer (&+ a0-2 16))) + ) + (let* ((v1-1 s5-0) + (a0-4 (the-as gs-gif-tag (-> v1-1 base))) + ) + (set! (-> a0-4 tag) (new 'static 'gif-tag64 :nloop #x1 :eop #x1 :nreg #x6)) + (set! (-> a0-4 regs) GIF_REGS_ALL_AD) + (set! (-> v1-1 base) (the-as pointer (&+ a0-4 16))) + ) + (let* ((s3-0 s5-0) + (s2-0 (-> s3-0 base)) + ) + (set! (-> (the-as (pointer gs-test) s2-0) 0) (new 'static 'gs-test :zte #x1 :ztst (gs-ztest greater-equal))) + (set! (-> (the-as (pointer gs-reg64) s2-0) 1) (gs-reg64 test-1)) + (set! (-> (the-as (pointer gs-alpha) s2-0) 2) (new 'static 'gs-alpha :b #x1 :d #x1)) + (set! (-> (the-as (pointer gs-reg64) s2-0) 3) (gs-reg64 alpha-1)) + (set! (-> (the-as (pointer gs-tex0) s2-0) 4) + (new 'static 'gs-tex0 + :tbw #x2 + :tcc #x1 + :th (log2 128) + :tw (log2 128) + :tbp0 (-> *map-texture-base* vram-block) + ) + ) + (set! (-> (the-as (pointer gs-reg64) s2-0) 5) (gs-reg64 tex0-1)) + (set! (-> (the-as (pointer gs-tex1) s2-0) 6) (new 'static 'gs-tex1 :mmag #x1 :mmin #x1)) + (set! (-> (the-as (pointer gs-reg64) s2-0) 7) (gs-reg64 tex1-1)) + (set! (-> (the-as (pointer gs-clamp) s2-0) 8) + (new 'static 'gs-clamp :wms (gs-tex-wrap-mode clamp) :wmt (gs-tex-wrap-mode clamp)) + ) + (set! (-> (the-as (pointer gs-reg64) s2-0) 9) (gs-reg64 clamp-1)) + (set! (-> (the-as (pointer uint64) s2-0) 10) (the-as uint 0)) + (set! (-> (the-as (pointer gs-reg64) s2-0) 11) (gs-reg64 texflush)) + (set! (-> s3-0 base) (&+ s2-0 96)) + ) + (let ((f30-0 (-> *video-params* relative-x-scale))) + (let ((v1-20 (the-as object (-> s5-0 base))) + (t0-0 (the int (* 112.0 f30-0))) + ) + 0 + 0 + (let ((a2-0 (* (+ (-> arg0 draw-pos y) 1840) 16)) + (a0-19 (* (+ (-> arg0 draw-pos y) 1952) 16)) + (a1-7 (-> arg0 draw-pos z)) + ) + (cond + ((-> arg0 justify-right) + (set! a3-4 (* (+ (- 1792 t0-0) (-> arg0 draw-pos x)) 16)) + (set! t0-4 (* (+ (-> arg0 draw-pos x) 1792) 16)) + ) + (else + (set! a3-4 (* (+ (-> arg0 draw-pos x) 1792) 16)) + (set! t0-4 (* (+ t0-0 1792 (-> arg0 draw-pos x)) 16)) + ) + ) + (set! (-> (the-as (pointer uint128) v1-20)) (-> obj sprite-tmpl dma-vif quad)) + (set! (-> (the-as (pointer uint128) v1-20) 1) (-> obj sprite-tmpl quad 1)) + (let ((t1-5 (-> obj color quad))) + (set! (-> (the-as (pointer uint128) (&+ (the-as pointer v1-20) 32))) t1-5) + ) + (cond + ((-> *blit-displays-work* horizontal-flip-flag) + (set-vector! (-> (the-as (inline-array vector4w) v1-20) 3) 0 0 0 0) + (set-vector! (-> (the-as (inline-array vector4w) v1-20) 4) t0-4 a2-0 a1-7 0) + (set-vector! (-> (the-as (inline-array vector4w) v1-20) 5) 2048 2048 0 0) + (let ((v1-21 (the-as (inline-array vector4w) (-> (the-as (inline-array vector4w) v1-20) 6)))) + (set! (-> v1-21 0 x) a3-4) + (set! (-> v1-21 0 y) a0-19) + (set! (-> v1-21 0 z) a1-7) + (set! (-> v1-21 0 w) 0) + ) + ) + (else + (set-vector! (-> (the-as (inline-array vector4w) v1-20) 3) 0 0 0 0) + (set-vector! (-> (the-as (inline-array vector4w) v1-20) 4) a3-4 a2-0 a1-7 0) + (set-vector! (-> (the-as (inline-array vector4w) v1-20) 5) 2048 2048 0 0) + (set-vector! (-> (the-as (inline-array vector4w) v1-20) 6) t0-4 a0-19 a1-7 0) + ) + ) + ) + ) + (&+! (-> s5-0 base) 112) + (let* ((v1-25 s5-0) + (a0-20 (the-as dma-packet (-> v1-25 base))) + ) + (set! (-> a0-20 dma) (new 'static 'dma-tag :qwc #x2 :id (dma-tag-id cnt))) + (set! (-> a0-20 vif0) (new 'static 'vif-tag)) + (set! (-> a0-20 vif1) (new 'static 'vif-tag :imm #x2 :cmd (vif-cmd direct) :msk #x1)) + (set! (-> v1-25 base) (the-as pointer (&+ a0-20 16))) + ) + (let* ((v1-26 s5-0) + (a0-22 (the-as gs-gif-tag (-> v1-26 base))) + ) + (set! (-> a0-22 tag) (new 'static 'gif-tag64 :nloop #x1 :eop #x1 :nreg #x1)) + (set! (-> a0-22 regs) GIF_REGS_ALL_AD) + (set! (-> v1-26 base) (the-as pointer (&+ a0-22 16))) + ) + (let* ((v1-27 s5-0) + (a0-24 (-> v1-27 base)) + ) + (set! (-> (the-as (pointer gs-test) a0-24) 0) + (new 'static 'gs-test :ate #x1 :atst (gs-atest greater) :zte #x1 :ztst (gs-ztest always)) + ) + (set! (-> (the-as (pointer gs-reg64) a0-24) 1) (gs-reg64 test-1)) + (set! (-> v1-27 base) (&+ a0-24 16)) + ) + (set! sv-48 (new-stack-vector0)) + (let ((v1-29 (new 'stack-no-clear 'matrix))) + (set! (-> v1-29 quad 0) (the-as uint128 0)) + (set! sv-52 v1-29) + ) + (set! sv-56 (target-pos 0)) + (set! (-> sv-52 quad 0) (-> (matrix-world->local #f #f) vector 2 quad)) + (set! (-> sv-52 vector 0 y) 0.0) + (vector-normalize! (the-as vector sv-52) 1.0) + (cond + ((-> *blit-displays-work* horizontal-flip-flag) + (let ((v1-35 (-> arg0 mat))) + (set! (-> v1-35 vector 0 x) (* (-> sv-52 vector 0 z) (- f30-0))) + (set! (-> v1-35 vector 0 y) 0.0) + (set! (-> v1-35 vector 0 z) (- (-> sv-52 vector 0 x))) + (set! (-> v1-35 vector 0 w) 0.0) + ) + (set-vector! (-> arg0 mat vector 1) 0.0 1.0 0.0 0.0) + (set-vector! (-> arg0 mat vector 2) (* (-> sv-52 vector 0 x) (- f30-0)) 0.0 (-> sv-52 vector 0 z) 0.0) + (set-vector! (-> arg0 mat trans) 0.0 0.0 (the float (+ (-> arg0 draw-pos y) 1896)) 1.0) + ) + (else + (let ((v1-39 (-> arg0 mat))) + (set! (-> v1-39 vector 0 x) (* (-> sv-52 vector 0 z) f30-0)) + (set! (-> v1-39 vector 0 y) 0.0) + (set! (-> v1-39 vector 0 z) (- (-> sv-52 vector 0 x))) + (set! (-> v1-39 vector 0 w) 0.0) + ) + (set-vector! (-> arg0 mat vector 1) 0.0 1.0 0.0 0.0) + (set-vector! (-> arg0 mat vector 2) (* (-> sv-52 vector 0 x) f30-0) 0.0 (-> sv-52 vector 0 z) 0.0) + (set-vector! (-> arg0 mat trans) 0.0 0.0 (the float (+ (-> arg0 draw-pos y) 1896)) 1.0) + ) + ) + (let ((v1-44 (the int (* 56.0 f30-0)))) + (if (-> arg0 justify-right) + (set! (-> arg0 mat trans x) (the float (+ (- 1792 v1-44) (-> arg0 draw-pos x)))) + (set! (-> arg0 mat trans x) (the float (+ v1-44 1792 (-> arg0 draw-pos x)))) + ) + ) + (when *target* + (vector-z-quaternion! (the-as vector sv-52) (-> *target* control quat)) + (vector-xz-normalize! (the-as vector sv-52) 1.0) + (set! (-> sv-52 vector 0 y) 0.0) + (set! (-> sv-52 vector 0 w) 0.0) + (vector-matrix*! (the-as vector sv-52) (the-as vector sv-52) (-> arg0 mat)) + (let ((s3-2 (the-as object (-> s5-0 base))) + (s2-1 (lookup-texture-by-id-fast (new 'static 'texture-id :index #x42 :page #xb))) + (s1-2 (new 'stack-no-clear 'matrix)) + (v1-57 (the int (* 56.0 f30-0))) + ) + (when s2-1 + (set-vector! (-> s1-2 vector 0) (* (-> sv-52 vector 0 z) f30-0) 0.0 (- (-> sv-52 vector 0 x)) 0.0) + (set-vector! (-> s1-2 vector 1) 0.0 1.0 0.0 0.0) + (set-vector! (-> s1-2 vector 2) (* (-> sv-52 vector 0 x) f30-0) 0.0 (-> sv-52 vector 0 z) 1.0) + (set-vector! (-> s1-2 trans) 0.0 0.0 (the float (+ (-> arg0 draw-pos y) 1896)) 1.0) + (if (-> arg0 justify-right) + (set! (-> s1-2 trans x) (the float (+ (- 1792 v1-57) (-> arg0 draw-pos x)))) + (set! (-> s1-2 trans x) (the float (+ v1-57 1792 (-> arg0 draw-pos x)))) + ) + (let ((f0-80 7.0)) + (set-vector! (-> arg0 corner 0) 0.0 0.0 (- f0-80) 1.0) + (set-vector! (-> arg0 corner 1) f0-80 0.0 0.0 1.0) + (set-vector! (-> arg0 corner 2) (- f0-80) 0.0 0.0 1.0) + (set-vector! (-> arg0 corner 3) 0.0 0.0 f0-80 1.0) + ) + (vector-matrix*! (the-as vector (-> arg0 corner)) (the-as vector (-> arg0 corner)) s1-2) + (vector-matrix*! (-> arg0 corner 1) (-> arg0 corner 1) s1-2) + (vector-matrix*! (-> arg0 corner 2) (-> arg0 corner 2) s1-2) + (vector-matrix*! (-> arg0 corner 3) (-> arg0 corner 3) s1-2) + (set! (-> (the-as (pointer uint128) s3-2)) (-> obj adgif-tmpl dma-vif quad)) + (set! (-> (the-as (pointer uint128) s3-2) 1) (-> obj adgif-tmpl quad 1)) + (adgif-shader<-texture-simple! (the-as adgif-shader (&-> (the-as (pointer uint128) s3-2) 2)) s2-1) + (set! (-> (the-as (pointer uint128) s3-2) 7) (-> obj draw-tmpl dma-vif quad)) + (set! (-> (the-as (pointer uint128) s3-2) 8) (-> obj draw-tmpl quad 1)) + (set-vector! (-> (the-as (inline-array vector4w) s3-2) 9) 0 255 255 128) + (set-vector! (-> (the-as (inline-array vector4w) s3-2) 10) 0 0 #xffffff 0) + (set-vector! + (-> (the-as (inline-array vector4w) s3-2) 11) + (the int (* 16.0 (-> arg0 corner 0 x))) + (the int (* 16.0 (-> arg0 corner 0 z))) + 0 + 0 + ) + (set-vector! (-> (the-as (inline-array vector4w) s3-2) 12) 256 0 #xffffff 0) + (set-vector! + (-> (the-as (inline-array vector4w) s3-2) 13) + (the int (* 16.0 (-> arg0 corner 1 x))) + (the int (* 16.0 (-> arg0 corner 1 z))) + 0 + 0 + ) + (set-vector! (-> (the-as (inline-array vector4w) s3-2) 14) 0 256 #xffffff 0) + (set-vector! + (-> (the-as (inline-array vector4w) s3-2) 15) + (the int (* 16.0 (-> arg0 corner 2 x))) + (the int (* 16.0 (-> arg0 corner 2 z))) + 0 + 0 + ) + (set-vector! (-> (the-as (inline-array vector4w) s3-2) 16) 256 256 #xffffff 0) + (set-vector! + (-> (the-as (inline-array vector4w) s3-2) 17) + (the int (* 16.0 (-> arg0 corner 3 x))) + (the int (* 16.0 (-> arg0 corner 3 z))) + 0 + 0 + ) + (&+! (-> s5-0 base) 288) + ) + ) + ) + ) + (set! (-> arg0 buf) s5-0) + ) + 0 + (none) + ) + +;; definition for method 16 of type minimap +;; INFO: Used lq/sq +;; WARN: Return type mismatch pointer vs none. +(defmethod draw-connection minimap ((obj minimap) (arg0 minimap-draw-work) (arg1 connection-minimap)) + (with-pp + (let ((s1-0 (target-pos 0))) + (cond + ((= (-> arg1 position) #t) + (let* ((s3-0 (handle->process (-> arg1 handle))) + (v1-4 (if (type? s3-0 process-drawable) + s3-0 + ) + ) + ) + (when (and v1-4 (nonzero? (-> (the-as process-drawable v1-4) root))) + (set! (-> arg1 last-world-pos quad) (-> (the-as process-drawable v1-4) root trans quad)) + (vector-! (-> arg1 last-relative-pos) s1-0 (-> arg1 last-world-pos)) + ) + ) + ) + ((and (= (logand (the-as int (-> arg1 position)) 7) 4) + (= (-> (the-as basic (-> arg1 position)) type) entity-actor) + ) + (let* ((v1-15 (-> arg1 position)) + (s3-1 (if v1-15 + (-> (the-as entity-actor v1-15) extra process) + ) + ) + (a0-16 (if (type? s3-1 process-drawable) + s3-1 + ) + ) + ) + (cond + (a0-16 + (set! (-> arg1 last-world-pos quad) (-> (the-as process-drawable a0-16) root trans quad)) + (vector-! (-> arg1 last-relative-pos) s1-0 (-> arg1 last-world-pos)) + ) + (else + (set! (-> arg1 last-world-pos quad) (-> (the-as entity-actor (-> arg1 position)) extra trans quad)) + (vector-! (-> arg1 last-relative-pos) s1-0 (-> arg1 last-world-pos)) + ) + ) + ) + ) + (else + (set! (-> arg1 last-world-pos quad) (-> (the-as vector (-> arg1 position)) quad)) + (vector-! (-> arg1 last-relative-pos) s1-0 (-> arg1 last-world-pos)) + ) + ) + (let ((s3-2 (new 'stack-no-clear 'vector)) + (s2-0 #f) + ) + (let ((f30-0 (/ 1.0 (* 16384.0 (-> obj offset y))))) + 0.0 + (set! (-> s3-2 quad) (-> arg1 last-relative-pos quad)) + (set! (-> s3-2 x) (* (-> s3-2 x) f30-0)) + (set! (-> s3-2 z) (* (-> s3-2 z) f30-0)) + (set! (-> s3-2 y) 0.0) + (set! (-> s3-2 w) 1.0) + (let* ((v1-29 s3-2) + (f28-0 (sqrtf (+ (* (-> v1-29 x) (-> v1-29 x)) (* (-> v1-29 z) (-> v1-29 z))))) + ) + (cond + ((logtest? (-> arg1 class flags) (minimap-flag trail)) + (cond + (*trail-graph* + (let ((a2-2 (get-trail-for-connection obj arg1 #f))) + (cond + ((not a2-2) + (when (!= (-> arg1 alpha) 0.0) + (when (not (get-trail-for-connection obj arg1 #t)) + (let ((s2-1 (the-as connection-pers (-> *minimap* engine alive-list-override)))) + (while s2-1 + (let ((a1-12 s2-1)) + (if (and (= (the-as float (-> a1-12 param 1)) 0.0) (logtest? (-> arg1 class flags) (minimap-flag trail))) + (free-trail-by-connection *minimap* (the-as connection-minimap a1-12)) + ) + ) + (set! s2-1 (-> s2-1 next)) + ) + ) + ) + ) + (set! s2-0 #t) + (set! (-> arg1 edge-ry) -131072.0) + ) + ((>= (- (-> pp clock frame-counter) (the-as int (-> a2-2 last-updated))) (seconds 5)) + (set! s2-0 #t) + (set! (-> arg1 edge-ry) -131072.0) + ) + ((< 50.0 f28-0) + (let ((s0-0 (new 'stack-no-clear 'vector))) + (set! (-> s0-0 quad) (-> s3-2 quad)) + (let ((s1-1 (get-icon-draw-pos *minimap* arg1 a2-2 s1-0 f30-0 s3-2))) + (if (not s1-1) + (vector-normalize-copy! s3-2 s0-0 66.0) + ) + (let ((f30-1 (atan (-> s3-2 x) (-> s3-2 z)))) + (let ((f28-1 (-> arg1 edge-ry))) + (when (!= f28-1 -131072.0) + (let* ((f0-20 (deg- f30-1 f28-1)) + (f1-7 (fabs f0-20)) + (f2-3 (* 16384.0 (-> pp clock seconds-per-frame))) + ) + (when (< f2-3 f1-7) + (set! f30-1 (+ f28-1 (if (>= f0-20 0.0) + f2-3 + (- f2-3) + ) + ) + ) + (set-vector! s3-2 (sin f30-1) 0.0 (cos f30-1) 1.0) + (vector-normalize! s3-2 (if s1-1 + 50.0 + 66.0 + ) + ) + ) + ) + ) + ) + (set! (-> arg1 edge-ry) f30-1) + ) + ) + ) + ) + (else + (set! (-> arg1 edge-ry) (atan (-> s3-2 x) (-> s3-2 z))) + ) + ) + ) + ) + (else + (set! s2-0 #t) + (set! (-> arg1 edge-ry) -131072.0) + ) + ) + ) + ((logtest? (-> arg1 class flags) (minimap-flag clamp)) + (cond + ((< 50.0 f28-0) + (let ((a1-19 (new 'stack-no-clear 'vector))) + (set! (-> a1-19 quad) (-> s3-2 quad)) + (vector-normalize-copy! s3-2 a1-19 54.0) + ) + (let ((f30-2 (atan (-> s3-2 x) (-> s3-2 z)))) + (let ((f28-2 (-> arg1 edge-ry))) + (when (!= f28-2 -131072.0) + (let* ((f0-35 (deg- f30-2 f28-2)) + (f1-9 (fabs f0-35)) + (f2-5 (* 16384.0 (-> pp clock seconds-per-frame))) + ) + (when (< f2-5 f1-9) + (set! f30-2 (+ f28-2 (if (>= f0-35 0.0) + f2-5 + (- f2-5) + ) + ) + ) + (set-vector! s3-2 (sin f30-2) 0.0 (cos f30-2) 1.0) + (vector-normalize! s3-2 54.0) + ) + ) + ) + ) + (set! (-> arg1 edge-ry) f30-2) + ) + ) + (else + (set! (-> arg1 edge-ry) (atan (-> s3-2 x) (-> s3-2 z))) + ) + ) + ) + (else + (if (< 50.0 f28-0) + (set! s2-0 #t) + ) + ) + ) + ) + ) + (if (or (logtest? (-> arg1 class flags) (minimap-flag frustum)) + (logtest? (-> arg1 class flags) (minimap-flag racer)) + (and (logtest? (-> arg1 class flags) (minimap-flag flash)) + (< (the-as int (logand (-> *display* base-clock integral-frame-counter) 15)) 8) + ) + ) + (set! s2-0 #t) + ) + (if (logtest? (-> arg1 class flags) (minimap-flag goal)) + (set! (-> arg1 class icon-xy x) (the-as uint (mod (the int (-> obj goal-time)) 6))) + ) + (when (not s2-0) + (vector-matrix*! s3-2 s3-2 (-> arg0 mat)) + (let ((v1-115 (the-as object (-> arg0 buf base)))) + (let* ((f0-48 (-> arg1 class scale)) + (a1-25 (-> arg1 class color)) + (a1-32 (copy-and-set-field a1-25 r (shr (* (-> a1-25 r) (the-as uint (-> obj color x))) 7))) + (a1-39 (copy-and-set-field a1-32 g (shr (* (-> a1-32 g) (the-as uint (-> obj color y))) 7))) + (a0-70 + (copy-and-set-field + (copy-and-set-field a1-39 b (shr (* (-> a1-39 b) (the-as uint (-> obj color z))) 7)) + a + (the int (* 128.0 (-> arg1 alpha))) + ) + ) + ) + (let ((f1-16 (* 20.0 (-> *video-params* relative-x-scale) f0-48)) + (f0-49 (* 20.0 f0-48)) + ) + (set! (-> arg0 corner 0 x) (the float (the int (- (-> s3-2 x) (* 0.5 f1-16))))) + (set! (-> arg0 corner 0 z) (the float (the int (- (-> s3-2 z) (* 0.5 f0-49))))) + (set! (-> arg0 corner 1 x) (+ (-> arg0 corner 0 x) f1-16)) + (set! (-> arg0 corner 1 z) (+ (-> arg0 corner 0 z) f0-49)) + ) + (let* ((a3-1 (+ (* (the-as uint 320) (-> arg1 class icon-xy x)) 8)) + (t0-1 (+ (* (the-as uint 320) (-> arg1 class icon-xy y)) 8)) + (a1-61 (+ a3-1 312)) + (a2-14 (+ t0-1 312)) + ) + (set! (-> (the-as (pointer uint128) v1-115)) (-> obj sprite-tmpl dma-vif quad)) + (set! (-> (the-as (pointer uint128) v1-115) 1) (-> obj sprite-tmpl quad 1)) + (set-vector! + (-> (the-as (inline-array vector4w) v1-115) 2) + (the-as int (-> a0-70 r)) + (the-as int (-> a0-70 g)) + (the-as int (-> a0-70 b)) + (the-as int (-> a0-70 a)) + ) + (set-vector! (-> (the-as (inline-array vector4w) v1-115) 3) a3-1 t0-1 0 0) + (set-vector! + (-> (the-as (inline-array vector4w) v1-115) 4) + (the int (* 16.0 (-> arg0 corner 0 x))) + (the int (* 16.0 (-> arg0 corner 0 z))) + #xffffff + 0 + ) + (set-vector! (-> (the-as (inline-array vector4w) v1-115) 5) a1-61 a2-14 0 0) + ) + ) + (set-vector! + (-> (the-as (inline-array vector4w) v1-115) 6) + (the int (* 16.0 (-> arg0 corner 1 x))) + (the int (* 16.0 (-> arg0 corner 1 z))) + #xffffff + 0 + ) + ) + (&+! (-> arg0 buf base) 112) + ) + ) + ) + (none) + ) + ) + +;; definition for method 15 of type minimap +;; INFO: Used lq/sq +;; WARN: Return type mismatch int vs none. +(defmethod draw-1 minimap ((obj minimap) (arg0 dma-buffer) (arg1 vector4w) (arg2 symbol)) + (local-vars (v1-19 uint128)) + (with-pp + (when (= (level-status *level* 'ctywide) 'active) + (let ((s5-1 (new 'stack-no-clear 'minimap-draw-work))) + (set! (-> s5-1 buf) arg0) + (set! (-> s5-1 draw-pos quad) (-> arg1 quad)) + (set! (-> s5-1 justify-right) arg2) + (sub-draw-1-1 obj s5-1) + (sub-draw-1-2 obj s5-1) + (set! (-> obj ctywide) (level-get *level* 'ctywide)) + (let ((s2-1 (-> s5-1 buf base)) + (s4-1 (lookup-texture-by-id-fast (new 'static 'texture-id :page #x679))) + ) + (let ((s3-1 (-> obj ctywide texture-mask 8))) + (when s4-1 + (set! (-> (the-as (pointer uint128) s2-1)) (-> obj adgif-tmpl dma-vif quad)) + (set! (-> (the-as (pointer uint128) s2-1) 1) (-> obj adgif-tmpl quad 1)) + (adgif-shader<-texture-simple! (the-as adgif-shader (&+ s2-1 32)) s4-1) + (&+! (-> s5-1 buf base) 112) + (let ((v1-18 (-> s3-1 mask quad)) + (a0-8 (-> s4-1 masks data 0 mask quad)) + ) + (.por v1-19 v1-18 a0-8) + ) + (set! (-> s3-1 mask quad) v1-19) + ) + ) + (if (not s4-1) + (format *stdcon* "minimap: mini-map-icons texture is #f~%") + ) + ) + (let ((s4-2 (the-as connection-pers (-> *minimap* engine alive-list-override)))) + (while s4-2 + (let ((a2-1 s4-2)) + (draw-connection obj s5-1 (the-as connection-minimap a2-1)) + ) + (set! s4-2 (-> s4-2 next)) + ) + ) + (if (not (paused?)) + (+! (-> obj goal-time) (* 14.0 (-> pp clock seconds-per-frame))) + ) + (reset-display-gs-state *display* (-> s5-1 buf)) + ) + ) + 0 + (none) + ) + ) + +;; definition for method 24 of type minimap +;; INFO: Used lq/sq +;; WARN: Return type mismatch int vs none. +(defmethod draw-sprite2 minimap ((obj minimap) (arg0 dma-buffer) (arg1 vector4w) (arg2 symbol)) + (local-vars (v1-24 uint128) (a0-8 uint128) (a3-5 int) (t0-4 int)) + (when (-> obj race-tex) + (let ((s5-0 (new 'stack-no-clear 'minimap-draw-work))) + (set! (-> s5-0 buf) arg0) + (set! (-> s5-0 draw-pos quad) (-> arg1 quad)) + (set! (-> s5-0 justify-right) arg2) + (let ((v1-4 (-> s5-0 buf base)) + (s3-0 (-> obj race-tex)) + (s2-0 (-> obj race-level texture-mask 8)) + ) + (when s3-0 + (set! (-> (the-as (pointer uint128) v1-4)) (-> obj adgif-tmpl dma-vif quad)) + (set! (-> (the-as (pointer uint128) v1-4) 1) (-> obj adgif-tmpl quad 1)) + (adgif-shader<-texture-simple! (the-as adgif-shader (&+ v1-4 32)) s3-0) + (&+! (-> s5-0 buf base) 112) + (let ((v1-8 (-> s2-0 mask quad)) + (a0-7 (-> s3-0 masks data 0 mask quad)) + ) + (.por a0-8 v1-8 a0-7) + ) + (set! (-> s2-0 mask quad) a0-8) + ) + ) + (let* ((f0-0 (-> *video-params* relative-x-scale)) + (v1-10 (the-as object (-> arg0 base))) + (t0-0 (the int (* 128.0 f0-0))) + ) + 0 + 0 + (let ((a2-1 (* (+ (-> s5-0 draw-pos y) 1840) 16)) + (a0-16 (* (+ (-> s5-0 draw-pos y) 1968) 16)) + (a1-2 (-> s5-0 draw-pos z)) + ) + (cond + ((-> s5-0 justify-right) + (set! a3-5 (* (+ (- 1792 t0-0) (-> s5-0 draw-pos x)) 16)) + (set! t0-4 (* (+ (-> s5-0 draw-pos x) 1792) 16)) + ) + (else + (set! a3-5 (* (+ (-> s5-0 draw-pos x) 1792) 16)) + (set! t0-4 (* (+ t0-0 1792 (-> s5-0 draw-pos x)) 16)) + ) + ) + (set! (-> s5-0 draw-pos x) a3-5) + (set! (-> s5-0 draw-pos y) a2-1) + (set! (-> (the-as (pointer uint128) v1-10)) (-> obj sprite2-tmpl dma-vif quad)) + (set! (-> (the-as (pointer uint128) v1-10) 1) (-> obj sprite2-tmpl quad 1)) + (let ((t1-5 (-> obj color quad))) + (set! (-> (the-as (pointer uint128) (&+ (the-as pointer v1-10) 32))) t1-5) + ) + (cond + ((-> *blit-displays-work* horizontal-flip-flag) + (set-vector! (-> (the-as (inline-array vector) v1-10) 3) 0.0 0.0 1.0 0.0) + (set-vector! (-> (the-as (inline-array vector4w) v1-10) 4) t0-4 a2-1 a1-2 0) + (set-vector! (-> (the-as (inline-array vector) v1-10) 5) 1.0 1.0 1.0 0.0) + (set-vector! (-> (the-as (inline-array vector4w) v1-10) 6) a3-5 a0-16 a1-2 0) + ) + (else + (set-vector! (-> (the-as (inline-array vector) v1-10) 3) 0.0 0.0 1.0 0.0) + (set-vector! (-> (the-as (inline-array vector4w) v1-10) 4) a3-5 a2-1 a1-2 0) + (set-vector! (-> (the-as (inline-array vector) v1-10) 5) 1.0 1.0 1.0 0.0) + (set-vector! (-> (the-as (inline-array vector4w) v1-10) 6) t0-4 a0-16 a1-2 0) + ) + ) + ) + ) + (&+! (-> arg0 base) 112) + (let ((s2-1 (-> s5-0 buf base)) + (s4-1 (lookup-texture-by-id-fast (new 'static 'texture-id :index #x42 :page #xb))) + (s3-1 (-> obj ctywide texture-mask 8)) + ) + (when s4-1 + (set! (-> (the-as (pointer uint128) s2-1)) (-> obj adgif-tmpl dma-vif quad)) + (set! (-> (the-as (pointer uint128) s2-1) 1) (-> obj adgif-tmpl quad 1)) + (adgif-shader<-texture-simple! (the-as adgif-shader (&+ s2-1 32)) s4-1) + (&+! (-> s5-0 buf base) 112) + (let ((v1-23 (-> s3-1 mask quad)) + (a0-20 (-> s4-1 masks data 0 mask quad)) + ) + (.por v1-24 v1-23 a0-20) + ) + (set! (-> s3-1 mask quad) v1-24) + ) + ) + (let ((f30-0 (the float (/ (-> s5-0 draw-pos x) 16))) + (f28-0 (the float (/ (-> s5-0 draw-pos y) 16))) + (s4-2 (the-as connection-pers #f)) + ) + (let ((s3-2 (the-as connection-pers (-> *minimap* engine alive-list-override)))) + (while s3-2 + (let ((s2-2 s3-2)) + (when (logtest? (-> (the-as connection-minimap s2-2) class flags) (minimap-flag racer)) + (if (string= (the-as string (-> (the-as connection-minimap s2-2) class name)) "racer-target") + (set! s4-2 s2-2) + (draw-racer-1 obj s5-0 (the-as connection-minimap s2-2) (-> obj race-scale) f30-0 f28-0) + ) + ) + ) + (set! s3-2 (-> s3-2 next)) + ) + ) + (if s4-2 + (draw-racer-1 obj s5-0 (the-as connection-minimap s4-2) (-> obj race-scale) f30-0 f28-0) + ) + ) + ) + ) + 0 + (none) + ) + +;; definition for method 25 of type minimap +;; WARN: Return type mismatch int vs none. +(defmethod set-race-texture minimap ((obj minimap) (arg0 texture) (arg1 float) (arg2 level)) + (set! (-> obj race-tex) arg0) + (set! (-> obj race-scale) arg1) + (set! (-> obj race-level) arg2) + 0 + (none) + ) + +;; definition for method 27 of type minimap +;; WARN: Return type mismatch int vs none. +(defmethod set-race-corner minimap ((obj minimap) (arg0 float) (arg1 float)) + (set! (-> obj race-corner x) arg0) + (set! (-> obj race-corner z) arg1) + 0 + (none) + ) + +;; definition for method 22 of type minimap +;; INFO: Used lq/sq +;; WARN: Return type mismatch int vs none. +(defmethod set-color minimap ((obj minimap) (arg0 vector)) + (set! (-> obj color quad) (-> arg0 quad)) + 0 + (none) + ) + + + + diff --git a/test/decompiler/reference/jak2/levels/city/common/trail-graph_REF.gc b/test/decompiler/reference/jak2/levels/city/common/trail-graph_REF.gc new file mode 100644 index 0000000000..af5e10e37a --- /dev/null +++ b/test/decompiler/reference/jak2/levels/city/common/trail-graph_REF.gc @@ -0,0 +1,5223 @@ +;;-*-Lisp-*- +(in-package goal) + +;; definition for symbol *trail-graph*, type trail-graph +(define *trail-graph* + (new 'static 'trail-graph + :node-count #x297 + :conn-count #x317 + :node (new 'static 'inline-array trail-node 663 + (new 'static 'trail-node :x #x47d :z 88 :conn-count #x1) + (new 'static 'trail-node :next-id #x100 :z #x47b :first-conn #x1b :cost-from-start #x1) + (new 'static 'trail-node :x #x46e :z 16 :first-conn #x3 :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z #x45e :first-conn #x17 :cost-from-start #x5) + (new 'static 'trail-node :x #x454 :z 42 :first-conn #x7 :conn-count #x3) + (new 'static 'trail-node :next-id #x300 :z #x41d :first-conn #x7f :cost-from-start #xa) + (new 'static 'trail-node :x #x404 :z #x8e :first-conn #xf :conn-count #x4) + (new 'static 'trail-node :next-id #x400 :z #x404 :first-conn #xbb :cost-from-start #x13) + (new 'static 'trail-node :x #x413 :z #xbc :first-conn #x17 :conn-count #x5) + (new 'static 'trail-node :next-id #x500 :z #x443 :first-conn #xb2 :cost-from-start #x1c) + (new 'static 'trail-node :x #x445 :z #x8b :first-conn #x20 :conn-count #x3) + (new 'static 'trail-node :next-id #x300 :z #x430 :first-conn #x7b :cost-from-start #x23) + (new 'static 'trail-node :x #x42d :z #xbc :first-conn #x25 :conn-count #x4) + (new 'static 'trail-node :next-id #x400 :z #x44f :first-conn #xc0 :cost-from-start #x29) + (new 'static 'trail-node :x #x472 :z #xeb :first-conn #x2e :conn-count #x3) + (new 'static 'trail-node :next-id #x300 :z #x472 :first-conn #xb7 :cost-from-start #x31) + (new 'static 'trail-node :x #x473 :z #x96 :first-conn #x34 :conn-count #x1) + (new 'static 'trail-node :next-id #x100 :z #x473 :first-conn #x114 :cost-from-start #x35) + (new 'static 'trail-node :x #x46e :z #x126 :first-conn #x37 :conn-count #x3) + (new 'static 'trail-node :next-id #x300 :z #x446 :first-conn #x163 :cost-from-start #x3a) + (new 'static 'trail-node :x #x41a :z #x13f :first-conn #x3d :conn-count #x3) + (new 'static 'trail-node :next-id #x300 :z #x3ec :first-conn #x15d :cost-from-start #x40) + (new 'static 'trail-node :x #x391 :z #x15d :first-conn #x42 :conn-count #x3) + (new 'static 'trail-node :next-id #x300 :z #x37f :first-conn #x148 :cost-from-start #x45) + (new 'static 'trail-node :x #x387 :z #x12c :first-conn #x48 :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z #x3d5 :first-conn #x127 :cost-from-start #x4a) + (new 'static 'trail-node :x #x3e3 :z #x119 :first-conn #x4c :conn-count #x3) + (new 'static 'trail-node :next-id #x300 :z #x3df :first-conn #xf8 :cost-from-start #x4f) + (new 'static 'trail-node :x #x416 :z #xee :first-conn #x53 :conn-count #x3) + (new 'static 'trail-node :next-id #x300 :z #x42a :first-conn #xd6 :cost-from-start #x56) + (new 'static 'trail-node :x #x374 :z #x162 :first-conn #x5b :conn-count #x3) + (new 'static 'trail-node :next-id #x300 :z #x359 :first-conn #x15e :cost-from-start #x5e) + (new 'static 'trail-node :x #x344 :z #x140 :first-conn #x61 :conn-count #x3) + (new 'static 'trail-node :next-id #x300 :z #x350 :first-conn #x111 :cost-from-start #x64) + (new 'static 'trail-node :x #x384 :z #xe8 :first-conn #x67 :conn-count #x3) + (new 'static 'trail-node :next-id #x300 :z #x3a9 :first-conn #xee :cost-from-start #x6a) + (new 'static 'trail-node :x #x3cd :z #xf4 :first-conn #x6c :conn-count #x3) + (new 'static 'trail-node :next-id #x300 :z #x3d9 :first-conn #xd8 :cost-from-start #x6f) + (new 'static 'trail-node :x #x3e4 :z #xc0 :first-conn #x74 :conn-count #x4) + (new 'static 'trail-node :next-id #x400 :z #x32c :first-conn #x15b :cost-from-start #x78) + (new 'static 'trail-node :x #x308 :z #x156 :first-conn #x7b :conn-count #x3) + (new 'static 'trail-node :next-id #x300 :z #x331 :first-conn #xc2 :cost-from-start #x7e) + (new 'static 'trail-node :x #x354 :z #xc9 :first-conn #x80 :conn-count #x3) + (new 'static 'trail-node :next-id #x300 :z #x316 :first-conn #xca :cost-from-start #x83) + (new 'static 'trail-node :x #x3d2 :z #x95 :first-conn #x86 :conn-count #x4) + (new 'static 'trail-node :next-id #x400 :z #x3a7 :first-conn #x9b :cost-from-start #x8a) + (new 'static 'trail-node :x #x368 :z #x75 :first-conn #x8e :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z #x326 :first-conn #xc :cost-from-start #x90) + (new 'static 'trail-node :x #x335 :z 58 :first-conn #x92 :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z #x31a :first-conn #xffe7 :cost-from-start #x94) + (new 'static 'trail-node :x #x2e1 :z -81 :first-conn #x96 :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z #x44b :first-conn #x199 :cost-from-start #x98) + (new 'static 'trail-node :x #x464 :z #x1c8 :first-conn #x9c :conn-count #x3) + (new 'static 'trail-node :next-id #x300 :z #x46a :first-conn #x1f8 :cost-from-start #x9f) + (new 'static 'trail-node :x #x3e0 :z #x1bf :first-conn #xa0 :conn-count #x5) + (new 'static 'trail-node :next-id #x500 :z #x3c7 :first-conn #x1d9 :cost-from-start #xa5) + (new 'static 'trail-node :x #x389 :z #x1e1 :first-conn #xa8 :conn-count #x4) + (new 'static 'trail-node :next-id #x400 :z #x387 :first-conn #x1a2 :cost-from-start #xac) + (new 'static 'trail-node :x #x381 :z #x21c :first-conn #xaf :conn-count #x3) + (new 'static 'trail-node :next-id #x300 :z #x391 :first-conn #x236 :cost-from-start #xb2) + (new 'static 'trail-node :x #x3bc :z #x23d :first-conn #xb6 :conn-count #x4) + (new 'static 'trail-node :next-id #x400 :z #x3d0 :first-conn #x1f7 :cost-from-start #xba) + (new 'static 'trail-node :x #x410 :z #x200 :first-conn #xbe :conn-count #x4) + (new 'static 'trail-node :next-id #x400 :z #x425 :first-conn #x23a :cost-from-start #xc2) + (new 'static 'trail-node :x #x453 :z #x23e :first-conn #xc6 :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z #x468 :first-conn #x24f :cost-from-start #xc8) + (new 'static 'trail-node :x #x468 :z #x290 :first-conn #xca :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z #x463 :first-conn #x2be :cost-from-start #xcc) + (new 'static 'trail-node :x #x435 :z #x2be :first-conn #xce :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z #x449 :first-conn #x29d :cost-from-start #xd0) + (new 'static 'trail-node :x #x42e :z #x28c :first-conn #xd2 :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z #x41a :first-conn #x279 :cost-from-start #xd4) + (new 'static 'trail-node :x #x3d7 :z #x27a :first-conn #xd6 :conn-count #x3) + (new 'static 'trail-node :next-id #x300 :z #x3a0 :first-conn #x27b :cost-from-start #xd9) + (new 'static 'trail-node :x #x363 :z #x27e :first-conn #xdc :conn-count #x3) + (new 'static 'trail-node :next-id #x300 :z #x35b :first-conn #x2dd :cost-from-start #xdf) + (new 'static 'trail-node :x #x312 :z #x2d5 :first-conn #xe3 :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z #x312 :first-conn #x27d :cost-from-start #xe5) + (new 'static 'trail-node :x #x344 :z #x214 :first-conn #xe7 :conn-count #x3) + (new 'static 'trail-node :next-id #x300 :z #x319 :first-conn #x232 :cost-from-start #xea) + (new 'static 'trail-node :x #x32f :z #x1f7 :first-conn #xec :conn-count #x3) + (new 'static 'trail-node :next-id #x300 :z #x32c :first-conn #x1c7 :cost-from-start #xef) + (new 'static 'trail-node :x #x2fd :z #x1ad :first-conn #xf1 :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z #x30b :first-conn #x1ad :cost-from-start #xf3) + (new 'static 'trail-node :x #x419 :z #x34a :first-conn #xf5 :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z #x434 :first-conn #x334 :cost-from-start #xf7) + (new 'static 'trail-node :x #x438 :z #x30e :first-conn #xf9 :conn-count #x1) + (new 'static 'trail-node :next-id #x100 :z #x3a5 :first-conn #x351 :cost-from-start #xfa) + (new 'static 'trail-node :x #x373 :z #x351 :first-conn #xfd :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z #x363 :first-conn #x334 :cost-from-start #xff) + (new 'static 'trail-node :x #x3dc :z #x34e :first-conn #x102 :conn-count #x3) + (new 'static 'trail-node :next-id #x300 :z #x3bf :first-conn #x36a :cost-from-start #x105) + (new 'static 'trail-node :x #x3db :z #x384 :first-conn #x10a :conn-count #x4) + (new 'static 'trail-node :next-id #x400 :z #x3be :first-conn #x3a7 :cost-from-start #x10e) + (new 'static 'trail-node :x #x3a0 :z #x38b :first-conn #x112 :conn-count #x4) + (new 'static 'trail-node :next-id #x400 :z #x341 :first-conn #x388 :cost-from-start #x116) + (new 'static 'trail-node :x #x31a :z #x36e :first-conn #x119 :conn-count #x3) + (new 'static 'trail-node :next-id #x300 :z #x318 :first-conn #x330 :cost-from-start #x11c) + (new 'static 'trail-node :x #x31d :z #x3a8 :first-conn #x11d :conn-count #x3) + (new 'static 'trail-node :next-id #x300 :z #x31d :first-conn #x3d0 :cost-from-start #x120) + (new 'static 'trail-node :x #x337 :z #x3f1 :first-conn #x122 :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z #x365 :first-conn #x3f7 :cost-from-start #x124) + (new 'static 'trail-node :x #x375 :z #x415 :first-conn #x126 :conn-count #x4) + (new 'static 'trail-node :next-id #x400 :z #x363 :first-conn #x439 :cost-from-start #x12a) + (new 'static 'trail-node :x #x36a :z #x473 :first-conn #x12f :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z #x3ca :first-conn #x468 :cost-from-start #x131) + (new 'static 'trail-node :x #x39e :z #x426 :first-conn #x136 :conn-count #x3) + (new 'static 'trail-node :next-id #x300 :z #x3bd :first-conn #x41a :cost-from-start #x139) + (new 'static 'trail-node :x #x3be :z #x3dd :first-conn #x13c :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z #x33d :first-conn #x43a :cost-from-start #x13e) + (new 'static 'trail-node :x #x30a :z #x43b :first-conn #x141 :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z #x30a :first-conn #x455 :cost-from-start #x143) + (new 'static 'trail-node :x #x332 :z #x45d :first-conn #x145 :conn-count #x3) + (new 'static 'trail-node :next-id #x300 :z #x332 :first-conn #x488 :cost-from-start #x148) + (new 'static 'trail-node :x #x3f8 :z #x384 :first-conn #x14a :conn-count #x3) + (new 'static 'trail-node :next-id #x300 :z #x410 :first-conn #x39b :cost-from-start #x14d) + (new 'static 'trail-node :x #x412 :z #x3eb :first-conn #x150 :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z #x427 :first-conn #x3fa :cost-from-start #x152) + (new 'static 'trail-node :x #x452 :z #x3f3 :first-conn #x154 :conn-count #x3) + (new 'static 'trail-node :next-id #x300 :z #x468 :first-conn #x3d2 :cost-from-start #x157) + (new 'static 'trail-node :x #x467 :z #x3ad :first-conn #x15a :conn-count #x3) + (new 'static 'trail-node :next-id #x300 :z #x447 :first-conn #x385 :cost-from-start #x15d) + (new 'static 'trail-node :x #x417 :z #x469 :first-conn #x160 :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z #x468 :first-conn #x425 :cost-from-start #x162) + (new 'static 'trail-node :x #x468 :z #x405 :first-conn #x164 :conn-count #x3) + (new 'static 'trail-node :next-id #x300 :z #x46a :first-conn #x362 :cost-from-start #x167) + (new 'static 'trail-node :x #x46f :z #x331 :first-conn #x16a :conn-count #x1) + (new 'static 'trail-node :next-id #x100 :z #x2f5 :first-conn #x4cc :cost-from-start #x16b) + (new 'static 'trail-node :x #x2e8 :z #x53c :first-conn #x16d :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z #x2d4 :first-conn #x56a :cost-from-start #x16f) + (new 'static 'trail-node :x #x25a :z #x5b8 :first-conn #x171 :conn-count #x3) + (new 'static 'trail-node :next-id #x300 :z #x257 :first-conn #x5e6 :cost-from-start #x174) + (new 'static 'trail-node :x #x26c :z #x796 :first-conn #x177 :conn-count #x1) + (new 'static 'trail-node :next-id #x100 :z #x231 :first-conn #x5b3 :cost-from-start #x178) + (new 'static 'trail-node :x #xda :z #x556 :first-conn #x17d :conn-count #x4) + (new 'static 'trail-node :next-id #x400 :z #xc0 :first-conn #x53c :cost-from-start #x181) + (new 'static 'trail-node :x #xa8 :z #x555 :first-conn #x184 :conn-count #x4) + (new 'static 'trail-node :next-id #x400 :z -62 :first-conn #x53e :cost-from-start #x188) + (new 'static 'trail-node :x -169 :z #x5ad :first-conn #x18a :conn-count #x5) + (new 'static 'trail-node :next-id #x500 :z -224 :first-conn #x5b9 :cost-from-start #x18f) + (new 'static 'trail-node :x -212 :z #x5ec :first-conn #x192 :conn-count #x3) + (new 'static 'trail-node :next-id #x300 :z -230 :first-conn #x794 :cost-from-start #x195) + (new 'static 'trail-node :x -340 :z #x56b :first-conn #x196 :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z -364 :first-conn #x546 :cost-from-start #x198) + (new 'static 'trail-node :x -368 :z #x4e4 :first-conn #x19a :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z #x2c5 :first-conn #xff99 :cost-from-start #x19c) + (new 'static 'trail-node :x #x2cb :z -132 :first-conn #x19e :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z #x2e4 :first-conn #xff68 :cost-from-start #x1a0) + (new 'static 'trail-node :x #x2e2 :z -183 :first-conn #x1a2 :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z #x2ba :first-conn #xfee2 :cost-from-start #x1a4) + (new 'static 'trail-node :x #x2cd :z -268 :first-conn #x1a7 :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z #x2a6 :first-conn #xfef0 :cost-from-start #x1a9) + (new 'static 'trail-node :x #x293 :z -212 :first-conn #x1ac :conn-count #x3) + (new 'static 'trail-node :next-id #x300 :z #x28e :first-conn #xff57 :cost-from-start #x1af) + (new 'static 'trail-node :x #x28f :z -136 :first-conn #x1b2 :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z #x25e :first-conn #xffe7 :cost-from-start #x1b4) + (new 'static 'trail-node :x #x22e :z -13 :first-conn #x1b6 :conn-count #x1) + (new 'static 'trail-node :next-id #x100 :z #x272 :first-conn #xff3f :cost-from-start #x1b7) + (new 'static 'trail-node :x #x248 :z -165 :first-conn #x1bd :conn-count #x5) + (new 'static 'trail-node :next-id #x500 :z #x1f4 :first-conn #xffec :cost-from-start #x1c2) + (new 'static 'trail-node :x #x1d1 :z -20 :first-conn #x1c4 :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z #x18b :first-conn #xffcd :cost-from-start #x1c6) + (new 'static 'trail-node :x #x199 :z -271 :first-conn #x1c8 :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z #x1a9 :first-conn #xff6a :cost-from-start #x1ca) + (new 'static 'trail-node :x #x1bc :z -124 :first-conn #x1cc :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z #x1dd :first-conn #xff7d :cost-from-start #x1ce) + (new 'static 'trail-node :x #x21f :z -208 :first-conn #x1d0 :conn-count #x5) + (new 'static 'trail-node :next-id #x500 :z #x236 :first-conn #xfefa :cost-from-start #x1d5) + (new 'static 'trail-node :x #x25c :z -246 :first-conn #x1da :conn-count #x5) + (new 'static 'trail-node :next-id #x500 :z #x283 :first-conn #xfece :cost-from-start #x1df) + (new 'static 'trail-node :x #x25b :z -335 :first-conn #x1e2 :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z #x237 :first-conn #xfed0 :cost-from-start #x1e4) + (new 'static 'trail-node :x #x296 :z -310 :first-conn #x1e6 :conn-count #x3) + (new 'static 'trail-node :next-id #x300 :z #x2a8 :first-conn #xfed2 :cost-from-start #x1e9) + (new 'static 'trail-node :x #x2a8 :z -336 :first-conn #x1ed :conn-count #x3) + (new 'static 'trail-node :next-id #x300 :z #x2f5 :first-conn #xfea4 :cost-from-start #x1f0) + (new 'static 'trail-node :x #x309 :z -339 :first-conn #x1f2 :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z #x322 :first-conn #xfeab :cost-from-start #x1f4) + (new 'static 'trail-node :x #x270 :z -651 :first-conn #x1f5 :conn-count #x3) + (new 'static 'trail-node :next-id #x300 :z #x257 :first-conn #xfd47 :cost-from-start #x1f8) + (new 'static 'trail-node :x #x19b :z -290 :first-conn #x1fa :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z #x161 :first-conn #xff89 :cost-from-start #x1fc) + (new 'static 'trail-node :x #x11c :z -123 :first-conn #x1fe :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z #x10e :first-conn #xff90 :cost-from-start #x200) + (new 'static 'trail-node :x #x100 :z -90 :first-conn #x202 :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z #xe4 :first-conn #xffb9 :cost-from-start #x204) + (new 'static 'trail-node :x #xb5 :z -95 :first-conn #x207 :conn-count #x4) + (new 'static 'trail-node :next-id #x400 :z #x98 :first-conn #xffc3 :cost-from-start #x20b) + (new 'static 'trail-node :x #x7d :z -61 :first-conn #x20f :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z #xb3 :first-conn #xff73 :cost-from-start #x211) + (new 'static 'trail-node :x #xbc :z -208 :first-conn #x215 :conn-count #x3) + (new 'static 'trail-node :next-id #x300 :z 43 :first-conn #xff71 :cost-from-start #x218) + (new 'static 'trail-node :x 30 :z -128 :first-conn #x21a :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z 16 :first-conn #xffb1 :cost-from-start #x21c) + (new 'static 'trail-node :x 73 :z -240 :first-conn #x21e :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z 47 :first-conn #xfec4 :cost-from-start #x220) + (new 'static 'trail-node :x 22 :z -346 :first-conn #x222 :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z #xf7 :first-conn #xff0e :cost-from-start #x224) + (new 'static 'trail-node :x #x145 :z -261 :first-conn #x227 :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z #x158 :first-conn #xfeed :cost-from-start #x229) + (new 'static 'trail-node :x #x152 :z -374 :first-conn #x22b :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z #xb8 :first-conn #xfe9f :cost-from-start #x22d) + (new 'static 'trail-node :x #x94 :z -162 :first-conn #x22f :conn-count #x4) + (new 'static 'trail-node :next-id #x400 :z #x87 :first-conn #xff2d :cost-from-start #x233) + (new 'static 'trail-node :x #x16a :z -434 :first-conn #x238 :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z #x168 :first-conn #xfe33 :cost-from-start #x23a) + (new 'static 'trail-node :x #x13f :z -476 :first-conn #x23c :conn-count #x6) + (new 'static 'trail-node :next-id #x600 :z #x117 :first-conn #xfe64 :cost-from-start #x242) + (new 'static 'trail-node :x #xc7 :z -407 :first-conn #x244 :conn-count #x6) + (new 'static 'trail-node :next-id #x600 :z #x8e :first-conn #xfe6a :cost-from-start #x24a) + (new 'static 'trail-node :x #x8c :z -485 :first-conn #x24b :conn-count #x5) + (new 'static 'trail-node :next-id #x500 :z #x13f :first-conn #xfd5b :cost-from-start #x250) + (new 'static 'trail-node :x #x111 :z -753 :first-conn #x257 :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z #x157 :first-conn #xfd0f :cost-from-start #x259) + (new 'static 'trail-node :x #x16b :z -706 :first-conn #x25a :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z 46 :first-conn #xfd2a :cost-from-start #x25c) + (new 'static 'trail-node :x 99 :z -706 :first-conn #x25d :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z #x94 :first-conn #xfd6d :cost-from-start #x25f) + (new 'static 'trail-node :x #xaa :z -612 :first-conn #x263 :conn-count #x3) + (new 'static 'trail-node :next-id #x300 :z #xa7 :first-conn #xfde6 :cost-from-start #x266) + (new 'static 'trail-node :x 96 :z -444 :first-conn #x269 :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z 53 :first-conn #xfe56 :cost-from-start #x26b) + (new 'static 'trail-node :x -57 :z -71 :first-conn #x26c :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z -77 :first-conn #xffaa :cost-from-start #x26e) + (new 'static 'trail-node :x -78 :z -117 :first-conn #x270 :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z -55 :first-conn #xff66 :cost-from-start #x272) + (new 'static 'trail-node :x -65 :z -245 :first-conn #x275 :conn-count #x4) + (new 'static 'trail-node :next-id #x400 :z -91 :first-conn #xff41 :cost-from-start #x279) + (new 'static 'trail-node :x -132 :z -192 :first-conn #x27c :conn-count #x4) + (new 'static 'trail-node :next-id #x400 :z -203 :first-conn #xff3a :cost-from-start #x280) + (new 'static 'trail-node :x -160 :z -221 :first-conn #x284 :conn-count #x3) + (new 'static 'trail-node :next-id #x300 :z -161 :first-conn #xfed9 :cost-from-start #x287) + (new 'static 'trail-node :x -170 :z -334 :first-conn #x289 :conn-count #x1) + (new 'static 'trail-node :next-id #x100 :z -151 :first-conn #xfecc :cost-from-start #x28a) + (new 'static 'trail-node :x -102 :z -308 :first-conn #x28c :conn-count #x3) + (new 'static 'trail-node :next-id #x300 :z -57 :first-conn #xfeb6 :cost-from-start #x28f) + (new 'static 'trail-node :x -28 :z -348 :first-conn #x292 :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z -85 :first-conn #xfe8a :cost-from-start #x294) + (new 'static 'trail-node :x -172 :z -376 :first-conn #x295 :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z -27 :first-conn #xff66 :cost-from-start #x297) + (new 'static 'trail-node :x -13 :z -222 :first-conn #x299 :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z -205 :first-conn #xff4f :cost-from-start #x29b) + (new 'static 'trail-node :x -269 :z -221 :first-conn #x29d :conn-count #x3) + (new 'static 'trail-node :next-id #x300 :z -265 :first-conn #xff5c :cost-from-start #x2a0) + (new 'static 'trail-node :x -263 :z -114 :first-conn #x2a4 :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z -167 :first-conn #xff9e :cost-from-start #x2a6) + (new 'static 'trail-node :x -166 :z -53 :first-conn #x2a8 :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z -231 :first-conn #xffe3 :cost-from-start #x2aa) + (new 'static 'trail-node :x -277 :z -275 :first-conn #x2ac :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z -300 :first-conn #xfee2 :cost-from-start #x2ae) + (new 'static 'trail-node :x -332 :z -269 :first-conn #x2b0 :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z -356 :first-conn #x21 :cost-from-start #x2b2) + (new 'static 'trail-node :x -234 :z 8 :first-conn #x2bc :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z -219 :first-conn #x14 :cost-from-start #x2be) + (new 'static 'trail-node :x 18 :z 24 :first-conn #x2c0 :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z 28 :first-conn #x47 :cost-from-start #x2c2) + (new 'static 'trail-node :x 87 :z 17 :first-conn #x2c5 :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z #x128 :first-conn #xf :cost-from-start #x2c7) + (new 'static 'trail-node :x #x163 :z 69 :first-conn #x2c9 :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z #x163 :first-conn #xd4 :cost-from-start #x2cb) + (new 'static 'trail-node :x #x163 :z #x167 :first-conn #x2ce :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z #x12d :first-conn #x164 :cost-from-start #x2d0) + (new 'static 'trail-node :x #x131 :z #xd5 :first-conn #x2d6 :conn-count #x6) + (new 'static 'trail-node :next-id #x600 :z #x129 :first-conn #x46 :cost-from-start #x2dc) + (new 'static 'trail-node :x 87 :z 72 :first-conn #x2e3 :conn-count #x7) + (new 'static 'trail-node :next-id #x700 :z 80 :first-conn #xd1 :cost-from-start #x2ea) + (new 'static 'trail-node :x 84 :z #x163 :first-conn #x2f0 :conn-count #x6) + (new 'static 'trail-node :next-id #x600 :z 28 :first-conn #x161 :cost-from-start #x2f6) + (new 'static 'trail-node :x 29 :z #xd1 :first-conn #x2f8 :conn-count #x3) + (new 'static 'trail-node :next-id #x300 :z #x169 :first-conn #x1b1 :cost-from-start #x2fb) + (new 'static 'trail-node :x #x16c :z #x2cd :first-conn #x2fd :conn-count #x3) + (new 'static 'trail-node :next-id #x300 :z #x167 :first-conn #x301 :cost-from-start #x300) + (new 'static 'trail-node :x 22 :z #x300 :first-conn #x302 :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z 34 :first-conn #x1ab :cost-from-start #x304) + (new 'static 'trail-node :x #xbf :z #x469 :first-conn #x306 :conn-count #x3) + (new 'static 'trail-node :next-id #x300 :z -110 :first-conn #x29f :cost-from-start #x309) + (new 'static 'trail-node :x -126 :z #x254 :first-conn #x30b :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z -129 :first-conn #x1c0 :cost-from-start #x30d) + (new 'static 'trail-node :x -163 :z #x1c1 :first-conn #x30e :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z -237 :first-conn #x1fb :cost-from-start #x310) + (new 'static 'trail-node :x -244 :z #x22f :first-conn #x312 :conn-count #x4) + (new 'static 'trail-node :next-id #x400 :z -168 :first-conn #x252 :cost-from-start #x316) + (new 'static 'trail-node :x -179 :z #x294 :first-conn #x319 :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z -302 :first-conn #x292 :cost-from-start #x31b) + (new 'static 'trail-node :x -304 :z #x268 :first-conn #x31e :conn-count #x3) + (new 'static 'trail-node :next-id #x300 :z -293 :first-conn #x231 :cost-from-start #x321) + (new 'static 'trail-node :x -348 :z #x215 :first-conn #x324 :conn-count #x3) + (new 'static 'trail-node :next-id #x300 :z -349 :first-conn #x1ec :cost-from-start #x327) + (new 'static 'trail-node :x -8 :z #x2ae :first-conn #x329 :conn-count #x3) + (new 'static 'trail-node :next-id #x300 :z -282 :first-conn #x1a3 :cost-from-start #x32c) + (new 'static 'trail-node :x -283 :z #x1e3 :first-conn #x32d :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z -292 :first-conn #x19a :cost-from-start #x32f) + (new 'static 'trail-node :x -238 :z #x2ae :first-conn #x331 :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z -176 :first-conn #x27b :cost-from-start #x333) + (new 'static 'trail-node :x #x190 :z #x2b7 :first-conn #x336 :conn-count #x3) + (new 'static 'trail-node :next-id #x300 :z #x1cb :first-conn #x289 :cost-from-start #x339) + (new 'static 'trail-node :x #x1b9 :z #x240 :first-conn #x33b :conn-count #x3) + (new 'static 'trail-node :next-id #x300 :z #x1a6 :first-conn #x253 :cost-from-start #x33e) + (new 'static 'trail-node :x #x1a9 :z #x236 :first-conn #x341 :conn-count #x3) + (new 'static 'trail-node :next-id #x300 :z #x1a7 :first-conn #x209 :cost-from-start #x344) + (new 'static 'trail-node :x #x209 :z #x206 :first-conn #x346 :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z #x209 :first-conn #x1e9 :cost-from-start #x348) + (new 'static 'trail-node :x #x1e5 :z #x1e3 :first-conn #x34b :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z #x299 :first-conn #x2ce :cost-from-start #x34d) + (new 'static 'trail-node :x #x22d :z #x1bd :first-conn #x34f :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z #x28e :first-conn #x21d :cost-from-start #x351) + (new 'static 'trail-node :x #x267 :z #x1fa :first-conn #x354 :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z #x25d :first-conn #x1bc :cost-from-start #x356) + (new 'static 'trail-node :x #x256 :z #x1b4 :first-conn #x358 :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z #x244 :first-conn #x1b4 :cost-from-start #x35a) + (new 'static 'trail-node :x #x269 :z #x21c :first-conn #x35c :conn-count #x3) + (new 'static 'trail-node :next-id #x300 :z #x209 :first-conn #x1ab :cost-from-start #x35f) + (new 'static 'trail-node :x #x208 :z #x1ce :first-conn #x360 :conn-count #x1) + (new 'static 'trail-node :next-id #x100 :z #x236 :first-conn #x260 :cost-from-start #x361) + (new 'static 'trail-node :x #x216 :z #x256 :first-conn #x364 :conn-count #x3) + (new 'static 'trail-node :next-id #x300 :z #x1fe :first-conn #x241 :cost-from-start #x367) + (new 'static 'trail-node :x #x1d9 :z #x23f :first-conn #x36b :conn-count #x4) + (new 'static 'trail-node :next-id #x400 :z #x2d7 :first-conn #x20b :cost-from-start #x36f) + (new 'static 'trail-node :x #x1e3 :z #x1ae :first-conn #x371 :conn-count #x1) + (new 'static 'trail-node :next-id #x100 :z #x1f7 :first-conn #x20b :cost-from-start #x372) + (new 'static 'trail-node :x #x19c :z #x1ae :first-conn #x376 :conn-count #x1) + (new 'static 'trail-node :next-id #x100 :z #x19b :first-conn #x1d6 :cost-from-start #x377) + (new 'static 'trail-node :x #x19d :z #x1e3 :first-conn #x378 :conn-count #x1) + (new 'static 'trail-node :next-id #x100 :z #x1a4 :first-conn #x2cd :cost-from-start #x379) + (new 'static 'trail-node :x #x1da :z #x208 :first-conn #x37a :conn-count #x4) + (new 'static 'trail-node :next-id #x400 :z #x1cd :first-conn #x2b5 :cost-from-start #x37e) + (new 'static 'trail-node :x #x20c :z #x2b3 :first-conn #x382 :conn-count #x3) + (new 'static 'trail-node :next-id #x300 :z #x210 :first-conn #x2e8 :cost-from-start #x385) + (new 'static 'trail-node :x #x226 :z #x2ee :first-conn #x388 :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z #x270 :first-conn #x2af :cost-from-start #x38a) + (new 'static 'trail-node :x #x1a5 :z #x2e5 :first-conn #x38b :conn-count #x1) + (new 'static 'trail-node :next-id #x100 :z #x2bd :first-conn #x20d :cost-from-start #x38c) + (new 'static 'trail-node :x #x2b7 :z #x1b2 :first-conn #x38e :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z #x20f :first-conn #x295 :cost-from-start #x390) + (new 'static 'trail-node :x #x2c7 :z #x264 :first-conn #x393 :conn-count #x3) + (new 'static 'trail-node :next-id #x300 :z #x2d6 :first-conn #x2e9 :cost-from-start #x396) + (new 'static 'trail-node :x #x2a9 :z #x2d6 :first-conn #x397 :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z #x2a9 :first-conn #x2b7 :cost-from-start #x399) + (new 'static 'trail-node :x #x2d9 :z #x2ad :first-conn #x39b :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z #x2d9 :first-conn #x290 :cost-from-start #x39d) + (new 'static 'trail-node :x #x2d1 :z #x271 :first-conn #x3a0 :conn-count #x3) + (new 'static 'trail-node :next-id #x300 :z #x2cf :first-conn #x289 :cost-from-start #x3a3) + (new 'static 'trail-node :x #x274 :z #x28c :first-conn #x3a6 :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z #x2da :first-conn #x1b0 :cost-from-start #x3a8) + (new 'static 'trail-node :x #x243 :z #x2ea :first-conn #x3aa :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z #x1a5 :first-conn #x279 :cost-from-start #x3ac) + (new 'static 'trail-node :x #x3bf :z #x291 :first-conn #x3ae :conn-count #x3) + (new 'static 'trail-node :next-id #x300 :z #x3c1 :first-conn #x307 :cost-from-start #x3b1) + (new 'static 'trail-node :x #x3d2 :z #x335 :first-conn #x3b3 :conn-count #x1) + (new 'static 'trail-node :next-id #x100 :z #x3af :first-conn #x336 :cost-from-start #x3b4) + (new 'static 'trail-node :x #x432 :z #x1ff :first-conn #x3b5 :conn-count #x1) + (new 'static 'trail-node :next-id #x100 :z #xc0 :first-conn #x4ab :cost-from-start #x3b6) + (new 'static 'trail-node :x #xc0 :z #x49c :first-conn #x3b8 :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z #x449 :first-conn #x17d :cost-from-start #x3ba) + (new 'static 'trail-node :x #x44b :z #x18b :first-conn #x3bc :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z #x2f6 :first-conn #xe2 :cost-from-start #x3be) + (new 'static 'trail-node :x #x428 :z #x385 :first-conn #x3c0 :conn-count #x3) + (new 'static 'trail-node :next-id #x300 :z -369 :first-conn #x4cf :cost-from-start #x3c3) + (new 'static 'trail-node :x -370 :z #x4ba :first-conn #x3c5 :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z #x1a7 :first-conn #x52c :cost-from-start #x3c7) + (new 'static 'trail-node :x #xc1 :z #x17e :first-conn #x3c9 :conn-count #x3) + (new 'static 'trail-node :next-id #x300 :z -304 :first-conn #xfea5 :cost-from-start #x3cc) + (new 'static 'trail-node :x -350 :z -328 :first-conn #x3ce :conn-count #x1) + (new 'static 'trail-node :next-id #x100 :z -204 :first-conn #xff71 :cost-from-start #x3cf) + (new 'static 'trail-node :x -205 :z -161 :first-conn #x3d0 :conn-count #x1) + (new 'static 'trail-node :next-id #x100 :z 82 :first-conn #xffd3 :cost-from-start #x3d1) + (new 'static 'trail-node :x -57 :z -121 :first-conn #x3d3 :conn-count #x1) + (new 'static 'trail-node :next-id #x100 :z -30 :first-conn #xff0a :cost-from-start #x3d4) + (new 'static 'trail-node :x -247 :z -326 :first-conn #x3d5 :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z -241 :first-conn #xfeec :cost-from-start #x3d7) + (new 'static 'trail-node :x 88 :z -209 :first-conn #x3d8 :conn-count #x3) + (new 'static 'trail-node :next-id #x300 :z 75 :first-conn #xff73 :cost-from-start #x3db) + (new 'static 'trail-node :x 90 :z -160 :first-conn #x3e0 :conn-count #x5) + (new 'static 'trail-node :next-id #x500 :z 31 :first-conn #xfe8b :cost-from-start #x3e5) + (new 'static 'trail-node :x #x87 :z -153 :first-conn #x3e6 :conn-count #x7) + (new 'static 'trail-node :next-id #x700 :z #xb8 :first-conn #xff5b :cost-from-start #x3ed) + (new 'static 'trail-node :x #x83 :z -112 :first-conn #x3f0 :conn-count #x5) + (new 'static 'trail-node :next-id #x500 :z #x66 :first-conn #xffa0 :cost-from-start #x3f5) + (new 'static 'trail-node :x #xb5 :z -113 :first-conn #x3fa :conn-count #x3) + (new 'static 'trail-node :next-id #x300 :z #xbc :first-conn #xfd26 :cost-from-start #x3fd) + (new 'static 'trail-node :x #x90 :z -742 :first-conn #x403 :conn-count #x1) + (new 'static 'trail-node :next-id #x100 :z #x14c :first-conn #xfdf3 :cost-from-start #x404) + (new 'static 'trail-node :x #x160 :z -528 :first-conn #x405 :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z #x161 :first-conn #xfd95 :cost-from-start #x407) + (new 'static 'trail-node :x #x14a :z -625 :first-conn #x409 :conn-count #x1) + (new 'static 'trail-node :next-id #x100 :z #x17f :first-conn #xffce :cost-from-start #x40a) + (new 'static 'trail-node :x #xa8 :z -101 :first-conn #x40c :conn-count #x4) + (new 'static 'trail-node :next-id #x400 :z #x1b1 :first-conn #xffbe :cost-from-start #x410) + (new 'static 'trail-node :x #x1c9 :z -54 :first-conn #x411 :conn-count #x1) + (new 'static 'trail-node :next-id #x100 :z #x178 :first-conn #xffef :cost-from-start #x412) + (new 'static 'trail-node :x #x178 :z -74 :first-conn #x413 :conn-count #x1) + (new 'static 'trail-node :next-id #x100 :z #x190 :first-conn #xffb8 :cost-from-start #x414) + (new 'static 'trail-node :x #x190 :z -18 :first-conn #x415 :conn-count #x1) + (new 'static 'trail-node :next-id #x100 :z #x2e7 :first-conn #xfe98 :cost-from-start #x416) + (new 'static 'trail-node :x #x27e :z -65 :first-conn #x418 :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z #x22d :first-conn #xffa7 :cost-from-start #x41a) + (new 'static 'trail-node :x #x248 :z -105 :first-conn #x41b :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z #x256 :first-conn #xff78 :cost-from-start #x41d) + (new 'static 'trail-node :x #x229 :z -650 :first-conn #x41e :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z #x1f9 :first-conn #xfd67 :cost-from-start #x420) + (new 'static 'trail-node :x #x1e2 :z -768 :first-conn #x422 :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z #x22e :first-conn #xfcfc :cost-from-start #x424) + (new 'static 'trail-node :x #x268 :z -616 :first-conn #x426 :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z #x219 :first-conn #xfdc8 :cost-from-start #x428) + (new 'static 'trail-node :x #x1d0 :z -602 :first-conn #x429 :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z #x194 :first-conn #xfdab :cost-from-start #x42b) + (new 'static 'trail-node :x #x18f :z -563 :first-conn #x42d :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z #x191 :first-conn #xfe0b :cost-from-start #x42f) + (new 'static 'trail-node :x #x189 :z -435 :first-conn #x431 :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z #x193 :first-conn #xfec8 :cost-from-start #x433) + (new 'static 'trail-node :x #x192 :z -379 :first-conn #x434 :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z #x22e :first-conn #xfce6 :cost-from-start #x436) + (new 'static 'trail-node :x #x248 :z -695 :first-conn #x437 :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z #x21d :first-conn #xfcfc :cost-from-start #x439) + (new 'static 'trail-node :x #x312 :z -430 :first-conn #x43b :conn-count #x1) + (new 'static 'trail-node :next-id #x100 :z #x2c3 :first-conn #xfe5e :cost-from-start #x43c) + (new 'static 'trail-node :x #x298 :z -433 :first-conn #x43e :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z #x27c :first-conn #xfe27 :cost-from-start #x440) + (new 'static 'trail-node :x #x25f :z -471 :first-conn #x442 :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z #x1cb :first-conn #xfe42 :cost-from-start #x444) + (new 'static 'trail-node :x #x205 :z -386 :first-conn #x446 :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z #x1dd :first-conn #xfeed :cost-from-start #x448) + (new 'static 'trail-node :x #x1b5 :z -298 :first-conn #x44a :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z #x1a8 :first-conn #xfeda :cost-from-start #x44c) + (new 'static 'trail-node :x #x2c2 :z -472 :first-conn #x44d :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z #x248 :first-conn #xfdc7 :cost-from-start #x44f) + (new 'static 'trail-node :x #x43f :z #x17f :first-conn #x452 :conn-count #x1) + (new 'static 'trail-node :next-id #x100 :z #x453 :first-conn #x17c :cost-from-start #x453) + (new 'static 'trail-node :x #x442 :z #x18d :first-conn #x454 :conn-count #x1) + (new 'static 'trail-node :next-id #x100 :z #x456 :first-conn #x18a :cost-from-start #x455) + (new 'static 'trail-node :x #x468 :z #x2a0 :first-conn #x456 :conn-count #x1) + (new 'static 'trail-node :next-id #x100 :z #x42f :first-conn #x2a2 :cost-from-start #x457) + (new 'static 'trail-node :x -108 :z #x88 :first-conn #x458 :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z -81 :first-conn #xb8 :cost-from-start #x45a) + (new 'static 'trail-node :x -270 :z #x120 :first-conn #x45c :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z -180 :first-conn #xf7 :cost-from-start #x45e) + (new 'static 'trail-node :x -418 :z #xcf :first-conn #x461 :conn-count #x1) + (new 'static 'trail-node :next-id #x100 :z -267 :first-conn #x152 :cost-from-start #x462) + (new 'static 'trail-node :x -356 :z #x19e :first-conn #x464 :conn-count #x1) + (new 'static 'trail-node :next-id #x100 :z -303 :first-conn #x172 :cost-from-start #x465) + (new 'static 'trail-node :x -352 :z #x161 :first-conn #x466 :conn-count #x1) + (new 'static 'trail-node :next-id #x100 :z -182 :first-conn #x136 :cost-from-start #x467) + (new 'static 'trail-node :x -125 :z #x16e :first-conn #x46a :conn-count #x1) + (new 'static 'trail-node :next-id #x100 :z -76 :first-conn #x16d :cost-from-start #x46b) + (new 'static 'trail-node :x -129 :z #x12f :first-conn #x46d :conn-count #x1) + (new 'static 'trail-node :next-id #x100 :z -40 :first-conn #x14f :cost-from-start #x46e) + (new 'static 'trail-node :x -28 :z #xbb :first-conn #x470 :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z -37 :first-conn #x77 :cost-from-start #x472) + (new 'static 'trail-node :x -101 :z 56 :first-conn #x474 :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z -299 :first-conn #x36 :cost-from-start #x476) + (new 'static 'trail-node :x -399 :z #x7a :first-conn #x477 :conn-count #x1) + (new 'static 'trail-node :next-id #x100 :z -149 :first-conn #x86 :cost-from-start #x478) + (new 'static 'trail-node :x -320 :z 84 :first-conn #x479 :conn-count #x1) + (new 'static 'trail-node :next-id #x100 :z -124 :first-conn #xc3 :cost-from-start #x47a) + (new 'static 'trail-node :x -142 :z #xa7 :first-conn #x47c :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z -403 :first-conn #xa3 :cost-from-start #x47e) + (new 'static 'trail-node :x -401 :z #xe6 :first-conn #x47f :conn-count #x1) + (new 'static 'trail-node :next-id #x100 :z -247 :first-conn #xfb :cost-from-start #x480) + (new 'static 'trail-node :x -210 :z #x11a :first-conn #x481 :conn-count #x1) + (new 'static 'trail-node :next-id #x100 :z -82 :first-conn #x147 :cost-from-start #x482) + (new 'static 'trail-node :x -126 :z #x151 :first-conn #x484 :conn-count #x3) + (new 'static 'trail-node :next-id #x300 :z -104 :first-conn #x157 :cost-from-start #x487) + (new 'static 'trail-node :x -334 :z 62 :first-conn #x489 :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z -327 :first-conn #x1e5 :cost-from-start #x48b) + (new 'static 'trail-node :x -311 :z #x19c :first-conn #x48c :conn-count #x1) + (new 'static 'trail-node :next-id #x100 :z -323 :first-conn #x489 :cost-from-start #x48d) + (new 'static 'trail-node :x -372 :z #x264 :first-conn #x48f :conn-count #x1) + (new 'static 'trail-node :next-id #x100 :z -327 :first-conn #x264 :cost-from-start #x490) + (new 'static 'trail-node :x -276 :z #x2b0 :first-conn #x491 :conn-count #x3) + (new 'static 'trail-node :next-id #x300 :z -286 :first-conn #x2ee :cost-from-start #x494) + (new 'static 'trail-node :x -323 :z #x299 :first-conn #x497 :conn-count #x1) + (new 'static 'trail-node :next-id #x100 :z -362 :first-conn #x299 :cost-from-start #x498) + (new 'static 'trail-node :x -361 :z #x2e5 :first-conn #x499 :conn-count #x1) + (new 'static 'trail-node :next-id #x100 :z -307 :first-conn #x2e6 :cost-from-start #x49a) + (new 'static 'trail-node :x -245 :z #x243 :first-conn #x49b :conn-count #x1) + (new 'static 'trail-node :next-id #x100 :z -246 :first-conn #x275 :cost-from-start #x49c) + (new 'static 'trail-node :x -196 :z #x275 :first-conn #x49e :conn-count #x1) + (new 'static 'trail-node :next-id #x100 :z -170 :first-conn #x23f :cost-from-start #x49f) + (new 'static 'trail-node :x -170 :z #x227 :first-conn #x4a0 :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z -221 :first-conn #x228 :cost-from-start #x4a2) + (new 'static 'trail-node :x -212 :z #x1f7 :first-conn #x4a3 :conn-count #x1) + (new 'static 'trail-node :next-id #x100 :z -175 :first-conn #x1f7 :cost-from-start #x4a4) + (new 'static 'trail-node :x -172 :z #x1d7 :first-conn #x4a6 :conn-count #x1) + (new 'static 'trail-node :next-id #x100 :z -244 :first-conn #x1e3 :cost-from-start #x4a7) + (new 'static 'trail-node :x -243 :z #x1ad :first-conn #x4a8 :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z -173 :first-conn #x1ac :cost-from-start #x4aa) + (new 'static 'trail-node :x -126 :z #x1af :first-conn #x4ab :conn-count #x1) + (new 'static 'trail-node :next-id #x100 :z -119 :first-conn #x19e :cost-from-start #x4ac) + (new 'static 'trail-node :x -52 :z #x1a0 :first-conn #x4ae :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z -51 :first-conn #x1e8 :cost-from-start #x4b0) + (new 'static 'trail-node :x -118 :z #x1e7 :first-conn #x4b2 :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z -121 :first-conn #x1d1 :cost-from-start #x4b4) + (new 'static 'trail-node :x -112 :z #x263 :first-conn #x4b5 :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z -117 :first-conn #x238 :cost-from-start #x4b7) + (new 'static 'trail-node :x -117 :z #x21a :first-conn #x4b8 :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z -44 :first-conn #x21b :cost-from-start #x4ba) + (new 'static 'trail-node :x -44 :z #x265 :first-conn #x4bc :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z -90 :first-conn #x265 :cost-from-start #x4be) + (new 'static 'trail-node :x 20 :z #x1dd :first-conn #x4bf :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z 27 :first-conn #x201 :cost-from-start #x4c1) + (new 'static 'trail-node :x 27 :z #x297 :first-conn #x4c3 :conn-count #x3) + (new 'static 'trail-node :next-id #x300 :z 19 :first-conn #x1ba :cost-from-start #x4c6) + (new 'static 'trail-node :x 18 :z #x2d1 :first-conn #x4c8 :conn-count #x3) + (new 'static 'trail-node :next-id #x300 :z -119 :first-conn #x2a1 :cost-from-start #x4cb) + (new 'static 'trail-node :x -119 :z #x2e7 :first-conn #x4cc :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z -42 :first-conn #x2e5 :cost-from-start #x4ce) + (new 'static 'trail-node :x -41 :z #x2cc :first-conn #x4d0 :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z -14 :first-conn #x2c8 :cost-from-start #x4d2) + (new 'static 'trail-node :x -152 :z #x29a :first-conn #x4d3 :conn-count #x1) + (new 'static 'trail-node :next-id #x100 :z -152 :first-conn #x2e5 :cost-from-start #x4d4) + (new 'static 'trail-node :x -227 :z #x2e6 :first-conn #x4d6 :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z -228 :first-conn #x2c2 :cost-from-start #x4d8) + (new 'static 'trail-node :x -203 :z #x298 :first-conn #x4d9 :conn-count #x1) + (new 'static 'trail-node :next-id #x100 :z -232 :first-conn #x298 :cost-from-start #x4da) + (new 'static 'trail-node :x -233 :z #x2a1 :first-conn #x4dc :conn-count #x1) + (new 'static 'trail-node :next-id #x100 :z #xa2 :first-conn #x30e :cost-from-start #x4dd) + (new 'static 'trail-node :x #x9d :z #x368 :first-conn #x4e1 :conn-count #x4) + (new 'static 'trail-node :next-id #x400 :z #xd8 :first-conn #x30f :cost-from-start #x4e5) + (new 'static 'trail-node :x #xda :z #x369 :first-conn #x4e9 :conn-count #x4) + (new 'static 'trail-node :next-id #x400 :z #x6c :first-conn #x389 :cost-from-start #x4ed) + (new 'static 'trail-node :x #x66 :z #x425 :first-conn #x4ef :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z #x87 :first-conn #x440 :cost-from-start #x4f1) + (new 'static 'trail-node :x #x11a :z #x38a :first-conn #x4f4 :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z #x116 :first-conn #x42f :cost-from-start #x4f6) + (new 'static 'trail-node :x #xe8 :z #x43b :first-conn #x4f8 :conn-count #x3) + (new 'static 'trail-node :next-id #x300 :z #xa4 :first-conn #x1a9 :cost-from-start #x4fb) + (new 'static 'trail-node :x #xdb :z #x1a9 :first-conn #x4fe :conn-count #x3) + (new 'static 'trail-node :next-id #x300 :z -286 :first-conn #x302 :cost-from-start #x501) + (new 'static 'trail-node :x -224 :z #x31d :first-conn #x503 :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z -188 :first-conn #x31e :cost-from-start #x505) + (new 'static 'trail-node :x -131 :z #x355 :first-conn #x507 :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z -308 :first-conn #x30a :cost-from-start #x509) + (new 'static 'trail-node :x -310 :z #x354 :first-conn #x50a :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z -234 :first-conn #x353 :cost-from-start #x50c) + (new 'static 'trail-node :x -233 :z #x331 :first-conn #x50e :conn-count #x1) + (new 'static 'trail-node :next-id #x100 :z -182 :first-conn #x30b :cost-from-start #x50f) + (new 'static 'trail-node :x -106 :z #x30b :first-conn #x510 :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z -107 :first-conn #x357 :cost-from-start #x512) + (new 'static 'trail-node :x -151 :z #x357 :first-conn #x513 :conn-count #x1) + (new 'static 'trail-node :next-id #x100 :z -183 :first-conn #x357 :cost-from-start #x514) + (new 'static 'trail-node :x -183 :z #x336 :first-conn #x516 :conn-count #x1) + (new 'static 'trail-node :next-id #x100 :z -126 :first-conn #x378 :cost-from-start #x517) + (new 'static 'trail-node :x -71 :z #x428 :first-conn #x519 :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z -77 :first-conn #x451 :cost-from-start #x51b) + (new 'static 'trail-node :x -232 :z #x461 :first-conn #x51d :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z -254 :first-conn #x3e1 :cost-from-start #x51f) + (new 'static 'trail-node :x -372 :z #x3ea :first-conn #x521 :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z -382 :first-conn #x401 :cost-from-start #x523) + (new 'static 'trail-node :x -299 :z #x49d :first-conn #x525 :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z -124 :first-conn #x42b :cost-from-start #x527) + (new 'static 'trail-node :x -86 :z #x42b :first-conn #x529 :conn-count #x1) + (new 'static 'trail-node :next-id #x100 :z -62 :first-conn #x430 :cost-from-start #x52a) + (new 'static 'trail-node :x -111 :z #x37d :first-conn #x52c :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z -16 :first-conn #x391 :cost-from-start #x52e) + (new 'static 'trail-node :x -15 :z #x3ea :first-conn #x530 :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z -59 :first-conn #x438 :cost-from-start #x532) + (new 'static 'trail-node :x -17 :z #x449 :first-conn #x534 :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z -15 :first-conn #x3f8 :cost-from-start #x536) + (new 'static 'trail-node :x -218 :z #x46b :first-conn #x538 :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z -102 :first-conn #x45f :cost-from-start #x53a) + (new 'static 'trail-node :x -141 :z #x49d :first-conn #x53c :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z -57 :first-conn #x454 :cost-from-start #x53e) + (new 'static 'trail-node :x -31 :z #x498 :first-conn #x540 :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z -11 :first-conn #x471 :cost-from-start #x542) + (new 'static 'trail-node :x -17 :z #x452 :first-conn #x544 :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z -71 :first-conn #x45a :cost-from-start #x546) + (new 'static 'trail-node :x -87 :z #x45c :first-conn #x548 :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z -130 :first-conn #x4a1 :cost-from-start #x54a) + (new 'static 'trail-node :x -49 :z #x4a0 :first-conn #x54c :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z -55 :first-conn #x449 :cost-from-start #x54e) + (new 'static 'trail-node :x -256 :z #x463 :first-conn #x550 :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z -245 :first-conn #x3f9 :cost-from-start #x552) + (new 'static 'trail-node :x -238 :z #x475 :first-conn #x554 :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z -252 :first-conn #x467 :cost-from-start #x556) + (new 'static 'trail-node :x -293 :z #x4a4 :first-conn #x558 :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z -225 :first-conn #x4a2 :cost-from-start #x55a) + (new 'static 'trail-node :x -226 :z #x437 :first-conn #x55c :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z -225 :first-conn #x3ed :cost-from-start #x55e) + (new 'static 'trail-node :x -173 :z #x3d9 :first-conn #x560 :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z -371 :first-conn #x391 :cost-from-start #x562) + (new 'static 'trail-node :x -258 :z #x392 :first-conn #x564 :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z -254 :first-conn #x3d1 :cost-from-start #x566) + (new 'static 'trail-node :x -173 :z #x3be :first-conn #x568 :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z -171 :first-conn #x393 :cost-from-start #x56a) + (new 'static 'trail-node :x -239 :z #x392 :first-conn #x56c :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z -245 :first-conn #x44c :cost-from-start #x56e) + (new 'static 'trail-node :x -439 :z #x395 :first-conn #x570 :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z -383 :first-conn #x393 :cost-from-start #x572) + (new 'static 'trail-node :x -379 :z #x3d6 :first-conn #x574 :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z -235 :first-conn #x3d6 :cost-from-start #x576) + (new 'static 'trail-node :x -199 :z #x4a0 :first-conn #x578 :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z -65 :first-conn #x43d :cost-from-start #x57a) + (new 'static 'trail-node :x -140 :z #x380 :first-conn #x57c :conn-count #x1) + (new 'static 'trail-node :next-id #x100 :z -145 :first-conn #x409 :cost-from-start #x57d) + (new 'static 'trail-node :x -190 :z #x430 :first-conn #x57f :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z -175 :first-conn #x412 :cost-from-start #x581) + (new 'static 'trail-node :x -370 :z #x4a3 :first-conn #x583 :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z #xda :first-conn #x156 :cost-from-start #x585) + (new 'static 'trail-node :x #xa7 :z #x157 :first-conn #x589 :conn-count #x4) + (new 'static 'trail-node :next-id #x400 :z #xf3 :first-conn #x116 :cost-from-start #x58d) + (new 'static 'trail-node :x #x8c :z #x116 :first-conn #x594 :conn-count #x7) + (new 'static 'trail-node :next-id #x700 :z #xed :first-conn #x80 :cost-from-start #x59b) + (new 'static 'trail-node :x #x92 :z #x80 :first-conn #x5a0 :conn-count #x5) + (new 'static 'trail-node :next-id #x500 :z #xbf :first-conn #x6f :cost-from-start #x5a5) + (new 'static 'trail-node :x #xc1 :z #x130 :first-conn #x5a9 :conn-count #x4) + (new 'static 'trail-node :next-id #x400 :z #x9b :first-conn #x141 :cost-from-start #x5ad) + (new 'static 'trail-node :x #xe4 :z #x140 :first-conn #x5b1 :conn-count #x4) + (new 'static 'trail-node :next-id #x400 :z #x10f :first-conn #xf9 :cost-from-start #x5b5) + (new 'static 'trail-node :x #x71 :z #xf8 :first-conn #x5ba :conn-count #x5) + (new 'static 'trail-node :next-id #x500 :z #x107 :first-conn #xb6 :cost-from-start #x5bf) + (new 'static 'trail-node :x #x77 :z #xb6 :first-conn #x5c4 :conn-count #x5) + (new 'static 'trail-node :next-id #x500 :z #xf0 :first-conn #xc8 :cost-from-start #x5c9) + (new 'static 'trail-node :x #x8f :z #xc7 :first-conn #x5cf :conn-count #x6) + (new 'static 'trail-node :next-id #x600 :z #x79 :first-conn #xcb :cost-from-start #x5d5) + (new 'static 'trail-node :x #x7f :z #xe1 :first-conn #x5da :conn-count #x4) + (new 'static 'trail-node :next-id #x400 :z #x105 :first-conn #xcc :cost-from-start #x5de) + (new 'static 'trail-node :x #x100 :z #xe1 :first-conn #x5e3 :conn-count #x4) + (new 'static 'trail-node :next-id #x400 :z #x36f :first-conn #x309 :cost-from-start #x5e7) + (new 'static 'trail-node :x -325 :z 83 :first-conn #x5ea :conn-count #x1) + (new 'static 'trail-node :next-id #x100 :z -339 :first-conn #x4e :cost-from-start #x5eb) + (new 'static 'trail-node :x -337 :z 82 :first-conn #x5ec :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z -337 :first-conn #x47 :cost-from-start #x5ee) + (new 'static 'trail-node :x -347 :z 72 :first-conn #x5f0 :conn-count #x1) + (new 'static 'trail-node :next-id #x100 :z -339 :first-conn #x55 :cost-from-start #x5f1) + (new 'static 'trail-node :x -338 :z 82 :first-conn #x5f2 :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z -349 :first-conn #x59 :cost-from-start #x5f4) + (new 'static 'trail-node :x -337 :z 90 :first-conn #x5f6 :conn-count #x1) + (new 'static 'trail-node :next-id #x100 :z -333 :first-conn #x53 :cost-from-start #x5f7) + (new 'static 'trail-node :x -338 :z 80 :first-conn #x5f8 :conn-count #x1) + (new 'static 'trail-node :next-id #x100 :z -325 :first-conn #x123 :cost-from-start #x5f9) + (new 'static 'trail-node :x -282 :z #x176 :first-conn #x5fa :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z -314 :first-conn #x40b :cost-from-start #x5fc) + (new 'static 'trail-node :x -265 :z #x407 :first-conn #x5fe :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z -371 :first-conn #x3d5 :cost-from-start #x600) + (new 'static 'trail-node :x -351 :z #x42c :first-conn #x602 :conn-count #x1) + (new 'static 'trail-node :next-id #x100 :z -350 :first-conn #x4aa :cost-from-start #x603) + (new 'static 'trail-node :x #x169 :z #x29d :first-conn #x604 :conn-count #x3) + (new 'static 'trail-node :next-id #x300 :z #x286 :first-conn #x25e :cost-from-start #x607) + (new 'static 'trail-node :x #x299 :z #x2f6 :first-conn #x60a :conn-count #x1) + (new 'static 'trail-node :next-id #x100 :z #x270 :first-conn #x2f5 :cost-from-start #x60b) + (new 'static 'trail-node :x #x297 :z #x1b4 :first-conn #x60c :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z #x28e :first-conn #x23f :cost-from-start #x60e) + (new 'static 'trail-node :x #x1e4 :z #x1d8 :first-conn #x612 :conn-count #x1) + (new 'static 'trail-node :next-id #x100 :z #x2d7 :first-conn #x1c5 :cost-from-start #x613) + (new 'static 'trail-node :x #x2bc :z #x1c7 :first-conn #x614 :conn-count #x1) + (new 'static 'trail-node :next-id #x100 :z #x29a :first-conn #x2ba :cost-from-start #x615) + (new 'static 'trail-node :x #xc0 :z #x192 :first-conn #x616 :conn-count #x3) + (new 'static 'trail-node :next-id #x300 :z -354 :first-conn #xffed :cost-from-start #x619) + (new 'static 'trail-node :x -354 :z 1 :first-conn #x61b :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z #x9b :first-conn #xfea0 :cost-from-start #x61d) + (new 'static 'trail-node :x #x93 :z -270 :first-conn #x61f :conn-count #x1) + (new 'static 'trail-node :next-id #x100 :z #xc3 :first-conn #xfed5 :cost-from-start #x620) + (new 'static 'trail-node :x 72 :z -370 :first-conn #x621 :conn-count #x1) + (new 'static 'trail-node :next-id #x100 :z #x163 :first-conn #xfe9d :cost-from-start #x622) + (new 'static 'trail-node :x #x174 :z -329 :first-conn #x623 :conn-count #x2) + (new 'static 'trail-node :next-id #x200 :z #x173 :first-conn #xfeef :cost-from-start #x625) + (new 'static 'trail-node :x #x171 :z -236 :first-conn #x627 :conn-count #x1) + (new 'static 'trail-node :next-id #x100 :z 35 :first-conn #xfee0 :cost-from-start #x628) + (new 'static 'trail-node :x 37 :z -232 :first-conn #x629 :conn-count #x1) + (new 'static 'trail-node :next-id #x100 :z -69 :first-conn #xffe0 :cost-from-start #x62a) + (new 'static 'trail-node :x 28 :z -36 :first-conn #x62b :conn-count #x1) + (new 'static 'trail-node :next-id #x100 :z #x70 :first-conn #xffd2 :cost-from-start #x62c) + (new 'static 'trail-node :x 82 :z -74 :first-conn #x62d :conn-count #x1) + ) + :conn (new 'static 'inline-array trail-conn 792 + (new 'static 'trail-conn :tail-id #x1 :cost #x1e9) + (new 'static 'trail-conn :head-id #x1 :tail-id #x2 :cost #x89) + (new 'static 'trail-conn :head-id #x2 :tail-id #x3 :cost #x8c) + (new 'static 'trail-conn :head-id #x3 :tail-id #x4 :cost #xac) + (new 'static 'trail-conn :head-id #x4 :tail-id #x5 :visgroup-id #x1 :cost #x32a) + (new 'static 'trail-conn :head-id #x4 :tail-id #xa :visgroup-id #x1 :cost #x312) + (new 'static 'trail-conn :head-id #x5 :tail-id #x6 :visgroup-id #x2 :cost #xea) + (new 'static 'trail-conn :head-id #x5 :tail-id #x7 :visgroup-id #x2 :cost #x209) + (new 'static 'trail-conn :head-id #x5 :tail-id #x8 :visgroup-id #x2 :cost #x1ef) + (new 'static 'trail-conn :head-id #x6 :tail-id #x7 :visgroup-id #x2 :cost #x169) + (new 'static 'trail-conn :head-id #x6 :tail-id #x8 :visgroup-id #x2 :cost #x184) + (new 'static 'trail-conn :head-id #x6 :tail-id #x2c :cost #x194) + (new 'static 'trail-conn :head-id #x7 :tail-id #x8 :visgroup-id #x2 :cost #x79) + (new 'static 'trail-conn :head-id #x8 :tail-id #xc :cost #xd1) + (new 'static 'trail-conn :head-id #x9 :tail-id #xa :cost #x139) + (new 'static 'trail-conn :head-id #x9 :tail-id #xd :visgroup-id #x3 :cost #x94) + (new 'static 'trail-conn :head-id #xa :tail-id #xb :visgroup-id #x1 :cost #xd4) + (new 'static 'trail-conn :head-id #x5 :tail-id #xb :visgroup-id #x1 :cost #x9c) + (new 'static 'trail-conn :head-id #x9 :tail-id #xc :visgroup-id #x3 :cost #xc2) + (new 'static 'trail-conn :head-id #xc :tail-id #xd :visgroup-id #x3 :cost #x112) + (new 'static 'trail-conn :head-id #xd :tail-id #xe :visgroup-id #x4 :cost #x1bc) + (new 'static 'trail-conn :head-id #xe :tail-id #x11 :cost #x149) + (new 'static 'trail-conn :head-id #xe :tail-id #xf :visgroup-id #x4 :cost #x1a1) + (new 'static 'trail-conn :head-id #xd :tail-id #xf :visgroup-id #x4 :cost #x122) + (new 'static 'trail-conn :head-id #xf :tail-id #x10 :cost #x109) + (new 'static 'trail-conn :head-id #x11 :tail-id #x12 :cost #x96) + (new 'static 'trail-conn :head-id #x12 :tail-id #x13 :visgroup-id #x5 :cost #x248) + (new 'static 'trail-conn :head-id #x12 :tail-id #x14 :visgroup-id #x5 :cost #x2be) + (new 'static 'trail-conn :head-id #x13 :tail-id #x14 :visgroup-id #x5 :cost #x1c7) + (new 'static 'trail-conn :head-id #x14 :tail-id #x15 :cost #x1b8) + (new 'static 'trail-conn :head-id #x15 :tail-id #x16 :cost #x2d9) + (new 'static 'trail-conn :head-id #x16 :tail-id #x17 :cost #xde) + (new 'static 'trail-conn :head-id #x16 :tail-id #x1e :cost #xec) + (new 'static 'trail-conn :head-id #x17 :tail-id #x18 :cost #xe9) + (new 'static 'trail-conn :head-id #x17 :tail-id #x1e :cost #xe2) + (new 'static 'trail-conn :head-id #x18 :tail-id #x19 :cost #x272) + (new 'static 'trail-conn :head-id #x19 :tail-id #x1a :cost #x9f) + (new 'static 'trail-conn :head-id #x1a :tail-id #x1b :visgroup-id #x6 :cost #x10a) + (new 'static 'trail-conn :head-id #x1b :tail-id #x1c :visgroup-id #x6 :cost #x1c0) + (new 'static 'trail-conn :head-id #x1b :tail-id #x24 :cost #x94) + (new 'static 'trail-conn :head-id #x1b :tail-id #x25 :cost #x105) + (new 'static 'trail-conn :head-id #x1c :tail-id #x1d :cost #xfa) + (new 'static 'trail-conn :head-id #x1a :tail-id #x1c :visgroup-id #x6 :cost #x216) + (new 'static 'trail-conn :head-id #x8 :tail-id #x1d :cost #x116) + (new 'static 'trail-conn :head-id #x9 :tail-id #x1d :visgroup-id #x3 :cost #x15f) + (new 'static 'trail-conn :head-id #xc :tail-id #x1d :visgroup-id #x7 :cost #xd2) + (new 'static 'trail-conn :head-id #xd :tail-id #x1d :visgroup-id #x3 :cost #x159) + (new 'static 'trail-conn :head-id #x1e :tail-id #x1f :cost #xdb) + (new 'static 'trail-conn :head-id #x1f :tail-id #x20 :cost #x125) + (new 'static 'trail-conn :head-id #x1f :tail-id #x27 :cost #x169) + (new 'static 'trail-conn :head-id #x20 :tail-id #x21 :cost #x185) + (new 'static 'trail-conn :head-id #x20 :tail-id #x27 :cost #x121) + (new 'static 'trail-conn :head-id #x21 :tail-id #x22 :visgroup-id #x8 :cost #x212) + (new 'static 'trail-conn :head-id #x22 :tail-id #x23 :cost #x12c) + (new 'static 'trail-conn :head-id #x23 :tail-id #x24 :cost #x124) + (new 'static 'trail-conn :head-id #x25 :tail-id #x26 :visgroup-id #x9 :cost #xd4) + (new 'static 'trail-conn :head-id #x25 :tail-id #x2c :visgroup-id #x9 :cost #x21b) + (new 'static 'trail-conn :head-id #x25 :tail-id #x2d :visgroup-id #x9 :cost #x277) + (new 'static 'trail-conn :head-id #x24 :tail-id #x25 :cost #xf4) + (new 'static 'trail-conn :head-id #x7 :tail-id #x26 :cost #x104) + (new 'static 'trail-conn :head-id #x26 :tail-id #x2c :visgroup-id #x9 :cost #x175) + (new 'static 'trail-conn :head-id #x26 :tail-id #x2d :visgroup-id #x9 :cost #x23b) + (new 'static 'trail-conn :head-id #x27 :tail-id #x28 :cost #x123) + (new 'static 'trail-conn :head-id #x28 :tail-id #x2b :visgroup-id #xa :cost #x466) + (new 'static 'trail-conn :head-id #x29 :tail-id #x2a :cost #x11e) + (new 'static 'trail-conn :head-id #x21 :tail-id #x2a :visgroup-id #x8 :cost #x241) + (new 'static 'trail-conn :head-id #x22 :tail-id #x2a :visgroup-id #x8 :cost #x1ca) + (new 'static 'trail-conn :head-id #x2b :tail-id #x163 :visgroup-id #xa :cost #x141) + (new 'static 'trail-conn :head-id #x29 :tail-id #x2b :cost #xe2) + (new 'static 'trail-conn :head-id #x2c :tail-id #x2d :visgroup-id #x9 :cost #x15c) + (new 'static 'trail-conn :head-id #x2d :tail-id #x2e :cost #x24d) + (new 'static 'trail-conn :head-id #x2e :tail-id #x30 :cost #x270) + (new 'static 'trail-conn :head-id #x2f :tail-id #x30 :cost #x184) + (new 'static 'trail-conn :head-id #x2f :tail-id #x31 :cost #x138) + (new 'static 'trail-conn :head-id #x31 :tail-id #x32 :cost #x280) + (new 'static 'trail-conn :head-id #x32 :tail-id #x91 :cost #x11d) + (new 'static 'trail-conn :head-id #x33 :tail-id #x34 :visgroup-id #xb :cost #x1aa) + (new 'static 'trail-conn :head-id #x33 :tail-id #x36 :visgroup-id #xb :cost #x38d) + (new 'static 'trail-conn :head-id #x33 :tail-id #x39 :visgroup-id #xc :cost #x622) + (new 'static 'trail-conn :head-id #x34 :tail-id #x36 :visgroup-id #xb :cost #x423) + (new 'static 'trail-conn :head-id #x34 :tail-id #x35 :cost #x183) + (new 'static 'trail-conn :head-id #x36 :tail-id #x37 :visgroup-id #xd :cost #x121) + (new 'static 'trail-conn :head-id #x37 :tail-id #x38 :visgroup-id #xd :cost #x1f5) + (new 'static 'trail-conn :head-id #x37 :tail-id #x3d :cost #xfb) + (new 'static 'trail-conn :head-id #x36 :tail-id #x38 :visgroup-id #xd :cost #x2ec) + (new 'static 'trail-conn :head-id #x38 :tail-id #x3a :cost #x1dd) + (new 'static 'trail-conn :head-id #x36 :tail-id #x39 :visgroup-id #xc :cost #x2ed) + (new 'static 'trail-conn :head-id #x38 :tail-id #x39 :visgroup-id #xe :cost #x1f9) + (new 'static 'trail-conn :head-id #x3a :tail-id #x3b :visgroup-id #xf :cost #xf5) + (new 'static 'trail-conn :head-id #x3a :tail-id #x4e :visgroup-id #xf :cost #x1ed) + (new 'static 'trail-conn :head-id #x3b :tail-id #x3c :cost #x15d) + (new 'static 'trail-conn :head-id #x3b :tail-id #x4f :visgroup-id #x10 :cost #x3c1) + (new 'static 'trail-conn :head-id #x3b :tail-id #x4e :visgroup-id #xf :cost #x2a2) + (new 'static 'trail-conn :head-id #x3c :tail-id #x3d :visgroup-id #x11 :cost #x247) + (new 'static 'trail-conn :head-id #x3c :tail-id #x3e :visgroup-id #x11 :cost #x33f) + (new 'static 'trail-conn :head-id #x3c :tail-id #x3f :visgroup-id #x11 :cost #x349) + (new 'static 'trail-conn :head-id #x3d :tail-id #x3e :visgroup-id #x11 :cost #x206) + (new 'static 'trail-conn :head-id #x3d :tail-id #x3f :visgroup-id #x11 :cost #x362) + (new 'static 'trail-conn :head-id #x3e :tail-id #x3f :visgroup-id #x11 :cost #x1ee) + (new 'static 'trail-conn :head-id #x3f :tail-id #x40 :cost #x172) + (new 'static 'trail-conn :head-id #x40 :tail-id #x41 :cost #xd9) + (new 'static 'trail-conn :head-id #x41 :tail-id #x42 :cost #x209) + (new 'static 'trail-conn :head-id #x42 :tail-id #x45 :cost #x10d) + (new 'static 'trail-conn :head-id #x43 :tail-id #x44 :visgroup-id #x12 :cost #x171) + (new 'static 'trail-conn :head-id #x43 :tail-id #x1ae :visgroup-id #x13 :cost #xf4) + (new 'static 'trail-conn :head-id #x44 :tail-id #x1af :visgroup-id #x14 :cost #xe6) + (new 'static 'trail-conn :head-id #x45 :tail-id #x46 :cost #x100) + (new 'static 'trail-conn :head-id #x47 :tail-id #x48 :cost #x219) + (new 'static 'trail-conn :head-id #x46 :tail-id #x47 :cost #xdd) + (new 'static 'trail-conn :head-id #x48 :tail-id #x49 :visgroup-id #x15 :cost #x1b9) + (new 'static 'trail-conn :head-id #x49 :tail-id #x4a :cost #x1e9) + (new 'static 'trail-conn :head-id #x4a :tail-id #x4b :visgroup-id #x16 :cost #x2fb) + (new 'static 'trail-conn :head-id #x4b :tail-id #x4c :visgroup-id #x16 :cost #x24c) + (new 'static 'trail-conn :head-id #x4c :tail-id #x4d :visgroup-id #x16 :cost #x2c1) + (new 'static 'trail-conn :head-id #x4a :tail-id #x4d :visgroup-id #x16 :cost #x289) + (new 'static 'trail-conn :head-id #x4e :tail-id #x50 :cost #x11f) + (new 'static 'trail-conn :head-id #x4f :tail-id #x50 :visgroup-id #x17 :cost #x1f8) + (new 'static 'trail-conn :head-id #x50 :tail-id #x51 :cost #x181) + (new 'static 'trail-conn :head-id #x52 :tail-id #x53 :flags (conn-flag cf2) :cost #x71) + (new 'static 'trail-conn :head-id #x51 :tail-id #x53 :cost #x151) + (new 'static 'trail-conn :head-id #x54 :tail-id #x5a :cost #x1ea) + (new 'static 'trail-conn :head-id #x54 :tail-id #x55 :cost #x117) + (new 'static 'trail-conn :head-id #x55 :tail-id #x56 :cost #x132) + (new 'static 'trail-conn :head-id #x57 :tail-id #x58 :cost #x191) + (new 'static 'trail-conn :head-id #x57 :tail-id #x5a :cost #x1b9) + (new 'static 'trail-conn :head-id #x57 :tail-id #x5b :cost #x121) + (new 'static 'trail-conn :head-id #x58 :tail-id #x59 :cost #x109) + (new 'static 'trail-conn :head-id #x4b :tail-id #x59 :visgroup-id #x18 :cost #x2bb) + (new 'static 'trail-conn :head-id #x5a :tail-id #x5b :cost #x143) + (new 'static 'trail-conn :head-id #x5b :tail-id #x5c :visgroup-id #x19 :cost #x132) + (new 'static 'trail-conn :head-id #x5b :tail-id #x5d :visgroup-id #x19 :cost #x1e9) + (new 'static 'trail-conn :head-id #x5c :tail-id #x5d :visgroup-id #x19 :cost #x16c) + (new 'static 'trail-conn :head-id #x5c :tail-id #x5e :visgroup-id #x19 :cost #x1dc) + (new 'static 'trail-conn :head-id #x5c :tail-id #x72 :cost #xe9) + (new 'static 'trail-conn :head-id #x5d :tail-id #x5e :visgroup-id #x19 :cost #x149) + (new 'static 'trail-conn :head-id #x5b :tail-id #x5e :visgroup-id #x19 :cost #x16b) + (new 'static 'trail-conn :head-id #x5e :tail-id #x5f :cost #x2f9) + (new 'static 'trail-conn :head-id #x5f :tail-id #x60 :visgroup-id #x1a :cost #x177) + (new 'static 'trail-conn :head-id #x5f :tail-id #x62 :visgroup-id #x1a :cost #x182) + (new 'static 'trail-conn :head-id #x60 :tail-id #x62 :visgroup-id #x1a :cost #x1d1) + (new 'static 'trail-conn :head-id #x60 :tail-id #x61 :cost #x1f1) + (new 'static 'trail-conn :head-id #x62 :tail-id #x63 :cost #x141) + (new 'static 'trail-conn :head-id #x63 :tail-id #x64 :cost #x151) + (new 'static 'trail-conn :head-id #x64 :tail-id #x65 :cost #x174) + (new 'static 'trail-conn :head-id #x65 :tail-id #x66 :cost #x111) + (new 'static 'trail-conn :head-id #x66 :tail-id #x67 :visgroup-id #x1b :cost #x142) + (new 'static 'trail-conn :head-id #x66 :tail-id #x6a :visgroup-id #x1b :cost #x164) + (new 'static 'trail-conn :head-id #x67 :tail-id #x68 :visgroup-id #x1c :cost #x1d4) + (new 'static 'trail-conn :head-id #x67 :tail-id #x6d :cost #x131) + (new 'static 'trail-conn :head-id #x68 :tail-id #x69 :visgroup-id #x1c :cost #x306) + (new 'static 'trail-conn :head-id #x66 :tail-id #x69 :visgroup-id #x1b :cost #x3b7) + (new 'static 'trail-conn :head-id #x67 :tail-id #x69 :visgroup-id #x1c :cost #x38a) + (new 'static 'trail-conn :head-id #x69 :tail-id #x6b :visgroup-id #x1d :cost #x279) + (new 'static 'trail-conn :head-id #x69 :tail-id #x7a :cost #x269) + (new 'static 'trail-conn :head-id #x67 :tail-id #x6a :visgroup-id #x1b :cost #x1f0) + (new 'static 'trail-conn :head-id #x6a :tail-id #x6b :visgroup-id #x1e :cost #x10a) + (new 'static 'trail-conn :head-id #x6b :tail-id #x6c :cost #x1e9) + (new 'static 'trail-conn :head-id #x5d :tail-id #x6c :cost #x1b1) + (new 'static 'trail-conn :head-id #x6d :tail-id #x6e :visgroup-id #x1f :cost #x199) + (new 'static 'trail-conn :head-id #x6e :tail-id #x6f :visgroup-id #x1f :cost #xd1) + (new 'static 'trail-conn :head-id #x6f :tail-id #x70 :visgroup-id #x1f :cost #x147) + (new 'static 'trail-conn :head-id #x6d :tail-id #x70 :visgroup-id #x1f :cost #x126) + (new 'static 'trail-conn :head-id #x70 :tail-id #x71 :cost #x159) + (new 'static 'trail-conn :head-id #x72 :tail-id #x73 :visgroup-id #x20 :cost #x10a) + (new 'static 'trail-conn :head-id #x73 :tail-id #x74 :cost #x281) + (new 'static 'trail-conn :head-id #x73 :tail-id #x164 :visgroup-id #x20 :cost #x105) + (new 'static 'trail-conn :head-id #x74 :tail-id #x75 :cost #xcf) + (new 'static 'trail-conn :head-id #x75 :tail-id #x76 :cost #x15d) + (new 'static 'trail-conn :head-id #x76 :tail-id #x77 :visgroup-id #x21 :cost #x13e) + (new 'static 'trail-conn :head-id #x77 :tail-id #x78 :cost #x129) + (new 'static 'trail-conn :head-id #x78 :tail-id #x79 :visgroup-id #x22 :cost #x19a) + (new 'static 'trail-conn :head-id #x79 :tail-id #x164 :cost #xf9) + (new 'static 'trail-conn :head-id #x7a :tail-id #x7b :cost #x34f) + (new 'static 'trail-conn :head-id #x7b :tail-id #x7c :cost #x101) + (new 'static 'trail-conn :head-id #x76 :tail-id #x7c :visgroup-id #x21 :cost #xe4) + (new 'static 'trail-conn :head-id #x77 :tail-id #x7c :visgroup-id #x21 :cost #x199) + (new 'static 'trail-conn :head-id #x78 :tail-id #x7d :visgroup-id #x22 :cost #x259) + (new 'static 'trail-conn :head-id #x79 :tail-id #x7d :visgroup-id #x22 :cost #x18c) + (new 'static 'trail-conn :head-id #x7d :tail-id #x7e :cost #x18b) + (new 'static 'trail-conn :head-id #x71 :tail-id #x7f :cost #x2db) + (new 'static 'trail-conn :head-id #x7f :tail-id #x80 :cost #x387) + (new 'static 'trail-conn :head-id #x80 :tail-id #x81 :cost #x192) + (new 'static 'trail-conn :head-id #x81 :tail-id #x82 :cost #x487) + (new 'static 'trail-conn :head-id #x82 :tail-id #x83 :visgroup-id #x23 :cost #x171) + (new 'static 'trail-conn :head-id #x82 :tail-id #x85 :visgroup-id #x23 :cost #x14b) + (new 'static 'trail-conn :head-id #x83 :tail-id #x85 :visgroup-id #x24 :cost #x1fd) + (new 'static 'trail-conn :head-id #x83 :tail-id #x84 :visgroup-id #x24 :cost #xd85) + (new 'static 'trail-conn :head-id #x85 :tail-id #x167 :visgroup-id #x24 :cost #x609) + (new 'static 'trail-conn :head-id #x86 :tail-id #x88 :visgroup-id #x24 :cost #x191) + (new 'static 'trail-conn :head-id #x86 :tail-id #x87 :visgroup-id #x25 :cost #x127) + (new 'static 'trail-conn :head-id #x85 :tail-id #x86 :visgroup-id #x24 :cost #xb1c) + (new 'static 'trail-conn :head-id #x87 :tail-id #x88 :visgroup-id #x25 :cost #x116) + (new 'static 'trail-conn :head-id #x88 :tail-id #x89 :visgroup-id #x24 :cost #x73a) + (new 'static 'trail-conn :head-id #x85 :tail-id #x8a :visgroup-id #x24 :cost #x16d1) + (new 'static 'trail-conn :head-id #x8a :tail-id #x8b :visgroup-id #x26 :cost #x1c3) + (new 'static 'trail-conn :head-id #x88 :tail-id #x8a :visgroup-id #x24 :cost #xae3) + (new 'static 'trail-conn :head-id #x89 :tail-id #x8a :visgroup-id #x24 :cost #x4d2) + (new 'static 'trail-conn :head-id #x8b :tail-id #x8c :visgroup-id #x26 :cost #x1a4) + (new 'static 'trail-conn :head-id #x8a :tail-id #x8c :visgroup-id #x24 :cost #x263) + (new 'static 'trail-conn :head-id #x8c :tail-id #x8d :visgroup-id #x24 :cost #xd44) + (new 'static 'trail-conn :head-id #x8b :tail-id #x8e :cost #x45f) + (new 'static 'trail-conn :head-id #x8e :tail-id #x8f :cost #x161) + (new 'static 'trail-conn :head-id #x90 :tail-id #x165 :flags (conn-flag cf2) :cost #xa9) + (new 'static 'trail-conn :head-id #x8f :tail-id #x90 :cost #x311) + (new 'static 'trail-conn :head-id #x91 :tail-id #x92 :cost #xed) + (new 'static 'trail-conn :head-id #x92 :tail-id #x93 :cost #x101) + (new 'static 'trail-conn :head-id #x93 :tail-id #x94 :cost #xf9) + (new 'static 'trail-conn :head-id #x94 :tail-id #x96 :cost #x2bd) + (new 'static 'trail-conn :head-id #x95 :tail-id #x96 :cost #xd2) + (new 'static 'trail-conn :head-id #x95 :tail-id #x97 :visgroup-id #x27 :cost #xc4) + (new 'static 'trail-conn :head-id #x97 :tail-id #x98 :cost #x1f8) + (new 'static 'trail-conn :head-id #x98 :tail-id #x99 :visgroup-id #x28 :cost #x15b) + (new 'static 'trail-conn :head-id #x98 :tail-id #x9d :visgroup-id #x28 :cost #x131) + (new 'static 'trail-conn :head-id #x99 :tail-id #x9a :cost #x109) + (new 'static 'trail-conn :head-id #x9b :tail-id #x18a :cost #x19a) + (new 'static 'trail-conn :head-id #x9b :tail-id #x9c :cost #x18c) + (new 'static 'trail-conn :head-id #x9d :tail-id #x9e :visgroup-id #x29 :cost #x194) + (new 'static 'trail-conn :head-id #x9d :tail-id #xa6 :visgroup-id #x29 :cost #x2a3) + (new 'static 'trail-conn :head-id #x99 :tail-id #x9d :visgroup-id #x28 :cost #x128) + (new 'static 'trail-conn :head-id #x9e :tail-id #x9f :cost #x53d) + (new 'static 'trail-conn :head-id #x9f :tail-id #xa0 :cost #x119) + (new 'static 'trail-conn :head-id #xa0 :tail-id #xa1 :cost #x265) + (new 'static 'trail-conn :head-id #xa2 :tail-id #xb4 :cost #x99) + (new 'static 'trail-conn :head-id #xa3 :tail-id #xa4 :cost #x102) + (new 'static 'trail-conn :head-id #xa2 :tail-id #xa3 :cost #x3d1) + (new 'static 'trail-conn :head-id #xa4 :tail-id #xa5 :cost #x10e) + (new 'static 'trail-conn :head-id #xa5 :tail-id #xa6 :cost #x32c) + (new 'static 'trail-conn :head-id #x9e :tail-id #xa6 :visgroup-id #x29 :cost #x1dc) + (new 'static 'trail-conn :head-id #xa6 :tail-id #xa7 :visgroup-id #x29 :cost #x1d6) + (new 'static 'trail-conn :head-id #xa7 :tail-id #xa8 :visgroup-id #x29 :cost #x14a) + (new 'static 'trail-conn :head-id #x9d :tail-id #xa7 :visgroup-id #x29 :cost #x2dc) + (new 'static 'trail-conn :head-id #x9e :tail-id #xa7 :visgroup-id #x29 :cost #x316) + (new 'static 'trail-conn :head-id #xa6 :tail-id #xa8 :visgroup-id #x29 :cost #x23f) + (new 'static 'trail-conn :head-id #xa8 :tail-id #xa9 :cost #x23d) + (new 'static 'trail-conn :head-id #x9d :tail-id #xa8 :visgroup-id #x29 :cost #x1cc) + (new 'static 'trail-conn :head-id #x9e :tail-id #xa8 :visgroup-id #x29 :cost #x29c) + (new 'static 'trail-conn :head-id #xa9 :tail-id #xaa :cost #x18c) + (new 'static 'trail-conn :head-id #xa9 :tail-id #xac :cost #x9c) + (new 'static 'trail-conn :head-id #xaa :tail-id #xab :cost #x17d) + (new 'static 'trail-conn :head-id #xa7 :tail-id #xab :cost #x151) + (new 'static 'trail-conn :head-id #xac :tail-id #xad :visgroup-id #x2a :cost #x9e) + (new 'static 'trail-conn :head-id #x95 :tail-id #xad :visgroup-id #x27 :cost #xc1) + (new 'static 'trail-conn :head-id #x97 :tail-id #xad :visgroup-id #x27 :cost #xf1) + (new 'static 'trail-conn :head-id #xad :tail-id #xae :visgroup-id #x2a :cost #x111) + (new 'static 'trail-conn :head-id #xac :tail-id #xae :visgroup-id #x2a :cost #xfd) + (new 'static 'trail-conn :head-id #xaf :tail-id #x189 :cost #x94) + (new 'static 'trail-conn :head-id #xaf :tail-id #xb0 :cost #xb0) + (new 'static 'trail-conn :head-id #xb0 :tail-id #xb1 :cost #xc9) + (new 'static 'trail-conn :head-id #xb2 :tail-id #x192 :visgroup-id #x2b :cost #x120) + (new 'static 'trail-conn :head-id #xb2 :tail-id #x1a8 :visgroup-id #x2b :cost #x628) + (new 'static 'trail-conn :head-id #xb2 :tail-id #xb3 :cost #x1a3) + (new 'static 'trail-conn :head-id #xb3 :tail-id #x191 :cost #x2ac) + (new 'static 'trail-conn :head-id #xb4 :tail-id #x1a3 :cost #x51a) + (new 'static 'trail-conn :head-id #xb5 :tail-id #x181 :cost #x25a) + (new 'static 'trail-conn :head-id #xb5 :tail-id #xb6 :cost #x229) + (new 'static 'trail-conn :head-id #xb6 :tail-id #xb7 :cost #x8f) + (new 'static 'trail-conn :head-id #xb7 :tail-id #xb8 :cost #xd1) + (new 'static 'trail-conn :head-id #xb8 :tail-id #xb9 :cost #x10f) + (new 'static 'trail-conn :head-id #xb9 :tail-id #xba :visgroup-id #x2c :cost #x1a7) + (new 'static 'trail-conn :head-id #xb9 :tail-id #xbb :visgroup-id #x2c :cost #x266) + (new 'static 'trail-conn :head-id #xba :tail-id #xbb :visgroup-id #x2d :cost #x166) + (new 'static 'trail-conn :head-id #xba :tail-id #x182 :visgroup-id #x2e :cost #x73) + (new 'static 'trail-conn :head-id #xbb :tail-id #xbc :cost #xd9) + (new 'static 'trail-conn :head-id #xbc :tail-id #x179 :cost #x150) + (new 'static 'trail-conn :head-id #xbd :tail-id #xca :visgroup-id #x2f :cost #x12c) + (new 'static 'trail-conn :head-id #xbd :tail-id #x17a :cost #xe1) + (new 'static 'trail-conn :head-id #xbe :tail-id #xc5 :visgroup-id #x30 :cost #x221) + (new 'static 'trail-conn :head-id #xbe :tail-id #x177 :cost #x15a) + (new 'static 'trail-conn :head-id #xbf :tail-id #xc0 :cost #x9f) + (new 'static 'trail-conn :head-id #xc0 :tail-id #xc1 :cost #x198) + (new 'static 'trail-conn :head-id #xc1 :tail-id #xde :cost #x24c) + (new 'static 'trail-conn :head-id #xc2 :tail-id #xc3 :cost #x283) + (new 'static 'trail-conn :head-id #xc3 :tail-id #xc4 :cost #x139) + (new 'static 'trail-conn :head-id #xc4 :tail-id #xec :cost #x191) + (new 'static 'trail-conn :head-id #xc5 :tail-id #xcb :visgroup-id #x30 :cost #x3a2) + (new 'static 'trail-conn :head-id #xc5 :tail-id #xc6 :cost #x283) + (new 'static 'trail-conn :head-id #xc6 :tail-id #xc7 :cost #xbd) + (new 'static 'trail-conn :head-id #xc7 :tail-id #xc8 :cost #x31a) + (new 'static 'trail-conn :head-id #xc8 :tail-id #xcc :cost #x205) + (new 'static 'trail-conn :head-id #xc9 :tail-id #x28b :visgroup-id #x30 :cost #x1b9) + (new 'static 'trail-conn :head-id #xc9 :tail-id #x289 :visgroup-id #x30 :cost #xe9) + (new 'static 'trail-conn :head-id #xca :tail-id #x176 :visgroup-id #x31 :cost #x7f) + (new 'static 'trail-conn :head-id #xca :tail-id #xcb :visgroup-id #x32 :cost #x196) + (new 'static 'trail-conn :head-id #xbe :tail-id #xcb :visgroup-id #x30 :cost #x1a9) + (new 'static 'trail-conn :head-id #xcb :tail-id #x172 :cost #x179) + (new 'static 'trail-conn :head-id #xcc :tail-id #xcd :cost #xd9) + (new 'static 'trail-conn :head-id #xcd :tail-id #xce :cost #x15e) + (new 'static 'trail-conn :head-id #xce :tail-id #xcf :visgroup-id #x33 :cost #x25c) + (new 'static 'trail-conn :head-id #xce :tail-id #xd3 :visgroup-id #x33 :cost #x649) + (new 'static 'trail-conn :head-id #xce :tail-id #xd0 :visgroup-id #x33 :cost #x454) + (new 'static 'trail-conn :head-id #xce :tail-id #xd2 :visgroup-id #x33 :cost #x59a) + (new 'static 'trail-conn :head-id #xcf :tail-id #xd0 :visgroup-id #x33 :cost #x282) + (new 'static 'trail-conn :head-id #xd0 :tail-id #xd2 :visgroup-id #x34 :cost #x30f) + (new 'static 'trail-conn :head-id #xd0 :tail-id #xdb :visgroup-id #x33 :cost #x437) + (new 'static 'trail-conn :head-id #xd0 :tail-id #xd1 :cost #x1c9) + (new 'static 'trail-conn :head-id #xd2 :tail-id #xdb :visgroup-id #x33 :cost #x1dc) + (new 'static 'trail-conn :head-id #xd2 :tail-id #xd3 :visgroup-id #x33 :cost #x834) + (new 'static 'trail-conn :head-id #xd3 :tail-id #xd9 :visgroup-id #x33 :cost #x560) + (new 'static 'trail-conn :head-id #xd3 :tail-id #x17b :visgroup-id #x33 :cost #x46b) + (new 'static 'trail-conn :head-id #xd0 :tail-id #xd3 :visgroup-id #x33 :cost #x93c) + (new 'static 'trail-conn :head-id #xd3 :tail-id #xd4 :visgroup-id #x33 :cost #x2c7) + (new 'static 'trail-conn :head-id #xd4 :tail-id #x17b :visgroup-id #x35 :cost #x2c1) + (new 'static 'trail-conn :head-id #xd5 :tail-id #xd6 :cost #x199) + (new 'static 'trail-conn :head-id #xd3 :tail-id #xd6 :cost #x1a6) + (new 'static 'trail-conn :head-id #xd7 :tail-id #xd8 :cost #x1c6) + (new 'static 'trail-conn :head-id #xd8 :tail-id #xd9 :cost #x220) + (new 'static 'trail-conn :head-id #xd9 :tail-id #xda :visgroup-id #x33 :cost #x1a0) + (new 'static 'trail-conn :head-id #xda :tail-id #xdb :visgroup-id #x33 :cost #x251) + (new 'static 'trail-conn :head-id #xd2 :tail-id #xdc :cost #x1e2) + (new 'static 'trail-conn :head-id #xdc :tail-id #xdd :cost #x175) + (new 'static 'trail-conn :head-id #xde :tail-id #xdf :cost #xc9) + (new 'static 'trail-conn :head-id #xdf :tail-id #xe0 :cost #xf9) + (new 'static 'trail-conn :head-id #xe0 :tail-id #xe1 :cost #x15d) + (new 'static 'trail-conn :head-id #xe1 :tail-id #xe2 :visgroup-id #x36 :cost #x2dd) + (new 'static 'trail-conn :head-id #xe1 :tail-id #xe3 :visgroup-id #x36 :cost #x19d) + (new 'static 'trail-conn :head-id #xe2 :tail-id #xe3 :visgroup-id #x36 :cost #x1e0) + (new 'static 'trail-conn :head-id #xe2 :tail-id #xea :visgroup-id #x37 :cost #x249) + (new 'static 'trail-conn :head-id #xe2 :tail-id #xeb :visgroup-id #x37 :cost #x2ac) + (new 'static 'trail-conn :head-id #xe3 :tail-id #xe4 :cost #x149) + (new 'static 'trail-conn :head-id #xe4 :tail-id #xe5 :visgroup-id #x38 :cost #x23b) + (new 'static 'trail-conn :head-id #xe4 :tail-id #xe6 :visgroup-id #x38 :cost #x143) + (new 'static 'trail-conn :head-id #xe5 :tail-id #xe6 :visgroup-id #x38 :cost #x187) + (new 'static 'trail-conn :head-id #xe5 :tail-id #xf2 :visgroup-id #x38 :cost #x230) + (new 'static 'trail-conn :head-id #xe5 :tail-id #xf3 :visgroup-id #x38 :cost #x236) + (new 'static 'trail-conn :head-id #xe6 :tail-id #xe7 :cost #x251) + (new 'static 'trail-conn :head-id #xe9 :tail-id #xea :cost #x189) + (new 'static 'trail-conn :head-id #xe7 :tail-id #xe9 :cost #x84) + (new 'static 'trail-conn :head-id #xea :tail-id #xeb :visgroup-id #x37 :cost #x191) + (new 'static 'trail-conn :head-id #xeb :tail-id #xec :visgroup-id #x39 :cost #x112) + (new 'static 'trail-conn :head-id #xed :tail-id #xee :visgroup-id #x3a :cost #x2b9) + (new 'static 'trail-conn :head-id #xe8 :tail-id #xee :visgroup-id #x3a :cost #x151) + (new 'static 'trail-conn :head-id #xef :tail-id #xf0 :visgroup-id #x36 :cost #x22c) + (new 'static 'trail-conn :head-id #xf0 :tail-id #x16f :visgroup-id #x36 :cost #xec) + (new 'static 'trail-conn :head-id #xf1 :tail-id #xf3 :visgroup-id #x38 :cost #x1ec) + (new 'static 'trail-conn :head-id #xe4 :tail-id #xf1 :visgroup-id #x38 :cost #x255) + (new 'static 'trail-conn :head-id #xf2 :tail-id #xf3 :visgroup-id #x38 :cost #x1ca) + (new 'static 'trail-conn :head-id #xf2 :tail-id #xf8 :cost #x1b5) + (new 'static 'trail-conn :head-id #xf3 :tail-id #xf4 :cost #x191) + (new 'static 'trail-conn :head-id #xf4 :tail-id #xf5 :cost #x30b) + (new 'static 'trail-conn :head-id #xf5 :tail-id #xf6 :cost #x169) + (new 'static 'trail-conn :head-id #xf6 :tail-id #xf7 :visgroup-id #x3b :cost #x22b) + (new 'static 'trail-conn :head-id #xf7 :tail-id #xfc :visgroup-id #x3c :cost #x129) + (new 'static 'trail-conn :head-id #xf8 :tail-id #xf9 :cost #xcc) + (new 'static 'trail-conn :head-id #xf9 :tail-id #xfa :cost #x122) + (new 'static 'trail-conn :head-id #xfa :tail-id #x287 :cost #x7d8) + (new 'static 'trail-conn :head-id #xfb :tail-id #x26b :cost #x181) + (new 'static 'trail-conn :head-id #xfb :tail-id #x26a :cost #x1d7) + (new 'static 'trail-conn :head-id #xfb :tail-id #x1c4 :cost #x1f4) + (new 'static 'trail-conn :head-id #xfb :tail-id #x1ce :cost #x124) + (new 'static 'trail-conn :head-id #xfb :tail-id #x26c :cost #x1a5) + (new 'static 'trail-conn :head-id #xfb :tail-id #x26f :cost #x1b6) + (new 'static 'trail-conn :head-id #xfb :tail-id #x270 :cost #x1a2) + (new 'static 'trail-conn :head-id #xfb :tail-id #x273 :cost #x1b9) + (new 'static 'trail-conn :head-id #xfb :tail-id #x274 :cost #x193) + (new 'static 'trail-conn :head-id #xfc :tail-id #xfd :visgroup-id #x3d :cost #x9a) + (new 'static 'trail-conn :head-id #xfd :tail-id #xfe :cost #x769) + (new 'static 'trail-conn :head-id #xfe :tail-id #xff :cost #x181) + (new 'static 'trail-conn :head-id #xff :tail-id #x108 :cost #x1d9) + (new 'static 'trail-conn :head-id #x100 :tail-id #x101 :cost #x689) + (new 'static 'trail-conn :head-id #x100 :tail-id #x108 :cost #x1b9) + (new 'static 'trail-conn :head-id #x101 :tail-id #x107 :cost #x1b9) + (new 'static 'trail-conn :head-id #x102 :tail-id #x103 :cost #x479) + (new 'static 'trail-conn :head-id #x102 :tail-id #x107 :cost #x1d1) + (new 'static 'trail-conn :head-id #x103 :tail-id #x106 :cost #x191) + (new 'static 'trail-conn :head-id #x103 :tail-id #x104 :cost #x499) + (new 'static 'trail-conn :head-id #x104 :tail-id #x105 :cost #x1b1) + (new 'static 'trail-conn :head-id #x105 :tail-id #x25e :visgroup-id #x3e :cost #x28c) + (new 'static 'trail-conn :head-id #x105 :tail-id #x257 :visgroup-id #x3f :cost #x30a) + (new 'static 'trail-conn :head-id #x106 :tail-id #x261 :visgroup-id #x40 :cost #x1a2) + (new 'static 'trail-conn :head-id #x105 :tail-id #x106 :visgroup-id #x40 :cost #x479) + (new 'static 'trail-conn :head-id #x106 :tail-id #x267 :visgroup-id #x40 :cost #x168) + (new 'static 'trail-conn :head-id #x106 :tail-id #x107 :visgroup-id #x40 :cost #x47a) + (new 'static 'trail-conn :head-id #x107 :tail-id #x108 :visgroup-id #x41 :cost #x691) + (new 'static 'trail-conn :head-id #x107 :tail-id #x259 :visgroup-id #x42 :cost #x29c) + (new 'static 'trail-conn :head-id #x108 :tail-id #x109 :visgroup-id #x43 :cost #x44a) + (new 'static 'trail-conn :head-id #x108 :tail-id #x25b :visgroup-id #x41 :cost #x379) + (new 'static 'trail-conn :head-id #x109 :tail-id #x10a :visgroup-id #x43 :cost #x491) + (new 'static 'trail-conn :head-id #x10a :tail-id #x10b :cost #x1c1) + (new 'static 'trail-conn :head-id #x10b :tail-id #x10c :cost #x481) + (new 'static 'trail-conn :head-id #x109 :tail-id #x10c :cost #x199) + (new 'static 'trail-conn :head-id #xff :tail-id #x10c :cost #x451) + (new 'static 'trail-conn :head-id #x10e :tail-id #x10f :cost #x1a2) + (new 'static 'trail-conn :head-id #x10e :tail-id #x126 :visgroup-id #x44 :cost #x152) + (new 'static 'trail-conn :head-id #x10e :tail-id #x27c :visgroup-id #x44 :cost #x181) + (new 'static 'trail-conn :head-id #x10f :tail-id #x205 :cost #x47e) + (new 'static 'trail-conn :head-id #x110 :tail-id #x203 :cost #x466) + (new 'static 'trail-conn :head-id #x111 :tail-id #x20d :cost #x411) + (new 'static 'trail-conn :head-id #x111 :tail-id #x1f5 :cost #xaa) + (new 'static 'trail-conn :head-id #x114 :tail-id #x119 :cost #x151) + (new 'static 'trail-conn :head-id #x114 :tail-id #x1ec :cost #xa5) + (new 'static 'trail-conn :head-id #x115 :tail-id #x116 :cost #x111) + (new 'static 'trail-conn :head-id #x116 :tail-id #x117 :visgroup-id #x45 :cost #x2f1) + (new 'static 'trail-conn :head-id #x117 :tail-id #x118 :cost #x1a4) + (new 'static 'trail-conn :head-id #x118 :tail-id #x119 :visgroup-id #x46 :cost #x29e) + (new 'static 'trail-conn :head-id #x118 :tail-id #x125 :visgroup-id #x46 :cost #x330) + (new 'static 'trail-conn :head-id #x119 :tail-id #x125 :visgroup-id #x46 :cost #x14f) + (new 'static 'trail-conn :head-id #x11a :tail-id #x124 :cost #x204) + (new 'static 'trail-conn :head-id #x11b :tail-id #x11c :cost #x151) + (new 'static 'trail-conn :head-id #x11b :tail-id #x1d4 :visgroup-id #x47 :cost #x13e) + (new 'static 'trail-conn :head-id #x11c :tail-id #x11d :visgroup-id #x48 :cost #x1c1) + (new 'static 'trail-conn :head-id #x11c :tail-id #x11e :visgroup-id #x48 :cost #x2f0) + (new 'static 'trail-conn :head-id #x118 :tail-id #x11d :cost #x189) + (new 'static 'trail-conn :head-id #x11d :tail-id #x11e :visgroup-id #x48 :cost #x1ee) + (new 'static 'trail-conn :head-id #x11e :tail-id #x11f :cost #x149) + (new 'static 'trail-conn :head-id #x11f :tail-id #x123 :visgroup-id #x49 :cost #x31f) + (new 'static 'trail-conn :head-id #x113 :tail-id #x120 :cost #x339) + (new 'static 'trail-conn :head-id #x120 :tail-id #x1f6 :visgroup-id #x4a :cost #x15d) + (new 'static 'trail-conn :head-id #x121 :tail-id #x122 :visgroup-id #x4b :cost #x201) + (new 'static 'trail-conn :head-id #x122 :tail-id #x1cf :visgroup-id #x4b :cost #x161) + (new 'static 'trail-conn :head-id #x11a :tail-id #x125 :cost #xca) + (new 'static 'trail-conn :head-id #x126 :tail-id #x145 :cost #x1e9) + (new 'static 'trail-conn :head-id #x128 :tail-id #x129 :visgroup-id #x4c :cost #xd7) + (new 'static 'trail-conn :head-id #x128 :tail-id #x12a :visgroup-id #x4c :cost #x97) + (new 'static 'trail-conn :head-id #x129 :tail-id #x12a :visgroup-id #x4c :cost #xea) + (new 'static 'trail-conn :head-id #x129 :tail-id #x159 :cost #x131) + (new 'static 'trail-conn :head-id #x12a :tail-id #x12b :cost #x169) + (new 'static 'trail-conn :head-id #x12b :tail-id #x144 :cost #x199) + (new 'static 'trail-conn :head-id #x12c :tail-id #x12d :cost #xe9) + (new 'static 'trail-conn :head-id #x12c :tail-id #x13f :cost #x96) + (new 'static 'trail-conn :head-id #x12d :tail-id #x12e :cost #x124) + (new 'static 'trail-conn :head-id #x12e :tail-id #x142 :cost #x241) + (new 'static 'trail-conn :head-id #x12f :tail-id #x27e :visgroup-id #x4d :cost #x141) + (new 'static 'trail-conn :head-id #x12f :tail-id #x285 :visgroup-id #x4e :cost #xa1) + (new 'static 'trail-conn :head-id #x130 :tail-id #x135 :cost #xc6) + (new 'static 'trail-conn :head-id #x12d :tail-id #x130 :cost #x1c7) + (new 'static 'trail-conn :head-id #x131 :tail-id #x280 :cost #x34c) + (new 'static 'trail-conn :head-id #x132 :tail-id #x133 :cost #x1f7) + (new 'static 'trail-conn :head-id #x132 :tail-id #x136 :cost #x111) + (new 'static 'trail-conn :head-id #x133 :tail-id #x134 :cost #x56) + (new 'static 'trail-conn :head-id #x134 :tail-id #x135 :cost #x91) + (new 'static 'trail-conn :head-id #x136 :tail-id #x281 :visgroup-id #x4f :cost #x198) + (new 'static 'trail-conn :head-id #x131 :tail-id #x136 :visgroup-id #x4f :cost #x129) + (new 'static 'trail-conn :head-id #x137 :tail-id #x138 :visgroup-id #x50 :cost #x119) + (new 'static 'trail-conn :head-id #x139 :tail-id #x13a :visgroup-id #x51 :cost #x10d) + (new 'static 'trail-conn :head-id #x139 :tail-id #x14d :visgroup-id #x51 :cost #x20f) + (new 'static 'trail-conn :head-id #x13a :tail-id #x13b :cost #x100) + (new 'static 'trail-conn :head-id #x13b :tail-id #x13f :visgroup-id #x52 :cost #x1b4) + (new 'static 'trail-conn :head-id #x13b :tail-id #x13c :visgroup-id #x52 :cost #x129) + (new 'static 'trail-conn :head-id #x128 :tail-id #x13c :cost #x101) + (new 'static 'trail-conn :head-id #x13c :tail-id #x144 :visgroup-id #x52 :cost #x1b9) + (new 'static 'trail-conn :head-id #x13d :tail-id #x283 :visgroup-id #x53 :cost #x231) + (new 'static 'trail-conn :head-id #x13d :tail-id #x14b :visgroup-id #x53 :cost #xd1) + (new 'static 'trail-conn :head-id #x13e :tail-id #x282 :visgroup-id #x54 :cost #x151) + (new 'static 'trail-conn :head-id #x13c :tail-id #x13f :visgroup-id #x52 :cost #x1e1) + (new 'static 'trail-conn :head-id #x13f :tail-id #x144 :visgroup-id #x52 :cost #xea) + (new 'static 'trail-conn :head-id #x140 :tail-id #x141 :visgroup-id #x54 :cost #x141) + (new 'static 'trail-conn :head-id #x13b :tail-id #x144 :visgroup-id #x52 :cost #x21c) + (new 'static 'trail-conn :head-id #x145 :tail-id #x146 :visgroup-id #x55 :cost #x1f9) + (new 'static 'trail-conn :head-id #x145 :tail-id #x147 :visgroup-id #x55 :cost #x2a2) + (new 'static 'trail-conn :head-id #x127 :tail-id #x145 :cost #x161) + (new 'static 'trail-conn :head-id #x146 :tail-id #x147 :visgroup-id #x55 :cost #x1aa) + (new 'static 'trail-conn :head-id #x146 :tail-id #x14d :cost #xf2) + (new 'static 'trail-conn :head-id #x147 :tail-id #x148 :cost #xb7) + (new 'static 'trail-conn :head-id #x148 :tail-id #x158 :cost #xeb) + (new 'static 'trail-conn :head-id #x149 :tail-id #x27f :visgroup-id #x56 :cost #x231) + (new 'static 'trail-conn :head-id #x143 :tail-id #x14a :visgroup-id #x57 :cost #xc1) + (new 'static 'trail-conn :head-id #x14b :tail-id #x284 :visgroup-id #x53 :cost #x231) + (new 'static 'trail-conn :head-id #x14c :tail-id #x280 :cost #x101) + (new 'static 'trail-conn :head-id #x13a :tail-id #x14d :visgroup-id #x51 :cost #x1fc) + (new 'static 'trail-conn :head-id #x14e :tail-id #x27d :visgroup-id #x58 :cost #x20b) + (new 'static 'trail-conn :head-id #x14f :tail-id #x150 :cost #x187) + (new 'static 'trail-conn :head-id #x150 :tail-id #x151 :cost #xf9) + (new 'static 'trail-conn :head-id #x151 :tail-id #x152 :cost #x189) + (new 'static 'trail-conn :head-id #x152 :tail-id #x153 :cost #xe9) + (new 'static 'trail-conn :head-id #x153 :tail-id #x155 :visgroup-id #x59 :cost #x62) + (new 'static 'trail-conn :head-id #x14e :tail-id #x154 :cost #x84) + (new 'static 'trail-conn :head-id #x153 :tail-id #x154 :visgroup-id #x59 :cost #x101) + (new 'static 'trail-conn :head-id #x154 :tail-id #x155 :visgroup-id #x59 :cost #xc1) + (new 'static 'trail-conn :head-id #x155 :tail-id #x156 :cost #x2d9) + (new 'static 'trail-conn :head-id #x14c :tail-id #x157 :cost #x119) + (new 'static 'trail-conn :head-id #x52 :tail-id #x157 :cost #x11a) + (new 'static 'trail-conn :head-id #x156 :tail-id #x158 :cost #x351) + (new 'static 'trail-conn :head-id #x127 :tail-id #x159 :cost #x14a) + (new 'static 'trail-conn :head-id #x48 :tail-id #x15a :visgroup-id #x15 :cost #x10a) + (new 'static 'trail-conn :head-id #x49 :tail-id #x15a :visgroup-id #x15 :cost #x131) + (new 'static 'trail-conn :head-id #x15a :tail-id #x15b :cost #x3b1) + (new 'static 'trail-conn :head-id #x15c :tail-id #x15d :visgroup-id #x5a :cost #x119) + (new 'static 'trail-conn :head-id #x3e :tail-id #x15e :cost #x111) + (new 'static 'trail-conn :head-id #x87 :tail-id #x15f :cost #x489) + (new 'static 'trail-conn :head-id #x15f :tail-id #x160 :flags (conn-flag cf2) :cost #x79) + (new 'static 'trail-conn :head-id #x112 :tail-id #x160 :cost #x199) + (new 'static 'trail-conn :head-id #x13 :tail-id #x161 :cost #xd2) + (new 'static 'trail-conn :head-id #x161 :tail-id #x162 :flags (conn-flag cf0) :cost #x72) + (new 'static 'trail-conn :head-id #x33 :tail-id #x162 :cost #x71) + (new 'static 'trail-conn :head-id #x28 :tail-id #x163 :visgroup-id #xa :cost #x3ac) + (new 'static 'trail-conn :head-id #x72 :tail-id #x164 :visgroup-id #x20 :cost #x181) + (new 'static 'trail-conn :head-id #x165 :tail-id #x166 :cost #xa9) + (new 'static 'trail-conn :head-id #x166 :tail-id #x254 :cost #xb9) + (new 'static 'trail-conn :head-id #x86 :tail-id #x167 :visgroup-id #x24 :cost #x68b) + (new 'static 'trail-conn :head-id #x168 :tail-id #x256 :visgroup-id #x5b :cost #x177) + (new 'static 'trail-conn :head-id #x168 :tail-id #x255 :visgroup-id #x5b :cost #x17a) + (new 'static 'trail-conn :head-id #x169 :tail-id #x16a :visgroup-id #x5c :cost #x18f) + (new 'static 'trail-conn :head-id #x169 :tail-id #x170 :visgroup-id #x5d :cost #x1e6) + (new 'static 'trail-conn :head-id #x16b :tail-id #x16c :visgroup-id #x5e :cost #x91) + (new 'static 'trail-conn :head-id #x16d :tail-id #x296 :visgroup-id #x5f :cost #xe9) + (new 'static 'trail-conn :head-id #x16d :tail-id #x295 :visgroup-id #x5f :cost #xf1) + (new 'static 'trail-conn :head-id #xef :tail-id #x16e :visgroup-id #x60 :cost #x165) + (new 'static 'trail-conn :head-id #x170 :tail-id #x171 :visgroup-id #x61 :cost #x193) + (new 'static 'trail-conn :head-id #xc2 :tail-id #x172 :cost #x114) + (new 'static 'trail-conn :head-id #xbf :tail-id #x173 :cost #x101) + (new 'static 'trail-conn :head-id #x173 :tail-id #x174 :visgroup-id #x62 :cost #xc2) + (new 'static 'trail-conn :head-id #x174 :tail-id #x178 :visgroup-id #x62 :cost #x1fa) + (new 'static 'trail-conn :head-id #x174 :tail-id #x179 :visgroup-id #x62 :cost #x209) + (new 'static 'trail-conn :head-id #x172 :tail-id #x174 :cost #x189) + (new 'static 'trail-conn :head-id #x175 :tail-id #x28c :visgroup-id #x63 :cost #x149) + (new 'static 'trail-conn :head-id #x176 :tail-id #x179 :visgroup-id #x62 :cost #x20f) + (new 'static 'trail-conn :head-id #xcb :tail-id #x176 :visgroup-id #x32 :cost #x1d1) + (new 'static 'trail-conn :head-id #xbd :tail-id #x176 :visgroup-id #x64 :cost #x16d) + (new 'static 'trail-conn :head-id #x174 :tail-id #x176 :visgroup-id #x62 :cost #x16d) + (new 'static 'trail-conn :head-id #x173 :tail-id #x176 :visgroup-id #x62 :cost #x1ea) + (new 'static 'trail-conn :head-id #xca :tail-id #x177 :visgroup-id #x65 :cost #x121) + (new 'static 'trail-conn :head-id #xbd :tail-id #x177 :visgroup-id #x65 :cost #xc5) + (new 'static 'trail-conn :head-id #x173 :tail-id #x178 :visgroup-id #x62 :cost #x1f9) + (new 'static 'trail-conn :head-id #x176 :tail-id #x178 :visgroup-id #x62 :cost #x14a) + (new 'static 'trail-conn :head-id #x178 :tail-id #x182 :cost #x135) + (new 'static 'trail-conn :head-id #x173 :tail-id #x179 :visgroup-id #x62 :cost #x1a4) + (new 'static 'trail-conn :head-id #x178 :tail-id #x179 :visgroup-id #x62 :cost #x109) + (new 'static 'trail-conn :head-id #x17a :tail-id #x182 :visgroup-id #x66 :cost #x8e) + (new 'static 'trail-conn :head-id #xba :tail-id #x17a :visgroup-id #x66 :cost #x91) + (new 'static 'trail-conn :head-id #x17b :tail-id #x17c :cost #x16d) + (new 'static 'trail-conn :head-id #xd9 :tail-id #x17b :visgroup-id #x33 :cost #x28c) + (new 'static 'trail-conn :head-id #xce :tail-id #x17b :visgroup-id #x33 :cost #x8ef) + (new 'static 'trail-conn :head-id #xda :tail-id #x17b :visgroup-id #x33 :cost #x3bb) + (new 'static 'trail-conn :head-id #x17d :tail-id #x17e :visgroup-id #x33 :cost #xa2) + (new 'static 'trail-conn :head-id #x17e :tail-id #x17f :visgroup-id #x33 :cost #x2d9) + (new 'static 'trail-conn :head-id #x17f :tail-id #x180 :visgroup-id #x33 :cost #xbf) + (new 'static 'trail-conn :head-id #xa1 :tail-id #x181 :flags (conn-flag cf1) :cost #x61) + (new 'static 'trail-conn :head-id #xbb :tail-id #x182 :visgroup-id #x67 :cost #x159) + (new 'static 'trail-conn :head-id #x183 :tail-id #x184 :visgroup-id #x68 :cost #xd7) + (new 'static 'trail-conn :head-id #x185 :tail-id #x186 :visgroup-id #x69 :cost #x1c9) + (new 'static 'trail-conn :head-id #x187 :tail-id #x188 :visgroup-id #x68 :cost #x1b1) + (new 'static 'trail-conn :head-id #xae :tail-id #x189 :cost #x21c) + (new 'static 'trail-conn :head-id #x9a :tail-id #x18a :cost #x249) + (new 'static 'trail-conn :head-id #x18b :tail-id #x18c :visgroup-id #x6a :cost #xfc) + (new 'static 'trail-conn :head-id #x18c :tail-id #x18d :visgroup-id #x6a :cost #x111) + (new 'static 'trail-conn :head-id #x18e :tail-id #x18f :visgroup-id #x6b :cost #x193) + (new 'static 'trail-conn :head-id #x18e :tail-id #x19c :visgroup-id #x6b :cost #x1b6) + (new 'static 'trail-conn :head-id #x18f :tail-id #x190 :visgroup-id #x6b :cost #x34d) + (new 'static 'trail-conn :head-id #x190 :tail-id #x19d :visgroup-id #x6b :cost #x1da) + (new 'static 'trail-conn :head-id #x191 :tail-id #x19b :cost #xb1) + (new 'static 'trail-conn :head-id #x193 :tail-id #x194 :visgroup-id #x6c :cost #x285) + (new 'static 'trail-conn :head-id #x194 :tail-id #x195 :visgroup-id #x6c :cost #x1e2) + (new 'static 'trail-conn :head-id #x195 :tail-id #x196 :visgroup-id #x6c :cost #x113) + (new 'static 'trail-conn :head-id #x196 :tail-id #x197 :visgroup-id #x6c :cost #x1f1) + (new 'static 'trail-conn :head-id #x198 :tail-id #x19a :visgroup-id #x6d :cost #x1c6) + (new 'static 'trail-conn :head-id #x197 :tail-id #x198 :visgroup-id #x6e :cost #x214) + (new 'static 'trail-conn :head-id #x199 :tail-id #x19a :visgroup-id #x6d :cost #x219) + (new 'static 'trail-conn :head-id #x19c :tail-id #x19d :visgroup-id #x6b :cost #x2c2) + (new 'static 'trail-conn :head-id #x19e :tail-id #x19f :visgroup-id #x6f :cost #x280) + (new 'static 'trail-conn :head-id #x19f :tail-id #x1a0 :visgroup-id #x6f :cost #x16d) + (new 'static 'trail-conn :head-id #x1a0 :tail-id #x1a1 :visgroup-id #x6f :cost #x187) + (new 'static 'trail-conn :head-id #x1a1 :tail-id #x1a2 :visgroup-id #x70 :cost #xe9) + (new 'static 'trail-conn :head-id #x1a3 :tail-id #x1a9 :cost #x57b) + (new 'static 'trail-conn :head-id #x1a2 :tail-id #x1a4 :visgroup-id #x6e :cost #x3df) + (new 'static 'trail-conn :head-id #x1a4 :tail-id #x1a5 :visgroup-id #x6d :cost #x3b0) + (new 'static 'trail-conn :head-id #x1a5 :tail-id #x1a6 :visgroup-id #x6d :cost #x172) + (new 'static 'trail-conn :head-id #x1a6 :tail-id #x1a7 :visgroup-id #x6d :cost #x6d) + (new 'static 'trail-conn :head-id #x1a8 :tail-id #x1a9 :visgroup-id #x2b :cost #x4df) + (new 'static 'trail-conn :head-id #x192 :tail-id #x1a9 :visgroup-id #x2b :cost #x1c7) + (new 'static 'trail-conn :head-id #x1aa :tail-id #x1ab :visgroup-id #x71 :cost #xa2) + (new 'static 'trail-conn :head-id #x1ac :tail-id #x1ad :visgroup-id #x72 :cost #xa2) + (new 'static 'trail-conn :head-id #x1b0 :tail-id #x1b1 :cost #x1b9) + (new 'static 'trail-conn :head-id #x1b2 :tail-id #x275 :visgroup-id #x73 :cost #x1b9) + (new 'static 'trail-conn :head-id #x1b3 :tail-id #x1b4 :cost #x78b) + (new 'static 'trail-conn :head-id #x1b5 :tail-id #x276 :cost #x139) + (new 'static 'trail-conn :head-id #x1b5 :tail-id #x1b9 :cost #x2cc) + (new 'static 'trail-conn :head-id #x1b6 :tail-id #x1d0 :visgroup-id #x4b :cost #x169) + (new 'static 'trail-conn :head-id #x1b7 :tail-id #x1b8 :visgroup-id #x74 :cost #x19f) + (new 'static 'trail-conn :head-id #x1b9 :tail-id #x1cc :visgroup-id #x75 :cost #x1f2) + (new 'static 'trail-conn :head-id #x1b3 :tail-id #x1b9 :visgroup-id #x75 :cost #x1f9) + (new 'static 'trail-conn :head-id #x1ba :tail-id #x1bb :visgroup-id #x76 :cost #x189) + (new 'static 'trail-conn :head-id #x1bb :tail-id #x1bd :visgroup-id #x77 :cost #x177) + (new 'static 'trail-conn :head-id #x1bd :tail-id #x1be :visgroup-id #x78 :cost #x4a4) + (new 'static 'trail-conn :head-id #x1be :tail-id #x1bf :visgroup-id #x79 :cost #x225) + (new 'static 'trail-conn :head-id #x1bf :tail-id #x1c0 :visgroup-id #x7a :cost #x2cf) + (new 'static 'trail-conn :head-id #x1c0 :tail-id #x1c1 :visgroup-id #x7b :cost #x631) + (new 'static 'trail-conn :head-id #x1c2 :tail-id #x1c3 :visgroup-id #x7c :cost #x7d3) + (new 'static 'trail-conn :head-id #x1c5 :tail-id #x1c6 :visgroup-id #x7d :cost #x10b) + (new 'static 'trail-conn :head-id #x1bc :tail-id #x1c5 :visgroup-id #x75 :cost #x361) + (new 'static 'trail-conn :head-id #x1c6 :tail-id #x1c7 :visgroup-id #x7d :cost #x829) + (new 'static 'trail-conn :head-id #x1c8 :tail-id #x1c9 :visgroup-id #x7d :cost #x4dc) + (new 'static 'trail-conn :head-id #x1b2 :tail-id #x1ca :visgroup-id #x73 :cost #x1e3) + (new 'static 'trail-conn :head-id #x1b1 :tail-id #x1cb :cost #x479) + (new 'static 'trail-conn :head-id #x1cb :tail-id #x1cd :cost #xda) + (new 'static 'trail-conn :head-id #x1b3 :tail-id #x1cc :visgroup-id #x75 :cost #x348) + (new 'static 'trail-conn :head-id #x1cc :tail-id #x1cd :cost #xb7) + (new 'static 'trail-conn :head-id #x1b0 :tail-id #x1ce :cost #x76f) + (new 'static 'trail-conn :head-id #x1d1 :tail-id #x277 :visgroup-id #x7e :cost #x3f3) + (new 'static 'trail-conn :head-id #x1d2 :tail-id #x1d3 :visgroup-id #x48 :cost #x169) + (new 'static 'trail-conn :head-id #x124 :tail-id #x1d4 :cost #x131) + (new 'static 'trail-conn :head-id #x1d4 :tail-id #x1d5 :visgroup-id #x47 :cost #x1f7) + (new 'static 'trail-conn :head-id #x11b :tail-id #x1d5 :visgroup-id #x47 :cost #x2ec) + (new 'static 'trail-conn :head-id #x1d6 :tail-id #x1d7 :visgroup-id #x47 :cost #x139) + (new 'static 'trail-conn :head-id #x1d8 :tail-id #x1d9 :visgroup-id #x47 :cost #x1b1) + (new 'static 'trail-conn :head-id #x1da :tail-id #x1db :visgroup-id #x46 :cost #x191) + (new 'static 'trail-conn :head-id #x1db :tail-id #x1dc :visgroup-id #x46 :cost #x191) + (new 'static 'trail-conn :head-id #x1dd :tail-id #x1de :visgroup-id #x46 :cost #xc1) + (new 'static 'trail-conn :head-id #x1de :tail-id #x1df :visgroup-id #x46 :cost #x199) + (new 'static 'trail-conn :head-id #x1e0 :tail-id #x1e1 :visgroup-id #x45 :cost #x129) + (new 'static 'trail-conn :head-id #x1e1 :tail-id #x1e2 :visgroup-id #x45 :cost #x102) + (new 'static 'trail-conn :head-id #x1e3 :tail-id #x1e4 :visgroup-id #x45 :cost #x1b1) + (new 'static 'trail-conn :head-id #x1e4 :tail-id #x1e5 :visgroup-id #x45 :cost #x231) + (new 'static 'trail-conn :head-id #x1e6 :tail-id #x1e7 :visgroup-id #x7f :cost #x94) + (new 'static 'trail-conn :head-id #x1e7 :tail-id #x1e8 :visgroup-id #x7f :cost #x219) + (new 'static 'trail-conn :head-id #x1e8 :tail-id #x1e9 :visgroup-id #x7f :cost #x241) + (new 'static 'trail-conn :head-id #x1e9 :tail-id #x1ea :visgroup-id #x7f :cost #x219) + (new 'static 'trail-conn :head-id #x1ea :tail-id #x1eb :visgroup-id #x7f :cost #xb2) + (new 'static 'trail-conn :head-id #x113 :tail-id #x1ec :cost #x1e1) + (new 'static 'trail-conn :head-id #x1ed :tail-id #x1ee :visgroup-id #x80 :cost #xf1) + (new 'static 'trail-conn :head-id #x1ee :tail-id #x1ef :visgroup-id #x80 :cost #x249) + (new 'static 'trail-conn :head-id #x1ef :tail-id #x1f0 :visgroup-id #x80 :cost #x251) + (new 'static 'trail-conn :head-id #x1f0 :tail-id #x1f1 :visgroup-id #x80 :cost #x171) + (new 'static 'trail-conn :head-id #x1f2 :tail-id #x1f3 :cost #x126) + (new 'static 'trail-conn :head-id #x1f3 :tail-id #x1f4 :cost #x4b1) + (new 'static 'trail-conn :head-id #x120 :tail-id #x1f4 :visgroup-id #x4a :cost #x150) + (new 'static 'trail-conn :head-id #x1f2 :tail-id #x1f5 :cost #x119) + (new 'static 'trail-conn :head-id #x1f4 :tail-id #x1f6 :visgroup-id #x4a :cost #x1d6) + (new 'static 'trail-conn :head-id #x110 :tail-id #x1f6 :cost #x17a) + (new 'static 'trail-conn :head-id #x1f7 :tail-id #x1f8 :visgroup-id #x81 :cost #x231) + (new 'static 'trail-conn :head-id #x1f8 :tail-id #x1f9 :visgroup-id #x81 :cost #x269) + (new 'static 'trail-conn :head-id #x1f9 :tail-id #x1fa :visgroup-id #x81 :cost #xc9) + (new 'static 'trail-conn :head-id #x1fa :tail-id #x1fb :visgroup-id #x81 :cost #xdb) + (new 'static 'trail-conn :head-id #x1fc :tail-id #x1fd :visgroup-id #x82 :cost #x259) + (new 'static 'trail-conn :head-id #x1fd :tail-id #x1fe :visgroup-id #x82 :cost #x259) + (new 'static 'trail-conn :head-id #x1fe :tail-id #x1ff :visgroup-id #x82 :cost #x121) + (new 'static 'trail-conn :head-id #x200 :tail-id #x201 :visgroup-id #x82 :cost #xe9) + (new 'static 'trail-conn :head-id #x201 :tail-id #x202 :visgroup-id #x82 :cost #x49) + (new 'static 'trail-conn :head-id #x203 :tail-id #x204 :visgroup-id #x83 :cost #x2d2) + (new 'static 'trail-conn :head-id #x203 :tail-id #x205 :visgroup-id #x83 :cost #x1b1) + (new 'static 'trail-conn :head-id #x204 :tail-id #x205 :visgroup-id #x83 :cost #x357) + (new 'static 'trail-conn :head-id #x204 :tail-id #x207 :cost #x1d9) + (new 'static 'trail-conn :head-id #x204 :tail-id #x206 :visgroup-id #x83 :cost #x1e9) + (new 'static 'trail-conn :head-id #x205 :tail-id #x206 :visgroup-id #x83 :cost #x2d1) + (new 'static 'trail-conn :head-id #x203 :tail-id #x206 :visgroup-id #x83 :cost #x357) + (new 'static 'trail-conn :head-id #x206 :tail-id #x20a :cost #x241) + (new 'static 'trail-conn :head-id #x207 :tail-id #x208 :cost #x4e1) + (new 'static 'trail-conn :head-id #x208 :tail-id #x209 :cost #x156) + (new 'static 'trail-conn :head-id #x112 :tail-id #x209 :visgroup-id #x84 :cost #x22c) + (new 'static 'trail-conn :head-id #x209 :tail-id #x20c :visgroup-id #x84 :cost #x30a) + (new 'static 'trail-conn :head-id #x20a :tail-id #x20b :cost #x529) + (new 'static 'trail-conn :head-id #x20b :tail-id #x20c :cost #x17d) + (new 'static 'trail-conn :head-id #x112 :tail-id #x20c :visgroup-id #x84 :cost #x1ed) + (new 'static 'trail-conn :head-id #x20d :tail-id #x286 :visgroup-id #x85 :cost #x122) + (new 'static 'trail-conn :head-id #x10d :tail-id #x20e :cost #x472) + (new 'static 'trail-conn :head-id #x20d :tail-id #x20e :visgroup-id #x85 :cost #x1b9) + (new 'static 'trail-conn :head-id #x20f :tail-id #x210 :cost #x21d) + (new 'static 'trail-conn :head-id #x1d5 :tail-id #x20f :cost #xa1) + (new 'static 'trail-conn :head-id #x210 :tail-id #x211 :cost #x121) + (new 'static 'trail-conn :head-id #x211 :tail-id #x212 :cost #x27a) + (new 'static 'trail-conn :head-id #x213 :tail-id #x214 :visgroup-id #x86 :cost #x251) + (new 'static 'trail-conn :head-id #x214 :tail-id #x215 :visgroup-id #x86 :cost #x261) + (new 'static 'trail-conn :head-id #x215 :tail-id #x216 :visgroup-id #x86 :cost #x111) + (new 'static 'trail-conn :head-id #x217 :tail-id #x218 :visgroup-id #x87 :cost #x261) + (new 'static 'trail-conn :head-id #x218 :tail-id #x219 :visgroup-id #x87 :cost #x261) + (new 'static 'trail-conn :head-id #x21a :tail-id #x21b :visgroup-id #x87 :cost #x101) + (new 'static 'trail-conn :head-id #x21b :tail-id #x21c :visgroup-id #x87 :cost #x109) + (new 'static 'trail-conn :head-id #x212 :tail-id #x21d :cost #x11b) + (new 'static 'trail-conn :head-id #x21d :tail-id #x21e :cost #x5c4) + (new 'static 'trail-conn :head-id #x21e :tail-id #x24f :cost #xaf) + (new 'static 'trail-conn :head-id #x21f :tail-id #x220 :cost #x4df) + (new 'static 'trail-conn :head-id #x220 :tail-id #x249 :cost #xc6) + (new 'static 'trail-conn :head-id #x221 :tail-id #x222 :cost #x3b3) + (new 'static 'trail-conn :head-id #x222 :tail-id #x223 :cost #xc9) + (new 'static 'trail-conn :head-id #x1d1 :tail-id #x224 :visgroup-id #x7e :cost #xfa) + (new 'static 'trail-conn :head-id #x225 :tail-id #x226 :visgroup-id #x88 :cost #x131) + (new 'static 'trail-conn :head-id #x225 :tail-id #x251 :visgroup-id #x88 :cost #x140) + (new 'static 'trail-conn :head-id #x227 :tail-id #x228 :visgroup-id #x89 :cost #x5cd) + (new 'static 'trail-conn :head-id #x228 :tail-id #x229 :visgroup-id #x89 :cost #x309) + (new 'static 'trail-conn :head-id #x229 :tail-id #x22a :visgroup-id #x89 :cost #x2c9) + (new 'static 'trail-conn :head-id #x227 :tail-id #x22a :visgroup-id #x89 :cost #x2a3) + (new 'static 'trail-conn :head-id #x22b :tail-id #x22d :visgroup-id #x8a :cost #x26e) + (new 'static 'trail-conn :head-id #x22b :tail-id #x239 :visgroup-id #x8a :cost #x8c) + (new 'static 'trail-conn :head-id #x22c :tail-id #x22d :visgroup-id #x8a :cost #x289) + (new 'static 'trail-conn :head-id #x22e :tail-id #x22f :visgroup-id #x8b :cost #x3a5) + (new 'static 'trail-conn :head-id #x22e :tail-id #x24e :visgroup-id #x8b :cost #x1c3) + (new 'static 'trail-conn :head-id #x22f :tail-id #x230 :visgroup-id #x8b :cost #x24a) + (new 'static 'trail-conn :head-id #x231 :tail-id #x232 :visgroup-id #x8c :cost #x247) + (new 'static 'trail-conn :head-id #x232 :tail-id #x233 :visgroup-id #x8c :cost #x15f) + (new 'static 'trail-conn :head-id #x233 :tail-id #x234 :visgroup-id #x8c :cost #xfd) + (new 'static 'trail-conn :head-id #x231 :tail-id #x234 :visgroup-id #x8c :cost #x141) + (new 'static 'trail-conn :head-id #x235 :tail-id #x236 :visgroup-id #x8d :cost #x81) + (new 'static 'trail-conn :head-id #x236 :tail-id #x237 :visgroup-id #x8e :cost #x28b) + (new 'static 'trail-conn :head-id #x237 :tail-id #x238 :visgroup-id #x8e :cost #x289) + (new 'static 'trail-conn :head-id #x235 :tail-id #x238 :visgroup-id #x8e :cost #x24c) + (new 'static 'trail-conn :head-id #x22c :tail-id #x239 :visgroup-id #x8a :cost #x131) + (new 'static 'trail-conn :head-id #x224 :tail-id #x23a :visgroup-id #x7e :cost #x242) + (new 'static 'trail-conn :head-id #x221 :tail-id #x23b :cost #xce) + (new 'static 'trail-conn :head-id #x23c :tail-id #x23d :visgroup-id #x8f :cost #x9f) + (new 'static 'trail-conn :head-id #x23d :tail-id #x23e :visgroup-id #x8f :cost #x24c) + (new 'static 'trail-conn :head-id #x23e :tail-id #x23f :visgroup-id #x8f :cost #x221) + (new 'static 'trail-conn :head-id #x23c :tail-id #x23f :visgroup-id #x8f :cost #x177) + (new 'static 'trail-conn :head-id #x240 :tail-id #x241 :visgroup-id #x90 :cost #x251) + (new 'static 'trail-conn :head-id #x241 :tail-id #x242 :visgroup-id #x90 :cost #x1be) + (new 'static 'trail-conn :head-id #x242 :tail-id #x253 :visgroup-id #x90 :cost #x1c9) + (new 'static 'trail-conn :head-id #x243 :tail-id #x279 :visgroup-id #x91 :cost #x221) + (new 'static 'trail-conn :head-id #x243 :tail-id #x244 :visgroup-id #x91 :cost #x389) + (new 'static 'trail-conn :head-id #x244 :tail-id #x245 :visgroup-id #x91 :cost #x1fa) + (new 'static 'trail-conn :head-id #x246 :tail-id #x24d :visgroup-id #x92 :cost #x214) + (new 'static 'trail-conn :head-id #x246 :tail-id #x247 :visgroup-id #x92 :cost #x159) + (new 'static 'trail-conn :head-id #x247 :tail-id #x248 :visgroup-id #x92 :cost #x221) + (new 'static 'trail-conn :head-id #x23b :tail-id #x249 :cost #x299) + (new 'static 'trail-conn :head-id #x24a :tail-id #x24c :visgroup-id #x93 :cost #x2c4) + (new 'static 'trail-conn :head-id #x24a :tail-id #x24b :visgroup-id #x93 :cost #x1c1) + (new 'static 'trail-conn :head-id #x24b :tail-id #x24c :visgroup-id #x94 :cost #x219) + (new 'static 'trail-conn :head-id #x248 :tail-id #x24d :visgroup-id #x92 :cost #x221) + (new 'static 'trail-conn :head-id #x230 :tail-id #x24e :visgroup-id #x8b :cost #x1d1) + (new 'static 'trail-conn :head-id #x21f :tail-id #x24f :cost #xbb) + (new 'static 'trail-conn :head-id #x250 :tail-id #x251 :visgroup-id #x88 :cost #x449) + (new 'static 'trail-conn :head-id #x240 :tail-id #x252 :visgroup-id #x90 :cost #x126) + (new 'static 'trail-conn :head-id #x252 :tail-id #x253 :visgroup-id #x90 :cost #x10d) + (new 'static 'trail-conn :head-id #x223 :tail-id #x254 :cost #x514) + (new 'static 'trail-conn :head-id #x105 :tail-id #x255 :visgroup-id #x3e :cost #x2a2) + (new 'static 'trail-conn :head-id #x256 :tail-id #x25d :visgroup-id #x3e :cost #xc9) + (new 'static 'trail-conn :head-id #x255 :tail-id #x256 :visgroup-id #x95 :cost #x199) + (new 'static 'trail-conn :head-id #x10a :tail-id #x256 :visgroup-id #x3e :cost #x29f) + (new 'static 'trail-conn :head-id #x257 :tail-id #x258 :visgroup-id #x3e :cost #x339) + (new 'static 'trail-conn :head-id #x257 :tail-id #x25e :visgroup-id #x3e :cost #x165) + (new 'static 'trail-conn :head-id #x257 :tail-id #x268 :visgroup-id #x40 :cost #x1b5) + (new 'static 'trail-conn :head-id #x258 :tail-id #x260 :visgroup-id #x43 :cost #x143) + (new 'static 'trail-conn :head-id #x10a :tail-id #x258 :visgroup-id #x96 :cost #x2fa) + (new 'static 'trail-conn :head-id #x259 :tail-id #x25a :visgroup-id #x41 :cost #x2d9) + (new 'static 'trail-conn :head-id #x25a :tail-id #x25b :visgroup-id #x41 :cost #x181) + (new 'static 'trail-conn :head-id #x108 :tail-id #x25a :visgroup-id #x97 :cost #x28b) + (new 'static 'trail-conn :head-id #x107 :tail-id #x25b :visgroup-id #x41 :cost #x38e) + (new 'static 'trail-conn :head-id #x259 :tail-id #x25b :visgroup-id #x41 :cost #x189) + (new 'static 'trail-conn :head-id #x258 :tail-id #x25c :visgroup-id #x3e :cost #x1d9) + (new 'static 'trail-conn :head-id #x257 :tail-id #x25c :visgroup-id #x3e :cost #x1c3) + (new 'static 'trail-conn :head-id #x10a :tail-id #x25d :visgroup-id #x3e :cost #x276) + (new 'static 'trail-conn :head-id #x258 :tail-id #x25d :visgroup-id #x3e :cost #x16d) + (new 'static 'trail-conn :head-id #x25c :tail-id #x25d :visgroup-id #x3e :cost #x14e) + (new 'static 'trail-conn :head-id #x255 :tail-id #x25e :visgroup-id #x3e :cost #xc2) + (new 'static 'trail-conn :head-id #x25c :tail-id #x25e :visgroup-id #x98 :cost #x134) + (new 'static 'trail-conn :head-id #x25f :tail-id #x267 :visgroup-id #x40 :cost #x171) + (new 'static 'trail-conn :head-id #x105 :tail-id #x25f :visgroup-id #x40 :cost #x37a) + (new 'static 'trail-conn :head-id #x106 :tail-id #x25f :visgroup-id #x40 :cost #x18d) + (new 'static 'trail-conn :head-id #x257 :tail-id #x25f :visgroup-id #x40 :cost #x143) + (new 'static 'trail-conn :head-id #x25f :tail-id #x268 :visgroup-id #x40 :cost #xe3) + (new 'static 'trail-conn :head-id #x109 :tail-id #x260 :visgroup-id #x43 :cost #x199) + (new 'static 'trail-conn :head-id #x10a :tail-id #x260 :visgroup-id #x43 :cost #x377) + (new 'static 'trail-conn :head-id #x107 :tail-id #x261 :visgroup-id #x40 :cost #x3a9) + (new 'static 'trail-conn :head-id #x259 :tail-id #x261 :visgroup-id #x40 :cost #x1e0) + (new 'static 'trail-conn :head-id #x261 :tail-id #x263 :visgroup-id #x40 :cost #xea) + (new 'static 'trail-conn :head-id #x25a :tail-id #x262 :visgroup-id #x43 :cost #x1e3) + (new 'static 'trail-conn :head-id #x109 :tail-id #x262 :visgroup-id #x43 :cost #x17c) + (new 'static 'trail-conn :head-id #x108 :tail-id #x262 :visgroup-id #x43 :cost #x395) + (new 'static 'trail-conn :head-id #x262 :tail-id #x265 :visgroup-id #x43 :cost #xa9) + (new 'static 'trail-conn :head-id #x262 :tail-id #x264 :visgroup-id #x43 :cost #xec) + (new 'static 'trail-conn :head-id #x263 :tail-id #x264 :cost #x309) + (new 'static 'trail-conn :head-id #x257 :tail-id #x263 :visgroup-id #x40 :cost #x271) + (new 'static 'trail-conn :head-id #x259 :tail-id #x263 :visgroup-id #x40 :cost #x241) + (new 'static 'trail-conn :head-id #x25a :tail-id #x264 :visgroup-id #x43 :cost #x239) + (new 'static 'trail-conn :head-id #x258 :tail-id #x264 :visgroup-id #x43 :cost #x279) + (new 'static 'trail-conn :head-id #x260 :tail-id #x265 :visgroup-id #x43 :cost #x16e) + (new 'static 'trail-conn :head-id #x109 :tail-id #x265 :visgroup-id #x43 :cost #x14c) + (new 'static 'trail-conn :head-id #x264 :tail-id #x265 :visgroup-id #x43 :cost #xb3) + (new 'static 'trail-conn :head-id #x258 :tail-id #x266 :visgroup-id #x43 :cost #x1b5) + (new 'static 'trail-conn :head-id #x260 :tail-id #x266 :visgroup-id #x43 :cost #xd8) + (new 'static 'trail-conn :head-id #x264 :tail-id #x266 :visgroup-id #x43 :cost #xf5) + (new 'static 'trail-conn :head-id #x265 :tail-id #x266 :visgroup-id #x43 :cost #xb7) + (new 'static 'trail-conn :head-id #x261 :tail-id #x267 :visgroup-id #x40 :cost #xb1) + (new 'static 'trail-conn :head-id #x263 :tail-id #x267 :visgroup-id #x40 :cost #xac) + (new 'static 'trail-conn :head-id #x267 :tail-id #x268 :visgroup-id #x40 :cost #xad) + (new 'static 'trail-conn :head-id #x263 :tail-id #x268 :visgroup-id #x40 :cost #xee) + (new 'static 'trail-conn :head-id #x59 :tail-id #x269 :visgroup-id #x18 :cost #x166) + (new 'static 'trail-conn :head-id #x15b :tail-id #x269 :cost #x291) + (new 'static 'trail-conn :head-id #x4b :tail-id #x269 :visgroup-id #x18 :cost #x183) + (new 'static 'trail-conn :head-id #x26c :tail-id #x26d :cost #x59) + (new 'static 'trail-conn :head-id #x26d :tail-id #x26e :cost #x51) + (new 'static 'trail-conn :head-id #x270 :tail-id #x271 :cost #x69) + (new 'static 'trail-conn :head-id #x271 :tail-id #x272 :cost #x61) + (new 'static 'trail-conn :head-id #x123 :tail-id #x276 :cost #x12b) + (new 'static 'trail-conn :head-id #x277 :tail-id #x278 :visgroup-id #x7e :cost #x18a) + (new 'static 'trail-conn :head-id #x23a :tail-id #x278 :visgroup-id #x7e :cost #x2e4) + (new 'static 'trail-conn :head-id #x245 :tail-id #x279 :visgroup-id #x91 :cost #x3a9) + (new 'static 'trail-conn :head-id #x27a :tail-id #x27b :visgroup-id #x99 :cost #x3f1) + (new 'static 'trail-conn :head-id #x126 :tail-id #x27c :visgroup-id #x44 :cost #x177) + (new 'static 'trail-conn :head-id #x10d :tail-id #x27c :cost #x761) + (new 'static 'trail-conn :head-id #x139 :tail-id #x27d :cost #x281) + (new 'static 'trail-conn :head-id #x14e :tail-id #x281 :visgroup-id #x58 :cost #x220) + (new 'static 'trail-conn :head-id #x131 :tail-id #x281 :visgroup-id #x4f :cost #x111) + (new 'static 'trail-conn :head-id #x27d :tail-id #x281 :visgroup-id #x58 :cost #x101) + (new 'static 'trail-conn :head-id #x20e :tail-id #x286 :visgroup-id #x85 :cost #x11c) + (new 'static 'trail-conn :head-id #x168 :tail-id #x286 :flags (conn-flag cf2) :cost #xa1) + (new 'static 'trail-conn :head-id #x287 :tail-id #x288 :flags (conn-flag cf2) :cost #xa1) + (new 'static 'trail-conn :head-id #xfb :tail-id #x288 :cost #x101) + (new 'static 'trail-conn :head-id #x289 :tail-id #x28a :visgroup-id #x30 :cost #x294) + (new 'static 'trail-conn :head-id #x28d :tail-id #x28e :visgroup-id #x9a :cost #xf9) + (new 'static 'trail-conn :head-id #x28e :tail-id #x28f :visgroup-id #x9a :cost #x1c1) + (new 'static 'trail-conn :head-id #x28f :tail-id #x290 :visgroup-id #x9b :cost #x129) + (new 'static 'trail-conn :head-id #x291 :tail-id #x292 :visgroup-id #x9c :cost #x1c1) + (new 'static 'trail-conn :head-id #x293 :tail-id #x294 :visgroup-id #x9d :cost #x309) + (new 'static 'trail-conn) + ) + :conn-ids (new 'static 'array uint16 1584 + #x0 + #x0 + #x1 + #x1 + #x2 + #x2 + #x3 + #x3 + #x4 + #x5 + #x4 + #x6 + #x7 + #x8 + #x11 + #x6 + #x9 + #xa + #xb + #x7 + #x9 + #xc + #x3b + #x8 + #xa + #xc + #xd + #x2b + #xe + #xf + #x12 + #x2c + #x5 + #xe + #x10 + #x10 + #x11 + #xd + #x12 + #x13 + #x2d + #xf + #x13 + #x14 + #x17 + #x2e + #x14 + #x15 + #x16 + #x16 + #x17 + #x18 + #x18 + #x15 + #x19 + #x19 + #x1a + #x1b + #x1a + #x1c + #x1e1 + #x1b + #x1c + #x1d + #x1d + #x1e + #x1e + #x1f + #x20 + #x1f + #x21 + #x22 + #x21 + #x23 + #x23 + #x24 + #x24 + #x25 + #x2a + #x25 + #x26 + #x27 + #x28 + #x26 + #x29 + #x2a + #x29 + #x2b + #x2c + #x2d + #x2e + #x20 + #x22 + #x2f + #x2f + #x30 + #x31 + #x30 + #x32 + #x33 + #x32 + #x34 + #x41 + #x34 + #x35 + #x42 + #x35 + #x36 + #x27 + #x36 + #x3a + #x28 + #x37 + #x38 + #x39 + #x3a + #x37 + #x3b + #x3c + #x3d + #x31 + #x33 + #x3e + #x3e + #x3f + #x1e4 + #x40 + #x44 + #x40 + #x41 + #x42 + #x3f + #x43 + #x44 + #xb + #x38 + #x3c + #x45 + #x39 + #x3d + #x45 + #x46 + #x46 + #x47 + #x48 + #x49 + #x47 + #x48 + #x49 + #x4a + #x4a + #x4b + #x4c + #x4d + #x4e + #x1e3 + #x4c + #x4f + #x50 + #x50 + #x4d + #x4f + #x51 + #x54 + #x56 + #x51 + #x52 + #x53 + #x52 + #x54 + #x55 + #x57 + #x4e + #x56 + #x57 + #x55 + #x58 + #x59 + #x58 + #x5a + #x5b + #x5c + #x5a + #x5d + #x5e + #x5f + #x53 + #x5d + #x60 + #x61 + #x5e + #x60 + #x62 + #x1dd + #x5f + #x61 + #x62 + #x63 + #x63 + #x64 + #x64 + #x65 + #x65 + #x66 + #x67 + #x68 + #x67 + #x69 + #x66 + #x6a + #x6a + #x6c + #x6b + #x6c + #x6b + #x6d + #x1d9 + #x6d + #x6e + #x1da + #x6e + #x6f + #x72 + #x6f + #x70 + #x7f + #x2fd + #x70 + #x71 + #x71 + #x72 + #x59 + #x5c + #x73 + #x5b + #x74 + #x73 + #x74 + #x75 + #x75 + #x77 + #x76 + #x1d6 + #x76 + #x77 + #x78 + #x79 + #x79 + #x7a + #x7a + #x7b + #x7c + #x7d + #x7b + #x7e + #x7e + #x7f + #x2fb + #x78 + #x7c + #x80 + #x7d + #x80 + #x81 + #x82 + #x87 + #x81 + #x83 + #x84 + #x85 + #x82 + #x83 + #x86 + #x9d + #x84 + #x86 + #x87 + #x88 + #x88 + #x89 + #x8a + #x89 + #x8b + #x8c + #x8c + #x8a + #x8b + #x8d + #x8d + #x8e + #x8e + #x8f + #x8f + #x90 + #x90 + #x91 + #x92 + #x96 + #x91 + #x93 + #x94 + #x97 + #x9a + #x93 + #x95 + #x95 + #x96 + #x97 + #x98 + #x99 + #x92 + #x9a + #x9b + #x98 + #x9b + #x9c + #x9c + #x9d + #x94 + #x9e + #xa1 + #x9e + #x9f + #x9f + #xa0 + #xa0 + #xa1 + #xa2 + #xa2 + #xb3 + #x85 + #xa3 + #x1e5 + #xa3 + #xa4 + #xa5 + #xa4 + #xa6 + #xa6 + #xa7 + #xa7 + #xa8 + #xae + #xa8 + #xa9 + #xaf + #xa9 + #xaa + #xb0 + #xaa + #xab + #xb1 + #x99 + #xac + #xac + #xad + #xad + #xae + #xaf + #xb0 + #xb1 + #xb2 + #xb2 + #xb3 + #xb4 + #xb4 + #xb5 + #xb5 + #xb6 + #xb6 + #xb7 + #xb8 + #xb7 + #xb9 + #xba + #xba + #xb8 + #xb9 + #xbb + #xbe + #xc1 + #xbc + #xbd + #xbe + #x1e8 + #xbd + #xbf + #x1de + #xbc + #xbf + #xc0 + #xc3 + #xc0 + #xc4 + #xc1 + #xc2 + #xc3 + #xc4 + #xc6 + #xc2 + #xc5 + #xc8 + #xc5 + #xc6 + #xc7 + #xc7 + #xc8 + #xc9 + #xc9 + #xcb + #xca + #xcb + #x4b + #xcc + #xcc + #xcd + #xcd + #xce + #xce + #xcf + #xd0 + #xd1 + #xf1 + #xcf + #xd0 + #xd1 + #xd2 + #xf2 + #xd2 + #xd3 + #xd4 + #xd3 + #xd5 + #xda + #xd5 + #x214 + #xd6 + #xd7 + #xd7 + #xd4 + #xd8 + #xd9 + #xda + #xe6 + #xea + #xd8 + #xdb + #xe3 + #xe7 + #xeb + #xdb + #xdc + #xdc + #xdd + #xdd + #x20e + #xde + #xe0 + #xdf + #xe0 + #xdf + #xe1 + #xe1 + #xe2 + #xd9 + #xe2 + #xe3 + #xe4 + #xe8 + #xe4 + #xe5 + #xe6 + #xe7 + #xef + #xe5 + #xe8 + #xe9 + #xea + #xeb + #xe9 + #xec + #xed + #xec + #xee + #xee + #xef + #xed + #xf0 + #xf4 + #xf0 + #xf1 + #xf2 + #xf3 + #xf3 + #xf4 + #x213 + #xf5 + #xf6 + #xf6 + #xf7 + #xf7 + #xf8 + #xf9 + #xfa + #xfa + #xfb + #xde + #xfc + #xfd + #xfe + #xfe + #xff + #xff + #x100 + #x100 + #x101 + #x101 + #x102 + #x103 + #x102 + #x104 + #x105 + #x206 + #x103 + #x104 + #x106 + #x20f + #x106 + #x107 + #x108 + #x109 + #x1fb + #x1ff + #x10a + #x10b + #x11b + #x10c + #x1f3 + #x10c + #x10d + #x10d + #x10e + #x10f + #x1f2 + #x10f + #x110 + #x110 + #x111 + #x10a + #x112 + #x113 + #x113 + #x114 + #x114 + #x115 + #x115 + #x116 + #x117 + #x118 + #x108 + #x119 + #x11a + #x1fe + #x112 + #x11a + #x11b + #x11c + #x1fa + #x116 + #x11d + #x11d + #x11e + #x11e + #x11f + #x120 + #x121 + #x122 + #x209 + #x11f + #x123 + #x121 + #x123 + #x124 + #x125 + #x126 + #x12b + #x126 + #x122 + #x124 + #x127 + #x128 + #x134 + #x120 + #x128 + #x129 + #x12a + #x12b + #x12c + #x12f + #x12c + #x12d + #x12e + #x12e + #x12f + #x130 + #x130 + #x131 + #x129 + #x131 + #x132 + #x208 + #x132 + #x133 + #x20a + #x125 + #x127 + #x133 + #x134 + #x135 + #x135 + #x10e + #x136 + #x136 + #x137 + #x137 + #x138 + #x138 + #x139 + #x13a + #x139 + #x13b + #x13c + #x13d + #x13a + #x13b + #x13e + #x13e + #x13f + #x140 + #x14e + #x13f + #x141 + #x142 + #x143 + #x140 + #x141 + #x144 + #x144 + #x146 + #x14a + #x145 + #x146 + #x13c + #x145 + #x147 + #x13d + #x147 + #x148 + #x111 + #x148 + #x149 + #x149 + #x14a + #x14b + #x1f0 + #x14b + #x14c + #x14d + #x14e + #x142 + #x14f + #x150 + #x143 + #x14d + #x14f + #x151 + #x151 + #x152 + #x152 + #x153 + #x153 + #x154 + #x154 + #x155 + #x150 + #x156 + #x156 + #x157 + #x157 + #x158 + #x159 + #x15a + #x15b + #x15c + #x15d + #x15e + #x15f + #x160 + #x161 + #x310 + #x155 + #x162 + #x162 + #x163 + #x163 + #x164 + #x164 + #x165 + #x17c + #x166 + #x167 + #x166 + #x168 + #x169 + #x16a + #x169 + #x16b + #x16c + #x16c + #x16d + #x16d + #x16e + #x16f + #x171 + #x2c7 + #x2dd + #x16b + #x170 + #x171 + #x172 + #x173 + #x2de + #x168 + #x16a + #x173 + #x174 + #x175 + #x2d3 + #x2e3 + #x165 + #x167 + #x174 + #x176 + #x177 + #x2d2 + #x2e8 + #x176 + #x178 + #x17b + #x2e1 + #x2e7 + #x2f1 + #x178 + #x179 + #x2ca + #x2cf + #x2d7 + #x2e2 + #x179 + #x17a + #x17a + #x17b + #x17c + #x283 + #x308 + #x17d + #x17e + #x17f + #x17d + #x180 + #x181 + #x269 + #x182 + #x183 + #x1e0 + #x27d + #x281 + #x195 + #x25f + #x184 + #x185 + #x186 + #x186 + #x187 + #x187 + #x188 + #x188 + #x189 + #x18a + #x191 + #x184 + #x189 + #x18b + #x18c + #x199 + #x18d + #x18e + #x24f + #x18d + #x18f + #x190 + #x18f + #x191 + #x192 + #x190 + #x192 + #x193 + #x193 + #x194 + #x195 + #x196 + #x266 + #x197 + #x197 + #x198 + #x194 + #x302 + #x18c + #x24d + #x18a + #x18b + #x199 + #x17e + #x19a + #x307 + #x1c1 + #x1d8 + #x19b + #x19c + #x1b6 + #x19b + #x19d + #x19e + #x19c + #x19d + #x19f + #x19f + #x1a0 + #x1a1 + #x1a2 + #x1a1 + #x1a3 + #x1a8 + #x1a3 + #x1a4 + #x1a5 + #x1a6 + #x1a7 + #x1a8 + #x1a9 + #x1af + #x30b + #x1aa + #x1ab + #x1aa + #x1ac + #x1ac + #x1ad + #x1a7 + #x1ad + #x1ab + #x1ae + #x1af + #x1b0 + #x1b0 + #x1b1 + #x1b2 + #x309 + #x1b1 + #x1b3 + #x1ca + #x1b3 + #x1b4 + #x1b5 + #x1be + #x1b5 + #x1b6 + #x1b7 + #x1bb + #x1b8 + #x1b9 + #x1ba + #x1a2 + #x1b4 + #x1bb + #x1bc + #x1bd + #x1bd + #x1a4 + #x1c7 + #x1a0 + #x1b7 + #x1bc + #x1be + #x19a + #x1bf + #x1c0 + #x1c1 + #x1bf + #x1c2 + #x1c3 + #x1c0 + #x1c2 + #x1c4 + #x1c4 + #x1c5 + #x1c6 + #x1c7 + #x1b9 + #x1c8 + #x1c9 + #x1d5 + #x1b2 + #x1c3 + #x1ca + #x1cb + #x1d1 + #x30a + #x1cc + #x1cc + #x1cd + #x1cd + #x1ce + #x1ce + #x1cf + #x1cf + #x1d0 + #x1d2 + #x1d1 + #x1d2 + #x1d3 + #x1d0 + #x1d3 + #x1d4 + #x1d4 + #x1d7 + #x1d5 + #x1d6 + #x1c5 + #x1d7 + #x19e + #x1d8 + #x1d9 + #x1da + #x1db + #x1db + #x2fc + #x1dc + #x1dc + #x1dd + #x1de + #x1df + #x1df + #x1e0 + #x1e1 + #x1e2 + #x1e2 + #x1e3 + #x43 + #x1e4 + #xa5 + #xab + #x1e5 + #xca + #x1e6 + #x1e6 + #x1e7 + #xbb + #x1e8 + #x1e9 + #x1ea + #x30e + #x1eb + #x1ec + #x1eb + #x1ed + #x1ed + #x1ee + #x1ef + #x1f0 + #x14c + #x1ec + #x1f1 + #x1f1 + #x11c + #x1f2 + #x1f7 + #x1f3 + #x1f4 + #x1fd + #x200 + #x203 + #x1f4 + #x1f5 + #x1f6 + #x1f7 + #x1fc + #x1f8 + #x119 + #x1f9 + #x1fa + #x1fb + #x1fc + #x1fd + #x201 + #x10b + #x1fe + #x1ff + #x1f5 + #x200 + #x201 + #x202 + #x204 + #x107 + #x1f6 + #x1f9 + #x203 + #x204 + #x109 + #x205 + #x206 + #x12a + #x12d + #x207 + #x208 + #x209 + #x20a + #x207 + #x20b + #x20b + #x20c + #x20c + #x20d + #x20d + #xfd + #x20e + #x105 + #x202 + #x205 + #x20f + #x210 + #x210 + #x211 + #x211 + #x212 + #x212 + #xf5 + #x213 + #xd6 + #x214 + #x215 + #x215 + #x216 + #x216 + #x217 + #x218 + #x217 + #x219 + #x219 + #x21a + #xfb + #x21b + #xf8 + #x22e + #x21c + #x21c + #x21d + #x21d + #x21e + #x21e + #x21f + #x21f + #x221 + #x220 + #x221 + #x222 + #x220 + #x222 + #x21b + #x218 + #x223 + #x21a + #x223 + #x224 + #x224 + #x225 + #x225 + #x226 + #x226 + #x227 + #x227 + #x229 + #xfc + #x228 + #x229 + #x22a + #x22a + #x22b + #x22b + #x22c + #x22c + #xf9 + #x22d + #x228 + #x22d + #x22e + #x22f + #x22f + #x230 + #x230 + #x68 + #x69 + #x231 + #x24a + #x231 + #x246 + #x232 + #x245 + #x233 + #x239 + #x248 + #x233 + #x234 + #x235 + #x236 + #x237 + #x237 + #x235 + #x238 + #x239 + #x23a + #x23a + #x23b + #x242 + #x23b + #x23c + #x23c + #x23d + #x23d + #x23e + #x23e + #x23f + #x23f + #x240 + #x240 + #x15b + #x241 + #x242 + #x241 + #x243 + #x243 + #x244 + #x244 + #x245 + #x246 + #x247 + #x238 + #x248 + #x249 + #x247 + #x249 + #x15c + #x24a + #x198 + #x236 + #x24b + #x297 + #x24c + #x24c + #x18e + #x24d + #x24e + #x24e + #x24f + #x286 + #x250 + #x250 + #x251 + #x251 + #x252 + #x252 + #x253 + #x253 + #x254 + #x254 + #x255 + #x255 + #x256 + #x256 + #x257 + #x257 + #x258 + #x258 + #x259 + #x259 + #x25a + #x25a + #x25b + #x25b + #x25c + #x25c + #x25d + #x25d + #x25e + #x25e + #x185 + #x25f + #x260 + #x260 + #x261 + #x261 + #x262 + #x262 + #x263 + #x263 + #x264 + #x267 + #x264 + #x265 + #x265 + #x266 + #x268 + #x183 + #x267 + #x196 + #x268 + #x269 + #x26a + #x26a + #x26b + #x26b + #x26c + #x26c + #x26d + #x26d + #x26e + #x26e + #x26f + #x26f + #x270 + #x270 + #x271 + #x271 + #x272 + #x272 + #x181 + #x273 + #x274 + #x279 + #x273 + #x275 + #x276 + #x277 + #x180 + #x274 + #x275 + #x278 + #x277 + #x278 + #x279 + #x27a + #x276 + #x27b + #x27b + #x27c + #x27c + #x27d + #x27e + #x27a + #x27f + #x27f + #x280 + #x27e + #x280 + #x281 + #x182 + #x282 + #x284 + #x283 + #x284 + #x30d + #x285 + #x286 + #x285 + #x287 + #x287 + #x288 + #x288 + #x290 + #x289 + #x289 + #x28a + #x28a + #x28b + #x28b + #x28c + #x28c + #x28d + #x28d + #x28e + #x28e + #x28f + #x28f + #x290 + #x291 + #x291 + #x292 + #x293 + #x2c2 + #x293 + #x294 + #x295 + #x2ae + #x295 + #x296 + #x296 + #x2c6 + #x297 + #x2ad + #x298 + #x299 + #x298 + #x29a + #x29d + #x29a + #x29b + #x29b + #x29c + #x29c + #x29d + #x29e + #x29f + #x2a0 + #x2ac + #x29e + #x2a0 + #x2a1 + #x2a2 + #x2a1 + #x2a3 + #x2a3 + #x2c1 + #x2a4 + #x2a7 + #x2a4 + #x2a5 + #x2a5 + #x2a6 + #x2a6 + #x2a7 + #x2a8 + #x2ab + #x2a8 + #x2a9 + #x2a9 + #x2aa + #x2aa + #x2ab + #x29f + #x2ac + #x2ad + #x304 + #x2ae + #x2bc + #x2af + #x2b2 + #x2af + #x2b0 + #x2b0 + #x2b1 + #x2b1 + #x2b2 + #x2b3 + #x2c4 + #x2b3 + #x2b4 + #x2b4 + #x2b5 + #x2b6 + #x2b7 + #x2b7 + #x2b8 + #x2b8 + #x305 + #x2b9 + #x2ba + #x2ba + #x2bb + #x2bb + #x2c0 + #x294 + #x2bc + #x2bd + #x2be + #x2be + #x2bf + #x2bd + #x2bf + #x2b9 + #x2c0 + #x2a2 + #x2c1 + #x292 + #x2c2 + #x2c3 + #x299 + #x2c3 + #x2c4 + #x2c5 + #x2b5 + #x2c5 + #x1e7 + #x2c6 + #x1ea + #x2c7 + #x2c9 + #x2da + #x1e9 + #x2c8 + #x2c9 + #x2ca + #x16f + #x2cb + #x2cc + #x2cd + #x2d6 + #x2df + #x2ec + #x2cb + #x2ce + #x2cf + #x2d5 + #x2d8 + #x2ef + #x2f3 + #x175 + #x2d0 + #x2d4 + #x2e4 + #x2ed + #x2d0 + #x2d1 + #x2d2 + #x2e6 + #x2ee + #x177 + #x2d1 + #x2d3 + #x2d4 + #x2d5 + #x2d6 + #x2d9 + #x2db + #x2c8 + #x2d7 + #x2d8 + #x2d9 + #x16e + #x2cc + #x2da + #x2db + #x2dc + #x2dd + #x2de + #x2df + #x2e0 + #x2ce + #x2e1 + #x2e2 + #x2f0 + #x2f4 + #x170 + #x2e3 + #x2e4 + #x2e5 + #x2f7 + #x2e6 + #x2e7 + #x2e8 + #x2e9 + #x2ea + #x2e5 + #x2eb + #x2ec + #x2ed + #x2f8 + #x2fa + #x2ea + #x2eb + #x2ee + #x2ef + #x2f2 + #x2f5 + #x2e9 + #x2f0 + #x2f1 + #x2f2 + #x2f6 + #x2f3 + #x2f4 + #x2f5 + #x2f6 + #x172 + #x2dc + #x2f7 + #x2f8 + #x2f9 + #x2cd + #x2e0 + #x2f9 + #x2fa + #x2fb + #x2fc + #x2fd + #x15a + #x159 + #x15d + #x2fe + #x2fe + #x2ff + #x2ff + #x15e + #x15f + #x300 + #x300 + #x301 + #x301 + #x160 + #x161 + #x232 + #x234 + #x302 + #x24b + #x303 + #x303 + #x304 + #x2b6 + #x305 + #x306 + #x306 + #x17f + #x307 + #x308 + #x1cb + #x309 + #x30c + #x1a5 + #x1c6 + #x1a9 + #x1c9 + #x1ae + #x30a + #x30b + #x30c + #x1ba + #x1b8 + #x1c8 + #x1a6 + #x282 + #x30d + #x30e + #x158 + #x30f + #x30f + #x310 + #x118 + #x311 + #x311 + #x117 + #x1f8 + #x312 + #x312 + #x313 + #x313 + #x314 + #x314 + #x315 + #x315 + #x316 + #x316 + #x1ef + #x1ee + #x0 + #x0 + ) + :visgroup (new 'static 'inline-array trail-conn-hash-cell 160 + (new 'static 'trail-conn-hash-cell :conn-count #x4) + (new 'static 'trail-conn-hash-cell :first-conn #x4 :conn-count #x4) + (new 'static 'trail-conn-hash-cell :first-conn #x8 :conn-count #x4) + (new 'static 'trail-conn-hash-cell :first-conn #xc :conn-count #x3) + (new 'static 'trail-conn-hash-cell :first-conn #xf :conn-count #x3) + (new 'static 'trail-conn-hash-cell :first-conn #x12 :conn-count #x3) + (new 'static 'trail-conn-hash-cell :first-conn #x15 :conn-count #x5) + (new 'static 'trail-conn-hash-cell :first-conn #x1a :conn-count #x3) + (new 'static 'trail-conn-hash-cell :first-conn #x1d :conn-count #x4) + (new 'static 'trail-conn-hash-cell :first-conn #x21 :conn-count #x3) + (new 'static 'trail-conn-hash-cell :first-conn #x24 :conn-count #x4) + (new 'static 'trail-conn-hash-cell :first-conn #x28 :conn-count #x6) + (new 'static 'trail-conn-hash-cell :first-conn #x2e :conn-count #x4) + (new 'static 'trail-conn-hash-cell :first-conn #x32 :conn-count #x5) + (new 'static 'trail-conn-hash-cell :first-conn #x37 :conn-count #x3) + (new 'static 'trail-conn-hash-cell :first-conn #x3a :conn-count #x4) + (new 'static 'trail-conn-hash-cell :first-conn #x3e :conn-count #x4) + (new 'static 'trail-conn-hash-cell :first-conn #x42 :conn-count #x3) + (new 'static 'trail-conn-hash-cell :first-conn #x45 :conn-count #x2) + (new 'static 'trail-conn-hash-cell :first-conn #x47 :conn-count #x2) + (new 'static 'trail-conn-hash-cell :first-conn #x49 :conn-count #x3) + (new 'static 'trail-conn-hash-cell :first-conn #x4c :conn-count #x4) + (new 'static 'trail-conn-hash-cell :first-conn #x50 :conn-count #x3) + (new 'static 'trail-conn-hash-cell :first-conn #x53 :conn-count #x3) + (new 'static 'trail-conn-hash-cell :first-conn #x56 :conn-count #x4) + (new 'static 'trail-conn-hash-cell :first-conn #x5a :conn-count #x3) + (new 'static 'trail-conn-hash-cell :first-conn #x5d :conn-count #x5) + (new 'static 'trail-conn-hash-cell :first-conn #x62 :conn-count #x6) + (new 'static 'trail-conn-hash-cell :first-conn #x68 :conn-count #x5) + (new 'static 'trail-conn-hash-cell :first-conn #x6d :conn-count #x4) + (new 'static 'trail-conn-hash-cell :first-conn #x71 :conn-count #x4) + (new 'static 'trail-conn-hash-cell :first-conn #x75 :conn-count #x3) + (new 'static 'trail-conn-hash-cell :first-conn #x78 :conn-count #x3) + (new 'static 'trail-conn-hash-cell :first-conn #x7b :conn-count #x3) + (new 'static 'trail-conn-hash-cell :first-conn #x7e :conn-count #x5) + (new 'static 'trail-conn-hash-cell :first-conn #x83 :conn-count #xd) + (new 'static 'trail-conn-hash-cell :first-conn #x90 :conn-count #x5) + (new 'static 'trail-conn-hash-cell :first-conn #x95 :conn-count #x5) + (new 'static 'trail-conn-hash-cell :first-conn #x9a :conn-count #x3) + (new 'static 'trail-conn-hash-cell :first-conn #x9d :conn-count #x3) + (new 'static 'trail-conn-hash-cell :first-conn #xa0 :conn-count #x5) + (new 'static 'trail-conn-hash-cell :first-conn #xa5 :conn-count #x3) + (new 'static 'trail-conn-hash-cell :first-conn #xa8 :conn-count #x4) + (new 'static 'trail-conn-hash-cell :first-conn #xac :conn-count #x3) + (new 'static 'trail-conn-hash-cell :first-conn #xaf :conn-count #x4) + (new 'static 'trail-conn-hash-cell :first-conn #xb3 :conn-count #x4) + (new 'static 'trail-conn-hash-cell :first-conn #xb7 :conn-count #x4) + (new 'static 'trail-conn-hash-cell :first-conn #xbb :conn-count #x3) + (new 'static 'trail-conn-hash-cell :first-conn #xbe :conn-count #x5) + (new 'static 'trail-conn-hash-cell :first-conn #xc3 :conn-count #x3) + (new 'static 'trail-conn-hash-cell :first-conn #xc6 :conn-count #xa) + (new 'static 'trail-conn-hash-cell :first-conn #xd0 :conn-count #x6) + (new 'static 'trail-conn-hash-cell :first-conn #xd6 :conn-count #xb) + (new 'static 'trail-conn-hash-cell :first-conn #xe1 :conn-count #x3) + (new 'static 'trail-conn-hash-cell :first-conn #xe4 :conn-count #x3) + (new 'static 'trail-conn-hash-cell :first-conn #xe7 :conn-count #x6) + (new 'static 'trail-conn-hash-cell :first-conn #xed :conn-count #x4) + (new 'static 'trail-conn-hash-cell :first-conn #xf1 :conn-count #x5) + (new 'static 'trail-conn-hash-cell :first-conn #xf6 :conn-count #x2) + (new 'static 'trail-conn-hash-cell :first-conn #xf8 :conn-count #x2) + (new 'static 'trail-conn-hash-cell :first-conn #xfa :conn-count #x2) + (new 'static 'trail-conn-hash-cell :first-conn #xfc :conn-count #x9) + (new 'static 'trail-conn-hash-cell :first-conn #x105 :conn-count #x11) + (new 'static 'trail-conn-hash-cell :first-conn #x116 :conn-count #xa) + (new 'static 'trail-conn-hash-cell :first-conn #x120 :conn-count #x5) + (new 'static 'trail-conn-hash-cell :first-conn #x125 :conn-count #xd) + (new 'static 'trail-conn-hash-cell :first-conn #x132 :conn-count #xa) + (new 'static 'trail-conn-hash-cell :first-conn #x13c :conn-count #x3) + (new 'static 'trail-conn-hash-cell :first-conn #x13f :conn-count #x2) + (new 'static 'trail-conn-hash-cell :first-conn #x141 :conn-count #x3) + (new 'static 'trail-conn-hash-cell :first-conn #x144 :conn-count #x3) + (new 'static 'trail-conn-hash-cell :first-conn #x147 :conn-count #x3) + (new 'static 'trail-conn-hash-cell :first-conn #x14a :conn-count #x4) + (new 'static 'trail-conn-hash-cell :first-conn #x14e :conn-count #x3) + (new 'static 'trail-conn-hash-cell :first-conn #x151 :conn-count #x2) + (new 'static 'trail-conn-hash-cell :first-conn #x153 :conn-count #x3) + (new 'static 'trail-conn-hash-cell :first-conn #x156 :conn-count #x3) + (new 'static 'trail-conn-hash-cell :first-conn #x159 :conn-count #x2) + (new 'static 'trail-conn-hash-cell :first-conn #x15b :conn-count #x3) + (new 'static 'trail-conn-hash-cell :first-conn #x15e :conn-count #x2) + (new 'static 'trail-conn-hash-cell :first-conn #x160 :conn-count #x3) + (new 'static 'trail-conn-hash-cell :first-conn #x163 :conn-count #x4) + (new 'static 'trail-conn-hash-cell :first-conn #x167 :conn-count #x2) + (new 'static 'trail-conn-hash-cell :first-conn #x169 :conn-count #x2) + (new 'static 'trail-conn-hash-cell :first-conn #x16b :conn-count #x3) + (new 'static 'trail-conn-hash-cell :first-conn #x16e :conn-count #x2) + (new 'static 'trail-conn-hash-cell :first-conn #x170 :conn-count #x2) + (new 'static 'trail-conn-hash-cell :first-conn #x172 :conn-count #x3) + (new 'static 'trail-conn-hash-cell :first-conn #x175 :conn-count #x3) + (new 'static 'trail-conn-hash-cell :first-conn #x178 :conn-count #x3) + (new 'static 'trail-conn-hash-cell :first-conn #x17b :conn-count #x3) + (new 'static 'trail-conn-hash-cell :first-conn #x17e :conn-count #x2) + (new 'static 'trail-conn-hash-cell :first-conn #x180 :conn-count #x3) + (new 'static 'trail-conn-hash-cell :first-conn #x183 :conn-count #x1) + (new 'static 'trail-conn-hash-cell :first-conn #x184 :conn-count #x2) + (new 'static 'trail-conn-hash-cell :first-conn #x186 :conn-count #x4) + (new 'static 'trail-conn-hash-cell :first-conn #x18a :conn-count #x2) + (new 'static 'trail-conn-hash-cell :first-conn #x18c :conn-count #x5) + (new 'static 'trail-conn-hash-cell :first-conn #x191 :conn-count #x2) + (new 'static 'trail-conn-hash-cell :first-conn #x193 :conn-count #x3) + (new 'static 'trail-conn-hash-cell :first-conn #x196 :conn-count #x3) + (new 'static 'trail-conn-hash-cell :first-conn #x199 :conn-count #x3) + (new 'static 'trail-conn-hash-cell :first-conn #x19c :conn-count #x3) + (new 'static 'trail-conn-hash-cell :first-conn #x19f :conn-count #x2) + (new 'static 'trail-conn-hash-cell :first-conn #x1a1 :conn-count #x2) + (new 'static 'trail-conn-hash-cell :first-conn #x1a3 :conn-count #x2) + (new 'static 'trail-conn-hash-cell :first-conn #x1a5 :conn-count #x2) + (new 'static 'trail-conn-hash-cell :first-conn #x1a7 :conn-count #x2) + (new 'static 'trail-conn-hash-cell :first-conn #x1a9 :conn-count #x2) + (new 'static 'trail-conn-hash-cell :first-conn #x1ab :conn-count #x3) + (new 'static 'trail-conn-hash-cell :first-conn #x1ae :conn-count #x2) + (new 'static 'trail-conn-hash-cell :first-conn #x1b0 :conn-count #x3) + (new 'static 'trail-conn-hash-cell :first-conn #x1b3 :conn-count #x2) + (new 'static 'trail-conn-hash-cell :first-conn #x1b5 :conn-count #x2) + (new 'static 'trail-conn-hash-cell :first-conn #x1b7 :conn-count #x3) + (new 'static 'trail-conn-hash-cell :first-conn #x1ba :conn-count #x2) + (new 'static 'trail-conn-hash-cell :first-conn #x1bc :conn-count #x3) + (new 'static 'trail-conn-hash-cell :first-conn #x1bf :conn-count #x4) + (new 'static 'trail-conn-hash-cell :first-conn #x1c3 :conn-count #x3) + (new 'static 'trail-conn-hash-cell :first-conn #x1c6 :conn-count #x2) + (new 'static 'trail-conn-hash-cell :first-conn #x1c8 :conn-count #x3) + (new 'static 'trail-conn-hash-cell :first-conn #x1cb :conn-count #x3) + (new 'static 'trail-conn-hash-cell :first-conn #x1ce :conn-count #x2) + (new 'static 'trail-conn-hash-cell :first-conn #x1d0 :conn-count #x2) + (new 'static 'trail-conn-hash-cell :first-conn #x1d2 :conn-count #x2) + (new 'static 'trail-conn-hash-cell :first-conn #x1d4 :conn-count #x3) + (new 'static 'trail-conn-hash-cell :first-conn #x1d7 :conn-count #x1) + (new 'static 'trail-conn-hash-cell :first-conn #x1d8 :conn-count #x2) + (new 'static 'trail-conn-hash-cell :first-conn #x1da :conn-count #x2) + (new 'static 'trail-conn-hash-cell :first-conn #x1dc :conn-count #x2) + (new 'static 'trail-conn-hash-cell :first-conn #x1de :conn-count #x4) + (new 'static 'trail-conn-hash-cell :first-conn #x1e2 :conn-count #x3) + (new 'static 'trail-conn-hash-cell :first-conn #x1e5 :conn-count #x3) + (new 'static 'trail-conn-hash-cell :first-conn #x1e8 :conn-count #x2) + (new 'static 'trail-conn-hash-cell :first-conn #x1ea :conn-count #x2) + (new 'static 'trail-conn-hash-cell :first-conn #x1ec :conn-count #x2) + (new 'static 'trail-conn-hash-cell :first-conn #x1ee :conn-count #x3) + (new 'static 'trail-conn-hash-cell :first-conn #x1f1 :conn-count #x4) + (new 'static 'trail-conn-hash-cell :first-conn #x1f5 :conn-count #x2) + (new 'static 'trail-conn-hash-cell :first-conn #x1f7 :conn-count #x5) + (new 'static 'trail-conn-hash-cell :first-conn #x1fc :conn-count #x3) + (new 'static 'trail-conn-hash-cell :first-conn #x1ff :conn-count #x3) + (new 'static 'trail-conn-hash-cell :first-conn #x202 :conn-count #x3) + (new 'static 'trail-conn-hash-cell :first-conn #x205 :conn-count #x3) + (new 'static 'trail-conn-hash-cell :first-conn #x208 :conn-count #x2) + (new 'static 'trail-conn-hash-cell :first-conn #x20a :conn-count #x3) + (new 'static 'trail-conn-hash-cell :first-conn #x20d :conn-count #x3) + (new 'static 'trail-conn-hash-cell :first-conn #x210 :conn-count #x3) + (new 'static 'trail-conn-hash-cell :first-conn #x213 :conn-count #xa) + (new 'static 'trail-conn-hash-cell :first-conn #x21d :conn-count #x11) + (new 'static 'trail-conn-hash-cell :first-conn #x22e :conn-count #xd) + (new 'static 'trail-conn-hash-cell :first-conn #x23b :conn-count #x8) + (new 'static 'trail-conn-hash-cell :first-conn #x243 :conn-count #x3) + (new 'static 'trail-conn-hash-cell :first-conn #x246 :conn-count #x2) + (new 'static 'trail-conn-hash-cell :first-conn #x248 :conn-count #x3) + (new 'static 'trail-conn-hash-cell :first-conn #x24b :conn-count #x2) + (new 'static 'trail-conn-hash-cell :first-conn #x24d :conn-count #x2) + (new 'static 'trail-conn-hash-cell) + (new 'static 'trail-conn-hash-cell) + (new 'static 'trail-conn-hash-cell) + ) + :visnode-ids (new 'static 'array uint16 592 + #x4 + #x5 + #xa + #xb + #x5 + #x6 + #x7 + #x8 + #x9 + #xc + #xd + #x1d + #xd + #xe + #xf + #x12 + #x13 + #x14 + #x1a + #x1b + #x1c + #x8 + #x9 + #xc + #xd + #x1d + #x21 + #x22 + #x2a + #x25 + #x26 + #x2c + #x2d + #x28 + #x2b + #x163 + #x33 + #x34 + #x36 + #x39 + #x33 + #x34 + #x36 + #x37 + #x38 + #x39 + #x36 + #x37 + #x38 + #x39 + #x33 + #x36 + #x37 + #x38 + #x39 + #x3a + #x3b + #x4e + #x3a + #x3b + #x4e + #x50 + #x3c + #x3d + #x3e + #x3f + #x42 + #x45 + #x46 + #x42 + #x45 + #x45 + #x46 + #x48 + #x49 + #x15a + #x4a + #x4b + #x4c + #x4d + #x3b + #x4e + #x50 + #x4b + #x59 + #x269 + #x5b + #x5c + #x5d + #x5e + #x5f + #x60 + #x62 + #x66 + #x67 + #x68 + #x69 + #x6a + #x66 + #x67 + #x68 + #x69 + #x6a + #x6b + #x67 + #x68 + #x69 + #x6a + #x6b + #x68 + #x69 + #x6a + #x6b + #x6d + #x6e + #x6f + #x70 + #x72 + #x73 + #x164 + #x76 + #x77 + #x7c + #x78 + #x79 + #x7d + #x82 + #x83 + #x84 + #x85 + #x8d + #x82 + #x83 + #x84 + #x85 + #x86 + #x87 + #x88 + #x89 + #x8a + #x8b + #x8c + #x8d + #x167 + #x84 + #x86 + #x87 + #x88 + #x8d + #x84 + #x8a + #x8b + #x8c + #x8d + #x95 + #x97 + #xad + #x98 + #x99 + #x9d + #x9d + #x9e + #xa6 + #xa7 + #xa8 + #xac + #xad + #xae + #xb2 + #x192 + #x1a8 + #x1a9 + #xb9 + #xba + #xbb + #xb9 + #xba + #xbb + #x182 + #xba + #xbb + #x17a + #x182 + #xbd + #xca + #x176 + #x177 + #xbe + #xc5 + #xcb + #xbd + #xca + #xcb + #x176 + #x177 + #xca + #xcb + #x176 + #xce + #xcf + #xd0 + #xd2 + #xd3 + #xd4 + #xd9 + #xda + #xdb + #x17b + #xce + #xcf + #xd0 + #xd2 + #xd3 + #xdb + #xce + #xcf + #xd0 + #xd2 + #xd3 + #xd4 + #xd9 + #xda + #xdb + #x17b + #x17c + #xe1 + #xe2 + #xe3 + #xe2 + #xea + #xeb + #xe4 + #xe5 + #xe6 + #xf1 + #xf2 + #xf3 + #xea + #xeb + #xec + #xed + #xe7 + #xe9 + #xea + #xeb + #xec + #xf6 + #xf7 + #xf7 + #xfc + #xfc + #xfd + #x105 + #x10a + #x255 + #x256 + #x257 + #x258 + #x25c + #x25d + #x25e + #x105 + #x106 + #x107 + #x10a + #x255 + #x256 + #x257 + #x258 + #x259 + #x25c + #x25d + #x25e + #x25f + #x261 + #x263 + #x267 + #x268 + #x105 + #x106 + #x107 + #x257 + #x259 + #x25f + #x261 + #x263 + #x267 + #x268 + #x107 + #x108 + #x259 + #x25a + #x25b + #x105 + #x106 + #x107 + #x108 + #x257 + #x259 + #x25a + #x25b + #x25f + #x261 + #x263 + #x267 + #x268 + #x108 + #x109 + #x10a + #x258 + #x25a + #x260 + #x262 + #x264 + #x265 + #x266 + #x10e + #x126 + #x27c + #x116 + #x117 + #x118 + #x119 + #x125 + #x11b + #x1d4 + #x1d5 + #x11c + #x11d + #x11e + #x11f + #x121 + #x122 + #x123 + #x120 + #x1f4 + #x1f6 + #x11f + #x123 + #x128 + #x129 + #x12a + #x14f + #x150 + #x151 + #x150 + #x151 + #x131 + #x136 + #x281 + #x12d + #x130 + #x139 + #x13a + #x14d + #x13b + #x13c + #x13f + #x144 + #x14c + #x157 + #x12e + #x142 + #x145 + #x146 + #x147 + #x156 + #x158 + #x126 + #x145 + #x14e + #x27d + #x281 + #x153 + #x154 + #x155 + #x57 + #x5a + #x5b + #x168 + #x255 + #x256 + #xf9 + #xfa + #xf2 + #xf8 + #xf9 + #xf1 + #xbc + #x179 + #xe0 + #xe1 + #xe2 + #xe3 + #xf8 + #xf9 + #x173 + #x174 + #x176 + #x178 + #x179 + #xc3 + #xc4 + #xbd + #xca + #x176 + #xbd + #xca + #x177 + #xba + #x17a + #x182 + #xba + #xbb + #x182 + #xa0 + #xa1 + #xb5 + #x181 + #x9e + #x9f + #xb3 + #x191 + #x1a3 + #x1a9 + #xb4 + #x1a3 + #xb4 + #x1a3 + #x1a9 + #x1a8 + #x1a9 + #x1a3 + #x1a8 + #x1a9 + #x13 + #x161 + #x33 + #x162 + #x1b5 + #x1b9 + #x276 + #x1b5 + #x276 + #x1b3 + #x1b9 + #x1cc + #x1b9 + #x1cb + #x1cc + #x1cd + #x1b1 + #x1cb + #x1cd + #x1b1 + #x1cb + #x1b0 + #x1b1 + #x1cb + #x1b0 + #x1b1 + #x1ce + #x1b0 + #x1ce + #xfb + #x1b0 + #x1b3 + #x1b4 + #x220 + #x23b + #x249 + #x115 + #x114 + #x1ec + #x113 + #x120 + #x11a + #x124 + #x203 + #x204 + #x205 + #x206 + #x112 + #x209 + #x20c + #x20d + #x20e + #x286 + #x20f + #x210 + #x211 + #x212 + #x21d + #x21e + #x21d + #x21e + #x24f + #x21d + #x21e + #x21f + #x24f + #x21f + #x220 + #x21d + #x21e + #x21f + #x220 + #x24f + #x21e + #x21f + #x220 + #x21f + #x220 + #x24f + #x21f + #x220 + #x249 + #x221 + #x23b + #x249 + #x221 + #x222 + #x221 + #x222 + #x23b + #x221 + #x222 + #x223 + #x222 + #x223 + #x245 + #x105 + #x10a + #x168 + #x255 + #x256 + #x257 + #x258 + #x25c + #x25d + #x25e + #x105 + #x108 + #x109 + #x10a + #x255 + #x256 + #x257 + #x258 + #x25a + #x25c + #x25d + #x25e + #x260 + #x262 + #x264 + #x265 + #x266 + #x107 + #x108 + #x109 + #x10a + #x258 + #x259 + #x25a + #x25b + #x260 + #x262 + #x264 + #x265 + #x266 + #x105 + #x10a + #x255 + #x256 + #x257 + #x258 + #x25d + #x25e + #x166 + #x223 + #x254 + #xc7 + #xc8 + #xc6 + #xc7 + #xc8 + #xc2 + #xc3 + #xc1 + #xde + #x0 + ) + :conn-hash (new 'static 'trail-conn-hash + :cell-width (meters 171.0312) + :origin (new 'static 'vector :x -4150270.0 :z -3253246.2 :w 1.0) + :cell (new 'static 'inline-array trail-conn-hash-cell 256 + (new 'static 'trail-conn-hash-cell) + (new 'static 'trail-conn-hash-cell) + (new 'static 'trail-conn-hash-cell) + (new 'static 'trail-conn-hash-cell) + (new 'static 'trail-conn-hash-cell) + (new 'static 'trail-conn-hash-cell) + (new 'static 'trail-conn-hash-cell :conn-count #x7) + (new 'static 'trail-conn-hash-cell :first-conn #x7 :conn-count #xe) + (new 'static 'trail-conn-hash-cell :first-conn #x15 :conn-count #x5) + (new 'static 'trail-conn-hash-cell :first-conn #x1a :conn-count #x9) + (new 'static 'trail-conn-hash-cell :first-conn #x23) + (new 'static 'trail-conn-hash-cell :first-conn #x23) + (new 'static 'trail-conn-hash-cell :first-conn #x23) + (new 'static 'trail-conn-hash-cell :first-conn #x23) + (new 'static 'trail-conn-hash-cell :first-conn #x23) + (new 'static 'trail-conn-hash-cell :first-conn #x23) + (new 'static 'trail-conn-hash-cell :first-conn #x23) + (new 'static 'trail-conn-hash-cell :first-conn #x23) + (new 'static 'trail-conn-hash-cell :first-conn #x23) + (new 'static 'trail-conn-hash-cell :first-conn #x23) + (new 'static 'trail-conn-hash-cell :first-conn #x23) + (new 'static 'trail-conn-hash-cell :first-conn #x23) + (new 'static 'trail-conn-hash-cell :first-conn #x23 :conn-count #x9) + (new 'static 'trail-conn-hash-cell :first-conn #x2c :conn-count #xc) + (new 'static 'trail-conn-hash-cell :first-conn #x38 :conn-count #x8) + (new 'static 'trail-conn-hash-cell :first-conn #x40 :conn-count #x9) + (new 'static 'trail-conn-hash-cell :first-conn #x49 :conn-count #x2) + (new 'static 'trail-conn-hash-cell :first-conn #x4b) + (new 'static 'trail-conn-hash-cell :first-conn #x4b) + (new 'static 'trail-conn-hash-cell :first-conn #x4b) + (new 'static 'trail-conn-hash-cell :first-conn #x4b) + (new 'static 'trail-conn-hash-cell :first-conn #x4b) + (new 'static 'trail-conn-hash-cell :first-conn #x4b) + (new 'static 'trail-conn-hash-cell :first-conn #x4b) + (new 'static 'trail-conn-hash-cell :first-conn #x4b) + (new 'static 'trail-conn-hash-cell :first-conn #x4b :conn-count #x1) + (new 'static 'trail-conn-hash-cell :first-conn #x4c :conn-count #x9) + (new 'static 'trail-conn-hash-cell :first-conn #x55 :conn-count #x8) + (new 'static 'trail-conn-hash-cell :first-conn #x5d :conn-count #xb) + (new 'static 'trail-conn-hash-cell :first-conn #x68 :conn-count #xc) + (new 'static 'trail-conn-hash-cell :first-conn #x74 :conn-count #xe) + (new 'static 'trail-conn-hash-cell :first-conn #x82 :conn-count #xf) + (new 'static 'trail-conn-hash-cell :first-conn #x91 :conn-count #x9) + (new 'static 'trail-conn-hash-cell :first-conn #x9a) + (new 'static 'trail-conn-hash-cell :first-conn #x9a) + (new 'static 'trail-conn-hash-cell :first-conn #x9a) + (new 'static 'trail-conn-hash-cell :first-conn #x9a) + (new 'static 'trail-conn-hash-cell :first-conn #x9a) + (new 'static 'trail-conn-hash-cell :first-conn #x9a) + (new 'static 'trail-conn-hash-cell :first-conn #x9a) + (new 'static 'trail-conn-hash-cell :first-conn #x9a) + (new 'static 'trail-conn-hash-cell :first-conn #x9a :conn-count #x2) + (new 'static 'trail-conn-hash-cell :first-conn #x9c :conn-count #x10) + (new 'static 'trail-conn-hash-cell :first-conn #xac :conn-count #xe) + (new 'static 'trail-conn-hash-cell :first-conn #xba :conn-count #x20) + (new 'static 'trail-conn-hash-cell :first-conn #xda :conn-count #xd) + (new 'static 'trail-conn-hash-cell :first-conn #xe7 :conn-count #xa) + (new 'static 'trail-conn-hash-cell :first-conn #xf1 :conn-count #x17) + (new 'static 'trail-conn-hash-cell :first-conn #x108 :conn-count #x5) + (new 'static 'trail-conn-hash-cell :first-conn #x10d) + (new 'static 'trail-conn-hash-cell :first-conn #x10d) + (new 'static 'trail-conn-hash-cell :first-conn #x10d) + (new 'static 'trail-conn-hash-cell :first-conn #x10d) + (new 'static 'trail-conn-hash-cell :first-conn #x10d) + (new 'static 'trail-conn-hash-cell :first-conn #x10d) + (new 'static 'trail-conn-hash-cell :first-conn #x10d) + (new 'static 'trail-conn-hash-cell :first-conn #x10d) + (new 'static 'trail-conn-hash-cell :first-conn #x10d :conn-count #xc) + (new 'static 'trail-conn-hash-cell :first-conn #x119 :conn-count #x7) + (new 'static 'trail-conn-hash-cell :first-conn #x120 :conn-count #x7) + (new 'static 'trail-conn-hash-cell :first-conn #x127 :conn-count #x17) + (new 'static 'trail-conn-hash-cell :first-conn #x13e :conn-count #x6) + (new 'static 'trail-conn-hash-cell :first-conn #x144 :conn-count #x8) + (new 'static 'trail-conn-hash-cell :first-conn #x14c :conn-count #x6) + (new 'static 'trail-conn-hash-cell :first-conn #x152 :conn-count #x6) + (new 'static 'trail-conn-hash-cell :first-conn #x158) + (new 'static 'trail-conn-hash-cell :first-conn #x158 :conn-count #x6) + (new 'static 'trail-conn-hash-cell :first-conn #x15e) + (new 'static 'trail-conn-hash-cell :first-conn #x15e) + (new 'static 'trail-conn-hash-cell :first-conn #x15e) + (new 'static 'trail-conn-hash-cell :first-conn #x15e) + (new 'static 'trail-conn-hash-cell :first-conn #x15e) + (new 'static 'trail-conn-hash-cell :first-conn #x15e) + (new 'static 'trail-conn-hash-cell :first-conn #x15e :conn-count #x12) + (new 'static 'trail-conn-hash-cell :first-conn #x170 :conn-count #x6) + (new 'static 'trail-conn-hash-cell :first-conn #x176 :conn-count #xa) + (new 'static 'trail-conn-hash-cell :first-conn #x180 :conn-count #x1d) + (new 'static 'trail-conn-hash-cell :first-conn #x19d :conn-count #x1e) + (new 'static 'trail-conn-hash-cell :first-conn #x1bb) + (new 'static 'trail-conn-hash-cell :first-conn #x1bb) + (new 'static 'trail-conn-hash-cell :first-conn #x1bb :conn-count #x8) + (new 'static 'trail-conn-hash-cell :first-conn #x1c3 :conn-count #x12) + (new 'static 'trail-conn-hash-cell :first-conn #x1d5 :conn-count #x18) + (new 'static 'trail-conn-hash-cell :first-conn #x1ed) + (new 'static 'trail-conn-hash-cell :first-conn #x1ed) + (new 'static 'trail-conn-hash-cell :first-conn #x1ed) + (new 'static 'trail-conn-hash-cell :first-conn #x1ed) + (new 'static 'trail-conn-hash-cell :first-conn #x1ed) + (new 'static 'trail-conn-hash-cell :first-conn #x1ed) + (new 'static 'trail-conn-hash-cell :first-conn #x1ed :conn-count #x2) + (new 'static 'trail-conn-hash-cell :first-conn #x1ef :conn-count #xb) + (new 'static 'trail-conn-hash-cell :first-conn #x1fa :conn-count #x9) + (new 'static 'trail-conn-hash-cell :first-conn #x203 :conn-count #x14) + (new 'static 'trail-conn-hash-cell :first-conn #x217 :conn-count #x1a) + (new 'static 'trail-conn-hash-cell :first-conn #x231) + (new 'static 'trail-conn-hash-cell :first-conn #x231) + (new 'static 'trail-conn-hash-cell :first-conn #x231 :conn-count #xa) + (new 'static 'trail-conn-hash-cell :first-conn #x23b :conn-count #x13) + (new 'static 'trail-conn-hash-cell :first-conn #x24e :conn-count #x10) + (new 'static 'trail-conn-hash-cell :first-conn #x25e) + (new 'static 'trail-conn-hash-cell :first-conn #x25e) + (new 'static 'trail-conn-hash-cell :first-conn #x25e) + (new 'static 'trail-conn-hash-cell :first-conn #x25e) + (new 'static 'trail-conn-hash-cell :first-conn #x25e) + (new 'static 'trail-conn-hash-cell :first-conn #x25e) + (new 'static 'trail-conn-hash-cell :first-conn #x25e :conn-count #x5) + (new 'static 'trail-conn-hash-cell :first-conn #x263 :conn-count #x14) + (new 'static 'trail-conn-hash-cell :first-conn #x277 :conn-count #x9) + (new 'static 'trail-conn-hash-cell :first-conn #x280 :conn-count #x7) + (new 'static 'trail-conn-hash-cell :first-conn #x287 :conn-count #x4) + (new 'static 'trail-conn-hash-cell :first-conn #x28b :conn-count #x13) + (new 'static 'trail-conn-hash-cell :first-conn #x29e :conn-count #xc) + (new 'static 'trail-conn-hash-cell :first-conn #x2aa :conn-count #xd) + (new 'static 'trail-conn-hash-cell :first-conn #x2b7 :conn-count #x14) + (new 'static 'trail-conn-hash-cell :first-conn #x2cb :conn-count #xe) + (new 'static 'trail-conn-hash-cell :first-conn #x2d9) + (new 'static 'trail-conn-hash-cell :first-conn #x2d9) + (new 'static 'trail-conn-hash-cell :first-conn #x2d9) + (new 'static 'trail-conn-hash-cell :first-conn #x2d9) + (new 'static 'trail-conn-hash-cell :first-conn #x2d9) + (new 'static 'trail-conn-hash-cell :first-conn #x2d9) + (new 'static 'trail-conn-hash-cell :first-conn #x2d9 :conn-count #x3) + (new 'static 'trail-conn-hash-cell :first-conn #x2dc :conn-count #x17) + (new 'static 'trail-conn-hash-cell :first-conn #x2f3 :conn-count #xe) + (new 'static 'trail-conn-hash-cell :first-conn #x301 :conn-count #x5) + (new 'static 'trail-conn-hash-cell :first-conn #x306) + (new 'static 'trail-conn-hash-cell :first-conn #x306 :conn-count #x18) + (new 'static 'trail-conn-hash-cell :first-conn #x31e :conn-count #x16) + (new 'static 'trail-conn-hash-cell :first-conn #x334 :conn-count #x11) + (new 'static 'trail-conn-hash-cell :first-conn #x345 :conn-count #x6) + (new 'static 'trail-conn-hash-cell :first-conn #x34b :conn-count #x9) + (new 'static 'trail-conn-hash-cell :first-conn #x354) + (new 'static 'trail-conn-hash-cell :first-conn #x354) + (new 'static 'trail-conn-hash-cell :first-conn #x354) + (new 'static 'trail-conn-hash-cell :first-conn #x354) + (new 'static 'trail-conn-hash-cell :first-conn #x354) + (new 'static 'trail-conn-hash-cell :first-conn #x354) + (new 'static 'trail-conn-hash-cell :first-conn #x354 :conn-count #x4) + (new 'static 'trail-conn-hash-cell :first-conn #x358 :conn-count #x11) + (new 'static 'trail-conn-hash-cell :first-conn #x369 :conn-count #xa) + (new 'static 'trail-conn-hash-cell :first-conn #x373 :conn-count #x9) + (new 'static 'trail-conn-hash-cell :first-conn #x37c :conn-count #x8) + (new 'static 'trail-conn-hash-cell :first-conn #x384 :conn-count #x2) + (new 'static 'trail-conn-hash-cell :first-conn #x386 :conn-count #x5) + (new 'static 'trail-conn-hash-cell :first-conn #x38b :conn-count #x9) + (new 'static 'trail-conn-hash-cell :first-conn #x394 :conn-count #x15) + (new 'static 'trail-conn-hash-cell :first-conn #x3a9 :conn-count #xa) + (new 'static 'trail-conn-hash-cell :first-conn #x3b3) + (new 'static 'trail-conn-hash-cell :first-conn #x3b3) + (new 'static 'trail-conn-hash-cell :first-conn #x3b3) + (new 'static 'trail-conn-hash-cell :first-conn #x3b3) + (new 'static 'trail-conn-hash-cell :first-conn #x3b3) + (new 'static 'trail-conn-hash-cell :first-conn #x3b3) + (new 'static 'trail-conn-hash-cell :first-conn #x3b3 :conn-count #x9) + (new 'static 'trail-conn-hash-cell :first-conn #x3bc :conn-count #x10) + (new 'static 'trail-conn-hash-cell :first-conn #x3cc :conn-count #xc) + (new 'static 'trail-conn-hash-cell :first-conn #x3d8 :conn-count #x3) + (new 'static 'trail-conn-hash-cell :first-conn #x3db :conn-count #x4) + (new 'static 'trail-conn-hash-cell :first-conn #x3df) + (new 'static 'trail-conn-hash-cell :first-conn #x3df) + (new 'static 'trail-conn-hash-cell :first-conn #x3df :conn-count #xd) + (new 'static 'trail-conn-hash-cell :first-conn #x3ec :conn-count #xf) + (new 'static 'trail-conn-hash-cell :first-conn #x3fb :conn-count #xd) + (new 'static 'trail-conn-hash-cell :first-conn #x408) + (new 'static 'trail-conn-hash-cell :first-conn #x408) + (new 'static 'trail-conn-hash-cell :first-conn #x408) + (new 'static 'trail-conn-hash-cell :first-conn #x408) + (new 'static 'trail-conn-hash-cell :first-conn #x408) + (new 'static 'trail-conn-hash-cell :first-conn #x408) + (new 'static 'trail-conn-hash-cell :first-conn #x408 :conn-count #x6) + (new 'static 'trail-conn-hash-cell :first-conn #x40e :conn-count #xe) + (new 'static 'trail-conn-hash-cell :first-conn #x41c :conn-count #x10) + (new 'static 'trail-conn-hash-cell :first-conn #x42c :conn-count #x3) + (new 'static 'trail-conn-hash-cell :first-conn #x42f :conn-count #x5) + (new 'static 'trail-conn-hash-cell :first-conn #x434) + (new 'static 'trail-conn-hash-cell :first-conn #x434) + (new 'static 'trail-conn-hash-cell :first-conn #x434 :conn-count #x7) + (new 'static 'trail-conn-hash-cell :first-conn #x43b :conn-count #x6) + (new 'static 'trail-conn-hash-cell :first-conn #x441 :conn-count #x2) + (new 'static 'trail-conn-hash-cell :first-conn #x443) + (new 'static 'trail-conn-hash-cell :first-conn #x443) + (new 'static 'trail-conn-hash-cell :first-conn #x443) + (new 'static 'trail-conn-hash-cell :first-conn #x443) + (new 'static 'trail-conn-hash-cell :first-conn #x443) + (new 'static 'trail-conn-hash-cell :first-conn #x443) + (new 'static 'trail-conn-hash-cell :first-conn #x443 :conn-count #x3) + (new 'static 'trail-conn-hash-cell :first-conn #x446 :conn-count #x1) + (new 'static 'trail-conn-hash-cell :first-conn #x447 :conn-count #x3) + (new 'static 'trail-conn-hash-cell :first-conn #x44a :conn-count #x4) + (new 'static 'trail-conn-hash-cell :first-conn #x44e :conn-count #x6) + (new 'static 'trail-conn-hash-cell :first-conn #x454 :conn-count #x3) + (new 'static 'trail-conn-hash-cell :first-conn #x457 :conn-count #x2) + (new 'static 'trail-conn-hash-cell :first-conn #x459 :conn-count #x3) + (new 'static 'trail-conn-hash-cell :first-conn #x45c) + (new 'static 'trail-conn-hash-cell :first-conn #x45c) + (new 'static 'trail-conn-hash-cell :first-conn #x45c) + (new 'static 'trail-conn-hash-cell :first-conn #x45c) + (new 'static 'trail-conn-hash-cell :first-conn #x45c) + (new 'static 'trail-conn-hash-cell :first-conn #x45c) + (new 'static 'trail-conn-hash-cell :first-conn #x45c) + (new 'static 'trail-conn-hash-cell :first-conn #x45c) + (new 'static 'trail-conn-hash-cell :first-conn #x45c) + (new 'static 'trail-conn-hash-cell :first-conn #x45c :conn-count #x8) + (new 'static 'trail-conn-hash-cell :first-conn #x464 :conn-count #x3) + (new 'static 'trail-conn-hash-cell :first-conn #x467 :conn-count #x1) + (new 'static 'trail-conn-hash-cell :first-conn #x468 :conn-count #x1) + (new 'static 'trail-conn-hash-cell :first-conn #x469 :conn-count #x2) + (new 'static 'trail-conn-hash-cell :first-conn #x46b :conn-count #x8) + (new 'static 'trail-conn-hash-cell :first-conn #x473) + (new 'static 'trail-conn-hash-cell :first-conn #x473) + (new 'static 'trail-conn-hash-cell :first-conn #x473) + (new 'static 'trail-conn-hash-cell :first-conn #x473) + (new 'static 'trail-conn-hash-cell :first-conn #x473) + (new 'static 'trail-conn-hash-cell :first-conn #x473) + (new 'static 'trail-conn-hash-cell :first-conn #x473) + (new 'static 'trail-conn-hash-cell :first-conn #x473) + (new 'static 'trail-conn-hash-cell :first-conn #x473) + (new 'static 'trail-conn-hash-cell :first-conn #x473) + (new 'static 'trail-conn-hash-cell :first-conn #x473 :conn-count #x1) + (new 'static 'trail-conn-hash-cell :first-conn #x474) + (new 'static 'trail-conn-hash-cell :first-conn #x474) + (new 'static 'trail-conn-hash-cell :first-conn #x474) + (new 'static 'trail-conn-hash-cell :first-conn #x474) + (new 'static 'trail-conn-hash-cell :first-conn #x474 :conn-count #x1) + (new 'static 'trail-conn-hash-cell :first-conn #x475) + (new 'static 'trail-conn-hash-cell :first-conn #x475) + (new 'static 'trail-conn-hash-cell :first-conn #x475) + (new 'static 'trail-conn-hash-cell :first-conn #x475) + (new 'static 'trail-conn-hash-cell :first-conn #x475) + (new 'static 'trail-conn-hash-cell :first-conn #x475) + (new 'static 'trail-conn-hash-cell :first-conn #x475) + (new 'static 'trail-conn-hash-cell :first-conn #x475) + (new 'static 'trail-conn-hash-cell :first-conn #x475) + (new 'static 'trail-conn-hash-cell :first-conn #x475) + (new 'static 'trail-conn-hash-cell :first-conn #x475 :conn-count #x1) + (new 'static 'trail-conn-hash-cell :first-conn #x476) + (new 'static 'trail-conn-hash-cell :first-conn #x476) + (new 'static 'trail-conn-hash-cell :first-conn #x476) + (new 'static 'trail-conn-hash-cell :first-conn #x476) + (new 'static 'trail-conn-hash-cell :first-conn #x476 :conn-count #x1) + (new 'static 'trail-conn-hash-cell :first-conn #x477) + (new 'static 'trail-conn-hash-cell :first-conn #x477) + (new 'static 'trail-conn-hash-cell :first-conn #x477) + (new 'static 'trail-conn-hash-cell :first-conn #x477) + (new 'static 'trail-conn-hash-cell :first-conn #x477) + (new 'static 'trail-conn-hash-cell :first-conn #x477) + ) + :conn-ids (new 'static 'array uint16 1144 + #x129 + #x130 + #x131 + #x132 + #x207 + #x208 + #x20a + #x120 + #x128 + #x129 + #x12a + #x12b + #x12c + #x12d + #x12e + #x12f + #x207 + #x208 + #x209 + #x20a + #x20d + #x12e + #x12f + #x217 + #x219 + #x21a + #xf8 + #xf9 + #xfa + #xfb + #x217 + #x218 + #x21a + #x21b + #x223 + #x122 + #x124 + #x125 + #x127 + #x128 + #x132 + #x133 + #x134 + #x20a + #x11e + #x11f + #x120 + #x121 + #x122 + #x125 + #x128 + #x12b + #x209 + #x20b + #x20c + #x20d + #x11d + #x11e + #x21c + #x21d + #x21e + #x21f + #x221 + #x228 + #xf8 + #xf9 + #x21c + #x226 + #x227 + #x228 + #x229 + #x22d + #x22e + #xf9 + #x22d + #x1eb + #x144 + #x146 + #x149 + #x14a + #x156 + #x157 + #x1eb + #x1ec + #x1f1 + #x111 + #x13c + #x13d + #x145 + #x146 + #x147 + #x148 + #x149 + #x10f + #x110 + #x111 + #x118 + #x124 + #x126 + #x134 + #x135 + #x1f8 + #x311 + #x315 + #x115 + #x116 + #x117 + #x118 + #x11f + #x121 + #x123 + #x124 + #x125 + #x126 + #x12b + #x312 + #xde + #xfc + #x116 + #x11d + #x220 + #x221 + #x222 + #x228 + #x229 + #x22a + #x22b + #x22c + #x312 + #x313 + #xd1 + #xe9 + #xec + #xed + #xee + #xef + #xf0 + #xf1 + #xf2 + #xf3 + #xf4 + #x213 + #x225 + #x226 + #x229 + #xd0 + #xd1 + #xf1 + #xf5 + #xf6 + #xf7 + #x213 + #x224 + #x225 + #x157 + #x158 + #x13f + #x140 + #x141 + #x142 + #x143 + #x144 + #x14d + #x14e + #x14f + #x150 + #x151 + #x152 + #x156 + #x157 + #x1ed + #x1f1 + #x137 + #x138 + #x139 + #x13a + #x13b + #x13c + #x13d + #x13e + #x13f + #x140 + #x14b + #x14c + #x14e + #x1f0 + #x108 + #x109 + #x10c + #x10d + #x10f + #x112 + #x119 + #x11a + #x11b + #x11c + #x1f2 + #x1f3 + #x1f4 + #x1f5 + #x1f6 + #x1f7 + #x1f9 + #x1fa + #x1fb + #x1fc + #x1fd + #x1fe + #x1ff + #x200 + #x201 + #x202 + #x203 + #x204 + #x205 + #x206 + #x311 + #x315 + #xfd + #xfe + #xff + #x100 + #x10a + #x10b + #x112 + #x113 + #x114 + #x115 + #x11b + #x1fe + #x1ff + #xde + #xdf + #xe0 + #xe1 + #xe2 + #xfd + #x22a + #x22b + #x313 + #x314 + #xd1 + #xd2 + #xd3 + #xd4 + #xd5 + #xd8 + #xd9 + #xda + #xdb + #xe2 + #xe3 + #xe4 + #xe5 + #xe6 + #xe7 + #xe8 + #xe9 + #xea + #xeb + #xef + #xf2 + #x214 + #x216 + #xcc + #xcd + #xce + #xcf + #xd0 + #x158 + #x159 + #x15a + #x15b + #x15c + #x15d + #x15e + #x15f + #x160 + #x161 + #x30f + #x310 + #x152 + #x153 + #x154 + #x155 + #x162 + #x163 + #x23f + #x10e + #x136 + #x137 + #x163 + #x23e + #x23f + #x316 + #x102 + #x103 + #x104 + #x105 + #x106 + #x107 + #x10d + #x10e + #x163 + #x164 + #x166 + #x167 + #x1ee + #x1ef + #x1f6 + #x1f9 + #x202 + #x203 + #x204 + #x205 + #x206 + #x20f + #x316 + #x100 + #x101 + #x102 + #x103 + #x166 + #x168 + #xdb + #xdc + #xdd + #xfd + #x20e + #x210 + #x211 + #x212 + #xd6 + #xd7 + #xdb + #x214 + #x215 + #x216 + #x47 + #x48 + #x49 + #x4a + #x4b + #xcc + #x0 + #x1 + #x2 + #x3 + #x4 + #x5 + #x159 + #x15a + #x15b + #x15c + #x15d + #x15e + #x15f + #x160 + #x161 + #x233 + #x240 + #x243 + #x244 + #x24a + #x2fe + #x2ff + #x300 + #x301 + #x15a + #x15b + #x233 + #x240 + #x243 + #x24a + #x231 + #x23c + #x23d + #x23e + #x240 + #x241 + #x242 + #x243 + #x246 + #x24a + #x164 + #x165 + #x167 + #x174 + #x176 + #x177 + #x178 + #x17a + #x17b + #x17c + #x2d0 + #x2d1 + #x2d2 + #x2e1 + #x2e6 + #x2e7 + #x2e8 + #x2e9 + #x2ea + #x2eb + #x2ee + #x2ef + #x2f0 + #x2f1 + #x2f2 + #x2f3 + #x2f4 + #x2f5 + #x2f6 + #x168 + #x169 + #x16a + #x16b + #x16c + #x170 + #x171 + #x172 + #x173 + #x174 + #x175 + #x177 + #x2cd + #x2d0 + #x2d1 + #x2d3 + #x2d4 + #x2dc + #x2de + #x2e0 + #x2e3 + #x2e4 + #x2e5 + #x2eb + #x2ec + #x2ed + #x2f7 + #x2f8 + #x2f9 + #x2fa + #x3f + #x40 + #x41 + #x42 + #x43 + #x44 + #x47 + #x1e4 + #x6 + #x7 + #x9 + #xa + #xb + #xc + #x28 + #x37 + #x38 + #x39 + #x3a + #x3b + #x3c + #x3d + #x42 + #x45 + #x46 + #x47 + #x0 + #x4 + #x5 + #x6 + #x7 + #x8 + #xa + #xc + #xd + #xe + #xf + #x10 + #x11 + #x12 + #x13 + #x14 + #x16 + #x17 + #x18 + #x29 + #x2b + #x2c + #x2d + #x2e + #x237 + #x244 + #x232 + #x233 + #x234 + #x235 + #x237 + #x238 + #x239 + #x244 + #x245 + #x248 + #x302 + #x238 + #x23a + #x23b + #x23c + #x242 + #x246 + #x247 + #x248 + #x249 + #x178 + #x179 + #x17a + #x1e9 + #x2c8 + #x2c9 + #x2ca + #x2cb + #x2ce + #x2cf + #x2d5 + #x2d7 + #x2d8 + #x2d9 + #x2e1 + #x2e2 + #x2ef + #x2f0 + #x2f3 + #x2f4 + #x16c + #x16d + #x16e + #x16f + #x171 + #x1e9 + #x1ea + #x282 + #x2c7 + #x2c9 + #x2cb + #x2cc + #x2cd + #x2d5 + #x2d6 + #x2d9 + #x2da + #x2db + #x2dc + #x2dd + #x2de + #x2df + #x2e0 + #x2ec + #x30d + #x30e + #x2f + #x30 + #x31 + #x32 + #x33 + #x34 + #x3e + #x3f + #x41 + #x1e4 + #x1d + #x1e + #x1f + #x20 + #x21 + #x22 + #x23 + #x24 + #x25 + #x26 + #x27 + #x28 + #x2a + #x2f + #x34 + #x35 + #x36 + #x3a + #x42 + #x14 + #x15 + #x16 + #x19 + #x1a + #x1b + #x1c + #x1d + #x26 + #x29 + #x2a + #x1e1 + #x1e2 + #x1e3 + #x22f + #x230 + #x190 + #x192 + #x193 + #x194 + #x236 + #x186 + #x187 + #x188 + #x189 + #x18a + #x18f + #x190 + #x191 + #x192 + #x194 + #x197 + #x198 + #x236 + #x254 + #x255 + #x256 + #x257 + #x258 + #x259 + #x302 + #x186 + #x25a + #x25b + #x25c + #x25d + #x25e + #x260 + #x261 + #x262 + #x182 + #x183 + #x264 + #x265 + #x267 + #x282 + #x284 + #x282 + #x283 + #x284 + #x30d + #x19c + #x19d + #x19f + #x1a0 + #x1a1 + #x1a2 + #x1a3 + #x1a4 + #x1a8 + #x1b0 + #x1b4 + #x1b7 + #x1ba + #x1bb + #x1bc + #x1bd + #x1be + #x283 + #x308 + #x1a7 + #x1a8 + #x1a9 + #x1aa + #x1ab + #x1ac + #x1ad + #x1ae + #x1af + #x1c9 + #x1d5 + #x30b + #x59 + #x5b + #x5c + #x73 + #x74 + #x75 + #x76 + #x77 + #x1b8 + #x1b9 + #x1c8 + #x1d5 + #x1d6 + #x4d + #x4e + #x4f + #x51 + #x52 + #x53 + #x54 + #x55 + #x56 + #x57 + #x58 + #x59 + #x5a + #x5b + #x5c + #x5d + #x5e + #x5f + #x60 + #x61 + #x4c + #x4d + #x4e + #x4f + #x50 + #x5e + #x5f + #x60 + #x61 + #x62 + #x63 + #x64 + #x1dd + #x1e3 + #x24c + #x250 + #x251 + #x184 + #x189 + #x18a + #x18b + #x18c + #x18d + #x18e + #x18f + #x190 + #x199 + #x24c + #x24d + #x24e + #x24f + #x250 + #x251 + #x252 + #x253 + #x254 + #x26f + #x270 + #x271 + #x272 + #x184 + #x185 + #x195 + #x196 + #x25f + #x262 + #x263 + #x266 + #x26a + #x26b + #x26c + #x26d + #x26e + #x26f + #x196 + #x265 + #x266 + #x268 + #x269 + #x17d + #x17e + #x17f + #x19a + #x19b + #x19c + #x19d + #x19e + #x1b3 + #x1b4 + #x1b5 + #x1b6 + #x1b7 + #x1bb + #x1be + #x1bf + #x1c0 + #x1c1 + #x1c2 + #x1c3 + #x1c7 + #x1d8 + #x307 + #x308 + #x1a5 + #x1a6 + #x1ae + #x1b1 + #x1b2 + #x1b3 + #x1c0 + #x1c2 + #x1c3 + #x1c4 + #x1c6 + #x1ca + #x1cb + #x1cc + #x1cd + #x1ce + #x1d4 + #x1d7 + #x309 + #x30a + #x30b + #x30c + #x6e + #x6f + #x70 + #x71 + #x72 + #x7f + #x1cb + #x1cc + #x1ce + #x1cf + #x1d0 + #x1d1 + #x1d2 + #x1d3 + #x1d4 + #x2fd + #x30a + #x6b + #x6d + #x6e + #x1d9 + #x1da + #x1db + #x64 + #x65 + #x66 + #x67 + #x68 + #x69 + #x6a + #x6b + #x6c + #x2b6 + #x2b7 + #x2be + #x2bf + #x24e + #x24f + #x285 + #x286 + #x287 + #x288 + #x289 + #x28a + #x28b + #x28c + #x28e + #x28f + #x2b7 + #x2b8 + #x2ba + #x2bb + #x2c0 + #x288 + #x28c + #x28d + #x28e + #x290 + #x291 + #x29a + #x29b + #x29c + #x2c3 + #x181 + #x269 + #x273 + #x274 + #x275 + #x276 + #x277 + #x279 + #x27b + #x180 + #x274 + #x275 + #x277 + #x278 + #x279 + #x27a + #x27f + #x17d + #x180 + #x1a5 + #x1c4 + #x1c5 + #x1c6 + #x1d7 + #x7e + #x7f + #x88 + #x89 + #x8a + #x8b + #x8c + #x2fb + #x2fd + #x78 + #x7b + #x7c + #x7d + #x7e + #x80 + #x81 + #x82 + #x83 + #x84 + #x85 + #x86 + #x87 + #x88 + #xa3 + #x1db + #x1dc + #x1e5 + #x2fb + #x2fc + #x2fd + #x78 + #x79 + #x7a + #xa5 + #xaa + #xab + #xb0 + #xb1 + #xb2 + #x1e5 + #x295 + #x296 + #x2b6 + #x2bd + #x2be + #x2bf + #x2c6 + #x305 + #x306 + #x24b + #x295 + #x2ae + #x2b3 + #x2b4 + #x2b5 + #x2b8 + #x2b9 + #x2ba + #x2bc + #x2c0 + #x2c4 + #x2c5 + #x303 + #x304 + #x305 + #x291 + #x292 + #x298 + #x299 + #x29a + #x29c + #x29d + #x29e + #x29f + #x2a0 + #x2c2 + #x2c3 + #x27b + #x27c + #x27e + #x27e + #x27f + #x280 + #x281 + #x8a + #x8b + #x8d + #x8e + #x8f + #x91 + #x93 + #x94 + #x97 + #x9a + #x9e + #x9f + #xa1 + #x82 + #x83 + #x86 + #x8f + #x90 + #x91 + #x92 + #x96 + #x97 + #x98 + #x9a + #x9b + #x9c + #x9d + #xa3 + #xa3 + #xa4 + #xa5 + #xa6 + #xa7 + #xa8 + #xa9 + #xaa + #xac + #xad + #xae + #xaf + #xb0 + #xca + #xcb + #x1e6 + #x1e7 + #x2c6 + #x306 + #x24b + #x293 + #x294 + #x297 + #x2a1 + #x2a2 + #x2ad + #x2af + #x2b0 + #x2b1 + #x2b2 + #x2bc + #x2c1 + #x304 + #x293 + #x29f + #x2a0 + #x2a1 + #x2a3 + #x2a4 + #x2a5 + #x2a6 + #x2a7 + #x2a8 + #x2a9 + #x2aa + #x2ab + #x2ac + #x2c1 + #x2c2 + #x27c + #x27d + #x27e + #x1de + #x1df + #x1e0 + #x27d + #x281 + #x93 + #x9f + #xa0 + #xa1 + #xa2 + #xb3 + #xb4 + #x93 + #x95 + #x96 + #x97 + #x98 + #x99 + #x99 + #xac + #xc8 + #xc9 + #xcb + #xc8 + #xc0 + #xc3 + #xc4 + #xbc + #xbf + #xc0 + #xc3 + #xbc + #xbd + #xbe + #xbf + #x1de + #x1e8 + #xbb + #xbe + #x1e8 + #xb6 + #xbb + #xb4 + #xb5 + #xb6 + #xc1 + #xc2 + #xc3 + #xc4 + #xc5 + #xc6 + #xc7 + #xc8 + #xc1 + #xc3 + #xc4 + #xc1 + #xc1 + #xbe + #xc1 + #xb6 + #xb7 + #xb8 + #xb9 + #xba + #xbb + #xbe + #xc1 + #xc7 + #xba + #xc7 + #xba + #x0 + ) + ) + ) + ) + + + + diff --git a/test/decompiler/reference/jak2/levels/city/common/trail-h_REF.gc b/test/decompiler/reference/jak2/levels/city/common/trail-h_REF.gc index 17aa4e1c52..8b29a1c461 100644 --- a/test/decompiler/reference/jak2/levels/city/common/trail-h_REF.gc +++ b/test/decompiler/reference/jak2/levels/city/common/trail-h_REF.gc @@ -3,24 +3,25 @@ ;; definition of type trail-node (deftype trail-node (structure) - ((next-id int16 :offset-assert 0) - (prev-id int16 :offset-assert 2) - (parent-id int16 :offset-assert 4) - (x int16 :offset-assert 6) - (z int16 :offset-assert 8) - (first-conn uint16 :offset-assert 10) - (cost-from-start uint16 :offset-assert 12) - (cost-to-goal uint16 :offset-assert 14) - (flags uint8 :offset-assert 16) - (conn-count uint8 :offset-assert 17) + ((next-id int16 :offset-assert 0) + (prev-id int16 :offset-assert 2) + (parent-id int16 :offset-assert 4) + (x int16 :offset-assert 6) + (z int16 :offset-assert 8) + (first-conn uint16 :offset-assert 10) + (cost-from-start uint16 :offset-assert 12) + (cost-to-goal uint16 :offset-assert 14) + (flags trail-node-flag :offset-assert 16) + (conn-count uint8 :offset-assert 17) ) + :pack-me :method-count-assert 12 :size-assert #x12 :flag-assert #xc00000012 (:methods - (trail-node-method-9 () none 9) - (trail-node-method-10 () none 10) - (trail-node-method-11 () none 11) + (get-dist-score (_type_ vector) uint 9) + (debug-draw (_type_ int) none 10) + (get-position (_type_ vector) vector 11) ) ) @@ -72,17 +73,18 @@ ;; definition of type trail-conn (deftype trail-conn (structure) - ((head-id uint16 :offset-assert 0) - (tail-id uint16 :offset-assert 2) - (flags uint8 :offset-assert 4) - (visgroup-id uint8 :offset-assert 5) - (cost uint16 :offset-assert 6) + ((head-id uint16 :offset-assert 0) + (tail-id uint16 :offset-assert 2) + (flags conn-flag :offset-assert 4) + (visgroup-id uint8 :offset-assert 5) + (cost uint16 :offset-assert 6) ) + :pack-me :method-count-assert 10 :size-assert #x8 :flag-assert #xa00000008 (:methods - (trail-conn-method-9 () none 9) + (debug-draw (_type_ trail-graph int) none 9) ) ) @@ -108,6 +110,7 @@ (conn-count uint8 :offset-assert 2) (pad uint8 :offset-assert 3) ) + :pack-me :method-count-assert 9 :size-assert #x4 :flag-assert #x900000004 @@ -169,10 +172,10 @@ ;; definition of type trail-conn-hash (deftype trail-conn-hash (basic) - ((cell-width meters :offset-assert 4) - (origin vector :inline :offset-assert 16) - (cell uint32 :offset-assert 32) - (conn-ids uint32 :offset-assert 36) + ((cell-width meters :offset-assert 4) + (origin vector :inline :offset-assert 16) + (cell (inline-array trail-conn-hash-cell) :offset-assert 32) + (conn-ids (pointer uint16) :offset-assert 36) ) :method-count-assert 9 :size-assert #x28 @@ -221,51 +224,51 @@ ;; definition of type trail-graph (deftype trail-graph (basic) - ((mode uint8 :offset-assert 4) - (search-id uint32 :offset-assert 8) - (open-head-id int16 :offset-assert 12) - (goal-conn-id int16 :offset-assert 14) - (goal-node-id int16 :offset-assert 16) - (node-count uint16 :offset-assert 18) - (conn-count uint16 :offset-assert 20) - (conn-mask uint8 :offset-assert 22) - (node uint32 :offset-assert 24) - (conn uint32 :offset-assert 28) - (conn-ids uint32 :offset-assert 32) - (visgroup uint32 :offset-assert 36) - (visnode-ids uint32 :offset-assert 40) - (conn-hash basic :offset-assert 44) - (orig-start-pos vector :inline :offset-assert 48) - (orig-goal-pos vector :inline :offset-assert 64) - (conn-start-pos vector :inline :offset-assert 80) - (conn-goal-pos vector :inline :offset-assert 96) - (open-quads qword 6 :inline :offset-assert 112) - (closed-quads qword 6 :inline :offset-assert 208) + ((mode uint8 :offset-assert 4) + (search-id uint32 :offset-assert 8) + (open-head-id int16 :offset-assert 12) + (goal-conn-id int16 :offset-assert 14) + (goal-node-id int16 :offset-assert 16) + (node-count uint16 :offset-assert 18) + (conn-count uint16 :offset-assert 20) + (conn-mask uint8 :offset-assert 22) + (node (inline-array trail-node) :offset-assert 24) + (conn (inline-array trail-conn) :offset-assert 28) + (conn-ids (pointer uint16) :offset-assert 32) + (visgroup (inline-array trail-conn-hash-cell) :offset-assert 36) + (visnode-ids (pointer uint16) :offset-assert 40) + (conn-hash trail-conn-hash :offset-assert 44) + (orig-start-pos vector :inline :offset-assert 48) + (orig-goal-pos vector :inline :offset-assert 64) + (conn-start-pos vector :inline :offset-assert 80) + (conn-goal-pos vector :inline :offset-assert 96) + (open-quads qword 6 :inline :offset-assert 112) + (closed-quads qword 6 :inline :offset-assert 208) ) :method-count-assert 29 :size-assert #x130 :flag-assert #x1d00000130 (:methods - (trail-graph-method-9 () none 9) - (trail-graph-method-10 () none 10) - (trail-graph-method-11 () none 11) - (trail-graph-method-12 () none 12) - (trail-graph-method-13 () none 13) - (trail-graph-method-14 () none 14) - (trail-graph-method-15 () none 15) + (trail-graph-method-9 (_type_ int) none 9) + (trail-graph-method-10 (_type_ int) none 10) + (trail-graph-method-11 (_type_ int int) trail-node 11) + (debug-draw (_type_) none 12) + (debug-draw-cell (_type_ int) none 13) + (debug-draw-path (_type_ int (pointer uint16) vector vector rgba float) symbol 14) + (do-path (_type_ vector vector) int 15) (trail-graph-method-16 () none 16) - (trail-graph-method-17 () none 17) - (trail-graph-method-18 () none 18) - (trail-graph-method-19 () none 19) - (trail-graph-method-20 () none 20) - (trail-graph-method-21 () none 21) - (trail-graph-method-22 () none 22) - (trail-graph-method-23 () none 23) - (trail-graph-method-24 () none 24) - (trail-graph-method-25 () none 25) - (trail-graph-method-26 () none 26) - (trail-graph-method-27 () none 27) - (trail-graph-method-28 () none 28) + (get-node-location-by-id (_type_ uint vector) vector 17) + (get-path-to-root (_type_ (pointer uint16) int (pointer int32) (pointer float)) int 18) + (trail-graph-method-19 (_type_ int int) symbol 19) + (try-initialize (_type_) symbol 20) + (update-node-flags-for-conn (_type_ int trail-node-flag trail-node-flag) none 21) + (trail-graph-method-22 (_type_ int) none 22) + (reset-search-state (_type_) none 23) + (get-next-to-explore (_type_) int 24) + (trail-graph-method-25 (_type_ trail-conn-search int int) none 25) + (do-search! (_type_ vector vector trail-cached-search-info) none 26) + (do-some-work (_type_) int 27) + (run-until-done-or-timeout (_type_ int) none 28) ) ) @@ -304,7 +307,3 @@ ;; definition for symbol *trail-graph*, type trail-graph (define *trail-graph* (the-as trail-graph #f)) - - - - diff --git a/test/decompiler/reference/jak2/levels/city/common/trail_REF.gc b/test/decompiler/reference/jak2/levels/city/common/trail_REF.gc new file mode 100644 index 0000000000..ecf6401726 --- /dev/null +++ b/test/decompiler/reference/jak2/levels/city/common/trail_REF.gc @@ -0,0 +1,955 @@ +;;-*-Lisp-*- +(in-package goal) + +;; definition for method 9 of type trail-conn +;; WARN: Return type mismatch symbol vs none. +(defmethod debug-draw trail-conn ((obj trail-conn) (arg0 trail-graph) (arg1 int)) + (let ((a2-3 (-> arg0 node (-> obj head-id))) + (v1-2 (-> arg0 node (-> obj tail-id))) + (s4-0 (new 'stack-no-clear 'vector)) + (s3-0 (new 'stack-no-clear 'vector)) + (s5-0 (new 'stack-no-clear 'vector)) + ) + (set-vector! s4-0 (* 4096.0 (the float (-> a2-3 x))) 53248.0 (* 4096.0 (the float (-> a2-3 z))) 1.0) + (set-vector! s3-0 (* 4096.0 (the float (-> v1-2 x))) 53248.0 (* 4096.0 (the float (-> v1-2 z))) 1.0) + (vector-lerp! s5-0 s4-0 s3-0 0.5) + (let* ((s2-0 (math-camera-pos)) + (f0-12 (vector-vector-distance-squared s4-0 s2-0)) + (f1-8 819200.0) + ) + (when (or (< f0-12 (* f1-8 f1-8)) + (let ((f0-13 (vector-vector-distance-squared s3-0 s2-0)) + (f1-11 819200.0) + ) + (< f0-13 (* f1-11 f1-11)) + ) + (let ((f0-14 (vector-vector-distance-squared s5-0 s2-0)) + (f1-14 819200.0) + ) + (< f0-14 (* f1-14 f1-14)) + ) + ) + (add-debug-line #t (bucket-id debug2) s4-0 s3-0 *color-orange* #f (the-as rgba -1)) + (let ((s4-1 add-debug-text-3d) + (s3-1 #t) + (s2-1 324) + ) + (format (clear *temp-string*) "~D" arg1) + (s4-1 s3-1 (the-as bucket-id s2-1) *temp-string* s5-0 (font-color yellow-#f3f300) (the-as vector2h #f)) + ) + ) + ) + ) + (none) + ) + +;; definition for method 10 of type trail-node +;; INFO: Used lq/sq +;; WARN: Return type mismatch symbol vs none. +(defmethod debug-draw trail-node ((obj trail-node) (arg0 int)) + (let ((s5-0 (new 'stack-no-clear 'vector)) + (s4-0 (new 'stack-no-clear 'sphere)) + ) + (set-vector! s5-0 (* 4096.0 (the float (-> obj x))) 53248.0 (* 4096.0 (the float (-> obj z))) 1.0) + (set! (-> s4-0 quad) (-> s5-0 quad)) + (set! (-> s4-0 r) 4096.0) + (let ((f0-7 (vector-vector-distance-squared s5-0 (math-camera-pos))) + (f1-4 819200.0) + ) + (when (and (< f0-7 (* f1-4 f1-4)) (sphere-in-view-frustum? s4-0)) + (add-debug-x #t (bucket-id debug2) s5-0 *color-red*) + (let ((s4-1 add-debug-text-3d) + (s3-1 #t) + (s2-1 324) + ) + (format (clear *temp-string*) "~D" arg0) + (s4-1 s3-1 (the-as bucket-id s2-1) *temp-string* s5-0 (font-color cyan-#00fefe) (the-as vector2h #f)) + ) + ) + ) + ) + (none) + ) + +;; definition for method 13 of type trail-graph +;; INFO: Used lq/sq +;; WARN: Return type mismatch symbol vs none. +(defmethod debug-draw-cell trail-graph ((obj trail-graph) (arg0 int)) + (local-vars (sv-80 int) (sv-96 (function _varargs_ object))) + (let* ((s5-0 (-> obj conn-hash)) + (s4-0 (-> s5-0 cell arg0)) + (s3-0 (new 'stack-no-clear 'inline-array 'vector 2)) + ) + (set-vector! + (-> s3-0 0) + (+ (* (-> s5-0 cell-width) (the float (logand arg0 15))) (-> s5-0 origin x)) + 53248.0 + (+ (* (-> s5-0 cell-width) (the float (/ arg0 16))) (-> s5-0 origin z)) + 1.0 + ) + (set! (-> s3-0 1 quad) (-> s3-0 0 quad)) + (+! (-> s3-0 1 x) (-> s5-0 cell-width)) + (set! (-> s3-0 2 quad) (-> s3-0 1 quad)) + (+! (-> s3-0 2 z) (-> s5-0 cell-width)) + (set! (-> s3-0 3 quad) (-> s3-0 2 quad)) + (set! (-> s3-0 3 x) (- (-> s3-0 3 x) (-> s5-0 cell-width))) + (add-debug-line #t (bucket-id debug-no-zbuf1) (-> s3-0 0) (-> s3-0 1) *color-white* #f (the-as rgba -1)) + (add-debug-line #t (bucket-id debug-no-zbuf1) (-> s3-0 1) (-> s3-0 2) *color-white* #f (the-as rgba -1)) + (add-debug-line #t (bucket-id debug-no-zbuf1) (-> s3-0 2) (-> s3-0 3) *color-white* #f (the-as rgba -1)) + (add-debug-line #t (bucket-id debug-no-zbuf1) (-> s3-0 3) (-> s3-0 0) *color-white* #f (the-as rgba -1)) + (set-vector! + (-> s3-0 3) + (* 0.5 (+ (-> s3-0 0 x) (-> s3-0 2 x))) + (-> s3-0 0 y) + (* 0.5 (+ (-> s3-0 0 z) (-> s3-0 2 z))) + 1.0 + ) + (let ((s1-0 add-debug-text-3d) + (s0-0 #t) + ) + (set! sv-80 324) + (set! sv-96 format) + (let ((a0-20 (clear *temp-string*)) + (a1-5 "cell ~D (~D,~D)") + (a2-4 arg0) + (a3-4 (logand arg0 15)) + (t0-4 (/ arg0 16)) + ) + (sv-96 a0-20 a1-5 a2-4 a3-4 t0-4) + ) + (let ((a2-5 *temp-string*) + (a3-5 (-> s3-0 3)) + (t0-5 1) + (t1-4 #f) + ) + (s1-0 s0-0 (the-as bucket-id sv-80) a2-5 a3-5 (the-as font-color t0-5) (the-as vector2h t1-4)) + ) + ) + (countdown (s2-1 (-> s4-0 conn-count)) + (let ((s1-1 (-> obj conn (-> s5-0 conn-ids (+ s2-1 (-> s4-0 first-conn)))))) + (get-position (-> obj node (-> s1-1 head-id)) (-> s3-0 0)) + (set! (-> s3-0 0 y) 53248.0) + (set! (-> s3-0 0 x) (+ -2048.0 (-> s3-0 0 x))) + (set! (-> s3-0 0 z) (+ -2048.0 (-> s3-0 0 z))) + (get-position (-> obj node (-> s1-1 tail-id)) (-> s3-0 1)) + ) + (set! (-> s3-0 1 y) 53248.0) + (set! (-> s3-0 1 x) (+ -2048.0 (-> s3-0 1 x))) + (set! (-> s3-0 1 z) (+ -2048.0 (-> s3-0 1 z))) + (add-debug-line #t (bucket-id debug2) (-> s3-0 0) (-> s3-0 1) *color-white* #f (the-as rgba -1)) + ) + ) + (none) + ) + +;; definition for method 14 of type trail-graph +;; INFO: Used lq/sq +;; WARN: new jak 2 until loop case, check carefully +(defmethod debug-draw-path trail-graph ((obj trail-graph) (arg0 int) (arg1 (pointer uint16)) (arg2 vector) (arg3 vector) (arg4 rgba) (arg5 float)) + (local-vars (sv-48 int)) + (let ((s0-0 (new 'stack-no-clear 'inline-array 'vector 2))) + (set-vector! (-> s0-0 1) (+ (-> arg2 x) arg5) 53248.0 (+ (-> arg2 z) arg5) 1.0) + (set! sv-48 0) + (until #f + (set! (-> s0-0 0 quad) (-> s0-0 1 quad)) + (cond + ((< sv-48 arg0) + (let ((a0-7 (-> obj node (-> arg1 sv-48)))) + (set-vector! + (-> s0-0 1) + (+ (* 4096.0 (the float (-> a0-7 x))) arg5) + 53248.0 + (+ (* 4096.0 (the float (-> a0-7 z))) arg5) + 1.0 + ) + ) + ) + ((= sv-48 arg0) + (set-vector! (-> s0-0 1) (+ (-> arg3 x) arg5) 53248.0 (+ (-> arg3 z) arg5) 1.0) + ) + (else + (return #f) + ) + ) + (add-debug-line #t (bucket-id debug2) (-> s0-0 0) (-> s0-0 1) arg4 #f (the-as rgba -1)) + (set! sv-48 (+ sv-48 1)) + ) + ) + #f + ) + +;; definition for method 12 of type trail-graph +;; INFO: Used lq/sq +;; WARN: Return type mismatch int vs none. +;; WARN: new jak 2 until loop case, check carefully +(defmethod debug-draw trail-graph ((obj trail-graph)) + (when (= (-> obj mode) 3) + (let ((s5-0 (new 'stack-no-clear 'inline-array 'vector 2))) + (set! (-> s5-0 1 quad) (-> obj orig-goal-pos quad)) + (set! (-> s5-0 1 y) 53248.0) + (let ((v1-4 (-> obj goal-node-id))) + (until #f + (set! (-> s5-0 0 quad) (-> s5-0 1 quad)) + (cond + ((>= v1-4 0) + (let ((s4-0 (-> obj node v1-4))) + (set-vector! + (-> s5-0 1) + (+ 2048.0 (* 4096.0 (the float (-> s4-0 x)))) + 53248.0 + (+ 2048.0 (* 4096.0 (the float (-> s4-0 z)))) + 1.0 + ) + (add-debug-line #t (bucket-id debug2) (-> s5-0 0) (-> s5-0 1) *color-green* #f (the-as rgba -1)) + (set! v1-4 (-> s4-0 parent-id)) + ) + ) + (else + (set! (-> s5-0 1 quad) (-> obj orig-start-pos quad)) + (set! (-> s5-0 1 y) 53248.0) + (add-debug-line #t (bucket-id debug2) (-> s5-0 0) (-> s5-0 1) *color-green* #f (the-as rgba -1)) + (goto cfg-7) + ) + ) + ) + ) + ) + #f + ) + (label cfg-7) + (case (-> obj mode) + ((1 2 3) + (let ((s5-1 (new 'stack-no-clear 'vector))) + (add-debug-sphere + #t + (bucket-id debug-no-zbuf1) + (-> obj orig-start-pos) + (meters 1) + (new 'static 'rgba :r #xff :a #x80) + ) + (set! (-> s5-1 quad) (-> obj conn-start-pos quad)) + (set! (-> s5-1 y) 53248.0) + (add-debug-sphere #t (bucket-id debug-no-zbuf1) s5-1 (meters 0.25) (new 'static 'rgba :r #xff :a #x80)) + (add-debug-sphere + #t + (bucket-id debug-no-zbuf1) + (-> obj orig-goal-pos) + (meters 1) + (new 'static 'rgba :g #xff :a #x80) + ) + (set! (-> s5-1 quad) (-> obj conn-goal-pos quad)) + (set! (-> s5-1 y) 53248.0) + (add-debug-sphere #t (bucket-id debug-no-zbuf1) s5-1 (meters 0.25) (new 'static 'rgba :g #xff :a #x80)) + ) + ) + ) + (dotimes (s5-2 (the-as int (-> obj conn-count))) + (debug-draw (-> obj conn s5-2) obj s5-2) + ) + (dotimes (s5-3 (the-as int (-> obj node-count))) + (debug-draw (-> obj node s5-3) s5-3) + ) + 0 + (none) + ) + +;; definition for method 11 of type trail-node +(defmethod get-position trail-node ((obj trail-node) (arg0 vector)) + "Unpack the position to a vector" + (let ((v0-0 arg0)) + (set! (-> v0-0 x) (* 4096.0 (the float (-> obj x)))) + (set! (-> v0-0 y) 0.0) + (set! (-> v0-0 z) (* 4096.0 (the float (-> obj z)))) + (set! (-> v0-0 w) 1.0) + v0-0 + ) + ) + +;; definition for method 17 of type trail-graph +(defmethod get-node-location-by-id trail-graph ((obj trail-graph) (arg0 uint) (arg1 vector)) + "Get the location of the node with the given ID" + (get-position (-> obj node (the-as int arg0)) arg1) + ) + +;; definition for method 18 of type trail-graph +(defmethod get-path-to-root trail-graph ((obj trail-graph) (arg0 (pointer uint16)) (arg1 int) (arg2 (pointer int32)) (arg3 (pointer float))) + "Get the path from goal to root, following parent-id" + (set! (-> arg3 0) 0.0) + (set! (-> arg2 0) (-> obj goal-node-id)) + (let ((v0-0 -1)) + (when (= (-> obj mode) 3) + (let ((v1-3 (-> obj node)) + (a3-2 0) + ) + (let ((t1-0 (-> obj goal-node-id))) + (while (>= t1-0 0) + (+! a3-2 1) + (set! t1-0 (-> v1-3 t1-0 parent-id)) + ) + ) + (let ((t1-4 (-> obj goal-node-id))) + (let ((t2-1 (- a3-2 arg1))) + (cond + ((> t2-1 0) + (while (> t2-1 0) + (set! t1-4 (-> v1-3 t1-4 parent-id)) + (+! t2-1 -1) + ) + (set! v0-0 arg1) + ) + (else + (set! v0-0 a3-2) + ) + ) + ) + (countdown (a2-3 v0-0) + (set! (-> arg0 a2-3) (the-as uint t1-4)) + (set! t1-4 (-> v1-3 t1-4 parent-id)) + ) + ) + (when (> a3-2 0) + (let ((a0-3 (-> v1-3 (-> obj goal-node-id))) + (v1-4 (-> v1-3 (-> arg0 0))) + ) + (set! (-> arg3 0) + (- (* 512.0 (the float (-> a0-3 cost-from-start))) (* 512.0 (the float (-> v1-4 cost-from-start)))) + ) + ) + ) + ) + ) + v0-0 + ) + ) + +;; definition for method 20 of type trail-graph +(defmethod try-initialize trail-graph ((obj trail-graph)) + "Init and verify that constants are good." + (let ((a3-0 (shr (+ (-> obj node-count) 127) 7))) + (when (!= a3-0 6) + (format 0 "ERROR: TRAIL_NODE_BIT_ARRAY_QUAD_COUNT is ~d, but should be ~d! Please change it!~%" 6 a3-0) + (return #f) + ) + ) + (let ((a3-1 (shr (+ (-> obj conn-count) 127) 7))) + (when (!= a3-1 7) + (format 0 "ERROR: TRAIL_CONN_BIT_ARRAY_QUAD_COUNT is ~d, but should be ~d! Please change it!~%" 7 a3-1) + (return #f) + ) + ) + (set! (-> obj mode) (the-as uint 0)) + (set! (-> obj goal-conn-id) -1) + (set! (-> obj goal-node-id) -1) + (set! (-> obj open-head-id) -1) + #t + ) + +;; definition for method 23 of type trail-graph +;; INFO: Used lq/sq +;; WARN: Return type mismatch int vs none. +(defmethod reset-search-state trail-graph ((obj trail-graph)) + "Reset the search/goal." + (when (nonzero? (-> obj mode)) + (set! (-> obj goal-node-id) -1) + (let ((a1-0 (-> obj goal-conn-id))) + (when (>= a1-0 0) + (update-node-flags-for-conn obj a1-0 (trail-node-flag) (trail-node-flag tnf0)) + (set! (-> obj goal-conn-id) -1) + ) + ) + (set! (-> obj open-head-id) -1) + (let ((v1-7 (-> obj open-quads))) + (set! (-> v1-7 0 quad) (the-as uint128 0)) + (set! (-> v1-7 1 quad) (the-as uint128 0)) + (set! (-> v1-7 2 quad) (the-as uint128 0)) + (set! (-> v1-7 3 quad) (the-as uint128 0)) + (set! (-> v1-7 4 quad) (the-as uint128 0)) + (set! (-> v1-7 5 quad) (the-as uint128 0)) + ) + 0 + (let ((v1-9 (-> obj closed-quads))) + (set! (-> v1-9 0 quad) (the-as uint128 0)) + (set! (-> v1-9 1 quad) (the-as uint128 0)) + (set! (-> v1-9 2 quad) (the-as uint128 0)) + (set! (-> v1-9 3 quad) (the-as uint128 0)) + (set! (-> v1-9 4 quad) (the-as uint128 0)) + (set! (-> v1-9 5 quad) (the-as uint128 0)) + ) + 0 + (set! (-> obj mode) (the-as uint 0)) + 0 + ) + (none) + ) + +;; definition for method 21 of type trail-graph +;; WARN: Return type mismatch trail-node-flag vs none. +(defmethod update-node-flags-for-conn trail-graph ((obj trail-graph) (arg0 int) (arg1 trail-node-flag) (arg2 trail-node-flag)) + "Set arg1, clear arg2" + (let* ((v1-0 (lognot arg2)) + (a3-2 (-> obj conn arg0)) + (t0-0 (-> a3-2 visgroup-id)) + (a1-2 (-> obj node)) + ) + (cond + ((> t0-0 0) + (let* ((a3-4 (-> obj visgroup (+ t0-0 -1))) + (a0-2 (&-> (-> obj visnode-ids) (-> a3-4 first-conn))) + ) + (countdown (a3-5 (-> a3-4 conn-count)) + (let ((t0-8 (-> a1-2 (-> a0-2 0)))) + (set! (-> t0-8 flags) (logior (logand (-> t0-8 flags) v1-0) arg1)) + ) + (set! a0-2 (&-> a0-2 1)) + ) + ) + ) + (else + (let ((a0-5 (-> a1-2 (-> a3-2 head-id))) + (a1-3 (-> a1-2 (-> a3-2 tail-id))) + ) + (set! (-> a0-5 flags) (logior (logand (-> a0-5 flags) v1-0) arg1)) + (set! (-> a1-3 flags) (logior (logand (-> a1-3 flags) v1-0) arg1)) + ) + ) + ) + ) + (none) + ) + +;; definition for method 25 of type trail-graph +;; INFO: Used lq/sq +;; WARN: Return type mismatch symbol vs none. +(defmethod trail-graph-method-25 trail-graph ((obj trail-graph) (arg0 trail-conn-search) (arg1 int) (arg2 int)) + (let* ((v1-1 (+ (* arg2 16) arg1)) + (a0-1 (/ v1-1 8)) + (a1-2 (ash 1 (logand v1-1 7))) + (a2-4 (-> arg0 cell-quads 0 byte a0-1)) + ) + (when (not (logtest? a2-4 a1-2)) + (set! (-> arg0 cell-quads 0 byte a0-1) (logior a2-4 a1-2)) + (let* ((v1-3 (-> obj conn-hash cell v1-1)) + (s4-0 (&-> (-> obj conn-hash conn-ids) (-> v1-3 first-conn))) + ) + (countdown (s3-0 (-> v1-3 conn-count)) + (let* ((s2-0 (-> s4-0 0)) + (v1-4 (shr s2-0 3)) + (a1-7 (ash 1 (logand s2-0 7))) + (a2-5 (-> arg0 conn-quads 0 byte v1-4)) + ) + (when (not (logtest? a2-5 a1-7)) + (set! (-> arg0 conn-quads 0 byte v1-4) (logior a2-5 a1-7)) + (let* ((v1-7 (-> obj conn s2-0)) + (a0-14 (-> v1-7 flags)) + ) + (when (= (logand (the-as conn-flag (-> obj conn-mask)) a0-14) a0-14) + (let ((a3-2 (-> obj node (-> v1-7 head-id))) + (v1-10 (-> obj node (-> v1-7 tail-id))) + (a1-14 (new 'stack-no-clear 'vector)) + (a2-7 (new 'stack-no-clear 'vector)) + (s1-0 (new 'stack-no-clear 'vector)) + ) + (set-vector! + a1-14 + (* 4096.0 (the float (-> a3-2 x))) + (-> arg0 src-pos y) + (* 4096.0 (the float (-> a3-2 z))) + 1.0 + ) + (set-vector! + a2-7 + (* 4096.0 (the float (-> v1-10 x))) + (-> arg0 src-pos y) + (* 4096.0 (the float (-> v1-10 z))) + 1.0 + ) + (let ((f0-12 (vector-segment-distance-point! (-> arg0 src-pos) a1-14 a2-7 s1-0))) + (when (or (< (-> arg0 best-conn-id) 0) (< f0-12 (-> arg0 best-dist))) + (set! (-> arg0 best-dist) f0-12) + (set! (-> arg0 best-conn-id) (the-as int s2-0)) + (set! (-> arg0 conn-pos quad) (-> s1-0 quad)) + ) + ) + ) + ) + ) + ) + ) + (set! s4-0 (&-> s4-0 1)) + ) + ) + ) + ) + (none) + ) + +;; definition for method 15 of type trail-graph +;; INFO: Used lq/sq +(defmethod do-path trail-graph ((obj trail-graph) (arg0 vector) (arg1 vector)) + (let ((v1-0 (-> obj conn-hash)) + (s5-0 (new 'stack-no-clear 'trail-conn-search)) + ) + (set! (-> s5-0 src-pos) arg0) + (set! (-> s5-0 conn-pos) arg1) + (set! (-> s5-0 best-conn-id) -1) + (let ((a0-2 (-> s5-0 conn-quads))) + (set! (-> a0-2 0 quad) (the-as uint128 0)) + (set! (-> a0-2 1 quad) (the-as uint128 0)) + (set! (-> a0-2 2 quad) (the-as uint128 0)) + (set! (-> a0-2 3 quad) (the-as uint128 0)) + (set! (-> a0-2 4 quad) (the-as uint128 0)) + (set! (-> a0-2 5 quad) (the-as uint128 0)) + (set! (-> a0-2 6 quad) (the-as uint128 0)) + ) + 0 + (let ((a0-4 (-> s5-0 cell-quads))) + (set! (-> a0-4 0 quad) (the-as uint128 0)) + (set! (-> a0-4 1 quad) (the-as uint128 0)) + ) + 0 + (let* ((f0-0 (-> v1-0 cell-width)) + (f1-1 (* 0.5 f0-0)) + ) + (let ((f3-0 (- (-> arg0 x) f1-1)) + (f2-2 (- (-> arg0 z) f1-1)) + ) + (set! (-> s5-0 bounds min x) (max 0 (min 15 (the int (/ (- f3-0 (-> v1-0 origin x)) f0-0))))) + (set! (-> s5-0 bounds min z) (max 0 (min 15 (the int (/ (- f2-2 (-> v1-0 origin z)) f0-0))))) + ) + (let ((f2-7 (+ (-> arg0 x) f1-1)) + (f1-2 (+ (-> arg0 z) f1-1)) + ) + (set! (-> s5-0 bounds max x) (max 0 (min 15 (the int (/ (- f2-7 (-> v1-0 origin x)) f0-0))))) + (set! (-> s5-0 bounds max z) (max 0 (min 15 (the int (/ (- f1-2 (-> v1-0 origin z)) f0-0))))) + ) + ) + (let ((s3-0 (-> s5-0 bounds min z))) + (until (< (-> s5-0 bounds max z) s3-0) + (let ((s2-0 (-> s5-0 bounds min x))) + (until (< (-> s5-0 bounds max x) s2-0) + (trail-graph-method-25 obj s5-0 s2-0 s3-0) + (+! s2-0 1) + ) + ) + (+! s3-0 1) + ) + ) + (while (< (-> s5-0 best-conn-id) 0) + (let ((v1-8 15)) + (set! (-> s5-0 bounds min x) (max 0 (+ (-> s5-0 bounds min x) -1))) + (set! (-> s5-0 bounds min z) (max 0 (+ (-> s5-0 bounds min z) -1))) + (set! (-> s5-0 bounds max x) (min (+ (-> s5-0 bounds max x) 1) v1-8)) + (set! (-> s5-0 bounds max z) (min (+ (-> s5-0 bounds max z) 1) v1-8)) + ) + (let ((s3-1 (-> s5-0 bounds min x))) + (until (< (-> s5-0 bounds max x) s3-1) + (trail-graph-method-25 obj s5-0 s3-1 (-> s5-0 bounds min z)) + (trail-graph-method-25 obj s5-0 s3-1 (-> s5-0 bounds max z)) + (+! s3-1 1) + ) + ) + (let ((s3-2 (-> s5-0 bounds min z))) + (until (< (-> s5-0 bounds max z) s3-2) + (trail-graph-method-25 obj s5-0 (-> s5-0 bounds min x) s3-2) + (trail-graph-method-25 obj s5-0 (-> s5-0 bounds max x) s3-2) + (+! s3-2 1) + ) + ) + ) + (set! (-> arg1 y) 0.0) + (-> s5-0 best-conn-id) + ) + ) + +;; definition for method 9 of type trail-graph +;; WARN: Return type mismatch int vs none. +(defmethod trail-graph-method-9 trail-graph ((obj trail-graph) (arg0 int)) + (let ((s4-0 (-> obj node arg0))) + (set! (-> s4-0 cost-from-start) (get-dist-score s4-0 (-> obj orig-start-pos))) + (set! (-> s4-0 cost-to-goal) (get-dist-score s4-0 (-> obj orig-goal-pos))) + ) + (trail-graph-method-11 obj arg0 -1) + 0 + (none) + ) + +;; definition for method 10 of type trail-graph +(defmethod trail-graph-method-10 trail-graph ((obj trail-graph) (arg0 int)) + (let* ((s5-0 (-> obj conn arg0)) + (v1-1 (-> s5-0 visgroup-id)) + ) + (cond + ((> v1-1 0) + (let* ((v1-4 (-> obj visgroup (+ v1-1 -1))) + (s5-1 (&-> (-> obj visnode-ids) (-> v1-4 first-conn))) + (s4-0 (-> v1-4 conn-count)) + ) + (-> obj visnode-ids) + (while (nonzero? s4-0) + (+! s4-0 -1) + (trail-graph-method-9 obj (the-as int (-> s5-1 0))) + (set! s5-1 (&-> s5-1 1)) + ) + ) + ) + (else + (trail-graph-method-9 obj (the-as int (-> s5-0 head-id))) + (trail-graph-method-9 obj (the-as int (-> s5-0 tail-id))) + ) + ) + ) + (none) + ) + +;; definition for method 11 of type trail-graph +;; WARN: new jak 2 until loop case, check carefully +(defmethod trail-graph-method-11 trail-graph ((obj trail-graph) (arg0 int) (arg1 int)) + (let ((v1-0 (/ arg0 8)) + (a3-1 (ash 1 (logand arg0 7))) + ) + (logior! (-> obj open-quads 0 byte v1-0) a3-1) + ) + (let* ((v1-2 (-> obj node)) + (v0-0 (-> v1-2 arg0)) + ) + (set! (-> v0-0 parent-id) arg1) + (let ((a3-6 (+ (-> v0-0 cost-from-start) (-> v0-0 cost-to-goal))) + (t0-4 (-> obj open-head-id)) + (a2-2 -1) + ) + (until #f + (when (< t0-4 0) + (set! (-> v0-0 next-id) -1) + (set! (-> v0-0 prev-id) a2-2) + (if (>= a2-2 0) + (set! (-> v1-2 a2-2 next-id) arg0) + (set! (-> obj open-head-id) arg0) + ) + (return v0-0) + ) + (let ((t1-4 (-> v1-2 t0-4))) + (when (>= (+ (-> t1-4 cost-from-start) (-> t1-4 cost-to-goal)) a3-6) + (set! (-> v0-0 next-id) t0-4) + (set! (-> v0-0 prev-id) a2-2) + (set! (-> t1-4 prev-id) arg0) + (if (>= a2-2 0) + (set! (-> v1-2 a2-2 next-id) arg0) + (set! (-> obj open-head-id) arg0) + ) + (return v0-0) + ) + (set! a2-2 t0-4) + (set! t0-4 (-> t1-4 next-id)) + ) + ) + ) + #f + v0-0 + ) + ) + +;; definition for method 22 of type trail-graph +;; WARN: Return type mismatch int vs none. +(defmethod trail-graph-method-22 trail-graph ((obj trail-graph) (arg0 int)) + (let ((v1-0 (/ arg0 8)) + (a2-1 (ash 1 (logand arg0 7))) + ) + (logior! (-> obj open-quads 0 byte v1-0) a2-1) + ) + (let* ((v1-2 (-> obj node)) + (a2-4 (-> v1-2 arg0)) + (a1-2 (-> a2-4 prev-id)) + (a2-5 (-> a2-4 next-id)) + ) + (cond + ((>= a1-2 0) + (set! (-> v1-2 a1-2 next-id) a2-5) + (if (>= a2-5 0) + (set! (-> v1-2 a2-5 prev-id) a1-2) + ) + ) + (else + (set! (-> obj open-head-id) a2-5) + (if (>= a2-5 0) + (set! (-> v1-2 a2-5 prev-id) -1) + ) + ) + ) + ) + (none) + ) + +;; definition for method 24 of type trail-graph +(defmethod get-next-to-explore trail-graph ((obj trail-graph)) + (let ((v0-0 (-> obj open-head-id))) + (when (>= v0-0 0) + (let* ((v1-1 (-> obj node)) + (a2-0 (-> v1-1 v0-0 next-id)) + ) + (set! (-> obj open-head-id) a2-0) + (if (>= a2-0 0) + (set! (-> v1-1 a2-0 prev-id) -1) + ) + ) + (let ((v1-3 (/ v0-0 8)) + (a1-6 (ash 1 (logand v0-0 7))) + ) + (logior! (-> obj closed-quads 0 byte v1-3) a1-6) + (logxor! (-> obj open-quads 0 byte v1-3) (the-as uint a1-6)) + ) + ) + v0-0 + ) + ) + +;; definition for method 9 of type trail-node +;; WARN: Return type mismatch int vs uint. +(defmethod get-dist-score trail-node ((obj trail-node) (arg0 vector)) + (let* ((f0-1 (- (-> arg0 x) (* 4096.0 (the float (-> obj x))))) + (f1-3 (- (-> arg0 z) (* 4096.0 (the float (-> obj z))))) + (f0-4 (sqrtf (+ (* f0-1 f0-1) (* f1-3 f1-3)))) + ) + (the uint (fmin 65535.0 (* 0.00024414062 (* 8.0 f0-4)))) + ) + ) + +;; definition for method 27 of type trail-graph +(defmethod do-some-work trail-graph ((obj trail-graph)) + (let ((s5-0 (get-next-to-explore obj))) + (if (< s5-0 0) + (return 2) + ) + (let ((s4-0 (-> obj node s5-0))) + (when (logtest? (-> s4-0 flags) (trail-node-flag tnf0)) + (set! (-> obj goal-node-id) s5-0) + (return 3) + ) + (let ((s3-0 (&-> (-> obj conn-ids) (-> s4-0 first-conn)))) + (countdown (s2-0 (-> s4-0 conn-count)) + (let* ((a0-7 (-> obj conn (-> s3-0 0))) + (v1-12 (-> a0-7 flags)) + ) + (when (= (logand (the-as conn-flag (-> obj conn-mask)) v1-12) v1-12) + (let ((s1-0 (-> a0-7 tail-id))) + (if (= s1-0 s5-0) + (set! s1-0 (-> a0-7 head-id)) + ) + (let ((s0-0 (-> obj node s1-0)) + (v1-17 (min #xffff (the-as int (+ (-> a0-7 cost) (-> s4-0 cost-from-start))))) + (a0-10 (shr s1-0 3)) + (a1-7 (ash 1 (logand s1-0 7))) + ) + (cond + ((logtest? (-> obj open-quads 0 byte a0-10) a1-7) + (when (< (the-as uint v1-17) (-> s0-0 cost-from-start)) + (set! (-> s0-0 cost-from-start) (the-as uint v1-17)) + (trail-graph-method-22 obj (the-as int s1-0)) + (trail-graph-method-11 obj (the-as int s1-0) s5-0) + ) + ) + ((not (logtest? (-> obj closed-quads 0 byte a0-10) a1-7)) + (set! (-> s0-0 cost-from-start) (the-as uint v1-17)) + (set! (-> s0-0 cost-to-goal) (get-dist-score s0-0 (-> obj orig-goal-pos))) + (trail-graph-method-11 obj (the-as int s1-0) s5-0) + ) + ((< (the-as uint v1-17) (-> s0-0 cost-from-start)) + (set! (-> s0-0 cost-from-start) (the-as uint v1-17)) + (trail-graph-method-11 obj (the-as int s1-0) s5-0) + ) + ) + ) + ) + ) + ) + (set! s3-0 (&-> s3-0 1)) + ) + ) + ) + ) + 1 + ) + +;; definition for method 28 of type trail-graph +;; WARN: Return type mismatch int vs none. +;; ERROR: Unsupported inline assembly instruction kind - [mfc0 v1, Count] +;; ERROR: Unsupported inline assembly instruction kind - [mfc0 v1, Count] +(defmethod run-until-done-or-timeout trail-graph ((obj trail-graph) (arg0 int)) + (local-vars (v1-1 int)) + (let ((v0-0 (the-as int (-> obj mode)))) + 0 + (.mfc0 v1-1 Count) + (while (and (= v0-0 1) (< (the-as uint v1-1) (the-as uint arg0))) + (set! v0-0 (do-some-work obj)) + (.mfc0 v1-1 Count) + ) + (set! (-> obj mode) (the-as uint v0-0)) + ) + (none) + ) + +;; definition of type trail-vis-work +(deftype trail-vis-work (structure) + ((best-count uint32 :offset-assert 0) + (best-dist float :offset-assert 4) + (start-conn-id uint32 :offset-assert 8) + (p0 vector :inline :offset-assert 16) + (p1 vector :inline :offset-assert 32) + (best-node-id uint16 64 :offset-assert 48) + ) + :method-count-assert 9 + :size-assert #xb0 + :flag-assert #x9000000b0 + ) + +;; definition for method 3 of type trail-vis-work +(defmethod inspect trail-vis-work ((obj trail-vis-work)) + (when (not obj) + (set! obj obj) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" obj 'trail-vis-work) + (format #t "~1Tbest-count: ~D~%" (-> obj best-count)) + (format #t "~1Tbest-dist: ~f~%" (-> obj best-dist)) + (format #t "~1Tstart-conn-id: ~D~%" (-> obj start-conn-id)) + (format #t "~1Tp0: #~%" (-> obj p0)) + (format #t "~1Tp1: #~%" (-> obj p1)) + (format #t "~1Tbest-node-id[64] @ #x~X~%" (-> obj best-node-id)) + (label cfg-4) + obj + ) + +;; definition for method 19 of type trail-graph +;; INFO: Used lq/sq +(defmethod trail-graph-method-19 trail-graph ((obj trail-graph) (arg0 int) (arg1 int)) + (local-vars (s4-1 symbol)) + (let* ((s4-0 (-> obj node)) + (v1-2 (-> s4-0 arg1)) + (s5-0 (new 'stack-no-clear 'trail-vis-work)) + ) + (set! (-> s5-0 start-conn-id) (the-as uint arg0)) + (set-vector! + (-> s5-0 p0) + (* 4096.0 (the float (-> v1-2 x))) + (-> obj orig-goal-pos y) + (* 4096.0 (the float (-> v1-2 z))) + 1.0 + ) + (set! (-> s5-0 p1 quad) (-> s5-0 p0 quad)) + (set! (-> s5-0 best-count) (the-as uint 0)) + (set! (-> s5-0 best-dist) -1.0) + (let ((s2-0 (&-> (-> obj conn-ids) (-> v1-2 first-conn)))) + (countdown (s1-0 (-> v1-2 conn-count)) + (let* ((v1-4 (-> obj conn (-> s2-0 0))) + (s0-0 (-> v1-4 tail-id)) + ) + (if (= s0-0 arg1) + (set! s0-0 (-> v1-4 head-id)) + ) + (let ((v1-8 (-> s4-0 s0-0))) + (set! (-> s5-0 p1 x) (* 4096.0 (the float (-> v1-8 x)))) + (set! (-> s5-0 p1 z) (* 4096.0 (the float (-> v1-8 z)))) + ) + (let ((f0-11 (vector-segment-distance-point! (-> obj orig-goal-pos) (-> s5-0 p0) (-> s5-0 p1) (the-as vector #f))) + (f1-8 (-> s5-0 best-dist)) + ) + (cond + ((or (< f1-8 0.0) (< f0-11 f1-8)) + (set! (-> s5-0 best-dist) f0-11) + (set! (-> s5-0 best-count) (the-as uint 1)) + (set! (-> s5-0 best-node-id 0) s0-0) + ) + ((= f0-11 f1-8) + (let ((v1-15 (-> s5-0 best-count))) + (when (< v1-15 (the-as uint 64)) + (set! (-> s5-0 best-node-id v1-15) s0-0) + (set! (-> s5-0 best-count) (+ v1-15 1)) + ) + ) + ) + ) + ) + ) + (set! s2-0 (&-> s2-0 1)) + ) + ) + (update-node-flags-for-conn obj (the-as int (-> s5-0 start-conn-id)) (trail-node-flag tnf1) (trail-node-flag)) + (countdown (v1-20 (-> s5-0 best-count)) + (let ((a1-14 (-> s4-0 (-> s5-0 best-node-id v1-20)))) + (when (= (logand (-> a1-14 flags) (trail-node-flag tnf0 tnf1)) (trail-node-flag tnf0 tnf1)) + (set! s4-1 #t) + (goto cfg-22) + ) + ) + ) + (set! s4-1 #f) + (label cfg-22) + (update-node-flags-for-conn obj (the-as int (-> s5-0 start-conn-id)) (trail-node-flag) (trail-node-flag tnf1)) + ) + s4-1 + ) + +;; definition for method 26 of type trail-graph +;; INFO: Used lq/sq +;; WARN: Return type mismatch int vs none. +(defmethod do-search! trail-graph ((obj trail-graph) (arg0 vector) (arg1 vector) (arg2 trail-cached-search-info)) + (reset-search-state obj) + (+! (-> obj search-id) 1) + (set! (-> obj orig-start-pos quad) (-> arg0 quad)) + (let ((a1-1 -1)) + (when arg2 + (let ((v1-6 (-> arg2 goal-conn-id))) + (when (and (>= v1-6 0) + (= (-> arg2 orig-goal-pos x) (-> arg1 x)) + (= (-> arg2 orig-goal-pos y) (-> arg1 y)) + (= (-> arg2 orig-goal-pos z) (-> arg1 z)) + ) + (set! a1-1 v1-6) + (set! (-> obj conn-goal-pos quad) (-> arg2 conn-goal-pos quad)) + ) + ) + ) + (set! (-> obj orig-goal-pos quad) (-> arg1 quad)) + (when (< a1-1 0) + (set! a1-1 (do-path obj (-> obj orig-goal-pos) (-> obj conn-goal-pos))) + (when arg2 + (set! (-> arg2 goal-conn-id) a1-1) + (set! (-> arg2 orig-goal-pos quad) (-> obj orig-goal-pos quad)) + (set! (-> arg2 conn-goal-pos quad) (-> obj conn-goal-pos quad)) + ) + ) + (set! (-> obj goal-conn-id) a1-1) + (update-node-flags-for-conn obj a1-1 (trail-node-flag tnf0) (trail-node-flag)) + ) + (let ((v1-17 -1)) + (let ((a0-16 (-> *game-info* features))) + (if (not (logtest? (game-feature pass-red) a0-16)) + (set! v1-17 (logand -2 v1-17)) + ) + (if (not (logtest? (game-feature pass-green) a0-16)) + (set! v1-17 (logand -3 v1-17)) + ) + (if (not (logtest? (game-feature pass-yellow) a0-16)) + (set! v1-17 (logand -5 v1-17)) + ) + (if (not (logtest? (game-feature pass-blue) a0-16)) + (set! v1-17 (logand -9 v1-17)) + ) + ) + (set! (-> obj conn-mask) (the-as uint v1-17)) + ) + (let ((s5-1 (do-path obj (-> obj orig-start-pos) (-> obj conn-start-pos)))) + (trail-graph-method-10 obj s5-1) + (let ((a2-5 (-> obj open-head-id))) + (if (and (logtest? (-> obj node a2-5 flags) (trail-node-flag tnf0)) (trail-graph-method-19 obj s5-1 a2-5)) + (set! (-> obj mode) (the-as uint 3)) + (set! (-> obj mode) (the-as uint 1)) + ) + ) + ) + (none) + ) + +;; failed to figure out what this is: +(if (not (try-initialize *trail-graph*)) + (set! *trail-graph* #f) + ) diff --git a/test/decompiler/reference/jak2/levels/city/trail-h_REF.gc b/test/decompiler/reference/jak2/levels/city/trail-h_REF.gc deleted file mode 100644 index 17aa4e1c52..0000000000 --- a/test/decompiler/reference/jak2/levels/city/trail-h_REF.gc +++ /dev/null @@ -1,310 +0,0 @@ -;;-*-Lisp-*- -(in-package goal) - -;; definition of type trail-node -(deftype trail-node (structure) - ((next-id int16 :offset-assert 0) - (prev-id int16 :offset-assert 2) - (parent-id int16 :offset-assert 4) - (x int16 :offset-assert 6) - (z int16 :offset-assert 8) - (first-conn uint16 :offset-assert 10) - (cost-from-start uint16 :offset-assert 12) - (cost-to-goal uint16 :offset-assert 14) - (flags uint8 :offset-assert 16) - (conn-count uint8 :offset-assert 17) - ) - :method-count-assert 12 - :size-assert #x12 - :flag-assert #xc00000012 - (:methods - (trail-node-method-9 () none 9) - (trail-node-method-10 () none 10) - (trail-node-method-11 () none 11) - ) - ) - -;; definition for method 3 of type trail-node -(defmethod inspect trail-node ((obj trail-node)) - (when (not obj) - (set! obj obj) - (goto cfg-4) - ) - (format #t "[~8x] ~A~%" obj 'trail-node) - (format #t "~1Tnext-id: ~D~%" (-> obj next-id)) - (format #t "~1Tprev-id: ~D~%" (-> obj prev-id)) - (format #t "~1Tparent-id: ~D~%" (-> obj parent-id)) - (format #t "~1Tx: ~D~%" (-> obj x)) - (format #t "~1Tz: ~D~%" (-> obj z)) - (format #t "~1Tfirst-conn: ~D~%" (-> obj first-conn)) - (format #t "~1Tcost-from-start: ~D~%" (-> obj cost-from-start)) - (format #t "~1Tcost-to-goal: ~D~%" (-> obj cost-to-goal)) - (format #t "~1Tflags: ~D~%" (-> obj flags)) - (format #t "~1Tconn-count: ~D~%" (-> obj conn-count)) - (label cfg-4) - obj - ) - -;; definition of type trail-visgroup -(deftype trail-visgroup (structure) - ((first-node uint16 :offset-assert 0) - (node-count uint8 :offset-assert 2) - (pad uint8 :offset-assert 3) - ) - :method-count-assert 9 - :size-assert #x4 - :flag-assert #x900000004 - ) - -;; definition for method 3 of type trail-visgroup -(defmethod inspect trail-visgroup ((obj trail-visgroup)) - (when (not obj) - (set! obj obj) - (goto cfg-4) - ) - (format #t "[~8x] ~A~%" obj 'trail-visgroup) - (format #t "~1Tfirst-node: ~D~%" (-> obj first-node)) - (format #t "~1Tnode-count: ~D~%" (-> obj node-count)) - (format #t "~1Tpad: ~D~%" (-> obj pad)) - (label cfg-4) - obj - ) - -;; definition of type trail-conn -(deftype trail-conn (structure) - ((head-id uint16 :offset-assert 0) - (tail-id uint16 :offset-assert 2) - (flags uint8 :offset-assert 4) - (visgroup-id uint8 :offset-assert 5) - (cost uint16 :offset-assert 6) - ) - :method-count-assert 10 - :size-assert #x8 - :flag-assert #xa00000008 - (:methods - (trail-conn-method-9 () none 9) - ) - ) - -;; definition for method 3 of type trail-conn -(defmethod inspect trail-conn ((obj trail-conn)) - (when (not obj) - (set! obj obj) - (goto cfg-4) - ) - (format #t "[~8x] ~A~%" obj 'trail-conn) - (format #t "~1Thead-id: ~D~%" (-> obj head-id)) - (format #t "~1Ttail-id: ~D~%" (-> obj tail-id)) - (format #t "~1Tflags: ~D~%" (-> obj flags)) - (format #t "~1Tvisgroup-id: ~D~%" (-> obj visgroup-id)) - (format #t "~1Tcost: ~D~%" (-> obj cost)) - (label cfg-4) - obj - ) - -;; definition of type trail-conn-hash-cell -(deftype trail-conn-hash-cell (structure) - ((first-conn uint16 :offset-assert 0) - (conn-count uint8 :offset-assert 2) - (pad uint8 :offset-assert 3) - ) - :method-count-assert 9 - :size-assert #x4 - :flag-assert #x900000004 - ) - -;; definition for method 3 of type trail-conn-hash-cell -(defmethod inspect trail-conn-hash-cell ((obj trail-conn-hash-cell)) - (when (not obj) - (set! obj obj) - (goto cfg-4) - ) - (format #t "[~8x] ~A~%" obj 'trail-conn-hash-cell) - (format #t "~1Tfirst-conn: ~D~%" (-> obj first-conn)) - (format #t "~1Tconn-count: ~D~%" (-> obj conn-count)) - (format #t "~1Tpad: ~D~%" (-> obj pad)) - (label cfg-4) - obj - ) - -;; definition of type trail-conn-search -(deftype trail-conn-search (structure) - ((best-conn-id int32 :offset-assert 0) - (best-dist float :offset-assert 4) - (src-pos vector :offset-assert 8) - (conn-pos vector :offset-assert 12) - (debug-cells-searched int32 :offset-assert 16) - (debug-conns-searched int32 :offset-assert 20) - (bounds bounding-box4w :inline :offset-assert 32) - (cell-quads qword 2 :inline :offset-assert 64) - (conn-quads qword 7 :inline :offset-assert 96) - (cell-bits vector16ub 2 :inline :offset 64) - ) - :method-count-assert 9 - :size-assert #xd0 - :flag-assert #x9000000d0 - ) - -;; definition for method 3 of type trail-conn-search -(defmethod inspect trail-conn-search ((obj trail-conn-search)) - (when (not obj) - (set! obj obj) - (goto cfg-4) - ) - (format #t "[~8x] ~A~%" obj 'trail-conn-search) - (format #t "~1Tbest-conn-id: ~D~%" (-> obj best-conn-id)) - (format #t "~1Tbest-dist: ~f~%" (-> obj best-dist)) - (format #t "~1Tsrc-pos: #~%" (-> obj src-pos)) - (format #t "~1Tconn-pos: #~%" (-> obj conn-pos)) - (format #t "~1Tdebug-cells-searched: ~D~%" (-> obj debug-cells-searched)) - (format #t "~1Tdebug-conns-searched: ~D~%" (-> obj debug-conns-searched)) - (format #t "~1Tbounds: #~%" (-> obj bounds)) - (format #t "~1Tcell-quads[2] @ #x~X~%" (-> obj cell-quads)) - (format #t "~1Tconn-quads[7] @ #x~X~%" (-> obj conn-quads)) - (format #t "~1Tcell-bits[2] @ #x~X~%" (-> obj cell-quads)) - (format #t "~1Tconn-bits[2] @ #x~X~%" (-> obj conn-quads)) - (label cfg-4) - obj - ) - -;; definition of type trail-conn-hash -(deftype trail-conn-hash (basic) - ((cell-width meters :offset-assert 4) - (origin vector :inline :offset-assert 16) - (cell uint32 :offset-assert 32) - (conn-ids uint32 :offset-assert 36) - ) - :method-count-assert 9 - :size-assert #x28 - :flag-assert #x900000028 - ) - -;; definition for method 3 of type trail-conn-hash -(defmethod inspect trail-conn-hash ((obj trail-conn-hash)) - (when (not obj) - (set! obj obj) - (goto cfg-4) - ) - (format #t "[~8x] ~A~%" obj (-> obj type)) - (format #t "~1Tcell-width: (meters ~m)~%" (-> obj cell-width)) - (format #t "~1Torigin: #~%" (-> obj origin)) - (format #t "~1Tcell: #x~X~%" (-> obj cell)) - (format #t "~1Tconn-ids: #x~X~%" (-> obj conn-ids)) - (label cfg-4) - obj - ) - -;; definition of type trail-cached-search-info -(deftype trail-cached-search-info (structure) - ((goal-conn-id int16 :offset-assert 0) - (orig-goal-pos vector :inline :offset-assert 16) - (conn-goal-pos vector :inline :offset-assert 32) - ) - :method-count-assert 9 - :size-assert #x30 - :flag-assert #x900000030 - ) - -;; definition for method 3 of type trail-cached-search-info -(defmethod inspect trail-cached-search-info ((obj trail-cached-search-info)) - (when (not obj) - (set! obj obj) - (goto cfg-4) - ) - (format #t "[~8x] ~A~%" obj 'trail-cached-search-info) - (format #t "~1Tgoal-conn-id: ~D~%" (-> obj goal-conn-id)) - (format #t "~1Torig-goal-pos: #~%" (-> obj orig-goal-pos)) - (format #t "~1Tconn-goal-pos: #~%" (-> obj conn-goal-pos)) - (label cfg-4) - obj - ) - -;; definition of type trail-graph -(deftype trail-graph (basic) - ((mode uint8 :offset-assert 4) - (search-id uint32 :offset-assert 8) - (open-head-id int16 :offset-assert 12) - (goal-conn-id int16 :offset-assert 14) - (goal-node-id int16 :offset-assert 16) - (node-count uint16 :offset-assert 18) - (conn-count uint16 :offset-assert 20) - (conn-mask uint8 :offset-assert 22) - (node uint32 :offset-assert 24) - (conn uint32 :offset-assert 28) - (conn-ids uint32 :offset-assert 32) - (visgroup uint32 :offset-assert 36) - (visnode-ids uint32 :offset-assert 40) - (conn-hash basic :offset-assert 44) - (orig-start-pos vector :inline :offset-assert 48) - (orig-goal-pos vector :inline :offset-assert 64) - (conn-start-pos vector :inline :offset-assert 80) - (conn-goal-pos vector :inline :offset-assert 96) - (open-quads qword 6 :inline :offset-assert 112) - (closed-quads qword 6 :inline :offset-assert 208) - ) - :method-count-assert 29 - :size-assert #x130 - :flag-assert #x1d00000130 - (:methods - (trail-graph-method-9 () none 9) - (trail-graph-method-10 () none 10) - (trail-graph-method-11 () none 11) - (trail-graph-method-12 () none 12) - (trail-graph-method-13 () none 13) - (trail-graph-method-14 () none 14) - (trail-graph-method-15 () none 15) - (trail-graph-method-16 () none 16) - (trail-graph-method-17 () none 17) - (trail-graph-method-18 () none 18) - (trail-graph-method-19 () none 19) - (trail-graph-method-20 () none 20) - (trail-graph-method-21 () none 21) - (trail-graph-method-22 () none 22) - (trail-graph-method-23 () none 23) - (trail-graph-method-24 () none 24) - (trail-graph-method-25 () none 25) - (trail-graph-method-26 () none 26) - (trail-graph-method-27 () none 27) - (trail-graph-method-28 () none 28) - ) - ) - -;; definition for method 3 of type trail-graph -(defmethod inspect trail-graph ((obj trail-graph)) - (when (not obj) - (set! obj obj) - (goto cfg-4) - ) - (format #t "[~8x] ~A~%" obj (-> obj type)) - (format #t "~1Tmode: ~D~%" (-> obj mode)) - (format #t "~1Tsearch-id: ~D~%" (-> obj search-id)) - (format #t "~1Topen-head-id: ~D~%" (-> obj open-head-id)) - (format #t "~1Tgoal-conn-id: ~D~%" (-> obj goal-conn-id)) - (format #t "~1Tgoal-node-id: ~D~%" (-> obj goal-node-id)) - (format #t "~1Tnode-count: ~D~%" (-> obj node-count)) - (format #t "~1Tconn-count: ~D~%" (-> obj conn-count)) - (format #t "~1Tconn-mask: ~D~%" (-> obj conn-mask)) - (format #t "~1Tnode: #x~X~%" (-> obj node)) - (format #t "~1Tconn: #x~X~%" (-> obj conn)) - (format #t "~1Tconn-ids: #x~X~%" (-> obj conn-ids)) - (format #t "~1Tvisgroup: #x~X~%" (-> obj visgroup)) - (format #t "~1Tvisnode-ids: #x~X~%" (-> obj visnode-ids)) - (format #t "~1Tconn-hash: ~A~%" (-> obj conn-hash)) - (format #t "~1Torig-start-pos: #~%" (-> obj orig-start-pos)) - (format #t "~1Torig-goal-pos: #~%" (-> obj orig-goal-pos)) - (format #t "~1Tconn-start-pos: #~%" (-> obj conn-start-pos)) - (format #t "~1Tconn-goal-pos: #~%" (-> obj conn-goal-pos)) - (format #t "~1Topen-quads[6] @ #x~X~%" (-> obj open-quads)) - (format #t "~1Tclosed-quads[6] @ #x~X~%" (-> obj closed-quads)) - (format #t "~1Topen-bits[2] @ #x~X~%" (-> obj open-quads)) - (format #t "~1Tclosed-bits[2] @ #x~X~%" (-> obj closed-quads)) - (label cfg-4) - obj - ) - -;; definition for symbol *trail-graph*, type trail-graph -(define *trail-graph* (the-as trail-graph #f)) - - - - diff --git a/test/decompiler/reference/jak2/levels/common/enemy/hopper_REF.gc b/test/decompiler/reference/jak2/levels/common/enemy/hopper_REF.gc index 5ccc7afb56..94f3db14af 100644 --- a/test/decompiler/reference/jak2/levels/common/enemy/hopper_REF.gc +++ b/test/decompiler/reference/jak2/levels/common/enemy/hopper_REF.gc @@ -938,9 +938,7 @@ (set! (-> v1-39 nav-cull-radius) 61440.0) ) 0 - (set! (-> obj minimap) - (minimap-method-12 *minimap* obj (the-as uint 70) (the-as int #f) (the-as vector #t) 0) - ) + (set! (-> obj minimap) (add-icon! *minimap* obj (the-as uint 70) (the-as int #f) (the-as vector #t) 0)) 0 (none) ) diff --git a/test/decompiler/reference/jak2/levels/common/flitter_REF.gc b/test/decompiler/reference/jak2/levels/common/flitter_REF.gc index 566b99f97e..50810c4a46 100644 --- a/test/decompiler/reference/jak2/levels/common/flitter_REF.gc +++ b/test/decompiler/reference/jak2/levels/common/flitter_REF.gc @@ -1504,8 +1504,6 @@ (the-as float s5-2) ) ) - (set! (-> obj minimap) - (minimap-method-12 *minimap* obj (the-as uint 70) (the-as int #f) (the-as vector #t) 0) - ) + (set! (-> obj minimap) (add-icon! *minimap* obj (the-as uint 70) (the-as int #f) (the-as vector #t) 0)) (none) ) diff --git a/test/decompiler/reference/jak2/levels/common/grunt_REF.gc b/test/decompiler/reference/jak2/levels/common/grunt_REF.gc index 8a5cd10db4..36e161e258 100644 --- a/test/decompiler/reference/jak2/levels/common/grunt_REF.gc +++ b/test/decompiler/reference/jak2/levels/common/grunt_REF.gc @@ -1675,9 +1675,7 @@ 318 (new 'static 'vector :x -1433.6 :y 2785.28 :z -1761.28 :w 163840.0) ) - (set! (-> obj minimap) - (minimap-method-12 *minimap* obj (the-as uint 70) (the-as int #f) (the-as vector #t) 0) - ) + (set! (-> obj minimap) (add-icon! *minimap* obj (the-as uint 70) (the-as int #f) (the-as vector #t) 0)) 0 (none) ) diff --git a/test/decompiler/reference/jak2/levels/dig/dig-digger_REF.gc b/test/decompiler/reference/jak2/levels/dig/dig-digger_REF.gc index 4a5ce51fab..050f6d4f11 100644 --- a/test/decompiler/reference/jak2/levels/dig/dig-digger_REF.gc +++ b/test/decompiler/reference/jak2/levels/dig/dig-digger_REF.gc @@ -798,7 +798,7 @@ (set! (-> obj draw light-index) (the-as uint 1)) (set! (-> obj part) (create-launch-control (-> *part-group-id-table* 1142) obj)) (set! (-> obj b) #f) - (set! (-> obj conn) (minimap-method-12 *minimap* obj (the-as uint 16) (the-as int #f) (the-as vector #t) 0)) + (set! (-> obj conn) (add-icon! *minimap* obj (the-as uint 16) (the-as int #f) (the-as vector #t) 0)) (if (and (-> obj entity) (logtest? (-> obj entity extra perm status) (entity-perm-status subtask-complete))) (go (method-of-object obj broken)) (go (method-of-object obj idle)) @@ -857,7 +857,7 @@ (set! (-> obj draw light-index) (the-as uint 1)) (set! (-> obj part) (create-launch-control (-> *part-group-id-table* 1142) obj)) (set! (-> obj b) (the-as basic #t)) - (set! (-> obj conn) (minimap-method-12 *minimap* obj (the-as uint 16) (the-as int #f) (the-as vector #t) 0)) + (set! (-> obj conn) (add-icon! *minimap* obj (the-as uint 16) (the-as int #f) (the-as vector #t) 0)) (if (and (-> obj entity) (logtest? (-> obj entity extra perm status) (entity-perm-status subtask-complete))) (go (method-of-object obj broken)) (go (method-of-object obj idle)) diff --git a/test/decompiler/reference/jak2/levels/dig/dig-obs_REF.gc b/test/decompiler/reference/jak2/levels/dig/dig-obs_REF.gc index 7510c9f45e..a120e60d6a 100644 --- a/test/decompiler/reference/jak2/levels/dig/dig-obs_REF.gc +++ b/test/decompiler/reference/jak2/levels/dig/dig-obs_REF.gc @@ -766,7 +766,7 @@ (countdown (s4-2 (-> s5-2 length)) (let ((s3-1 (-> s5-2 data s4-2 actor))) (when s3-1 - (minimap-method-12 *minimap* obj (the-as uint 16) (the-as int #f) (the-as vector s3-1) 0) + (add-icon! *minimap* obj (the-as uint 16) (the-as int #f) (the-as vector s3-1) 0) (+! (-> obj total-buttons) 1) (if (logtest? (-> s3-1 extra perm status) (entity-perm-status subtask-complete)) (+! (-> obj pressed-count) 1) diff --git a/test/decompiler/reference/jak2/levels/forest/pegasus_REF.gc b/test/decompiler/reference/jak2/levels/forest/pegasus_REF.gc index afdc1b9f9e..5d8913222c 100644 --- a/test/decompiler/reference/jak2/levels/forest/pegasus_REF.gc +++ b/test/decompiler/reference/jak2/levels/forest/pegasus_REF.gc @@ -1542,7 +1542,7 @@ (dotimes (gp-0 (the-as int (-> self actor-group 0 0))) (let ((t0-1 (-> (&+ (-> self actor-group 0) (* gp-0 8)) 3))) (if t0-1 - (minimap-method-12 *minimap* self (the-as uint 16) (the-as int #f) (the-as vector t0-1) 0) + (add-icon! *minimap* self (the-as uint 16) (the-as int #f) (the-as vector t0-1) 0) ) ) ) diff --git a/test/decompiler/reference/jak2/levels/forest/predator_REF.gc b/test/decompiler/reference/jak2/levels/forest/predator_REF.gc index 84e7e24f22..23cb97ab9f 100644 --- a/test/decompiler/reference/jak2/levels/forest/predator_REF.gc +++ b/test/decompiler/reference/jak2/levels/forest/predator_REF.gc @@ -1596,7 +1596,7 @@ ) ) (set! (-> obj enemy-flags) (logior (enemy-flag trackable-backup enable-on-hostile) (-> obj enemy-flags))) - (minimap-method-12 *minimap* obj (the-as uint 16) (the-as int #f) (the-as vector #t) 0) + (add-icon! *minimap* obj (the-as uint 16) (the-as int #f) (the-as vector #t) 0) 0 (none) ) @@ -1751,7 +1751,7 @@ (dotimes (s5-0 (length (-> obj actor-group 0))) (let ((t0-1 (-> obj actor-group 0 data s5-0 actor))) (if t0-1 - (minimap-method-12 *minimap* obj (the-as uint 16) (the-as int #f) (the-as vector t0-1) 0) + (add-icon! *minimap* obj (the-as uint 16) (the-as int #f) (the-as vector t0-1) 0) ) ) ) diff --git a/test/decompiler/reference/jak2/levels/ruins/ruins-scenes_REF.gc b/test/decompiler/reference/jak2/levels/ruins/ruins-scenes_REF.gc index 3ebde4bed4..b66e319f8c 100644 --- a/test/decompiler/reference/jak2/levels/ruins/ruins-scenes_REF.gc +++ b/test/decompiler/reference/jak2/levels/ruins/ruins-scenes_REF.gc @@ -1388,7 +1388,7 @@ (the-as pair 0) ) (set! (-> obj part) (create-launch-control (-> *part-group-id-table* 78) obj)) - (minimap-method-12 *minimap* obj (the-as uint 16) (the-as int #f) (the-as vector #t) 0) + (add-icon! *minimap* obj (the-as uint 16) (the-as int #f) (the-as vector #t) 0) (go (method-of-object obj idle)) (none) ) diff --git a/test/offline/config/jak2/config.jsonc b/test/offline/config/jak2/config.jsonc index 79b2fd1bf6..b16bdb126a 100644 --- a/test/offline/config/jak2/config.jsonc +++ b/test/offline/config/jak2/config.jsonc @@ -269,6 +269,8 @@ "(method 3 rhino)", "(method 202 crimson-guard-level)", // vector-dot "(method 10 idle-control)", // re-assigns `self` + "(method 18 minimap)", + "(method 16 minimap)", "(method 60 fort-turret)", // they defined the same method twice in the same file, identical impl, just returns #f "(method 23 dig-tether)" // working around annoying decomp array output ],