recognize +! and set-vector (#706)

"
This commit is contained in:
water111
2021-07-17 15:00:10 -04:00
committed by GitHub
parent 1e90da8e7c
commit 4989470828
48 changed files with 557 additions and 1038 deletions
+26 -156
View File
@@ -15,12 +15,7 @@
(set! (-> v1-0 direction z) 0.612)
(set! (-> v1-0 direction w) 0.0)
)
(let ((v1-1 (-> arg0 dir0 color)))
(set! (-> v1-1 x) 0.8)
(set! (-> v1-1 y) 0.775)
(set! (-> v1-1 z) 0.7)
(set! (-> v1-1 w) 1.0)
)
(set-vector! (-> arg0 dir0 color) 0.8 0.775 0.7 1.0)
(set! (-> arg0 dir0 levels x) arg2)
(let ((v1-2 (-> arg0 dir1)))
(set! (-> v1-2 direction x) 0.612)
@@ -28,12 +23,7 @@
(set! (-> v1-2 direction z) -0.612)
(set! (-> v1-2 direction w) 0.0)
)
(let ((v1-3 (-> arg0 dir1 color)))
(set! (-> v1-3 x) 0.8)
(set! (-> v1-3 y) 0.775)
(set! (-> v1-3 z) 0.7)
(set! (-> v1-3 w) 1.0)
)
(set-vector! (-> arg0 dir1 color) 0.8 0.775 0.7 1.0)
(set! (-> arg0 dir1 levels x) arg3)
(vector-matrix*!
(the-as vector (-> arg0 dir0))
@@ -52,12 +42,7 @@
(set! (-> v1-4 direction z) 0.0)
(set! (-> v1-4 direction w) 0.0)
)
(let ((v1-5 (-> arg0 dir2 color)))
(set! (-> v1-5 x) 0.8)
(set! (-> v1-5 y) 0.775)
(set! (-> v1-5 z) 0.7)
(set! (-> v1-5 w) 1.0)
)
(set-vector! (-> arg0 dir2 color) 0.8 0.775 0.7 1.0)
(let ((f0-26 arg4))
(set! (-> arg0 dir2 levels x) f0-26)
f0-26
@@ -76,12 +61,7 @@
(set! (-> v1-0 direction z) 0.0)
(set! (-> v1-0 direction w) 0.0)
)
(let ((v1-1 (-> s5-0 dir2 color)))
(set! (-> v1-1 x) 0.75)
(set! (-> v1-1 y) 0.375)
(set! (-> v1-1 z) 0.0)
(set! (-> v1-1 w) 1.0)
)
(set-vector! (-> s5-0 dir2 color) 0.75 0.375 0.0 1.0)
)
(make-light-kit (-> arg0 light-group 3) 53703.11 0.9 0.9 0.5)
(make-light-kit (-> arg0 light-group 4) 54613.332 0.9 0.9 0.4)
@@ -96,18 +76,8 @@
(defun make-misty-light-kit ((arg0 mood-context))
(let ((gp-0 (-> arg0 light-group 1)))
(make-light-kit gp-0 24576.0 1.0 0.4 1.0)
(let ((v1-0 (-> gp-0 dir0 color)))
(set! (-> v1-0 x) 0.75)
(set! (-> v1-0 y) 0.3)
(set! (-> v1-0 z) 0.0)
(set! (-> v1-0 w) 1.0)
)
(let ((v0-1 (-> gp-0 dir2 color)))
(set! (-> v0-1 x) 0.75)
(set! (-> v0-1 y) 0.3)
(set! (-> v0-1 z) 0.0)
(set! (-> v0-1 w) 1.0)
)
(set-vector! (-> gp-0 dir0 color) 0.75 0.3 0.0 1.0)
(set-vector! (-> gp-0 dir2 color) 0.75 0.3 0.0 1.0)
)
(none)
)
@@ -122,12 +92,7 @@
(set! (-> a0-1 direction z) 0.0)
(set! (-> a0-1 direction w) 1.0)
)
(let ((a0-2 (-> v1-0 dir0 color)))
(set! (-> a0-2 x) 0.375)
(set! (-> a0-2 y) 0.25)
(set! (-> a0-2 z) 0.25)
(set! (-> a0-2 w) 1.0)
)
(set-vector! (-> v1-0 dir0 color) 0.375 0.25 0.25 1.0)
(set! (-> v1-0 dir0 levels x) 1.0)
(let ((a0-3 (-> v1-0 dir1)))
(set! (-> a0-3 direction x) -0.6119)
@@ -135,12 +100,7 @@
(set! (-> a0-3 direction z) -0.6119)
(set! (-> a0-3 direction w) 1.0)
)
(let ((a0-4 (-> v1-0 dir1 color)))
(set! (-> a0-4 x) 0.25)
(set! (-> a0-4 y) 0.75)
(set! (-> a0-4 z) 1.0)
(set! (-> a0-4 w) 1.0)
)
(set-vector! (-> v1-0 dir1 color) 0.25 0.75 1.0 1.0)
(set! (-> v1-0 dir1 levels x) 0.666)
(let ((a0-5 (-> v1-0 dir2)))
(set! (-> a0-5 direction x) 0.9961)
@@ -148,12 +108,7 @@
(set! (-> a0-5 direction z) -0.0871)
(set! (-> a0-5 direction w) 1.0)
)
(let ((a0-6 (-> v1-0 dir2 color)))
(set! (-> a0-6 x) 0.0)
(set! (-> a0-6 y) 0.25)
(set! (-> a0-6 z) 1.0)
(set! (-> a0-6 w) 1.0)
)
(set-vector! (-> v1-0 dir2 color) 0.0 0.25 1.0 1.0)
(set! (-> v1-0 dir2 levels x) 1.0)
)
(let ((v1-2 (-> arg0 light-group 2)))
@@ -163,12 +118,7 @@
(set! (-> a0-7 direction z) 0.836)
(set! (-> a0-7 direction w) 1.0)
)
(let ((a0-8 (-> v1-2 dir0 color)))
(set! (-> a0-8 x) 0.8)
(set! (-> a0-8 y) 0.8)
(set! (-> a0-8 z) 0.8)
(set! (-> a0-8 w) 1.0)
)
(set-vector! (-> v1-2 dir0 color) 0.8 0.8 0.8 1.0)
(set! (-> v1-2 dir0 levels x) 0.7)
(let ((a0-9 (-> v1-2 dir1)))
(set! (-> a0-9 direction x) -0.2959)
@@ -176,31 +126,16 @@
(set! (-> a0-9 direction z) -0.8133)
(set! (-> a0-9 direction w) 1.0)
)
(let ((a0-10 (-> v1-2 dir1 color)))
(set! (-> a0-10 x) 0.8)
(set! (-> a0-10 y) 0.8)
(set! (-> a0-10 z) 0.8)
(set! (-> a0-10 w) 1.0)
)
(set-vector! (-> v1-2 dir1 color) 0.8 0.8 0.8 1.0)
(set! (-> v1-2 dir1 levels x) 0.7)
)
(let ((s5-0 (-> arg0 light-group 3)))
(make-light-kit s5-0 5461.3335 1.0 0.8 0.2)
(let ((v1-4 (-> s5-0 dir0 color)))
(set! (-> v1-4 x) 0.675)
(set! (-> v1-4 y) 0.45)
(set! (-> v1-4 z) 0.15)
(set! (-> v1-4 w) 1.0)
)
(set-vector! (-> s5-0 dir0 color) 0.675 0.45 0.15 1.0)
)
(let ((s5-1 (-> arg0 light-group 4)))
(make-light-kit s5-1 57344.0 1.0 0.8 0.2)
(let ((v1-5 (-> s5-1 dir0 color)))
(set! (-> v1-5 x) 0.675)
(set! (-> v1-5 y) 0.45)
(set! (-> v1-5 z) 0.15)
(set! (-> v1-5 w) 1.0)
)
(set-vector! (-> s5-1 dir0 color) 0.675 0.45 0.15 1.0)
)
(let ((v1-6 (-> arg0 light-group 5)))
(let ((a0-13 (-> v1-6 dir0)))
@@ -209,28 +144,13 @@
(set! (-> a0-13 direction z) 0.0)
(set! (-> a0-13 direction w) 0.0)
)
(let ((a0-14 (-> v1-6 dir0 color)))
(set! (-> a0-14 x) 2.0)
(set! (-> a0-14 y) 1.0)
(set! (-> a0-14 z) 0.0)
(set! (-> a0-14 w) 1.0)
)
(set-vector! (-> v1-6 dir0 color) 2.0 1.0 0.0 1.0)
(set! (-> v1-6 dir1 levels x) 0.0)
(set! (-> v1-6 dir2 levels x) 0.0)
)
(let ((v1-8 (-> arg0 light-group 6)))
(let ((a0-15 (-> v1-8 dir0 color)))
(set! (-> a0-15 x) 1.0)
(set! (-> a0-15 y) 0.5)
(set! (-> a0-15 z) 0.0)
(set! (-> a0-15 w) 1.0)
)
(let ((a0-16 (-> v1-8 dir1 color)))
(set! (-> a0-16 x) 0.6)
(set! (-> a0-16 y) 0.58125)
(set! (-> a0-16 z) 0.525)
(set! (-> a0-16 w) 1.0)
)
(set-vector! (-> v1-8 dir0 color) 1.0 0.5 0.0 1.0)
(set-vector! (-> v1-8 dir1 color) 0.6 0.58125 0.525 1.0)
(set! (-> v1-8 dir1 levels x) 0.0)
(set! (-> v1-8 dir2 levels x) 0.0)
)
@@ -248,12 +168,7 @@
(set! (-> v1-0 direction z) 0.0)
(set! (-> v1-0 direction w) 1.0)
)
(let ((v1-1 (-> s5-0 dir0 color)))
(set! (-> v1-1 x) 1.0)
(set! (-> v1-1 y) 0.9)
(set! (-> v1-1 z) 0.0)
(set! (-> v1-1 w) 1.0)
)
(set-vector! (-> s5-0 dir0 color) 1.0 0.9 0.0 1.0)
)
(let ((s5-1 (-> arg0 light-group 2)))
(make-light-kit s5-1 0.0 1.0 0.0 0.0)
@@ -263,12 +178,7 @@
(set! (-> v1-2 direction z) 0.0)
(set! (-> v1-2 direction w) 1.0)
)
(let ((v1-3 (-> s5-1 dir0 color)))
(set! (-> v1-3 x) 1.0)
(set! (-> v1-3 y) 0.9)
(set! (-> v1-3 z) 0.0)
(set! (-> v1-3 w) 1.0)
)
(set-vector! (-> s5-1 dir0 color) 1.0 0.9 0.0 1.0)
)
(let ((s5-2 (-> arg0 light-group 3)))
(make-light-kit s5-2 0.0 1.0 0.0 0.0)
@@ -278,12 +188,7 @@
(set! (-> v1-4 direction z) 0.0)
(set! (-> v1-4 direction w) 1.0)
)
(let ((v1-5 (-> s5-2 dir0 color)))
(set! (-> v1-5 x) 1.0)
(set! (-> v1-5 y) 0.9)
(set! (-> v1-5 z) 0.0)
(set! (-> v1-5 w) 1.0)
)
(set-vector! (-> s5-2 dir0 color) 1.0 0.9 0.0 1.0)
)
(let ((s5-3 (-> arg0 light-group 4)))
(make-light-kit s5-3 0.0 1.0 0.0 0.0)
@@ -293,12 +198,7 @@
(set! (-> v1-6 direction z) 0.0)
(set! (-> v1-6 direction w) 1.0)
)
(let ((v1-7 (-> s5-3 dir0 color)))
(set! (-> v1-7 x) 1.0)
(set! (-> v1-7 y) 0.9)
(set! (-> v1-7 z) 0.0)
(set! (-> v1-7 w) 1.0)
)
(set-vector! (-> s5-3 dir0 color) 1.0 0.9 0.0 1.0)
)
(let ((s5-4 (-> arg0 light-group 5)))
(make-light-kit s5-4 0.0 1.0 0.0 0.0)
@@ -308,12 +208,7 @@
(set! (-> v1-8 direction z) 0.0)
(set! (-> v1-8 direction w) 1.0)
)
(let ((v1-9 (-> s5-4 dir0 color)))
(set! (-> v1-9 x) 1.0)
(set! (-> v1-9 y) 0.9)
(set! (-> v1-9 z) 0.0)
(set! (-> v1-9 w) 1.0)
)
(set-vector! (-> s5-4 dir0 color) 1.0 0.9 0.0 1.0)
)
(let ((gp-1 (-> arg0 light-group 6)))
(make-light-kit gp-1 0.0 1.0 0.0 0.0)
@@ -323,12 +218,7 @@
(set! (-> v1-10 direction z) 0.0)
(set! (-> v1-10 direction w) 1.0)
)
(let ((v0-6 (-> gp-1 dir0 color)))
(set! (-> v0-6 x) 1.0)
(set! (-> v0-6 y) 0.9)
(set! (-> v0-6 z) 0.0)
(set! (-> v0-6 w) 1.0)
)
(set-vector! (-> gp-1 dir0 color) 1.0 0.9 0.0 1.0)
)
(none)
)
@@ -343,12 +233,7 @@
(set! (-> a1-0 direction z) 0.2929)
(set! (-> a1-0 direction w) 1.0)
)
(let ((a1-1 (-> v1-0 dir0 color)))
(set! (-> a1-1 x) 0.5)
(set! (-> a1-1 y) 1.0)
(set! (-> a1-1 z) 1.0)
(set! (-> a1-1 w) 1.0)
)
(set-vector! (-> v1-0 dir0 color) 0.5 1.0 1.0 1.0)
(set! (-> v1-0 dir0 levels x) 1.0)
(let ((a1-2 (-> v1-0 dir2)))
(set! (-> a1-2 direction x) 0.0)
@@ -356,12 +241,7 @@
(set! (-> a1-2 direction z) 0.0)
(set! (-> a1-2 direction w) 1.0)
)
(let ((v1-1 (-> v1-0 dir2 color)))
(set! (-> v1-1 x) 0.625)
(set! (-> v1-1 y) 0.375)
(set! (-> v1-1 z) 0.1)
(set! (-> v1-1 w) 1.0)
)
(set-vector! (-> v1-0 dir2 color) 0.625 0.375 0.1 1.0)
)
(let ((v1-2 (-> arg0 light-group 2)))
(let ((a0-1 (-> v1-2 dir0)))
@@ -370,12 +250,7 @@
(set! (-> a0-1 direction z) 0.2929)
(set! (-> a0-1 direction w) 1.0)
)
(let ((a0-2 (-> v1-2 dir0 color)))
(set! (-> a0-2 x) 0.25)
(set! (-> a0-2 y) 0.5)
(set! (-> a0-2 z) 0.5)
(set! (-> a0-2 w) 1.0)
)
(set-vector! (-> v1-2 dir0 color) 0.25 0.5 0.5 1.0)
(set! (-> v1-2 dir0 levels x) 1.0)
(let ((a0-3 (-> v1-2 dir2)))
(set! (-> a0-3 direction x) 0.0)
@@ -383,12 +258,7 @@
(set! (-> a0-3 direction z) 0.0)
(set! (-> a0-3 direction w) 1.0)
)
(let ((v0-0 (-> v1-2 dir2 color)))
(set! (-> v0-0 x) 0.625)
(set! (-> v0-0 y) 0.375)
(set! (-> v0-0 z) 0.1)
(set! (-> v0-0 w) 1.0)
)
(set-vector! (-> v1-2 dir2 color) 0.625 0.375 0.1 1.0)
)
(none)
)
+134 -133
View File
@@ -12,150 +12,151 @@
(defmethod TODO-RENAME-9 align-control ((obj align-control))
(local-vars (a0-9 symbol) (s7-0 none) (ra-0 int))
(with-pp
(let ((s5-0 (-> obj process skel active-channels)))
(dotimes (s4-0 s5-0)
(let* ((a0-3 (-> obj process skel channel s4-0))
(v1-5 (-> a0-3 frame-group))
(a0-4 (-> a0-3 command))
(a1-0 'stack)
(a2-0 (= a0-4 a1-0))
(let ((s5-0 (-> obj process skel active-channels)))
(dotimes (s4-0 s5-0)
(let* ((a0-3 (-> obj process skel channel s4-0))
(v1-5 (-> a0-3 frame-group))
(a0-4 (-> a0-3 command))
(a1-0 'stack)
(a2-0 (= a0-4 a1-0))
)
(cond
((or a2-0 (begin
(set! a1-0 'stack1)
(= a0-4 a1-0)
)
)
)
(else
; TODO - support decompiling the return-from-thread
; TODO - properly decompile the `go`to
; (when (!= (-> v1-5 type) art-joint-anim)
; (let
; ((t9-0 (the-as (function object object object object) enter-state))
; (a0-7 "align joint-anim")
; )
; (set! (-> pp next-state) process-drawable-art-error)
; (t9-0 a0-7 (the-as none a1-0) a2-0)
; )
; (.lw ra-0 return-from-thread s7-0)
; (.jr ra-0)
; (nop!)
; 0
; )
0
)
)
)
)
)
(let* ((a0-8 (-> obj process skel root-channel 0))
(v1-16 (-> a0-8 frame-group))
(f0-0 (-> a0-8 frame-num))
)
(= (-> a0-8 num-func) num-func-loop!)
(cond
((or a2-0 (begin
(set! a1-0 'stack1)
(= a0-4 a1-0)
)
((or (not v1-16) (!= (-> obj frame-group) v1-16))
(set! a0-9 #t)
)
((= (-> a0-8 num-func) num-func-loop!)
(set! a0-9 (< (* (-> a0-8 param 0) (- f0-0 (-> obj frame-num))) 0.0))
)
(else
(set! a0-9 (= f0-0 0.0))
)
)
(else
; TODO - support decompiling the return-from-thread
; TODO - properly decompile the `go`to
; (when (!= (-> v1-5 type) art-joint-anim)
; (let
; ((t9-0 (the-as (function object object object object) enter-state))
; (a0-7 "align joint-anim")
; )
; (set! (-> pp next-state) process-drawable-art-error)
; (t9-0 a0-7 (the-as none a1-0) a2-0)
; )
; (.lw ra-0 return-from-thread s7-0)
; (.jr ra-0)
; (nop!)
; 0
; )
0
(if a0-9
(set! (-> obj flags) (logior (-> obj flags) 1))
(set! (-> obj flags) (logand -2 (the-as int (-> obj flags))))
)
(set! (-> obj frame-group) v1-16)
(set! (-> obj frame-num) f0-0)
)
(mem-copy!
(the-as pointer (-> obj transform 1))
(the-as pointer (-> obj transform))
48
)
(quaternion-copy!
(the-as quaternion (-> obj transform 1 rot))
(-> obj align quat)
)
(set! (-> obj transform 1 scale quad) (-> obj align scale quad))
(let* ((a2-5 (-> obj matrix 1))
(a3-0 (-> obj matrix))
(v1-19 (-> a3-0 0 vector 0 quad))
(a0-18 (-> a3-0 0 vector 1 quad))
(a1-12 (-> a3-0 0 vector 2 quad))
(a3-1 (-> a3-0 0 vector 3 quad))
)
(set! (-> a2-5 vector 0 quad) v1-19)
(set! (-> a2-5 vector 1 quad) a0-18)
(set! (-> a2-5 vector 2 quad) a1-12)
(set! (-> a2-5 vector 3 quad) a3-1)
)
(let ((s5-1 (-> obj process node-list data 1)))
(cspace<-matrix-no-push-joint! s5-1 (the-as matrix (-> obj process skel)))
(let* ((v1-23 (-> obj matrix))
(a3-2 (-> s5-1 bone transform))
(a0-21 (-> a3-2 vector 0 quad))
(a1-14 (-> a3-2 vector 1 quad))
(a2-6 (-> a3-2 vector 2 quad))
(a3-3 (-> a3-2 vector 3 quad))
)
(set! (-> v1-23 0 vector 0 quad) a0-21)
(set! (-> v1-23 0 vector 1 quad) a1-14)
(set! (-> v1-23 0 vector 2 quad) a2-6)
(set! (-> v1-23 0 vector 3 quad) a3-3)
)
(vector*!
(the-as vector (-> obj transform))
(-> s5-1 bone position)
(-> obj process root scale)
)
)
(vector-!
(the-as vector (-> obj delta))
(the-as vector (-> obj transform))
(the-as vector (-> obj transform 1))
)
(set-vector!
(-> obj align scale)
(vector-length (the-as vector (-> obj matrix)))
(vector-length (-> obj matrix 0 vector 1))
(vector-length (-> obj matrix 0 vector 2))
1.0
)
(vector-!
(-> obj delta scale)
(-> obj align scale)
(-> obj transform 1 scale)
)
(let
((a2-8
(matrix-inv-scale! (new 'stack-no-clear 'matrix) (-> obj align scale))
)
)
(quaternion-normalize!
(matrix->quaternion
(-> obj align quat)
(matrix*! a2-8 (the-as matrix (-> obj matrix)) a2-8)
)
)
)
)
)
(let* ((a0-8 (-> obj process skel root-channel 0))
(v1-16 (-> a0-8 frame-group))
(f0-0 (-> a0-8 frame-num))
)
(= (-> a0-8 num-func) num-func-loop!)
(cond
((or (not v1-16) (!= (-> obj frame-group) v1-16))
(set! a0-9 #t)
)
((= (-> a0-8 num-func) num-func-loop!)
(set! a0-9 (< (* (-> a0-8 param 0) (- f0-0 (-> obj frame-num))) 0.0))
)
(else
(set! a0-9 (= f0-0 0.0))
)
)
(if a0-9
(set! (-> obj flags) (logior (-> obj flags) 1))
(set! (-> obj flags) (logand -2 (the-as int (-> obj flags))))
)
(set! (-> obj frame-group) v1-16)
(set! (-> obj frame-num) f0-0)
)
(mem-copy!
(the-as pointer (-> obj transform 1))
(the-as pointer (-> obj transform))
48
)
(quaternion-copy!
(the-as quaternion (-> obj transform 1 rot))
(-> obj align quat)
)
(set! (-> obj transform 1 scale quad) (-> obj align scale quad))
(let* ((a2-5 (-> obj matrix 1))
(a3-0 (-> obj matrix))
(v1-19 (-> a3-0 0 vector 0 quad))
(a0-18 (-> a3-0 0 vector 1 quad))
(a1-12 (-> a3-0 0 vector 2 quad))
(a3-1 (-> a3-0 0 vector 3 quad))
)
(set! (-> a2-5 vector 0 quad) v1-19)
(set! (-> a2-5 vector 1 quad) a0-18)
(set! (-> a2-5 vector 2 quad) a1-12)
(set! (-> a2-5 vector 3 quad) a3-1)
)
(let ((s5-1 (-> obj process node-list data 1)))
(cspace<-matrix-no-push-joint! s5-1 (the-as matrix (-> obj process skel)))
(let* ((v1-23 (-> obj matrix))
(a3-2 (-> s5-1 bone transform))
(a0-21 (-> a3-2 vector 0 quad))
(a1-14 (-> a3-2 vector 1 quad))
(a2-6 (-> a3-2 vector 2 quad))
(a3-3 (-> a3-2 vector 3 quad))
(let
((a1-24
(quaternion-inverse!
(new 'stack-no-clear 'quaternion)
(the-as quaternion (-> obj transform 1 rot))
)
(set! (-> v1-23 0 vector 0 quad) a0-21)
(set! (-> v1-23 0 vector 1 quad) a1-14)
(set! (-> v1-23 0 vector 2 quad) a2-6)
(set! (-> v1-23 0 vector 3 quad) a3-3)
)
(vector*!
(the-as vector (-> obj transform))
(-> s5-1 bone position)
(-> obj process root scale)
)
)
(vector-!
(the-as vector (-> obj delta))
(the-as vector (-> obj transform))
(the-as vector (-> obj transform 1))
)
(let ((s5-2 (-> obj align scale)))
(set! (-> s5-2 x) (vector-length (the-as vector (-> obj matrix))))
(set! (-> s5-2 y) (vector-length (-> obj matrix 0 vector 1)))
(set! (-> s5-2 z) (vector-length (-> obj matrix 0 vector 2)))
(set! (-> s5-2 w) 1.0)
)
(vector-!
(-> obj delta scale)
(-> obj align scale)
(-> obj transform 1 scale)
)
(let
((a2-8
(matrix-inv-scale! (new 'stack-no-clear 'matrix) (-> obj align scale))
)
)
(quaternion-normalize!
(matrix->quaternion
(-> obj align quat)
(matrix*! a2-8 (the-as matrix (-> obj matrix)) a2-8)
)
)
)
(let
((a1-24
(quaternion-inverse!
(new 'stack-no-clear 'quaternion)
(the-as quaternion (-> obj transform 1 rot))
)
)
(quaternion-normalize!
(quaternion*! (-> obj delta quat) a1-24 (-> obj align quat))
)
)
)
(quaternion-normalize!
(quaternion*! (-> obj delta quat) a1-24 (-> obj align quat))
)
(-> obj delta)
)
(-> obj delta)
)
)
;; definition for method 12 of type align-control
+1 -6
View File
@@ -23,12 +23,7 @@
(f30-0 1.0)
(s4-0 0)
)
(let ((v1-0 s5-0))
(set! (-> v1-0 x) 0.0)
(set! (-> v1-0 y) 0.0)
(set! (-> v1-0 z) 0.0)
(set! (-> v1-0 w) 1.0)
)
(set-vector! s5-0 0.0 0.0 0.0 1.0)
(dotimes (s3-0 10)
(let ((f28-0 (* f30-0 (sin (* 3276.8 (the float s3-0)))))
(f26-0 (* f30-0 (sin (* 3276.8 (the float (+ s3-0 1))))))
+2 -12
View File
@@ -917,18 +917,8 @@
(s5-0 (new-stack-vector0))
(gp-0 (new-stack-vector0))
)
(let ((v1-3 s4-0))
(set! (-> v1-3 x) 0.0)
(set! (-> v1-3 y) 0.0)
(set! (-> v1-3 z) 0.0)
(set! (-> v1-3 w) 1.0)
)
(let ((v1-4 a1-2))
(set! (-> v1-4 x) 100.0)
(set! (-> v1-4 y) 0.0)
(set! (-> v1-4 z) 0.0)
(set! (-> v1-4 w) 10000.0)
)
(set-vector! s4-0 0.0 0.0 0.0 1.0)
(set-vector! a1-2 100.0 0.0 0.0 10000.0)
(let ((a2-1 (circle-circle-xz-intersect s4-0 a1-2 s5-0 gp-0)))
(format #t "res = ~d~%" a2-1)
)
+8 -48
View File
@@ -94,54 +94,14 @@
(defmethod new mood-context ((allocation symbol) (type-to-make type))
(let ((v0-0 (object-new allocation type-to-make (the-as int (-> type-to-make size)))))
(let ((v1-2 (-> v0-0 times)))
(set! (-> v1-2 0 x) 1.0)
(set! (-> v1-2 0 y) 1.0)
(set! (-> v1-2 0 z) 1.0)
(set! (-> v1-2 0 w) 0.0)
)
(let ((v1-3 (-> v0-0 times 1)))
(set! (-> v1-3 x) 1.0)
(set! (-> v1-3 y) 1.0)
(set! (-> v1-3 z) 1.0)
(set! (-> v1-3 w) 0.0)
)
(let ((v1-4 (-> v0-0 times 2)))
(set! (-> v1-4 x) 1.0)
(set! (-> v1-4 y) 1.0)
(set! (-> v1-4 z) 1.0)
(set! (-> v1-4 w) 0.0)
)
(let ((v1-5 (-> v0-0 times 3)))
(set! (-> v1-5 x) 1.0)
(set! (-> v1-5 y) 1.0)
(set! (-> v1-5 z) 1.0)
(set! (-> v1-5 w) 0.0)
)
(let ((v1-6 (-> v0-0 times 4)))
(set! (-> v1-6 x) 1.0)
(set! (-> v1-6 y) 1.0)
(set! (-> v1-6 z) 1.0)
(set! (-> v1-6 w) 0.0)
)
(let ((v1-7 (-> v0-0 times 5)))
(set! (-> v1-7 x) 1.0)
(set! (-> v1-7 y) 1.0)
(set! (-> v1-7 z) 1.0)
(set! (-> v1-7 w) 0.0)
)
(let ((v1-8 (-> v0-0 times 6)))
(set! (-> v1-8 x) 1.0)
(set! (-> v1-8 y) 1.0)
(set! (-> v1-8 z) 1.0)
(set! (-> v1-8 w) 0.0)
)
(let ((v1-9 (-> v0-0 times 7)))
(set! (-> v1-9 x) 1.0)
(set! (-> v1-9 y) 1.0)
(set! (-> v1-9 z) 1.0)
(set! (-> v1-9 w) 0.0)
)
(set-vector! (-> v0-0 times 0) 1.0 1.0 1.0 0.0)
(set-vector! (-> v0-0 times 1) 1.0 1.0 1.0 0.0)
(set-vector! (-> v0-0 times 2) 1.0 1.0 1.0 0.0)
(set-vector! (-> v0-0 times 3) 1.0 1.0 1.0 0.0)
(set-vector! (-> v0-0 times 4) 1.0 1.0 1.0 0.0)
(set-vector! (-> v0-0 times 5) 1.0 1.0 1.0 0.0)
(set-vector! (-> v0-0 times 6) 1.0 1.0 1.0 0.0)
(set-vector! (-> v0-0 times 7) 1.0 1.0 1.0 0.0)
v0-0
)
)
+15 -26
View File
@@ -247,18 +247,11 @@
"Set dst to be ([src 1.0] * mat).xyz. Doesn't touch the w of dst.
dst and vec can be the same memory"
(let ((temp-vec3 (new-stack-vector0)))
;; create a temporary vec with [x, y, z, 1.0]
(let ((v1-0 temp-vec3))
(set! (-> v1-0 data 0) (-> vec data 0))
(set! (-> v1-0 data 1) (-> vec data 1))
(set! (-> v1-0 data 2) (-> vec data 2))
(set! (-> v1-0 data 3) 1.0)
)
(set-vector! temp-vec3 (-> vec x) (-> vec y) (-> vec z) 1.0)
(vector-matrix*! temp-vec3 temp-vec3 mat)
;; only write back x,y,z
(set! (-> dst data 0) (-> temp-vec3 data 0))
(set! (-> dst data 1) (-> temp-vec3 data 1))
(set! (-> dst data 2) (-> temp-vec3 data 2))
(set! (-> dst x) (-> temp-vec3 x))
(set! (-> dst y) (-> temp-vec3 y))
(set! (-> dst z) (-> temp-vec3 z))
)
dst
)
@@ -267,16 +260,11 @@
"Set dst to vec rotated by the rotation in the homogeneous transform mat.
mat should not have a scale/shear (the upper 3x3 should be a pure rotation)."
(let ((temp-vec3 (new-stack-vector0)))
(let ((v1-0 temp-vec3))
(set! (-> v1-0 data 0) (-> vec data 0))
(set! (-> v1-0 data 1) (-> vec data 1))
(set! (-> v1-0 data 2) (-> vec data 2))
(set! (-> v1-0 data 3) 1.0)
)
(set-vector! temp-vec3 (-> vec x) (-> vec y) (-> vec z) 1.0)
(vector-rotate*! temp-vec3 temp-vec3 mat)
(set! (-> dst data 0) (-> temp-vec3 data 0))
(set! (-> dst data 1) (-> temp-vec3 data 1))
(set! (-> dst data 2) (-> temp-vec3 data 2))
(set! (-> dst x) (-> temp-vec3 x))
(set! (-> dst y) (-> temp-vec3 y))
(set! (-> dst z) (-> temp-vec3 z))
)
dst
)
@@ -787,12 +775,13 @@
;; the vector-sincos! lets us take the sine and cosine of 4 floats at a time.
;; it uses vector operations and reuses the taylor series coefficients to do this quickly
(let ((v1-0 sincos-input))
(set! (-> v1-0 data 0) (-> rots-deg data 0))
(set! (-> v1-0 data 1) (- (-> rots-deg data 1) (-> rots-deg data 2)))
(set! (-> v1-0 data 2) (-> rots-deg data 2))
(set! (-> v1-0 data 3) 1.0)
)
(set-vector!
sincos-input
(-> rots-deg x)
(- (-> rots-deg y) (-> rots-deg z))
(-> rots-deg z)
1.0
)
(vector-sincos! sin-vec cos-vec sincos-input)
(let ((cos-y (-> cos-vec data 1))
(sin-y (-> sin-vec data 1))
+4 -9
View File
@@ -1033,16 +1033,11 @@
(let ((gp-0 (new 'stack-no-clear 'matrix))
(s5-0 (new 'stack-no-clear 'vector))
)
(quaternion->matrix gp-0 arg0)
(let ((v1-1 s5-0))
(set! (-> v1-1 data 0) 0.0)
(set! (-> v1-1 data 1) 0.0)
(set! (-> v1-1 data 2) 1.0)
(set! (-> v1-1 data 3) 1.0)
(quaternion->matrix gp-0 arg0)
(set-vector! s5-0 0.0 0.0 1.0 1.0)
(vector-matrix*! s5-0 s5-0 gp-0)
(vector-y-angle s5-0)
)
(vector-matrix*! s5-0 s5-0 gp-0)
(vector-y-angle s5-0)
)
)
(defun-debug quaternion-validate ((arg0 quaternion))
+6 -6
View File
@@ -1270,11 +1270,11 @@
(defun rand-vu-sphere-point! ((arg0 vector) (arg1 float))
"Get a random point on the sphere at the origin with radius arg1.
The point is on the surface of the sphere."
(let ((s4-0 arg0))
(set! (-> s4-0 data 0) (rand-vu-float-range -1.0 1.0))
(set! (-> s4-0 data 1) (rand-vu-float-range -1.0 1.0))
(set! (-> s4-0 data 2) (rand-vu-float-range -1.0 1.0))
(set! (-> s4-0 data 3) 1.0)
)
(set-vector! arg0
(rand-vu-float-range -1.0 1.0)
(rand-vu-float-range -1.0 1.0)
(rand-vu-float-range -1.0 1.0)
1.0
)
(vector-normalize! arg0 (rand-vu-float-range 0.0 arg1))
)
+6 -5
View File
@@ -7,11 +7,12 @@
(define *sp-frame-time* (new 'global 'vector))
(let ((v1-1 *sp-frame-time*))
(set! (-> v1-1 x) 0.00000000000000000000000000000000000001175495)
(set! (-> v1-1 y) 5.0)
(set! (-> v1-1 z) 1.0)
(set! (-> v1-1 w) 1.0)
(set-vector!
*sp-frame-time*
0.00000000000000000000000000000000000001175495
5.0
1.0
1.0
)
(define *sp-60-hz* #t)
+6 -31
View File
@@ -82,12 +82,7 @@
(set! (-> obj joint) (-> (-> proc node-list) data joint-idx))
(set-mode! obj mode)
;; set defaults.
(let ((twist-max (-> obj twist-max)))
(set! (-> twist-max x) 8192.0)
(set! (-> twist-max y) 11832.889)
(set! (-> twist-max z) 0.0)
(set! (-> twist-max w) 1.0)
)
(set-vector! (-> obj twist-max) 8192.0 11832.889 0.0 1.0)
(set! (-> obj up) (the-as uint 1))
(set! (-> obj nose) (the-as uint 2))
(set! (-> obj ear) (the-as uint 0))
@@ -140,12 +135,7 @@
(set! (-> joint param2) #f)
(vector-reset! (-> obj trans))
(quaternion-identity! (-> obj quat))
(let ((v1-2 (-> obj scale)))
(set! (-> v1-2 x) 1.0)
(set! (-> v1-2 y) 1.0)
(set! (-> v1-2 z) 1.0)
(set! (-> v1-2 w) 1.0)
)
(set-vector! (-> obj scale) 1.0 1.0 1.0 1.0)
(set! (-> obj max-dist) (the-as float #f))
)
(((joint-mod-handler-mode joint-set*))
@@ -154,12 +144,7 @@
(set! (-> joint param2) #f)
(vector-reset! (-> obj trans))
(quaternion-identity! (-> obj quat))
(let ((v1-4 (-> obj scale)))
(set! (-> v1-4 x) 1.0)
(set! (-> v1-4 y) 1.0)
(set! (-> v1-4 z) 1.0)
(set! (-> v1-4 w) 1.0)
)
(set-vector! (-> obj scale) 1.0 1.0 1.0 1.0)
(set! (-> obj max-dist) (the-as float #f))
)
)
@@ -676,14 +661,9 @@
)
(vector*! (-> arg1 scale) (-> arg1 scale) (-> s5-0 scale))
(cspace<-parented-transformq-joint! arg0 arg1)
(when (-> s5-0 max-dist)
(let ((v1-4 (-> arg0 bone scale)))
(set! (-> v1-4 x) 1.0)
(set! (-> v1-4 y) 1.0)
(set! (-> v1-4 z) 1.0)
(set! (-> v1-4 w) 1.0)
(if (-> s5-0 max-dist)
(set-vector! (-> arg0 bone scale) 1.0 1.0 1.0 1.0)
)
)
)
(none)
)
@@ -757,12 +737,7 @@
(set! (-> v0-0 wheel-radius) arg2)
(set! (-> v0-0 wheel-axis) arg3)
(set! (-> v0-0 angle) 0.0)
(let ((v1-2 (-> v0-0 last-position)))
(set! (-> v1-2 x) 0.0)
(set! (-> v1-2 y) 0.0)
(set! (-> v1-2 z) 0.0)
(set! (-> v1-2 w) 1.0)
)
(set-vector! (-> v0-0 last-position) 0.0 0.0 0.0 1.0)
(let ((v1-5 (-> (-> arg0 node-list) data arg1)))
(set! (-> v1-5 param0) joint-mod-wheel-callback)
(set! (-> v1-5 param1) v0-0)