mirror of
https://github.com/open-goal/jak-project
synced 2026-08-16 13:17:34 -04:00
jak1 ref
This commit is contained in:
+12
-10
@@ -301,7 +301,6 @@
|
||||
;; definition for method 27 of type joint-exploder
|
||||
;; INFO: Used lq/sq
|
||||
(defmethod joint-exploder-method-27 ((this joint-exploder) (arg0 joint-exploder-list) (arg1 int))
|
||||
(local-vars (sv-16 int) (sv-32 int) (sv-48 int))
|
||||
(let ((s4-0 (the-as joint-exploder-list #f)))
|
||||
(let ((v1-0 1))
|
||||
(until (= v1-0 5)
|
||||
@@ -336,9 +335,10 @@
|
||||
(let ((s0-0 (-> s2-0 joint s1-0)))
|
||||
(cond
|
||||
((>= (-> s0-0 mat vector 3 x) f30-0)
|
||||
(set! sv-16 (joint-exploder-method-26 this arg0 s1-0))
|
||||
(joint-exploder-method-20 this (the-as joint-exploder-list s3-0) s1-0)
|
||||
(set! s1-0 sv-16)
|
||||
(let ((sv-16 (joint-exploder-method-26 this arg0 s1-0)))
|
||||
(joint-exploder-method-20 this (the-as joint-exploder-list s3-0) s1-0)
|
||||
(set! s1-0 sv-16)
|
||||
)
|
||||
(joint-exploder-method-21 this (the-as joint-exploder-list s3-0) s0-0)
|
||||
)
|
||||
(else
|
||||
@@ -356,9 +356,10 @@
|
||||
(let ((s0-1 (-> s2-0 joint s1-0)))
|
||||
(cond
|
||||
((>= (-> s0-1 mat vector 3 y) f30-1)
|
||||
(set! sv-32 (joint-exploder-method-26 this arg0 s1-0))
|
||||
(joint-exploder-method-20 this (the-as joint-exploder-list s3-0) s1-0)
|
||||
(set! s1-0 sv-32)
|
||||
(let ((sv-32 (joint-exploder-method-26 this arg0 s1-0)))
|
||||
(joint-exploder-method-20 this (the-as joint-exploder-list s3-0) s1-0)
|
||||
(set! s1-0 sv-32)
|
||||
)
|
||||
(joint-exploder-method-21 this (the-as joint-exploder-list s3-0) s0-1)
|
||||
)
|
||||
(else
|
||||
@@ -376,9 +377,10 @@
|
||||
(let ((s0-2 (-> s2-0 joint s1-0)))
|
||||
(cond
|
||||
((>= (-> s0-2 mat vector 3 z) f30-2)
|
||||
(set! sv-48 (joint-exploder-method-26 this arg0 s1-0))
|
||||
(joint-exploder-method-20 this (the-as joint-exploder-list s3-0) s1-0)
|
||||
(set! s1-0 sv-48)
|
||||
(let ((sv-48 (joint-exploder-method-26 this arg0 s1-0)))
|
||||
(joint-exploder-method-20 this (the-as joint-exploder-list s3-0) s1-0)
|
||||
(set! s1-0 sv-48)
|
||||
)
|
||||
(joint-exploder-method-21 this (the-as joint-exploder-list s3-0) s0-2)
|
||||
)
|
||||
(else
|
||||
|
||||
+110
-111
@@ -291,71 +291,72 @@
|
||||
;; INFO: Used lq/sq
|
||||
;; INFO: Return type mismatch int vs none.
|
||||
(defun joint-mod-look-at-handler ((csp cspace) (xform transformq))
|
||||
(local-vars (sv-48 vector) (sv-52 vector) (sv-56 vector))
|
||||
(let ((gp-0 (the-as joint-mod (-> csp param1))))
|
||||
(cspace<-parented-transformq-joint! csp xform)
|
||||
(set! sv-48 (vector-normalize-copy!
|
||||
(new 'stack-no-clear 'vector)
|
||||
(-> gp-0 process node-list data 0 bone transform vector 1)
|
||||
1.0
|
||||
)
|
||||
)
|
||||
(set! sv-52 (vector-normalize! (-> csp bone transform vector (-> gp-0 nose)) 1.0))
|
||||
(set! sv-56 (vector-normalize!
|
||||
(vector-! (new 'stack-no-clear 'vector) (-> gp-0 target) (-> csp bone transform vector 3))
|
||||
1.0
|
||||
)
|
||||
)
|
||||
(let* ((f30-0 (vector-y-angle sv-52))
|
||||
(a0-9 (vector-flatten! (new-stack-vector0) sv-56 sv-48))
|
||||
(f0-0 (vector-y-angle a0-9))
|
||||
(f0-1 (deg-diff f30-0 f0-0))
|
||||
)
|
||||
(if (< (-> gp-0 ignore-angle) (fabs f0-1))
|
||||
(set! f0-1 0.0)
|
||||
)
|
||||
(let ((f30-1
|
||||
(fmax (fmin (* f0-1 (-> gp-0 blend) (-> gp-0 flex-blend)) (-> gp-0 twist-max y)) (- (-> gp-0 twist-max y)))
|
||||
)
|
||||
)
|
||||
(if (and (-> gp-0 shutting-down?) (= (-> gp-0 twist y) f30-1))
|
||||
(set-mode! gp-0 (joint-mod-handler-mode reset))
|
||||
)
|
||||
(set! (-> gp-0 twist y) (deg-seek (-> gp-0 twist y) f30-1 (* 0.1 (fabs (deg-diff f30-1 (-> gp-0 twist y))))))
|
||||
)
|
||||
)
|
||||
(let ((v1-15 (-> gp-0 up)))
|
||||
(cond
|
||||
((zero? v1-15)
|
||||
(quaternion-rotate-x! (-> xform quat) (-> xform quat) (-> gp-0 twist y))
|
||||
)
|
||||
((= v1-15 1)
|
||||
(quaternion-rotate-local-y! (-> xform quat) (-> xform quat) (-> gp-0 twist y))
|
||||
)
|
||||
(else
|
||||
(quaternion-rotate-z! (-> xform quat) (-> xform quat) (-> gp-0 twist y))
|
||||
)
|
||||
)
|
||||
)
|
||||
(let* ((s3-1 (vector-normalize-copy!
|
||||
(let ((sv-48 (vector-normalize-copy!
|
||||
(new 'stack-no-clear 'vector)
|
||||
(the-as vector (-> gp-0 process node-list data 0 bone transform))
|
||||
(-> gp-0 process node-list data 0 bone transform vector 1)
|
||||
1.0
|
||||
)
|
||||
)
|
||||
(sv-52 (vector-normalize! (-> csp bone transform vector (-> gp-0 nose)) 1.0))
|
||||
(sv-56 (vector-normalize!
|
||||
(vector-! (new 'stack-no-clear 'vector) (-> gp-0 target) (-> csp bone transform vector 3))
|
||||
1.0
|
||||
)
|
||||
)
|
||||
(f30-2 (vector-x-angle sv-52))
|
||||
(s3-2 (vector-flatten! (new-stack-vector0) sv-56 s3-1))
|
||||
(f0-15 (vector-x-angle s3-2))
|
||||
(f0-21 (fmax
|
||||
(fmin (* (- (deg-diff f30-2 f0-15)) (-> gp-0 blend) (-> gp-0 flex-blend)) (-> gp-0 twist-max x))
|
||||
(- (-> gp-0 twist-max x))
|
||||
)
|
||||
)
|
||||
)
|
||||
(if (< (vector-dot s3-2 sv-52) 0.1)
|
||||
(set! f0-21 0.0)
|
||||
)
|
||||
(set! (-> gp-0 twist x) (deg-seek (-> gp-0 twist x) f0-21 (* 0.1 (fabs (deg-diff f0-21 (-> gp-0 twist x))))))
|
||||
(let* ((f30-0 (vector-y-angle sv-52))
|
||||
(a0-9 (vector-flatten! (new-stack-vector0) sv-56 sv-48))
|
||||
(f0-0 (vector-y-angle a0-9))
|
||||
(f0-1 (deg-diff f30-0 f0-0))
|
||||
)
|
||||
(if (< (-> gp-0 ignore-angle) (fabs f0-1))
|
||||
(set! f0-1 0.0)
|
||||
)
|
||||
(let ((f30-1
|
||||
(fmax (fmin (* f0-1 (-> gp-0 blend) (-> gp-0 flex-blend)) (-> gp-0 twist-max y)) (- (-> gp-0 twist-max y)))
|
||||
)
|
||||
)
|
||||
(if (and (-> gp-0 shutting-down?) (= (-> gp-0 twist y) f30-1))
|
||||
(set-mode! gp-0 (joint-mod-handler-mode reset))
|
||||
)
|
||||
(set! (-> gp-0 twist y) (deg-seek (-> gp-0 twist y) f30-1 (* 0.1 (fabs (deg-diff f30-1 (-> gp-0 twist y))))))
|
||||
)
|
||||
)
|
||||
(let ((v1-15 (-> gp-0 up)))
|
||||
(cond
|
||||
((zero? v1-15)
|
||||
(quaternion-rotate-x! (-> xform quat) (-> xform quat) (-> gp-0 twist y))
|
||||
)
|
||||
((= v1-15 1)
|
||||
(quaternion-rotate-local-y! (-> xform quat) (-> xform quat) (-> gp-0 twist y))
|
||||
)
|
||||
(else
|
||||
(quaternion-rotate-z! (-> xform quat) (-> xform quat) (-> gp-0 twist y))
|
||||
)
|
||||
)
|
||||
)
|
||||
(let* ((s3-1 (vector-normalize-copy!
|
||||
(new 'stack-no-clear 'vector)
|
||||
(the-as vector (-> gp-0 process node-list data 0 bone transform))
|
||||
1.0
|
||||
)
|
||||
)
|
||||
(f30-2 (vector-x-angle sv-52))
|
||||
(s3-2 (vector-flatten! (new-stack-vector0) sv-56 s3-1))
|
||||
(f0-15 (vector-x-angle s3-2))
|
||||
(f0-21 (fmax
|
||||
(fmin (* (- (deg-diff f30-2 f0-15)) (-> gp-0 blend) (-> gp-0 flex-blend)) (-> gp-0 twist-max x))
|
||||
(- (-> gp-0 twist-max x))
|
||||
)
|
||||
)
|
||||
)
|
||||
(if (< (vector-dot s3-2 sv-52) 0.1)
|
||||
(set! f0-21 0.0)
|
||||
)
|
||||
(set! (-> gp-0 twist x) (deg-seek (-> gp-0 twist x) f0-21 (* 0.1 (fabs (deg-diff f0-21 (-> gp-0 twist x))))))
|
||||
)
|
||||
)
|
||||
(let ((v1-27 (-> gp-0 ear)))
|
||||
(cond
|
||||
@@ -390,69 +391,67 @@
|
||||
;; INFO: Used lq/sq
|
||||
;; INFO: Return type mismatch int vs none.
|
||||
(defun joint-mod-world-look-at-handler ((arg0 cspace) (arg1 transformq))
|
||||
(local-vars (sv-48 vector) (sv-52 vector) (sv-56 vector))
|
||||
(let ((gp-0 (the-as joint-mod (-> arg0 param1))))
|
||||
(let ((s5-0 (-> arg0 bone transform)))
|
||||
(cspace<-parented-transformq-joint! arg0 arg1)
|
||||
(set! sv-48
|
||||
(vector-normalize-copy!
|
||||
(new 'stack-no-clear 'vector)
|
||||
(-> gp-0 process node-list data 0 bone transform vector 1)
|
||||
1.0
|
||||
(let ((sv-48 (vector-normalize-copy!
|
||||
(new 'stack-no-clear 'vector)
|
||||
(-> gp-0 process node-list data 0 bone transform vector 1)
|
||||
1.0
|
||||
)
|
||||
)
|
||||
(sv-52 (vector-normalize! (-> s5-0 vector (-> gp-0 nose)) 1.0))
|
||||
(sv-56 (vector-normalize! (vector-! (new 'stack-no-clear 'vector) (-> gp-0 target) (-> s5-0 vector 3)) 1.0))
|
||||
)
|
||||
(let* ((f30-0 (vector-y-angle sv-52))
|
||||
(a0-7 (vector-flatten! (new-stack-vector0) sv-56 sv-48))
|
||||
(f0-0 (vector-y-angle a0-7))
|
||||
(f0-1 (deg-diff f30-0 f0-0))
|
||||
)
|
||||
(if (< (-> gp-0 ignore-angle) (fabs f0-1))
|
||||
(set! f0-1 0.0)
|
||||
)
|
||||
)
|
||||
(set! sv-52 (vector-normalize! (-> s5-0 vector (-> gp-0 nose)) 1.0))
|
||||
(set! sv-56
|
||||
(vector-normalize! (vector-! (new 'stack-no-clear 'vector) (-> gp-0 target) (-> s5-0 vector 3)) 1.0)
|
||||
)
|
||||
(let* ((f30-0 (vector-y-angle sv-52))
|
||||
(a0-7 (vector-flatten! (new-stack-vector0) sv-56 sv-48))
|
||||
(f0-0 (vector-y-angle a0-7))
|
||||
(f0-1 (deg-diff f30-0 f0-0))
|
||||
)
|
||||
(if (< (-> gp-0 ignore-angle) (fabs f0-1))
|
||||
(set! f0-1 0.0)
|
||||
)
|
||||
(let ((f0-5
|
||||
(fmax (fmin (* f0-1 (-> gp-0 blend) (-> gp-0 flex-blend)) (-> gp-0 twist-max y)) (- (-> gp-0 twist-max y)))
|
||||
(let ((f0-5
|
||||
(fmax (fmin (* f0-1 (-> gp-0 blend) (-> gp-0 flex-blend)) (-> gp-0 twist-max y)) (- (-> gp-0 twist-max y)))
|
||||
)
|
||||
)
|
||||
)
|
||||
(set! (-> gp-0 twist y)
|
||||
(deg-seek (-> gp-0 twist y) f0-5 (fmax 1.0 (* 0.1 (fabs (deg-diff f0-5 (-> gp-0 twist y))))))
|
||||
(set! (-> gp-0 twist y)
|
||||
(deg-seek (-> gp-0 twist y) f0-5 (fmax 1.0 (* 0.1 (fabs (deg-diff f0-5 (-> gp-0 twist y))))))
|
||||
)
|
||||
)
|
||||
)
|
||||
(when (!= (-> gp-0 twist y) 0.0)
|
||||
(let ((a2-3 (matrix-rotate-y! (new 'stack-no-clear 'matrix) (-> gp-0 twist y)))
|
||||
(s4-2 (-> s5-0 vector 3 quad))
|
||||
)
|
||||
(matrix*! s5-0 s5-0 a2-3)
|
||||
(set! (-> s5-0 vector 3 quad) s4-2)
|
||||
)
|
||||
)
|
||||
)
|
||||
(when (!= (-> gp-0 twist y) 0.0)
|
||||
(let ((a2-3 (matrix-rotate-y! (new 'stack-no-clear 'matrix) (-> gp-0 twist y)))
|
||||
(s4-2 (-> s5-0 vector 3 quad))
|
||||
)
|
||||
(matrix*! s5-0 s5-0 a2-3)
|
||||
(set! (-> s5-0 vector 3 quad) s4-2)
|
||||
)
|
||||
)
|
||||
(let* ((s4-3
|
||||
(vector-normalize-copy!
|
||||
(new 'stack-no-clear 'vector)
|
||||
(the-as vector (-> gp-0 process node-list data 0 bone transform))
|
||||
1.0
|
||||
(let* ((s4-3
|
||||
(vector-normalize-copy!
|
||||
(new 'stack-no-clear 'vector)
|
||||
(the-as vector (-> gp-0 process node-list data 0 bone transform))
|
||||
1.0
|
||||
)
|
||||
)
|
||||
(f30-2 (vector-x-angle sv-52))
|
||||
(s4-4 (vector-flatten! (new-stack-vector0) sv-56 s4-3))
|
||||
(f0-14 (vector-x-angle s4-4))
|
||||
(f0-20
|
||||
(fmax
|
||||
(fmin (* (- (deg-diff f30-2 f0-14)) (-> gp-0 blend) (-> gp-0 flex-blend)) (-> gp-0 twist-max x))
|
||||
(- (-> gp-0 twist-max x))
|
||||
)
|
||||
)
|
||||
)
|
||||
(f30-2 (vector-x-angle sv-52))
|
||||
(s4-4 (vector-flatten! (new-stack-vector0) sv-56 s4-3))
|
||||
(f0-14 (vector-x-angle s4-4))
|
||||
(f0-20
|
||||
(fmax
|
||||
(fmin (* (- (deg-diff f30-2 f0-14)) (-> gp-0 blend) (-> gp-0 flex-blend)) (-> gp-0 twist-max x))
|
||||
(- (-> gp-0 twist-max x))
|
||||
)
|
||||
)
|
||||
)
|
||||
(if (< (vector-dot s4-4 sv-52) 0.1)
|
||||
(set! f0-20 0.0)
|
||||
)
|
||||
(set! (-> gp-0 twist x)
|
||||
(deg-seek (-> gp-0 twist x) f0-20 (fmax 1.0 (* 0.1 (fabs (deg-diff f0-20 (-> gp-0 twist x))))))
|
||||
(if (< (vector-dot s4-4 sv-52) 0.1)
|
||||
(set! f0-20 0.0)
|
||||
)
|
||||
(set! (-> gp-0 twist x)
|
||||
(deg-seek (-> gp-0 twist x) f0-20 (fmax 1.0 (* 0.1 (fabs (deg-diff f0-20 (-> gp-0 twist x))))))
|
||||
)
|
||||
)
|
||||
)
|
||||
(when (!= (-> gp-0 twist x) 0.0)
|
||||
(let* ((v1-20 (-> gp-0 ear))
|
||||
|
||||
+34
-46
@@ -742,60 +742,48 @@
|
||||
;; INFO: Used lq/sq
|
||||
;; ERROR: Failed load: (set! v1-29 (l.wu (+ a0-9 -4))) at op 75
|
||||
(defun joint-control-remap! ((arg0 joint-control) (arg1 art-group) (arg2 art-group) (arg3 pair) (arg4 int) (arg5 string))
|
||||
(local-vars
|
||||
(sv-16 int)
|
||||
(sv-24 symbol)
|
||||
(sv-32 int)
|
||||
(sv-40 int)
|
||||
(sv-48 joint-control-channel)
|
||||
(sv-52 object)
|
||||
(sv-56 int)
|
||||
(sv-64 joint)
|
||||
(sv-80 string)
|
||||
)
|
||||
(set! sv-16 (+ (length (-> arg2 name)) 1))
|
||||
(set! sv-24 #t)
|
||||
(set! sv-32 arg4)
|
||||
(set! sv-40 2)
|
||||
(while (and (< sv-40 (-> arg1 length)) (!= (-> arg1 data sv-40 type) art-joint-anim))
|
||||
(set! sv-40 (+ sv-40 1))
|
||||
)
|
||||
(dotimes (s2-1 (-> arg0 active-channels))
|
||||
(set! sv-48 (-> arg0 channel s2-1))
|
||||
(when (-> sv-48 frame-group)
|
||||
(format (clear *temp-string*) "~S~G" arg5 (&+ (-> sv-48 frame-group name data) sv-16))
|
||||
(when (not (null? arg3))
|
||||
(set! sv-52 (nassoc *temp-string* arg3))
|
||||
(when sv-52
|
||||
(let ((s1-1 sv-32)
|
||||
(a0-9 sv-52)
|
||||
(let ((sv-16 (+ (length (-> arg2 name)) 1))
|
||||
(sv-24 #t)
|
||||
)
|
||||
(let ((sv-32 arg4)
|
||||
(sv-40 2)
|
||||
)
|
||||
(while (and (< sv-40 (-> arg1 length)) (!= (-> arg1 data sv-40 type) art-joint-anim))
|
||||
(+! sv-40 1)
|
||||
)
|
||||
(dotimes (s2-1 (-> arg0 active-channels))
|
||||
(let ((sv-48 (-> arg0 channel s2-1)))
|
||||
(when (-> sv-48 frame-group)
|
||||
(format (clear *temp-string*) "~S~G" arg5 (&+ (-> sv-48 frame-group name data) sv-16))
|
||||
(when (not (null? arg3))
|
||||
(let ((sv-52 (nassoc *temp-string* arg3)))
|
||||
(when sv-52
|
||||
(let* ((a0-9 sv-52)
|
||||
(sv-56 (mod sv-32 (+ ((method-of-type (rtype-of a0-9) length) a0-9) -1)))
|
||||
)
|
||||
(format (clear *temp-string*) "~S" (ref sv-52 (+ sv-56 1)))
|
||||
)
|
||||
)
|
||||
)
|
||||
(set! sv-56 (mod s1-1 (+ ((method-of-type (rtype-of a0-9) length) a0-9) -1)))
|
||||
)
|
||||
(let ((s1-2 format)
|
||||
(s0-0 (clear *temp-string*))
|
||||
)
|
||||
(let ((sv-64 (lookup-art arg1 *temp-string* art-joint-anim)))
|
||||
(cond
|
||||
(sv-64
|
||||
(set! (-> sv-48 frame-group) (the-as art-joint-anim sv-64))
|
||||
)
|
||||
(else
|
||||
(set! (-> sv-48 frame-group) (the-as art-joint-anim (-> arg1 data sv-40)))
|
||||
(set! (-> sv-48 frame-num) 0.0)
|
||||
(set! sv-24 (the-as symbol #f))
|
||||
)
|
||||
)
|
||||
(set! sv-80 "~S")
|
||||
(let ((a2-2 (ref sv-52 (+ sv-56 1))))
|
||||
(s1-2 s0-0 sv-80 a2-2)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(set! sv-64 (lookup-art arg1 *temp-string* art-joint-anim))
|
||||
(cond
|
||||
(sv-64
|
||||
(set! (-> sv-48 frame-group) (the-as art-joint-anim sv-64))
|
||||
)
|
||||
(else
|
||||
(set! (-> sv-48 frame-group) (the-as art-joint-anim (-> arg1 data sv-40)))
|
||||
(set! (-> sv-48 frame-num) 0.0)
|
||||
(set! sv-24 (the-as symbol #f))
|
||||
)
|
||||
)
|
||||
)
|
||||
sv-24
|
||||
)
|
||||
sv-24
|
||||
)
|
||||
|
||||
;; definition for function flatten-joint-control-to-spr
|
||||
|
||||
+2
-3
@@ -156,7 +156,6 @@
|
||||
)
|
||||
)
|
||||
:code (behavior ()
|
||||
(local-vars (sv-160 cam-rotation-tracker))
|
||||
(loop
|
||||
(when (and (not (logtest? (-> *camera* master-options) 2)) (!= (-> self tracking-status) 0))
|
||||
(set! (-> self tracking-status) (the-as uint 0))
|
||||
@@ -200,8 +199,8 @@
|
||||
)
|
||||
)
|
||||
(else
|
||||
(set! sv-160 (-> s5-0 0 tracking))
|
||||
(let ((s2-0 (-> s5-0 0 trans))
|
||||
(let ((sv-160 (-> s5-0 0 tracking))
|
||||
(s2-0 (-> s5-0 0 trans))
|
||||
(s5-1 (-> s4-0 0 tracking))
|
||||
(s0-0 (-> s4-0 0 trans))
|
||||
)
|
||||
|
||||
+165
-164
@@ -272,35 +272,21 @@
|
||||
;; WARN: Stack slot offset 164 signed mismatch
|
||||
;; WARN: Stack slot offset 164 signed mismatch
|
||||
(defbehavior cam-layout-entity-volume-info-create cam-layout ((arg0 entity-camera) (arg1 symbol))
|
||||
(local-vars
|
||||
(sv-16 res-tag)
|
||||
(sv-160 vector)
|
||||
(sv-164 float)
|
||||
(sv-168 int)
|
||||
(sv-176 vector)
|
||||
(sv-192 vector)
|
||||
(sv-208 vector)
|
||||
(sv-224 vector)
|
||||
(sv-240 vector)
|
||||
(sv-256 int)
|
||||
(sv-272 int)
|
||||
(sv-288 int)
|
||||
)
|
||||
(let ((s4-0 0))
|
||||
(loop
|
||||
(set! sv-16 (new 'static 'res-tag))
|
||||
(let ((s3-0 (the-as (inline-array vector) ((method-of-type res-lump get-property-data)
|
||||
arg0
|
||||
arg1
|
||||
'exact
|
||||
(the float s4-0)
|
||||
(the-as pointer #f)
|
||||
(& sv-16)
|
||||
*res-static-buf*
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(let* ((sv-16 (new 'static 'res-tag))
|
||||
(s3-0 (the-as (inline-array vector) ((method-of-type res-lump get-property-data)
|
||||
arg0
|
||||
arg1
|
||||
'exact
|
||||
(the float s4-0)
|
||||
(the-as pointer #f)
|
||||
(& sv-16)
|
||||
*res-static-buf*
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(cond
|
||||
(s3-0
|
||||
(when (>= *volume-descriptor-current* 100)
|
||||
@@ -316,121 +302,137 @@
|
||||
(set! *volume-descriptor-current* (+ *volume-descriptor-current* 1))
|
||||
(+! (-> self num-volumes) 1)
|
||||
(dotimes (s1-0 (the-as int (-> sv-16 elt-count)))
|
||||
(set! sv-192 (new 'stack-no-clear 'vector))
|
||||
(set! (-> sv-192 quad) (the-as uint128 0))
|
||||
(set! sv-208 (new 'stack-no-clear 'vector))
|
||||
(set! (-> sv-208 quad) (the-as uint128 0))
|
||||
(set! sv-224 (new 'stack-no-clear 'vector))
|
||||
(set! (-> sv-224 quad) (the-as uint128 0))
|
||||
(set! sv-240 (new 'stack-no-clear 'vector))
|
||||
(set! (-> sv-240 quad) (the-as uint128 0))
|
||||
0.0
|
||||
0.0
|
||||
0.0
|
||||
(set! (-> (new 'stack-no-clear 'vector) quad) (the-as uint128 0))
|
||||
(let ((s0-0 (new-stack-vector0)))
|
||||
(set! sv-256 0)
|
||||
(set! sv-272 0)
|
||||
(while (< sv-272 (the-as int (-> sv-16 elt-count)))
|
||||
(when (!= s1-0 sv-272)
|
||||
(vector-float*! sv-192 (-> s3-0 sv-272) (-> s3-0 sv-272 w))
|
||||
(vector-cross! sv-208 (-> s3-0 sv-272) (-> s3-0 s1-0))
|
||||
(vector-normalize! sv-208 (the-as float 1.0))
|
||||
(vector-cross! sv-224 sv-208 (-> s3-0 sv-272))
|
||||
(vector-normalize! sv-224 (the-as float 1.0))
|
||||
(let ((f0-6 (cam-layout-intersect-dist (-> s3-0 s1-0) sv-192 sv-224)))
|
||||
(when (!= f0-6 409600000.0)
|
||||
(vector+float*! sv-240 sv-192 sv-224 f0-6)
|
||||
(set! sv-160 (new-stack-vector0))
|
||||
(set! sv-164 0.0)
|
||||
(set! sv-168 0)
|
||||
(set! sv-176 (new-stack-vector0))
|
||||
(set! (-> sv-160 quad) (-> sv-240 quad))
|
||||
(set! sv-288 0)
|
||||
(while (< sv-288 (the-as int (-> sv-16 elt-count)))
|
||||
(when (and (!= sv-288 s1-0) (!= sv-288 sv-272))
|
||||
(let ((f30-0 (cam-layout-intersect-dist (-> s3-0 sv-288) sv-160 sv-208)))
|
||||
(cond
|
||||
((= f30-0 409600000.0)
|
||||
)
|
||||
((zero? sv-168)
|
||||
(vector+float*! sv-160 sv-160 sv-208 f30-0)
|
||||
(set! (-> sv-176 quad) (-> s3-0 sv-288 quad))
|
||||
(set! sv-164 8192000.0)
|
||||
(set! sv-168 1)
|
||||
)
|
||||
((begin (vector-float*! sv-240 sv-208 f30-0) (>= (vector-dot sv-240 sv-176) 0.0))
|
||||
)
|
||||
((>= (vector-dot sv-240 (-> s3-0 sv-288)) 0.0)
|
||||
(when (< (fabs f30-0) (fabs sv-164))
|
||||
(set! sv-164 f30-0)
|
||||
(set! sv-168 (+ sv-168 1))
|
||||
)
|
||||
)
|
||||
(else
|
||||
(vector+float*! sv-160 sv-160 sv-208 f30-0)
|
||||
(set! (-> sv-176 quad) (-> s3-0 sv-288 quad))
|
||||
(set! sv-168 (+ sv-168 1))
|
||||
(if (< (fabs f30-0) (fabs sv-164))
|
||||
(set! sv-164 (- sv-164 f30-0))
|
||||
(set! sv-164 0.0)
|
||||
(let ((sv-192 (new 'stack-no-clear 'vector)))
|
||||
(set! (-> sv-192 quad) (the-as uint128 0))
|
||||
(let ((sv-208 (new 'stack-no-clear 'vector)))
|
||||
(set! (-> sv-208 quad) (the-as uint128 0))
|
||||
(let ((sv-224 (new 'stack-no-clear 'vector)))
|
||||
(set! (-> sv-224 quad) (the-as uint128 0))
|
||||
(let ((sv-240 (new 'stack-no-clear 'vector)))
|
||||
(set! (-> sv-240 quad) (the-as uint128 0))
|
||||
0.0
|
||||
0.0
|
||||
0.0
|
||||
(set! (-> (new 'stack-no-clear 'vector) quad) (the-as uint128 0))
|
||||
(let ((s0-0 (new-stack-vector0))
|
||||
(sv-256 0)
|
||||
)
|
||||
(let ((sv-272 0))
|
||||
(while (< sv-272 (the-as int (-> sv-16 elt-count)))
|
||||
(when (!= s1-0 sv-272)
|
||||
(vector-float*! sv-192 (-> s3-0 sv-272) (-> s3-0 sv-272 w))
|
||||
(vector-cross! sv-208 (-> s3-0 sv-272) (-> s3-0 s1-0))
|
||||
(vector-normalize! sv-208 (the-as float 1.0))
|
||||
(vector-cross! sv-224 sv-208 (-> s3-0 sv-272))
|
||||
(vector-normalize! sv-224 (the-as float 1.0))
|
||||
(let ((f0-6 (cam-layout-intersect-dist (-> s3-0 s1-0) sv-192 sv-224)))
|
||||
(when (!= f0-6 409600000.0)
|
||||
(vector+float*! sv-240 sv-192 sv-224 f0-6)
|
||||
(let ((sv-160 (new-stack-vector0))
|
||||
(sv-164 0.0)
|
||||
(sv-168 0)
|
||||
)
|
||||
(let ((sv-176 (new-stack-vector0)))
|
||||
(set! (-> sv-160 quad) (-> sv-240 quad))
|
||||
(let ((sv-288 0))
|
||||
(while (< sv-288 (the-as int (-> sv-16 elt-count)))
|
||||
(when (and (!= sv-288 s1-0) (!= sv-288 sv-272))
|
||||
(let ((f30-0 (cam-layout-intersect-dist (-> s3-0 sv-288) sv-160 sv-208)))
|
||||
(cond
|
||||
((= f30-0 409600000.0)
|
||||
)
|
||||
((zero? sv-168)
|
||||
(vector+float*! sv-160 sv-160 sv-208 f30-0)
|
||||
(set! (-> sv-176 quad) (-> s3-0 sv-288 quad))
|
||||
(set! sv-164 8192000.0)
|
||||
(set! sv-168 1)
|
||||
)
|
||||
((begin (vector-float*! sv-240 sv-208 f30-0) (>= (vector-dot sv-240 sv-176) 0.0))
|
||||
)
|
||||
((>= (vector-dot sv-240 (-> s3-0 sv-288)) 0.0)
|
||||
(when (< (fabs f30-0) (fabs sv-164))
|
||||
(set! sv-164 f30-0)
|
||||
(+! sv-168 1)
|
||||
)
|
||||
)
|
||||
(else
|
||||
(vector+float*! sv-160 sv-160 sv-208 f30-0)
|
||||
(set! (-> sv-176 quad) (-> s3-0 sv-288 quad))
|
||||
(+! sv-168 1)
|
||||
(set! sv-164 (cond
|
||||
((< (fabs f30-0) (fabs sv-164))
|
||||
(set! sv-164 (- sv-164 f30-0))
|
||||
sv-164
|
||||
)
|
||||
(else
|
||||
0.0
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(+! sv-288 1)
|
||||
)
|
||||
)
|
||||
)
|
||||
(cond
|
||||
((zero? sv-168)
|
||||
)
|
||||
((= sv-164 0.0)
|
||||
)
|
||||
(else
|
||||
(dotimes (v1-87 (the-as int (-> sv-16 elt-count)))
|
||||
(when (and (!= v1-87 s1-0) (!= v1-87 sv-272))
|
||||
(if (< 4096.0 (- (vector-dot sv-160 (-> s3-0 v1-87)) (-> s3-0 v1-87 w)))
|
||||
(goto cfg-47)
|
||||
)
|
||||
)
|
||||
)
|
||||
(vector+float*! sv-240 sv-160 sv-208 sv-164)
|
||||
(cond
|
||||
((>= *volume-point-current* 999)
|
||||
(format 0 "ERROR <GMJ>: camera editing out of volume points~%")
|
||||
)
|
||||
(else
|
||||
(set! (-> *volume-point* data *volume-point-current* quad) (-> sv-160 quad))
|
||||
(set! (-> *volume-point* data (+ *volume-point-current* 1) quad) (-> sv-240 quad))
|
||||
(set! *volume-point-current* (+ *volume-point-current* 2))
|
||||
(+! (-> s2-0 point-count) 2)
|
||||
)
|
||||
)
|
||||
(vector+! s0-0 s0-0 sv-160)
|
||||
(vector+! s0-0 s0-0 sv-240)
|
||||
(+! sv-256 2)
|
||||
sv-256
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(label cfg-47)
|
||||
(+! sv-272 1)
|
||||
)
|
||||
(set! sv-288 (+ sv-288 1))
|
||||
)
|
||||
(cond
|
||||
((zero? sv-168)
|
||||
)
|
||||
((= sv-164 0.0)
|
||||
)
|
||||
(else
|
||||
(dotimes (v1-87 (the-as int (-> sv-16 elt-count)))
|
||||
(when (and (!= v1-87 s1-0) (!= v1-87 sv-272))
|
||||
(if (< 4096.0 (- (vector-dot sv-160 (-> s3-0 v1-87)) (-> s3-0 v1-87 w)))
|
||||
(goto cfg-47)
|
||||
)
|
||||
)
|
||||
(when (nonzero? sv-256)
|
||||
(vector-float*! s0-0 s0-0 (/ 1.0 (the float sv-256)))
|
||||
(cond
|
||||
((>= *volume-normal-current* 599)
|
||||
(format 0 "ERROR <GMJ>: camera editing out of volume normals~%")
|
||||
)
|
||||
(else
|
||||
(set! (-> *volume-normal* data *volume-normal-current* quad) (-> s0-0 quad))
|
||||
(set! (-> *volume-normal* data (+ *volume-normal-current* 1) quad) (-> s3-0 s1-0 quad))
|
||||
(set! *volume-normal-current* (+ *volume-normal-current* 2))
|
||||
(set! (-> s2-0 normal-count) (+ (-> s2-0 normal-count) 2))
|
||||
)
|
||||
(vector+float*! sv-240 sv-160 sv-208 sv-164)
|
||||
(cond
|
||||
((>= *volume-point-current* 999)
|
||||
(format 0 "ERROR <GMJ>: camera editing out of volume points~%")
|
||||
)
|
||||
(else
|
||||
(set! (-> *volume-point* data *volume-point-current* quad) (-> sv-160 quad))
|
||||
(set! (-> *volume-point* data (+ *volume-point-current* 1) quad) (-> sv-240 quad))
|
||||
(set! *volume-point-current* (+ *volume-point-current* 2))
|
||||
(+! (-> s2-0 point-count) 2)
|
||||
)
|
||||
)
|
||||
(vector+! s0-0 s0-0 sv-160)
|
||||
(vector+! s0-0 s0-0 sv-240)
|
||||
(set! sv-256 (+ sv-256 2))
|
||||
sv-256
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(label cfg-47)
|
||||
(set! sv-272 (+ sv-272 1))
|
||||
)
|
||||
(when (nonzero? sv-256)
|
||||
(vector-float*! s0-0 s0-0 (/ 1.0 (the float sv-256)))
|
||||
(cond
|
||||
((>= *volume-normal-current* 599)
|
||||
(format 0 "ERROR <GMJ>: camera editing out of volume normals~%")
|
||||
)
|
||||
(else
|
||||
(set! (-> *volume-normal* data *volume-normal-current* quad) (-> s0-0 quad))
|
||||
(set! (-> *volume-normal* data (+ *volume-normal-current* 1) quad) (-> s3-0 s1-0 quad))
|
||||
(set! *volume-normal-current* (+ *volume-normal-current* 2))
|
||||
(set! (-> s2-0 normal-count) (+ (-> s2-0 normal-count) 2))
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
@@ -974,7 +976,7 @@
|
||||
;; definition for function clmf-pos-rot
|
||||
;; INFO: Used lq/sq
|
||||
(defbehavior clmf-pos-rot cam-layout ((arg0 symbol) (arg1 symbol))
|
||||
(local-vars (s2-0 structure) (s3-1 structure) (sv-192 matrix))
|
||||
(local-vars (s2-0 structure) (s3-1 structure))
|
||||
(cam-layout-print 16 *camera-layout-message-ypos* "x/z pos: left stick, down: l1, up: r1")
|
||||
(set! *camera-layout-message-ypos* (+ *camera-layout-message-ypos* 8))
|
||||
(when (and arg1 (nonzero? arg1))
|
||||
@@ -1032,35 +1034,35 @@
|
||||
)
|
||||
)
|
||||
)
|
||||
(let ((s1-1 (new 'stack-no-clear 'matrix)))
|
||||
(set! sv-192 (new 'stack-no-clear 'matrix))
|
||||
(let ((s0-1 (new 'stack-no-clear 'vector)))
|
||||
(if (not s3-1)
|
||||
(return #f)
|
||||
)
|
||||
(clmf-input s5-0 s4-0 0)
|
||||
(vector+float*! (the-as vector s3-1) (the-as vector s3-1) s4-0 (the-as float 409.6))
|
||||
(cond
|
||||
((not arg1)
|
||||
(the-as quaternion #f)
|
||||
)
|
||||
((zero? arg1)
|
||||
(the-as quaternion #f)
|
||||
)
|
||||
(else
|
||||
(cam-slave-get-rot (the-as entity-actor (-> self cam-entity)) sv-192)
|
||||
(vector-float*! s5-0 s5-0 100.0)
|
||||
(matrix-rotate-x! s1-1 (- (-> s5-0 x)))
|
||||
(matrix*! sv-192 s1-1 sv-192)
|
||||
(matrix-rotate-y! s1-1 (-> s5-0 y))
|
||||
(matrix*! sv-192 sv-192 s1-1)
|
||||
(matrix-rotate-z! s1-1 (- (-> s5-0 z)))
|
||||
(matrix*! sv-192 s1-1 sv-192)
|
||||
(matrix->quaternion (the-as quaternion s0-1) sv-192)
|
||||
(quaternion-inverse! (the-as quaternion s2-0) (the-as quaternion (-> self cam-entity connect)))
|
||||
(quaternion*! (the-as quaternion s2-0) (the-as quaternion s0-1) (the-as quaternion s2-0))
|
||||
(quaternion-normalize! (the-as quaternion s2-0))
|
||||
)
|
||||
(let ((s1-1 (new 'stack-no-clear 'matrix))
|
||||
(sv-192 (new 'stack-no-clear 'matrix))
|
||||
(s0-1 (new 'stack-no-clear 'vector))
|
||||
)
|
||||
(if (not s3-1)
|
||||
(return #f)
|
||||
)
|
||||
(clmf-input s5-0 s4-0 0)
|
||||
(vector+float*! (the-as vector s3-1) (the-as vector s3-1) s4-0 (the-as float 409.6))
|
||||
(cond
|
||||
((not arg1)
|
||||
(the-as quaternion #f)
|
||||
)
|
||||
((zero? arg1)
|
||||
(the-as quaternion #f)
|
||||
)
|
||||
(else
|
||||
(cam-slave-get-rot (the-as entity-actor (-> self cam-entity)) sv-192)
|
||||
(vector-float*! s5-0 s5-0 100.0)
|
||||
(matrix-rotate-x! s1-1 (- (-> s5-0 x)))
|
||||
(matrix*! sv-192 s1-1 sv-192)
|
||||
(matrix-rotate-y! s1-1 (-> s5-0 y))
|
||||
(matrix*! sv-192 sv-192 s1-1)
|
||||
(matrix-rotate-z! s1-1 (- (-> s5-0 z)))
|
||||
(matrix*! sv-192 s1-1 sv-192)
|
||||
(matrix->quaternion (the-as quaternion s0-1) sv-192)
|
||||
(quaternion-inverse! (the-as quaternion s2-0) (the-as quaternion (-> self cam-entity connect)))
|
||||
(quaternion*! (the-as quaternion s2-0) (the-as quaternion s0-1) (the-as quaternion s2-0))
|
||||
(quaternion-normalize! (the-as quaternion s2-0))
|
||||
)
|
||||
)
|
||||
)
|
||||
@@ -2685,11 +2687,10 @@
|
||||
;; definition for function clmf-cam-string
|
||||
;; INFO: Used lq/sq
|
||||
(defbehavior clmf-cam-string cam-layout ((arg0 string) (arg1 symbol))
|
||||
(local-vars (sv-16 res-tag))
|
||||
(format arg0 ":")
|
||||
(set! sv-16 (new 'static 'res-tag))
|
||||
(let ((s5-1 (res-lump-data (-> self cam-entity) arg1 pointer :tag-ptr (& sv-16) :time (the-as float -1000000000.0)))
|
||||
)
|
||||
(let* ((sv-16 (new 'static 'res-tag))
|
||||
(s5-1 (res-lump-data (-> self cam-entity) arg1 pointer :tag-ptr (& sv-16) :time (the-as float -1000000000.0)))
|
||||
)
|
||||
(when s5-1
|
||||
(dotimes (s4-0 (the-as int (-> sv-16 elt-count)))
|
||||
(format arg0 " ~S" (-> (the-as (pointer uint32) (&+ s5-1 (* s4-0 4)))))
|
||||
|
||||
+68
-79
@@ -534,22 +534,21 @@
|
||||
;; definition for function in-cam-entity-volume?
|
||||
;; INFO: Used lq/sq
|
||||
(defun in-cam-entity-volume? ((arg0 vector) (arg1 entity) (arg2 float) (arg3 symbol))
|
||||
(local-vars (sv-16 res-tag))
|
||||
(let ((s2-0 0))
|
||||
(loop
|
||||
(set! sv-16 (new 'static 'res-tag))
|
||||
(let ((v1-1 (the-as object ((method-of-type res-lump get-property-data)
|
||||
arg1
|
||||
arg3
|
||||
'exact
|
||||
(the float s2-0)
|
||||
(the-as pointer #f)
|
||||
(& sv-16)
|
||||
*res-static-buf*
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(let* ((sv-16 (new 'static 'res-tag))
|
||||
(v1-1 (the-as object ((method-of-type res-lump get-property-data)
|
||||
arg1
|
||||
arg3
|
||||
'exact
|
||||
(the float s2-0)
|
||||
(the-as pointer #f)
|
||||
(& sv-16)
|
||||
*res-static-buf*
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(cond
|
||||
((not (the-as pointer v1-1))
|
||||
(return #f)
|
||||
@@ -651,14 +650,7 @@
|
||||
;; definition for function master-switch-to-entity
|
||||
;; INFO: Used lq/sq
|
||||
(defbehavior master-switch-to-entity camera-master ((arg0 entity))
|
||||
(local-vars
|
||||
(v0-21 object)
|
||||
(gp-0 (pointer process))
|
||||
(sv-16 res-tag)
|
||||
(sv-112 process)
|
||||
(sv-128 string)
|
||||
(sv-144 string)
|
||||
)
|
||||
(local-vars (v0-21 object) (gp-0 (pointer process)))
|
||||
(set! (-> self cam-entity) arg0)
|
||||
10
|
||||
(let ((s4-0 (cam-state-from-entity arg0)))
|
||||
@@ -690,81 +682,78 @@
|
||||
)
|
||||
)
|
||||
)
|
||||
(set! sv-16 (new 'static 'res-tag))
|
||||
(let ((s4-2 (res-lump-data arg0 'alternates (pointer string) :tag-ptr (& sv-16))))
|
||||
(let* ((sv-16 (new 'static 'res-tag))
|
||||
(s4-2 (res-lump-data arg0 'alternates (pointer string) :tag-ptr (& sv-16)))
|
||||
)
|
||||
(when s4-2
|
||||
(dotimes (s3-2 (the-as int (-> sv-16 elt-count)))
|
||||
(let ((s2-0 (entity-by-name (-> s4-2 s3-2))))
|
||||
(set! v0-21
|
||||
(cond
|
||||
(s2-0
|
||||
(let ((s0-0 (cam-state-from-entity s2-0)))
|
||||
(cond
|
||||
((= s0-0 *camera-base-mode*)
|
||||
(deactivate (-> gp-0 0))
|
||||
(master-base-region s2-0)
|
||||
(return #t)
|
||||
v0-21
|
||||
)
|
||||
(s0-0
|
||||
(set! sv-112 (get-process *camera-dead-pool* camera-slave #x4000))
|
||||
(let ((s1-0 (when sv-112
|
||||
(let ((t9-15 (method-of-type camera-slave activate)))
|
||||
(t9-15 (the-as camera-slave sv-112) self 'camera-slave (the-as pointer #x70004000))
|
||||
(set! v0-21 (cond
|
||||
(s2-0
|
||||
(let ((s0-0 (cam-state-from-entity s2-0)))
|
||||
(cond
|
||||
((= s0-0 *camera-base-mode*)
|
||||
(deactivate (-> gp-0 0))
|
||||
(master-base-region s2-0)
|
||||
(return #t)
|
||||
v0-21
|
||||
)
|
||||
(s0-0
|
||||
(let* ((sv-112 (get-process *camera-dead-pool* camera-slave #x4000))
|
||||
(s1-0 (when sv-112
|
||||
((method-of-type camera-slave activate)
|
||||
(the-as camera-slave sv-112)
|
||||
self
|
||||
'camera-slave
|
||||
(the-as pointer #x70004000)
|
||||
)
|
||||
(run-now-in-process sv-112 cam-slave-init s0-0 s2-0)
|
||||
(-> sv-112 ppointer)
|
||||
)
|
||||
)
|
||||
)
|
||||
(cond
|
||||
(s1-0
|
||||
(setup-slave-for-hopefull (the-as camera-slave (ppointer->process s1-0)))
|
||||
(cond
|
||||
((master-is-hopeful-better?
|
||||
(the-as camera-slave (ppointer->process gp-0))
|
||||
(the-as camera-slave (ppointer->process s1-0))
|
||||
)
|
||||
(deactivate (-> gp-0 0))
|
||||
(set! gp-0 s1-0)
|
||||
gp-0
|
||||
)
|
||||
(else
|
||||
(deactivate (-> s1-0 0))
|
||||
)
|
||||
(run-now-in-process sv-112 cam-slave-init s0-0 s2-0)
|
||||
(-> sv-112 ppointer)
|
||||
)
|
||||
)
|
||||
)
|
||||
(cond
|
||||
(s1-0
|
||||
(setup-slave-for-hopefull (the-as camera-slave (ppointer->process s1-0)))
|
||||
(cond
|
||||
((master-is-hopeful-better?
|
||||
(the-as camera-slave (ppointer->process gp-0))
|
||||
(the-as camera-slave (ppointer->process s1-0))
|
||||
)
|
||||
(deactivate (-> gp-0 0))
|
||||
(set! gp-0 s1-0)
|
||||
gp-0
|
||||
)
|
||||
(else
|
||||
(deactivate (-> s1-0 0))
|
||||
(else
|
||||
(format 0 "ERROR <GMJ>: alternate region activate failed~%")
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(else
|
||||
(format 0 "ERROR <GMJ>: alternate region activate failed~%")
|
||||
(format
|
||||
0
|
||||
"ERROR <GMJ>: alternate camera region '~S' didn't produce a state~%"
|
||||
(res-lump-struct s2-0 'name structure)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(else
|
||||
(let ((s1-1 format)
|
||||
(s0-1 0)
|
||||
)
|
||||
(set! sv-128 "ERROR <GMJ>: alternate camera region '~S' didn't produce a state~%")
|
||||
(let ((a2-10 (res-lump-struct s2-0 'name structure)))
|
||||
(s1-1 s0-1 sv-128 a2-10)
|
||||
)
|
||||
(format
|
||||
0
|
||||
"ERROR <GMJ>: alternate '~S' not found for '~S'~%"
|
||||
(-> s4-2 s3-2)
|
||||
(res-lump-struct arg0 'name structure)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(else
|
||||
(let ((s2-1 format)
|
||||
(s1-2 0)
|
||||
(s0-2 "ERROR <GMJ>: alternate '~S' not found for '~S'~%")
|
||||
)
|
||||
(set! sv-144 (-> s4-2 s3-2))
|
||||
(let ((a3-8 (res-lump-struct arg0 'name structure)))
|
||||
(s2-1 s1-2 s0-2 sv-144 a3-8)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
+97
-130
@@ -1490,96 +1490,93 @@
|
||||
(arg5 vector)
|
||||
(arg6 float)
|
||||
)
|
||||
(local-vars (sv-128 float) (sv-144 vector) (sv-160 vector) (sv-176 vector) (sv-192 vector) (sv-208 int))
|
||||
(with-pp
|
||||
(set! sv-128 arg3)
|
||||
(let ((gp-0 arg4))
|
||||
(set! sv-144 arg5)
|
||||
(let ((s4-0 arg6))
|
||||
(set! sv-160 (new 'stack-no-clear 'vector))
|
||||
(set! sv-176 (new 'stack-no-clear 'vector))
|
||||
(let ((s5-0 (new 'stack-no-clear 'matrix)))
|
||||
(set! sv-192 (new 'stack-no-clear 'vector))
|
||||
(let ((f30-0 0.0)
|
||||
(s0-0 #f)
|
||||
)
|
||||
(set! sv-208 0)
|
||||
(while (< sv-208 4)
|
||||
(cond
|
||||
((= sv-208 3)
|
||||
(vector-! sv-160 sv-144 (the-as vector (&-> pp stack 368)))
|
||||
(set! (-> s5-0 vector sv-208 z) 0.0)
|
||||
)
|
||||
(else
|
||||
(vector-! sv-160 sv-144 (-> arg0 0 vertex sv-208))
|
||||
(set! (-> s5-0 vector sv-208 z) (vector-dot sv-160 (-> *camera* local-down)))
|
||||
(vector-! sv-160 (-> arg0 0 vertex sv-208) (the-as vector (&-> pp stack 368)))
|
||||
)
|
||||
)
|
||||
(vector-flatten! sv-160 sv-160 (-> *camera* local-down))
|
||||
(vector-cross! sv-176 sv-160 arg2)
|
||||
(let ((f28-0 (vector-dot sv-176 (-> *camera* local-down))))
|
||||
(cond
|
||||
((< (* f28-0 f30-0) 0.0)
|
||||
(set! s0-0 #t)
|
||||
)
|
||||
((!= f28-0 0.0)
|
||||
(set! f30-0 f28-0)
|
||||
)
|
||||
)
|
||||
(set! (-> s5-0 vector sv-208 x) (vector-dot sv-160 arg2))
|
||||
(cond
|
||||
((= sv-208 3)
|
||||
(vector-! sv-192 sv-144 (the-as vector (&-> pp stack 368)))
|
||||
(vector-flatten! sv-192 sv-192 arg1)
|
||||
)
|
||||
(else
|
||||
(vector--float*! sv-192 sv-160 arg2 (-> s5-0 vector sv-208 x))
|
||||
)
|
||||
)
|
||||
(if (< f28-0 0.0)
|
||||
(set! (-> s5-0 vector sv-208 y) (- (vector-length sv-192)))
|
||||
(set! (-> s5-0 vector sv-208 y) (vector-length sv-192))
|
||||
)
|
||||
)
|
||||
(set! (-> s5-0 vector sv-208 x) (- sv-128 (-> s5-0 vector sv-208 x)))
|
||||
(set! sv-208 (+ sv-208 1))
|
||||
)
|
||||
(cond
|
||||
((and s0-0 (!= s4-0 -100000000.0))
|
||||
(dotimes (s4-1 4)
|
||||
(dist-info-append
|
||||
(the-as collide-los-dist-info (-> gp-0 vert-0))
|
||||
(the-as vector (+ (the-as uint s5-0) (* s4-1 16)))
|
||||
)
|
||||
)
|
||||
#f
|
||||
)
|
||||
((< (-> s5-0 vector 3 y) 0.0)
|
||||
(dotimes (s4-2 4)
|
||||
(when (>= (-> s5-0 vector 3 y) (-> s5-0 vector s4-2 y))
|
||||
(set! (-> s5-0 vector s4-2 y) (- (-> s5-0 vector s4-2 y)))
|
||||
(dist-info-append
|
||||
(the-as collide-los-dist-info (-> gp-0 next-normal))
|
||||
(the-as vector (+ (the-as uint s5-0) (* s4-2 16)))
|
||||
)
|
||||
)
|
||||
)
|
||||
#f
|
||||
)
|
||||
(else
|
||||
(dotimes (s4-3 4)
|
||||
(if (>= (-> s5-0 vector s4-3 y) (-> s5-0 vector 3 y))
|
||||
(dist-info-append
|
||||
(the-as collide-los-dist-info (-> gp-0 intersection))
|
||||
(the-as vector (+ (the-as uint s5-0) (* s4-3 16)))
|
||||
)
|
||||
)
|
||||
)
|
||||
#f
|
||||
)
|
||||
(let ((sv-128 arg3)
|
||||
(gp-0 arg4)
|
||||
(sv-144 arg5)
|
||||
(s4-0 arg6)
|
||||
(sv-160 (new 'stack-no-clear 'vector))
|
||||
(sv-176 (new 'stack-no-clear 'vector))
|
||||
(s5-0 (new 'stack-no-clear 'matrix))
|
||||
(sv-192 (new 'stack-no-clear 'vector))
|
||||
(f30-0 0.0)
|
||||
(s0-0 #f)
|
||||
)
|
||||
(let ((sv-208 0))
|
||||
(while (< sv-208 4)
|
||||
(cond
|
||||
((= sv-208 3)
|
||||
(vector-! sv-160 sv-144 (the-as vector (&-> pp stack 368)))
|
||||
(set! (-> s5-0 vector sv-208 z) 0.0)
|
||||
)
|
||||
(else
|
||||
(vector-! sv-160 sv-144 (-> arg0 0 vertex sv-208))
|
||||
(set! (-> s5-0 vector sv-208 z) (vector-dot sv-160 (-> *camera* local-down)))
|
||||
(vector-! sv-160 (-> arg0 0 vertex sv-208) (the-as vector (&-> pp stack 368)))
|
||||
)
|
||||
)
|
||||
(vector-flatten! sv-160 sv-160 (-> *camera* local-down))
|
||||
(vector-cross! sv-176 sv-160 arg2)
|
||||
(let ((f28-0 (vector-dot sv-176 (-> *camera* local-down))))
|
||||
(cond
|
||||
((< (* f28-0 f30-0) 0.0)
|
||||
(set! s0-0 #t)
|
||||
)
|
||||
((!= f28-0 0.0)
|
||||
(set! f30-0 f28-0)
|
||||
)
|
||||
)
|
||||
(set! (-> s5-0 vector sv-208 x) (vector-dot sv-160 arg2))
|
||||
(cond
|
||||
((= sv-208 3)
|
||||
(vector-! sv-192 sv-144 (the-as vector (&-> pp stack 368)))
|
||||
(vector-flatten! sv-192 sv-192 arg1)
|
||||
)
|
||||
(else
|
||||
(vector--float*! sv-192 sv-160 arg2 (-> s5-0 vector sv-208 x))
|
||||
)
|
||||
)
|
||||
(if (< f28-0 0.0)
|
||||
(set! (-> s5-0 vector sv-208 y) (- (vector-length sv-192)))
|
||||
(set! (-> s5-0 vector sv-208 y) (vector-length sv-192))
|
||||
)
|
||||
)
|
||||
(set! (-> s5-0 vector sv-208 x) (- sv-128 (-> s5-0 vector sv-208 x)))
|
||||
(+! sv-208 1)
|
||||
)
|
||||
)
|
||||
(cond
|
||||
((and s0-0 (!= s4-0 -100000000.0))
|
||||
(dotimes (s4-1 4)
|
||||
(dist-info-append
|
||||
(the-as collide-los-dist-info (-> gp-0 vert-0))
|
||||
(the-as vector (+ (the-as uint s5-0) (* s4-1 16)))
|
||||
)
|
||||
)
|
||||
#f
|
||||
)
|
||||
((< (-> s5-0 vector 3 y) 0.0)
|
||||
(dotimes (s4-2 4)
|
||||
(when (>= (-> s5-0 vector 3 y) (-> s5-0 vector s4-2 y))
|
||||
(set! (-> s5-0 vector s4-2 y) (- (-> s5-0 vector s4-2 y)))
|
||||
(dist-info-append
|
||||
(the-as collide-los-dist-info (-> gp-0 next-normal))
|
||||
(the-as vector (+ (the-as uint s5-0) (* s4-2 16)))
|
||||
)
|
||||
)
|
||||
)
|
||||
#f
|
||||
)
|
||||
(else
|
||||
(dotimes (s4-3 4)
|
||||
(if (>= (-> s5-0 vector s4-3 y) (-> s5-0 vector 3 y))
|
||||
(dist-info-append
|
||||
(the-as collide-los-dist-info (-> gp-0 intersection))
|
||||
(the-as vector (+ (the-as uint s5-0) (* s4-3 16)))
|
||||
)
|
||||
)
|
||||
)
|
||||
#f
|
||||
)
|
||||
)
|
||||
)
|
||||
@@ -1808,7 +1805,7 @@
|
||||
;; ERROR: Unsupported inline assembly instruction kind - [madda.s f3, f6]
|
||||
;; ERROR: Unsupported inline assembly instruction kind - [madd.s f2, f4, f7]
|
||||
(defbehavior cam-los-collide camera-slave ((arg0 vector) (arg1 vector) (arg2 clip-travel-vector-to-mesh-return-info) (arg3 pat-surface))
|
||||
(local-vars (s1-3 int) (s2-2 int) (f2-1 float) (sv-224 vector) (sv-240 vector))
|
||||
(local-vars (s1-3 int) (s2-2 int) (f2-1 float))
|
||||
(dist-info-init (the-as collide-los-dist-info (-> arg2 intersection)))
|
||||
(dist-info-init (the-as collide-los-dist-info (-> arg2 next-normal)))
|
||||
(dist-info-init (the-as collide-los-dist-info (-> arg2 vert-0)))
|
||||
@@ -1841,27 +1838,18 @@
|
||||
(set! f28-0 1.0)
|
||||
)
|
||||
(countdown (s0-1 (-> s0-0 num-tris))
|
||||
(set! sv-240 (new 'stack-no-clear 'vector))
|
||||
(set! sv-224 (new 'stack-no-clear 'vector))
|
||||
(let ((f0-7
|
||||
(moving-sphere-triangle-intersect arg0 arg1 (-> *CAM_STRING-bank* los-coll-rad) (-> s1-1 0) sv-240 sv-224)
|
||||
)
|
||||
)
|
||||
(let* ((sv-240 (new 'stack-no-clear 'vector))
|
||||
(sv-224 (new 'stack-no-clear 'vector))
|
||||
(f0-7
|
||||
(moving-sphere-triangle-intersect arg0 arg1 (-> *CAM_STRING-bank* los-coll-rad) (-> s1-1 0) sv-240 sv-224)
|
||||
)
|
||||
)
|
||||
(cond
|
||||
((or (< f0-7 0.0) (< 1.0 f0-7))
|
||||
)
|
||||
((let ((f1-2 0.0))
|
||||
(let* ((v1-21 arg1)
|
||||
(f2-0 (-> v1-21 x))
|
||||
(f3-0 (-> v1-21 y))
|
||||
(f4-0 (-> v1-21 z))
|
||||
(f5-0 (-> sv-224 x))
|
||||
(f6-0 (-> sv-224 y))
|
||||
(f7-0 (-> sv-224 z))
|
||||
)
|
||||
(.mula.s f2-0 f5-0)
|
||||
(.madda.s f3-0 f6-0)
|
||||
(.madd.s f2-1 f4-0 f7-0)
|
||||
(let* ((v1-21 arg1))
|
||||
(set! f2-1 (vector-dot v1-21 sv-224))
|
||||
)
|
||||
(< f1-2 f2-1)
|
||||
)
|
||||
@@ -1874,23 +1862,14 @@
|
||||
)
|
||||
(los-cw-ccw s1-1 s2-0 s4-0 f30-0 arg2 sv-240 f24-0)
|
||||
(when *debug-segment*
|
||||
(cond
|
||||
((= f24-0 -100000000.0)
|
||||
(let ((t9-11 cam-debug-add-los-tri)
|
||||
(a0-13 s1-1)
|
||||
(a2-7 (new 'static 'vector :x (the-as float #x80) :w (the-as float #x80)))
|
||||
)
|
||||
(t9-11 a0-13 sv-240 a2-7)
|
||||
)
|
||||
)
|
||||
(else
|
||||
(if (= f24-0 -100000000.0)
|
||||
(cam-debug-add-los-tri s1-1 sv-240 (new 'static 'vector :x (the-as float #x80) :w (the-as float #x80)))
|
||||
(cam-debug-add-los-tri
|
||||
s1-1
|
||||
sv-240
|
||||
(new 'static 'vector :x (the-as float #x80) :y (the-as float #x80) :w (the-as float #x80))
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
@@ -2527,7 +2506,6 @@
|
||||
;; WARN: Stack slot load at 240 mismatch: defined as size 4, got size 16
|
||||
;; WARN: Stack slot load at 256 mismatch: defined as size 4, got size 16
|
||||
(defbehavior cam-string-move camera-slave ()
|
||||
(local-vars (sv-240 float) (sv-256 float))
|
||||
(vector-! (-> self velocity) (-> self desired-pos) (-> self string-trans))
|
||||
(if *display-cam-los-debug*
|
||||
(format *stdcon* "vel ~M~%" (vector-length (-> self velocity)))
|
||||
@@ -2604,20 +2582,9 @@
|
||||
)
|
||||
)
|
||||
)
|
||||
(when *display-cam-los-debug*
|
||||
(let ((s2-0 format)
|
||||
(s1-0 *stdcon*)
|
||||
(s0-0 "vp ~f vr ~f r ~f ta ~f~%")
|
||||
)
|
||||
(set! sv-240 (vector-length s5-2))
|
||||
(set! sv-256 f30-2)
|
||||
(let ((t0-3 (/ (vector-length s5-2) f30-2))
|
||||
(t1-1 f28-1)
|
||||
)
|
||||
(s2-0 s1-0 s0-0 sv-240 sv-256 t0-3 t1-1)
|
||||
)
|
||||
(if *display-cam-los-debug*
|
||||
(format *stdcon* "vp ~f vr ~f r ~f ta ~f~%" (vector-length s5-2) f30-2 (/ (vector-length s5-2) f30-2) f28-1)
|
||||
)
|
||||
)
|
||||
(cond
|
||||
((>= f28-1 0.0)
|
||||
(let* ((f1-7 (fmax 0.01 (/ 40.96 (vector-length s5-2))))
|
||||
|
||||
+11
-17
@@ -29,7 +29,6 @@
|
||||
;; definition for function update-view-planes
|
||||
;; INFO: Used lq/sq
|
||||
(defun update-view-planes ((arg0 math-camera) (arg1 (inline-array plane)) (arg2 float))
|
||||
(local-vars (sv-240 vector))
|
||||
(when (not *artist-fix-frustum*)
|
||||
(let ((s5-0 (new 'stack 'view-frustum)))
|
||||
(let ((f30-0 (* arg2 (-> arg0 x-ratio) (-> arg0 d)))
|
||||
@@ -60,22 +59,17 @@
|
||||
(s0-0 (new-stack-vector0))
|
||||
)
|
||||
(set! (-> (new 'stack-no-clear 'vector) quad) (the-as uint128 0))
|
||||
(set! sv-240 (new 'stack-no-clear 'vector))
|
||||
(set! (-> sv-240 quad) (the-as uint128 0))
|
||||
(let ((v1-5 (-> arg0 inv-camera-rot vector 3 quad)))
|
||||
(set! (-> sv-240 quad) v1-5)
|
||||
)
|
||||
(vector-! s2-0 (-> s5-0 yon-top-left) sv-240)
|
||||
(vector-! s3-1 (-> s5-0 yon-top-right) sv-240)
|
||||
(vector-! s1-0 (-> s5-0 yon-bottom-left) sv-240)
|
||||
(vector-! s0-0 (-> s5-0 yon-bottom-right) sv-240)
|
||||
(plane-from-points arg1 s2-0 s1-0 sv-240 0)
|
||||
(plane-from-points arg1 s0-0 s3-1 sv-240 1)
|
||||
(plane-from-points arg1 s3-1 s2-0 sv-240 2)
|
||||
(let ((t9-20 plane-from-points)
|
||||
(t0-3 3)
|
||||
)
|
||||
(t9-20 arg1 s1-0 s0-0 sv-240 t0-3)
|
||||
(let ((sv-240 (new 'stack-no-clear 'vector)))
|
||||
(set! (-> sv-240 quad) (the-as uint128 0))
|
||||
(set! (-> sv-240 quad) (-> arg0 inv-camera-rot vector 3 quad))
|
||||
(vector-! s2-0 (-> s5-0 yon-top-left) sv-240)
|
||||
(vector-! s3-1 (-> s5-0 yon-top-right) sv-240)
|
||||
(vector-! s1-0 (-> s5-0 yon-bottom-left) sv-240)
|
||||
(vector-! s0-0 (-> s5-0 yon-bottom-right) sv-240)
|
||||
(plane-from-points arg1 s2-0 s1-0 sv-240 0)
|
||||
(plane-from-points arg1 s0-0 s3-1 sv-240 1)
|
||||
(plane-from-points arg1 s3-1 s2-0 sv-240 2)
|
||||
(plane-from-points arg1 s1-0 s0-0 sv-240 3)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
+136
-221
@@ -303,9 +303,7 @@
|
||||
|
||||
;; definition for function fourth-power
|
||||
(defun fourth-power ((arg0 float))
|
||||
(let ((f0-2 (* arg0 arg0)))
|
||||
(* f0-2 f0-2)
|
||||
)
|
||||
(square (square arg0))
|
||||
)
|
||||
|
||||
;; definition for function third-power
|
||||
@@ -323,19 +321,10 @@
|
||||
0.0
|
||||
)
|
||||
((>= 0.5 arg0)
|
||||
(let ((f0-3 0.5)
|
||||
(f1-4 (* 2.0 arg0))
|
||||
)
|
||||
(* f0-3 (* f1-4 f1-4))
|
||||
)
|
||||
(* 0.5 (square (* 2.0 arg0)))
|
||||
)
|
||||
(else
|
||||
(let ((f0-5 1.0)
|
||||
(f1-7 0.5)
|
||||
(f2-2 (* 2.0 (- 1.0 arg0)))
|
||||
)
|
||||
(- f0-5 (* f1-7 (* f2-2 f2-2)))
|
||||
)
|
||||
(- 1.0 (* 0.5 (square (* 2.0 (- 1.0 arg0)))))
|
||||
)
|
||||
)
|
||||
)
|
||||
@@ -358,19 +347,12 @@
|
||||
;; definition for method 9 of type cam-index
|
||||
;; INFO: Used lq/sq
|
||||
(defmethod cam-index-method-9 ((this cam-index) (arg0 symbol) (arg1 entity) (arg2 vector) (arg3 curve))
|
||||
(local-vars (sv-32 (function _varargs_ object)))
|
||||
(format (clear *cam-res-string*) "~S-flags" arg0)
|
||||
(set! (-> this flags) (the-as cam-index-options (cam-slave-get-flags arg1 (string->symbol *res-key-string*))))
|
||||
(let ((s3-2 (res-lump-data arg1 arg0 pointer))
|
||||
(s0-1 (method-of-type res-lump get-property-struct))
|
||||
)
|
||||
(set! sv-32 format)
|
||||
(let ((a0-7 (clear *res-key-string*))
|
||||
(a1-4 "~S~S")
|
||||
(a3-2 '-offset)
|
||||
)
|
||||
(sv-32 a0-7 a1-4 arg0 a3-2)
|
||||
)
|
||||
(format (clear *res-key-string*) "~S~S" arg0 '-offset)
|
||||
(let ((v0-8 (s0-1
|
||||
arg1
|
||||
(string->symbol *res-key-string*)
|
||||
@@ -1275,10 +1257,7 @@
|
||||
((< (-> *camera* ease-t) 1.0)
|
||||
)
|
||||
((< (-> arg0 follow-blend) 1.0)
|
||||
(let* ((f0-18 (-> arg0 follow-blend))
|
||||
(f0-19 (* f0-18 f0-18))
|
||||
(f0-20 (* f0-19 f0-19))
|
||||
)
|
||||
(let ((f0-20 (square (square (-> arg0 follow-blend)))))
|
||||
(vector-! s5-1 s5-1 (-> arg0 follow-off))
|
||||
(vector-float*! s5-1 s5-1 f0-20)
|
||||
)
|
||||
@@ -1315,10 +1294,10 @@
|
||||
1.0
|
||||
)
|
||||
(else
|
||||
(let* ((f0-29 (* f0-28 f0-28))
|
||||
(let* ((f0-29 (square f0-28))
|
||||
(f0-30 (- 1.0 f0-29))
|
||||
)
|
||||
(* f0-30 (* f0-30 f0-30))
|
||||
(* f0-30 (square f0-30))
|
||||
)
|
||||
)
|
||||
)
|
||||
@@ -1439,7 +1418,6 @@
|
||||
;; definition for function vector-into-frustum-nosmooth!
|
||||
;; INFO: Used lq/sq
|
||||
(defun vector-into-frustum-nosmooth! ((arg0 matrix) (arg1 vector) (arg2 float))
|
||||
(local-vars (sv-112 (inline-array vector)) (sv-128 vector) (sv-144 vector) (sv-160 vector) (sv-176 vector))
|
||||
(rlet ((vf0 :class vf)
|
||||
(vf1 :class vf)
|
||||
(vf2 :class vf)
|
||||
@@ -1458,17 +1436,19 @@
|
||||
(vector-flatten! s3-0 s3-0 (-> arg0 vector 1))
|
||||
(vector-normalize! s3-0 1.0)
|
||||
(let ((f28-0 (vector-dot s3-0 (-> arg0 vector 0))))
|
||||
(set! sv-128 s2-0)
|
||||
(set! sv-112 (-> arg0 vector))
|
||||
(let ((f0-6 (* 0.8 (tan (/ arg2 2)))))
|
||||
(.lvf vf1 (&-> sv-112 0 quad))
|
||||
(let ((v1-6 f0-6))
|
||||
(.mov vf2 v1-6)
|
||||
(let ((sv-128 s2-0))
|
||||
(let ((sv-112 (-> arg0 vector))
|
||||
(f0-6 (* 0.8 (tan (/ arg2 2))))
|
||||
)
|
||||
(.lvf vf1 (&-> sv-112 0 quad))
|
||||
(let ((v1-6 f0-6))
|
||||
(.mov vf2 v1-6)
|
||||
)
|
||||
)
|
||||
(.add.x.vf.w vf1 vf0 vf0)
|
||||
(.mul.x.vf.xyz vf1 vf1 vf2)
|
||||
(.svf (&-> sv-128 quad) vf1)
|
||||
)
|
||||
(.add.x.vf.w vf1 vf0 vf0)
|
||||
(.mul.x.vf.xyz vf1 vf1 vf2)
|
||||
(.svf (&-> sv-128 quad) vf1)
|
||||
(vector+! s2-0 s2-0 (-> arg0 vector 2))
|
||||
(vector-normalize! s2-0 1.0)
|
||||
(let ((f0-8 (vector-dot s2-0 (-> arg0 vector 0))))
|
||||
@@ -1488,17 +1468,19 @@
|
||||
(vector-flatten! s3-0 s3-0 (-> arg0 vector 0))
|
||||
(vector-normalize! s3-0 1.0)
|
||||
(let ((f28-1 (vector-dot s3-0 (-> arg0 vector 1))))
|
||||
(set! sv-160 s2-0)
|
||||
(set! sv-144 (-> arg0 vector 1))
|
||||
(let ((f0-15 (* 0.525 (tan (/ arg2 2)))))
|
||||
(.lvf vf1 (&-> sv-144 quad))
|
||||
(let ((v1-23 f0-15))
|
||||
(.mov vf2 v1-23)
|
||||
(let ((sv-160 s2-0))
|
||||
(let ((sv-144 (-> arg0 vector 1))
|
||||
(f0-15 (* 0.525 (tan (/ arg2 2))))
|
||||
)
|
||||
(.lvf vf1 (&-> sv-144 quad))
|
||||
(let ((v1-23 f0-15))
|
||||
(.mov vf2 v1-23)
|
||||
)
|
||||
)
|
||||
(.add.x.vf.w vf1 vf0 vf0)
|
||||
(.mul.x.vf.xyz vf1 vf1 vf2)
|
||||
(.svf (&-> sv-160 quad) vf1)
|
||||
)
|
||||
(.add.x.vf.w vf1 vf0 vf0)
|
||||
(.mul.x.vf.xyz vf1 vf1 vf2)
|
||||
(.svf (&-> sv-160 quad) vf1)
|
||||
(vector+! s2-0 s2-0 (-> arg0 vector 2))
|
||||
(vector-normalize! s2-0 1.0)
|
||||
(let ((f0-17 (vector-dot s2-0 (-> arg0 vector 1))))
|
||||
@@ -1514,12 +1496,7 @@
|
||||
(vector-flatten! s3-0 s3-0 (-> arg0 vector 0))
|
||||
(vector-normalize! s3-0 1.0)
|
||||
(let ((f28-2 (vector-dot s3-0 (-> arg0 vector 1))))
|
||||
(let ((s0-1 s2-0))
|
||||
(set! sv-176 (-> arg0 vector 1))
|
||||
(let ((f0-25 (* 0.525 (tan (/ arg2 2)))))
|
||||
(vector-float*! s0-1 sv-176 f0-25)
|
||||
)
|
||||
)
|
||||
(vector-float*! s2-0 (-> arg0 vector 1) (* 0.525 (tan (/ arg2 2))))
|
||||
(vector+! s2-0 s2-0 (-> arg0 vector 2))
|
||||
(vector-normalize! s2-0 1.0)
|
||||
(let ((f0-27 (vector-dot s2-0 (-> arg0 vector 1))))
|
||||
@@ -1561,14 +1538,7 @@
|
||||
;; ERROR: Unsupported inline assembly instruction kind - [madda.s f1, f4]
|
||||
;; ERROR: Unsupported inline assembly instruction kind - [madd.s f0, f2, f5]
|
||||
(defun slave-set-rotation! ((arg0 cam-rotation-tracker) (arg1 vector) (arg2 float) (arg3 float) (arg4 symbol))
|
||||
(local-vars
|
||||
(f0-8 float)
|
||||
(sv-192 vector)
|
||||
(sv-208 vector)
|
||||
(sv-224 matrix)
|
||||
(sv-240 (function matrix vector float vector))
|
||||
(sv-256 matrix)
|
||||
)
|
||||
(local-vars (f0-8 float))
|
||||
(rlet ((vf0 :class vf)
|
||||
(vf4 :class vf)
|
||||
(vf5 :class vf)
|
||||
@@ -1581,22 +1551,23 @@
|
||||
(let ((f30-0 (-> arg0 tilt-adjust value)))
|
||||
(cond
|
||||
((< 0.0001 (-> arg0 point-of-interest-blend value))
|
||||
(set! sv-192 (new 'stack-no-clear 'vector))
|
||||
0.0
|
||||
(vector-! s1-0 (-> arg0 follow-pt) arg1)
|
||||
(let ((f28-0 (vector-length s1-0)))
|
||||
(vector-! sv-192 (-> arg0 point-of-interest) arg1)
|
||||
(vector-normalize! sv-192 (* f28-0 (-> arg0 point-of-interest-blend value)))
|
||||
(let ((v1-3 s1-0))
|
||||
(let ((a0-5 s1-0))
|
||||
(.mov.vf.w vf6 vf0)
|
||||
(.lvf vf4 (&-> a0-5 quad))
|
||||
(let ((sv-192 (new 'stack-no-clear 'vector)))
|
||||
0.0
|
||||
(vector-! s1-0 (-> arg0 follow-pt) arg1)
|
||||
(let ((f28-0 (vector-length s1-0)))
|
||||
(vector-! sv-192 (-> arg0 point-of-interest) arg1)
|
||||
(vector-normalize! sv-192 (* f28-0 (-> arg0 point-of-interest-blend value)))
|
||||
(let ((v1-3 s1-0))
|
||||
(let ((a0-5 s1-0))
|
||||
(.mov.vf.w vf6 vf0)
|
||||
(.lvf vf4 (&-> a0-5 quad))
|
||||
)
|
||||
(.lvf vf5 (&-> sv-192 quad))
|
||||
(.add.vf.xyz vf6 vf4 vf5)
|
||||
(.svf (&-> v1-3 quad) vf6)
|
||||
)
|
||||
(.lvf vf5 (&-> sv-192 quad))
|
||||
(.add.vf.xyz vf6 vf4 vf5)
|
||||
(.svf (&-> v1-3 quad) vf6)
|
||||
(vector-normalize! s1-0 f28-0)
|
||||
)
|
||||
(vector-normalize! s1-0 f28-0)
|
||||
)
|
||||
)
|
||||
(else
|
||||
@@ -1607,47 +1578,35 @@
|
||||
(when (!= f30-0 0.0)
|
||||
0.0
|
||||
0.0
|
||||
(set! sv-224 (new 'stack-no-clear 'matrix))
|
||||
(set! sv-208 (new 'stack-no-clear 'vector))
|
||||
(vector-normalize-copy! sv-208 s1-0 1.0)
|
||||
(let* ((v1-11 (-> *camera* local-down))
|
||||
(f0-7 (-> sv-208 x))
|
||||
(f1-1 (-> sv-208 y))
|
||||
(f2-0 (-> sv-208 z))
|
||||
(f3-0 (-> v1-11 x))
|
||||
(f4-0 (-> v1-11 y))
|
||||
(f5-0 (-> v1-11 z))
|
||||
)
|
||||
(.mula.s f0-7 f3-0)
|
||||
(.madda.s f1-1 f4-0)
|
||||
(.madd.s f0-8 f2-0 f5-0)
|
||||
)
|
||||
(let* ((f28-1 f0-8)
|
||||
(f0-10 (acos (fabs f28-1)))
|
||||
)
|
||||
(cond
|
||||
((< 0.0 f30-0)
|
||||
(set! f30-0 (if (< 0.0 f28-1)
|
||||
(fmin f30-0 (fmax 0.0 (+ -2730.6667 f0-10)))
|
||||
(fmin f30-0 (fmax 0.0 (- 32768.0 (+ 2730.6667 f0-10))))
|
||||
)
|
||||
)
|
||||
)
|
||||
((< f30-0 0.0)
|
||||
(set! f30-0 (if (< 0.0 f28-1)
|
||||
(fmax f30-0 (- (fmax 0.0 (- 32768.0 (+ 2730.6667 f0-10)))))
|
||||
(fmax f30-0 (- (fmax 0.0 (+ -2730.6667 f0-10))))
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(matrix-rotate-x! sv-224 f30-0)
|
||||
(let ((t9-7 matrix*!)
|
||||
(a0-16 s5-0)
|
||||
(a2-3 s5-0)
|
||||
(let ((sv-224 (new 'stack-no-clear 'matrix)))
|
||||
(let ((sv-208 (new 'stack-no-clear 'vector)))
|
||||
(vector-normalize-copy! sv-208 s1-0 1.0)
|
||||
(let* ((v1-11 (-> *camera* local-down)))
|
||||
(set! f0-8 (vector-dot sv-208 v1-11))
|
||||
)
|
||||
(t9-7 a0-16 sv-224 a2-3)
|
||||
)
|
||||
(let* ((f28-1 f0-8)
|
||||
(f0-10 (acos (fabs f28-1)))
|
||||
)
|
||||
(cond
|
||||
((< 0.0 f30-0)
|
||||
(set! f30-0 (if (< 0.0 f28-1)
|
||||
(fmin f30-0 (fmax 0.0 (+ -2730.6667 f0-10)))
|
||||
(fmin f30-0 (fmax 0.0 (- 32768.0 (+ 2730.6667 f0-10))))
|
||||
)
|
||||
)
|
||||
)
|
||||
((< f30-0 0.0)
|
||||
(set! f30-0 (if (< 0.0 f28-1)
|
||||
(fmax f30-0 (- (fmax 0.0 (- 32768.0 (+ 2730.6667 f0-10)))))
|
||||
(fmax f30-0 (- (fmax 0.0 (+ -2730.6667 f0-10))))
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(matrix-rotate-x! sv-224 f30-0)
|
||||
(matrix*! s5-0 sv-224 s5-0)
|
||||
)
|
||||
)
|
||||
)
|
||||
@@ -1655,11 +1614,7 @@
|
||||
(set! (-> arg0 underwater-blend target) 1.0)
|
||||
(set! (-> arg0 underwater-blend target) 0.0)
|
||||
)
|
||||
(set! sv-240 vector-into-frustum-nosmooth!)
|
||||
(set! sv-256 s5-0)
|
||||
(let ((a2-5 (lerp-clamp arg3 (/ arg3 4) (-> arg0 underwater-blend value))))
|
||||
(sv-240 sv-256 arg1 a2-5)
|
||||
)
|
||||
(vector-into-frustum-nosmooth! s5-0 arg1 (lerp-clamp arg3 (/ arg3 4) (-> arg0 underwater-blend value)))
|
||||
(cond
|
||||
(arg4
|
||||
(slave-matrix-blend-2 (-> arg0 inv-mat) arg2 s1-0 s5-0)
|
||||
@@ -1694,97 +1649,71 @@
|
||||
;; ERROR: Unsupported inline assembly instruction kind - [madda.s f1, f4]
|
||||
;; ERROR: Unsupported inline assembly instruction kind - [madd.s f0, f2, f5]
|
||||
(defun v-slrp2! ((arg0 vector) (arg1 vector) (arg2 vector) (arg3 float) (arg4 vector) (arg5 float))
|
||||
(local-vars
|
||||
(f0-10 float)
|
||||
(f28-0 float)
|
||||
(f30-0 float)
|
||||
(sv-144 float)
|
||||
(sv-160 vector)
|
||||
(sv-176 matrix)
|
||||
(sv-192 vector)
|
||||
)
|
||||
(set! sv-144 arg5)
|
||||
(let ((s0-0 (new-stack-vector0)))
|
||||
(set! sv-160 (new 'stack-no-clear 'vector))
|
||||
(local-vars (f0-10 float) (f28-0 float) (f30-0 float))
|
||||
(let ((sv-144 arg5)
|
||||
(s0-0 (new-stack-vector0))
|
||||
(sv-160 (new 'stack-no-clear 'vector))
|
||||
)
|
||||
(set! (-> sv-160 quad) (the-as uint128 0))
|
||||
1.0
|
||||
1.0
|
||||
(let ((s3-0 (new-stack-vector0)))
|
||||
0.0
|
||||
1.0
|
||||
(set! sv-176 (new 'stack-no-clear 'matrix))
|
||||
(set! (-> sv-176 vector 0 quad) (the-as uint128 0))
|
||||
(set! (-> sv-176 vector 1 quad) (the-as uint128 0))
|
||||
(set! (-> sv-176 vector 2 quad) (the-as uint128 0))
|
||||
(set! (-> sv-176 vector 3 quad) (the-as uint128 0))
|
||||
(cond
|
||||
((< 1.0 arg3)
|
||||
(set! arg3 1.0)
|
||||
)
|
||||
((< arg3 0.0)
|
||||
(set! arg3 0.0)
|
||||
)
|
||||
)
|
||||
(cond
|
||||
(arg4
|
||||
(vector-flatten! s0-0 arg1 arg4)
|
||||
(vector-flatten! sv-160 arg2 arg4)
|
||||
(set! f30-0 (vector-normalize-ret-len! s0-0 1.0))
|
||||
(set! f28-0 (vector-normalize-ret-len! sv-160 1.0))
|
||||
(vector-normalize! (vector-cross! s3-0 sv-160 s0-0) 1.0)
|
||||
(let ((f26-0 (vector-dot arg4 s3-0)))
|
||||
(vector-normalize-copy! s3-0 arg4 1.0)
|
||||
(if (< f26-0 0.0)
|
||||
(vector-negate! s3-0 s3-0)
|
||||
)
|
||||
(let ((sv-176 (new 'stack-no-clear 'matrix)))
|
||||
(set! (-> sv-176 vector 0 quad) (the-as uint128 0))
|
||||
(set! (-> sv-176 vector 1 quad) (the-as uint128 0))
|
||||
(set! (-> sv-176 vector 2 quad) (the-as uint128 0))
|
||||
(set! (-> sv-176 vector 3 quad) (the-as uint128 0))
|
||||
(cond
|
||||
((< 1.0 arg3)
|
||||
(set! arg3 1.0)
|
||||
)
|
||||
((< arg3 0.0)
|
||||
(set! arg3 0.0)
|
||||
)
|
||||
)
|
||||
(cond
|
||||
(arg4
|
||||
(vector-flatten! s0-0 arg1 arg4)
|
||||
(vector-flatten! sv-160 arg2 arg4)
|
||||
(set! f30-0 (vector-normalize-ret-len! s0-0 1.0))
|
||||
(set! f28-0 (vector-normalize-ret-len! sv-160 1.0))
|
||||
(vector-normalize! (vector-cross! s3-0 sv-160 s0-0) 1.0)
|
||||
(let ((f26-0 (vector-dot arg4 s3-0)))
|
||||
(vector-normalize-copy! s3-0 arg4 1.0)
|
||||
(if (< f26-0 0.0)
|
||||
(vector-negate! s3-0 s3-0)
|
||||
)
|
||||
)
|
||||
)
|
||||
(else
|
||||
(set! (-> s0-0 quad) (-> arg1 quad))
|
||||
(set! (-> sv-160 quad) (-> arg2 quad))
|
||||
(set! f30-0 (vector-normalize-ret-len! s0-0 1.0))
|
||||
(set! f28-0 (vector-normalize-ret-len! sv-160 1.0))
|
||||
(vector-normalize! (vector-cross! s3-0 arg2 arg1) 1.0)
|
||||
)
|
||||
)
|
||||
(else
|
||||
(set! (-> s0-0 quad) (-> arg1 quad))
|
||||
(set! (-> sv-160 quad) (-> arg2 quad))
|
||||
(set! f30-0 (vector-normalize-ret-len! s0-0 1.0))
|
||||
(set! f28-0 (vector-normalize-ret-len! sv-160 1.0))
|
||||
(vector-normalize! (vector-cross! s3-0 arg2 arg1) 1.0)
|
||||
)
|
||||
)
|
||||
(let ((t9-10 acos))
|
||||
(let* ((v1-18 s0-0)
|
||||
(f0-9 (-> v1-18 x))
|
||||
(f1-2 (-> v1-18 y))
|
||||
(f2-0 (-> v1-18 z))
|
||||
(f3-0 (-> sv-160 x))
|
||||
(f4-0 (-> sv-160 y))
|
||||
(f5-0 (-> sv-160 z))
|
||||
)
|
||||
(.mula.s f0-9 f3-0)
|
||||
(.madda.s f1-2 f4-0)
|
||||
(.madd.s f0-10 f2-0 f5-0)
|
||||
)
|
||||
(let* ((f1-3 (t9-10 f0-10))
|
||||
(f0-12 (* arg3 f1-3))
|
||||
)
|
||||
(when (< sv-144 f0-12)
|
||||
(set! f0-12 sv-144)
|
||||
(set! arg3 (/ sv-144 f1-3))
|
||||
(let ((t9-10 acos))
|
||||
(let* ((v1-18 s0-0))
|
||||
(set! f0-10 (vector-dot v1-18 sv-160))
|
||||
)
|
||||
(let* ((f0-13 (cos f0-12))
|
||||
(t9-12 matrix-axis-sin-cos!)
|
||||
(a0-20 sv-176)
|
||||
(a1-13 s3-0)
|
||||
(f1-5 1.0)
|
||||
(f2-3 f0-13)
|
||||
(let* ((f1-3 (t9-10 f0-10))
|
||||
(f0-12 (* arg3 f1-3))
|
||||
)
|
||||
(t9-12 a0-20 a1-13 (sqrtf (- f1-5 (* f2-3 f2-3))) f0-13)
|
||||
(when (< sv-144 f0-12)
|
||||
(set! f0-12 sv-144)
|
||||
(set! arg3 (/ sv-144 f1-3))
|
||||
)
|
||||
(let ((f0-13 (cos f0-12)))
|
||||
(matrix-axis-sin-cos! sv-176 s3-0 (sqrtf (- 1.0 (square f0-13))) f0-13)
|
||||
)
|
||||
)
|
||||
)
|
||||
(vector-matrix*! arg0 s0-0 sv-176)
|
||||
)
|
||||
(vector-matrix*! arg0 s0-0 sv-176)
|
||||
(let ((s0-1 vector-normalize!))
|
||||
(set! sv-192 arg0)
|
||||
(let ((a1-16 (lerp f30-0 f28-0 arg3)))
|
||||
(s0-1 sv-192 a1-16)
|
||||
)
|
||||
)
|
||||
(vector-normalize! arg0 (lerp f30-0 f28-0 arg3))
|
||||
(when arg4
|
||||
(vector+float*! arg0 arg0 s3-0 (vector-dot arg1 s3-0))
|
||||
(vector+float*! arg0 arg0 s3-0 (* arg3 (vector-dot (vector-! (new-stack-vector0) arg2 arg1) s3-0)))
|
||||
@@ -1802,10 +1731,11 @@
|
||||
;; ERROR: Unsupported inline assembly instruction kind - [madda.s f1, f4]
|
||||
;; ERROR: Unsupported inline assembly instruction kind - [madd.s f0, f2, f5]
|
||||
(defun v-slrp3! ((arg0 vector) (arg1 vector) (arg2 vector) (arg3 vector) (arg4 float))
|
||||
(local-vars (f0-7 float) (f26-0 float) (f28-0 float) (sv-144 float) (sv-160 vector))
|
||||
(set! sv-144 arg4)
|
||||
(let ((s1-0 (new-stack-vector0)))
|
||||
(set! sv-160 (new 'stack-no-clear 'vector))
|
||||
(local-vars (f0-7 float) (f26-0 float) (f28-0 float))
|
||||
(let ((sv-144 arg4)
|
||||
(s1-0 (new-stack-vector0))
|
||||
(sv-160 (new 'stack-no-clear 'vector))
|
||||
)
|
||||
(set! (-> sv-160 quad) (the-as uint128 0))
|
||||
0.0
|
||||
0.0
|
||||
@@ -1837,31 +1767,16 @@
|
||||
)
|
||||
)
|
||||
(let ((t9-10 acos))
|
||||
(let* ((v1-9 s1-0)
|
||||
(f0-6 (-> v1-9 x))
|
||||
(f1-0 (-> v1-9 y))
|
||||
(f2-0 (-> v1-9 z))
|
||||
(f3-0 (-> sv-160 x))
|
||||
(f4-0 (-> sv-160 y))
|
||||
(f5-0 (-> sv-160 z))
|
||||
)
|
||||
(.mula.s f0-6 f3-0)
|
||||
(.madda.s f1-0 f4-0)
|
||||
(.madd.s f0-7 f2-0 f5-0)
|
||||
(let* ((v1-9 s1-0))
|
||||
(set! f0-7 (vector-dot v1-9 sv-160))
|
||||
)
|
||||
(let ((f0-8 (t9-10 f0-7)))
|
||||
(when (< sv-144 f0-8)
|
||||
(set! f30-0 (/ sv-144 f0-8))
|
||||
(set! f0-8 sv-144)
|
||||
)
|
||||
(let* ((f0-9 (cos f0-8))
|
||||
(t9-12 matrix-axis-sin-cos!)
|
||||
(a0-20 s0-0)
|
||||
(a1-13 s3-0)
|
||||
(f1-3 1.0)
|
||||
(f2-1 f0-9)
|
||||
)
|
||||
(t9-12 a0-20 a1-13 (sqrtf (- f1-3 (* f2-1 f2-1))) f0-9)
|
||||
(let ((f0-9 (cos f0-8)))
|
||||
(matrix-axis-sin-cos! s0-0 s3-0 (sqrtf (- 1.0 (square f0-9))) f0-9)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
+5
-8
@@ -128,7 +128,6 @@
|
||||
;; definition for method 19 of type collide-edge-work
|
||||
;; INFO: Used lq/sq
|
||||
(defmethod check-grab-for-collisions ((this collide-edge-work) (arg0 collide-edge-hold-item) (arg1 edge-grab-info))
|
||||
(local-vars (sv-144 (function vector vector vector float vector)) (sv-160 vector) (sv-176 vector))
|
||||
(let* ((s3-0 (-> arg0 edge))
|
||||
(s1-0 (-> s3-0 etri ctri))
|
||||
(s4-0 (-> s1-0 prim-index))
|
||||
@@ -140,13 +139,11 @@
|
||||
(return #f)
|
||||
)
|
||||
)
|
||||
(set! sv-144 vector+*!)
|
||||
(set! sv-160 s0-0)
|
||||
(set! sv-176 (-> arg0 center-pt))
|
||||
(let ((a2-3 (vector-negate! (new 'stack-no-clear 'vector) (-> s3-0 edge-vec-norm)))
|
||||
(a3-2 1105.92)
|
||||
)
|
||||
(sv-144 sv-160 sv-176 a2-3 a3-2)
|
||||
(vector+*!
|
||||
s0-0
|
||||
(-> arg0 center-pt)
|
||||
(vector-negate! (new 'stack-no-clear 'vector) (-> s3-0 edge-vec-norm))
|
||||
1105.92
|
||||
)
|
||||
(let ((f0-1 (collide-edge-work-method-14 this (-> arg1 left-hand-hold) s0-0 (the-as int s4-0))))
|
||||
(if (< 491.52 f0-1)
|
||||
|
||||
+1
-6
@@ -299,12 +299,7 @@
|
||||
|
||||
;; definition for function distc
|
||||
(defun distc ((arg0 vector) (arg1 vector))
|
||||
(let* ((f0-1 (- (-> arg0 x) (-> arg1 x)))
|
||||
(f0-3 (* f0-1 f0-1))
|
||||
(f1-2 (- (-> arg0 z) (-> arg1 z)))
|
||||
)
|
||||
(sqrtf (+ f0-3 (* f1-2 f1-2)))
|
||||
)
|
||||
(sqrtf (+ (square (- (-> arg0 x) (-> arg1 x))) (square (- (-> arg0 z) (-> arg1 z)))))
|
||||
)
|
||||
|
||||
;; definition for function interpolate
|
||||
|
||||
+2
-9
@@ -406,7 +406,7 @@
|
||||
;; INFO: Used lq/sq
|
||||
;; INFO: Return type mismatch object vs none.
|
||||
(defmethod pull-rider! ((this collide-shape) (arg0 pull-rider-info))
|
||||
(local-vars (at-0 int) (sv-160 (function collide-shape-moving float collide-kind none)))
|
||||
(local-vars (at-0 int))
|
||||
(rlet ((vf0 :class vf)
|
||||
(vf1 :class vf)
|
||||
(vf2 :class vf)
|
||||
@@ -422,14 +422,7 @@
|
||||
((logtest? (-> this root-prim prim-core action) (collide-action rider-plat))
|
||||
(let ((s1-0 (-> this root-prim prim-core collide-as)))
|
||||
(set! (-> this root-prim prim-core collide-as) (collide-kind))
|
||||
(let ((s0-0 gp-0))
|
||||
(set! sv-160 (method-of-object s0-0 fill-cache-for-shape!))
|
||||
(let ((a1-3 (+ 8192.0 (vector-length s3-0)))
|
||||
(a2-0 (-> gp-0 root-prim collide-with))
|
||||
)
|
||||
(sv-160 s0-0 a1-3 a2-0)
|
||||
)
|
||||
)
|
||||
(fill-cache-for-shape! gp-0 (+ 8192.0 (vector-length s3-0)) (-> gp-0 root-prim collide-with))
|
||||
(set! (-> this root-prim prim-core collide-as) s1-0)
|
||||
)
|
||||
(let ((s2-1 (new 'stack-no-clear 'vector)))
|
||||
|
||||
+2
-2
@@ -84,14 +84,14 @@
|
||||
;; definition for function calc-terminal2-vel
|
||||
(defun calc-terminal2-vel ((arg0 float) (arg1 float) (arg2 float) (arg3 float))
|
||||
(let ((f0-4 (sqrtf (/ (- (/ arg0 60) arg1) arg2))))
|
||||
(- f0-4 (+ arg1 (* arg2 (* f0-4 f0-4))))
|
||||
(- f0-4 (+ arg1 (* arg2 (square f0-4))))
|
||||
)
|
||||
)
|
||||
|
||||
;; definition for function calc-terminal4-vel
|
||||
(defun calc-terminal4-vel ((arg0 float) (arg1 float) (arg2 float))
|
||||
(let ((f0-5 (sqrtf (sqrtf (/ (- (/ arg0 60) arg1) arg2)))))
|
||||
(- f0-5 (+ arg1 (* arg2 (* f0-5 f0-5 f0-5 f0-5))))
|
||||
(- f0-5 (+ arg1 (* arg2 (* (square f0-5) f0-5 f0-5))))
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
+96
-108
@@ -1638,7 +1638,6 @@
|
||||
)
|
||||
)
|
||||
:code (behavior ((arg0 object) (arg1 handle))
|
||||
(local-vars (sv-96 res-tag))
|
||||
(sound-play "pu-powercell")
|
||||
(clear-collide-with-as (-> self root))
|
||||
(logclear! (-> self mask) (process-mask actor-pause))
|
||||
@@ -1661,8 +1660,8 @@
|
||||
(format #t "WARNING: fuel-cell stall on not cloning.~%")
|
||||
(suspend)
|
||||
)
|
||||
(set! sv-96 (new 'static 'res-tag))
|
||||
(let* ((v1-34
|
||||
(let* ((sv-96 (new 'static 'res-tag))
|
||||
(v1-34
|
||||
(res-lump-data
|
||||
(-> self entity)
|
||||
'movie-pos
|
||||
@@ -2441,20 +2440,9 @@
|
||||
(v1-58 symbol)
|
||||
(v1-64 symbol)
|
||||
(v1-71 symbol)
|
||||
(sv-32 fact-info)
|
||||
(sv-48 int)
|
||||
(sv-64 process)
|
||||
(sv-80 process)
|
||||
(sv-96 process)
|
||||
(sv-112 process)
|
||||
(sv-128 process)
|
||||
(sv-144 process)
|
||||
(sv-160 process)
|
||||
(sv-176 process)
|
||||
(sv-192 (pointer process))
|
||||
)
|
||||
(set! sv-32 arg5)
|
||||
(let ((s1-0 (new-stack-vector0))
|
||||
(let ((sv-32 arg5)
|
||||
(s1-0 (new-stack-vector0))
|
||||
(t9-0 (method-of-type res-lump get-property-value-float))
|
||||
)
|
||||
(let ((v1-1 sv-32))
|
||||
@@ -2485,10 +2473,11 @@
|
||||
*res-static-buf*
|
||||
)
|
||||
)
|
||||
(sv-192 (the-as (pointer process) #f))
|
||||
)
|
||||
(set! sv-192 (the-as (pointer process) #f))
|
||||
(set! sv-48 (the int arg2))
|
||||
(let ((s0-0 (new 'static 'fact-info)))
|
||||
(let ((sv-48 (the int arg2))
|
||||
(s0-0 (new 'static 'fact-info))
|
||||
)
|
||||
(set! (-> s0-0 options) (fact-options))
|
||||
(if sv-32
|
||||
(mem-copy! (&-> s0-0 type) (&-> sv-32 type) 40)
|
||||
@@ -2496,7 +2485,7 @@
|
||||
(set! (-> s0-0 pickup-type) arg1)
|
||||
(set! (-> s0-0 pickup-spawn-amount) 1.0)
|
||||
(while (> sv-48 0)
|
||||
(set! sv-48 (+ sv-48 -1))
|
||||
(+! sv-48 -1)
|
||||
(when arg3
|
||||
(set-vector! s1-0 0.0 57001.605 f30-0 1.0)
|
||||
(vector-rotate-around-y! s1-0 s1-0 (/ (* 65536.0 (the float sv-48)) arg2))
|
||||
@@ -2504,118 +2493,117 @@
|
||||
(let ((v1-25 arg1))
|
||||
(cond
|
||||
((= v1-25 (pickup-type eco-yellow))
|
||||
(set! sv-64 (get-process *pickup-dead-pool* eco-yellow #x4000))
|
||||
(set! v1-28 (when sv-64
|
||||
(set! sv-192 (the-as (pointer process) v1-28))
|
||||
(let ((t9-4 (method-of-type eco-yellow activate)))
|
||||
(t9-4 (the-as eco-yellow sv-64) arg4 'eco-yellow (the-as pointer #x70004000))
|
||||
)
|
||||
(run-now-in-process sv-64 initialize-eco-by-other arg0 s1-0 s0-0)
|
||||
(set! sv-192 (-> sv-64 ppointer))
|
||||
v1-28
|
||||
)
|
||||
)
|
||||
(let ((sv-64 (get-process *pickup-dead-pool* eco-yellow #x4000)))
|
||||
(set! v1-28
|
||||
(when sv-64
|
||||
(set! sv-192 (the-as (pointer process) v1-28))
|
||||
((method-of-type eco-yellow activate) (the-as eco-yellow sv-64) arg4 'eco-yellow (the-as pointer #x70004000))
|
||||
(run-now-in-process sv-64 initialize-eco-by-other arg0 s1-0 s0-0)
|
||||
(set! sv-192 (-> sv-64 ppointer))
|
||||
v1-28
|
||||
)
|
||||
)
|
||||
)
|
||||
sv-192
|
||||
)
|
||||
((= v1-25 (pickup-type eco-red))
|
||||
(set! sv-80 (get-process *pickup-dead-pool* eco-red #x4000))
|
||||
(set! v1-34 (when sv-80
|
||||
(set! sv-192 (the-as (pointer process) v1-34))
|
||||
(let ((t9-7 (method-of-type eco-red activate)))
|
||||
(t9-7 (the-as eco-red sv-80) arg4 'eco-red (the-as pointer #x70004000))
|
||||
)
|
||||
(run-now-in-process sv-80 initialize-eco-by-other arg0 s1-0 s0-0)
|
||||
(set! sv-192 (-> sv-80 ppointer))
|
||||
v1-34
|
||||
)
|
||||
)
|
||||
(let ((sv-80 (get-process *pickup-dead-pool* eco-red #x4000)))
|
||||
(set! v1-34
|
||||
(when sv-80
|
||||
(set! sv-192 (the-as (pointer process) v1-34))
|
||||
((method-of-type eco-red activate) (the-as eco-red sv-80) arg4 'eco-red (the-as pointer #x70004000))
|
||||
(run-now-in-process sv-80 initialize-eco-by-other arg0 s1-0 s0-0)
|
||||
(set! sv-192 (-> sv-80 ppointer))
|
||||
v1-34
|
||||
)
|
||||
)
|
||||
)
|
||||
(level-hint-spawn (text-id misty-eco-red-hint) "sksp0071" (the-as entity #f) *entity-pool* (game-task none))
|
||||
)
|
||||
((= v1-25 (pickup-type eco-blue))
|
||||
(set! sv-96 (get-process *pickup-dead-pool* eco-blue #x4000))
|
||||
(set! v1-40 (when sv-96
|
||||
(set! sv-192 (the-as (pointer process) v1-40))
|
||||
(let ((t9-11 (method-of-type eco-blue activate)))
|
||||
(t9-11 (the-as eco-blue sv-96) arg4 'eco-blue (the-as pointer #x70004000))
|
||||
)
|
||||
(run-now-in-process sv-96 initialize-eco-by-other arg0 s1-0 s0-0)
|
||||
(set! sv-192 (-> sv-96 ppointer))
|
||||
v1-40
|
||||
)
|
||||
)
|
||||
(let ((sv-96 (get-process *pickup-dead-pool* eco-blue #x4000)))
|
||||
(set! v1-40
|
||||
(when sv-96
|
||||
(set! sv-192 (the-as (pointer process) v1-40))
|
||||
((method-of-type eco-blue activate) (the-as eco-blue sv-96) arg4 'eco-blue (the-as pointer #x70004000))
|
||||
(run-now-in-process sv-96 initialize-eco-by-other arg0 s1-0 s0-0)
|
||||
(set! sv-192 (-> sv-96 ppointer))
|
||||
v1-40
|
||||
)
|
||||
)
|
||||
)
|
||||
sv-192
|
||||
)
|
||||
((= v1-25 (pickup-type eco-green))
|
||||
(set! sv-112 (get-process *pickup-dead-pool* health #x4000))
|
||||
(set! v1-46 (when sv-112
|
||||
(set! sv-192 (the-as (pointer process) v1-46))
|
||||
(let ((t9-14 (method-of-type health activate)))
|
||||
(t9-14 (the-as health sv-112) arg4 'health (the-as pointer #x70004000))
|
||||
)
|
||||
(run-now-in-process sv-112 initialize-eco-by-other arg0 s1-0 s0-0)
|
||||
(set! sv-192 (-> sv-112 ppointer))
|
||||
v1-46
|
||||
)
|
||||
)
|
||||
(let ((sv-112 (get-process *pickup-dead-pool* health #x4000)))
|
||||
(set! v1-46
|
||||
(when sv-112
|
||||
(set! sv-192 (the-as (pointer process) v1-46))
|
||||
((method-of-type health activate) (the-as health sv-112) arg4 'health (the-as pointer #x70004000))
|
||||
(run-now-in-process sv-112 initialize-eco-by-other arg0 s1-0 s0-0)
|
||||
(set! sv-192 (-> sv-112 ppointer))
|
||||
v1-46
|
||||
)
|
||||
)
|
||||
)
|
||||
sv-192
|
||||
)
|
||||
((= v1-25 (pickup-type eco-pill))
|
||||
(set! sv-128 (get-process *pickup-dead-pool* eco-pill #x4000))
|
||||
(set! v1-52 (when sv-128
|
||||
(set! sv-192 (the-as (pointer process) v1-52))
|
||||
(let ((t9-17 (method-of-type eco-pill activate)))
|
||||
(t9-17 (the-as eco-pill sv-128) arg4 'eco-pill (the-as pointer #x70004000))
|
||||
)
|
||||
(run-now-in-process sv-128 initialize-eco-by-other arg0 s1-0 s0-0)
|
||||
(set! sv-192 (-> sv-128 ppointer))
|
||||
v1-52
|
||||
)
|
||||
)
|
||||
(let ((sv-128 (get-process *pickup-dead-pool* eco-pill #x4000)))
|
||||
(set! v1-52
|
||||
(when sv-128
|
||||
(set! sv-192 (the-as (pointer process) v1-52))
|
||||
((method-of-type eco-pill activate) (the-as eco-pill sv-128) arg4 'eco-pill (the-as pointer #x70004000))
|
||||
(run-now-in-process sv-128 initialize-eco-by-other arg0 s1-0 s0-0)
|
||||
(set! sv-192 (-> sv-128 ppointer))
|
||||
v1-52
|
||||
)
|
||||
)
|
||||
)
|
||||
sv-192
|
||||
)
|
||||
((= v1-25 (pickup-type money))
|
||||
(set! sv-144 (get-process *pickup-dead-pool* money #x4000))
|
||||
(set! v1-58 (when sv-144
|
||||
(set! sv-192 (the-as (pointer process) v1-58))
|
||||
(let ((t9-20 (method-of-type money activate)))
|
||||
(t9-20 (the-as money sv-144) arg4 'money (the-as pointer #x70004000))
|
||||
(let ((sv-144 (get-process *pickup-dead-pool* money #x4000)))
|
||||
(set! v1-58 (when sv-144
|
||||
(set! sv-192 (the-as (pointer process) v1-58))
|
||||
((method-of-type money activate) (the-as money sv-144) arg4 'money (the-as pointer #x70004000))
|
||||
(run-now-in-process sv-144 money-init-by-other arg0 s1-0 s0-0 (-> self entity))
|
||||
(set! sv-192 (-> sv-144 ppointer))
|
||||
v1-58
|
||||
)
|
||||
(run-now-in-process sv-144 money-init-by-other arg0 s1-0 s0-0 (-> self entity))
|
||||
(set! sv-192 (-> sv-144 ppointer))
|
||||
v1-58
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
sv-192
|
||||
)
|
||||
((= v1-25 (pickup-type fuel-cell))
|
||||
(set! (-> s0-0 pickup-spawn-amount) arg2)
|
||||
(set! sv-160 (get-process *pickup-dead-pool* fuel-cell #x4000))
|
||||
(set! v1-64 (when sv-160
|
||||
(set! sv-192 (the-as (pointer process) v1-64))
|
||||
(let ((t9-23 (method-of-type fuel-cell activate)))
|
||||
(t9-23 (the-as fuel-cell sv-160) arg4 'fuel-cell (the-as pointer #x70004000))
|
||||
)
|
||||
(run-now-in-process sv-160 fuel-cell-init-by-other arg0 s1-0 s0-0 (-> self entity))
|
||||
(set! sv-192 (-> sv-160 ppointer))
|
||||
v1-64
|
||||
)
|
||||
)
|
||||
(let ((sv-160 (get-process *pickup-dead-pool* fuel-cell #x4000)))
|
||||
(set! v1-64
|
||||
(when sv-160
|
||||
(set! sv-192 (the-as (pointer process) v1-64))
|
||||
((method-of-type fuel-cell activate) (the-as fuel-cell sv-160) arg4 'fuel-cell (the-as pointer #x70004000))
|
||||
(run-now-in-process sv-160 fuel-cell-init-by-other arg0 s1-0 s0-0 (-> self entity))
|
||||
(set! sv-192 (-> sv-160 ppointer))
|
||||
v1-64
|
||||
)
|
||||
)
|
||||
)
|
||||
(set! sv-48 0)
|
||||
sv-48
|
||||
)
|
||||
((= v1-25 (pickup-type buzzer))
|
||||
(set! (-> s0-0 pickup-spawn-amount) arg2)
|
||||
(set! sv-176 (get-process *pickup-dead-pool* buzzer #x4000))
|
||||
(set! v1-71 (when sv-176
|
||||
(set! sv-192 (the-as (pointer process) v1-71))
|
||||
(let ((t9-26 (method-of-type buzzer activate)))
|
||||
(t9-26 (the-as buzzer sv-176) arg4 'buzzer (the-as pointer #x70004000))
|
||||
)
|
||||
(run-now-in-process sv-176 buzzer-init-by-other arg0 s1-0 s0-0 (-> self entity))
|
||||
(set! sv-192 (-> sv-176 ppointer))
|
||||
v1-71
|
||||
)
|
||||
)
|
||||
(let ((sv-176 (get-process *pickup-dead-pool* buzzer #x4000)))
|
||||
(set! v1-71
|
||||
(when sv-176
|
||||
(set! sv-192 (the-as (pointer process) v1-71))
|
||||
((method-of-type buzzer activate) (the-as buzzer sv-176) arg4 'buzzer (the-as pointer #x70004000))
|
||||
(run-now-in-process sv-176 buzzer-init-by-other arg0 s1-0 s0-0 (-> self entity))
|
||||
(set! sv-192 (-> sv-176 ppointer))
|
||||
v1-71
|
||||
)
|
||||
)
|
||||
)
|
||||
(set! sv-48 0)
|
||||
sv-48
|
||||
)
|
||||
@@ -2627,9 +2615,9 @@
|
||||
)
|
||||
)
|
||||
)
|
||||
sv-192
|
||||
)
|
||||
)
|
||||
sv-192
|
||||
)
|
||||
|
||||
;; definition for method 9 of type fact-info
|
||||
|
||||
+1
-2
@@ -363,8 +363,7 @@
|
||||
)
|
||||
(let* ((gp-0 (-> self draw ripple))
|
||||
(f0-1 (the float (logand (current-time) #xffff)))
|
||||
(f0-3 (cos (* 5.0 f0-1)))
|
||||
(f30-0 (* f0-3 f0-3))
|
||||
(f30-0 (square (cos (* 5.0 f0-1))))
|
||||
)
|
||||
(let ((s5-0 (-> self draw ripple query)))
|
||||
(set! (-> self draw ripple send-query) #t)
|
||||
|
||||
+4
-6
@@ -1321,12 +1321,11 @@
|
||||
;; INFO: Used lq/sq
|
||||
;; INFO: Return type mismatch object vs none.
|
||||
(defmethod init-from-entity! ((this med-res-level) (arg0 entity-actor))
|
||||
(local-vars (sv-16 res-tag))
|
||||
(stack-size-set! (-> this main-thread) 128)
|
||||
"#f"
|
||||
(let ((s4-0 (the-as (pointer sparticle-launch-group) #f)))
|
||||
(set! sv-16 (new 'static 'res-tag))
|
||||
(let* ((s3-0 (res-lump-data arg0 'art-name (pointer symbol) :tag-ptr (& sv-16)))
|
||||
(let* ((sv-16 (new 'static 'res-tag))
|
||||
(s3-0 (res-lump-data arg0 'art-name (pointer symbol) :tag-ptr (& sv-16)))
|
||||
(s2-0 (-> s3-0 0))
|
||||
)
|
||||
(cond
|
||||
@@ -1429,7 +1428,6 @@
|
||||
;; INFO: Used lq/sq
|
||||
;; INFO: Return type mismatch object vs none.
|
||||
(defmethod init-from-entity! ((this part-spawner) (arg0 entity-actor))
|
||||
(local-vars (sv-16 res-tag))
|
||||
(stack-size-set! (-> this main-thread) 128)
|
||||
(logior! (-> this mask) (process-mask ambient))
|
||||
(set! (-> this root) (new 'process 'trsqv))
|
||||
@@ -1442,8 +1440,8 @@
|
||||
(set! (-> this sound) (new 'process 'ambient-sound (-> this entity) (-> this root trans)))
|
||||
(let ((s4-0 (the-as object "#f")))
|
||||
(let ((s3-0 (the-as (pointer sparticle-launch-group) #f)))
|
||||
(set! sv-16 (new 'static 'res-tag))
|
||||
(let* ((s5-1 (res-lump-data arg0 'art-name (pointer (pointer sparticle-launch-group)) :tag-ptr (& sv-16)))
|
||||
(let* ((sv-16 (new 'static 'res-tag))
|
||||
(s5-1 (res-lump-data arg0 'art-name (pointer (pointer sparticle-launch-group)) :tag-ptr (& sv-16)))
|
||||
(s2-0 (-> s5-1 0))
|
||||
)
|
||||
(cond
|
||||
|
||||
+1
-2
@@ -1876,9 +1876,8 @@ nav-enemy-default-event-handler
|
||||
(let* ((a0-10 (-> gp-0 sphere v1-9))
|
||||
(f2-2 (- (-> a0-10 x) f0-1))
|
||||
(f3-1 (- (-> a0-10 z) f1-2))
|
||||
(f4-0 (-> a0-10 w))
|
||||
)
|
||||
(if (>= (* f4-0 f4-0) (+ (* f2-2 f2-2) (* f3-1 f3-1)))
|
||||
(if (>= (square (-> a0-10 w)) (+ (square f2-2) (square f3-1)))
|
||||
(return #t)
|
||||
)
|
||||
)
|
||||
|
||||
+3
-18
@@ -67,24 +67,9 @@
|
||||
(f1-1 12.0)
|
||||
(f0-5 (* f0-4 (/ 1.0 f1-1)))
|
||||
)
|
||||
(let* ((f1-4 arg2)
|
||||
(f1-6 (* f1-4 f1-4))
|
||||
(f2-1 arg3)
|
||||
)
|
||||
(set! (-> this inertial-tensor vector 0 x) (* f0-5 (+ f1-6 (* f2-1 f2-1))))
|
||||
)
|
||||
(let* ((f1-9 arg1)
|
||||
(f1-11 (* f1-9 f1-9))
|
||||
(f2-4 arg3)
|
||||
)
|
||||
(set! (-> this inertial-tensor vector 1 y) (* f0-5 (+ f1-11 (* f2-4 f2-4))))
|
||||
)
|
||||
(let* ((f1-14 arg1)
|
||||
(f1-16 (* f1-14 f1-14))
|
||||
(f2-7 arg2)
|
||||
)
|
||||
(set! (-> this inertial-tensor vector 2 z) (* f0-5 (+ f1-16 (* f2-7 f2-7))))
|
||||
)
|
||||
(set! (-> this inertial-tensor vector 0 x) (* f0-5 (+ (square arg2) (square arg3))))
|
||||
(set! (-> this inertial-tensor vector 1 y) (* f0-5 (+ (square arg1) (square arg3))))
|
||||
(set! (-> this inertial-tensor vector 2 z) (* f0-5 (+ (square arg1) (square arg2))))
|
||||
)
|
||||
(let ((f0-7 (-> this inertial-tensor vector 0 x)))
|
||||
(set! (-> this inv-inertial-tensor vector 0 x) (/ 1.0 f0-7))
|
||||
|
||||
+3
-3
@@ -582,11 +582,11 @@
|
||||
;; INFO: Used lq/sq
|
||||
;; INFO: Return type mismatch quaternion vs none.
|
||||
(defmethod water-vol-method-25 ((this water-anim))
|
||||
(local-vars (sv-16 res-tag))
|
||||
(set! (-> this play-ambient-sound?) #t)
|
||||
(set! (-> this look) (res-lump-value (-> this entity) 'look int :default (the-as uint128 -1)))
|
||||
(set! sv-16 (new 'static 'res-tag))
|
||||
(let ((v1-3 (res-lump-data (-> this entity) 'trans-offset (pointer float) :tag-ptr (& sv-16))))
|
||||
(let* ((sv-16 (new 'static 'res-tag))
|
||||
(v1-3 (res-lump-data (-> this entity) 'trans-offset (pointer float) :tag-ptr (& sv-16)))
|
||||
)
|
||||
(when v1-3
|
||||
(+! (-> this root trans x) (-> v1-3 0))
|
||||
(+! (-> this root trans y) (-> v1-3 1))
|
||||
|
||||
+13
-14
@@ -1335,7 +1335,6 @@
|
||||
;; INFO: Used lq/sq
|
||||
;; INFO: Return type mismatch water-flags vs none.
|
||||
(defmethod init! ((this water-vol))
|
||||
(local-vars (sv-16 res-tag))
|
||||
(set! (-> this attack-event) (the-as symbol ((method-of-type res-lump get-property-struct)
|
||||
(-> this entity)
|
||||
'attack-event
|
||||
@@ -1353,19 +1352,19 @@
|
||||
(logior! (-> this vol flags) 3)
|
||||
(set! (-> this bottom-height) 32768.0)
|
||||
(set! (-> this target) (the-as handle #f))
|
||||
(set! sv-16 (new 'static 'res-tag))
|
||||
(let ((v1-8 (the-as (pointer float) ((method-of-type res-lump get-property-data)
|
||||
(-> this entity)
|
||||
'water-height
|
||||
'exact
|
||||
-1000000000.0
|
||||
(the-as pointer #f)
|
||||
(& sv-16)
|
||||
*res-static-buf*
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(let* ((sv-16 (new 'static 'res-tag))
|
||||
(v1-8 (the-as (pointer float) ((method-of-type res-lump get-property-data)
|
||||
(-> this entity)
|
||||
'water-height
|
||||
'exact
|
||||
-1000000000.0
|
||||
(the-as pointer #f)
|
||||
(& sv-16)
|
||||
*res-static-buf*
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(when v1-8
|
||||
(set! (-> this water-height) (-> v1-8 0))
|
||||
(set! (-> this wade-height) (-> v1-8 1))
|
||||
|
||||
+75
-88
@@ -1016,7 +1016,6 @@
|
||||
;; definition for function anim-tester-disp-frame-num
|
||||
;; INFO: Used lq/sq
|
||||
(defun anim-tester-disp-frame-num ((arg0 string) (arg1 float) (arg2 float) (arg3 font-context))
|
||||
(local-vars (sv-16 (function _varargs_ object)))
|
||||
(let* ((s3-0 (-> *display* frames (-> *display* on-screen) frame debug-buf))
|
||||
(gp-0 (-> s3-0 base))
|
||||
)
|
||||
@@ -1035,14 +1034,7 @@
|
||||
)
|
||||
(else
|
||||
(let ((s0-0 draw-string-adv))
|
||||
(set! sv-16 format)
|
||||
(let ((a0-11 (clear *temp-string*))
|
||||
(a1-5 "~S~3,,0f")
|
||||
(a2-5 arg0)
|
||||
(a3-1 (+ arg1 arg2))
|
||||
)
|
||||
(sv-16 a0-11 a1-5 a2-5 a3-1)
|
||||
)
|
||||
(format (clear *temp-string*) "~S~3,,0f" arg0 (+ arg1 arg2))
|
||||
(s0-0 *temp-string* s3-0 arg3)
|
||||
)
|
||||
)
|
||||
@@ -1700,10 +1692,6 @@
|
||||
;; definition for function anim-test-edit-sequence-list-handler
|
||||
;; INFO: Used lq/sq
|
||||
(defun anim-test-edit-sequence-list-handler ((arg0 int) (arg1 list-control))
|
||||
(local-vars
|
||||
(sv-192 (function string dma-buffer int int font-color font-flags float))
|
||||
(sv-208 (function _varargs_ object))
|
||||
)
|
||||
(let ((gp-0 (-> arg1 the-node))
|
||||
(s4-0 (the-as object (-> arg1 list-owner)))
|
||||
(s2-0 (and (logtest? (-> *anim-tester* 0 flags) (anim-tester-flags fanimt3))
|
||||
@@ -1763,36 +1751,33 @@
|
||||
(let* ((s0-1 (-> *display* frames (-> *display* on-screen) frame debug-buf))
|
||||
(s1-1 (-> s0-1 base))
|
||||
)
|
||||
(set! sv-192 draw-string-xy)
|
||||
(set! sv-208 format)
|
||||
(let ((a0-18 (clear *temp-string*))
|
||||
(a1-7 "~S~S~-27S")
|
||||
(a2-11 (if (= (-> arg1 the-index) (-> arg1 highlight-index))
|
||||
">"
|
||||
" "
|
||||
)
|
||||
)
|
||||
(a3-6 (if (= (-> arg1 the-index) (-> (the-as anim-test-sequence s4-0) playing-item))
|
||||
"*"
|
||||
" "
|
||||
)
|
||||
)
|
||||
(t0-2 (-> (the-as anim-test-seq-item gp-0) privname))
|
||||
(let ((sv-192 draw-string-xy))
|
||||
(let ((sv-208 format))
|
||||
(sv-208
|
||||
(clear *temp-string*)
|
||||
"~S~S~-27S"
|
||||
(if (= (-> arg1 the-index) (-> arg1 highlight-index))
|
||||
">"
|
||||
" "
|
||||
)
|
||||
(if (= (-> arg1 the-index) (-> (the-as anim-test-sequence s4-0) playing-item))
|
||||
"*"
|
||||
" "
|
||||
)
|
||||
(-> (the-as anim-test-seq-item gp-0) privname)
|
||||
)
|
||||
(sv-208 a0-18 a1-7 a2-11 a3-6 t0-2)
|
||||
)
|
||||
(let ((a0-19 *temp-string*)
|
||||
(a1-8 s0-1)
|
||||
(a2-12 (-> arg1 xpos))
|
||||
(a3-7 (-> arg1 ypos))
|
||||
(t0-4 (if (= (-> arg1 the-index) (-> arg1 current-index))
|
||||
15
|
||||
12
|
||||
)
|
||||
)
|
||||
(t1-2 3)
|
||||
)
|
||||
(sv-192 a0-19 a1-8 a2-12 a3-7 (the-as font-color t0-4) (the-as font-flags t1-2))
|
||||
)
|
||||
(sv-192
|
||||
*temp-string*
|
||||
s0-1
|
||||
(-> arg1 xpos)
|
||||
(-> arg1 ypos)
|
||||
(if (= (-> arg1 the-index) (-> arg1 current-index))
|
||||
(font-color menu-flag-on)
|
||||
(font-color menu)
|
||||
)
|
||||
(font-flags shadow kerning)
|
||||
)
|
||||
)
|
||||
(let ((a3-8 (-> s0-1 base)))
|
||||
(let ((v1-44 (the-as object (-> s0-1 base))))
|
||||
@@ -2782,7 +2767,6 @@
|
||||
;; definition for function anim-tester-add-newobj
|
||||
;; INFO: Used lq/sq
|
||||
(defun anim-tester-add-newobj ((arg0 anim-tester) (arg1 string) (arg2 art-group))
|
||||
(local-vars (sv-96 art-element) (sv-112 art-element) (sv-128 anim-test-obj))
|
||||
(let ((s2-0 (the-as anim-test-obj #f))
|
||||
(s5-0 (the-as anim-test-obj #f))
|
||||
)
|
||||
@@ -2792,29 +2776,30 @@
|
||||
(dotimes (s3-0 (-> arg2 length))
|
||||
(cond
|
||||
((and (= (-> arg2 data s3-0 type) merc-ctrl) (not s2-0))
|
||||
(set! sv-96 (-> arg2 data s3-0))
|
||||
(set! s0-0 (and s2-0 s0-0))
|
||||
(if s0-0
|
||||
(anim-test-obj-remove-invalid s2-0)
|
||||
)
|
||||
(anim-tester-load-object-seqs arg0 (-> sv-96 name))
|
||||
(set! s2-0 (the-as anim-test-obj (glst-find-node-by-name (-> arg0 obj-list) (-> sv-96 name))))
|
||||
(set! s0-0 (if s2-0
|
||||
#t
|
||||
#f
|
||||
)
|
||||
(let ((sv-96 (-> arg2 data s3-0)))
|
||||
(set! s0-0 (and s2-0 s0-0))
|
||||
(if s0-0
|
||||
(anim-test-obj-remove-invalid s2-0)
|
||||
)
|
||||
(anim-tester-load-object-seqs arg0 (-> sv-96 name))
|
||||
(set! s2-0 (the-as anim-test-obj (glst-find-node-by-name (-> arg0 obj-list) (-> sv-96 name))))
|
||||
(set! s0-0 (if s2-0
|
||||
#t
|
||||
#f
|
||||
)
|
||||
)
|
||||
(cond
|
||||
((the-as symbol s0-0)
|
||||
)
|
||||
(else
|
||||
(set! s2-0 (new 'global 'anim-test-obj 1 (-> sv-96 name) arg2))
|
||||
(glst-add-tail (-> arg0 obj-list) s2-0)
|
||||
)
|
||||
(cond
|
||||
((the-as symbol s0-0)
|
||||
)
|
||||
(else
|
||||
(set! s2-0 (new 'global 'anim-test-obj 1 (-> sv-96 name) arg2))
|
||||
(glst-add-tail (-> arg0 obj-list) s2-0)
|
||||
)
|
||||
(anim-test-obj-init s2-0 (the-as list-control arg0))
|
||||
(set! (-> s2-0 obj-art-group) arg2)
|
||||
(set! (-> s2-0 mesh-geo) (the-as merc-ctrl sv-96))
|
||||
)
|
||||
(anim-test-obj-init s2-0 (the-as list-control arg0))
|
||||
(set! (-> s2-0 obj-art-group) arg2)
|
||||
(set! (-> s2-0 mesh-geo) (the-as merc-ctrl sv-96))
|
||||
(set! (-> s2-0 joint-geo) (the-as art-joint-geo s1-0))
|
||||
(if (not s5-0)
|
||||
(set! s5-0 s2-0)
|
||||
@@ -2830,32 +2815,34 @@
|
||||
)
|
||||
((= (-> arg2 data s3-0 type) art-joint-anim)
|
||||
(when s2-0
|
||||
(set! sv-112 (-> arg2 data s3-0))
|
||||
(set! sv-128 (the-as anim-test-obj (glst-find-node-by-name (-> s2-0 seq-list) (-> sv-112 name))))
|
||||
(when (not sv-128)
|
||||
(set! sv-128 (the-as anim-test-obj (new 'debug 'anim-test-sequence 1 (-> sv-112 name))))
|
||||
(glst-add-tail (-> s2-0 seq-list) sv-128)
|
||||
(anim-test-sequence-init (the-as anim-test-sequence sv-128) s2-0)
|
||||
(let ((a1-11 (new 'debug 'anim-test-seq-item 1 (-> sv-112 name))))
|
||||
(glst-add-tail (the-as glst-list (&-> sv-128 obj-art-group)) a1-11)
|
||||
)
|
||||
)
|
||||
(set! (-> sv-128 list-con user-info) (the-as int s2-0))
|
||||
(set! (-> sv-128 flags) (logior (-> (the-as anim-test-sequence sv-128) flags) 2))
|
||||
(let ((v1-48 (-> (the-as anim-test-sequence sv-128) item-list)))
|
||||
"is the list empty, #t = empty"
|
||||
(when (not (= (-> v1-48 tailpred) v1-48))
|
||||
(let ((v1-51 (-> (the-as anim-test-sequence sv-128) item-list)))
|
||||
"return the start of the list"
|
||||
(let ((v1-52 (-> v1-51 head)))
|
||||
(set! (-> (the-as anim-test-seq-item v1-52) num-frames)
|
||||
(the float (-> (the-as art-joint-anim sv-112) data 0 length))
|
||||
)
|
||||
(set! (-> (the-as anim-test-seq-item v1-52) artist-base) (-> (the-as art-joint-anim sv-112) artist-base))
|
||||
(set! (-> (the-as anim-test-seq-item v1-52) parent) (the-as anim-test-sequence sv-128))
|
||||
)
|
||||
(let* ((sv-112 (-> arg2 data s3-0))
|
||||
(sv-128 (the-as anim-test-obj (glst-find-node-by-name (-> s2-0 seq-list) (-> sv-112 name))))
|
||||
)
|
||||
(when (not sv-128)
|
||||
(set! sv-128 (the-as anim-test-obj (new 'debug 'anim-test-sequence 1 (-> sv-112 name))))
|
||||
(glst-add-tail (-> s2-0 seq-list) sv-128)
|
||||
(anim-test-sequence-init (the-as anim-test-sequence sv-128) s2-0)
|
||||
(let ((a1-11 (new 'debug 'anim-test-seq-item 1 (-> sv-112 name))))
|
||||
(glst-add-tail (the-as glst-list (&-> sv-128 obj-art-group)) a1-11)
|
||||
)
|
||||
)
|
||||
(set! (-> sv-128 list-con user-info) (the-as int s2-0))
|
||||
(set! (-> sv-128 flags) (logior (-> (the-as anim-test-sequence sv-128) flags) 2))
|
||||
(let ((v1-48 (-> (the-as anim-test-sequence sv-128) item-list)))
|
||||
"is the list empty, #t = empty"
|
||||
(when (not (= (-> v1-48 tailpred) v1-48))
|
||||
(let ((v1-51 (-> (the-as anim-test-sequence sv-128) item-list)))
|
||||
"return the start of the list"
|
||||
(let ((v1-52 (-> v1-51 head)))
|
||||
(set! (-> (the-as anim-test-seq-item v1-52) num-frames)
|
||||
(the float (-> (the-as art-joint-anim sv-112) data 0 length))
|
||||
)
|
||||
(set! (-> (the-as anim-test-seq-item v1-52) artist-base) (-> (the-as art-joint-anim sv-112) artist-base))
|
||||
(set! (-> (the-as anim-test-seq-item v1-52) parent) (the-as anim-test-sequence sv-128))
|
||||
)
|
||||
)
|
||||
sv-128
|
||||
)
|
||||
sv-128
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
+14
-14
@@ -18,7 +18,6 @@
|
||||
;; INFO: Used lq/sq
|
||||
;; INFO: Return type mismatch int vs none.
|
||||
(defun make-debug-sphere-table ((arg0 debug-sphere-table))
|
||||
(local-vars (sv-80 int))
|
||||
(let ((s5-0 (new-stack-vector0))
|
||||
(f30-0 1.0)
|
||||
(s4-0 0)
|
||||
@@ -34,19 +33,20 @@
|
||||
(set! (-> s2-0 y) (+ (-> s5-0 y) (* (cos (* 3276.8 (the float s3-0))) f30-0)))
|
||||
(set! (-> s1-0 y) (-> s2-0 y))
|
||||
(set! (-> s0-0 y) (+ (-> s5-0 y) (* (cos (* 3276.8 (the float (+ s3-0 1)))) f30-0)))
|
||||
(set! sv-80 0)
|
||||
(while (< sv-80 10)
|
||||
(set! (-> s2-0 x) (+ (-> s5-0 x) (* (cos (* 6553.6 (the float sv-80))) f28-0)))
|
||||
(set! (-> s2-0 z) (+ (-> s5-0 z) (* (sin (* 6553.6 (the float sv-80))) f28-0)))
|
||||
(set! (-> s1-0 x) (+ (-> s5-0 x) (* (cos (* 6553.6 (the float (+ sv-80 1)))) f28-0)))
|
||||
(set! (-> s1-0 z) (+ (-> s5-0 z) (* (sin (* 6553.6 (the float (+ sv-80 1)))) f28-0)))
|
||||
(set! (-> s0-0 x) (+ (-> s5-0 x) (* (cos (* 6553.6 (the float sv-80))) f26-0)))
|
||||
(set! (-> s0-0 z) (+ (-> s5-0 z) (* (sin (* 6553.6 (the float sv-80))) f26-0)))
|
||||
(set! (-> arg0 point s4-0 quad) (-> s2-0 quad))
|
||||
(set! (-> arg0 point (+ s4-0 1) quad) (-> s1-0 quad))
|
||||
(set! (-> arg0 point (+ s4-0 2) quad) (-> s0-0 quad))
|
||||
(+! s4-0 3)
|
||||
(set! sv-80 (+ sv-80 1))
|
||||
(let ((sv-80 0))
|
||||
(while (< sv-80 10)
|
||||
(set! (-> s2-0 x) (+ (-> s5-0 x) (* (cos (* 6553.6 (the float sv-80))) f28-0)))
|
||||
(set! (-> s2-0 z) (+ (-> s5-0 z) (* (sin (* 6553.6 (the float sv-80))) f28-0)))
|
||||
(set! (-> s1-0 x) (+ (-> s5-0 x) (* (cos (* 6553.6 (the float (+ sv-80 1)))) f28-0)))
|
||||
(set! (-> s1-0 z) (+ (-> s5-0 z) (* (sin (* 6553.6 (the float (+ sv-80 1)))) f28-0)))
|
||||
(set! (-> s0-0 x) (+ (-> s5-0 x) (* (cos (* 6553.6 (the float sv-80))) f26-0)))
|
||||
(set! (-> s0-0 z) (+ (-> s5-0 z) (* (sin (* 6553.6 (the float sv-80))) f26-0)))
|
||||
(set! (-> arg0 point s4-0 quad) (-> s2-0 quad))
|
||||
(set! (-> arg0 point (+ s4-0 1) quad) (-> s1-0 quad))
|
||||
(set! (-> arg0 point (+ s4-0 2) quad) (-> s0-0 quad))
|
||||
(+! s4-0 3)
|
||||
(+! sv-80 1)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
+86
-109
@@ -164,9 +164,8 @@
|
||||
;; definition (debug) for function internal-draw-debug-line
|
||||
;; INFO: Used lq/sq
|
||||
(defun-debug internal-draw-debug-line ((arg0 bucket-id) (arg1 vector) (arg2 vector) (arg3 rgba) (arg4 symbol) (arg5 rgba))
|
||||
(local-vars (sv-80 vector))
|
||||
(set! sv-80 arg2)
|
||||
(let ((s2-0 arg3)
|
||||
(let ((sv-80 arg2)
|
||||
(s2-0 arg3)
|
||||
(s3-0 arg4)
|
||||
(s5-0 arg5)
|
||||
)
|
||||
@@ -358,17 +357,11 @@
|
||||
;; definition (debug) for function add-debug-triangle-normal
|
||||
;; INFO: Used lq/sq
|
||||
(defun-debug add-debug-triangle-normal ((arg0 symbol) (arg1 bucket-id) (arg2 vector) (arg3 vector) (arg4 vector) (arg5 rgba))
|
||||
(local-vars (sv-48 (function vector vector float vector)) (sv-64 vector) (sv-80 vector))
|
||||
(when arg0
|
||||
(let ((s4-0 (new 'stack-no-clear 'vector))
|
||||
(s3-0 (vector-3pt-cross! (new 'stack-no-clear 'vector) arg2 arg3 arg4))
|
||||
)
|
||||
(set! sv-48 vector-float/!)
|
||||
(set! sv-64 s3-0)
|
||||
(set! sv-80 s3-0)
|
||||
(let ((a2-2 (* 0.00024414062 (vector-length s3-0))))
|
||||
(sv-48 sv-64 sv-80 a2-2)
|
||||
)
|
||||
(vector-float/! s3-0 s3-0 (* 0.00024414062 (vector-length s3-0)))
|
||||
(vector+! s4-0 arg2 arg3)
|
||||
(vector+! s4-0 s4-0 arg4)
|
||||
(vector-float/! s4-0 s4-0 3.0)
|
||||
@@ -930,27 +923,28 @@
|
||||
;; INFO: Used lq/sq
|
||||
(defun-debug add-debug-circle ((arg0 symbol) (arg1 bucket-id) (arg2 vector) (arg3 float) (arg4 rgba) (arg5 matrix))
|
||||
"note: you may pass #f for orientation"
|
||||
(local-vars (sv-48 int) (sv-64 vector) (sv-80 vector))
|
||||
(if (not arg0)
|
||||
(return #f)
|
||||
)
|
||||
(let ((f30-0 0.0)
|
||||
(s1-0 (new-stack-vector0))
|
||||
(s0-0 (new-stack-vector0))
|
||||
(sv-48 0)
|
||||
)
|
||||
(set! sv-48 0)
|
||||
(while (< sv-48 12)
|
||||
(set! sv-64 s1-0)
|
||||
(set! (-> sv-64 x) (* arg3 (cos f30-0)))
|
||||
(set! (-> sv-64 y) 0.0)
|
||||
(set! (-> sv-64 z) (* arg3 (sin f30-0)))
|
||||
(set! (-> sv-64 w) 1.0)
|
||||
(let ((sv-64 s1-0))
|
||||
(set! (-> sv-64 x) (* arg3 (cos f30-0)))
|
||||
(set! (-> sv-64 y) 0.0)
|
||||
(set! (-> sv-64 z) (* arg3 (sin f30-0)))
|
||||
(set! (-> sv-64 w) 1.0)
|
||||
)
|
||||
(set! f30-0 (+ 5461.3335 f30-0))
|
||||
(set! sv-80 s0-0)
|
||||
(set! (-> sv-80 x) (* arg3 (cos f30-0)))
|
||||
(set! (-> sv-80 y) 0.0)
|
||||
(set! (-> sv-80 z) (* arg3 (sin f30-0)))
|
||||
(set! (-> sv-80 w) 1.0)
|
||||
(let ((sv-80 s0-0))
|
||||
(set! (-> sv-80 x) (* arg3 (cos f30-0)))
|
||||
(set! (-> sv-80 y) 0.0)
|
||||
(set! (-> sv-80 z) (* arg3 (sin f30-0)))
|
||||
(set! (-> sv-80 w) 1.0)
|
||||
)
|
||||
(when arg5
|
||||
(vector-matrix*! s1-0 s1-0 arg5)
|
||||
(vector-matrix*! s0-0 s0-0 arg5)
|
||||
@@ -958,7 +952,7 @@
|
||||
(vector+! s1-0 s1-0 arg2)
|
||||
(vector+! s0-0 s0-0 arg2)
|
||||
(add-debug-line #t arg1 s1-0 s0-0 arg4 #f (the-as rgba -1))
|
||||
(set! sv-48 (+ sv-48 1))
|
||||
(+! sv-48 1)
|
||||
)
|
||||
)
|
||||
#f
|
||||
@@ -1021,9 +1015,8 @@
|
||||
;; WARN: Stack slot offset 32 signed mismatch
|
||||
;; WARN: Stack slot load at 32 mismatch: defined as size 4, got size 16
|
||||
(defun-debug add-debug-yrot-vector ((arg0 symbol) (arg1 bucket-id) (arg2 vector) (arg3 float) (arg4 float) (arg5 rgba))
|
||||
(local-vars (sv-32 float))
|
||||
(set! sv-32 arg3)
|
||||
(let ((s0-0 arg4)
|
||||
(let ((sv-32 arg3)
|
||||
(s0-0 arg4)
|
||||
(s3-0 arg5)
|
||||
)
|
||||
(if (not arg0)
|
||||
@@ -1049,44 +1042,48 @@
|
||||
(arg7 matrix)
|
||||
)
|
||||
"note: you may pass #f for orientation"
|
||||
(local-vars (sv-48 vector) (sv-64 vector) (sv-80 int) (sv-96 vector) (sv-112 vector))
|
||||
(if (not arg0)
|
||||
(return #f)
|
||||
)
|
||||
(let ((f30-0 arg3))
|
||||
(set! sv-48 (new 'stack-no-clear 'vector))
|
||||
(let ((f30-0 arg3)
|
||||
(sv-48 (new 'stack-no-clear 'vector))
|
||||
)
|
||||
(set! (-> sv-48 quad) (the-as uint128 0))
|
||||
(set! sv-64 (new 'stack-no-clear 'vector))
|
||||
(set! (-> sv-64 quad) (the-as uint128 0))
|
||||
(set! sv-80 0)
|
||||
(while (< sv-80 12)
|
||||
(set! sv-96 sv-48)
|
||||
(set! (-> sv-96 x) (* arg5 (sin f30-0)))
|
||||
(set! (-> sv-96 y) 0.0)
|
||||
(set! (-> sv-96 z) (* arg5 (cos f30-0)))
|
||||
(set! (-> sv-96 w) 1.0)
|
||||
(+! f30-0 (the float (/ (the int (- arg4 arg3)) 12)))
|
||||
(set! sv-112 sv-64)
|
||||
(set! (-> sv-112 x) (* arg5 (sin f30-0)))
|
||||
(set! (-> sv-112 y) 0.0)
|
||||
(set! (-> sv-112 z) (* arg5 (cos f30-0)))
|
||||
(set! (-> sv-112 w) 1.0)
|
||||
(when arg7
|
||||
(vector-matrix*! sv-48 sv-48 arg7)
|
||||
(vector-matrix*! sv-64 sv-64 arg7)
|
||||
(let ((sv-64 (new 'stack-no-clear 'vector)))
|
||||
(set! (-> sv-64 quad) (the-as uint128 0))
|
||||
(let ((sv-80 0))
|
||||
(while (< sv-80 12)
|
||||
(let ((sv-96 sv-48))
|
||||
(set! (-> sv-96 x) (* arg5 (sin f30-0)))
|
||||
(set! (-> sv-96 y) 0.0)
|
||||
(set! (-> sv-96 z) (* arg5 (cos f30-0)))
|
||||
(set! (-> sv-96 w) 1.0)
|
||||
)
|
||||
(+! f30-0 (the float (/ (the int (- arg4 arg3)) 12)))
|
||||
(let ((sv-112 sv-64))
|
||||
(set! (-> sv-112 x) (* arg5 (sin f30-0)))
|
||||
(set! (-> sv-112 y) 0.0)
|
||||
(set! (-> sv-112 z) (* arg5 (cos f30-0)))
|
||||
(set! (-> sv-112 w) 1.0)
|
||||
)
|
||||
(when arg7
|
||||
(vector-matrix*! sv-48 sv-48 arg7)
|
||||
(vector-matrix*! sv-64 sv-64 arg7)
|
||||
)
|
||||
(vector+! sv-48 sv-48 arg2)
|
||||
(vector+! sv-64 sv-64 arg2)
|
||||
(add-debug-line #t arg1 sv-48 sv-64 arg6 #f (the-as rgba -1))
|
||||
(cond
|
||||
((zero? sv-80)
|
||||
(add-debug-line #t arg1 sv-48 arg2 arg6 #f (the-as rgba -1))
|
||||
)
|
||||
((= sv-80 11)
|
||||
(add-debug-line #t arg1 sv-64 arg2 arg6 #f (the-as rgba -1))
|
||||
)
|
||||
)
|
||||
(+! sv-80 1)
|
||||
)
|
||||
)
|
||||
(vector+! sv-48 sv-48 arg2)
|
||||
(vector+! sv-64 sv-64 arg2)
|
||||
(add-debug-line #t arg1 sv-48 sv-64 arg6 #f (the-as rgba -1))
|
||||
(cond
|
||||
((zero? sv-80)
|
||||
(add-debug-line #t arg1 sv-48 arg2 arg6 #f (the-as rgba -1))
|
||||
)
|
||||
((= sv-80 11)
|
||||
(add-debug-line #t arg1 sv-64 arg2 arg6 #f (the-as rgba -1))
|
||||
)
|
||||
)
|
||||
(set! sv-80 (+ sv-80 1))
|
||||
)
|
||||
)
|
||||
#f
|
||||
@@ -1102,21 +1099,23 @@
|
||||
(arg5 int)
|
||||
(arg6 rgba)
|
||||
)
|
||||
(local-vars (sv-48 vector) (sv-64 int) (sv-80 int))
|
||||
(if (not arg0)
|
||||
(return #f)
|
||||
)
|
||||
(let ((s0-0 (new-stack-vector0)))
|
||||
(set! sv-48 (new 'stack-no-clear 'vector))
|
||||
(let ((s0-0 (new-stack-vector0))
|
||||
(sv-48 (new 'stack-no-clear 'vector))
|
||||
)
|
||||
(set! (-> sv-48 quad) (the-as uint128 0))
|
||||
(set! sv-64 (* arg3 4))
|
||||
(curve-evaluate! sv-48 (-> arg4 0) arg2 arg3 arg4 arg5)
|
||||
(set! sv-80 0)
|
||||
(while (< sv-80 sv-64)
|
||||
(set! (-> s0-0 quad) (-> sv-48 quad))
|
||||
(curve-evaluate! sv-48 (/ (the float (+ sv-80 1)) (the float sv-64)) arg2 arg3 arg4 arg5)
|
||||
(add-debug-line #t arg1 s0-0 sv-48 arg6 #f (the-as rgba -1))
|
||||
(set! sv-80 (+ sv-80 1))
|
||||
(let ((sv-64 (* arg3 4)))
|
||||
(curve-evaluate! sv-48 (-> arg4 0) arg2 arg3 arg4 arg5)
|
||||
(let ((sv-80 0))
|
||||
(while (< sv-80 sv-64)
|
||||
(set! (-> s0-0 quad) (-> sv-48 quad))
|
||||
(curve-evaluate! sv-48 (/ (the float (+ sv-80 1)) (the float sv-64)) arg2 arg3 arg4 arg5)
|
||||
(add-debug-line #t arg1 s0-0 sv-48 arg6 #f (the-as rgba -1))
|
||||
(+! sv-80 1)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
#f
|
||||
@@ -1133,48 +1132,26 @@
|
||||
;; definition (debug) for function add-debug-points
|
||||
;; INFO: Used lq/sq
|
||||
(defun-debug add-debug-points ((arg0 symbol) (arg1 bucket-id) (arg2 (inline-array vector)) (arg3 int) (arg4 rgba) (arg5 float) (arg6 int))
|
||||
(local-vars
|
||||
(sv-32 (function symbol bucket-id string vector font-color vector2h symbol))
|
||||
(sv-48 symbol)
|
||||
(sv-64 bucket-id)
|
||||
(sv-80 (function _varargs_ object))
|
||||
(sv-96 vector)
|
||||
)
|
||||
(when arg0
|
||||
(dotimes (s0-0 arg3)
|
||||
(set! sv-96 (new 'stack-no-clear 'vector))
|
||||
(set! (-> sv-96 quad) (the-as uint128 0))
|
||||
(set! (-> sv-96 quad) (-> arg2 s0-0 quad))
|
||||
(if (!= arg5 0.0)
|
||||
(set! (-> sv-96 y) arg5)
|
||||
(let ((sv-96 (new 'stack-no-clear 'vector)))
|
||||
(set! (-> sv-96 quad) (the-as uint128 0))
|
||||
(set! (-> sv-96 quad) (-> arg2 s0-0 quad))
|
||||
(if (!= arg5 0.0)
|
||||
(set! (-> sv-96 y) arg5)
|
||||
)
|
||||
(let ((sv-32 add-debug-text-3d)
|
||||
(sv-48 #t)
|
||||
(sv-64 arg1)
|
||||
)
|
||||
(format (clear *temp-string*) "~d" s0-0)
|
||||
(sv-32 sv-48 sv-64 *temp-string* sv-96 (font-color white) (the-as vector2h #f))
|
||||
)
|
||||
(set! sv-32 add-debug-text-3d)
|
||||
(set! sv-48 #t)
|
||||
(set! sv-64 arg1)
|
||||
(set! sv-80 format)
|
||||
(let ((a0-5 (clear *temp-string*))
|
||||
(a1-1 "~d")
|
||||
(a2-1 s0-0)
|
||||
)
|
||||
(sv-80 a0-5 a1-1 a2-1)
|
||||
)
|
||||
(let ((a2-2 *temp-string*)
|
||||
(a3-1 sv-96)
|
||||
(t0-1 1)
|
||||
(t1-1 #f)
|
||||
)
|
||||
(sv-32 sv-48 sv-64 a2-2 a3-1 (the-as font-color t0-1) (the-as vector2h t1-1))
|
||||
)
|
||||
(let ((t9-3 add-debug-x)
|
||||
(a0-7 #t)
|
||||
(a1-3 arg1)
|
||||
(a3-2 (if (= s0-0 arg6)
|
||||
(new 'static 'rgba :r #xff :g #xff :b #xff :a #x80)
|
||||
arg4
|
||||
)
|
||||
)
|
||||
)
|
||||
(t9-3 a0-7 a1-3 sv-96 a3-2)
|
||||
(add-debug-x #t arg1 sv-96 (if (= s0-0 arg6)
|
||||
(new 'static 'rgba :r #xff :g #xff :b #xff :a #x80)
|
||||
arg4
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
+16
-22
@@ -305,7 +305,6 @@
|
||||
;; INFO: Used lq/sq
|
||||
;; INFO: Return type mismatch memory-usage-block vs none.
|
||||
(defmethod print-mem-usage ((this memory-usage-block) (arg0 level) (arg1 object))
|
||||
(local-vars (sv-16 object) (sv-32 string) (sv-48 symbol) (sv-64 int) (sv-80 int))
|
||||
(let ((s3-0 (&- (-> arg0 heap current) (the-as uint (-> arg0 heap base)))))
|
||||
(let ((v1-2 (+ (-> this data 59 total) (-> this data 60 total))))
|
||||
(< #x10000 v1-2)
|
||||
@@ -317,18 +316,14 @@
|
||||
(if (< s2-0 (-> arg0 mem-usage))
|
||||
(format arg1 "~3L")
|
||||
)
|
||||
(let ((s0-0 format))
|
||||
(set! sv-16 arg1)
|
||||
(set! sv-32 "~0K~10,'-S--~5,'-DK-of-~5,'-DK--~5,'-DK-of-~5,'-DK--")
|
||||
(set! sv-48 (-> arg0 name))
|
||||
(let ((s3-1 (sar s3-0 10))
|
||||
(s2-1 (sar s2-0 10))
|
||||
)
|
||||
(set! sv-64 (sar (memory-used *nk-dead-pool*) 10))
|
||||
(let ((t2-0 (sar (memory-total *nk-dead-pool*) 10)))
|
||||
(s0-0 sv-16 sv-32 sv-48 s3-1 s2-1 sv-64 t2-0)
|
||||
)
|
||||
)
|
||||
(format
|
||||
arg1
|
||||
"~0K~10,'-S--~5,'-DK-of-~5,'-DK--~5,'-DK-of-~5,'-DK--"
|
||||
(-> arg0 name)
|
||||
(sar s3-0 10)
|
||||
(sar s2-0 10)
|
||||
(sar (memory-used *nk-dead-pool*) 10)
|
||||
(sar (memory-total *nk-dead-pool*) 10)
|
||||
)
|
||||
(format arg1 "~5,'-DK/~5,'-DK--~%" (shr s1-0 10) (sar *max-dma* 10))
|
||||
)
|
||||
@@ -339,16 +334,15 @@
|
||||
arg1
|
||||
)
|
||||
)
|
||||
(s3-2 format)
|
||||
(s1-1 "heap-~5,'-DK/~5,'-DK----~D---~D/~D~%")
|
||||
(s0-1 (sar (memory-used *nk-dead-pool*) 10))
|
||||
)
|
||||
(set! sv-80 (sar (memory-total *nk-dead-pool*) 10))
|
||||
(let ((t0-1 (compact-time *nk-dead-pool*))
|
||||
(t1-1 (-> *nk-dead-pool* compact-count))
|
||||
(t2-1 (-> *nk-dead-pool* compact-count-targ))
|
||||
)
|
||||
(s3-2 s2-2 s1-1 s0-1 sv-80 t0-1 t1-1 t2-1)
|
||||
(format
|
||||
s2-2
|
||||
"heap-~5,'-DK/~5,'-DK----~D---~D/~D~%"
|
||||
(sar (memory-used *nk-dead-pool*) 10)
|
||||
(sar (memory-total *nk-dead-pool*) 10)
|
||||
(compact-time *nk-dead-pool*)
|
||||
(-> *nk-dead-pool* compact-count)
|
||||
(-> *nk-dead-pool* compact-count-targ)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
+42
-67
@@ -626,7 +626,7 @@
|
||||
;; WARN: Stack slot load at 80 mismatch: defined as size 4, got size 16
|
||||
;; WARN: Stack slot load at 96 mismatch: defined as size 4, got size 16
|
||||
(defun debug-menu-make-from-template ((arg0 debug-menu-context) (arg1 pair))
|
||||
(local-vars (s5-0 basic) (sv-16 object) (sv-32 int) (sv-48 float) (sv-64 float) (sv-80 float) (sv-96 float))
|
||||
(local-vars (s5-0 basic))
|
||||
(when (or (not arg1) (null? arg1))
|
||||
(set! s5-0 #f)
|
||||
(goto cfg-41)
|
||||
@@ -704,18 +704,14 @@
|
||||
(set! s5-0
|
||||
(new 'debug 'debug-menu-item-var s5-1 (the-as int (car (cdr (cdr arg1)))) (the-as int (ref arg1 4)))
|
||||
)
|
||||
(let ((s3-4 debug-menu-item-var-make-int)
|
||||
(s2-3 (the-as debug-menu-item-var s5-0))
|
||||
(s1-3 (debug-menu-func-decode (car (cdr (cdr (cdr arg1))))))
|
||||
(s0-1 (/ (the-as int (ref arg1 5)) 8))
|
||||
)
|
||||
(set! sv-16 (ref arg1 6))
|
||||
(set! sv-32 (/ (the-as int (ref arg1 7)) 8))
|
||||
(let ((t1-0 (/ (the-as int (ref arg1 8)) 8))
|
||||
(t2-0 (= s4-0 'hex-var))
|
||||
)
|
||||
(s3-4 s2-3 (the-as (function int debug-menu-msg int int int) s1-3) s0-1 (the-as symbol sv-16) sv-32 t1-0 t2-0)
|
||||
)
|
||||
(debug-menu-item-var-make-int
|
||||
(the-as debug-menu-item-var s5-0)
|
||||
(the-as (function int debug-menu-msg int int int) (debug-menu-func-decode (car (cdr (cdr (cdr arg1))))))
|
||||
(/ (the-as int (ref arg1 5)) 8)
|
||||
(the-as symbol (ref arg1 6))
|
||||
(/ (the-as int (ref arg1 7)) 8)
|
||||
(/ (the-as int (ref arg1 8)) 8)
|
||||
(= s4-0 'hex-var)
|
||||
)
|
||||
(set! (-> (the-as debug-menu-item-var s5-0) ifloat-p) #t)
|
||||
s5-0
|
||||
@@ -724,25 +720,14 @@
|
||||
(set! s5-0
|
||||
(new 'debug 'debug-menu-item-var s5-1 (the-as int (car (cdr (cdr arg1)))) (the-as int (ref arg1 4)))
|
||||
)
|
||||
(let ((s4-5 debug-menu-item-var-make-float)
|
||||
(s3-6 (the-as debug-menu-item-var s5-0))
|
||||
(s2-5 (debug-menu-func-decode (car (cdr (cdr (cdr arg1))))))
|
||||
(s1-5 (the float (/ (the-as int (ref arg1 5)) 8)))
|
||||
(s0-2 (ref arg1 6))
|
||||
)
|
||||
(set! sv-48 (the float (/ (the-as int (ref arg1 7)) 8)))
|
||||
(set! sv-64 (the float (/ (the-as int (ref arg1 8)) 8)))
|
||||
(let ((t2-1 (/ (the-as int (ref arg1 9)) 8)))
|
||||
(s4-5
|
||||
s3-6
|
||||
(the-as (function int debug-menu-msg float float float) s2-5)
|
||||
s1-5
|
||||
(the-as symbol s0-2)
|
||||
sv-48
|
||||
sv-64
|
||||
t2-1
|
||||
)
|
||||
)
|
||||
(debug-menu-item-var-make-float
|
||||
(the-as debug-menu-item-var s5-0)
|
||||
(the-as (function int debug-menu-msg float float float) (debug-menu-func-decode (car (cdr (cdr (cdr arg1))))))
|
||||
(the float (/ (the-as int (ref arg1 5)) 8))
|
||||
(the-as symbol (ref arg1 6))
|
||||
(the float (/ (the-as int (ref arg1 7)) 8))
|
||||
(the float (/ (the-as int (ref arg1 8)) 8))
|
||||
(/ (the-as int (ref arg1 9)) 8)
|
||||
)
|
||||
s5-0
|
||||
)
|
||||
@@ -750,25 +735,14 @@
|
||||
(set! s5-0
|
||||
(new 'debug 'debug-menu-item-var s5-1 (the-as int (car (cdr (cdr arg1)))) (the-as int (ref arg1 4)))
|
||||
)
|
||||
(let ((s4-7 debug-menu-item-var-make-float)
|
||||
(s3-8 (the-as debug-menu-item-var s5-0))
|
||||
(s2-7 (debug-menu-func-decode (car (cdr (cdr (cdr arg1))))))
|
||||
(s1-7 (* 0.001 (the float (/ (the-as int (ref arg1 5)) 8))))
|
||||
(s0-3 (ref arg1 6))
|
||||
)
|
||||
(set! sv-80 (* 0.001 (the float (/ (the-as int (ref arg1 7)) 8))))
|
||||
(set! sv-96 (* 0.001 (the float (/ (the-as int (ref arg1 8)) 8))))
|
||||
(let ((t2-2 (/ (the-as int (ref arg1 9)) 8)))
|
||||
(s4-7
|
||||
s3-8
|
||||
(the-as (function int debug-menu-msg float float float) s2-7)
|
||||
s1-7
|
||||
(the-as symbol s0-3)
|
||||
sv-80
|
||||
sv-96
|
||||
t2-2
|
||||
)
|
||||
)
|
||||
(debug-menu-item-var-make-float
|
||||
(the-as debug-menu-item-var s5-0)
|
||||
(the-as (function int debug-menu-msg float float float) (debug-menu-func-decode (car (cdr (cdr (cdr arg1))))))
|
||||
(* 0.001 (the float (/ (the-as int (ref arg1 5)) 8)))
|
||||
(the-as symbol (ref arg1 6))
|
||||
(* 0.001 (the float (/ (the-as int (ref arg1 7)) 8)))
|
||||
(* 0.001 (the float (/ (the-as int (ref arg1 8)) 8)))
|
||||
(/ (the-as int (ref arg1 9)) 8)
|
||||
)
|
||||
s5-0
|
||||
)
|
||||
@@ -1059,7 +1033,6 @@
|
||||
;; definition for function debug-menu-render
|
||||
;; INFO: Used lq/sq
|
||||
(defun debug-menu-render ((arg0 debug-menu) (arg1 int) (arg2 int) (arg3 debug-menu-node) (arg4 int))
|
||||
(local-vars (sv-16 dma-buffer) (sv-32 pointer))
|
||||
(let ((v1-0 0))
|
||||
(let* ((a0-1 (-> arg0 items))
|
||||
(a1-1 (car a0-1))
|
||||
@@ -1110,21 +1083,23 @@
|
||||
)
|
||||
)
|
||||
(set-origin! (-> arg0 context font) s3-1 s2-1)
|
||||
(set! sv-16 (-> *display* frames (-> *display* on-screen) frame debug-buf))
|
||||
(set! sv-32 (-> sv-16 base))
|
||||
(draw-string ">" sv-16 (-> arg0 context font))
|
||||
(let ((a3-3 (-> sv-16 base)))
|
||||
(let ((v1-26 (the-as object (-> sv-16 base))))
|
||||
(set! (-> (the-as dma-packet v1-26) dma) (new 'static 'dma-tag :id (dma-tag-id next)))
|
||||
(set! (-> (the-as dma-packet v1-26) vif0) (new 'static 'vif-tag))
|
||||
(set! (-> (the-as dma-packet v1-26) vif1) (new 'static 'vif-tag))
|
||||
(set! (-> sv-16 base) (&+ (the-as pointer v1-26) 16))
|
||||
)
|
||||
(dma-bucket-insert-tag
|
||||
(-> *display* frames (-> *display* on-screen) frame bucket-group)
|
||||
(bucket-id debug-no-zbuf)
|
||||
sv-32
|
||||
(the-as (pointer dma-tag) a3-3)
|
||||
(let* ((sv-16 (-> *display* frames (-> *display* on-screen) frame debug-buf))
|
||||
(sv-32 (-> sv-16 base))
|
||||
)
|
||||
(draw-string ">" sv-16 (-> arg0 context font))
|
||||
(let ((a3-3 (-> sv-16 base)))
|
||||
(let ((v1-26 (the-as object (-> sv-16 base))))
|
||||
(set! (-> (the-as dma-packet v1-26) dma) (new 'static 'dma-tag :id (dma-tag-id next)))
|
||||
(set! (-> (the-as dma-packet v1-26) vif0) (new 'static 'vif-tag))
|
||||
(set! (-> (the-as dma-packet v1-26) vif1) (new 'static 'vif-tag))
|
||||
(set! (-> sv-16 base) (&+ (the-as pointer v1-26) 16))
|
||||
)
|
||||
(dma-bucket-insert-tag
|
||||
(-> *display* frames (-> *display* on-screen) frame bucket-group)
|
||||
(bucket-id debug-no-zbuf)
|
||||
sv-32
|
||||
(the-as (pointer dma-tag) a3-3)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
+5
-7
@@ -213,20 +213,18 @@
|
||||
;; definition for function add-a-bunch
|
||||
;; INFO: Used lq/sq
|
||||
(defun add-a-bunch ((arg0 string) (arg1 int) (arg2 int) (arg3 float))
|
||||
(local-vars (sv-32 process))
|
||||
(dotimes (s2-0 arg1)
|
||||
(dotimes (s1-0 arg2)
|
||||
(let ((s0-0 (new-stack-vector0)))
|
||||
(position-in-front-of-camera! s0-0 40960.0 4096.0)
|
||||
(+! (-> s0-0 x) (the float (* (- s2-0 (/ arg1 2)) (the int arg3))))
|
||||
(+! (-> s0-0 z) (the float (* (- s1-0 (/ arg2 2)) (the int arg3))))
|
||||
(set! sv-32 (get-process *default-dead-pool* viewer #x4000))
|
||||
(when sv-32
|
||||
(let ((t9-2 (method-of-type viewer activate)))
|
||||
(t9-2 (the-as viewer sv-32) *entity-pool* 'viewer (the-as pointer #x70004000))
|
||||
(let ((sv-32 (get-process *default-dead-pool* viewer #x4000)))
|
||||
(when sv-32
|
||||
((method-of-type viewer activate) (the-as viewer sv-32) *entity-pool* 'viewer (the-as pointer #x70004000))
|
||||
(run-now-in-process sv-32 init-viewer-for-other arg0 s0-0)
|
||||
(-> sv-32 ppointer)
|
||||
)
|
||||
(run-now-in-process sv-32 init-viewer-for-other arg0 s0-0)
|
||||
(-> sv-32 ppointer)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
+266
-270
@@ -303,138 +303,141 @@
|
||||
;; definition for function disasm-vif-tag
|
||||
;; INFO: Used lq/sq
|
||||
(defun disasm-vif-tag ((data (pointer vif-tag)) (words int) (stream symbol) (details symbol))
|
||||
(local-vars (cmd vif-cmd) (data-ptr (pointer vif-tag)) (data-idx int) (unpack-imm vif-unpack-imm))
|
||||
(let ((byte-idx 0))
|
||||
(while (< byte-idx (* words 4))
|
||||
(let ((packet-size 4))
|
||||
(let ((first-tag (-> data 0)))
|
||||
(format stream " #x~X:" data)
|
||||
(dotimes (cmd-template-idx (-> *vif-disasm-table* length))
|
||||
(set! cmd (-> first-tag cmd))
|
||||
(when (= (logand cmd (-> *vif-disasm-table* cmd-template-idx mask)) (-> *vif-disasm-table* cmd-template-idx tag))
|
||||
(let ((print-kind (-> *vif-disasm-table* cmd-template-idx print)))
|
||||
(cond
|
||||
((zero? print-kind)
|
||||
(format stream " (~s :irq ~D)~%" (-> *vif-disasm-table* cmd-template-idx string1) (-> first-tag irq))
|
||||
)
|
||||
((= print-kind 1)
|
||||
(format
|
||||
stream
|
||||
" (~s :irq ~D :~s #x~X)~%"
|
||||
(-> *vif-disasm-table* cmd-template-idx string1)
|
||||
(-> first-tag irq)
|
||||
(-> *vif-disasm-table* cmd-template-idx string2)
|
||||
(-> first-tag imm)
|
||||
(let ((cmd (-> first-tag cmd)))
|
||||
(when (= (logand cmd (-> *vif-disasm-table* cmd-template-idx mask)) (-> *vif-disasm-table* cmd-template-idx tag))
|
||||
(let ((print-kind (-> *vif-disasm-table* cmd-template-idx print)))
|
||||
(cond
|
||||
((zero? print-kind)
|
||||
(format stream " (~s :irq ~D)~%" (-> *vif-disasm-table* cmd-template-idx string1) (-> first-tag irq))
|
||||
)
|
||||
)
|
||||
((= print-kind 2)
|
||||
(let ((stcycl-imm (the-as vif-stcycl-imm (-> first-tag imm))))
|
||||
((= print-kind 1)
|
||||
(format
|
||||
stream
|
||||
" (~s :irq ~D :wl ~D :cl ~D)~%"
|
||||
" (~s :irq ~D :~s #x~X)~%"
|
||||
(-> *vif-disasm-table* cmd-template-idx string1)
|
||||
(-> first-tag irq)
|
||||
(-> stcycl-imm wl)
|
||||
(-> stcycl-imm cl)
|
||||
(-> *vif-disasm-table* cmd-template-idx string2)
|
||||
(-> first-tag imm)
|
||||
)
|
||||
)
|
||||
)
|
||||
((= print-kind 3)
|
||||
(set! packet-size 8)
|
||||
(format
|
||||
stream
|
||||
" (~s :irq ~D :~s #x~X)~%"
|
||||
(-> *vif-disasm-table* cmd-template-idx string1)
|
||||
(-> first-tag irq)
|
||||
(-> *vif-disasm-table* cmd-template-idx string2)
|
||||
(-> data 1)
|
||||
)
|
||||
)
|
||||
((= print-kind 4)
|
||||
(set! packet-size 20)
|
||||
(format
|
||||
stream
|
||||
" (~s :irq ~D :~s "
|
||||
(-> *vif-disasm-table* cmd-template-idx string1)
|
||||
(-> first-tag irq)
|
||||
(-> *vif-disasm-table* cmd-template-idx string2)
|
||||
)
|
||||
(format stream "#x~X #x~X #x~X #x~X)~%" (-> data 1) (-> data 2) (-> data 3) (-> data 4))
|
||||
)
|
||||
((= print-kind 5)
|
||||
(format
|
||||
stream
|
||||
" (~s :irq ~D :instructions #x~D :addr #x~X)~%"
|
||||
(-> *vif-disasm-table* cmd-template-idx string1)
|
||||
(-> first-tag irq)
|
||||
(-> first-tag num)
|
||||
(-> first-tag imm)
|
||||
)
|
||||
)
|
||||
((= print-kind 6)
|
||||
(if (-> first-tag imm)
|
||||
(set! packet-size #x100000)
|
||||
(set! packet-size (the-as int (* (-> first-tag imm) 16)))
|
||||
((= print-kind 2)
|
||||
(let ((stcycl-imm (the-as vif-stcycl-imm (-> first-tag imm))))
|
||||
(format
|
||||
stream
|
||||
" (~s :irq ~D :wl ~D :cl ~D)~%"
|
||||
(-> *vif-disasm-table* cmd-template-idx string1)
|
||||
(-> first-tag irq)
|
||||
(-> stcycl-imm wl)
|
||||
(-> stcycl-imm cl)
|
||||
)
|
||||
)
|
||||
(format
|
||||
stream
|
||||
" (~s :irq ~D :qwc #x~D)~%"
|
||||
(-> *vif-disasm-table* cmd-template-idx string1)
|
||||
(-> first-tag irq)
|
||||
(-> first-tag imm)
|
||||
)
|
||||
(set! data-ptr (&-> data 1))
|
||||
(set! data-idx 0)
|
||||
(while (< data-idx (the-as int (-> first-tag imm)))
|
||||
((= print-kind 3)
|
||||
(set! packet-size 8)
|
||||
(format
|
||||
stream
|
||||
" #x~X: #x~8x #x~8x #x~8x #x~8x~%"
|
||||
(+ (+ (* data-idx 16) 4) (the-as int data))
|
||||
(-> data-ptr (* data-idx 4))
|
||||
(-> data-ptr (+ (* data-idx 4) 1))
|
||||
(-> data-ptr (+ (* data-idx 4) 2))
|
||||
(-> data-ptr (+ (* data-idx 4) 3))
|
||||
" (~s :irq ~D :~s #x~X)~%"
|
||||
(-> *vif-disasm-table* cmd-template-idx string1)
|
||||
(-> first-tag irq)
|
||||
(-> *vif-disasm-table* cmd-template-idx string2)
|
||||
(-> data 1)
|
||||
)
|
||||
(set! data-idx (+ data-idx 1))
|
||||
)
|
||||
#f
|
||||
)
|
||||
((= print-kind 7)
|
||||
(set! packet-size
|
||||
(the-as int (+ (logand -4 (+ (* (-> *vif-disasm-table* cmd-template-idx val) (-> first-tag num)) 3)) 4))
|
||||
((= print-kind 4)
|
||||
(set! packet-size 20)
|
||||
(format
|
||||
stream
|
||||
" (~s :irq ~D :~s "
|
||||
(-> *vif-disasm-table* cmd-template-idx string1)
|
||||
(-> first-tag irq)
|
||||
(-> *vif-disasm-table* cmd-template-idx string2)
|
||||
)
|
||||
(format stream "#x~X #x~X #x~X #x~X)~%" (-> data 1) (-> data 2) (-> data 3) (-> data 4))
|
||||
)
|
||||
((= print-kind 5)
|
||||
(format
|
||||
stream
|
||||
" (~s :irq ~D :instructions #x~D :addr #x~X)~%"
|
||||
(-> *vif-disasm-table* cmd-template-idx string1)
|
||||
(-> first-tag irq)
|
||||
(-> first-tag num)
|
||||
(-> first-tag imm)
|
||||
)
|
||||
)
|
||||
((= print-kind 6)
|
||||
(if (-> first-tag imm)
|
||||
(set! packet-size #x100000)
|
||||
(set! packet-size (the-as int (* (-> first-tag imm) 16)))
|
||||
)
|
||||
(set! unpack-imm (the-as vif-unpack-imm (-> first-tag imm)))
|
||||
(format
|
||||
stream
|
||||
" (~s :irq ~D :num ~D :addr #x~X "
|
||||
(-> *vif-disasm-table* cmd-template-idx string1)
|
||||
(-> first-tag irq)
|
||||
(-> first-tag num)
|
||||
(-> unpack-imm addr)
|
||||
(format
|
||||
stream
|
||||
" (~s :irq ~D :qwc #x~D)~%"
|
||||
(-> *vif-disasm-table* cmd-template-idx string1)
|
||||
(-> first-tag irq)
|
||||
(-> first-tag imm)
|
||||
)
|
||||
(let ((data-ptr (&-> data 1))
|
||||
(data-idx 0)
|
||||
)
|
||||
(while (< data-idx (the-as int (-> first-tag imm)))
|
||||
(format
|
||||
stream
|
||||
" #x~X: #x~8x #x~8x #x~8x #x~8x~%"
|
||||
(+ (+ (* data-idx 16) 4) (the-as int data))
|
||||
(-> data-ptr (* data-idx 4))
|
||||
(-> data-ptr (+ (* data-idx 4) 1))
|
||||
(-> data-ptr (+ (* data-idx 4) 2))
|
||||
(-> data-ptr (+ (* data-idx 4) 3))
|
||||
)
|
||||
(+! data-idx 1)
|
||||
)
|
||||
)
|
||||
#f
|
||||
)
|
||||
(format
|
||||
stream
|
||||
":msk ~D :flg ~D :usn ~D [skip ~d])~%"
|
||||
(-> first-tag msk)
|
||||
(-> unpack-imm flg)
|
||||
(-> unpack-imm usn)
|
||||
(the-as uint packet-size)
|
||||
)
|
||||
(if details
|
||||
(disasm-vif-details
|
||||
((= print-kind 7)
|
||||
(set! packet-size
|
||||
(the-as int (+ (logand -4 (+ (* (-> *vif-disasm-table* cmd-template-idx val) (-> first-tag num)) 3)) 4))
|
||||
)
|
||||
(let ((unpack-imm (the-as vif-unpack-imm (-> first-tag imm))))
|
||||
(format
|
||||
stream
|
||||
(the-as (pointer uint8) data)
|
||||
(logand cmd (vif-cmd cmd-mask))
|
||||
(the-as int (-> first-tag num))
|
||||
" (~s :irq ~D :num ~D :addr #x~X "
|
||||
(-> *vif-disasm-table* cmd-template-idx string1)
|
||||
(-> first-tag irq)
|
||||
(-> first-tag num)
|
||||
(-> unpack-imm addr)
|
||||
)
|
||||
(format
|
||||
stream
|
||||
":msk ~D :flg ~D :usn ~D [skip ~d])~%"
|
||||
(-> first-tag msk)
|
||||
(-> unpack-imm flg)
|
||||
(-> unpack-imm usn)
|
||||
(the-as uint packet-size)
|
||||
)
|
||||
)
|
||||
)
|
||||
((= print-kind 8)
|
||||
(format stream " (*unknown* vif-tag #x~X)~%" (-> first-tag cmd))
|
||||
)
|
||||
(if details
|
||||
(disasm-vif-details
|
||||
stream
|
||||
(the-as (pointer uint8) data)
|
||||
(logand cmd (vif-cmd cmd-mask))
|
||||
(the-as int (-> first-tag num))
|
||||
)
|
||||
)
|
||||
)
|
||||
((= print-kind 8)
|
||||
(format stream " (*unknown* vif-tag #x~X)~%" (-> first-tag cmd))
|
||||
)
|
||||
)
|
||||
)
|
||||
(set! cmd-template-idx (-> *vif-disasm-table* length))
|
||||
)
|
||||
(set! cmd-template-idx (-> *vif-disasm-table* length))
|
||||
)
|
||||
)
|
||||
)
|
||||
@@ -512,17 +515,8 @@
|
||||
;; WARN: Check prologue - tricky store of a0
|
||||
;; INFO: Used lq/sq
|
||||
(defun disasm-dma-list ((data dma-packet) (mode symbol) (verbose symbol) (stream symbol) (expected-size int))
|
||||
(local-vars
|
||||
(addr object)
|
||||
(data-2 dma-packet)
|
||||
(qwc int)
|
||||
(ra-1 object)
|
||||
(ra-2 object)
|
||||
(call-depth int)
|
||||
(current-tag dma-tag)
|
||||
)
|
||||
(set! data-2 data)
|
||||
(let ((mode-2 mode)
|
||||
(let ((data-2 data)
|
||||
(mode-2 mode)
|
||||
(verbose-2 verbose)
|
||||
(stream-2 stream)
|
||||
(expected-size-2 expected-size)
|
||||
@@ -534,174 +528,176 @@
|
||||
(let ((total-qwc 0)
|
||||
(total-tags 0)
|
||||
)
|
||||
(set! addr 0)
|
||||
(set! qwc 0)
|
||||
(set! ra-1 0)
|
||||
(set! ra-2 1)
|
||||
(set! call-depth -1)
|
||||
(set! current-tag (new 'static 'dma-tag))
|
||||
(while (not end-condition)
|
||||
(cond
|
||||
((not (valid? data-2 (the-as type #f) "dma-list tag pointer" #t stream-2))
|
||||
(format stream-2 "ERROR: dma-list tag pointer invalid~%")
|
||||
(set! end-condition 'error)
|
||||
)
|
||||
(else
|
||||
(set! current-tag (-> data-2 dma))
|
||||
(when (not (or (zero? total-tags) (valid? addr (the-as type #f) "dma-list data pointer" #t stream-2)))
|
||||
(format stream-2 "ERROR: dma-list data pointer invalid~%")
|
||||
(set! end-condition 'error)
|
||||
)
|
||||
(when (logtest? (the-as dma-tag #x3ff0000) current-tag)
|
||||
(format stream-2 "ERROR: dma tag has data in reserved bits ~X~%")
|
||||
(set! end-condition 'error)
|
||||
)
|
||||
(let ((addr 0)
|
||||
(qwc 0)
|
||||
(ra-1 0)
|
||||
(ra-2 1)
|
||||
(call-depth -1)
|
||||
(current-tag (new 'static 'dma-tag))
|
||||
)
|
||||
)
|
||||
(when (or verbose-2 (= end-condition 'error))
|
||||
(format stream-2 "#x~8x: " data-2)
|
||||
(while (not end-condition)
|
||||
(cond
|
||||
((zero? call-depth)
|
||||
(format stream-2 " ")
|
||||
)
|
||||
((= call-depth 1)
|
||||
(format stream-2 " ")
|
||||
)
|
||||
)
|
||||
(disasm-dma-tag current-tag stream-2)
|
||||
)
|
||||
(cond
|
||||
(end-condition
|
||||
)
|
||||
((or (= (-> current-tag id) (dma-tag-id ref))
|
||||
(= (-> current-tag id) (dma-tag-id refs))
|
||||
(zero? (-> current-tag id))
|
||||
)
|
||||
(set! addr (-> current-tag addr))
|
||||
(set! qwc (the-as int (-> current-tag qwc)))
|
||||
(when mode-2
|
||||
(let ((v0-10 (disasm-vif-tag (&-> data-2 vif0) 2 stream-2 (= mode-2 'details))))
|
||||
(disasm-vif-tag
|
||||
(the-as (pointer vif-tag) (+ addr v0-10))
|
||||
(the-as int (- (* qwc 4) (the-as uint (/ v0-10 4))))
|
||||
stream-2
|
||||
(= mode-2 'details)
|
||||
)
|
||||
)
|
||||
)
|
||||
(set! data-2 (the-as dma-packet (&-> (the-as (pointer uint64) data-2) 2)))
|
||||
(if (= (-> current-tag id) (dma-tag-id refe))
|
||||
(set! end-condition #t)
|
||||
)
|
||||
)
|
||||
((= (-> current-tag id) (dma-tag-id cnt))
|
||||
(set! addr (&-> (the-as (pointer uint64) data-2) 2))
|
||||
(set! qwc (the-as int (-> current-tag qwc)))
|
||||
(if mode-2
|
||||
(disasm-vif-tag
|
||||
(the-as (pointer vif-tag) (&-> (the-as (pointer uint64) data-2) 1))
|
||||
(the-as int (+ (* qwc 4) 2))
|
||||
stream-2
|
||||
(= mode-2 'details)
|
||||
)
|
||||
)
|
||||
(set! data-2 (the-as dma-packet (+ (the-as uint data-2) (* (+ qwc 1) 16))))
|
||||
data-2
|
||||
)
|
||||
((= (-> current-tag id) (dma-tag-id next))
|
||||
(set! addr (&-> (the-as (pointer uint64) data-2) 2))
|
||||
(set! qwc (the-as int (-> current-tag qwc)))
|
||||
(if mode-2
|
||||
(disasm-vif-tag
|
||||
(the-as (pointer vif-tag) (&-> (the-as (pointer uint64) data-2) 1))
|
||||
(the-as int (+ (* qwc 4) 2))
|
||||
stream-2
|
||||
(= mode-2 'details)
|
||||
)
|
||||
)
|
||||
(when (= data-2 (-> current-tag addr))
|
||||
(format stream-2 "ERROR: next tag creates infinite loop.~%")
|
||||
((not (valid? data-2 (the-as type #f) "dma-list tag pointer" #t stream-2))
|
||||
(format stream-2 "ERROR: dma-list tag pointer invalid~%")
|
||||
(set! end-condition 'error)
|
||||
)
|
||||
(set! data-2 (the-as dma-packet (-> current-tag addr)))
|
||||
data-2
|
||||
)
|
||||
((= (-> current-tag id) (dma-tag-id call))
|
||||
(set! addr (&-> (the-as (pointer uint64) data-2) 2))
|
||||
(set! qwc (the-as int (-> current-tag qwc)))
|
||||
(if mode-2
|
||||
(disasm-vif-tag
|
||||
(the-as (pointer vif-tag) (&-> (the-as (pointer uint64) data-2) 1))
|
||||
(the-as int (+ (* qwc 4) 2))
|
||||
stream-2
|
||||
(= mode-2 'details)
|
||||
)
|
||||
)
|
||||
(set! data-2 (the-as dma-packet (-> current-tag addr)))
|
||||
(set! call-depth (+ call-depth 1))
|
||||
(cond
|
||||
((zero? call-depth)
|
||||
(set! ra-1 (&+ addr qwc))
|
||||
(the-as (pointer uint64) ra-1)
|
||||
(else
|
||||
(set! current-tag (-> data-2 dma))
|
||||
(when (not (or (zero? total-tags) (valid? addr (the-as type #f) "dma-list data pointer" #t stream-2)))
|
||||
(format stream-2 "ERROR: dma-list data pointer invalid~%")
|
||||
(set! end-condition 'error)
|
||||
)
|
||||
(when (logtest? (the-as dma-tag #x3ff0000) current-tag)
|
||||
(format stream-2 "ERROR: dma tag has data in reserved bits ~X~%")
|
||||
(set! end-condition 'error)
|
||||
)
|
||||
)
|
||||
(else
|
||||
(set! ra-2 (&+ addr qwc))
|
||||
(the-as (pointer uint64) ra-2)
|
||||
)
|
||||
(when (or verbose-2 (= end-condition 'error))
|
||||
(format stream-2 "#x~8x: " data-2)
|
||||
(cond
|
||||
((zero? call-depth)
|
||||
(format stream-2 " ")
|
||||
)
|
||||
)
|
||||
)
|
||||
((= (-> current-tag id) (dma-tag-id ret))
|
||||
(set! addr (&-> (the-as (pointer uint64) data-2) 2))
|
||||
(set! qwc (the-as int (-> current-tag qwc)))
|
||||
(if mode-2
|
||||
(disasm-vif-tag
|
||||
(the-as (pointer vif-tag) (&-> (the-as (pointer uint64) data-2) 1))
|
||||
(the-as int (+ (* qwc 4) 2))
|
||||
stream-2
|
||||
(= mode-2 'details)
|
||||
((= call-depth 1)
|
||||
(format stream-2 " ")
|
||||
)
|
||||
)
|
||||
(disasm-dma-tag current-tag stream-2)
|
||||
)
|
||||
(cond
|
||||
(end-condition
|
||||
)
|
||||
((or (= (-> current-tag id) (dma-tag-id ref))
|
||||
(= (-> current-tag id) (dma-tag-id refs))
|
||||
(zero? (-> current-tag id))
|
||||
)
|
||||
(set! addr (-> current-tag addr))
|
||||
(set! qwc (the-as int (-> current-tag qwc)))
|
||||
(when mode-2
|
||||
(let ((v0-10 (disasm-vif-tag (&-> data-2 vif0) 2 stream-2 (= mode-2 'details))))
|
||||
(disasm-vif-tag
|
||||
(the-as (pointer vif-tag) (+ (the-as uint addr) v0-10))
|
||||
(the-as int (- (* (the-as uint qwc) 4) (the-as uint (/ v0-10 4))))
|
||||
stream-2
|
||||
(= mode-2 'details)
|
||||
)
|
||||
)
|
||||
)
|
||||
(let ((v1-123 call-depth))
|
||||
(cond
|
||||
((zero? v1-123)
|
||||
(set! data-2 (the-as dma-packet ra-1))
|
||||
data-2
|
||||
)
|
||||
((= v1-123 1)
|
||||
(set! data-2 (the-as dma-packet ra-2))
|
||||
data-2
|
||||
)
|
||||
(else
|
||||
(set! data-2 (the-as dma-packet (&-> (the-as (pointer uint64) data-2) 2)))
|
||||
(if (= (-> current-tag id) (dma-tag-id refe))
|
||||
(set! end-condition #t)
|
||||
)
|
||||
)
|
||||
)
|
||||
(set! call-depth (+ call-depth -1))
|
||||
call-depth
|
||||
)
|
||||
((= (-> current-tag id) (dma-tag-id end))
|
||||
(set! addr (&-> (the-as (pointer uint64) data-2) 2))
|
||||
(set! qwc (the-as int (-> current-tag qwc)))
|
||||
(set! end-condition #t)
|
||||
(if mode-2
|
||||
(disasm-vif-tag
|
||||
(the-as (pointer vif-tag) (&-> (the-as (pointer uint64) data-2) 1))
|
||||
(the-as int (+ (* qwc 4) 2))
|
||||
stream-2
|
||||
(= mode-2 'details)
|
||||
((= (-> current-tag id) (dma-tag-id cnt))
|
||||
(set! addr (&-> (the-as (pointer uint64) data-2) 2))
|
||||
(set! qwc (the-as int (-> current-tag qwc)))
|
||||
(if mode-2
|
||||
(disasm-vif-tag
|
||||
(the-as (pointer vif-tag) (&-> (the-as (pointer uint64) data-2) 1))
|
||||
(the-as int (+ (* (the-as uint qwc) 4) 2))
|
||||
stream-2
|
||||
(= mode-2 'details)
|
||||
)
|
||||
)
|
||||
(set! data-2 (the-as dma-packet (+ (the-as uint data-2) (* (+ (the-as uint qwc) 1) 16))))
|
||||
data-2
|
||||
)
|
||||
((= (-> current-tag id) (dma-tag-id next))
|
||||
(set! addr (&-> (the-as (pointer uint64) data-2) 2))
|
||||
(set! qwc (the-as int (-> current-tag qwc)))
|
||||
(if mode-2
|
||||
(disasm-vif-tag
|
||||
(the-as (pointer vif-tag) (&-> (the-as (pointer uint64) data-2) 1))
|
||||
(the-as int (+ (* (the-as uint qwc) 4) 2))
|
||||
stream-2
|
||||
(= mode-2 'details)
|
||||
)
|
||||
)
|
||||
(when (= data-2 (-> current-tag addr))
|
||||
(format stream-2 "ERROR: next tag creates infinite loop.~%")
|
||||
(set! end-condition 'error)
|
||||
)
|
||||
(set! data-2 (the-as dma-packet (-> current-tag addr)))
|
||||
data-2
|
||||
)
|
||||
((= (-> current-tag id) (dma-tag-id call))
|
||||
(set! addr (&-> (the-as (pointer uint64) data-2) 2))
|
||||
(set! qwc (the-as int (-> current-tag qwc)))
|
||||
(if mode-2
|
||||
(disasm-vif-tag
|
||||
(the-as (pointer vif-tag) (&-> (the-as (pointer uint64) data-2) 1))
|
||||
(the-as int (+ (* (the-as uint qwc) 4) 2))
|
||||
stream-2
|
||||
(= mode-2 'details)
|
||||
)
|
||||
)
|
||||
(set! data-2 (the-as dma-packet (-> current-tag addr)))
|
||||
(+! call-depth 1)
|
||||
(cond
|
||||
((zero? call-depth)
|
||||
(set! ra-1 (&+ (the-as (pointer uint64) addr) (the-as uint qwc)))
|
||||
(the-as (pointer uint64) (the-as (pointer uint64) ra-1))
|
||||
)
|
||||
(else
|
||||
(set! ra-2 (&+ (the-as (pointer uint64) addr) (the-as uint qwc)))
|
||||
(the-as (pointer uint64) (the-as (pointer uint64) ra-2))
|
||||
)
|
||||
)
|
||||
)
|
||||
(else
|
||||
(format stream-2 "ERROR: Unknown DMA TAG command.~%")
|
||||
(set! end-condition 'error)
|
||||
)
|
||||
((= (-> current-tag id) (dma-tag-id ret))
|
||||
(set! addr (&-> (the-as (pointer uint64) data-2) 2))
|
||||
(set! qwc (the-as int (-> current-tag qwc)))
|
||||
(if mode-2
|
||||
(disasm-vif-tag
|
||||
(the-as (pointer vif-tag) (&-> (the-as (pointer uint64) data-2) 1))
|
||||
(the-as int (+ (* (the-as uint qwc) 4) 2))
|
||||
stream-2
|
||||
(= mode-2 'details)
|
||||
)
|
||||
)
|
||||
(let ((v1-123 call-depth))
|
||||
(cond
|
||||
((zero? v1-123)
|
||||
(set! data-2 (the-as dma-packet ra-1))
|
||||
data-2
|
||||
)
|
||||
((= v1-123 1)
|
||||
(set! data-2 (the-as dma-packet ra-2))
|
||||
data-2
|
||||
)
|
||||
(else
|
||||
(set! end-condition #t)
|
||||
)
|
||||
)
|
||||
)
|
||||
(+! call-depth -1)
|
||||
call-depth
|
||||
)
|
||||
((= (-> current-tag id) (dma-tag-id end))
|
||||
(set! addr (&-> (the-as (pointer uint64) data-2) 2))
|
||||
(set! qwc (the-as int (-> current-tag qwc)))
|
||||
(set! end-condition #t)
|
||||
(if mode-2
|
||||
(disasm-vif-tag
|
||||
(the-as (pointer vif-tag) (&-> (the-as (pointer uint64) data-2) 1))
|
||||
(the-as int (+ (* (the-as uint qwc) 4) 2))
|
||||
stream-2
|
||||
(= mode-2 'details)
|
||||
)
|
||||
)
|
||||
)
|
||||
(else
|
||||
(format stream-2 "ERROR: Unknown DMA TAG command.~%")
|
||||
(set! end-condition 'error)
|
||||
)
|
||||
)
|
||||
(+! total-qwc qwc)
|
||||
(+! total-tags 1)
|
||||
(if (and (>= expected-size-2 0) (>= total-tags expected-size-2))
|
||||
(set! end-condition #t)
|
||||
)
|
||||
)
|
||||
(+! total-qwc qwc)
|
||||
(+! total-tags 1)
|
||||
(if (and (>= expected-size-2 0) (>= total-tags expected-size-2))
|
||||
(set! end-condition #t)
|
||||
)
|
||||
)
|
||||
(when (or verbose-2 (= end-condition 'error))
|
||||
(format stream-2 "NOTICE: Total tags: ~d~%" total-tags)
|
||||
|
||||
+279
-290
@@ -360,17 +360,6 @@
|
||||
;; INFO: Return type mismatch object vs none.
|
||||
;; ERROR: Failed load: (set! a2-12 (l.hu (+ a2-11 68))) at op 283
|
||||
(defun-debug draw-instance-info ((arg0 string))
|
||||
(local-vars
|
||||
(sv-16 uint)
|
||||
(sv-32 uint)
|
||||
(sv-48 uint)
|
||||
(sv-64 int)
|
||||
(sv-80 int)
|
||||
(sv-96 int)
|
||||
(sv-112 int)
|
||||
(sv-128 int)
|
||||
(sv-144 int)
|
||||
)
|
||||
(when (and *display-instance-info* *edit-instance*)
|
||||
(let ((s5-0 (find-instance-by-name *edit-instance*)))
|
||||
(when s5-0
|
||||
@@ -447,30 +436,32 @@
|
||||
(s2-1 (+ (-> s5-0 count 1) (-> s5-0 count 2)))
|
||||
)
|
||||
(dotimes (s0-0 (-> (the-as drawable-group s1-1) length))
|
||||
(set! sv-16 (shrub-num-tris (the-as shrubbery (+ (+ (* s0-0 32) 32) (the-as int s1-1)))))
|
||||
(set! sv-32 (-> (the-as prototype-shrubbery (+ (the-as uint s1-1) (* s0-0 32))) data 0 header data 2))
|
||||
(set! sv-48 (-> (the-as prototype-shrubbery (+ (the-as uint s1-1) (* s0-0 32))) data 0 header data 0))
|
||||
(format
|
||||
arg0
|
||||
"~5D ~4D ~5D ~6f ~D~%"
|
||||
s0-0
|
||||
sv-16
|
||||
sv-32
|
||||
(/ (* 2.0 (the float sv-16)) (the float (- sv-32 sv-16)))
|
||||
sv-48
|
||||
)
|
||||
(+! s3-1 sv-16)
|
||||
(+! s4-2 sv-32)
|
||||
(set! f30-0
|
||||
(+ 29.0
|
||||
(* 5.5 (the float (- sv-32 sv-16)))
|
||||
(* 22.0 (the float sv-48))
|
||||
(* 8.0 (the float sv-32))
|
||||
(* 53.0 (the float (/ (+ s2-1 9) (the-as uint 10))))
|
||||
(* (the float s2-1) (+ 15.0 (* 5.0 (the float sv-48)) (* 13.5 (the float sv-32))))
|
||||
f30-0
|
||||
)
|
||||
(let ((sv-16 (shrub-num-tris (the-as shrubbery (+ (+ (* s0-0 32) 32) (the-as int s1-1)))))
|
||||
(sv-32 (-> (the-as prototype-shrubbery (+ (the-as uint s1-1) (* s0-0 32))) data 0 header data 2))
|
||||
(sv-48 (-> (the-as prototype-shrubbery (+ (the-as uint s1-1) (* s0-0 32))) data 0 header data 0))
|
||||
)
|
||||
(format
|
||||
arg0
|
||||
"~5D ~4D ~5D ~6f ~D~%"
|
||||
s0-0
|
||||
sv-16
|
||||
sv-32
|
||||
(/ (* 2.0 (the float sv-16)) (the float (- sv-32 sv-16)))
|
||||
sv-48
|
||||
)
|
||||
(+! s3-1 sv-16)
|
||||
(+! s4-2 sv-32)
|
||||
(set! f30-0
|
||||
(+ 29.0
|
||||
(* 5.5 (the float (- sv-32 sv-16)))
|
||||
(* 22.0 (the float sv-48))
|
||||
(* 8.0 (the float sv-32))
|
||||
(* 53.0 (the float (/ (+ s2-1 9) (the-as uint 10))))
|
||||
(* (the float s2-1) (+ 15.0 (* 5.0 (the float sv-48)) (* 13.5 (the float sv-32))))
|
||||
f30-0
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(format
|
||||
arg0
|
||||
@@ -485,49 +476,46 @@
|
||||
)
|
||||
)
|
||||
((= s2-0 instance-tie)
|
||||
(set! sv-144 0)
|
||||
(let ((s1-2 0)
|
||||
(let ((sv-144 0)
|
||||
(s1-2 0)
|
||||
(s0-1 0)
|
||||
(s2-2 0)
|
||||
)
|
||||
(format arg0 "~%level visible frags tris dverts strlen tex ttris~%")
|
||||
(set! sv-64 1)
|
||||
(set! sv-80 3)
|
||||
(while (>= sv-80 sv-64)
|
||||
(let ((v1-65 (-> s5-0 geometry sv-64)))
|
||||
(set! sv-96 0)
|
||||
(set! sv-112 0)
|
||||
(set! sv-128 0)
|
||||
(dotimes (a0-23 (-> (the-as prototype-tie v1-65) length))
|
||||
(set! sv-96 (+ sv-96 (l.hu (+ (the-as uint v1-65) (* a0-23 64) 68))))
|
||||
(set! sv-112 (+ sv-112 (l.hu (+ (the-as uint v1-65) (* a0-23 64) 70))))
|
||||
(set! sv-128 (+ sv-128 (l.hu (+ (the-as uint v1-65) (* a0-23 64) 60))))
|
||||
(let ((sv-64 1)
|
||||
(sv-80 3)
|
||||
)
|
||||
(set! sv-144 (+ sv-144 (-> s5-0 count sv-64)))
|
||||
(format arg0 "~5D ~7D ~5D ~5D" sv-64 (-> s5-0 count sv-64) (-> (the-as prototype-tie v1-65) length) sv-96)
|
||||
)
|
||||
(format
|
||||
arg0
|
||||
" ~5D ~6f ~3D ~5D~%"
|
||||
sv-112
|
||||
(/ (* 2.0 (the float sv-96)) (the float (- sv-112 sv-96)))
|
||||
sv-128
|
||||
(* (the-as uint sv-96) (-> s5-0 count sv-64))
|
||||
)
|
||||
(+! s1-2 (* (the-as uint sv-96) (-> s5-0 count sv-64)))
|
||||
(+! s0-1 (* (the-as uint sv-112) (-> s5-0 count sv-64)))
|
||||
(+! s3-1 sv-96)
|
||||
(+! s4-2 sv-112)
|
||||
(+! s2-2 sv-128)
|
||||
(set! sv-64 (+ sv-64 1))
|
||||
)
|
||||
(let ((t9-18 format)
|
||||
(a0-39 arg0)
|
||||
(a1-22 "total ~7D/~3D ~5D")
|
||||
(a3-11 (-> s5-0 in-level))
|
||||
(while (>= sv-80 sv-64)
|
||||
(let ((v1-65 (-> s5-0 geometry sv-64))
|
||||
(sv-96 0)
|
||||
(sv-112 0)
|
||||
(sv-128 0)
|
||||
)
|
||||
(dotimes (a0-23 (-> (the-as prototype-tie v1-65) length))
|
||||
(+! sv-96 (l.hu (+ (the-as uint v1-65) (* a0-23 64) 68)))
|
||||
(+! sv-112 (l.hu (+ (the-as uint v1-65) (* a0-23 64) 70)))
|
||||
(+! sv-128 (l.hu (+ (the-as uint v1-65) (* a0-23 64) 60)))
|
||||
)
|
||||
(+! sv-144 (-> s5-0 count sv-64))
|
||||
(format arg0 "~5D ~7D ~5D ~5D" sv-64 (-> s5-0 count sv-64) (-> (the-as prototype-tie v1-65) length) sv-96)
|
||||
(format
|
||||
arg0
|
||||
" ~5D ~6f ~3D ~5D~%"
|
||||
sv-112
|
||||
(/ (* 2.0 (the float sv-96)) (the float (- sv-112 sv-96)))
|
||||
sv-128
|
||||
(* (the-as uint sv-96) (-> s5-0 count sv-64))
|
||||
)
|
||||
(+! s1-2 (* (the-as uint sv-96) (-> s5-0 count sv-64)))
|
||||
(+! s0-1 (* (the-as uint sv-112) (-> s5-0 count sv-64)))
|
||||
(+! s3-1 sv-96)
|
||||
(+! s4-2 sv-112)
|
||||
(+! s2-2 sv-128)
|
||||
)
|
||||
(t9-18 a0-39 a1-22 sv-144 a3-11 s3-1)
|
||||
(+! sv-64 1)
|
||||
)
|
||||
)
|
||||
(format arg0 "total ~7D/~3D ~5D" sv-144 (-> s5-0 in-level) s3-1)
|
||||
(format
|
||||
arg0
|
||||
" ~5D ~6f ~3D ~5D~%"
|
||||
@@ -551,7 +539,7 @@
|
||||
;; INFO: Return type mismatch int vs none.
|
||||
;; WARN: Function dma-add-process-drawable has a return type of none, but the expression builder found a return statement.
|
||||
(defun dma-add-process-drawable ((arg0 process-drawable) (arg1 draw-control) (arg2 symbol) (arg3 dma-buffer))
|
||||
(local-vars (v1-37 float) (sv-16 process-drawable))
|
||||
(local-vars (v1-37 float))
|
||||
(rlet ((acc :class vf)
|
||||
(Q :class vf)
|
||||
(vf0 :class vf)
|
||||
@@ -576,243 +564,244 @@
|
||||
(vf5 :class vf)
|
||||
)
|
||||
(init-vf0-vector)
|
||||
(set! sv-16 arg0)
|
||||
(logclear! (-> arg1 status) (draw-status was-drawn))
|
||||
(when (not (logtest? (-> arg1 status) (draw-status hidden no-anim no-skeleton-update)))
|
||||
(let ((s4-0 (-> (the-as terrain-context #x70000000) work foreground joint-work temp-mtx vector 2))
|
||||
(vu-lgt
|
||||
(the-as vu-lights (-> (the-as terrain-context #x70000000) work foreground joint-work temp-mtx vector 3))
|
||||
)
|
||||
(tod *time-of-day-context*)
|
||||
)
|
||||
(.lvf vf16 (&-> arg1 origin quad))
|
||||
(.lvf vf17 (&-> arg1 bounds quad))
|
||||
(.mul.x.vf.w vf16 vf16 vf0)
|
||||
(.add.vf vf16 vf16 vf17)
|
||||
(.svf (&-> s4-0 quad) vf16)
|
||||
(.lvf vf28 (&-> arg1 color-mult quad))
|
||||
(.lvf vf29 (&-> arg1 color-emissive quad))
|
||||
(when (sphere-in-view-frustum? (the-as sphere s4-0))
|
||||
(case (-> arg1 global-effect)
|
||||
(((draw-effect title))
|
||||
(when (not (-> tod title-updated))
|
||||
(set! (-> tod title-updated) #t)
|
||||
(let ((s0-0 (-> *math-camera* inv-camera-rot))
|
||||
(a1-1 (new 'stack-no-clear 'vector))
|
||||
(s1-0 (new 'stack-no-clear 'vector))
|
||||
)
|
||||
(set-vector! a1-1 0.612 0.5 -0.612 0.0)
|
||||
(set-vector! s1-0 -0.696 0.174 0.696 0.0)
|
||||
(vector-matrix*! (the-as vector (-> tod title-light-group)) a1-1 s0-0)
|
||||
(vector-matrix*! (-> tod title-light-group dir1 direction) s1-0 s0-0)
|
||||
)
|
||||
(set-vector! (-> *time-of-day-context* current-shadow) 0.612 -0.5 -0.612 1.0)
|
||||
)
|
||||
(vu-lights<-light-group! vu-lgt (-> tod title-light-group))
|
||||
)
|
||||
(else
|
||||
(let ((interp (-> arg1 secondary-interp))
|
||||
(cur-interp (-> arg1 current-secondary-interp))
|
||||
(shadow-msk (-> arg1 shadow-mask))
|
||||
(lev-idx (-> arg1 level-index))
|
||||
(lgt (-> tod light-group (-> *target* draw light-index)))
|
||||
(cur-lgt (new 'stack-no-clear 'light-group))
|
||||
)
|
||||
(cond
|
||||
((= (-> arg1 light-index) 255)
|
||||
)
|
||||
((= lev-idx 2)
|
||||
(set! lgt (-> tod light-group (-> arg1 light-index)))
|
||||
)
|
||||
(else
|
||||
(set! lgt (-> tod moods lev-idx light-group (-> arg1 light-index)))
|
||||
)
|
||||
)
|
||||
(when (not (or (= lev-idx 2) (zero? shadow-msk)))
|
||||
(let* ((lgt-msk-0 (-> tod light-masks-0 lev-idx))
|
||||
(lgt-msk-1 (-> tod light-masks-1 lev-idx))
|
||||
(lgt-interp (-> tod light-interp lev-idx))
|
||||
(a0-13 (logand lgt-msk-0 shadow-msk))
|
||||
(v1-18 (logand lgt-msk-1 shadow-msk))
|
||||
)
|
||||
(cond
|
||||
((and (zero? a0-13) (zero? v1-18))
|
||||
)
|
||||
(else
|
||||
(set! interp (cond
|
||||
((and (nonzero? a0-13) (nonzero? v1-18))
|
||||
1.0
|
||||
)
|
||||
((zero? a0-13)
|
||||
(quad-copy! (the-as pointer cur-lgt) (the-as pointer lgt) 12)
|
||||
(set! lgt cur-lgt)
|
||||
(set! (-> lgt dir1 levels x) 0.0)
|
||||
lgt-interp
|
||||
)
|
||||
(else
|
||||
(quad-copy! (the-as pointer cur-lgt) (the-as pointer lgt) 12)
|
||||
(set! lgt cur-lgt)
|
||||
(set! (-> lgt dir0 levels x) 0.0)
|
||||
(- 1.0 lgt-interp)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(if *teleport*
|
||||
(set! cur-interp interp)
|
||||
)
|
||||
(when (not (or (paused?) (= interp cur-interp)))
|
||||
(let ((f0-15 (- cur-interp interp)))
|
||||
(set! cur-interp (cond
|
||||
((< (fabs f0-15) 0.2)
|
||||
interp
|
||||
)
|
||||
((< f0-15 0.0)
|
||||
(+ 0.2 cur-interp)
|
||||
)
|
||||
(else
|
||||
(+ -0.2 cur-interp)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(set! (-> arg1 current-secondary-interp) cur-interp)
|
||||
)
|
||||
(cond
|
||||
((= cur-interp 0.0)
|
||||
(vu-lights<-light-group! vu-lgt lgt)
|
||||
)
|
||||
(else
|
||||
(if (!= lgt cur-lgt)
|
||||
(quad-copy! (the-as pointer cur-lgt) (the-as pointer lgt) 12)
|
||||
)
|
||||
(let ((f0-20 (- 1.0 cur-interp)))
|
||||
(set! (-> cur-lgt dir0 levels x) (* (-> cur-lgt dir0 levels x) f0-20))
|
||||
(set! (-> cur-lgt dir0 levels y) (* (-> cur-lgt dir0 levels y) f0-20))
|
||||
(set! (-> cur-lgt dir1 levels x) (* (-> cur-lgt dir1 levels x) f0-20))
|
||||
(set! (-> cur-lgt dir1 levels y) (* (-> cur-lgt dir1 levels y) f0-20))
|
||||
(set! (-> cur-lgt dir2 levels x) (* (-> cur-lgt dir2 levels x) f0-20))
|
||||
(set! (-> cur-lgt dir2 levels y) (* (-> cur-lgt dir2 levels y) f0-20))
|
||||
)
|
||||
(vu-lights<-light-group! vu-lgt cur-lgt)
|
||||
)
|
||||
)
|
||||
(let ((sv-16 arg0))
|
||||
(logclear! (-> arg1 status) (draw-status was-drawn))
|
||||
(when (not (logtest? (-> arg1 status) (draw-status hidden no-anim no-skeleton-update)))
|
||||
(let ((s4-0 (-> (the-as terrain-context #x70000000) work foreground joint-work temp-mtx vector 2))
|
||||
(vu-lgt
|
||||
(the-as vu-lights (-> (the-as terrain-context #x70000000) work foreground joint-work temp-mtx vector 3))
|
||||
)
|
||||
(.lvf vf2 (&-> vu-lgt color 0 quad))
|
||||
(.lvf vf3 (&-> vu-lgt color 1 quad))
|
||||
(.lvf vf4 (&-> vu-lgt color 2 quad))
|
||||
(.lvf vf5 (&-> vu-lgt ambient quad))
|
||||
(.mul.vf vf5 vf5 vf28)
|
||||
(.mul.vf vf2 vf2 vf28)
|
||||
(.mul.vf vf3 vf3 vf28)
|
||||
(.mul.vf vf4 vf4 vf28)
|
||||
(.add.vf vf5 vf5 vf29)
|
||||
(.svf (&-> vu-lgt color 0 quad) vf2)
|
||||
(.svf (&-> vu-lgt color 1 quad) vf3)
|
||||
(.svf (&-> vu-lgt color 2 quad) vf4)
|
||||
(.svf (&-> vu-lgt ambient quad) vf5)
|
||||
(.mov v1-37 vf5)
|
||||
(tod *time-of-day-context*)
|
||||
)
|
||||
)
|
||||
(if *display-lights*
|
||||
(add-debug-lights #t (bucket-id debug) (-> tod light-group 0 lights) (-> arg1 origin))
|
||||
)
|
||||
(let ((at-0 *math-camera*))
|
||||
(.lvf vf16 (&-> at-0 plane 0 quad))
|
||||
(.lvf vf17 (&-> at-0 plane 1 quad))
|
||||
(.lvf vf18 (&-> at-0 plane 2 quad))
|
||||
(.lvf vf19 (&-> at-0 plane 3 quad))
|
||||
(.lvf vf20 (&-> at-0 guard-plane 0 quad))
|
||||
(.lvf vf21 (&-> at-0 guard-plane 1 quad))
|
||||
(.lvf vf22 (&-> at-0 guard-plane 2 quad))
|
||||
(.lvf vf23 (&-> at-0 guard-plane 3 quad))
|
||||
(.lvf vf24 (&-> at-0 camera-rot vector 0 quad))
|
||||
(.lvf vf25 (&-> at-0 camera-rot vector 1 quad))
|
||||
(.lvf vf26 (&-> at-0 camera-rot vector 2 quad))
|
||||
(.lvf vf27 (&-> at-0 camera-rot vector 3 quad))
|
||||
)
|
||||
(let ((v1-42 (-> (the-as terrain-context #x70000000) work foreground joint-work joint-stack data 1 vector 1)))
|
||||
(.lvf vf15 (&-> s4-0 quad))
|
||||
(.mul.w.vf acc vf27 vf0)
|
||||
(.add.mul.x.vf acc vf24 vf15 acc)
|
||||
(.add.mul.y.vf acc vf25 vf15 acc)
|
||||
(.add.mul.z.vf.xyz vf15 vf26 vf15 acc)
|
||||
(.mul.vf vf28 vf15 vf15)
|
||||
(.max.w.vf vf29 vf0 vf0)
|
||||
(.add.y.vf acc vf28 vf28)
|
||||
(.add.mul.z.vf.x vf28 vf29 vf28 acc)
|
||||
(.sqrt.vf Q vf28 :ftf #b0)
|
||||
(.sub.w.vf.w vf28 vf0 vf15)
|
||||
(.wait.vf)
|
||||
(.add.vf.w vf15 vf28 Q)
|
||||
(.svf (&-> v1-42 quad) vf15)
|
||||
(when (< 0.0 (+ (-> v1-42 z) (-> arg1 bounds w)))
|
||||
(let ((lod-to-use 0))
|
||||
(let ((cam-dist (-> v1-42 w)))
|
||||
(when (nonzero? (-> arg1 lod-set max-lod))
|
||||
(cond
|
||||
((>= (-> arg1 force-lod) 0)
|
||||
(set! lod-to-use (-> arg1 force-lod))
|
||||
(if (< (-> arg1 lod-set lod (-> arg1 lod-set max-lod) dist) cam-dist)
|
||||
(return #f)
|
||||
)
|
||||
(.lvf vf16 (&-> arg1 origin quad))
|
||||
(.lvf vf17 (&-> arg1 bounds quad))
|
||||
(.mul.x.vf.w vf16 vf16 vf0)
|
||||
(.add.vf vf16 vf16 vf17)
|
||||
(.svf (&-> s4-0 quad) vf16)
|
||||
(.lvf vf28 (&-> arg1 color-mult quad))
|
||||
(.lvf vf29 (&-> arg1 color-emissive quad))
|
||||
(when (sphere-in-view-frustum? (the-as sphere s4-0))
|
||||
(case (-> arg1 global-effect)
|
||||
(((draw-effect title))
|
||||
(when (not (-> tod title-updated))
|
||||
(set! (-> tod title-updated) #t)
|
||||
(let ((s0-0 (-> *math-camera* inv-camera-rot))
|
||||
(a1-1 (new 'stack-no-clear 'vector))
|
||||
(s1-0 (new 'stack-no-clear 'vector))
|
||||
)
|
||||
(else
|
||||
(while (and (< lod-to-use (-> arg1 lod-set max-lod)) (< (-> arg1 lod-set lod lod-to-use dist) cam-dist))
|
||||
(+! lod-to-use 1)
|
||||
(set-vector! a1-1 0.612 0.5 -0.612 0.0)
|
||||
(set-vector! s1-0 -0.696 0.174 0.696 0.0)
|
||||
(vector-matrix*! (the-as vector (-> tod title-light-group)) a1-1 s0-0)
|
||||
(vector-matrix*! (-> tod title-light-group dir1 direction) s1-0 s0-0)
|
||||
)
|
||||
(set-vector! (-> *time-of-day-context* current-shadow) 0.612 -0.5 -0.612 1.0)
|
||||
)
|
||||
(vu-lights<-light-group! vu-lgt (-> tod title-light-group))
|
||||
)
|
||||
(else
|
||||
(let ((interp (-> arg1 secondary-interp))
|
||||
(cur-interp (-> arg1 current-secondary-interp))
|
||||
(shadow-msk (-> arg1 shadow-mask))
|
||||
(lev-idx (-> arg1 level-index))
|
||||
(lgt (-> tod light-group (-> *target* draw light-index)))
|
||||
(cur-lgt (new 'stack-no-clear 'light-group))
|
||||
)
|
||||
(cond
|
||||
((= (-> arg1 light-index) 255)
|
||||
)
|
||||
((= lev-idx 2)
|
||||
(set! lgt (-> tod light-group (-> arg1 light-index)))
|
||||
)
|
||||
(else
|
||||
(set! lgt (-> tod moods lev-idx light-group (-> arg1 light-index)))
|
||||
)
|
||||
)
|
||||
(when (not (or (= lev-idx 2) (zero? shadow-msk)))
|
||||
(let* ((lgt-msk-0 (-> tod light-masks-0 lev-idx))
|
||||
(lgt-msk-1 (-> tod light-masks-1 lev-idx))
|
||||
(lgt-interp (-> tod light-interp lev-idx))
|
||||
(a0-13 (logand lgt-msk-0 shadow-msk))
|
||||
(v1-18 (logand lgt-msk-1 shadow-msk))
|
||||
)
|
||||
(cond
|
||||
((and (zero? a0-13) (zero? v1-18))
|
||||
)
|
||||
(else
|
||||
(set! interp (cond
|
||||
((and (nonzero? a0-13) (nonzero? v1-18))
|
||||
1.0
|
||||
)
|
||||
((zero? a0-13)
|
||||
(quad-copy! (the-as pointer cur-lgt) (the-as pointer lgt) 12)
|
||||
(set! lgt cur-lgt)
|
||||
(set! (-> lgt dir1 levels x) 0.0)
|
||||
lgt-interp
|
||||
)
|
||||
(else
|
||||
(quad-copy! (the-as pointer cur-lgt) (the-as pointer lgt) 12)
|
||||
(set! lgt cur-lgt)
|
||||
(set! (-> lgt dir0 levels x) 0.0)
|
||||
(- 1.0 lgt-interp)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(if (and (< (-> arg1 lod-set lod lod-to-use dist) cam-dist) (< (-> arg1 force-lod) 0))
|
||||
(return #f)
|
||||
(if *teleport*
|
||||
(set! cur-interp interp)
|
||||
)
|
||||
(let ((v1-64 (-> arg1 sink-group level))
|
||||
(a0-26 (+ (-> arg1 sink-group merc-sink foreground-texture-page) 6))
|
||||
)
|
||||
(when (not (logtest? (-> arg1 status) (draw-status do-not-check-distance)))
|
||||
(if (< cam-dist (-> v1-64 closest-object a0-26))
|
||||
(set! (-> v1-64 closest-object a0-26) cam-dist)
|
||||
(when (not (or (paused?) (= interp cur-interp)))
|
||||
(let ((f0-15 (- cur-interp interp)))
|
||||
(set! cur-interp (cond
|
||||
((< (fabs f0-15) 0.2)
|
||||
interp
|
||||
)
|
||||
((< f0-15 0.0)
|
||||
(+ 0.2 cur-interp)
|
||||
)
|
||||
(else
|
||||
(+ -0.2 cur-interp)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(set! (-> arg1 current-secondary-interp) cur-interp)
|
||||
)
|
||||
(cond
|
||||
((= cur-interp 0.0)
|
||||
(vu-lights<-light-group! vu-lgt lgt)
|
||||
)
|
||||
(else
|
||||
(if (!= lgt cur-lgt)
|
||||
(quad-copy! (the-as pointer cur-lgt) (the-as pointer lgt) 12)
|
||||
)
|
||||
(when (and (!= a0-26 6) (!= (-> arg1 level-index) 2))
|
||||
(let ((a1-45 (cond
|
||||
((< 102400.0 cam-dist)
|
||||
(-> arg1 mgeo header masks 0)
|
||||
)
|
||||
((< 81920.0 cam-dist)
|
||||
(-> arg1 mgeo header masks 1)
|
||||
)
|
||||
(else
|
||||
(-> arg1 mgeo header masks 2)
|
||||
(let ((f0-20 (- 1.0 cur-interp)))
|
||||
(set! (-> cur-lgt dir0 levels x) (* (-> cur-lgt dir0 levels x) f0-20))
|
||||
(set! (-> cur-lgt dir0 levels y) (* (-> cur-lgt dir0 levels y) f0-20))
|
||||
(set! (-> cur-lgt dir1 levels x) (* (-> cur-lgt dir1 levels x) f0-20))
|
||||
(set! (-> cur-lgt dir1 levels y) (* (-> cur-lgt dir1 levels y) f0-20))
|
||||
(set! (-> cur-lgt dir2 levels x) (* (-> cur-lgt dir2 levels x) f0-20))
|
||||
(set! (-> cur-lgt dir2 levels y) (* (-> cur-lgt dir2 levels y) f0-20))
|
||||
)
|
||||
(vu-lights<-light-group! vu-lgt cur-lgt)
|
||||
)
|
||||
)
|
||||
)
|
||||
(.lvf vf2 (&-> vu-lgt color 0 quad))
|
||||
(.lvf vf3 (&-> vu-lgt color 1 quad))
|
||||
(.lvf vf4 (&-> vu-lgt color 2 quad))
|
||||
(.lvf vf5 (&-> vu-lgt ambient quad))
|
||||
(.mul.vf vf5 vf5 vf28)
|
||||
(.mul.vf vf2 vf2 vf28)
|
||||
(.mul.vf vf3 vf3 vf28)
|
||||
(.mul.vf vf4 vf4 vf28)
|
||||
(.add.vf vf5 vf5 vf29)
|
||||
(.svf (&-> vu-lgt color 0 quad) vf2)
|
||||
(.svf (&-> vu-lgt color 1 quad) vf3)
|
||||
(.svf (&-> vu-lgt color 2 quad) vf4)
|
||||
(.svf (&-> vu-lgt ambient quad) vf5)
|
||||
(.mov v1-37 vf5)
|
||||
)
|
||||
)
|
||||
(if *display-lights*
|
||||
(add-debug-lights #t (bucket-id debug) (-> tod light-group 0 lights) (-> arg1 origin))
|
||||
)
|
||||
(let ((at-0 *math-camera*))
|
||||
(.lvf vf16 (&-> at-0 plane 0 quad))
|
||||
(.lvf vf17 (&-> at-0 plane 1 quad))
|
||||
(.lvf vf18 (&-> at-0 plane 2 quad))
|
||||
(.lvf vf19 (&-> at-0 plane 3 quad))
|
||||
(.lvf vf20 (&-> at-0 guard-plane 0 quad))
|
||||
(.lvf vf21 (&-> at-0 guard-plane 1 quad))
|
||||
(.lvf vf22 (&-> at-0 guard-plane 2 quad))
|
||||
(.lvf vf23 (&-> at-0 guard-plane 3 quad))
|
||||
(.lvf vf24 (&-> at-0 camera-rot vector 0 quad))
|
||||
(.lvf vf25 (&-> at-0 camera-rot vector 1 quad))
|
||||
(.lvf vf26 (&-> at-0 camera-rot vector 2 quad))
|
||||
(.lvf vf27 (&-> at-0 camera-rot vector 3 quad))
|
||||
)
|
||||
(let ((v1-42 (-> (the-as terrain-context #x70000000) work foreground joint-work joint-stack data 1 vector 1)))
|
||||
(.lvf vf15 (&-> s4-0 quad))
|
||||
(.mul.w.vf acc vf27 vf0)
|
||||
(.add.mul.x.vf acc vf24 vf15 acc)
|
||||
(.add.mul.y.vf acc vf25 vf15 acc)
|
||||
(.add.mul.z.vf.xyz vf15 vf26 vf15 acc)
|
||||
(.mul.vf vf28 vf15 vf15)
|
||||
(.max.w.vf vf29 vf0 vf0)
|
||||
(.add.y.vf acc vf28 vf28)
|
||||
(.add.mul.z.vf.x vf28 vf29 vf28 acc)
|
||||
(.sqrt.vf Q vf28 :ftf #b0)
|
||||
(.sub.w.vf.w vf28 vf0 vf15)
|
||||
(.wait.vf)
|
||||
(.add.vf.w vf15 vf28 Q)
|
||||
(.svf (&-> v1-42 quad) vf15)
|
||||
(when (< 0.0 (+ (-> v1-42 z) (-> arg1 bounds w)))
|
||||
(let ((lod-to-use 0))
|
||||
(let ((cam-dist (-> v1-42 w)))
|
||||
(when (nonzero? (-> arg1 lod-set max-lod))
|
||||
(cond
|
||||
((>= (-> arg1 force-lod) 0)
|
||||
(set! lod-to-use (-> arg1 force-lod))
|
||||
(if (< (-> arg1 lod-set lod (-> arg1 lod-set max-lod) dist) cam-dist)
|
||||
(return #f)
|
||||
)
|
||||
)
|
||||
(else
|
||||
(while (and (< lod-to-use (-> arg1 lod-set max-lod)) (< (-> arg1 lod-set lod lod-to-use dist) cam-dist))
|
||||
(+! lod-to-use 1)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(if (and (< (-> arg1 lod-set lod lod-to-use dist) cam-dist) (< (-> arg1 force-lod) 0))
|
||||
(return #f)
|
||||
)
|
||||
(let ((v1-64 (-> arg1 sink-group level))
|
||||
(a0-26 (+ (-> arg1 sink-group merc-sink foreground-texture-page) 6))
|
||||
)
|
||||
(when (not (logtest? (-> arg1 status) (draw-status do-not-check-distance)))
|
||||
(if (< cam-dist (-> v1-64 closest-object a0-26))
|
||||
(set! (-> v1-64 closest-object a0-26) cam-dist)
|
||||
)
|
||||
(when (and (!= a0-26 6) (!= (-> arg1 level-index) 2))
|
||||
(let ((a1-45 (cond
|
||||
((< 102400.0 cam-dist)
|
||||
(-> arg1 mgeo header masks 0)
|
||||
)
|
||||
((< 81920.0 cam-dist)
|
||||
(-> arg1 mgeo header masks 1)
|
||||
)
|
||||
(else
|
||||
(-> arg1 mgeo header masks 2)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(logior! (-> v1-64 texture-mask a0-26) a1-45)
|
||||
)
|
||||
(logior! (-> v1-64 texture-mask a0-26) a1-45)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(if (or (guard-band-cull s4-0) (< cam-dist (* 1.2 (-> *math-camera* d))))
|
||||
(logior! (-> arg1 status) (draw-status needs-clip))
|
||||
(logclear! (-> arg1 status) (draw-status needs-clip))
|
||||
)
|
||||
(logior! (-> arg1 status) (draw-status was-drawn))
|
||||
(if (logtest? (-> arg1 status) (draw-status skip-bones))
|
||||
(return #f)
|
||||
)
|
||||
(draw-bones arg1 arg3 cam-dist)
|
||||
)
|
||||
(if (or (guard-band-cull s4-0) (< cam-dist (* 1.2 (-> *math-camera* d))))
|
||||
(logior! (-> arg1 status) (draw-status needs-clip))
|
||||
(logclear! (-> arg1 status) (draw-status needs-clip))
|
||||
(when (and (< lod-to-use (-> arg1 cur-lod)) (logtest? (-> arg1 status) (draw-status has-joint-channels)))
|
||||
(let ((v1-82 *matrix-engine*))
|
||||
(set! (-> v1-82 (-> v1-82 length)) (process->handle sv-16))
|
||||
(+! (-> v1-82 length) 1)
|
||||
)
|
||||
(logior! (-> arg1 status) (draw-status was-drawn))
|
||||
(if (logtest? (-> arg1 status) (draw-status skip-bones))
|
||||
(return #f)
|
||||
)
|
||||
(draw-bones arg1 arg3 cam-dist)
|
||||
)
|
||||
(when (and (< lod-to-use (-> arg1 cur-lod)) (logtest? (-> arg1 status) (draw-status has-joint-channels)))
|
||||
(let ((v1-82 *matrix-engine*))
|
||||
(set! (-> v1-82 (-> v1-82 length)) (process->handle sv-16))
|
||||
(+! (-> v1-82 length) 1)
|
||||
)
|
||||
(lod-set! arg1 lod-to-use)
|
||||
)
|
||||
(lod-set! arg1 lod-to-use)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
+9
-9
@@ -5,9 +5,9 @@
|
||||
;; INFO: Used lq/sq
|
||||
;; INFO: Return type mismatch entity vs entity-actor.
|
||||
(defun entity-actor-lookup ((lump res-lump) (name symbol) (idx int))
|
||||
(local-vars (sv-16 res-tag))
|
||||
(set! sv-16 (new 'static 'res-tag))
|
||||
(let ((v1-1 (res-lump-data lump name (pointer uint32) :tag-ptr (& sv-16))))
|
||||
(let* ((sv-16 (new 'static 'res-tag))
|
||||
(v1-1 (res-lump-data lump name (pointer uint32) :tag-ptr (& sv-16)))
|
||||
)
|
||||
(the-as
|
||||
entity-actor
|
||||
(when (and v1-1 (< idx (the-as int (-> sv-16 elt-count))))
|
||||
@@ -24,12 +24,12 @@
|
||||
;; WARN: Check prologue - tricky store of r0
|
||||
;; INFO: Used lq/sq
|
||||
(defun entity-actor-count ((res res-lump) (name symbol))
|
||||
(local-vars (tag res-tag))
|
||||
(set! tag (new 'static 'res-tag))
|
||||
(if (res-lump-data res name pointer :tag-ptr (& tag))
|
||||
(the-as int (-> tag elt-count))
|
||||
0
|
||||
)
|
||||
(let ((tag (new 'static 'res-tag)))
|
||||
(if (res-lump-data res name pointer :tag-ptr (& tag))
|
||||
(the-as int (-> tag elt-count))
|
||||
0
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
;; definition of type actor-link-info
|
||||
|
||||
+45
-48
@@ -169,24 +169,23 @@
|
||||
;; definition for function level-hint-task-process
|
||||
;; INFO: Used lq/sq
|
||||
(defun level-hint-task-process ((arg0 entity) (arg1 uint128) (arg2 string))
|
||||
(local-vars (sv-16 res-tag))
|
||||
(let ((gp-0 (res-lump-value arg0 'text-id int :default arg1))
|
||||
(s5-0 0)
|
||||
)
|
||||
(cond
|
||||
((can-hint-be-played? (the-as text-id gp-0) arg0 arg2)
|
||||
(set! sv-16 (new 'static 'res-tag))
|
||||
(let ((s4-1 ((method-of-type res-lump get-property-data)
|
||||
arg0
|
||||
'cmds
|
||||
'exact
|
||||
-1000000000.0
|
||||
(the-as pointer #f)
|
||||
(& sv-16)
|
||||
*res-static-buf*
|
||||
(let* ((sv-16 (new 'static 'res-tag))
|
||||
(s4-1 ((method-of-type res-lump get-property-data)
|
||||
arg0
|
||||
'cmds
|
||||
'exact
|
||||
-1000000000.0
|
||||
(the-as pointer #f)
|
||||
(& sv-16)
|
||||
*res-static-buf*
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(when s4-1
|
||||
(while (and (>= s5-0 0) (< s5-0 (the-as int (-> sv-16 elt-count))))
|
||||
(set! s5-0 (level-hint-process-cmd (the-as (pointer int32) s4-1) s5-0 (the-as int (-> sv-16 elt-count))))
|
||||
@@ -689,7 +688,6 @@
|
||||
;; INFO: Used lq/sq
|
||||
;; INFO: Return type mismatch int vs none.
|
||||
(defun ambient-type-sound ((arg0 drawable-ambient) (arg1 vector))
|
||||
(local-vars (sv-16 string) (sv-112 res-tag))
|
||||
(let* ((s5-0 (-> arg0 ambient))
|
||||
(s4-0 (-> s5-0 ambient-data user-uint64 0))
|
||||
)
|
||||
@@ -704,41 +702,41 @@
|
||||
)
|
||||
)
|
||||
(when (< (the-as uint (- (current-time) (the-as int s4-0))) (the-as uint 300))
|
||||
(let ((f30-0 (the float (rand-vu-int-count (the-as int (-> s5-0 ambient-data user-float 2))))))
|
||||
(set! sv-16 (symbol->string (res-lump-struct s5-0 'effect-name symbol :time f30-0)))
|
||||
(let ((s4-2 (new 'stack 'sound-spec)))
|
||||
(set! (-> s4-2 sound-name) (string->sound-name sv-16))
|
||||
(logior! (-> s4-2 mask) (sound-mask volume))
|
||||
(set! (-> s4-2 volume) 1024)
|
||||
(logior! (-> s4-2 mask) (sound-mask bend))
|
||||
(set! (-> s4-2 bend) (the int (* 327.66998 (rand-vu-float-range -100.0 100.0))))
|
||||
(set! sv-112 (new 'static 'res-tag))
|
||||
(let ((a1-7 ((method-of-type res-lump get-property-data)
|
||||
s5-0
|
||||
'effect-param
|
||||
'exact
|
||||
f30-0
|
||||
(the-as pointer #f)
|
||||
(& sv-112)
|
||||
*res-static-buf*
|
||||
)
|
||||
(let* ((f30-0 (the float (rand-vu-int-count (the-as int (-> s5-0 ambient-data user-float 2)))))
|
||||
(sv-16 (symbol->string (res-lump-struct s5-0 'effect-name symbol :time f30-0)))
|
||||
(s4-2 (new 'stack 'sound-spec))
|
||||
)
|
||||
(set! (-> s4-2 sound-name) (string->sound-name sv-16))
|
||||
(logior! (-> s4-2 mask) (sound-mask volume))
|
||||
(set! (-> s4-2 volume) 1024)
|
||||
(logior! (-> s4-2 mask) (sound-mask bend))
|
||||
(set! (-> s4-2 bend) (the int (* 327.66998 (rand-vu-float-range -100.0 100.0))))
|
||||
(let* ((sv-112 (new 'static 'res-tag))
|
||||
(a1-7 ((method-of-type res-lump get-property-data)
|
||||
s5-0
|
||||
'effect-param
|
||||
'exact
|
||||
f30-0
|
||||
(the-as pointer #f)
|
||||
(& sv-112)
|
||||
*res-static-buf*
|
||||
)
|
||||
)
|
||||
(if a1-7
|
||||
(effect-param->sound-spec s4-2 (the-as (pointer float) a1-7) (the-as int (-> sv-112 elt-count)))
|
||||
)
|
||||
)
|
||||
(when *debug-effect-control*
|
||||
(format #t "(~5D) effect sound ~A ~S " (current-time) (res-lump-struct s5-0 'name structure) sv-16)
|
||||
(format
|
||||
#t
|
||||
"volume: ~f pitch-mod: ~f~%"
|
||||
(* 0.09765625 (the float (-> s4-2 volume)))
|
||||
(* 0.000656168 (the float (-> s4-2 pitch-mod)))
|
||||
)
|
||||
)
|
||||
(if a1-7
|
||||
(effect-param->sound-spec s4-2 (the-as (pointer float) a1-7) (the-as int (-> sv-112 elt-count)))
|
||||
)
|
||||
)
|
||||
(sound-play-by-spec s4-2 (new-sound-id) (-> arg0 bsphere))
|
||||
)
|
||||
(when *debug-effect-control*
|
||||
(format #t "(~5D) effect sound ~A ~S " (current-time) (res-lump-struct s5-0 'name structure) sv-16)
|
||||
(format
|
||||
#t
|
||||
"volume: ~f pitch-mod: ~f~%"
|
||||
(* 0.09765625 (the float (-> s4-2 volume)))
|
||||
(* 0.000656168 (the float (-> s4-2 pitch-mod)))
|
||||
)
|
||||
)
|
||||
(sound-play-by-spec s4-2 (new-sound-id) (-> arg0 bsphere))
|
||||
)
|
||||
)
|
||||
)
|
||||
@@ -1099,7 +1097,6 @@
|
||||
;; INFO: Used lq/sq
|
||||
;; INFO: Return type mismatch int vs none.
|
||||
(defmethod draw-debug ((this entity-ambient))
|
||||
(local-vars (sv-16 uint128))
|
||||
(let ((gp-0 (-> this trans))
|
||||
(s5-0 (res-lump-struct this 'type symbol))
|
||||
(s3-0 #f)
|
||||
@@ -1120,8 +1117,8 @@
|
||||
)
|
||||
((= s5-0 'hint)
|
||||
(when *display-ambient-hint-marks*
|
||||
(set! sv-16 (res-lump-value this 'text-id uint128))
|
||||
(let ((s3-2 add-debug-text-3d)
|
||||
(let ((sv-16 (res-lump-value this 'text-id uint128))
|
||||
(s3-2 add-debug-text-3d)
|
||||
(s2-1 #t)
|
||||
(s1-1 68)
|
||||
)
|
||||
|
||||
+231
-272
@@ -611,12 +611,7 @@
|
||||
;; INFO: Used lq/sq
|
||||
;; INFO: Return type mismatch int vs none.
|
||||
(defmethod update-vis-volumes ((this level-group))
|
||||
(local-vars
|
||||
(v1-10 symbol)
|
||||
(sv-16 process)
|
||||
(sv-32 (function process-drawable vector vector none))
|
||||
(sv-48 process-tree)
|
||||
)
|
||||
(local-vars (v1-10 symbol) (sv-16 process))
|
||||
(dotimes (s5-0 (-> this length))
|
||||
(let ((v1-3 (-> this level s5-0)))
|
||||
(when (= (-> v1-3 status) 'active)
|
||||
@@ -639,16 +634,17 @@
|
||||
(update-actor-vis-box (the-as process-drawable sv-16) s2-0 s1-0)
|
||||
(let ((s0-2 (-> sv-16 child)))
|
||||
(while s0-2
|
||||
(set! sv-32 update-actor-vis-box)
|
||||
(set! sv-48 (-> s0-2 0))
|
||||
(let ((a0-7 (if (and (nonzero? sv-48) (type-type? (-> sv-48 type) process-drawable))
|
||||
sv-48
|
||||
)
|
||||
)
|
||||
(a1-5 s2-0)
|
||||
(a2-2 s1-0)
|
||||
(let ((sv-32 update-actor-vis-box)
|
||||
(sv-48 (-> s0-2 0))
|
||||
)
|
||||
(sv-32 (the-as process-drawable a0-7) a1-5 a2-2)
|
||||
(sv-32
|
||||
(the-as process-drawable (if (and (nonzero? sv-48) (type-type? (-> sv-48 type) process-drawable))
|
||||
sv-48
|
||||
)
|
||||
)
|
||||
s2-0
|
||||
s1-0
|
||||
)
|
||||
)
|
||||
(set! s0-2 (-> s0-2 0 brother))
|
||||
)
|
||||
@@ -668,27 +664,23 @@
|
||||
;; INFO: Used lq/sq
|
||||
;; INFO: Return type mismatch int vs none.
|
||||
(defmethod update-vis-volumes-from-nav-mesh ((this level-group))
|
||||
(local-vars (sv-16 entity) (sv-32 entity))
|
||||
(dotimes (s5-0 (-> this length))
|
||||
(let ((v1-3 (-> this level s5-0)))
|
||||
(when (= (-> v1-3 status) 'active)
|
||||
(let ((s4-0 (-> v1-3 bsp level entity)))
|
||||
(dotimes (s3-0 (-> s4-0 length))
|
||||
(set! sv-32 (-> s4-0 data s3-0 entity))
|
||||
(let* ((v0-0 (res-lump-data sv-32 'visvol (inline-array vector)))
|
||||
(let* ((sv-32 (-> s4-0 data s3-0 entity))
|
||||
(v0-0 (res-lump-data sv-32 'visvol (inline-array vector)))
|
||||
(s1-0 (-> v0-0 0))
|
||||
(s2-0 (-> v0-0 1))
|
||||
)
|
||||
(let ((s0-0 (-> sv-32 extra trans)))
|
||||
(set! sv-16 sv-32)
|
||||
(let* ((t9-1 entity-actor-lookup)
|
||||
(a1-2 'nav-mesh-actor)
|
||||
(a2-1 0)
|
||||
(v0-1 (t9-1 sv-32 a1-2 a2-1))
|
||||
)
|
||||
(let ((s0-0 (-> sv-32 extra trans))
|
||||
(sv-16 sv-32)
|
||||
)
|
||||
(let ((v0-1 (entity-actor-lookup sv-32 'nav-mesh-actor 0)))
|
||||
(when v0-1
|
||||
(set! sv-16 v0-1)
|
||||
(the-as entity-actor sv-16)
|
||||
(the-as entity-actor (the-as entity-actor sv-16))
|
||||
)
|
||||
)
|
||||
(cond
|
||||
@@ -725,47 +717,32 @@
|
||||
;; INFO: Used lq/sq
|
||||
;; INFO: Return type mismatch int vs none.
|
||||
(defmethod print-volume-sizes ((this level-group))
|
||||
(local-vars (sv-16 type) (sv-32 (function _varargs_ object)) (sv-48 symbol) (sv-64 string) (sv-80 entity))
|
||||
(local-vars (sv-16 type))
|
||||
(dotimes (s5-0 (-> this length))
|
||||
(let ((v1-3 (-> this level s5-0)))
|
||||
(when (= (-> v1-3 status) 'active)
|
||||
(let ((s4-0 (-> v1-3 bsp level entity)))
|
||||
(dotimes (s3-0 (-> s4-0 length))
|
||||
(set! sv-80 (-> s4-0 data s3-0 entity))
|
||||
(let ((s1-0 (the-as object (res-lump-data sv-80 'visvol pointer)))
|
||||
(f30-0 (res-lump-float sv-80 'vis-dist :default 409600.0))
|
||||
(s2-0 (-> sv-80 extra trans))
|
||||
)
|
||||
(if (type-type? (-> sv-80 type) entity-actor)
|
||||
(set! sv-16 (-> (the-as entity-actor sv-80) etype))
|
||||
(set! sv-16 (the-as type #f))
|
||||
)
|
||||
(let* ((sv-80 (-> s4-0 data s3-0 entity))
|
||||
(s1-0 (the-as object (res-lump-data sv-80 'visvol pointer)))
|
||||
(f30-0 (res-lump-float sv-80 'vis-dist :default 409600.0))
|
||||
(s2-0 (-> sv-80 extra trans))
|
||||
)
|
||||
(set! sv-16 (cond
|
||||
((type-type? (-> sv-80 type) entity-actor)
|
||||
(set! sv-16 (-> (the-as entity-actor sv-80) etype))
|
||||
sv-16
|
||||
)
|
||||
(else
|
||||
(the-as type #f)
|
||||
)
|
||||
)
|
||||
)
|
||||
(let ((s0-0 (-> (the-as (inline-array vector) s1-0) 0))
|
||||
(s1-1 (-> (the-as (inline-array vector) s1-0) 1))
|
||||
)
|
||||
(when (not (or (name= sv-16 money) (or (name= sv-16 crate) (name= sv-16 fuel-cell) (let ((t9-6 name=)
|
||||
(a1-7 springbox)
|
||||
)
|
||||
(t9-6 sv-16 a1-7)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(set! sv-32 format)
|
||||
(set! sv-48 #t)
|
||||
(set! sv-64 "actor-vis ~S ~6,,1M ")
|
||||
(let* ((t9-7 (method-of-type res-lump get-property-struct))
|
||||
(a1-8 'name)
|
||||
(a2-2 'interp)
|
||||
(a3-2 -1000000000.0)
|
||||
(t0-2 #f)
|
||||
(t1-2 #f)
|
||||
(t2-2 *res-static-buf*)
|
||||
(a2-3 (t9-7 sv-80 a1-8 a2-2 a3-2 t0-2 (the-as (pointer res-tag) t1-2) t2-2))
|
||||
(a3-3 f30-0)
|
||||
)
|
||||
(sv-32 sv-48 sv-64 a2-3 a3-3)
|
||||
)
|
||||
(when (not (or (name= sv-16 money) (or (name= sv-16 crate) (name= sv-16 fuel-cell) (name= sv-16 springbox))))
|
||||
(format #t "actor-vis ~S ~6,,1M " (res-lump-struct sv-80 'name structure) f30-0)
|
||||
(format
|
||||
#t
|
||||
"~6,,1M ~6,,1M ~6,,1M ~6,,1M ~6,,1M ~6,,1M~%"
|
||||
@@ -813,25 +790,6 @@
|
||||
;; INFO: Used lq/sq
|
||||
;; INFO: Return type mismatch int vs none.
|
||||
(defmethod debug-draw-actors ((this level-group) (arg0 symbol))
|
||||
(local-vars
|
||||
(sv-48 (function symbol bucket-id string vector font-color vector2h symbol))
|
||||
(sv-64 symbol)
|
||||
(sv-80 int)
|
||||
(sv-96 (function symbol bucket-id string vector font-color vector2h symbol))
|
||||
(sv-112 symbol)
|
||||
(sv-128 int)
|
||||
(sv-144 (function _varargs_ object))
|
||||
(sv-160 string)
|
||||
(sv-176 string)
|
||||
(sv-192 (function symbol bucket-id string vector font-color vector2h symbol))
|
||||
(sv-208 symbol)
|
||||
(sv-224 int)
|
||||
(sv-240 (function symbol bucket-id vector vector rgba symbol))
|
||||
(sv-256 symbol)
|
||||
(sv-272 int)
|
||||
(sv-288 pointer)
|
||||
(sv-304 pointer)
|
||||
)
|
||||
(when (and arg0 (not (or (= *master-mode* 'menu) (= *master-mode* 'progress))))
|
||||
(dotimes (s4-0 (-> this length))
|
||||
(let ((v1-8 (-> this level s4-0)))
|
||||
@@ -850,15 +808,13 @@
|
||||
(-> s1-1 root trans)
|
||||
(new 'static 'rgba :r #x80 :g #xff :b #x80 :a #x80)
|
||||
)
|
||||
(set! sv-48 add-debug-text-3d)
|
||||
(set! sv-64 #t)
|
||||
(set! sv-80 68)
|
||||
(let ((a2-2 (res-lump-struct s0-0 'name structure))
|
||||
(a3-2 (-> s1-1 root trans))
|
||||
(t0-1 1)
|
||||
(t1-1 (new 'static 'vector2h :y 8))
|
||||
)
|
||||
(sv-48 sv-64 (the-as bucket-id sv-80) (the-as string a2-2) a3-2 (the-as font-color t0-1) t1-1)
|
||||
(add-debug-text-3d
|
||||
#t
|
||||
(bucket-id debug-no-zbuf)
|
||||
(res-lump-struct s0-0 'name string)
|
||||
(-> s1-1 root trans)
|
||||
(font-color white)
|
||||
(new 'static 'vector2h :y 8)
|
||||
)
|
||||
(add-debug-text-3d
|
||||
#t
|
||||
@@ -870,23 +826,19 @@
|
||||
)
|
||||
(let ((s0-1 (res-lump-data (-> s1-1 entity) 'eco-info (pointer int32) :time 0.0)))
|
||||
(when s0-1
|
||||
(set! sv-96 add-debug-text-3d)
|
||||
(set! sv-112 #t)
|
||||
(set! sv-128 68)
|
||||
(set! sv-144 format)
|
||||
(set! sv-160 (clear *temp-string*))
|
||||
(set! sv-176 "~S ~D~%")
|
||||
(let ((a2-7 (pickup-type->string (the-as pickup-type (-> s0-1 0))))
|
||||
(a3-5 (-> s0-1 1))
|
||||
(let ((sv-96 add-debug-text-3d)
|
||||
(sv-112 #t)
|
||||
(sv-128 68)
|
||||
)
|
||||
(sv-144 sv-160 sv-176 a2-7 a3-5)
|
||||
)
|
||||
(let ((a2-8 *temp-string*)
|
||||
(a3-6 (-> s1-1 root trans))
|
||||
(t0-4 1)
|
||||
(t1-4 (new 'static 'vector2h :y 24))
|
||||
)
|
||||
(sv-96 sv-112 (the-as bucket-id sv-128) a2-8 a3-6 (the-as font-color t0-4) t1-4)
|
||||
(format (clear *temp-string*) "~S ~D~%" (pickup-type->string (the-as pickup-type (-> s0-1 0))) (-> s0-1 1))
|
||||
(sv-96
|
||||
sv-112
|
||||
(the-as bucket-id sv-128)
|
||||
*temp-string*
|
||||
(-> s1-1 root trans)
|
||||
(font-color white)
|
||||
(new 'static 'vector2h :y 24)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
@@ -910,18 +862,21 @@
|
||||
(new 'static 'rgba :r #xff :a #x80)
|
||||
)
|
||||
)
|
||||
(set! sv-192 add-debug-text-3d)
|
||||
(set! sv-208 #t)
|
||||
(set! sv-224 68)
|
||||
(let ((a2-13 (res-lump-struct s0-0 'name structure))
|
||||
(t0-8 (if (logtest? (-> s0-0 extra perm status) (entity-perm-status bit-0 bit-1))
|
||||
1
|
||||
5
|
||||
)
|
||||
)
|
||||
(t1-8 (new 'static 'vector2h :y 8))
|
||||
(let ((sv-192 add-debug-text-3d)
|
||||
(sv-208 #t)
|
||||
(sv-224 68)
|
||||
)
|
||||
(sv-192 sv-208 (the-as bucket-id sv-224) (the-as string a2-13) s1-0 (the-as font-color t0-8) t1-8)
|
||||
(sv-192
|
||||
sv-208
|
||||
(the-as bucket-id sv-224)
|
||||
(res-lump-struct s0-0 'name string)
|
||||
s1-0
|
||||
(if (logtest? (-> s0-0 extra perm status) (entity-perm-status bit-0 bit-1))
|
||||
(font-color white)
|
||||
(font-color yellow)
|
||||
)
|
||||
(new 'static 'vector2h :y 8)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
@@ -944,18 +899,22 @@
|
||||
(a1-16 (-> s0-2 extra vis-id))
|
||||
)
|
||||
(when (and v0-15 (or (= s5-1 #t) (= s5-1 'box)))
|
||||
(set! sv-240 add-debug-box)
|
||||
(set! sv-256 #t)
|
||||
(set! sv-272 68)
|
||||
(set! sv-288 (&+ v0-15 0))
|
||||
(set! sv-304 (&+ v0-15 16))
|
||||
(let ((t0-10 (if (is-object-visible? s3-1 a1-16)
|
||||
(the-as uint #x80808000)
|
||||
(the-as uint #x80800080)
|
||||
)
|
||||
)
|
||||
(let ((sv-240 add-debug-box)
|
||||
(sv-256 #t)
|
||||
(sv-272 68)
|
||||
(sv-288 (&+ v0-15 0))
|
||||
(sv-304 (&+ v0-15 16))
|
||||
)
|
||||
(sv-240 sv-256 (the-as bucket-id sv-272) (the-as vector sv-288) (the-as vector sv-304) (the-as rgba t0-10))
|
||||
(sv-240
|
||||
sv-256
|
||||
(the-as bucket-id sv-272)
|
||||
(the-as vector sv-288)
|
||||
(the-as vector sv-304)
|
||||
(if (is-object-visible? s3-1 a1-16)
|
||||
(new 'static 'rgba :g #x80 :b #x80 :a #x80)
|
||||
(new 'static 'rgba :r #x80 :b #x80 :a #x80)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
@@ -1614,7 +1573,6 @@
|
||||
;; INFO: Used lq/sq
|
||||
;; INFO: Return type mismatch int vs object.
|
||||
(defmethod actors-update ((this level-group))
|
||||
(local-vars (sv-16 vector) (sv-24 int) (sv-32 entity-links) (sv-48 int) (sv-64 string) (sv-80 int))
|
||||
(when *compact-actors*
|
||||
(if (and (= *compact-actors* 'debug) (= (-> *nk-dead-pool* alive-list prev) (-> *nk-dead-pool* first-gap)))
|
||||
(churn *nk-dead-pool* 1)
|
||||
@@ -1641,157 +1599,158 @@
|
||||
)
|
||||
)
|
||||
(when *spawn-actors*
|
||||
(set! sv-16 (camera-pos))
|
||||
(set! sv-24 0)
|
||||
(dotimes (s5-2 (-> this length))
|
||||
(let ((s4-2 (-> this level s5-2)))
|
||||
(when (= (-> s4-2 status) 'active)
|
||||
(cond
|
||||
((= (-> s4-2 display?) 'special)
|
||||
(let* ((s4-3 (-> s4-2 entity))
|
||||
(s3-1 (-> s4-3 length))
|
||||
)
|
||||
(dotimes (s2-0 s3-1)
|
||||
(let ((v1-44 (-> s4-3 data s2-0)))
|
||||
(cond
|
||||
((logtest? (-> v1-44 perm status) (entity-perm-status bit-7))
|
||||
(when (not (or (-> v1-44 process) (logtest? (-> v1-44 perm status) (entity-perm-status bit-0 dead))))
|
||||
(birth! (-> v1-44 entity))
|
||||
(set! sv-24 (+ sv-24 1))
|
||||
(if (>= sv-24 (-> *ACTOR-bank* birth-max))
|
||||
(return (the-as object #f))
|
||||
)
|
||||
)
|
||||
(let ((sv-16 (camera-pos))
|
||||
(sv-24 0)
|
||||
)
|
||||
(dotimes (s5-2 (-> this length))
|
||||
(let ((s4-2 (-> this level s5-2)))
|
||||
(when (= (-> s4-2 status) 'active)
|
||||
(cond
|
||||
((= (-> s4-2 display?) 'special)
|
||||
(let* ((s4-3 (-> s4-2 entity))
|
||||
(s3-1 (-> s4-3 length))
|
||||
)
|
||||
(else
|
||||
(if (and (-> v1-44 process) (not (logtest? (-> v1-44 perm status) (entity-perm-status bit-3))))
|
||||
(kill! (-> v1-44 entity))
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
((= (-> s4-2 display?) 'special-vis)
|
||||
(let* ((s3-2 (-> s4-2 entity))
|
||||
(s2-1 (-> s3-2 length))
|
||||
)
|
||||
(dotimes (s1-0 s2-1)
|
||||
(let ((s0-0 (-> s3-2 data s1-0)))
|
||||
(cond
|
||||
((and (logtest? (-> s0-0 perm status) (entity-perm-status bit-7)) (is-object-visible? s4-2 (-> s0-0 vis-id)))
|
||||
(when (not (or (-> s0-0 process) (logtest? (-> s0-0 perm status) (entity-perm-status bit-0 dead))))
|
||||
(birth! (-> s0-0 entity))
|
||||
(set! sv-24 (+ sv-24 1))
|
||||
)
|
||||
)
|
||||
(else
|
||||
(when (and (-> s0-0 process) (not (logtest? (-> s0-0 perm status) (entity-perm-status bit-3))))
|
||||
(kill! (-> s0-0 entity))
|
||||
(set! sv-24 (+ sv-24 1))
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(if (>= sv-24 (-> *ACTOR-bank* birth-max))
|
||||
(return (the-as object #f))
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
((= (-> s4-2 display?) 'actor)
|
||||
(let* ((s4-4 (-> s4-2 entity))
|
||||
(s3-3 (-> s4-4 length))
|
||||
)
|
||||
(dotimes (s2-2 s3-3)
|
||||
(let ((v1-84 (-> s4-4 data s2-2)))
|
||||
(cond
|
||||
(#t
|
||||
(when (not (or (-> v1-84 process) (logtest? (-> v1-84 perm status) (entity-perm-status bit-0 dead))))
|
||||
(birth! (-> v1-84 entity))
|
||||
(set! sv-24 (+ sv-24 1))
|
||||
(if (>= sv-24 (-> *ACTOR-bank* birth-max))
|
||||
(return (the-as object #f))
|
||||
)
|
||||
)
|
||||
)
|
||||
(else
|
||||
(if (and (-> v1-84 process) (not (logtest? (-> v1-84 perm status) (entity-perm-status bit-3))))
|
||||
(kill! (-> v1-84 entity))
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
((not *vis-actors*)
|
||||
(let* ((s4-5 (-> s4-2 entity))
|
||||
(s3-4 (-> s4-5 length))
|
||||
)
|
||||
(dotimes (s2-3 s3-4)
|
||||
(let ((s1-1 (-> s4-5 data s2-3)))
|
||||
(cond
|
||||
((and (< (vector-vector-distance (-> s1-1 trans) sv-16) (-> *ACTOR-bank* birth-dist))
|
||||
(not (logtest? (-> s1-1 perm status) (entity-perm-status bit-9 bit-10)))
|
||||
)
|
||||
(when (not (or (-> s1-1 process) (logtest? (-> s1-1 perm status) (entity-perm-status bit-0 dead))))
|
||||
(birth! (-> s1-1 entity))
|
||||
(set! sv-24 (+ sv-24 1))
|
||||
(if (>= sv-24 (-> *ACTOR-bank* birth-max))
|
||||
(return (the-as object #f))
|
||||
)
|
||||
)
|
||||
)
|
||||
(else
|
||||
(if (and (-> s1-1 process) (not (logtest? (-> s1-1 perm status) (entity-perm-status bit-3))))
|
||||
(kill! (-> s1-1 entity))
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(*vis-actors*
|
||||
(when (not (and (-> s4-2 vis-info 0) (-> s4-2 all-visible?)))
|
||||
(let* ((s3-5 (-> s4-2 entity))
|
||||
(s2-4 (-> s3-5 length))
|
||||
(s0-1 #f)
|
||||
)
|
||||
(dotimes (s1-2 s2-4)
|
||||
(set! sv-32 (-> s3-5 data s1-2))
|
||||
(cond
|
||||
((and (is-object-visible? s4-2 (-> sv-32 vis-id))
|
||||
(not (logtest? (-> sv-32 perm status) (entity-perm-status bit-9 bit-10)))
|
||||
)
|
||||
(when (not (or (-> sv-32 process) (logtest? (-> sv-32 perm status) (entity-perm-status bit-0 dead)) s0-1))
|
||||
(birth! (-> sv-32 entity))
|
||||
(set! sv-24 (+ sv-24 1))
|
||||
(when (< (/ (the float (memory-free *nk-dead-pool*)) (the float (memory-total *nk-dead-pool*))) 0.1)
|
||||
(let ((s0-2 format))
|
||||
(set! sv-48 0)
|
||||
(set! sv-64 "WARNING: low actor memory, no birth triggered!!! ~D/~D~%")
|
||||
(set! sv-80 (memory-free *nk-dead-pool*))
|
||||
(let ((a3-2 (memory-total *nk-dead-pool*)))
|
||||
(s0-2 sv-48 sv-64 sv-80 a3-2)
|
||||
)
|
||||
)
|
||||
(set! s0-1 #t)
|
||||
)
|
||||
)
|
||||
)
|
||||
(else
|
||||
(when (and (-> sv-32 process) (not (logtest? (-> sv-32 perm status) (entity-perm-status bit-3))))
|
||||
(kill! (-> sv-32 entity))
|
||||
(set! sv-24 (+ sv-24 1))
|
||||
(dotimes (s2-0 s3-1)
|
||||
(let ((v1-44 (-> s4-3 data s2-0)))
|
||||
(cond
|
||||
((logtest? (-> v1-44 perm status) (entity-perm-status bit-7))
|
||||
(when (not (or (-> v1-44 process) (logtest? (-> v1-44 perm status) (entity-perm-status bit-0 dead))))
|
||||
(birth! (-> v1-44 entity))
|
||||
(+! sv-24 1)
|
||||
(if (>= sv-24 (-> *ACTOR-bank* birth-max))
|
||||
(return (the-as object #f))
|
||||
)
|
||||
)
|
||||
)
|
||||
(else
|
||||
(if (and (-> v1-44 process) (not (logtest? (-> v1-44 perm status) (entity-perm-status bit-3))))
|
||||
(kill! (-> v1-44 entity))
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
((= (-> s4-2 display?) 'special-vis)
|
||||
(let* ((s3-2 (-> s4-2 entity))
|
||||
(s2-1 (-> s3-2 length))
|
||||
)
|
||||
(if (>= sv-24 (-> *ACTOR-bank* birth-max))
|
||||
(return (the-as object #f))
|
||||
(dotimes (s1-0 s2-1)
|
||||
(let ((s0-0 (-> s3-2 data s1-0)))
|
||||
(cond
|
||||
((and (logtest? (-> s0-0 perm status) (entity-perm-status bit-7)) (is-object-visible? s4-2 (-> s0-0 vis-id)))
|
||||
(when (not (or (-> s0-0 process) (logtest? (-> s0-0 perm status) (entity-perm-status bit-0 dead))))
|
||||
(birth! (-> s0-0 entity))
|
||||
(+! sv-24 1)
|
||||
)
|
||||
)
|
||||
(else
|
||||
(when (and (-> s0-0 process) (not (logtest? (-> s0-0 perm status) (entity-perm-status bit-3))))
|
||||
(kill! (-> s0-0 entity))
|
||||
(+! sv-24 1)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(if (>= sv-24 (-> *ACTOR-bank* birth-max))
|
||||
(return (the-as object #f))
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
((= (-> s4-2 display?) 'actor)
|
||||
(let* ((s4-4 (-> s4-2 entity))
|
||||
(s3-3 (-> s4-4 length))
|
||||
)
|
||||
(dotimes (s2-2 s3-3)
|
||||
(let ((v1-84 (-> s4-4 data s2-2)))
|
||||
(cond
|
||||
(#t
|
||||
(when (not (or (-> v1-84 process) (logtest? (-> v1-84 perm status) (entity-perm-status bit-0 dead))))
|
||||
(birth! (-> v1-84 entity))
|
||||
(+! sv-24 1)
|
||||
(if (>= sv-24 (-> *ACTOR-bank* birth-max))
|
||||
(return (the-as object #f))
|
||||
)
|
||||
)
|
||||
)
|
||||
(else
|
||||
(if (and (-> v1-84 process) (not (logtest? (-> v1-84 perm status) (entity-perm-status bit-3))))
|
||||
(kill! (-> v1-84 entity))
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
((not *vis-actors*)
|
||||
(let* ((s4-5 (-> s4-2 entity))
|
||||
(s3-4 (-> s4-5 length))
|
||||
)
|
||||
(dotimes (s2-3 s3-4)
|
||||
(let ((s1-1 (-> s4-5 data s2-3)))
|
||||
(cond
|
||||
((and (< (vector-vector-distance (-> s1-1 trans) sv-16) (-> *ACTOR-bank* birth-dist))
|
||||
(not (logtest? (-> s1-1 perm status) (entity-perm-status bit-9 bit-10)))
|
||||
)
|
||||
(when (not (or (-> s1-1 process) (logtest? (-> s1-1 perm status) (entity-perm-status bit-0 dead))))
|
||||
(birth! (-> s1-1 entity))
|
||||
(+! sv-24 1)
|
||||
(if (>= sv-24 (-> *ACTOR-bank* birth-max))
|
||||
(return (the-as object #f))
|
||||
)
|
||||
)
|
||||
)
|
||||
(else
|
||||
(if (and (-> s1-1 process) (not (logtest? (-> s1-1 perm status) (entity-perm-status bit-3))))
|
||||
(kill! (-> s1-1 entity))
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(*vis-actors*
|
||||
(when (not (and (-> s4-2 vis-info 0) (-> s4-2 all-visible?)))
|
||||
(let* ((s3-5 (-> s4-2 entity))
|
||||
(s2-4 (-> s3-5 length))
|
||||
(s0-1 #f)
|
||||
)
|
||||
(dotimes (s1-2 s2-4)
|
||||
(let ((sv-32 (-> s3-5 data s1-2)))
|
||||
(cond
|
||||
((and (is-object-visible? s4-2 (-> sv-32 vis-id))
|
||||
(not (logtest? (-> sv-32 perm status) (entity-perm-status bit-9 bit-10)))
|
||||
)
|
||||
(when (not (or (-> sv-32 process) (logtest? (-> sv-32 perm status) (entity-perm-status bit-0 dead)) s0-1))
|
||||
(birth! (-> sv-32 entity))
|
||||
(+! sv-24 1)
|
||||
(when (< (/ (the float (memory-free *nk-dead-pool*)) (the float (memory-total *nk-dead-pool*))) 0.1)
|
||||
(format
|
||||
0
|
||||
"WARNING: low actor memory, no birth triggered!!! ~D/~D~%"
|
||||
(memory-free *nk-dead-pool*)
|
||||
(memory-total *nk-dead-pool*)
|
||||
)
|
||||
(set! s0-1 #t)
|
||||
)
|
||||
)
|
||||
)
|
||||
(else
|
||||
(when (and (-> sv-32 process) (not (logtest? (-> sv-32 perm status) (entity-perm-status bit-3))))
|
||||
(kill! (-> sv-32 entity))
|
||||
(+! sv-24 1)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(if (>= sv-24 (-> *ACTOR-bank* birth-max))
|
||||
(return (the-as object #f))
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
+30
-32
@@ -736,9 +736,8 @@
|
||||
|
||||
;; definition for method 18 of type res-lump
|
||||
(defmethod add-32bit-data! ((this res-lump) (arg0 res-tag) (arg1 object))
|
||||
(local-vars (sv-16 object))
|
||||
(set! sv-16 arg1)
|
||||
(let* ((v1-0 arg0)
|
||||
(let* ((sv-16 arg1)
|
||||
(v1-0 arg0)
|
||||
(a1-4 (copy-and-set-field v1-0 inlined? 1))
|
||||
)
|
||||
(add-data! this a1-4 (& sv-16))
|
||||
@@ -748,20 +747,19 @@
|
||||
;; definition for method 21 of type res-lump
|
||||
;; INFO: Used lq/sq
|
||||
(defmethod get-curve-data! ((this res-lump) (arg0 curve) (arg1 symbol) (arg2 symbol) (arg3 float))
|
||||
(local-vars (sv-16 res-tag) (sv-32 res-tag))
|
||||
(let ((s5-0 #f))
|
||||
(set! sv-16 (new 'static 'res-tag))
|
||||
(let ((a0-2 ((method-of-object this get-property-data)
|
||||
this
|
||||
arg1
|
||||
'exact
|
||||
arg3
|
||||
(the-as pointer #f)
|
||||
(& sv-16)
|
||||
*res-static-buf*
|
||||
(let* ((sv-16 (new 'static 'res-tag))
|
||||
(a0-2 ((method-of-object this get-property-data)
|
||||
this
|
||||
arg1
|
||||
'exact
|
||||
arg3
|
||||
(the-as pointer #f)
|
||||
(& sv-16)
|
||||
*res-static-buf*
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(when a0-2
|
||||
(set! (-> arg0 cverts) (the-as (inline-array vector) a0-2))
|
||||
(set! (-> arg0 num-cverts) (the-as int (-> sv-16 elt-count)))
|
||||
@@ -774,18 +772,18 @@
|
||||
)
|
||||
(set! (-> arg0 num-cverts) 256)
|
||||
)
|
||||
(set! sv-32 (new 'static 'res-tag))
|
||||
(let ((a0-6 ((method-of-object this get-property-data)
|
||||
this
|
||||
arg2
|
||||
'exact
|
||||
arg3
|
||||
(the-as pointer #f)
|
||||
(& sv-32)
|
||||
*res-static-buf*
|
||||
(let* ((sv-32 (new 'static 'res-tag))
|
||||
(a0-6 ((method-of-object this get-property-data)
|
||||
this
|
||||
arg2
|
||||
'exact
|
||||
arg3
|
||||
(the-as pointer #f)
|
||||
(& sv-32)
|
||||
*res-static-buf*
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(when a0-6
|
||||
(set! (-> arg0 knots) (the-as (pointer float) a0-6))
|
||||
(set! (-> arg0 num-knots) (the-as int (-> sv-32 elt-count)))
|
||||
@@ -803,7 +801,6 @@
|
||||
;; INFO: Return type mismatch int vs res-lump.
|
||||
;; ERROR: Failed load: (set! v1-72 (l.wu (+ a0-58 -4))) at op 206
|
||||
(defmethod mem-usage ((this res-lump) (block memory-usage-block) (flags int))
|
||||
(local-vars (sv-16 int))
|
||||
(let ((mem-use-id 48)
|
||||
(mem-use-name "res")
|
||||
)
|
||||
@@ -864,12 +861,13 @@
|
||||
(+! (-> block data mem-use-id used) v1-63)
|
||||
(+! (-> block data mem-use-id total) (logand -16 (+ v1-63 15)))
|
||||
)
|
||||
(set! sv-16 0)
|
||||
(while (< sv-16 (-> (the-as array tag-data) length))
|
||||
(let ((a0-58 (-> (the-as (array object) tag-data) sv-16)))
|
||||
((method-of-type (rtype-of a0-58) mem-usage) a0-58 block flags)
|
||||
(let ((sv-16 0))
|
||||
(while (< sv-16 (-> (the-as array tag-data) length))
|
||||
(let ((a0-58 (-> (the-as (array object) tag-data) sv-16)))
|
||||
((method-of-type (rtype-of a0-58) mem-usage) a0-58 block flags)
|
||||
)
|
||||
(+! sv-16 1)
|
||||
)
|
||||
(set! sv-16 (+ sv-16 1))
|
||||
)
|
||||
)
|
||||
(else
|
||||
|
||||
+50
-128
@@ -264,17 +264,6 @@
|
||||
;; INFO: Used lq/sq
|
||||
;; INFO: Return type mismatch int vs object.
|
||||
(defmethod effect-control-method-10 ((this effect-control) (arg0 symbol) (arg1 float) (arg2 int))
|
||||
(local-vars
|
||||
(sv-160 int)
|
||||
(sv-176 symbol)
|
||||
(sv-192 symbol)
|
||||
(sv-208 symbol)
|
||||
(sv-224 int)
|
||||
(sv-240 symbol)
|
||||
(sv-256 symbol)
|
||||
(sv-272 symbol)
|
||||
(sv-288 res-lump)
|
||||
)
|
||||
(let ((s3-0 (-> arg0 value))
|
||||
(s5-0 (cond
|
||||
((< arg2 0)
|
||||
@@ -367,34 +356,16 @@
|
||||
s5-0
|
||||
)
|
||||
)
|
||||
(let ((s4-1 (get-process *default-dead-pool* part-tracker #x4000)))
|
||||
(when s4-1
|
||||
(let ((t9-7 (method-of-type part-tracker activate)))
|
||||
(t9-7 (the-as part-tracker s4-1) (-> this process) 'part-tracker (the-as pointer #x70004000))
|
||||
)
|
||||
(let ((s2-1 run-function-in-process)
|
||||
(s1-0 s4-1)
|
||||
(s0-0 part-tracker-init)
|
||||
)
|
||||
(set! sv-160 -1)
|
||||
(set! sv-176 (the-as symbol #f))
|
||||
(set! sv-192 (the-as symbol #f))
|
||||
(set! sv-208 (the-as symbol #f))
|
||||
(let ((t3-0 (vector<-cspace! (new 'stack-no-clear 'vector) (-> this process node-list data s5-0))))
|
||||
((the-as (function object object object object object object object object none) s2-1)
|
||||
s1-0
|
||||
s0-0
|
||||
(the-as sparticle-launch-group s3-0)
|
||||
sv-160
|
||||
sv-176
|
||||
sv-192
|
||||
sv-208
|
||||
t3-0
|
||||
)
|
||||
)
|
||||
)
|
||||
(-> s4-1 ppointer)
|
||||
)
|
||||
(process-spawn
|
||||
part-tracker
|
||||
:init part-tracker-init
|
||||
(the-as sparticle-launch-group s3-0)
|
||||
-1
|
||||
(the-as symbol #f)
|
||||
(the-as symbol #f)
|
||||
(the-as symbol #f)
|
||||
(vector<-cspace! (new 'stack-no-clear 'vector) (-> this process node-list data s5-0))
|
||||
:to (-> this process)
|
||||
)
|
||||
)
|
||||
)
|
||||
@@ -442,34 +413,16 @@
|
||||
s5-0
|
||||
)
|
||||
)
|
||||
(let ((s4-3 (get-process *default-dead-pool* part-tracker #x4000)))
|
||||
(when s4-3
|
||||
(let ((t9-19 (method-of-type part-tracker activate)))
|
||||
(t9-19 (the-as part-tracker s4-3) (-> this process) 'part-tracker (the-as pointer #x70004000))
|
||||
)
|
||||
(let ((s2-3 run-function-in-process)
|
||||
(s1-2 s4-3)
|
||||
(s0-2 part-tracker-init)
|
||||
)
|
||||
(set! sv-224 -1)
|
||||
(set! sv-240 (the-as symbol #f))
|
||||
(set! sv-256 (the-as symbol #f))
|
||||
(set! sv-272 (the-as symbol #f))
|
||||
(let ((t3-1 (vector<-cspace! (new 'stack-no-clear 'vector) (-> this process node-list data s5-0))))
|
||||
((the-as (function object object object object object object object object none) s2-3)
|
||||
s1-2
|
||||
s0-2
|
||||
s3-0
|
||||
sv-224
|
||||
sv-240
|
||||
sv-256
|
||||
sv-272
|
||||
t3-1
|
||||
)
|
||||
)
|
||||
)
|
||||
(-> s4-3 ppointer)
|
||||
)
|
||||
(process-spawn
|
||||
part-tracker
|
||||
:init part-tracker-init
|
||||
s3-0
|
||||
-1
|
||||
(the-as symbol #f)
|
||||
(the-as symbol #f)
|
||||
(the-as symbol #f)
|
||||
(vector<-cspace! (new 'stack-no-clear 'vector) (-> this process node-list data s5-0))
|
||||
:to (-> this process)
|
||||
)
|
||||
)
|
||||
((= (-> (the-as basic s3-0) type) sound-spec)
|
||||
@@ -511,17 +464,16 @@
|
||||
(set! (-> v1-67 death-timer-org) (-> v1-67 death-timer))
|
||||
(set! (-> v1-67 death-draw-overlap) (-> (the-as death-info s3-0) overlap))
|
||||
)
|
||||
(when (-> (the-as death-info s3-0) sound)
|
||||
(let* ((s2-5 this)
|
||||
(s1-3 (method-of-object s2-5 effect-control-method-12))
|
||||
(s0-3 (-> (the-as death-info s3-0) sound))
|
||||
)
|
||||
(set! sv-288 (-> this res))
|
||||
(let ((t1-11 (string->sound-name (symbol->string (-> (the-as death-info s3-0) sound)))))
|
||||
(s1-3 s2-5 s0-3 arg1 s5-0 sv-288 t1-11)
|
||||
(if (-> (the-as death-info s3-0) sound)
|
||||
(effect-control-method-12
|
||||
this
|
||||
(-> (the-as death-info s3-0) sound)
|
||||
arg1
|
||||
s5-0
|
||||
(-> this res)
|
||||
(string->sound-name (symbol->string (-> (the-as death-info s3-0) sound)))
|
||||
)
|
||||
)
|
||||
)
|
||||
(send-event (-> this process) 'death-start (the-as death-info s3-0))
|
||||
)
|
||||
(else
|
||||
@@ -537,16 +489,6 @@
|
||||
;; INFO: Used lq/sq
|
||||
;; INFO: Return type mismatch int vs none.
|
||||
(defmethod effect-control-method-11 ((this effect-control) (arg0 symbol) (arg1 float) (arg2 int) (arg3 basic) (arg4 pat-surface))
|
||||
(local-vars
|
||||
(sv-48
|
||||
(function sparticle-system sparticle-launcher vector sparticle-launch-state sparticle-launch-control float none)
|
||||
)
|
||||
(sv-64 sparticle-system)
|
||||
(sv-80
|
||||
(function sparticle-system sparticle-launcher vector sparticle-launch-state sparticle-launch-control float none)
|
||||
)
|
||||
(sv-96 sparticle-system)
|
||||
)
|
||||
(let ((s1-0 (the-as sound-name #f)))
|
||||
(let ((a0-4 (-> *display* frames (-> *display* last-screen) frame run-time)))
|
||||
(case arg0
|
||||
@@ -962,17 +904,9 @@
|
||||
)
|
||||
)
|
||||
)
|
||||
(when (nonzero? s0-0)
|
||||
(set! sv-48 sp-launch-particles-var)
|
||||
(set! sv-64 *sp-particle-system-2d*)
|
||||
(let ((a2-36 (vector<-cspace! (new 'stack-no-clear 'vector) (-> this process node-list data arg2)))
|
||||
(a3-6 #f)
|
||||
(t0-1 #f)
|
||||
(t1-1 1.0)
|
||||
)
|
||||
(sv-48 sv-64 s0-0 a2-36 (the-as sparticle-launch-state a3-6) (the-as sparticle-launch-control t0-1) t1-1)
|
||||
(if (nonzero? s0-0)
|
||||
(launch-particles s0-0 (vector<-cspace! (new 'stack-no-clear 'vector) (-> this process node-list data arg2)))
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(('effect-jump-droppings)
|
||||
@@ -1032,17 +966,9 @@
|
||||
)
|
||||
)
|
||||
)
|
||||
(when (nonzero? s0-1)
|
||||
(set! sv-80 sp-launch-particles-var)
|
||||
(set! sv-96 *sp-particle-system-2d*)
|
||||
(let ((a2-37 (vector<-cspace! (new 'stack-no-clear 'vector) (-> this process node-list data arg2)))
|
||||
(a3-7 #f)
|
||||
(t0-2 #f)
|
||||
(t1-2 1.0)
|
||||
)
|
||||
(sv-80 sv-96 s0-1 a2-37 (the-as sparticle-launch-state a3-7) (the-as sparticle-launch-control t0-2) t1-2)
|
||||
(if (nonzero? s0-1)
|
||||
(launch-particles s0-1 (vector<-cspace! (new 'stack-no-clear 'vector) (-> this process node-list data arg2)))
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
@@ -1058,9 +984,8 @@
|
||||
;; definition for method 12 of type effect-control
|
||||
;; INFO: Used lq/sq
|
||||
(defmethod effect-control-method-12 ((this effect-control) (arg0 symbol) (arg1 float) (arg2 int) (arg3 basic) (arg4 sound-name))
|
||||
(local-vars (sv-112 res-tag) (sv-128 sound-name) (sv-144 basic) (sv-160 (function vector vector float)))
|
||||
(set! sv-144 arg3)
|
||||
(let ((s0-0 arg4)
|
||||
(let ((sv-144 arg3)
|
||||
(s0-0 arg4)
|
||||
(gp-0 (new 'stack 'sound-spec))
|
||||
(s5-0 (if (< arg2 0)
|
||||
(the-as vector #f)
|
||||
@@ -1073,34 +998,31 @@
|
||||
(set! (-> gp-0 volume) 1024)
|
||||
(logior! (-> gp-0 mask) (sound-mask bend))
|
||||
(set! (-> gp-0 bend) (the int (* 327.66998 (rand-vu-float-range -100.0 100.0))))
|
||||
(set! sv-112 (new 'static 'res-tag))
|
||||
(let* ((t9-3 (method-of-type res-lump get-property-data))
|
||||
(a1-6 'effect-param)
|
||||
(a2-1 'exact)
|
||||
(a3-1 arg1)
|
||||
(t0-1 #f)
|
||||
(t1-1 (the-as (pointer res-tag) (& sv-112)))
|
||||
(t2-0 *res-static-buf*)
|
||||
(a1-7 (t9-3 (the-as res-lump sv-144) a1-6 a2-1 a3-1 (the-as pointer t0-1) t1-1 t2-0))
|
||||
(let* ((sv-112 (new 'static 'res-tag))
|
||||
(a1-7 ((method-of-type res-lump get-property-data)
|
||||
(the-as res-lump sv-144)
|
||||
'effect-param
|
||||
'exact
|
||||
arg1
|
||||
(the-as pointer #f)
|
||||
(& sv-112)
|
||||
*res-static-buf*
|
||||
)
|
||||
)
|
||||
)
|
||||
(if a1-7
|
||||
(effect-param->sound-spec gp-0 (the-as (pointer float) a1-7) (the-as int (-> sv-112 elt-count)))
|
||||
)
|
||||
)
|
||||
(if (and (nonzero? (-> gp-0 fo-max)) (let ((f30-1 (* 4096.0 (the float (-> gp-0 fo-max)))))
|
||||
(set! sv-160 vector-vector-distance)
|
||||
(let ((a0-6 (ear-trans))
|
||||
(a1-8 s5-0)
|
||||
)
|
||||
(< f30-1 (sv-160 a0-6 a1-8))
|
||||
)
|
||||
)
|
||||
(if (and (nonzero? (-> gp-0 fo-max))
|
||||
(< (* 4096.0 (the float (-> gp-0 fo-max))) (vector-vector-distance (ear-trans) s5-0))
|
||||
)
|
||||
(return 0)
|
||||
)
|
||||
(when *debug-effect-control*
|
||||
(set! sv-128 s0-0)
|
||||
(string<-charp (clear *temp-string*) (the-as (pointer uint8) (& sv-128)))
|
||||
(let ((sv-128 s0-0))
|
||||
(string<-charp (clear *temp-string*) (the-as (pointer uint8) (& sv-128)))
|
||||
)
|
||||
(format
|
||||
#t
|
||||
"(~5D) effect sound ~A ~A (~S) frame ~F joint ~D "
|
||||
|
||||
+3
-3
@@ -220,7 +220,6 @@
|
||||
;; definition for method 0 of type fact-info
|
||||
;; INFO: Used lq/sq
|
||||
(defmethod new fact-info ((allocation symbol) (type-to-make type) (proc process-drawable) (pkup-type pickup-type) (pkup-amount float))
|
||||
(local-vars (tag res-tag))
|
||||
(let ((this (object-new allocation type-to-make (the-as int (-> type-to-make size)))))
|
||||
(let ((ent (-> proc entity)))
|
||||
(when (zero? this)
|
||||
@@ -229,8 +228,9 @@
|
||||
(goto cfg-10)
|
||||
)
|
||||
(set! (-> this process) proc)
|
||||
(set! tag (new 'static 'res-tag))
|
||||
(let ((v1-6 (res-lump-data ent 'eco-info (pointer int32) :tag-ptr (& tag) :time 0.0)))
|
||||
(let* ((tag (new 'static 'res-tag))
|
||||
(v1-6 (res-lump-data ent 'eco-info (pointer int32) :tag-ptr (& tag) :time 0.0))
|
||||
)
|
||||
(cond
|
||||
(v1-6
|
||||
(let ((a0-6 (-> tag elt-count)))
|
||||
|
||||
+20
-24
@@ -139,7 +139,7 @@
|
||||
;; definition for method 9 of type game-info
|
||||
;; INFO: Used lq/sq
|
||||
(defmethod initialize! ((this game-info) (cause symbol) (save-to-load game-save) (continue-point-override string))
|
||||
(local-vars (v0-0 int) (sv-96 symbol))
|
||||
(local-vars (v0-0 int))
|
||||
(case cause
|
||||
(('dead)
|
||||
(+! (-> this total-deaths) 1)
|
||||
@@ -261,29 +261,25 @@
|
||||
(let ((t9-15 (method-of-type process activate)))
|
||||
(t9-15 s3-1 *default-pool* 'process (the-as pointer #x70004000))
|
||||
)
|
||||
(let ((s2-0 (the-as (function cpu-thread function object object object object pointer) set-to-run))
|
||||
(s1-0 (-> s3-1 main-thread))
|
||||
(s0-0 (lambda ((arg0 symbol) (arg1 symbol) (arg2 continue-point) (arg3 game-save))
|
||||
(stop arg0)
|
||||
(reset-actors arg1)
|
||||
(set-continue! *game-info* arg2)
|
||||
(when arg3
|
||||
(load-game! *game-info* arg3)
|
||||
(set! arg2 (get-or-create-continue! *game-info*))
|
||||
)
|
||||
(suspend)
|
||||
(start arg0 arg2)
|
||||
(none)
|
||||
)
|
||||
)
|
||||
)
|
||||
(set! sv-96 (-> this mode))
|
||||
(let ((t0-2 (get-or-create-continue! this))
|
||||
(t1-2 save-to-load)
|
||||
)
|
||||
(s2-0 s1-0 s0-0 sv-96 cause t0-2 t1-2)
|
||||
)
|
||||
)
|
||||
((the-as (function cpu-thread function object object object object pointer) set-to-run)
|
||||
(-> s3-1 main-thread)
|
||||
(lambda ((arg0 symbol) (arg1 symbol) (arg2 continue-point) (arg3 game-save))
|
||||
(stop arg0)
|
||||
(reset-actors arg1)
|
||||
(set-continue! *game-info* arg2)
|
||||
(when arg3
|
||||
(load-game! *game-info* arg3)
|
||||
(set! arg2 (get-or-create-continue! *game-info*))
|
||||
)
|
||||
(suspend)
|
||||
(start arg0 arg2)
|
||||
(none)
|
||||
)
|
||||
(-> this mode)
|
||||
cause
|
||||
(get-or-create-continue! this)
|
||||
save-to-load
|
||||
)
|
||||
(-> s3-1 ppointer)
|
||||
)
|
||||
)
|
||||
|
||||
+9
-14
@@ -260,7 +260,6 @@
|
||||
;; definition for method 11 of type game-save
|
||||
;; INFO: Used lq/sq
|
||||
(defmethod debug-print ((this game-save) (detail symbol))
|
||||
(local-vars (sv-16 int))
|
||||
(format #t "[~8x] ~A~%" this (-> this type))
|
||||
(format #t "~Tversion: ~D~%" (-> this version))
|
||||
(format #t "~Tallocated-length: ~D~%" (-> this allocated-length))
|
||||
@@ -284,19 +283,15 @@
|
||||
(tag-idx 0)
|
||||
)
|
||||
(while (< (the-as int tag) (the-as int (&-> this tag 0 user-int8 (-> this length))))
|
||||
(let ((s2-0 format)
|
||||
(s1-0 #t)
|
||||
(s0-0 "~T [~3D] ~-32S [~3D/~3D] ~12D ~8f ")
|
||||
)
|
||||
(set! sv-16 tag-idx)
|
||||
(let ((a3-2 (game-save-elt->string (-> tag elt-type)))
|
||||
(t0-1 (-> tag elt-count))
|
||||
(t1-1 (-> tag elt-size))
|
||||
(t2-1 (-> tag user-uint64))
|
||||
(t3-0 (-> tag user-float0))
|
||||
)
|
||||
(s2-0 s1-0 s0-0 sv-16 a3-2 t0-1 t1-1 t2-1 t3-0)
|
||||
)
|
||||
(format
|
||||
#t
|
||||
"~T [~3D] ~-32S [~3D/~3D] ~12D ~8f "
|
||||
tag-idx
|
||||
(game-save-elt->string (-> tag elt-type))
|
||||
(-> tag elt-count)
|
||||
(-> tag elt-size)
|
||||
(-> tag user-uint64)
|
||||
(-> tag user-float0)
|
||||
)
|
||||
(let ((v1-0 (-> tag elt-type)))
|
||||
(if (or (= v1-0 (game-save-elt name)) (= v1-0 (game-save-elt continue)))
|
||||
|
||||
+72
-78
@@ -117,74 +117,74 @@
|
||||
;; INFO: Used lq/sq
|
||||
;; INFO: Return type mismatch int vs cshape-moving-flags.
|
||||
(defun projectile-collision-reaction ((arg0 collide-shape-moving) (arg1 collide-shape-intersect) (arg2 vector) (arg3 vector))
|
||||
(local-vars (sv-64 vector) (sv-68 vector) (sv-72 matrix) (sv-80 int) (sv-224 symbol))
|
||||
(set! sv-64 (new-stack-vector0))
|
||||
(set! sv-68 (new-stack-vector0))
|
||||
(set! sv-72 (new 'stack-no-clear 'matrix))
|
||||
(set! sv-80 0)
|
||||
(set! (-> sv-72 vector 0 quad) (-> arg3 quad))
|
||||
(let ((a1-1 (new 'stack-no-clear 'vector)))
|
||||
(vector-float*! a1-1 (-> arg1 move-vec) (-> arg1 best-u))
|
||||
(move-by-vector! arg0 a1-1)
|
||||
)
|
||||
(set-and-handle-pat! arg0 (-> arg1 best-tri pat))
|
||||
(case (-> arg1 best-tri pat material)
|
||||
(((pat-material stopproj))
|
||||
(send-event (-> arg0 process) 'die)
|
||||
)
|
||||
)
|
||||
(vector-! sv-64 (-> arg1 best-from-prim prim-core world-sphere) (-> arg1 best-tri intersect))
|
||||
(set! (-> sv-64 w) 1.0)
|
||||
(vector-normalize! sv-64 1.0)
|
||||
(set! (-> arg0 coverage) (vector-dot sv-64 (-> arg1 best-tri normal)))
|
||||
(let ((v1-22 (-> sv-64 quad)))
|
||||
(set! (-> sv-68 quad) v1-22)
|
||||
)
|
||||
(when (= (-> arg1 best-u) 0.0)
|
||||
(let ((a1-7 (vector-float*! (new 'stack-no-clear 'vector) sv-68 32.0)))
|
||||
(move-by-vector! arg0 a1-7)
|
||||
)
|
||||
)
|
||||
(set! (-> arg0 surface-normal quad) (-> sv-68 quad))
|
||||
(set! (-> arg0 poly-normal quad) (-> arg1 best-tri normal quad))
|
||||
(set! (-> arg0 surface-angle) (vector-dot sv-68 (-> arg0 dynam gravity-normal)))
|
||||
(set! (-> arg0 poly-angle) (vector-dot (-> arg0 poly-normal) (-> arg0 dynam gravity-normal)))
|
||||
(set! (-> arg0 touch-angle)
|
||||
(vector-dot sv-68 (vector-normalize! (vector-negate! (new-stack-vector0) (the-as vector sv-72)) 1.0))
|
||||
(let ((sv-64 (new-stack-vector0))
|
||||
(sv-68 (new-stack-vector0))
|
||||
(sv-72 (new 'stack-no-clear 'matrix))
|
||||
(sv-80 0)
|
||||
)
|
||||
(if (< (-> arg0 poly-angle) -0.2)
|
||||
(set! sv-80 (logior sv-80 16))
|
||||
(set! (-> sv-72 vector 0 quad) (-> arg3 quad))
|
||||
(let ((a1-1 (new 'stack-no-clear 'vector)))
|
||||
(vector-float*! a1-1 (-> arg1 move-vec) (-> arg1 best-u))
|
||||
(move-by-vector! arg0 a1-1)
|
||||
)
|
||||
(set! sv-224 (< (fabs (-> arg0 surface-angle)) (-> *pat-mode-info* (-> arg0 cur-pat mode) wall-angle)))
|
||||
(if (not (logtest? (-> arg0 prev-status) (cshape-moving-flags onsurf)))
|
||||
(set! (-> arg0 ground-impact-vel) (- (vector-dot (-> arg0 transv) (-> arg0 dynam gravity-normal))))
|
||||
(set-and-handle-pat! arg0 (-> arg1 best-tri pat))
|
||||
(case (-> arg1 best-tri pat material)
|
||||
(((pat-material stopproj))
|
||||
(send-event (-> arg0 process) 'die)
|
||||
)
|
||||
)
|
||||
(set! sv-80 (logior sv-80 4))
|
||||
(if (-> arg1 best-to-prim)
|
||||
(set! sv-80 (logior sv-80 32))
|
||||
(vector-! sv-64 (-> arg1 best-from-prim prim-core world-sphere) (-> arg1 best-tri intersect))
|
||||
(set! (-> sv-64 w) 1.0)
|
||||
(vector-normalize! sv-64 1.0)
|
||||
(set! (-> arg0 coverage) (vector-dot sv-64 (-> arg1 best-tri normal)))
|
||||
(set! (-> sv-68 quad) (-> sv-64 quad))
|
||||
(when (= (-> arg1 best-u) 0.0)
|
||||
(let ((a1-7 (vector-float*! (new 'stack-no-clear 'vector) sv-68 32.0)))
|
||||
(move-by-vector! arg0 a1-7)
|
||||
)
|
||||
)
|
||||
(cond
|
||||
(sv-224
|
||||
(set! sv-80 (logior sv-80 8))
|
||||
(set! (-> arg0 cur-pat mode) 1)
|
||||
(set! (-> arg0 local-normal quad) (-> sv-68 quad))
|
||||
)
|
||||
(else
|
||||
(set! sv-80 (logior sv-80 1))
|
||||
(set! (-> arg0 local-normal quad) (-> sv-68 quad))
|
||||
(set! (-> arg0 surface-normal quad) (-> sv-68 quad))
|
||||
(set! (-> arg0 poly-normal quad) (-> arg1 best-tri normal quad))
|
||||
(set! (-> arg0 surface-angle) (vector-dot sv-68 (-> arg0 dynam gravity-normal)))
|
||||
(set! (-> arg0 poly-angle) (vector-dot (-> arg0 poly-normal) (-> arg0 dynam gravity-normal)))
|
||||
(set! (-> arg0 touch-angle)
|
||||
(vector-dot sv-68 (vector-normalize! (vector-negate! (new-stack-vector0) (the-as vector sv-72)) 1.0))
|
||||
)
|
||||
(if (< (-> arg0 poly-angle) -0.2)
|
||||
(logior! sv-80 16)
|
||||
)
|
||||
(let ((sv-224 (< (fabs (-> arg0 surface-angle)) (-> *pat-mode-info* (-> arg0 cur-pat mode) wall-angle))))
|
||||
(if (not (logtest? (-> arg0 prev-status) (cshape-moving-flags onsurf)))
|
||||
(set! (-> arg0 ground-impact-vel) (- (vector-dot (-> arg0 transv) (-> arg0 dynam gravity-normal))))
|
||||
)
|
||||
(logior! sv-80 4)
|
||||
(if (-> arg1 best-to-prim)
|
||||
(logior! sv-80 32)
|
||||
)
|
||||
(cond
|
||||
(sv-224
|
||||
(logior! sv-80 8)
|
||||
(set! (-> arg0 cur-pat mode) 1)
|
||||
(set! (-> arg0 local-normal quad) (-> sv-68 quad))
|
||||
)
|
||||
(else
|
||||
(logior! sv-80 1)
|
||||
(set! (-> arg0 local-normal quad) (-> sv-68 quad))
|
||||
)
|
||||
)
|
||||
(vector-reflect-flat-above! arg2 (the-as vector sv-72) sv-68)
|
||||
(when (and (not sv-224) (>= (-> arg0 coverage) 0.9))
|
||||
(logior! sv-80 2)
|
||||
(set! (-> arg0 ground-poly-normal quad) (-> arg0 poly-normal quad))
|
||||
(when (!= (-> arg0 poly-pat mode) (pat-mode wall))
|
||||
(set! (-> arg0 ground-pat) (-> arg0 poly-pat))
|
||||
(set! (-> arg0 ground-touch-point quad) (-> arg1 best-tri intersect quad))
|
||||
)
|
||||
)
|
||||
)
|
||||
(logior! (-> arg0 status) sv-80)
|
||||
(the-as cshape-moving-flags sv-80)
|
||||
)
|
||||
(vector-reflect-flat-above! arg2 (the-as vector sv-72) sv-68)
|
||||
(when (and (not sv-224) (>= (-> arg0 coverage) 0.9))
|
||||
(set! sv-80 (logior sv-80 2))
|
||||
(set! (-> arg0 ground-poly-normal quad) (-> arg0 poly-normal quad))
|
||||
(when (!= (-> arg0 poly-pat mode) (pat-mode wall))
|
||||
(set! (-> arg0 ground-pat) (-> arg0 poly-pat))
|
||||
(set! (-> arg0 ground-touch-point quad) (-> arg1 best-tri intersect quad))
|
||||
)
|
||||
)
|
||||
(logior! (-> arg0 status) sv-80)
|
||||
(the-as cshape-moving-flags sv-80)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
@@ -1219,7 +1219,6 @@
|
||||
;; INFO: Used lq/sq
|
||||
;; INFO: Return type mismatch int vs none.
|
||||
(defun spawn-projectile-blue ((arg0 target))
|
||||
(local-vars (sv-48 entity-actor))
|
||||
(with-pp
|
||||
(when arg0
|
||||
(let ((s3-0 (rand-vu-int-range 3 (+ (-> arg0 node-list length) -1)))
|
||||
@@ -1240,22 +1239,17 @@
|
||||
(let ((s2-0 run-function-in-process)
|
||||
(s1-0 s4-1)
|
||||
(s0-0 projectile-init-by-other)
|
||||
(sv-48 (-> pp entity))
|
||||
)
|
||||
(set! sv-48 (-> pp entity))
|
||||
(let ((a3-1 (vector<-cspace! (new 'stack-no-clear 'vector) (-> arg0 node-list data s3-0)))
|
||||
(t1-0 8)
|
||||
(t2-0 (process->handle pp))
|
||||
)
|
||||
((the-as (function process function object object object object object object) s2-0)
|
||||
s1-0
|
||||
s0-0
|
||||
sv-48
|
||||
a3-1
|
||||
gp-0
|
||||
t1-0
|
||||
t2-0
|
||||
)
|
||||
)
|
||||
((the-as (function process function object object object object object object) s2-0)
|
||||
s1-0
|
||||
s0-0
|
||||
sv-48
|
||||
(vector<-cspace! (new 'stack-no-clear 'vector) (-> arg0 node-list data s3-0))
|
||||
gp-0
|
||||
8
|
||||
(process->handle pp)
|
||||
)
|
||||
)
|
||||
(-> s4-1 ppointer)
|
||||
)
|
||||
|
||||
+42
-73
@@ -52,26 +52,6 @@
|
||||
;; INFO: Used lq/sq
|
||||
;; INFO: Return type mismatch int vs none.
|
||||
(defmethod debug-draw ((this cylinder) (arg0 vector4w))
|
||||
(local-vars
|
||||
(sv-896 matrix)
|
||||
(sv-912 int)
|
||||
(sv-928 (function vector vector vector float vector))
|
||||
(sv-944 vector)
|
||||
(sv-960 vector)
|
||||
(sv-976 vector)
|
||||
(sv-992 (function vector vector vector float vector))
|
||||
(sv-1008 vector)
|
||||
(sv-1024 vector)
|
||||
(sv-1040 vector)
|
||||
(sv-1056 (function vector vector vector float vector))
|
||||
(sv-1072 vector)
|
||||
(sv-1088 vector)
|
||||
(sv-1104 vector)
|
||||
(sv-1120 (function vector vector vector float vector))
|
||||
(sv-1136 vector)
|
||||
(sv-1152 vector)
|
||||
(sv-1168 vector)
|
||||
)
|
||||
(rlet ((vf0 :class vf)
|
||||
(vf4 :class vf)
|
||||
(vf5 :class vf)
|
||||
@@ -92,49 +72,37 @@
|
||||
(s3-0 (new 'stack-no-clear 'matrix))
|
||||
)
|
||||
(matrix-axis-angle! s3-0 (-> this axis) 4096.0)
|
||||
(set! sv-896 (new 'stack-no-clear 'matrix))
|
||||
(vector-matrix*! (the-as vector sv-896) (-> this origin) s3-0)
|
||||
(let ((v1-5 (-> s3-0 vector 3)))
|
||||
(.lvf vf4 (&-> (-> this origin) quad))
|
||||
(.lvf vf5 (&-> sv-896 vector 0 quad))
|
||||
(.mov.vf.w vf6 vf0)
|
||||
(.sub.vf.xyz vf6 vf4 vf5)
|
||||
(.svf (&-> v1-5 quad) vf6)
|
||||
(let ((sv-896 (new 'stack-no-clear 'matrix)))
|
||||
(vector-matrix*! (the-as vector sv-896) (-> this origin) s3-0)
|
||||
(let ((v1-5 (-> s3-0 vector 3)))
|
||||
(.lvf vf4 (&-> (-> this origin) quad))
|
||||
(.lvf vf5 (&-> sv-896 vector 0 quad))
|
||||
(.mov.vf.w vf6 vf0)
|
||||
(.sub.vf.xyz vf6 vf4 vf5)
|
||||
(.svf (&-> v1-5 quad) vf6)
|
||||
)
|
||||
)
|
||||
(set! sv-912 0)
|
||||
(while (< sv-912 8)
|
||||
(vector+! (-> s5-0 vert (+ sv-912 8)) (-> this origin) s1-0)
|
||||
(vector+float*! (-> s5-0 vert (+ sv-912 8)) (-> s5-0 vert (+ sv-912 8)) s0-0 (the float sv-912))
|
||||
(set! sv-912 (+ sv-912 1))
|
||||
(let ((sv-912 0))
|
||||
(while (< sv-912 8)
|
||||
(vector+! (-> s5-0 vert (+ sv-912 8)) (-> this origin) s1-0)
|
||||
(vector+float*! (-> s5-0 vert (+ sv-912 8)) (-> s5-0 vert (+ sv-912 8)) s0-0 (the float sv-912))
|
||||
(+! sv-912 1)
|
||||
)
|
||||
)
|
||||
(dotimes (s0-1 8)
|
||||
(set! sv-928 vector+float*!)
|
||||
(set! sv-944 (-> s5-0 vert s0-1))
|
||||
(set! sv-960 (-> this origin))
|
||||
(set! sv-976 s1-0)
|
||||
(let ((a3-1 (cos (* 2048.0 (the float (- 7 s0-1))))))
|
||||
(sv-928 sv-944 sv-960 sv-976 a3-1)
|
||||
(vector+float*! (-> s5-0 vert s0-1) (-> this origin) s1-0 (cos (* 2048.0 (the float (- 7 s0-1)))))
|
||||
(vector+float*!
|
||||
(-> s5-0 vert s0-1)
|
||||
(-> s5-0 vert s0-1)
|
||||
(-> this axis)
|
||||
(* (- (-> this radius)) (sin (* 2048.0 (the float (- 7 s0-1)))))
|
||||
)
|
||||
(set! sv-992 vector+float*!)
|
||||
(set! sv-1008 (-> s5-0 vert s0-1))
|
||||
(set! sv-1024 (-> s5-0 vert s0-1))
|
||||
(set! sv-1040 (-> this axis))
|
||||
(let ((a3-2 (* (- (-> this radius)) (sin (* 2048.0 (the float (- 7 s0-1)))))))
|
||||
(sv-992 sv-1008 sv-1024 sv-1040 a3-2)
|
||||
)
|
||||
(set! sv-1056 vector+float*!)
|
||||
(set! sv-1072 (-> s5-0 vert (+ s0-1 16)))
|
||||
(set! sv-1088 (-> this origin))
|
||||
(set! sv-1104 s1-0)
|
||||
(let ((a3-3 (cos (* 2048.0 (the float s0-1)))))
|
||||
(sv-1056 sv-1072 sv-1088 sv-1104 a3-3)
|
||||
)
|
||||
(set! sv-1120 vector+float*!)
|
||||
(set! sv-1136 (-> s5-0 vert (+ s0-1 16)))
|
||||
(set! sv-1152 (-> s5-0 vert (+ s0-1 16)))
|
||||
(set! sv-1168 (-> this axis))
|
||||
(let ((a3-4 (+ (-> this length) (* (-> this radius) (sin (* 2048.0 (the float s0-1)))))))
|
||||
(sv-1120 sv-1136 sv-1152 sv-1168 a3-4)
|
||||
(vector+float*! (-> s5-0 vert (+ s0-1 16)) (-> this origin) s1-0 (cos (* 2048.0 (the float s0-1))))
|
||||
(vector+float*!
|
||||
(-> s5-0 vert (+ s0-1 16))
|
||||
(-> s5-0 vert (+ s0-1 16))
|
||||
(-> this axis)
|
||||
(+ (-> this length) (* (-> this radius) (sin (* 2048.0 (the float s0-1)))))
|
||||
)
|
||||
)
|
||||
(dotimes (s2-1 16)
|
||||
@@ -238,7 +206,6 @@
|
||||
;; INFO: Used lq/sq
|
||||
;; INFO: Return type mismatch int vs none.
|
||||
(defmethod debug-draw ((this cylinder-flat) (arg0 vector4w))
|
||||
(local-vars (sv-448 vector) (sv-464 int))
|
||||
(rlet ((vf0 :class vf)
|
||||
(vf4 :class vf)
|
||||
(vf5 :class vf)
|
||||
@@ -259,20 +226,22 @@
|
||||
(s3-0 (new 'stack-no-clear 'matrix))
|
||||
)
|
||||
(matrix-axis-angle! s3-0 (-> this axis) 4096.0)
|
||||
(set! sv-448 (new 'stack-no-clear 'vector))
|
||||
(vector-matrix*! sv-448 (-> this origin) s3-0)
|
||||
(let ((v1-5 (-> s3-0 vector 3)))
|
||||
(.lvf vf4 (&-> (-> this origin) quad))
|
||||
(.lvf vf5 (&-> sv-448 quad))
|
||||
(.mov.vf.w vf6 vf0)
|
||||
(.sub.vf.xyz vf6 vf4 vf5)
|
||||
(.svf (&-> v1-5 quad) vf6)
|
||||
(let ((sv-448 (new 'stack-no-clear 'vector)))
|
||||
(vector-matrix*! sv-448 (-> this origin) s3-0)
|
||||
(let ((v1-5 (-> s3-0 vector 3)))
|
||||
(.lvf vf4 (&-> (-> this origin) quad))
|
||||
(.lvf vf5 (&-> sv-448 quad))
|
||||
(.mov.vf.w vf6 vf0)
|
||||
(.sub.vf.xyz vf6 vf4 vf5)
|
||||
(.svf (&-> v1-5 quad) vf6)
|
||||
)
|
||||
)
|
||||
(set! sv-464 0)
|
||||
(while (< sv-464 8)
|
||||
(vector+! (-> s5-0 vert (+ sv-464 1)) (-> this origin) s1-0)
|
||||
(vector+float*! (-> s5-0 vert (+ sv-464 1)) (-> s5-0 vert (+ sv-464 1)) s0-0 (the float sv-464))
|
||||
(set! sv-464 (+ sv-464 1))
|
||||
(let ((sv-464 0))
|
||||
(while (< sv-464 8)
|
||||
(vector+! (-> s5-0 vert (+ sv-464 1)) (-> this origin) s1-0)
|
||||
(vector+float*! (-> s5-0 vert (+ sv-464 1)) (-> s5-0 vert (+ sv-464 1)) s0-0 (the float sv-464))
|
||||
(+! sv-464 1)
|
||||
)
|
||||
)
|
||||
(set! (-> s5-0 vert 0 quad) (-> this origin quad))
|
||||
(vector+float*! (-> s5-0 vert 9) (-> this origin) (-> this axis) (-> this length))
|
||||
|
||||
+15
-50
@@ -360,9 +360,7 @@
|
||||
(defun matrix-from-two-vectors! ((arg0 matrix) (arg1 vector) (arg2 vector))
|
||||
(let* ((a1-3 (vector-normalize! (vector-cross! (new-stack-vector0) arg2 arg1) 1.0))
|
||||
(f0-1 (vector-dot arg1 arg2))
|
||||
(f1-0 1.0)
|
||||
(f2-0 f0-1)
|
||||
(f1-2 (sqrtf (- f1-0 (* f2-0 f2-0))))
|
||||
(f1-2 (sqrtf (- 1.0 (square f0-1))))
|
||||
)
|
||||
(matrix-axis-sin-cos! arg0 a1-3 f1-2 f0-1)
|
||||
)
|
||||
@@ -375,21 +373,10 @@
|
||||
(f30-0 (vector-dot arg1 arg2))
|
||||
(f28-0 (cos arg3))
|
||||
)
|
||||
(cond
|
||||
((< f30-0 f28-0)
|
||||
(matrix-axis-sin-cos! arg0 s4-1 (sin arg3) f28-0)
|
||||
)
|
||||
(else
|
||||
(let ((t9-5 matrix-axis-sin-cos!)
|
||||
(a0-6 arg0)
|
||||
(a1-4 s4-1)
|
||||
(f0-1 1.0)
|
||||
(f1-0 f30-0)
|
||||
)
|
||||
(t9-5 a0-6 a1-4 (sqrtf (- f0-1 (* f1-0 f1-0))) f30-0)
|
||||
)
|
||||
(if (< f30-0 f28-0)
|
||||
(matrix-axis-sin-cos! arg0 s4-1 (sin arg3) f28-0)
|
||||
(matrix-axis-sin-cos! arg0 s4-1 (sqrtf (- 1.0 (square f30-0))) f30-0)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
@@ -401,21 +388,10 @@
|
||||
(f30-0 (cos arg3))
|
||||
(f0-2 (+ 1.0 (* (+ -1.0 f28-0) arg4)))
|
||||
)
|
||||
(cond
|
||||
((< f0-2 f30-0)
|
||||
(matrix-axis-sin-cos! arg0 s4-1 (sin arg3) f30-0)
|
||||
)
|
||||
(else
|
||||
(let ((t9-5 matrix-axis-sin-cos!)
|
||||
(a0-6 arg0)
|
||||
(a1-4 s4-1)
|
||||
(f1-3 1.0)
|
||||
(f2-1 f0-2)
|
||||
)
|
||||
(t9-5 a0-6 a1-4 (sqrtf (- f1-3 (* f2-1 f2-1))) f0-2)
|
||||
)
|
||||
(if (< f0-2 f30-0)
|
||||
(matrix-axis-sin-cos! arg0 s4-1 (sin arg3) f30-0)
|
||||
(matrix-axis-sin-cos! arg0 s4-1 (sqrtf (- 1.0 (square f0-2))) f0-2)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
@@ -430,13 +406,8 @@
|
||||
(matrix-identity! arg0)
|
||||
)
|
||||
(else
|
||||
(let* ((f0-4 (cos (* arg3 (acos f0-1))))
|
||||
(t9-5 matrix-axis-sin-cos!)
|
||||
(a0-6 arg0)
|
||||
(f1-1 1.0)
|
||||
(f2-1 f0-4)
|
||||
)
|
||||
(t9-5 a0-6 gp-1 (sqrtf (- f1-1 (* f2-1 f2-1))) f0-4)
|
||||
(let ((f0-4 (cos (* arg3 (acos f0-1)))))
|
||||
(matrix-axis-sin-cos! arg0 gp-1 (sqrtf (- 1.0 (square f0-4))) f0-4)
|
||||
)
|
||||
)
|
||||
)
|
||||
@@ -549,7 +520,6 @@
|
||||
;; definition for function vector-vector-deg-slerp!
|
||||
;; INFO: Used lq/sq
|
||||
(defun vector-vector-deg-slerp! ((arg0 vector) (arg1 vector) (arg2 vector) (arg3 float) (arg4 vector))
|
||||
(local-vars (sv-112 (function float float float float)))
|
||||
(cond
|
||||
((>= 0.0 arg3)
|
||||
(set! (-> arg0 quad) (-> arg1 quad))
|
||||
@@ -563,15 +533,11 @@
|
||||
(s0-1 (forward-up->quaternion (new 'stack-no-clear 'quaternion) s0-0 arg4))
|
||||
(a2-5 (forward-up->quaternion (new 'stack-no-clear 'quaternion) s1-0 arg4))
|
||||
(a1-6 (quaternion-slerp! (new 'stack-no-clear 'quaternion) s0-1 a2-5 arg3))
|
||||
(s2-1 vector-normalize-copy!)
|
||||
(s1-1 arg0)
|
||||
(s0-2 (vector-z-quaternion! (new 'stack-no-clear 'vector) a1-6))
|
||||
)
|
||||
(set! sv-112 lerp)
|
||||
(let ((s3-1 (vector-length arg1))
|
||||
(a1-7 (vector-length arg2))
|
||||
)
|
||||
(s2-1 s1-1 s0-2 (sv-112 s3-1 a1-7 arg3))
|
||||
(vector-normalize-copy!
|
||||
arg0
|
||||
(vector-z-quaternion! (new 'stack-no-clear 'vector) a1-6)
|
||||
(lerp (vector-length arg1) (vector-length arg2) arg3)
|
||||
)
|
||||
)
|
||||
)
|
||||
@@ -1197,9 +1163,8 @@
|
||||
;; WARN: Stack slot offset 48 signed mismatch
|
||||
;; WARN: Stack slot offset 48 signed mismatch
|
||||
(defun curve-closest-point ((arg0 curve) (arg1 vector) (arg2 float) (arg3 float) (arg4 int) (arg5 float))
|
||||
(local-vars (sv-48 float))
|
||||
(set! sv-48 arg3)
|
||||
(let ((s3-0 arg4)
|
||||
(let ((sv-48 arg3)
|
||||
(s3-0 arg4)
|
||||
(gp-0 arg5)
|
||||
(f30-0 (curve-length arg0))
|
||||
(s2-0 (new 'stack-no-clear 'vector))
|
||||
|
||||
+3
-3
@@ -63,7 +63,6 @@
|
||||
;; INFO: Used lq/sq
|
||||
;; INFO: Return type mismatch object vs path-control.
|
||||
(defmethod new path-control ((allocation symbol) (type-to-make type) (proc process) (name symbol) (time float))
|
||||
(local-vars (tag res-tag))
|
||||
(let ((this (object-new allocation type-to-make (the-as int (-> type-to-make size)))))
|
||||
(when (zero? this)
|
||||
(go process-drawable-art-error "memory")
|
||||
@@ -80,8 +79,9 @@
|
||||
)
|
||||
)
|
||||
)
|
||||
(set! tag (new 'static 'res-tag))
|
||||
(let ((data (res-lump-data ent name pointer :tag-ptr (& tag) :time time)))
|
||||
(let* ((tag (new 'static 'res-tag))
|
||||
(data (res-lump-data ent name pointer :tag-ptr (& tag) :time time))
|
||||
)
|
||||
(cond
|
||||
(data
|
||||
(set! (-> this cverts) (the-as (inline-array vector) data))
|
||||
|
||||
+119
-116
@@ -27,140 +27,143 @@
|
||||
;; WARN: Stack slot offset 148 signed mismatch
|
||||
;; WARN: Stack slot offset 148 signed mismatch
|
||||
(defmethod init-vol! ((this plane-volume) (arg0 symbol) (arg1 vector-array) (arg2 vector-array))
|
||||
(local-vars
|
||||
(sv-144 vector)
|
||||
(sv-148 float)
|
||||
(sv-152 int)
|
||||
(sv-160 vector)
|
||||
(sv-176 vector)
|
||||
(sv-192 vector)
|
||||
(sv-208 vector)
|
||||
(sv-224 vector)
|
||||
(sv-240 int)
|
||||
(sv-256 int)
|
||||
)
|
||||
(set! (-> this volume-type) arg0)
|
||||
(set! (-> this point-count) 0)
|
||||
(set! (-> this first-point) (the-as (pointer vector) (-> arg1 data (-> arg1 length))))
|
||||
(set! (-> this normal-count) 0)
|
||||
(set! (-> this first-normal) (the-as (pointer vector) (-> arg2 data (-> arg2 length))))
|
||||
(dotimes (s3-0 (-> this num-planes))
|
||||
(set! sv-176 (new 'stack-no-clear 'vector))
|
||||
(set! (-> sv-176 quad) (the-as uint128 0))
|
||||
(set! sv-192 (new 'stack-no-clear 'vector))
|
||||
(set! (-> sv-192 quad) (the-as uint128 0))
|
||||
(set! sv-208 (new 'stack-no-clear 'vector))
|
||||
(set! (-> sv-208 quad) (the-as uint128 0))
|
||||
(set! sv-224 (new 'stack-no-clear 'vector))
|
||||
(set! (-> sv-224 quad) (the-as uint128 0))
|
||||
0.0
|
||||
0.0
|
||||
0.0
|
||||
(set! (-> (new 'stack-no-clear 'vector) quad) (the-as uint128 0))
|
||||
(let ((s1-0 (new-stack-vector0))
|
||||
(s0-0 0)
|
||||
(s2-0 (-> this plane))
|
||||
)
|
||||
(set! sv-240 0)
|
||||
(while (< sv-240 (-> this num-planes))
|
||||
(when (!= s3-0 sv-240)
|
||||
(vector-float*! sv-176 (the-as vector (-> s2-0 sv-240)) (-> s2-0 sv-240 w))
|
||||
(vector-cross! sv-192 (the-as vector (-> s2-0 sv-240)) (the-as vector (-> s2-0 s3-0)))
|
||||
(vector-normalize! sv-192 1.0)
|
||||
(vector-cross! sv-208 sv-192 (the-as vector (-> s2-0 sv-240)))
|
||||
(vector-normalize! sv-208 1.0)
|
||||
(let ((f0-4 (plane-volume-intersect-dist (-> s2-0 s3-0) sv-176 sv-208)))
|
||||
(when (!= f0-4 409600000.0)
|
||||
(vector+float*! sv-224 sv-176 sv-208 f0-4)
|
||||
(set! sv-144 (new-stack-vector0))
|
||||
(set! sv-148 0.0)
|
||||
(set! sv-152 0)
|
||||
(set! sv-160 (new-stack-vector0))
|
||||
(set! (-> sv-144 quad) (-> sv-224 quad))
|
||||
(set! sv-256 0)
|
||||
(while (< sv-256 (-> this num-planes))
|
||||
(when (and (!= sv-256 s3-0) (!= sv-256 sv-240))
|
||||
(let ((f30-0 (plane-volume-intersect-dist (-> s2-0 sv-256) sv-144 sv-192)))
|
||||
(cond
|
||||
((= f30-0 409600000.0)
|
||||
)
|
||||
((zero? sv-152)
|
||||
(vector+float*! sv-144 sv-144 sv-192 f30-0)
|
||||
(set! (-> sv-160 quad) (-> s2-0 sv-256 quad))
|
||||
(set! sv-148 8192000.0)
|
||||
(set! sv-152 1)
|
||||
)
|
||||
((begin (vector-float*! sv-224 sv-192 f30-0) (>= (vector-dot sv-224 sv-160) 0.0))
|
||||
)
|
||||
((>= (vector-dot sv-224 (the-as vector (-> s2-0 sv-256))) 0.0)
|
||||
(when (< (fabs f30-0) (fabs sv-148))
|
||||
(set! sv-148 f30-0)
|
||||
(set! sv-152 (+ sv-152 1))
|
||||
)
|
||||
)
|
||||
(else
|
||||
(vector+float*! sv-144 sv-144 sv-192 f30-0)
|
||||
(set! (-> sv-160 quad) (-> s2-0 sv-256 quad))
|
||||
(set! sv-152 (+ sv-152 1))
|
||||
(if (< (fabs f30-0) (fabs sv-148))
|
||||
(set! sv-148 (- sv-148 f30-0))
|
||||
(set! sv-148 0.0)
|
||||
(let ((sv-176 (new 'stack-no-clear 'vector)))
|
||||
(set! (-> sv-176 quad) (the-as uint128 0))
|
||||
(let ((sv-192 (new 'stack-no-clear 'vector)))
|
||||
(set! (-> sv-192 quad) (the-as uint128 0))
|
||||
(let ((sv-208 (new 'stack-no-clear 'vector)))
|
||||
(set! (-> sv-208 quad) (the-as uint128 0))
|
||||
(let ((sv-224 (new 'stack-no-clear 'vector)))
|
||||
(set! (-> sv-224 quad) (the-as uint128 0))
|
||||
0.0
|
||||
0.0
|
||||
0.0
|
||||
(set! (-> (new 'stack-no-clear 'vector) quad) (the-as uint128 0))
|
||||
(let ((s1-0 (new-stack-vector0))
|
||||
(s0-0 0)
|
||||
(s2-0 (-> this plane))
|
||||
)
|
||||
(let ((sv-240 0))
|
||||
(while (< sv-240 (-> this num-planes))
|
||||
(when (!= s3-0 sv-240)
|
||||
(vector-float*! sv-176 (the-as vector (-> s2-0 sv-240)) (-> s2-0 sv-240 w))
|
||||
(vector-cross! sv-192 (the-as vector (-> s2-0 sv-240)) (the-as vector (-> s2-0 s3-0)))
|
||||
(vector-normalize! sv-192 1.0)
|
||||
(vector-cross! sv-208 sv-192 (the-as vector (-> s2-0 sv-240)))
|
||||
(vector-normalize! sv-208 1.0)
|
||||
(let ((f0-4 (plane-volume-intersect-dist (-> s2-0 s3-0) sv-176 sv-208)))
|
||||
(when (!= f0-4 409600000.0)
|
||||
(vector+float*! sv-224 sv-176 sv-208 f0-4)
|
||||
(let ((sv-144 (new-stack-vector0))
|
||||
(sv-148 0.0)
|
||||
(sv-152 0)
|
||||
)
|
||||
(let ((sv-160 (new-stack-vector0)))
|
||||
(set! (-> sv-144 quad) (-> sv-224 quad))
|
||||
(let ((sv-256 0))
|
||||
(while (< sv-256 (-> this num-planes))
|
||||
(when (and (!= sv-256 s3-0) (!= sv-256 sv-240))
|
||||
(let ((f30-0 (plane-volume-intersect-dist (-> s2-0 sv-256) sv-144 sv-192)))
|
||||
(cond
|
||||
((= f30-0 409600000.0)
|
||||
)
|
||||
((zero? sv-152)
|
||||
(vector+float*! sv-144 sv-144 sv-192 f30-0)
|
||||
(set! (-> sv-160 quad) (-> s2-0 sv-256 quad))
|
||||
(set! sv-148 8192000.0)
|
||||
(set! sv-152 1)
|
||||
)
|
||||
((begin (vector-float*! sv-224 sv-192 f30-0) (>= (vector-dot sv-224 sv-160) 0.0))
|
||||
)
|
||||
((>= (vector-dot sv-224 (the-as vector (-> s2-0 sv-256))) 0.0)
|
||||
(when (< (fabs f30-0) (fabs sv-148))
|
||||
(set! sv-148 f30-0)
|
||||
(+! sv-152 1)
|
||||
)
|
||||
)
|
||||
(else
|
||||
(vector+float*! sv-144 sv-144 sv-192 f30-0)
|
||||
(set! (-> sv-160 quad) (-> s2-0 sv-256 quad))
|
||||
(+! sv-152 1)
|
||||
(set! sv-148 (cond
|
||||
((< (fabs f30-0) (fabs sv-148))
|
||||
(set! sv-148 (- sv-148 f30-0))
|
||||
sv-148
|
||||
)
|
||||
(else
|
||||
0.0
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(+! sv-256 1)
|
||||
)
|
||||
)
|
||||
)
|
||||
(cond
|
||||
((zero? sv-152)
|
||||
)
|
||||
((= sv-148 0.0)
|
||||
)
|
||||
(else
|
||||
(dotimes (v1-70 (-> this num-planes))
|
||||
(when (and (!= v1-70 s3-0) (!= v1-70 sv-240))
|
||||
(if (< 4096.0 (- (vector-dot sv-144 (the-as vector (-> s2-0 v1-70))) (the-as float (-> s2-0 v1-70 w))))
|
||||
(goto cfg-42)
|
||||
)
|
||||
)
|
||||
)
|
||||
(vector+float*! sv-224 sv-144 sv-192 sv-148)
|
||||
(cond
|
||||
((< (-> arg1 allocated-length) (+ (-> arg1 length) 2))
|
||||
(format 0 "ERROR <AG>: vol-control #x~X out of volume points~%" this)
|
||||
)
|
||||
(else
|
||||
(set! (-> arg1 data (-> arg1 length) quad) (-> sv-144 quad))
|
||||
(set! (-> arg1 data (+ (-> arg1 length) 1) quad) (-> sv-224 quad))
|
||||
(+! (-> arg1 length) 2)
|
||||
(+! (-> this point-count) 2)
|
||||
)
|
||||
)
|
||||
(vector+! s1-0 s1-0 sv-144)
|
||||
(vector+! s1-0 s1-0 sv-224)
|
||||
(+! s0-0 2)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(label cfg-42)
|
||||
(+! sv-240 1)
|
||||
)
|
||||
(set! sv-256 (+ sv-256 1))
|
||||
)
|
||||
(cond
|
||||
((zero? sv-152)
|
||||
)
|
||||
((= sv-148 0.0)
|
||||
)
|
||||
(else
|
||||
(dotimes (v1-70 (-> this num-planes))
|
||||
(when (and (!= v1-70 s3-0) (!= v1-70 sv-240))
|
||||
(if (< 4096.0 (- (vector-dot sv-144 (the-as vector (-> s2-0 v1-70))) (the-as float (-> s2-0 v1-70 w))))
|
||||
(goto cfg-42)
|
||||
)
|
||||
)
|
||||
(when (nonzero? s0-0)
|
||||
(vector-float*! s1-0 s1-0 (/ 1.0 (the float s0-0)))
|
||||
(cond
|
||||
((< (-> arg2 allocated-length) (+ (-> arg2 length) 2))
|
||||
(format 0 "ERROR <AG>: vol-control #x~X out of volume normals~%" this)
|
||||
)
|
||||
(else
|
||||
(set! (-> arg2 data (-> arg2 length) quad) (-> s1-0 quad))
|
||||
(set! (-> arg2 data (+ (-> arg2 length) 1) quad) (-> s2-0 s3-0 quad))
|
||||
(+! (-> arg2 length) 2)
|
||||
(set! (-> this normal-count) (+ (-> this normal-count) 2))
|
||||
)
|
||||
(vector+float*! sv-224 sv-144 sv-192 sv-148)
|
||||
(cond
|
||||
((< (-> arg1 allocated-length) (+ (-> arg1 length) 2))
|
||||
(format 0 "ERROR <AG>: vol-control #x~X out of volume points~%" this)
|
||||
)
|
||||
(else
|
||||
(set! (-> arg1 data (-> arg1 length) quad) (-> sv-144 quad))
|
||||
(set! (-> arg1 data (+ (-> arg1 length) 1) quad) (-> sv-224 quad))
|
||||
(+! (-> arg1 length) 2)
|
||||
(+! (-> this point-count) 2)
|
||||
)
|
||||
)
|
||||
(vector+! s1-0 s1-0 sv-144)
|
||||
(vector+! s1-0 s1-0 sv-224)
|
||||
(+! s0-0 2)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(label cfg-42)
|
||||
(set! sv-240 (+ sv-240 1))
|
||||
)
|
||||
(when (nonzero? s0-0)
|
||||
(vector-float*! s1-0 s1-0 (/ 1.0 (the float s0-0)))
|
||||
(cond
|
||||
((< (-> arg2 allocated-length) (+ (-> arg2 length) 2))
|
||||
(format 0 "ERROR <AG>: vol-control #x~X out of volume normals~%" this)
|
||||
)
|
||||
(else
|
||||
(set! (-> arg2 data (-> arg2 length) quad) (-> s1-0 quad))
|
||||
(set! (-> arg2 data (+ (-> arg2 length) 1) quad) (-> s2-0 s3-0 quad))
|
||||
(+! (-> arg2 length) 2)
|
||||
(set! (-> this normal-count) (+ (-> this normal-count) 2))
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
+11
-14
@@ -163,7 +163,6 @@
|
||||
|
||||
;; definition for function ripple-find-height
|
||||
(defun ripple-find-height ((arg0 process-drawable) (arg1 int) (arg2 vector))
|
||||
(local-vars (sv-16 float) (sv-32 float))
|
||||
(let* ((f30-0 (-> arg0 root trans y))
|
||||
(v1-1 (-> arg0 draw))
|
||||
(a1-5 (-> v1-1 lod-set lod (-> v1-1 cur-lod) geo effect))
|
||||
@@ -197,20 +196,18 @@
|
||||
(let* ((f22-1 (the float (the int f28-1)))
|
||||
(f24-1 (the float (the int f26-1)))
|
||||
(f20-0 (ripple-slow-add-sine-waves s5-0 f22-1 f24-1))
|
||||
(sv-16 (ripple-slow-add-sine-waves s5-0 (+ 1.0 f22-1) f24-1))
|
||||
(sv-32 (ripple-slow-add-sine-waves s5-0 f22-1 (+ 1.0 f24-1)))
|
||||
(f1-6 (ripple-slow-add-sine-waves s5-0 (+ 1.0 f22-1) (+ 1.0 f24-1)))
|
||||
(f0-22 (+ f20-0 (* (- f28-1 f22-1) (- sv-16 f20-0))))
|
||||
(f1-9 (+ sv-32 (* (- f28-1 f22-1) (- f1-6 sv-32))))
|
||||
(f1-12 (+ f0-22 (* (- f26-1 f24-1) (- f1-9 f0-22))))
|
||||
(f0-23 (-> gp-0 faded-scale))
|
||||
)
|
||||
(set! sv-16 (ripple-slow-add-sine-waves s5-0 (+ 1.0 f22-1) f24-1))
|
||||
(set! sv-32 (ripple-slow-add-sine-waves s5-0 f22-1 (+ 1.0 f24-1)))
|
||||
(let* ((f1-6 (ripple-slow-add-sine-waves s5-0 (+ 1.0 f22-1) (+ 1.0 f24-1)))
|
||||
(f0-22 (+ f20-0 (* (- f28-1 f22-1) (- sv-16 f20-0))))
|
||||
(f1-9 (+ sv-32 (* (- f28-1 f22-1) (- f1-6 sv-32))))
|
||||
(f1-12 (+ f0-22 (* (- f26-1 f24-1) (- f1-9 f0-22))))
|
||||
(f0-23 (-> gp-0 faded-scale))
|
||||
)
|
||||
(if (< f0-23 0.0)
|
||||
(set! f0-23 (-> gp-0 global-scale))
|
||||
)
|
||||
(+ f30-0 (* (/ f1-12 128) f0-23))
|
||||
)
|
||||
(if (< f0-23 0.0)
|
||||
(set! f0-23 (-> gp-0 global-scale))
|
||||
)
|
||||
(+ f30-0 (* (/ f1-12 128) f0-23))
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
+10
-12
@@ -39,28 +39,26 @@
|
||||
(y-rat (-> math-cam y-ratio))
|
||||
(cull-info (-> math-cam cull-info))
|
||||
)
|
||||
(/ (+ 1.0 (* 4.0 x-rat x-rat)) (+ 1.0 (* x-rat x-rat)))
|
||||
(let ((y-thing (/ (+ 1.0 (* 4.0 y-rat y-rat)) (+ 1.0 (* y-rat y-rat)))))
|
||||
(/ (+ 1.0 (* 4.0 x-rat x-rat)) (+ 1.0 (square x-rat)))
|
||||
(let ((y-thing (/ (+ 1.0 (* 4.0 y-rat y-rat)) (+ 1.0 (square y-rat)))))
|
||||
(set! (-> cull-info x-fact) (/ (+ 1.0 (* 4.0 x-rat x-rat)) (* x-rat (sqrtf (+ 1.0 (* 16.0 x-rat x-rat))))))
|
||||
(set! (-> cull-info y-fact) (/ (+ 1.0 (* 4.0 y-rat y-rat)) (* y-rat (sqrtf (+ 1.0 (* 16.0 y-rat y-rat))))))
|
||||
(set! (-> cull-info z-fact)
|
||||
(sqrtf (+ (* (+ -4.0 y-thing) (+ -4.0 y-thing) y-rat y-rat) (* (+ -1.0 y-thing) (+ -1.0 y-thing))))
|
||||
)
|
||||
)
|
||||
(let* ((near-x (* x-rat (-> math-cam d)))
|
||||
(near-y (* y-rat (-> math-cam d)))
|
||||
(near-corner-dist-sqr (+ (* near-x near-x) (* near-y near-y)))
|
||||
(near-z (-> math-cam d))
|
||||
)
|
||||
(set! (-> cull-info cam-radius) (sqrtf (+ near-corner-dist-sqr (* near-z near-z))))
|
||||
(let ((near-x (* x-rat (-> math-cam d)))
|
||||
(near-y (* y-rat (-> math-cam d)))
|
||||
)
|
||||
(set! (-> cull-info cam-radius) (sqrtf (+ (square near-x) (square near-y) (square (-> math-cam d)))))
|
||||
)
|
||||
(let* ((dx-rat-2 (* (-> math-cam d) (-> math-cam x-ratio)))
|
||||
(d-temp-2 (-> math-cam d))
|
||||
(dx-rat-times-4 (* 4.0 dx-rat-2))
|
||||
(d-temp-3 (-> math-cam d))
|
||||
)
|
||||
(let ((inverse-x-len (/ 1.0 (sqrtf (+ (* dx-rat-2 dx-rat-2) (* d-temp-2 d-temp-2)))))
|
||||
(inverse-x-len-2 (/ 1.0 (sqrtf (+ (* dx-rat-times-4 dx-rat-times-4) (* d-temp-3 d-temp-3)))))
|
||||
(let ((inverse-x-len (/ 1.0 (sqrtf (+ (square dx-rat-2) (square d-temp-2)))))
|
||||
(inverse-x-len-2 (/ 1.0 (sqrtf (+ (square dx-rat-times-4) (square d-temp-3)))))
|
||||
)
|
||||
(set! (-> cull-info xz-dir-ax) (* dx-rat-2 inverse-x-len))
|
||||
(set! (-> cull-info xz-dir-az) (* d-temp-2 inverse-x-len))
|
||||
@@ -74,8 +72,8 @@
|
||||
(dy-rat-times-4 (* 4.0 dy-rat))
|
||||
(d-temp-5 (-> math-cam d))
|
||||
)
|
||||
(let ((inverse-y-len (/ 1.0 (sqrtf (+ (* dy-rat dy-rat) (* d-temp-4 d-temp-4)))))
|
||||
(inverse-y-len-2 (/ 1.0 (sqrtf (+ (* dy-rat-times-4 dy-rat-times-4) (* d-temp-5 d-temp-5)))))
|
||||
(let ((inverse-y-len (/ 1.0 (sqrtf (+ (square dy-rat) (square d-temp-4)))))
|
||||
(inverse-y-len-2 (/ 1.0 (sqrtf (+ (square dy-rat-times-4) (square d-temp-5)))))
|
||||
)
|
||||
(set! (-> cull-info yz-dir-ay) (* dy-rat inverse-y-len))
|
||||
(set! (-> cull-info yz-dir-az) (* d-temp-4 inverse-y-len))
|
||||
|
||||
+1
-6
@@ -257,12 +257,7 @@
|
||||
(set! (-> v1-0 y) (- (-> arg0 direction y)))
|
||||
(set! (-> v1-0 z) (- (-> arg0 direction z)))
|
||||
(when (< (-> arg0 direction y) 0.9063)
|
||||
(let* ((f0-7 0.4226)
|
||||
(f1-1 (-> v1-0 x))
|
||||
(f1-3 (* f1-1 f1-1))
|
||||
(f2-0 (-> v1-0 z))
|
||||
(f0-8 (/ f0-7 (sqrtf (+ f1-3 (* f2-0 f2-0)))))
|
||||
)
|
||||
(let ((f0-8 (/ 0.4226 (sqrtf (+ (square (-> v1-0 x)) (square (-> v1-0 z)))))))
|
||||
(set! (-> v1-0 x) (* (-> v1-0 x) f0-8))
|
||||
(set! (-> v1-0 y) -0.9063)
|
||||
(set! (-> v1-0 z) (* (-> v1-0 z) f0-8))
|
||||
|
||||
+23
-41
@@ -358,7 +358,6 @@
|
||||
;; INFO: Used lq/sq
|
||||
;; INFO: Return type mismatch object vs none.
|
||||
(defun update-mood-interp ((arg0 mood-context) (arg1 mood-context) (arg2 mood-context) (arg3 float))
|
||||
(local-vars (sv-16 light))
|
||||
(cond
|
||||
((= arg3 0.0)
|
||||
(set! (-> arg0 current-fog fog-color quad) (-> arg1 current-fog fog-color quad))
|
||||
@@ -423,8 +422,9 @@
|
||||
)
|
||||
(dotimes (s2-0 3)
|
||||
(let ((s1-0 (-> arg0 light-group 0 lights s2-0)))
|
||||
(let ((s0-0 (-> arg1 light-group 0 lights s2-0)))
|
||||
(set! sv-16 (-> arg2 light-group 0 lights s2-0))
|
||||
(let ((s0-0 (-> arg1 light-group 0 lights s2-0))
|
||||
(sv-16 (-> arg2 light-group 0 lights s2-0))
|
||||
)
|
||||
(vector4-lerp! (-> s1-0 direction) (-> s0-0 direction) (-> sv-16 direction) arg3)
|
||||
(vector4-lerp! (-> s1-0 color) (-> s0-0 color) (-> sv-16 color) arg3)
|
||||
(vector4-lerp! (-> s1-0 levels) (-> s0-0 levels) (-> sv-16 levels) arg3)
|
||||
@@ -1586,7 +1586,6 @@
|
||||
;; INFO: Used lq/sq
|
||||
;; INFO: Return type mismatch int vs none.
|
||||
(defun update-mood-sunken ((arg0 mood-context) (arg1 float) (arg2 int))
|
||||
(local-vars (sv-80 vector))
|
||||
(when (not (paused?))
|
||||
(update-mood-fog arg0 arg1)
|
||||
(update-mood-sky-texture arg0 arg1)
|
||||
@@ -1635,33 +1634,26 @@
|
||||
(let ((s2-1 (new 'static 'vector :x 0.193 :y 0.432 :z 0.721))
|
||||
(s1-1 (new 'static 'vector :x 0.193 :y 0.338 :z 0.603))
|
||||
(s0-0 (new 'static 'vector :x 0.193 :y 0.336 :z 0.721))
|
||||
(sv-80 (new 'static 'vector :x 0.215 :y 0.309 :z 0.674))
|
||||
(s3-2 (new 'stack-no-clear 'vector))
|
||||
(s4-3 (new 'stack-no-clear 'vector))
|
||||
(f26-3 (+ 0.75
|
||||
(* 0.0625 (cos (the float (* 4000 (-> *display* integral-frame-counter)))))
|
||||
(* 0.0625 (cos (the float (shl (-> *display* integral-frame-counter) 11))))
|
||||
(* 0.125 (cos (the float (* 1500 (-> *display* integral-frame-counter)))))
|
||||
)
|
||||
)
|
||||
)
|
||||
(set! sv-80 (new 'static 'vector :x 0.215 :y 0.309 :z 0.674))
|
||||
(let ((s3-2 (new 'stack-no-clear 'vector))
|
||||
(s4-3 (new 'stack-no-clear 'vector))
|
||||
(f26-3 (+ 0.75
|
||||
(* 0.0625 (cos (the float (* 4000 (-> *display* integral-frame-counter)))))
|
||||
(* 0.0625 (cos (the float (shl (-> *display* integral-frame-counter) 11))))
|
||||
(* 0.125 (cos (the float (* 1500 (-> *display* integral-frame-counter)))))
|
||||
)
|
||||
)
|
||||
)
|
||||
(vector4-lerp! s3-2 s2-1 s1-1 f28-0)
|
||||
(let ((t9-16 vector4-lerp!)
|
||||
(a0-19 s4-3)
|
||||
(a3-7 f28-0)
|
||||
)
|
||||
(t9-16 a0-19 s0-0 sv-80 a3-7)
|
||||
)
|
||||
(let ((v1-18 (-> s5-1 0 dir2)))
|
||||
(set! (-> v1-18 direction x) 0.0)
|
||||
(set! (-> v1-18 direction y) 0.999)
|
||||
(set! (-> v1-18 direction z) 0.011)
|
||||
(set! (-> v1-18 direction w) 1.0)
|
||||
)
|
||||
(vector4-lerp! (-> s5-1 0 dir2 color) s4-3 s3-2 f30-0)
|
||||
(set! (-> s5-1 0 dir2 levels x) f26-3)
|
||||
(vector4-lerp! s3-2 s2-1 s1-1 f28-0)
|
||||
(vector4-lerp! s4-3 s0-0 sv-80 f28-0)
|
||||
(let ((v1-18 (-> s5-1 0 dir2)))
|
||||
(set! (-> v1-18 direction x) 0.0)
|
||||
(set! (-> v1-18 direction y) 0.999)
|
||||
(set! (-> v1-18 direction z) 0.011)
|
||||
(set! (-> v1-18 direction w) 1.0)
|
||||
)
|
||||
(vector4-lerp! (-> s5-1 0 dir2 color) s4-3 s3-2 f30-0)
|
||||
(set! (-> s5-1 0 dir2 levels x) f26-3)
|
||||
)
|
||||
)
|
||||
)
|
||||
@@ -2002,12 +1994,7 @@
|
||||
(set! (-> v1-21 y) (- (-> s4-0 y)))
|
||||
(set! (-> v1-21 z) (- (-> s4-0 z)))
|
||||
(when (< (-> s4-0 y) 0.9063)
|
||||
(let* ((f0-22 0.4226)
|
||||
(f1-3 (-> v1-21 x))
|
||||
(f1-5 (* f1-3 f1-3))
|
||||
(f2-2 (-> v1-21 z))
|
||||
(f0-23 (/ f0-22 (sqrtf (+ f1-5 (* f2-2 f2-2)))))
|
||||
)
|
||||
(let ((f0-23 (/ 0.4226 (sqrtf (+ (square (-> v1-21 x)) (square (-> v1-21 z)))))))
|
||||
(set! (-> v1-21 x) (* (-> v1-21 x) f0-23))
|
||||
(set! (-> v1-21 y) -0.9063)
|
||||
(set! (-> v1-21 z) (* (-> v1-21 z) f0-23))
|
||||
@@ -2664,12 +2651,7 @@
|
||||
(set! (-> v1-45 y) (- (-> a0-22 direction y)))
|
||||
(set! (-> v1-45 z) (- (-> a0-22 direction z)))
|
||||
(when (< (-> a0-22 direction y) 0.9063)
|
||||
(let* ((f0-23 0.4226)
|
||||
(f1-25 (-> v1-45 x))
|
||||
(f1-27 (* f1-25 f1-25))
|
||||
(f2-4 (-> v1-45 z))
|
||||
(f0-24 (/ f0-23 (sqrtf (+ f1-27 (* f2-4 f2-4)))))
|
||||
)
|
||||
(let ((f0-24 (/ 0.4226 (sqrtf (+ (square (-> v1-45 x)) (square (-> v1-45 z)))))))
|
||||
(set! (-> v1-45 x) (* (-> v1-45 x) f0-24))
|
||||
(set! (-> v1-45 y) -0.9063)
|
||||
(set! (-> v1-45 z) (* (-> v1-45 z) f0-24))
|
||||
|
||||
+1
-6
@@ -539,12 +539,7 @@
|
||||
(set! (-> a2-30 y) (- (-> s5-2 dir0 direction y)))
|
||||
(set! (-> a2-30 z) (- (-> s5-2 dir0 direction z)))
|
||||
(when (< (-> s5-2 dir0 direction y) 0.9063)
|
||||
(let* ((f0-56 0.4226)
|
||||
(f1-17 (-> a2-30 x))
|
||||
(f1-19 (* f1-17 f1-17))
|
||||
(f2-7 (-> a2-30 z))
|
||||
(f0-57 (/ f0-56 (sqrtf (+ f1-19 (* f2-7 f2-7)))))
|
||||
)
|
||||
(let ((f0-57 (/ 0.4226 (sqrtf (+ (square (-> a2-30 x)) (square (-> a2-30 z)))))))
|
||||
(set! (-> a2-30 x) (* (-> a2-30 x) f0-57))
|
||||
(set! (-> a2-30 y) -0.9063)
|
||||
(set! (-> a2-30 z) (* (-> a2-30 z) f0-57))
|
||||
|
||||
+30
-29
@@ -977,42 +977,43 @@
|
||||
;; definition for function draw-ocean-mid-seams
|
||||
;; INFO: Return type mismatch symbol vs none.
|
||||
(defun draw-ocean-mid-seams ((arg0 dma-buffer))
|
||||
(local-vars (sv-32 uint) (sv-33 uint) (sv-34 uint) (sv-35 uint) (sv-36 sphere))
|
||||
(ocean-seams-add-constants arg0)
|
||||
(set! sv-32 (-> *ocean-work* mid-minx))
|
||||
(set! sv-33 (-> *ocean-work* mid-maxx))
|
||||
(set! sv-34 (-> *ocean-work* mid-minz))
|
||||
(set! sv-35 (-> *ocean-work* mid-maxz))
|
||||
(set! sv-36 (new 'stack 'sphere))
|
||||
(set! (-> sv-36 y) (-> *ocean-map* start-corner y))
|
||||
(set! (-> sv-36 w) 278045.7)
|
||||
(let ((s5-0 sv-34)
|
||||
(s4-0 sv-35)
|
||||
(let ((sv-32 (-> *ocean-work* mid-minx))
|
||||
(sv-33 (-> *ocean-work* mid-maxx))
|
||||
(sv-34 (-> *ocean-work* mid-minz))
|
||||
(sv-35 (-> *ocean-work* mid-maxz))
|
||||
(sv-36 (new 'stack 'sphere))
|
||||
)
|
||||
(while (>= s4-0 s5-0)
|
||||
(let ((s3-0 sv-32)
|
||||
(s2-0 sv-33)
|
||||
)
|
||||
(while (>= s2-0 s3-0)
|
||||
(set! (-> sv-36 x) (+ 196608.0 (* 393216.0 (the float s3-0)) (-> *ocean-map* start-corner x)))
|
||||
(set! (-> sv-36 z) (+ 196608.0 (* 393216.0 (the float s5-0)) (-> *ocean-map* start-corner z)))
|
||||
(when (sphere-cull sv-36)
|
||||
(cond
|
||||
((= s5-0 sv-34)
|
||||
(ocean-mid-add-upload-top arg0 s5-0 s3-0)
|
||||
)
|
||||
((= s5-0 sv-35)
|
||||
(ocean-mid-add-upload-bottom arg0 s5-0 s3-0)
|
||||
)
|
||||
(else
|
||||
(ocean-mid-add-upload-middle arg0 s5-0 s3-0)
|
||||
(set! (-> sv-36 y) (-> *ocean-map* start-corner y))
|
||||
(set! (-> sv-36 w) 278045.7)
|
||||
(let ((s5-0 sv-34)
|
||||
(s4-0 sv-35)
|
||||
)
|
||||
(while (>= s4-0 s5-0)
|
||||
(let ((s3-0 sv-32)
|
||||
(s2-0 sv-33)
|
||||
)
|
||||
(while (>= s2-0 s3-0)
|
||||
(set! (-> sv-36 x) (+ 196608.0 (* 393216.0 (the float s3-0)) (-> *ocean-map* start-corner x)))
|
||||
(set! (-> sv-36 z) (+ 196608.0 (* 393216.0 (the float s5-0)) (-> *ocean-map* start-corner z)))
|
||||
(when (sphere-cull sv-36)
|
||||
(cond
|
||||
((= s5-0 sv-34)
|
||||
(ocean-mid-add-upload-top arg0 s5-0 s3-0)
|
||||
)
|
||||
((= s5-0 sv-35)
|
||||
(ocean-mid-add-upload-bottom arg0 s5-0 s3-0)
|
||||
)
|
||||
(else
|
||||
(ocean-mid-add-upload-middle arg0 s5-0 s3-0)
|
||||
)
|
||||
)
|
||||
)
|
||||
(+! s3-0 1)
|
||||
)
|
||||
(+! s3-0 1)
|
||||
)
|
||||
(+! s5-0 1)
|
||||
)
|
||||
(+! s5-0 1)
|
||||
)
|
||||
)
|
||||
(dotimes (v1-26 36)
|
||||
|
||||
+16
-14
@@ -215,9 +215,8 @@
|
||||
;; INFO: Used lq/sq
|
||||
;; INFO: Return type mismatch int vs none.
|
||||
(defun draw-ocean-texture ((arg0 dma-buffer) (arg1 (inline-array vector)) (arg2 symbol))
|
||||
(local-vars (sv-16 (inline-array vector)) (sv-32 int) (sv-48 vector) (sv-64 (inline-array vector)))
|
||||
(set! sv-64 arg1)
|
||||
(let* ((s0-0 arg2)
|
||||
(let* ((sv-64 arg1)
|
||||
(s0-0 arg2)
|
||||
(a1-1 *ocean-base-page*)
|
||||
(s2-0 *ocean-base-block*)
|
||||
(s1-0 (+ a1-1 8))
|
||||
@@ -237,18 +236,21 @@
|
||||
)
|
||||
(ocean-texture-add-constants arg0)
|
||||
(ocean-texture-add-envmap arg0)
|
||||
(set! sv-16 sv-64)
|
||||
(ocean-texture-add-verts arg0 sv-16)
|
||||
(set! sv-48 (-> sv-16 192))
|
||||
(ocean-texture-add-call-start arg0)
|
||||
(set! sv-32 0)
|
||||
(while (< sv-32 9)
|
||||
(ocean-texture-add-verts arg0 (the-as (inline-array vector) sv-48))
|
||||
(set! sv-48 (-> (the-as (inline-array vector) sv-48) 192))
|
||||
(ocean-texture-add-call-rest arg0)
|
||||
(set! sv-32 (+ sv-32 1))
|
||||
(let ((sv-16 sv-64))
|
||||
(ocean-texture-add-verts arg0 sv-16)
|
||||
(let ((sv-48 (-> sv-16 192)))
|
||||
(ocean-texture-add-call-start arg0)
|
||||
(let ((sv-32 0))
|
||||
(while (< sv-32 9)
|
||||
(ocean-texture-add-verts arg0 (the-as (inline-array vector) sv-48))
|
||||
(set! sv-48 (-> (the-as (inline-array vector) sv-48) 192))
|
||||
(ocean-texture-add-call-rest arg0)
|
||||
(+! sv-32 1)
|
||||
)
|
||||
)
|
||||
(ocean-texture-add-verts-last arg0 (the-as (inline-array vector) sv-48) sv-64)
|
||||
)
|
||||
)
|
||||
(ocean-texture-add-verts-last arg0 (the-as (inline-array vector) sv-48) sv-64)
|
||||
(ocean-texture-add-call-rest arg0)
|
||||
(ocean-texture-add-call-done arg0)
|
||||
(when s0-0
|
||||
|
||||
+144
-146
@@ -492,21 +492,22 @@
|
||||
;; definition for function ocean-make-trans-camera-masks
|
||||
;; INFO: Used lq/sq
|
||||
(defun ocean-make-trans-camera-masks ((arg0 uint) (arg1 uint) (arg2 uint) (arg3 uint))
|
||||
(local-vars (sv-48 ocean-trans-mask) (sv-52 vector) (sv-56 vector) (sv-60 vector))
|
||||
(set! sv-48 (-> *ocean-work* trans-camera-masks (+ (* arg2 4) arg3)))
|
||||
(set! sv-52 (-> *math-camera* trans))
|
||||
(set! sv-56 (new-stack-vector0))
|
||||
(set! sv-60 (new-stack-vector0))
|
||||
(set! (-> sv-56 x) (+ (-> *ocean-map* start-corner x) (* 393216.0 (the float arg1))))
|
||||
(set! (-> sv-56 y) (-> *ocean-map* start-corner y))
|
||||
(set! (-> sv-56 z) (+ (-> *ocean-map* start-corner z) (* 393216.0 (the float arg0))))
|
||||
(set! (-> sv-56 w) 1.0)
|
||||
(dotimes (gp-0 4)
|
||||
(dotimes (s5-0 4)
|
||||
(set! (-> sv-60 x) (- (+ (-> sv-56 x) (* 98304.0 (the float s5-0))) (-> sv-52 x)))
|
||||
(set! (-> sv-60 y) (- (-> sv-56 y) (-> sv-52 y)))
|
||||
(set! (-> sv-60 z) (- (+ (-> sv-56 z) (* 98304.0 (the float gp-0))) (-> sv-52 z)))
|
||||
(ocean-transition-check sv-48 s5-0 gp-0 sv-56)
|
||||
(let ((sv-48 (-> *ocean-work* trans-camera-masks (+ (* arg2 4) arg3)))
|
||||
(sv-52 (-> *math-camera* trans))
|
||||
(sv-56 (new-stack-vector0))
|
||||
(sv-60 (new-stack-vector0))
|
||||
)
|
||||
(set! (-> sv-56 x) (+ (-> *ocean-map* start-corner x) (* 393216.0 (the float arg1))))
|
||||
(set! (-> sv-56 y) (-> *ocean-map* start-corner y))
|
||||
(set! (-> sv-56 z) (+ (-> *ocean-map* start-corner z) (* 393216.0 (the float arg0))))
|
||||
(set! (-> sv-56 w) 1.0)
|
||||
(dotimes (gp-0 4)
|
||||
(dotimes (s5-0 4)
|
||||
(set! (-> sv-60 x) (- (+ (-> sv-56 x) (* 98304.0 (the float s5-0))) (-> sv-52 x)))
|
||||
(set! (-> sv-60 y) (- (-> sv-56 y) (-> sv-52 y)))
|
||||
(set! (-> sv-60 z) (- (+ (-> sv-56 z) (* 98304.0 (the float gp-0))) (-> sv-52 z)))
|
||||
(ocean-transition-check sv-48 s5-0 gp-0 sv-56)
|
||||
)
|
||||
)
|
||||
)
|
||||
#f
|
||||
@@ -638,34 +639,35 @@
|
||||
|
||||
;; definition for function draw-ocean-transition-seams
|
||||
(defun draw-ocean-transition-seams ((arg0 dma-buffer))
|
||||
(local-vars (sv-32 uint) (sv-33 uint) (sv-34 uint) (sv-35 uint) (sv-36 sphere))
|
||||
(set! sv-32 (-> *ocean-work* near-minx))
|
||||
(set! sv-33 (-> *ocean-work* near-maxx))
|
||||
(set! sv-34 (-> *ocean-work* near-minz))
|
||||
(set! sv-35 (-> *ocean-work* near-maxz))
|
||||
(set! sv-36 (new 'stack 'sphere))
|
||||
(set! (-> sv-36 y) (-> *ocean-map* start-corner y))
|
||||
(set! (-> sv-36 w) 69511.42)
|
||||
(when (and (< sv-32 sv-33) (< sv-34 sv-35))
|
||||
(let ((s5-0 sv-34)
|
||||
(s4-0 sv-35)
|
||||
)
|
||||
(while (>= s4-0 s5-0)
|
||||
(let ((s3-0 sv-32)
|
||||
(s2-0 sv-33)
|
||||
)
|
||||
(while (>= s2-0 s3-0)
|
||||
(set! (-> sv-36 x) (+ 49152.0 (* 98304.0 (the float s3-0)) (-> *ocean-map* start-corner x)))
|
||||
(set! (-> sv-36 z) (+ 49152.0 (* 98304.0 (the float s5-0)) (-> *ocean-map* start-corner z)))
|
||||
(when (sphere-cull sv-36)
|
||||
(if (not (ocean-trans-camera-masks-bit? s5-0 s3-0))
|
||||
(ocean-trans-add-upload arg0 (the-as int s5-0) (the-as int s3-0))
|
||||
)
|
||||
)
|
||||
(+! s3-0 1)
|
||||
(let ((sv-32 (-> *ocean-work* near-minx))
|
||||
(sv-33 (-> *ocean-work* near-maxx))
|
||||
(sv-34 (-> *ocean-work* near-minz))
|
||||
(sv-35 (-> *ocean-work* near-maxz))
|
||||
(sv-36 (new 'stack 'sphere))
|
||||
)
|
||||
(set! (-> sv-36 y) (-> *ocean-map* start-corner y))
|
||||
(set! (-> sv-36 w) 69511.42)
|
||||
(when (and (< sv-32 sv-33) (< sv-34 sv-35))
|
||||
(let ((s5-0 sv-34)
|
||||
(s4-0 sv-35)
|
||||
)
|
||||
(while (>= s4-0 s5-0)
|
||||
(let ((s3-0 sv-32)
|
||||
(s2-0 sv-33)
|
||||
)
|
||||
(while (>= s2-0 s3-0)
|
||||
(set! (-> sv-36 x) (+ 49152.0 (* 98304.0 (the float s3-0)) (-> *ocean-map* start-corner x)))
|
||||
(set! (-> sv-36 z) (+ 49152.0 (* 98304.0 (the float s5-0)) (-> *ocean-map* start-corner z)))
|
||||
(when (sphere-cull sv-36)
|
||||
(if (not (ocean-trans-camera-masks-bit? s5-0 s3-0))
|
||||
(ocean-trans-add-upload arg0 (the-as int s5-0) (the-as int s3-0))
|
||||
)
|
||||
)
|
||||
(+! s3-0 1)
|
||||
)
|
||||
)
|
||||
(+! s5-0 1)
|
||||
)
|
||||
(+! s5-0 1)
|
||||
)
|
||||
)
|
||||
)
|
||||
@@ -711,15 +713,6 @@
|
||||
;; definition for function draw-ocean-transition
|
||||
;; INFO: Return type mismatch int vs none.
|
||||
(defun draw-ocean-transition ((arg0 dma-buffer))
|
||||
(local-vars
|
||||
(sv-32 uint)
|
||||
(sv-33 uint)
|
||||
(sv-34 uint)
|
||||
(sv-35 uint)
|
||||
(sv-36 sphere)
|
||||
(sv-40 ocean-trans-mask)
|
||||
(sv-44 uint)
|
||||
)
|
||||
(dotimes (v1-0 16)
|
||||
(set! (-> *ocean-work* trans-camera-masks v1-0 word) (the-as uint 0))
|
||||
(set! (-> *ocean-work* near-mask-indices v1-0) (the-as uint -1))
|
||||
@@ -727,123 +720,128 @@
|
||||
(dotimes (v1-3 64)
|
||||
(set! (-> *ocean-work* trans-mask-ptrs v1-3) (the-as (pointer int32) #f))
|
||||
)
|
||||
(set! sv-32 (-> *ocean-work* mid-minx))
|
||||
(set! sv-33 (-> *ocean-work* mid-maxx))
|
||||
(set! sv-34 (-> *ocean-work* mid-minz))
|
||||
(set! sv-35 (-> *ocean-work* mid-maxz))
|
||||
(set! sv-36 (new 'stack 'sphere))
|
||||
(set! (-> sv-36 y) (-> *ocean-map* start-corner y))
|
||||
(set! (-> sv-36 w) 278045.7)
|
||||
(let ((s5-0 sv-34)
|
||||
(s4-0 sv-35)
|
||||
(let ((sv-32 (-> *ocean-work* mid-minx))
|
||||
(sv-33 (-> *ocean-work* mid-maxx))
|
||||
(sv-34 (-> *ocean-work* mid-minz))
|
||||
(sv-35 (-> *ocean-work* mid-maxz))
|
||||
)
|
||||
(while (>= s4-0 s5-0)
|
||||
(let ((s3-0 sv-32)
|
||||
(s2-0 sv-33)
|
||||
(let ((sv-36 (new 'stack 'sphere)))
|
||||
(set! (-> sv-36 y) (-> *ocean-map* start-corner y))
|
||||
(set! (-> sv-36 w) 278045.7)
|
||||
(let ((s5-0 sv-34)
|
||||
(s4-0 sv-35)
|
||||
)
|
||||
(while (>= s2-0 s3-0)
|
||||
(when (not (ocean-mid-mask-ptrs-bit? s5-0 s3-0))
|
||||
(when (ocean-mid-camera-masks-bit? s5-0 s3-0)
|
||||
(set! (-> sv-36 x) (+ 196608.0 (* 393216.0 (the float s3-0)) (-> *ocean-map* start-corner x)))
|
||||
(set! (-> sv-36 z) (+ 196608.0 (* 393216.0 (the float s5-0)) (-> *ocean-map* start-corner z)))
|
||||
(if (sphere-cull sv-36)
|
||||
(ocean-make-trans-camera-masks s5-0 s3-0 (- s5-0 sv-34) (- s3-0 sv-32))
|
||||
)
|
||||
)
|
||||
)
|
||||
(+! s3-0 1)
|
||||
)
|
||||
)
|
||||
(+! s5-0 1)
|
||||
)
|
||||
)
|
||||
(let ((a2-2 192)
|
||||
(a1-8 0)
|
||||
(a0-11 192)
|
||||
(v1-32 0)
|
||||
)
|
||||
(let ((a3-1 sv-34)
|
||||
(t0-0 sv-35)
|
||||
)
|
||||
(while (>= t0-0 a3-1)
|
||||
(let ((t1-0 sv-32)
|
||||
(t2-0 sv-33)
|
||||
)
|
||||
(while (>= t2-0 t1-0)
|
||||
(set! sv-40 (-> *ocean-work* trans-camera-masks (+ (* (- a3-1 sv-34) 4) (- t1-0 sv-32))))
|
||||
(when (nonzero? (-> sv-40 word))
|
||||
(dotimes (t3-10 4)
|
||||
(let ((t4-5 (-> sv-40 mask t3-10)))
|
||||
(when (nonzero? t4-5)
|
||||
(let ((t5-2 (+ (* a3-1 4) t3-10)))
|
||||
(if (< t5-2 (the-as uint a0-11))
|
||||
(set! a0-11 (the-as int t5-2))
|
||||
)
|
||||
(if (< (the-as uint v1-32) t5-2)
|
||||
(set! v1-32 (the-as int t5-2))
|
||||
)
|
||||
(while (>= s4-0 s5-0)
|
||||
(let ((s3-0 sv-32)
|
||||
(s2-0 sv-33)
|
||||
)
|
||||
(while (>= s2-0 s3-0)
|
||||
(when (not (ocean-mid-mask-ptrs-bit? s5-0 s3-0))
|
||||
(when (ocean-mid-camera-masks-bit? s5-0 s3-0)
|
||||
(set! (-> sv-36 x) (+ 196608.0 (* 393216.0 (the float s3-0)) (-> *ocean-map* start-corner x)))
|
||||
(set! (-> sv-36 z) (+ 196608.0 (* 393216.0 (the float s5-0)) (-> *ocean-map* start-corner z)))
|
||||
(if (sphere-cull sv-36)
|
||||
(ocean-make-trans-camera-masks s5-0 s3-0 (- s5-0 sv-34) (- s3-0 sv-32))
|
||||
)
|
||||
(dotimes (t5-3 4)
|
||||
(when (logtest? t4-5 (ash 1 t5-3))
|
||||
(let ((t6-9 (+ (* t1-0 4) t5-3)))
|
||||
(if (< t6-9 (the-as uint a2-2))
|
||||
(set! a2-2 (the-as int t6-9))
|
||||
)
|
||||
(if (< (the-as uint a1-8) t6-9)
|
||||
(set! a1-8 (the-as int t6-9))
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(+! s3-0 1)
|
||||
)
|
||||
(+! t1-0 1)
|
||||
)
|
||||
(+! s5-0 1)
|
||||
)
|
||||
(+! a3-1 1)
|
||||
)
|
||||
)
|
||||
(set! (-> *ocean-work* near-minx) (the-as uint (+ a2-2 -1)))
|
||||
(set! (-> *ocean-work* near-maxx) (the-as uint (+ a1-8 1)))
|
||||
(set! (-> *ocean-work* near-minz) (the-as uint (+ a0-11 -1)))
|
||||
(set! (-> *ocean-work* near-maxz) (the-as uint (+ v1-32 1)))
|
||||
)
|
||||
(dotimes (v1-34 16)
|
||||
(set! (-> *ocean-work* trans-temp-masks v1-34 word) (-> *ocean-work* trans-camera-masks v1-34 word))
|
||||
)
|
||||
(let ((s5-1 sv-34)
|
||||
(s4-1 sv-35)
|
||||
)
|
||||
(while (>= s4-1 s5-1)
|
||||
(let ((s3-1 sv-32)
|
||||
(s2-1 sv-33)
|
||||
(let ((a2-2 192)
|
||||
(a1-8 0)
|
||||
(a0-11 192)
|
||||
(v1-32 0)
|
||||
)
|
||||
(let ((a3-1 sv-34)
|
||||
(t0-0 sv-35)
|
||||
)
|
||||
(while (>= s2-1 s3-1)
|
||||
(when (not (ocean-mid-mask-ptrs-bit? s5-1 s3-1))
|
||||
(when (ocean-mid-camera-masks-bit? s5-1 s3-1)
|
||||
(let ((v1-43 (-> *ocean-map* ocean-trans-indices data (+ (* (the-as uint 48) s5-1) s3-1))))
|
||||
(when (>= (-> v1-43 parent) 0)
|
||||
(set! sv-44 (+ (* (- s5-1 sv-34) 4) (- s3-1 sv-32)))
|
||||
(set! (-> *ocean-work* near-mask-indices sv-44) (the-as uint (-> v1-43 child)))
|
||||
(let ((s1-0 (-> *ocean-map* ocean-mid-masks data (-> v1-43 parent))))
|
||||
(dotimes (s0-0 4)
|
||||
(let ((a3-5 (-> (the-as ocean-mid-mask (+ s0-0 (the-as int s1-0))) mask 0)))
|
||||
(if (!= a3-5 255)
|
||||
(ocean-trans-add-upload-strip arg0 s5-1 s3-1 a3-5 sv-44 (the-as uint s0-0))
|
||||
(while (>= t0-0 a3-1)
|
||||
(let ((t1-0 sv-32)
|
||||
(t2-0 sv-33)
|
||||
)
|
||||
(while (>= t2-0 t1-0)
|
||||
(let ((sv-40 (-> *ocean-work* trans-camera-masks (+ (* (- a3-1 sv-34) 4) (- t1-0 sv-32)))))
|
||||
(when (nonzero? (-> sv-40 word))
|
||||
(dotimes (t3-10 4)
|
||||
(let ((t4-5 (-> sv-40 mask t3-10)))
|
||||
(when (nonzero? t4-5)
|
||||
(let ((t5-2 (+ (* a3-1 4) t3-10)))
|
||||
(if (< t5-2 (the-as uint a0-11))
|
||||
(set! a0-11 (the-as int t5-2))
|
||||
)
|
||||
(if (< (the-as uint v1-32) t5-2)
|
||||
(set! v1-32 (the-as int t5-2))
|
||||
)
|
||||
)
|
||||
(dotimes (t5-3 4)
|
||||
(when (logtest? t4-5 (ash 1 t5-3))
|
||||
(let ((t6-9 (+ (* t1-0 4) t5-3)))
|
||||
(if (< t6-9 (the-as uint a2-2))
|
||||
(set! a2-2 (the-as int t6-9))
|
||||
)
|
||||
(if (< (the-as uint a1-8) t6-9)
|
||||
(set! a1-8 (the-as int t6-9))
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(+! t1-0 1)
|
||||
)
|
||||
)
|
||||
(+! a3-1 1)
|
||||
)
|
||||
)
|
||||
(set! (-> *ocean-work* near-minx) (the-as uint (+ a2-2 -1)))
|
||||
(set! (-> *ocean-work* near-maxx) (the-as uint (+ a1-8 1)))
|
||||
(set! (-> *ocean-work* near-minz) (the-as uint (+ a0-11 -1)))
|
||||
(set! (-> *ocean-work* near-maxz) (the-as uint (+ v1-32 1)))
|
||||
)
|
||||
(dotimes (v1-34 16)
|
||||
(set! (-> *ocean-work* trans-temp-masks v1-34 word) (-> *ocean-work* trans-camera-masks v1-34 word))
|
||||
)
|
||||
(let ((s5-1 sv-34)
|
||||
(s4-1 sv-35)
|
||||
)
|
||||
(while (>= s4-1 s5-1)
|
||||
(let ((s3-1 sv-32)
|
||||
(s2-1 sv-33)
|
||||
)
|
||||
(while (>= s2-1 s3-1)
|
||||
(when (not (ocean-mid-mask-ptrs-bit? s5-1 s3-1))
|
||||
(when (ocean-mid-camera-masks-bit? s5-1 s3-1)
|
||||
(let ((v1-43 (-> *ocean-map* ocean-trans-indices data (+ (* (the-as uint 48) s5-1) s3-1))))
|
||||
(when (>= (-> v1-43 parent) 0)
|
||||
(let ((sv-44 (+ (* (- s5-1 sv-34) 4) (- s3-1 sv-32))))
|
||||
(set! (-> *ocean-work* near-mask-indices sv-44) (the-as uint (-> v1-43 child)))
|
||||
(let ((s1-0 (-> *ocean-map* ocean-mid-masks data (-> v1-43 parent))))
|
||||
(dotimes (s0-0 4)
|
||||
(let ((a3-5 (-> (the-as ocean-mid-mask (+ s0-0 (the-as int s1-0))) mask 0)))
|
||||
(if (!= a3-5 255)
|
||||
(ocean-trans-add-upload-strip arg0 s5-1 s3-1 a3-5 sv-44 (the-as uint s0-0))
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(+! s3-1 1)
|
||||
)
|
||||
(+! s3-1 1)
|
||||
)
|
||||
(+! s5-1 1)
|
||||
)
|
||||
(+! s5-1 1)
|
||||
)
|
||||
)
|
||||
(ocean-mid-add-call-flush arg0 (the-as uint 41))
|
||||
|
||||
+6
-17
@@ -52,27 +52,20 @@
|
||||
;; INFO: Used lq/sq
|
||||
;; INFO: Return type mismatch int vs none.
|
||||
(defun compute-and-draw-shadow ((arg0 vector) (arg1 vector) (arg2 vector) (arg3 vector) (arg4 float) (arg5 float))
|
||||
(local-vars
|
||||
(v1-10 float)
|
||||
(v1-11 float)
|
||||
(sv-96 vector)
|
||||
(sv-112 (function quaternion vector float quaternion))
|
||||
(sv-128 vector)
|
||||
(sv-144 vector)
|
||||
)
|
||||
(local-vars (v1-10 float) (v1-11 float))
|
||||
(rlet ((vf0 :class vf)
|
||||
(vf1 :class vf)
|
||||
(vf2 :class vf)
|
||||
)
|
||||
(init-vf0-vector)
|
||||
(set! sv-96 arg2)
|
||||
(let ((s4-0 arg3)
|
||||
(let ((sv-96 arg2)
|
||||
(s4-0 arg3)
|
||||
(s3-0 arg4)
|
||||
(s2-0 arg5)
|
||||
)
|
||||
(when (< (- (-> arg0 y) (-> arg1 y)) s3-0)
|
||||
(set! sv-144 (new 'stack-no-clear 'vector))
|
||||
(let ((s0-0 (new 'stack-no-clear 'vector))
|
||||
(let ((sv-144 (new 'stack-no-clear 'vector))
|
||||
(s0-0 (new 'stack-no-clear 'vector))
|
||||
(s1-0 (new 'stack-no-clear 'sparticle-cpuinfo))
|
||||
)
|
||||
(+! (-> arg1 y) 40.96)
|
||||
@@ -80,11 +73,7 @@
|
||||
(set! (-> sv-144 y) 0.0)
|
||||
(set! (-> sv-144 z) (- (-> sv-96 x)))
|
||||
(vector-normalize! sv-144 1.0)
|
||||
(set! sv-112 quaternion-vector-angle!)
|
||||
(set! sv-128 s0-0)
|
||||
(let ((a2-1 (acos (-> sv-96 y))))
|
||||
(sv-112 (the-as quaternion sv-128) sv-144 a2-1)
|
||||
)
|
||||
(quaternion-vector-angle! (the-as quaternion s0-0) sv-144 (acos (-> sv-96 y)))
|
||||
(let ((v1-9 s1-0))
|
||||
(cond
|
||||
((< (-> s0-0 w) 0.0)
|
||||
|
||||
Generated
Vendored
+4
-4
@@ -559,7 +559,7 @@
|
||||
(set! (-> v1-0 x) f0-0)
|
||||
(set! (-> v1-0 y) f1-0)
|
||||
(set! (-> v1-0 z) f3-0)
|
||||
(set! (-> v1-0 w) (sqrtf (- (- (- 1.0 (* f3-0 f3-0)) (* f1-0 f1-0)) (* f0-0 f0-0))))
|
||||
(set! (-> v1-0 w) (sqrtf (- (- (- 1.0 (square f3-0)) (square f1-0)) (square f0-0))))
|
||||
)
|
||||
(quaternion->matrix s5-0 a1-1)
|
||||
)
|
||||
@@ -814,7 +814,7 @@
|
||||
(set! (-> v1-0 x) f0-0)
|
||||
(set! (-> v1-0 y) f1-0)
|
||||
(set! (-> v1-0 z) f3-0)
|
||||
(set! (-> v1-0 w) (sqrtf (- (- (- 1.0 (* f3-0 f3-0)) (* f1-0 f1-0)) (* f0-0 f0-0))))
|
||||
(set! (-> v1-0 w) (sqrtf (- (- (- 1.0 (square f3-0)) (square f1-0)) (square f0-0))))
|
||||
)
|
||||
(set! (-> arg3 qx-qy-qz-sy x) 0.0)
|
||||
(set! (-> arg3 qx-qy-qz-sy y) 0.0)
|
||||
@@ -1181,7 +1181,7 @@
|
||||
(set! (-> s4-0 x) f0-0)
|
||||
(set! (-> s4-0 y) f1-0)
|
||||
(set! (-> s4-0 z) f3-0)
|
||||
(set! (-> s4-0 w) (sqrtf (- (- (- 1.0 (* f3-0 f3-0)) (* f1-0 f1-0)) (* f0-0 f0-0))))
|
||||
(set! (-> s4-0 w) (sqrtf (- (- (- 1.0 (square f3-0)) (square f1-0)) (square f0-0))))
|
||||
)
|
||||
(quaternion-rotate-y! (the-as quaternion s4-0) (the-as quaternion s4-0) (-> s5-0 sprite rot))
|
||||
(let ((v1-3 arg2))
|
||||
@@ -1240,7 +1240,7 @@
|
||||
(set! (-> s4-0 x) f0-0)
|
||||
(set! (-> s4-0 y) f1-0)
|
||||
(set! (-> s4-0 z) f3-0)
|
||||
(set! (-> s4-0 w) (sqrtf (- (- (- 1.0 (* f3-0 f3-0)) (* f1-0 f1-0)) (* f0-0 f0-0))))
|
||||
(set! (-> s4-0 w) (sqrtf (- (- (- 1.0 (square f3-0)) (square f1-0)) (square f0-0))))
|
||||
)
|
||||
(let ((a1-1 (new-stack-vector0)))
|
||||
(set! (-> a1-1 y) (-> s5-0 sprite rot))
|
||||
|
||||
+27
-59
@@ -358,59 +358,27 @@
|
||||
;; INFO: Used lq/sq
|
||||
;; INFO: Return type mismatch int vs none.
|
||||
(defun sp-process-block ((arg0 sparticle-system) (arg1 int) (arg2 sprite-array-2d) (arg3 int))
|
||||
(local-vars
|
||||
(sv-16 int)
|
||||
(sv-32 int)
|
||||
(sv-48 (function sparticle-system int int int int symbol none))
|
||||
(sv-64 sparticle-system)
|
||||
(sv-80 int)
|
||||
(sv-96 int)
|
||||
(sv-112 int)
|
||||
(sv-128 (function sparticle-system int int int int symbol none))
|
||||
(sv-144 sparticle-system)
|
||||
(sv-160 int)
|
||||
(sv-176 int)
|
||||
(sv-192 int)
|
||||
)
|
||||
(let ((s3-0 16)
|
||||
(s2-0 (* 144 arg3))
|
||||
(s5-0 (* 48 arg3))
|
||||
)
|
||||
(set! sv-32 (* 80 arg3))
|
||||
(let ((s1-0 (+ s3-0 s2-0)))
|
||||
(set! sv-16 (+ s1-0 s5-0))
|
||||
(let* ((s3-0 16)
|
||||
(s2-0 (* 144 arg3))
|
||||
(s5-0 (* 48 arg3))
|
||||
(sv-32 (* 80 arg3))
|
||||
(s1-0 (+ s3-0 s2-0))
|
||||
)
|
||||
(let ((sv-16 (+ s1-0 s5-0)))
|
||||
(sp-copy-to-spr s3-0 (the-as pointer (-> arg0 cpuinfo-table arg1)) s2-0)
|
||||
(sp-copy-to-spr s1-0 (&+ (-> arg0 vecdata-table) (* 48 arg1)) s5-0)
|
||||
(let ((t9-2 sp-copy-to-spr)
|
||||
(a1-7 (-> arg0 adgifdata-table arg1))
|
||||
)
|
||||
(t9-2 sv-16 (the-as pointer a1-7) sv-32)
|
||||
)
|
||||
(set! sv-80 (+ #x70000000 s3-0))
|
||||
(set! sv-96 (+ #x70000000 s1-0))
|
||||
(cond
|
||||
((-> arg0 is-3d)
|
||||
(set! sv-48 sp-process-block-3d)
|
||||
(set! sv-64 arg0)
|
||||
(set! sv-112 arg1)
|
||||
(let ((t1-0 (paused?)))
|
||||
(sv-48 sv-64 sv-80 sv-96 sv-112 arg3 t1-0)
|
||||
)
|
||||
)
|
||||
(else
|
||||
(set! sv-128 sp-process-block-2d)
|
||||
(set! sv-144 arg0)
|
||||
(set! sv-160 sv-80)
|
||||
(set! sv-176 sv-96)
|
||||
(set! sv-192 arg1)
|
||||
(let ((t1-1 (paused?)))
|
||||
(sv-128 sv-144 sv-160 sv-176 sv-192 arg3 t1-1)
|
||||
)
|
||||
)
|
||||
)
|
||||
(sp-copy-from-spr s3-0 (the-as pointer (-> arg0 cpuinfo-table arg1)) s2-0)
|
||||
(sp-copy-from-spr s1-0 (&+ (-> arg0 vecdata-table) (* 48 arg1)) s5-0)
|
||||
(sp-copy-to-spr sv-16 (the-as pointer (-> arg0 adgifdata-table arg1)) sv-32)
|
||||
)
|
||||
(let ((sv-80 (+ #x70000000 s3-0))
|
||||
(sv-96 (+ #x70000000 s1-0))
|
||||
)
|
||||
(if (-> arg0 is-3d)
|
||||
(sp-process-block-3d arg0 sv-80 sv-96 arg1 arg3 (paused?))
|
||||
(sp-process-block-2d arg0 sv-80 sv-96 arg1 arg3 (paused?))
|
||||
)
|
||||
)
|
||||
(sp-copy-from-spr s3-0 (the-as pointer (-> arg0 cpuinfo-table arg1)) s2-0)
|
||||
(sp-copy-from-spr s1-0 (&+ (-> arg0 vecdata-table) (* 48 arg1)) s5-0)
|
||||
)
|
||||
0
|
||||
(none)
|
||||
@@ -452,7 +420,6 @@
|
||||
(arg1 (function sparticle-system sparticle-cpuinfo none))
|
||||
(arg2 sparticle-system)
|
||||
)
|
||||
(local-vars (sv-16 int))
|
||||
(let ((s3-0 (the-as object (-> arg2 cpuinfo-table 0)))
|
||||
(s2-0 (&+ (-> arg2 vecdata-table) 0))
|
||||
(s1-0 (+ (-> arg2 blocks 0) (-> arg2 blocks 1)))
|
||||
@@ -460,14 +427,15 @@
|
||||
(dotimes (s0-0 s1-0)
|
||||
(cond
|
||||
((!= (-> arg2 alloc-table s0-0) -1)
|
||||
(set! sv-16 0)
|
||||
(while (< sv-16 64)
|
||||
(if (and (-> (the-as sparticle-cpuinfo s3-0) valid) (= (-> (the-as sparticle-cpuinfo s3-0) key) arg0))
|
||||
(arg1 arg2 (the-as sparticle-cpuinfo s3-0))
|
||||
)
|
||||
(set! s3-0 (-> (the-as (inline-array sparticle-cpuinfo) s3-0) 1))
|
||||
(&+! s2-0 48)
|
||||
(set! sv-16 (+ sv-16 1))
|
||||
(let ((sv-16 0))
|
||||
(while (< sv-16 64)
|
||||
(if (and (-> (the-as sparticle-cpuinfo s3-0) valid) (= (-> (the-as sparticle-cpuinfo s3-0) key) arg0))
|
||||
(arg1 arg2 (the-as sparticle-cpuinfo s3-0))
|
||||
)
|
||||
(set! s3-0 (-> (the-as (inline-array sparticle-cpuinfo) s3-0) 1))
|
||||
(&+! s2-0 48)
|
||||
(+! sv-16 1)
|
||||
)
|
||||
)
|
||||
)
|
||||
(else
|
||||
|
||||
+31
-38
@@ -169,15 +169,7 @@
|
||||
;; ERROR: Inline assembly instruction marked with TODO - [TODO.VCLIP]
|
||||
;; ERROR: Unsupported inline assembly instruction kind - [cfc2.i v1, Clipping]
|
||||
(defun sprite-draw-distorters ((arg0 dma-buffer))
|
||||
(local-vars
|
||||
(v1-14 float)
|
||||
(v1-20 float)
|
||||
(v1-25 int)
|
||||
(v1-57 float)
|
||||
(sv-16 sprite-vec-data-2d)
|
||||
(sv-32 pointer)
|
||||
(sv-48 pointer)
|
||||
)
|
||||
(local-vars (v1-14 float) (v1-20 float) (v1-25 int) (v1-57 float))
|
||||
(rlet ((acc :class vf)
|
||||
(Q :class vf)
|
||||
(vf0 :class vf)
|
||||
@@ -202,10 +194,11 @@
|
||||
(s2-0 (-> s3-0 entry))
|
||||
)
|
||||
(dotimes (s1-0 s2-0)
|
||||
(set! sv-16 (-> s3-0 data s1-0))
|
||||
(let ((a0-1 (the-as object (-> arg0 base))))
|
||||
(set! sv-32 (&+ (the-as pointer a0-1) 16))
|
||||
(set! sv-48 (&+ (the-as pointer a0-1) 32))
|
||||
(let* ((sv-16 (-> s3-0 data s1-0))
|
||||
(a0-1 (the-as object (-> arg0 base)))
|
||||
(sv-32 (&+ (the-as pointer a0-1) 16))
|
||||
(sv-48 (&+ (the-as pointer a0-1) 32))
|
||||
)
|
||||
(cond
|
||||
((= (-> sv-16 matrix) 1)
|
||||
(.lvf vf3 (&-> *math-camera* sprite-2d vector 0 quad))
|
||||
@@ -247,32 +240,32 @@
|
||||
(set! (-> (the-as vector sv-32) y)
|
||||
(* 0.00390625 (+ -2048.0 (the float (-> *video-parms* screen-hy)) (-> (the-as vector a0-1) y)))
|
||||
)
|
||||
)
|
||||
(set! (-> (the-as vector sv-32) z) 1.0)
|
||||
(when (or (< (-> sv-16 flag) 3) (< 11 (-> sv-16 flag)))
|
||||
(format 0 "Turns = ~D!!!~%" (-> sv-16 flag))
|
||||
(set! (-> (the-as (pointer int32) sv-16) 4) 11)
|
||||
)
|
||||
(set! (-> (the-as (pointer int32) sv-32) 3) (-> sv-16 flag))
|
||||
(let* ((f0-7 (- (-> *math-camera* perspective vector 1 y)))
|
||||
(f2-4 (-> (the-as vector sv-32) y))
|
||||
(f4-0 (+ f2-4 (* (-> (the-as (pointer float) sv-48)) f0-7)))
|
||||
(f3-0 256.0)
|
||||
(f1-7 (-> (the-as (pointer float) sv-48)))
|
||||
)
|
||||
(if (< (the float (-> *video-parms* screen-sy)) f4-0)
|
||||
(set! f3-0 (/ (- (the float (-> *video-parms* screen-sy)) f2-4) f0-7))
|
||||
(set! (-> (the-as vector sv-32) z) 1.0)
|
||||
(when (or (< (-> sv-16 flag) 3) (< 11 (-> sv-16 flag)))
|
||||
(format 0 "Turns = ~D!!!~%" (-> sv-16 flag))
|
||||
(set! (-> (the-as (pointer int32) sv-16) 4) 11)
|
||||
)
|
||||
(set! (-> (the-as (pointer int32) sv-32) 3) (-> sv-16 flag))
|
||||
(let* ((f0-7 (- (-> *math-camera* perspective vector 1 y)))
|
||||
(f2-4 (-> (the-as vector sv-32) y))
|
||||
(f4-0 (+ f2-4 (* (-> (the-as (pointer float) sv-48)) f0-7)))
|
||||
(f3-0 256.0)
|
||||
(f1-7 (-> (the-as (pointer float) sv-48)))
|
||||
)
|
||||
(if (< (the float (-> *video-parms* screen-sy)) f4-0)
|
||||
(set! f3-0 (/ (- (the float (-> *video-parms* screen-sy)) f2-4) f0-7))
|
||||
)
|
||||
(if (< 128.0 f3-0)
|
||||
(set! f3-0 128.0)
|
||||
)
|
||||
(when (< f3-0 f1-7)
|
||||
(let ((v1-55 (/ f3-0 f1-7)))
|
||||
(.mov vf1 v1-55)
|
||||
)
|
||||
(.mul.x.vf vf2 vf2 vf1)
|
||||
(.svf (&-> (the-as vector sv-48) quad) vf2)
|
||||
(.mov v1-57 vf2)
|
||||
)
|
||||
(if (< 128.0 f3-0)
|
||||
(set! f3-0 128.0)
|
||||
)
|
||||
(when (< f3-0 f1-7)
|
||||
(let ((v1-55 (/ f3-0 f1-7)))
|
||||
(.mov vf1 v1-55)
|
||||
)
|
||||
(.mul.x.vf vf2 vf2 vf1)
|
||||
(.svf (&-> (the-as vector sv-48) quad) vf2)
|
||||
(.mov v1-57 vf2)
|
||||
)
|
||||
)
|
||||
(&+! (-> arg0 base) 48)
|
||||
|
||||
+1
-1
@@ -474,7 +474,7 @@
|
||||
(set! (-> arg0 x) f0-0)
|
||||
(set! (-> arg0 y) f1-0)
|
||||
(set! (-> arg0 z) f3-0)
|
||||
(set! (-> arg0 w) (sqrtf (- (- (- 1.0 (* f3-0 f3-0)) (* f1-0 f1-0)) (* f0-0 f0-0))))
|
||||
(set! (-> arg0 w) (sqrtf (- (- (- 1.0 (square f3-0)) (square f1-0)) (square f0-0))))
|
||||
)
|
||||
arg0
|
||||
)
|
||||
|
||||
+158
-164
@@ -830,81 +830,78 @@
|
||||
|
||||
;; definition for function upload-vram-pages
|
||||
(defun upload-vram-pages ((pool texture-pool) (segment texture-pool-segment) (page texture-page) (mode int) (bucket-idx bucket-id))
|
||||
(local-vars
|
||||
(tex-data pointer)
|
||||
(tex-dest-base-chunk uint)
|
||||
(chunk-count int)
|
||||
(chunks-to-upload-count int)
|
||||
(first-chunk-idx-to-upload int)
|
||||
(tex-id uint)
|
||||
)
|
||||
(let ((total-upload-size 0))
|
||||
(let* ((dma-buf (-> *display* frames (-> *display* on-screen) frame global-buf))
|
||||
(dma-start (-> dma-buf base))
|
||||
)
|
||||
(set! tex-data (-> page segment 0 block-data))
|
||||
(set! tex-dest-base-chunk (shr (-> page segment 0 dest) 12))
|
||||
(set! chunk-count (the-as int (-> page segment 0 size)))
|
||||
(set! chunks-to-upload-count 0)
|
||||
(set! first-chunk-idx-to-upload 0)
|
||||
(set! tex-id (-> page id))
|
||||
(let ((v1-8 mode))
|
||||
(cond
|
||||
((= v1-8 -3)
|
||||
(return 0)
|
||||
)
|
||||
((zero? v1-8)
|
||||
)
|
||||
((= v1-8 -2)
|
||||
(set! chunk-count (the-as int (+ chunk-count (-> page segment 1 size))))
|
||||
)
|
||||
((= v1-8 -1)
|
||||
(set! chunk-count (the-as int (-> page size)))
|
||||
)
|
||||
((= v1-8 2)
|
||||
(set! tex-data (-> page segment 2 block-data))
|
||||
(set! tex-dest-base-chunk (shr (-> page segment 2 dest) 12))
|
||||
(set! chunk-count (the-as int (-> page segment 2 size)))
|
||||
)
|
||||
)
|
||||
)
|
||||
(set! chunk-count (shr (min (the-as int (-> segment size)) (the-as int (+ chunk-count 4095))) 12))
|
||||
(dotimes (upload-chunk-idx chunk-count)
|
||||
(let ((current-dest-chunk (+ tex-dest-base-chunk upload-chunk-idx)))
|
||||
(cond
|
||||
((zero? chunks-to-upload-count)
|
||||
(when (!= (-> pool ids current-dest-chunk) tex-id)
|
||||
(set! first-chunk-idx-to-upload upload-chunk-idx)
|
||||
(set! (-> pool ids current-dest-chunk) tex-id)
|
||||
(set! chunks-to-upload-count (+ chunks-to-upload-count 1))
|
||||
(let ((tex-data (-> page segment 0 block-data))
|
||||
(tex-dest-base-chunk (shr (-> page segment 0 dest) 12))
|
||||
(chunk-count (the-as int (-> page segment 0 size)))
|
||||
(chunks-to-upload-count 0)
|
||||
(first-chunk-idx-to-upload 0)
|
||||
)
|
||||
(let ((tex-id (-> page id)))
|
||||
(let ((v1-8 mode))
|
||||
(cond
|
||||
((= v1-8 -3)
|
||||
(return 0)
|
||||
)
|
||||
)
|
||||
((= (-> pool ids current-dest-chunk) tex-id)
|
||||
(upload-vram-data
|
||||
dma-buf
|
||||
(the-as int (* (+ tex-dest-base-chunk first-chunk-idx-to-upload) 64))
|
||||
(&+ tex-data (shl first-chunk-idx-to-upload 14))
|
||||
(* chunks-to-upload-count 32)
|
||||
((zero? v1-8)
|
||||
)
|
||||
(+! total-upload-size chunks-to-upload-count)
|
||||
(set! chunks-to-upload-count 0)
|
||||
0
|
||||
)
|
||||
(else
|
||||
(set! (-> pool ids current-dest-chunk) tex-id)
|
||||
(set! chunks-to-upload-count (+ chunks-to-upload-count 1))
|
||||
((= v1-8 -2)
|
||||
(set! chunk-count (the-as int (+ (the-as uint chunk-count) (-> page segment 1 size))))
|
||||
)
|
||||
((= v1-8 -1)
|
||||
(set! chunk-count (the-as int (-> page size)))
|
||||
)
|
||||
((= v1-8 2)
|
||||
(set! tex-data (-> page segment 2 block-data))
|
||||
(set! tex-dest-base-chunk (shr (-> page segment 2 dest) 12))
|
||||
(set! chunk-count (the-as int (-> page segment 2 size)))
|
||||
)
|
||||
)
|
||||
)
|
||||
(set! chunk-count
|
||||
(shr (min (the-as int (-> segment size)) (the-as int (+ (the-as uint chunk-count) 4095))) 12)
|
||||
)
|
||||
(dotimes (upload-chunk-idx chunk-count)
|
||||
(let ((current-dest-chunk (+ tex-dest-base-chunk upload-chunk-idx)))
|
||||
(cond
|
||||
((zero? chunks-to-upload-count)
|
||||
(when (!= (-> pool ids current-dest-chunk) tex-id)
|
||||
(set! first-chunk-idx-to-upload upload-chunk-idx)
|
||||
(set! (-> pool ids current-dest-chunk) tex-id)
|
||||
(+! chunks-to-upload-count 1)
|
||||
)
|
||||
)
|
||||
((= (-> pool ids current-dest-chunk) tex-id)
|
||||
(upload-vram-data
|
||||
dma-buf
|
||||
(the-as int (* (+ tex-dest-base-chunk first-chunk-idx-to-upload) 64))
|
||||
(&+ tex-data (shl first-chunk-idx-to-upload 14))
|
||||
(* chunks-to-upload-count 32)
|
||||
)
|
||||
(+! total-upload-size chunks-to-upload-count)
|
||||
(set! chunks-to-upload-count 0)
|
||||
0
|
||||
)
|
||||
(else
|
||||
(set! (-> pool ids current-dest-chunk) tex-id)
|
||||
(+! chunks-to-upload-count 1)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(when (nonzero? chunks-to-upload-count)
|
||||
(upload-vram-data
|
||||
dma-buf
|
||||
(the-as int (* (+ tex-dest-base-chunk first-chunk-idx-to-upload) 64))
|
||||
(&+ tex-data (shl first-chunk-idx-to-upload 14))
|
||||
(* chunks-to-upload-count 32)
|
||||
(when (nonzero? chunks-to-upload-count)
|
||||
(upload-vram-data
|
||||
dma-buf
|
||||
(the-as int (* (+ tex-dest-base-chunk first-chunk-idx-to-upload) 64))
|
||||
(&+ tex-data (shl first-chunk-idx-to-upload 14))
|
||||
(* chunks-to-upload-count 32)
|
||||
)
|
||||
(+! total-upload-size chunks-to-upload-count)
|
||||
)
|
||||
(+! total-upload-size chunks-to-upload-count)
|
||||
)
|
||||
(let* ((v1-47 dma-buf)
|
||||
(dma (the-as dma-packet (-> v1-47 base)))
|
||||
@@ -1007,63 +1004,60 @@
|
||||
(bucket-idx bucket-id)
|
||||
(allow-cache-mask int)
|
||||
)
|
||||
(local-vars
|
||||
(tex-data pointer)
|
||||
(tex-dest-base-chunk uint)
|
||||
(chunk-count int)
|
||||
(chunks-to-upload-count int)
|
||||
(first-chunk-idx-to-upload int)
|
||||
(page-id uint)
|
||||
(current-dest-chunk uint)
|
||||
(need-tex symbol)
|
||||
)
|
||||
(let ((total-upload-size 0))
|
||||
(let* ((dma-buf (-> *display* frames (-> *display* on-screen) frame global-buf))
|
||||
(s4-0 (-> dma-buf base))
|
||||
)
|
||||
(set! tex-data (-> page segment 0 block-data))
|
||||
(set! tex-dest-base-chunk (shr (-> page segment 0 dest) 12))
|
||||
(set! chunk-count (the-as int (-> page size)))
|
||||
(set! chunks-to-upload-count 0)
|
||||
(set! first-chunk-idx-to-upload 0)
|
||||
(set! page-id (-> page id))
|
||||
(set! chunk-count (shr (min (the-as int (-> segment size)) (the-as int (+ chunk-count 4095))) 12))
|
||||
(dotimes (upload-chunk-idx chunk-count)
|
||||
(set! current-dest-chunk (+ tex-dest-base-chunk upload-chunk-idx))
|
||||
(set! need-tex (logtest? allow-cache-mask (ash 1 upload-chunk-idx)))
|
||||
(cond
|
||||
((zero? chunks-to-upload-count)
|
||||
(when (and (!= (-> pool ids current-dest-chunk) page-id) need-tex)
|
||||
(set! first-chunk-idx-to-upload upload-chunk-idx)
|
||||
(set! (-> pool ids current-dest-chunk) page-id)
|
||||
(set! chunks-to-upload-count (+ chunks-to-upload-count 1))
|
||||
)
|
||||
)
|
||||
((or (= (-> pool ids current-dest-chunk) page-id) (not need-tex))
|
||||
(upload-vram-data
|
||||
dma-buf
|
||||
(the-as int (* (+ tex-dest-base-chunk first-chunk-idx-to-upload) 64))
|
||||
(&+ tex-data (shl first-chunk-idx-to-upload 14))
|
||||
(* chunks-to-upload-count 32)
|
||||
)
|
||||
(+! total-upload-size chunks-to-upload-count)
|
||||
(set! chunks-to-upload-count 0)
|
||||
0
|
||||
)
|
||||
(else
|
||||
(set! (-> pool ids current-dest-chunk) page-id)
|
||||
(set! chunks-to-upload-count (+ chunks-to-upload-count 1))
|
||||
(let ((tex-data (-> page segment 0 block-data))
|
||||
(tex-dest-base-chunk (shr (-> page segment 0 dest) 12))
|
||||
(chunk-count (the-as int (-> page size)))
|
||||
(chunks-to-upload-count 0)
|
||||
(first-chunk-idx-to-upload 0)
|
||||
)
|
||||
(let ((page-id (-> page id)))
|
||||
(set! chunk-count
|
||||
(shr (min (the-as int (-> segment size)) (the-as int (+ (the-as uint chunk-count) 4095))) 12)
|
||||
)
|
||||
(dotimes (upload-chunk-idx chunk-count)
|
||||
(let ((current-dest-chunk (+ tex-dest-base-chunk upload-chunk-idx))
|
||||
(need-tex (logtest? allow-cache-mask (ash 1 upload-chunk-idx)))
|
||||
)
|
||||
(cond
|
||||
((zero? chunks-to-upload-count)
|
||||
(when (and (!= (-> pool ids current-dest-chunk) page-id) need-tex)
|
||||
(set! first-chunk-idx-to-upload upload-chunk-idx)
|
||||
(set! (-> pool ids current-dest-chunk) page-id)
|
||||
(+! chunks-to-upload-count 1)
|
||||
)
|
||||
)
|
||||
((or (= (-> pool ids current-dest-chunk) page-id) (not need-tex))
|
||||
(upload-vram-data
|
||||
dma-buf
|
||||
(the-as int (* (+ tex-dest-base-chunk first-chunk-idx-to-upload) 64))
|
||||
(&+ tex-data (shl first-chunk-idx-to-upload 14))
|
||||
(* chunks-to-upload-count 32)
|
||||
)
|
||||
(+! total-upload-size chunks-to-upload-count)
|
||||
(set! chunks-to-upload-count 0)
|
||||
0
|
||||
)
|
||||
(else
|
||||
(set! (-> pool ids current-dest-chunk) page-id)
|
||||
(+! chunks-to-upload-count 1)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(when (nonzero? chunks-to-upload-count)
|
||||
(upload-vram-data
|
||||
dma-buf
|
||||
(the-as int (* (+ tex-dest-base-chunk first-chunk-idx-to-upload) 64))
|
||||
(&+ tex-data (shl first-chunk-idx-to-upload 14))
|
||||
(* chunks-to-upload-count 32)
|
||||
(when (nonzero? chunks-to-upload-count)
|
||||
(upload-vram-data
|
||||
dma-buf
|
||||
(the-as int (* (+ tex-dest-base-chunk first-chunk-idx-to-upload) 64))
|
||||
(&+ tex-data (shl first-chunk-idx-to-upload 14))
|
||||
(* chunks-to-upload-count 32)
|
||||
)
|
||||
(+! total-upload-size chunks-to-upload-count)
|
||||
)
|
||||
(+! total-upload-size chunks-to-upload-count)
|
||||
)
|
||||
(let* ((v1-52 dma-buf)
|
||||
(dma (the-as dma-packet (-> v1-52 base)))
|
||||
@@ -1811,9 +1805,8 @@
|
||||
|
||||
;; definition for method 13 of type texture-page
|
||||
(defmethod add-to-dma-buffer ((this texture-page) (dma-buff dma-buffer) (mode int))
|
||||
(local-vars (total-size int))
|
||||
(let ((v1-0 mode))
|
||||
(set! total-size (cond
|
||||
(let* ((v1-0 mode)
|
||||
(total-size (cond
|
||||
((= v1-0 -3)
|
||||
0
|
||||
)
|
||||
@@ -1827,53 +1820,54 @@
|
||||
(the-as int (-> this segment mode size))
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(let* ((start-segment (max 0 mode))
|
||||
(chunk-count (* (/ (+ (/ total-size 64) 63) 64) 32))
|
||||
(current-dest (shr (-> this segment start-segment dest) 6))
|
||||
(current-data (-> this segment start-segment block-data))
|
||||
)
|
||||
)
|
||||
(while (> chunk-count 0)
|
||||
(let ((chunks-now (min 2048 chunk-count)))
|
||||
(let* ((v1-11 dma-buff)
|
||||
(pkt (the-as dma-packet (-> v1-11 base)))
|
||||
)
|
||||
(set! (-> pkt dma) (new 'static 'dma-tag :qwc #x5 :id (dma-tag-id cnt)))
|
||||
(set! (-> pkt vif0) (new 'static 'vif-tag))
|
||||
(set! (-> pkt vif1) (new 'static 'vif-tag :imm #x5 :cmd (vif-cmd direct) :msk #x1))
|
||||
(set! (-> v1-11 base) (&+ (the-as pointer pkt) 16))
|
||||
(let* ((start-segment (max 0 mode))
|
||||
(chunk-count (* (/ (+ (/ total-size 64) 63) 64) 32))
|
||||
(current-dest (shr (-> this segment start-segment dest) 6))
|
||||
(current-data (-> this segment start-segment block-data))
|
||||
)
|
||||
(while (> chunk-count 0)
|
||||
(let ((chunks-now (min 2048 chunk-count)))
|
||||
(let* ((v1-11 dma-buff)
|
||||
(pkt (the-as dma-packet (-> v1-11 base)))
|
||||
)
|
||||
(set! (-> pkt dma) (new 'static 'dma-tag :qwc #x5 :id (dma-tag-id cnt)))
|
||||
(set! (-> pkt vif0) (new 'static 'vif-tag))
|
||||
(set! (-> pkt vif1) (new 'static 'vif-tag :imm #x5 :cmd (vif-cmd direct) :msk #x1))
|
||||
(set! (-> v1-11 base) (&+ (the-as pointer pkt) 16))
|
||||
)
|
||||
(let* ((v1-12 dma-buff)
|
||||
(gs-tag (the-as gs-gif-tag (-> v1-12 base)))
|
||||
)
|
||||
(set! (-> gs-tag tag) (new 'static 'gif-tag64 :nloop #x4 :nreg #x1))
|
||||
(set! (-> gs-tag regs) (new 'static 'gif-tag-regs :regs0 (gif-reg-id a+d)))
|
||||
(set! (-> v1-12 base) (&+ (the-as pointer gs-tag) 16))
|
||||
)
|
||||
(let* ((v1-13 dma-buff)
|
||||
(gs-reg-data (-> v1-13 base))
|
||||
)
|
||||
(set! (-> (the-as (pointer gs-bitbltbuf) gs-reg-data) 0)
|
||||
(new 'static 'gs-bitbltbuf :dbw #x2 :dbp current-dest)
|
||||
)
|
||||
(set! (-> (the-as (pointer gs-reg64) gs-reg-data) 1) (gs-reg64 bitbltbuf))
|
||||
(set! (-> (the-as (pointer gs-trxpos) gs-reg-data) 2) (new 'static 'gs-trxpos))
|
||||
(set! (-> (the-as (pointer gs-reg64) gs-reg-data) 3) (gs-reg64 trxpos))
|
||||
(set! (-> (the-as (pointer gs-trxreg) gs-reg-data) 4) (new 'static 'gs-trxreg :rrw #x80 :rrh chunks-now))
|
||||
(set! (-> (the-as (pointer gs-reg64) gs-reg-data) 5) (gs-reg64 trxreg))
|
||||
(set! (-> (the-as (pointer gs-trxdir) gs-reg-data) 6) (new 'static 'gs-trxdir))
|
||||
(set! (-> (the-as (pointer gs-reg64) gs-reg-data) 7) (gs-reg64 trxdir))
|
||||
(set! (-> v1-13 base) (&+ gs-reg-data 64))
|
||||
)
|
||||
(dma-buffer-add-ref-texture dma-buff current-data 128 chunks-now (gs-psm ct32))
|
||||
)
|
||||
(let* ((v1-12 dma-buff)
|
||||
(gs-tag (the-as gs-gif-tag (-> v1-12 base)))
|
||||
)
|
||||
(set! (-> gs-tag tag) (new 'static 'gif-tag64 :nloop #x4 :nreg #x1))
|
||||
(set! (-> gs-tag regs) (new 'static 'gif-tag-regs :regs0 (gif-reg-id a+d)))
|
||||
(set! (-> v1-12 base) (&+ (the-as pointer gs-tag) 16))
|
||||
)
|
||||
(let* ((v1-13 dma-buff)
|
||||
(gs-reg-data (-> v1-13 base))
|
||||
)
|
||||
(set! (-> (the-as (pointer gs-bitbltbuf) gs-reg-data) 0)
|
||||
(new 'static 'gs-bitbltbuf :dbw #x2 :dbp current-dest)
|
||||
)
|
||||
(set! (-> (the-as (pointer gs-reg64) gs-reg-data) 1) (gs-reg64 bitbltbuf))
|
||||
(set! (-> (the-as (pointer gs-trxpos) gs-reg-data) 2) (new 'static 'gs-trxpos))
|
||||
(set! (-> (the-as (pointer gs-reg64) gs-reg-data) 3) (gs-reg64 trxpos))
|
||||
(set! (-> (the-as (pointer gs-trxreg) gs-reg-data) 4) (new 'static 'gs-trxreg :rrw #x80 :rrh chunks-now))
|
||||
(set! (-> (the-as (pointer gs-reg64) gs-reg-data) 5) (gs-reg64 trxreg))
|
||||
(set! (-> (the-as (pointer gs-trxdir) gs-reg-data) 6) (new 'static 'gs-trxdir))
|
||||
(set! (-> (the-as (pointer gs-reg64) gs-reg-data) 7) (gs-reg64 trxdir))
|
||||
(set! (-> v1-13 base) (&+ gs-reg-data 64))
|
||||
)
|
||||
(dma-buffer-add-ref-texture dma-buff current-data 128 chunks-now (gs-psm ct32))
|
||||
(+! current-dest 4096)
|
||||
(&+! current-data #x100000)
|
||||
(+! chunk-count -2048)
|
||||
)
|
||||
(+! current-dest 4096)
|
||||
(&+! current-data #x100000)
|
||||
(+! chunk-count -2048)
|
||||
)
|
||||
total-size
|
||||
)
|
||||
total-size
|
||||
)
|
||||
|
||||
;; definition for function texture-relocate
|
||||
@@ -2020,10 +2014,10 @@
|
||||
;; WARN: Stack slot offset 16 signed mismatch
|
||||
;; INFO: Return type mismatch int vs none.
|
||||
(defmethod setup-font-texture! ((this texture-pool))
|
||||
(local-vars (heap-before-font-tex int) (clut-dest-addr int))
|
||||
(let ((font-clut (-> this font-palette)))
|
||||
(set! heap-before-font-tex (-> this cur))
|
||||
(set! clut-dest-addr (/ font-clut 64))
|
||||
(let* ((font-clut (-> this font-palette))
|
||||
(heap-before-font-tex (-> this cur))
|
||||
(clut-dest-addr (/ font-clut 64))
|
||||
)
|
||||
(set! *font-texture* (get-texture ascii.12lo gamefontnew))
|
||||
(let ((main-font-tx
|
||||
(texture-page-login (new 'static 'texture-id :index #x1 :page #x4fe) texture-page-default-allocate global)
|
||||
|
||||
+154
-155
@@ -29,7 +29,7 @@
|
||||
;; definition for function draw-drawable-tree-tfrag
|
||||
;; INFO: Return type mismatch drawable-tree-tfrag vs none.
|
||||
(defun draw-drawable-tree-tfrag ((arg0 drawable-tree-tfrag))
|
||||
(local-vars (a0-20 int) (a0-22 int) (a0-38 int) (a0-40 int) (sv-16 (pointer uint8)))
|
||||
(local-vars (a0-20 int) (a0-22 int) (a0-38 int) (a0-40 int))
|
||||
(when (logtest? *vu1-enable-user* (vu1-renderer-mask tfrag))
|
||||
(let ((s5-0 (+ (-> arg0 length) -1)))
|
||||
(when (nonzero? s5-0)
|
||||
@@ -53,165 +53,164 @@
|
||||
(let* ((v1-13 (the-as drawable-inline-array-tfrag (-> arg0 arrays s5-0)))
|
||||
(s4-1 (-> v1-13 data))
|
||||
(s3-0 (-> v1-13 length))
|
||||
(sv-16 (&-> (the-as terrain-context #x70000000) work background vis-list (/ (-> s4-1 0 id) 8)))
|
||||
(s5-1 (-> *display* frames (-> *display* on-screen) frame global-buf base))
|
||||
)
|
||||
(set! sv-16 (&-> (the-as terrain-context #x70000000) work background vis-list (/ (-> s4-1 0 id) 8)))
|
||||
(let ((s5-1 (-> *display* frames (-> *display* on-screen) frame global-buf base)))
|
||||
(let* ((s1-0 (-> *display* frames (-> *display* on-screen) frame global-buf))
|
||||
(s2-0 (-> s1-0 base))
|
||||
(let* ((s1-0 (-> *display* frames (-> *display* on-screen) frame global-buf))
|
||||
(s2-0 (-> s1-0 base))
|
||||
)
|
||||
(set! (-> *tfrag-work* wait-to-spr) (the-as uint 0))
|
||||
(set! (-> *tfrag-work* wait-from-spr) (the-as uint 0))
|
||||
(tfrag-init-buffer
|
||||
s1-0
|
||||
(new 'static 'gs-test
|
||||
:ate #x1
|
||||
:atst (gs-atest greater-equal)
|
||||
:aref #x26
|
||||
:zte #x1
|
||||
:ztst (gs-ztest greater-equal)
|
||||
)
|
||||
0
|
||||
)
|
||||
(let* ((v1-28 (-> *perf-stats* data 5))
|
||||
(a0-17 (-> v1-28 ctrl))
|
||||
)
|
||||
(set! (-> *tfrag-work* wait-to-spr) (the-as uint 0))
|
||||
(set! (-> *tfrag-work* wait-from-spr) (the-as uint 0))
|
||||
(tfrag-init-buffer
|
||||
s1-0
|
||||
(new 'static 'gs-test
|
||||
:ate #x1
|
||||
:atst (gs-atest greater-equal)
|
||||
:aref #x26
|
||||
:zte #x1
|
||||
:ztst (gs-ztest greater-equal)
|
||||
)
|
||||
0
|
||||
)
|
||||
(let* ((v1-28 (-> *perf-stats* data 5))
|
||||
(a0-17 (-> v1-28 ctrl))
|
||||
)
|
||||
(+! (-> v1-28 count) 1)
|
||||
(b! (zero? a0-17) cfg-8 :delay (nop!))
|
||||
(.mtc0 Perf 0)
|
||||
(.sync.l)
|
||||
(.sync.p)
|
||||
(.mtpc pcr0 0)
|
||||
(.mtpc pcr1 0)
|
||||
(.sync.l)
|
||||
(.sync.p)
|
||||
(.mtc0 Perf a0-17)
|
||||
)
|
||||
(+! (-> v1-28 count) 1)
|
||||
(b! (zero? a0-17) cfg-8 :delay (nop!))
|
||||
(.mtc0 Perf 0)
|
||||
(.sync.l)
|
||||
(.sync.p)
|
||||
(label cfg-8)
|
||||
0
|
||||
(draw-inline-array-tfrag sv-16 (the-as drawable-inline-array s4-1) s3-0 s1-0)
|
||||
(let ((v1-31 (-> *perf-stats* data 5)))
|
||||
(b! (zero? (-> v1-31 ctrl)) cfg-10 :delay (nop!))
|
||||
(.mtc0 Perf 0)
|
||||
(.sync.l)
|
||||
(.sync.p)
|
||||
(.mfpc a0-20 pcr0)
|
||||
(+! (-> v1-31 accum0) a0-20)
|
||||
(.mfpc a0-22 pcr1)
|
||||
(+! (-> v1-31 accum1) a0-22)
|
||||
)
|
||||
(label cfg-10)
|
||||
0
|
||||
(update-wait-stats
|
||||
(-> *perf-stats* data 5)
|
||||
(the-as uint 0)
|
||||
(-> *tfrag-work* wait-to-spr)
|
||||
(-> *tfrag-work* wait-from-spr)
|
||||
)
|
||||
(tfrag-end-buffer s1-0)
|
||||
(let ((a3-3 (-> s1-0 base)))
|
||||
(let ((v1-38 (the-as object (-> s1-0 base))))
|
||||
(set! (-> (the-as dma-packet v1-38) dma) (new 'static 'dma-tag :id (dma-tag-id next)))
|
||||
(set! (-> (the-as dma-packet v1-38) vif0) (new 'static 'vif-tag))
|
||||
(set! (-> (the-as dma-packet v1-38) vif1) (new 'static 'vif-tag))
|
||||
(set! (-> s1-0 base) (&+ (the-as pointer v1-38) 16))
|
||||
)
|
||||
(dma-bucket-insert-tag
|
||||
(-> *display* frames (-> *display* on-screen) frame bucket-group)
|
||||
(if (zero? (-> (the-as terrain-context #x70000000) bsp lev-index))
|
||||
(bucket-id tfrag-0)
|
||||
(bucket-id tfrag-1)
|
||||
)
|
||||
s2-0
|
||||
(the-as (pointer dma-tag) a3-3)
|
||||
)
|
||||
)
|
||||
)
|
||||
(let* ((s1-1 (-> *display* frames (-> *display* on-screen) frame global-buf))
|
||||
(s2-1 (-> s1-1 base))
|
||||
)
|
||||
(set! (-> *tfrag-work* near-wait-to-spr) (the-as uint 0))
|
||||
(set! (-> *tfrag-work* near-wait-from-spr) (the-as uint 0))
|
||||
(tfrag-near-init-buffer
|
||||
s1-1
|
||||
(new 'static 'gs-test
|
||||
:ate #x1
|
||||
:atst (gs-atest greater-equal)
|
||||
:aref #x26
|
||||
:zte #x1
|
||||
:ztst (gs-ztest greater-equal)
|
||||
)
|
||||
0
|
||||
)
|
||||
(let* ((v1-52 (-> *perf-stats* data 6))
|
||||
(a0-35 (-> v1-52 ctrl))
|
||||
)
|
||||
(+! (-> v1-52 count) 1)
|
||||
(b! (zero? a0-35) cfg-15 :delay (nop!))
|
||||
(.mtc0 Perf 0)
|
||||
(.sync.l)
|
||||
(.sync.p)
|
||||
(.mtpc pcr0 0)
|
||||
(.mtpc pcr1 0)
|
||||
(.sync.l)
|
||||
(.sync.p)
|
||||
(.mtc0 Perf a0-35)
|
||||
)
|
||||
(.mtpc pcr0 0)
|
||||
(.mtpc pcr1 0)
|
||||
(.sync.l)
|
||||
(.sync.p)
|
||||
(label cfg-15)
|
||||
0
|
||||
(draw-inline-array-tfrag-near sv-16 (the-as drawable-inline-array s4-1) s3-0 s1-1)
|
||||
(let ((v1-55 (-> *perf-stats* data 6)))
|
||||
(b! (zero? (-> v1-55 ctrl)) cfg-17 :delay (nop!))
|
||||
(.mtc0 Perf 0)
|
||||
(.sync.l)
|
||||
(.sync.p)
|
||||
(.mfpc a0-38 pcr0)
|
||||
(+! (-> v1-55 accum0) a0-38)
|
||||
(.mfpc a0-40 pcr1)
|
||||
(+! (-> v1-55 accum1) a0-40)
|
||||
)
|
||||
(label cfg-17)
|
||||
0
|
||||
(update-wait-stats
|
||||
(-> *perf-stats* data 6)
|
||||
(the-as uint 0)
|
||||
(-> *tfrag-work* near-wait-to-spr)
|
||||
(-> *tfrag-work* near-wait-from-spr)
|
||||
)
|
||||
(tfrag-near-end-buffer s1-1)
|
||||
(let ((a3-6 (-> s1-1 base)))
|
||||
(let ((v1-62 (the-as object (-> s1-1 base))))
|
||||
(set! (-> (the-as dma-packet v1-62) dma) (new 'static 'dma-tag :id (dma-tag-id next)))
|
||||
(set! (-> (the-as dma-packet v1-62) vif0) (new 'static 'vif-tag))
|
||||
(set! (-> (the-as dma-packet v1-62) vif1) (new 'static 'vif-tag))
|
||||
(set! (-> s1-1 base) (&+ (the-as pointer v1-62) 16))
|
||||
)
|
||||
(dma-bucket-insert-tag
|
||||
(-> *display* frames (-> *display* on-screen) frame bucket-group)
|
||||
(if (zero? (-> (the-as terrain-context #x70000000) bsp lev-index))
|
||||
(bucket-id tfrag-near-0)
|
||||
(bucket-id tfrag-near-1)
|
||||
)
|
||||
s2-1
|
||||
(the-as (pointer dma-tag) a3-6)
|
||||
)
|
||||
)
|
||||
(.mtc0 Perf a0-17)
|
||||
)
|
||||
(let ((v1-69 *dma-mem-usage*))
|
||||
(when (nonzero? v1-69)
|
||||
(set! (-> v1-69 length) (max 2 (-> v1-69 length)))
|
||||
(set! (-> v1-69 data 1 name) "tfragment")
|
||||
(+! (-> v1-69 data 1 count) 1)
|
||||
(+! (-> v1-69 data 1 used)
|
||||
(&- (-> *display* frames (-> *display* on-screen) frame global-buf base) (the-as uint s5-1))
|
||||
(.sync.l)
|
||||
(.sync.p)
|
||||
(label cfg-8)
|
||||
0
|
||||
(draw-inline-array-tfrag sv-16 (the-as drawable-inline-array s4-1) s3-0 s1-0)
|
||||
(let ((v1-31 (-> *perf-stats* data 5)))
|
||||
(b! (zero? (-> v1-31 ctrl)) cfg-10 :delay (nop!))
|
||||
(.mtc0 Perf 0)
|
||||
(.sync.l)
|
||||
(.sync.p)
|
||||
(.mfpc a0-20 pcr0)
|
||||
(+! (-> v1-31 accum0) a0-20)
|
||||
(.mfpc a0-22 pcr1)
|
||||
(+! (-> v1-31 accum1) a0-22)
|
||||
)
|
||||
(label cfg-10)
|
||||
0
|
||||
(update-wait-stats
|
||||
(-> *perf-stats* data 5)
|
||||
(the-as uint 0)
|
||||
(-> *tfrag-work* wait-to-spr)
|
||||
(-> *tfrag-work* wait-from-spr)
|
||||
)
|
||||
(tfrag-end-buffer s1-0)
|
||||
(let ((a3-3 (-> s1-0 base)))
|
||||
(let ((v1-38 (the-as object (-> s1-0 base))))
|
||||
(set! (-> (the-as dma-packet v1-38) dma) (new 'static 'dma-tag :id (dma-tag-id next)))
|
||||
(set! (-> (the-as dma-packet v1-38) vif0) (new 'static 'vif-tag))
|
||||
(set! (-> (the-as dma-packet v1-38) vif1) (new 'static 'vif-tag))
|
||||
(set! (-> s1-0 base) (&+ (the-as pointer v1-38) 16))
|
||||
)
|
||||
(dma-bucket-insert-tag
|
||||
(-> *display* frames (-> *display* on-screen) frame bucket-group)
|
||||
(if (zero? (-> (the-as terrain-context #x70000000) bsp lev-index))
|
||||
(bucket-id tfrag-0)
|
||||
(bucket-id tfrag-1)
|
||||
)
|
||||
(set! (-> v1-69 data 1 total) (-> v1-69 data 1 used))
|
||||
s2-0
|
||||
(the-as (pointer dma-tag) a3-3)
|
||||
)
|
||||
)
|
||||
)
|
||||
(let* ((s1-1 (-> *display* frames (-> *display* on-screen) frame global-buf))
|
||||
(s2-1 (-> s1-1 base))
|
||||
)
|
||||
(set! (-> *tfrag-work* near-wait-to-spr) (the-as uint 0))
|
||||
(set! (-> *tfrag-work* near-wait-from-spr) (the-as uint 0))
|
||||
(tfrag-near-init-buffer
|
||||
s1-1
|
||||
(new 'static 'gs-test
|
||||
:ate #x1
|
||||
:atst (gs-atest greater-equal)
|
||||
:aref #x26
|
||||
:zte #x1
|
||||
:ztst (gs-ztest greater-equal)
|
||||
)
|
||||
0
|
||||
)
|
||||
(let* ((v1-52 (-> *perf-stats* data 6))
|
||||
(a0-35 (-> v1-52 ctrl))
|
||||
)
|
||||
(+! (-> v1-52 count) 1)
|
||||
(b! (zero? a0-35) cfg-15 :delay (nop!))
|
||||
(.mtc0 Perf 0)
|
||||
(.sync.l)
|
||||
(.sync.p)
|
||||
(.mtpc pcr0 0)
|
||||
(.mtpc pcr1 0)
|
||||
(.sync.l)
|
||||
(.sync.p)
|
||||
(.mtc0 Perf a0-35)
|
||||
)
|
||||
(.sync.l)
|
||||
(.sync.p)
|
||||
(label cfg-15)
|
||||
0
|
||||
(draw-inline-array-tfrag-near sv-16 (the-as drawable-inline-array s4-1) s3-0 s1-1)
|
||||
(let ((v1-55 (-> *perf-stats* data 6)))
|
||||
(b! (zero? (-> v1-55 ctrl)) cfg-17 :delay (nop!))
|
||||
(.mtc0 Perf 0)
|
||||
(.sync.l)
|
||||
(.sync.p)
|
||||
(.mfpc a0-38 pcr0)
|
||||
(+! (-> v1-55 accum0) a0-38)
|
||||
(.mfpc a0-40 pcr1)
|
||||
(+! (-> v1-55 accum1) a0-40)
|
||||
)
|
||||
(label cfg-17)
|
||||
0
|
||||
(update-wait-stats
|
||||
(-> *perf-stats* data 6)
|
||||
(the-as uint 0)
|
||||
(-> *tfrag-work* near-wait-to-spr)
|
||||
(-> *tfrag-work* near-wait-from-spr)
|
||||
)
|
||||
(tfrag-near-end-buffer s1-1)
|
||||
(let ((a3-6 (-> s1-1 base)))
|
||||
(let ((v1-62 (the-as object (-> s1-1 base))))
|
||||
(set! (-> (the-as dma-packet v1-62) dma) (new 'static 'dma-tag :id (dma-tag-id next)))
|
||||
(set! (-> (the-as dma-packet v1-62) vif0) (new 'static 'vif-tag))
|
||||
(set! (-> (the-as dma-packet v1-62) vif1) (new 'static 'vif-tag))
|
||||
(set! (-> s1-1 base) (&+ (the-as pointer v1-62) 16))
|
||||
)
|
||||
(dma-bucket-insert-tag
|
||||
(-> *display* frames (-> *display* on-screen) frame bucket-group)
|
||||
(if (zero? (-> (the-as terrain-context #x70000000) bsp lev-index))
|
||||
(bucket-id tfrag-near-0)
|
||||
(bucket-id tfrag-near-1)
|
||||
)
|
||||
s2-1
|
||||
(the-as (pointer dma-tag) a3-6)
|
||||
)
|
||||
)
|
||||
)
|
||||
(let ((v1-69 *dma-mem-usage*))
|
||||
(when (nonzero? v1-69)
|
||||
(set! (-> v1-69 length) (max 2 (-> v1-69 length)))
|
||||
(set! (-> v1-69 data 1 name) "tfragment")
|
||||
(+! (-> v1-69 data 1 count) 1)
|
||||
(+! (-> v1-69 data 1 used)
|
||||
(&- (-> *display* frames (-> *display* on-screen) frame global-buf base) (the-as uint s5-1))
|
||||
)
|
||||
(set! (-> v1-69 data 1 total) (-> v1-69 data 1 used))
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
@@ -221,7 +220,7 @@
|
||||
;; definition for function draw-drawable-tree-trans-tfrag
|
||||
;; INFO: Return type mismatch drawable-tree-trans-tfrag vs none.
|
||||
(defun draw-drawable-tree-trans-tfrag ((arg0 drawable-tree-trans-tfrag))
|
||||
(local-vars (a0-18 int) (a0-20 int) (a0-35 int) (a0-37 int) (sv-16 (pointer uint8)))
|
||||
(local-vars (a0-18 int) (a0-20 int) (a0-35 int) (a0-37 int))
|
||||
(when (logtest? *vu1-enable-user* (vu1-renderer-mask trans-tfrag))
|
||||
(let ((s5-0 (+ (-> arg0 length) -1)))
|
||||
(when (nonzero? s5-0)
|
||||
@@ -245,8 +244,8 @@
|
||||
(let* ((v1-13 (-> arg0 arrays s5-0))
|
||||
(s5-1 (&+ v1-13 32))
|
||||
(s4-1 (-> v1-13 length))
|
||||
(sv-16 (&-> (the-as terrain-context #x70000000) work background vis-list (/ (-> s5-1 id) 8)))
|
||||
)
|
||||
(set! sv-16 (&-> (the-as terrain-context #x70000000) work background vis-list (/ (-> s5-1 id) 8)))
|
||||
(let* ((s2-0 (-> *display* frames (-> *display* on-screen) frame global-buf))
|
||||
(s3-0 (-> s2-0 base))
|
||||
)
|
||||
@@ -402,7 +401,7 @@
|
||||
;; definition for function draw-drawable-tree-dirt-tfrag
|
||||
;; INFO: Return type mismatch drawable-tree-dirt-tfrag vs none.
|
||||
(defun draw-drawable-tree-dirt-tfrag ((arg0 drawable-tree-dirt-tfrag))
|
||||
(local-vars (a0-18 int) (a0-20 int) (a0-35 int) (a0-37 int) (sv-16 (pointer uint8)))
|
||||
(local-vars (a0-18 int) (a0-20 int) (a0-35 int) (a0-37 int))
|
||||
(when (logtest? *vu1-enable-user* (vu1-renderer-mask trans-tfrag))
|
||||
(let ((s5-0 (+ (-> arg0 length) -1)))
|
||||
(when (nonzero? s5-0)
|
||||
@@ -426,8 +425,8 @@
|
||||
(let* ((v1-13 (-> arg0 arrays s5-0))
|
||||
(s5-1 (&+ v1-13 32))
|
||||
(s4-1 (-> v1-13 length))
|
||||
(sv-16 (&-> (the-as terrain-context #x70000000) work background vis-list (/ (-> s5-1 id) 8)))
|
||||
)
|
||||
(set! sv-16 (&-> (the-as terrain-context #x70000000) work background vis-list (/ (-> s5-1 id) 8)))
|
||||
(let* ((s2-0 (-> *display* frames (-> *display* on-screen) frame global-buf))
|
||||
(s3-0 (-> s2-0 base))
|
||||
)
|
||||
@@ -565,7 +564,7 @@
|
||||
;; definition for function draw-drawable-tree-ice-tfrag
|
||||
;; INFO: Return type mismatch drawable-tree-ice-tfrag vs none.
|
||||
(defun draw-drawable-tree-ice-tfrag ((arg0 drawable-tree-ice-tfrag))
|
||||
(local-vars (a0-18 int) (a0-20 int) (a0-35 int) (a0-37 int) (sv-16 (pointer uint8)))
|
||||
(local-vars (a0-18 int) (a0-20 int) (a0-35 int) (a0-37 int))
|
||||
(when (logtest? *vu1-enable-user* (vu1-renderer-mask trans-tfrag))
|
||||
(let ((s5-0 (+ (-> arg0 length) -1)))
|
||||
(when (nonzero? s5-0)
|
||||
@@ -589,8 +588,8 @@
|
||||
(let* ((v1-13 (-> arg0 arrays s5-0))
|
||||
(s5-1 (&+ v1-13 32))
|
||||
(s4-1 (-> v1-13 length))
|
||||
(sv-16 (&-> (the-as terrain-context #x70000000) work background vis-list (/ (-> s5-1 id) 8)))
|
||||
)
|
||||
(set! sv-16 (&-> (the-as terrain-context #x70000000) work background vis-list (/ (-> s5-1 id) 8)))
|
||||
(let* ((s2-0 (-> *display* frames (-> *display* on-screen) frame global-buf))
|
||||
(s3-0 (-> s2-0 base))
|
||||
)
|
||||
|
||||
+3
-17
@@ -246,17 +246,7 @@
|
||||
;; INFO: Used lq/sq
|
||||
;; INFO: Return type mismatch int vs none.
|
||||
(defun draw-drawable-tree-instance-tie ((arg0 drawable-tree-instance-tie) (arg1 level))
|
||||
(local-vars
|
||||
(a0-31 int)
|
||||
(a0-33 int)
|
||||
(a0-46 int)
|
||||
(a0-48 int)
|
||||
(a0-62 int)
|
||||
(a0-64 int)
|
||||
(a0-82 int)
|
||||
(a0-84 int)
|
||||
(sv-16 int)
|
||||
)
|
||||
(local-vars (a0-31 int) (a0-33 int) (a0-46 int) (a0-48 int) (a0-62 int) (a0-64 int) (a0-82 int) (a0-84 int))
|
||||
(when (logtest? *vu1-enable-user* (vu1-renderer-mask tie-near tie generic))
|
||||
(set! (-> *instance-tie-work* first-generic-prototype) (the-as uint 0))
|
||||
(set! (-> *instance-tie-work* wind-vectors) (-> arg0 prototypes wind-vectors))
|
||||
@@ -294,8 +284,8 @@
|
||||
(let* ((s1-0 (-> (the-as drawable-inline-array-instance-tie v1-16) data))
|
||||
(s0-0 (&-> (the-as terrain-context #x70000000) work background vis-list (/ (-> s1-0 0 id) 8)))
|
||||
(s3-1 (-> *display* frames (-> *display* on-screen) frame global-buf))
|
||||
(sv-16 (-> (the-as drawable-inline-array-node v1-16) length))
|
||||
)
|
||||
(set! sv-16 (-> (the-as drawable-inline-array-node v1-16) length))
|
||||
(when (nonzero? sv-16)
|
||||
(let* ((v1-21 (logand (the-as int *gsf-buffer*) 8191))
|
||||
(v1-23 (logand (the-as int (&- (logand (the-as int (&-> s4-1 data -512)) 8191) (the-as uint v1-21))) 8191))
|
||||
@@ -324,11 +314,7 @@
|
||||
(.sync.p)
|
||||
(label cfg-12)
|
||||
0
|
||||
(let ((t9-2 draw-inline-array-instance-tie)
|
||||
(a3-1 s3-1)
|
||||
)
|
||||
(t9-2 s0-0 s1-0 sv-16 a3-1)
|
||||
)
|
||||
(draw-inline-array-instance-tie s0-0 s1-0 sv-16 s3-1)
|
||||
(let ((v1-35 (-> *perf-stats* data 9)))
|
||||
(b! (zero? (-> v1-35 ctrl)) cfg-14 :delay (nop!))
|
||||
(.mtc0 Perf 0)
|
||||
|
||||
+9
-24
@@ -648,23 +648,12 @@
|
||||
;; INFO: Used lq/sq
|
||||
;; INFO: Return type mismatch symbol vs none.
|
||||
(defun-debug tie-ints ()
|
||||
(local-vars (sv-16 uint))
|
||||
(let ((gp-0 (the-as (pointer uint32) (+ #x3fa0 #x1100c000))))
|
||||
(dotimes (s5-0 16)
|
||||
(if (< s5-0 10)
|
||||
(format 0 " ")
|
||||
)
|
||||
(let ((s4-0 format)
|
||||
(s3-0 0)
|
||||
(s2-0 "vi~d: ~6d #x~4,'0X ~s~%")
|
||||
(s1-0 s5-0)
|
||||
(s0-0 (-> gp-0 (* s5-0 4)))
|
||||
)
|
||||
(set! sv-16 (-> gp-0 (* s5-0 4)))
|
||||
(let ((t1-0 (tie-int-reg s5-0)))
|
||||
(s4-0 s3-0 s2-0 s1-0 s0-0 sv-16 t1-0)
|
||||
)
|
||||
)
|
||||
(format 0 "vi~d: ~6d #x~4,'0X ~s~%" s5-0 (-> gp-0 (* s5-0 4)) (-> gp-0 (* s5-0 4)) (tie-int-reg s5-0))
|
||||
)
|
||||
)
|
||||
(none)
|
||||
@@ -674,7 +663,6 @@
|
||||
;; INFO: Used lq/sq
|
||||
;; INFO: Return type mismatch symbol vs none.
|
||||
(defun-debug tie-floats ()
|
||||
(local-vars (sv-16 uint) (sv-32 uint))
|
||||
(let ((gp-0 (the-as (pointer uint32) (+ #x3da0 #x1100c000))))
|
||||
(dotimes (s5-0 32)
|
||||
(if (< s5-0 10)
|
||||
@@ -689,17 +677,14 @@
|
||||
(-> gp-0 (+ (* s5-0 4) 2))
|
||||
(-> gp-0 (+ (* s5-0 4) 3))
|
||||
)
|
||||
(let ((s4-0 format)
|
||||
(s3-0 0)
|
||||
(s2-0 "~F ~F ~F ~F ~s~%")
|
||||
(s1-0 (-> gp-0 (* s5-0 4)))
|
||||
(s0-0 (-> gp-0 (+ (* s5-0 4) 1)))
|
||||
)
|
||||
(set! sv-16 (-> gp-0 (+ (* s5-0 4) 2)))
|
||||
(set! sv-32 (-> gp-0 (+ (* s5-0 4) 3)))
|
||||
(let ((t2-1 (tie-float-reg s5-0)))
|
||||
(s4-0 s3-0 s2-0 s1-0 s0-0 sv-16 sv-32 t2-1)
|
||||
)
|
||||
(format
|
||||
0
|
||||
"~F ~F ~F ~F ~s~%"
|
||||
(-> gp-0 (* s5-0 4))
|
||||
(-> gp-0 (+ (* s5-0 4) 1))
|
||||
(-> gp-0 (+ (* s5-0 4) 2))
|
||||
(-> gp-0 (+ (* s5-0 4) 3))
|
||||
(tie-float-reg s5-0)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
+14
-12
@@ -349,7 +349,6 @@
|
||||
|
||||
;; definition for method 17 of type level
|
||||
(defmethod load-continue ((this level))
|
||||
(local-vars (sv-16 symbol))
|
||||
(when (-> this linking)
|
||||
(when (nonzero? (link-resume))
|
||||
(set! (-> this linking) #f)
|
||||
@@ -376,8 +375,9 @@
|
||||
)
|
||||
(case (-> this status)
|
||||
(('loading)
|
||||
(set! sv-16 (the-as symbol #f))
|
||||
(let ((a0-15 (dgo-load-get-next (& sv-16))))
|
||||
(let* ((sv-16 (the-as symbol #f))
|
||||
(a0-15 (dgo-load-get-next (& sv-16)))
|
||||
)
|
||||
(when a0-15
|
||||
(cond
|
||||
((not sv-16)
|
||||
@@ -488,7 +488,7 @@
|
||||
;; ERROR: Unsupported inline assembly instruction kind - [mfc0 v1, Count]
|
||||
;; ERROR: Unsupported inline assembly instruction kind - [mfc0 v1, Count]
|
||||
(defun level-update-after-load ((loaded-level level) (level-login-state login-state))
|
||||
(local-vars (current-timer int) (v1-154 int) (initial-timer int) (sv-16 prototype-bucket-tie) (sv-32 int))
|
||||
(local-vars (current-timer int) (v1-154 int) (initial-timer int))
|
||||
0
|
||||
(let ((level-drawable-trees (-> loaded-level bsp drawable-trees)))
|
||||
0
|
||||
@@ -574,15 +574,17 @@
|
||||
(when (< current-login-pos (-> s1-2 length))
|
||||
(dotimes (s0-1 10)
|
||||
(when (< current-login-pos (-> s1-2 length))
|
||||
(set! sv-16 (-> s1-2 array-data (the-as uint current-login-pos)))
|
||||
(set! sv-32 0)
|
||||
(while (< sv-32 4)
|
||||
(let ((a0-28 (-> sv-16 geometry-override sv-32)))
|
||||
(if (nonzero? a0-28)
|
||||
(login a0-28)
|
||||
)
|
||||
(let ((sv-16 (-> s1-2 array-data (the-as uint current-login-pos)))
|
||||
(sv-32 0)
|
||||
)
|
||||
(while (< sv-32 4)
|
||||
(let ((a0-28 (-> sv-16 geometry-override sv-32)))
|
||||
(if (nonzero? a0-28)
|
||||
(login a0-28)
|
||||
)
|
||||
)
|
||||
(+! sv-32 1)
|
||||
)
|
||||
(set! sv-32 (+ sv-32 1))
|
||||
)
|
||||
(set! current-login-pos (the-as int (+ (the-as uint current-login-pos) 1)))
|
||||
)
|
||||
|
||||
+2
-2
@@ -1085,7 +1085,7 @@
|
||||
(f2-2 (* 0.5 (+ f0-0 f2-0)))
|
||||
(f1-1 (- f3-2 f1-0))
|
||||
(f0-1 (- f2-2 f0-0))
|
||||
(f0-4 (sqrtf (+ (* f1-1 f1-1) (* f0-1 f0-1))))
|
||||
(f0-4 (sqrtf (+ (square f1-1) (square f0-1))))
|
||||
)
|
||||
(set-vector! (-> arg0 rejector) f3-2 0.0 f2-2 f0-4)
|
||||
)
|
||||
@@ -2124,7 +2124,7 @@
|
||||
(f1-2 (- (-> a1-0 z) (-> arg0 rejector z)))
|
||||
)
|
||||
(cond
|
||||
((< (+ (* f0-1 f0-1) (* f1-2 f1-2)) (* (-> arg0 rejector w) (-> arg0 rejector w)))
|
||||
((< (+ (square f0-1) (square f1-2)) (* (-> arg0 rejector w) (-> arg0 rejector w)))
|
||||
(if (logtest? (-> arg0 flags) (load-boundary-flags closed))
|
||||
(set! s5-0 (check-closed-boundary arg0 a1-0 a2-0))
|
||||
(set! s5-0 (check-open-boundary arg0 a1-0 a2-0))
|
||||
|
||||
+132
-138
@@ -4,22 +4,18 @@
|
||||
;; definition for method 3 of type load-dir
|
||||
;; INFO: Used lq/sq
|
||||
(defmethod inspect ((this load-dir))
|
||||
(local-vars (sv-16 basic))
|
||||
(format #t "[~8x] ~A~%" this (-> this type))
|
||||
(format #t "~Tlevel: ~A~%" (-> this lev))
|
||||
(format #t "~Tallocated-length: ~D~%" (-> this string-array allocated-length))
|
||||
(format #t "~Tlength: ~D~%" (-> this string-array length))
|
||||
(dotimes (s5-0 (-> this string-array length))
|
||||
(let ((s4-0 format)
|
||||
(s3-0 #t)
|
||||
(s2-0 "~T [~D] ~S ~A (~D bytes)~%")
|
||||
(s1-0 s5-0)
|
||||
(s0-0 (-> this string-array s5-0))
|
||||
)
|
||||
(set! sv-16 (-> this data-array s5-0))
|
||||
(let ((t1-0 (mem-size (-> this data-array s5-0) #f 0)))
|
||||
(s4-0 s3-0 s2-0 s1-0 s0-0 sv-16 t1-0)
|
||||
)
|
||||
(format
|
||||
#t
|
||||
"~T [~D] ~S ~A (~D bytes)~%"
|
||||
s5-0
|
||||
(-> this string-array s5-0)
|
||||
(-> this data-array s5-0)
|
||||
(mem-size (-> this data-array s5-0) #f 0)
|
||||
)
|
||||
)
|
||||
this
|
||||
@@ -797,147 +793,145 @@
|
||||
;; WARN: Stack slot offset 24 signed mismatch
|
||||
;; WARN: Stack slot offset 24 signed mismatch
|
||||
(defbehavior ja-play-spooled-anim process-drawable ((arg0 spool-anim) (arg1 art-joint-anim) (arg2 art-joint-anim) (arg3 (function process-drawable symbol)))
|
||||
(local-vars
|
||||
(v0-39 int)
|
||||
(spool-part int)
|
||||
(sv-24 float)
|
||||
(old-skel-status janim-status)
|
||||
(sv-32 int)
|
||||
(sv-40 int)
|
||||
(sv-48 int)
|
||||
(sv-56 int)
|
||||
(spool-sound sound-id)
|
||||
(sv-72 int)
|
||||
)
|
||||
(set! spool-part 0)
|
||||
(set! sv-24 -17.0)
|
||||
(set! old-skel-status (-> self skel status))
|
||||
(set! sv-32 -2)
|
||||
(set! sv-40 0)
|
||||
(set! sv-48 0)
|
||||
(set! sv-56 0)
|
||||
(set! spool-sound (new-sound-id))
|
||||
(backup-load-state-and-set-cmds *load-state* (-> arg0 command-list))
|
||||
(set-setting! 'spooling (process->ppointer self) 0.0 0)
|
||||
(logior! (-> self skel status) (janim-status inited drawn done))
|
||||
(kill-current-level-hint '() '() 'die)
|
||||
(level-hint-surpress!)
|
||||
(apply-settings *setting-control*)
|
||||
(when (or (handle->process (-> *art-control* spool-lock)) (!= *master-mode* 'game))
|
||||
(cond
|
||||
(arg1
|
||||
(when (!= (ja-group) arg1)
|
||||
(ja-channel-push! 1 (seconds 0.05))
|
||||
(ja :group! arg1 :num! min)
|
||||
)
|
||||
(local-vars (v0-39 int))
|
||||
(let ((spool-part 0))
|
||||
(let ((sv-24 -17.0))
|
||||
(let ((old-skel-status (-> self skel status)))
|
||||
)
|
||||
(else
|
||||
(ja-channel-set! 0)
|
||||
)
|
||||
)
|
||||
(while (or (handle->process (-> *art-control* spool-lock)) (!= *master-mode* 'game))
|
||||
(format #t "WARNING: ---------------------> loader stall on lock~%")
|
||||
(if (arg3 self)
|
||||
(goto cfg-88)
|
||||
)
|
||||
(spool-push *art-control* (-> arg0 name) spool-part self -9.0)
|
||||
(suspend)
|
||||
(if arg1
|
||||
(ja :num! (loop!))
|
||||
)
|
||||
)
|
||||
)
|
||||
(set! (-> *art-control* spool-lock) (process->handle self))
|
||||
(set! sv-48 (the-as int (current-time)))
|
||||
(while (< spool-part (-> arg0 parts))
|
||||
(spool-push *art-control* (-> arg0 name) spool-part self -20.0)
|
||||
(update *art-control* #f)
|
||||
(spool-push *art-control* (-> arg0 name) spool-part self -20.0)
|
||||
(when (!= (file-status *art-control* (-> arg0 name) spool-part) 'active)
|
||||
(cond
|
||||
(arg1
|
||||
(when (!= (ja-group) arg1)
|
||||
(ja-channel-set! 1)
|
||||
(ja :group! arg1 :num! min)
|
||||
(let ((sv-32 -2)
|
||||
(sv-40 0)
|
||||
(sv-48 0)
|
||||
(sv-56 0)
|
||||
(spool-sound (new-sound-id))
|
||||
)
|
||||
(backup-load-state-and-set-cmds *load-state* (-> arg0 command-list))
|
||||
(set-setting! 'spooling (process->ppointer self) 0.0 0)
|
||||
(logior! (-> self skel status) (janim-status inited drawn done))
|
||||
(kill-current-level-hint '() '() 'die)
|
||||
(level-hint-surpress!)
|
||||
(apply-settings *setting-control*)
|
||||
(when (or (handle->process (-> *art-control* spool-lock)) (!= *master-mode* 'game))
|
||||
(cond
|
||||
(arg1
|
||||
(when (!= (ja-group) arg1)
|
||||
(ja-channel-push! 1 (seconds 0.05))
|
||||
(ja :group! arg1 :num! min)
|
||||
)
|
||||
)
|
||||
(else
|
||||
(ja-channel-set! 0)
|
||||
)
|
||||
)
|
||||
(while (or (handle->process (-> *art-control* spool-lock)) (!= *master-mode* 'game))
|
||||
(format #t "WARNING: ---------------------> loader stall on lock~%")
|
||||
(if (arg3 self)
|
||||
(goto cfg-88)
|
||||
)
|
||||
(spool-push *art-control* (-> arg0 name) spool-part self -9.0)
|
||||
(suspend)
|
||||
(if arg1
|
||||
(ja :num! (loop!))
|
||||
)
|
||||
)
|
||||
)
|
||||
(else
|
||||
(ja-channel-set! 0)
|
||||
)
|
||||
)
|
||||
(while (!= (file-status *art-control* (-> arg0 name) spool-part) 'active)
|
||||
(if (arg3 self)
|
||||
(goto cfg-88)
|
||||
)
|
||||
(spool-push *art-control* (-> arg0 name) spool-part self -20.0)
|
||||
(format #t "WARNING: ---------------------> loader stall on art ~S ~D~%" (-> arg0 name) spool-part)
|
||||
(suspend)
|
||||
(if arg1
|
||||
(ja :num! (loop!))
|
||||
)
|
||||
)
|
||||
)
|
||||
(spool-push *art-control* (-> arg0 name) spool-part self -20.0)
|
||||
(let ((s2-4 (the-as art-joint-anim (lookup-art (-> self draw art-group) (-> arg0 name) art-joint-anim))))
|
||||
(cond
|
||||
(s2-4
|
||||
(ja-channel-set! 1)
|
||||
(ja-no-eval :group! s2-4 :num! (seek!) :frame-num 0.0)
|
||||
(when (zero? spool-part)
|
||||
(str-play-async (-> arg0 name) spool-sound)
|
||||
(set! (-> *art-control* active-stream) (-> arg0 name))
|
||||
)
|
||||
(let* ((f30-0 (* 0.05859375 (-> s2-4 speed)))
|
||||
(f28-0 (+ sv-24 (/ (the float (+ (-> s2-4 data 0 length) -1)) f30-0)))
|
||||
)
|
||||
(set! sv-72 (current-str-pos spool-sound))
|
||||
(set! sv-40 (the-as int (current-time)))
|
||||
(until (>= (the float v0-39) f28-0)
|
||||
(if (= (-> self skel root-channel 0) (-> self skel channel))
|
||||
(logior! (-> self skel status) (janim-status spool))
|
||||
(set! (-> *art-control* spool-lock) (process->handle self))
|
||||
(set! sv-48 (the-as int (current-time)))
|
||||
(while (< spool-part (-> arg0 parts))
|
||||
(spool-push *art-control* (-> arg0 name) spool-part self -20.0)
|
||||
(update *art-control* #f)
|
||||
(spool-push *art-control* (-> arg0 name) spool-part self -20.0)
|
||||
(when (!= (file-status *art-control* (-> arg0 name) spool-part) 'active)
|
||||
(cond
|
||||
(arg1
|
||||
(when (!= (ja-group) arg1)
|
||||
(ja-channel-set! 1)
|
||||
(ja :group! arg1 :num! min)
|
||||
)
|
||||
(if (or (arg3 self) (and (<= sv-72 0) (time-elapsed? sv-40 (seconds 4))) (and (< 300 sv-56) (<= sv-72 0)))
|
||||
)
|
||||
(else
|
||||
(ja-channel-set! 0)
|
||||
)
|
||||
)
|
||||
(while (!= (file-status *art-control* (-> arg0 name) spool-part) 'active)
|
||||
(if (arg3 self)
|
||||
(goto cfg-88)
|
||||
)
|
||||
(spool-push *art-control* (-> arg0 name) spool-part self -20.0)
|
||||
(if (< (+ spool-part 1) (-> arg0 parts))
|
||||
(spool-push *art-control* (-> arg0 name) (+ spool-part 1) self -10.0)
|
||||
(logclear! (-> self skel status) (janim-status done))
|
||||
)
|
||||
(execute-commands-up-to *load-state* (ja-aframe-num 0))
|
||||
(cond
|
||||
((and (< sv-32 sv-72) (= (current-str-id) spool-sound))
|
||||
(set! sv-56 (+ sv-56 (- (current-time) (-> *display* old-base-frame-counter))))
|
||||
(set! sv-40 (the-as int (current-time)))
|
||||
)
|
||||
(else
|
||||
0
|
||||
)
|
||||
)
|
||||
(set! sv-32 sv-72)
|
||||
(set! sv-48 (the-as int (current-time)))
|
||||
(format #t "WARNING: ---------------------> loader stall on art ~S ~D~%" (-> arg0 name) spool-part)
|
||||
(suspend)
|
||||
(let ((f0-14 (* (- (the float (current-str-pos spool-sound)) sv-24) f30-0)))
|
||||
(ja-no-eval :num! (seek!) :frame-num f0-14)
|
||||
)
|
||||
(set! v0-39 (current-str-pos spool-sound))
|
||||
(set! sv-72 v0-39)
|
||||
(if arg1
|
||||
(ja :num! (loop!))
|
||||
)
|
||||
)
|
||||
(set! sv-24 f28-0)
|
||||
)
|
||||
(logclear! (-> self skel status) (janim-status spool))
|
||||
)
|
||||
(else
|
||||
(format 0 "ERROR: <asg> ~A in spool anim loop for ~A ~D, but not loaded.~" self (-> arg0 name) spool-part)
|
||||
(goto cfg-88)
|
||||
(spool-push *art-control* (-> arg0 name) spool-part self -20.0)
|
||||
(let ((s2-4 (the-as art-joint-anim (lookup-art (-> self draw art-group) (-> arg0 name) art-joint-anim))))
|
||||
(cond
|
||||
(s2-4
|
||||
(ja-channel-set! 1)
|
||||
(ja-no-eval :group! s2-4 :num! (seek!) :frame-num 0.0)
|
||||
(when (zero? spool-part)
|
||||
(str-play-async (-> arg0 name) spool-sound)
|
||||
(set! (-> *art-control* active-stream) (-> arg0 name))
|
||||
)
|
||||
(let* ((f30-0 (* 0.05859375 (-> s2-4 speed)))
|
||||
(f28-0 (+ sv-24 (/ (the float (+ (-> s2-4 data 0 length) -1)) f30-0)))
|
||||
)
|
||||
(let ((sv-72 (current-str-pos spool-sound)))
|
||||
(set! sv-40 (the-as int (current-time)))
|
||||
(until (>= (the float v0-39) f28-0)
|
||||
(if (= (-> self skel root-channel 0) (-> self skel channel))
|
||||
(logior! (-> self skel status) (janim-status spool))
|
||||
)
|
||||
(if (or (arg3 self)
|
||||
(and (<= sv-72 0) (time-elapsed? (the-as time-frame sv-40) (seconds 4)))
|
||||
(and (< 300 sv-56) (<= sv-72 0))
|
||||
)
|
||||
(goto cfg-88)
|
||||
)
|
||||
(spool-push *art-control* (-> arg0 name) spool-part self -20.0)
|
||||
(if (< (+ spool-part 1) (-> arg0 parts))
|
||||
(spool-push *art-control* (-> arg0 name) (+ spool-part 1) self -10.0)
|
||||
(logclear! (-> self skel status) (janim-status done))
|
||||
)
|
||||
(execute-commands-up-to *load-state* (ja-aframe-num 0))
|
||||
(cond
|
||||
((and (< sv-32 sv-72) (= (current-str-id) spool-sound))
|
||||
(+! sv-56 (- (current-time) (-> *display* old-base-frame-counter)))
|
||||
(set! sv-40 (the-as int (current-time)))
|
||||
)
|
||||
(else
|
||||
0
|
||||
)
|
||||
)
|
||||
(set! sv-32 sv-72)
|
||||
(set! sv-48 (the-as int (current-time)))
|
||||
(suspend)
|
||||
(let ((f0-14 (* (- (the float (current-str-pos spool-sound)) sv-24) f30-0)))
|
||||
(ja-no-eval :num! (seek!) :frame-num f0-14)
|
||||
)
|
||||
(set! v0-39 (current-str-pos spool-sound))
|
||||
(set! sv-72 v0-39)
|
||||
)
|
||||
)
|
||||
(set! sv-24 f28-0)
|
||||
)
|
||||
(logclear! (-> self skel status) (janim-status spool))
|
||||
)
|
||||
(else
|
||||
(format 0 "ERROR: <asg> ~A in spool anim loop for ~A ~D, but not loaded.~" self (-> arg0 name) spool-part)
|
||||
(goto cfg-88)
|
||||
)
|
||||
)
|
||||
)
|
||||
(+! spool-part 1)
|
||||
)
|
||||
)
|
||||
)
|
||||
(set! spool-part (+ spool-part 1))
|
||||
(+! spool-part -1)
|
||||
(label cfg-88)
|
||||
(ja-abort-spooled-anim arg0 arg2 spool-part)
|
||||
)
|
||||
(set! spool-part (+ spool-part -1))
|
||||
(label cfg-88)
|
||||
(ja-abort-spooled-anim arg0 arg2 spool-part)
|
||||
0
|
||||
)
|
||||
|
||||
|
||||
+12
-10
@@ -104,11 +104,12 @@
|
||||
)
|
||||
(cond
|
||||
((= (logand (/ arg2 2) 1) 1)
|
||||
(let* ((f0-0 (-> (the-as (pointer float) (+ (+ (* s2-0 4) (* s3-0 16)) (the-as int arg1)))))
|
||||
(f0-2 (* f0-0 f0-0))
|
||||
(f1-0 (-> (the-as (pointer float) (+ (+ (* s1-0 4) (* s3-0 16)) (the-as int arg1)))))
|
||||
(f30-0 (sqrtf (+ f0-2 (* f1-0 f1-0))))
|
||||
)
|
||||
(let ((f30-0 (sqrtf (+ (square (-> (the-as (pointer float) (+ (+ (* s2-0 4) (* s3-0 16)) (the-as int arg1)))))
|
||||
(square (-> (the-as (pointer float) (+ (+ (* s1-0 4) (* s3-0 16)) (the-as int arg1)))))
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(cond
|
||||
((< 0.00001 f30-0)
|
||||
(set! (-> arg0 x) (atan
|
||||
@@ -136,11 +137,12 @@
|
||||
)
|
||||
)
|
||||
(else
|
||||
(let* ((f0-21 (-> (the-as (pointer float) (+ (+ (* s3-0 4) (* s3-0 16)) (the-as int arg1)))))
|
||||
(f0-23 (* f0-21 f0-21))
|
||||
(f1-3 (-> (the-as (pointer float) (+ (+ (* s3-0 4) (* s2-0 16)) (the-as int arg1)))))
|
||||
(f30-1 (sqrtf (+ f0-23 (* f1-3 f1-3))))
|
||||
)
|
||||
(let ((f30-1 (sqrtf (+ (square (-> (the-as (pointer float) (+ (+ (* s3-0 4) (* s3-0 16)) (the-as int arg1)))))
|
||||
(square (-> (the-as (pointer float) (+ (+ (* s3-0 4) (* s2-0 16)) (the-as int arg1)))))
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(cond
|
||||
((< 0.00001 f30-1)
|
||||
(set! (-> arg0 x)
|
||||
|
||||
+5
-14
@@ -45,12 +45,9 @@
|
||||
|
||||
;; definition for function vector-angle<-quaternion!
|
||||
(defun vector-angle<-quaternion! ((arg0 vector) (arg1 quaternion))
|
||||
(let* ((f0-0 1.0)
|
||||
(f1-0 1.0)
|
||||
(f2-0 (-> arg1 w))
|
||||
(f30-0 (/ f0-0 (sqrtf (- f1-0 (* f2-0 f2-0)))))
|
||||
(f0-3 (* 2.0 (acos-rad (-> arg1 w))))
|
||||
)
|
||||
(let ((f30-0 (/ 1.0 (sqrtf (- 1.0 (square (-> arg1 w))))))
|
||||
(f0-3 (* 2.0 (acos-rad (-> arg1 w))))
|
||||
)
|
||||
(set! (-> arg0 x) (* (-> arg1 x) f30-0))
|
||||
(set! (-> arg0 y) (* (-> arg1 y) f30-0))
|
||||
(set! (-> arg0 z) (* (-> arg1 z) f30-0))
|
||||
@@ -550,11 +547,7 @@
|
||||
|
||||
;; definition for function quaternion-vector-len
|
||||
(defun quaternion-vector-len ((arg0 quaternion))
|
||||
(let ((f0-0 1.0)
|
||||
(f1-0 (-> arg0 w))
|
||||
)
|
||||
(sqrtf (- f0-0 (* f1-0 f1-0)))
|
||||
)
|
||||
(sqrtf (- 1.0 (square (-> arg0 w))))
|
||||
)
|
||||
|
||||
;; definition for function quaternion-log!
|
||||
@@ -636,9 +629,7 @@
|
||||
(quaternion-normalize! arg0)
|
||||
)
|
||||
(else
|
||||
(let* ((f1-4 1.0)
|
||||
(f2-1 f0-0)
|
||||
(f1-6 (sqrtf (- f1-4 (* f2-1 f2-1))))
|
||||
(let* ((f1-6 (sqrtf (- 1.0 (square f0-0))))
|
||||
(f0-6 (/ (- f1-6 f0-0) (+ f1-6 f0-0)))
|
||||
(f28-0 (/ 1.0 f1-6))
|
||||
)
|
||||
|
||||
+5
-10
@@ -153,19 +153,14 @@
|
||||
;; definition for method 17 of type trsqv
|
||||
;; INFO: Used lq/sq
|
||||
(defmethod rotate-toward-orientation! ((this trsqv) (target quaternion) (y-rate float) (z-rate float))
|
||||
(local-vars (sv-96 vector))
|
||||
(let ((quat (get-quaternion this)))
|
||||
(let ((temp-quat (new 'stack-no-clear 'quaternion)))
|
||||
(when (< 0.0 z-rate)
|
||||
(let ((s1-0 quaternion-from-two-vectors-max-angle!)
|
||||
(s0-0 temp-quat)
|
||||
)
|
||||
(set! sv-96 (vector-y-quaternion! (new 'stack-no-clear 'vector) quat))
|
||||
(let ((a2-1 (vector-y-quaternion! (new 'stack-no-clear 'vector) target))
|
||||
(a3-1 (* z-rate (seconds-per-frame)))
|
||||
)
|
||||
(s1-0 s0-0 sv-96 a2-1 a3-1)
|
||||
)
|
||||
(quaternion-from-two-vectors-max-angle!
|
||||
temp-quat
|
||||
(vector-y-quaternion! (new 'stack-no-clear 'vector) quat)
|
||||
(vector-y-quaternion! (new 'stack-no-clear 'vector) target)
|
||||
(* z-rate (seconds-per-frame))
|
||||
)
|
||||
(quaternion-normalize! (quaternion*! quat temp-quat quat))
|
||||
)
|
||||
|
||||
+11
-18
@@ -159,7 +159,7 @@
|
||||
(let ((f2-0 (* 0.000095873795 (the float (sar (shl (the int arg0) 48) 48)))))
|
||||
f2-0
|
||||
(let* ((f1-4 (* 0.999998 f2-0))
|
||||
(f0-3 (* f2-0 f2-0))
|
||||
(f0-3 (square f2-0))
|
||||
(f2-1 (* f2-0 f0-3))
|
||||
(f1-5 (+ f1-4 (* -0.16666014 f2-1)))
|
||||
(f2-2 (* f2-1 f0-3))
|
||||
@@ -181,11 +181,11 @@
|
||||
;; ERROR: Unsupported inline assembly instruction kind - [madd.s f12, f6, f11]
|
||||
(defun sin-rad ((arg0 float))
|
||||
(local-vars (f12-0 float))
|
||||
(let* ((f1-0 (* arg0 arg0))
|
||||
(let* ((f1-0 (square arg0))
|
||||
(f7-0 0.999998)
|
||||
(f8-0 -0.16666014)
|
||||
(f2-0 (* arg0 f1-0))
|
||||
(f3-0 (* f1-0 f1-0))
|
||||
(f3-0 (square f1-0))
|
||||
(f9-0 0.008326521)
|
||||
(f4-0 (* f2-0 f1-0))
|
||||
(f5-0 (* f3-0 f2-0))
|
||||
@@ -251,14 +251,14 @@
|
||||
;; ERROR: Unsupported inline assembly instruction kind - [madd.s f12, f11, f5]
|
||||
(defun cos-rad ((arg0 float))
|
||||
(local-vars (f12-0 float))
|
||||
(let* ((f1-0 (* arg0 arg0))
|
||||
(let* ((f1-0 (square arg0))
|
||||
(f7-0 1.0)
|
||||
(f8-0 -0.49998003)
|
||||
(f3-0 (* f1-0 f1-0))
|
||||
(f3-0 (square f1-0))
|
||||
(f9-0 0.041620404)
|
||||
(f10-0 -0.0013636408)
|
||||
(f4-0 (* f3-0 f1-0))
|
||||
(f5-0 (* f3-0 f3-0))
|
||||
(f5-0 (square f3-0))
|
||||
(f11-0 0.000020170546)
|
||||
)
|
||||
(.mula.s f7-0 f7-0)
|
||||
@@ -449,11 +449,11 @@
|
||||
;; ERROR: Unsupported inline assembly instruction kind - [madd.s f18, f9, f17]
|
||||
(defun atan-series-rad ((arg0 float))
|
||||
(local-vars (f18-1 float))
|
||||
(let* ((f1-0 (* arg0 arg0))
|
||||
(let* ((f1-0 (square arg0))
|
||||
(f10-0 0.99999934)
|
||||
(f11-0 -0.33329856)
|
||||
(f2-0 (* arg0 f1-0))
|
||||
(f3-0 (* f1-0 f1-0))
|
||||
(f3-0 (square f1-0))
|
||||
(f12-0 0.19946536)
|
||||
(f4-0 (* f2-0 f1-0))
|
||||
(f5-0 (* f3-0 f2-0))
|
||||
@@ -650,10 +650,7 @@
|
||||
16383.996
|
||||
)
|
||||
(else
|
||||
(let* ((f0-6 1.0)
|
||||
(f1-2 arg0)
|
||||
(f0-8 (sqrtf (- f0-6 (* f1-2 f1-2))))
|
||||
)
|
||||
(let ((f0-8 (sqrtf (- 1.0 (square arg0)))))
|
||||
(atan0 arg0 f0-8)
|
||||
)
|
||||
)
|
||||
@@ -677,18 +674,14 @@
|
||||
(defun acos-rad ((arg0 float))
|
||||
(cond
|
||||
((>= arg0 0.0)
|
||||
(let* ((f0-1 1.0)
|
||||
(f1-1 arg0)
|
||||
(f0-3 (sqrtf (- f0-1 (* f1-1 f1-1))))
|
||||
(let* ((f0-3 (sqrtf (- 1.0 (square arg0))))
|
||||
(f0-5 (/ (- f0-3 arg0) (+ f0-3 arg0)))
|
||||
)
|
||||
(atan-series-rad f0-5)
|
||||
)
|
||||
)
|
||||
(else
|
||||
(let* ((f0-6 1.0)
|
||||
(f1-6 arg0)
|
||||
(f0-8 (sqrtf (- f0-6 (* f1-6 f1-6))))
|
||||
(let* ((f0-8 (sqrtf (- 1.0 (square arg0))))
|
||||
(f0-10 (/ (+ f0-8 arg0) (- f0-8 arg0)))
|
||||
)
|
||||
(- PI (atan-series-rad f0-10))
|
||||
|
||||
+3
-3
@@ -291,7 +291,7 @@
|
||||
(when (or (!= x-diff 0.0) (!= z-diff 0.0))
|
||||
(let* ((x-step (* x-diff alpha))
|
||||
(z-step (* z-diff alpha))
|
||||
(step-len (sqrtf (+ (* x-step x-step) (* z-step z-step))))
|
||||
(step-len (sqrtf (+ (square x-step) (square z-step))))
|
||||
)
|
||||
(cond
|
||||
((>= max-step step-len)
|
||||
@@ -319,7 +319,7 @@
|
||||
(when (or (!= y-diff 0.0) (!= z-diff 0.0))
|
||||
(let* ((y-step (* y-diff alpha))
|
||||
(z-step (* z-diff alpha))
|
||||
(step-len (sqrtf (+ (* y-step y-step) (* z-step z-step))))
|
||||
(step-len (sqrtf (+ (square y-step) (square z-step))))
|
||||
)
|
||||
(cond
|
||||
((>= max-step step-len)
|
||||
@@ -349,7 +349,7 @@
|
||||
(let* ((x-step (* x-diff alpha))
|
||||
(y-step (* y-diff alpha))
|
||||
(z-step (* z-diff alpha))
|
||||
(step-len (sqrtf (+ (* x-step x-step) (* y-step y-step) (* z-step z-step))))
|
||||
(step-len (sqrtf (+ (square x-step) (square y-step) (square z-step))))
|
||||
)
|
||||
(cond
|
||||
((>= max-step step-len)
|
||||
|
||||
+6
-9
@@ -403,7 +403,6 @@
|
||||
;; definition for function nav-mesh-connect
|
||||
;; INFO: Used lq/sq
|
||||
(defbehavior nav-mesh-connect process ((proc process) (trans trsqv) (nav-cont nav-control))
|
||||
(local-vars (sv-16 type) (sv-32 symbol))
|
||||
(let ((ent (-> proc entity)))
|
||||
(when (zero? (-> ent nav-mesh))
|
||||
(let ((lookup-entity (entity-actor-lookup ent 'nav-mesh-actor 0)))
|
||||
@@ -417,15 +416,13 @@
|
||||
((nonzero? entity-nav-mesh)
|
||||
(when (zero? (-> entity-nav-mesh user-list))
|
||||
(set! process-level-heap (-> self entity extra level heap))
|
||||
(let ((s1-0 (method-of-type engine new))
|
||||
(s0-0 'process-level-heap)
|
||||
(set! (-> entity-nav-mesh user-list) (new
|
||||
'process-level-heap
|
||||
'engine
|
||||
'nav-engine
|
||||
(res-lump-value ent 'nav-max-users int :default (the-as uint128 32))
|
||||
)
|
||||
)
|
||||
(set! sv-16 engine)
|
||||
(set! sv-32 'nav-engine)
|
||||
(let ((a3-1 (res-lump-value ent 'nav-max-users uint128 :default (the-as uint128 32))))
|
||||
(set! (-> entity-nav-mesh user-list) (s1-0 s0-0 sv-16 sv-32 (the-as int a3-1)))
|
||||
)
|
||||
)
|
||||
(initialize-mesh! entity-nav-mesh)
|
||||
(update-route-table entity-nav-mesh)
|
||||
)
|
||||
|
||||
+404
-506
File diff suppressed because it is too large
Load Diff
+3
-4
@@ -51,10 +51,9 @@
|
||||
;; definition for method 13 of type trajectory
|
||||
;; INFO: Return type mismatch int vs none.
|
||||
(defmethod setup-from-to-y-vel! ((this trajectory) (from vector) (to vector) (y-vel float) (grav float))
|
||||
(let* ((f0-0 y-vel)
|
||||
(f1-3 (- (* f0-0 f0-0) (* 2.0 (- (-> from y) (-> to y)) grav)))
|
||||
(f0-3 900.0)
|
||||
)
|
||||
(let ((f1-3 (- (square y-vel) (* 2.0 (- (-> from y) (-> to y)) grav)))
|
||||
(f0-3 900.0)
|
||||
)
|
||||
(when (>= f1-3 0.0)
|
||||
(let ((f0-4 (sqrtf f1-3)))
|
||||
(set! f0-3 (fmax (/ (- (- y-vel) f0-4) grav) (/ (+ (- y-vel) f0-4) grav)))
|
||||
|
||||
+1
-1
@@ -259,7 +259,7 @@
|
||||
(f28-0 (* 0.0078125 (the float (- 127 (the-as int (-> pad lefty))))))
|
||||
)
|
||||
(set! (-> pad stick0-dir) (atan (- f30-0) f28-0))
|
||||
(set! (-> pad stick0-speed) (fmin 1.0 (sqrtf (+ (* f30-0 f30-0) (* f28-0 f28-0)))))
|
||||
(set! (-> pad stick0-speed) (fmin 1.0 (sqrtf (+ (square f30-0) (square f28-0)))))
|
||||
)
|
||||
(if (< (-> pad stick0-speed) 0.3)
|
||||
(set! (-> pad stick0-speed) 0.0)
|
||||
|
||||
+92
-98
@@ -438,10 +438,10 @@
|
||||
;; definition for function sound-play-by-name
|
||||
;; INFO: Used lq/sq
|
||||
(defun sound-play-by-name ((name sound-name) (id sound-id) (vol int) (pitch int) (bend int) (group sound-group) (trans symbol))
|
||||
(local-vars (sv-16 sound-group))
|
||||
(with-pp
|
||||
(set! sv-16 group)
|
||||
(let ((sound-trans (the-as structure trans)))
|
||||
(let ((sv-16 group)
|
||||
(sound-trans (the-as structure trans))
|
||||
)
|
||||
(when *sound-player-enable*
|
||||
(let ((cmd (the-as sound-rpc-play (get-sound-buffer-entry))))
|
||||
(set! (-> cmd command) (sound-command play))
|
||||
@@ -603,108 +603,102 @@
|
||||
;; INFO: Used lq/sq
|
||||
;; INFO: Return type mismatch object vs ambient-sound.
|
||||
(defmethod new ambient-sound ((allocation symbol) (type-to-make type) (arg0 basic) (arg1 vector))
|
||||
(local-vars
|
||||
(sv-16 sound-spec)
|
||||
(sv-32 sound-name)
|
||||
(sv-48 (pointer float))
|
||||
(sv-52 sound-play-parms)
|
||||
(sv-56 int)
|
||||
(sv-64 res-tag)
|
||||
)
|
||||
(set! sv-16 (the-as sound-spec #f))
|
||||
(set! sv-32 (the-as sound-name 0))
|
||||
(set! sv-48 (the-as (pointer float) #f))
|
||||
(set! sv-52 (the-as sound-play-parms #f))
|
||||
(set! sv-56 0)
|
||||
(case (-> arg0 type)
|
||||
((entity-actor entity-ambient)
|
||||
(let ((bc
|
||||
((method-of-type res-lump get-property-struct)
|
||||
(the-as res-lump arg0)
|
||||
'effect-name
|
||||
'exact
|
||||
0.0
|
||||
#f
|
||||
(the-as (pointer res-tag) #f)
|
||||
*res-static-buf*
|
||||
)
|
||||
)
|
||||
)
|
||||
(when bc
|
||||
(set! sv-32 (string->sound-name (symbol->string bc)))
|
||||
(set! sv-48 (res-lump-data (the-as res-lump arg0) 'cycle-speed (pointer float)))
|
||||
(set! sv-16 *ambient-spec*)
|
||||
(set! sv-64 (new 'static 'res-tag))
|
||||
(let ((v1-7
|
||||
((method-of-type res-lump get-property-data)
|
||||
(the-as res-lump arg0)
|
||||
'effect-param
|
||||
'exact
|
||||
0.0
|
||||
(the-as pointer #f)
|
||||
(& sv-64)
|
||||
*res-static-buf*
|
||||
)
|
||||
)
|
||||
(let ((sv-16 (the-as sound-spec #f))
|
||||
(sv-32 (the-as sound-name 0))
|
||||
(sv-48 (the-as (pointer float) #f))
|
||||
(sv-52 (the-as sound-play-parms #f))
|
||||
(sv-56 0)
|
||||
)
|
||||
(case (-> arg0 type)
|
||||
((entity-actor entity-ambient)
|
||||
(let ((bc
|
||||
((method-of-type res-lump get-property-struct)
|
||||
(the-as res-lump arg0)
|
||||
'effect-name
|
||||
'exact
|
||||
0.0
|
||||
#f
|
||||
(the-as (pointer res-tag) #f)
|
||||
*res-static-buf*
|
||||
)
|
||||
)
|
||||
)
|
||||
(when bc
|
||||
(set! sv-32 (string->sound-name (symbol->string bc)))
|
||||
(set! sv-48 (res-lump-data (the-as res-lump arg0) 'cycle-speed (pointer float)))
|
||||
(set! sv-16 *ambient-spec*)
|
||||
(let* ((sv-64 (new 'static 'res-tag))
|
||||
(v1-7
|
||||
((method-of-type res-lump get-property-data)
|
||||
(the-as res-lump arg0)
|
||||
'effect-param
|
||||
'exact
|
||||
0.0
|
||||
(the-as pointer #f)
|
||||
(& sv-64)
|
||||
*res-static-buf*
|
||||
)
|
||||
)
|
||||
)
|
||||
(when v1-7
|
||||
(set! sv-52 (the-as sound-play-parms v1-7))
|
||||
(set! sv-56 (the-as int (-> sv-64 elt-count)))
|
||||
)
|
||||
(when v1-7
|
||||
(set! sv-52 (the-as sound-play-parms v1-7))
|
||||
(set! sv-56 (the-as int (-> sv-64 elt-count)))
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
((sound-spec)
|
||||
(set! sv-16 (the-as sound-spec arg0))
|
||||
)
|
||||
((symbol)
|
||||
(set! sv-32 (string->sound-name (symbol->string arg0)))
|
||||
)
|
||||
((string)
|
||||
(set! sv-32 (string->sound-name (the-as string arg0)))
|
||||
)
|
||||
(else
|
||||
(format 0 "ERROR: ambient sound was told to play an unknown ~A.~%" arg0)
|
||||
)
|
||||
)
|
||||
(the-as
|
||||
ambient-sound
|
||||
(cond
|
||||
((or sv-16 (nonzero? sv-32))
|
||||
(let ((this (object-new allocation type-to-make (the-as int (-> type-to-make size)))))
|
||||
(set! (-> this spec) sv-16)
|
||||
(set! (-> this name) sv-32)
|
||||
(set! (-> this playing-id) (new-sound-id))
|
||||
(set! (-> this params) (the-as (pointer float) sv-52))
|
||||
(set! (-> this param-count) sv-56)
|
||||
(set! (-> this entity) #f)
|
||||
(set! (-> this sound-count) 1)
|
||||
(set! (-> this volume) 1024)
|
||||
(set! (-> this pitch) 0)
|
||||
(when (and sv-16 (!= sv-16 *ambient-spec*))
|
||||
(if (logtest? (-> (the-as sound-spec sv-16) mask) (sound-mask volume))
|
||||
(set! (-> this volume) (-> (the-as sound-spec sv-16) volume))
|
||||
)
|
||||
(if (logtest? (-> (the-as sound-spec sv-16) mask) (sound-mask pitch))
|
||||
(set! (-> this pitch) (-> (the-as sound-spec sv-16) pitch-mod))
|
||||
)
|
||||
)
|
||||
(cond
|
||||
(sv-48
|
||||
(set! (-> this time-base) (the-as time-frame (the int (* 300.0 (-> sv-48 0)))))
|
||||
(set! (-> this time-random) (the-as time-frame (the int (* 300.0 (-> sv-48 1)))))
|
||||
)
|
||||
(else
|
||||
(set! (-> this time-base) -1)
|
||||
)
|
||||
)
|
||||
(set! (-> this trans quad) (-> arg1 quad))
|
||||
this
|
||||
)
|
||||
((sound-spec)
|
||||
(set! sv-16 (the-as sound-spec arg0))
|
||||
)
|
||||
((symbol)
|
||||
(set! sv-32 (string->sound-name (symbol->string arg0)))
|
||||
)
|
||||
((string)
|
||||
(set! sv-32 (string->sound-name (the-as string arg0)))
|
||||
)
|
||||
(else
|
||||
(the-as ambient-sound 0)
|
||||
(format 0 "ERROR: ambient sound was told to play an unknown ~A.~%" arg0)
|
||||
)
|
||||
)
|
||||
(the-as
|
||||
ambient-sound
|
||||
(cond
|
||||
((or sv-16 (nonzero? sv-32))
|
||||
(let ((this (object-new allocation type-to-make (the-as int (-> type-to-make size)))))
|
||||
(set! (-> this spec) sv-16)
|
||||
(set! (-> this name) sv-32)
|
||||
(set! (-> this playing-id) (new-sound-id))
|
||||
(set! (-> this params) (the-as (pointer float) sv-52))
|
||||
(set! (-> this param-count) sv-56)
|
||||
(set! (-> this entity) #f)
|
||||
(set! (-> this sound-count) 1)
|
||||
(set! (-> this volume) 1024)
|
||||
(set! (-> this pitch) 0)
|
||||
(when (and sv-16 (!= sv-16 *ambient-spec*))
|
||||
(if (logtest? (-> (the-as sound-spec sv-16) mask) (sound-mask volume))
|
||||
(set! (-> this volume) (-> (the-as sound-spec sv-16) volume))
|
||||
)
|
||||
(if (logtest? (-> (the-as sound-spec sv-16) mask) (sound-mask pitch))
|
||||
(set! (-> this pitch) (-> (the-as sound-spec sv-16) pitch-mod))
|
||||
)
|
||||
)
|
||||
(cond
|
||||
(sv-48
|
||||
(set! (-> this time-base) (the-as time-frame (the int (* 300.0 (-> sv-48 0)))))
|
||||
(set! (-> this time-random) (the-as time-frame (the int (* 300.0 (-> sv-48 1)))))
|
||||
)
|
||||
(else
|
||||
(set! (-> this time-base) -1)
|
||||
)
|
||||
)
|
||||
(set! (-> this trans quad) (-> arg1 quad))
|
||||
this
|
||||
)
|
||||
)
|
||||
(else
|
||||
(the-as ambient-sound 0)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
+356
-360
@@ -28,35 +28,36 @@
|
||||
;; WARN: Stack slot offset 48 signed mismatch
|
||||
;; ERROR: Failed store: (s.q! v1-20 a0-7) at op 72
|
||||
(defun poly-find-nearest-edge ((arg0 vector) (arg1 (inline-array vector)) (arg2 vector) (arg3 vector))
|
||||
(local-vars (sv-32 vector) (sv-36 float) (sv-40 int) (sv-48 float) (sv-80 vector))
|
||||
(set! sv-32 (new 'stack-no-clear 'vector))
|
||||
(set! sv-36 4095996000.0)
|
||||
(set! sv-40 -1)
|
||||
(set! sv-48 0.0)
|
||||
(dotimes (s2-0 3)
|
||||
(let ((s0-0 (-> arg1 s2-0)))
|
||||
(set! sv-80 (-> arg1 (mod (+ s2-0 1) 3)))
|
||||
(let ((f30-0 (vector-line-distance-point! arg2 s0-0 sv-80 sv-32))
|
||||
(s1-1 (vector-! (new 'stack-no-clear 'vector) sv-80 s0-0))
|
||||
)
|
||||
0.0
|
||||
(vector-normalize! s1-1 1.0)
|
||||
(let ((f0-5 (fabs (vector-dot arg3 s1-1))))
|
||||
(when (or (< f30-0 sv-36) (and (= f30-0 sv-36) (< sv-48 f0-5)))
|
||||
(set! sv-36 f30-0)
|
||||
(set! sv-40 s2-0)
|
||||
(set! sv-48 f0-5)
|
||||
(let ((sv-32 (new 'stack-no-clear 'vector))
|
||||
(sv-36 4095996000.0)
|
||||
(sv-40 -1)
|
||||
)
|
||||
(let ((sv-48 0.0))
|
||||
(dotimes (s2-0 3)
|
||||
(let* ((s0-0 (-> arg1 s2-0))
|
||||
(sv-80 (-> arg1 (mod (+ s2-0 1) 3)))
|
||||
(f30-0 (vector-line-distance-point! arg2 s0-0 sv-80 sv-32))
|
||||
(s1-1 (vector-! (new 'stack-no-clear 'vector) sv-80 s0-0))
|
||||
)
|
||||
0.0
|
||||
(vector-normalize! s1-1 1.0)
|
||||
(let ((f0-5 (fabs (vector-dot arg3 s1-1))))
|
||||
(when (or (< f30-0 sv-36) (and (= f30-0 sv-36) (< sv-48 f0-5)))
|
||||
(set! sv-36 f30-0)
|
||||
(set! sv-40 s2-0)
|
||||
(set! sv-48 f0-5)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(let ((v1-20 (&-> arg0 x))
|
||||
(a0-7 (-> arg1 sv-40 quad))
|
||||
)
|
||||
(s.q! v1-20 a0-7)
|
||||
)
|
||||
(set! (-> (&+ arg0 16) quad) (-> arg1 (mod (+ sv-40 1) 3) quad))
|
||||
)
|
||||
(let ((v1-20 (&-> arg0 x))
|
||||
(a0-7 (-> arg1 sv-40 quad))
|
||||
)
|
||||
(s.q! v1-20 a0-7)
|
||||
)
|
||||
(set! (-> (&+ arg0 16) quad) (-> arg1 (mod (+ sv-40 1) 3) quad))
|
||||
arg0
|
||||
)
|
||||
|
||||
@@ -70,172 +71,165 @@
|
||||
(arg4 (pointer uint64))
|
||||
(arg5 (pointer symbol))
|
||||
)
|
||||
(local-vars
|
||||
(sv-16 vector)
|
||||
(sv-20 (pointer uint32))
|
||||
(sv-24 (pointer uint64))
|
||||
(sv-28 (pointer symbol))
|
||||
(sv-32 uint)
|
||||
(sv-40 uint)
|
||||
(sv-48 symbol)
|
||||
(sv-52 vector)
|
||||
(sv-56 vector)
|
||||
(sv-160 vector)
|
||||
(sv-164 collide-tri-result)
|
||||
(sv-208 vector)
|
||||
(sv-212 vector)
|
||||
(sv-272 vector)
|
||||
(sv-276 vector)
|
||||
)
|
||||
(set! sv-16 arg2)
|
||||
(set! sv-20 arg3)
|
||||
(set! sv-24 arg4)
|
||||
(set! sv-28 arg5)
|
||||
(set! sv-32 (-> arg3 0))
|
||||
(set! sv-40 (-> arg4 0))
|
||||
(set! sv-48 (-> arg5 0))
|
||||
(set! sv-52 (-> arg0 unknown-vector60))
|
||||
(set! sv-56 (vector-cross! (-> arg0 unknown-vector-coverage-2) (-> arg0 poly-normal) sv-16))
|
||||
(vector-normalize! sv-56 1.0)
|
||||
(if (>= (fabs (vector-dot (-> arg0 dynam gravity-normal) sv-56)) 0.866)
|
||||
(set! sv-32 (logior sv-32 512))
|
||||
)
|
||||
(vector-cross! sv-52 sv-16 sv-56)
|
||||
(if (< 0.0 (vector-dot (-> arg0 dynam gravity-normal) sv-52))
|
||||
(vector-negate! sv-52 sv-52)
|
||||
)
|
||||
(vector-normalize! sv-52 1.0)
|
||||
(set! sv-160 (vector-flatten! (-> arg0 unknown-vector-coverage-3) sv-52 (-> arg0 dynam gravity-normal)))
|
||||
(set! sv-164 (new 'stack 'collide-tri-result))
|
||||
(vector-normalize! sv-160 1.0)
|
||||
(if (< (vector-dot sv-160 sv-16) 0.0)
|
||||
(vector-negate! sv-160 sv-160)
|
||||
)
|
||||
(set! (-> arg0 unknown-float-coverage-0) 4095996000.0)
|
||||
(set! (-> arg0 unknown-float-coverage-2) 4095996000.0)
|
||||
(set! sv-208 (vector+float*! (new 'stack-no-clear 'vector) (-> arg1 best-tri intersect) sv-160 2867.2))
|
||||
(set! sv-212 (vector-normalize-copy! (new 'stack-no-clear 'vector) (-> arg0 dynam gravity-normal) -20480.0))
|
||||
(vector+float*! sv-212 sv-212 sv-160 4096.0)
|
||||
(when (>= (probe-using-line-sphere
|
||||
*collide-cache*
|
||||
sv-208
|
||||
sv-212
|
||||
409.6
|
||||
(-> arg1 best-from-prim collide-with)
|
||||
sv-164
|
||||
(new 'static 'pat-surface :noentity #x1)
|
||||
)
|
||||
0.0
|
||||
(let ((sv-16 arg2)
|
||||
(sv-20 arg3)
|
||||
(sv-24 arg4)
|
||||
(sv-28 arg5)
|
||||
(sv-32 (-> arg3 0))
|
||||
(sv-40 (-> arg4 0))
|
||||
(sv-48 (-> arg5 0))
|
||||
)
|
||||
(let ((sv-52 (-> arg0 unknown-vector60)))
|
||||
(let ((sv-56 (vector-cross! (-> arg0 unknown-vector-coverage-2) (-> arg0 poly-normal) sv-16)))
|
||||
(vector-normalize! sv-56 1.0)
|
||||
(if (>= (fabs (vector-dot (-> arg0 dynam gravity-normal) sv-56)) 0.866)
|
||||
(logior! sv-32 512)
|
||||
)
|
||||
(set! (-> arg0 unknown-float-coverage-0)
|
||||
(vector-dot
|
||||
(-> arg0 dynam gravity-normal)
|
||||
(vector-! (new 'stack-no-clear 'vector) (-> arg1 best-tri intersect) (-> sv-164 intersect))
|
||||
(vector-cross! sv-52 sv-16 sv-56)
|
||||
)
|
||||
(if (< 0.0 (vector-dot (-> arg0 dynam gravity-normal) sv-52))
|
||||
(vector-negate! sv-52 sv-52)
|
||||
)
|
||||
(vector-normalize! sv-52 1.0)
|
||||
(let ((sv-160 (vector-flatten! (-> arg0 unknown-vector-coverage-3) sv-52 (-> arg0 dynam gravity-normal)))
|
||||
(sv-164 (new 'stack 'collide-tri-result))
|
||||
)
|
||||
(vector-normalize! sv-160 1.0)
|
||||
(if (< (vector-dot sv-160 sv-16) 0.0)
|
||||
(vector-negate! sv-160 sv-160)
|
||||
)
|
||||
(set! (-> arg0 unknown-float-coverage-0) 4095996000.0)
|
||||
(set! (-> arg0 unknown-float-coverage-2) 4095996000.0)
|
||||
(let ((sv-208 (vector+float*! (new 'stack-no-clear 'vector) (-> arg1 best-tri intersect) sv-160 2867.2))
|
||||
(sv-212 (vector-normalize-copy! (new 'stack-no-clear 'vector) (-> arg0 dynam gravity-normal) -20480.0))
|
||||
)
|
||||
(vector+float*! sv-212 sv-212 sv-160 4096.0)
|
||||
(when (>= (probe-using-line-sphere
|
||||
*collide-cache*
|
||||
sv-208
|
||||
sv-212
|
||||
409.6
|
||||
(-> arg1 best-from-prim collide-with)
|
||||
sv-164
|
||||
(new 'static 'pat-surface :noentity #x1)
|
||||
)
|
||||
0.0
|
||||
)
|
||||
(set! (-> arg0 unknown-float-coverage-0)
|
||||
(vector-dot
|
||||
(-> arg0 dynam gravity-normal)
|
||||
(vector-! (new 'stack-no-clear 'vector) (-> arg1 best-tri intersect) (-> sv-164 intersect))
|
||||
)
|
||||
)
|
||||
(set! (-> arg0 unknown-float-coverage-1) (the-as float (-> sv-164 pat)))
|
||||
(set! (-> arg0 unknown-vector-coverage-0 quad) (-> sv-164 normal quad))
|
||||
0
|
||||
)
|
||||
)
|
||||
(set! (-> arg0 unknown-float-coverage-1) (the-as float (-> sv-164 pat)))
|
||||
(set! (-> arg0 unknown-vector-coverage-0 quad) (-> sv-164 normal quad))
|
||||
0
|
||||
)
|
||||
(set! sv-272 (vector+float*!
|
||||
(new 'stack-no-clear 'vector)
|
||||
(-> arg1 best-tri intersect)
|
||||
(-> arg0 dynam gravity-normal)
|
||||
819.2
|
||||
)
|
||||
)
|
||||
(set! sv-276 (vector-normalize-copy! (new 'stack-no-clear 'vector) (-> arg0 dynam gravity-normal) -20480.0))
|
||||
(vector+float*! sv-272 sv-272 sv-160 -819.2)
|
||||
(vector+float*! sv-276 sv-276 sv-160 -4096.0)
|
||||
(when (>= (probe-using-line-sphere
|
||||
*collide-cache*
|
||||
sv-272
|
||||
sv-276
|
||||
409.6
|
||||
(-> arg1 best-from-prim collide-with)
|
||||
sv-164
|
||||
(new 'static 'pat-surface :noentity #x1)
|
||||
)
|
||||
0.0
|
||||
)
|
||||
(set! (-> arg0 unknown-float-coverage-2) (vector-vector-distance sv-272 (-> sv-164 intersect)))
|
||||
(set! (-> arg0 unknown-u32-coverage-0) (the-as uint (-> sv-164 pat)))
|
||||
(set! (-> arg0 unknown-vector-coverage-1 quad) (-> sv-164 normal quad))
|
||||
0
|
||||
)
|
||||
(when (and (not (logtest? sv-32 512))
|
||||
(and (or (< (* 1.25 (-> arg1 best-from-prim local-sphere w)) (-> arg0 unknown-float-coverage-0))
|
||||
(= (shr (shl (the-as int (-> arg0 unknown-float-coverage-1)) 58) 61) 1)
|
||||
(let ((sv-272 (vector+float*!
|
||||
(new 'stack-no-clear 'vector)
|
||||
(-> arg1 best-tri intersect)
|
||||
(-> arg0 dynam gravity-normal)
|
||||
819.2
|
||||
)
|
||||
)
|
||||
(and (< (-> arg0 unknown-float-coverage-2) (* 2.0 (-> arg1 best-from-prim local-sphere w)))
|
||||
(zero? (shr (shl (-> arg0 unknown-u32-coverage-0) 58) 61))
|
||||
(sv-276 (vector-normalize-copy! (new 'stack-no-clear 'vector) (-> arg0 dynam gravity-normal) -20480.0))
|
||||
)
|
||||
(vector+float*! sv-272 sv-272 sv-160 -819.2)
|
||||
(vector+float*! sv-276 sv-276 sv-160 -4096.0)
|
||||
(when (>= (probe-using-line-sphere
|
||||
*collide-cache*
|
||||
sv-272
|
||||
sv-276
|
||||
409.6
|
||||
(-> arg1 best-from-prim collide-with)
|
||||
sv-164
|
||||
(new 'static 'pat-surface :noentity #x1)
|
||||
)
|
||||
0.0
|
||||
)
|
||||
(set! (-> arg0 unknown-float-coverage-2) (vector-vector-distance sv-272 (-> sv-164 intersect)))
|
||||
(set! (-> arg0 unknown-u32-coverage-0) (the-as uint (-> sv-164 pat)))
|
||||
(set! (-> arg0 unknown-vector-coverage-1 quad) (-> sv-164 normal quad))
|
||||
0
|
||||
)
|
||||
)
|
||||
)
|
||||
(when (and (not (logtest? sv-32 512))
|
||||
(and (or (< (* 1.25 (-> arg1 best-from-prim local-sphere w)) (-> arg0 unknown-float-coverage-0))
|
||||
(= (shr (shl (the-as int (-> arg0 unknown-float-coverage-1)) 58) 61) 1)
|
||||
)
|
||||
(and (< (-> arg0 unknown-float-coverage-2) (* 2.0 (-> arg1 best-from-prim local-sphere w)))
|
||||
(zero? (shr (shl (-> arg0 unknown-u32-coverage-0) 58) 61))
|
||||
)
|
||||
)
|
||||
)
|
||||
(logior! sv-32 128)
|
||||
(set! (-> arg0 unknown-dword-coverage) (the-as int (current-time)))
|
||||
(logior! sv-40 128)
|
||||
(set-time! (-> arg0 unknown-dword21))
|
||||
(let ((f30-0 (vector-dot sv-52 (-> arg0 unknown-vector22)))
|
||||
(f0-21 (if (logtest? sv-32 2)
|
||||
(cos (- 16384.0 (acos (-> arg0 coverage))))
|
||||
(-> arg0 coverage)
|
||||
)
|
||||
)
|
||||
(f1-11 (vector-dot
|
||||
(-> arg0 dynam gravity-normal)
|
||||
(vector-! (new 'stack-no-clear 'vector) (-> arg0 trans) (-> arg1 best-tri intersect))
|
||||
)
|
||||
)
|
||||
)
|
||||
(if (or (not (logtest? sv-32 32)) (< 0.5 f0-21))
|
||||
(set! sv-48 (the-as symbol #f))
|
||||
)
|
||||
(when (and (or (and (< f0-21 0.95) (>= f30-0 0.0))
|
||||
(and (logtest? sv-32 32) (< f0-21 0.3))
|
||||
(< f1-11 (/ (-> arg1 best-from-prim local-sphere w) -4))
|
||||
)
|
||||
(>= (vector-dot sv-52 sv-16) -0.000001)
|
||||
)
|
||||
(set! (-> arg0 surf) *edge-surface*)
|
||||
(logior! sv-32 1024)
|
||||
(set! sv-48 (the-as symbol #f))
|
||||
(when (logtest? sv-32 32)
|
||||
(set! sv-48 #t)
|
||||
(logior! sv-32 4096)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(if (< (-> arg0 surface-angle) 0.0)
|
||||
(set! sv-48 #t)
|
||||
)
|
||||
(when sv-48
|
||||
(cond
|
||||
((and (or (= (-> arg0 poly-pat mode) (pat-mode ground))
|
||||
(and (logtest? sv-32 8)
|
||||
(>= (* 1.25 (-> arg1 best-from-prim local-sphere w)) (-> arg0 unknown-float-coverage-0))
|
||||
(zero? (shr (shl (the-as int (-> arg0 unknown-float-coverage-1)) 58) 61))
|
||||
(< 0.3 (fabs (-> arg0 surface-angle)))
|
||||
)
|
||||
)
|
||||
)
|
||||
(set! sv-32 (logior sv-32 128))
|
||||
(set! (-> arg0 unknown-dword-coverage) (the-as int (current-time)))
|
||||
(set! sv-40 (logior sv-40 128))
|
||||
(set-time! (-> arg0 unknown-dword21))
|
||||
(let ((f30-0 (vector-dot sv-52 (-> arg0 unknown-vector22)))
|
||||
(f0-21 (if (logtest? sv-32 2)
|
||||
(cos (- 16384.0 (acos (-> arg0 coverage))))
|
||||
(-> arg0 coverage)
|
||||
)
|
||||
)
|
||||
(f1-11 (vector-dot
|
||||
(-> arg0 dynam gravity-normal)
|
||||
(vector-! (new 'stack-no-clear 'vector) (-> arg0 trans) (-> arg1 best-tri intersect))
|
||||
)
|
||||
)
|
||||
)
|
||||
(if (or (not (logtest? sv-32 32)) (< 0.5 f0-21))
|
||||
(set! sv-48 (the-as symbol #f))
|
||||
)
|
||||
(when (and (or (and (< f0-21 0.95) (>= f30-0 0.0))
|
||||
(and (logtest? sv-32 32) (< f0-21 0.3))
|
||||
(< f1-11 (/ (-> arg1 best-from-prim local-sphere w) -4))
|
||||
)
|
||||
(>= (vector-dot sv-52 sv-16) -0.000001)
|
||||
)
|
||||
(set! (-> arg0 surf) *edge-surface*)
|
||||
(set! sv-32 (logior sv-32 1024))
|
||||
(set! sv-48 (the-as symbol #f))
|
||||
(when (logtest? sv-32 32)
|
||||
(set! sv-48 #t)
|
||||
(set! sv-32 (logior sv-32 4096))
|
||||
(not (logtest? sv-32 128))
|
||||
)
|
||||
(logior! sv-32 64)
|
||||
(logior! sv-40 128)
|
||||
(set-time! (-> arg0 unknown-dword21))
|
||||
(set! sv-48 (the-as symbol #f))
|
||||
)
|
||||
(#t
|
||||
(logior! sv-32 64)
|
||||
(logior! sv-40 128)
|
||||
(set-time! (-> arg0 unknown-dword21))
|
||||
)
|
||||
)
|
||||
)
|
||||
(set! (-> sv-24 0) sv-40)
|
||||
(set! (-> sv-20 0) sv-32)
|
||||
(set! (-> sv-28 0) sv-48)
|
||||
)
|
||||
(if (< (-> arg0 surface-angle) 0.0)
|
||||
(set! sv-48 #t)
|
||||
)
|
||||
(when sv-48
|
||||
(cond
|
||||
((and (or (= (-> arg0 poly-pat mode) (pat-mode ground))
|
||||
(and (logtest? sv-32 8)
|
||||
(>= (* 1.25 (-> arg1 best-from-prim local-sphere w)) (-> arg0 unknown-float-coverage-0))
|
||||
(zero? (shr (shl (the-as int (-> arg0 unknown-float-coverage-1)) 58) 61))
|
||||
(< 0.3 (fabs (-> arg0 surface-angle)))
|
||||
)
|
||||
)
|
||||
(not (logtest? sv-32 128))
|
||||
)
|
||||
(set! sv-32 (logior sv-32 64))
|
||||
(set! sv-40 (logior sv-40 128))
|
||||
(set-time! (-> arg0 unknown-dword21))
|
||||
(set! sv-48 (the-as symbol #f))
|
||||
)
|
||||
(#t
|
||||
(set! sv-32 (logior sv-32 64))
|
||||
(set! sv-40 (logior sv-40 128))
|
||||
(set-time! (-> arg0 unknown-dword21))
|
||||
)
|
||||
)
|
||||
)
|
||||
(set! (-> sv-24 0) sv-40)
|
||||
(set! (-> sv-20 0) sv-32)
|
||||
(set! (-> sv-28 0) sv-48)
|
||||
(the-as uint 0)
|
||||
)
|
||||
|
||||
@@ -243,198 +237,200 @@
|
||||
;; INFO: Used lq/sq
|
||||
;; INFO: Return type mismatch int vs cshape-moving-flags.
|
||||
(defun target-collision-reaction ((arg0 control-info) (arg1 collide-shape-intersect) (arg2 vector) (arg3 vector))
|
||||
(local-vars (sv-80 vector) (sv-84 vector) (sv-88 matrix) (sv-96 int) (sv-104 int) (sv-160 symbol))
|
||||
(set! sv-80 (new-stack-vector0))
|
||||
(set! sv-84 (new-stack-vector0))
|
||||
(let ((v1-2 (new 'stack-no-clear 'matrix)))
|
||||
(let ((sv-80 (new-stack-vector0))
|
||||
(sv-84 (new-stack-vector0))
|
||||
(v1-2 (new 'stack-no-clear 'matrix))
|
||||
)
|
||||
(dotimes (a0-1 2)
|
||||
(set! (-> v1-2 vector a0-1 quad) (the-as uint128 0))
|
||||
)
|
||||
(set! sv-88 v1-2)
|
||||
)
|
||||
(set! sv-96 0)
|
||||
(set! sv-104 0)
|
||||
(set! (-> sv-88 vector 0 quad) (-> arg3 quad))
|
||||
(set! (-> sv-88 vector 1 quad) (-> arg3 quad))
|
||||
(let ((a1-3 (new 'stack-no-clear 'vector)))
|
||||
(vector-float*! a1-3 (-> arg1 move-vec) (-> arg1 best-u))
|
||||
(move-by-vector! arg0 a1-3)
|
||||
)
|
||||
(set-and-handle-pat! arg0 (-> arg1 best-tri pat))
|
||||
(if (= (-> arg0 poly-pat mode) (pat-mode wall))
|
||||
(set! sv-104 (logior sv-104 1))
|
||||
)
|
||||
(if (logtest? (-> arg0 unknown-surface00 flags) (surface-flags jump))
|
||||
(set! sv-104 (logior sv-104 32))
|
||||
)
|
||||
(let ((v1-23 (new 'stack-no-clear 'vector)))
|
||||
(set! (-> v1-23 quad) (-> arg1 best-from-prim prim-core world-sphere quad))
|
||||
(vector-! sv-80 v1-23 (-> arg1 best-tri intersect))
|
||||
)
|
||||
(vector-normalize! sv-80 1.0)
|
||||
(set! (-> arg0 coverage) (vector-dot sv-80 (-> arg1 best-tri normal)))
|
||||
(when (< (-> arg0 coverage) 0.0)
|
||||
(set! (-> arg0 coverage) 0.0)
|
||||
(vector-flatten! sv-80 sv-80 (-> arg1 best-tri normal))
|
||||
(vector-normalize! sv-80 1.0)
|
||||
)
|
||||
(if (< (-> arg0 coverage) 0.9999)
|
||||
(set! sv-104 (logior sv-104 24))
|
||||
)
|
||||
(let ((v1-33 (-> sv-80 quad)))
|
||||
(set! (-> sv-84 quad) v1-33)
|
||||
)
|
||||
(if (= (-> arg1 best-u) 0.0)
|
||||
(move-by-vector! arg0 (vector-normalize-copy! (new-stack-vector0) sv-84 3.0))
|
||||
)
|
||||
(set! (-> arg0 poly-normal quad) (-> arg1 best-tri normal quad))
|
||||
(collide-shape-moving-angle-set! arg0 sv-84 (-> sv-88 vector 0))
|
||||
(if (< (-> arg0 poly-angle) -0.2)
|
||||
(set! sv-96 (logior sv-96 16))
|
||||
)
|
||||
(if (< (-> arg0 poly-angle) 0.0)
|
||||
(set! sv-96 (logior sv-96 #x4000))
|
||||
)
|
||||
(set! sv-160 (< (fabs (-> arg0 surface-angle)) (-> *pat-mode-info* (-> arg0 cur-pat mode) wall-angle)))
|
||||
(if (and sv-160 (and (= (-> arg0 unknown-surface00 mode) 'dive) (< 0.2 (fabs (-> arg0 surface-angle)))))
|
||||
(set! sv-160 (the-as symbol #f))
|
||||
)
|
||||
(if sv-160
|
||||
(set! sv-104 (logior sv-104 2))
|
||||
)
|
||||
(if (logtest? sv-104 8)
|
||||
(target-collision-low-coverage
|
||||
arg0
|
||||
arg1
|
||||
sv-84
|
||||
(the-as (pointer uint32) (& sv-104))
|
||||
(the-as (pointer uint64) (& sv-96))
|
||||
(& sv-160)
|
||||
)
|
||||
)
|
||||
(when (not (logtest? (-> arg0 prev-status) (cshape-moving-flags onsurf)))
|
||||
(set! (-> arg0 ground-impact-vel) (- (vector-dot (-> arg0 transv) (-> arg0 dynam gravity-normal))))
|
||||
(set! sv-96 (logior sv-96 2048))
|
||||
(when (not sv-160)
|
||||
(let ((f30-0 (- 1.0 (-> arg0 surf impact-fric))))
|
||||
(when (< f30-0 1.0)
|
||||
(let ((s3-1 (new-stack-vector0))
|
||||
(f28-0 (vector-dot (-> arg0 dynam gravity-normal) (-> sv-88 vector 0)))
|
||||
)
|
||||
0.0
|
||||
(vector-! s3-1 (-> sv-88 vector 0) (vector-float*! s3-1 (-> arg0 dynam gravity-normal) f28-0))
|
||||
(let* ((f0-20 (vector-length s3-1))
|
||||
(f1-9 f0-20)
|
||||
)
|
||||
(if (< f28-0 0.0)
|
||||
(set! f28-0 (* f28-0 f30-0))
|
||||
)
|
||||
(vector+!
|
||||
(-> sv-88 vector 0)
|
||||
(vector-float*! (-> sv-88 vector 0) (-> arg0 dynam gravity-normal) f28-0)
|
||||
(vector-float*! s3-1 s3-1 (/ f0-20 f1-9))
|
||||
(let ((sv-88 v1-2)
|
||||
(sv-96 0)
|
||||
)
|
||||
(let ((sv-104 0))
|
||||
(set! (-> sv-88 vector 0 quad) (-> arg3 quad))
|
||||
(set! (-> sv-88 vector 1 quad) (-> arg3 quad))
|
||||
(let ((a1-3 (new 'stack-no-clear 'vector)))
|
||||
(vector-float*! a1-3 (-> arg1 move-vec) (-> arg1 best-u))
|
||||
(move-by-vector! arg0 a1-3)
|
||||
)
|
||||
(set-and-handle-pat! arg0 (-> arg1 best-tri pat))
|
||||
(if (= (-> arg0 poly-pat mode) (pat-mode wall))
|
||||
(logior! sv-104 1)
|
||||
)
|
||||
(if (logtest? (-> arg0 unknown-surface00 flags) (surface-flags jump))
|
||||
(logior! sv-104 32)
|
||||
)
|
||||
(let ((v1-23 (new 'stack-no-clear 'vector)))
|
||||
(set! (-> v1-23 quad) (-> arg1 best-from-prim prim-core world-sphere quad))
|
||||
(vector-! sv-80 v1-23 (-> arg1 best-tri intersect))
|
||||
)
|
||||
(vector-normalize! sv-80 1.0)
|
||||
(set! (-> arg0 coverage) (vector-dot sv-80 (-> arg1 best-tri normal)))
|
||||
(when (< (-> arg0 coverage) 0.0)
|
||||
(set! (-> arg0 coverage) 0.0)
|
||||
(vector-flatten! sv-80 sv-80 (-> arg1 best-tri normal))
|
||||
(vector-normalize! sv-80 1.0)
|
||||
)
|
||||
(if (< (-> arg0 coverage) 0.9999)
|
||||
(logior! sv-104 24)
|
||||
)
|
||||
(set! (-> sv-84 quad) (-> sv-80 quad))
|
||||
(if (= (-> arg1 best-u) 0.0)
|
||||
(move-by-vector! arg0 (vector-normalize-copy! (new-stack-vector0) sv-84 3.0))
|
||||
)
|
||||
(set! (-> arg0 poly-normal quad) (-> arg1 best-tri normal quad))
|
||||
(collide-shape-moving-angle-set! arg0 sv-84 (-> sv-88 vector 0))
|
||||
(if (< (-> arg0 poly-angle) -0.2)
|
||||
(logior! sv-96 16)
|
||||
)
|
||||
(if (< (-> arg0 poly-angle) 0.0)
|
||||
(logior! sv-96 #x4000)
|
||||
)
|
||||
(let ((sv-160 (< (fabs (-> arg0 surface-angle)) (-> *pat-mode-info* (-> arg0 cur-pat mode) wall-angle))))
|
||||
(if (and sv-160 (and (= (-> arg0 unknown-surface00 mode) 'dive) (< 0.2 (fabs (-> arg0 surface-angle)))))
|
||||
(set! sv-160 (the-as symbol #f))
|
||||
)
|
||||
(if sv-160
|
||||
(logior! sv-104 2)
|
||||
)
|
||||
(if (logtest? sv-104 8)
|
||||
(target-collision-low-coverage
|
||||
arg0
|
||||
arg1
|
||||
sv-84
|
||||
(the-as (pointer uint32) (& sv-104))
|
||||
(the-as (pointer uint64) (& sv-96))
|
||||
(& sv-160)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(set! sv-96 (logior sv-96 4))
|
||||
(cond
|
||||
((-> arg1 best-to-prim)
|
||||
(set! sv-96 (logior sv-96 32))
|
||||
(set! (-> arg0 unknown-vector72 quad) (-> arg1 best-tri intersect quad))
|
||||
(set! (-> arg0 unknown-vector73 quad) (-> arg0 poly-normal quad))
|
||||
(set! (-> arg0 unknown-handle00) (process->handle (-> arg1 best-to-prim cshape process)))
|
||||
)
|
||||
((= (-> arg0 poly-pat material) (pat-material waterbottom))
|
||||
)
|
||||
(else
|
||||
(set! sv-96 (logior sv-96 4096))
|
||||
)
|
||||
)
|
||||
(cond
|
||||
(sv-160
|
||||
(set! sv-104 (logior sv-104 4))
|
||||
(set! sv-96 (logior sv-96 8))
|
||||
(set! (-> arg0 cur-pat mode) 1)
|
||||
(set! (-> arg0 unknown-vector70 quad) (-> arg1 best-tri intersect quad))
|
||||
(set! (-> arg0 unknown-vector71 quad) (-> arg0 poly-normal quad))
|
||||
(set! (-> arg0 unknown-vector121 quad) (-> sv-84 quad))
|
||||
(set! (-> arg0 wall-pat) (-> arg1 best-tri pat))
|
||||
(-> arg0 history-data (logand (+ (-> arg0 unknown-halfword00) 127) 127))
|
||||
(cond
|
||||
(#f
|
||||
(sound-play "cursor-options")
|
||||
(set! sv-104 (logior sv-104 8192))
|
||||
(vector-reflect-flat-above! arg2 (-> sv-88 vector 0) sv-84)
|
||||
)
|
||||
(else
|
||||
(vector-reflect-flat! arg2 (-> sv-88 vector 0) sv-84)
|
||||
)
|
||||
)
|
||||
(cond
|
||||
((not (and (>= (-> arg1 best-from-prim local-sphere w)
|
||||
(vector-dot
|
||||
(-> arg0 ground-poly-normal)
|
||||
(vector-! (new 'stack-no-clear 'vector) (-> arg1 best-tri intersect) (-> arg0 ground-touch-point))
|
||||
)
|
||||
)
|
||||
(and (< 0.0 (vector-dot (-> arg0 ground-poly-normal) arg2))
|
||||
(not (time-elapsed? (-> arg0 unknown-dword10) (seconds 0.3)))
|
||||
(not (logtest? sv-104 32))
|
||||
(when (not (logtest? (-> arg0 prev-status) (cshape-moving-flags onsurf)))
|
||||
(set! (-> arg0 ground-impact-vel) (- (vector-dot (-> arg0 transv) (-> arg0 dynam gravity-normal))))
|
||||
(logior! sv-96 2048)
|
||||
(when (not sv-160)
|
||||
(let ((f30-0 (- 1.0 (-> arg0 surf impact-fric))))
|
||||
(when (< f30-0 1.0)
|
||||
(let ((s3-1 (new-stack-vector0))
|
||||
(f28-0 (vector-dot (-> arg0 dynam gravity-normal) (-> sv-88 vector 0)))
|
||||
)
|
||||
)
|
||||
0.0
|
||||
(vector-! s3-1 (-> sv-88 vector 0) (vector-float*! s3-1 (-> arg0 dynam gravity-normal) f28-0))
|
||||
(let* ((f0-20 (vector-length s3-1))
|
||||
(f1-9 f0-20)
|
||||
)
|
||||
(if (< f28-0 0.0)
|
||||
(set! f28-0 (* f28-0 f30-0))
|
||||
)
|
||||
(vector+!
|
||||
(-> sv-88 vector 0)
|
||||
(vector-float*! (-> sv-88 vector 0) (-> arg0 dynam gravity-normal) f28-0)
|
||||
(vector-float*! s3-1 s3-1 (/ f0-20 f1-9))
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(else
|
||||
(set! sv-104 (logior sv-104 256))
|
||||
(set! sv-104 (logand -65 sv-104))
|
||||
(let ((s3-4 (vector-cross! (new 'stack-no-clear 'vector) (-> arg0 poly-normal) (-> arg0 ground-poly-normal))))
|
||||
(vector-normalize! s3-4 1.0)
|
||||
(vector-float*! arg2 s3-4 (vector-dot (-> sv-88 vector 0) s3-4))
|
||||
)
|
||||
(vector+! arg2 arg2 (-> arg0 poly-normal))
|
||||
)
|
||||
)
|
||||
)
|
||||
(else
|
||||
(set! sv-96 (logior sv-96 1))
|
||||
(set! (-> arg0 cur-pat mode) 0)
|
||||
(if (= (-> arg1 best-from-prim prim-id) 6)
|
||||
(set! (-> arg0 local-normal quad) (-> sv-84 quad))
|
||||
)
|
||||
(vector-reflect-flat! arg2 (-> sv-88 vector 0) sv-84)
|
||||
(vector+! arg2 arg2 sv-84)
|
||||
(set! (-> arg0 ground-touch-point w) 0.0)
|
||||
(when (not (or (logtest? sv-104 15) (nonzero? (-> arg0 poly-pat event))))
|
||||
(set! sv-96 (logior sv-96 2))
|
||||
(set! (-> arg0 ground-poly-normal quad) (-> arg0 poly-normal quad))
|
||||
(set! (-> arg0 unknown-vector53 quad) (-> sv-84 quad))
|
||||
(set! (-> arg0 unknown-float60) (vector-dot sv-84 (-> arg0 dynam gravity-normal)))
|
||||
(set-time! (-> arg0 unknown-dword10))
|
||||
(set! (-> arg0 ground-pat) (-> arg0 poly-pat))
|
||||
(set! (-> arg0 ground-touch-point quad) (-> arg1 best-tri intersect quad))
|
||||
(set! (-> arg0 unknown-vector55 quad) (-> arg1 best-from-prim prim-core world-sphere quad))
|
||||
(set! sv-104 (logior sv-104 2048))
|
||||
(if (= (-> arg0 poly-pat material) (pat-material waterbottom))
|
||||
(set! sv-96 (logior sv-96 1024))
|
||||
(logior! sv-96 4)
|
||||
(cond
|
||||
((-> arg1 best-to-prim)
|
||||
(logior! sv-96 32)
|
||||
(set! (-> arg0 unknown-vector72 quad) (-> arg1 best-tri intersect quad))
|
||||
(set! (-> arg0 unknown-vector73 quad) (-> arg0 poly-normal quad))
|
||||
(set! (-> arg0 unknown-handle00) (process->handle (-> arg1 best-to-prim cshape process)))
|
||||
)
|
||||
((= (-> arg0 poly-pat material) (pat-material waterbottom))
|
||||
)
|
||||
(else
|
||||
(logior! sv-96 4096)
|
||||
)
|
||||
)
|
||||
(cond
|
||||
(sv-160
|
||||
(logior! sv-104 4)
|
||||
(logior! sv-96 8)
|
||||
(set! (-> arg0 cur-pat mode) 1)
|
||||
(set! (-> arg0 unknown-vector70 quad) (-> arg1 best-tri intersect quad))
|
||||
(set! (-> arg0 unknown-vector71 quad) (-> arg0 poly-normal quad))
|
||||
(set! (-> arg0 unknown-vector121 quad) (-> sv-84 quad))
|
||||
(set! (-> arg0 wall-pat) (-> arg1 best-tri pat))
|
||||
(-> arg0 history-data (logand (+ (-> arg0 unknown-halfword00) 127) 127))
|
||||
(cond
|
||||
(#f
|
||||
(sound-play "cursor-options")
|
||||
(logior! sv-104 8192)
|
||||
(vector-reflect-flat-above! arg2 (-> sv-88 vector 0) sv-84)
|
||||
)
|
||||
(else
|
||||
(vector-reflect-flat! arg2 (-> sv-88 vector 0) sv-84)
|
||||
)
|
||||
)
|
||||
(cond
|
||||
((not (and (>= (-> arg1 best-from-prim local-sphere w)
|
||||
(vector-dot
|
||||
(-> arg0 ground-poly-normal)
|
||||
(vector-! (new 'stack-no-clear 'vector) (-> arg1 best-tri intersect) (-> arg0 ground-touch-point))
|
||||
)
|
||||
)
|
||||
(and (< 0.0 (vector-dot (-> arg0 ground-poly-normal) arg2))
|
||||
(not (time-elapsed? (-> arg0 unknown-dword10) (seconds 0.3)))
|
||||
(not (logtest? sv-104 32))
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(else
|
||||
(logior! sv-104 256)
|
||||
(logand! sv-104 -65)
|
||||
(let ((s3-4 (vector-cross! (new 'stack-no-clear 'vector) (-> arg0 poly-normal) (-> arg0 ground-poly-normal))))
|
||||
(vector-normalize! s3-4 1.0)
|
||||
(vector-float*! arg2 s3-4 (vector-dot (-> sv-88 vector 0) s3-4))
|
||||
)
|
||||
(vector+! arg2 arg2 (-> arg0 poly-normal))
|
||||
)
|
||||
)
|
||||
)
|
||||
(else
|
||||
(logior! sv-96 1)
|
||||
(set! (-> arg0 cur-pat mode) 0)
|
||||
(if (= (-> arg1 best-from-prim prim-id) 6)
|
||||
(set! (-> arg0 local-normal quad) (-> sv-84 quad))
|
||||
)
|
||||
(vector-reflect-flat! arg2 (-> sv-88 vector 0) sv-84)
|
||||
(vector+! arg2 arg2 sv-84)
|
||||
(set! (-> arg0 ground-touch-point w) 0.0)
|
||||
(when (not (or (logtest? sv-104 15) (nonzero? (-> arg0 poly-pat event))))
|
||||
(logior! sv-96 2)
|
||||
(set! (-> arg0 ground-poly-normal quad) (-> arg0 poly-normal quad))
|
||||
(set! (-> arg0 unknown-vector53 quad) (-> sv-84 quad))
|
||||
(set! (-> arg0 unknown-float60) (vector-dot sv-84 (-> arg0 dynam gravity-normal)))
|
||||
(set-time! (-> arg0 unknown-dword10))
|
||||
(set! (-> arg0 ground-pat) (-> arg0 poly-pat))
|
||||
(set! (-> arg0 ground-touch-point quad) (-> arg1 best-tri intersect quad))
|
||||
(set! (-> arg0 unknown-vector55 quad) (-> arg1 best-from-prim prim-core world-sphere quad))
|
||||
(logior! sv-104 2048)
|
||||
(if (= (-> arg0 poly-pat material) (pat-material waterbottom))
|
||||
(logior! sv-96 1024)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(logior! (-> arg0 status) sv-96)
|
||||
(set! (-> arg0 reaction-flag) (the-as cshape-reaction-flags sv-104))
|
||||
)
|
||||
(update!
|
||||
(-> arg0 history-data (-> arg0 unknown-halfword00))
|
||||
arg0
|
||||
(-> arg1 best-tri intersect)
|
||||
(-> sv-88 vector 1)
|
||||
arg2
|
||||
)
|
||||
(set! (-> arg0 unknown-halfword00) (logand (+ (-> arg0 unknown-halfword00) 1) 127))
|
||||
(the-as cshape-moving-flags sv-96)
|
||||
)
|
||||
)
|
||||
(logior! (-> arg0 status) sv-96)
|
||||
(set! (-> arg0 reaction-flag) (the-as cshape-reaction-flags sv-104))
|
||||
(update!
|
||||
(-> arg0 history-data (-> arg0 unknown-halfword00))
|
||||
arg0
|
||||
(-> arg1 best-tri intersect)
|
||||
(-> sv-88 vector 1)
|
||||
arg2
|
||||
)
|
||||
(set! (-> arg0 unknown-halfword00) (logand (+ (-> arg0 unknown-halfword00) 1) 127))
|
||||
(the-as cshape-moving-flags sv-96)
|
||||
)
|
||||
|
||||
;; definition for function target-collision-no-reaction
|
||||
|
||||
+53
-84
@@ -263,49 +263,30 @@
|
||||
;; WARN: Stack slot load at 160 mismatch: defined as size 4, got size 16
|
||||
;; WARN: Stack slot load at 176 mismatch: defined as size 4, got size 16
|
||||
(defun-debug target-print-stats ((arg0 target) (arg1 symbol))
|
||||
(local-vars
|
||||
(sv-64 string)
|
||||
(sv-80 string)
|
||||
(sv-96 string)
|
||||
(sv-112 string)
|
||||
(sv-128 string)
|
||||
(sv-144 string)
|
||||
(sv-160 float)
|
||||
(sv-176 float)
|
||||
)
|
||||
(when (and *display-ground-stats* arg0)
|
||||
(let ((s4-0 format)
|
||||
(s3-0 arg1)
|
||||
(s2-0 "~0kpoly:~6X mode:~-8S material:~-10S event:~S~%")
|
||||
(s1-0 (-> arg0 control poly-pat))
|
||||
(s0-0 (pat-mode->string (-> arg0 control poly-pat)))
|
||||
)
|
||||
(set! sv-64 (pat-material->string (-> arg0 control poly-pat)))
|
||||
(let ((t1-0 (pat-event->string (-> arg0 control poly-pat))))
|
||||
(s4-0 s3-0 s2-0 s1-0 s0-0 sv-64 t1-0)
|
||||
)
|
||||
(format
|
||||
arg1
|
||||
"~0kpoly:~6X mode:~-8S material:~-10S event:~S~%"
|
||||
(-> arg0 control poly-pat)
|
||||
(pat-mode->string (-> arg0 control poly-pat))
|
||||
(pat-material->string (-> arg0 control poly-pat))
|
||||
(pat-event->string (-> arg0 control poly-pat))
|
||||
)
|
||||
(let ((s4-1 format)
|
||||
(s3-1 arg1)
|
||||
(s2-1 "~0kgrnd:~6X mode:~-8S material:~-10S event:~S~%")
|
||||
(s1-1 (-> arg0 control ground-pat))
|
||||
(s0-1 (pat-mode->string (-> arg0 control ground-pat)))
|
||||
)
|
||||
(set! sv-80 (pat-material->string (-> arg0 control ground-pat)))
|
||||
(let ((t1-1 (pat-event->string (-> arg0 control ground-pat))))
|
||||
(s4-1 s3-1 s2-1 s1-1 s0-1 sv-80 t1-1)
|
||||
)
|
||||
(format
|
||||
arg1
|
||||
"~0kgrnd:~6X mode:~-8S material:~-10S event:~S~%"
|
||||
(-> arg0 control ground-pat)
|
||||
(pat-mode->string (-> arg0 control ground-pat))
|
||||
(pat-material->string (-> arg0 control ground-pat))
|
||||
(pat-event->string (-> arg0 control ground-pat))
|
||||
)
|
||||
(let ((s4-2 format)
|
||||
(s3-2 arg1)
|
||||
(s2-2 "~0kwall:~6X mode:~-8S material:~-10S event:~S~%")
|
||||
(s1-2 (-> arg0 control wall-pat))
|
||||
(s0-2 (pat-mode->string (-> arg0 control wall-pat)))
|
||||
)
|
||||
(set! sv-96 (pat-material->string (-> arg0 control wall-pat)))
|
||||
(let ((t1-2 (pat-event->string (-> arg0 control wall-pat))))
|
||||
(s4-2 s3-2 s2-2 s1-2 s0-2 sv-96 t1-2)
|
||||
)
|
||||
(format
|
||||
arg1
|
||||
"~0kwall:~6X mode:~-8S material:~-10S event:~S~%"
|
||||
(-> arg0 control wall-pat)
|
||||
(pat-mode->string (-> arg0 control wall-pat))
|
||||
(pat-material->string (-> arg0 control wall-pat))
|
||||
(pat-event->string (-> arg0 control wall-pat))
|
||||
)
|
||||
)
|
||||
(when (and *stats-target* arg0)
|
||||
@@ -397,58 +378,46 @@
|
||||
(let ((v1-74 (-> arg0 control trans)))
|
||||
(format arg1 "pos: ~6,,2m ~6,,2m ~6,,2m " (-> v1-74 x) (-> v1-74 y) (-> v1-74 z))
|
||||
)
|
||||
(let ((s4-3 format)
|
||||
(s3-3 arg1)
|
||||
(s2-3 "~0kpol:~X/~S/~S/~S~%")
|
||||
(s1-3 (-> arg0 control poly-pat))
|
||||
(s0-3 (pat-mode->string (-> arg0 control poly-pat)))
|
||||
)
|
||||
(set! sv-112 (pat-material->string (-> arg0 control poly-pat)))
|
||||
(let ((t1-7 (pat-event->string (-> arg0 control poly-pat))))
|
||||
(s4-3 s3-3 s2-3 s1-3 s0-3 sv-112 t1-7)
|
||||
)
|
||||
(format
|
||||
arg1
|
||||
"~0kpol:~X/~S/~S/~S~%"
|
||||
(-> arg0 control poly-pat)
|
||||
(pat-mode->string (-> arg0 control poly-pat))
|
||||
(pat-material->string (-> arg0 control poly-pat))
|
||||
(pat-event->string (-> arg0 control poly-pat))
|
||||
)
|
||||
(let ((s4-4 format)
|
||||
(s3-4 arg1)
|
||||
(s2-4 "~0kcur:~X/~S/~S/~S ")
|
||||
(s1-4 (-> arg0 control cur-pat))
|
||||
(s0-4 (pat-mode->string (-> arg0 control cur-pat)))
|
||||
)
|
||||
(set! sv-128 (pat-material->string (-> arg0 control cur-pat)))
|
||||
(let ((t1-8 (pat-event->string (-> arg0 control cur-pat))))
|
||||
(s4-4 s3-4 s2-4 s1-4 s0-4 sv-128 t1-8)
|
||||
)
|
||||
(format
|
||||
arg1
|
||||
"~0kcur:~X/~S/~S/~S "
|
||||
(-> arg0 control cur-pat)
|
||||
(pat-mode->string (-> arg0 control cur-pat))
|
||||
(pat-material->string (-> arg0 control cur-pat))
|
||||
(pat-event->string (-> arg0 control cur-pat))
|
||||
)
|
||||
(let ((s4-5 format)
|
||||
(s3-5 arg1)
|
||||
(s2-5 "~0kgnd:~X/~S/~S/~S~%")
|
||||
(s1-5 (-> arg0 control ground-pat))
|
||||
(s0-5 (pat-mode->string (-> arg0 control ground-pat)))
|
||||
)
|
||||
(set! sv-144 (pat-material->string (-> arg0 control ground-pat)))
|
||||
(let ((t1-9 (pat-event->string (-> arg0 control ground-pat))))
|
||||
(s4-5 s3-5 s2-5 s1-5 s0-5 sv-144 t1-9)
|
||||
)
|
||||
(format
|
||||
arg1
|
||||
"~0kgnd:~X/~S/~S/~S~%"
|
||||
(-> arg0 control ground-pat)
|
||||
(pat-mode->string (-> arg0 control ground-pat))
|
||||
(pat-material->string (-> arg0 control ground-pat))
|
||||
(pat-event->string (-> arg0 control ground-pat))
|
||||
)
|
||||
(let ((s4-6 format)
|
||||
(s3-6 arg1)
|
||||
(s2-6 "~0kvel: x:~M y:~M z:~M yv:~M xzv:~M~%")
|
||||
(s1-6 (-> arg0 control transv x))
|
||||
(s0-6 (-> arg0 control transv y))
|
||||
(sv-160 (-> arg0 control transv z))
|
||||
(sv-176 (vector-dot (-> arg0 control dynam gravity-normal) (-> arg0 control transv)))
|
||||
(a0-36 (new-stack-vector0))
|
||||
)
|
||||
(set! sv-160 (-> arg0 control transv z))
|
||||
(set! sv-176 (vector-dot (-> arg0 control dynam gravity-normal) (-> arg0 control transv)))
|
||||
(let ((a0-36 (new-stack-vector0)))
|
||||
(let ((f0-17 (vector-dot (-> arg0 control dynam gravity-normal) (-> arg0 control transv))))
|
||||
0.0
|
||||
(vector-! a0-36 (-> arg0 control transv) (vector-float*! a0-36 (-> arg0 control dynam gravity-normal) f0-17))
|
||||
)
|
||||
(let ((f0-18 (vector-length a0-36)))
|
||||
f0-18
|
||||
(let ((t2-4 f0-18))
|
||||
(s4-6 s3-6 s2-6 s1-6 s0-6 sv-160 sv-176 t2-4)
|
||||
)
|
||||
)
|
||||
(let ((f0-17 (vector-dot (-> arg0 control dynam gravity-normal) (-> arg0 control transv))))
|
||||
0.0
|
||||
(vector-! a0-36 (-> arg0 control transv) (vector-float*! a0-36 (-> arg0 control dynam gravity-normal) f0-17))
|
||||
)
|
||||
(let ((f0-18 (vector-length a0-36)))
|
||||
f0-18
|
||||
(s4-6 s3-6 s2-6 s1-6 s0-6 sv-160 sv-176 f0-18)
|
||||
)
|
||||
)
|
||||
(format
|
||||
@@ -703,7 +672,7 @@
|
||||
)
|
||||
(if (< 0.0 f30-1)
|
||||
(vector-xz-normalize! s5-0 (+ f0-11 (* f30-1 (-> self control unknown-surface01 slope-down-factor))))
|
||||
(vector-xz-normalize! s5-0 (- f0-11 (* f30-1 f30-1 (-> self control unknown-surface01 slope-up-factor))))
|
||||
(vector-xz-normalize! s5-0 (- f0-11 (* (square f30-1) (-> self control unknown-surface01 slope-up-factor))))
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
+69
-190
@@ -398,31 +398,6 @@
|
||||
;; INFO: Used lq/sq
|
||||
;; INFO: Return type mismatch object vs symbol.
|
||||
(defbehavior target-send-attack target ((arg0 process) (arg1 uint) (arg2 touching-shapes-entry) (arg3 int) (arg4 int))
|
||||
(local-vars
|
||||
(sv-96 touching-prims-entry)
|
||||
(sv-128 touching-prims-entry)
|
||||
(sv-176 touching-prims-entry)
|
||||
(sv-224 int)
|
||||
(sv-240 symbol)
|
||||
(sv-256 symbol)
|
||||
(sv-272 symbol)
|
||||
(sv-288 int)
|
||||
(sv-304 symbol)
|
||||
(sv-320 symbol)
|
||||
(sv-336 symbol)
|
||||
(sv-352 int)
|
||||
(sv-368 symbol)
|
||||
(sv-384 symbol)
|
||||
(sv-400 symbol)
|
||||
(sv-416 int)
|
||||
(sv-432 symbol)
|
||||
(sv-448 symbol)
|
||||
(sv-464 symbol)
|
||||
(sv-480 int)
|
||||
(sv-496 symbol)
|
||||
(sv-512 symbol)
|
||||
(sv-528 symbol)
|
||||
)
|
||||
(let ((v1-0 (new 'stack-no-clear 'event-message-block)))
|
||||
(set! (-> v1-0 from) self)
|
||||
(set! (-> v1-0 num-params) 4)
|
||||
@@ -436,43 +411,21 @@
|
||||
(let ((v1-5 (-> self control unknown-symbol30)))
|
||||
(cond
|
||||
((or (= v1-5 'spin) (= v1-5 'spin-air))
|
||||
(set! sv-96 (prims-touching? arg2 (-> self control) (the-as uint 64)))
|
||||
(cond
|
||||
(sv-96
|
||||
(let ((s4-0 (get-process *default-dead-pool* part-tracker #x4000)))
|
||||
(when s4-0
|
||||
(let ((t9-3 (method-of-type part-tracker activate)))
|
||||
(t9-3 (the-as part-tracker s4-0) self 'part-tracker (the-as pointer #x70004000))
|
||||
)
|
||||
(let ((s3-0 run-function-in-process)
|
||||
(s2-0 s4-0)
|
||||
(s1-0 part-tracker-init)
|
||||
(s0-0 group-spin-hit)
|
||||
)
|
||||
(set! sv-224 -1)
|
||||
(set! sv-240 (the-as symbol #f))
|
||||
(set! sv-256 (the-as symbol #f))
|
||||
(set! sv-272 (the-as symbol #f))
|
||||
(let ((t3-0 (get-intersect-point (new 'stack-no-clear 'vector) sv-96 (-> self control) arg2)))
|
||||
((the-as (function object object object object object object object object none) s3-0)
|
||||
s2-0
|
||||
s1-0
|
||||
s0-0
|
||||
sv-224
|
||||
sv-240
|
||||
sv-256
|
||||
sv-272
|
||||
t3-0
|
||||
)
|
||||
)
|
||||
)
|
||||
(-> s4-0 ppointer)
|
||||
(let ((sv-96 (prims-touching? arg2 (-> self control) (the-as uint 64))))
|
||||
(if sv-96
|
||||
(process-spawn
|
||||
part-tracker
|
||||
:init part-tracker-init
|
||||
group-spin-hit
|
||||
-1
|
||||
(the-as symbol #f)
|
||||
(the-as symbol #f)
|
||||
(the-as symbol #f)
|
||||
(get-intersect-point (new 'stack-no-clear 'vector) sv-96 (-> self control) arg2)
|
||||
:to self
|
||||
)
|
||||
(effect-control-method-10 (-> self skel effect) 'group-spin-hit (the-as float -1.0) 74)
|
||||
)
|
||||
)
|
||||
(else
|
||||
(effect-control-method-10 (-> self skel effect) 'group-spin-hit (the-as float -1.0) 74)
|
||||
)
|
||||
)
|
||||
(effect-control-method-12
|
||||
(-> self skel effect)
|
||||
@@ -485,75 +438,38 @@
|
||||
(cpad-set-buzz! (-> *cpad-list* cpads 0) 1 127 (seconds 0.2))
|
||||
)
|
||||
((= v1-5 'punch)
|
||||
(set! sv-128 (prims-touching? arg2 (-> self control) (the-as uint 64)))
|
||||
(cond
|
||||
(sv-128
|
||||
(let ((s4-1 (get-process *default-dead-pool* part-tracker #x4000)))
|
||||
(when s4-1
|
||||
(let ((t9-11 (method-of-type part-tracker activate)))
|
||||
(t9-11 (the-as part-tracker s4-1) self 'part-tracker (the-as pointer #x70004000))
|
||||
)
|
||||
(let ((s3-1 run-function-in-process)
|
||||
(s2-1 s4-1)
|
||||
(s1-1 part-tracker-init)
|
||||
(s0-1 group-punch-hit)
|
||||
)
|
||||
(set! sv-288 -1)
|
||||
(set! sv-304 (the-as symbol #f))
|
||||
(set! sv-320 (the-as symbol #f))
|
||||
(set! sv-336 (the-as symbol #f))
|
||||
(let ((t3-1 (get-intersect-point (new 'stack-no-clear 'vector) sv-128 (-> self control) arg2)))
|
||||
((the-as (function object object object object object object object object none) s3-1)
|
||||
s2-1
|
||||
s1-1
|
||||
s0-1
|
||||
sv-288
|
||||
sv-304
|
||||
sv-320
|
||||
sv-336
|
||||
t3-1
|
||||
)
|
||||
)
|
||||
)
|
||||
(-> s4-1 ppointer)
|
||||
(let ((sv-128 (prims-touching? arg2 (-> self control) (the-as uint 64))))
|
||||
(cond
|
||||
(sv-128
|
||||
(process-spawn
|
||||
part-tracker
|
||||
:init part-tracker-init
|
||||
group-punch-hit
|
||||
-1
|
||||
(the-as symbol #f)
|
||||
(the-as symbol #f)
|
||||
(the-as symbol #f)
|
||||
(get-intersect-point (new 'stack-no-clear 'vector) sv-128 (-> self control) arg2)
|
||||
:to self
|
||||
)
|
||||
)
|
||||
)
|
||||
((let ((v0-14 (prims-touching? arg2 (-> self control) (the-as uint 32))))
|
||||
(set! sv-128 v0-14)
|
||||
v0-14
|
||||
)
|
||||
(let ((s4-2 (get-process *default-dead-pool* part-tracker #x4000)))
|
||||
(when s4-2
|
||||
(let ((t9-16 (method-of-type part-tracker activate)))
|
||||
(t9-16 (the-as part-tracker s4-2) self 'part-tracker (the-as pointer #x70004000))
|
||||
)
|
||||
(let ((s3-2 run-function-in-process)
|
||||
(s2-2 s4-2)
|
||||
(s1-2 part-tracker-init)
|
||||
(s0-2 group-punch-hit)
|
||||
)
|
||||
(set! sv-352 -1)
|
||||
(set! sv-368 (the-as symbol #f))
|
||||
(set! sv-384 (the-as symbol #f))
|
||||
(set! sv-400 (the-as symbol #f))
|
||||
(let ((t3-2 (get-intersect-point (new 'stack-no-clear 'vector) sv-128 (-> self control) arg2)))
|
||||
((the-as (function object object object object object object object object none) s3-2)
|
||||
s2-2
|
||||
s1-2
|
||||
s0-2
|
||||
sv-352
|
||||
sv-368
|
||||
sv-384
|
||||
sv-400
|
||||
t3-2
|
||||
)
|
||||
)
|
||||
)
|
||||
(-> s4-2 ppointer)
|
||||
((let ((v0-14 (prims-touching? arg2 (-> self control) (the-as uint 32))))
|
||||
(set! sv-128 v0-14)
|
||||
v0-14
|
||||
)
|
||||
(process-spawn
|
||||
part-tracker
|
||||
:init part-tracker-init
|
||||
group-punch-hit
|
||||
-1
|
||||
(the-as symbol #f)
|
||||
(the-as symbol #f)
|
||||
(the-as symbol #f)
|
||||
(get-intersect-point (new 'stack-no-clear 'vector) sv-128 (-> self control) arg2)
|
||||
:to self
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(effect-control-method-12
|
||||
(-> self skel effect)
|
||||
@@ -577,75 +493,38 @@
|
||||
(cpad-set-buzz! (-> *cpad-list* cpads 0) 1 127 (seconds 0.1))
|
||||
)
|
||||
((= v1-5 'uppercut)
|
||||
(set! sv-176 (prims-touching? arg2 (-> self control) (the-as uint 64)))
|
||||
(cond
|
||||
(sv-176
|
||||
(let ((s4-3 (get-process *default-dead-pool* part-tracker #x4000)))
|
||||
(when s4-3
|
||||
(let ((t9-25 (method-of-type part-tracker activate)))
|
||||
(t9-25 (the-as part-tracker s4-3) self 'part-tracker (the-as pointer #x70004000))
|
||||
)
|
||||
(let ((s3-3 run-function-in-process)
|
||||
(s2-3 s4-3)
|
||||
(s1-3 part-tracker-init)
|
||||
(s0-3 group-punch-hit)
|
||||
)
|
||||
(set! sv-416 -1)
|
||||
(set! sv-432 (the-as symbol #f))
|
||||
(set! sv-448 (the-as symbol #f))
|
||||
(set! sv-464 (the-as symbol #f))
|
||||
(let ((t3-3 (get-intersect-point (new 'stack-no-clear 'vector) sv-176 (-> self control) arg2)))
|
||||
((the-as (function object object object object object object object object none) s3-3)
|
||||
s2-3
|
||||
s1-3
|
||||
s0-3
|
||||
sv-416
|
||||
sv-432
|
||||
sv-448
|
||||
sv-464
|
||||
t3-3
|
||||
)
|
||||
)
|
||||
)
|
||||
(-> s4-3 ppointer)
|
||||
(let ((sv-176 (prims-touching? arg2 (-> self control) (the-as uint 64))))
|
||||
(cond
|
||||
(sv-176
|
||||
(process-spawn
|
||||
part-tracker
|
||||
:init part-tracker-init
|
||||
group-punch-hit
|
||||
-1
|
||||
(the-as symbol #f)
|
||||
(the-as symbol #f)
|
||||
(the-as symbol #f)
|
||||
(get-intersect-point (new 'stack-no-clear 'vector) sv-176 (-> self control) arg2)
|
||||
:to self
|
||||
)
|
||||
)
|
||||
)
|
||||
((let ((v0-26 (prims-touching? arg2 (-> self control) (the-as uint 32))))
|
||||
(set! sv-176 v0-26)
|
||||
v0-26
|
||||
)
|
||||
(let ((s4-4 (get-process *default-dead-pool* part-tracker #x4000)))
|
||||
(when s4-4
|
||||
(let ((t9-30 (method-of-type part-tracker activate)))
|
||||
(t9-30 (the-as part-tracker s4-4) self 'part-tracker (the-as pointer #x70004000))
|
||||
)
|
||||
(let ((s3-4 run-function-in-process)
|
||||
(s2-4 s4-4)
|
||||
(s1-4 part-tracker-init)
|
||||
(s0-4 group-punch-hit)
|
||||
)
|
||||
(set! sv-480 -1)
|
||||
(set! sv-496 (the-as symbol #f))
|
||||
(set! sv-512 (the-as symbol #f))
|
||||
(set! sv-528 (the-as symbol #f))
|
||||
(let ((t3-4 (get-intersect-point (new 'stack-no-clear 'vector) sv-176 (-> self control) arg2)))
|
||||
((the-as (function object object object object object object object object none) s3-4)
|
||||
s2-4
|
||||
s1-4
|
||||
s0-4
|
||||
sv-480
|
||||
sv-496
|
||||
sv-512
|
||||
sv-528
|
||||
t3-4
|
||||
)
|
||||
)
|
||||
)
|
||||
(-> s4-4 ppointer)
|
||||
((let ((v0-26 (prims-touching? arg2 (-> self control) (the-as uint 32))))
|
||||
(set! sv-176 v0-26)
|
||||
v0-26
|
||||
)
|
||||
(process-spawn
|
||||
part-tracker
|
||||
:init part-tracker-init
|
||||
group-punch-hit
|
||||
-1
|
||||
(the-as symbol #f)
|
||||
(the-as symbol #f)
|
||||
(the-as symbol #f)
|
||||
(get-intersect-point (new 'stack-no-clear 'vector) sv-176 (-> self control) arg2)
|
||||
:to self
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(effect-control-method-10 (-> self skel effect) 'group-uppercut-hit (the-as float -1.0) 23)
|
||||
(effect-control-method-12
|
||||
|
||||
+4
-3
@@ -87,14 +87,15 @@
|
||||
;; definition for function birth-func-target-orient
|
||||
;; INFO: Return type mismatch int vs none.
|
||||
(defun birth-func-target-orient ((arg0 int) (arg1 sparticle-cpuinfo) (arg2 sparticle-launchinfo))
|
||||
(local-vars (v1-10 float) (v1-11 float) (sv-16 target))
|
||||
(local-vars (v1-10 float) (v1-11 float))
|
||||
(rlet ((vf0 :class vf)
|
||||
(vf1 :class vf)
|
||||
(vf2 :class vf)
|
||||
)
|
||||
(init-vf0-vector)
|
||||
(set! sv-16 *target*)
|
||||
(let ((s3-0 (new 'stack-no-clear 'vector)))
|
||||
(let ((sv-16 *target*)
|
||||
(s3-0 (new 'stack-no-clear 'vector))
|
||||
)
|
||||
(new 'stack-no-clear 'vector)
|
||||
(let ((s5-0 (new 'stack-no-clear 'quaternion)))
|
||||
(let ((s2-0 (-> sv-16 control local-normal)))
|
||||
|
||||
+73
-83
@@ -509,7 +509,6 @@
|
||||
)
|
||||
)
|
||||
:trans (behavior ()
|
||||
(local-vars (sv-48 vector))
|
||||
(rlet ((vf0 :class vf)
|
||||
(vf4 :class vf)
|
||||
(vf5 :class vf)
|
||||
@@ -545,8 +544,8 @@
|
||||
(s2-0 s4-0)
|
||||
(s1-0 projectile-init-by-other)
|
||||
(s0-0 (-> self entity))
|
||||
(sv-48 s5-1)
|
||||
)
|
||||
(set! sv-48 s5-1)
|
||||
(let ((v0-3 (camera-pos)))
|
||||
(.mov.vf.w vf6 vf0)
|
||||
(.lvf vf4 (&-> v0-3 quad))
|
||||
@@ -554,23 +553,18 @@
|
||||
(.lvf vf5 (&-> s5-1 quad))
|
||||
(.add.vf.xyz vf6 vf4 vf5)
|
||||
(.svf (&-> sv-48 quad) vf6)
|
||||
(let ((t1-0 (if (>= (-> self fact eco-level) (-> *FACT-bank* eco-level-max))
|
||||
56
|
||||
40
|
||||
)
|
||||
)
|
||||
(t2-0 #f)
|
||||
)
|
||||
((the-as (function object object object object object object object none) s3-0)
|
||||
s2-0
|
||||
s1-0
|
||||
s0-0
|
||||
sv-48
|
||||
gp-1
|
||||
t1-0
|
||||
t2-0
|
||||
)
|
||||
)
|
||||
((the-as (function object object object object object object object none) s3-0)
|
||||
s2-0
|
||||
s1-0
|
||||
s0-0
|
||||
sv-48
|
||||
gp-1
|
||||
(if (>= (-> self fact eco-level) (-> *FACT-bank* eco-level-max))
|
||||
56
|
||||
40
|
||||
)
|
||||
#f
|
||||
)
|
||||
)
|
||||
(-> s4-0 ppointer)
|
||||
)
|
||||
@@ -660,7 +654,6 @@
|
||||
(target-exit)
|
||||
)
|
||||
:trans (behavior ()
|
||||
(local-vars (sv-48 vector))
|
||||
(rlet ((vf0 :class vf)
|
||||
(vf4 :class vf)
|
||||
(vf5 :class vf)
|
||||
@@ -696,8 +689,8 @@
|
||||
(s2-0 s4-0)
|
||||
(s1-0 projectile-init-by-other)
|
||||
(s0-0 (-> self entity))
|
||||
(sv-48 s5-1)
|
||||
)
|
||||
(set! sv-48 s5-1)
|
||||
(let ((v0-4 (camera-pos)))
|
||||
(.mov.vf.w vf6 vf0)
|
||||
(.lvf vf4 (&-> v0-4 quad))
|
||||
@@ -705,23 +698,18 @@
|
||||
(.lvf vf5 (&-> s5-1 quad))
|
||||
(.add.vf.xyz vf6 vf4 vf5)
|
||||
(.svf (&-> sv-48 quad) vf6)
|
||||
(let ((t1-0 (if (>= (-> self fact eco-level) (-> *FACT-bank* eco-level-max))
|
||||
120
|
||||
104
|
||||
)
|
||||
)
|
||||
(t2-0 #f)
|
||||
)
|
||||
((the-as (function object object object object object object object none) s3-0)
|
||||
s2-0
|
||||
s1-0
|
||||
s0-0
|
||||
sv-48
|
||||
gp-1
|
||||
t1-0
|
||||
t2-0
|
||||
)
|
||||
)
|
||||
((the-as (function object object object object object object object none) s3-0)
|
||||
s2-0
|
||||
s1-0
|
||||
s0-0
|
||||
sv-48
|
||||
gp-1
|
||||
(if (>= (-> self fact eco-level) (-> *FACT-bank* eco-level-max))
|
||||
120
|
||||
104
|
||||
)
|
||||
#f
|
||||
)
|
||||
)
|
||||
(-> s4-0 ppointer)
|
||||
)
|
||||
@@ -2563,61 +2551,63 @@
|
||||
process
|
||||
(lambda :behavior process
|
||||
((arg0 vector) (arg1 time-frame) (arg2 float))
|
||||
(local-vars (sv-32 time-frame) (sv-40 vector) (sv-44 symbol))
|
||||
(set! sv-32 (current-time))
|
||||
(let ((v1-2 (new-stack-vector0)))
|
||||
(let ((sv-32 (current-time))
|
||||
(v1-2 (new-stack-vector0))
|
||||
)
|
||||
(set! (-> v1-2 quad) (-> arg0 quad))
|
||||
(set! sv-40 v1-2)
|
||||
)
|
||||
(set! sv-44 #t)
|
||||
(until (time-elapsed? sv-32 arg1)
|
||||
(let ((s4-0 (ppointer->process (-> self parent))))
|
||||
(cond
|
||||
((and sv-44
|
||||
(< (- (-> (the-as target s4-0) control trans y) (-> (the-as target s4-0) control unknown-vector52 y)) arg2)
|
||||
)
|
||||
(vector-xz-normalize! (-> (the-as target s4-0) control transv) (the-as float 0.0))
|
||||
(case (-> (the-as target s4-0) current-level name)
|
||||
(('jungleb)
|
||||
(let ((v1-16 (vector-! (new-stack-vector0) (-> (the-as target s4-0) control trans) sv-40)))
|
||||
(set! (-> (the-as target s4-0) control trans x) (+ (-> sv-40 x) (fmax -4096.0 (fmin 4096.0 (-> v1-16 x)))))
|
||||
(set! (-> (the-as target s4-0) control trans z) (+ (-> sv-40 z) (fmax -4096.0 (fmin 4096.0 (-> v1-16 z)))))
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(else
|
||||
(if sv-44
|
||||
(set! sv-32 (current-time))
|
||||
)
|
||||
(set! sv-44 (the-as symbol #f))
|
||||
(when (or (= (-> (the-as target s4-0) next-state name) 'target-duck-high-jump-jump)
|
||||
(= (-> (the-as target s4-0) next-state name) 'target-falling)
|
||||
)
|
||||
(let ((v1-30 (-> (the-as target s4-0) control trans))
|
||||
(s3-0 (-> (the-as target s4-0) control transv))
|
||||
(let ((sv-40 v1-2)
|
||||
(sv-44 #t)
|
||||
)
|
||||
(until (time-elapsed? sv-32 arg1)
|
||||
(let ((s4-0 (ppointer->process (-> self parent))))
|
||||
(cond
|
||||
((and sv-44
|
||||
(< (- (-> (the-as target s4-0) control trans y) (-> (the-as target s4-0) control unknown-vector52 y)) arg2)
|
||||
)
|
||||
(set! (-> s3-0 x) (- (-> sv-40 x) (-> v1-30 x)))
|
||||
(set! (-> s3-0 z) (- (-> sv-40 z) (-> v1-30 z)))
|
||||
(let ((f30-0 (vector-xz-length s3-0)))
|
||||
(if (< 122880.0 f30-0)
|
||||
(vector-xz-normalize! s3-0 (the-as float 122880.0))
|
||||
)
|
||||
(if (< 4096.0 f30-0)
|
||||
(forward-up-nopitch->quaternion
|
||||
(-> (the-as target s4-0) control dir-targ)
|
||||
(vector-normalize-copy! (new 'stack-no-clear 'vector) s3-0 (the-as float 1.0))
|
||||
(vector-y-quaternion! (new 'stack-no-clear 'vector) (-> (the-as target s4-0) control quat))
|
||||
(vector-xz-normalize! (-> (the-as target s4-0) control transv) (the-as float 0.0))
|
||||
(case (-> (the-as target s4-0) current-level name)
|
||||
(('jungleb)
|
||||
(let ((v1-16 (vector-! (new-stack-vector0) (-> (the-as target s4-0) control trans) sv-40)))
|
||||
(set! (-> (the-as target s4-0) control trans x) (+ (-> sv-40 x) (fmax -4096.0 (fmin 4096.0 (-> v1-16 x)))))
|
||||
(set! (-> (the-as target s4-0) control trans z) (+ (-> sv-40 z) (fmax -4096.0 (fmin 4096.0 (-> v1-16 z)))))
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(else
|
||||
(if sv-44
|
||||
(set! sv-32 (current-time))
|
||||
)
|
||||
(set! sv-44 (the-as symbol #f))
|
||||
(when (or (= (-> (the-as target s4-0) next-state name) 'target-duck-high-jump-jump)
|
||||
(= (-> (the-as target s4-0) next-state name) 'target-falling)
|
||||
)
|
||||
(let ((v1-30 (-> (the-as target s4-0) control trans))
|
||||
(s3-0 (-> (the-as target s4-0) control transv))
|
||||
)
|
||||
(set! (-> s3-0 x) (- (-> sv-40 x) (-> v1-30 x)))
|
||||
(set! (-> s3-0 z) (- (-> sv-40 z) (-> v1-30 z)))
|
||||
(let ((f30-0 (vector-xz-length s3-0)))
|
||||
(if (< 122880.0 f30-0)
|
||||
(vector-xz-normalize! s3-0 (the-as float 122880.0))
|
||||
)
|
||||
(if (< 4096.0 f30-0)
|
||||
(forward-up-nopitch->quaternion
|
||||
(-> (the-as target s4-0) control dir-targ)
|
||||
(vector-normalize-copy! (new 'stack-no-clear 'vector) s3-0 (the-as float 1.0))
|
||||
(vector-y-quaternion! (new 'stack-no-clear 'vector) (-> (the-as target s4-0) control quat))
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(suspend)
|
||||
0
|
||||
)
|
||||
)
|
||||
(suspend)
|
||||
0
|
||||
)
|
||||
#f
|
||||
)
|
||||
|
||||
+448
-598
File diff suppressed because it is too large
Load Diff
+32
-38
@@ -287,51 +287,45 @@
|
||||
|
||||
;; definition for function calculate-completion
|
||||
(defun calculate-completion ((the-progress progress))
|
||||
(local-vars
|
||||
(current-cells int)
|
||||
(current-buzzers int)
|
||||
(current-orbs int)
|
||||
(total-cells int)
|
||||
(total-buzzers int)
|
||||
(total-orbs int)
|
||||
)
|
||||
(set! current-cells 0)
|
||||
(set! current-buzzers 0)
|
||||
(set! current-orbs 0)
|
||||
(set! total-cells 0)
|
||||
(set! total-buzzers 0)
|
||||
(set! total-orbs 0)
|
||||
(dotimes (s5-0 (length *level-task-data*))
|
||||
(let ((s4-0 (-> *level-task-data* s5-0)))
|
||||
(when (!= s4-0 #f)
|
||||
(when (or (= *kernel-boot-message* 'play) (= (-> s4-0 level-name-id) (text-id misty-level-name)))
|
||||
(dotimes (s3-0 (-> s4-0 nb-of-tasks))
|
||||
(if (= (get-task-status (-> s4-0 task-info s3-0 task-id)) (task-status invalid))
|
||||
(set! current-cells (+ current-cells 1))
|
||||
(let ((current-cells 0)
|
||||
(current-buzzers 0)
|
||||
(current-orbs 0)
|
||||
(total-cells 0)
|
||||
(total-buzzers 0)
|
||||
(total-orbs 0)
|
||||
)
|
||||
(dotimes (s5-0 (length *level-task-data*))
|
||||
(let ((s4-0 (-> *level-task-data* s5-0)))
|
||||
(when (!= s4-0 #f)
|
||||
(when (or (= *kernel-boot-message* 'play) (= (-> s4-0 level-name-id) (text-id misty-level-name)))
|
||||
(dotimes (s3-0 (-> s4-0 nb-of-tasks))
|
||||
(if (= (get-task-status (-> s4-0 task-info s3-0 task-id)) (task-status invalid))
|
||||
(+! current-cells 1)
|
||||
)
|
||||
)
|
||||
(+! total-cells (-> s4-0 nb-of-tasks))
|
||||
(+! current-orbs (-> *game-info* money-per-level s5-0))
|
||||
(+! total-orbs (-> *game-counts* data s5-0 money-count))
|
||||
(let ((v1-20 (-> s4-0 buzzer-task-index)))
|
||||
(when (!= v1-20 -1)
|
||||
(+! current-buzzers (buzzer-count *game-info* (-> s4-0 task-info v1-20 task-id)))
|
||||
(+! total-buzzers (-> *game-counts* data s5-0 buzzer-count))
|
||||
)
|
||||
)
|
||||
(set! total-cells (+ total-cells (-> s4-0 nb-of-tasks)))
|
||||
(set! current-orbs (+ current-orbs (-> *game-info* money-per-level s5-0)))
|
||||
(set! total-orbs (+ total-orbs (-> *game-counts* data s5-0 money-count)))
|
||||
(let ((v1-20 (-> s4-0 buzzer-task-index)))
|
||||
(when (!= v1-20 -1)
|
||||
(set! current-buzzers (+ current-buzzers (buzzer-count *game-info* (-> s4-0 task-info v1-20 task-id))))
|
||||
(set! total-buzzers (+ total-buzzers (-> *game-counts* data s5-0 buzzer-count)))
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(when the-progress
|
||||
(set! (-> the-progress total-nb-of-power-cells) total-cells)
|
||||
(set! (-> the-progress total-nb-of-buzzers) total-buzzers)
|
||||
(set! (-> the-progress total-nb-of-orbs) total-orbs)
|
||||
)
|
||||
(+ (/ (* 80.0 (the float current-cells)) (the float total-cells))
|
||||
(/ (* 10.0 (the float current-orbs)) (the float total-orbs))
|
||||
(/ (* 10.0 (the float current-buzzers)) (the float total-buzzers))
|
||||
)
|
||||
)
|
||||
(when the-progress
|
||||
(set! (-> the-progress total-nb-of-power-cells) total-cells)
|
||||
(set! (-> the-progress total-nb-of-buzzers) total-buzzers)
|
||||
(set! (-> the-progress total-nb-of-orbs) total-orbs)
|
||||
)
|
||||
(+ (/ (* 80.0 (the float current-cells)) (the float total-cells))
|
||||
(/ (* 10.0 (the float current-orbs)) (the float total-orbs))
|
||||
(/ (* 10.0 (the float current-buzzers)) (the float total-buzzers))
|
||||
)
|
||||
)
|
||||
|
||||
;; definition for symbol *progress-save-info*, type mc-slot-info
|
||||
|
||||
+238
-243
@@ -104,76 +104,78 @@
|
||||
;; definition for function load-game-text-info
|
||||
;; WARN: Found some very strange gotos. Check result carefully, this is not well tested.
|
||||
(defun load-game-text-info ((txt-name string) (curr-text symbol) (heap kheap))
|
||||
(local-vars (v0-2 int) (heap-sym-heap game-text-info) (lang int) (load-status int) (heap-free int))
|
||||
(set! heap-sym-heap (the-as game-text-info (-> curr-text value)))
|
||||
(set! lang (the-as int (-> *setting-control* current language)))
|
||||
(set! load-status 0)
|
||||
(set! heap-free (&- (-> heap top) (the-as uint (-> heap base))))
|
||||
(if (and (= (scf-get-territory) 1) (zero? lang))
|
||||
(set! lang 6)
|
||||
)
|
||||
(when (or (= heap-sym-heap #f)
|
||||
(!= (-> heap-sym-heap language-id) lang)
|
||||
(not (string= (-> heap-sym-heap group-name) txt-name))
|
||||
)
|
||||
(let ((v1-16 heap))
|
||||
(set! (-> v1-16 current) (-> v1-16 base))
|
||||
)
|
||||
(b! #t cfg-14 :delay (nop!))
|
||||
(label cfg-13)
|
||||
(set! v0-2 0)
|
||||
(b! #t cfg-27 :delay (nop!))
|
||||
(label cfg-14)
|
||||
(let ((s3-0 str-load))
|
||||
(format (clear *temp-string*) "~D~S.TXT" lang txt-name)
|
||||
(b!
|
||||
(not (s3-0
|
||||
*temp-string*
|
||||
-1
|
||||
(logand -64 (&+ (-> heap current) 63))
|
||||
(&- (-> heap top) (the-as uint (-> heap current)))
|
||||
)
|
||||
)
|
||||
cfg-13
|
||||
:delay (nop!)
|
||||
(local-vars (v0-2 int))
|
||||
(let ((heap-sym-heap (the-as game-text-info (-> curr-text value)))
|
||||
(lang (the-as int (-> *setting-control* current language)))
|
||||
(load-status 0)
|
||||
(heap-free (&- (-> heap top) (the-as uint (-> heap base))))
|
||||
)
|
||||
)
|
||||
(label cfg-16)
|
||||
(let ((v1-20 (str-load-status (the-as (pointer int32) (& load-status)))))
|
||||
(b! (!= v1-20 'error) cfg-19 :delay (empty-form))
|
||||
(format 0 "Error loading text~%")
|
||||
(if (and (= (scf-get-territory) 1) (zero? (the-as language-enum lang)))
|
||||
(set! lang 6)
|
||||
)
|
||||
(when (or (= heap-sym-heap #f)
|
||||
(!= (-> heap-sym-heap language-id) lang)
|
||||
(not (string= (-> heap-sym-heap group-name) txt-name))
|
||||
)
|
||||
(let ((v1-16 heap))
|
||||
(set! (-> v1-16 current) (-> v1-16 base))
|
||||
)
|
||||
(b! #t cfg-14 :delay (nop!))
|
||||
(label cfg-13)
|
||||
(set! v0-2 0)
|
||||
(b! #t cfg-27 :delay (nop!))
|
||||
(the-as none 0)
|
||||
(b! #t cfg-24 :delay (nop!))
|
||||
(label cfg-19)
|
||||
(cond
|
||||
((>= load-status (+ heap-free -300))
|
||||
(format 0 "Game text heap overrun!~%")
|
||||
(return 0)
|
||||
)
|
||||
((= v1-20 'busy)
|
||||
(nop!)
|
||||
(nop!)
|
||||
(nop!)
|
||||
(nop!)
|
||||
(nop!)
|
||||
(nop!)
|
||||
(goto cfg-16)
|
||||
)
|
||||
)
|
||||
)
|
||||
(label cfg-24)
|
||||
(let ((s2-1 (logand -64 (&+ (-> heap current) 63))))
|
||||
(flush-cache 0)
|
||||
(let ((s3-1 link))
|
||||
(label cfg-14)
|
||||
(let ((s3-0 str-load))
|
||||
(format (clear *temp-string*) "~D~S.TXT" lang txt-name)
|
||||
(set! (-> curr-text value) (s3-1 s2-1 (-> *temp-string* data) load-status heap 0))
|
||||
(b!
|
||||
(not (s3-0
|
||||
*temp-string*
|
||||
-1
|
||||
(logand -64 (&+ (-> heap current) 63))
|
||||
(&- (-> heap top) (the-as uint (-> heap current)))
|
||||
)
|
||||
)
|
||||
cfg-13
|
||||
:delay (nop!)
|
||||
)
|
||||
)
|
||||
(label cfg-16)
|
||||
(let ((v1-20 (str-load-status (the-as (pointer int32) (& load-status)))))
|
||||
(b! (!= v1-20 'error) cfg-19 :delay (empty-form))
|
||||
(format 0 "Error loading text~%")
|
||||
(set! v0-2 0)
|
||||
(b! #t cfg-27 :delay (nop!))
|
||||
(the-as none 0)
|
||||
(b! #t cfg-24 :delay (nop!))
|
||||
(label cfg-19)
|
||||
(cond
|
||||
((>= load-status (+ heap-free -300))
|
||||
(format 0 "Game text heap overrun!~%")
|
||||
(return 0)
|
||||
)
|
||||
((= v1-20 'busy)
|
||||
(nop!)
|
||||
(nop!)
|
||||
(nop!)
|
||||
(nop!)
|
||||
(nop!)
|
||||
(nop!)
|
||||
(goto cfg-16)
|
||||
)
|
||||
)
|
||||
)
|
||||
(label cfg-24)
|
||||
(let ((s2-1 (logand -64 (&+ (-> heap current) 63))))
|
||||
(flush-cache 0)
|
||||
(let ((s3-1 link))
|
||||
(format (clear *temp-string*) "~D~S.TXT" lang txt-name)
|
||||
(set! (-> curr-text value) (s3-1 s2-1 (-> *temp-string* data) load-status heap 0))
|
||||
)
|
||||
)
|
||||
(if (<= (the-as int (-> curr-text value)) 0)
|
||||
(set! (-> curr-text value) (the-as object #f))
|
||||
)
|
||||
)
|
||||
(if (<= (the-as int (-> curr-text value)) 0)
|
||||
(set! (-> curr-text value) (the-as object #f))
|
||||
)
|
||||
)
|
||||
(set! v0-2 0)
|
||||
(label cfg-27)
|
||||
@@ -338,29 +340,6 @@
|
||||
;; WARN: Stack slot offset 132 signed mismatch
|
||||
;; WARN: Stack slot offset 164 signed mismatch
|
||||
(defun print-game-text ((str string) (font-ctxt font-context) (opaque symbol) (alpha int) (line-height int))
|
||||
(local-vars
|
||||
(sv-112 float)
|
||||
(sv-116 float)
|
||||
(sv-120 float)
|
||||
(sv-124 float)
|
||||
(sv-128 float)
|
||||
(sv-132 float)
|
||||
(sv-136 float)
|
||||
(sv-140 (pointer uint8))
|
||||
(sv-144 float)
|
||||
(sv-148 float)
|
||||
(sv-152 float)
|
||||
(sv-156 float)
|
||||
(sv-160 float)
|
||||
(sv-164 float)
|
||||
(sv-168 int)
|
||||
(sv-176 int)
|
||||
(sv-184 int)
|
||||
(sv-192 int)
|
||||
(sv-200 int)
|
||||
(sv-208 symbol)
|
||||
(sv-212 symbol)
|
||||
)
|
||||
(let ((gp-0 (new
|
||||
'stack
|
||||
'font-context
|
||||
@@ -374,174 +353,190 @@
|
||||
)
|
||||
)
|
||||
(when (< 0.1 (-> font-ctxt scale))
|
||||
(set! sv-112 (-> font-ctxt mat vector 0 x))
|
||||
(set! sv-116 (-> font-ctxt mat vector 1 y))
|
||||
(set! sv-120 (-> *video-parms* relative-x-scale))
|
||||
(set! sv-124 (-> *video-parms* relative-y-scale))
|
||||
(set! sv-128 (-> *video-parms* relative-x-scale-reciprical))
|
||||
(set! sv-132 (-> *video-parms* relative-y-scale-reciprical))
|
||||
(set! sv-136 (-> font-ctxt scale))
|
||||
(set! (-> gp-0 origin z) (-> font-ctxt origin z))
|
||||
(set! (-> gp-0 flags) (-> font-ctxt flags))
|
||||
(set! (-> gp-0 color) (-> font-ctxt color))
|
||||
(set! (-> gp-0 scale) sv-136)
|
||||
(when (logtest? (-> gp-0 flags) (font-flags middle-vert))
|
||||
(logclear! (-> gp-0 flags) (font-flags middle-vert))
|
||||
(let ((f30-0 (-> gp-0 width))
|
||||
(f28-0 (-> gp-0 height))
|
||||
)
|
||||
(set! (-> gp-0 width) (-> font-ctxt width))
|
||||
(set! (-> gp-0 height) (-> font-ctxt height))
|
||||
(+! (-> gp-0 origin y)
|
||||
(the float (the int (* 0.5 (- (-> gp-0 height) (print-game-text str gp-0 #t 128 22)))))
|
||||
)
|
||||
(set! (-> gp-0 width) f30-0)
|
||||
(set! (-> gp-0 height) f28-0)
|
||||
(let ((sv-112 (-> font-ctxt mat vector 0 x))
|
||||
(sv-116 (-> font-ctxt mat vector 1 y))
|
||||
(sv-120 (-> *video-parms* relative-x-scale))
|
||||
(sv-124 (-> *video-parms* relative-y-scale))
|
||||
(sv-128 (-> *video-parms* relative-x-scale-reciprical))
|
||||
(sv-132 (-> *video-parms* relative-y-scale-reciprical))
|
||||
(sv-136 (-> font-ctxt scale))
|
||||
)
|
||||
(set! (-> gp-0 origin z) (-> font-ctxt origin z))
|
||||
(set! (-> gp-0 flags) (-> font-ctxt flags))
|
||||
(set! (-> gp-0 color) (-> font-ctxt color))
|
||||
(set! (-> gp-0 scale) sv-136)
|
||||
(when (logtest? (-> gp-0 flags) (font-flags middle-vert))
|
||||
(logclear! (-> gp-0 flags) (font-flags middle-vert))
|
||||
(let ((f30-0 (-> gp-0 width))
|
||||
(f28-0 (-> gp-0 height))
|
||||
)
|
||||
(set! (-> gp-0 width) (-> font-ctxt width))
|
||||
(set! (-> gp-0 height) (-> font-ctxt height))
|
||||
(+! (-> gp-0 origin y)
|
||||
(the float (the int (* 0.5 (- (-> gp-0 height) (print-game-text str gp-0 #t 128 22)))))
|
||||
)
|
||||
(set! (-> gp-0 width) f30-0)
|
||||
(set! (-> gp-0 height) f28-0)
|
||||
)
|
||||
)
|
||||
)
|
||||
(set! (-> gp-0 mat vector 0 x) (* (-> gp-0 mat vector 0 x) sv-136))
|
||||
(set! (-> gp-0 mat vector 1 y) (* (-> gp-0 mat vector 1 y) sv-136))
|
||||
(set! (-> *video-parms* relative-x-scale) (* (-> *video-parms* relative-x-scale) sv-136))
|
||||
(set! (-> *video-parms* relative-y-scale) (* (-> *video-parms* relative-y-scale) sv-136))
|
||||
(set! (-> *video-parms* relative-x-scale-reciprical) (/ 1.0 (-> *video-parms* relative-x-scale)))
|
||||
(set! (-> *video-parms* relative-y-scale-reciprical) (/ 1.0 sv-136))
|
||||
(set! sv-140 (-> str data))
|
||||
(set! sv-144 (-> gp-0 origin x))
|
||||
(set! sv-148 (-> gp-0 origin x))
|
||||
(set! sv-152 (+ (-> gp-0 origin x) (-> font-ctxt width)))
|
||||
(set! sv-156 (+ (-> gp-0 origin y) (-> font-ctxt height)))
|
||||
(set! sv-160 (* (get-string-length " " gp-0) (-> *video-parms* relative-x-scale)))
|
||||
(set! sv-164 (* (if (logtest? (-> gp-0 flags) (font-flags large))
|
||||
(the float line-height)
|
||||
14.0
|
||||
)
|
||||
sv-136
|
||||
(set! (-> gp-0 mat vector 0 x) (* (-> gp-0 mat vector 0 x) sv-136))
|
||||
(set! (-> gp-0 mat vector 1 y) (* (-> gp-0 mat vector 1 y) sv-136))
|
||||
(set! (-> *video-parms* relative-x-scale) (* (-> *video-parms* relative-x-scale) sv-136))
|
||||
(set! (-> *video-parms* relative-y-scale) (* (-> *video-parms* relative-y-scale) sv-136))
|
||||
(set! (-> *video-parms* relative-x-scale-reciprical) (/ 1.0 (-> *video-parms* relative-x-scale)))
|
||||
(set! (-> *video-parms* relative-y-scale-reciprical) (/ 1.0 sv-136))
|
||||
(let ((sv-140 (-> str data))
|
||||
(sv-144 (-> gp-0 origin x))
|
||||
(sv-148 (-> gp-0 origin x))
|
||||
(sv-152 (+ (-> gp-0 origin x) (-> font-ctxt width)))
|
||||
(sv-156 (+ (-> gp-0 origin y) (-> font-ctxt height)))
|
||||
(sv-160 (* (get-string-length " " gp-0) (-> *video-parms* relative-x-scale)))
|
||||
(sv-164 (* (if (logtest? (-> gp-0 flags) (font-flags large))
|
||||
(the float line-height)
|
||||
14.0
|
||||
)
|
||||
sv-136
|
||||
)
|
||||
)
|
||||
)
|
||||
(set! sv-168 0)
|
||||
(if (logtest? (-> gp-0 flags) (font-flags middle))
|
||||
(+! (-> gp-0 origin x) (/ (-> font-ctxt width) 2))
|
||||
)
|
||||
(set! sv-176 (the-as int (-> sv-140 0)))
|
||||
(set! sv-184 0)
|
||||
(set! sv-192 0)
|
||||
(set! sv-200 0)
|
||||
(set! sv-208 (the-as symbol #f))
|
||||
(set! sv-212 (the-as symbol #f))
|
||||
(set! (-> *game-text-line* data 0) (the-as uint 0))
|
||||
(while (or (not (and (zero? sv-176) (zero? sv-184) (zero? sv-192))) (>= sv-156 (-> gp-0 origin y)))
|
||||
(cond
|
||||
((= sv-176 32)
|
||||
(set! (-> *game-text-word* data sv-184) (the-as uint sv-176))
|
||||
(set! sv-184 (+ sv-184 1))
|
||||
(set! sv-208 #t)
|
||||
)
|
||||
((zero? sv-176)
|
||||
(if (zero? sv-184)
|
||||
(set! sv-212 #t)
|
||||
(set! sv-208 #t)
|
||||
)
|
||||
)
|
||||
(else
|
||||
(if (= sv-176 95)
|
||||
(set! sv-176 32)
|
||||
)
|
||||
(set! (-> *game-text-word* data sv-184) (the-as uint sv-176))
|
||||
(set! sv-184 (+ sv-184 1))
|
||||
)
|
||||
)
|
||||
(when (= sv-208 #t)
|
||||
(set! (-> *game-text-word* data sv-184) (the-as uint 0))
|
||||
(let* ((f30-1 sv-144)
|
||||
(f0-49 (* (get-string-length *game-text-word* gp-0) (-> *video-parms* relative-x-scale)))
|
||||
(f1-14 (+ f30-1 f0-49))
|
||||
)
|
||||
(if (= (-> *game-text-word* data (+ sv-184 -1)) 32)
|
||||
(set! f1-14 (- f1-14 sv-160))
|
||||
)
|
||||
(cond
|
||||
((< sv-152 f1-14)
|
||||
(set! sv-144 (+ sv-148 f0-49))
|
||||
(set! sv-212 #t)
|
||||
)
|
||||
(else
|
||||
(set! sv-144 (+ sv-144 f0-49))
|
||||
)
|
||||
(sv-168 0)
|
||||
)
|
||||
)
|
||||
)
|
||||
(when (= sv-212 #t)
|
||||
(when (>= sv-200 (the-as int (-> gp-0 start-line)))
|
||||
(let ((f30-2 (+ (-> gp-0 origin y) sv-164)))
|
||||
(when (>= sv-156 f30-2)
|
||||
(when (= (-> *game-text-line* data (+ sv-192 -1)) 32)
|
||||
(set! (-> *game-text-line* data (+ sv-192 -1)) (the-as uint 0))
|
||||
(when (and (= (-> *game-text-line* data (+ sv-192 -5)) 126) (= (-> *game-text-line* data (+ sv-192 -2)) 72))
|
||||
(set! (-> *game-text-line* data (+ sv-192 -5)) (the-as uint 0))
|
||||
0
|
||||
(if (logtest? (-> gp-0 flags) (font-flags middle))
|
||||
(+! (-> gp-0 origin x) (/ (-> font-ctxt width) 2))
|
||||
)
|
||||
(let ((sv-176 (the-as int (-> sv-140 0)))
|
||||
(sv-184 0)
|
||||
(sv-192 0)
|
||||
(sv-200 0)
|
||||
(sv-208 (the-as symbol #f))
|
||||
(sv-212 (the-as symbol #f))
|
||||
)
|
||||
(set! (-> *game-text-line* data 0) (the-as uint 0))
|
||||
(while (or (not (and (zero? sv-176) (zero? sv-184) (zero? sv-192))) (>= sv-156 (-> gp-0 origin y)))
|
||||
(set! sv-208 (cond
|
||||
((= sv-176 32)
|
||||
(set! (-> *game-text-word* data sv-184) (the-as uint sv-176))
|
||||
(+! sv-184 1)
|
||||
(set! sv-208 #t)
|
||||
sv-208
|
||||
)
|
||||
((zero? sv-176)
|
||||
(cond
|
||||
((zero? sv-184)
|
||||
(set! sv-212 #t)
|
||||
sv-208
|
||||
)
|
||||
(else
|
||||
#t
|
||||
)
|
||||
)
|
||||
)
|
||||
(else
|
||||
(if (= sv-176 95)
|
||||
(set! sv-176 32)
|
||||
)
|
||||
(set! (-> *game-text-word* data sv-184) (the-as uint sv-176))
|
||||
(+! sv-184 1)
|
||||
sv-208
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(when (and (= (-> *game-text-line* data (+ sv-192 -4)) 126) (= (-> *game-text-line* data (+ sv-192 -1)) 72))
|
||||
(set! (-> *game-text-line* data (+ sv-192 -4)) (the-as uint 0))
|
||||
0
|
||||
)
|
||||
(if (nonzero? (-> *game-text-line* data 0))
|
||||
(set! sv-168 (+ sv-168 1))
|
||||
)
|
||||
(when (not opaque)
|
||||
(let* ((s1-1 (-> *display* frames (-> *display* on-screen) frame global-buf))
|
||||
(s2-1 (-> s1-1 base))
|
||||
(when (= sv-208 #t)
|
||||
(set! (-> *game-text-word* data sv-184) (the-as uint 0))
|
||||
(let* ((f30-1 sv-144)
|
||||
(f0-49 (* (get-string-length *game-text-word* gp-0) (-> *video-parms* relative-x-scale)))
|
||||
(f1-14 (+ f30-1 f0-49))
|
||||
)
|
||||
(set-font-color-alpha (-> font-ctxt color) alpha)
|
||||
(draw-string *game-text-line* s1-1 gp-0)
|
||||
(set-font-color-alpha (-> font-ctxt color) 128)
|
||||
(set! (-> gp-0 color) (-> *font-work* last-color))
|
||||
(let ((a3-3 (-> s1-1 base)))
|
||||
(let ((v1-127 (the-as object (-> s1-1 base))))
|
||||
(set! (-> (the-as dma-packet v1-127) dma) (new 'static 'dma-tag :id (dma-tag-id next)))
|
||||
(set! (-> (the-as dma-packet v1-127) vif0) (new 'static 'vif-tag))
|
||||
(set! (-> (the-as dma-packet v1-127) vif1) (new 'static 'vif-tag))
|
||||
(set! (-> s1-1 base) (&+ (the-as pointer v1-127) 16))
|
||||
(if (= (-> *game-text-word* data (+ sv-184 -1)) 32)
|
||||
(set! f1-14 (- f1-14 sv-160))
|
||||
)
|
||||
(dma-bucket-insert-tag
|
||||
(-> *display* frames (-> *display* on-screen) frame bucket-group)
|
||||
(bucket-id debug)
|
||||
s2-1
|
||||
(the-as (pointer dma-tag) a3-3)
|
||||
)
|
||||
)
|
||||
(set! sv-212 (cond
|
||||
((< sv-152 f1-14)
|
||||
(set! sv-144 (+ sv-148 f0-49))
|
||||
#t
|
||||
)
|
||||
(else
|
||||
(+! sv-144 f0-49)
|
||||
sv-212
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(set! (-> gp-0 origin y) f30-2)
|
||||
(when (= sv-212 #t)
|
||||
(when (>= sv-200 (the-as int (-> gp-0 start-line)))
|
||||
(let ((f30-2 (+ (-> gp-0 origin y) sv-164)))
|
||||
(when (>= sv-156 f30-2)
|
||||
(when (= (-> *game-text-line* data (+ sv-192 -1)) 32)
|
||||
(set! (-> *game-text-line* data (+ sv-192 -1)) (the-as uint 0))
|
||||
(when (and (= (-> *game-text-line* data (+ sv-192 -5)) 126) (= (-> *game-text-line* data (+ sv-192 -2)) 72))
|
||||
(set! (-> *game-text-line* data (+ sv-192 -5)) (the-as uint 0))
|
||||
0
|
||||
)
|
||||
)
|
||||
)
|
||||
(when (and (= (-> *game-text-line* data (+ sv-192 -4)) 126) (= (-> *game-text-line* data (+ sv-192 -1)) 72))
|
||||
(set! (-> *game-text-line* data (+ sv-192 -4)) (the-as uint 0))
|
||||
0
|
||||
)
|
||||
(if (nonzero? (-> *game-text-line* data 0))
|
||||
(+! sv-168 1)
|
||||
)
|
||||
(when (not opaque)
|
||||
(let* ((s1-1 (-> *display* frames (-> *display* on-screen) frame global-buf))
|
||||
(s2-1 (-> s1-1 base))
|
||||
)
|
||||
(set-font-color-alpha (-> font-ctxt color) alpha)
|
||||
(draw-string *game-text-line* s1-1 gp-0)
|
||||
(set-font-color-alpha (-> font-ctxt color) 128)
|
||||
(set! (-> gp-0 color) (-> *font-work* last-color))
|
||||
(let ((a3-3 (-> s1-1 base)))
|
||||
(let ((v1-127 (the-as object (-> s1-1 base))))
|
||||
(set! (-> (the-as dma-packet v1-127) dma) (new 'static 'dma-tag :id (dma-tag-id next)))
|
||||
(set! (-> (the-as dma-packet v1-127) vif0) (new 'static 'vif-tag))
|
||||
(set! (-> (the-as dma-packet v1-127) vif1) (new 'static 'vif-tag))
|
||||
(set! (-> s1-1 base) (&+ (the-as pointer v1-127) 16))
|
||||
)
|
||||
(dma-bucket-insert-tag
|
||||
(-> *display* frames (-> *display* on-screen) frame bucket-group)
|
||||
(bucket-id debug)
|
||||
s2-1
|
||||
(the-as (pointer dma-tag) a3-3)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(set! (-> gp-0 origin y) f30-2)
|
||||
)
|
||||
)
|
||||
(+! sv-200 1)
|
||||
(set! (-> *game-text-line* data 0) (the-as uint 0))
|
||||
(set! sv-192 0)
|
||||
(set! sv-212 (the-as symbol #f))
|
||||
)
|
||||
(when (= sv-208 #t)
|
||||
(copy-charp<-charp (&-> *game-text-line* data sv-192) (-> *game-text-word* data))
|
||||
(+! sv-192 sv-184)
|
||||
(set! sv-184 0)
|
||||
(set! sv-208 (the-as symbol #f))
|
||||
)
|
||||
(when (nonzero? sv-176)
|
||||
(set! sv-140 (&-> sv-140 1))
|
||||
(set! sv-176 (the-as int (-> sv-140 0)))
|
||||
)
|
||||
)
|
||||
)
|
||||
(set! sv-200 (+ sv-200 1))
|
||||
(set! (-> *game-text-line* data 0) (the-as uint 0))
|
||||
(set! sv-192 0)
|
||||
(set! sv-212 (the-as symbol #f))
|
||||
)
|
||||
(when (= sv-208 #t)
|
||||
(copy-charp<-charp (&-> *game-text-line* data sv-192) (-> *game-text-word* data))
|
||||
(set! sv-192 (+ sv-192 sv-184))
|
||||
(set! sv-184 0)
|
||||
(set! sv-208 (the-as symbol #f))
|
||||
)
|
||||
(when (nonzero? sv-176)
|
||||
(set! sv-140 (&-> sv-140 1))
|
||||
(set! sv-176 (the-as int (-> sv-140 0)))
|
||||
(set! (-> gp-0 mat vector 0 x) sv-112)
|
||||
(set! (-> gp-0 mat vector 1 y) sv-116)
|
||||
(set! (-> *video-parms* relative-x-scale) sv-120)
|
||||
(set! (-> *video-parms* relative-y-scale) sv-124)
|
||||
(set! (-> *video-parms* relative-x-scale-reciprical) sv-128)
|
||||
(set! (-> *video-parms* relative-y-scale-reciprical) sv-132)
|
||||
(if (> sv-168 0)
|
||||
(* sv-164 (the float sv-168))
|
||||
0.0
|
||||
)
|
||||
)
|
||||
)
|
||||
(set! (-> gp-0 mat vector 0 x) sv-112)
|
||||
(set! (-> gp-0 mat vector 1 y) sv-116)
|
||||
(set! (-> *video-parms* relative-x-scale) sv-120)
|
||||
(set! (-> *video-parms* relative-y-scale) sv-124)
|
||||
(set! (-> *video-parms* relative-x-scale-reciprical) sv-128)
|
||||
(set! (-> *video-parms* relative-y-scale-reciprical) sv-132)
|
||||
(if (> sv-168 0)
|
||||
(* sv-164 (the float sv-168))
|
||||
0.0
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
+15
-13
@@ -78,7 +78,6 @@
|
||||
;; definition for function store-image
|
||||
;; INFO: Used lq/sq
|
||||
(defun store-image ((oddeven int))
|
||||
(local-vars (ptr-1 (pointer uint128)) (y-idx int) (y-idx-2 int))
|
||||
(let ((width 512)
|
||||
(height (-> *video-parms* screen-sy))
|
||||
(file (new 'debug 'file-stream "image.raw" 'write))
|
||||
@@ -95,23 +94,26 @@
|
||||
(gs-store-image packet (-> buff1 data))
|
||||
)
|
||||
(sync-path 0 0)
|
||||
(let ((ptr-0 (-> buff0 data)))
|
||||
(set! ptr-1 (-> buff1 data))
|
||||
(let ((ptr-0 (-> buff0 data))
|
||||
(ptr-1 (-> buff1 data))
|
||||
)
|
||||
(cond
|
||||
((zero? oddeven)
|
||||
(set! y-idx 0)
|
||||
(while (< y-idx height)
|
||||
(file-stream-write file (&+ ptr-0 (* y-idx (* width 4))) (the-as uint (* width 4)))
|
||||
(file-stream-write file (&+ ptr-1 (* y-idx (* width 4))) (the-as uint (* width 4)))
|
||||
(set! y-idx (+ y-idx 1))
|
||||
(let ((y-idx 0))
|
||||
(while (< y-idx height)
|
||||
(file-stream-write file (&+ ptr-0 (* y-idx (* width 4))) (the-as uint (* width 4)))
|
||||
(file-stream-write file (&+ ptr-1 (* y-idx (* width 4))) (the-as uint (* width 4)))
|
||||
(+! y-idx 1)
|
||||
)
|
||||
)
|
||||
)
|
||||
(else
|
||||
(set! y-idx-2 0)
|
||||
(while (< y-idx-2 height)
|
||||
(file-stream-write file (&+ ptr-1 (* y-idx-2 (* width 4))) (the-as uint (* width 4)))
|
||||
(file-stream-write file (&+ ptr-0 (* y-idx-2 (* width 4))) (the-as uint (* width 4)))
|
||||
(set! y-idx-2 (+ y-idx-2 1))
|
||||
(let ((y-idx-2 0))
|
||||
(while (< y-idx-2 height)
|
||||
(file-stream-write file (&+ ptr-1 (* y-idx-2 (* width 4))) (the-as uint (* width 4)))
|
||||
(file-stream-write file (&+ ptr-0 (* y-idx-2 (* width 4))) (the-as uint (* width 4)))
|
||||
(+! y-idx-2 1)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
+12
-12
@@ -43,7 +43,7 @@
|
||||
(let* ((total-normal-phase (- 1.0 total-easing-phase))
|
||||
(f0-10 out-param)
|
||||
(f1-12 (+ out-param total-normal-phase))
|
||||
(f2-5 (* f0-10 f0-10))
|
||||
(f2-5 (square f0-10))
|
||||
(f3-3 (+ (* 2.0 f0-10 (- f1-12 f0-10)) f2-5))
|
||||
(f4-3 (/ f0-10 (- 1.0 f1-12)))
|
||||
(y-end (+ (* (- 1.0 f1-12) (- 1.0 f1-12) f4-3) f3-3))
|
||||
@@ -99,9 +99,9 @@
|
||||
(default-out float)
|
||||
(default-in float)
|
||||
)
|
||||
(local-vars (sv-16 res-tag))
|
||||
(set! sv-16 (new 'static 'res-tag))
|
||||
(let ((v1-1 (res-lump-data (-> proc entity) 'sync pointer :tag-ptr (& sv-16))))
|
||||
(let* ((sv-16 (new 'static 'res-tag))
|
||||
(v1-1 (res-lump-data (-> proc entity) 'sync pointer :tag-ptr (& sv-16)))
|
||||
)
|
||||
(cond
|
||||
(v1-1
|
||||
(setup-params!
|
||||
@@ -130,9 +130,9 @@
|
||||
(default-out float)
|
||||
(default-in float)
|
||||
)
|
||||
(local-vars (sv-16 res-tag))
|
||||
(set! sv-16 (new 'static 'res-tag))
|
||||
(let ((v1-1 (res-lump-data (-> proc entity) 'sync pointer :tag-ptr (& sv-16))))
|
||||
(let* ((sv-16 (new 'static 'res-tag))
|
||||
(v1-1 (res-lump-data (-> proc entity) 'sync pointer :tag-ptr (& sv-16)))
|
||||
)
|
||||
(cond
|
||||
(v1-1
|
||||
(if (>= (-> sv-16 elt-count) (the-as uint 4))
|
||||
@@ -170,9 +170,9 @@
|
||||
(default-out float)
|
||||
(default-in float)
|
||||
)
|
||||
(local-vars (sv-16 res-tag))
|
||||
(set! sv-16 (new 'static 'res-tag))
|
||||
(let ((v1-1 (res-lump-data (-> proc entity) 'sync pointer :tag-ptr (& sv-16))))
|
||||
(let* ((sv-16 (new 'static 'res-tag))
|
||||
(v1-1 (res-lump-data (-> proc entity) 'sync pointer :tag-ptr (& sv-16)))
|
||||
)
|
||||
(cond
|
||||
(v1-1
|
||||
(if (>= (-> sv-16 elt-count) (the-as uint 4))
|
||||
@@ -317,14 +317,14 @@
|
||||
(let* ((tlo (-> this tlo))
|
||||
(eased-phase (/ (cond
|
||||
((< current-val tlo)
|
||||
(* current-val current-val)
|
||||
(square current-val)
|
||||
)
|
||||
((< current-val (-> this thi))
|
||||
(+ (* 2.0 tlo (- current-val tlo)) (-> this ylo))
|
||||
)
|
||||
(else
|
||||
(let ((f1-7 (- 1.0 current-val)))
|
||||
(- (-> this yend) (* f1-7 f1-7 (-> this m2)))
|
||||
(- (-> this yend) (* (square f1-7) (-> this m2)))
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
+1
-1
@@ -47,7 +47,7 @@
|
||||
;; ERROR: Unsupported inline assembly instruction kind - [jr t9]
|
||||
;; ERROR: Unsupported inline assembly instruction kind - [sw v0, 0(sp)]
|
||||
(defun enter-state ((arg0 object) (arg1 object) (arg2 object) (arg3 object) (arg4 object) (arg5 object))
|
||||
(local-vars (s7-0 none) (sp-0 int) (ra-0 int) (sv-0 none))
|
||||
(local-vars (s7-0 none) (sp-0 int) (ra-0 int))
|
||||
(with-pp
|
||||
(logclear! (-> pp mask) (process-mask sleep sleep-code))
|
||||
(logior! (-> pp mask) (process-mask going))
|
||||
|
||||
+21
-21
@@ -592,7 +592,6 @@
|
||||
(set-time! (-> self state-time))
|
||||
)
|
||||
:code (behavior ((arg0 symbol))
|
||||
(local-vars (sv-128 symbol))
|
||||
(ja-channel-set! 0)
|
||||
(clear-collide-with-as (-> self root))
|
||||
(ja-post)
|
||||
@@ -623,7 +622,7 @@
|
||||
(f1-2 (- (-> s5-1 z) (-> v1-14 z)))
|
||||
(f2-1 7372.8)
|
||||
(f30-0 5734.4)
|
||||
(f2-2 (/ f2-1 (sqrtf (+ (* f0-1 f0-1) (* f1-2 f1-2)))))
|
||||
(f2-2 (/ f2-1 (sqrtf (+ (square f0-1) (square f1-2)))))
|
||||
(f28-0 (* f0-1 f2-2))
|
||||
(f26-0 (* f1-2 f2-2))
|
||||
(s4-0 (new-stack-vector0))
|
||||
@@ -660,32 +659,33 @@
|
||||
)
|
||||
)
|
||||
(when (or (-> self link prev) (-> self link next))
|
||||
(set! sv-128 (the-as symbol #f))
|
||||
(apply-all (-> self link) actor-link-subtask-complete-hook (& sv-128))
|
||||
(when sv-128
|
||||
(suspend-for (seconds 0.5)
|
||||
)
|
||||
(let ((gp-1 (cond
|
||||
(arg0
|
||||
(the-as int #f)
|
||||
)
|
||||
(else
|
||||
(ambient-hint-spawn "gamcam10" (the-as vector #f) *entity-pool* 'camera)
|
||||
(ppointer->handle
|
||||
(process-spawn pov-camera (-> self root trans) *beachcam-sg* (-> self name) 0 #f '() :to self)
|
||||
(let ((sv-128 (the-as symbol #f)))
|
||||
(apply-all (-> self link) actor-link-subtask-complete-hook (& sv-128))
|
||||
(when sv-128
|
||||
(suspend-for (seconds 0.5)
|
||||
)
|
||||
(let ((gp-1 (cond
|
||||
(arg0
|
||||
(the-as int #f)
|
||||
)
|
||||
(else
|
||||
(ambient-hint-spawn "gamcam10" (the-as vector #f) *entity-pool* 'camera)
|
||||
(ppointer->handle
|
||||
(process-spawn pov-camera (-> self root trans) *beachcam-sg* (-> self name) 0 #f '() :to self)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(process-drawable-birth-fuel-cell (the-as entity #f) (the-as vector #f) #f)
|
||||
(while (handle->process (the-as handle gp-1))
|
||||
(suspend)
|
||||
)
|
||||
(process-drawable-birth-fuel-cell (the-as entity #f) (the-as vector #f) #f)
|
||||
(while (handle->process (the-as handle gp-1))
|
||||
)
|
||||
(while (-> self child)
|
||||
(suspend)
|
||||
)
|
||||
)
|
||||
(while (-> self child)
|
||||
(suspend)
|
||||
)
|
||||
)
|
||||
)
|
||||
(process-entity-status! self (entity-perm-status dead) #t)
|
||||
|
||||
+30
-44
@@ -869,51 +869,37 @@
|
||||
;; failed to figure out what this is:
|
||||
(defstate citb-robotboss-idle (citb-robotboss)
|
||||
:event (behavior ((proc process) (argc int) (message symbol) (block event-message-block))
|
||||
(local-vars (sv-96 int) (sv-112 int))
|
||||
(the-as
|
||||
symbol
|
||||
(cond
|
||||
((= message 'shield-off)
|
||||
(stop! (-> self sound))
|
||||
(if (-> self shield-on)
|
||||
(sound-play "robotcage-off")
|
||||
)
|
||||
(set! (-> self shield-on) #f)
|
||||
#f
|
||||
)
|
||||
((= message 'shield-on)
|
||||
(let ((v0-3 #t))
|
||||
(set! (-> self shield-on) v0-3)
|
||||
v0-3
|
||||
)
|
||||
)
|
||||
((= message 'die)
|
||||
(cleanup-for-death self)
|
||||
(the-as symbol (deactivate self))
|
||||
)
|
||||
((or (= message 'touch) (= message 'attack))
|
||||
(let ((s4-0 sound-play-by-name)
|
||||
(s3-0 (make-u128 #x7061 (the-as uint #x7a2d646c65696873)))
|
||||
(s2-0 (new-sound-id))
|
||||
(s1-0 1024)
|
||||
(s0-0 0)
|
||||
)
|
||||
(set! sv-96 0)
|
||||
(set! sv-112 1)
|
||||
(let ((t2-1 (target-pos 0)))
|
||||
(s4-0 (the-as sound-name s3-0) s2-0 s1-0 s0-0 sv-96 (the-as sound-group sv-112) (the-as symbol t2-1))
|
||||
)
|
||||
)
|
||||
(the-as symbol (send-event
|
||||
proc
|
||||
'shove
|
||||
(-> block param 0)
|
||||
(static-attack-info ((shove-up (meters 2)) (shove-back (meters 3))))
|
||||
(the-as symbol (cond
|
||||
((= message 'shield-off)
|
||||
(stop! (-> self sound))
|
||||
(if (-> self shield-on)
|
||||
(sound-play "robotcage-off")
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(set! (-> self shield-on) #f)
|
||||
#f
|
||||
)
|
||||
((= message 'shield-on)
|
||||
(let ((v0-3 #t))
|
||||
(set! (-> self shield-on) v0-3)
|
||||
v0-3
|
||||
)
|
||||
)
|
||||
((= message 'die)
|
||||
(cleanup-for-death self)
|
||||
(the-as symbol (deactivate self))
|
||||
)
|
||||
((or (= message 'touch) (= message 'attack))
|
||||
(sound-play "shield-zap" :position (the-as symbol (target-pos 0)))
|
||||
(the-as symbol (send-event
|
||||
proc
|
||||
'shove
|
||||
(-> block param 0)
|
||||
(static-attack-info ((shove-up (meters 2)) (shove-back (meters 3))))
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
:code (behavior ()
|
||||
(let ((gp-0 (manipy-spawn (-> self root trans) (-> self entity) *citb-robotboss-nose-sg* #f :to self)))
|
||||
|
||||
+1
-1
@@ -610,7 +610,7 @@
|
||||
(set! (-> v1-3 x) f0-13)
|
||||
(set! (-> v1-3 y) f1-4)
|
||||
(set! (-> v1-3 z) f2-0)
|
||||
(set! (-> v1-3 w) (sqrtf (- (- (- 1.0 (* f2-0 f2-0)) (* f1-4 f1-4)) (* f0-13 f0-13))))
|
||||
(set! (-> v1-3 w) (sqrtf (- (- (- 1.0 (square f2-0)) (square f1-4)) (square f0-13))))
|
||||
)
|
||||
(quaternion-rotate-y! (the-as quaternion s5-0) (the-as quaternion s5-0) (+ 16384.0 f30-0))
|
||||
(cond
|
||||
|
||||
+24
-34
@@ -166,9 +166,9 @@
|
||||
(set! (-> gp-0 quad) (-> self root trans quad))
|
||||
(set! (-> gp-0 y) (-> (the-as process-drawable (-> self parent 0)) root trans y))
|
||||
(loop
|
||||
(let ((f0-6 (fmax 0.0 (- 1.0 (* 0.0033333334 (the float (- (current-time) (-> self state-time))))))))
|
||||
(set! (-> self interp) (* f0-6 f0-6))
|
||||
)
|
||||
(set! (-> self interp)
|
||||
(square (fmax 0.0 (- 1.0 (* 0.0033333334 (the float (- (current-time) (-> self state-time)))))))
|
||||
)
|
||||
(set! (-> self root trans y)
|
||||
(- (-> (the-as process-drawable (-> self parent 0)) root trans y) (* 204800.0 (-> self interp)))
|
||||
)
|
||||
@@ -288,11 +288,7 @@
|
||||
(s4-0 (new 'stack-no-clear 'vector))
|
||||
)
|
||||
(set! (-> s3-0 x) (* 65536.0 (rand-vu)))
|
||||
(let ((f30-1 14563.556)
|
||||
(f0-2 (rand-vu-float-range -1.0 1.0))
|
||||
)
|
||||
(set! (-> s3-0 y) (* f30-1 (* f0-2 f0-2)))
|
||||
)
|
||||
(set! (-> s3-0 y) (* 14563.556 (square (rand-vu-float-range -1.0 1.0))))
|
||||
(vector-sincos! s5-0 s4-0 s3-0)
|
||||
(set! (-> this spin-axis x) (* (-> s4-0 y) (-> s4-0 x)))
|
||||
(set! (-> this spin-axis y) (-> s5-0 y))
|
||||
@@ -395,7 +391,7 @@
|
||||
;; INFO: Used lq/sq
|
||||
;; INFO: Return type mismatch int vs none.
|
||||
(defbehavior citb-drop-plat-spawn-children citb-drop-plat ()
|
||||
(local-vars (s0-0 int) (sv-48 process) (sv-64 int))
|
||||
(local-vars (s0-0 int))
|
||||
(let ((gp-0 (new 'stack-no-clear 'vector)))
|
||||
6
|
||||
0
|
||||
@@ -419,32 +415,26 @@
|
||||
(set! s0-0 (rand-vu-int-range 0 5))
|
||||
)
|
||||
(when (nonzero? s0-0)
|
||||
(set! sv-64 (the int (* 150.0 (rand-vu))))
|
||||
(set! sv-48 (get-process *default-dead-pool* drop-plat #x4000))
|
||||
(set! (-> self child-array data s1-0)
|
||||
(ppointer->handle (when sv-48
|
||||
(let ((t9-6 (method-of-type drop-plat activate)))
|
||||
(t9-6 (the-as drop-plat sv-48) self 'drop-plat (the-as pointer #x70004000))
|
||||
)
|
||||
(let ((t9-7 run-function-in-process)
|
||||
(a0-8 sv-48)
|
||||
(a1-5 drop-plat-init-by-other)
|
||||
(a2-4 gp-0)
|
||||
(t0-0 (-> self duration))
|
||||
)
|
||||
((the-as (function process function vector int int int none) t9-7)
|
||||
a0-8
|
||||
a1-5
|
||||
a2-4
|
||||
sv-64
|
||||
(the-as int t0-0)
|
||||
s0-0
|
||||
)
|
||||
)
|
||||
(-> sv-48 ppointer)
|
||||
)
|
||||
)
|
||||
(let ((sv-64 (the int (* 150.0 (rand-vu))))
|
||||
(sv-48 (get-process *default-dead-pool* drop-plat #x4000))
|
||||
)
|
||||
(set! (-> self child-array data s1-0)
|
||||
(ppointer->handle
|
||||
(when sv-48
|
||||
((method-of-type drop-plat activate) (the-as drop-plat sv-48) self 'drop-plat (the-as pointer #x70004000))
|
||||
((the-as (function process function vector int int int none) run-function-in-process)
|
||||
sv-48
|
||||
drop-plat-init-by-other
|
||||
gp-0
|
||||
sv-64
|
||||
(the-as int (-> self duration))
|
||||
s0-0
|
||||
)
|
||||
(-> sv-48 ppointer)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
+2
-2
@@ -345,7 +345,7 @@
|
||||
(set! (-> self root trans y) (-> self rise-height))
|
||||
(go-virtual citb-base-plat-active)
|
||||
)
|
||||
(set! (-> self root trans y) (lerp (-> self rise-height) (-> self idle-height) (* f30-0 f30-0)))
|
||||
(set! (-> self root trans y) (lerp (-> self rise-height) (-> self idle-height) (square f30-0)))
|
||||
)
|
||||
(let ((f0-12 (fmax 0.0 (fmin 1.0 (* 0.000012207031 (+ 409600.0 (-> self root trans y)))))))
|
||||
(set! (-> self draw color-mult x) f0-12)
|
||||
@@ -1120,7 +1120,7 @@
|
||||
(set! (-> self root trans y) (-> self rise-height))
|
||||
(go-virtual plat-button-idle)
|
||||
)
|
||||
(set! (-> self root trans y) (lerp (-> self rise-height) (-> self idle-height) (* f30-0 f30-0)))
|
||||
(set! (-> self root trans y) (lerp (-> self rise-height) (-> self idle-height) (square f30-0)))
|
||||
)
|
||||
(suspend)
|
||||
)
|
||||
|
||||
+3
-3
@@ -684,7 +684,6 @@ battlecontroller-default-event-handler
|
||||
;; INFO: Used lq/sq
|
||||
;; INFO: Return type mismatch int vs none.
|
||||
(defmethod battlecontroller-method-27 ((this battlecontroller))
|
||||
(local-vars (sv-16 res-tag))
|
||||
(set! (-> this fact)
|
||||
(new 'process 'fact-info this (pickup-type eco-pill-random) (-> *FACT-bank* default-pill-inc))
|
||||
)
|
||||
@@ -756,8 +755,9 @@ battlecontroller-default-event-handler
|
||||
(set! (-> this creature-type-array 0 type2) babak)
|
||||
(set! (-> this creature-type-array 0 percent) 1.0)
|
||||
(let ((s5-3 0))
|
||||
(set! sv-16 (new 'static 'res-tag))
|
||||
(let ((v1-49 (res-lump-data (-> this entity) 'lurker-type pointer :tag-ptr (& sv-16))))
|
||||
(let* ((sv-16 (new 'static 'res-tag))
|
||||
(v1-49 (res-lump-data (-> this entity) 'lurker-type pointer :tag-ptr (& sv-16)))
|
||||
)
|
||||
(when v1-49
|
||||
(dotimes (a0-22 (the-as int (-> sv-16 elt-count)))
|
||||
(let ((a1-15 (-> (the-as (pointer uint32) (&+ v1-49 (* a0-22 4))))))
|
||||
|
||||
+12
-9
@@ -170,16 +170,19 @@
|
||||
(arg5 symbol)
|
||||
(arg6 process-tree)
|
||||
)
|
||||
(local-vars (sv-16 process))
|
||||
(set! sv-16 (get-process *default-dead-pool* static-screen #x4000))
|
||||
(the-as
|
||||
(pointer static-screen)
|
||||
(when sv-16
|
||||
(let ((t9-1 (method-of-type static-screen activate)))
|
||||
(t9-1 (the-as static-screen sv-16) arg6 'static-screen (the-as pointer #x70004000))
|
||||
(let ((sv-16 (get-process *default-dead-pool* static-screen #x4000)))
|
||||
(the-as
|
||||
(pointer static-screen)
|
||||
(when sv-16
|
||||
((method-of-type static-screen activate)
|
||||
(the-as static-screen sv-16)
|
||||
arg6
|
||||
'static-screen
|
||||
(the-as pointer #x70004000)
|
||||
)
|
||||
(run-now-in-process sv-16 static-screen-init-by-other arg0 arg1 arg2 arg3 arg4 arg5)
|
||||
(-> sv-16 ppointer)
|
||||
)
|
||||
(run-now-in-process sv-16 static-screen-init-by-other arg0 arg1 arg2 arg3 arg4 arg5)
|
||||
(-> sv-16 ppointer)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
+26
-21
@@ -374,7 +374,6 @@
|
||||
(set-letterbox-frames (seconds 0.017))
|
||||
)
|
||||
:code (behavior ((arg0 basic) (arg1 handle))
|
||||
(local-vars (sv-144 process) (sv-160 vector) (sv-176 process) (sv-192 vector))
|
||||
(let ((a0-2 (get-task-control (game-task finalboss-movies))))
|
||||
(save-reminder a0-2 (logior (get-reminder a0-2 0) 2) 0)
|
||||
)
|
||||
@@ -393,17 +392,20 @@
|
||||
)
|
||||
(dotimes (s2-0 50)
|
||||
(when (handle->process (the-as handle arg0))
|
||||
(let ((s1-0 (handle->process (the-as handle arg0)))
|
||||
(s0-0 (+ s2-0 4))
|
||||
)
|
||||
(set! sv-160
|
||||
(vector<-cspace! (new 'stack-no-clear 'vector) (-> (the-as process-drawable s1-0) node-list data s0-0))
|
||||
)
|
||||
(set! sv-144 (get-process *default-dead-pool* powercellalt #x4000))
|
||||
(let* ((s1-0 (handle->process (the-as handle arg0)))
|
||||
(s0-0 (+ s2-0 4))
|
||||
(sv-160
|
||||
(vector<-cspace! (new 'stack-no-clear 'vector) (-> (the-as process-drawable s1-0) node-list data s0-0))
|
||||
)
|
||||
(sv-144 (get-process *default-dead-pool* powercellalt #x4000))
|
||||
)
|
||||
(when sv-144
|
||||
(let ((t9-16 (method-of-type powercellalt activate)))
|
||||
(t9-16 (the-as powercellalt sv-144) s1-0 'powercellalt (the-as pointer #x70004000))
|
||||
)
|
||||
((method-of-type powercellalt activate)
|
||||
(the-as powercellalt sv-144)
|
||||
s1-0
|
||||
'powercellalt
|
||||
(the-as pointer #x70004000)
|
||||
)
|
||||
(run-now-in-process sv-144 powercellalt-init-by-other s4-3 s3-1 sv-160 s0-0)
|
||||
(-> sv-144 ppointer)
|
||||
)
|
||||
@@ -412,17 +414,20 @@
|
||||
(suspend-for (seconds 0.1)
|
||||
)
|
||||
(when (handle->process arg1)
|
||||
(let ((s1-2 (handle->process arg1))
|
||||
(s0-1 (+ s2-0 4))
|
||||
)
|
||||
(set! sv-192
|
||||
(vector<-cspace! (new 'stack-no-clear 'vector) (-> (the-as process-drawable s1-2) node-list data s0-1))
|
||||
)
|
||||
(set! sv-176 (get-process *default-dead-pool* powercellalt #x4000))
|
||||
(let* ((s1-2 (handle->process arg1))
|
||||
(s0-1 (+ s2-0 4))
|
||||
(sv-192
|
||||
(vector<-cspace! (new 'stack-no-clear 'vector) (-> (the-as process-drawable s1-2) node-list data s0-1))
|
||||
)
|
||||
(sv-176 (get-process *default-dead-pool* powercellalt #x4000))
|
||||
)
|
||||
(when sv-176
|
||||
(let ((t9-20 (method-of-type powercellalt activate)))
|
||||
(t9-20 (the-as powercellalt sv-176) s1-2 'powercellalt (the-as pointer #x70004000))
|
||||
)
|
||||
((method-of-type powercellalt activate)
|
||||
(the-as powercellalt sv-176)
|
||||
s1-2
|
||||
'powercellalt
|
||||
(the-as pointer #x70004000)
|
||||
)
|
||||
(run-now-in-process sv-176 powercellalt-init-by-other s4-3 s3-1 sv-192 s0-1)
|
||||
(-> sv-176 ppointer)
|
||||
)
|
||||
|
||||
+31
-29
@@ -36,7 +36,7 @@
|
||||
(vector-flatten! s5-0 gp-0 (-> this axis))
|
||||
(vector-normalize! s5-0 (-> this radius-primary))
|
||||
(vector-! arg1 gp-0 s5-0)
|
||||
(< (vector-length-squared arg1) (* f30-0 f30-0))
|
||||
(< (vector-length-squared arg1) (square f30-0))
|
||||
)
|
||||
)
|
||||
|
||||
@@ -78,7 +78,6 @@
|
||||
;; INFO: Used lq/sq
|
||||
;; INFO: Return type mismatch int vs none.
|
||||
(defmethod torus-method-9 ((this torus) (arg0 vector))
|
||||
(local-vars (sv-256 int) (sv-272 int) (sv-288 int))
|
||||
(let ((s0-0 (new 'stack-no-clear 'vector))
|
||||
(s4-0 (new 'stack-no-clear 'vector))
|
||||
(s3-0 (new 'stack-no-clear 'vector))
|
||||
@@ -93,10 +92,11 @@
|
||||
(vector-cross! s4-0 s0-0 (-> this axis))
|
||||
(matrix-axis-angle! s2-0 s4-0 8192.0)
|
||||
(vector-float*! (-> s1-0 0) s0-0 (-> this radius-secondary))
|
||||
(set! sv-256 0)
|
||||
(while (< sv-256 7)
|
||||
(vector-matrix*! (-> s1-0 (+ sv-256 1)) (-> s1-0 sv-256) s2-0)
|
||||
(set! sv-256 (+ sv-256 1))
|
||||
(let ((sv-256 0))
|
||||
(while (< sv-256 7)
|
||||
(vector-matrix*! (-> s1-0 (+ sv-256 1)) (-> s1-0 sv-256) s2-0)
|
||||
(+! sv-256 1)
|
||||
)
|
||||
)
|
||||
(vector-float*! s0-0 s0-0 (-> this radius-primary))
|
||||
(dotimes (v1-21 8)
|
||||
@@ -104,22 +104,24 @@
|
||||
)
|
||||
(matrix-axis-angle! s2-0 (-> this axis) 4096.0)
|
||||
(dotimes (s0-1 16)
|
||||
(set! sv-272 0)
|
||||
(while (< sv-272 7)
|
||||
(vector+! s4-0 (-> s1-0 sv-272) (-> this origin))
|
||||
(vector+! s3-0 (-> s1-0 (+ sv-272 1)) (-> this origin))
|
||||
(camera-line s4-0 s3-0 (the-as vector4w arg0))
|
||||
(set! sv-272 (+ sv-272 1))
|
||||
(let ((sv-272 0))
|
||||
(while (< sv-272 7)
|
||||
(vector+! s4-0 (-> s1-0 sv-272) (-> this origin))
|
||||
(vector+! s3-0 (-> s1-0 (+ sv-272 1)) (-> this origin))
|
||||
(camera-line s4-0 s3-0 (the-as vector4w arg0))
|
||||
(+! sv-272 1)
|
||||
)
|
||||
)
|
||||
(vector+! s4-0 (-> s1-0 0) (-> this origin))
|
||||
(camera-line s4-0 s3-0 (the-as vector4w arg0))
|
||||
(set! sv-288 0)
|
||||
(while (< sv-288 8)
|
||||
(vector+! s4-0 (-> s1-0 sv-288) (-> this origin))
|
||||
(vector-matrix*! (-> s1-0 sv-288) (-> s1-0 sv-288) s2-0)
|
||||
(vector+! s3-0 (-> s1-0 sv-288) (-> this origin))
|
||||
(camera-line s4-0 s3-0 (the-as vector4w arg0))
|
||||
(set! sv-288 (+ sv-288 1))
|
||||
(let ((sv-288 0))
|
||||
(while (< sv-288 8)
|
||||
(vector+! s4-0 (-> s1-0 sv-288) (-> this origin))
|
||||
(vector-matrix*! (-> s1-0 sv-288) (-> s1-0 sv-288) s2-0)
|
||||
(vector+! s3-0 (-> s1-0 sv-288) (-> this origin))
|
||||
(camera-line s4-0 s3-0 (the-as vector4w arg0))
|
||||
(+! sv-288 1)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
@@ -194,7 +196,7 @@
|
||||
(let ((f0-6 (* -4.0 v1-2))
|
||||
(f3-1 (* 4.0 v1-2 (- (-> arg1 y) (-> arg0 y))))
|
||||
)
|
||||
(set! (-> self y-vel) (* 0.5 (- (sqrtf (- (* f0-6 f0-6) (* 4.0 f3-1))) f0-6)))
|
||||
(set! (-> self y-vel) (* 0.5 (- (sqrtf (- (square f0-6) (* 4.0 f3-1))) f0-6)))
|
||||
)
|
||||
(set! (-> self grav) (/ (- (* (-> self y-vel) (-> self y-vel))) (* 2.0 v1-2)))
|
||||
)
|
||||
@@ -802,21 +804,21 @@
|
||||
;; INFO: Used lq/sq
|
||||
;; INFO: Return type mismatch object vs none.
|
||||
(defbehavior redshot-init-by-other redshot ((arg0 vector) (arg1 vector) (arg2 float) (arg3 time-frame) (arg4 time-frame) (arg5 int))
|
||||
(local-vars (sv-16 collide-shape-prim-sphere))
|
||||
(let ((s0-0 (new 'process 'collide-shape-moving self (collide-list-enum usually-hit-by-player))))
|
||||
(set! (-> s0-0 dynam) (copy *standard-dynamics* 'process))
|
||||
(set! (-> s0-0 reaction) default-collision-reaction)
|
||||
(set! (-> s0-0 no-reaction)
|
||||
(the-as (function collide-shape-moving collide-shape-intersect vector vector none) nothing)
|
||||
)
|
||||
(set! sv-16 (new 'process 'collide-shape-prim-sphere s0-0 (the-as uint 0)))
|
||||
(set! (-> sv-16 prim-core collide-as) (collide-kind wall-object))
|
||||
(set! (-> sv-16 collide-with) (collide-kind target))
|
||||
(set! (-> sv-16 prim-core action) (collide-action solid))
|
||||
(set! (-> sv-16 prim-core offense) (collide-offense indestructible))
|
||||
(set! (-> sv-16 transform-index) 4)
|
||||
(set-vector! (-> sv-16 local-sphere) 0.0 0.0 0.0 12288.0)
|
||||
(set-root-prim! s0-0 sv-16)
|
||||
(let ((sv-16 (new 'process 'collide-shape-prim-sphere s0-0 (the-as uint 0))))
|
||||
(set! (-> sv-16 prim-core collide-as) (collide-kind wall-object))
|
||||
(set! (-> sv-16 collide-with) (collide-kind target))
|
||||
(set! (-> sv-16 prim-core action) (collide-action solid))
|
||||
(set! (-> sv-16 prim-core offense) (collide-offense indestructible))
|
||||
(set! (-> sv-16 transform-index) 4)
|
||||
(set-vector! (-> sv-16 local-sphere) 0.0 0.0 0.0 12288.0)
|
||||
(set-root-prim! s0-0 sv-16)
|
||||
)
|
||||
(set! (-> s0-0 nav-radius) (* 0.75 (-> s0-0 root-prim local-sphere w)))
|
||||
(backup-collide-with-as s0-0)
|
||||
(set! (-> self root) s0-0)
|
||||
|
||||
+29
-32
@@ -1393,9 +1393,9 @@
|
||||
;; INFO: Used lq/sq
|
||||
;; WARN: Stack slot load at 64 mismatch: defined as size 4, got size 16
|
||||
(defbehavior robotboss-redshot robotboss ((arg0 redshot-launch-info) (arg1 symbol))
|
||||
(local-vars (sv-32 redshot-launch-info) (sv-48 vector) (sv-64 float) (sv-80 time-frame) (sv-96 time-frame))
|
||||
(set! sv-32 arg0)
|
||||
(let ((s5-0 arg1))
|
||||
(let ((sv-32 arg0)
|
||||
(s5-0 arg1)
|
||||
)
|
||||
(+! (-> self children-spawned) 1)
|
||||
(let ((gp-0 (new 'stack-no-clear 'vector)))
|
||||
(vector<-cspace! gp-0 (joint-node robotboss-basic-lod0-jg red_ecoTip))
|
||||
@@ -1404,35 +1404,32 @@
|
||||
(let ((t9-2 (method-of-type redshot activate)))
|
||||
(t9-2 (the-as redshot s4-0) self 'redshot (the-as pointer #x70004000))
|
||||
)
|
||||
(let ((s3-0 run-function-in-process)
|
||||
(s2-0 s4-0)
|
||||
(s1-0 redshot-init-by-other)
|
||||
(s0-0 gp-0)
|
||||
)
|
||||
(set! sv-48 (-> sv-32 dest))
|
||||
(let ((f30-0 20480.0)
|
||||
(f28-0 12288.0)
|
||||
)
|
||||
(set! sv-64 (+ f30-0 (* f28-0 (rand-float-gen))))
|
||||
)
|
||||
(set! sv-80 (-> sv-32 flight-time))
|
||||
(set! sv-96 (-> sv-32 stall-time))
|
||||
(let* ((f30-1 300.0)
|
||||
(v1-19 (/ (the-as int (rand-uint31-gen *random-generator*)) 256))
|
||||
(v1-20 (the-as number (logior #x3f800000 v1-19)))
|
||||
(t3-0 (the int (* f30-1 (+ -1.0 (the-as float v1-20)))))
|
||||
)
|
||||
((the-as (function object object object object object object object object none) s3-0)
|
||||
s2-0
|
||||
s1-0
|
||||
s0-0
|
||||
sv-48
|
||||
sv-64
|
||||
sv-80
|
||||
sv-96
|
||||
t3-0
|
||||
)
|
||||
)
|
||||
(let* ((s3-0 run-function-in-process)
|
||||
(s2-0 s4-0)
|
||||
(s1-0 redshot-init-by-other)
|
||||
(s0-0 gp-0)
|
||||
(sv-48 (-> sv-32 dest))
|
||||
(f30-0 20480.0)
|
||||
(f28-0 12288.0)
|
||||
(v1-10 (/ (the-as int (rand-uint31-gen *random-generator*)) 256))
|
||||
(v1-11 (the-as number (logior #x3f800000 v1-10)))
|
||||
(sv-64 (+ f30-0 (* f28-0 (+ -1.0 (the-as float v1-11)))))
|
||||
(sv-80 (-> sv-32 flight-time))
|
||||
(sv-96 (-> sv-32 stall-time))
|
||||
(f30-1 300.0)
|
||||
(v1-19 (/ (the-as int (rand-uint31-gen *random-generator*)) 256))
|
||||
(v1-20 (the-as number (logior #x3f800000 v1-19)))
|
||||
)
|
||||
((the-as (function object object object object object object object object none) s3-0)
|
||||
s2-0
|
||||
s1-0
|
||||
s0-0
|
||||
sv-48
|
||||
sv-64
|
||||
sv-80
|
||||
sv-96
|
||||
(the int (* f30-1 (+ -1.0 (the-as float v1-20))))
|
||||
)
|
||||
)
|
||||
(-> s4-0 ppointer)
|
||||
)
|
||||
|
||||
+18
-32
@@ -712,7 +712,6 @@
|
||||
)
|
||||
)
|
||||
:code (behavior ()
|
||||
(local-vars (sv-32 int) (sv-48 int))
|
||||
(let* ((gp-0 (-> self change-event-from))
|
||||
(f28-0 (the-as float (-> (the-as periscope (-> gp-0 0)) tilt)))
|
||||
(f30-0 (the-as float (-> (the-as periscope (-> gp-0 0)) turn)))
|
||||
@@ -741,28 +740,15 @@
|
||||
)
|
||||
(set! (-> s5-0 y) (- (-> s5-0 y) (* 136.53334 (- f26-0))))
|
||||
(set! (-> s5-0 x) (- (-> s5-0 x) (* 136.53334 (- f0-0))))
|
||||
(cond
|
||||
((and (= f26-0 0.0) (= f0-0 0.0))
|
||||
(sound-stop (-> (the-as periscope (-> gp-0 0)) sound-id))
|
||||
)
|
||||
(else
|
||||
(let ((s4-0 sound-play-by-name)
|
||||
(s3-0 (make-u128 101 (the-as uint #x706f6373656c6574)))
|
||||
(s2-0 (-> (the-as periscope (-> gp-0 0)) sound-id))
|
||||
(s1-0 1024)
|
||||
(s0-0 0)
|
||||
)
|
||||
(set! sv-32 0)
|
||||
(set! sv-48 1)
|
||||
(let ((t2-0 (target-pos 0)))
|
||||
(the-as
|
||||
int
|
||||
(s4-0 (the-as sound-name s3-0) s2-0 s1-0 s0-0 sv-32 (the-as sound-group sv-48) (the-as symbol t2-0))
|
||||
)
|
||||
)
|
||||
)
|
||||
(if (and (= f26-0 0.0) (= f0-0 0.0))
|
||||
(sound-stop (-> (the-as periscope (-> gp-0 0)) sound-id))
|
||||
(the-as int (sound-play
|
||||
"telescope"
|
||||
:id (-> (the-as periscope (-> gp-0 0)) sound-id)
|
||||
:position (the-as symbol (target-pos 0))
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(cond
|
||||
@@ -1129,19 +1115,19 @@
|
||||
|
||||
;; definition for function periscope-test-task-complete?
|
||||
(defbehavior periscope-test-task-complete? periscope ()
|
||||
(local-vars (sv-16 symbol))
|
||||
(set! sv-16 #t)
|
||||
(apply-all
|
||||
(-> self link)
|
||||
(lambda ((arg0 entity-actor) (arg1 (pointer symbol)))
|
||||
(when (and (= (-> arg0 etype) periscope) (not (logtest? (-> arg0 extra perm status) (entity-perm-status complete))))
|
||||
(set! (-> arg1 0) #f)
|
||||
#t
|
||||
(let ((sv-16 #t))
|
||||
(apply-all
|
||||
(-> self link)
|
||||
(lambda ((arg0 entity-actor) (arg1 (pointer symbol)))
|
||||
(when (and (= (-> arg0 etype) periscope) (not (logtest? (-> arg0 extra perm status) (entity-perm-status complete))))
|
||||
(set! (-> arg1 0) #f)
|
||||
#t
|
||||
)
|
||||
)
|
||||
(& sv-16)
|
||||
)
|
||||
(& sv-16)
|
||||
sv-16
|
||||
)
|
||||
sv-16
|
||||
)
|
||||
|
||||
;; definition for function peri-beamcam-init-by-other
|
||||
|
||||
+13
-13
@@ -440,7 +440,6 @@
|
||||
;; INFO: Used lq/sq
|
||||
;; INFO: Return type mismatch object vs none.
|
||||
(defmethod init-from-entity! ((this lurkerm-piston) (arg0 entity-actor))
|
||||
(local-vars (sv-16 res-tag) (sv-32 res-tag))
|
||||
(logior! (-> this mask) (process-mask platform))
|
||||
(let ((s4-0 (new 'process 'collide-shape-moving this (collide-list-enum hit-by-player))))
|
||||
(set! (-> s4-0 dynam) (copy *standard-dynamics* 'process))
|
||||
@@ -468,21 +467,22 @@
|
||||
(logior! (-> this skel status) (janim-status inited))
|
||||
(update-transforms! (-> this root))
|
||||
(set! (-> this base quad) (-> this root trans quad))
|
||||
(let ((f30-0 (-> this base y)))
|
||||
(set! sv-16 (new 'static 'res-tag))
|
||||
(let ((v1-32 (res-lump-data arg0 'height-info pointer :tag-ptr (& sv-16))))
|
||||
(set! (-> this base y) (+ f30-0 (if (and v1-32 (> (the-as int (-> sv-16 elt-count)) 0))
|
||||
(-> (the-as (pointer float) v1-32))
|
||||
0.0
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(let* ((f30-0 (-> this base y))
|
||||
(sv-16 (new 'static 'res-tag))
|
||||
(v1-32 (res-lump-data arg0 'height-info pointer :tag-ptr (& sv-16)))
|
||||
)
|
||||
(set! (-> this base y) (+ f30-0 (if (and v1-32 (> (the-as int (-> sv-16 elt-count)) 0))
|
||||
(-> (the-as (pointer float) v1-32))
|
||||
0.0
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(let ((s4-1 (-> this height)))
|
||||
(set! (-> s4-1 x) 0.0)
|
||||
(set! sv-32 (new 'static 'res-tag))
|
||||
(let ((v1-35 (res-lump-data arg0 'height-info (pointer float) :tag-ptr (& sv-32))))
|
||||
(let* ((sv-32 (new 'static 'res-tag))
|
||||
(v1-35 (res-lump-data arg0 'height-info (pointer float) :tag-ptr (& sv-32)))
|
||||
)
|
||||
(set! (-> s4-1 y) (if (and v1-35 (< 1 (the-as int (-> sv-32 elt-count))))
|
||||
(-> v1-35 1)
|
||||
20480.0
|
||||
|
||||
+34
-36
@@ -114,7 +114,6 @@
|
||||
;; INFO: Used lq/sq
|
||||
;; INFO: Return type mismatch object vs none.
|
||||
(defmethod init-from-entity! ((this plat-flip) (arg0 entity-actor))
|
||||
(local-vars (sv-16 res-tag) (sv-32 res-tag) (sv-48 res-tag))
|
||||
(logior! (-> this mask) (process-mask platform))
|
||||
(let ((s4-0 (new 'process 'collide-shape-moving this (collide-list-enum hit-by-player))))
|
||||
(set! (-> s4-0 dynam) (copy *standard-dynamics* 'process))
|
||||
@@ -140,27 +139,27 @@
|
||||
(set! (-> this base-pos quad) (-> this root trans quad))
|
||||
(initialize-skeleton this *plat-flip-sg* '())
|
||||
(logior! (-> this skel status) (janim-status inited))
|
||||
(let ((f30-0 300.0))
|
||||
(set! sv-16 (new 'static 'res-tag))
|
||||
(let ((v1-28 (res-lump-data arg0 'delay pointer :tag-ptr (& sv-16))))
|
||||
(set! (-> this before-turn-down-time) (* f30-0 (if (and v1-28 (> (the-as int (-> sv-16 elt-count)) 0))
|
||||
(-> (the-as (pointer float) v1-28))
|
||||
2.0
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(let ((f30-1 300.0))
|
||||
(set! sv-32 (new 'static 'res-tag))
|
||||
(let ((v1-31 (res-lump-data arg0 'delay pointer :tag-ptr (& sv-32))))
|
||||
(set! (-> this before-turn-up-time) (* f30-1 (if (and v1-31 (< 1 (the-as int (-> sv-32 elt-count))))
|
||||
(-> (the-as (pointer float) v1-31) 1)
|
||||
0.2
|
||||
(let* ((f30-0 300.0)
|
||||
(sv-16 (new 'static 'res-tag))
|
||||
(v1-28 (res-lump-data arg0 'delay pointer :tag-ptr (& sv-16)))
|
||||
)
|
||||
(set! (-> this before-turn-down-time) (* f30-0 (if (and v1-28 (> (the-as int (-> sv-16 elt-count)) 0))
|
||||
(-> (the-as (pointer float) v1-28))
|
||||
2.0
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(let* ((f30-1 300.0)
|
||||
(sv-32 (new 'static 'res-tag))
|
||||
(v1-31 (res-lump-data arg0 'delay pointer :tag-ptr (& sv-32)))
|
||||
)
|
||||
(set! (-> this before-turn-up-time) (* f30-1 (if (and v1-31 (< 1 (the-as int (-> sv-32 elt-count))))
|
||||
(-> (the-as (pointer float) v1-31) 1)
|
||||
0.2
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(set! (-> this turn-down-time) 300.0)
|
||||
(set! (-> this turn-up-time) 300.0)
|
||||
@@ -170,22 +169,21 @@
|
||||
(-> this turn-up-time)
|
||||
)
|
||||
)
|
||||
(let ((s4-1 (-> this sync))
|
||||
(s3-1 (method-of-type sync-info setup-params!))
|
||||
(s2-0 (the int (-> this total-time)))
|
||||
)
|
||||
(set! sv-48 (new 'static 'res-tag))
|
||||
(let ((v1-35 (res-lump-data arg0 'sync-percent pointer :tag-ptr (& sv-48))))
|
||||
(s3-1
|
||||
s4-1
|
||||
(the-as uint s2-0)
|
||||
(if (and v1-35 (> (the-as int (-> sv-48 elt-count)) 0))
|
||||
(-> (the-as (pointer float) v1-35) 0)
|
||||
0.0
|
||||
)
|
||||
0.15
|
||||
0.15
|
||||
)
|
||||
(let* ((s4-1 (-> this sync))
|
||||
(s3-1 (method-of-type sync-info setup-params!))
|
||||
(s2-0 (the int (-> this total-time)))
|
||||
(sv-48 (new 'static 'res-tag))
|
||||
(v1-35 (res-lump-data arg0 'sync-percent pointer :tag-ptr (& sv-48)))
|
||||
)
|
||||
(s3-1
|
||||
s4-1
|
||||
(the-as uint s2-0)
|
||||
(if (and v1-35 (> (the-as int (-> sv-48 elt-count)) 0))
|
||||
(-> (the-as (pointer float) v1-35) 0)
|
||||
0.0
|
||||
)
|
||||
0.15
|
||||
0.15
|
||||
)
|
||||
)
|
||||
(update-transforms! (-> this root))
|
||||
|
||||
+3
-3
@@ -776,7 +776,6 @@
|
||||
;; INFO: Used lq/sq
|
||||
;; INFO: Return type mismatch object vs none.
|
||||
(defmethod init-from-entity! ((this darkecobarrel) (arg0 entity-actor))
|
||||
(local-vars (sv-16 res-tag))
|
||||
(set! (-> this root) (the-as collide-shape-moving (new 'process 'trsqv)))
|
||||
(darkecobarrel-base-init arg0)
|
||||
(set! (-> this sound)
|
||||
@@ -784,8 +783,9 @@
|
||||
)
|
||||
(logior! (-> this draw status) (draw-status hidden))
|
||||
(set! (-> this speed) (/ 300.0 (res-lump-float (-> this entity) 'speed :default 61440.0)))
|
||||
(set! sv-16 (new 'static 'res-tag))
|
||||
(let ((s5-1 (res-lump-data arg0 'delay pointer :tag-ptr (& sv-16))))
|
||||
(let* ((sv-16 (new 'static 'res-tag))
|
||||
(s5-1 (res-lump-data arg0 'delay pointer :tag-ptr (& sv-16)))
|
||||
)
|
||||
(cond
|
||||
(s5-1
|
||||
(set! (-> this spawn-array) (new 'process 'boxed-array time-frame (the-as int (-> sv-16 elt-count))))
|
||||
|
||||
+12
-12
@@ -236,7 +236,6 @@
|
||||
;; definition for function driller-lurker-default-event-handler
|
||||
;; INFO: Used lq/sq
|
||||
(defbehavior driller-lurker-default-event-handler driller-lurker ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block))
|
||||
(local-vars (sv-96 collide-shape-prim))
|
||||
(cond
|
||||
((= arg2 'attack)
|
||||
(cond
|
||||
@@ -269,15 +268,16 @@
|
||||
(s0-0 (-> s1-0 head))
|
||||
)
|
||||
(while s0-0
|
||||
(set! sv-96 (get-touched-prim s0-0 (-> self root-overeride) s1-0))
|
||||
(if (and (logtest? (-> (get-touched-prim s0-0 (-> s4-0 control) s1-0) prim-core action) (collide-action solid))
|
||||
(logtest? (-> sv-96 prim-id) 1)
|
||||
)
|
||||
(set! s2-0 #t)
|
||||
)
|
||||
(if (logtest? (-> sv-96 prim-id) 2)
|
||||
(set! s3-0 #t)
|
||||
)
|
||||
(let ((sv-96 (get-touched-prim s0-0 (-> self root-overeride) s1-0)))
|
||||
(if (and (logtest? (-> (get-touched-prim s0-0 (-> s4-0 control) s1-0) prim-core action) (collide-action solid))
|
||||
(logtest? (-> sv-96 prim-id) 1)
|
||||
)
|
||||
(set! s2-0 #t)
|
||||
)
|
||||
(if (logtest? (-> sv-96 prim-id) 2)
|
||||
(set! s3-0 #t)
|
||||
)
|
||||
)
|
||||
(set! s0-0 (-> s0-0 next))
|
||||
)
|
||||
)
|
||||
@@ -1004,7 +1004,6 @@
|
||||
;; INFO: Used lq/sq
|
||||
;; INFO: Return type mismatch object vs none.
|
||||
(defmethod init-from-entity! ((this driller-lurker) (arg0 entity-actor))
|
||||
(local-vars (sv-16 res-tag))
|
||||
(set! (-> this hit-player?) #f)
|
||||
(set! (-> this played-drill-sound?) #f)
|
||||
(set! (-> this hit-player-time) 0)
|
||||
@@ -1109,7 +1108,8 @@
|
||||
(set! (-> this path-speed) 15360.0)
|
||||
(set! (-> this targ-path-speed) 15360.0)
|
||||
(set! (-> this up-blend) 0.0)
|
||||
(set! sv-16 (new 'static 'res-tag))
|
||||
(let ((sv-16 (new 'static 'res-tag)))
|
||||
)
|
||||
(let ((v1-91
|
||||
(res-lump-data
|
||||
arg0
|
||||
|
||||
+36
-36
@@ -479,7 +479,6 @@
|
||||
;; INFO: Used lq/sq
|
||||
;; INFO: Return type mismatch int vs none.
|
||||
(defmethod gnawer-method-24 ((this gnawer))
|
||||
(local-vars (sv-48 vector) (sv-64 vector))
|
||||
(let ((s5-0 0)
|
||||
(s4-0 0)
|
||||
)
|
||||
@@ -496,15 +495,17 @@
|
||||
(set! s0-0 (mod (+ s1-0 1) s3-0))
|
||||
)
|
||||
)
|
||||
(set! sv-48 (new 'stack-no-clear 'vector))
|
||||
(set! sv-64 (new 'stack-no-clear 'vector))
|
||||
(eval-path-curve-div! (-> this path) sv-48 (the float s1-0) 'interp)
|
||||
(eval-path-curve-div! (-> this path) sv-64 (the float s0-0) 'interp)
|
||||
(let ((f0-4 (vector-vector-distance sv-48 sv-64)))
|
||||
(when (< f30-0 f0-4)
|
||||
(set! f30-0 f0-4)
|
||||
(set! s5-0 s1-0)
|
||||
(set! s4-0 s0-0)
|
||||
(let ((sv-48 (new 'stack-no-clear 'vector))
|
||||
(sv-64 (new 'stack-no-clear 'vector))
|
||||
)
|
||||
(eval-path-curve-div! (-> this path) sv-48 (the float s1-0) 'interp)
|
||||
(eval-path-curve-div! (-> this path) sv-64 (the float s0-0) 'interp)
|
||||
(let ((f0-4 (vector-vector-distance sv-48 sv-64)))
|
||||
(when (< f30-0 f0-4)
|
||||
(set! f30-0 f0-4)
|
||||
(set! s5-0 s1-0)
|
||||
(set! s4-0 s0-0)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
@@ -565,7 +566,7 @@
|
||||
)
|
||||
(set-vector! (-> this route surface-dir) f30-5 f28-0 0.0 1.0)
|
||||
(vector-normalize! (-> this route surface-dir) 1.0)
|
||||
(let ((f0-25 (sqrtf (+ (* f30-5 f30-5) (* f28-0 f28-0)))))
|
||||
(let ((f0-25 (sqrtf (+ (square f30-5) (square f28-0)))))
|
||||
(set! (-> this route surface-dist) f0-25)
|
||||
(set! (-> this route total-dist) (+ 20480.0 f0-25))
|
||||
)
|
||||
@@ -620,7 +621,7 @@
|
||||
(let* ((f0-10 (- (-> s4-0 max x) (-> this root trans x)))
|
||||
(f1-12 (- (-> s4-0 max y) (-> this root trans y)))
|
||||
(f2-7 (- (-> s4-0 max z) (-> this root trans z)))
|
||||
(f0-14 (sqrtf (+ (* f0-10 f0-10) (* f1-12 f1-12) (* f2-7 f2-7))))
|
||||
(f0-14 (sqrtf (+ (square f0-10) (square f1-12) (square f2-7))))
|
||||
(a0-3 (-> this draw bounds))
|
||||
(v1-21 (-> this root root-prim))
|
||||
(f0-15 (+ 12288.0 f0-14))
|
||||
@@ -837,7 +838,6 @@
|
||||
;; definition for method 30 of type gnawer
|
||||
;; INFO: Used lq/sq
|
||||
(defmethod gnawer-method-30 ((this gnawer) (arg0 process-drawable))
|
||||
(local-vars (sv-48 vector))
|
||||
(let ((gp-0 (-> this entity extra perm)))
|
||||
(logior! (-> gp-0 status) (entity-perm-status user-set-from-cstage))
|
||||
(let ((s5-0 (-> gp-0 user-uint16 0))
|
||||
@@ -848,17 +848,15 @@
|
||||
)
|
||||
(dotimes (s0-0 s1-0)
|
||||
(when (logtest? (ash 1 s0-0) s5-0)
|
||||
(let ((a2-0 (new 'stack-no-clear 'vector)))
|
||||
(set! sv-48 (new 'stack-no-clear 'vector))
|
||||
(let ((a2-0 (new 'stack-no-clear 'vector))
|
||||
(sv-48 (new 'stack-no-clear 'vector))
|
||||
)
|
||||
(gnawer-method-29 this s0-0 a2-0 sv-48)
|
||||
)
|
||||
(let* ((t9-1 vector-vector-xz-distance)
|
||||
(a1-2 (-> arg0 root trans))
|
||||
(f0-0 (t9-1 sv-48 a1-2))
|
||||
)
|
||||
(when (or (< s2-0 0) (< f0-0 f30-0))
|
||||
(set! s2-0 s0-0)
|
||||
(set! f30-0 f0-0)
|
||||
(let ((f0-0 (vector-vector-xz-distance sv-48 (-> arg0 root trans))))
|
||||
(when (or (< s2-0 0) (< f0-0 f30-0))
|
||||
(set! s2-0 s0-0)
|
||||
(set! f30-0 f0-0)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
@@ -1180,7 +1178,6 @@
|
||||
(spool-push *art-control* "maincavecam-gnawer-fuel-cell" 0 self -1.0)
|
||||
)
|
||||
:code (behavior ()
|
||||
(local-vars (sv-128 symbol))
|
||||
(clear-collide-with-as (-> self root))
|
||||
(set! (-> self skel postbind-function) #f)
|
||||
(ja-channel-set! 0)
|
||||
@@ -1218,11 +1215,12 @@
|
||||
(suspend)
|
||||
)
|
||||
)
|
||||
(set! sv-128 (the-as symbol #f))
|
||||
(apply-all (-> self link) actor-link-subtask-complete-hook (& sv-128))
|
||||
(when sv-128
|
||||
(save-reminder (get-task-control (game-task cave-gnawers)) (-> self gnawer-id) 3)
|
||||
(go gnawer-give-fuel-cell)
|
||||
(let ((sv-128 (the-as symbol #f)))
|
||||
(apply-all (-> self link) actor-link-subtask-complete-hook (& sv-128))
|
||||
(when sv-128
|
||||
(save-reminder (get-task-control (game-task cave-gnawers)) (-> self gnawer-id) 3)
|
||||
(go gnawer-give-fuel-cell)
|
||||
)
|
||||
)
|
||||
(set! (-> self trans-hook) #f)
|
||||
(process-entity-status! self (entity-perm-status bit-3) #f)
|
||||
@@ -1409,7 +1407,6 @@
|
||||
;; INFO: Used lq/sq
|
||||
;; INFO: Return type mismatch object vs none.
|
||||
(defmethod init-from-entity! ((this gnawer) (arg0 entity-actor))
|
||||
(local-vars (sv-16 res-tag) (sv-32 res-tag) (sv-48 res-tag))
|
||||
(set! (-> this hidden?) #f)
|
||||
(set! (-> this show-damage?) #f)
|
||||
(set! (-> this hit-points) 6)
|
||||
@@ -1501,8 +1498,9 @@
|
||||
(quaternion-rotate-y! (-> this root quat) (-> this root quat) f0-40)
|
||||
)
|
||||
(+! (-> this root trans y) -2048.0)
|
||||
(set! sv-16 (new 'static 'res-tag))
|
||||
(let ((v1-81 (res-lump-data arg0 'trans-offset (pointer float) :tag-ptr (& sv-16))))
|
||||
(let* ((sv-16 (new 'static 'res-tag))
|
||||
(v1-81 (res-lump-data arg0 'trans-offset (pointer float) :tag-ptr (& sv-16)))
|
||||
)
|
||||
(when v1-81
|
||||
(+! (-> this root trans x) (-> v1-81 0))
|
||||
(+! (-> this root trans y) (-> v1-81 1))
|
||||
@@ -1517,8 +1515,9 @@
|
||||
(set! (-> this part2) (create-launch-control group-gnawer-crumbs this))
|
||||
(set! (-> this total-money) 0)
|
||||
(set! (-> this money-mask) (the-as uint 0))
|
||||
(set! sv-32 (new 'static 'res-tag))
|
||||
(let ((v1-96 (res-lump-data arg0 'extra-count (pointer int32) :tag-ptr (& sv-32))))
|
||||
(let* ((sv-32 (new 'static 'res-tag))
|
||||
(v1-96 (res-lump-data arg0 'extra-count (pointer int32) :tag-ptr (& sv-32)))
|
||||
)
|
||||
(when v1-96
|
||||
(case (-> v1-96 0)
|
||||
((5)
|
||||
@@ -1528,8 +1527,9 @@
|
||||
)
|
||||
)
|
||||
(when (> (-> this total-money) 0)
|
||||
(set! sv-48 (new 'static 'res-tag))
|
||||
(let ((a0-49 (res-lump-data arg0 'gnawer (pointer int32) :tag-ptr (& sv-48))))
|
||||
(let* ((sv-48 (new 'static 'res-tag))
|
||||
(a0-49 (res-lump-data arg0 'gnawer (pointer int32) :tag-ptr (& sv-48)))
|
||||
)
|
||||
(cond
|
||||
(a0-49
|
||||
(let ((v1-100 0))
|
||||
|
||||
+39
-39
@@ -558,7 +558,6 @@
|
||||
;; INFO: Used lq/sq
|
||||
;; INFO: Return type mismatch object vs none.
|
||||
(defmethod init-from-entity! ((this caveflamepots) (arg0 entity-actor))
|
||||
(local-vars (sv-16 res-tag) (sv-32 res-tag) (sv-48 res-tag))
|
||||
(set! (-> this was-deadly?) #f)
|
||||
(set! (-> this should-play-sound?) #f)
|
||||
(set! (-> this shove-up) (res-lump-float arg0 'shove :default 8192.0))
|
||||
@@ -643,43 +642,43 @@
|
||||
)
|
||||
)
|
||||
(update-transforms! (-> this root))
|
||||
(let ((f30-1 300.0))
|
||||
(set! sv-16 (new 'static 'res-tag))
|
||||
(let ((v1-70 (res-lump-data arg0 'cycle-speed (pointer float) :tag-ptr (& sv-16))))
|
||||
(set! (-> this cycle-speed) (the int (* f30-1 (if (and v1-70 (> (the-as int (-> sv-16 elt-count)) 0))
|
||||
(-> v1-70 0)
|
||||
4.0
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(let ((f30-2 (the float (-> this cycle-speed))))
|
||||
(set! sv-32 (new 'static 'res-tag))
|
||||
(let ((v1-74 (res-lump-data arg0 'cycle-speed (pointer float) :tag-ptr (& sv-32))))
|
||||
(set! (-> this cycle-offset)
|
||||
(the-as uint (the int (* f30-2 (if (and v1-74 (< 1 (the-as int (-> sv-32 elt-count))))
|
||||
(-> v1-74 1)
|
||||
0.0
|
||||
)
|
||||
(let* ((f30-1 300.0)
|
||||
(sv-16 (new 'static 'res-tag))
|
||||
(v1-70 (res-lump-data arg0 'cycle-speed (pointer float) :tag-ptr (& sv-16)))
|
||||
)
|
||||
(set! (-> this cycle-speed) (the int (* f30-1 (if (and v1-70 (> (the-as int (-> sv-16 elt-count)) 0))
|
||||
(-> v1-70 0)
|
||||
4.0
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(let ((f30-3 300.0))
|
||||
(set! sv-48 (new 'static 'res-tag))
|
||||
(let ((v1-77 (res-lump-data arg0 'cycle-speed (pointer float) :tag-ptr (& sv-48))))
|
||||
(set! (-> this cycle-pause) (the int (* f30-3 (if (and v1-77 (< 2 (the-as int (-> sv-48 elt-count))))
|
||||
(-> v1-77 2)
|
||||
2.0
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(let* ((f30-2 (the float (-> this cycle-speed)))
|
||||
(sv-32 (new 'static 'res-tag))
|
||||
(v1-74 (res-lump-data arg0 'cycle-speed (pointer float) :tag-ptr (& sv-32)))
|
||||
)
|
||||
(set! (-> this cycle-offset)
|
||||
(the-as uint (the int (* f30-2 (if (and v1-74 (< 1 (the-as int (-> sv-32 elt-count))))
|
||||
(-> v1-74 1)
|
||||
0.0
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(let* ((f30-3 300.0)
|
||||
(sv-48 (new 'static 'res-tag))
|
||||
(v1-77 (res-lump-data arg0 'cycle-speed (pointer float) :tag-ptr (& sv-48)))
|
||||
)
|
||||
(set! (-> this cycle-pause) (the int (* f30-3 (if (and v1-77 (< 2 (the-as int (-> sv-48 elt-count))))
|
||||
(-> v1-77 2)
|
||||
2.0
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(go caveflamepots-active)
|
||||
(none)
|
||||
@@ -1203,7 +1202,7 @@
|
||||
;; INFO: Used lq/sq
|
||||
;; INFO: Return type mismatch object vs none.
|
||||
(defmethod init-from-entity! ((this caveelevator) (arg0 entity-actor))
|
||||
(local-vars (v1-43 int) (sv-16 res-tag))
|
||||
(local-vars (v1-43 int))
|
||||
(set! (-> this prev-frame-num) 10000.0)
|
||||
(set! (-> this last-update-bounce-time) 0)
|
||||
(logior! (-> this mask) (process-mask platform))
|
||||
@@ -1231,8 +1230,9 @@
|
||||
(initialize-skeleton this *caveelevator-sg* '())
|
||||
(logior! (-> this skel status) (janim-status inited))
|
||||
(set! (-> this skel postbind-function) caveelevator-joint-callback)
|
||||
(set! sv-16 (new 'static 'res-tag))
|
||||
(let ((v1-28 (res-lump-data arg0 'trans-offset (pointer float) :tag-ptr (& sv-16))))
|
||||
(let* ((sv-16 (new 'static 'res-tag))
|
||||
(v1-28 (res-lump-data arg0 'trans-offset (pointer float) :tag-ptr (& sv-16)))
|
||||
)
|
||||
(when v1-28
|
||||
(+! (-> this root trans x) (-> v1-28 0))
|
||||
(+! (-> this root trans y) (-> v1-28 1))
|
||||
|
||||
+18
-21
@@ -506,7 +506,6 @@
|
||||
;; definition for method 21 of type mother-spider
|
||||
;; INFO: Used lq/sq
|
||||
(defmethod mother-spider-method-21 ((this mother-spider) (arg0 vector) (arg1 float) (arg2 symbol))
|
||||
(local-vars (sv-112 process) (sv-128 vector) (sv-144 vector))
|
||||
(let ((f30-0 (vector-length (-> this swing-pos))))
|
||||
(when (< 0.0 f30-0)
|
||||
(let ((s1-0 (new 'stack-no-clear 'vector))
|
||||
@@ -543,9 +542,10 @@
|
||||
(logior! (-> this leg-socket-part-mask) (ash 1 s4-1))
|
||||
(set-time! (-> this leg-socket-part-time s4-1))
|
||||
(let ((s1-1 (-> *mother-spider-leg-infos* s4-1)))
|
||||
(let ((s0-0 (new 'stack-no-clear 'vector)))
|
||||
(set! sv-128 (new 'stack-no-clear 'vector))
|
||||
(set! sv-144 (new 'stack-no-clear 'vector))
|
||||
(let ((s0-0 (new 'stack-no-clear 'vector))
|
||||
(sv-128 (new 'stack-no-clear 'vector))
|
||||
(sv-144 (new 'stack-no-clear 'vector))
|
||||
)
|
||||
(vector<-cspace! s0-0 (-> this node-list data (-> s1-1 joint-index0)))
|
||||
(vector<-cspace! sv-128 (-> this node-list data (-> s1-1 joint-index1)))
|
||||
(vector-! sv-128 sv-128 s0-0)
|
||||
@@ -554,13 +554,17 @@
|
||||
(vector-normalize! sv-144 1.0)
|
||||
(+! (-> sv-144 y) (rand-vu-float-range 0.0 0.3))
|
||||
(vector-normalize! sv-144 1.0)
|
||||
(set! sv-112 (get-process *default-dead-pool* mother-spider-leg #x4000))
|
||||
(when sv-112
|
||||
(let ((t9-15 (method-of-type mother-spider-leg activate)))
|
||||
(t9-15 (the-as mother-spider-leg sv-112) this 'mother-spider-leg (the-as pointer #x70004000))
|
||||
(let ((sv-112 (get-process *default-dead-pool* mother-spider-leg #x4000)))
|
||||
(when sv-112
|
||||
((method-of-type mother-spider-leg activate)
|
||||
(the-as mother-spider-leg sv-112)
|
||||
this
|
||||
'mother-spider-leg
|
||||
(the-as pointer #x70004000)
|
||||
)
|
||||
(run-now-in-process sv-112 mother-spider-leg-init-by-other this s0-0 sv-128 sv-144)
|
||||
(-> sv-112 ppointer)
|
||||
)
|
||||
(run-now-in-process sv-112 mother-spider-leg-init-by-other this s0-0 sv-128 sv-144)
|
||||
(-> sv-112 ppointer)
|
||||
)
|
||||
)
|
||||
(let ((v1-43 (-> (the-as collide-shape-prim-group s3-1) prims (-> s1-1 cprim-index))))
|
||||
@@ -1640,7 +1644,6 @@
|
||||
;; INFO: Used lq/sq
|
||||
;; INFO: Return type mismatch object vs none.
|
||||
(defmethod init-from-entity! ((this mother-spider) (arg0 entity-actor))
|
||||
(local-vars (sv-16 res-tag) (sv-64 vector))
|
||||
(set! (-> this baby-count) 0)
|
||||
(set! (-> this spit-counter) 0)
|
||||
(set! (-> this leg-socket-part-mask) 0)
|
||||
@@ -1781,8 +1784,9 @@
|
||||
(set! (-> this max-swing-radius) 73728.0)
|
||||
(set! (-> this max-baby-count) 4)
|
||||
(let ((s4-1 #f))
|
||||
(set! sv-16 (new 'static 'res-tag))
|
||||
(let ((v0-31 (res-lump-data arg0 'mother-spider pointer :tag-ptr (& sv-16))))
|
||||
(let* ((sv-16 (new 'static 'res-tag))
|
||||
(v0-31 (res-lump-data arg0 'mother-spider pointer :tag-ptr (& sv-16)))
|
||||
)
|
||||
(cond
|
||||
(v0-31
|
||||
(+! (-> this thread-min-trans y) (-> (the-as (pointer float) v0-31) 0))
|
||||
@@ -1849,14 +1853,7 @@
|
||||
(eval-path-curve-div! (-> this path) s4-2 (the float s2-9) 'interp)
|
||||
(vector-! s3-1 (target-pos 0) s4-2)
|
||||
(set! (-> s3-1 y) 0.0)
|
||||
(let ((s1-2 vector-rotate-around-y!)
|
||||
(s0-0 s3-1)
|
||||
)
|
||||
(set! sv-64 s3-1)
|
||||
(let ((a2-21 (rand-vu-float-range -7281.778 7281.778)))
|
||||
(s1-2 s0-0 sv-64 a2-21)
|
||||
)
|
||||
)
|
||||
(vector-rotate-around-y! s3-1 s3-1 (rand-vu-float-range -7281.778 7281.778))
|
||||
(vector-normalize! s3-1 1.0)
|
||||
(spawn-child this s4-2 s3-1 #f)
|
||||
)
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user