;;-*-Lisp-*-
(in-package goal)

;; definition for function cloud-track
;; INFO: Used lq/sq
;; INFO: Return type mismatch symbol vs none.
(defbehavior cloud-track process ((arg0 process-tree)
                        (arg1 process-tree)
                        (arg2 (function vector none))
                        (arg3 time-frame)
                        (arg4 time-frame)
                        (arg5 time-frame)
                        )
  (change-parent self arg0)
  (let ((s1-1 (process->handle arg0))
        (s2-1 (process->handle arg1))
        )
    (let ((s0-0 (-> *display* base-frame-counter)))
      (until (>= (- (-> *display* base-frame-counter) s0-0) (+ arg3 arg4))
        (let ((v1-8 (or (not (handle->process s1-1)) (not (handle->process s2-1)))))
          (if v1-8
              (deactivate self)
              )
          )
        (let* ((f0-1
                 (fmax
                   0.0
                   (fmin 1.0 (/ (- (the float (- (-> *display* base-frame-counter) s0-0)) (the float arg3)) (the float arg4)))
                   )
                 )
               (a0-18 (process-drawable-pair-random-point!
                        (the-as process-drawable (-> s1-1 process 0))
                        (the-as process-drawable (-> s2-1 process 0))
                        (new-stack-vector0)
                        f0-1
                        )
                      )
               )
          (arg2 a0-18)
          )
        (suspend)
        )
      )
    (cond
      ((zero? arg5)
       (loop
         (suspend)
         )
       )
      (else
        (let ((s4-1 (-> *display* base-frame-counter)))
          (until (>= (- (-> *display* base-frame-counter) s4-1) arg5)
            (let ((a0-21 (process-drawable-random-point! (the-as process-drawable (-> s2-1 process 0)) (new-stack-vector0))))
              (arg2 a0-21)
              )
            (suspend)
            )
          )
        )
      )
    )
  (none)
  )

