mirror of
https://github.com/open-goal/jak-project
synced 2026-09-13 05:05:48 -04:00
jak2 gsrc
This commit is contained in:
@@ -238,7 +238,7 @@
|
||||
|
||||
(defmethod alloc-new-node! ((this mysql-nav-graph))
|
||||
"Allocates a new `[[mysql-nav-node]]`, if `node-array`'s `length` exceeds `3000` return `-1`
|
||||
otherwise, return the new size of the array"
|
||||
otherwise, return the new size of the array"
|
||||
(cond
|
||||
((>= (-> this node-array length) 3000)
|
||||
(format #t "mysql-nav-graph : nodes buffer too small, increase NAV_GRAPH_EDITOR_NODE_COUNT~%")
|
||||
@@ -262,7 +262,7 @@ otherwise, return the new size of the array"
|
||||
|
||||
(defmethod alloc-new-edge! ((this mysql-nav-graph))
|
||||
"Allocates a new `[[mysql-nav-edge]]`, if `edge-array`'s `length` exceeds `5000` return `-1`
|
||||
otherwise, return the new size of the array"
|
||||
otherwise, return the new size of the array"
|
||||
(cond
|
||||
((>= (-> this edge-array length) 5000)
|
||||
(format #t "mysql-nav-graph : edges buffer too small, increase NAV_GRAPH_EDITOR_EDGE_COUNT~%")
|
||||
@@ -286,7 +286,7 @@ otherwise, return the new size of the array"
|
||||
|
||||
(defmethod indexof-visnode ((this mysql-nav-graph) (edge-id int) (node-id int))
|
||||
"Returns the index in the `visnode-array` whom's [[mysql-nav-visnode]] has the provided `runtime-edge-id` and `runtime-node-id`
|
||||
if none exist, return `-1`"
|
||||
if none exist, return `-1`"
|
||||
(dotimes (v1-0 (-> this visnode-array length))
|
||||
(let ((a3-2 (-> this visnode-array data v1-0)))
|
||||
(if (and (= (-> a3-2 runtime-edge-id) edge-id) (= (-> a3-2 runtime-node-id) node-id))
|
||||
@@ -299,9 +299,9 @@ if none exist, return `-1`"
|
||||
|
||||
(defmethod alloc-new-visnode! ((this mysql-nav-graph) (edge-id int) (node-id int))
|
||||
"Potentially allocates a new `[[mysql-nav-visnode]]`:
|
||||
- if `visnode-array`'s `length` exceeds `3000` return `-1`
|
||||
- otherwise, if the node already exists, TODO
|
||||
- if the node does not already exist, create it!"
|
||||
- if `visnode-array`'s `length` exceeds `3000` return `-1`
|
||||
- otherwise, if the node already exists, TODO
|
||||
- if the node does not already exist, create it!"
|
||||
(cond
|
||||
((>= (-> this visnode-array length) 3000)
|
||||
(format #t "mysql-nav-graph : visnodes buffer too small, increase NAV_GRAPH_EDITOR_VISNODE_COUNT~%")
|
||||
@@ -697,7 +697,7 @@ if none exist, return `-1`"
|
||||
|
||||
(defmethod indexof-nav-node ((this mysql-nav-graph) (node-id int))
|
||||
"Iterate through the `node-array` and return the index for the first [[mysql-nav-node]] whom's `nav_node_id` matches the provided id
|
||||
returns `-1` if none is found"
|
||||
returns `-1` if none is found"
|
||||
(dotimes (v1-0 (-> this node-array length))
|
||||
(if (= node-id (-> (the-as mysql-nav-node (-> this node-array data v1-0)) nav_node_id))
|
||||
(return v1-0)
|
||||
@@ -708,7 +708,7 @@ returns `-1` if none is found"
|
||||
|
||||
(defmethod indexof-nav-edge ((this mysql-nav-graph) (edge-id int))
|
||||
"Iterate through the `edge-array` and return the index for the first [[mysql-nav-edge]] whom's `nav_edge_id` matches the provided id
|
||||
returns `-1` if none is found"
|
||||
returns `-1` if none is found"
|
||||
(dotimes (v1-0 (-> this edge-array length))
|
||||
(if (= edge-id (-> (the-as mysql-nav-edge (-> this edge-array data v1-0)) nav_edge_id))
|
||||
(return v1-0)
|
||||
@@ -726,7 +726,6 @@ returns `-1` if none is found"
|
||||
;; WARN: new jak 2 until loop case, check carefully
|
||||
(defmethod init-from-sql! ((this mysql-nav-graph) (arg0 string) (arg1 string))
|
||||
"Query the database and initialize the [[mysql-nav-graph]] and all it's related components"
|
||||
(local-vars (sv-16 string) (sv-32 int) (sv-48 int) (sv-64 int))
|
||||
(set! (-> this node-array length) 0)
|
||||
(set! (-> this edge-array length) 0)
|
||||
(set! (-> this visnode-array length) 0)
|
||||
@@ -774,35 +773,36 @@ returns `-1` if none is found"
|
||||
(set! (-> nav-node angle) (* 182.04445 (string->float (-> s2-1 data (+ s1-0 5)))))
|
||||
(set! (-> nav-node radius) (* 4096.0 (string->float (-> s2-1 data (+ s1-0 6)))))
|
||||
(set! (-> nav-node nav_node_flag) (nav-node-flag))
|
||||
(set! sv-16 (new 'global 'string 0 (-> s2-1 data (+ s1-0 7))))
|
||||
(copy-string<-string sv-16 (-> s2-1 data (+ s1-0 7)))
|
||||
(until #f
|
||||
(cond
|
||||
((string-prefix= "visited" sv-16)
|
||||
(logior! (-> nav-node nav_node_flag) (nav-node-flag visited))
|
||||
)
|
||||
((string-prefix= "blocked" sv-16)
|
||||
(logior! (-> nav-node nav_node_flag) (nav-node-flag blocked))
|
||||
)
|
||||
((string-prefix= "pedestrian" sv-16)
|
||||
(logior! (-> nav-node nav_node_flag) (nav-node-flag pedestrian))
|
||||
)
|
||||
((string-prefix= "selected" sv-16)
|
||||
(logior! (-> nav-node nav_node_flag) (nav-node-flag selected))
|
||||
)
|
||||
((string-prefix= "hidden" sv-16)
|
||||
(logior! (-> nav-node nav_node_flag) (nav-node-flag hidden))
|
||||
)
|
||||
(else
|
||||
#t
|
||||
(goto cfg-27)
|
||||
)
|
||||
)
|
||||
(let ((a1-16 (string-skip-to-char (-> sv-16 data) (the-as uint 44))))
|
||||
(if (= (-> a1-16 0) 44)
|
||||
(set! a1-16 (&-> a1-16 1))
|
||||
(let ((sv-16 (new 'global 'string 0 (-> s2-1 data (+ s1-0 7)))))
|
||||
(copy-string<-string sv-16 (-> s2-1 data (+ s1-0 7)))
|
||||
(until #f
|
||||
(cond
|
||||
((string-prefix= "visited" sv-16)
|
||||
(logior! (-> nav-node nav_node_flag) (nav-node-flag visited))
|
||||
)
|
||||
((string-prefix= "blocked" sv-16)
|
||||
(logior! (-> nav-node nav_node_flag) (nav-node-flag blocked))
|
||||
)
|
||||
((string-prefix= "pedestrian" sv-16)
|
||||
(logior! (-> nav-node nav_node_flag) (nav-node-flag pedestrian))
|
||||
)
|
||||
((string-prefix= "selected" sv-16)
|
||||
(logior! (-> nav-node nav_node_flag) (nav-node-flag selected))
|
||||
)
|
||||
((string-prefix= "hidden" sv-16)
|
||||
(logior! (-> nav-node nav_node_flag) (nav-node-flag hidden))
|
||||
)
|
||||
(else
|
||||
#t
|
||||
(goto cfg-27)
|
||||
)
|
||||
(string-suck-up! sv-16 a1-16)
|
||||
)
|
||||
(let ((a1-16 (string-skip-to-char (-> sv-16 data) (the-as uint 44))))
|
||||
(if (= (-> a1-16 0) 44)
|
||||
(set! a1-16 (&-> a1-16 1))
|
||||
)
|
||||
(string-suck-up! sv-16 a1-16)
|
||||
)
|
||||
)
|
||||
)
|
||||
#f
|
||||
@@ -846,155 +846,155 @@ returns `-1` if none is found"
|
||||
(let ((s2-2 0))
|
||||
(while (< s2-2 (-> s3-3 len))
|
||||
(when (= (string->int (-> s3-3 data (+ s2-2 11))) (-> this nav_graph_id))
|
||||
(let ((s0-2 (string->int (-> s3-3 data (+ s2-2 1)))))
|
||||
(set! sv-32 (string->int (-> s3-3 data (+ s2-2 2))))
|
||||
(set! sv-48 (indexof-nav-node this s0-2))
|
||||
(set! sv-64 (indexof-nav-node this sv-32))
|
||||
(let ((nav-edge (-> this edge-array data (-> this edge-array length))))
|
||||
(when (and (!= sv-48 -1) (!= sv-64 -1))
|
||||
(set! (-> nav-edge nav_graph_id) (-> this nav_graph_id))
|
||||
(set! (-> nav-edge nav_edge_id) (the-as uint (string->int (-> s3-3 data s2-2))))
|
||||
(set! (-> nav-edge nav_node_id_1) (the-as uint s0-2))
|
||||
(set! (-> nav-edge nav_node_id_2) (the-as uint sv-32))
|
||||
(set! (-> nav-edge mysql-save-flag) (mysql-save-flag))
|
||||
(set! (-> nav-edge runtime-id) (the-as uint (-> this edge-array length)))
|
||||
(set! (-> nav-edge runtime-node-id-1) sv-48)
|
||||
(set! (-> nav-edge runtime-node-id-2) sv-64)
|
||||
(let ((s0-3 (-> s3-3 data (+ s2-2 3))))
|
||||
(cond
|
||||
((string= "default" s0-3)
|
||||
(set! (-> nav-edge directionality) (nav-directionality default))
|
||||
0
|
||||
)
|
||||
((string= "directed" s0-3)
|
||||
(set! (-> nav-edge directionality) (nav-directionality directed))
|
||||
)
|
||||
((string= "bi_directional" s0-3)
|
||||
(set! (-> nav-edge directionality) (nav-directionality bi_directional))
|
||||
)
|
||||
)
|
||||
(let* ((s0-2 (string->int (-> s3-3 data (+ s2-2 1))))
|
||||
(sv-32 (string->int (-> s3-3 data (+ s2-2 2))))
|
||||
(sv-48 (indexof-nav-node this s0-2))
|
||||
(sv-64 (indexof-nav-node this sv-32))
|
||||
(nav-edge (-> this edge-array data (-> this edge-array length)))
|
||||
)
|
||||
(when (and (!= sv-48 -1) (!= sv-64 -1))
|
||||
(set! (-> nav-edge nav_graph_id) (-> this nav_graph_id))
|
||||
(set! (-> nav-edge nav_edge_id) (the-as uint (string->int (-> s3-3 data s2-2))))
|
||||
(set! (-> nav-edge nav_node_id_1) (the-as uint s0-2))
|
||||
(set! (-> nav-edge nav_node_id_2) (the-as uint sv-32))
|
||||
(set! (-> nav-edge mysql-save-flag) (mysql-save-flag))
|
||||
(set! (-> nav-edge runtime-id) (the-as uint (-> this edge-array length)))
|
||||
(set! (-> nav-edge runtime-node-id-1) sv-48)
|
||||
(set! (-> nav-edge runtime-node-id-2) sv-64)
|
||||
(let ((s0-3 (-> s3-3 data (+ s2-2 3))))
|
||||
(cond
|
||||
((string= "default" s0-3)
|
||||
(set! (-> nav-edge directionality) (nav-directionality default))
|
||||
0
|
||||
)
|
||||
((string= "directed" s0-3)
|
||||
(set! (-> nav-edge directionality) (nav-directionality directed))
|
||||
)
|
||||
((string= "bi_directional" s0-3)
|
||||
(set! (-> nav-edge directionality) (nav-directionality bi_directional))
|
||||
)
|
||||
)
|
||||
(set! (-> nav-edge speed_limit) (* 4096.0 (string->float (-> s3-3 data (+ s2-2 4)))))
|
||||
(set! (-> nav-edge density) (string->float (-> s3-3 data (+ s2-2 5))))
|
||||
(set! (-> nav-edge traffic_edge_flag) 0)
|
||||
(let ((s0-4 (new 'global 'string 0 (-> s3-3 data (+ s2-2 6)))))
|
||||
(copy-string<-string s0-4 (-> s3-3 data (+ s2-2 6)))
|
||||
(until #f
|
||||
(cond
|
||||
((string-prefix= "pedestrian" s0-4)
|
||||
(logior! (-> nav-edge traffic_edge_flag) 1)
|
||||
)
|
||||
(else
|
||||
#t
|
||||
(goto cfg-58)
|
||||
)
|
||||
)
|
||||
(let ((a1-30 (string-skip-to-char (-> s0-4 data) (the-as uint 44))))
|
||||
(if (= (-> a1-30 0) 44)
|
||||
(set! a1-30 (&-> a1-30 1))
|
||||
)
|
||||
(string-suck-up! s0-4 a1-30)
|
||||
)
|
||||
)
|
||||
)
|
||||
#f
|
||||
(label cfg-58)
|
||||
(set! (-> nav-edge nav_clock_mask) (nav-clock-mask))
|
||||
(let ((s0-5 (new 'global 'string 0 (-> s3-3 data (+ s2-2 7)))))
|
||||
(copy-string<-string s0-5 (-> s3-3 data (+ s2-2 7)))
|
||||
(until #f
|
||||
(cond
|
||||
((string-prefix= "phase-1a" s0-5)
|
||||
(logior! (-> nav-edge nav_clock_mask) (nav-clock-mask phase-1a))
|
||||
)
|
||||
((string-prefix= "phase-1" s0-5)
|
||||
(logior! (-> nav-edge nav_clock_mask) (nav-clock-mask phase-1))
|
||||
)
|
||||
((string-prefix= "phase-2a" s0-5)
|
||||
(logior! (-> nav-edge nav_clock_mask) (nav-clock-mask phase-2a))
|
||||
)
|
||||
((string-prefix= "phase-2" s0-5)
|
||||
(logior! (-> nav-edge nav_clock_mask) (nav-clock-mask phase-2))
|
||||
)
|
||||
((string-prefix= "phase-3a" s0-5)
|
||||
(logior! (-> nav-edge nav_clock_mask) (nav-clock-mask phase-3a))
|
||||
)
|
||||
((string-prefix= "phase-3" s0-5)
|
||||
(logior! (-> nav-edge nav_clock_mask) (nav-clock-mask phase-3))
|
||||
)
|
||||
((string-prefix= "phase-4a" s0-5)
|
||||
(logior! (-> nav-edge nav_clock_mask) (nav-clock-mask phase-4a))
|
||||
)
|
||||
((string-prefix= "phase-4" s0-5)
|
||||
(logior! (-> nav-edge nav_clock_mask) (nav-clock-mask phase-4))
|
||||
)
|
||||
(else
|
||||
#t
|
||||
(goto cfg-80)
|
||||
)
|
||||
)
|
||||
(let ((a1-42 (string-skip-to-char (-> s0-5 data) (the-as uint 44))))
|
||||
(if (= (-> a1-42 0) 44)
|
||||
(set! a1-42 (&-> a1-42 1))
|
||||
)
|
||||
(string-suck-up! s0-5 a1-42)
|
||||
)
|
||||
)
|
||||
)
|
||||
#f
|
||||
(label cfg-80)
|
||||
(let ((s0-6 (-> s3-3 data (+ s2-2 8))))
|
||||
(cond
|
||||
((string= "no-clock" s0-6)
|
||||
(set! (-> nav-edge nav_clock_type) (nav-clock-type no-clock))
|
||||
0
|
||||
)
|
||||
((string= "clock2" s0-6)
|
||||
(set! (-> nav-edge nav_clock_type) (nav-clock-type clock2))
|
||||
)
|
||||
((string= "clock3" s0-6)
|
||||
(set! (-> nav-edge nav_clock_type) (nav-clock-type clock3))
|
||||
)
|
||||
((string= "clock4" s0-6)
|
||||
(set! (-> nav-edge nav_clock_type) (nav-clock-type clock4))
|
||||
)
|
||||
)
|
||||
)
|
||||
(set! (-> nav-edge width) (* 4096.0 (string->float (-> s3-3 data (+ s2-2 9)))))
|
||||
(set! (-> nav-edge minimap_edge_flag) (nav-minimap-edge-flag))
|
||||
(let ((s0-7 (new 'global 'string 0 (-> s3-3 data (+ s2-2 10)))))
|
||||
(copy-string<-string s0-7 (-> s3-3 data (+ s2-2 10)))
|
||||
(until #f
|
||||
(cond
|
||||
((string-prefix= "pass-red" s0-7)
|
||||
(logior! (-> nav-edge minimap_edge_flag) (nav-minimap-edge-flag pass-red))
|
||||
)
|
||||
((string-prefix= "pass-green" s0-7)
|
||||
(logior! (-> nav-edge minimap_edge_flag) (nav-minimap-edge-flag pass-green))
|
||||
)
|
||||
((string-prefix= "pass-yellow" s0-7)
|
||||
(logior! (-> nav-edge minimap_edge_flag) (nav-minimap-edge-flag pass-yellow))
|
||||
)
|
||||
((string-prefix= "pass-blue" s0-7)
|
||||
(logior! (-> nav-edge minimap_edge_flag) (nav-minimap-edge-flag pass-blue))
|
||||
)
|
||||
(else
|
||||
#t
|
||||
(goto cfg-102)
|
||||
)
|
||||
)
|
||||
(let ((a1-54 (string-skip-to-char (-> s0-7 data) (the-as uint 44))))
|
||||
(if (= (-> a1-54 0) 44)
|
||||
(set! a1-54 (&-> a1-54 1))
|
||||
)
|
||||
(string-suck-up! s0-7 a1-54)
|
||||
)
|
||||
)
|
||||
)
|
||||
#f
|
||||
(label cfg-102)
|
||||
(+! (-> this edge-array length) 1)
|
||||
)
|
||||
(set! (-> nav-edge speed_limit) (* 4096.0 (string->float (-> s3-3 data (+ s2-2 4)))))
|
||||
(set! (-> nav-edge density) (string->float (-> s3-3 data (+ s2-2 5))))
|
||||
(set! (-> nav-edge traffic_edge_flag) 0)
|
||||
(let ((s0-4 (new 'global 'string 0 (-> s3-3 data (+ s2-2 6)))))
|
||||
(copy-string<-string s0-4 (-> s3-3 data (+ s2-2 6)))
|
||||
(until #f
|
||||
(cond
|
||||
((string-prefix= "pedestrian" s0-4)
|
||||
(logior! (-> nav-edge traffic_edge_flag) 1)
|
||||
)
|
||||
(else
|
||||
#t
|
||||
(goto cfg-58)
|
||||
)
|
||||
)
|
||||
(let ((a1-30 (string-skip-to-char (-> s0-4 data) (the-as uint 44))))
|
||||
(if (= (-> a1-30 0) 44)
|
||||
(set! a1-30 (&-> a1-30 1))
|
||||
)
|
||||
(string-suck-up! s0-4 a1-30)
|
||||
)
|
||||
)
|
||||
)
|
||||
#f
|
||||
(label cfg-58)
|
||||
(set! (-> nav-edge nav_clock_mask) (nav-clock-mask))
|
||||
(let ((s0-5 (new 'global 'string 0 (-> s3-3 data (+ s2-2 7)))))
|
||||
(copy-string<-string s0-5 (-> s3-3 data (+ s2-2 7)))
|
||||
(until #f
|
||||
(cond
|
||||
((string-prefix= "phase-1a" s0-5)
|
||||
(logior! (-> nav-edge nav_clock_mask) (nav-clock-mask phase-1a))
|
||||
)
|
||||
((string-prefix= "phase-1" s0-5)
|
||||
(logior! (-> nav-edge nav_clock_mask) (nav-clock-mask phase-1))
|
||||
)
|
||||
((string-prefix= "phase-2a" s0-5)
|
||||
(logior! (-> nav-edge nav_clock_mask) (nav-clock-mask phase-2a))
|
||||
)
|
||||
((string-prefix= "phase-2" s0-5)
|
||||
(logior! (-> nav-edge nav_clock_mask) (nav-clock-mask phase-2))
|
||||
)
|
||||
((string-prefix= "phase-3a" s0-5)
|
||||
(logior! (-> nav-edge nav_clock_mask) (nav-clock-mask phase-3a))
|
||||
)
|
||||
((string-prefix= "phase-3" s0-5)
|
||||
(logior! (-> nav-edge nav_clock_mask) (nav-clock-mask phase-3))
|
||||
)
|
||||
((string-prefix= "phase-4a" s0-5)
|
||||
(logior! (-> nav-edge nav_clock_mask) (nav-clock-mask phase-4a))
|
||||
)
|
||||
((string-prefix= "phase-4" s0-5)
|
||||
(logior! (-> nav-edge nav_clock_mask) (nav-clock-mask phase-4))
|
||||
)
|
||||
(else
|
||||
#t
|
||||
(goto cfg-80)
|
||||
)
|
||||
)
|
||||
(let ((a1-42 (string-skip-to-char (-> s0-5 data) (the-as uint 44))))
|
||||
(if (= (-> a1-42 0) 44)
|
||||
(set! a1-42 (&-> a1-42 1))
|
||||
)
|
||||
(string-suck-up! s0-5 a1-42)
|
||||
)
|
||||
)
|
||||
)
|
||||
#f
|
||||
(label cfg-80)
|
||||
(let ((s0-6 (-> s3-3 data (+ s2-2 8))))
|
||||
(cond
|
||||
((string= "no-clock" s0-6)
|
||||
(set! (-> nav-edge nav_clock_type) (nav-clock-type no-clock))
|
||||
0
|
||||
)
|
||||
((string= "clock2" s0-6)
|
||||
(set! (-> nav-edge nav_clock_type) (nav-clock-type clock2))
|
||||
)
|
||||
((string= "clock3" s0-6)
|
||||
(set! (-> nav-edge nav_clock_type) (nav-clock-type clock3))
|
||||
)
|
||||
((string= "clock4" s0-6)
|
||||
(set! (-> nav-edge nav_clock_type) (nav-clock-type clock4))
|
||||
)
|
||||
)
|
||||
)
|
||||
(set! (-> nav-edge width) (* 4096.0 (string->float (-> s3-3 data (+ s2-2 9)))))
|
||||
(set! (-> nav-edge minimap_edge_flag) (nav-minimap-edge-flag))
|
||||
(let ((s0-7 (new 'global 'string 0 (-> s3-3 data (+ s2-2 10)))))
|
||||
(copy-string<-string s0-7 (-> s3-3 data (+ s2-2 10)))
|
||||
(until #f
|
||||
(cond
|
||||
((string-prefix= "pass-red" s0-7)
|
||||
(logior! (-> nav-edge minimap_edge_flag) (nav-minimap-edge-flag pass-red))
|
||||
)
|
||||
((string-prefix= "pass-green" s0-7)
|
||||
(logior! (-> nav-edge minimap_edge_flag) (nav-minimap-edge-flag pass-green))
|
||||
)
|
||||
((string-prefix= "pass-yellow" s0-7)
|
||||
(logior! (-> nav-edge minimap_edge_flag) (nav-minimap-edge-flag pass-yellow))
|
||||
)
|
||||
((string-prefix= "pass-blue" s0-7)
|
||||
(logior! (-> nav-edge minimap_edge_flag) (nav-minimap-edge-flag pass-blue))
|
||||
)
|
||||
(else
|
||||
#t
|
||||
(goto cfg-102)
|
||||
)
|
||||
)
|
||||
(let ((a1-54 (string-skip-to-char (-> s0-7 data) (the-as uint 44))))
|
||||
(if (= (-> a1-54 0) 44)
|
||||
(set! a1-54 (&-> a1-54 1))
|
||||
)
|
||||
(string-suck-up! s0-7 a1-54)
|
||||
)
|
||||
)
|
||||
)
|
||||
#f
|
||||
(label cfg-102)
|
||||
(+! (-> this edge-array length) 1)
|
||||
)
|
||||
)
|
||||
)
|
||||
@@ -1168,6 +1168,43 @@ returns `-1` if none is found"
|
||||
)
|
||||
)
|
||||
|
||||
(defmethod mysql-nav-graph-method-19 ((this mysql-nav-graph))
|
||||
(set! (-> this level-info-array-length) 0)
|
||||
(set! (-> this level-info-last-lookup) 0)
|
||||
(dotimes (v1-0 32)
|
||||
(let ((a0-3 (-> this level-info-array v1-0)))
|
||||
(set! (-> a0-3 level) #f)
|
||||
(set! (-> a0-3 level-id) (the-as uint v1-0))
|
||||
(set! (-> a0-3 node-count) 0)
|
||||
(set! (-> a0-3 branch-count) 0)
|
||||
(set! (-> a0-3 to-link-count) 0)
|
||||
)
|
||||
0
|
||||
)
|
||||
(dotimes (s5-0 (-> this node-array length))
|
||||
(let ((s4-0 (-> this node-array data s5-0)))
|
||||
(when (not (logtest? (-> s4-0 mysql-save-flag) (mysql-save-flag delete)))
|
||||
(let ((v1-10 (lookup-level-info2 this s4-0 #t)))
|
||||
(set! (-> s4-0 level-node-index) (-> v1-10 node-count))
|
||||
(+! (-> v1-10 node-count) 1)
|
||||
(let ((a0-10 (the-as mysql-nav-edge (-> s4-0 temp-edge-list))))
|
||||
(while a0-10
|
||||
(when (not (logtest? (-> a0-10 mysql-save-flag) (mysql-save-flag delete)))
|
||||
(if (!= (-> v1-10 level) (-> this node-array data (-> a0-10 runtime-node-id-2) level_name))
|
||||
(+! (-> v1-10 to-link-count) 1)
|
||||
)
|
||||
(+! (-> v1-10 branch-count) 1)
|
||||
)
|
||||
(set! a0-10 (-> a0-10 temp-next-edge))
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
0
|
||||
(none)
|
||||
)
|
||||
|
||||
(defmethod mysql-nav-graph-method-20 ((this mysql-nav-graph))
|
||||
(mysql-nav-graph-method-17 this)
|
||||
@@ -1175,3 +1212,43 @@ returns `-1` if none is found"
|
||||
0
|
||||
(none)
|
||||
)
|
||||
|
||||
(defmethod exec-sql! ((this mysql-nav-graph))
|
||||
(format #t "Saving nodes ...~%")
|
||||
(dotimes (s5-0 (-> this node-array length))
|
||||
(let ((a0-3 (-> this node-array data s5-0)))
|
||||
(set! (-> a0-3 nav_graph_id) (-> this nav_graph_id))
|
||||
(if (not (exec-sql! a0-3))
|
||||
(return #f)
|
||||
)
|
||||
)
|
||||
)
|
||||
(format #t "Done.~%")
|
||||
(format #t "Saving edges ...~%")
|
||||
(dotimes (s5-1 (-> this edge-array length))
|
||||
(let ((a0-7 (-> this edge-array data s5-1)))
|
||||
(set! (-> a0-7 nav_graph_id) (-> this nav_graph_id))
|
||||
(set! (-> a0-7 nav_node_id_1) (-> this node-array data (-> a0-7 runtime-node-id-1) nav_node_id))
|
||||
(set! (-> a0-7 nav_node_id_2) (-> this node-array data (-> a0-7 runtime-node-id-2) nav_node_id))
|
||||
(exec-sql! a0-7)
|
||||
)
|
||||
)
|
||||
(format #t "Done.~%")
|
||||
(format #t "Saving visible nodes ...~%")
|
||||
(dotimes (s5-2 (-> this visnode-array length))
|
||||
(let ((a0-11 (-> this visnode-array data s5-2)))
|
||||
(set! (-> a0-11 nav_graph_id) (-> this nav_graph_id))
|
||||
(set! (-> a0-11 nav_node_id) (-> this node-array data (-> a0-11 runtime-node-id) nav_node_id))
|
||||
(set! (-> a0-11 nav_edge_id)
|
||||
(-> (the-as mysql-nav-edge (+ (the-as uint (-> this edge-array)) (* 80 (-> a0-11 runtime-edge-id))))
|
||||
nav_node_id_2
|
||||
)
|
||||
)
|
||||
(if (not (exec-sql! a0-11))
|
||||
(return #f)
|
||||
)
|
||||
)
|
||||
)
|
||||
(format #t "Done.~%")
|
||||
#t
|
||||
)
|
||||
|
||||
@@ -191,12 +191,7 @@
|
||||
(dotimes (s2-0 (-> s3-0 length))
|
||||
(let ((s1-0 (-> s3-0 s2-0)))
|
||||
(-> s1-0 aid)
|
||||
(let* ((s0-0 s1-0)
|
||||
(v1-14 (if (type? s0-0 entity-nav-mesh)
|
||||
s0-0
|
||||
)
|
||||
)
|
||||
)
|
||||
(let ((v1-14 (as-type s1-0 entity-nav-mesh)))
|
||||
(when v1-14
|
||||
(let ((a0-7 (-> v1-14 nav-mesh))
|
||||
(a1-2 (new 'stack-no-clear 'nav-find-poly-parms))
|
||||
@@ -261,28 +256,25 @@
|
||||
(let ((v1-23 (-> this nav-graph visnode-array data s3-1)))
|
||||
(when (and (= (-> v1-23 runtime-edge-id) arg0) (not (logtest? (-> v1-23 mysql-save-flag) (mysql-save-flag delete))))
|
||||
(vector-!
|
||||
(the-as vector (-> s4-0 vector))
|
||||
(-> s4-0 vector 0)
|
||||
(the-as
|
||||
vector
|
||||
(+ (the-as uint (-> this nav-graph node-array data 0 position)) (* 80 (-> v1-23 runtime-node-id)))
|
||||
)
|
||||
(-> s4-0 trans)
|
||||
)
|
||||
(vector-normalize!
|
||||
(the-as vector (-> s4-0 vector))
|
||||
(fmax 15360.0 (+ -15360.0 (vector-length (the-as vector (-> s4-0 vector)))))
|
||||
)
|
||||
(vector-rotate-around-y! (-> s4-0 vector 1) (the-as vector (-> s4-0 vector)) 24576.0)
|
||||
(vector-normalize! (-> s4-0 vector 0) (fmax 15360.0 (+ -15360.0 (vector-length (-> s4-0 vector 0)))))
|
||||
(vector-rotate-around-y! (-> s4-0 vector 1) (-> s4-0 vector 0) 24576.0)
|
||||
(vector-normalize! (-> s4-0 vector 1) 16384.0)
|
||||
(vector-rotate-around-y! (-> s4-0 vector 2) (the-as vector (-> s4-0 vector)) -24576.0)
|
||||
(vector-rotate-around-y! (-> s4-0 vector 2) (-> s4-0 vector 0) -24576.0)
|
||||
(vector-normalize! (-> s4-0 vector 2) 16384.0)
|
||||
(vector+! (the-as vector (-> s4-0 vector)) (the-as vector (-> s4-0 vector)) (-> s4-0 trans))
|
||||
(vector+! (-> s4-0 vector 2) (-> s4-0 vector 2) (the-as vector (-> s4-0 vector)))
|
||||
(vector+! (-> s4-0 vector 1) (-> s4-0 vector 1) (the-as vector (-> s4-0 vector)))
|
||||
(vector+! (-> s4-0 vector 0) (-> s4-0 vector 0) (-> s4-0 trans))
|
||||
(vector+! (-> s4-0 vector 2) (-> s4-0 vector 2) (-> s4-0 vector 0))
|
||||
(vector+! (-> s4-0 vector 1) (-> s4-0 vector 1) (-> s4-0 vector 0))
|
||||
(add-debug-line
|
||||
#t
|
||||
(bucket-id debug2)
|
||||
(the-as vector (-> s4-0 vector))
|
||||
(-> s4-0 vector 0)
|
||||
(-> s4-0 vector 1)
|
||||
*color-light-yellow*
|
||||
#f
|
||||
@@ -291,7 +283,7 @@
|
||||
(add-debug-line
|
||||
#t
|
||||
(bucket-id debug2)
|
||||
(the-as vector (-> s4-0 vector))
|
||||
(-> s4-0 vector 0)
|
||||
(-> s4-0 vector 2)
|
||||
*color-light-yellow*
|
||||
#f
|
||||
@@ -306,12 +298,12 @@
|
||||
#f
|
||||
(the-as rgba -1)
|
||||
)
|
||||
(vector-lerp! (the-as vector (-> s4-0 vector)) (-> s4-0 vector 1) (-> s4-0 vector 2) 0.5)
|
||||
(vector-lerp! (-> s4-0 vector 0) (-> s4-0 vector 1) (-> s4-0 vector 2) 0.5)
|
||||
(add-debug-line
|
||||
#t
|
||||
(bucket-id debug2)
|
||||
(-> s4-0 trans)
|
||||
(the-as vector (-> s4-0 vector))
|
||||
(-> s4-0 vector 0)
|
||||
*color-light-yellow*
|
||||
#f
|
||||
(the-as rgba -1)
|
||||
@@ -434,7 +426,6 @@
|
||||
)
|
||||
|
||||
(defmethod nav-graph-editor-method-28 ((this nav-graph-editor))
|
||||
(local-vars (sv-144 int) (sv-160 (function _varargs_ object)))
|
||||
(rlet ((vf0 :class vf)
|
||||
(vf4 :class vf)
|
||||
(vf5 :class vf)
|
||||
@@ -455,11 +446,7 @@
|
||||
(set! (-> v1-8 w) (-> s2-0 radius))
|
||||
)
|
||||
(set! (-> s2-0 cam-dist) (vector-vector-distance-squared s3-0 (camera-pos)))
|
||||
(let ((f0-6 (-> s2-0 cam-dist))
|
||||
(f1-0 (-> this clipping-dist))
|
||||
)
|
||||
(set! (-> s2-0 visible) (< f0-6 (* f1-0 f1-0)))
|
||||
)
|
||||
(set! (-> s2-0 visible) (< (-> s2-0 cam-dist) (square (-> this clipping-dist))))
|
||||
(if (or (and (-> this vehicle-edit-mode) (logtest? (-> s2-0 nav_node_flag) (nav-node-flag pedestrian)))
|
||||
(and (not (-> this vehicle-edit-mode)) (not (logtest? (-> s2-0 nav_node_flag) (nav-node-flag pedestrian))))
|
||||
)
|
||||
@@ -494,48 +481,46 @@
|
||||
(add-debug-x #t (bucket-id debug2) s3-0 *color-red*)
|
||||
(let ((s1-1 add-debug-text-3d)
|
||||
(s0-1 #t)
|
||||
(sv-144 324)
|
||||
)
|
||||
(set! sv-144 324)
|
||||
(set! sv-160 format)
|
||||
(let ((a0-16 (clear *temp-string*))
|
||||
(a1-8 "~D")
|
||||
(a2-6 (-> s2-0 nav_mesh_id))
|
||||
(format (clear *temp-string*) "~D" (-> s2-0 nav_mesh_id))
|
||||
(let ((a2-7 *temp-string*)
|
||||
(a3-2 s3-0)
|
||||
(v1-24 (-> s2-0 level_name))
|
||||
)
|
||||
(sv-160 a0-16 a1-8 a2-6)
|
||||
)
|
||||
(let* ((a2-7 *temp-string*)
|
||||
(a3-2 s3-0)
|
||||
(v1-24 (-> s2-0 level_name))
|
||||
(t0-1 (cond
|
||||
((= v1-24 'ctyport)
|
||||
3
|
||||
)
|
||||
((= v1-24 'ctyinda)
|
||||
4
|
||||
)
|
||||
((= v1-24 'ctyindb)
|
||||
5
|
||||
)
|
||||
((= v1-24 'ctypal)
|
||||
6
|
||||
)
|
||||
((= v1-24 'ctysluma)
|
||||
7
|
||||
)
|
||||
((= v1-24 'ctyslumb)
|
||||
8
|
||||
)
|
||||
((= v1-24 'ctyslumc)
|
||||
9
|
||||
)
|
||||
(else
|
||||
1
|
||||
)
|
||||
)
|
||||
)
|
||||
(t1-0 #f)
|
||||
(s1-1
|
||||
s0-1
|
||||
(the-as bucket-id sv-144)
|
||||
a2-7
|
||||
a3-2
|
||||
(cond
|
||||
((= v1-24 'ctyport)
|
||||
(font-color red)
|
||||
)
|
||||
(s1-1 s0-1 (the-as bucket-id sv-144) a2-7 a3-2 (the-as font-color t0-1) (the-as vector2h t1-0))
|
||||
((= v1-24 'ctyinda)
|
||||
(font-color orange)
|
||||
)
|
||||
((= v1-24 'ctyindb)
|
||||
(font-color yellow)
|
||||
)
|
||||
((= v1-24 'ctypal)
|
||||
(font-color green)
|
||||
)
|
||||
((= v1-24 'ctysluma)
|
||||
(font-color blue)
|
||||
)
|
||||
((= v1-24 'ctyslumb)
|
||||
(font-color cyan)
|
||||
)
|
||||
((= v1-24 'ctyslumc)
|
||||
(font-color pink)
|
||||
)
|
||||
(else
|
||||
(font-color white)
|
||||
)
|
||||
)
|
||||
(the-as vector2h #f)
|
||||
)
|
||||
)
|
||||
)
|
||||
(let ((s1-2 (new 'stack-no-clear 'vector)))
|
||||
@@ -681,10 +666,7 @@
|
||||
(dotimes (s2-1 (-> s3-3 length))
|
||||
(let* ((s0-1 (-> s3-3 s2-1))
|
||||
(s1-1 (-> s0-1 aid))
|
||||
(v1-28 (if (type? s0-1 entity-nav-mesh)
|
||||
s0-1
|
||||
)
|
||||
)
|
||||
(v1-28 (as-type s0-1 entity-nav-mesh))
|
||||
)
|
||||
(when v1-28
|
||||
(let ((a0-24 (-> v1-28 nav-mesh))
|
||||
@@ -755,7 +737,7 @@
|
||||
)
|
||||
)
|
||||
((and (-> this next-state) (= (-> this next-state name) 'move-plane))
|
||||
(vector-cross! s3-0 *up-vector* (the-as vector (-> (camera-matrix) vector)))
|
||||
(vector-cross! s3-0 *up-vector* (-> (camera-matrix) vector 0))
|
||||
(vector-normalize! s3-0 1.0)
|
||||
(set! (-> s2-0 quad) (-> this mouse-hit quad))
|
||||
(reverse-transform-point! s5-1 s2-0 s3-0 s1-0)
|
||||
@@ -832,7 +814,7 @@
|
||||
(dotimes (a0-64 4)
|
||||
(set! (-> v1-57 quad a0-64) (the-as uint128 0))
|
||||
)
|
||||
(vector+! (the-as vector (-> v1-57 vector)) s5-1 (new 'static 'vector :x 8192.0 :z 8192.0 :w 1.0))
|
||||
(vector+! (-> v1-57 vector 0) s5-1 (new 'static 'vector :x 8192.0 :z 8192.0 :w 1.0))
|
||||
(vector+! (-> v1-57 vector 1) s5-1 (new 'static 'vector :x 8192.0 :z -8192.0 :w 1.0))
|
||||
(vector+! (-> v1-57 vector 2) s5-1 (new 'static 'vector :x -8192.0 :z -8192.0 :w 1.0))
|
||||
(vector+! (-> v1-57 trans) s5-1 (new 'static 'vector :x -8192.0 :z 8192.0 :w 1.0))
|
||||
@@ -1005,7 +987,6 @@
|
||||
|
||||
;; WARN: Return type mismatch symbol vs none.
|
||||
(defmethod nav-graph-editor-method-43 ((this nav-graph-editor))
|
||||
(local-vars (sv-128 vector) (sv-144 vector))
|
||||
(rlet ((vf0 :class vf)
|
||||
(vf4 :class vf)
|
||||
(vf5 :class vf)
|
||||
@@ -1039,9 +1020,9 @@
|
||||
)
|
||||
(let ((f30-0 0.0)
|
||||
(s0-1 ray-cylinder-intersect)
|
||||
(sv-128 (-> this mouse-pos))
|
||||
(sv-144 (new 'stack-no-clear 'vector))
|
||||
)
|
||||
(set! sv-128 (-> this mouse-pos))
|
||||
(set! sv-144 (new 'stack-no-clear 'vector))
|
||||
(let ((v1-18 (-> this mouse-hit-pick))
|
||||
(a0-13 (-> this mouse-pos))
|
||||
)
|
||||
@@ -1051,18 +1032,21 @@
|
||||
(.mov.vf.w vf6 vf0)
|
||||
(.sub.vf.xyz vf6 vf4 vf5)
|
||||
(.svf (&-> sv-144 quad) vf6)
|
||||
(let ((a3-3 (vector-normalize-copy! (new 'stack-no-clear 'vector) s2-0 1.0))
|
||||
(t0-0 1024.0)
|
||||
(t1-0 (vector-length s2-0))
|
||||
(t2-0 s3-0)
|
||||
)
|
||||
(when (< f30-0 (s0-1 sv-128 sv-144 s1-0 a3-3 t0-0 t1-0 t2-0))
|
||||
(let ((f0-1 (vector-vector-distance s3-0 (-> this mouse-pos))))
|
||||
(when (or (= (-> this selected-index) -1) (< f0-1 (-> this selected-dist)))
|
||||
(set! (-> this selected-index) s4-0)
|
||||
(set! (-> this selected-dist) f0-1)
|
||||
(set! (-> this selected-node-edge?) #f)
|
||||
)
|
||||
(when (< f30-0 (s0-1
|
||||
sv-128
|
||||
sv-144
|
||||
s1-0
|
||||
(vector-normalize-copy! (new 'stack-no-clear 'vector) s2-0 1.0)
|
||||
1024.0
|
||||
(vector-length s2-0)
|
||||
s3-0
|
||||
)
|
||||
)
|
||||
(let ((f0-1 (vector-vector-distance s3-0 (-> this mouse-pos))))
|
||||
(when (or (= (-> this selected-index) -1) (< f0-1 (-> this selected-dist)))
|
||||
(set! (-> this selected-index) s4-0)
|
||||
(set! (-> this selected-dist) f0-1)
|
||||
(set! (-> this selected-node-edge?) #f)
|
||||
)
|
||||
)
|
||||
)
|
||||
@@ -2110,16 +2094,6 @@
|
||||
)
|
||||
|
||||
(defun smooth-nav-graph ((arg0 string))
|
||||
(local-vars
|
||||
(sv-96 int)
|
||||
(sv-112 int)
|
||||
(sv-128 int)
|
||||
(sv-144 mysql-nav-edge)
|
||||
(sv-160 vector)
|
||||
(sv-176 vector)
|
||||
(sv-192 vector)
|
||||
(sv-208 vector)
|
||||
)
|
||||
(rlet ((vf0 :class vf)
|
||||
(vf4 :class vf)
|
||||
(vf5 :class vf)
|
||||
@@ -2132,52 +2106,54 @@
|
||||
(s2-0 (new-stack-vector0))
|
||||
(s0-0 (new-stack-vector0))
|
||||
(s1-0 (new-stack-vector0))
|
||||
(sv-96 0)
|
||||
(sv-112 0)
|
||||
)
|
||||
(set! sv-96 0)
|
||||
(set! sv-112 0)
|
||||
(when (and (not (logtest? (-> s3-0 mysql-save-flag) (mysql-save-flag delete))) (= (-> s3-0 level_name) arg0))
|
||||
(set! sv-128 0)
|
||||
(while (< sv-128 (-> s5-0 edge-array length))
|
||||
(set! sv-144 (-> s5-0 edge-array data sv-128))
|
||||
(when (not (logtest? (-> sv-144 mysql-save-flag) (mysql-save-flag delete)))
|
||||
(when (= (-> sv-144 runtime-node-id-1) s4-0)
|
||||
(let ((v1-27 (-> s5-0 node-array data (-> sv-144 runtime-node-id-1)))
|
||||
(a1-3 (-> s5-0 node-array data (-> sv-144 runtime-node-id-2)))
|
||||
)
|
||||
(set! sv-176 s1-0)
|
||||
(set! sv-160 s1-0)
|
||||
(let ((v0-0 (vector-normalize! (vector-! (new 'stack-no-clear 'vector) (-> a1-3 position) (-> v1-27 position)) 1.0))
|
||||
(let ((sv-128 0))
|
||||
(while (< sv-128 (-> s5-0 edge-array length))
|
||||
(let ((sv-144 (-> s5-0 edge-array data sv-128)))
|
||||
(when (not (logtest? (-> sv-144 mysql-save-flag) (mysql-save-flag delete)))
|
||||
(when (= (-> sv-144 runtime-node-id-1) s4-0)
|
||||
(let ((v1-27 (-> s5-0 node-array data (-> sv-144 runtime-node-id-1)))
|
||||
(a1-3 (-> s5-0 node-array data (-> sv-144 runtime-node-id-2)))
|
||||
(sv-176 s1-0)
|
||||
)
|
||||
(let ((sv-160 s1-0)
|
||||
(v0-0 (vector-normalize! (vector-! (new 'stack-no-clear 'vector) (-> a1-3 position) (-> v1-27 position)) 1.0))
|
||||
)
|
||||
(.mov.vf.w vf6 vf0)
|
||||
(.lvf vf4 (&-> sv-160 quad))
|
||||
(.lvf vf5 (&-> v0-0 quad))
|
||||
)
|
||||
(.mov.vf.w vf6 vf0)
|
||||
(.lvf vf4 (&-> sv-160 quad))
|
||||
(.lvf vf5 (&-> v0-0 quad))
|
||||
(.add.vf.xyz vf6 vf4 vf5)
|
||||
(.svf (&-> sv-176 quad) vf6)
|
||||
)
|
||||
(+! sv-112 1)
|
||||
sv-112
|
||||
)
|
||||
(when (= (-> sv-144 runtime-node-id-2) s4-0)
|
||||
(let ((v1-40 (-> s5-0 node-array data (-> sv-144 runtime-node-id-1)))
|
||||
(a1-9 (-> s5-0 node-array data (-> sv-144 runtime-node-id-2)))
|
||||
(sv-208 s0-0)
|
||||
)
|
||||
(let ((sv-192 s0-0)
|
||||
(v0-1 (vector-normalize! (vector-! (new 'stack-no-clear 'vector) (-> a1-9 position) (-> v1-40 position)) 1.0))
|
||||
)
|
||||
(.mov.vf.w vf6 vf0)
|
||||
(.lvf vf4 (&-> sv-192 quad))
|
||||
(.lvf vf5 (&-> v0-1 quad))
|
||||
)
|
||||
(.add.vf.xyz vf6 vf4 vf5)
|
||||
(.svf (&-> sv-208 quad) vf6)
|
||||
)
|
||||
(+! sv-96 1)
|
||||
sv-96
|
||||
)
|
||||
)
|
||||
(.add.vf.xyz vf6 vf4 vf5)
|
||||
(.svf (&-> sv-176 quad) vf6)
|
||||
(set! sv-112 (+ sv-112 1))
|
||||
sv-112
|
||||
)
|
||||
(when (= (-> sv-144 runtime-node-id-2) s4-0)
|
||||
(let ((v1-40 (-> s5-0 node-array data (-> sv-144 runtime-node-id-1)))
|
||||
(a1-9 (-> s5-0 node-array data (-> sv-144 runtime-node-id-2)))
|
||||
)
|
||||
(set! sv-208 s0-0)
|
||||
(set! sv-192 s0-0)
|
||||
(let ((v0-1 (vector-normalize! (vector-! (new 'stack-no-clear 'vector) (-> a1-9 position) (-> v1-40 position)) 1.0))
|
||||
)
|
||||
(.mov.vf.w vf6 vf0)
|
||||
(.lvf vf4 (&-> sv-192 quad))
|
||||
(.lvf vf5 (&-> v0-1 quad))
|
||||
)
|
||||
)
|
||||
(.add.vf.xyz vf6 vf4 vf5)
|
||||
(.svf (&-> sv-208 quad) vf6)
|
||||
(set! sv-96 (+ sv-96 1))
|
||||
sv-96
|
||||
)
|
||||
(+! sv-128 1)
|
||||
)
|
||||
(set! sv-128 (+ sv-128 1))
|
||||
)
|
||||
(cond
|
||||
((and (>= sv-112 2) (= sv-96 1))
|
||||
@@ -2221,7 +2197,6 @@
|
||||
)
|
||||
|
||||
(defun update-width ((arg0 string))
|
||||
(local-vars (sv-16 (array entity-nav-mesh)) (sv-32 int) (sv-48 uint) (sv-64 entity-nav-mesh))
|
||||
(let ((s5-0 (-> (ppointer->process *nav-graph-editor*) nav-graph)))
|
||||
(dotimes (s4-0 (-> s5-0 edge-array length))
|
||||
(let ((s3-0 (-> s5-0 edge-array data s4-0)))
|
||||
@@ -2239,32 +2214,31 @@
|
||||
(dotimes (s0-0 (-> *level* length))
|
||||
(let ((v1-25 (-> *level* level s0-0)))
|
||||
(when (= (-> v1-25 status) 'active)
|
||||
(set! sv-16 (-> v1-25 bsp nav-meshes))
|
||||
(when (nonzero? sv-16)
|
||||
(set! sv-32 0)
|
||||
(while (< sv-32 (-> sv-16 length))
|
||||
(set! sv-64 (-> sv-16 sv-32))
|
||||
(set! sv-48 (-> sv-64 aid))
|
||||
(let ((v1-36 (if (type? sv-64 entity-nav-mesh)
|
||||
sv-64
|
||||
)
|
||||
)
|
||||
)
|
||||
(when (and v1-36 (= sv-48 (-> s2-0 nav_mesh_id)))
|
||||
(let* ((f0-0 (nav-mesh-method-35 (-> v1-36 nav-mesh) (-> s2-0 position) (-> s1-0 position) 16384.0))
|
||||
(f0-1 (+ -409.6 f0-0))
|
||||
(let ((sv-16 (-> v1-25 bsp nav-meshes)))
|
||||
(when (nonzero? sv-16)
|
||||
(let ((sv-32 0))
|
||||
(while (< sv-32 (-> sv-16 length))
|
||||
(let* ((sv-64 (-> sv-16 sv-32))
|
||||
(sv-48 (-> sv-64 aid))
|
||||
(v1-36 (as-type sv-64 entity-nav-mesh))
|
||||
)
|
||||
(when (and (< 0.0 f0-1) (!= f0-1 (-> s3-0 width)))
|
||||
(set! (-> s3-0 width) f0-1)
|
||||
(logior! (-> s3-0 mysql-save-flag) (mysql-save-flag update))
|
||||
)
|
||||
(if (>= 0.0 f0-1)
|
||||
(format #t "!!!! edge ~D ~D outside nav-mesh~%" (-> s2-0 nav_node_id) (-> s1-0 nav_node_id))
|
||||
(when (and v1-36 (= sv-48 (-> s2-0 nav_mesh_id)))
|
||||
(let* ((f0-0 (nav-mesh-method-35 (-> v1-36 nav-mesh) (-> s2-0 position) (-> s1-0 position) 16384.0))
|
||||
(f0-1 (+ -409.6 f0-0))
|
||||
)
|
||||
(when (and (< 0.0 f0-1) (!= f0-1 (-> s3-0 width)))
|
||||
(set! (-> s3-0 width) f0-1)
|
||||
(logior! (-> s3-0 mysql-save-flag) (mysql-save-flag update))
|
||||
)
|
||||
(if (>= 0.0 f0-1)
|
||||
(format #t "!!!! edge ~D ~D outside nav-mesh~%" (-> s2-0 nav_node_id) (-> s1-0 nav_node_id))
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(+! sv-32 1)
|
||||
)
|
||||
)
|
||||
(set! sv-32 (+ sv-32 1))
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user