;;-*-Lisp-*- (in-package goal) ;; name: tippy.gc ;; name in dgo: tippy ;; dgos: GAME, COMMON, L1 ;; definition of type tippy (deftype tippy (structure) ((axis vector :inline :offset-assert 0) (angle float :offset-assert 16) (orig quaternion :inline :offset-assert 32) (dist-ratio float :offset-assert 48) (damping float :offset-assert 52) (1-damping float :offset-assert 56) ) :method-count-assert 11 :size-assert #x3c :flag-assert #xb0000003c (:methods (reset! (_type_ process-drawable float float) none 9) (TODO-RENAME-10 (_type_ process-drawable vector) symbol 10) ) ) ;; definition for method 3 of type tippy (defmethod inspect tippy ((obj tippy)) (format #t "[~8x] ~A~%" obj 'tippy) (format #t "~Taxis: #~%" (-> obj axis)) (format #t "~Tangle: ~f~%" (-> obj angle)) (format #t "~Torig: #~%" (-> obj orig)) (format #t "~Tdist-ratio: ~f~%" (-> obj dist-ratio)) (format #t "~Tdamping: ~f~%" (-> obj damping)) (format #t "~T1-damping: ~f~%" (-> obj 1-damping)) obj ) ;; definition for method 9 of type tippy ;; INFO: Return type mismatch int vs none. (defmethod reset! tippy ((obj tippy) (arg0 process-drawable) (arg1 float) (arg2 float)) (set-vector! (-> obj axis) 0.0 0.0 0.0 1.0) (set! (-> obj angle) 0.0) (quaternion-copy! (-> obj orig) (-> arg0 root quat)) (set! (-> obj dist-ratio) arg1) (set! (-> obj damping) arg2) (set! (-> obj 1-damping) (- 1.0 arg2)) 0 (none) ) ;; definition for method 10 of type tippy (defmethod TODO-RENAME-10 tippy ((obj tippy) (arg0 process-drawable) (arg1 vector)) (let ((s4-0 #t)) (cond (arg1 (let ((s3-0 (new 'stack-no-clear 'vector))) 0.0 (set! (-> s3-0 x) (- (-> arg1 z) (-> arg0 root trans z))) (set! (-> s3-0 y) 0.0) (set! (-> s3-0 z) (- (-> arg0 root trans x) (-> arg1 x))) (let ((f0-6 (vector-length s3-0))) (vector-float*! s3-0 s3-0 (/ 1.0 f0-6)) (let ((f30-0 (* f0-6 (-> obj dist-ratio)))) (set! (-> obj axis x) (+ (* (-> obj 1-damping) (-> obj axis x)) (* (-> obj damping) (-> s3-0 x)) ) ) (set! (-> obj axis y) 0.0) (set! (-> obj axis z) (+ (* (-> obj 1-damping) (-> obj axis z)) (* (-> obj damping) (-> s3-0 z)) ) ) (vector-normalize! (-> obj axis) 1.0) (set! (-> obj angle) (+ (* (-> obj 1-damping) (-> obj angle)) (* (-> obj damping) f30-0)) ) ) ) ) ) (else (set! (-> obj angle) (* (-> obj 1-damping) (-> obj angle))) (when (< (-> obj angle) 182.04445) (set! (-> obj angle) 0.0) (set! s4-0 #f) ) ) ) (quaternion-vector-angle! (-> arg0 root quat) (-> obj axis) (-> obj angle)) (quaternion*! (-> arg0 root quat) (-> arg0 root quat) (-> obj orig)) s4-0 ) )