jak2 gsrc

This commit is contained in:
Hat Kid
2026-04-15 02:33:12 +02:00
parent 9f66a69859
commit c0b0f35b05
226 changed files with 15133 additions and 19367 deletions
+261 -184
View File
@@ -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
)
+131 -157
View File
@@ -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))
)
)
)