;; failed to figure out what this is:
(defpart 255
  :init-specs ((sp-tex spt-texture (new 'static 'texture-id :index #x12 :page #x2))
    (sp-rnd-flt spt-num 1.0 1.0 1.0)
    (sp-rnd-flt spt-scale-x (meters 1.5) (meters 0.4) 1.0)
    (sp-copy-from-other spt-scale-y -4)
    (sp-flt spt-r 64.0)
    (sp-flt spt-g 64.0)
    (sp-flt spt-b 192.0)
    (sp-flt spt-a 64.0)
    (sp-flt spt-fade-a -1.0666667)
    (sp-int spt-timer 60)
    (sp-cpuinfo-flags bit2 bit3)
    (sp-rnd-flt spt-conerot-x (degrees 0.0) (degrees 180.0) 1.0)
    (sp-rnd-flt spt-conerot-y (degrees 0.0) (degrees 360.0) 1.0)
    (sp-flt spt-conerot-radius (meters 0.5))
    )
  )

;; failed to figure out what this is:
(defpart 256
  :init-specs ((sp-tex spt-texture (new 'static 'texture-id :page #x2))
    (sp-rnd-flt spt-num 1.0 1.0 1.0)
    (sp-rnd-flt spt-scale-x (meters 1.5) (meters 0.4) 1.0)
    (sp-copy-from-other spt-scale-y -4)
    (sp-flt spt-r 64.0)
    (sp-flt spt-g 64.0)
    (sp-flt spt-b 192.0)
    (sp-flt spt-a 64.0)
    (sp-flt spt-fade-a -1.0666667)
    (sp-int spt-timer 60)
    (sp-cpuinfo-flags bit2 bit3)
    (sp-rnd-flt spt-conerot-x (degrees 0.0) (degrees 180.0) 1.0)
    (sp-rnd-flt spt-conerot-y (degrees 0.0) (degrees 360.0) 1.0)
    (sp-flt spt-conerot-radius (meters 0.5))
    )
  )

;; failed to figure out what this is:
(defpart 257
  :init-specs ((sp-tex spt-texture (new 'static 'texture-id :index #x1f :page #x2))
    (sp-rnd-flt spt-num 1.0 3.0 1.0)
    (sp-rnd-flt spt-scale-x (meters 0.5) (meters 1.5) 1.0)
    (sp-int spt-rot-x 4)
    (sp-rnd-flt spt-rot-z (degrees 0.0) (degrees 360.0) 1.0)
    (sp-rnd-flt spt-scale-y (meters 0.2) (meters 0.1) 1.0)
    (sp-flt spt-r 64.0)
    (sp-flt spt-g 64.0)
    (sp-flt spt-b 128.0)
    (sp-flt spt-a 128.0)
    (sp-flt spt-fade-a -1.6)
    (sp-int spt-timer 90)
    (sp-cpuinfo-flags bit2 bit3)
    (sp-int spt-next-time 10)
    (sp-launcher-by-id spt-next-launcher 258)
    )
  )

;; failed to figure out what this is:
(defpart 259
  :init-specs ((sp-tex spt-texture (new 'static 'texture-id :index #x1f :page #x2))
    (sp-rnd-flt spt-num 0.0 3.0 1.0)
    (sp-rnd-flt spt-scale-x (meters 1.5) (meters 1.5) 1.0)
    (sp-int spt-rot-x 4)
    (sp-rnd-flt spt-rot-z (degrees 0.0) (degrees 360.0) 1.0)
    (sp-rnd-flt spt-scale-y (meters 0.2) (meters 0.1) 1.0)
    (sp-flt spt-r 128.0)
    (sp-flt spt-g 128.0)
    (sp-flt spt-b 255.0)
    (sp-flt spt-a 128.0)
    (sp-flt spt-fade-a -1.6)
    (sp-int spt-timer 91)
    (sp-cpuinfo-flags bit2 bit3)
    (sp-int spt-next-time 10)
    (sp-launcher-by-id spt-next-launcher 258)
    )
  )

;; failed to figure out what this is:
(defpart 258
  :init-specs ((sp-flt spt-r 64.0)
    (sp-flt spt-g 64.0)
    (sp-flt spt-fade-r -1.0)
    (sp-flt spt-fade-g -0.4)
    (sp-flt spt-fade-a -2.0)
    )
  )

;; failed to figure out what this is:
(defpart 260
  :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 0.1) (meters 0.15) 1.0)
    (sp-copy-from-other spt-scale-y -4)
    (sp-flt spt-r 32.0)
    (sp-rnd-flt spt-g 32.0 64.0 1.0)
    (sp-rnd-flt spt-b 192.0 64.0 1.0)
    (sp-rnd-flt spt-a 64.0 128.0 1.0)
    (sp-flt spt-scalevel-x (meters -0.00033333333))
    (sp-copy-from-other spt-scalevel-y -4)
    (sp-flt spt-fade-a -0.2)
    (sp-flt spt-accel-y -0.06826667)
    (sp-int spt-timer 450)
    (sp-cpuinfo-flags bit0 bit2 bit3)
    )
  )

;; failed to figure out what this is:
(defpartgroup group-blue-hit-ground-effect
  :id 70
  :duration 5
  :linger-duration 450
  :bounds (static-bspherem 0 0 0 2)
  :parts ((sp-item 261) (sp-item 262) (sp-item 263 :flags (is-3d)) (sp-item 264) (sp-item 265 :flags (is-3d)))
  )

;; failed to figure out what this is:
(defpart 264
  :init-specs ((sp-tex spt-texture (new 'static 'texture-id :index #x12 :page #x2))
    (sp-flt spt-num 32.0)
    (sp-flt spt-y (meters 0.5))
    (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-flt spt-g 32.0 32.0 1.0)
    (sp-rnd-flt spt-b 192.0 63.0 1.0)
    (sp-rnd-int spt-a 0 63 1.0)
    (sp-flt spt-vel-y (meters 0.093333334))
    (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 266)
    (sp-flt spt-conerot-x (degrees 90.0))
    (sp-rnd-flt spt-conerot-y (degrees 0.0) (degrees 360.0) 1.0)
    (sp-flt spt-conerot-radius (meters 0))
    )
  )

;; failed to figure out what this is:
(defpart 266
  :init-specs ((sp-flt spt-r 0.0)
    (sp-rnd-flt spt-g 32.0 32.0 1.0)
    (sp-rnd-flt spt-b 192.0 63.0 1.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 266)
    )
  )

;; failed to figure out what this is:
(defpart 265
  :init-specs ((sp-tex spt-texture (new 'static 'texture-id :index #x1e :page #x2))
    (sp-flt spt-num 1.0)
    (sp-flt spt-y (meters 0.5))
    (sp-flt spt-scale-x (meters 0))
    (sp-copy-from-other spt-scale-y -4)
    (sp-flt spt-r 0.0)
    (sp-rnd-flt spt-g 32.0 32.0 1.0)
    (sp-rnd-flt spt-b 192.0 63.0 1.0)
    (sp-rnd-flt spt-a 96.0 32.0 1.0)
    (sp-flt spt-scalevel-x (meters 0.21333334))
    (sp-copy-from-other spt-scalevel-y -4)
    (sp-int spt-timer 120)
    (sp-cpuinfo-flags bit2 bit3 left-multiply-quat)
    (sp-int spt-next-time 60)
    (sp-launcher-by-id spt-next-launcher 267)
    )
  )

;; failed to figure out what this is:
(defpart 267
  :init-specs ((sp-flt spt-fade-a -2.1333334))
  )

;; failed to figure out what this is:
(defpart 263
  :init-specs ((sp-tex spt-texture (new 'static 'texture-id :index #x4 :page #x2))
    (sp-flt spt-num 1.0)
    (sp-flt spt-y (meters 0.5))
    (sp-flt spt-scale-x (meters 0))
    (sp-copy-from-other spt-scale-y -4)
    (sp-flt spt-r 0.0)
    (sp-rnd-flt spt-g 32.0 32.0 1.0)
    (sp-rnd-flt spt-b 192.0 63.0 1.0)
    (sp-rnd-flt spt-a 32.0 32.0 1.0)
    (sp-flt spt-scalevel-x (meters 0.22666667))
    (sp-copy-from-other spt-scalevel-y -4)
    (sp-flt spt-fade-a -0.7111111)
    (sp-int spt-timer 90)
    (sp-cpuinfo-flags bit2 bit3 left-multiply-quat)
    (sp-int spt-next-time 45)
    (sp-launcher-by-id spt-next-launcher 268)
    )
  )

;; failed to figure out what this is:
(defpart 268
  :init-specs ((sp-flt spt-fade-a -1.4222223))
  )

;; failed to figure out what this is:
(defpart 261
  :init-specs ((sp-tex spt-texture (new 'static 'texture-id :page #x2))
    (sp-flt spt-num 32.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-flt spt-g 32.0 32.0 1.0)
    (sp-rnd-flt spt-b 192.0 63.0 1.0)
    (sp-rnd-flt spt-a 16.0 32.0 1.0)
    (sp-rnd-flt spt-vel-y (meters 0.053333335) (meters 0.026666667) 1.0)
    (sp-flt spt-scalevel-x (meters 0.0033333334))
    (sp-rnd-flt spt-rotvel-z (degrees -0.2) (degrees 0.4) 1.0)
    (sp-copy-from-other spt-scalevel-y -4)
    (sp-flt spt-fade-a -0.16)
    (sp-flt spt-accel-y -1.3653333)
    (sp-flt spt-friction 0.95)
    (sp-int spt-timer 300)
    (sp-cpuinfo-flags bit2 bit12)
    (sp-rnd-flt spt-conerot-x (degrees 60.0) (degrees 30.0) 1.0)
    (sp-rnd-flt spt-conerot-y (degrees 0.0) (degrees 360.0) 1.0)
    )
  )

;; failed to figure out what this is:
(defpart 262
  :init-specs ((sp-tex spt-texture (new 'static 'texture-id :page #x2))
    (sp-flt spt-num 12.0)
    (sp-rnd-flt spt-scale-x (meters 0.5) (meters 0.25) 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-flt spt-g 32.0 32.0 1.0)
    (sp-rnd-flt spt-b 192.0 63.0 1.0)
    (sp-rnd-flt spt-a 16.0 16.0 1.0)
    (sp-rnd-flt spt-vel-y (meters 0.10666667) (meters 0.053333335) 1.0)
    (sp-flt spt-scalevel-x (meters 0.0016666667))
    (sp-rnd-flt spt-rotvel-z (degrees -0.2) (degrees 0.4) 1.0)
    (sp-copy-from-other spt-scalevel-y -4)
    (sp-flt spt-fade-a -0.21333334)
    (sp-flt spt-accel-y -1.3653333)
    (sp-flt spt-friction 0.95)
    (sp-int spt-timer 150)
    (sp-cpuinfo-flags bit2 bit12)
    (sp-rnd-flt spt-conerot-x (degrees 60.0) (degrees 30.0) 1.0)
    (sp-rnd-flt spt-conerot-y (degrees 0.0) (degrees 360.0) 1.0)
    )
  )

;; failed to figure out what this is:
(defpart 269
  :init-specs ((sp-tex spt-texture (new 'static 'texture-id :index #x12 :page #x2))
    (sp-rnd-flt spt-num 1.0 1.0 1.0)
    (sp-rnd-flt spt-scale-x (meters 1.5) (meters 0.4) 1.0)
    (sp-copy-from-other spt-scale-y -4)
    (sp-rnd-flt spt-r 92.0 32.0 1.0)
    (sp-rnd-flt spt-g 32.0 92.0 1.0)
    (sp-flt spt-b 0.0)
    (sp-flt spt-a 64.0)
    (sp-flt spt-fade-a -1.0)
    (sp-int spt-timer 60)
    (sp-cpuinfo-flags bit2 bit3)
    (sp-rnd-flt spt-conerot-x (degrees 0.0) (degrees 180.0) 1.0)
    (sp-rnd-flt spt-conerot-y (degrees 0.0) (degrees 360.0) 1.0)
    (sp-flt spt-conerot-radius (meters 0.5))
    )
  )

;; failed to figure out what this is:
(defpart 270
  :init-specs ((sp-tex spt-texture (new 'static 'texture-id :page #x2))
    (sp-rnd-flt spt-num 1.0 1.0 1.0)
    (sp-rnd-flt spt-scale-x (meters 1.5) (meters 0.4) 1.0)
    (sp-copy-from-other spt-scale-y -4)
    (sp-rnd-flt spt-r 92.0 32.0 1.0)
    (sp-rnd-flt spt-g 32.0 92.0 1.0)
    (sp-flt spt-b 0.0)
    (sp-flt spt-a 64.0)
    (sp-flt spt-fade-a -1.0)
    (sp-int spt-timer 60)
    (sp-cpuinfo-flags bit2 bit3)
    (sp-rnd-flt spt-conerot-x (degrees 0.0) (degrees 180.0) 1.0)
    (sp-rnd-flt spt-conerot-y (degrees 0.0) (degrees 360.0) 1.0)
    (sp-flt spt-conerot-radius (meters 0.5))
    )
  )

;; failed to figure out what this is:
(defpart 271
  :init-specs ((sp-tex spt-texture (new 'static 'texture-id :index #xf :page #x2))
    (sp-rnd-flt spt-num 0.5 2.0 1.0)
    (sp-flt spt-y (meters -0.05))
    (sp-rnd-flt spt-scale-x (meters 0.2) (meters 0.1) 1.0)
    (sp-copy-from-other spt-scale-y -4)
    (sp-rnd-flt spt-r 100.0 28.0 1.0)
    (sp-rnd-flt spt-g 64.0 64.0 1.0)
    (sp-flt spt-b 0.0)
    (sp-rnd-flt spt-a 64.0 64.0 1.0)
    (sp-rnd-flt spt-vel-y (meters 0.0023333333) (meters 0.0016666667) 1.0)
    (sp-flt spt-scalevel-x (meters -0.00083333335))
    (sp-copy-from-other spt-scalevel-y -4)
    (sp-flt spt-fade-g -0.4)
    (sp-flt spt-fade-a -0.024242423)
    (sp-rnd-flt spt-accel-y -0.40960002 -1.2288 1.0)
    (sp-flt spt-friction 0.93)
    (sp-int-plain-rnd spt-timer 30 209 1)
    (sp-cpuinfo-flags bit2 bit3)
    (sp-int spt-next-time 90)
    (sp-launcher-by-id spt-next-launcher 272)
    (sp-rnd-flt spt-conerot-x (degrees 0.0) (degrees 180.0) 1.0)
    (sp-rnd-flt spt-conerot-y (degrees 0.0) (degrees 360.0) 1.0)
    (sp-flt spt-conerot-radius (meters 0.05))
    )
  )

;; failed to figure out what this is:
(defpart 272
  :init-specs ((sp-flt spt-fade-r 0.0))
  )

;; failed to figure out what this is:
(defpart 273
  :init-specs ((sp-tex spt-texture (new 'static 'texture-id :index #x12 :page #x2))
    (sp-rnd-flt spt-num 1.0 1.0 1.0)
    (sp-rnd-flt spt-scale-x (meters 1.5) (meters 0.4) 1.0)
    (sp-copy-from-other spt-scale-y -4)
    (sp-rnd-flt spt-r 92.0 32.0 1.0)
    (sp-flt spt-g 0.0)
    (sp-flt spt-b 0.0)
    (sp-flt spt-a 64.0)
    (sp-flt spt-fade-a -1.0)
    (sp-int spt-timer 60)
    (sp-cpuinfo-flags bit2 bit3)
    (sp-rnd-flt spt-conerot-x (degrees 0.0) (degrees 180.0) 1.0)
    (sp-rnd-flt spt-conerot-y (degrees 0.0) (degrees 360.0) 1.0)
    (sp-flt spt-conerot-radius (meters 0.5))
    )
  )

;; failed to figure out what this is:
(defpart 274
  :init-specs ((sp-tex spt-texture (new 'static 'texture-id :page #x2))
    (sp-rnd-flt spt-num 1.0 1.0 1.0)
    (sp-rnd-flt spt-scale-x (meters 1.5) (meters 0.4) 1.0)
    (sp-copy-from-other spt-scale-y -4)
    (sp-rnd-flt spt-r 92.0 32.0 1.0)
    (sp-flt spt-g 0.0)
    (sp-flt spt-b 0.0)
    (sp-flt spt-a 64.0)
    (sp-flt spt-fade-a -1.0)
    (sp-int spt-timer 60)
    (sp-cpuinfo-flags bit2 bit3)
    (sp-rnd-flt spt-conerot-x (degrees 0.0) (degrees 180.0) 1.0)
    (sp-rnd-flt spt-conerot-y (degrees 0.0) (degrees 360.0) 1.0)
    (sp-flt spt-conerot-radius (meters 0.5))
    )
  )

;; failed to figure out what this is:
(defpart 275
  :init-specs ((sp-tex spt-texture (new 'static 'texture-id :index #xf :page #x2))
    (sp-rnd-flt spt-num 0.5 2.0 1.0)
    (sp-flt spt-y (meters -0.05))
    (sp-rnd-flt spt-scale-x (meters 0.2) (meters 0.1) 1.0)
    (sp-copy-from-other spt-scale-y -4)
    (sp-rnd-flt spt-r 100.0 28.0 1.0)
    (sp-flt spt-g 0.0)
    (sp-flt spt-b 0.0)
    (sp-rnd-flt spt-a 64.0 64.0 1.0)
    (sp-rnd-flt spt-vel-y (meters 0.0023333333) (meters 0.0016666667) 1.0)
    (sp-flt spt-scalevel-x (meters -0.00083333335))
    (sp-copy-from-other spt-scalevel-y -4)
    (sp-flt spt-fade-g -0.4)
    (sp-flt spt-fade-a -0.024242423)
    (sp-rnd-flt spt-accel-y -0.40960002 -1.2288 1.0)
    (sp-flt spt-friction 0.93)
    (sp-int-plain-rnd spt-timer 30 209 1)
    (sp-cpuinfo-flags bit2 bit3)
    (sp-int spt-next-time 90)
    (sp-launcher-by-id spt-next-launcher 276)
    (sp-rnd-flt spt-conerot-x (degrees 0.0) (degrees 180.0) 1.0)
    (sp-rnd-flt spt-conerot-y (degrees 0.0) (degrees 360.0) 1.0)
    (sp-flt spt-conerot-radius (meters 0.05))
    )
  )

;; failed to figure out what this is:
(defpart 276
  :init-specs ((sp-flt spt-fade-r 0.0))
  )

;; failed to figure out what this is:
(defpart 277
  :init-specs ((sp-tex spt-texture (new 'static 'texture-id :index #x12 :page #x2))
    (sp-rnd-flt spt-num 1.0 1.0 1.0)
    (sp-rnd-flt spt-scale-x (meters 1.5) (meters 0.4) 1.0)
    (sp-copy-from-other spt-scale-y -4)
    (sp-flt spt-r 0.0)
    (sp-rnd-flt spt-g 92.0 32.0 1.0)
    (sp-flt spt-b 0.0)
    (sp-flt spt-a 64.0)
    (sp-flt spt-fade-a -1.0)
    (sp-int spt-timer 60)
    (sp-cpuinfo-flags bit2 bit3)
    (sp-rnd-flt spt-conerot-x (degrees 0.0) (degrees 180.0) 1.0)
    (sp-rnd-flt spt-conerot-y (degrees 0.0) (degrees 360.0) 1.0)
    (sp-flt spt-conerot-radius (meters 0.5))
    )
  )

;; failed to figure out what this is:
(defpart 278
  :init-specs ((sp-tex spt-texture (new 'static 'texture-id :page #x2))
    (sp-rnd-flt spt-num 1.0 1.0 1.0)
    (sp-rnd-flt spt-scale-x (meters 1.5) (meters 0.4) 1.0)
    (sp-copy-from-other spt-scale-y -4)
    (sp-flt spt-r 0.0)
    (sp-rnd-flt spt-g 92.0 32.0 1.0)
    (sp-flt spt-b 0.0)
    (sp-flt spt-a 64.0)
    (sp-flt spt-fade-a -1.0)
    (sp-int spt-timer 60)
    (sp-cpuinfo-flags bit2 bit3)
    (sp-rnd-flt spt-conerot-x (degrees 0.0) (degrees 180.0) 1.0)
    (sp-rnd-flt spt-conerot-y (degrees 0.0) (degrees 360.0) 1.0)
    (sp-flt spt-conerot-radius (meters 0.5))
    )
  )

;; failed to figure out what this is:
(defpart 279
  :init-specs ((sp-tex spt-texture (new 'static 'texture-id :index #xf :page #x2))
    (sp-rnd-flt spt-num 0.5 2.0 1.0)
    (sp-flt spt-y (meters -0.05))
    (sp-rnd-flt spt-scale-x (meters 0.2) (meters 0.1) 1.0)
    (sp-copy-from-other spt-scale-y -4)
    (sp-flt spt-r 0.0)
    (sp-rnd-flt spt-g 100.0 28.0 1.0)
    (sp-flt spt-b 0.0)
    (sp-rnd-flt spt-a 64.0 64.0 1.0)
    (sp-rnd-flt spt-vel-y (meters 0.0023333333) (meters 0.0016666667) 1.0)
    (sp-flt spt-scalevel-x (meters -0.00083333335))
    (sp-copy-from-other spt-scalevel-y -4)
    (sp-flt spt-fade-g -0.4)
    (sp-flt spt-fade-a -0.024242423)
    (sp-rnd-flt spt-accel-y -0.40960002 -1.2288 1.0)
    (sp-flt spt-friction 0.93)
    (sp-int-plain-rnd spt-timer 30 209 1)
    (sp-cpuinfo-flags bit2 bit3)
    (sp-int spt-next-time 90)
    (sp-launcher-by-id spt-next-launcher 280)
    (sp-rnd-flt spt-conerot-x (degrees 0.0) (degrees 180.0) 1.0)
    (sp-rnd-flt spt-conerot-y (degrees 0.0) (degrees 360.0) 1.0)
    (sp-flt spt-conerot-radius (meters 0.05))
    )
  )

;; failed to figure out what this is:
(defpart 280
  :init-specs ((sp-flt spt-fade-g 0.0))
  )

;; definition for function eco-blue-glow
;; INFO: Return type mismatch int vs none.
(defun eco-blue-glow ((arg0 vector))
  (sp-launch-particles-var
    *sp-particle-system-2d*
    (-> *part-id-table* 255)
    arg0
    (the-as sparticle-launch-state #f)
    (the-as sparticle-launch-control #f)
    1.0
    )
  (if (rand-vu-percent? 0.5)
      (sp-launch-particles-var
        *sp-particle-system-2d*
        (-> *part-id-table* 257)
        arg0
        (the-as sparticle-launch-state #f)
        (the-as sparticle-launch-control #f)
        1.0
        )
      )
  0
  (none)
  )

;; definition for function target-powerup-process
;; INFO: Return type mismatch int vs none.
(defbehavior target-powerup-process target ()
  (dummy-10 (-> self water))
  (when (not *weather-off*)
    (case (-> self current-level name)
      (('swamp)
       (update-rain self)
       )
      (('snow)
       (update-snow self)
       )
      )
    )
  (cond
    ((and (= (-> self control ground-pat material) (pat-material ice))
          (and (>= (-> self control unknown-float01) 204.8)
               (< (- (-> *display* base-frame-counter) (-> self control unknown-dword11)) (seconds 0.05))
               )
          )
     (let ((gp-0 (vector<-cspace! (new 'stack-no-clear 'vector) (-> self node-list data 74))))
       (if (and (< (fabs
                     (vector-dot
                       (-> self control dynam gravity-normal)
                       (vector-! (new 'stack-no-clear 'vector) gp-0 (-> self control trans))
                       )
                     )
                   819.2
                   )
                (rand-vu-percent? 0.5)
                )
           (sp-launch-particles-var
             *sp-particle-system-3d*
             (-> *part-id-table* 2391)
             gp-0
             (the-as sparticle-launch-state #f)
             (the-as sparticle-launch-control #f)
             1.0
             )
           )
       )
     (let ((gp-1 (vector<-cspace! (new 'stack-no-clear 'vector) (-> self node-list data 70))))
       (if (and (< (fabs
                     (vector-dot
                       (-> self control dynam gravity-normal)
                       (vector-! (new 'stack-no-clear 'vector) gp-1 (-> self control trans))
                       )
                     )
                   819.2
                   )
                (rand-vu-percent? 0.5)
                )
           (sp-launch-particles-var
             *sp-particle-system-3d*
             (-> *part-id-table* 2391)
             gp-1
             (the-as sparticle-launch-state #f)
             (the-as sparticle-launch-control #f)
             1.0
             )
           )
       )
     (let ((f0-8 (lerp-scale 60.0 90.0 (-> self control unknown-float01) 0.0 81920.0)))
       (if (not (ja-group? (-> self draw art-group data 104)))
           (set! f0-8 (* 0.75 f0-8))
           )
       (seek! (-> self control unknown-float141) f0-8 (* 100.0 (-> *display* seconds-per-frame)))
       )
     (let ((f30-0 (-> self control unknown-float141))
           (f0-13 (lerp-scale -0.3 0.3 (-> self control unknown-float01) 0.0 81920.0))
           )
       (sound-play
         "ice-loop"
         :id (-> self control unknown-soundid00)
         :vol f30-0
         :pitch f0-13
         :position (the-as symbol (-> self control trans))
         )
       )
     )
    ((< 0.0 (-> self control unknown-float141))
     (set! (-> self control unknown-float141) 0.0)
     (let ((v1-64 (the-as sound-rpc-set-param (get-sound-buffer-entry))))
       (set! (-> v1-64 command) (sound-command set-param))
       (set! (-> v1-64 id) (-> self control unknown-soundid00))
       (set! (-> v1-64 parms volume) -4)
       (set! (-> v1-64 auto-time) 48)
       (set! (-> v1-64 auto-from) 2)
       (set! (-> v1-64 parms mask) (sound-mask volume time))
       (-> v1-64 id)
       )
     )
    )
  (let ((v1-67 (-> *time-of-day-context* current-shadow))
        (a0-33 (-> self draw shadow-ctrl))
        )
    (set! (-> a0-33 settings shadow-dir x) (-> v1-67 x))
    (set! (-> a0-33 settings shadow-dir y) (-> v1-67 y))
    (set! (-> a0-33 settings shadow-dir z) (-> v1-67 z))
    )
  (when (and (!= (-> self fact-info-target eco-level) 0.0)
             (>= (- (-> *display* game-frame-counter) (-> self fact-info-target eco-pickup-time))
                 (the-as time-frame (-> self fact-info-target eco-timeout))
                 )
             )
    (set! (-> self fact-info-target eco-level) 0.0)
    (set! (-> self fact-info-target eco-timeout) 0)
    (logclear! (-> self state-flags) (state-flags invuln-powerup))
    (send-event self 'reset-collide)
    (stop! (-> self sound))
    )
  (when (and (< 0.0 (-> self fact-info-target eco-level))
             (zero? (logand (-> self state-flags) (state-flags first-person-mode)))
             (zero? (logand (-> self draw status) (draw-status hidden no-anim)))
             (not (movie?))
             (rand-vu-percent?
               (lerp-scale
                 0.0
                 1.0
                 (the float (- (-> self fact-info-target eco-timeout)
                               (the-as uint (- (-> *display* game-frame-counter) (-> self fact-info-target eco-pickup-time)))
                               )
                      )
                 0.0
                 900.0
                 )
               )
             )
    (case (-> self fact-info-target eco-type)
      (((pickup-type eco-yellow))
       (change-sound! (-> self sound) (static-sound-name "yel-eco-jak"))
       (let ((s4-0 (rand-vu-int-range 3 (+ (-> self node-list length) -1))))
         (sp-launch-particles-var
           *sp-particle-system-2d*
           (-> *part-id-table* (if (rand-vu-percent? 0.5)
                                   269
                                   270
                                   )
               )
           (vector<-cspace! (new 'stack-no-clear 'vector) (-> self node-list data s4-0))
           (the-as sparticle-launch-state #f)
           (the-as sparticle-launch-control #f)
           1.0
           )
         )
       (dotimes (gp-4 2)
         (let ((v1-111 (rand-vu-int-range 3 (+ (-> self node-list length) -1))))
           (sp-launch-particles-var
             *sp-particle-system-2d*
             (-> *part-id-table* 271)
             (vector<-cspace! (new 'stack-no-clear 'vector) (-> self node-list data v1-111))
             (the-as sparticle-launch-state #f)
             (the-as sparticle-launch-control #f)
             1.0
             )
           )
         )
       )
      (((pickup-type eco-red))
       (target-danger-set! (-> self control unknown-symbol30) #t)
       (update-transforms! (-> self control))
       (let ((a1-23 (new 'stack-no-clear 'touching-shapes-entry)))
         (set! (-> a1-23 cshape1) (the-as collide-shape 0))
         (set! (-> a1-23 cshape2) (the-as collide-shape *touching-list*))
         (find-overlapping-shapes (-> self control) (the-as overlaps-others-params a1-23))
         )
       (target-danger-set! (-> self control unknown-symbol30) #f)
       (update-transforms! (-> self control))
       (change-sound! (-> self sound) (static-sound-name "red-eco-jak"))
       (let ((s4-2 (rand-vu-int-range 3 (+ (-> self node-list length) -1))))
         (sp-launch-particles-var
           *sp-particle-system-2d*
           (-> *part-id-table* (if (rand-vu-percent? 0.5)
                                   273
                                   274
                                   )
               )
           (vector<-cspace! (new 'stack-no-clear 'vector) (-> self node-list data s4-2))
           (the-as sparticle-launch-state #f)
           (the-as sparticle-launch-control #f)
           1.0
           )
         )
       (dotimes (gp-6 2)
         (let ((v1-139 (rand-vu-int-range 3 (+ (-> self node-list length) -1))))
           (sp-launch-particles-var
             *sp-particle-system-2d*
             (-> *part-id-table* 275)
             (vector<-cspace! (new 'stack-no-clear 'vector) (-> self node-list data v1-139))
             (the-as sparticle-launch-state #f)
             (the-as sparticle-launch-control #f)
             1.0
             )
           )
         )
       )
      (((pickup-type eco-blue))
       (change-sound! (-> self sound) (static-sound-name "blue-eco-jak"))
       (let ((v1-150 (rand-vu-int-range 3 (+ (-> self node-list length) -1))))
         (cond
           ((and (logtest? (-> self control unknown-surface00 flags) (surface-flags jump))
                 (zero? (logand (-> self control status) (cshape-moving-flags onsurf)))
                 )
            (set! (-> *part-id-table* 259 init-specs 4 initial-valuef) 0.0)
            (set! (-> *part-id-table* 259 init-specs 4 random-rangef) 65536.0)
            )
           (else
             (set! (-> *part-id-table* 259 init-specs 4 initial-valuef) 40960.0)
             (set! (-> *part-id-table* 259 init-specs 4 random-rangef) 16384.0)
             )
           )
         (sp-launch-particles-var
           *sp-particle-system-2d*
           (-> *part-id-table* 259)
           (vector<-cspace! (new 'stack-no-clear 'vector) (-> self node-list data v1-150))
           (the-as sparticle-launch-state #f)
           (the-as sparticle-launch-control #f)
           1.0
           )
         )
       (let ((gp-8 (rand-vu-int-range 3 (+ (-> self node-list length) -1))))
         (sp-launch-particles-var
           *sp-particle-system-2d*
           (-> *part-id-table* (if (rand-vu-percent? 0.5)
                                   255
                                   256
                                   )
               )
           (vector<-cspace! (new 'stack-no-clear 'vector) (-> self node-list data gp-8))
           (the-as sparticle-launch-state #f)
           (the-as sparticle-launch-control #f)
           1.0
           )
         (if (rand-vu-percent? 0.5)
             (sp-launch-particles-var
               *sp-particle-system-2d*
               (-> *part-id-table* 257)
               (vector<-cspace! (new 'stack-no-clear 'vector) (-> self node-list data gp-8))
               (the-as sparticle-launch-state #f)
               (the-as sparticle-launch-control #f)
               1.0
               )
             )
         )
       (let ((v1-168 (rand-vu-int-range 3 (+ (-> self node-list length) -1))))
         (sp-launch-particles-var
           *sp-particle-system-2d*
           (-> *part-id-table* 260)
           (vector<-cspace! (new 'stack-no-clear 'vector) (-> self node-list data v1-168))
           (the-as sparticle-launch-state #f)
           (the-as sparticle-launch-control #f)
           1.0
           )
         )
       (cpad-set-buzz! (-> *cpad-list* cpads 0) 0 1 (seconds 0.1))
       )
      (((pickup-type eco-green))
       (change-sound! (-> self sound) (static-sound-name "green-eco-jak"))
       (let ((s4-8 (rand-vu-int-range 3 (+ (-> self node-list length) -1))))
         (sp-launch-particles-var
           *sp-particle-system-2d*
           (-> *part-id-table* (if (rand-vu-percent? 0.5)
                                   277
                                   278
                                   )
               )
           (vector<-cspace! (new 'stack-no-clear 'vector) (-> self node-list data s4-8))
           (the-as sparticle-launch-state #f)
           (the-as sparticle-launch-control #f)
           1.0
           )
         )
       (dotimes (gp-11 2)
         (let ((v1-188 (rand-vu-int-range 3 (+ (-> self node-list length) -1))))
           (sp-launch-particles-var
             *sp-particle-system-2d*
             (-> *part-id-table* 279)
             (vector<-cspace! (new 'stack-no-clear 'vector) (-> self node-list data v1-188))
             (the-as sparticle-launch-state #f)
             (the-as sparticle-launch-control #f)
             1.0
             )
           )
         )
       )
      )
    (update-trans! (-> self sound) (-> self control trans))
    (update! (-> self sound))
    )
  0
  (none)
  )

;; definition for function target-powerup-effect
;; INFO: Return type mismatch int vs none.
(defbehavior target-powerup-effect target ((arg0 symbol))
  (case arg0
    (('eco-blue)
     (let ((v1-4 (rand-vu-int-range 3 (+ (-> self node-list length) -1))))
       (eco-blue-glow (vector<-cspace! (new 'stack-no-clear 'vector) (-> self node-list data v1-4)))
       )
     )
    )
  0
  (none)
  )
