W/nav debugging (#2077)

Co-authored-by: Tyler Wilding <xtvaser@gmail.com>
This commit is contained in:
water111
2023-01-01 12:11:18 -05:00
committed by GitHub
parent 08ad352e94
commit 0cddf6b6a5
67 changed files with 27239 additions and 595 deletions
+1 -1
View File
@@ -2351,7 +2351,7 @@
)
(logclear! (-> self draw status) (draw-control-status no-draw))
(logclear! (-> self enemy-flags) (enemy-flag victory))
(logior! (-> self root-override2 nav-flags) (nav-flags nav-flags0))
(logior! (-> self root-override2 nav-flags) (nav-flags has-root-sphere))
(none)
)
:code (the-as (function none :behavior enemy) sleep-code)
+2 -2
View File
@@ -248,10 +248,10 @@
)
(logclear! (-> self mask) (process-mask actor-pause enemy))
(when (logtest? (-> self mode) (fma-sphere-mode nav))
(let ((a0-32 (find-nearest-nav-mesh (-> self root-override trans) #x7f800000)))
(let ((a0-32 (find-nearest-nav-mesh (-> self root-override trans) (the-as float #x7f800000))))
(cond
(a0-32
(nav-mesh-method-29 a0-32 self #f)
(add-process-drawable-to-navmesh a0-32 self #f)
)
(else
(format 0 "ERROR: fma-sphere-init-by-other: failed to find nearest nav-mesh!~%")
+1 -1
View File
@@ -1966,7 +1966,7 @@
(set! (-> s5-0 actor-hash-index) -1)
(set! (-> s5-0 process) arg0)
(set! (-> s5-0 max-iteration-count) (the-as uint 1))
(set! (-> s5-0 nav-flags) (nav-flags nav-flags0))
(set! (-> s5-0 nav-flags) (nav-flags has-root-sphere))
(set! (-> s5-0 event-self) #f)
(set! (-> s5-0 event-other) #f)
(set! (-> s5-0 riders) (the-as (inline-array collide-rider) #f))
+1 -1
View File
@@ -484,7 +484,7 @@
)
(set! (-> obj timeout) (res-lump-float arg0 'timeout))
(if (not (logtest? (-> obj button-status) (button-status button-status-1)))
(nav-mesh-connect-from-ent (the-as entity-nav-mesh obj))
(nav-mesh-connect-from-ent obj)
)
(prepare-trigger-event! obj)
(basebutton-method-33 obj)
+1 -1
View File
@@ -1415,7 +1415,7 @@
)
(set! (-> obj base quad) (-> obj root-override2 trans quad))
(crate-post)
(nav-mesh-connect-from-ent (the-as entity-nav-mesh obj))
(nav-mesh-connect-from-ent obj)
(none)
)
+1 -1
View File
@@ -2861,7 +2861,7 @@
)
)
(set! (-> obj sound-id) (new-sound-id))
(nav-mesh-connect-from-ent (the-as entity-nav-mesh obj))
(nav-mesh-connect-from-ent obj)
(go (method-of-object obj idle))
(none)
)
+1
View File
@@ -1619,6 +1619,7 @@
)
;; definition for method 3 of type debug-vertex-stats
;; INFO: this function exists in multiple non-identical object files
(defmethod inspect debug-vertex-stats ((obj debug-vertex-stats))
(format #t "[~8x] ~A~%" obj (-> obj type))
(format #t "~Tlength: ~D~%" (-> obj length))
+1 -5
View File
@@ -1589,7 +1589,7 @@
)
0
)
(level-group-method-18 *level*)
(update-nav-meshes *level*)
(when *debug-segment*
(let ((gp-10 (-> *display* frames (-> *display* on-screen) profile-array data 0)))
(when (and *dproc* *debug-segment*)
@@ -2234,7 +2234,3 @@
(display-sync arg0)
(none)
)
+3 -3
View File
@@ -255,7 +255,7 @@
:size-assert #x38
:flag-assert #x1d00000038
(:methods
(entity-nav-mesh-method-27 (_type_) none 27)
(initialize-nav-mesh! (_type_) none 27)
(debug-draw (_type_) none 28)
)
)
@@ -289,8 +289,8 @@
(prev-actor (_type_) entity-actor 28)
(debug-print (_type_ symbol type) none 29)
(toggle-status (_type_ entity-perm-status symbol) none 30)
(entity-actor-method-31 (_type_ vector vector vector object float) nav-mesh 31)
(entity-actor-method-32 (_type_ vector vector nav-poly float) nav-poly 32)
(get-simple-travel-vector (_type_ vector vector vector object float) nav-mesh 31)
(project-point-to-nav-mesh (_type_ vector vector nav-poly float) nav-poly 32)
)
)
+173 -4
View File
@@ -1,11 +1,17 @@
;;-*-Lisp-*-
(in-package goal)
;; definition for symbol *spawn-actors*, type symbol
(define *spawn-actors* #t)
;; definition for symbol *compact-actors*, type symbol
(define *compact-actors* #t)
;; definition for symbol *vis-actors*, type symbol
(define *vis-actors* #t)
;; definition for method 8 of type drawable-actor
;; WARN: Return type mismatch int vs drawable-actor.
(defmethod mem-usage drawable-actor ((obj drawable-actor) (arg0 memory-usage-block) (arg1 int))
(set! (-> arg0 length) (max 44 (-> arg0 length)))
(set! (-> arg0 data 43 name) "entity")
@@ -18,6 +24,8 @@
(the-as drawable-actor 0)
)
;; definition for method 8 of type drawable-inline-array-actor
;; WARN: Return type mismatch int vs drawable-inline-array-actor.
(defmethod mem-usage drawable-inline-array-actor ((obj drawable-inline-array-actor) (arg0 memory-usage-block) (arg1 int))
(set! (-> arg0 length) (max 1 (-> arg0 length)))
(set! (-> arg0 data 0 name) (symbol->string 'drawable-group))
@@ -32,11 +40,13 @@
(the-as drawable-inline-array-actor 0)
)
;; definition for method 2 of type entity-links
(defmethod print entity-links ((obj entity-links))
(format #t "#<entity-links :process ~A @ #x~X>" (-> obj process) obj)
obj
)
;; definition for method 2 of type entity-perm
(defmethod print entity-perm ((obj entity-perm))
(format
#t
@@ -50,6 +60,7 @@
obj
)
;; definition for method 2 of type actor-group
(defmethod print actor-group ((obj actor-group))
(format #t "#<actor-group")
(dotimes (s5-0 (-> obj length))
@@ -59,6 +70,8 @@
obj
)
;; definition for method 3 of type actor-group
;; INFO: this function exists in multiple non-identical object files
(defmethod inspect actor-group ((obj actor-group))
(format #t "[~8x] ~A~%" obj (-> obj type))
(format #t "~Tlength: ~D~%" (-> obj length))
@@ -70,21 +83,25 @@
obj
)
;; definition for method 22 of type entity
(defmethod birth! entity ((obj entity))
(format #t "birth ~A~%" obj)
obj
)
;; definition for method 23 of type entity
(defmethod kill! entity ((obj entity))
(format #t "kill ~A~%" obj)
obj
)
;; definition for method 2 of type entity
(defmethod print entity ((obj entity))
(format #t "#<~A :name ~S @ #x~X>" (-> obj type) (res-lump-struct obj 'name structure) obj)
obj
)
;; definition for method 26 of type entity
(defmethod get-level entity ((obj entity))
(dotimes (v1-0 (-> *level* length))
(let ((a1-3 (-> *level* level v1-0)))
@@ -100,6 +117,7 @@
(-> *level* default-level)
)
;; definition for function entity-by-name
(defun entity-by-name ((arg0 string))
(dotimes (s5-0 (-> *level* length))
(let ((s4-0 (-> *level* level s5-0)))
@@ -154,6 +172,7 @@
(the-as entity #f)
)
;; definition for function entity-by-type
(defun entity-by-type ((arg0 type))
(dotimes (s5-0 (-> *level* length))
(let ((v1-3 (-> *level* level s5-0)))
@@ -175,6 +194,7 @@
(the-as entity-actor #f)
)
;; definition for function entity-by-aid
(defun entity-by-aid ((arg0 uint))
(dotimes (v1-0 (-> *level* length))
(let ((a1-3 (-> *level* level v1-0)))
@@ -212,6 +232,8 @@
(the-as entity #f)
)
;; definition for function entity-actor-from-level-name
;; WARN: Return type mismatch entity vs entity-actor.
(defun entity-actor-from-level-name ((arg0 level))
(let ((v0-0 (the-as entity #f)))
(dotimes (s5-0 (-> *level* length))
@@ -234,7 +256,9 @@
)
)
(defmethod level-group-method-18 level-group ((obj level-group))
;; definition for method 18 of type level-group
;; WARN: Return type mismatch int vs none.
(defmethod update-nav-meshes level-group ((obj level-group))
(when (not (paused?))
(dotimes (s5-0 (-> obj length))
(let ((v1-4 (-> obj level s5-0)))
@@ -242,7 +266,7 @@
(let ((s4-0 (-> v1-4 bsp nav-meshes)))
(when (nonzero? s4-0)
(dotimes (s3-0 (-> s4-0 length))
(nav-mesh-method-26 (-> s4-0 s3-0 nav-mesh))
(update-navigation (-> s4-0 s3-0 nav-mesh))
)
)
)
@@ -254,6 +278,7 @@
(none)
)
;; definition for function entity-nav-mesh-by-aid
(defun entity-nav-mesh-by-aid ((arg0 actor-id))
(dotimes (v1-0 (-> *level* length))
(let ((a1-3 (-> *level* level v1-0)))
@@ -291,6 +316,7 @@
(the-as entity-nav-mesh #f)
)
;; definition for function nav-mesh-from-res-tag
(defun nav-mesh-from-res-tag ((arg0 entity) (arg1 symbol) (arg2 int))
(let ((v1-1 (res-lump-data arg0 arg1 pointer))
(gp-0 (the-as nav-mesh #f))
@@ -311,6 +337,7 @@
)
)
;; definition for function entity-by-meters
(defun entity-by-meters ((arg0 float) (arg1 float) (arg2 float))
(dotimes (v1-0 (-> *level* length))
(let ((a3-3 (-> *level* level v1-0)))
@@ -337,6 +364,7 @@
(the-as entity-actor #f)
)
;; definition for function process-by-ename
(defun process-by-ename ((arg0 string))
(let ((v1-0 (entity-by-name arg0)))
(if v1-0
@@ -345,6 +373,7 @@
)
)
;; definition for function entity-process-count
(defun entity-process-count ((arg0 symbol))
(let ((gp-0 0))
(dotimes (s4-0 (-> *level* length))
@@ -375,6 +404,7 @@
)
)
;; definition for function entity-count
(defun entity-count ()
(let ((v0-0 0))
(dotimes (v1-0 (-> *level* length))
@@ -393,6 +423,8 @@
)
)
;; definition for function entity-remap-names
;; WARN: Return type mismatch int vs none.
(defun entity-remap-names ((arg0 pair))
(let ((s5-0 (car arg0)))
(while (not (null? arg0))
@@ -419,6 +451,8 @@
(none)
)
;; definition (debug) for function process-status-bits
;; WARN: Return type mismatch int vs none.
(defun-debug process-status-bits ((arg0 process) (arg1 symbol))
(let* ((s5-0 arg0)
(s3-0 (if (type? s5-0 process-drawable)
@@ -480,6 +514,7 @@
(none)
)
;; definition for function process-entity-set!
(defun process-entity-set! ((arg0 process) (arg1 entity-actor))
(set! (-> arg0 entity) arg1)
(if arg1
@@ -489,10 +524,12 @@
arg1
)
;; definition for function process-task-mask
(defun process-task-mask ((arg0 process))
(-> arg0 level task-mask)
)
;; definition for method 2 of type process
(defmethod print process ((obj process))
(cond
((and (-> obj top-thread) (!= (-> obj status) 'dead))
@@ -528,6 +565,7 @@
obj
)
;; definition for method 3 of type entity
(defmethod inspect entity ((obj entity))
((the-as (function entity entity) (find-parent-method entity 3)) obj)
(format #t "~Ttrans: ~`vector`P~%" (-> obj trans))
@@ -535,6 +573,7 @@
obj
)
;; definition for method 3 of type entity-nav-mesh
(defmethod inspect entity-nav-mesh ((obj entity-nav-mesh))
((the-as (function object object) (find-parent-method entity-nav-mesh 3)) obj)
(format #t "~Tnav-mesh ~A~%" (-> obj nav-mesh))
@@ -544,6 +583,7 @@
obj
)
;; definition for method 3 of type entity-actor
(defmethod inspect entity-actor ((obj entity-actor))
((the-as (function entity entity) (find-parent-method entity-actor 3)) obj)
(format #t "~Tetype: ~A~%" (-> obj etype))
@@ -614,6 +654,8 @@
obj
)
;; definition for method 29 of type entity-actor
;; WARN: Return type mismatch entity-actor vs none.
(defmethod debug-print entity-actor ((obj entity-actor) (arg0 symbol) (arg1 type))
(let ((s4-0 (-> obj etype)))
(when (or (not arg1) (and s4-0 (valid? s4-0 type #f #f 0) (type-type? s4-0 arg1)))
@@ -686,6 +728,8 @@
(none)
)
;; definition for method 14 of type level-group
;; WARN: Return type mismatch int vs none.
(defmethod debug-print-entities level-group ((obj level-group) (arg0 symbol) (arg1 type))
(let ((t9-0 format)
(a0-1 #t)
@@ -723,6 +767,9 @@
(none)
)
;; definition for method 24 of type entity-actor
;; INFO: Used lq/sq
;; WARN: Return type mismatch entity-actor vs none.
(defmethod add-to-level! entity-actor ((obj entity-actor) (arg0 level-group) (arg1 level) (arg2 actor-id))
(let ((v1-4 (-> arg1 entity data (-> arg1 entity length))))
(+! (-> arg1 entity length) 1)
@@ -794,6 +841,7 @@
(none)
)
;; definition for method 25 of type entity
(defmethod remove-from-level! entity ((obj entity) (arg0 level-group))
(let ((v1-0 (-> obj extra)))
(cond
@@ -812,6 +860,8 @@
obj
)
;; definition for function update-actor-vis-box
;; WARN: Return type mismatch int vs none.
(defun update-actor-vis-box ((arg0 process-drawable) (arg1 vector) (arg2 vector))
(when (and arg0 (nonzero? (-> arg0 draw)) (zero? (logand (-> arg0 draw status) (draw-control-status no-draw))))
(let ((v1-5 (-> arg0 draw origin))
@@ -829,6 +879,8 @@
(none)
)
;; definition for method 25 of type level-group
;; WARN: Return type mismatch int vs none.
(defmethod update-vis-volumes level-group ((obj level-group))
(local-vars (sv-16 pointer) (sv-20 pointer) (sv-24 pointer) (sv-28 process))
(dotimes (s5-0 (-> obj length))
@@ -876,6 +928,8 @@
(none)
)
;; definition for function expand-bounding-box
;; WARN: Return type mismatch int vs none.
(defun expand-bounding-box ((arg0 vector) (arg1 vector) (arg2 vector) (arg3 vector))
(set! (-> arg0 x) (fmin (-> arg0 x) (-> arg2 x)))
(set! (-> arg0 y) (fmin (-> arg0 y) (-> arg2 y)))
@@ -887,6 +941,45 @@
(none)
)
;; definition for method 26 of type level-group
;; INFO: Used lq/sq
;; WARN: Stack slot offset 28 signed mismatch
;; WARN: Stack slot offset 28 signed mismatch
;; WARN: Stack slot offset 28 signed mismatch
;; WARN: Stack slot offset 32 signed mismatch
;; WARN: Stack slot offset 32 signed mismatch
;; WARN: Stack slot offset 32 signed mismatch
;; WARN: Stack slot offset 28 signed mismatch
;; WARN: Stack slot offset 28 signed mismatch
;; WARN: Stack slot offset 28 signed mismatch
;; WARN: Stack slot offset 32 signed mismatch
;; WARN: Stack slot offset 32 signed mismatch
;; WARN: Stack slot offset 32 signed mismatch
;; WARN: Stack slot offset 28 signed mismatch
;; WARN: Stack slot offset 28 signed mismatch
;; WARN: Stack slot offset 28 signed mismatch
;; WARN: Stack slot offset 32 signed mismatch
;; WARN: Stack slot offset 32 signed mismatch
;; WARN: Stack slot offset 32 signed mismatch
;; WARN: Stack slot offset 28 signed mismatch
;; WARN: Stack slot offset 28 signed mismatch
;; WARN: Stack slot offset 28 signed mismatch
;; WARN: Stack slot offset 32 signed mismatch
;; WARN: Stack slot offset 32 signed mismatch
;; WARN: Stack slot offset 32 signed mismatch
;; WARN: Stack slot offset 28 signed mismatch
;; WARN: Stack slot offset 28 signed mismatch
;; WARN: Stack slot offset 28 signed mismatch
;; WARN: Stack slot offset 32 signed mismatch
;; WARN: Stack slot offset 32 signed mismatch
;; WARN: Stack slot offset 32 signed mismatch
;; WARN: Stack slot offset 28 signed mismatch
;; WARN: Stack slot offset 28 signed mismatch
;; WARN: Stack slot offset 28 signed mismatch
;; WARN: Stack slot offset 32 signed mismatch
;; WARN: Stack slot offset 32 signed mismatch
;; WARN: Stack slot offset 32 signed mismatch
;; WARN: Return type mismatch int vs none.
(defmethod update-vis-volumes-from-nav-mesh level-group ((obj level-group))
(local-vars
(sv-16 pointer)
@@ -945,7 +1038,7 @@
(when a0-25
(set! sv-96 (new 'stack-no-clear 'vector))
(set! sv-112 (new 'stack-no-clear 'vector))
(nav-mesh-method-22 a0-25 sv-96 sv-112)
(compute-bounding-box-from-vertices a0-25 sv-96 sv-112)
(expand-bounding-box sv-20 sv-24 sv-96 sv-112)
)
)
@@ -957,7 +1050,7 @@
(else
(let ((a0-28 (nav-mesh-from-res-tag sv-40 'nav-mesh-actor 0)))
(if a0-28
(nav-mesh-method-22 a0-28 sv-20 sv-24)
(compute-bounding-box-from-vertices a0-28 sv-20 sv-24)
)
)
)
@@ -984,6 +1077,15 @@
(none)
)
;; definition for method 27 of type level-group
;; INFO: Used lq/sq
;; WARN: Stack slot offset 20 signed mismatch
;; WARN: Stack slot offset 20 signed mismatch
;; WARN: Stack slot offset 20 signed mismatch
;; WARN: Stack slot offset 20 signed mismatch
;; WARN: Stack slot offset 20 signed mismatch
;; WARN: Stack slot offset 20 signed mismatch
;; WARN: Return type mismatch int vs none.
(defmethod print-volume-sizes level-group ((obj level-group))
(local-vars
(sv-16 pointer)
@@ -1064,6 +1166,8 @@
(none)
)
;; definition for function expand-vis-box-with-point
;; WARN: Return type mismatch int vs none.
(defun expand-vis-box-with-point ((arg0 entity) (arg1 vector))
(let ((v1-1 (res-lump-data arg0 'visvol (inline-array vector))))
(when v1-1
@@ -1083,6 +1187,7 @@
(none)
)
;; definition of type debug-actor-info
(deftype debug-actor-info (basic)
((name basic :offset-assert 4)
(handle handle :offset-assert 8)
@@ -1094,6 +1199,7 @@
:flag-assert #x900000018
)
;; definition for method 3 of type debug-actor-info
(defmethod inspect debug-actor-info ((obj debug-actor-info))
(when (not obj)
(set! obj obj)
@@ -1108,10 +1214,14 @@
obj
)
;; definition for symbol *debug-actor-info*, type debug-actor-info
(define *debug-actor-info* (new 'static 'debug-actor-info :name #f))
;; definition for symbol *pid-string*, type string
(define *pid-string* (new 'global 'string 128 (the-as string #f)))
;; definition (debug) for function debug-actor
;; WARN: Return type mismatch int vs none.
(defun-debug debug-actor ((arg0 string))
(let ((gp-0 *debug-actor-info*))
(set! (-> gp-0 name) #f)
@@ -1148,6 +1258,8 @@
(none)
)
;; definition (debug) for function draw-actor-marks
;; WARN: Return type mismatch int vs none.
(defun-debug draw-actor-marks ((arg0 process))
(local-vars (sv-16 entity-actor) (sv-20 (pointer int32)))
(b!
@@ -1281,6 +1393,9 @@
(none)
)
;; definition for method 15 of type level-group
;; INFO: Used lq/sq
;; WARN: Return type mismatch int vs none.
(defmethod debug-draw-actors level-group ((obj level-group) (arg0 symbol))
(local-vars
(sv-16 symbol)
@@ -1659,16 +1774,20 @@
)
)
;; definition for method 22 of type entity-camera
(defmethod birth! entity-camera ((obj entity-camera))
(add-connection *camera-engine* *camera* nothing obj #f #f)
obj
)
;; definition for method 23 of type entity-camera
(defmethod kill! entity-camera ((obj entity-camera))
(remove-by-param1 *camera-engine* (the-as int obj))
obj
)
;; definition for function init-entity
;; WARN: Return type mismatch process vs none.
(defun init-entity ((arg0 process) (arg1 entity-actor) (arg2 process))
(activate arg0 *entity-pool* (res-lump-struct arg1 'name basic) (the-as pointer #x70004000))
(set! (-> arg0 entity) arg1)
@@ -1678,6 +1797,7 @@
(none)
)
;; definition for method 22 of type entity-actor
(defmethod birth! entity-actor ((obj entity-actor))
(let* ((s5-0 (-> obj etype))
(v1-0 (entity-info-lookup s5-0))
@@ -1708,6 +1828,8 @@
obj
)
;; definition for function entity-deactivate-handler
;; WARN: Return type mismatch symbol vs none.
(defun entity-deactivate-handler ((arg0 process) (arg1 entity-actor))
(when (= arg0 (-> arg1 extra process))
(logclear! (-> arg1 extra perm status) (entity-perm-status bit-1 no-kill))
@@ -1716,6 +1838,7 @@
(none)
)
;; definition for method 23 of type entity-actor
(defmethod kill! entity-actor ((obj entity-actor))
(let ((a0-1 (-> obj extra process)))
(if a0-1
@@ -1726,6 +1849,11 @@
obj
)
;; definition for method 17 of type bsp-header
;; INFO: Used lq/sq
;; WARN: Return type mismatch bsp-header vs none.
;; ERROR: Unsupported inline assembly instruction kind - [mfc0 s5, Count]
;; ERROR: Unsupported inline assembly instruction kind - [mfc0 v1, Count]
(defmethod birth bsp-header ((obj bsp-header))
(local-vars (v1-74 int) (s5-0 int) (sv-16 int))
(.mfc0 s5-0 Count)
@@ -1798,6 +1926,8 @@
(none)
)
;; definition for function check-for-rougue-process
;; WARN: Return type mismatch int vs none.
(defun check-for-rougue-process ((arg0 process) (arg1 int) (arg2 int) (arg3 level))
(cond
((-> arg0 entity)
@@ -1902,6 +2032,8 @@
(none)
)
;; definition for method 18 of type bsp-header
;; WARN: Return type mismatch bsp-header vs none.
(defmethod deactivate-entities bsp-header ((obj bsp-header))
(let ((v1-1 (-> obj level heap base))
(a0-2 (-> obj level heap top-base))
@@ -1988,6 +2120,9 @@
(none)
)
;; definition for function process-drawable-scale-from-entity!
;; INFO: Used lq/sq
;; WARN: Return type mismatch int vs none.
(defun process-drawable-scale-from-entity! ((arg0 process-drawable) (arg1 entity))
(let ((v1-1 (res-lump-struct arg1 'scale structure)))
(if v1-1
@@ -1999,6 +2134,9 @@
(none)
)
;; definition for function process-drawable-from-entity!
;; INFO: Used lq/sq
;; WARN: Return type mismatch process-drawable vs none.
(defun process-drawable-from-entity! ((arg0 process-drawable) (arg1 entity-actor))
(logior! (-> arg0 mask) (process-mask actor-pause))
(set! (-> arg0 root trans quad) (-> arg1 extra trans quad))
@@ -2007,6 +2145,7 @@
(none)
)
;; definition for method 9 of type entity-perm
(defmethod update entity-perm ((obj entity-perm) (arg0 symbol) (arg1 entity-perm-status))
(cond
((= arg0 'game)
@@ -2037,6 +2176,8 @@
obj
)
;; definition for function reset-actors
;; WARN: Return type mismatch int vs none.
(defun reset-actors ((arg0 symbol))
(let* ((v1-0 arg0)
(s5-0 (cond
@@ -2121,6 +2262,8 @@
(none)
)
;; definition for function reset-cameras
;; WARN: Return type mismatch int vs none.
(defun reset-cameras ()
(remove-all *camera-engine*)
(dotimes (gp-0 (-> *level* length))
@@ -2140,6 +2283,7 @@
(none)
)
;; definition for method 12 of type process-drawable
(defmethod run-logic? process-drawable ((obj process-drawable))
(or (not (logtest? (-> obj mask) (process-mask actor-pause)))
(or (>= (+ (-> *ACTOR-bank* pause-dist) (-> obj root pause-adjust-distance))
@@ -2151,12 +2295,21 @@
)
)
;; definition for method 9 of type entity-links
(defmethod birth? entity-links ((obj entity-links) (arg0 vector))
(and (not (logtest? (-> obj perm status) (entity-perm-status bit-0 dead)))
(< (vector-vector-distance (-> obj trans) arg0) (-> *ACTOR-bank* birth-dist))
)
)
;; definition for method 17 of type level-group
;; INFO: Used lq/sq
;; ERROR: Stack slot load at 96 mismatch: defined as size 4, got size 16
;; ERROR: Stack slot load at 96 mismatch: defined as size 4, got size 16
;; ERROR: Stack slot load at 96 mismatch: defined as size 4, got size 16
;; ERROR: Stack slot load at 96 mismatch: defined as size 4, got size 16
;; WARN: Return type mismatch int vs none.
;; WARN: Function (method 17 level-group) has a return type of none, but the expression builder found a return statement.
(defmethod actors-update level-group ((obj level-group))
(local-vars
(sv-16 vector)
@@ -2363,6 +2516,7 @@
)
)
;; definition for function entity-birth-no-kill
(defun entity-birth-no-kill ((arg0 entity))
(let ((gp-0 (-> arg0 extra)))
(logior! (-> gp-0 perm status) (entity-perm-status no-kill))
@@ -2373,6 +2527,8 @@
)
)
;; definition for function entity-task-complete-on
;; WARN: Return type mismatch int vs none.
(defun entity-task-complete-on ((arg0 entity))
(let ((v1-0 (-> arg0 extra)))
(if (nonzero? (-> v1-0 perm task))
@@ -2383,6 +2539,8 @@
(none)
)
;; definition for function entity-task-complete-off
;; WARN: Return type mismatch int vs none.
(defun entity-task-complete-off ((arg0 entity))
(let ((v1-0 (-> arg0 extra)))
(if (!= (-> v1-0 perm task) 1)
@@ -2393,6 +2551,8 @@
(none)
)
;; definition for method 30 of type entity-actor
;; WARN: Return type mismatch entity-perm-status vs none.
(defmethod toggle-status entity-actor ((obj entity-actor) (arg0 entity-perm-status) (arg1 symbol))
(let ((v1-0 (-> obj extra)))
(if arg1
@@ -2404,6 +2564,8 @@
(none)
)
;; definition for function process-entity-status!
;; WARN: Return type mismatch int vs entity-perm-status.
(defun process-entity-status! ((arg0 process) (arg1 entity-perm-status) (arg2 symbol))
(the-as entity-perm-status (cond
((and (-> arg0 entity) arg0 (= arg0 (-> arg0 entity extra process)))
@@ -2422,6 +2584,8 @@
)
)
;; definition for function find-nearest-entity
;; WARN: Return type mismatch entity-actor vs entity.
(defun find-nearest-entity ((arg0 vector) (arg1 type))
(local-vars (v1-9 object))
(let ((gp-0 (the-as entity-actor #f)))
@@ -2461,6 +2625,8 @@
)
)
;; definition (debug) for function entity-speed-test
;; ERROR: Unsupported inline assembly instruction kind - [mfc0 s4, Count]
(defun-debug entity-speed-test ((arg0 string))
(local-vars (s4-0 int))
(let ((gp-0 (entity-by-name arg0)))
@@ -2480,6 +2646,9 @@
)
)
;; definition (debug) for function dump-entity-remap
;; INFO: Used lq/sq
;; WARN: Return type mismatch int vs none.
(defun-debug dump-entity-remap ((arg0 object) (arg1 object))
(local-vars
(sv-16 symbol)
@@ -2,6 +2,7 @@
(in-package goal)
;; definition for method 3 of type sparticle-launcher
;; INFO: this function exists in multiple non-identical object files
;; WARN: Return type mismatch int vs sparticle-launcher.
(defmethod inspect sparticle-launcher ((obj sparticle-launcher))
(format #t "~X: sparticle-launcher~%" obj)
+1 -1
View File
@@ -694,7 +694,7 @@
(debug-draw-actors (_type_ symbol) none 15)
(assign-draw-indices (_type_) none 16)
(actors-update (_type_) none 17)
(level-group-method-18 (_type_) none 18)
(update-nav-meshes (_type_) none 18)
(level-update (_type_) none 19)
(level-get-target-inside (_type_) level 20)
(alloc-levels-if-needed (_type_ symbol) none 21)
+73 -1
View File
@@ -1,5 +1,7 @@
;;-*-Lisp-*-
(in-package goal)
;; definition for function lookup-level-info
(defun lookup-level-info ((arg0 symbol))
(let* ((v1-0 *level-load-list*)
(a1-0 (car v1-0))
@@ -17,6 +19,8 @@
default-level
)
;; definition for method 24 of type level-group
;; WARN: Return type mismatch object vs pair.
(defmethod alt-load-command-get-index level-group ((obj level-group) (arg0 symbol) (arg1 int))
(let ((v1-1 (-> (lookup-level-info arg0) alt-load-commands)))
(while (nonzero? arg1)
@@ -30,10 +34,12 @@
)
)
;; definition for method 29 of type level-group
(defmethod load-in-progress? level-group ((obj level-group))
(!= (-> *level* loading-level) (-> *level* default-level))
)
;; definition for method 11 of type level-group
(defmethod get-level-by-heap-ptr-and-status level-group ((obj level-group) (arg0 pointer) (arg1 symbol))
(case arg1
(('active)
@@ -66,6 +72,7 @@
(the-as level #f)
)
;; definition for function remap-level-name
(defun remap-level-name ((arg0 level-load-info))
(if (-> *level* vis?)
(-> arg0 visname)
@@ -73,6 +80,7 @@
)
)
;; definition for method 21 of type level
(defmethod get-art-group-by-name level ((obj level) (arg0 string))
(countdown (s4-0 (-> obj art-group art-group-array length))
(if (name= (-> obj art-group art-group-array s4-0 name) arg0)
@@ -82,6 +90,7 @@
(the-as art-group #f)
)
;; definition for method 13 of type level
(defmethod bsp-name level ((obj level))
(if (and (!= (-> obj status) 'inactive) (-> obj bsp) (nonzero? (-> obj bsp name)))
(-> obj bsp name)
@@ -89,6 +98,7 @@
)
)
;; definition for function add-bsp-drawable
(defun add-bsp-drawable ((arg0 bsp-header) (arg1 level) (arg2 symbol) (arg3 display-frame))
(draw arg0 arg0 arg3)
(if (nonzero? *display-strip-lines*)
@@ -97,11 +107,13 @@
(none)
)
;; definition for method 2 of type level
(defmethod print level ((obj level))
(format #t "#<~A ~A ~S @ #x~X>" (-> obj type) (-> obj status) (-> obj name) obj)
obj
)
;; definition for method 7 of type bsp-header
(defmethod relocate bsp-header ((obj bsp-header) (arg0 int))
(let ((s5-0 (-> *level* loading-level)))
(when s5-0
@@ -140,6 +152,7 @@
)
)
;; definition for method 27 of type level
(defmethod load-required-packages level ((obj level))
(when (not (or (not (-> obj bsp)) (= *kernel-boot-mode* 'debug-boot)))
(if (not (null? (-> obj info packages)))
@@ -149,6 +162,9 @@
obj
)
;; definition for method 29 of type level
;; INFO: Used lq/sq
;; WARN: Return type mismatch int vs none.
(defmethod vis-clear level ((obj level))
(countdown (v1-0 8)
(nop!)
@@ -162,6 +178,8 @@
(none)
)
;; definition for method 28 of type level
;; WARN: Return type mismatch int vs none.
(defmethod init-vis-from-bsp level ((obj level))
(when (not (or (= (-> obj status) 'inactive) (not (-> obj bsp))))
(set! (-> obj all-visible?) 'loading)
@@ -192,6 +210,7 @@
(none)
)
;; definition for method 12 of type level-group
(defmethod level-get-for-use level-group ((obj level-group) (arg0 symbol) (arg1 symbol))
(local-vars (s5-1 level))
(alloc-levels-if-needed obj #f)
@@ -239,6 +258,7 @@
s5-1
)
;; definition for method 28 of type level-group
(defmethod level-status level-group ((obj level-group) (arg0 symbol))
(let ((v1-1 (level-get *level* arg0)))
(if v1-1
@@ -247,6 +267,8 @@
)
)
;; definition for method 26 of type level
;; INFO: Used lq/sq
(defmethod level-status-update! level ((obj level) (arg0 symbol))
(case arg0
(('inactive)
@@ -315,10 +337,14 @@
obj
)
;; definition for symbol *login-state*, type login-state
(define *login-state* (new 'global 'login-state))
;; definition for symbol *print-login*, type symbol
(define *print-login* #t)
;; definition for function load-buffer-resize
;; WARN: Return type mismatch int vs none.
(defun load-buffer-resize ((arg0 level) (arg1 dgo-header))
(case (-> arg0 load-buffer-mode)
(((load-buffer-mode small-center))
@@ -341,6 +367,7 @@
(none)
)
;; definition for method 17 of type level
(defmethod load-continue level ((obj level))
(local-vars (sv-16 symbol))
(when (-> obj linking)
@@ -460,6 +487,7 @@
obj
)
;; definition for method 18 of type level
(defmethod load-begin level ((obj level))
(local-vars (bits-to-use int) (borrow-from-lev level) (found-borrow symbol))
(dotimes (v1-0 2)
@@ -738,6 +766,7 @@
obj
)
;; definition for method 19 of type level
(defmethod login-begin level ((obj level))
(set! (-> *texture-pool* allocate-func) texture-page-default-allocate)
(cond
@@ -787,6 +816,12 @@
obj
)
;; definition for function level-update-after-load
;; WARN: Found some very strange gotos. Check result carefully, this is not well tested.
;; INFO: Used lq/sq
;; ERROR: Unsupported inline assembly instruction kind - [mfc0 s5, Count]
;; ERROR: Unsupported inline assembly instruction kind - [mfc0 v1, Count]
;; ERROR: Unsupported inline assembly instruction kind - [mfc0 v1, Count]
(defun level-update-after-load ((lev level) (lstate login-state))
(local-vars
(current-time int)
@@ -984,7 +1019,7 @@
(+! (-> lstate state) 1)
)
(else
(entity-nav-mesh-method-27 (-> lev-bsp nav-meshes (the-as uint login-state-pos)))
(initialize-nav-mesh! (-> lev-bsp nav-meshes (the-as uint login-state-pos)))
(+! (-> lstate pos) 1)
)
)
@@ -1058,6 +1093,8 @@
lev
)
;; definition for method 25 of type level
;; INFO: Used lq/sq
(defmethod birth level ((obj level))
(local-vars (sv-96 int))
(case (-> obj status)
@@ -1130,6 +1167,8 @@
obj
)
;; definition for method 9 of type level
;; INFO: Used lq/sq
(defmethod deactivate level ((obj level))
(case (-> obj status)
(('active 'alive)
@@ -1174,6 +1213,8 @@
obj
)
;; definition for method 12 of type level
;; WARN: Using new Jak 2 rtype-of
(defmethod unload! level ((obj level))
(deactivate obj)
(when (!= (-> obj status) 'inactive)
@@ -1335,6 +1376,8 @@
obj
)
;; definition for method 10 of type level
;; ERROR: Unsupported inline assembly instruction kind - [addiu a0, a0, 56]
(defmethod is-object-visible? level ((obj level) (arg0 int))
(local-vars (a0-1 int) (a0-3 int))
(let ((v1-0 (-> obj vis-bits)))
@@ -1348,6 +1391,7 @@
)
)
;; definition for method 15 of type level
(defmethod inside-boxes-check level ((obj level) (arg0 vector))
(cond
((not (-> obj bsp))
@@ -1362,6 +1406,8 @@
)
)
;; definition for method 20 of type level
;; WARN: Return type mismatch int vs none.
(defmethod debug-print-region-splitbox level ((obj level) (arg0 vector) (arg1 object))
(cond
((or (not (-> obj bsp)) (zero? (-> obj bsp region-tree)))
@@ -1374,6 +1420,7 @@
(none)
)
;; definition for method 8 of type level
(defmethod mem-usage level ((obj level) (arg0 memory-usage-block) (arg1 int))
(when (= (-> obj status) 'active)
(set! (-> arg0 length) (max 67 (-> arg0 length)))
@@ -1428,6 +1475,8 @@
obj
)
;; definition for method 21 of type level-group
;; WARN: Return type mismatch int vs none.
(defmethod alloc-levels-if-needed level-group ((obj level-group) (arg0 symbol))
(when (zero? (-> *level* heap base))
(kmemopen global "level-heaps")
@@ -1457,6 +1506,7 @@
(none)
)
;; definition for method 10 of type level-group
(defmethod level-get-with-status level-group ((obj level-group) (arg0 symbol))
(dotimes (v1-0 (-> obj length))
(if (= (-> obj level v1-0 status) arg0)
@@ -1466,6 +1516,7 @@
(the-as level #f)
)
;; definition for method 30 of type level-group
(defmethod level-get-most-disposable level-group ((obj level-group))
(dotimes (v1-0 (-> obj length))
(case (-> obj level v1-0 status)
@@ -1504,6 +1555,7 @@
)
)
;; definition for method 9 of type level-group
(defmethod level-get level-group ((obj level-group) (arg0 symbol))
(dotimes (v1-0 (-> obj length))
(if (and (!= (-> obj level v1-0 status) 'inactive)
@@ -1515,6 +1567,7 @@
(the-as level #f)
)
;; definition for method 23 of type level-group
(defmethod art-group-get-by-name level-group ((obj level-group) (arg0 string) (arg1 (pointer uint32)))
(countdown (s4-0 7)
(let ((s3-0 (-> *level* level s4-0)))
@@ -1533,6 +1586,7 @@
(the-as art-group #f)
)
;; definition for method 13 of type level-group
(defmethod activate-levels! level-group ((obj level-group))
(dotimes (s5-0 (-> obj length))
(level-status-update! (-> obj level s5-0) 'active)
@@ -1540,6 +1594,7 @@
0
)
;; definition for method 20 of type level-group
(defmethod level-get-target-inside level-group ((obj level-group))
(let ((s5-0 (target-pos 0)))
(let ((v1-1 (-> *load-state* vis-nick)))
@@ -1609,12 +1664,15 @@
)
)
;; definition for method 22 of type level-group
;; WARN: Return type mismatch int vs none.
(defmethod load-commands-set! level-group ((obj level-group) (arg0 pair))
(set! (-> obj load-commands) arg0)
0
(none)
)
;; definition for method 8 of type level-group
(defmethod mem-usage level-group ((obj level-group) (arg0 memory-usage-block) (arg1 int))
(dotimes (s3-0 (-> obj length))
(mem-usage (-> obj level s3-0) arg0 arg1)
@@ -1622,6 +1680,9 @@
obj
)
;; definition for function bg
;; WARN: Return type mismatch int vs none.
;; WARN: Using new Jak 2 rtype-of
(defun bg ((arg0 symbol))
(set! *cheat-mode* (if *debug-segment*
'debug
@@ -1688,6 +1749,7 @@
(none)
)
;; definition for function play
(defun play ((arg0 symbol) (arg1 symbol))
(kmemopen global "level-boot")
(when *kernel-boot-level*
@@ -1772,6 +1834,8 @@
0
)
;; definition for function play-boot
;; WARN: Return type mismatch int vs none.
(defun play-boot ()
(process-spawn-function
process
@@ -1783,6 +1847,7 @@
(none)
)
;; definition for function update-sound-banks
(defun update-sound-banks ()
(local-vars (v1-21 level-load-info) (v1-28 level-load-info) (a0-24 symbol))
(if (or (nonzero? (rpc-busy? 1))
@@ -1906,6 +1971,7 @@
0
)
;; definition for method 10 of type load-state
(defmethod update! load-state ((obj load-state))
(local-vars (all-levels-inactive symbol))
(let ((discarded-level #f))
@@ -2089,6 +2155,8 @@
0
)
;; definition for method 16 of type level-group
;; WARN: Return type mismatch int vs none.
(defmethod assign-draw-indices level-group ((obj level-group))
(local-vars (t0-3 symbol))
(set! (-> obj draw-level-count) 0)
@@ -2142,6 +2210,8 @@
(none)
)
;; definition for method 19 of type level-group
;; WARN: Return type mismatch int vs none.
(defmethod level-update level-group ((obj level-group))
(local-vars (v1-101 symbol))
(camera-pos)
@@ -2421,6 +2491,7 @@
(none)
)
;; definition (debug) for function show-level
(defun-debug show-level ((arg0 symbol))
(set! (-> *setting-control* user-default border-mode) #t)
(let ((s5-0 (new 'stack-no-clear 'array 'symbol 10)))
@@ -2436,6 +2507,7 @@
0
)
;; failed to figure out what this is:
(when (zero? (-> *level* level0 art-group))
(kmemopen global "level")
(let ((gp-0 *level*))
+64 -50
View File
@@ -1,5 +1,7 @@
;;-*-Lisp-*-
(in-package goal)
;; definition of type check-vector-collision-with-nav-spheres-info
(deftype check-vector-collision-with-nav-spheres-info (structure)
((u float :offset-assert 0)
(intersect vector :inline :offset-assert 16)
@@ -10,6 +12,7 @@
:flag-assert #x900000030
)
;; definition for method 3 of type check-vector-collision-with-nav-spheres-info
(defmethod inspect check-vector-collision-with-nav-spheres-info ((obj check-vector-collision-with-nav-spheres-info))
(when (not obj)
(set! obj obj)
@@ -23,6 +26,7 @@
obj
)
;; definition of type nav-gap-info
(deftype nav-gap-info (structure)
((dest vector :inline :offset-assert 0)
(poly nav-poly :offset-assert 16)
@@ -32,6 +36,7 @@
:flag-assert #x900000014
)
;; definition for method 3 of type nav-gap-info
(defmethod inspect nav-gap-info ((obj nav-gap-info))
(when (not obj)
(set! obj obj)
@@ -44,6 +49,7 @@
obj
)
;; definition of type nav-avoid-spheres-params
(deftype nav-avoid-spheres-params (structure)
((current-pos vector :inline :offset-assert 0)
(travel vector :inline :offset-assert 16)
@@ -57,6 +63,7 @@
:flag-assert #x900000058
)
;; definition for method 3 of type nav-avoid-spheres-params
(defmethod inspect nav-avoid-spheres-params ((obj nav-avoid-spheres-params))
(when (not obj)
(set! obj obj)
@@ -73,6 +80,7 @@
obj
)
;; definition of type nav-callback-info
(deftype nav-callback-info (structure)
((callback-count int32 :offset-assert 0)
(callback-array (function object nav-control none) 10 :offset-assert 4)
@@ -82,6 +90,7 @@
:flag-assert #x90000002c
)
;; definition for method 3 of type nav-callback-info
(defmethod inspect nav-callback-info ((obj nav-callback-info))
(when (not obj)
(set! obj obj)
@@ -94,6 +103,7 @@
obj
)
;; definition of type nav-state
(deftype nav-state (structure)
((flags nav-state-flag :offset-assert 0)
(nav nav-control :offset-assert 4)
@@ -123,53 +133,54 @@
(:methods
(debug-draw (_type_) none 9)
(nav-state-method-10 (_type_) none 10)
(nav-state-method-11 (_type_ nav-gap-info) symbol 11)
(nav-state-method-12 (_type_ vector) vector 12)
(nav-state-method-13 (_type_ vector) vector 13)
(nav-state-method-14 (_type_ vector) vector 14)
(nav-state-method-15 (_type_ vector) vector 15)
(plan-over-pat1-polys-using-route (_type_ nav-gap-info) symbol 11)
(get-velocity (_type_ vector) vector 12)
(get-travel (_type_ vector) vector 13)
(get-heading (_type_ vector) vector 14)
(get-target-post (_type_ vector) vector 15)
(get-speed (_type_) meters 16)
(get-rotation-rate (_type_) float 17)
(nav-state-method-18 (_type_ vector object vector) none 18)
(try-projecting-to-current-poly (_type_ vector object vector) symbol 18)
(get-current-poly (_type_) nav-poly 19)
(copy-nav-state! (_type_ (pointer nav-state)) none 20)
(nav-state-method-21 () none 21)
(nav-state-method-22 () none 22)
(nav-state-method-23 () none 23)
(nav-state-method-24 (_type_) none 24)
(nav-state-method-25 (_type_) none 25)
(nav-state-method-26 (_type_) none 26)
(nav-state-method-27 (_type_) none 27)
(nav-state-method-28 (_type_) none 28)
(turn-and-navigate-to-destination (_type_) none 24)
(navigate-using-route-portals-wrapper (_type_) none 25)
(navigate-using-best-dir-recompute-avoid-spheres-1-wrapper (_type_) none 26)
(navigate-within-poly-wrapper (_type_) none 27)
(compute-travel-speed (_type_) none 28)
(nav-state-method-29 (_type_) none 29)
(nav-state-method-30 (_type_) none 30)
(nav-state-method-31 (_type_) none 31)
(nav-state-method-32 (_type_) none 32)
(nav-state-method-33 (_type_) none 33)
(nav-state-method-34 (_type_) none 34)
(nav-state-method-35 (_type_) none 35)
(nav-state-method-36 (_type_ vector) none 36)
(nav-state-method-37 (_type_) none 37)
(navigate-using-best-dir-recompute-avoid-spheres-2 (_type_) none 31)
(update-travel-dir-from-spheres (_type_) none 32)
(compute-speed-simple (_type_) none 33)
(navigate-v1! (_type_) none 34)
(reset-target! (_type_) none 35)
(add-offset-to-target! (_type_ vector) none 36)
(navigate-v2! (_type_) none 37)
(set-current-poly! (_type_ nav-poly) none 38)
(nav-state-method-39 () none 39)
(nav-state-method-40 (_type_) none 40)
(nav-state-method-41 (_type_ vector) symbol 41)
(nav-state-method-42 (_type_ vector) none 42)
(nav-state-method-43 (_type_ vector) none 43)
(nav-state-method-39 (_type_) symbol 39)
(do-navigation-to-destination (_type_ vector) none 40)
(clamp-vector-to-mesh-cross-gaps (_type_ vector) symbol 41)
(set-target-post! (_type_ vector) none 42)
(set-travel! (_type_ vector) none 43)
(set-velocity! (_type_ vector) none 44)
(set-heading! (_type_ vector) none 45)
(set-speed! (_type_ meters) none 46)
(nav-state-method-47 (_type_ nav-control) none 47)
(reset! (_type_ nav-control) none 47)
(nav-state-method-48 () none 48)
(nav-state-method-49 (_type_ clamp-travel-vector-to-mesh-return-info) none 49)
(navigate-using-best-dir-use-existing-avoid-spheres (_type_ nav-avoid-spheres-params) none 49)
(nav-state-method-50 (_type_) none 50)
(nav-state-method-51 () none 51)
(nav-state-method-52 (_type_) none 52)
(nav-state-method-53 (_type_) none 53)
(nav-state-method-54 (_type_) none 54)
(navigate-using-route-portals (_type_) none 51)
(navigate-using-best-dir-recompute-avoid-spheres-1 (_type_) none 52)
(navigate-within-poly (_type_) none 53)
(clamp-travel-vector (_type_) none 54)
)
)
;; definition for method 3 of type nav-state
(defmethod inspect nav-state ((obj nav-state))
(when (not obj)
(set! obj obj)
@@ -249,6 +260,7 @@
obj
)
;; definition of type nav-control
(deftype nav-control (structure)
((flags nav-control-flag :offset-assert 0)
(callback-info nav-callback-info :offset-assert 4)
@@ -278,28 +290,28 @@
:flag-assert #x2f00000120
(:methods
(debug-draw (_type_) none 9)
(point-in-bounds? (_type_ vector) symbol 10)
(nav-control-method-11 (_type_ vector) vector 11)
(nav-control-method-12 (_type_ vector vector nav-poly) nav-poly 12)
(find-poly (_type_ vector) nav-poly 13)
(nav-control-method-14 (_type_ nav-poly vector object vector) none 14)
(nav-control-method-15 (_type_ vector) none 15)
(nav-control-method-16 (_type_ vector float) symbol 16)
(point-in-bsphere? (_type_ vector) symbol 10)
(find-poly-containing-point-1 (_type_ vector) nav-poly 11)
(cloest-point-on-mesh (_type_ vector vector nav-poly) nav-poly 12)
(find-nearest-poly-to-point (_type_ vector) nav-poly 13)
(project-point-onto-plane-of-poly (_type_ nav-poly vector vector vector) none 14)
(find-poly-containing-point-2 (_type_ vector) nav-poly 15)
(is-above-poly-max-height? (_type_ vector float) symbol 16)
(is-in-mesh? (_type_ vector float) symbol 17)
(nav-control-method-18 () none 18)
(nav-control-method-19 () none 19)
(nav-control-method-20 (_type_ vector nav-poly vector float symbol symbol) none 20)
(nav-control-method-21 (_type_) none 21)
(nav-control-method-22 (_type_ vector nav-avoid-spheres-params) float 22)
(nav-control-method-23 (_type_) none 23)
(nav-control-method-24 (_type_ vector int) none 24)
(avoid-spheres-1! (_type_ nav-avoid-spheres-params) symbol 18)
(avoid-spheres-2! (_type_ nav-avoid-spheres-params) symbol 19)
(clamp-vector-to-mesh-cross-gaps (_type_ vector nav-poly vector float symbol clamp-travel-vector-to-mesh-return-info) none 20)
(clamp-vector-to-mesh-no-gaps (_type_ vector nav-poly vector clamp-travel-vector-to-mesh-return-info) none 21)
(find-first-sphere-and-update-avoid-params (_type_ vector nav-avoid-spheres-params) float 22)
(set-spheres-from-nav-ids (_type_) none 23)
(add-root-sphere-to-hash! (_type_ vector int) none 24)
(get-max-rotation-rate (_type_) float 25)
(get-sphere-mask (_type_) none 26)
(get-sphere-mask (_type_) uint 26)
(get-target-speed (_type_) meters 27)
(nav-control-method-28 (_type_) none 28)
(nav-control-method-29 (_type_) none 29)
(enable-extra-sphere! (_type_) none 28)
(disable-extra-sphere! (_type_) none 29)
(copy-extra-nav-sphere! (_type_ sphere) none 30)
(set-extra-nav-sphere! (_type_ sphere) none 31)
(set-extra-nav-sphere-xyz! (_type_ sphere) none 31)
(set-extra-nav-sphere-radius! (_type_ float) none 32)
(set-nearest-y-thres! (_type_ float) none 33)
(set-nav-cull-radius! (_type_ meters) none 34)
@@ -309,15 +321,16 @@
(set-turning-acceleration! (_type_ meters) none 38)
(set-max-rotation-rate! (_type_ float) none 39)
(set-sphere-mask! (_type_ uint) none 40)
(nav-control-method-41 (_type_) none 41)
(remove! (_type_) none 41)
(init! (_type_ collide-shape) none 42)
(display-marks? (_type_) symbol 43)
(nav-control-method-44 () none 44)
(nav-control-method-45 (_type_ vector vector vector) sphere 45)
(find-sphere (_type_ symbol) none 46)
(find-first-sphere-intersecting-ray (_type_ vector vector vector) sphere 45)
(find-sphere-ids-from-sphere-hash (_type_ symbol) none 46)
)
)
;; definition for method 3 of type nav-control
(defmethod inspect nav-control ((obj nav-control))
(when (not obj)
(set! obj obj)
@@ -384,4 +397,5 @@
obj
)
;; failed to figure out what this is:
0
File diff suppressed because it is too large Load Diff
+128 -29
View File
@@ -1,5 +1,7 @@
;;-*-Lisp-*-
(in-package goal)
;; definition of type nav-mesh-work-debug
(deftype nav-mesh-work-debug (structure)
((debug-vec1 vector :inline :offset-assert 0)
(debug-vec2 vector :inline :offset-assert 16)
@@ -20,6 +22,7 @@
:flag-assert #x9000001c0
)
;; definition for method 3 of type nav-mesh-work-debug
(defmethod inspect nav-mesh-work-debug ((obj nav-mesh-work-debug))
(when (not obj)
(set! obj obj)
@@ -43,6 +46,7 @@
obj
)
;; definition of type nav-mesh-work
(deftype nav-mesh-work (structure)
((vert0-table int8 4 :offset-assert 0)
(vert1-table int8 4 :offset-assert 4)
@@ -68,6 +72,7 @@
:flag-assert #x90000013c
)
;; definition for method 3 of type nav-mesh-work
(defmethod inspect nav-mesh-work ((obj nav-mesh-work))
(when (not obj)
(set! obj obj)
@@ -96,6 +101,7 @@
obj
)
;; definition of type nav-mesh-link
(deftype nav-mesh-link (structure)
((id uint32 :offset-assert 0)
(dest-mesh-id uint32 :offset-assert 4)
@@ -110,6 +116,7 @@
:flag-assert #x900000010
)
;; definition for method 3 of type nav-mesh-link
(defmethod inspect nav-mesh-link ((obj nav-mesh-link))
(when (not obj)
(set! obj obj)
@@ -127,6 +134,7 @@
obj
)
;; definition of type nav-poly
(deftype nav-poly (structure)
((data uint8 64 :offset-assert 0)
(vertex vector 4 :inline :offset 0)
@@ -151,6 +159,7 @@
:flag-assert #x900000040
)
;; definition for method 3 of type nav-poly
(defmethod inspect nav-poly ((obj nav-poly))
(when (not obj)
(set! obj obj)
@@ -178,6 +187,7 @@
obj
)
;; definition of type nav-vertex
(deftype nav-vertex (vector)
"A typedef for `vector`, not used because our code looks nicer if everything is `vector`s anyway
and declared out of order (cannot use forward declared structures in inline arrays)"
@@ -187,6 +197,8 @@
:flag-assert #x900000010
)
;; definition for method 3 of type nav-vertex
;; INFO: Used lq/sq
(defmethod inspect nav-vertex ((obj nav-vertex))
(when (not obj)
(set! obj obj)
@@ -203,6 +215,7 @@
obj
)
;; definition of type nav-sphere
(deftype nav-sphere (structure)
((trans sphere :inline :offset-assert 0)
)
@@ -211,6 +224,7 @@
:flag-assert #x900000010
)
;; definition for method 3 of type nav-sphere
(defmethod inspect nav-sphere ((obj nav-sphere))
(when (not obj)
(set! obj obj)
@@ -222,6 +236,7 @@
obj
)
;; definition of type nav-ray
(deftype nav-ray (structure)
((current-pos vector :inline :offset-assert 0)
(dir vector :inline :offset-assert 16)
@@ -241,6 +256,7 @@
:flag-assert #x900000050
)
;; definition for method 3 of type nav-ray
(defmethod inspect nav-ray ((obj nav-ray))
(when (not obj)
(set! obj obj)
@@ -263,6 +279,7 @@
obj
)
;; definition of type nav-route-portal
(deftype nav-route-portal (structure)
((vertex nav-vertex 2 :inline :offset-assert 0)
(next-poly nav-poly :offset-assert 32)
@@ -273,6 +290,7 @@
:flag-assert #x900000025
)
;; definition for method 3 of type nav-route-portal
(defmethod inspect nav-route-portal ((obj nav-route-portal))
(when (not obj)
(set! obj obj)
@@ -286,6 +304,7 @@
obj
)
;; definition of type nav-find-poly-parms
(deftype nav-find-poly-parms (structure)
((point vector :inline :offset-assert 0)
(y-threshold float :offset-assert 16)
@@ -299,6 +318,7 @@
:flag-assert #x900000024
)
;; definition for method 3 of type nav-find-poly-parms
(defmethod inspect nav-find-poly-parms ((obj nav-find-poly-parms))
(when (not obj)
(set! obj obj)
@@ -315,8 +335,9 @@
obj
)
;; definition of type clamp-travel-vector-to-mesh-return-info
(deftype clamp-travel-vector-to-mesh-return-info (structure)
((found-boundary basic :offset-assert 0)
((found-boundary symbol :offset-assert 0)
(intersection vector :inline :offset-assert 16)
(boundary-normal vector :inline :offset-assert 32)
(prev-normal vector :inline :offset-assert 48)
@@ -335,6 +356,7 @@
:flag-assert #x9000000a0
)
;; definition for method 3 of type clamp-travel-vector-to-mesh-return-info
(defmethod inspect clamp-travel-vector-to-mesh-return-info ((obj clamp-travel-vector-to-mesh-return-info))
(when (not obj)
(set! obj obj)
@@ -358,6 +380,7 @@
obj
)
;; definition of type nav-mesh
(deftype nav-mesh (basic)
((work nav-mesh-work :offset-assert 4)
(poly-array (inline-array nav-poly) :offset-assert 8)
@@ -388,47 +411,48 @@
:size-assert #x70
:flag-assert #x2f00000070
(:methods
(nav-mesh-method-9 (_type_) none 9)
(debug-draw (_type_) none 9)
(nav-mesh-method-10 (_type_ vector vector nav-poly) nav-poly 10)
(nav-mesh-method-11 (_type_ nav-poly vector) vector 11)
(nav-mesh-method-12 (_type_ nav-poly vector) none 12)
(nav-mesh-method-13 (_type_ nav-poly nav-poly) nav-poly 13)
(poly-centroid (_type_ nav-poly vector) vector 11)
(poly-centroid-local (_type_ nav-poly vector) vector 12)
(lookup-poly-on-route-to-target (_type_ nav-poly nav-poly) nav-poly 13)
(get-route-portal (_type_ nav-poly nav-poly nav-route-portal) (inline-array nav-vertex) 14)
(initialize-mesh! (_type_) none 15)
(move-along-nav-ray! (_type_ nav-ray) none 16)
(try-move-along-ray (_type_ nav-poly vector vector float) meters 17)
(nav-mesh-method-18 (_type_ vector nav-poly vector float symbol clamp-travel-vector-to-mesh-return-info) none 18)
(nav-mesh-method-19 (_type_) none 19)
(nav-mesh-method-20 (_type_ clamp-travel-vector-to-mesh-return-info) none 20)
(clamp-vector-to-mesh-cross-gaps (_type_ vector nav-poly vector float symbol clamp-travel-vector-to-mesh-return-info) none 18)
(clamp-vector-to-mesh-no-gaps (_type_ vector nav-poly vector clamp-travel-vector-to-mesh-return-info) none 19)
(set-normals-from-adjacent-bounds (_type_ clamp-travel-vector-to-mesh-return-info) none 20)
(find-adjacent-bounds-one (_type_ vector nav-poly int int) none 21)
(nav-mesh-method-22 (_type_ vector vector) none 22)
(nav-mesh-method-23 (_type_ entity-nav-mesh) none 23)
(nav-mesh-method-24 (_type_) none 24)
(nav-mesh-method-25 (_type_) none 25)
(nav-mesh-method-26 (_type_) none 26)
(compute-bounding-box-from-vertices (_type_ vector vector) none 22)
(init-from-entity (_type_ entity-nav-mesh) none 23)
(handle-birth (_type_) none 24)
(handle-kill (_type_) none 25)
(update-navigation (_type_) none 26)
(new-nav-control (_type_ process-drawable int) nav-control 27)
(nav-mesh-method-28 (_type_ object) none 28)
(nav-mesh-method-29 (_type_ process-drawable symbol) nav-control 29)
(nav-mesh-method-30 (_type_ process-drawable) none 30)
(change-to (_type_ process-drawable) none 31)
(nav-mesh-method-32 (_type_ uint32) none 32)
(nav-mesh-method-33 (_type_ uint32) symbol 33)
(nav-mesh-method-34 (_type_ object vector float) none 34)
(nav-mesh-method-35 () none 35)
(nav-mesh-method-36 (_type_ nav-poly rgba) none 36)
(remove-nav-control (_type_ nav-control) none 28)
(add-process-drawable-to-navmesh (_type_ process-drawable symbol) none 29)
(remove-process-drawable (_type_ process-drawable) none 30)
(change-to (_type_ process-drawable symbol) none 31)
(link-by-id (_type_ uint) symbol 32)
(unlink-by-id (_type_ uint) symbol 33)
(nav-mesh-method-34 (_type_ vector vector float) float 34)
(nav-mesh-method-35 (_type_ vector vector float) none 35)
(debug-draw-poly (_type_ nav-poly rgba) none 36)
(point-in-poly? (_type_ nav-poly vector) symbol 37)
(nav-mesh-method-38 (_type_ nav-poly vector vector vector object) vector 38)
(nav-mesh-method-38 (_type_ nav-poly vector vector vector (pointer nav-poly)) vector 38)
(closest-point-on-boundary (_type_ nav-poly vector vector) none 39)
(nav-mesh-method-40 (_type_ nav-poly vector object vector) none 40)
(project-point-onto-plane-of-poly-local (_type_ nav-poly vector vector vector) none 40)
(project-point-into-poly-2d (_type_ nav-poly vector vector) none 41)
(nav-mesh-method-42 (_type_ nav-find-poly-parms) nav-poly 42)
(nav-mesh-method-43 (_type_ nav-find-poly-parms) none 43)
(nav-mesh-method-44 (_type_ vector float float) symbol 44)
(nav-mesh-method-45 (_type_ entity-perm) none 45)
(nav-mesh-method-46 (_type_ object) none 46)
(find-poly-containing-point-local (_type_ nav-find-poly-parms) nav-poly 42)
(find-nearest-poly-to-point-local (_type_ nav-find-poly-parms) nav-find-poly-parms 43)
(is-in-mesh-local? (_type_ vector float float) symbol 44)
(link-to-other-mesh (_type_ nav-mesh-link) symbol 45)
(unlink-mesh (_type_ nav-mesh-link) none 46)
)
)
;; definition for method 3 of type nav-mesh
(defmethod inspect nav-mesh ((obj nav-mesh))
(when (not obj)
(set! obj obj)
@@ -469,6 +493,7 @@
obj
)
;; definition for function vector-normalize-unity!
(defun vector-normalize-unity! ((arg0 vector))
(rlet ((acc :class vf)
(Q :class vf)
@@ -501,6 +526,8 @@
)
)
;; definition for function vector-normalize-unity-copy!
;; INFO: Used lq/sq
(defun vector-normalize-unity-copy! ((arg0 vector) (arg1 vector))
(rlet ((acc :class vf)
(Q :class vf)
@@ -534,10 +561,13 @@
)
)
;; definition (debug) for function debug-validate-current-poly
(defun-debug debug-validate-current-poly ()
#f
)
;; definition for function init-ray
;; WARN: Return type mismatch int vs none.
(defun init-ray ((arg0 nav-ray))
(rlet ((acc :class vf)
(Q :class vf)
@@ -581,6 +611,7 @@
)
)
;; definition for function point-poly-intersection?
(defun point-poly-intersection? ((arg0 nav-mesh) (arg1 vector) (arg2 int) (arg3 (inline-array vector)))
(let ((v1-1 (-> arg0 work vert0-table))
(a0-2 (-> arg0 work vert1-table))
@@ -603,6 +634,7 @@
#t
)
;; definition for method 37 of type nav-mesh
(defmethod point-in-poly? nav-mesh ((obj nav-mesh) (arg0 nav-poly) (arg1 vector))
(let* ((a3-0 obj)
(v1-0 arg1)
@@ -629,6 +661,13 @@
#t
)
;; definition for method 39 of type nav-mesh
;; INFO: Used lq/sq
;; WARN: Stack slot offset 56 signed mismatch
;; WARN: Stack slot offset 56 signed mismatch
;; WARN: Stack slot offset 56 signed mismatch
;; WARN: Stack slot offset 56 signed mismatch
;; WARN: Return type mismatch vector vs none.
(defmethod closest-point-on-boundary nav-mesh ((obj nav-mesh) (arg0 nav-poly) (arg1 vector) (arg2 vector))
(local-vars (sv-48 vector) (sv-52 vector) (sv-56 float))
(set! sv-48 (new 'stack-no-clear 'vector))
@@ -651,6 +690,13 @@
(none)
)
;; definition for method 41 of type nav-mesh
;; INFO: Used lq/sq
;; WARN: Stack slot offset 56 signed mismatch
;; WARN: Stack slot offset 56 signed mismatch
;; WARN: Stack slot offset 56 signed mismatch
;; WARN: Stack slot offset 56 signed mismatch
;; WARN: Return type mismatch vector vs none.
(defmethod project-point-into-poly-2d nav-mesh ((obj nav-mesh) (arg0 nav-poly) (arg1 vector) (arg2 vector))
(local-vars (sv-48 vector) (sv-52 vector) (sv-56 float))
(cond
@@ -682,6 +728,57 @@
(none)
)
;; definition for method 16 of type nav-mesh
;; INFO: Used lq/sq
;; WARN: Stack slot offset 44 signed mismatch
;; WARN: Stack slot offset 48 signed mismatch
;; WARN: Stack slot offset 44 signed mismatch
;; WARN: Stack slot offset 48 signed mismatch
;; WARN: Stack slot offset 44 signed mismatch
;; WARN: Stack slot offset 60 signed mismatch
;; WARN: Stack slot offset 48 signed mismatch
;; WARN: Stack slot offset 64 signed mismatch
;; WARN: Stack slot offset 60 signed mismatch
;; WARN: Stack slot offset 64 signed mismatch
;; WARN: Stack slot offset 44 signed mismatch
;; WARN: Stack slot offset 48 signed mismatch
;; WARN: Stack slot offset 44 signed mismatch
;; WARN: Stack slot offset 48 signed mismatch
;; WARN: Stack slot offset 44 signed mismatch
;; WARN: Stack slot offset 48 signed mismatch
;; WARN: Stack slot offset 44 signed mismatch
;; WARN: Stack slot offset 60 signed mismatch
;; WARN: Stack slot offset 48 signed mismatch
;; WARN: Stack slot offset 64 signed mismatch
;; WARN: Stack slot offset 60 signed mismatch
;; WARN: Stack slot offset 64 signed mismatch
;; WARN: Stack slot offset 44 signed mismatch
;; WARN: Stack slot offset 48 signed mismatch
;; WARN: Stack slot offset 44 signed mismatch
;; WARN: Stack slot offset 48 signed mismatch
;; WARN: Stack slot offset 44 signed mismatch
;; WARN: Stack slot offset 48 signed mismatch
;; WARN: Stack slot offset 44 signed mismatch
;; WARN: Stack slot offset 60 signed mismatch
;; WARN: Stack slot offset 48 signed mismatch
;; WARN: Stack slot offset 64 signed mismatch
;; WARN: Stack slot offset 60 signed mismatch
;; WARN: Stack slot offset 64 signed mismatch
;; WARN: Stack slot offset 44 signed mismatch
;; WARN: Stack slot offset 48 signed mismatch
;; WARN: Stack slot offset 44 signed mismatch
;; WARN: Stack slot offset 48 signed mismatch
;; WARN: Stack slot offset 44 signed mismatch
;; WARN: Stack slot offset 48 signed mismatch
;; WARN: Stack slot offset 44 signed mismatch
;; WARN: Stack slot offset 60 signed mismatch
;; WARN: Stack slot offset 48 signed mismatch
;; WARN: Stack slot offset 64 signed mismatch
;; WARN: Stack slot offset 60 signed mismatch
;; WARN: Stack slot offset 64 signed mismatch
;; WARN: Stack slot offset 44 signed mismatch
;; WARN: Stack slot offset 48 signed mismatch
;; WARN: Return type mismatch int vs none.
(defmethod move-along-nav-ray! nav-mesh ((obj nav-mesh) (ray nav-ray))
(local-vars
(next-poly-idx int)
@@ -766,6 +863,8 @@
(none)
)
;; definition (debug) for function nav-sphere-from-cam
;; WARN: Return type mismatch int vs none.
(defun-debug nav-sphere-from-cam ()
(let ((v1-0 (camera-pos)))
(format #t "SPHEREM(~4,,1M, ~4,,1M, ~4,,1M, 1.0)~%" (-> v1-0 x) (-> v1-0 y) (-> v1-0 z))
File diff suppressed because it is too large Load Diff
+4 -4
View File
@@ -342,16 +342,16 @@
)
)
(when s4-1
(let ((a2-3 ((method-of-type nav-control nav-control-method-11) (the-as nav-control s4-1) arg1)))
(let ((a2-3 ((method-of-type nav-control find-poly-containing-point-1) (the-as nav-control s4-1) arg1)))
(if a2-3
((method-of-type nav-control nav-control-method-20)
((method-of-type nav-control clamp-vector-to-mesh-cross-gaps)
(the-as nav-control s4-1)
arg1
(the-as nav-poly a2-3)
a2-3
arg0
2048.0
#f
#f
(the-as clamp-travel-vector-to-mesh-return-info #f)
)
(set! (-> arg0 quad) (the-as uint128 0))
)
@@ -533,7 +533,7 @@
)
(let ((a0-3 (-> obj nav)))
(if (and a0-3 (nonzero? a0-3))
(nav-control-method-41 a0-3)
(remove! a0-3)
)
)
(let* ((s5-0 (-> obj root))
@@ -152,8 +152,8 @@
(the-as (function process int symbol event-message-block object) simple-nav-sphere-event-handler)
)
(if arg2
(nav-mesh-method-29 arg2 self #f)
(nav-mesh-connect-from-ent (the-as entity-nav-mesh self))
(add-process-drawable-to-navmesh arg2 self #f)
(nav-mesh-connect-from-ent self)
)
(if (>= (-> self track-joint) 0)
(go-virtual active)
+9 -9
View File
@@ -57,7 +57,7 @@
:size-assert #x58
:flag-assert #x1900000058
(:methods
(new (symbol type int int) _type_ 0)
(new (symbol type int) _type_ 0)
(update-grid-for-objects-in-box (_type_ int vector vector) none 9)
(clear-bucket-array (_type_) none 10)
(setup-search-box (_type_ int vector vector vector) none 11)
@@ -107,12 +107,12 @@
;; definition of type find-nav-sphere-ids-params
(deftype find-nav-sphere-ids-params (structure)
((bsphere sphere :inline :offset-assert 0)
(y-threshold float :offset-assert 16)
(len int16 :offset-assert 20)
(max-len int16 :offset-assert 22)
(mask uint8 :offset-assert 24)
(array uint32 :offset-assert 28)
((bsphere sphere :inline :offset-assert 0)
(y-threshold float :offset-assert 16)
(len int16 :offset-assert 20)
(max-len int16 :offset-assert 22)
(mask uint8 :offset-assert 24)
(array (pointer uint8) :offset-assert 28)
)
:method-count-assert 9
:size-assert #x20
@@ -154,8 +154,8 @@
(add-a-sphere-with-flag (_type_ vector int) int 27)
(update-from-spheres (_type_) none 28)
(sphere-hash-method-29 (_type_ find-nav-sphere-ids-params int int int) none 29)
(sphere-hash-method-30 (_type_ find-nav-sphere-ids-params) none 30)
(sphere-hash-method-31 (_type_ vector int int) none 31)
(find-nav-sphere-ids (_type_ find-nav-sphere-ids-params) none 30)
(add-sphere-with-mask-and-id (_type_ vector int int) none 31)
(sphere-hash-method-32 (_type_ vector vector float int) symbol 32)
(remove-by-id (_type_ sphere int) none 33)
)
+1 -1
View File
@@ -47,7 +47,7 @@
;; definition for method 0 of type grid-hash
;; WARN: Return type mismatch object vs grid-hash.
(defmethod new grid-hash ((allocation symbol) (type-to-make type) (arg0 int) (arg1 int))
(defmethod new grid-hash ((allocation symbol) (type-to-make type) (arg0 int))
(let ((gp-0 (the-as object (object-new allocation type-to-make (the-as int (-> type-to-make size))))))
(when (zero? (the-as grid-hash gp-0))
(set! gp-0 0)
+1 -1
View File
@@ -254,7 +254,7 @@
(bouncer-method-24 obj)
(process-drawable-from-entity! obj arg0)
(init-skeleton! obj)
(nav-mesh-connect-from-ent (the-as entity-nav-mesh obj))
(nav-mesh-connect-from-ent obj)
(set! (-> obj spring-height) (res-lump-float arg0 'spring-height :default 45056.0))
(go (method-of-object obj idle))
(none)
@@ -0,0 +1,493 @@
;;-*-Lisp-*-
(in-package goal)
;; definition of type nav-network-adjacency
(deftype nav-network-adjacency (structure)
((index int32 :offset-assert 0)
(dist float :offset-assert 4)
)
:method-count-assert 9
:size-assert #x8
:flag-assert #x900000008
)
;; definition for method 3 of type nav-network-adjacency
(defmethod inspect nav-network-adjacency ((obj nav-network-adjacency))
(when (not obj)
(set! obj obj)
(goto cfg-4)
)
(format #t "[~8x] ~A~%" obj 'nav-network-adjacency)
(format #t "~1Tindex: ~D~%" (-> obj index))
(format #t "~1Tdist: ~f~%" (-> obj dist))
(label cfg-4)
obj
)
;; definition of type nav-network-adjacency-array
(deftype nav-network-adjacency-array (inline-array-class)
((data nav-network-adjacency :inline :dynamic :offset-assert 16)
)
:method-count-assert 9
:size-assert #x10
:flag-assert #x900000010
)
;; definition for method 3 of type nav-network-adjacency-array
(defmethod inspect nav-network-adjacency-array ((obj nav-network-adjacency-array))
(when (not obj)
(set! obj obj)
(goto cfg-4)
)
(format #t "[~8x] ~A~%" obj (-> obj type))
(format #t "~1Tlength: ~D~%" (-> obj length))
(format #t "~1Tallocated-length: ~D~%" (-> obj allocated-length))
(format #t "~1Tdata[0] @ #x~X~%" (-> obj data))
(label cfg-4)
obj
)
;; failed to figure out what this is:
(set! (-> nav-network-adjacency-array heap-base) (the-as uint 16))
;; definition of type list-node
(deftype list-node (structure)
((next list-node :offset-assert 0)
(prev list-node :offset-assert 4)
)
:method-count-assert 9
:size-assert #x8
:flag-assert #x900000008
)
;; definition for method 3 of type list-node
(defmethod inspect list-node ((obj list-node))
(when (not obj)
(set! obj obj)
(goto cfg-4)
)
(format #t "[~8x] ~A~%" obj 'list-node)
(format #t "~1Tnext: #<list-node @ #x~X>~%" (-> obj next))
(format #t "~1Tprev: #<list-node @ #x~X>~%" (-> obj prev))
(label cfg-4)
obj
)
;; definition of type nav-network-path-node
(deftype nav-network-path-node (list-node)
((row-index int32 :offset-assert 8)
(status net-path-node-status :offset-assert 12)
(parent nav-network-path-node :offset-assert 16)
(cost-to-start float :offset-assert 20)
(cost-to-end float :offset-assert 24)
)
:method-count-assert 9
:size-assert #x1c
:flag-assert #x90000001c
)
;; definition for method 3 of type nav-network-path-node
(defmethod inspect nav-network-path-node ((obj nav-network-path-node))
(when (not obj)
(set! obj obj)
(goto cfg-8)
)
(format #t "[~8x] ~A~%" obj 'nav-network-path-node)
(format #t "~1Tnext: #<list-node @ #x~X>~%" (-> obj next))
(format #t "~1Tprev: #<list-node @ #x~X>~%" (-> obj prev))
(format #t "~1Trow-index: ~D~%" (-> obj row-index))
(format #t "~1Tstatus: #x~X : (net-path-node-status " (-> obj status))
(let ((s5-0 (-> obj status)))
(if (= (logand s5-0 (net-path-node-status closed)) (net-path-node-status closed))
(format #t "closed ")
)
(if (= (logand s5-0 (net-path-node-status open)) (net-path-node-status open))
(format #t "open ")
)
)
(format #t ")~%")
(format #t "~1Tparent: #<nav-network-path-node @ #x~X>~%" (-> obj parent))
(format #t "~1Tcost-to-start: ~f~%" (-> obj cost-to-start))
(format #t "~1Tcost-to-end: ~f~%" (-> obj cost-to-end))
(label cfg-8)
obj
)
;; definition of type nav-network-info
(deftype nav-network-info (structure)
((index int32 :offset-assert 0)
(pos vector :inline :offset-assert 16)
(path-node nav-network-path-node :inline :offset-assert 32)
(count int32 :offset-assert 60)
(adjacency (inline-array nav-network-adjacency) :offset-assert 64)
)
:method-count-assert 9
:size-assert #x44
:flag-assert #x900000044
)
;; definition for method 3 of type nav-network-info
(defmethod inspect nav-network-info ((obj nav-network-info))
(when (not obj)
(set! obj obj)
(goto cfg-4)
)
(format #t "[~8x] ~A~%" obj 'nav-network-info)
(format #t "~1Tindex: ~D~%" (-> obj index))
(format #t "~1Tpos: #<vector @ #x~X>~%" (-> obj pos))
(format #t "~1Tpath-node: #<nav-network-path-node @ #x~X>~%" (-> obj path-node))
(format #t "~1Tcount: ~D~%" (-> obj count))
(format #t "~1Tadjacency: #x~X~%" (-> obj adjacency))
(label cfg-4)
obj
)
;; definition of type nav-network-info-array
(deftype nav-network-info-array (inline-array-class)
((data nav-network-info :inline :dynamic :offset-assert 16)
)
:method-count-assert 9
:size-assert #x10
:flag-assert #x900000010
)
;; definition for method 3 of type nav-network-info-array
(defmethod inspect nav-network-info-array ((obj nav-network-info-array))
(when (not obj)
(set! obj obj)
(goto cfg-4)
)
(format #t "[~8x] ~A~%" obj (-> obj type))
(format #t "~1Tlength: ~D~%" (-> obj length))
(format #t "~1Tallocated-length: ~D~%" (-> obj allocated-length))
(format #t "~1Tdata[0] @ #x~X~%" (-> obj data))
(label cfg-4)
obj
)
;; failed to figure out what this is:
(set! (-> nav-network-info-array heap-base) (the-as uint 80))
;; definition of type hover-nav-sphere
(deftype hover-nav-sphere (list-node)
((sphere sphere :inline :offset-assert 16)
(handle uint64 :offset-assert 32)
(timer uint64 :offset-assert 40)
)
:method-count-assert 9
:size-assert #x30
:flag-assert #x900000030
)
;; definition for method 3 of type hover-nav-sphere
(defmethod inspect hover-nav-sphere ((obj hover-nav-sphere))
(when (not obj)
(set! obj obj)
(goto cfg-4)
)
(format #t "[~8x] ~A~%" obj 'hover-nav-sphere)
(format #t "~1Tnext: #<list-node @ #x~X>~%" (-> obj next))
(format #t "~1Tprev: #<list-node @ #x~X>~%" (-> obj prev))
(format #t "~1Tsphere: #<sphere @ #x~X>~%" (-> obj sphere))
(format #t "~1Thandle: ~D~%" (-> obj handle))
(format #t "~1Ttimer: ~D~%" (-> obj timer))
(label cfg-4)
obj
)
;; definition of type hover-nav-path-segment
(deftype hover-nav-path-segment (list-node)
((curve-matrix matrix :inline :offset-assert 16)
(pos-index int32 2 :offset-assert 80)
(dist float :offset-assert 88)
(du float :offset-assert 92)
)
:method-count-assert 10
:size-assert #x60
:flag-assert #xa00000060
(:methods
(hover-nav-path-segment-method-9 (_type_ float) none 9)
)
)
;; definition for method 3 of type hover-nav-path-segment
(defmethod inspect hover-nav-path-segment ((obj hover-nav-path-segment))
(when (not obj)
(set! obj obj)
(goto cfg-4)
)
(format #t "[~8x] ~A~%" obj 'hover-nav-path-segment)
(format #t "~1Tnext: #<list-node @ #x~X>~%" (-> obj next))
(format #t "~1Tprev: #<list-node @ #x~X>~%" (-> obj prev))
(format #t "~1Tcurve-matrix: #<matrix @ #x~X>~%" (-> obj curve-matrix))
(format #t "~1Tpos-index[2] @ #x~X~%" (-> obj pos-index))
(format #t "~1Tdist: ~f~%" (-> obj dist))
(format #t "~1Tdu: ~f~%" (-> obj du))
(label cfg-4)
obj
)
;; definition for method 9 of type hover-nav-path-segment
;; WARN: Return type mismatch int vs none.
(defmethod hover-nav-path-segment-method-9 hover-nav-path-segment ((obj hover-nav-path-segment) (arg0 float))
(set! (-> obj du) (/ arg0 (-> obj dist)))
0
(none)
)
;; definition of type hover-nav-path-info
(deftype hover-nav-path-info (structure)
((segment-list hover-nav-path-segment :offset-assert 0)
(tail-segment hover-nav-path-segment :offset-assert 4)
(curr-segment hover-nav-path-segment :offset-assert 8)
(curr-u float :offset-assert 12)
)
:method-count-assert 10
:size-assert #x10
:flag-assert #xa00000010
(:methods
(hover-nav-path-info-method-9 () none 9)
)
)
;; definition for method 3 of type hover-nav-path-info
(defmethod inspect hover-nav-path-info ((obj hover-nav-path-info))
(when (not obj)
(set! obj obj)
(goto cfg-4)
)
(format #t "[~8x] ~A~%" obj 'hover-nav-path-info)
(format #t "~1Tsegment-list: #<hover-nav-path-segment @ #x~X>~%" (-> obj segment-list))
(format #t "~1Ttail-segment: #<hover-nav-path-segment @ #x~X>~%" (-> obj tail-segment))
(format #t "~1Tcurr-segment: #<hover-nav-path-segment @ #x~X>~%" (-> obj curr-segment))
(format #t "~1Tcurr-u: ~f~%" (-> obj curr-u))
(label cfg-4)
obj
)
;; definition of type path-index-array
(deftype path-index-array (inline-array-class)
((data hover-nav-path-info :inline :dynamic :offset-assert 16)
)
:method-count-assert 9
:size-assert #x10
:flag-assert #x900000010
)
;; definition for method 3 of type path-index-array
(defmethod inspect path-index-array ((obj path-index-array))
(when (not obj)
(set! obj obj)
(goto cfg-4)
)
(format #t "[~8x] ~A~%" obj (-> obj type))
(format #t "~1Tlength: ~D~%" (-> obj length))
(format #t "~1Tallocated-length: ~D~%" (-> obj allocated-length))
(format #t "~1Tdata[0] @ #x~X~%" (-> obj data))
(label cfg-4)
obj
)
;; failed to figure out what this is:
(set! (-> path-index-array heap-base) (the-as uint 4))
;; definition of type nav-network
(deftype nav-network (basic)
((network basic :offset-assert 4)
(dummy nav-network-info :inline :offset-assert 16)
(control-handle handle :offset-assert 88)
(list-table list-node 5 :offset-assert 96)
(open-list nav-network-path-node :offset 96)
(closed-list nav-network-path-node :offset 100)
(sphere-list hover-nav-sphere :offset 108)
(free-segment-list hover-nav-path-segment :offset 104)
(free-sphere-list hover-nav-sphere :offset 112)
(segment-pool uint32 :offset-assert 116)
(sphere-pool uint32 :offset-assert 120)
)
:method-count-assert 33
:size-assert #x7c
:flag-assert #x210000007c
(:methods
(nav-network-method-9 (_type_) none 9)
(nav-network-method-10 (_type_ level (array nav-network-info)) none 10)
(nav-network-method-11 (_type_) none 11)
(nav-network-method-12 (_type_) none 12)
(nav-network-method-13 (_type_) none 13)
(nav-network-method-14 (_type_ int) none 14)
(nav-network-method-15 (_type_) none 15)
(nav-network-method-16 (_type_) none 16)
(nav-network-method-17 (_type_) nav-network-path-node 17)
(nav-network-method-18 (_type_) none 18)
(nav-network-method-19 (_type_) none 19)
(nav-network-method-20 (_type_) none 20)
(nav-network-method-21 (_type_) none 21)
(nav-network-method-22 (_type_) none 22)
(nav-network-method-23 (_type_) none 23)
(nav-network-method-24 (_type_) none 24)
(nav-network-method-25 (_type_) none 25)
(nav-network-method-26 (_type_) none 26)
(nav-network-method-27 (_type_) none 27)
(nav-network-method-28 (_type_) none 28)
(nav-network-method-29 (_type_) symbol 29)
(get-network (_type_) basic 30)
(nav-network-method-31 () none 31)
(nav-network-method-32 () none 32)
)
)
;; definition for method 3 of type nav-network
(defmethod inspect nav-network ((obj nav-network))
(when (not obj)
(set! obj obj)
(goto cfg-4)
)
(format #t "[~8x] ~A~%" obj (-> obj type))
(format #t "~1Tnetwork: ~A~%" (-> obj network))
(format #t "~1Tdummy: #<nav-network-info @ #x~X>~%" (-> obj dummy))
(format #t "~1Tcontrol-handle: ~D~%" (-> obj control-handle))
(format #t "~1Tlist-table[5] @ #x~X~%" (-> obj list-table))
(format #t "~1Topen-list: #<nav-network-path-node @ #x~X>~%" (-> obj open-list))
(format #t "~1Tclosed-list: #<nav-network-path-node @ #x~X>~%" (-> obj closed-list))
(format #t "~1Tsphere-list: #<hover-nav-sphere @ #x~X>~%" (-> obj sphere-list))
(format #t "~1Tfree-segment-list: #<hover-nav-path-segment @ #x~X>~%" (-> obj free-segment-list))
(format #t "~1Tfree-sphere-list: #<hover-nav-sphere @ #x~X>~%" (-> obj free-sphere-list))
(format #t "~1Tsegment-pool: #x~X~%" (-> obj segment-pool))
(format #t "~1Tsphere-pool: #x~X~%" (-> obj sphere-pool))
(label cfg-4)
obj
)
;; definition for method 30 of type nav-network
(defmethod get-network nav-network ((obj nav-network))
(-> obj network)
)
;; definition of type hover-nav-params
(deftype hover-nav-params (structure)
((max-speed float :offset-assert 0)
(max-acceleration float :offset-assert 4)
(friction float :offset-assert 8)
(nav-collide-prim-index int32 :offset-assert 12)
)
:method-count-assert 9
:size-assert #x10
:flag-assert #x900000010
)
;; definition for method 3 of type hover-nav-params
(defmethod inspect hover-nav-params ((obj hover-nav-params))
(when (not obj)
(set! obj obj)
(goto cfg-4)
)
(format #t "[~8x] ~A~%" obj 'hover-nav-params)
(format #t "~1Tmax-speed: ~f~%" (-> obj max-speed))
(format #t "~1Tmax-acceleration: ~f~%" (-> obj max-acceleration))
(format #t "~1Tfriction: ~f~%" (-> obj friction))
(format #t "~1Tnav-collide-prim-index: ~D~%" (-> obj nav-collide-prim-index))
(label cfg-4)
obj
)
;; definition of type hover-nav-control
(deftype hover-nav-control (basic)
((root basic :offset-assert 4)
(nav basic :offset-assert 8)
(flags uint16 :offset-assert 12)
(params hover-nav-params :offset-assert 16)
(path-timer uint64 :offset-assert 24)
(transvv vector :inline :offset-assert 32)
(dest-pos vector :inline :offset-assert 48)
(dest-vel vector :inline :offset-assert 64)
(dest-move-dir vector :inline :offset-assert 80)
(dest-offset vector :inline :offset-assert 96)
(move-dir vector :inline :offset-assert 112)
(nav-collide-impulse vector :inline :offset-assert 128)
(nav-collide-impulse-len float :offset-assert 144)
(dest-speed float :offset-assert 148)
(local-dist float :offset-assert 152)
(speed float :offset-assert 156)
(max-los-speed float :offset-assert 160)
(target-speed float :offset-assert 164)
(target-acceleration float :offset-assert 168)
(speed-dest float :offset-assert 172)
(path-info hover-nav-path-info :inline :offset-assert 176)
(curr-dest-pt int32 :offset-assert 192)
(los-obstruction-distance float :offset-assert 196)
(los-last-clear-time time-frame :offset-assert 200)
(max-speed-multiplier float :offset-assert 208)
(max-acceleration-multiplier float :offset-assert 212)
)
:method-count-assert 32
:size-assert #xd8
:flag-assert #x20000000d8
(:methods
(hover-nav-control-method-9 (_type_) none 9)
(hover-nav-control-method-10 (_type_) none 10)
(hover-nav-control-method-11 (_type_) none 11)
(hover-nav-control-method-12 (_type_) none 12)
(hover-nav-control-method-13 (_type_) none 13)
(hover-nav-control-method-14 (_type_ float float) none 14)
(hover-nav-control-method-15 (_type_) none 15)
(hover-nav-control-method-16 (_type_) none 16)
(hover-nav-control-method-17 (_type_) none 17)
(hover-nav-control-method-18 (_type_) none 18)
(hover-nav-control-method-19 (_type_) none 19)
(hover-nav-control-method-20 (_type_) none 20)
(hover-nav-control-method-21 (_type_) none 21)
(hover-nav-control-method-22 (_type_) hover-nav-path-segment 22)
(hover-nav-control-method-23 (_type_) object 23)
(hover-nav-control-method-24 (_type_) none 24)
(hover-nav-control-method-25 (_type_) none 25)
(hover-nav-control-method-26 (_type_) none 26)
(hover-nav-control-method-27 (_type_) none 27)
(hover-nav-control-method-28 (_type_) none 28)
(hover-nav-control-method-29 (_type_) none 29)
(hover-nav-control-method-30 (_type_) float 30)
(hover-nav-control-method-31 (_type_) float 31)
)
)
;; definition for method 3 of type hover-nav-control
(defmethod inspect hover-nav-control ((obj hover-nav-control))
(when (not obj)
(set! obj obj)
(goto cfg-4)
)
(format #t "[~8x] ~A~%" obj (-> obj type))
(format #t "~1Troot: ~A~%" (-> obj root))
(format #t "~1Tnav: ~A~%" (-> obj nav))
(format #t "~1Tflags: ~D~%" (-> obj flags))
(format #t "~1Tparams: #<hover-nav-params @ #x~X>~%" (-> obj params))
(format #t "~1Tpath-timer: ~D~%" (-> obj path-timer))
(format #t "~1Ttransvv: #<vector @ #x~X>~%" (-> obj transvv))
(format #t "~1Tdest-pos: #<vector @ #x~X>~%" (-> obj dest-pos))
(format #t "~1Tdest-vel: #<vector @ #x~X>~%" (-> obj dest-vel))
(format #t "~1Tdest-move-dir: #<vector @ #x~X>~%" (-> obj dest-move-dir))
(format #t "~1Tdest-offset: #<vector @ #x~X>~%" (-> obj dest-offset))
(format #t "~1Tmove-dir: #<vector @ #x~X>~%" (-> obj move-dir))
(format #t "~1Tnav-collide-impulse: #<vector @ #x~X>~%" (-> obj nav-collide-impulse))
(format #t "~1Tnav-collide-impulse-len: ~f~%" (-> obj nav-collide-impulse-len))
(format #t "~1Tdest-speed: ~f~%" (-> obj dest-speed))
(format #t "~1Tlocal-dist: ~f~%" (-> obj local-dist))
(format #t "~1Tspeed: ~f~%" (-> obj speed))
(format #t "~1Tmax-los-speed: ~f~%" (-> obj max-los-speed))
(format #t "~1Ttarget-speed: ~f~%" (-> obj target-speed))
(format #t "~1Ttarget-acceleration: ~f~%" (-> obj target-acceleration))
(format #t "~1Tspeed-dest: ~f~%" (-> obj speed-dest))
(format #t "~1Tpath-info: #<hover-nav-path-info @ #x~X>~%" (-> obj path-info))
(format #t "~1Tcurr-dest-pt: ~D~%" (-> obj curr-dest-pt))
(format #t "~1Tlos-obstruction-distance: ~f~%" (-> obj los-obstruction-distance))
(format #t "~1Tlos-last-clear-time: ~D~%" (-> obj los-last-clear-time))
(format #t "~1Tmax-speed-multiplier: ~f~%" (-> obj max-speed-multiplier))
(format #t "~1Tmax-acceleration-multiplier: ~f~%" (-> obj max-acceleration-multiplier))
(label cfg-4)
obj
)
;; definition for symbol *hover-nav-time-offset*, type int
(define *hover-nav-time-offset* 0)
;; failed to figure out what this is:
0
File diff suppressed because it is too large Load Diff
+1 -5
View File
@@ -941,7 +941,7 @@
(vector-normalize! s3-2 f28-1)
(vector+! s3-2 s3-2 s4-2)
)
(nav-state-method-41 (-> obj nav state) s3-2)
(clamp-vector-to-mesh-cross-gaps (-> obj nav state) s3-2)
(vector+! s2-0 s5-1 s3-2)
(set! (-> obj target-pos quad) (-> s2-0 quad))
)
@@ -1509,7 +1509,3 @@
)
(none)
)
File diff suppressed because it is too large Load Diff
+5 -1
View File
@@ -258,7 +258,11 @@
"target-board-handler", // very strange control flow
"(method 11 memory-usage-block)", "vis-cull", "vis-cull-debug", "dma-add-process-drawable",
"foreground-engine-execute",
"test-closest-pt-in-triangle", "on"
"test-closest-pt-in-triangle", "on",
"(method 42 nav-mesh)",
"(method 43 nav-mesh)",
"(method 34 nav-mesh)",
"(method 18 nav-control)"
],
"skip_compile_states": {