d/jak2: finish glist | glist-h | camera | cam-interface | cam-states-dbg | cam-combiner | cam-debug | cam-start (#1829)

* d/jak2: finish `glist` and `glist-h` partially done `time-of-day`

* d/jak2: finish `camera` and `cam-interface`

* d/jak2: partially finish `cam-master` `cam-states`, and `cam-update` finish `cam-states-dbg` `cam-combiner` `cam-debug` and `cam-start`

* tests: update ref tests

* scripts: add scripts to automatically update gsrc files

* d/jak2: update gsrc
This commit is contained in:
Tyler Wilding
2022-08-31 19:22:47 -04:00
committed by GitHub
parent 0d16a52854
commit d264779173
73 changed files with 22953 additions and 1568 deletions
+22 -54
View File
@@ -168,6 +168,21 @@
)
)
(defmacro process-spawn (proc-type &key (init #f) &key (from *default-dead-pool*) &key (to *default-pool*) &key (name #f) &key (stack-size #x4000) &key (stack *scratch-memory-top*) &rest args)
"Start a new process and run an init function on it.
Returns a pointer to the new process, or #f (or is it 0?) if something goes wrong."
(with-gensyms (new-proc)
`(let ((,new-proc (the-as ,proc-type (get-process ,from ,proc-type ,stack-size))))
(when ,new-proc
((method-of-type ,proc-type activate) ,new-proc ,to ,(if name name `(quote ,proc-type)) ,stack)
(run-now-in-process ,new-proc ,(if init init (string->symbol (fmt #f "{}-init-by-other" proc-type))) ,@args)
(the (pointer ,proc-type) (-> ,new-proc ppointer))
)
)
)
)
(defmacro b! (pred destination &key (delay '()) &key (likely-delay '()))
"Branch!"
@@ -727,59 +742,6 @@
(argf 0.0)
(setting (cadr s)))
(cond
; ((or (eq? setting 'border-mode)
; (eq? setting 'allow-look-around)
; (eq? setting 'ocean-off)
; (eq? setting 'music)
; (eq? setting 'vibration)
; (eq? setting 'auto-save)
; (eq? setting 'allow-pause)
; (eq? setting 'allow-progress)
; (eq? setting 'play-hints)
; (eq? setting 'movie)
; (eq? setting 'talking)
; (eq? setting 'spooling)
; (eq? setting 'hint)
; (eq? setting 'ambient)
; )
; (set! argb (car args))
; )
; ((or (eq? setting 'bg-r)
; (eq? setting 'bg-g)
; (eq? setting 'bg-b)
; (eq? setting 'bg-a)
; (eq? setting 'bg-a-speed)
; (eq? setting 'bg-a-force)
; )
; (set! argf (car args))
; )
; ((or (eq? setting 'language)
; )
; (set! argi (car args))
; )
; ((or (eq? setting 'sound-flava)
; )
; (set! argi (car args))
; (set! argf (cadr args))
; )
; ((or (eq? setting 'process-mask)
; (eq? setting 'common-page)
; )
; (set! argb (car args))
; (set! argi (cadr args))
; )
; ((or (eq? setting 'sfx-volume)
; (eq? setting 'music-volume)
; (eq? setting 'ambient-volume)
; (eq? setting 'dialog-volume)
; (eq? setting 'sfx-volume-movie)
; (eq? setting 'music-volume-movie)
; (eq? setting 'ambient-volume-movie)
; (eq? setting 'dialog-volume-hint)
; )
; (set! argb (car args))
; (set! argf (cadr args))
; )
(#t
(set! argb (car args))
(set! argf (cadr args))
@@ -790,11 +752,17 @@
)
)
(defmacro add-setting! (s &rest args)
`(setting-control-func! add-setting ,s ,@args)
)
(defmacro set-setting! (s &rest args)
`(setting-control-func! set-setting ,s ,@args)
)
(defmacro remove-setting! (s)
`(remove-setting *setting-control* (with-pp pp) ,s)
)
(defmacro get-art-by-name (obj name type)
"Helper macro for casting the result of get-art-by-name-method. Generated by decompiler."
`(the-as ,type (get-art-by-name-method ,obj ,name ,type))
)
)
+4 -4
View File
@@ -129,7 +129,7 @@
;; definition of type try-to-look-at-info
(deftype try-to-look-at-info (basic)
((who uint64 :offset-assert 8)
((who handle :offset-assert 8)
(horz float :offset-assert 16)
(vert float :offset-assert 20)
)
@@ -682,9 +682,9 @@
(matrix*! s2-0 s0-0 (-> arg0 parent bone transform))
(set-vector!
s1-0
(vector-length (the-as vector (-> s2-0 data)))
(vector-length (the-as vector (&-> s2-0 data 4)))
(vector-length (the-as vector (&-> s2-0 data 8)))
(vector-length (the-as vector (-> s2-0 vector)))
(vector-length (-> s2-0 vector 1))
(vector-length (-> s2-0 vector 2))
1.0
)
(let ((v1-19 (-> gp-0 blend-transform scale)))
+3 -3
View File
@@ -1192,9 +1192,9 @@
(set! (-> gp-0 vector 2 quad) a1-1)
(set! (-> gp-0 trans quad) a2-1)
)
(vector-normalize! (the-as vector (-> gp-0 data)) 1.0)
(vector-normalize! (the-as vector (&-> gp-0 data 4)) 1.0)
(vector-normalize! (the-as vector (&-> gp-0 data 8)) 1.0)
(vector-normalize! (the-as vector (-> gp-0 vector)) 1.0)
(vector-normalize! (-> gp-0 vector 1) 1.0)
(vector-normalize! (-> gp-0 vector 2) 1.0)
gp-0
)
)
+477
View File
@@ -0,0 +1,477 @@
;;-*-Lisp-*-
(in-package goal)
;; definition for function cam-helper-temp
;; INFO: Used lq/sq
(defbehavior cam-helper-temp camera-combiner ((arg0 (pointer camera-slave)) (arg1 (pointer camera-slave)) (arg2 float))
(local-vars (sv-144 cam-rotation-tracker))
(set! sv-144 (-> arg0 0 tracking))
(let ((s1-0 (-> arg0 0 trans))
(gp-0 (-> arg1 0 tracking))
(s0-0 (-> arg1 0 trans))
)
(cond
((= (-> self tracking-status) 3)
(cam-calc-follow! (-> self tracking) s1-0 #t)
(slave-set-rotation! (-> self tracking) s1-0 (the-as float (-> self tracking-options)) (-> self fov) #t)
(set! sv-144 (-> self tracking))
(set! s1-0 (-> self trans))
)
((= (-> self tracking-status) 2)
(cam-calc-follow! (-> self tracking) s0-0 #t)
(slave-set-rotation! (-> self tracking) s0-0 (the-as float (-> self tracking-options)) (-> self fov) #t)
(set! gp-0 (-> self tracking))
(set! s0-0 (-> self trans))
)
)
(let ((s2-0 (new 'stack-no-clear 'matrix)))
(dotimes (v1-14 3)
(set! (-> s2-0 vector v1-14 quad) (the-as uint128 0))
)
0.0
0.0
0.0
(let ((s4-0 (new-stack-vector0)))
0.0
(let ((s3-0 (new-stack-matrix0)))
(vector-!
(the-as vector (-> s2-0 vector))
(the-as vector (-> sv-144 inv-mat))
(the-as vector (-> gp-0 inv-mat))
)
(vector-! (-> s2-0 vector 1) (-> sv-144 inv-mat vector 1) (-> gp-0 inv-mat vector 1))
(vector-! (-> s2-0 vector 2) (-> sv-144 inv-mat vector 2) (-> gp-0 inv-mat vector 2))
(let ((f0-6 (vector-length (the-as vector (-> s2-0 vector))))
(f1-0 (vector-length (-> s2-0 vector 1)))
(f2-0 (vector-length (-> s2-0 vector 2)))
)
(cond
((and (< f0-6 f1-0) (< f0-6 f2-0))
(vector-cross! s4-0 (-> s2-0 vector 1) (-> s2-0 vector 2))
)
((and (< f1-0 f0-6) (< f1-0 f2-0))
(vector-cross! s4-0 (the-as vector (-> s2-0 vector)) (-> s2-0 vector 2))
)
(else
(vector-cross! s4-0 (the-as vector (-> s2-0 vector)) (-> s2-0 vector 1))
)
)
)
(vector-normalize! s4-0 1.0)
(let ((f0-9 (fabs (vector-dot (the-as vector (-> sv-144 inv-mat)) s4-0)))
(f1-3 (fabs (vector-dot (-> sv-144 inv-mat vector 1) s4-0)))
(f2-3 (fabs (vector-dot (-> sv-144 inv-mat vector 2) s4-0)))
)
(cond
((and (< f0-9 f1-3) (< f0-9 f2-3))
(vector-flatten! (the-as vector (-> s2-0 vector)) (the-as vector (-> sv-144 inv-mat)) s4-0)
(vector-flatten! (-> s2-0 vector 1) (the-as vector (-> gp-0 inv-mat)) s4-0)
)
((< f1-3 f2-3)
(vector-flatten! (the-as vector (-> s2-0 vector)) (-> sv-144 inv-mat vector 1) s4-0)
(vector-flatten! (-> s2-0 vector 1) (-> gp-0 inv-mat vector 1) s4-0)
)
(else
(vector-flatten! (the-as vector (-> s2-0 vector)) (-> sv-144 inv-mat vector 2) s4-0)
(vector-flatten! (-> s2-0 vector 1) (-> gp-0 inv-mat vector 2) s4-0)
)
)
)
(vector-normalize! (the-as vector (-> s2-0 vector)) 1.0)
(vector-normalize! (-> s2-0 vector 1) 1.0)
(vector-cross! (-> s2-0 vector 2) (the-as vector (-> s2-0 vector)) (-> s2-0 vector 1))
(if (< (vector-dot (-> s2-0 vector 2) s4-0) 0.0)
(vector-negate! s4-0 s4-0)
)
(let ((f30-0 (acos (vector-dot (the-as vector (-> s2-0 vector)) (-> s2-0 vector 1)))))
(cond
((logtest? (-> *camera* master-options) 2)
(set! (-> *camera* master-options) (logand -7 (-> *camera* master-options)))
(when (and (< 8192.0 f30-0) (logtest? (-> *camera* master-options) 1))
(vector-! (the-as vector (-> s2-0 vector)) (-> *camera* tpos-curr) s1-0)
(vector-! (-> s2-0 vector 1) s0-0 s1-0)
(vector-flatten! (the-as vector (-> s2-0 vector)) (the-as vector (-> s2-0 vector)) (-> *camera* local-down))
(vector-flatten! (-> s2-0 vector 1) (-> s2-0 vector 1) (-> *camera* local-down))
(when (and (< 4096.0 (vector-normalize-ret-len! (the-as vector (-> s2-0 vector)) 1.0))
(< 4096.0 (vector-normalize-ret-len! (-> s2-0 vector 1) 1.0))
)
(vector-cross! (-> s2-0 vector 2) (-> s2-0 vector 1) (the-as vector (-> s2-0 vector)))
(when (< (vector-dot (-> s2-0 vector 2) s4-0) -0.01)
)
)
)
)
((and (< 16384.0 f30-0) (< (vector-dot (-> self flip-control-axis) s4-0) 0.0))
(logxor! (-> *camera* master-options) 4)
)
)
(set! (-> self flip-control-axis quad) (-> s4-0 quad))
(when (logtest? (-> *camera* master-options) 4)
(set! f30-0 (- 65536.0 f30-0))
(vector-negate! s4-0 s4-0)
)
(let ((f30-1 (* f30-0 (- 1.0 arg2))))
(matrix-axis-sin-cos! s3-0 s4-0 (sin f30-1) (cos f30-1))
)
)
(matrix*! (-> self inv-camera-rot) (the-as matrix gp-0) s3-0)
)
)
)
)
)
;; failed to figure out what this is:
(defstate cam-combiner-active (camera-combiner)
:event (behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block))
(local-vars (v0-0 none))
(let ((v1-0 arg2))
(the-as
object
(cond
((= v1-0 'fast-rot)
(set! v0-0 (the-as none #t))
(set! (-> self fast-rot) (the-as basic v0-0))
v0-0
)
((= v1-0 'set-interpolation)
(let ((f0-1 (the float (-> arg3 param 0))))
(cond
((>= 0.0 f0-1)
(let ((f0-2 1.0))
(set! (-> self interp-val) f0-2)
f0-2
)
)
(else
(set! (-> self interp-val) 0.0)
(let ((f0-3 (/ 5.0 f0-1)))
(set! (-> self interp-step) f0-3)
f0-3
)
)
)
)
)
((= v1-0 'teleport)
(when (nonzero? (-> self tracking-status))
(jump-to-target! (-> self tracking point-of-interest-blend) 0.0)
(cam-calc-follow! (-> self tracking) (-> self trans) #f)
(slave-set-rotation!
(-> self tracking)
(-> self trans)
(the-as float (-> self tracking-options))
(-> self fov)
#f
)
)
)
((= v1-0 'stop-tracking)
(set! (-> self tracking-status) (the-as uint 0))
0
)
((= v1-0 'start-tracking)
(cond
((< arg1 1)
(let ((t9-3 format)
(a0-14 0)
(a1-4 "ERROR <GMJ>: missing camera-slave parameter to *camera-combiner* start-tracking~%")
)
(let ((v1-8 (-> arg3 param 0)))
(rtype-of v1-8)
)
(t9-3 a0-14 a1-4)
)
)
((not (type? (-> arg3 param 0) camera-slave))
(let ((t9-5 format)
(a0-16 0)
(a1-6 "ERROR <GMJ>: invalid type '~A' to *camera-combiner* start-tracking~%")
(v1-11 (-> arg3 param 0))
)
(t9-5 a0-16 a1-6 (rtype-of v1-11))
)
)
((zero? (-> self tracking-status))
(set! (-> self tracking-status) (the-as uint 1))
(let ((gp-1 (the-as camera-slave (-> arg3 param 0))))
(set! (-> self tracking-options) (the-as int (-> gp-1 options)))
(set! (-> self tracking no-follow) (-> gp-1 tracking no-follow))
(copy-to (-> self tracking tilt-adjust) (-> gp-1 tracking tilt-adjust))
(copy-to (-> self tracking underwater-blend) (-> gp-1 tracking underwater-blend))
(copy-to (-> self tracking point-of-interest-blend) (-> gp-1 tracking point-of-interest-blend))
(let ((gp-2 (-> gp-1 trans)))
(cam-calc-follow! (-> self tracking) gp-2 #f)
(slave-set-rotation! (-> self tracking) gp-2 (the-as float (-> self tracking-options)) (-> self fov) #f)
)
)
)
)
)
((= v1-0 'copy-tracking)
(cond
((< arg1 1)
(let ((t9-11 format)
(a0-23 0)
(a1-12 "ERROR <GMJ>: missing camera-slave parameter to *camera-combiner* copy-tracking~%")
)
(let ((v1-23 (-> arg3 param 0)))
(rtype-of v1-23)
)
(t9-11 a0-23 a1-12)
)
)
((not (type? (-> arg3 param 0) camera-slave))
(let ((t9-13 format)
(a0-25 0)
(a1-14 "ERROR <GMJ>: invalid type '~A' to *camera-combiner* copy-tracking~%")
(v1-25 (-> arg3 param 0))
)
(t9-13 a0-25 a1-14 (rtype-of v1-25))
)
)
((nonzero? (-> self tracking-status))
#f
)
(else
(set! (-> self tracking-status) (the-as uint 1))
(let ((gp-3 (the-as camera-slave (-> arg3 param 0))))
(set! (-> self tracking-options) (the-as int (-> gp-3 options)))
(set! (-> self tracking no-follow) (-> gp-3 tracking no-follow))
(copy-to (-> self tracking tilt-adjust) (-> gp-3 tracking tilt-adjust))
(copy-to (-> self tracking underwater-blend) (-> gp-3 tracking underwater-blend))
(set! (-> self tracking follow-off quad) (-> gp-3 tracking follow-off quad))
(set! (-> self tracking follow-pt quad) (-> gp-3 tracking follow-pt quad))
(let* ((a2-23 (-> self tracking))
(a3-7 (-> gp-3 tracking))
(v1-37 (-> a3-7 inv-mat vector 0 quad))
(a0-32 (-> a3-7 inv-mat vector 1 quad))
(a1-17 (-> a3-7 inv-mat vector 2 quad))
(a3-8 (-> a3-7 inv-mat trans quad))
)
(set! (-> a2-23 inv-mat vector 0 quad) v1-37)
(set! (-> a2-23 inv-mat vector 1 quad) a0-32)
(set! (-> a2-23 inv-mat vector 2 quad) a1-17)
(set! (-> a2-23 inv-mat trans quad) a3-8)
)
(copy-to (-> self tracking point-of-interest-blend) (-> gp-3 tracking point-of-interest-blend))
(set! (-> self tracking looking-at quad) (-> gp-3 tracking looking-at quad))
(set! v0-0 (the-as none (-> self tracking looking-interesting)))
(set! (-> (the-as vector v0-0) quad) (-> gp-3 tracking looking-interesting quad))
)
v0-0
)
)
)
)
)
)
)
:code (behavior ()
(until #f
(when *debug-segment*
(let ((gp-0 (-> *display* frames (-> *display* on-screen) profile-array data 0))
(v1-7 'camera)
(s5-0 *profile-camera-color*)
)
(when (and *dproc* *debug-segment*)
(let ((s4-0 (-> gp-0 data (-> gp-0 count))))
(let ((s3-0 (-> gp-0 base-time)))
(set! (-> s4-0 name) v1-7)
(set! (-> s4-0 start-time) (the-as int (- (timer-count (the-as timer-bank #x10000800)) (the-as uint s3-0))))
)
(set! (-> s4-0 depth) (the-as uint (-> gp-0 depth)))
(set! (-> s4-0 color) s5-0)
(set! (-> gp-0 segment (-> gp-0 depth)) s4-0)
)
(+! (-> gp-0 count) 1)
(+! (-> gp-0 depth) 1)
(set! (-> gp-0 max-depth) (max (-> gp-0 max-depth) (-> gp-0 depth)))
)
)
0
)
(when (and (zero? (logand (-> *camera* master-options) 1)) (!= (-> self tracking-status) 0))
(set! (-> self tracking-status) (the-as uint 0))
0
)
(when *camera*
(let ((s5-1 (-> *camera* slave))
(s4-1 (-> *camera* decel))
(f30-0 (parameter-ease-sin-clamp (-> self interp-val)))
(gp-1 (new-stack-vector0))
)
(set! (-> gp-1 quad) (-> self trans quad))
(when s5-1
(cond
((< (-> self interp-val) 1.0)
(vector-lerp-clamp! (-> self trans) (-> s4-1 0 trans) (-> s5-1 0 trans) f30-0)
(set! (-> self fov) (lerp-clamp (-> s4-1 0 fov) (-> s5-1 0 fov) f30-0))
(set! (-> self dist-from-src) (vector-vector-distance (-> self trans) (-> s4-1 0 trans)))
(set! (-> self dist-from-dest) (vector-vector-distance (-> self trans) (-> s5-1 0 trans)))
(cond
((= (-> self tracking-status) 1)
(cam-calc-follow! (-> self tracking) (-> self trans) #t)
(slave-set-rotation!
(-> self tracking)
(-> self trans)
(the-as float (-> self tracking-options))
(-> self fov)
(not (-> self fast-rot))
)
(let* ((a2-4 (-> self inv-camera-rot))
(a3-2 (-> self tracking))
(v1-42 (-> a3-2 inv-mat vector 0 quad))
(a0-18 (-> a3-2 inv-mat vector 1 quad))
(a1-8 (-> a3-2 inv-mat vector 2 quad))
(a3-3 (-> a3-2 inv-mat trans quad))
)
(set! (-> a2-4 vector 0 quad) v1-42)
(set! (-> a2-4 vector 1 quad) a0-18)
(set! (-> a2-4 vector 2 quad) a1-8)
(set! (-> a2-4 trans quad) a3-3)
)
)
(else
(cam-helper-temp s4-1 s5-1 f30-0)
)
)
(cond
((and (< 0.0 (-> *camera* outro-t-step)) (< (-> *camera* outro-t) (-> *camera* outro-exit-value)))
)
((and (< (-> *camera* outro-t-step) 0.0) (< (-> *camera* outro-exit-value) (-> *camera* outro-t)))
)
((paused?)
)
(else
(+! (-> self interp-val) (* (-> self interp-step) (-> self clock time-adjust-ratio)))
)
)
)
(else
(set! (-> self dist-from-src) 409600.0)
(set! (-> self dist-from-dest) 0.0)
(set! (-> self trans quad) (-> s5-1 0 trans quad))
(set! (-> self fov) (-> s5-1 0 fov))
(cond
((= (-> self tracking-status) 2)
(set! (-> self tracking-status) (the-as uint 1))
)
((= (-> self tracking-status) 3)
(set! (-> self tracking-status) (the-as uint 0))
0
)
)
(cond
((= (-> self tracking-status) 1)
(cam-calc-follow! (-> self tracking) (-> self trans) #t)
(slave-set-rotation!
(-> self tracking)
(-> self trans)
(the-as float (-> self tracking-options))
(-> self fov)
(not (-> self fast-rot))
)
(let* ((v1-71 (-> self inv-camera-rot))
(a3-5 (-> self tracking))
(a0-25 (-> a3-5 inv-mat vector 0 quad))
(a1-12 (-> a3-5 inv-mat vector 1 quad))
(a2-8 (-> a3-5 inv-mat vector 2 quad))
(a3-6 (-> a3-5 inv-mat trans quad))
)
(set! (-> v1-71 vector 0 quad) a0-25)
(set! (-> v1-71 vector 1 quad) a1-12)
(set! (-> v1-71 vector 2 quad) a2-8)
(set! (-> v1-71 trans quad) a3-6)
)
)
(else
(let* ((v1-72 (-> self inv-camera-rot))
(a3-7 (-> s5-1 0 tracking))
(a0-27 (-> a3-7 inv-mat vector 0 quad))
(a1-13 (-> a3-7 inv-mat vector 1 quad))
(a2-9 (-> a3-7 inv-mat vector 2 quad))
(a3-8 (-> a3-7 inv-mat trans quad))
)
(set! (-> v1-72 vector 0 quad) a0-27)
(set! (-> v1-72 vector 1 quad) a1-13)
(set! (-> v1-72 vector 2 quad) a2-9)
(set! (-> v1-72 trans quad) a3-8)
)
)
)
)
)
)
(vector-! (-> self velocity) (-> self trans) gp-1)
)
)
(when *debug-segment*
(let ((gp-2 (-> *display* frames (-> *display* on-screen) profile-array data 0)))
(when (and *dproc* *debug-segment*)
(let* ((v1-85 (+ (-> gp-2 depth) -1))
(s5-2 (-> gp-2 segment v1-85))
(s4-2 (-> gp-2 base-time))
)
(when (>= v1-85 0)
(set! (-> s5-2 end-time) (the-as int (- (timer-count (the-as timer-bank #x10000800)) (the-as uint s4-2))))
(+! (-> gp-2 depth) -1)
)
)
)
)
0
)
(set! (-> self fast-rot) #f)
(suspend)
)
#f
(none)
)
)
;; definition for function cam-combiner-init
;; INFO: Used lq/sq
;; INFO: Return type mismatch int vs none.
(defbehavior cam-combiner-init camera-combiner ()
(stack-size-set! (-> self main-thread) 512)
(vector-reset! (-> self trans))
(matrix-identity! (-> self inv-camera-rot))
(cond
(*math-camera*
(set! (-> self fov) (-> *math-camera* fov))
(set! (-> self trans quad) (-> *math-camera* trans quad))
(let* ((v1-6 (-> self inv-camera-rot))
(a3-0 (-> *math-camera* inv-camera-rot))
(a0-6 (-> a3-0 vector 0 quad))
(a1-1 (-> a3-0 vector 1 quad))
(a2-0 (-> a3-0 vector 2 quad))
(a3-1 (-> a3-0 trans quad))
)
(set! (-> v1-6 vector 0 quad) a0-6)
(set! (-> v1-6 vector 1 quad) a1-1)
(set! (-> v1-6 vector 2 quad) a2-0)
(set! (-> v1-6 trans quad) a3-1)
)
)
(else
(set! (-> self fov) 11650.845)
)
)
(set! (-> self interp-val) 1.0)
(set! (-> self interp-step) 0.125)
(set! (-> self tracking-status) (the-as uint 0))
(set! (-> self fast-rot) #f)
(init (-> self tracking tilt-adjust) (-> *CAMERA-bank* default-tilt-adjust) 9.102222 91.022224 0.25)
(init
(-> self tracking follow-height-extra)
(-> *setting-control* cam-current extra-follow-height)
81.92
819.2
0.5
)
(vector-reset! (-> self velocity))
(go cam-combiner-active)
0
(none)
)
File diff suppressed because it is too large Load Diff
+125
View File
@@ -0,0 +1,125 @@
;;-*-Lisp-*-
(in-package goal)
;; definition for function position-in-front-of-camera!
(defun position-in-front-of-camera! ((arg0 vector) (arg1 float) (arg2 float))
(rlet ((acc :class vf)
(vf0 :class vf)
(vf1 :class vf)
(vf2 :class vf)
(vf3 :class vf)
(vf4 :class vf)
)
(init-vf0-vector)
(vector-float*! arg0 (-> *math-camera* inv-camera-rot vector 2) arg1)
(let ((v1-2 arg0))
(let ((a1-1 arg0)
(a3-3 (-> *math-camera* inv-camera-rot vector 1))
(f0-1 arg2)
)
(.lvf vf2 (&-> a3-3 quad))
(.lvf vf1 (&-> a1-1 quad))
(let ((a1-2 f0-1))
(.mov vf3 a1-2)
)
)
(.add.x.vf vf4 vf0 vf0 :mask #b1000)
(.mul.x.vf acc vf2 vf3)
(.add.mul.w.vf vf4 vf1 vf0 acc :mask #b111)
(.svf (&-> v1-2 quad) vf4)
)
(vector+! arg0 arg0 (-> *math-camera* trans))
arg0
)
)
;; definition for function position-in-front-of-screen!
(defun position-in-front-of-screen! ((arg0 vector) (arg1 float) (arg2 vector))
(let ((a2-1 (vector-negate! (new 'stack-no-clear 'vector) (-> *math-camera* inv-camera-rot vector 2)))
(a1-3 (vector-float*! (new 'stack-no-clear 'vector) (-> *math-camera* inv-camera-rot vector 2) arg1))
)
(vector+! (the-as vector a1-3) (the-as vector a1-3) (-> *math-camera* trans))
(reverse-transform-point! arg0 (the-as vector a1-3) a2-1 arg2)
)
arg0
)
;; definition for function matrix-local->world
(defun matrix-local->world ((smooth? symbol))
"Returns [[*math-camera*]]'s `inv-camera-rot-smooth` if `smooth?` is true, else return `inv-camera-rot`"
(if smooth?
(-> *math-camera* inv-camera-rot-smooth)
(-> *math-camera* inv-camera-rot)
)
)
;; definition for function matrix-world->local
(defun matrix-world->local ()
"Returns [[*math-camera*]]'s `camera-rot`"
(-> *math-camera* camera-rot)
)
;; definition (perm) for symbol *camera-dummy-vector*, type vector
(define-perm *camera-dummy-vector* vector (vector-reset! (new 'global 'vector)))
;; definition for function camera-pos
(defun camera-pos ()
"Returns the `trans` vector from whatever is first determined to exist:
- [[*camera-combiner*]]
- [[*math-camera*]]
- else, [[*camera-dummy-vector*]]"
(cond
(*camera-combiner*
(-> *camera-combiner* trans)
)
(*math-camera*
(-> *math-camera* trans)
)
(else
*camera-dummy-vector*
)
)
)
;; definition for function math-camera-pos
(defun math-camera-pos ()
"Returns [[*math-camera*]]'s `trans`"
(-> *math-camera* trans)
)
;; definition for function camera-matrix
(defun camera-matrix ()
"If [[*camera-combiner*]] exists, return it's `inv-camera-rot`. Else, return [[*math-camera*]]'s"
(if *camera-combiner*
(-> *camera-combiner* inv-camera-rot)
(-> *math-camera* inv-camera-rot)
)
)
;; definition for function math-camera-matrix
(defun math-camera-matrix ()
"Returns [[*math-camera*]]'s `inv-camera-rot`"
(-> *math-camera* inv-camera-rot)
)
;; definition for function camera-angle
(defun camera-angle ()
(let ((f0-0 (-> *math-camera* camera-rot vector 0 x))
(f1-0 (-> *math-camera* camera-rot vector 0 z))
)
(atan f1-0 f0-0)
)
)
;; definition for function camera-teleport-to-entity
;; INFO: Used lq/sq
;; INFO: Return type mismatch object vs none.
(defbehavior camera-teleport-to-entity process ((arg0 entity-actor))
(let ((gp-0 (new 'stack 'transformq)))
(set! (-> gp-0 trans quad) (-> arg0 extra trans quad))
(quaternion-copy! (-> gp-0 quat) (-> arg0 quat))
(vector-identity! (-> gp-0 scale))
(send-event *camera* 'teleport-to-transformq gp-0)
)
(none)
)
+51
View File
@@ -0,0 +1,51 @@
;;-*-Lisp-*-
(in-package goal)
;; definition for function cam-stop
(defun cam-stop ()
(kill-by-name "camera-master" *active-pool*)
(kill-by-name "camera-slave" *active-pool*)
(kill-by-name "camera-combiner" *active-pool*)
(set! *camera* #f)
(set! *camera-combiner* #f)
#f
)
;; definition for function cam-start
;; INFO: Return type mismatch int vs none.
(defun cam-start ((arg0 symbol))
(cam-stop)
(set! *camera-combiner*
(the-as camera-combiner (ppointer->process (process-spawn
camera-combiner
:init cam-combiner-init
:name (symbol->string (-> camera-combiner symbol))
:from *camera-dead-pool*
:to *camera-pool*
)
)
)
)
(set! *camera* (the-as camera-master (ppointer->process (process-spawn
camera-master
:init cam-master-init
:name (symbol->string (-> camera-master symbol))
:from *camera-master-dead-pool*
:to *camera-pool*
)
)
)
)
(if arg0
(reset-cameras)
)
0
(none)
)
;; failed to figure out what this is:
(cam-start #f)
+532
View File
@@ -0,0 +1,532 @@
;;-*-Lisp-*-
(in-package goal)
;; definition of type cam-point-watch-bank
(deftype cam-point-watch-bank (basic)
((speed float :offset-assert 4)
(rot-speed degrees :offset-assert 8)
)
:method-count-assert 9
:size-assert #xc
:flag-assert #x90000000c
)
;; definition for method 3 of type cam-point-watch-bank
(defmethod inspect cam-point-watch-bank ((obj cam-point-watch-bank))
(when (not obj)
(set! obj obj)
(goto cfg-4)
)
(format #t "[~8x] ~A~%" obj (-> obj type))
(format #t "~1Tspeed: ~f~%" (-> obj speed))
(format #t "~1Trot-speed: (deg ~r)~%" (-> obj rot-speed))
(label cfg-4)
obj
)
;; definition for symbol *CAM_POINT_WATCH-bank*, type cam-point-watch-bank
(define *CAM_POINT_WATCH-bank* (new 'static 'cam-point-watch-bank :speed 1600.0 :rot-speed (degrees 0.6)))
;; failed to figure out what this is:
(defstate cam-point-watch (camera-slave)
:event (behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block))
(let ((v1-0 arg2))
(the-as object (if (= v1-0 'teleport)
#f
(cam-standard-event-handler arg0 arg1 arg2 arg3)
)
)
)
)
:enter (behavior ()
(when (not (-> self enter-has-run))
(set! (-> self pivot-rad) 40960.0)
(set! (-> self blend-from-type) (the-as uint 1))
(set! (-> self blend-to-type) (camera-blend-to-type unknown-1))
)
(none)
)
:code (behavior ()
(until #f
(let ((s5-0 (new-stack-vector0))
(gp-0 (new-stack-vector0))
)
(when (zero? (logand (-> *camera* settings master-options) (cam-master-options IGNORE_ANALOG)))
(let ((f28-0 (analog-input (the-as int (-> *cpad-list* cpads 0 leftx)) 128.0 48.0 110.0 -1.0))
(f30-0 (analog-input (the-as int (-> *cpad-list* cpads 0 lefty)) 128.0 48.0 110.0 -1.0))
(f26-0 (analog-input (the-as int (-> *cpad-list* cpads 0 rightx)) 128.0 48.0 110.0 -1.0))
(f0-0 (analog-input (the-as int (-> *cpad-list* cpads 0 righty)) 128.0 48.0 110.0 -1.0))
)
(cond
((cpad-hold? (-> *CAMERA-bank* joypad) r2)
(set! (-> s5-0 y) (- (-> s5-0 y) (* 0.2 (-> *CAM_POINT_WATCH-bank* rot-speed) (- f26-0))))
(set! (-> s5-0 x) (- (-> s5-0 x) (* 0.2 (-> *CAM_POINT_WATCH-bank* rot-speed) (- f0-0))))
(+! (-> gp-0 x) (* 0.2 (-> *CAM_POINT_WATCH-bank* speed) f28-0))
(+! (-> gp-0 z) (* 0.2 (-> *CAM_POINT_WATCH-bank* speed) f30-0))
)
(else
(set! (-> s5-0 y) (- (-> s5-0 y) (* 2.0 (-> *CAM_POINT_WATCH-bank* rot-speed) (- f26-0))))
(set! (-> s5-0 x) (- (-> s5-0 x) (* 2.0 (-> *CAM_POINT_WATCH-bank* rot-speed) (- f0-0))))
(+! (-> gp-0 x) (* 2.0 (-> *CAM_POINT_WATCH-bank* speed) f28-0))
(+! (-> gp-0 z) (* 2.0 (-> *CAM_POINT_WATCH-bank* speed) f30-0))
)
)
)
(let ((s4-0 (new-stack-vector0)))
(let ((s3-0 (new-stack-matrix0)))
(matrix-axis-angle! s3-0 (the-as vector (-> self tracking)) (- (-> s5-0 x)))
(vector-matrix*! s4-0 (the-as vector (&-> self stack 112)) s3-0)
(matrix-axis-angle! s3-0 (-> *camera* local-down) (- (-> s5-0 y)))
(vector-matrix*! s4-0 s4-0 s3-0)
)
(forward-down->inv-matrix (the-as matrix (-> self tracking)) s4-0 (-> *camera* local-down))
)
(set! (-> self pivot-rad) (- (-> self pivot-rad) (-> gp-0 z)))
(if (< (-> self pivot-rad) 4096.0)
(set! (-> self pivot-rad) 4096.0)
)
(set-vector! gp-0 0.0 0.0 (- (-> self pivot-rad)) 1.0)
(vector-matrix*! (-> self trans) gp-0 (the-as matrix (-> self tracking)))
)
)
(suspend)
0
)
#f
(none)
)
)
;; definition of type cam-free-bank
(deftype cam-free-bank (basic)
((speed float :offset-assert 4)
(rot-speed degrees :offset-assert 8)
)
:method-count-assert 9
:size-assert #xc
:flag-assert #x90000000c
)
;; definition for method 3 of type cam-free-bank
(defmethod inspect cam-free-bank ((obj cam-free-bank))
(when (not obj)
(set! obj obj)
(goto cfg-4)
)
(format #t "[~8x] ~A~%" obj (-> obj type))
(format #t "~1Tspeed: ~f~%" (-> obj speed))
(format #t "~1Trot-speed: (deg ~r)~%" (-> obj rot-speed))
(label cfg-4)
obj
)
;; definition for symbol *CAM_FREE-bank*, type cam-free-bank
(define *CAM_FREE-bank* (new 'static 'cam-free-bank :speed 1600.0 :rot-speed (degrees 0.6)))
;; definition for function cam-mouse-input
(defun cam-mouse-input ((arg0 vector) (arg1 vector))
(let ((v1-0 (new 'stack-no-clear 'vector)))
(vector-! v1-0 (the-as vector (-> *mouse* pos)) (-> *mouse* pos 1))
(cond
((logtest? (-> *mouse* button0-abs 0) 1)
(let ((a0-7 (new 'stack-no-clear 'vector)))
0.0
(vector-! a0-7 (-> *math-camera* trans) (-> *setting-control* cam-current mouse-tumble-point))
(let ((f30-0 (vector-length a0-7)))
(cond
(#f
(let* ((f28-0 (* 0.01 f30-0 (-> v1-0 x)))
(f26-0 (* 0.01 f30-0 (-> v1-0 y)))
(f0-5 f28-0)
(f0-7 (* f0-5 f0-5))
(f1-2 f26-0)
(f0-8 (+ f0-7 (* f1-2 f1-2)))
(f1-5 f30-0)
(f22-0 (- (sqrtf (+ f0-8 (* f1-5 f1-5))) f30-0))
(f24-0 (atan f26-0 f30-0))
(f0-12 (atan (- f28-0) f30-0))
)
(+! (-> arg1 x) f28-0)
(+! (-> arg1 y) f26-0)
(+! (-> arg1 z) f22-0)
(+! (-> arg0 x) f24-0)
(let ((f0-13 (+ (-> arg0 y) f0-12)))
(set! (-> arg0 y) f0-13)
f0-13
)
)
)
(else
(+! (-> arg0 y) (* (- (-> v1-0 x)) (-> *CAM_FREE-bank* rot-speed)))
(let ((f0-17 (+ (-> arg0 x) (* (-> v1-0 y) (-> *CAM_FREE-bank* rot-speed)))))
(set! (-> arg0 x) f0-17)
f0-17
)
)
)
)
)
)
((logtest? (-> *mouse* button0-abs 0) 2)
(+! (-> arg1 x) (* (-> v1-0 x) (-> *CAM_FREE-bank* speed)))
(let ((f0-21 (+ (-> arg1 z) (* (-> v1-0 y) (-> *CAM_FREE-bank* speed)))))
(set! (-> arg1 z) f0-21)
f0-21
)
)
((logtest? (-> *mouse* button0-abs 0) 4)
(+! (-> arg1 x) (* (-> v1-0 x) (-> *CAM_FREE-bank* speed)))
(let ((f0-25 (+ (-> arg1 y) (* (-> v1-0 y) (-> *CAM_FREE-bank* speed)))))
(set! (-> arg1 y) f0-25)
f0-25
)
)
)
)
)
;; definition for function cam-free-floating-input
;; INFO: Return type mismatch uint vs vector.
(defun cam-free-floating-input ((arg0 vector) (arg1 vector) (arg2 symbol) (arg3 int))
(with-pp
(the-as
vector
(when *camera*
(if (-> *setting-control* cam-current mouse-input)
(cam-mouse-input arg0 arg1)
)
(let ((s3-0 (and (-> *setting-control* cam-current cpad1-skip-buttons) (= arg3 1))))
(when (not s3-0)
(when (and (!= *master-mode* 'menu) (not *cam-layout*))
(when (logtest? (-> *camera* settings master-options) (cam-master-options READ_BUTTONS))
(if (cpad-hold? arg3 x)
(set! (-> arg0 x)
(- (-> arg0 x) (+ (-> *CAM_FREE-bank* rot-speed) (analog-input
(the-as int (-> *cpad-list* cpads arg3 abutton 6))
0.0
32.0
230.0
(-> *CAM_FREE-bank* rot-speed)
)
)
)
)
)
)
(when (logtest? (-> *camera* settings master-options) (cam-master-options READ_BUTTONS))
(if (cpad-hold? arg3 triangle)
(+! (-> arg0 x) (+ (-> *CAM_FREE-bank* rot-speed) (analog-input
(the-as int (-> *cpad-list* cpads arg3 abutton 4))
0.0
32.0
230.0
(-> *CAM_FREE-bank* rot-speed)
)
)
)
)
)
(when (logtest? (-> *camera* settings master-options) (cam-master-options READ_BUTTONS))
(if (cpad-hold? arg3 square)
(+! (-> arg0 y) (+ (-> *CAM_FREE-bank* rot-speed) (analog-input
(the-as int (-> *cpad-list* cpads arg3 abutton 7))
0.0
32.0
230.0
(-> *CAM_FREE-bank* rot-speed)
)
)
)
)
)
(when (logtest? (-> *camera* settings master-options) (cam-master-options READ_BUTTONS))
(if (cpad-hold? arg3 circle)
(set! (-> arg0 y)
(- (-> arg0 y) (+ (-> *CAM_FREE-bank* rot-speed) (analog-input
(the-as int (-> *cpad-list* cpads arg3 abutton 5))
0.0
32.0
230.0
(-> *CAM_FREE-bank* rot-speed)
)
)
)
)
)
)
)
(when arg2
(when (logtest? (-> *camera* settings master-options) (cam-master-options READ_BUTTONS))
(if (cpad-hold? arg3 l2)
(+! (-> arg0 z) (+ (-> *CAM_FREE-bank* rot-speed) (analog-input
(the-as int (-> *cpad-list* cpads arg3 abutton 10))
0.0
32.0
230.0
(-> *CAM_FREE-bank* rot-speed)
)
)
)
)
)
(when (logtest? (-> *camera* settings master-options) (cam-master-options READ_BUTTONS))
(if (cpad-hold? arg3 r2)
(set! (-> arg0 z)
(- (-> arg0 z) (+ (-> *CAM_FREE-bank* rot-speed) (analog-input
(the-as int (-> *cpad-list* cpads arg3 abutton 11))
0.0
32.0
230.0
(-> *CAM_FREE-bank* rot-speed)
)
)
)
)
)
)
)
(when (nonzero? arg3)
(when (logtest? (-> *camera* settings master-options) (cam-master-options READ_BUTTONS))
(if (cpad-hold? arg3 left)
(+! (-> arg1 x)
(+ (-> *CAM_FREE-bank* speed)
(analog-input (the-as int (-> *cpad-list* cpads arg3 abutton 1)) 0.0 32.0 230.0 (-> *CAM_FREE-bank* speed))
)
)
)
)
(when (logtest? (-> *camera* settings master-options) (cam-master-options READ_BUTTONS))
(if (cpad-hold? arg3 right)
(set! (-> arg1 x)
(- (-> arg1 x)
(+ (-> *CAM_FREE-bank* speed)
(analog-input (the-as int (-> *cpad-list* cpads arg3 abutton 0)) 0.0 32.0 230.0 (-> *CAM_FREE-bank* speed))
)
)
)
)
)
(when (logtest? (-> *camera* settings master-options) (cam-master-options READ_BUTTONS))
(if (cpad-hold? arg3 up)
(+! (-> arg1 z)
(+ (-> *CAM_FREE-bank* speed)
(analog-input (the-as int (-> *cpad-list* cpads arg3 abutton 2)) 0.0 32.0 230.0 (-> *CAM_FREE-bank* speed))
)
)
)
)
(when (logtest? (-> *camera* settings master-options) (cam-master-options READ_BUTTONS))
(if (cpad-hold? arg3 down)
(set! (-> arg1 z)
(- (-> arg1 z)
(+ (-> *CAM_FREE-bank* speed)
(analog-input (the-as int (-> *cpad-list* cpads arg3 abutton 3)) 0.0 32.0 230.0 (-> *CAM_FREE-bank* speed))
)
)
)
)
)
)
)
(cond
((logtest? (-> *camera* settings master-options) (cam-master-options IGNORE_ANALOG))
)
((cpad-hold? arg3 r2)
(when (logtest? (-> *camera* settings master-options) (cam-master-options READ_BUTTONS))
(if (cpad-hold? arg3 r1)
(+! (-> arg1 y) (+ (* 0.2 (-> *CAM_FREE-bank* speed)) (analog-input
(the-as int (-> *cpad-list* cpads arg3 abutton 9))
0.0
32.0
230.0
(* 0.2 (-> *CAM_FREE-bank* speed))
)
)
)
)
)
(when (logtest? (-> *camera* settings master-options) (cam-master-options READ_BUTTONS))
(if (cpad-hold? arg3 l1)
(set! (-> arg1 y)
(- (-> arg1 y) (+ (* 0.2 (-> *CAM_FREE-bank* speed)) (analog-input
(the-as int (-> *cpad-list* cpads arg3 abutton 8))
0.0
32.0
230.0
(* 0.2 (-> *CAM_FREE-bank* speed))
)
)
)
)
)
)
)
(else
(when (logtest? (-> *camera* settings master-options) (cam-master-options READ_BUTTONS))
(if (cpad-hold? arg3 r1)
(+! (-> arg1 y)
(+ (-> *CAM_FREE-bank* speed)
(analog-input (the-as int (-> *cpad-list* cpads arg3 abutton 9)) 0.0 32.0 230.0 (-> *CAM_FREE-bank* speed))
)
)
)
)
(when (logtest? (-> *camera* settings master-options) (cam-master-options READ_BUTTONS))
(if (cpad-hold? arg3 l1)
(set! (-> arg1 y)
(- (-> arg1 y)
(+ (-> *CAM_FREE-bank* speed)
(analog-input (the-as int (-> *cpad-list* cpads arg3 abutton 8)) 0.0 32.0 230.0 (-> *CAM_FREE-bank* speed))
)
)
)
)
)
)
)
(when (zero? (logand (-> *camera* settings master-options) (cam-master-options IGNORE_ANALOG)))
(let ((f28-14 (analog-input (the-as int (-> *cpad-list* cpads arg3 leftx)) 128.0 48.0 110.0 -1.0))
(f30-14 (analog-input (the-as int (-> *cpad-list* cpads arg3 lefty)) 128.0 48.0 110.0 -1.0))
(f26-0 (analog-input (the-as int (-> *cpad-list* cpads arg3 rightx)) 128.0 48.0 110.0 -1.0))
(f0-60 (analog-input (the-as int (-> *cpad-list* cpads arg3 righty)) 128.0 48.0 110.0 -1.0))
)
(cond
((and (not s3-0) (cpad-hold? arg3 r2))
(cond
((cpad-hold? arg3 l2)
(set! (-> arg0 y) (- (-> arg0 y) (* 0.5 (-> *CAM_FREE-bank* rot-speed) (- f26-0))))
(set! (-> arg0 x) (- (-> arg0 x) (* 0.5 (-> *CAM_FREE-bank* rot-speed) (- f0-60))))
)
(else
(set! (-> arg0 y) (- (-> arg0 y) (* (- f26-0) (-> *CAM_FREE-bank* rot-speed))))
(set! (-> arg0 x) (- (-> arg0 x) (* (- f0-60) (-> *CAM_FREE-bank* rot-speed))))
)
)
(+! (-> arg1 x) (* 0.2 (-> *CAM_FREE-bank* speed) f28-14))
(+! (-> arg1 z) (* 0.2 (-> *CAM_FREE-bank* speed) f30-14))
)
((and (not s3-0) (cpad-hold? arg3 l2))
(+! (-> arg1 x) (* f28-14 (-> *CAM_FREE-bank* speed)))
(+! (-> arg1 y) (* f0-60 (-> *CAM_FREE-bank* speed)))
(+! (-> arg1 z) (* f30-14 (-> *CAM_FREE-bank* speed)))
)
(else
(set! (-> arg0 y) (- (-> arg0 y) (* 2.0 (-> *CAM_FREE-bank* rot-speed) (- f26-0))))
(set! (-> arg0 x) (- (-> arg0 x) (* 2.0 (-> *CAM_FREE-bank* rot-speed) (- f0-60))))
(+! (-> arg1 x) (* 2.0 (-> *CAM_FREE-bank* speed) f28-14))
(+! (-> arg1 z) (* 2.0 (-> *CAM_FREE-bank* speed) f30-14))
)
)
)
)
)
(vector-float*! arg0 arg0 (-> pp clock time-adjust-ratio))
(vector-float*! arg1 arg1 (-> pp clock time-adjust-ratio))
)
)
)
)
;; definition of type camera-free-floating-move-info
(deftype camera-free-floating-move-info (structure)
((rv vector :inline :offset-assert 0)
(tv vector :inline :offset-assert 16)
(up vector :inline :offset-assert 32)
(tm matrix :inline :offset-assert 48)
)
:method-count-assert 9
:size-assert #x70
:flag-assert #x900000070
)
;; definition for method 3 of type camera-free-floating-move-info
(defmethod inspect camera-free-floating-move-info ((obj camera-free-floating-move-info))
(when (not obj)
(set! obj obj)
(goto cfg-4)
)
(format #t "[~8x] ~A~%" obj 'camera-free-floating-move-info)
(format #t "~1Trv: #<vector @ #x~X>~%" (-> obj rv))
(format #t "~1Ttv: #<vector @ #x~X>~%" (-> obj tv))
(format #t "~1Tup: #<vector @ #x~X>~%" (-> obj up))
(format #t "~1Ttm: #<matrix @ #x~X>~%" (-> obj tm))
(label cfg-4)
obj
)
;; definition for function cam-free-floating-move
(defun cam-free-floating-move ((arg0 matrix) (arg1 vector) (arg2 vector) (arg3 int))
(if (logtest? (-> *cpad-list* cpads arg3 valid) 128)
(return (the-as vector #f))
)
(if (= *master-mode* 'menu)
(return (the-as vector #f))
)
(let ((s3-0 (new 'stack 'camera-free-floating-move-info)))
(cam-free-floating-input (-> s3-0 rv) (-> s3-0 tv) (not arg2) arg3)
(cond
(arg2
(matrix-axis-angle! (-> s3-0 tm) arg2 (-> s3-0 rv y))
(matrix*! arg0 arg0 (-> s3-0 tm))
(cond
((< (vector-dot (-> arg0 vector 1) arg2) 0.0)
(forward-down->inv-matrix arg0 (-> arg0 vector 2) arg2)
)
(else
(vector-negate! (-> s3-0 up) arg2)
(forward-down->inv-matrix arg0 (-> arg0 vector 2) (-> s3-0 up))
)
)
)
(else
(matrix-axis-angle! (-> s3-0 tm) (-> arg0 vector 1) (- (-> s3-0 rv y)))
(matrix*! arg0 arg0 (-> s3-0 tm))
)
)
(matrix-axis-angle! (-> s3-0 tm) (the-as vector (-> arg0 vector)) (- (-> s3-0 rv x)))
(matrix*! arg0 arg0 (-> s3-0 tm))
(matrix-axis-angle! (-> s3-0 tm) (-> arg0 vector 2) (- (-> s3-0 rv z)))
(matrix*! arg0 arg0 (-> s3-0 tm))
(vector-matrix*! (-> s3-0 tv) (-> s3-0 tv) arg0)
(vector+! arg1 arg1 (-> s3-0 tv))
)
)
;; failed to figure out what this is:
(defstate cam-free-floating (camera-slave)
:event (behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block))
(let ((v1-0 arg2))
(the-as object (if (= v1-0 'teleport)
#f
(cam-standard-event-handler arg0 arg1 arg2 arg3)
)
)
)
)
:enter (behavior ()
(when (not (-> self enter-has-run))
(set! (-> self blend-from-type) (the-as uint 1))
(set! (-> self blend-to-type) (camera-blend-to-type unknown-1))
(send-event *camera-combiner* 'stop-tracking)
)
(none)
)
:code (behavior ()
(until #f
(let ((a2-0 (-> *camera* local-down)))
(if (logtest? (-> self options) 8)
(set! a2-0 (the-as vector #f))
)
(cam-free-floating-move
(the-as matrix (-> self tracking))
(-> self trans)
a2-0
(the-as int (-> *CAMERA-bank* joypad))
)
)
(suspend)
)
#f
(none)
)
)
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+47 -25
View File
@@ -10,8 +10,8 @@
:size-assert #x30
:flag-assert #xb00000030
(:methods
(cam-index-method-9 () none 9)
(cam-index-method-10 () none 10)
(cam-index-method-9 (_type_ symbol entity vector curve) symbol 9)
(cam-index-method-10 (_type_ vector) float 10)
)
)
@@ -101,21 +101,21 @@
:size-assert #x664
:flag-assert #x1800000664
(:methods
(tracking-spline-method-9 () none 9)
(tracking-spline-method-10 () none 10)
(tracking-spline-method-11 () none 11)
(tracking-spline-method-12 () none 12)
(tracking-spline-method-13 () none 13)
(tracking-spline-method-14 () none 14)
(tracking-spline-method-15 () none 15)
(tracking-spline-method-16 () none 16)
(tracking-spline-method-17 () none 17)
(tracking-spline-method-18 () none 18)
(tracking-spline-method-19 () none 19)
(tracking-spline-method-20 () none 20)
(tracking-spline-method-21 () none 21)
(tracking-spline-method-22 () none 22)
(tracking-spline-method-23 () none 23)
(tracking-spline-method-9 (_type_) none 9)
(tracking-spline-method-10 (_type_ vector) none 10)
(debug-point-info (_type_ int) none 11)
(debug-all-points (_type_) none 12)
(tracking-spline-method-13 (_type_ int) none 13)
(tracking-spline-method-14 (_type_ tracking-spline-sampler) none 14)
(tracking-spline-method-15 (_type_) none 15)
(tracking-spline-method-16 (_type_ float) none 16)
(tracking-spline-method-17 (_type_ vector float float symbol) int 17)
(tracking-spline-method-18 (_type_ float vector tracking-spline-sampler) vector 18)
(tracking-spline-method-19 (_type_ float vector tracking-spline-sampler) vector 19)
(tracking-spline-method-20 (_type_ vector int) none 20)
(tracking-spline-method-21 (_type_ vector float float float) vector 21)
(tracking-spline-method-22 (_type_ float) none 22)
(debug-draw-spline (_type_) none 23)
)
)
@@ -408,7 +408,7 @@
(let ((t9-0 (method-of-type process inspect)))
(t9-0 obj)
)
(format #t "~2Ttrans: ~`vector`P~%" (-> obj stack))
(format #t "~2Ttrans: ~`vector`P~%" (-> obj trans))
(format #t "~2Tinv-camera-rot: ~`matrix`P~%" (-> obj inv-camera-rot))
(format #t "~2Tfov: ~f~%" (-> obj fov))
(format #t "~2Tinterp-val: ~f~%" (-> obj interp-val))
@@ -446,7 +446,7 @@
(circular-follow vector :inline :offset-assert 2256)
(max-angle-offset float :offset-assert 2272)
(max-angle-curr float :offset-assert 2276)
(options camera-slave-options :offset-assert 2280)
(options uint32 :offset-assert 2280)
(cam-entity entity :offset-assert 2284)
(butt-timer uint64 :offset-assert 2288)
(butt-seek basic :offset-assert 2296)
@@ -473,7 +473,7 @@
(spline-follow-dist float :offset-assert 2596)
(enter-has-run symbol :offset-assert 2600)
(blend-from-type uint64 :offset-assert 2608)
(blend-to-type uint64 :offset-assert 2616)
(blend-to-type camera-blend-to-type :offset-assert 2616)
(have-phony-joystick basic :offset-assert 2624)
(phony-joystick-x float :offset-assert 2628)
(phony-joystick-y float :offset-assert 2632)
@@ -487,6 +487,28 @@
:method-count-assert 14
:size-assert #xa94
:flag-assert #xe0a200a94
(:states
cam-bike
cam-circular
cam-decel
cam-endlessfall
cam-eye
cam-fixed
cam-fixed-read-entity
cam-free-floating
cam-lookat
cam-point-watch
cam-pov
cam-pov-track
cam-pov180
cam-really-fixed
cam-robotboss
cam-spline
cam-standoff
cam-standoff-read-entity
cam-stick
cam-string
)
)
;; definition for method 3 of type camera-slave
@@ -498,7 +520,7 @@
(let ((t9-0 (method-of-type process inspect)))
(t9-0 obj)
)
(format #t "~2Ttrans: ~`vector`P~%" (-> obj stack))
(format #t "~2Ttrans: ~`vector`P~%" (-> obj trans))
(format #t "~2Tfov: ~f~%" (-> obj fov))
(format #t "~2Tfov0: ~f~%" (-> obj fov0))
(format #t "~2Tfov1: ~f~%" (-> obj fov1))
@@ -562,7 +584,7 @@
((master-options uint32 :offset-assert 128)
(settings cam-setting-data :offset-assert 132)
(slave (pointer camera-slave) :offset-assert 136)
(decel uint32 :offset-assert 140)
(decel (pointer camera-slave) :offset-assert 140)
(slave-options uint32 :offset-assert 144)
(view-off-param-save float :offset-assert 148)
(changer uint32 :offset-assert 152)
@@ -604,9 +626,9 @@
:size-assert #x924
:flag-assert #x1108b00924
(:methods
(camera-master-method-14 () none 14)
(camera-master-method-15 () none 15)
(camera-master-method-16 () none 16)
(camera-master-method-14 (_type_ vector) vector 14)
(camera-master-method-15 (_type_ vector) vector 15)
(camera-master-method-16 (_type_ symbol) none 16)
)
)
File diff suppressed because it is too large Load Diff
+1 -5
View File
@@ -153,7 +153,7 @@
:flag-assert #x1a00008670
(:methods
(collide-cache-method-9 () none 9)
(collide-cache-method-10 () none 10)
(fill-and-probe-using-line-sphere (_type_ vector vector float collide-spec process collide-tri-result pat-surface) float 10)
(collide-cache-method-11 () none 11)
(collide-cache-method-12 () none 12)
(collide-cache-method-13 () none 13)
@@ -251,7 +251,3 @@
;; failed to figure out what this is:
(kmemclose)
+33 -33
View File
@@ -41,40 +41,40 @@
)
;; definition for function dm-cam-settings-func
(defun dm-cam-settings-func ((arg0 camera-slave-options) (arg1 debug-menu-msg))
(defun dm-cam-settings-func ((arg0 cam-slave-options) (arg1 debug-menu-msg))
(when (and (= arg1 (debug-menu-msg press)) *camera*)
(cond
((zero? arg0)
(send-event *camera* 'toggle-slave-option 1)
)
((= arg0 (camera-slave-options butt-cam))
((= arg0 (cam-slave-options BUTT_CAM))
(send-event *camera* 'toggle-slave-option 2)
)
((= arg0 (camera-slave-options same-side))
((= arg0 (cam-slave-options SAME_SIDE))
(send-event *camera* 'toggle-slave-option 4)
)
((= arg0 (camera-slave-options butt-cam same-side))
((= arg0 (cam-slave-options BUTT_CAM SAME_SIDE))
(send-event *camera* 'toggle-slave-option 128)
)
((= arg0 (camera-slave-options move-spherical))
((= arg0 (cam-slave-options MOVE_SPHERICAL))
(send-event *camera* 'toggle-slave-option 8)
)
((= arg0 (camera-slave-options same-side move-spherical))
((= arg0 (cam-slave-options SAME_SIDE MOVE_SPHERICAL))
(set-setting-by-param *setting-control* 'slave-options 'clear 0 16)
)
((= arg0 (camera-slave-options butt-cam same-side move-spherical))
((= arg0 (cam-slave-options BUTT_CAM SAME_SIDE MOVE_SPHERICAL))
(send-event *camera* 'toggle-slave-option 64)
)
((= arg0 (camera-slave-options allow-z-rot))
((= arg0 (cam-slave-options ALLOW_Z_ROT))
(send-event *camera* 'toggle-slave-option 32)
)
((= arg0 (camera-slave-options butt-cam allow-z-rot))
((= arg0 (cam-slave-options BUTT_CAM ALLOW_Z_ROT))
(send-event *camera* 'toggle-slave-option 512)
)
((= arg0 (camera-slave-options same-side allow-z-rot))
((= arg0 (cam-slave-options SAME_SIDE ALLOW_Z_ROT))
(send-event *camera* 'toggle-slave-option #x4000)
)
((= arg0 (camera-slave-options butt-cam same-side allow-z-rot))
((= arg0 (cam-slave-options BUTT_CAM SAME_SIDE ALLOW_Z_ROT))
(send-event *camera* 'toggle-slave-option #x8000)
)
)
@@ -85,34 +85,34 @@
((zero? arg0)
(logtest? (-> *camera* slave-options) 1)
)
((= arg0 (camera-slave-options butt-cam))
((= arg0 (cam-slave-options BUTT_CAM))
(logtest? (-> *camera* slave-options) 2)
)
((= arg0 (camera-slave-options same-side))
((= arg0 (cam-slave-options SAME_SIDE))
(logtest? (-> *camera* slave-options) 4)
)
((= arg0 (camera-slave-options butt-cam same-side))
((= arg0 (cam-slave-options BUTT_CAM SAME_SIDE))
(logtest? (-> *camera* slave-options) 128)
)
((= arg0 (camera-slave-options move-spherical))
((= arg0 (cam-slave-options MOVE_SPHERICAL))
(logtest? (-> *camera* slave-options) 8)
)
((= arg0 (camera-slave-options same-side move-spherical))
((= arg0 (cam-slave-options SAME_SIDE MOVE_SPHERICAL))
(not (setting-control-method-14 *setting-control* 'slave-options))
)
((= arg0 (camera-slave-options butt-cam same-side move-spherical))
((= arg0 (cam-slave-options BUTT_CAM SAME_SIDE MOVE_SPHERICAL))
(logtest? (-> *camera* slave-options) 64)
)
((= arg0 (camera-slave-options allow-z-rot))
((= arg0 (cam-slave-options ALLOW_Z_ROT))
(logtest? (-> *camera* slave-options) 32)
)
((= arg0 (camera-slave-options butt-cam allow-z-rot))
((= arg0 (cam-slave-options BUTT_CAM ALLOW_Z_ROT))
(logtest? (-> *camera* slave-options) 512)
)
((= arg0 (camera-slave-options same-side allow-z-rot))
((= arg0 (cam-slave-options SAME_SIDE ALLOW_Z_ROT))
(logtest? (-> *camera* slave-options) #x4000)
)
((= arg0 (camera-slave-options butt-cam same-side allow-z-rot))
((= arg0 (cam-slave-options BUTT_CAM SAME_SIDE ALLOW_Z_ROT))
(logtest? (-> *camera* slave-options) #x8000)
)
(else
@@ -1253,18 +1253,18 @@
(format #t " (set! (-> pos y) ~12F)~%" (-> *math-camera* trans y))
(format #t " (set! (-> pos z) ~12F)~%" (-> *math-camera* trans z))
(format #t " (set! (-> pos w) 1.0)~%")
(format #t " (set! (-> rot data 0) ~12F)~%" (-> *math-camera* inv-camera-rot data 0))
(format #t " (set! (-> rot data 1) ~12F)~%" (-> *math-camera* inv-camera-rot data 1))
(format #t " (set! (-> rot data 2) ~12F)~%" (-> *math-camera* inv-camera-rot data 2))
(format #t " (set! (-> rot data 3) ~12F)~%" (-> *math-camera* inv-camera-rot data 3))
(format #t " (set! (-> rot data 4) ~12F)~%" (-> *math-camera* inv-camera-rot data 4))
(format #t " (set! (-> rot data 5) ~12F)~%" (-> *math-camera* inv-camera-rot data 5))
(format #t " (set! (-> rot data 6) ~12F)~%" (-> *math-camera* inv-camera-rot data 6))
(format #t " (set! (-> rot data 7) ~12F)~%" (-> *math-camera* inv-camera-rot data 7))
(format #t " (set! (-> rot data 8) ~12F)~%" (-> *math-camera* inv-camera-rot data 8))
(format #t " (set! (-> rot data 9) ~12F)~%" (-> *math-camera* inv-camera-rot data 9))
(format #t " (set! (-> rot data 10) ~12F)~%" (-> *math-camera* inv-camera-rot data 10))
(format #t " (set! (-> rot data 11) ~12F)~%" (-> *math-camera* inv-camera-rot data 11))
(format #t " (set! (-> rot data 0) ~12F)~%" (-> *math-camera* inv-camera-rot vector 0 x))
(format #t " (set! (-> rot data 1) ~12F)~%" (-> *math-camera* inv-camera-rot vector 0 y))
(format #t " (set! (-> rot data 2) ~12F)~%" (-> *math-camera* inv-camera-rot vector 0 z))
(format #t " (set! (-> rot data 3) ~12F)~%" (-> *math-camera* inv-camera-rot vector 0 w))
(format #t " (set! (-> rot data 4) ~12F)~%" (-> *math-camera* inv-camera-rot vector 1 x))
(format #t " (set! (-> rot data 5) ~12F)~%" (-> *math-camera* inv-camera-rot vector 1 y))
(format #t " (set! (-> rot data 6) ~12F)~%" (-> *math-camera* inv-camera-rot vector 1 z))
(format #t " (set! (-> rot data 7) ~12F)~%" (-> *math-camera* inv-camera-rot vector 1 w))
(format #t " (set! (-> rot data 8) ~12F)~%" (-> *math-camera* inv-camera-rot vector 2 x))
(format #t " (set! (-> rot data 9) ~12F)~%" (-> *math-camera* inv-camera-rot vector 2 y))
(format #t " (set! (-> rot data 10) ~12F)~%" (-> *math-camera* inv-camera-rot vector 2 z))
(format #t " (set! (-> rot data 11) ~12F)~%" (-> *math-camera* inv-camera-rot vector 2 w))
(format #t " (set! (-> rot data 12) ~12F)~%" 0)
(format #t " (set! (-> rot data 13) ~12F)~%" 0)
(format #t " (set! (-> rot data 14) ~12F)~%" 0)
-4
View File
@@ -409,7 +409,3 @@
(none)
)
)
+32 -53
View File
@@ -352,15 +352,15 @@
;; definition for function forward-down->inv-matrix
;; INFO: Used lq/sq
(defun forward-down->inv-matrix ((arg0 matrix) (arg1 vector) (arg2 vector))
(vector-normalize-copy! (the-as vector (&-> arg0 data 8)) arg1 1.0)
(vector-cross! (the-as vector (-> arg0 data)) (the-as vector (&-> arg0 data 8)) arg2)
(vector-normalize! (the-as vector (-> arg0 data)) 1.0)
(vector-cross! (the-as vector (&-> arg0 data 4)) arg1 (the-as vector (-> arg0 data)))
(vector-normalize! (the-as vector (&-> arg0 data 4)) 1.0)
(vector-normalize-copy! (-> arg0 vector 2) arg1 1.0)
(vector-cross! (the-as vector (-> arg0 vector)) (-> arg0 vector 2) arg2)
(vector-normalize! (the-as vector (-> arg0 vector)) 1.0)
(vector-cross! (-> arg0 vector 1) arg1 (the-as vector (-> arg0 vector)))
(vector-normalize! (-> arg0 vector 1) 1.0)
(set! (-> arg0 trans quad) (the-as uint128 0))
(set! (-> arg0 data 3) 0.0)
(set! (-> arg0 data 7) 0.0)
(set! (-> arg0 data 11) 0.0)
(set! (-> arg0 vector 0 w) 0.0)
(set! (-> arg0 vector 1 w) 0.0)
(set! (-> arg0 vector 2 w) 0.0)
(set! (-> arg0 trans w) 1.0)
arg0
)
@@ -368,20 +368,16 @@
;; definition for function forward-down-nopitch->inv-matrix
;; INFO: Used lq/sq
(defun forward-down-nopitch->inv-matrix ((arg0 matrix) (arg1 vector) (arg2 vector))
(vector-normalize-copy! (the-as vector (&-> arg0 data 4)) arg2 1.0)
(vector-negate! (the-as vector (&-> arg0 data 4)) (the-as vector (&-> arg0 data 4)))
(vector-cross! (the-as vector (-> arg0 data)) (the-as vector (&-> arg0 data 4)) arg1)
(vector-normalize! (the-as vector (-> arg0 data)) 1.0)
(vector-cross!
(the-as vector (&-> arg0 data 8))
(the-as vector (-> arg0 data))
(the-as vector (&-> arg0 data 4))
)
(vector-normalize! (the-as vector (&-> arg0 data 8)) 1.0)
(vector-normalize-copy! (-> arg0 vector 1) arg2 1.0)
(vector-negate! (-> arg0 vector 1) (-> arg0 vector 1))
(vector-cross! (the-as vector (-> arg0 vector)) (-> arg0 vector 1) arg1)
(vector-normalize! (the-as vector (-> arg0 vector)) 1.0)
(vector-cross! (-> arg0 vector 2) (the-as vector (-> arg0 vector)) (-> arg0 vector 1))
(vector-normalize! (-> arg0 vector 2) 1.0)
(set! (-> arg0 trans quad) (the-as uint128 0))
(set! (-> arg0 data 3) 0.0)
(set! (-> arg0 data 7) 0.0)
(set! (-> arg0 data 11) 0.0)
(set! (-> arg0 vector 0 w) 0.0)
(set! (-> arg0 vector 1 w) 0.0)
(set! (-> arg0 vector 2 w) 0.0)
(set! (-> arg0 trans w) 1.0)
arg0
)
@@ -634,16 +630,16 @@
0.0
(let ((s5-0 (new-stack-matrix0)))
(vector-negate! s4-0 (the-as vector arg1))
(vector-flatten! s4-0 s4-0 (the-as vector (&-> arg0 data 8)))
(vector-flatten! s4-0 s4-0 (-> arg0 vector 2))
(vector-normalize! s4-0 1.0)
(let ((f30-0 (vector-dot (the-as vector (&-> arg0 data 4)) s4-0)))
(let ((f30-0 (vector-dot (-> arg0 vector 1) s4-0)))
(when (< f30-0 0.99999)
(vector-cross! s4-0 (the-as vector (&-> arg0 data 4)) s4-0)
(vector-cross! s4-0 (-> arg0 vector 1) s4-0)
(let ((f0-4 (vector-length s4-0)))
(if (< 0.0 (vector-dot s4-0 (the-as vector (&-> arg0 data 8))))
(if (< 0.0 (vector-dot s4-0 (-> arg0 vector 2)))
(set! f0-4 (- f0-4))
)
(matrix-axis-sin-cos! s5-0 (the-as vector (&-> arg0 data 8)) f0-4 f30-0)
(matrix-axis-sin-cos! s5-0 (-> arg0 vector 2) f0-4 f30-0)
)
(matrix*! arg0 arg0 s5-0)
)
@@ -689,12 +685,7 @@
(quaternion->matrix s5-0 arg1)
(quaternion->matrix s4-0 arg2)
(let ((s2-1 (new-stack-quaternion0)))
(quaternion-from-two-vectors-max-angle!
s2-1
(the-as vector (&-> s5-0 data 8))
(the-as vector (&-> s4-0 data 8))
arg4
)
(quaternion-from-two-vectors-max-angle! s2-1 (-> s5-0 vector 2) (-> s4-0 vector 2) arg4)
(quaternion-normalize! (quaternion*! arg0 arg0 s2-1))
)
)
@@ -911,53 +902,41 @@
(nop!)
(label cfg-3)
(b! (nonzero? v1-4) cfg-6 :delay (set! v1-5 (+ v1-4 -1)))
(vector-segment-distance-point! arg1 (the-as vector (-> arg2 data)) (the-as vector (&-> arg2 data 4)) arg0)
(vector-segment-distance-point! arg1 (the-as vector (-> arg2 vector)) (-> arg2 vector 1) arg0)
(goto cfg-24)
(label cfg-6)
(b! (nonzero? v1-5) cfg-9 :delay (set! v1-6 (+ v1-5 -1)))
(vector-segment-distance-point! arg1 (the-as vector (&-> arg2 data 4)) (the-as vector (&-> arg2 data 8)) arg0)
(vector-segment-distance-point! arg1 (-> arg2 vector 1) (-> arg2 vector 2) arg0)
(goto cfg-24)
(label cfg-9)
(b! (nonzero? v1-6) cfg-14 :delay (set! v1-7 (+ v1-6 -1)))
(let ((f30-0
(vector-segment-distance-point! arg1 (the-as vector (&-> arg2 data 4)) (the-as vector (-> arg2 data)) arg0)
)
(let ((f30-0 (vector-segment-distance-point! arg1 (-> arg2 vector 1) (the-as vector (-> arg2 vector)) arg0))
(s3-0 (new 'stack-no-clear 'vector))
)
(if (< (vector-segment-distance-point! arg1 (the-as vector (&-> arg2 data 4)) (the-as vector (&-> arg2 data 8)) s3-0)
f30-0
)
(if (< (vector-segment-distance-point! arg1 (-> arg2 vector 1) (-> arg2 vector 2) s3-0) f30-0)
(set! (-> arg0 quad) (-> s3-0 quad))
)
)
(goto cfg-24)
(label cfg-14)
(b! (nonzero? v1-7) cfg-17 :delay (set! v1-10 (+ v1-7 -1)))
(vector-segment-distance-point! arg1 (the-as vector (&-> arg2 data 8)) (the-as vector (-> arg2 data)) arg0)
(vector-segment-distance-point! arg1 (-> arg2 vector 2) (the-as vector (-> arg2 vector)) arg0)
(goto cfg-24)
(label cfg-17)
(b! (nonzero? v1-10) cfg-22 :delay (nop!))
(let ((f30-1
(vector-segment-distance-point! arg1 (the-as vector (-> arg2 data)) (the-as vector (&-> arg2 data 4)) arg0)
)
(let ((f30-1 (vector-segment-distance-point! arg1 (the-as vector (-> arg2 vector)) (-> arg2 vector 1) arg0))
(s3-1 (new 'stack-no-clear 'vector))
)
(if (< (vector-segment-distance-point! arg1 (the-as vector (-> arg2 data)) (the-as vector (&-> arg2 data 8)) s3-1)
f30-1
)
(if (< (vector-segment-distance-point! arg1 (the-as vector (-> arg2 vector)) (-> arg2 vector 2) s3-1) f30-1)
(set! (-> arg0 quad) (-> s3-1 quad))
)
)
(goto cfg-24)
(label cfg-22)
(let ((f30-2
(vector-segment-distance-point! arg1 (the-as vector (&-> arg2 data 8)) (the-as vector (-> arg2 data)) arg0)
)
(let ((f30-2 (vector-segment-distance-point! arg1 (-> arg2 vector 2) (the-as vector (-> arg2 vector)) arg0))
(s3-2 (new 'stack-no-clear 'vector))
)
(if (< (vector-segment-distance-point! arg1 (the-as vector (&-> arg2 data 8)) (the-as vector (&-> arg2 data 4)) s3-2)
f30-2
)
(if (< (vector-segment-distance-point! arg1 (-> arg2 vector 2) (-> arg2 vector 1) s3-2) f30-2)
(set! (-> arg0 quad) (-> s3-2 quad))
)
)
+18 -28
View File
@@ -111,10 +111,10 @@
(let ((f4-34 (/ f1-21 (* (-> arg0 d) (- (-> arg0 f) (-> arg0 d)))))
(f3-30 (-> arg0 fov-correction-factor))
)
(set! (-> arg0 perspective data 0) (* f3-30 (- (/ (-> arg0 x-pix) (* (-> arg0 x-ratio) (-> arg0 d))))))
(set! (-> arg0 perspective data 5) (* f3-30 (- (/ (-> arg0 y-pix) (* (-> arg0 y-ratio) (-> arg0 d))))))
(set! (-> arg0 perspective data 10) (* f3-30 (+ (-> arg0 f) (-> arg0 d)) f4-34))
(set! (-> arg0 perspective data 11) (* (/ f3-30 (-> arg0 d)) f30-0))
(set! (-> arg0 perspective vector 0 x) (* f3-30 (- (/ (-> arg0 x-pix) (* (-> arg0 x-ratio) (-> arg0 d))))))
(set! (-> arg0 perspective vector 1 y) (* f3-30 (- (/ (-> arg0 y-pix) (* (-> arg0 y-ratio) (-> arg0 d))))))
(set! (-> arg0 perspective vector 2 z) (* f3-30 (+ (-> arg0 f) (-> arg0 d)) f4-34))
(set! (-> arg0 perspective vector 2 w) (* (/ f3-30 (-> arg0 d)) f30-0))
(set! (-> arg0 perspective trans z) (* -2.0 f4-34 (-> arg0 f) (-> arg0 d) f3-30))
)
(let ((f24-0 2048.0)
@@ -162,28 +162,18 @@
(set! (-> arg0 isometric trans z) (- 16777215.0 f22-0))
)
(set! (-> arg0 isometric trans w) f30-0)
(let ((f1-28 (-> arg0 perspective data 0))
(f2-19 (-> arg0 perspective data 5))
(f0-48 (* -1.9996 (-> arg0 perspective data 0)))
(let ((f1-28 (-> arg0 perspective vector 0 x))
(f2-19 (-> arg0 perspective vector 1 y))
(f0-48 (* -1.9996 (-> arg0 perspective vector 0 x)))
)
(let ((v1-39 (-> arg0 sprite-2d)))
(set! (-> v1-39 data 0) f0-48)
(set! (-> v1-39 data 1) 0.0)
(set! (-> v1-39 data 2) 0.0)
(set! (-> v1-39 data 3) 0.0)
)
(let ((v1-40 (&-> arg0 sprite-2d data 4)))
(set! (-> v1-40 0) 0.0)
(set! (-> v1-40 1) (- (* (/ f2-19 f1-28) f0-48)))
(set! (-> v1-40 2) 0.0)
(set! (-> v1-40 3) 0.0)
)
(let ((v1-41 (&-> arg0 sprite-2d data 8)))
(set! (-> v1-41 0) 0.0)
(set! (-> v1-41 1) 0.0)
(set! (-> v1-41 2) (- f0-48))
(set! (-> v1-41 3) 0.0)
(set! (-> v1-39 vector 0 x) f0-48)
(set! (-> v1-39 vector 0 y) 0.0)
(set! (-> v1-39 vector 0 z) 0.0)
(set! (-> v1-39 vector 0 w) 0.0)
)
(set-vector! (-> arg0 sprite-2d vector 1) 0.0 (- (* (/ f2-19 f1-28) f0-48)) 0.0 0.0)
(set-vector! (-> arg0 sprite-2d vector 2) 0.0 0.0 (- f0-48) 0.0)
(set-vector! (-> arg0 sprite-2d trans) 0.0 0.0 (* 500000000.0 f0-48) (* 60.0 f0-48 (-> arg0 pfog0)))
)
(set! (-> arg0 sprite-2d-hvdf quad) (-> arg0 hvdf-off quad))
@@ -258,9 +248,9 @@
(matrix-identity! (-> gp-0 inv-camera-rot-other))
(matrix-identity! (-> gp-0 camera-rot-other))
(matrix-identity! (-> gp-0 camera-temp-other))
(set! (-> gp-0 isometric data 0) 1.0)
(set! (-> gp-0 isometric data 5) 0.5)
(set! (-> gp-0 isometric data 10) -1.0)
(set! (-> gp-0 isometric vector 0 x) 1.0)
(set! (-> gp-0 isometric vector 1 y) 0.5)
(set! (-> gp-0 isometric vector 2 z) -1.0)
(set! (-> gp-0 reset) 1)
(set! (-> gp-0 smooth-step) 0.0)
(set! (-> gp-0 smooth-t) 0.0)
@@ -491,8 +481,8 @@
(defun reverse-transform-point! ((arg0 vector) (arg1 vector) (arg2 vector) (arg3 vector))
(let* ((v1-1 (-> *math-camera* perspective))
(s2-0 (-> *math-camera* camera-rot))
(f30-0 (* (/ (-> v1-1 data 11) (-> v1-1 data 0)) (-> *math-camera* hmge-scale w)))
(f28-0 (* (/ (-> v1-1 data 11) (-> v1-1 data 5)) (-> *math-camera* hmge-scale w)))
(f30-0 (* (/ (-> v1-1 vector 2 w) (-> v1-1 vector 0 x)) (-> *math-camera* hmge-scale w)))
(f28-0 (* (/ (-> v1-1 vector 2 w) (-> v1-1 vector 1 y)) (-> *math-camera* hmge-scale w)))
(s4-0 (vector-rotate*! (new 'stack-no-clear 'vector) arg2 s2-0))
(v1-3 (vector-matrix*! (new 'stack-no-clear 'vector) arg1 s2-0))
(f0-8 (/ (+ (* (-> s4-0 x) (-> v1-3 x)) (* (-> s4-0 y) (-> v1-3 y)) (* (-> s4-0 z) (-> v1-3 z)))
+2 -2
View File
@@ -34,8 +34,8 @@
:size-assert #x110
:flag-assert #xb00000110
(:methods
(palette-fade-controls-method-9 () none 9)
(palette-fade-controls-method-10 () none 10)
(reset! (_type_) none 9)
(set-fade! (_type_ int float float vector) object 10)
)
)
+3 -7
View File
@@ -48,8 +48,8 @@
(let ((entry-idx 0)
(ientry-idx 0)
(turns 3)
(cam-aspx (- (-> *math-camera* perspective data 0)))
(cam-aspy (- (-> *math-camera* perspective data 5)))
(cam-aspx (- (-> *math-camera* perspective vector 0 x)))
(cam-aspy (- (-> *math-camera* perspective vector 1 y)))
)
(when (or (!= cam-aspx (-> tbls aspx)) (!= cam-aspy (-> tbls aspy)))
(set! (-> tbls aspx) cam-aspx)
@@ -290,7 +290,7 @@
(set! (-> sprite flag-rot-sy x) (the-as float #xb))
)
(set! (-> (the-as (pointer int32) dma-st-flag) 3) (the-as int (-> sprite flag-rot-sy x)))
(let* ((f1-4 (- (-> *math-camera* perspective data 5)))
(let* ((f1-4 (- (-> *math-camera* perspective vector 1 y)))
(f2-2 (-> (the-as vector dma-st-flag) y))
(f4-0 (+ f2-2 (* (-> (the-as vector dma-color) x) f1-4)))
(f3-0 256.0)
@@ -436,7 +436,3 @@
(none)
)
)
+5 -5
View File
@@ -416,9 +416,9 @@
(set! (-> data sincos-67 w) -0.0013636408)
(set! (-> data sincos-89 w) 0.000020170546)
(set! (-> data basis-x quad) (the-as uint128 0))
(set! (-> data basis-x x) (- (-> *math-camera* perspective data 0)))
(set! (-> data basis-x x) (- (-> *math-camera* perspective vector 0 x)))
(set! (-> data basis-y quad) (the-as uint128 0))
(set! (-> data basis-y y) (- (-> *math-camera* perspective data 5)))
(set! (-> data basis-y y) (- (-> *math-camera* perspective vector 1 y)))
(set! (-> data min-scale) (sqrtf (* (/ 1.0 (-> data basis-x x)) (/ 1.0 (-> data basis-y y)))))
(set! (-> data inv-area) (/ 1.0 (* (-> data min-scale) (-> data min-scale))))
(set-vector! (-> data cdata 0) -0.5 -0.5 0.0 0.0)
@@ -584,9 +584,9 @@
(set! (-> a1-10 base) (&+ (the-as pointer pkt2) 16))
)
(let ((mtx2 (the-as matrix (-> dma-buff base)))
(f1-0 (-> *math-camera* perspective data 0))
(f2-0 (-> *math-camera* perspective data 5))
(f0-1 (* -1.9996 (-> *math-camera* perspective data 0)))
(f1-0 (-> *math-camera* perspective vector 0 x))
(f2-0 (-> *math-camera* perspective vector 1 y))
(f0-1 (* -1.9996 (-> *math-camera* perspective vector 0 x)))
)
(set-vector! (the-as vector (&+ (the-as pointer mtx2) 0)) f0-1 0.0 0.0 0.0)
(set-vector! (the-as vector (&+ (the-as pointer mtx2) 16)) 0.0 (- (* (/ f2-0 f1-0) f0-1)) 0.0 0.0)
+4 -1
View File
@@ -49,8 +49,11 @@
(cameras (array entity-camera) :offset-assert 116)
(nodes (inline-array bsp-node) :offset 120)
(level level :offset-assert 124)
(current-leaf-idx uint16 :offset-assert 128)
(unk-data-2 uint16 9 :offset 130)
(unk-byte uint8 :offset 152)
(unk-byte1 uint8 :offset 152)
(unk-byte2 uint8 :offset 153)
(unk-half-word uint16 :offset-assert 154)
(ambients symbol :offset-assert 156)
(unk-data-4 float :offset 160)
(unk-data-5 float :offset-assert 164)
+72 -72
View File
@@ -394,78 +394,78 @@
;; definition of type level
(deftype level (basic)
((name symbol :offset-assert 4)
(load-name basic :offset-assert 8)
(nickname basic :offset-assert 12)
(index int32 :offset-assert 16)
(status symbol :offset-assert 20)
(borrow-level basic 2 :offset-assert 24)
(borrow-from-level basic :offset-assert 32)
(heap kheap :inline :offset-assert 48)
(borrow-heap kheap 2 :inline :offset-assert 64)
(bsp bsp-header :offset-assert 96)
(art-group load-dir-art-group :offset-assert 100)
(info level-load-info :offset-assert 104)
(texture-page texture-page 18 :offset-assert 108)
(loaded-texture-page texture-page 16 :offset-assert 180)
(loaded-texture-page-count int32 :offset-assert 244)
(entity entity-links-array :offset-assert 248)
(closest-object float :offset-assert 252)
(closest-object-array float 18 :offset 252)
(upload-size int32 18 :offset 324)
(inside-boxes symbol :offset-assert 396)
(display? symbol :offset-assert 400)
(render? symbol :offset-assert 404)
(meta-inside? symbol :offset-assert 408)
(force-inside? symbol :offset-assert 412)
(mood-context mood-context :inline :offset-assert 416)
(mood-func basic :offset-assert 2384)
(mood-init (function mood-context none) :offset-assert 2388)
(vis-bits pointer :offset-assert 2392)
(all-visible? symbol :offset-assert 2396)
(force-all-visible? symbol :offset-assert 2400)
(linking basic :offset-assert 2404)
(vis-info level-vis-info 8 :offset-assert 2408)
(vis-self-index int32 :offset-assert 2440)
(vis-adj-index int32 :offset-assert 2444)
(vis-buffer uint8 2048 :offset-assert 2448)
(mem-usage-block memory-usage-block :offset-assert 4496)
(mem-usage int32 :offset-assert 4500)
(code-memory-start pointer :offset-assert 4504)
(code-memory-end pointer :offset-assert 4508)
(load-start-time time-frame :offset-assert 4512)
(load-stop-time time-frame :offset-assert 4520)
(load-buffer uint32 2 :offset-assert 4528)
(load-buffer-size uint32 :offset-assert 4536)
(load-buffer-last uint32 :offset-assert 4540)
(load-buffer-mode load-buffer-mode :offset-assert 4544)
(display-start-time time-frame :offset-assert 4552)
(memory-mask uint32 :offset-assert 4560)
(task-mask task-mask :offset-assert 4564)
(tfrag-gs-test uint64 :offset-assert 4568)
(texture-dirty-masks texture-mask 10 :inline :offset-assert 4576)
(texture-mask texture-mask 18 :inline :offset-assert 4736)
(sky-mask texture-mask :inline :offset-assert 5024)
(tfrag-masks basic :offset-assert 5040)
(tfrag-dists pointer :offset-assert 5044)
(shrub-masks basic :offset-assert 5048)
(shrub-dists pointer :offset-assert 5052)
(alpha-masks basic :offset-assert 5056)
(alpha-dists pointer :offset-assert 5060)
(water-masks basic :offset-assert 5064)
(water-dists pointer :offset-assert 5068)
(tfrag-last-calls int32 6 :offset-assert 5072)
(texture-anim-array texture-anim-array 10 :offset-assert 5096)
(light-hash basic :offset-assert 5136)
(draw-priority float :offset-assert 5140)
(draw-index int32 :offset-assert 5144)
(part-engine basic :offset-assert 5148)
(user-object basic 4 :offset-assert 5152)
(loaded-text-info-count int32 :offset-assert 5168)
(loaded-text-info game-text-info 8 :offset-assert 5172)
(level-type basic :offset-assert 5204)
(load-order int64 :offset-assert 5208)
(pad int8 12 :offset-assert 5216)
((name symbol :offset-assert 4)
(load-name basic :offset-assert 8)
(nickname basic :offset-assert 12)
(index int32 :offset-assert 16)
(status symbol :offset-assert 20)
(borrow-level basic 2 :offset-assert 24)
(borrow-from-level basic :offset-assert 32)
(heap kheap :inline :offset-assert 48)
(borrow-heap kheap 2 :inline :offset-assert 64)
(bsp bsp-header :offset-assert 96)
(art-group load-dir-art-group :offset-assert 100)
(info level-load-info :offset-assert 104)
(texture-page texture-page 18 :offset-assert 108)
(loaded-texture-page texture-page 16 :offset-assert 180)
(loaded-texture-page-count int32 :offset-assert 244)
(entity entity-links-array :offset-assert 248)
(closest-object float :offset-assert 252)
(closest-object-array float 18 :offset 252)
(upload-size int32 18 :offset 324)
(inside-boxes symbol :offset-assert 396)
(display? symbol :offset-assert 400)
(render? symbol :offset-assert 404)
(meta-inside? symbol :offset-assert 408)
(force-inside? symbol :offset-assert 412)
(mood-context mood-context :inline :offset-assert 416)
(mood-func (function mood-context float int none) :offset-assert 2384)
(mood-init (function mood-context none) :offset-assert 2388)
(vis-bits pointer :offset-assert 2392)
(all-visible? symbol :offset-assert 2396)
(force-all-visible? symbol :offset-assert 2400)
(linking basic :offset-assert 2404)
(vis-info level-vis-info 8 :offset-assert 2408)
(vis-self-index int32 :offset-assert 2440)
(vis-adj-index int32 :offset-assert 2444)
(vis-buffer uint8 2048 :offset-assert 2448)
(mem-usage-block memory-usage-block :offset-assert 4496)
(mem-usage int32 :offset-assert 4500)
(code-memory-start pointer :offset-assert 4504)
(code-memory-end pointer :offset-assert 4508)
(load-start-time time-frame :offset-assert 4512)
(load-stop-time time-frame :offset-assert 4520)
(load-buffer uint32 2 :offset-assert 4528)
(load-buffer-size uint32 :offset-assert 4536)
(load-buffer-last uint32 :offset-assert 4540)
(load-buffer-mode load-buffer-mode :offset-assert 4544)
(display-start-time time-frame :offset-assert 4552)
(memory-mask uint32 :offset-assert 4560)
(task-mask task-mask :offset-assert 4564)
(tfrag-gs-test uint64 :offset-assert 4568)
(texture-dirty-masks texture-mask 10 :inline :offset-assert 4576)
(texture-mask texture-mask 18 :inline :offset-assert 4736)
(sky-mask texture-mask :inline :offset-assert 5024)
(tfrag-masks basic :offset-assert 5040)
(tfrag-dists pointer :offset-assert 5044)
(shrub-masks basic :offset-assert 5048)
(shrub-dists pointer :offset-assert 5052)
(alpha-masks basic :offset-assert 5056)
(alpha-dists pointer :offset-assert 5060)
(water-masks basic :offset-assert 5064)
(water-dists pointer :offset-assert 5068)
(tfrag-last-calls int32 6 :offset-assert 5072)
(texture-anim-array texture-anim-array 10 :offset-assert 5096)
(light-hash basic :offset-assert 5136)
(draw-priority float :offset-assert 5140)
(draw-index int32 :offset-assert 5144)
(part-engine basic :offset-assert 5148)
(user-object basic 4 :offset-assert 5152)
(loaded-text-info-count int32 :offset-assert 5168)
(loaded-text-info game-text-info 8 :offset-assert 5172)
(level-type basic :offset-assert 5204)
(load-order int64 :offset-assert 5208)
(pad int8 12 :offset-assert 5216)
)
:method-count-assert 30
:size-assert #x146c
+3 -3
View File
@@ -24,9 +24,9 @@
(goto cfg-4)
)
(format #t "[~8x] ~A~%" obj 'matrix)
(format #t "~1Tdata[16] @ #x~X~%" (-> obj data))
(format #t "~1Tvector[4] @ #x~X~%" (-> obj data))
(format #t "~1Tquad[4] @ #x~X~%" (-> obj data))
(format #t "~1Tdata[16] @ #x~X~%" (-> obj vector))
(format #t "~1Tvector[4] @ #x~X~%" (-> obj vector))
(format #t "~1Tquad[4] @ #x~X~%" (-> obj vector))
(format #t "~1Ttrans: #<vector @ #x~X>~%" (-> obj trans))
(label cfg-4)
obj
+348 -332
View File
@@ -5,9 +5,30 @@
;; INFO: this function exists in multiple non-identical object files
(defmethod inspect matrix ((obj matrix))
(format #t "[~8x] matrix~%" obj)
(format #t "~T[~F] [~F] [~F] [~F]~%" (-> obj data 0) (-> obj data 1) (-> obj data 2) (-> obj data 3))
(format #t "~T[~F] [~F] [~F] [~F]~%" (-> obj data 4) (-> obj data 5) (-> obj data 6) (-> obj data 7))
(format #t "~T[~F] [~F] [~F] [~F]~%" (-> obj data 8) (-> obj data 9) (-> obj data 10) (-> obj data 11))
(format
#t
"~T[~F] [~F] [~F] [~F]~%"
(-> obj vector 0 x)
(-> obj vector 0 y)
(-> obj vector 0 z)
(-> obj vector 0 w)
)
(format
#t
"~T[~F] [~F] [~F] [~F]~%"
(-> obj vector 1 x)
(-> obj vector 1 y)
(-> obj vector 1 z)
(-> obj vector 1 w)
)
(format
#t
"~T[~F] [~F] [~F] [~F]~%"
(-> obj vector 2 x)
(-> obj vector 2 y)
(-> obj vector 2 z)
(-> obj vector 2 w)
)
(format #t "~T[~F] [~F] [~F] [~F]~%" (-> obj trans x) (-> obj trans y) (-> obj trans z) (-> obj trans w))
obj
)
@@ -31,9 +52,9 @@
(set! (-> arg0 trans quad) (the-as uint128 0))
(let ((f0-0 1.0))
(set! (-> arg0 trans w) f0-0)
(set! (-> arg0 data 10) f0-0)
(set! (-> arg0 data 5) f0-0)
(set! (-> arg0 data 0) f0-0)
(set! (-> arg0 vector 2 z) f0-0)
(set! (-> arg0 vector 1 y) f0-0)
(set! (-> arg0 vector 0 x) f0-0)
)
arg0
)
@@ -42,11 +63,14 @@
(define *identity-matrix* (matrix-identity! (new 'global 'matrix)))
;; definition for symbol *hermite-matrix*, type matrix
(define *hermite-matrix*
(new 'static 'matrix
:data (new 'static 'array float 16 2.0 -2.0 1.0 1.0 -3.0 3.0 -2.0 -1.0 0.0 0.0 1.0 0.0 1.0 0.0 0.0 0.0)
)
)
(define *hermite-matrix* (new 'static 'matrix :vector (new 'static 'inline-array vector 4
(new 'static 'vector :x 2.0 :y -2.0 :z 1.0 :w 1.0)
(new 'static 'vector :x -3.0 :y 3.0 :z -2.0 :w -1.0)
(new 'static 'vector :z 1.0)
(new 'static 'vector :x 1.0)
)
)
)
;; definition for function matrix+!
(defun matrix+! ((arg0 matrix) (arg1 matrix) (arg2 matrix))
@@ -469,9 +493,9 @@
(set! (-> arg0 vector 1 quad) (the-as uint128 0))
(set! (-> arg0 vector 2 quad) (the-as uint128 0))
(set! (-> arg0 trans quad) (the-as uint128 0))
(set! (-> arg0 data 0) (-> arg1 x))
(set! (-> arg0 data 5) (-> arg1 y))
(set! (-> arg0 data 10) (-> arg1 z))
(set! (-> arg0 vector 0 x) (-> arg1 x))
(set! (-> arg0 vector 1 y) (-> arg1 y))
(set! (-> arg0 vector 2 z) (-> arg1 z))
(set! (-> arg0 trans w) 1.0)
arg0
)
@@ -508,9 +532,9 @@
(set! (-> arg0 vector 1 quad) (the-as uint128 0))
(set! (-> arg0 vector 2 quad) (the-as uint128 0))
(set! (-> arg0 trans quad) (the-as uint128 0))
(set! (-> arg0 data 0) (/ 1.0 (-> arg1 x)))
(set! (-> arg0 data 5) (/ 1.0 (-> arg1 y)))
(set! (-> arg0 data 10) (/ 1.0 (-> arg1 z)))
(set! (-> arg0 vector 0 x) (/ 1.0 (-> arg1 x)))
(set! (-> arg0 vector 1 y) (/ 1.0 (-> arg1 y)))
(set! (-> arg0 vector 2 z) (/ 1.0 (-> arg1 z)))
(set! (-> arg0 trans w) 1.0)
arg0
)
@@ -550,11 +574,11 @@
(set! (-> arg0 vector 1 quad) (the-as uint128 0))
(set! (-> arg0 vector 2 quad) (the-as uint128 0))
(set! (-> arg0 trans quad) (the-as uint128 0))
(set! (-> arg0 data 0) 1.0)
(set! (-> arg0 data 5) f0-0)
(set! (-> arg0 data 6) f30-0)
(set! (-> arg0 data 9) (- f30-0))
(set! (-> arg0 data 10) f0-0)
(set! (-> arg0 vector 0 x) 1.0)
(set! (-> arg0 vector 1 y) f0-0)
(set! (-> arg0 vector 1 z) f30-0)
(set! (-> arg0 vector 2 y) (- f30-0))
(set! (-> arg0 vector 2 z) f0-0)
)
(set! (-> arg0 trans w) 1.0)
arg0
@@ -570,11 +594,11 @@
(set! (-> arg0 vector 1 quad) (the-as uint128 0))
(set! (-> arg0 vector 2 quad) (the-as uint128 0))
(set! (-> arg0 trans quad) (the-as uint128 0))
(set! (-> arg0 data 0) f0-0)
(set! (-> arg0 data 2) (- f30-0))
(set! (-> arg0 data 5) 1.0)
(set! (-> arg0 data 8) f30-0)
(set! (-> arg0 data 10) f0-0)
(set! (-> arg0 vector 0 x) f0-0)
(set! (-> arg0 vector 0 z) (- f30-0))
(set! (-> arg0 vector 1 y) 1.0)
(set! (-> arg0 vector 2 x) f30-0)
(set! (-> arg0 vector 2 z) f0-0)
)
(set! (-> arg0 trans w) 1.0)
arg0
@@ -590,12 +614,12 @@
(set! (-> arg0 vector 1 quad) (the-as uint128 0))
(set! (-> arg0 vector 2 quad) (the-as uint128 0))
(set! (-> arg0 trans quad) (the-as uint128 0))
(set! (-> arg0 data 0) f0-0)
(set! (-> arg0 data 1) f30-0)
(set! (-> arg0 data 4) (- f30-0))
(set! (-> arg0 data 5) f0-0)
(set! (-> arg0 vector 0 x) f0-0)
(set! (-> arg0 vector 0 y) f30-0)
(set! (-> arg0 vector 1 x) (- f30-0))
(set! (-> arg0 vector 1 y) f0-0)
)
(set! (-> arg0 data 10) 1.0)
(set! (-> arg0 vector 2 z) 1.0)
(set! (-> arg0 trans w) 1.0)
arg0
)
@@ -644,25 +668,25 @@
(f1-0 (-> s5-0 y))
)
(let ((f4-0 (-> s5-0 z)))
(set! (-> arg0 data 0) (* f1-0 f4-0))
(set! (-> arg0 data 1) (* f1-0 f3-0))
(set! (-> arg0 data 2) (- f5-0))
(set! (-> arg0 data 3) 0.0)
(set! (-> arg0 vector 0 x) (* f1-0 f4-0))
(set! (-> arg0 vector 0 y) (* f1-0 f3-0))
(set! (-> arg0 vector 0 z) (- f5-0))
(set! (-> arg0 vector 0 w) 0.0)
(let ((f6-4 (* f2-0 f5-0))
(f5-1 (* f0-0 f5-0))
)
(set! (-> arg0 data 4) (- (* f6-4 f4-0) (* f0-0 f3-0)))
(set! (-> arg0 data 5) (+ (* f6-4 f3-0) (* f0-0 f4-0)))
(set! (-> arg0 data 6) (* f2-0 f1-0))
(set! (-> arg0 data 7) 0.0)
(set! (-> arg0 data 8) (+ (* f2-0 f3-0) (* f5-1 f4-0)))
(set! (-> arg0 data 9) (- (* f5-1 f3-0) (* f2-0 f4-0)))
(set! (-> arg0 vector 1 x) (- (* f6-4 f4-0) (* f0-0 f3-0)))
(set! (-> arg0 vector 1 y) (+ (* f6-4 f3-0) (* f0-0 f4-0)))
(set! (-> arg0 vector 1 z) (* f2-0 f1-0))
(set! (-> arg0 vector 1 w) 0.0)
(set! (-> arg0 vector 2 x) (+ (* f2-0 f3-0) (* f5-1 f4-0)))
(set! (-> arg0 vector 2 y) (- (* f5-1 f3-0) (* f2-0 f4-0)))
)
)
(set! (-> arg0 data 10) (* f0-0 f1-0))
(set! (-> arg0 vector 2 z) (* f0-0 f1-0))
)
)
(set! (-> arg0 data 11) 0.0)
(set! (-> arg0 vector 2 w) 0.0)
(.svf (&-> arg0 trans quad) vf0)
arg0
)
@@ -728,20 +752,20 @@
(f3-0 (-> s4-0 z))
(f4-0 (-> s5-0 z))
)
(set! (-> arg0 data 0) (- (* f1-1 f3-0) (* f0-5 f2-0 f4-0)))
(set! (-> arg0 data 1) (* f0-5 f5-0))
(set! (-> arg0 data 2) (- (+ (* f1-1 f4-0) (* f0-5 f2-0 f3-0))))
(set! (-> arg0 data 3) 0.0)
(set! (-> arg0 data 4) (* f5-0 f4-0))
(set! (-> arg0 data 5) f2-0)
(set! (-> arg0 data 6) (* f5-0 f3-0))
(set! (-> arg0 data 7) 0.0)
(set! (-> arg0 data 8) (+ (* f0-5 f3-0) (* f1-1 f2-0 f4-0)))
(set! (-> arg0 data 9) (- (* f1-1 f5-0)))
(set! (-> arg0 data 10) (- (* f1-1 f2-0 f3-0) (* f0-5 f4-0)))
(set! (-> arg0 vector 0 x) (- (* f1-1 f3-0) (* f0-5 f2-0 f4-0)))
(set! (-> arg0 vector 0 y) (* f0-5 f5-0))
(set! (-> arg0 vector 0 z) (- (+ (* f1-1 f4-0) (* f0-5 f2-0 f3-0))))
(set! (-> arg0 vector 0 w) 0.0)
(set! (-> arg0 vector 1 x) (* f5-0 f4-0))
(set! (-> arg0 vector 1 y) f2-0)
(set! (-> arg0 vector 1 z) (* f5-0 f3-0))
(set! (-> arg0 vector 1 w) 0.0)
(set! (-> arg0 vector 2 x) (+ (* f0-5 f3-0) (* f1-1 f2-0 f4-0)))
(set! (-> arg0 vector 2 y) (- (* f1-1 f5-0)))
(set! (-> arg0 vector 2 z) (- (* f1-1 f2-0 f3-0) (* f0-5 f4-0)))
)
)
(set! (-> arg0 data 11) 0.0)
(set! (-> arg0 vector 2 w) 0.0)
(set! (-> arg0 trans x) 0.0)
(set! (-> arg0 trans y) 0.0)
(set! (-> arg0 trans z) 0.0)
@@ -1061,15 +1085,15 @@
;; definition for function matrix-3x3-determinant
(defun matrix-3x3-determinant ((arg0 matrix))
(let ((f8-0 (-> arg0 data 0))
(f1-0 (-> arg0 data 1))
(f4-0 (-> arg0 data 2))
(f2-0 (-> arg0 data 4))
(f5-0 (-> arg0 data 5))
(f9-0 (-> arg0 data 6))
(f3-0 (-> arg0 data 8))
(f6-0 (-> arg0 data 9))
(f0-0 (-> arg0 data 10))
(let ((f8-0 (-> arg0 vector 0 x))
(f1-0 (-> arg0 vector 0 y))
(f4-0 (-> arg0 vector 0 z))
(f2-0 (-> arg0 vector 1 x))
(f5-0 (-> arg0 vector 1 y))
(f9-0 (-> arg0 vector 1 z))
(f3-0 (-> arg0 vector 2 x))
(f6-0 (-> arg0 vector 2 y))
(f0-0 (-> arg0 vector 2 z))
)
(- (+ (* f8-0 f5-0 f0-0) (* f1-0 f9-0 f3-0) (* f4-0 f2-0 f6-0))
(+ (* f8-0 f9-0 f6-0) (* f4-0 f5-0 f3-0) (* f1-0 f2-0 f0-0))
@@ -1102,32 +1126,32 @@
;; definition for function matrix-3x3-inverse!
(defun matrix-3x3-inverse! ((arg0 matrix) (arg1 matrix))
(let ((f0-0 (matrix-3x3-determinant arg1)))
(set! (-> arg0 data 0)
(/ (- (* (-> arg1 data 5) (-> arg1 data 10)) (* (-> arg1 data 6) (-> arg1 data 9))) f0-0)
(set! (-> arg0 vector 0 x)
(/ (- (* (-> arg1 vector 1 y) (-> arg1 vector 2 z)) (* (-> arg1 vector 1 z) (-> arg1 vector 2 y))) f0-0)
)
(set! (-> arg0 data 4)
(/ (- (* (-> arg1 data 6) (-> arg1 data 8)) (* (-> arg1 data 4) (-> arg1 data 10))) f0-0)
(set! (-> arg0 vector 1 x)
(/ (- (* (-> arg1 vector 1 z) (-> arg1 vector 2 x)) (* (-> arg1 vector 1 x) (-> arg1 vector 2 z))) f0-0)
)
(set! (-> arg0 data 8)
(/ (- (* (-> arg1 data 4) (-> arg1 data 9)) (* (-> arg1 data 5) (-> arg1 data 8))) f0-0)
(set! (-> arg0 vector 2 x)
(/ (- (* (-> arg1 vector 1 x) (-> arg1 vector 2 y)) (* (-> arg1 vector 1 y) (-> arg1 vector 2 x))) f0-0)
)
(set! (-> arg0 data 1)
(/ (- (* (-> arg1 data 9) (-> arg1 data 2)) (* (-> arg1 data 10) (-> arg1 data 1))) f0-0)
(set! (-> arg0 vector 0 y)
(/ (- (* (-> arg1 vector 2 y) (-> arg1 vector 0 z)) (* (-> arg1 vector 2 z) (-> arg1 vector 0 y))) f0-0)
)
(set! (-> arg0 data 5)
(/ (- (* (-> arg1 data 10) (-> arg1 data 0)) (* (-> arg1 data 8) (-> arg1 data 2))) f0-0)
(set! (-> arg0 vector 1 y)
(/ (- (* (-> arg1 vector 2 z) (-> arg1 vector 0 x)) (* (-> arg1 vector 2 x) (-> arg1 vector 0 z))) f0-0)
)
(set! (-> arg0 data 9)
(/ (- (* (-> arg1 data 8) (-> arg1 data 1)) (* (-> arg1 data 9) (-> arg1 data 0))) f0-0)
(set! (-> arg0 vector 2 y)
(/ (- (* (-> arg1 vector 2 x) (-> arg1 vector 0 y)) (* (-> arg1 vector 2 y) (-> arg1 vector 0 x))) f0-0)
)
(set! (-> arg0 data 2)
(/ (- (* (-> arg1 data 1) (-> arg1 data 6)) (* (-> arg1 data 2) (-> arg1 data 5))) f0-0)
(set! (-> arg0 vector 0 z)
(/ (- (* (-> arg1 vector 0 y) (-> arg1 vector 1 z)) (* (-> arg1 vector 0 z) (-> arg1 vector 1 y))) f0-0)
)
(set! (-> arg0 data 6)
(/ (- (* (-> arg1 data 2) (-> arg1 data 4)) (* (-> arg1 data 0) (-> arg1 data 6))) f0-0)
(set! (-> arg0 vector 1 z)
(/ (- (* (-> arg1 vector 0 z) (-> arg1 vector 1 x)) (* (-> arg1 vector 0 x) (-> arg1 vector 1 z))) f0-0)
)
(set! (-> arg0 data 10)
(/ (- (* (-> arg1 data 0) (-> arg1 data 5)) (* (-> arg1 data 1) (-> arg1 data 4))) f0-0)
(set! (-> arg0 vector 2 z)
(/ (- (* (-> arg1 vector 0 x) (-> arg1 vector 1 y)) (* (-> arg1 vector 0 y) (-> arg1 vector 1 x))) f0-0)
)
)
arg0
@@ -1136,32 +1160,32 @@
;; definition for function matrix-3x3-inverse-transpose!
(defun matrix-3x3-inverse-transpose! ((arg0 matrix) (arg1 matrix))
(let ((f0-0 (matrix-3x3-determinant arg1)))
(set! (-> arg0 data 0)
(/ (- (* (-> arg1 data 5) (-> arg1 data 10)) (* (-> arg1 data 6) (-> arg1 data 9))) f0-0)
(set! (-> arg0 vector 0 x)
(/ (- (* (-> arg1 vector 1 y) (-> arg1 vector 2 z)) (* (-> arg1 vector 1 z) (-> arg1 vector 2 y))) f0-0)
)
(set! (-> arg0 data 1)
(/ (- (* (-> arg1 data 6) (-> arg1 data 8)) (* (-> arg1 data 4) (-> arg1 data 10))) f0-0)
(set! (-> arg0 vector 0 y)
(/ (- (* (-> arg1 vector 1 z) (-> arg1 vector 2 x)) (* (-> arg1 vector 1 x) (-> arg1 vector 2 z))) f0-0)
)
(set! (-> arg0 data 2)
(/ (- (* (-> arg1 data 4) (-> arg1 data 9)) (* (-> arg1 data 5) (-> arg1 data 8))) f0-0)
(set! (-> arg0 vector 0 z)
(/ (- (* (-> arg1 vector 1 x) (-> arg1 vector 2 y)) (* (-> arg1 vector 1 y) (-> arg1 vector 2 x))) f0-0)
)
(set! (-> arg0 data 4)
(/ (- (* (-> arg1 data 9) (-> arg1 data 2)) (* (-> arg1 data 10) (-> arg1 data 1))) f0-0)
(set! (-> arg0 vector 1 x)
(/ (- (* (-> arg1 vector 2 y) (-> arg1 vector 0 z)) (* (-> arg1 vector 2 z) (-> arg1 vector 0 y))) f0-0)
)
(set! (-> arg0 data 5)
(/ (- (* (-> arg1 data 10) (-> arg1 data 0)) (* (-> arg1 data 8) (-> arg1 data 2))) f0-0)
(set! (-> arg0 vector 1 y)
(/ (- (* (-> arg1 vector 2 z) (-> arg1 vector 0 x)) (* (-> arg1 vector 2 x) (-> arg1 vector 0 z))) f0-0)
)
(set! (-> arg0 data 6)
(/ (- (* (-> arg1 data 8) (-> arg1 data 1)) (* (-> arg1 data 9) (-> arg1 data 0))) f0-0)
(set! (-> arg0 vector 1 z)
(/ (- (* (-> arg1 vector 2 x) (-> arg1 vector 0 y)) (* (-> arg1 vector 2 y) (-> arg1 vector 0 x))) f0-0)
)
(set! (-> arg0 data 8)
(/ (- (* (-> arg1 data 1) (-> arg1 data 6)) (* (-> arg1 data 2) (-> arg1 data 5))) f0-0)
(set! (-> arg0 vector 2 x)
(/ (- (* (-> arg1 vector 0 y) (-> arg1 vector 1 z)) (* (-> arg1 vector 0 z) (-> arg1 vector 1 y))) f0-0)
)
(set! (-> arg0 data 9)
(/ (- (* (-> arg1 data 2) (-> arg1 data 4)) (* (-> arg1 data 0) (-> arg1 data 6))) f0-0)
(set! (-> arg0 vector 2 y)
(/ (- (* (-> arg1 vector 0 z) (-> arg1 vector 1 x)) (* (-> arg1 vector 0 x) (-> arg1 vector 1 z))) f0-0)
)
(set! (-> arg0 data 10)
(/ (- (* (-> arg1 data 0) (-> arg1 data 5)) (* (-> arg1 data 1) (-> arg1 data 4))) f0-0)
(set! (-> arg0 vector 2 z)
(/ (- (* (-> arg1 vector 0 x) (-> arg1 vector 1 y)) (* (-> arg1 vector 0 y) (-> arg1 vector 1 x))) f0-0)
)
)
arg0
@@ -1233,9 +1257,9 @@
(vf16 :class vf)
)
(init-vf0-vector)
(let ((f2-0 (-> arg1 data 0))
(f0-0 (-> arg1 data 1))
(f1-0 (-> arg1 data 2))
(let ((f2-0 (-> arg1 vector 0 x))
(f0-0 (-> arg1 vector 0 y))
(f1-0 (-> arg1 vector 0 z))
(v1-0 #x3f800000)
)
(.lvf vf10 (&-> arg1 vector 0 quad))
@@ -1277,18 +1301,18 @@
;; definition for function matrix-4x4-determinant
(defun matrix-4x4-determinant ((arg0 matrix))
(let ((f15-0 (-> arg0 data 0))
(f14-0 (-> arg0 data 1))
(f10-0 (-> arg0 data 2))
(f2-0 (-> arg0 data 3))
(f9-0 (-> arg0 data 4))
(f6-0 (-> arg0 data 5))
(f3-0 (-> arg0 data 6))
(f11-0 (-> arg0 data 7))
(f5-0 (-> arg0 data 8))
(f1-0 (-> arg0 data 9))
(f8-0 (-> arg0 data 10))
(f13-0 (-> arg0 data 11))
(let ((f15-0 (-> arg0 vector 0 x))
(f14-0 (-> arg0 vector 0 y))
(f10-0 (-> arg0 vector 0 z))
(f2-0 (-> arg0 vector 0 w))
(f9-0 (-> arg0 vector 1 x))
(f6-0 (-> arg0 vector 1 y))
(f3-0 (-> arg0 vector 1 z))
(f11-0 (-> arg0 vector 1 w))
(f5-0 (-> arg0 vector 2 x))
(f1-0 (-> arg0 vector 2 y))
(f8-0 (-> arg0 vector 2 z))
(f13-0 (-> arg0 vector 2 w))
(f0-0 (-> arg0 trans x))
(f7-0 (-> arg0 trans y))
(f4-0 (-> arg0 trans z))
@@ -1327,225 +1351,225 @@
;; definition for function matrix-4x4-inverse-transpose!
(defun matrix-4x4-inverse-transpose! ((arg0 matrix) (arg1 matrix))
(let ((f0-0 (matrix-4x4-determinant arg1)))
(let ((f9-0 (-> arg1 data 5))
(f2-0 (-> arg1 data 6))
(f5-0 (-> arg1 data 7))
(f3-0 (-> arg1 data 9))
(f6-0 (-> arg1 data 10))
(f10-0 (-> arg1 data 11))
(let ((f9-0 (-> arg1 vector 1 y))
(f2-0 (-> arg1 vector 1 z))
(f5-0 (-> arg1 vector 1 w))
(f3-0 (-> arg1 vector 2 y))
(f6-0 (-> arg1 vector 2 z))
(f10-0 (-> arg1 vector 2 w))
(f4-0 (-> arg1 trans y))
(f7-0 (-> arg1 trans z))
(f1-0 (-> arg1 trans w))
)
(set! (-> arg0 data 0) (/ (- (+ (* f9-0 f6-0 f1-0) (* f2-0 f10-0 f4-0) (* f5-0 f3-0 f7-0))
(+ (* f9-0 f10-0 f7-0) (* f5-0 f6-0 f4-0) (* f2-0 f3-0 f1-0))
)
f0-0
)
(set! (-> arg0 vector 0 x) (/ (- (+ (* f9-0 f6-0 f1-0) (* f2-0 f10-0 f4-0) (* f5-0 f3-0 f7-0))
(+ (* f9-0 f10-0 f7-0) (* f5-0 f6-0 f4-0) (* f2-0 f3-0 f1-0))
)
f0-0
)
)
)
(let ((f9-2 (-> arg1 data 4))
(f2-2 (-> arg1 data 6))
(f5-2 (-> arg1 data 7))
(f3-1 (-> arg1 data 8))
(f6-1 (-> arg1 data 10))
(f10-1 (-> arg1 data 11))
(let ((f9-2 (-> arg1 vector 1 x))
(f2-2 (-> arg1 vector 1 z))
(f5-2 (-> arg1 vector 1 w))
(f3-1 (-> arg1 vector 2 x))
(f6-1 (-> arg1 vector 2 z))
(f10-1 (-> arg1 vector 2 w))
(f4-3 (-> arg1 trans x))
(f7-2 (-> arg1 trans z))
(f1-6 (-> arg1 trans w))
)
(set! (-> arg0 data 1) (- (/ (- (+ (* f9-2 f6-1 f1-6) (* f2-2 f10-1 f4-3) (* f5-2 f3-1 f7-2))
(+ (* f9-2 f10-1 f7-2) (* f5-2 f6-1 f4-3) (* f2-2 f3-1 f1-6))
)
f0-0
)
)
(set! (-> arg0 vector 0 y) (- (/ (- (+ (* f9-2 f6-1 f1-6) (* f2-2 f10-1 f4-3) (* f5-2 f3-1 f7-2))
(+ (* f9-2 f10-1 f7-2) (* f5-2 f6-1 f4-3) (* f2-2 f3-1 f1-6))
)
f0-0
)
)
)
)
(let ((f9-4 (-> arg1 data 4))
(f2-4 (-> arg1 data 5))
(f5-4 (-> arg1 data 7))
(f3-2 (-> arg1 data 8))
(f6-2 (-> arg1 data 9))
(f10-2 (-> arg1 data 11))
(let ((f9-4 (-> arg1 vector 1 x))
(f2-4 (-> arg1 vector 1 y))
(f5-4 (-> arg1 vector 1 w))
(f3-2 (-> arg1 vector 2 x))
(f6-2 (-> arg1 vector 2 y))
(f10-2 (-> arg1 vector 2 w))
(f4-6 (-> arg1 trans x))
(f7-4 (-> arg1 trans y))
(f1-13 (-> arg1 trans w))
)
(set! (-> arg0 data 2) (/ (- (+ (* f9-4 f6-2 f1-13) (* f2-4 f10-2 f4-6) (* f5-4 f3-2 f7-4))
(+ (* f9-4 f10-2 f7-4) (* f5-4 f6-2 f4-6) (* f2-4 f3-2 f1-13))
)
f0-0
)
(set! (-> arg0 vector 0 z) (/ (- (+ (* f9-4 f6-2 f1-13) (* f2-4 f10-2 f4-6) (* f5-4 f3-2 f7-4))
(+ (* f9-4 f10-2 f7-4) (* f5-4 f6-2 f4-6) (* f2-4 f3-2 f1-13))
)
f0-0
)
)
)
(let ((f9-6 (-> arg1 data 4))
(f2-6 (-> arg1 data 5))
(f5-6 (-> arg1 data 6))
(f3-3 (-> arg1 data 8))
(f6-3 (-> arg1 data 9))
(f10-3 (-> arg1 data 10))
(let ((f9-6 (-> arg1 vector 1 x))
(f2-6 (-> arg1 vector 1 y))
(f5-6 (-> arg1 vector 1 z))
(f3-3 (-> arg1 vector 2 x))
(f6-3 (-> arg1 vector 2 y))
(f10-3 (-> arg1 vector 2 z))
(f4-9 (-> arg1 trans x))
(f7-6 (-> arg1 trans y))
(f1-19 (-> arg1 trans z))
)
(set! (-> arg0 data 3) (- (/ (- (+ (* f9-6 f6-3 f1-19) (* f2-6 f10-3 f4-9) (* f5-6 f3-3 f7-6))
(+ (* f9-6 f10-3 f7-6) (* f5-6 f6-3 f4-9) (* f2-6 f3-3 f1-19))
)
f0-0
)
)
(set! (-> arg0 vector 0 w) (- (/ (- (+ (* f9-6 f6-3 f1-19) (* f2-6 f10-3 f4-9) (* f5-6 f3-3 f7-6))
(+ (* f9-6 f10-3 f7-6) (* f5-6 f6-3 f4-9) (* f2-6 f3-3 f1-19))
)
f0-0
)
)
)
)
(let ((f9-8 (-> arg1 data 1))
(f2-8 (-> arg1 data 2))
(f5-8 (-> arg1 data 3))
(f3-4 (-> arg1 data 9))
(f6-4 (-> arg1 data 10))
(f10-4 (-> arg1 data 11))
(let ((f9-8 (-> arg1 vector 0 y))
(f2-8 (-> arg1 vector 0 z))
(f5-8 (-> arg1 vector 0 w))
(f3-4 (-> arg1 vector 2 y))
(f6-4 (-> arg1 vector 2 z))
(f10-4 (-> arg1 vector 2 w))
(f4-12 (-> arg1 trans y))
(f7-8 (-> arg1 trans z))
(f1-26 (-> arg1 trans w))
)
(set! (-> arg0 data 4) (- (/ (- (+ (* f9-8 f6-4 f1-26) (* f2-8 f10-4 f4-12) (* f5-8 f3-4 f7-8))
(+ (* f9-8 f10-4 f7-8) (* f5-8 f6-4 f4-12) (* f2-8 f3-4 f1-26))
)
f0-0
)
)
(set! (-> arg0 vector 1 x) (- (/ (- (+ (* f9-8 f6-4 f1-26) (* f2-8 f10-4 f4-12) (* f5-8 f3-4 f7-8))
(+ (* f9-8 f10-4 f7-8) (* f5-8 f6-4 f4-12) (* f2-8 f3-4 f1-26))
)
f0-0
)
)
)
)
(let ((f9-10 (-> arg1 data 0))
(f2-10 (-> arg1 data 2))
(f5-10 (-> arg1 data 3))
(f3-5 (-> arg1 data 8))
(f6-5 (-> arg1 data 10))
(f10-5 (-> arg1 data 11))
(let ((f9-10 (-> arg1 vector 0 x))
(f2-10 (-> arg1 vector 0 z))
(f5-10 (-> arg1 vector 0 w))
(f3-5 (-> arg1 vector 2 x))
(f6-5 (-> arg1 vector 2 z))
(f10-5 (-> arg1 vector 2 w))
(f4-15 (-> arg1 trans x))
(f7-10 (-> arg1 trans z))
(f1-33 (-> arg1 trans w))
)
(set! (-> arg0 data 5) (/ (- (+ (* f9-10 f6-5 f1-33) (* f2-10 f10-5 f4-15) (* f5-10 f3-5 f7-10))
(+ (* f9-10 f10-5 f7-10) (* f5-10 f6-5 f4-15) (* f2-10 f3-5 f1-33))
)
f0-0
)
(set! (-> arg0 vector 1 y) (/ (- (+ (* f9-10 f6-5 f1-33) (* f2-10 f10-5 f4-15) (* f5-10 f3-5 f7-10))
(+ (* f9-10 f10-5 f7-10) (* f5-10 f6-5 f4-15) (* f2-10 f3-5 f1-33))
)
f0-0
)
)
)
(let ((f9-12 (-> arg1 data 0))
(f2-12 (-> arg1 data 1))
(f5-12 (-> arg1 data 3))
(f3-6 (-> arg1 data 8))
(f6-6 (-> arg1 data 9))
(f10-6 (-> arg1 data 11))
(let ((f9-12 (-> arg1 vector 0 x))
(f2-12 (-> arg1 vector 0 y))
(f5-12 (-> arg1 vector 0 w))
(f3-6 (-> arg1 vector 2 x))
(f6-6 (-> arg1 vector 2 y))
(f10-6 (-> arg1 vector 2 w))
(f4-18 (-> arg1 trans x))
(f7-12 (-> arg1 trans y))
(f1-39 (-> arg1 trans w))
)
(set! (-> arg0 data 6) (- (/ (- (+ (* f9-12 f6-6 f1-39) (* f2-12 f10-6 f4-18) (* f5-12 f3-6 f7-12))
(+ (* f9-12 f10-6 f7-12) (* f5-12 f6-6 f4-18) (* f2-12 f3-6 f1-39))
)
f0-0
)
)
(set! (-> arg0 vector 1 z) (- (/ (- (+ (* f9-12 f6-6 f1-39) (* f2-12 f10-6 f4-18) (* f5-12 f3-6 f7-12))
(+ (* f9-12 f10-6 f7-12) (* f5-12 f6-6 f4-18) (* f2-12 f3-6 f1-39))
)
f0-0
)
)
)
)
(let ((f9-14 (-> arg1 data 0))
(f2-14 (-> arg1 data 1))
(f5-14 (-> arg1 data 2))
(f3-7 (-> arg1 data 8))
(f6-7 (-> arg1 data 9))
(f10-7 (-> arg1 data 10))
(let ((f9-14 (-> arg1 vector 0 x))
(f2-14 (-> arg1 vector 0 y))
(f5-14 (-> arg1 vector 0 z))
(f3-7 (-> arg1 vector 2 x))
(f6-7 (-> arg1 vector 2 y))
(f10-7 (-> arg1 vector 2 z))
(f4-21 (-> arg1 trans x))
(f7-14 (-> arg1 trans y))
(f1-46 (-> arg1 trans z))
)
(set! (-> arg0 data 7) (/ (- (+ (* f9-14 f6-7 f1-46) (* f2-14 f10-7 f4-21) (* f5-14 f3-7 f7-14))
(+ (* f9-14 f10-7 f7-14) (* f5-14 f6-7 f4-21) (* f2-14 f3-7 f1-46))
)
f0-0
)
(set! (-> arg0 vector 1 w) (/ (- (+ (* f9-14 f6-7 f1-46) (* f2-14 f10-7 f4-21) (* f5-14 f3-7 f7-14))
(+ (* f9-14 f10-7 f7-14) (* f5-14 f6-7 f4-21) (* f2-14 f3-7 f1-46))
)
f0-0
)
)
)
(let ((f9-16 (-> arg1 data 1))
(f2-16 (-> arg1 data 2))
(f5-16 (-> arg1 data 3))
(f3-8 (-> arg1 data 5))
(f6-8 (-> arg1 data 6))
(f10-8 (-> arg1 data 7))
(let ((f9-16 (-> arg1 vector 0 y))
(f2-16 (-> arg1 vector 0 z))
(f5-16 (-> arg1 vector 0 w))
(f3-8 (-> arg1 vector 1 y))
(f6-8 (-> arg1 vector 1 z))
(f10-8 (-> arg1 vector 1 w))
(f4-24 (-> arg1 trans y))
(f7-16 (-> arg1 trans z))
(f1-52 (-> arg1 trans w))
)
(set! (-> arg0 data 8) (/ (- (+ (* f9-16 f6-8 f1-52) (* f2-16 f10-8 f4-24) (* f5-16 f3-8 f7-16))
(+ (* f9-16 f10-8 f7-16) (* f5-16 f6-8 f4-24) (* f2-16 f3-8 f1-52))
)
f0-0
)
(set! (-> arg0 vector 2 x) (/ (- (+ (* f9-16 f6-8 f1-52) (* f2-16 f10-8 f4-24) (* f5-16 f3-8 f7-16))
(+ (* f9-16 f10-8 f7-16) (* f5-16 f6-8 f4-24) (* f2-16 f3-8 f1-52))
)
f0-0
)
)
)
(let ((f9-18 (-> arg1 data 0))
(f2-18 (-> arg1 data 2))
(f5-18 (-> arg1 data 3))
(f3-9 (-> arg1 data 4))
(f6-9 (-> arg1 data 6))
(f10-9 (-> arg1 data 7))
(let ((f9-18 (-> arg1 vector 0 x))
(f2-18 (-> arg1 vector 0 z))
(f5-18 (-> arg1 vector 0 w))
(f3-9 (-> arg1 vector 1 x))
(f6-9 (-> arg1 vector 1 z))
(f10-9 (-> arg1 vector 1 w))
(f4-27 (-> arg1 trans x))
(f7-18 (-> arg1 trans z))
(f1-58 (-> arg1 trans w))
)
(set! (-> arg0 data 9) (- (/ (- (+ (* f9-18 f6-9 f1-58) (* f2-18 f10-9 f4-27) (* f5-18 f3-9 f7-18))
(+ (* f9-18 f10-9 f7-18) (* f5-18 f6-9 f4-27) (* f2-18 f3-9 f1-58))
)
f0-0
)
)
(set! (-> arg0 vector 2 y) (- (/ (- (+ (* f9-18 f6-9 f1-58) (* f2-18 f10-9 f4-27) (* f5-18 f3-9 f7-18))
(+ (* f9-18 f10-9 f7-18) (* f5-18 f6-9 f4-27) (* f2-18 f3-9 f1-58))
)
f0-0
)
)
)
)
(let ((f9-20 (-> arg1 data 0))
(f2-20 (-> arg1 data 1))
(f5-20 (-> arg1 data 3))
(f3-10 (-> arg1 data 4))
(f6-10 (-> arg1 data 5))
(f10-10 (-> arg1 data 7))
(let ((f9-20 (-> arg1 vector 0 x))
(f2-20 (-> arg1 vector 0 y))
(f5-20 (-> arg1 vector 0 w))
(f3-10 (-> arg1 vector 1 x))
(f6-10 (-> arg1 vector 1 y))
(f10-10 (-> arg1 vector 1 w))
(f4-30 (-> arg1 trans x))
(f7-20 (-> arg1 trans y))
(f1-65 (-> arg1 trans w))
)
(set! (-> arg0 data 10) (/ (- (+ (* f9-20 f6-10 f1-65) (* f2-20 f10-10 f4-30) (* f5-20 f3-10 f7-20))
(+ (* f9-20 f10-10 f7-20) (* f5-20 f6-10 f4-30) (* f2-20 f3-10 f1-65))
(set! (-> arg0 vector 2 z) (/ (- (+ (* f9-20 f6-10 f1-65) (* f2-20 f10-10 f4-30) (* f5-20 f3-10 f7-20))
(+ (* f9-20 f10-10 f7-20) (* f5-20 f6-10 f4-30) (* f2-20 f3-10 f1-65))
)
f0-0
)
f0-0
)
)
)
(let ((f9-22 (-> arg1 data 0))
(f2-22 (-> arg1 data 1))
(f5-22 (-> arg1 data 2))
(f3-11 (-> arg1 data 4))
(f6-11 (-> arg1 data 5))
(f10-11 (-> arg1 data 6))
(let ((f9-22 (-> arg1 vector 0 x))
(f2-22 (-> arg1 vector 0 y))
(f5-22 (-> arg1 vector 0 z))
(f3-11 (-> arg1 vector 1 x))
(f6-11 (-> arg1 vector 1 y))
(f10-11 (-> arg1 vector 1 z))
(f4-33 (-> arg1 trans x))
(f7-22 (-> arg1 trans y))
(f1-71 (-> arg1 trans z))
)
(set! (-> arg0 data 11) (- (/ (- (+ (* f9-22 f6-11 f1-71) (* f2-22 f10-11 f4-33) (* f5-22 f3-11 f7-22))
(+ (* f9-22 f10-11 f7-22) (* f5-22 f6-11 f4-33) (* f2-22 f3-11 f1-71))
(set! (-> arg0 vector 2 w) (- (/ (- (+ (* f9-22 f6-11 f1-71) (* f2-22 f10-11 f4-33) (* f5-22 f3-11 f7-22))
(+ (* f9-22 f10-11 f7-22) (* f5-22 f6-11 f4-33) (* f2-22 f3-11 f1-71))
)
f0-0
)
f0-0
)
)
)
)
(let ((f9-24 (-> arg1 data 1))
(f2-24 (-> arg1 data 2))
(f5-24 (-> arg1 data 3))
(f3-12 (-> arg1 data 5))
(f6-12 (-> arg1 data 6))
(f10-12 (-> arg1 data 7))
(f4-36 (-> arg1 data 9))
(f7-24 (-> arg1 data 10))
(f1-78 (-> arg1 data 11))
(let ((f9-24 (-> arg1 vector 0 y))
(f2-24 (-> arg1 vector 0 z))
(f5-24 (-> arg1 vector 0 w))
(f3-12 (-> arg1 vector 1 y))
(f6-12 (-> arg1 vector 1 z))
(f10-12 (-> arg1 vector 1 w))
(f4-36 (-> arg1 vector 2 y))
(f7-24 (-> arg1 vector 2 z))
(f1-78 (-> arg1 vector 2 w))
)
(set! (-> arg0 trans x) (- (/ (- (+ (* f9-24 f6-12 f1-78) (* f2-24 f10-12 f4-36) (* f5-24 f3-12 f7-24))
(+ (* f9-24 f10-12 f7-24) (* f5-24 f6-12 f4-36) (* f2-24 f3-12 f1-78))
@@ -1555,15 +1579,15 @@
)
)
)
(let ((f9-26 (-> arg1 data 0))
(f2-26 (-> arg1 data 2))
(f5-26 (-> arg1 data 3))
(f3-13 (-> arg1 data 4))
(f6-13 (-> arg1 data 6))
(f10-13 (-> arg1 data 7))
(f4-39 (-> arg1 data 8))
(f7-26 (-> arg1 data 10))
(f1-85 (-> arg1 data 11))
(let ((f9-26 (-> arg1 vector 0 x))
(f2-26 (-> arg1 vector 0 z))
(f5-26 (-> arg1 vector 0 w))
(f3-13 (-> arg1 vector 1 x))
(f6-13 (-> arg1 vector 1 z))
(f10-13 (-> arg1 vector 1 w))
(f4-39 (-> arg1 vector 2 x))
(f7-26 (-> arg1 vector 2 z))
(f1-85 (-> arg1 vector 2 w))
)
(set! (-> arg0 trans y) (/ (- (+ (* f9-26 f6-13 f1-85) (* f2-26 f10-13 f4-39) (* f5-26 f3-13 f7-26))
(+ (* f9-26 f10-13 f7-26) (* f5-26 f6-13 f4-39) (* f2-26 f3-13 f1-85))
@@ -1572,15 +1596,15 @@
)
)
)
(let ((f9-28 (-> arg1 data 0))
(f2-28 (-> arg1 data 1))
(f5-28 (-> arg1 data 3))
(f3-14 (-> arg1 data 4))
(f6-14 (-> arg1 data 5))
(f10-14 (-> arg1 data 7))
(f4-42 (-> arg1 data 8))
(f7-28 (-> arg1 data 9))
(f1-91 (-> arg1 data 11))
(let ((f9-28 (-> arg1 vector 0 x))
(f2-28 (-> arg1 vector 0 y))
(f5-28 (-> arg1 vector 0 w))
(f3-14 (-> arg1 vector 1 x))
(f6-14 (-> arg1 vector 1 y))
(f10-14 (-> arg1 vector 1 w))
(f4-42 (-> arg1 vector 2 x))
(f7-28 (-> arg1 vector 2 y))
(f1-91 (-> arg1 vector 2 w))
)
(set! (-> arg0 trans z) (- (/ (- (+ (* f9-28 f6-14 f1-91) (* f2-28 f10-14 f4-42) (* f5-28 f3-14 f7-28))
(+ (* f9-28 f10-14 f7-28) (* f5-28 f6-14 f4-42) (* f2-28 f3-14 f1-91))
@@ -1590,15 +1614,15 @@
)
)
)
(let ((f8-60 (-> arg1 data 0))
(f1-98 (-> arg1 data 1))
(f5-30 (-> arg1 data 2))
(f2-30 (-> arg1 data 4))
(f6-15 (-> arg1 data 5))
(f9-30 (-> arg1 data 6))
(f4-45 (-> arg1 data 8))
(f7-30 (-> arg1 data 9))
(f3-15 (-> arg1 data 10))
(let ((f8-60 (-> arg1 vector 0 x))
(f1-98 (-> arg1 vector 0 y))
(f5-30 (-> arg1 vector 0 z))
(f2-30 (-> arg1 vector 1 x))
(f6-15 (-> arg1 vector 1 y))
(f9-30 (-> arg1 vector 1 z))
(f4-45 (-> arg1 vector 2 x))
(f7-30 (-> arg1 vector 2 y))
(f3-15 (-> arg1 vector 2 z))
)
(set! (-> arg0 trans w) (/ (- (+ (* f8-60 f6-15 f3-15) (* f1-98 f9-30 f4-45) (* f5-30 f2-30 f7-30))
(+ (* f8-60 f9-30 f7-30) (* f5-30 f6-15 f4-45) (* f1-98 f2-30 f3-15))
@@ -1613,8 +1637,8 @@
;; definition for function matrix-y-angle
(defun matrix-y-angle ((arg0 matrix))
(let ((v1-0 (&-> arg0 data 8)))
(atan (-> v1-0 0) (-> v1-0 2))
(let ((v1-0 (-> arg0 vector 2)))
(atan (-> v1-0 x) (-> v1-0 z))
)
)
@@ -1646,18 +1670,18 @@
;; definition for function matrix->scale
(defun matrix->scale ((arg0 matrix) (arg1 vector))
(set! (-> arg1 x) (vector-length (the-as vector (-> arg0 data))))
(set! (-> arg1 y) (vector-length (the-as vector (&-> arg0 data 4))))
(set! (-> arg1 z) (vector-length (the-as vector (&-> arg0 data 8))))
(set! (-> arg1 x) (vector-length (the-as vector (-> arg0 vector))))
(set! (-> arg1 y) (vector-length (-> arg0 vector 1)))
(set! (-> arg1 z) (vector-length (-> arg0 vector 2)))
(set! (-> arg1 w) 1.0)
arg1
)
;; definition for function matrix<-scale
(defun matrix<-scale ((arg0 matrix) (arg1 vector))
(vector-normalize! (the-as vector (-> arg0 data)) (-> arg1 x))
(vector-normalize! (the-as vector (&-> arg0 data 4)) (-> arg1 y))
(vector-normalize! (the-as vector (&-> arg0 data 8)) (-> arg1 z))
(vector-normalize! (the-as vector (-> arg0 vector)) (-> arg1 x))
(vector-normalize! (-> arg0 vector 1) (-> arg1 y))
(vector-normalize! (-> arg0 vector 2) (-> arg1 z))
arg0
)
@@ -1677,9 +1701,9 @@
(set! (-> s5-0 trans quad) a2-1)
)
(vector-reset! (-> s5-0 trans))
(vector-normalize! (the-as vector (-> s5-0 data)) 1.0)
(vector-normalize! (the-as vector (&-> s5-0 data 4)) 1.0)
(vector-normalize! (the-as vector (&-> s5-0 data 8)) 1.0)
(vector-normalize! (the-as vector (-> s5-0 vector)) 1.0)
(vector-normalize! (-> s5-0 vector 1) 1.0)
(vector-normalize! (-> s5-0 vector 2) 1.0)
(matrix->quaternion arg1 s5-0)
)
)
@@ -1689,13 +1713,13 @@
(let ((s5-0 (matrix->scale arg0 (new 'stack-no-clear 'vector)))
(s4-1 (quaternion->matrix (new 'stack-no-clear 'matrix) arg1))
)
(vector-normalize-copy! (the-as vector (-> arg0 data)) (the-as vector (-> s4-1 data)) (-> s5-0 x))
(vector-normalize-copy! (the-as vector (&-> arg0 data 4)) (the-as vector (&-> s4-1 data 4)) (-> s5-0 y))
(vector-normalize-copy! (the-as vector (&-> arg0 data 8)) (the-as vector (&-> s4-1 data 8)) (-> s5-0 z))
(vector-normalize-copy! (the-as vector (-> arg0 vector)) (the-as vector (-> s4-1 vector)) (-> s5-0 x))
(vector-normalize-copy! (-> arg0 vector 1) (-> s4-1 vector 1) (-> s5-0 y))
(vector-normalize-copy! (-> arg0 vector 2) (-> s4-1 vector 2) (-> s5-0 z))
)
(set! (-> arg0 data 3) 0.0)
(set! (-> arg0 data 7) 0.0)
(set! (-> arg0 data 11) 0.0)
(set! (-> arg0 vector 0 w) 0.0)
(set! (-> arg0 vector 1 w) 0.0)
(set! (-> arg0 vector 2 w) 0.0)
arg0
)
@@ -1727,26 +1751,18 @@
(set! (-> s4-0 vector 2 quad) a1-1)
(set! (-> s4-0 trans quad) a2-1)
)
(vector-normalize! (the-as vector (-> s4-0 data)) 1.0)
(vector-normalize! (the-as vector (&-> s4-0 data 4)) 1.0)
(vector-normalize! (the-as vector (&-> s4-0 data 8)) 1.0)
(vector-cross!
(the-as vector (&-> s4-0 data 8))
(the-as vector (-> s4-0 data))
(the-as vector (&-> s4-0 data 4))
)
(vector-cross!
(the-as vector (&-> s4-0 data 4))
(the-as vector (&-> s4-0 data 8))
(the-as vector (-> s4-0 data))
)
(vector-normalize! (the-as vector (-> s4-0 vector)) 1.0)
(vector-normalize! (-> s4-0 vector 1) 1.0)
(vector-normalize! (-> s4-0 vector 2) 1.0)
(vector-cross! (-> s4-0 vector 2) (the-as vector (-> s4-0 vector)) (-> s4-0 vector 1))
(vector-cross! (-> s4-0 vector 1) (-> s4-0 vector 2) (the-as vector (-> s4-0 vector)))
(matrix->quaternion (-> arg0 quat) s4-0)
)
(set-vector!
(-> arg0 scale)
(vector-length (the-as vector (-> arg1 data)))
(vector-length (the-as vector (&-> arg1 data 4)))
(vector-length (the-as vector (&-> arg1 data 8)))
(vector-length (the-as vector (-> arg1 vector)))
(vector-length (-> arg1 vector 1))
(vector-length (-> arg1 vector 2))
1.0
)
arg0
@@ -1778,18 +1794,18 @@
(f12-6 (- f5-0 (+ (* f6-0 f8-1) (* f5-0 f4-2) (* f2-0 f10-2))))
(f2-1 (- f2-0 (+ (* f6-0 f9-2) (* f5-0 f10-2) (* f2-0 f7-2))))
)
(set! (-> arg0 data 0) f3-2)
(set! (-> arg0 data 1) f8-1)
(set! (-> arg0 data 2) f9-2)
(set! (-> arg0 data 3) f1-0)
(set! (-> arg0 data 4) f8-1)
(set! (-> arg0 data 5) f4-2)
(set! (-> arg0 data 6) f10-2)
(set! (-> arg0 data 7) f1-0)
(set! (-> arg0 data 8) f9-2)
(set! (-> arg0 data 9) f10-2)
(set! (-> arg0 data 10) f7-2)
(set! (-> arg0 data 11) f1-0)
(set! (-> arg0 vector 0 x) f3-2)
(set! (-> arg0 vector 0 y) f8-1)
(set! (-> arg0 vector 0 z) f9-2)
(set! (-> arg0 vector 0 w) f1-0)
(set! (-> arg0 vector 1 x) f8-1)
(set! (-> arg0 vector 1 y) f4-2)
(set! (-> arg0 vector 1 z) f10-2)
(set! (-> arg0 vector 1 w) f1-0)
(set! (-> arg0 vector 2 x) f9-2)
(set! (-> arg0 vector 2 y) f10-2)
(set! (-> arg0 vector 2 z) f7-2)
(set! (-> arg0 vector 2 w) f1-0)
(set! (-> arg0 trans x) f11-4)
(set! (-> arg0 trans y) f12-6)
(set! (-> arg0 trans z) f2-1)
+39 -39
View File
@@ -63,9 +63,9 @@
;; INFO: Used lq/sq
(defun quaternion-look-at! ((arg0 quaternion) (arg1 vector) (arg2 vector))
(let ((s5-0 (new 'stack-no-clear 'matrix)))
(vector-cross! (the-as vector (-> s5-0 data)) arg2 arg1)
(vector-cross! (the-as vector (&-> s5-0 data 4)) arg1 (the-as vector (-> s5-0 data)))
(set! (-> (the-as vector (&-> s5-0 data 8)) quad) (-> arg1 quad))
(vector-cross! (the-as vector (-> s5-0 vector)) arg2 arg1)
(vector-cross! (-> s5-0 vector 1) arg1 (the-as vector (-> s5-0 vector)))
(set! (-> (the-as vector (-> s5-0 vector 2)) quad) (-> arg1 quad))
(quaternion-normalize! (matrix->quaternion arg0 s5-0))
)
)
@@ -348,18 +348,18 @@
(f1-0 (-> arg1 z))
(f0-0 (-> arg1 w))
)
(set! (-> arg0 data 0) f0-0)
(set! (-> arg0 data 1) f1-0)
(set! (-> arg0 data 2) (- f2-0))
(set! (-> arg0 data 3) f3-0)
(set! (-> arg0 data 4) (- f1-0))
(set! (-> arg0 data 5) f0-0)
(set! (-> arg0 data 6) f3-0)
(set! (-> arg0 data 7) f2-0)
(set! (-> arg0 data 8) f2-0)
(set! (-> arg0 data 9) (- f3-0))
(set! (-> arg0 data 10) f0-0)
(set! (-> arg0 data 11) f1-0)
(set! (-> arg0 vector 0 x) f0-0)
(set! (-> arg0 vector 0 y) f1-0)
(set! (-> arg0 vector 0 z) (- f2-0))
(set! (-> arg0 vector 0 w) f3-0)
(set! (-> arg0 vector 1 x) (- f1-0))
(set! (-> arg0 vector 1 y) f0-0)
(set! (-> arg0 vector 1 z) f3-0)
(set! (-> arg0 vector 1 w) f2-0)
(set! (-> arg0 vector 2 x) f2-0)
(set! (-> arg0 vector 2 y) (- f3-0))
(set! (-> arg0 vector 2 z) f0-0)
(set! (-> arg0 vector 2 w) f1-0)
(set! (-> arg0 trans x) (- f3-0))
(set! (-> arg0 trans y) (- f2-0))
(set! (-> arg0 trans z) (- f1-0))
@@ -375,18 +375,18 @@
(f0-0 (-> arg1 z))
)
(let ((f3-0 (-> arg1 w)))
(set! (-> arg0 data 0) f2-0)
(set! (-> arg0 data 1) f3-0)
(set! (-> arg0 data 2) (- f0-0))
(set! (-> arg0 data 3) f1-0)
(set! (-> arg0 data 4) f1-0)
(set! (-> arg0 data 5) f0-0)
(set! (-> arg0 data 6) f3-0)
(set! (-> arg0 data 7) (- f3-0))
(set! (-> arg0 data 8) f0-0)
(set! (-> arg0 data 9) (- f1-0))
(set! (-> arg0 data 10) f2-0)
(set! (-> arg0 data 11) f3-0)
(set! (-> arg0 vector 0 x) f2-0)
(set! (-> arg0 vector 0 y) f3-0)
(set! (-> arg0 vector 0 z) (- f0-0))
(set! (-> arg0 vector 0 w) f1-0)
(set! (-> arg0 vector 1 x) f1-0)
(set! (-> arg0 vector 1 y) f0-0)
(set! (-> arg0 vector 1 z) f3-0)
(set! (-> arg0 vector 1 w) (- f3-0))
(set! (-> arg0 vector 2 x) f0-0)
(set! (-> arg0 vector 2 y) (- f1-0))
(set! (-> arg0 vector 2 z) f2-0)
(set! (-> arg0 vector 2 w) f3-0)
(set! (-> arg0 trans x) f3-0)
)
(set! (-> arg0 trans y) (- f2-0))
@@ -443,15 +443,15 @@
;; definition for function matrix->quaternion
(defun matrix->quaternion ((arg0 quaternion) (arg1 matrix))
(let ((f0-2 (+ (-> arg1 data 0) (-> arg1 data 5) (-> arg1 data 10))))
(let ((f0-2 (+ (-> arg1 vector 0 x) (-> arg1 vector 1 y) (-> arg1 vector 2 z))))
(cond
((< 0.0 f0-2)
(let ((f0-4 (sqrtf (+ 1.0 f0-2))))
(set! (-> arg0 w) (* 0.5 f0-4))
(let ((f0-5 (/ 0.5 f0-4)))
(set! (-> arg0 x) (* f0-5 (- (-> arg1 data 6) (-> arg1 data 9))))
(set! (-> arg0 y) (* f0-5 (- (-> arg1 data 8) (-> arg1 data 2))))
(set! (-> arg0 z) (* f0-5 (- (-> arg1 data 1) (-> arg1 data 4))))
(set! (-> arg0 x) (* f0-5 (- (-> arg1 vector 1 z) (-> arg1 vector 2 y))))
(set! (-> arg0 y) (* f0-5 (- (-> arg1 vector 2 x) (-> arg1 vector 0 z))))
(set! (-> arg0 z) (* f0-5 (- (-> arg1 vector 0 y) (-> arg1 vector 1 x))))
)
)
)
@@ -460,12 +460,12 @@
(a3-0 1)
(v1-4 2)
)
(when (< (-> arg1 data 0) (-> arg1 data 5))
(when (< (-> arg1 vector 0 x) (-> arg1 vector 1 y))
(set! a2-0 1)
(set! a3-0 2)
(set! v1-4 0)
)
(when (< (-> (the-as (pointer float) (+ (+ (* a2-0 4) (* a2-0 16)) (the-as int arg1)))) (-> arg1 data 10))
(when (< (-> (the-as (pointer float) (+ (+ (* a2-0 4) (* a2-0 16)) (the-as int arg1)))) (-> arg1 vector 2 z))
(set! a2-0 2)
(set! a3-0 0)
(set! v1-4 1)
@@ -528,9 +528,9 @@
(vf7 :class vf)
)
(let ((v1-0 (new-stack-matrix0)))
(let* ((f0-1 (vector-dot (the-as vector (-> arg1 data)) (the-as vector (-> arg1 data))))
(f1-1 (vector-dot (the-as vector (&-> arg1 data 4)) (the-as vector (&-> arg1 data 4))))
(f2-1 (vector-dot (the-as vector (&-> arg1 data 8)) (the-as vector (&-> arg1 data 8))))
(let* ((f0-1 (vector-dot (the-as vector (-> arg1 vector)) (the-as vector (-> arg1 vector))))
(f1-1 (vector-dot (-> arg1 vector 1) (-> arg1 vector 1)))
(f2-1 (vector-dot (-> arg1 vector 2) (-> arg1 vector 2)))
(f0-3 (/ 1.0 (sqrtf f0-1)))
(f1-3 (/ 1.0 (sqrtf f1-1)))
(f2-3 (/ 1.0 (sqrtf f2-1)))
@@ -797,7 +797,7 @@
(defun vector-x-quaternion! ((arg0 vector) (arg1 quaternion))
(let ((s5-0 (new-stack-matrix0)))
(quaternion->matrix s5-0 arg1)
(set! (-> arg0 quad) (-> (the-as (pointer uint128) (-> s5-0 data)) 0))
(set! (-> arg0 quad) (-> (the-as (pointer uint128) (-> s5-0 vector)) 0))
)
arg0
)
@@ -807,7 +807,7 @@
(defun vector-y-quaternion! ((arg0 vector) (arg1 quaternion))
(let ((s5-0 (new-stack-matrix0)))
(quaternion->matrix s5-0 arg1)
(set! (-> arg0 quad) (-> (the-as (pointer uint128) (&-> s5-0 data 4)) 0))
(set! (-> arg0 quad) (-> (the-as (pointer uint128) (-> s5-0 vector 1)) 0))
)
arg0
)
@@ -817,7 +817,7 @@
(defun vector-z-quaternion! ((arg0 vector) (arg1 quaternion))
(let ((s5-0 (new-stack-matrix0)))
(quaternion->matrix s5-0 arg1)
(set! (-> arg0 quad) (-> (the-as (pointer uint128) (&-> s5-0 data 8)) 0))
(set! (-> arg0 quad) (-> (the-as (pointer uint128) (-> s5-0 vector 2)) 0))
)
arg0
)
-4
View File
@@ -64,7 +64,3 @@
(defun trs-matrix-calc! ((arg0 trs) (arg1 matrix))
(transform-matrix-calc! (the-as transform (-> arg0 trans)) arg1)
)
+3 -7
View File
@@ -126,9 +126,9 @@
(s1-0 (-> *standard-dynamics* gravity-normal))
(s3-0 (quaternion->matrix (new 'stack-no-clear 'matrix) s5-0))
)
(let ((s4-0 (&-> s3-0 data 8)))
(vector-normalize! (vector-flatten! (the-as vector (&-> s3-0 data 4)) s1-0 (the-as vector s4-0)) 1.0)
(vector-cross! (the-as vector (-> s3-0 data)) (the-as vector (&-> s3-0 data 4)) (the-as vector s4-0))
(let ((s4-0 (-> s3-0 vector 2)))
(vector-normalize! (vector-flatten! (-> s3-0 vector 1) s1-0 s4-0) 1.0)
(vector-cross! (the-as vector (-> s3-0 vector)) (-> s3-0 vector 1) s4-0)
)
(let ((a1-5 (matrix-rotate-z! (new 'stack-no-clear 'matrix) arg0)))
(matrix*! s3-0 a1-5 s3-0)
@@ -462,7 +462,3 @@
arg0
)
)
@@ -15,7 +15,7 @@
(get-transv (_type_) vector 22)
(process-focusable-method-23 (_type_) none 23)
(process-focusable-method-24 (_type_) none 24)
(process-focusable-method-25 (_type_) none 25)
(process-focusable-method-25 (_type_) int 25)
(process-focusable-method-26 (_type_) none 26)
)
)
@@ -88,10 +88,8 @@
)
;; definition for method 25 of type process-focusable
;; INFO: Return type mismatch int vs none.
(defmethod process-focusable-method-25 process-focusable ((obj process-focusable))
0
(none)
)
;; failed to figure out what this is:
+23 -32
View File
@@ -280,23 +280,26 @@
(let ((s5-0 (new 'static 'vector4w))
(gp-0 (new 'static 'matrix))
)
(let ((v1-2 (-> gp-0 data)))
(set! (-> v1-2 0) (the-as float (the int (+ -256.0 (-> arg0 origin x)))))
(set! (-> v1-2 1) (the-as float (the int (+ -208.0 (-> arg0 origin y)))))
(set! (-> v1-2 2) 0.0)
(set! (-> v1-2 3) (the-as float #x1))
(set-vector!
(-> gp-0 vector 0)
(the-as float (the int (+ -256.0 (-> arg0 origin x))))
(the-as float (the int (+ -208.0 (-> arg0 origin y))))
0.0
(the-as float #x1)
)
(let ((v1-3 (&-> gp-0 data 4)))
(set! (-> v1-3 0) (the-as float (the int (+ -256.0 (-> arg0 width) (-> arg0 origin x)))))
(set! (-> v1-3 1) (the-as float (the int (+ -208.0 (-> arg0 origin y)))))
(set! (-> v1-3 2) 0.0)
(set! (-> v1-3 3) (the-as float #x1))
(set-vector!
(-> gp-0 vector 1)
(the-as float (the int (+ -256.0 (-> arg0 width) (-> arg0 origin x))))
(the-as float (the int (+ -208.0 (-> arg0 origin y))))
0.0
(the-as float #x1)
)
(let ((v1-4 (&-> gp-0 data 8)))
(set! (-> v1-4 0) (the-as float (the int (+ -256.0 (-> arg0 width) (-> arg0 origin x)))))
(set! (-> v1-4 1) (the-as float (the int (+ -208.0 (-> arg0 height) (-> arg0 origin y)))))
(set! (-> v1-4 2) 0.0)
(set! (-> v1-4 3) (the-as float #x1))
(set-vector!
(-> gp-0 vector 2)
(the-as float (the int (+ -256.0 (-> arg0 width) (-> arg0 origin x))))
(the-as float (the int (+ -208.0 (-> arg0 height) (-> arg0 origin y))))
0.0
(the-as float #x1)
)
(set-vector!
(-> gp-0 trans)
@@ -309,29 +312,17 @@
(add-debug-line2d
#t
(bucket-id bucket-318)
(the-as vector (-> gp-0 data))
(the-as vector (&-> gp-0 data 4))
(the-as vector s5-0)
)
(add-debug-line2d
#t
(bucket-id bucket-318)
(the-as vector (&-> gp-0 data 4))
(the-as vector (&-> gp-0 data 8))
(the-as vector s5-0)
)
(add-debug-line2d
#t
(bucket-id bucket-318)
(the-as vector (&-> gp-0 data 8))
(-> gp-0 trans)
(the-as vector (-> gp-0 vector))
(-> gp-0 vector 1)
(the-as vector s5-0)
)
(add-debug-line2d #t (bucket-id bucket-318) (-> gp-0 vector 1) (-> gp-0 vector 2) (the-as vector s5-0))
(add-debug-line2d #t (bucket-id bucket-318) (-> gp-0 vector 2) (-> gp-0 trans) (the-as vector s5-0))
(add-debug-line2d
#t
(bucket-id bucket-318)
(-> gp-0 trans)
(the-as vector (-> gp-0 data))
(the-as vector (-> gp-0 vector))
(the-as vector s5-0)
)
)
+141
View File
@@ -0,0 +1,141 @@
;;-*-Lisp-*-
(in-package goal)
;; this file is debug only
(declare-file (debug))
(when *debug-segment*
;; definition of type glst-node
(deftype glst-node (structure)
((next glst-node :offset-assert 0)
(prev glst-node :offset-assert 4)
)
:method-count-assert 9
:size-assert #x8
:flag-assert #x900000008
)
;; definition for method 3 of type glst-node
(defmethod inspect glst-node ((obj glst-node))
(when (not obj)
(set! obj obj)
(goto cfg-4)
)
(format #t "[~8x] ~A~%" obj 'glst-node)
(format #t "~1Tnext: #<glst-node @ #x~X>~%" (-> obj next))
(format #t "~1Tprev: #<glst-node @ #x~X>~%" (-> obj prev))
(label cfg-4)
obj
)
;; definition of type glst-named-node
(deftype glst-named-node (glst-node)
((privname string :offset-assert 8)
)
:method-count-assert 9
:size-assert #xc
:flag-assert #x90000000c
)
;; definition for method 3 of type glst-named-node
(defmethod inspect glst-named-node ((obj glst-named-node))
(when (not obj)
(set! obj obj)
(goto cfg-4)
)
(format #t "[~8x] ~A~%" obj 'glst-named-node)
(format #t "~1Tnext: #<glst-node @ #x~X>~%" (-> obj next))
(format #t "~1Tprev: #<glst-node @ #x~X>~%" (-> obj prev))
(format #t "~1Tprivname: ~A~%" (-> obj privname))
(label cfg-4)
obj
)
;; definition of type glst-list
(deftype glst-list (structure)
((head glst-node :offset-assert 0)
(tail glst-node :offset-assert 4)
(tailpred glst-node :offset-assert 8)
(numelem int32 :offset-assert 12)
)
:method-count-assert 9
:size-assert #x10
:flag-assert #x900000010
)
;; definition for method 3 of type glst-list
(defmethod inspect glst-list ((obj glst-list))
(when (not obj)
(set! obj obj)
(goto cfg-4)
)
(format #t "[~8x] ~A~%" obj 'glst-list)
(format #t "~1Thead: #<glst-node @ #x~X>~%" (-> obj head))
(format #t "~1Ttail: #<glst-node @ #x~X>~%" (-> obj tail))
(format #t "~1Ttailpred: #<glst-node @ #x~X>~%" (-> obj tailpred))
(format #t "~1Tnumelem: ~D~%" (-> obj numelem))
(label cfg-4)
obj
)
;; definition for function glst-next
(defun glst-next ((arg0 glst-node))
"return the next node in the list"
(-> arg0 next)
)
;; definition for function glst-prev
(defun glst-prev ((arg0 glst-node))
"return the previous node in the list"
(-> arg0 prev)
)
;; definition for function glst-head
(defun glst-head ((arg0 glst-list))
"return the start of the list"
(-> arg0 head)
)
;; definition for function glst-tail
(defun glst-tail ((arg0 glst-list))
"return the tail of the list"
(-> arg0 tailpred)
)
;; definition for function glst-end-of-list?
(defun glst-end-of-list? ((arg0 glst-node))
"is this node the end of the list. #t = end"
(not (-> arg0 next))
)
;; definition for function glst-start-of-list?
(defun glst-start-of-list? ((arg0 glst-node))
"is this node the start of the list. #t = start"
(not (-> arg0 prev))
)
;; definition for function glst-empty?
(defun glst-empty? ((arg0 glst-list))
"is the list empty, #t = empty"
(= (-> arg0 tailpred) arg0)
)
;; definition for function glst-node-name
(defun glst-node-name ((arg0 glst-named-node))
"Returns the `privname` of the provided [[glst-named-node]]"
(-> arg0 privname)
)
;; definition for function glst-set-name!
(defun glst-set-name! ((arg0 glst-named-node) (arg1 string))
"Sets the `privname` of the provided [[glst-named-node]]"
(set! (-> arg0 privname) arg1)
arg1
)
;; failed to figure out what this is:
0
)
+210
View File
@@ -0,0 +1,210 @@
;;-*-Lisp-*-
(in-package goal)
;; this file is debug only
(declare-file (debug))
(when *debug-segment*
;; definition for function glst-num-elements
(defun glst-num-elements ((arg0 glst-list))
"Returns `numelem` from the provided [[glst-list]]"
(-> arg0 numelem)
)
;; definition for function glst-remove
(defun glst-remove ((arg0 glst-list) (arg1 glst-node))
"Removes the provided [[glst-node]] from the list and returns it back"
(let ((v1-0 arg1))
"return the previous node in the list"
(let ((v1-1 (-> v1-0 prev))
(a2-1 arg1)
)
"return the next node in the list"
(let ((a2-2 (-> a2-1 next)))
(set! (-> v1-1 next) a2-2)
(set! (-> a2-2 prev) v1-1)
)
)
)
(+! (-> arg0 numelem) -1)
arg1
)
;; definition for function glst-remove-tail
(defun glst-remove-tail ((arg0 glst-list))
"Removes the tail of the [[glst-list]], returns #f if the list is empty, otherwise returns the [[glst-node]] that was removed"
(let ((v1-0 arg0))
"return the tail of the list"
(let* ((a1-1 (-> v1-0 tailpred))
(v1-1 a1-1)
)
"is this node the start of the list. #t = start"
(if (not (not (-> v1-1 prev)))
(glst-remove arg0 a1-1)
(the-as glst-node #f)
)
)
)
)
;; definition for function glst-remove-head
(defun glst-remove-head ((arg0 glst-list))
"Removes the head of the [[glst-list]], returns #f if the list is empty, otherwise returns the [[glst-node]] that was removed"
(let ((v1-0 arg0))
"return the start of the list"
(let* ((a1-1 (-> v1-0 head))
(v1-1 a1-1)
)
"is this node the end of the list. #t = end"
(if (not (not (-> v1-1 next)))
(glst-remove arg0 a1-1)
(the-as glst-node #f)
)
)
)
)
;; definition for function glst-insert-before
(defun glst-insert-before ((list glst-list) (curr glst-node) (new glst-node))
"Inserts `new` before `curr`, returns the newly inserted [[glst-node]]"
(let ((v1-0 curr))
"return the previous node in the list"
(let ((v1-1 (-> v1-0 prev)))
(set! (-> new prev) v1-1)
(set! (-> new next) curr)
(set! (-> v1-1 next) new)
)
)
(set! (-> curr prev) new)
(+! (-> list numelem) 1)
new
)
;; definition for function glst-insert-after
(defun glst-insert-after ((list glst-list) (curr glst-node) (new glst-node))
"Inserts `new` after `curr`, returns the newly inserted [[glst-node]]"
(let ((v1-0 curr))
"return the next node in the list"
(let ((v1-1 (-> v1-0 next)))
(set! (-> new prev) curr)
(set! (-> new next) v1-1)
(set! (-> v1-1 prev) new)
)
)
(set! (-> curr next) new)
(+! (-> list numelem) 1)
new
)
;; definition for function glst-add-tail
(defun glst-add-tail ((arg0 glst-list) (arg1 glst-node))
"Adds the provided [[glst-node]] to the end of the [[glst-list]]"
(glst-insert-before arg0 (the-as glst-node (&-> arg0 tail)) arg1)
arg1
)
;; definition for function glst-add-head
(defun glst-add-head ((arg0 glst-list) (arg1 glst-node))
"Adds the provided [[glst-node]] to the beginning of the [[glst-list]]"
(glst-insert-after arg0 (the-as glst-node arg0) arg1)
arg1
)
;; definition for function glst-init-list!
(defun glst-init-list! ((arg0 glst-list))
"Clears the provided [[glst-list]]"
(set! (-> arg0 head) (the-as glst-node (&-> arg0 tail)))
(set! (-> arg0 tail) #f)
(set! (-> arg0 tailpred) (the-as glst-node (&-> arg0 head)))
(set! (-> arg0 numelem) 0)
arg0
)
;; definition for function glst-find-node-by-name
(defun glst-find-node-by-name ((arg0 glst-list) (arg1 string))
"Returns the [[glst-named-node]] by examining it's `privname`, returns #f if nothing is found"
(let ((v1-0 arg0))
"return the start of the list"
(let ((s5-0 (-> v1-0 head)))
(while (let ((v1-6 s5-0))
"is this node the end of the list. #t = end"
(not (not (-> v1-6 next)))
)
(if (name= (-> (the-as glst-named-node s5-0) privname) arg1)
(return s5-0)
)
"return the next node in the list"
(set! s5-0 (-> s5-0 next))
)
)
)
(the-as glst-node #f)
)
;; definition for function glst-get-node-by-index
(defun glst-get-node-by-index ((arg0 glst-list) (arg1 int))
"Returns the [[glst-node]] by index, returns #f if nothing is found"
(when (and (< arg1 (glst-num-elements arg0)) (>= arg1 0))
"return the start of the list"
(let ((v1-3 (-> arg0 head)))
(dotimes (a0-3 arg1)
(nop!)
(nop!)
(nop!)
(nop!)
"return the next node in the list"
(set! v1-3 (-> v1-3 next))
)
(return v1-3)
)
)
(the-as glst-node #f)
)
;; definition for function glst-length-of-longest-name
(defun glst-length-of-longest-name ((arg0 glst-list))
"Returns the length of the longest `privname`"
(let ((gp-0 0))
(let ((v1-0 arg0))
"return the start of the list"
(let ((s5-0 (-> v1-0 head)))
(while (let ((v1-6 s5-0))
"is this node the end of the list. #t = end"
(not (not (-> v1-6 next)))
)
(let ((v1-3 (length (-> (the-as glst-named-node s5-0) privname))))
(if (< gp-0 v1-3)
(set! gp-0 v1-3)
)
)
"return the next node in the list"
(set! s5-0 (-> s5-0 next))
)
)
)
gp-0
)
)
;; definition for function glst-get-node-index
(defun glst-get-node-index ((arg0 glst-list) (arg1 glst-node))
"Given a [[glst-node]] return it's position in the [[glst-list]]"
(let ((v1-0 0))
"return the start of the list"
(let ((a0-1 (-> arg0 head)))
(while (let ((a2-3 a0-1))
"is this node the end of the list. #t = end"
(not (not (-> a2-3 next)))
)
(if (= a0-1 arg1)
(return v1-0)
)
(+! v1-0 1)
"return the next node in the list"
(set! a0-1 (-> a0-1 next))
)
)
)
-1
)
)
+34 -1
View File
@@ -64,9 +64,42 @@
"dm-scene-load-pick-func",
"popup-menu-context-make-default-menus",
"debug-menu-context-make-default-menus",
// camera
// - vector-dot issue
"slave-set-rotation!",
"v-slrp2!",
"v-slrp3!",
// cam-master
// - focus understanding / decomp crashes
"reset-target-tracking",
"(method 16 camera-master)",
"master-track-target",
// cam-states
// - mostly decompiler crashes/hangs
"cam-bike-code",
"cam-stick-code",
"cam-string-code",
"cam-string-line-of-sight",
"cam-string-joystick", // whats butt-handle!
"cam-circular-code",
"cam-circular-position",
"cam-los-collide", // vector-dot with stack
// cam-update
"update-visible", // assertion crash when filling out bsp-header
// placeholder
"i-hopefully-will-never-exist-dont-add-anything-after-me-please"
],
"skip_compile_states": {}
"skip_compile_states": {
"cam-bike": [
"code" // hang
],
"cam-stick": [
"code"
],
"cam-circular": [
"enter",
"event"
]
}
}