;;-*-Lisp-*- (in-package goal) ;; definition of type race-ring (deftype race-ring (process-drawable) ((rot-y float :offset-assert 176) (face-vec vector :inline :offset-assert 192) (part-track handle :offset-assert 208) (keep-part-track-alive symbol :offset-assert 216) (timeout uint64 :offset-assert 224) (alt-actor entity-actor :offset-assert 232) (alt-task uint8 :offset-assert 236) (cyl cylinder-flat :inline :offset-assert 240) (old-hips vector :inline :offset-assert 288) ) :heap-base #xc0 :method-count-assert 20 :size-assert #x130 :flag-assert #x1400c00130 (:states race-ring-active race-ring-idle race-ring-wait ) ) ;; definition for method 3 of type race-ring (defmethod inspect race-ring ((obj race-ring)) (let ((t9-0 (method-of-type process-drawable inspect))) (t9-0 obj) ) (format #t "~T~Trot-y: ~f~%" (-> obj rot-y)) (format #t "~T~Tface-vec: #~%" (-> obj face-vec)) (format #t "~T~Tpart-track: ~D~%" (-> obj part-track)) (format #t "~T~Tkeep-part-track-alive: ~A~%" (-> obj keep-part-track-alive)) (format #t "~T~Ttimeout: ~D~%" (-> obj timeout)) (format #t "~T~Talt-actor: ~A~%" (-> obj alt-actor)) (format #t "~T~Talt-task: ~D~%" (-> obj alt-task)) (format #t "~T~Tcyl: #~%" (-> obj cyl)) (format #t "~T~Told-hips: #~%" (-> obj old-hips)) obj ) ;; failed to figure out what this is: (defpartgroup group-rolling-ring :id 457 :linger-duration 0 :bounds (static-bspherem 0 0 0 8) :parts ((sp-item 1773 :fade-after (meters 100) :falloff-to (meters 100)) (sp-item 1774 :fade-after (meters 80)) (sp-item 1775 :flags (is-3d)) (sp-item 1776 :flags (is-3d)) ) ) ;; failed to figure out what this is: (defpart 1773 :init-specs ((sp-tex spt-texture (new 'static 'texture-id :index #x12 :page #x2)) (sp-rnd-flt spt-num 2.0 2.0 1.0) (sp-rnd-flt spt-scale-x (meters 1) (meters 1) 1.0) (sp-rnd-flt spt-rot-z (degrees 0.0) (degrees 360.0) 1.0) (sp-copy-from-other spt-scale-y -4) (sp-rnd-int spt-r 1115684864 1 64.0) (sp-flt spt-g 0.0) (sp-rnd-int spt-b 1115684864 1 64.0) (sp-flt spt-a 64.0) (sp-rnd-flt spt-rotvel-z (degrees -0.2) (degrees 0.4) 1.0) (sp-flt spt-fade-a -1.4222221) (sp-int spt-timer 42) (sp-cpuinfo-flags bit2 bit3) (sp-rnd-flt spt-conerot-x (degrees 0.0) (degrees 360.0) 1.0) (sp-flt spt-conerot-radius (meters 4.5)) (sp-flt spt-rotate-y (degrees 0.0)) ) ) ;; failed to figure out what this is: (defpart 1774 :init-specs ((sp-tex spt-texture (new 'static 'texture-id :index #x12 :page #x2)) (sp-flt spt-num 1.0) (sp-rnd-flt spt-scale-x (meters 1) (meters 4) 1.0) (sp-rnd-flt spt-rot-z (degrees 0.0) (degrees 360.0) 1.0) (sp-copy-from-other spt-scale-y -4) (sp-rnd-int spt-r 1115684864 1 64.0) (sp-flt spt-g 0.0) (sp-rnd-int spt-b 1115684864 1 64.0) (sp-flt spt-a 64.0) (sp-rnd-flt spt-rotvel-z (degrees -0.2) (degrees 0.4) 1.0) (sp-flt spt-fade-a -1.4222221) (sp-int spt-timer 42) (sp-cpuinfo-flags bit2 bit3) (sp-rnd-flt spt-conerot-x (degrees 0.0) (degrees 360.0) 1.0) (sp-flt spt-conerot-radius (meters 4.5)) (sp-flt spt-rotate-y (degrees 0.0)) ) ) ;; failed to figure out what this is: (defpart 1775 :init-specs ((sp-tex spt-texture (new 'static 'texture-id :index #x1e :page #x2)) (sp-flt spt-num 1.0) (sp-flt spt-scale-x (meters 10)) (sp-rnd-flt spt-rot-x 0.0 65536.0 1.0) (sp-rnd-flt spt-rot-y (degrees -1.0) (degrees 2.0) 1.0) (sp-flt spt-rot-z (degrees 90.0)) (sp-copy-from-other spt-scale-y -4) (sp-rnd-int spt-r 1124073472 1 127.0) (sp-flt spt-g 0.0) (sp-rnd-int spt-b 1124073472 1 127.0) (sp-rnd-flt spt-a 96.0 32.0 1.0) (sp-flt spt-fade-a -8.533334) (sp-int spt-timer 10) (sp-cpuinfo-flags bit2 bit3) ) ) ;; failed to figure out what this is: (defpart 1776 :init-specs ((sp-tex spt-texture (new 'static 'texture-id :index #x4 :page #x2)) (sp-flt spt-num 1.0) (sp-flt spt-scale-x (meters 12)) (sp-rnd-flt spt-rot-x 0.0 65536.0 1.0) (sp-flt spt-rot-y (degrees 0.0)) (sp-flt spt-rot-z (degrees 90.0)) (sp-copy-from-other spt-scale-y -4) (sp-rnd-int spt-r 1124073472 1 127.0) (sp-flt spt-g 0.0) (sp-rnd-int spt-b 1124073472 1 127.0) (sp-rnd-flt spt-a 32.0 32.0 1.0) (sp-int spt-timer 5) (sp-cpuinfo-flags bit2 bit3) ) ) ;; failed to figure out what this is: (defpartgroup group-rolling-spawn-ring :id 458 :duration 5 :linger-duration 141 :bounds (static-bspherem 0 0 0 8) :parts ((sp-item 1777 :fade-after (meters 100) :falloff-to (meters 100)) (sp-item 1778 :flags (is-3d)) (sp-item 1779 :flags (is-3d)) ) ) ;; failed to figure out what this is: (defpart 1777 :init-specs ((sp-tex spt-texture (new 'static 'texture-id :index #x12 :page #x2)) (sp-flt spt-num 32.0) (sp-rnd-flt spt-scale-x (meters 1) (meters 3) 1.0) (sp-rnd-flt spt-rot-z (degrees 0.0) (degrees 360.0) 1.0) (sp-copy-from-other spt-scale-y -4) (sp-rnd-int spt-r 1115684864 1 64.0) (sp-flt spt-g 0.0) (sp-rnd-int spt-b 1115684864 1 64.0) (sp-rnd-int spt-a 0 63 1.0) (sp-flt spt-vel-y (meters 0.03)) (sp-rnd-flt spt-rotvel-z (degrees -0.2) (degrees 0.4) 1.0) (sp-int spt-timer 150) (sp-cpuinfo-flags bit3) (sp-int-plain-rnd spt-next-time 20 19 1) (sp-launcher-by-id spt-next-launcher 1780) (sp-rnd-flt spt-conerot-x (degrees 0.0) (degrees 360.0) 1.0) (sp-flt spt-conerot-radius (meters 0)) (sp-flt spt-rotate-y (degrees 0.0)) ) ) ;; failed to figure out what this is: (defpart 1780 :init-specs ((sp-rnd-int spt-r 1115684864 1 64.0) (sp-flt spt-g 0.0) (sp-rnd-int spt-b 1115684864 1 64.0) (sp-rnd-int spt-a 0 63 1.0) (sp-int-plain-rnd spt-next-time 20 19 1) (sp-launcher-by-id spt-next-launcher 1780) ) ) ;; failed to figure out what this is: (defpart 1778 :init-specs ((sp-tex spt-texture (new 'static 'texture-id :index #x1e :page #x2)) (sp-flt spt-num 1.0) (sp-flt spt-scale-x (meters 0)) (sp-rnd-flt spt-rot-x 0.0 65536.0 1.0) (sp-rnd-flt spt-rot-y (degrees -1.0) (degrees 2.0) 1.0) (sp-flt spt-rot-z (degrees 90.0)) (sp-copy-from-other spt-scale-y -4) (sp-rnd-int spt-r 1124073472 1 127.0) (sp-flt spt-g 0.0) (sp-rnd-int spt-b 1124073472 1 127.0) (sp-rnd-flt spt-a 96.0 32.0 1.0) (sp-flt spt-scalevel-x (meters 0.06666667)) (sp-copy-from-other spt-scalevel-y -4) (sp-int spt-timer 150) (sp-cpuinfo-flags bit2 bit3 left-multiply-quat) (sp-int spt-next-time 5) (sp-launcher-by-id spt-next-launcher 1781) ) ) ;; failed to figure out what this is: (defpart 1781 :init-specs ((sp-rnd-int spt-r 1124073472 1 127.0) (sp-flt spt-g 0.0) (sp-rnd-int spt-b 1124073472 1 127.0) (sp-rnd-flt spt-a 32.0 32.0 1.0) (sp-int spt-next-time 5) (sp-launcher-by-id spt-next-launcher 1781) ) ) ;; failed to figure out what this is: (defpart 1779 :init-specs ((sp-tex spt-texture (new 'static 'texture-id :index #x4 :page #x2)) (sp-flt spt-num 1.0) (sp-flt spt-scale-x (meters 0)) (sp-rnd-flt spt-rot-x 0.0 65536.0 1.0) (sp-flt spt-rot-y (degrees 0.0)) (sp-flt spt-rot-z (degrees 90.0)) (sp-copy-from-other spt-scale-y -4) (sp-rnd-int spt-r 1124073472 1 127.0) (sp-flt spt-g 0.0) (sp-rnd-int spt-b 1124073472 1 127.0) (sp-rnd-flt spt-a 32.0 32.0 1.0) (sp-flt spt-scalevel-x (meters 0.08)) (sp-copy-from-other spt-scalevel-y -4) (sp-int spt-timer 150) (sp-cpuinfo-flags bit2 bit3 left-multiply-quat) (sp-int spt-next-time 5) (sp-launcher-by-id spt-next-launcher 1782) ) ) ;; failed to figure out what this is: (defpart 1782 :init-specs ((sp-rnd-int spt-r 1124073472 1 127.0) (sp-flt spt-g 0.0) (sp-rnd-int spt-b 1124073472 1 127.0) (sp-rnd-flt spt-a 32.0 32.0 1.0) (sp-int spt-next-time 5) (sp-launcher-by-id spt-next-launcher 1782) ) ) ;; failed to figure out what this is: (defpartgroup group-rolling-explode-ring :id 459 :duration 5 :linger-duration 150 :bounds (static-bspherem 0 0 0 8) :parts ((sp-item 1783 :fade-after (meters 100) :falloff-to (meters 100)) (sp-item 1784 :flags (is-3d))) ) ;; failed to figure out what this is: (defpart 1783 :init-specs ((sp-tex spt-texture (new 'static 'texture-id :index #x12 :page #x2)) (sp-flt spt-num 64.0) (sp-rnd-flt spt-scale-x (meters 1) (meters 1) 1.0) (sp-rnd-flt spt-rot-z (degrees 0.0) (degrees 360.0) 1.0) (sp-copy-from-other spt-scale-y -4) (sp-rnd-int spt-r 1115684864 1 64.0) (sp-flt spt-g 0.0) (sp-rnd-int spt-b 1115684864 1 64.0) (sp-rnd-flt spt-a 32.0 96.0 1.0) (sp-rnd-flt spt-vel-y (meters 0.1) (meters 0.033333335) 1.0) (sp-rnd-flt spt-rotvel-z (degrees -0.2) (degrees 0.4) 1.0) (sp-flt spt-fade-a -0.85333335) (sp-flt spt-friction 0.9) (sp-int spt-timer 150) (sp-cpuinfo-flags bit2 bit3) (sp-rnd-flt spt-conerot-x (degrees 0.0) (degrees 360.0) 1.0) (sp-flt spt-conerot-radius (meters 4.5)) (sp-flt spt-rotate-y (degrees 0.0)) ) ) ;; failed to figure out what this is: (defpart 1784 :init-specs ((sp-tex spt-texture (new 'static 'texture-id :index #x1e :page #x2)) (sp-flt spt-num 2.0) (sp-flt spt-scale-x (meters 10)) (sp-rnd-flt spt-rot-x 0.0 65536.0 1.0) (sp-rnd-flt spt-rot-y (degrees -1.0) (degrees 2.0) 1.0) (sp-flt spt-rot-z (degrees 90.0)) (sp-copy-from-other spt-scale-y -4) (sp-rnd-int spt-r 1124073472 1 127.0) (sp-flt spt-g 0.0) (sp-rnd-int spt-b 1124073472 1 127.0) (sp-flt spt-a 128.0) (sp-flt spt-scalevel-x (meters 0.06666667)) (sp-copy-from-other spt-scalevel-y -4) (sp-flt spt-fade-a -0.85333335) (sp-int spt-timer 150) (sp-cpuinfo-flags bit2 bit3) ) ) ;; definition for function race-ring-set-particle-rotation-callback ;; INFO: Return type mismatch int vs none. (defun race-ring-set-particle-rotation-callback ((arg0 part-tracker)) (let ((f0-0 (-> (the-as (pointer race-ring) (-> arg0 userdata)) 0 rot-y))) (set! (-> *part-id-table* 1773 init-specs 15 initial-valuef) f0-0) (set! (-> *part-id-table* 1774 init-specs 15 initial-valuef) f0-0) (set! (-> *part-id-table* 1775 init-specs 4 initial-valuef) (+ -182.04445 f0-0)) (set! (-> *part-id-table* 1776 init-specs 4 initial-valuef) f0-0) (set! (-> *part-id-table* 1777 init-specs 17 initial-valuef) f0-0) (set! (-> *part-id-table* 1778 init-specs 4 initial-valuef) f0-0) (set! (-> *part-id-table* 1779 init-specs 4 initial-valuef) f0-0) (set! (-> *part-id-table* 1783 init-specs 17 initial-valuef) f0-0) (set! (-> *part-id-table* 1784 init-specs 4 initial-valuef) f0-0) ) 0 (none) ) ;; failed to figure out what this is: (defpartgroup group-rolling-ring-blue :id 460 :linger-duration 0 :bounds (static-bspherem 0 0 0 8) :parts ((sp-item 1785 :fade-after (meters 100) :falloff-to (meters 100)) (sp-item 1786 :fade-after (meters 80)) (sp-item 1787 :flags (is-3d)) (sp-item 1788 :flags (is-3d)) ) ) ;; failed to figure out what this is: (defpart 1785 :init-specs ((sp-tex spt-texture (new 'static 'texture-id :index #x12 :page #x2)) (sp-rnd-flt spt-num 2.0 2.0 1.0) (sp-rnd-flt spt-scale-x (meters 1) (meters 1) 1.0) (sp-rnd-flt spt-rot-z (degrees 0.0) (degrees 360.0) 1.0) (sp-copy-from-other spt-scale-y -4) (sp-flt spt-r 0.0) (sp-rnd-int spt-g 1115684864 1 64.0) (sp-rnd-int spt-b 1115684864 1 64.0) (sp-flt spt-a 64.0) (sp-rnd-flt spt-rotvel-z (degrees -0.2) (degrees 0.4) 1.0) (sp-flt spt-fade-a -1.4222221) (sp-int spt-timer 42) (sp-cpuinfo-flags bit2 bit3) (sp-rnd-flt spt-conerot-x (degrees 0.0) (degrees 360.0) 1.0) (sp-flt spt-conerot-radius (meters 4.5)) (sp-flt spt-rotate-y (degrees 0.0)) ) ) ;; failed to figure out what this is: (defpart 1786 :init-specs ((sp-tex spt-texture (new 'static 'texture-id :index #x12 :page #x2)) (sp-flt spt-num 1.0) (sp-rnd-flt spt-scale-x (meters 1) (meters 4) 1.0) (sp-rnd-flt spt-rot-z (degrees 0.0) (degrees 360.0) 1.0) (sp-copy-from-other spt-scale-y -4) (sp-flt spt-r 0.0) (sp-rnd-int spt-g 1115684864 1 64.0) (sp-rnd-int spt-b 1115684864 1 64.0) (sp-flt spt-a 64.0) (sp-rnd-flt spt-rotvel-z (degrees -0.2) (degrees 0.4) 1.0) (sp-flt spt-fade-a -1.4222221) (sp-int spt-timer 42) (sp-cpuinfo-flags bit2 bit3) (sp-rnd-flt spt-conerot-x (degrees 0.0) (degrees 360.0) 1.0) (sp-flt spt-conerot-radius (meters 4.5)) (sp-flt spt-rotate-y (degrees 0.0)) ) ) ;; failed to figure out what this is: (defpart 1787 :init-specs ((sp-tex spt-texture (new 'static 'texture-id :index #x1e :page #x2)) (sp-flt spt-num 1.0) (sp-flt spt-scale-x (meters 10)) (sp-rnd-flt spt-rot-x 0.0 65536.0 1.0) (sp-rnd-flt spt-rot-y (degrees -1.0) (degrees 2.0) 1.0) (sp-flt spt-rot-z (degrees 90.0)) (sp-copy-from-other spt-scale-y -4) (sp-flt spt-r 0.0) (sp-rnd-int spt-g 1124073472 1 127.0) (sp-rnd-int spt-b 1124073472 1 127.0) (sp-rnd-flt spt-a 96.0 32.0 1.0) (sp-flt spt-fade-a -8.533334) (sp-int spt-timer 10) (sp-cpuinfo-flags bit2 bit3) ) ) ;; failed to figure out what this is: (defpart 1788 :init-specs ((sp-tex spt-texture (new 'static 'texture-id :index #x4 :page #x2)) (sp-flt spt-num 1.0) (sp-flt spt-scale-x (meters 12)) (sp-rnd-flt spt-rot-x 0.0 65536.0 1.0) (sp-flt spt-rot-y (degrees 0.0)) (sp-flt spt-rot-z (degrees 90.0)) (sp-copy-from-other spt-scale-y -4) (sp-flt spt-r 0.0) (sp-rnd-int spt-g 1124073472 1 127.0) (sp-rnd-int spt-b 1124073472 1 127.0) (sp-rnd-flt spt-a 32.0 32.0 1.0) (sp-int spt-timer 5) (sp-cpuinfo-flags bit2 bit3) ) ) ;; failed to figure out what this is: (defpartgroup group-rolling-spawn-ring-blue :id 461 :duration 5 :linger-duration 141 :bounds (static-bspherem 0 0 0 8) :parts ((sp-item 1789 :fade-after (meters 100) :falloff-to (meters 100)) (sp-item 1790 :flags (is-3d)) (sp-item 1791 :flags (is-3d)) ) ) ;; failed to figure out what this is: (defpart 1789 :init-specs ((sp-tex spt-texture (new 'static 'texture-id :index #x12 :page #x2)) (sp-flt spt-num 32.0) (sp-rnd-flt spt-scale-x (meters 1) (meters 3) 1.0) (sp-rnd-flt spt-rot-z (degrees 0.0) (degrees 360.0) 1.0) (sp-copy-from-other spt-scale-y -4) (sp-flt spt-r 0.0) (sp-rnd-int spt-g 1115684864 1 64.0) (sp-rnd-int spt-b 1115684864 1 64.0) (sp-rnd-int spt-a 0 63 1.0) (sp-flt spt-vel-y (meters 0.03)) (sp-rnd-flt spt-rotvel-z (degrees -0.2) (degrees 0.4) 1.0) (sp-int spt-timer 150) (sp-cpuinfo-flags bit3) (sp-int-plain-rnd spt-next-time 20 19 1) (sp-launcher-by-id spt-next-launcher 1792) (sp-rnd-flt spt-conerot-x (degrees 0.0) (degrees 360.0) 1.0) (sp-flt spt-conerot-radius (meters 0)) (sp-flt spt-rotate-y (degrees 0.0)) ) ) ;; failed to figure out what this is: (defpart 1792 :init-specs ((sp-flt spt-r 0.0) (sp-rnd-int spt-g 1115684864 1 64.0) (sp-rnd-int spt-b 1115684864 1 64.0) (sp-rnd-int spt-a 0 63 1.0) (sp-int-plain-rnd spt-next-time 20 19 1) (sp-launcher-by-id spt-next-launcher 1792) ) ) ;; failed to figure out what this is: (defpart 1790 :init-specs ((sp-tex spt-texture (new 'static 'texture-id :index #x1e :page #x2)) (sp-flt spt-num 1.0) (sp-flt spt-scale-x (meters 0)) (sp-rnd-flt spt-rot-x 0.0 65536.0 1.0) (sp-rnd-flt spt-rot-y (degrees -1.0) (degrees 2.0) 1.0) (sp-flt spt-rot-z (degrees 90.0)) (sp-copy-from-other spt-scale-y -4) (sp-flt spt-r 0.0) (sp-rnd-int spt-g 1124073472 1 127.0) (sp-rnd-int spt-b 1124073472 1 127.0) (sp-rnd-flt spt-a 96.0 32.0 1.0) (sp-flt spt-scalevel-x (meters 0.06666667)) (sp-copy-from-other spt-scalevel-y -4) (sp-int spt-timer 150) (sp-cpuinfo-flags bit2 bit3 left-multiply-quat) (sp-int spt-next-time 5) (sp-launcher-by-id spt-next-launcher 1793) ) ) ;; failed to figure out what this is: (defpart 1793 :init-specs ((sp-flt spt-r 0.0) (sp-rnd-int spt-g 1124073472 1 127.0) (sp-rnd-int spt-b 1124073472 1 127.0) (sp-rnd-flt spt-a 32.0 32.0 1.0) (sp-int spt-next-time 5) (sp-launcher-by-id spt-next-launcher 1793) ) ) ;; failed to figure out what this is: (defpart 1791 :init-specs ((sp-tex spt-texture (new 'static 'texture-id :index #x4 :page #x2)) (sp-flt spt-num 1.0) (sp-flt spt-scale-x (meters 0)) (sp-rnd-flt spt-rot-x 0.0 65536.0 1.0) (sp-flt spt-rot-y (degrees 0.0)) (sp-flt spt-rot-z (degrees 90.0)) (sp-copy-from-other spt-scale-y -4) (sp-flt spt-r 0.0) (sp-rnd-int spt-g 1124073472 1 127.0) (sp-rnd-int spt-b 1124073472 1 127.0) (sp-rnd-flt spt-a 32.0 32.0 1.0) (sp-flt spt-scalevel-x (meters 0.08)) (sp-copy-from-other spt-scalevel-y -4) (sp-int spt-timer 150) (sp-cpuinfo-flags bit2 bit3 left-multiply-quat) (sp-int spt-next-time 5) (sp-launcher-by-id spt-next-launcher 1794) ) ) ;; failed to figure out what this is: (defpart 1794 :init-specs ((sp-flt spt-r 0.0) (sp-rnd-int spt-g 1124073472 1 127.0) (sp-rnd-int spt-b 1124073472 1 127.0) (sp-rnd-flt spt-a 32.0 32.0 1.0) (sp-int spt-next-time 5) (sp-launcher-by-id spt-next-launcher 1794) ) ) ;; failed to figure out what this is: (defpartgroup group-rolling-explode-ring-blue :id 462 :duration 5 :linger-duration 150 :bounds (static-bspherem 0 0 0 8) :parts ((sp-item 1795 :fade-after (meters 100) :falloff-to (meters 100)) (sp-item 1796 :flags (is-3d))) ) ;; failed to figure out what this is: (defpart 1795 :init-specs ((sp-tex spt-texture (new 'static 'texture-id :index #x12 :page #x2)) (sp-flt spt-num 64.0) (sp-rnd-flt spt-scale-x (meters 1) (meters 1) 1.0) (sp-rnd-flt spt-rot-z (degrees 0.0) (degrees 360.0) 1.0) (sp-copy-from-other spt-scale-y -4) (sp-flt spt-r 0.0) (sp-rnd-int spt-g 1115684864 1 64.0) (sp-rnd-int spt-b 1115684864 1 64.0) (sp-rnd-flt spt-a 32.0 96.0 1.0) (sp-rnd-flt spt-vel-y (meters 0.1) (meters 0.033333335) 1.0) (sp-rnd-flt spt-rotvel-z (degrees -0.2) (degrees 0.4) 1.0) (sp-flt spt-fade-a -0.85333335) (sp-flt spt-friction 0.9) (sp-int spt-timer 150) (sp-cpuinfo-flags bit2 bit3) (sp-rnd-flt spt-conerot-x (degrees 0.0) (degrees 360.0) 1.0) (sp-flt spt-conerot-radius (meters 4.5)) (sp-flt spt-rotate-y (degrees 0.0)) ) ) ;; failed to figure out what this is: (defpart 1796 :init-specs ((sp-tex spt-texture (new 'static 'texture-id :index #x1e :page #x2)) (sp-flt spt-num 2.0) (sp-flt spt-scale-x (meters 10)) (sp-rnd-flt spt-rot-x 0.0 65536.0 1.0) (sp-rnd-flt spt-rot-y (degrees -1.0) (degrees 2.0) 1.0) (sp-flt spt-rot-z (degrees 90.0)) (sp-copy-from-other spt-scale-y -4) (sp-flt spt-r 0.0) (sp-rnd-int spt-g 1124073472 1 127.0) (sp-rnd-int spt-b 1124073472 1 127.0) (sp-flt spt-a 128.0) (sp-flt spt-scalevel-x (meters 0.06666667)) (sp-copy-from-other spt-scalevel-y -4) (sp-flt spt-fade-a -0.85333335) (sp-int spt-timer 150) (sp-cpuinfo-flags bit2 bit3) ) ) ;; definition for function race-ring-blue-set-particle-rotation-callback ;; INFO: Return type mismatch int vs none. (defun race-ring-blue-set-particle-rotation-callback ((arg0 part-tracker)) (let ((f0-0 (-> (the-as (pointer race-ring) (-> arg0 userdata)) 0 rot-y))) (set! (-> *part-id-table* 1785 init-specs 15 initial-valuef) f0-0) (set! (-> *part-id-table* 1786 init-specs 15 initial-valuef) f0-0) (set! (-> *part-id-table* 1787 init-specs 4 initial-valuef) (+ -182.04445 f0-0)) (set! (-> *part-id-table* 1788 init-specs 4 initial-valuef) f0-0) (set! (-> *part-id-table* 1789 init-specs 17 initial-valuef) f0-0) (set! (-> *part-id-table* 1790 init-specs 4 initial-valuef) f0-0) (set! (-> *part-id-table* 1791 init-specs 4 initial-valuef) f0-0) (set! (-> *part-id-table* 1795 init-specs 17 initial-valuef) f0-0) (set! (-> *part-id-table* 1796 init-specs 4 initial-valuef) f0-0) ) 0 (none) ) ;; failed to figure out what this is: (defskelgroup *race-ring-sg* race-ring 0 2 ((1 (meters 999999))) :bounds (static-spherem 0 0 0 4) :longest-edge (meters 0) ) ;; definition for function first-ring? (defun first-ring? ((arg0 race-ring)) (not (-> arg0 alt-actor)) ) ;; definition for function last-ring? (defun last-ring? ((arg0 race-ring)) (not (-> arg0 link next)) ) ;; failed to figure out what this is: (defstate race-ring-active (race-ring) :event (behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block)) (local-vars (v0-0 symbol)) (let ((v1-0 arg2)) (the-as object (when (= v1-0 'notify) (when (and (= (-> arg3 param 0) 'die) (= arg0 (-> self part-track process 0))) (cond ((= (-> self entity extra perm task) (game-task rolling-ring-chase-2)) (let ((gp-0 (get-process *default-dead-pool* part-tracker #x4000))) (set! (-> self part-track) (ppointer->handle (when gp-0 (let ((t9-1 (method-of-type part-tracker activate))) (t9-1 (the-as part-tracker gp-0) self 'part-tracker (the-as pointer #x70004000)) ) (run-now-in-process gp-0 part-tracker-init (-> *part-group-id-table* 460) -1 race-ring-blue-set-particle-rotation-callback (-> self ppointer) #f (-> self root trans) ) (-> gp-0 ppointer) ) ) ) ) (set! v0-0 #t) (set! (-> self keep-part-track-alive) v0-0) ) (else (let ((gp-1 (get-process *default-dead-pool* part-tracker #x4000))) (set! (-> self part-track) (ppointer->handle (when gp-1 (let ((t9-4 (method-of-type part-tracker activate))) (t9-4 (the-as part-tracker gp-1) self 'part-tracker (the-as pointer #x70004000)) ) (run-now-in-process gp-1 part-tracker-init (-> *part-group-id-table* 457) -1 race-ring-set-particle-rotation-callback (-> self ppointer) #f (-> self root trans) ) (-> gp-1 ppointer) ) ) ) ) (set! v0-0 #t) (set! (-> self keep-part-track-alive) v0-0) ) ) v0-0 ) ) ) ) ) :enter (behavior () (cond ((first-ring? self) (logior! (-> self mask) (process-mask actor-pause)) (process-entity-status! self (entity-perm-status bit-3) #f) ) (else (logclear! (-> self mask) (process-mask actor-pause)) (process-entity-status! self (entity-perm-status bit-3) #t) ) ) (set! (-> self keep-part-track-alive) #f) (cond ((= (-> self entity extra perm task) (game-task rolling-ring-chase-2)) (let ((gp-0 (get-process *default-dead-pool* part-tracker #x4000))) (set! (-> self part-track) (ppointer->handle (when gp-0 (let ((t9-4 (method-of-type part-tracker activate))) (t9-4 (the-as part-tracker gp-0) self 'part-tracker (the-as pointer #x70004000)) ) (run-now-in-process gp-0 part-tracker-init (-> *part-group-id-table* 461) -1 race-ring-blue-set-particle-rotation-callback (-> self ppointer) #f (-> self root trans) ) (-> gp-0 ppointer) ) ) ) ) ) (else (let ((gp-1 (get-process *default-dead-pool* part-tracker #x4000))) (set! (-> self part-track) (ppointer->handle (when gp-1 (let ((t9-7 (method-of-type part-tracker activate))) (t9-7 (the-as part-tracker gp-1) self 'part-tracker (the-as pointer #x70004000)) ) (run-now-in-process gp-1 part-tracker-init (-> *part-group-id-table* 458) -1 race-ring-set-particle-rotation-callback (-> self ppointer) #f (-> self root trans) ) (-> gp-1 ppointer) ) ) ) ) ) ) (set! (-> self old-hips quad) (-> (target-pos 26) quad)) (set! (-> self old-hips x) (+ 1.0 (-> self old-hips x))) (set! (-> self state-time) (-> *display* game-frame-counter)) (none) ) :exit (behavior () (sound-play-by-name (static-sound-name "close-racering") (new-sound-id) 1024 0 0 1 #t) (let ((a0-3 (handle->process (-> self part-track)))) (if a0-3 (deactivate a0-3) ) ) (cond ((= (-> self entity extra perm task) (game-task rolling-ring-chase-2)) (let ((gp-1 (get-process *default-dead-pool* part-tracker #x4000))) (set! (-> self part-track) (ppointer->handle (when gp-1 (let ((t9-4 (method-of-type part-tracker activate))) (t9-4 (the-as part-tracker gp-1) self 'part-tracker (the-as pointer #x70004000)) ) (run-now-in-process gp-1 part-tracker-init (-> *part-group-id-table* 462) -1 race-ring-blue-set-particle-rotation-callback (-> self ppointer) #f (-> self root trans) ) (-> gp-1 ppointer) ) ) ) ) ) (else (let ((gp-2 (get-process *default-dead-pool* part-tracker #x4000))) (set! (-> self part-track) (ppointer->handle (when gp-2 (let ((t9-7 (method-of-type part-tracker activate))) (t9-7 (the-as part-tracker gp-2) self 'part-tracker (the-as pointer #x70004000)) ) (run-now-in-process gp-2 part-tracker-init (-> *part-group-id-table* 459) -1 race-ring-set-particle-rotation-callback (-> self ppointer) #f (-> self root trans) ) (-> gp-2 ppointer) ) ) ) ) ) ) (cond ((first-ring? self) (logclear! (-> self mask) (process-mask actor-pause)) (process-entity-status! self (entity-perm-status bit-3) #t) ) (else (logior! (-> self mask) (process-mask actor-pause)) (process-entity-status! self (entity-perm-status bit-3) #f) ) ) (none) ) :trans (behavior () (if (nonzero? (-> self sound)) (update! (-> self sound)) ) (cond ((handle->process (-> self part-track)) (if (-> self keep-part-track-alive) (set! (-> (the-as part-tracker (-> self part-track process 0)) start-time) (the-as uint (-> *display* base-frame-counter)) ) ) ) ((= (-> self entity extra perm task) (game-task rolling-ring-chase-2)) (let ((gp-0 (get-process *default-dead-pool* part-tracker #x4000))) (set! (-> self part-track) (ppointer->handle (when gp-0 (let ((t9-2 (method-of-type part-tracker activate))) (t9-2 (the-as part-tracker gp-0) self 'part-tracker (the-as pointer #x70004000)) ) (run-now-in-process gp-0 part-tracker-init (-> *part-group-id-table* 460) -1 race-ring-blue-set-particle-rotation-callback (-> self ppointer) #f (-> self root trans) ) (-> gp-0 ppointer) ) ) ) ) (set! (-> self keep-part-track-alive) #t) ) (else (let ((gp-1 (get-process *default-dead-pool* part-tracker #x4000))) (set! (-> self part-track) (ppointer->handle (when gp-1 (let ((t9-5 (method-of-type part-tracker activate))) (t9-5 (the-as part-tracker gp-1) self 'part-tracker (the-as pointer #x70004000)) ) (run-now-in-process gp-1 part-tracker-init (-> *part-group-id-table* 457) -1 race-ring-set-particle-rotation-callback (-> self ppointer) #f (-> self root trans) ) (-> gp-1 ppointer) ) ) ) ) (set! (-> self keep-part-track-alive) #t) ) ) (cond ((not (last-ring? self)) ) ((= (-> self entity extra perm task) (game-task rolling-ring-chase-2)) (spool-push *art-control* "race-ring-second-anim" 0 self -99.0) ) (else (spool-push *art-control* "race-ring-anim" 0 self -99.0) ) ) (none) ) :code (behavior () (while #t (suspend) (cond ((first-ring? self) ) ((>= (- (-> *display* game-frame-counter) (-> self state-time)) (the-as int (-> self timeout))) (level-hint-spawn (game-text-id rolling-ring-hint-be-quick-all) "sksp0121" (the-as entity #f) *entity-pool* (game-task none) ) (ambient-hint-spawn "st-lose" (the-as vector #f) *entity-pool* 'stinger) (let ((a1-2 (new 'stack-no-clear 'event-message-block))) (set! (-> a1-2 from) self) (set! (-> a1-2 num-params) 0) (set! (-> a1-2 message) 'activate) (let ((t9-3 send-event-function) (v1-7 (-> self alt-actor)) ) (t9-3 (if v1-7 (-> v1-7 extra process) ) a1-2 ) ) ) (go race-ring-idle) ) ) (when *target* (let ((gp-0 (new 'stack-no-clear 'vector))) (set! (-> gp-0 quad) (-> self old-hips quad)) (set! (-> self old-hips quad) (-> (target-pos 26) quad)) (vector-! gp-0 gp-0 (-> self old-hips)) (when (>= (ray-flat-cyl-intersect (-> self cyl) (-> self old-hips) gp-0) 0.0) (level-hint-spawn (game-text-id rolling-ring-hint-one-ring-down) "sksp0119" (the-as entity #f) *entity-pool* (game-task none) ) (if (= (-> self entity extra perm task) (game-task rolling-ring-chase-2)) (level-hint-spawn (game-text-id rolling-ring-hint-be-quick-to-next) "sksp0120" (the-as entity #f) *entity-pool* (game-task none) ) ) (cond ((first-ring? self) (close-specific-task! (-> self entity extra perm task) (task-status need-hint)) (entity-birth-no-kill (-> self link next)) (let ((a1-9 (new 'stack-no-clear 'event-message-block))) (set! (-> a1-9 from) self) (set! (-> a1-9 num-params) 0) (set! (-> a1-9 message) 'activate) (let ((t9-12 send-event-function) (v1-30 (-> self link next)) ) (t9-12 (if v1-30 (-> v1-30 extra process) ) a1-9 ) ) ) ) ((last-ring? self) (let* ((gp-1 (get-process *default-dead-pool* othercam #x4000)) (gp-2 (ppointer->handle (when gp-1 (let ((t9-15 (method-of-type othercam activate))) (t9-15 (the-as othercam gp-1) self 'othercam (the-as pointer #x70004000)) ) (run-now-in-process gp-1 othercam-init-by-other self 4 #f #t) (-> gp-1 ppointer) ) ) ) (s5-1 (get-process *default-dead-pool* fuel-cell #x4000)) (s5-2 (ppointer->handle (when s5-1 (let ((t9-18 (method-of-type fuel-cell activate))) (t9-18 (the-as fuel-cell s5-1) self 'fuel-cell (the-as pointer #x70004000)) ) (run-now-in-process s5-1 fuel-cell-init-as-clone (process->handle self) (-> self entity extra perm task)) (-> s5-1 ppointer) ) ) ) ) (if *target* (logior! (-> *target* mask) (process-mask sleep)) ) (close-specific-task! (-> self entity extra perm task) (task-status need-reminder)) (logclear! (-> self draw status) (draw-status drwf01)) (logior! (-> self draw status) (draw-status drwf05)) (if (= (-> self entity extra perm task) (game-task rolling-ring-chase-2)) (ja-play-spooled-anim (new 'static 'spool-anim :name "race-ring-second-anim" :index 4 :parts 2 :command-list '()) (the-as art-joint-anim #f) (the-as art-joint-anim #f) (the-as (function process-drawable symbol) false-func) ) (ja-play-spooled-anim (new 'static 'spool-anim :name "race-ring-anim" :index 3 :parts 2 :command-list '()) (the-as art-joint-anim #f) (the-as art-joint-anim #f) (the-as (function process-drawable symbol) false-func) ) ) (logclear! (-> self draw status) (draw-status drwf05)) (logior! (-> self draw status) (draw-status drwf01)) (cond ((handle->process (the-as int gp-2)) (deactivate (-> gp-2 process 0)) ) (else ) ) (if *target* (logclear! (-> *target* mask) (process-mask sleep)) ) (let ((a0-54 (handle->process s5-2))) (if a0-54 (send-event a0-54 'stop-cloning) ) ) ) ) (else (entity-birth-no-kill (-> self link next)) (let ((a1-22 (new 'stack-no-clear 'event-message-block))) (set! (-> a1-22 from) self) (set! (-> a1-22 num-params) 0) (set! (-> a1-22 message) 'activate) (let ((t9-26 send-event-function) (v1-86 (-> self link next)) ) (t9-26 (if v1-86 (-> v1-86 extra process) ) a1-22 ) ) ) ) ) (go race-ring-idle) ) ) ) ) (none) ) :post (the-as (function none :behavior race-ring) ja-post) ) ;; failed to figure out what this is: (defstate race-ring-wait (race-ring) :code (behavior () (if (nonzero? (-> self sound)) (stop! (-> self sound)) ) (while #t (suspend) (when (= (get-task-status (the-as game-task (-> self alt-task))) (task-status invalid)) (close-specific-task! (-> self entity extra perm task) (task-status need-hint)) (logclear! (-> self mask) (process-mask actor-pause)) (go race-ring-active) ) ) (none) ) ) ;; failed to figure out what this is: (defstate race-ring-idle (race-ring) :event (behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block)) (case arg2 (('activate) (logclear! (-> self mask) (process-mask actor-pause)) (go race-ring-active) ) ) ) :code (behavior () (if (nonzero? (-> self sound)) (stop! (-> self sound)) ) (while #t (suspend) ) (none) ) ) ;; definition for method 11 of type race-ring ;; INFO: Return type mismatch object vs none. (defmethod init-from-entity! race-ring ((obj race-ring) (arg0 entity-actor)) (let ((a0-1 arg0)) (if (not (entity-actor-lookup a0-1 'next-actor 0)) (stack-size-set! (-> obj main-thread) 512) ) ) (set! (-> obj root) (new 'process 'trsqv)) (process-drawable-from-entity! obj arg0) (initialize-skeleton obj *race-ring-sg* '()) (set! (-> obj root pause-adjust-distance) 122880.0) (set! (-> obj link) (new 'process 'actor-link-info obj)) (set! (-> obj part-track) (the-as handle #f)) (set! (-> obj alt-actor) (entity-actor-lookup arg0 'alt-actor 0)) (logior! (-> obj draw status) (draw-status drwf01)) (set! (-> obj sound) (new 'process 'ambient-sound (new 'static 'sound-spec :mask #x80 :num 1.0 :group #x1 :sound-name (static-sound-name "loop-racering") :volume #x400 :fo-max 40 ) (-> obj root trans) ) ) (let ((f0-1 (res-lump-float arg0 'timeout))) (set! (-> obj timeout) (the-as uint (the int (* 300.0 f0-1)))) ) (let ((s4-0 (new 'stack-no-clear 'vector))) (cond ((-> obj link next) (vector-! (-> obj face-vec) (-> obj link next extra trans) (-> obj root trans)) ) ((-> obj link prev) (vector-! (-> obj face-vec) (-> obj root trans) (-> obj link prev extra trans)) ) ) (vector-flatten! (-> obj face-vec) (-> obj face-vec) (new 'static 'vector :y 1.0)) (vector-normalize! (-> obj face-vec) 1.0) (cond ((and (-> obj link next) (-> obj link prev)) (vector-! s4-0 (-> obj link prev extra trans) (-> obj root trans)) (vector-flatten! s4-0 s4-0 (new 'static 'vector :y 1.0)) (vector-normalize! s4-0 1.0) (vector+! s4-0 s4-0 (-> obj face-vec)) (vector-normalize! s4-0 1.0) (set! (-> obj rot-y) (acos (vector-dot s4-0 (new 'static 'vector :z 1.0)))) (if (< (vector-dot s4-0 (new 'static 'vector :x 1.0)) 0.0) (set! (-> obj rot-y) (- (-> obj rot-y))) ) ) (else (set! (-> obj rot-y) (acos (vector-dot (-> obj face-vec) (new 'static 'vector :z 1.0)))) (if (< (vector-dot (-> obj face-vec) (new 'static 'vector :x 1.0)) 0.0) (set! (-> obj rot-y) (- (-> obj rot-y))) ) (set! (-> obj rot-y) (+ 16384.0 (-> obj rot-y))) ) ) ) (+! (-> obj rot-y) (res-lump-float arg0 'rotoffset)) (set-vector! (-> obj cyl axis) (cos (-> obj rot-y)) 0.0 (- (sin (-> obj rot-y))) 1.0) (vector+float*! (the-as vector (-> obj cyl)) (-> obj root trans) (-> obj cyl axis) -2048.0) (set! (-> obj cyl radius) 24576.0) (set! (-> obj cyl length) 4096.0) (cond ((and (first-ring? obj) (!= (get-task-status (-> obj entity extra perm task)) (task-status invalid)) (!= (get-task-status (-> obj entity extra perm task)) 7) ) (set! (-> obj alt-task) (res-lump-value (-> obj entity) 'alt-task uint)) (if (or (= (-> obj alt-task) 0) (= (get-task-status (the-as game-task (-> obj alt-task))) (task-status invalid))) (go race-ring-active) (go race-ring-wait) ) ) ((and (last-ring? obj) (= (get-task-status (-> obj entity extra perm task)) (task-status need-resolution))) (let ((s5-2 (new 'stack-no-clear 'vector))) (logclear! (-> obj draw status) (draw-status drwf01)) (ja-post) (vector<-cspace! s5-2 (-> obj node-list data 5)) (logior! (-> obj draw status) (draw-status drwf01)) (birth-pickup-at-point s5-2 (pickup-type fuel-cell) (the float (-> obj entity extra perm task)) #f obj (the-as fact-info #f) ) ) ) ((and (last-ring? obj) (!= (get-task-status (-> obj entity extra perm task)) (task-status invalid))) ) ) (set! (-> obj event-hook) (-> race-ring-idle event)) (go race-ring-idle) (none) )