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

;; name: mine-scenes.gc
;; name in dgo: mine-scenes
;; dgos: MIA

(define-extern *range-explo-door-dust-color* curve-color-fast)
(define-extern *range-explo-door-dust-alpha* curve2d-fast)
(define-extern *range-explo-door-dust-scale-x* curve2d-fast)
(define-extern *range-explo-door-dust-scale-y* curve2d-fast)
(define-extern *curve-explo-door-dust-alpha* curve2d-fast)
(define-extern *curve-explo-door-dust-scale-x* curve2d-fast)
(define-extern *curve-explo-door-dust-scale-y* curve2d-fast)
(define-extern *part-bomb-door-explosion-dust-in-curve-settings* particle-curve-settings)
(define-extern *range-explo-door-color* curve-color-fast)
(define-extern *range-explo-door-alpha* curve2d-fast)
(define-extern *range-explo-door-scale-x* curve2d-fast)
(define-extern *range-explo-door-scale-y* curve2d-fast)
(define-extern *curve-explo-door-alpha* curve2d-fast)
(define-extern *curve-explo-door-scale-x* curve2d-fast)
(define-extern *curve-explo-door-scale-y* curve2d-fast)
(define-extern *part-bomb-door-explosion-texture-curve-settings* particle-curve-settings)

;; DECOMP BEGINS

(defskelgroup skel-leggings-fma leggings-fma leggings-fma-lod0-jg leggings-fma-idle-ja
              ((leggings-fma-lod0-mg (meters 999999)))
              :bounds (static-spherem 0 0 0 10)
              :origin-joint-index 3
              )

(defskelgroup skel-min-elevator-movie min-elevator min-elevator-lod0-jg min-elevator-idle-ja
              ((min-elevator-lod0-mg (meters 999999)))
              :bounds (static-spherem 0 0 0 11)
              :origin-joint-index 3
              )

(defpartgroup group-min-door-explode
  :id 609
  :duration (seconds 3)
  :linger-duration (seconds 2)
  :flags (sp0)
  :bounds (static-bspherem 0 0 0 2)
  :parts ((sp-item 2370 :flags (sp3) :period (seconds 30) :length (seconds 0.035))
    (sp-item 2371 :period (seconds 30) :length (seconds 0.035))
    (sp-item 2372 :flags (sp3) :period (seconds 30) :length (seconds 0.017))
    (sp-item 2373 :period (seconds 30) :length (seconds 0.667))
    (sp-item 2374 :period (seconds 30) :length (seconds 0.667))
    (sp-item 2375 :flags (sp3) :period (seconds 30) :length (seconds 0.017))
    )
  )

(defpart 2370
  :init-specs ((:texture (glow-soft level-default-sprite))
    (:num 1.0)
    (:scale-x (meters 60))
    (:rot-x (degrees 225))
    (:scale-y :copy scale-x)
    (:r 255.0)
    (:g 128.0)
    (:b 100.0)
    (:a 128.0)
    (:omega (degrees 18011.25))
    (:fade-a -0.21333334)
    (:timer (seconds 2))
    (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 sp-cpuinfo-flag-14 glow))
    (:userdata 40960.0)
    )
  )

(defpart 2371
  :init-specs ((:texture (edge-cloud level-default-sprite))
    (:birth-func 'birth-func-curve)
    (:num 30.0)
    (:scale-x (meters 1))
    (:rot-z (degrees 0) (degrees 360))
    (:scale-y :copy scale-x)
    (:r 1.0)
    (:g 1.0)
    (:b 128.0)
    (:a 128.0)
    (:vel-y (meters 0.1))
    (:friction 0.97)
    (:timer (seconds 2))
    (:flags (sp-cpuinfo-flag-13 sp-cpuinfo-flag-14))
    (:userdata 0.0)
    (:func 'live-func-curve)
    (:conerot-x (degrees 0) (degrees 360))
    (:conerot-z (degrees 0) (degrees 360))
    (:rotate-y (degrees 0) (degrees 3600))
    )
  )

(if #t
    (set! *range-explo-door-dust-color* (new 'static 'curve-color-fast
                                          :xs (new 'static 'vector :y -1.0 :z -2.0 :w -3.0)
                                          :ys (new 'static 'inline-array vector 4
                                            (new 'static 'vector :x 90.0 :y 90.0 :z 90.0 :w 128.0)
                                            (new 'static 'vector :x 40.0 :y 40.0 :z 40.0 :w 128.0)
                                            (new 'static 'vector :x 40.0 :y 40.0 :z 40.0 :w 128.0)
                                            (new 'static 'vector :x 40.0 :y 40.0 :z 40.0 :w 128.0)
                                            )
                                          :one-over-x-deltas (new 'static 'vector :x 1.0 :y 1.0 :z 1.0 :w 1.0)
                                          )
          )
    )

(if #t
    (set! *range-explo-door-dust-alpha* (new 'static 'curve2d-fast
                                          :xs (new 'static 'vector :y -1.0 :z -2.0 :w -3.0)
                                          :ys (new 'static 'vector :x 80.0 :y 64.0 :z 65.0 :w 66.0)
                                          :one-over-x-deltas (new 'static 'vector :x -16.0 :y 1.0 :z 1.0 :w 1.0)
                                          )
          )
    )

(if #t
    (set! *range-explo-door-dust-scale-x* (new 'static 'curve2d-fast
                                            :xs (new 'static 'vector :y -1.0 :z -2.0 :w -3.0)
                                            :ys (new 'static 'vector :x 16.0 :y 20.0 :z 21.0 :w 22.0)
                                            :one-over-x-deltas (new 'static 'vector :x 4.0 :y 1.0 :z 1.0 :w 1.0)
                                            )
          )
    )

(if #t
    (set! *range-explo-door-dust-scale-y* (new 'static 'curve2d-fast
                                            :xs (new 'static 'vector :y -1.0 :z -2.0 :w -3.0)
                                            :ys (new 'static 'vector :x 16.0 :y 20.0 :z 21.0 :w 22.0)
                                            :one-over-x-deltas (new 'static 'vector :x 4.0 :y 1.0 :z 1.0 :w 1.0)
                                            )
          )
    )

(if #t
    (set! *curve-explo-door-dust-alpha* (new 'static 'curve2d-fast
                                          :xs (new 'static 'vector :y -0.5 :z -1.0 :w -2.0)
                                          :ys (new 'static 'vector :y 1.0 :w 1.0)
                                          :one-over-x-deltas (new 'static 'vector :x 2.0 :y -2.0 :z 1.0 :w 1.0)
                                          )
          )
    )

(if #t
    (set! *curve-explo-door-dust-scale-x* (new 'static 'curve2d-fast
                                            :xs (new 'static 'vector :y -0.5 :z -1.0 :w -2.0)
                                            :ys (new 'static 'vector :x 0.2 :y 0.8 :z 1.2 :w 2.2)
                                            :one-over-x-deltas (new 'static 'vector :x 1.2 :y 0.8000001 :z 1.0 :w 1.0)
                                            )
          )
    )

(if #t
    (set! *curve-explo-door-dust-scale-y* (new 'static 'curve2d-fast
                                            :xs (new 'static 'vector :y -0.5 :z -1.0 :w -2.0)
                                            :ys (new 'static 'vector :x 0.2 :y 0.8 :z 1.2 :w 2.2)
                                            :one-over-x-deltas (new 'static 'vector :x 1.2 :y 0.8000001 :z 1.0 :w 1.0)
                                            )
          )
    )

(define *part-bomb-door-explosion-dust-in-curve-settings* (new 'static 'particle-curve-settings
                                                            :lifetime-base (seconds 1)
                                                            :lifetime-offset (seconds 4)
                                                            :flags (particle-curve-flags pcf0)
                                                            )
        )

(set! (-> *part-id-table* 2371 init-specs 14 initial-valuef)
      (the-as float *part-bomb-door-explosion-dust-in-curve-settings*)
      )

(set! (-> *part-bomb-door-explosion-dust-in-curve-settings* color-start) *range-explo-door-dust-color*)

(set! (-> *part-bomb-door-explosion-dust-in-curve-settings* alpha-start) *range-explo-door-dust-alpha*)

(set! (-> *part-bomb-door-explosion-dust-in-curve-settings* scale-x-start) *range-explo-door-dust-scale-x*)

(set! (-> *part-bomb-door-explosion-dust-in-curve-settings* scale-y-start) *range-explo-door-dust-scale-y*)

(set! (-> *part-bomb-door-explosion-dust-in-curve-settings* r-scalar) #f)

(set! (-> *part-bomb-door-explosion-dust-in-curve-settings* g-scalar) #f)

(set! (-> *part-bomb-door-explosion-dust-in-curve-settings* b-scalar) #f)

(set! (-> *part-bomb-door-explosion-dust-in-curve-settings* a-scalar) *curve-explo-door-dust-alpha*)

(set! (-> *part-bomb-door-explosion-dust-in-curve-settings* scale-x-scalar) *curve-explo-door-dust-scale-x*)

(set! (-> *part-bomb-door-explosion-dust-in-curve-settings* scale-y-scalar) *curve-explo-door-dust-scale-y*)

(defpart 2373
  :init-specs ((:texture (explosion-edge level-default-sprite))
    (:num 10.0)
    (:scale-x (meters 6) (meters 4))
    (:rot-y (degrees 0) (degrees 360))
    (:scale-y :copy scale-x)
    (:r 128.0)
    (:g 80.0 20.0)
    (:b 30.0)
    (:a 128.0)
    (:vel-y (meters 0.33333334) (meters 0.13333334))
    (:scalevel-x (meters 0.033333335))
    (:scalevel-y :copy scalevel-x)
    (:fade-g -0.13333334)
    (:fade-b -0.05)
    (:fade-a -0.21333334 -0.21333334)
    (:friction 0.85 0.05)
    (:timer (seconds 2))
    (:flags (sp-cpuinfo-flag-0 sp-cpuinfo-flag-3 sp-cpuinfo-flag-14))
    (:func 'sparticle-2d-spline-align-instant)
    (:conerot-x (degrees 0) (degrees 360))
    (:rotate-y (degrees 0) (degrees 3600))
    )
  )

(defpart 2374
  :init-specs ((:texture (explo-texture level-default-sprite))
    (:birth-func 'birth-func-curve)
    (:num 10.0)
    (:x (meters -4) (meters 8))
    (:y (meters -4) (meters 8))
    (:scale-x (meters 1))
    (:rot-z (degrees 0) (degrees 360))
    (:scale-y :copy scale-x)
    (:r 128.0)
    (:g 128.0)
    (:b 128.0)
    (:a 128.0)
    (:vel-y (meters 0.033333335))
    (:friction 0.99)
    (:timer (seconds 1))
    (:flags (sp-cpuinfo-flag-14))
    (:userdata 0.0)
    (:func 'live-func-curve)
    (:conerot-x (degrees 20) (degrees 90))
    (:rotate-y (degrees 0) (degrees 3600))
    )
  )

(if #t
    (set! *range-explo-door-color* (new 'static 'curve-color-fast
                                     :xs (new 'static 'vector :y -1.0 :z -2.0 :w -3.0)
                                     :ys (new 'static 'inline-array vector 4
                                       (new 'static 'vector :x 255.0 :y 255.0 :z 255.0 :w 128.0)
                                       (new 'static 'vector :x 255.0 :y 255.0 :z 255.0 :w 128.0)
                                       (new 'static 'vector :x 255.0 :y 255.0 :z 255.0 :w 128.0)
                                       (new 'static 'vector :x 255.0 :y 255.0 :z 255.0 :w 128.0)
                                       )
                                     :one-over-x-deltas (new 'static 'vector :x 1.0 :y 1.0 :z 1.0 :w 1.0)
                                     )
          )
    )

(if #t
    (set! *range-explo-door-alpha* (new 'static 'curve2d-fast
                                     :xs (new 'static 'vector :y -1.0 :z -2.0 :w -3.0)
                                     :ys (new 'static 'vector :x 128.0 :y 128.0 :z 129.0 :w 130.0)
                                     :one-over-x-deltas (new 'static 'vector :y 1.0 :z 1.0 :w 1.0)
                                     )
          )
    )

(if #t
    (set! *range-explo-door-scale-x* (new 'static 'curve2d-fast
                                       :xs (new 'static 'vector :y -1.0 :z -2.0 :w -3.0)
                                       :ys (new 'static 'vector :x 20.0 :y 30.0 :z 31.0 :w 32.0)
                                       :one-over-x-deltas (new 'static 'vector :x 10.0 :y 1.0 :z 1.0 :w 1.0)
                                       )
          )
    )

(if #t
    (set! *range-explo-door-scale-y* (new 'static 'curve2d-fast
                                       :xs (new 'static 'vector :y -1.0 :z -2.0 :w -3.0)
                                       :ys (new 'static 'vector :x 20.0 :y 30.0 :z 31.0 :w 32.0)
                                       :one-over-x-deltas (new 'static 'vector :x 10.0 :y 1.0 :z 1.0 :w 1.0)
                                       )
          )
    )

(if #t
    (set! *curve-explo-door-alpha* (new 'static 'curve2d-fast
                                     :xs (new 'static 'vector :y -0.05 :z -0.7 :w -1.0)
                                     :ys (new 'static 'vector :y 1.0 :z 0.8)
                                     :one-over-x-deltas (new 'static 'vector :x 20.0 :y -0.3076923 :z -2.6666665 :w 1.0)
                                     )
          )
    )

(if #t
    (set! *curve-explo-door-scale-x* (new 'static 'curve2d-fast
                                       :xs (new 'static 'vector :y -0.8 :z -1.0 :w -2.0)
                                       :ys (new 'static 'vector :y 0.9 :z 1.0 :w 2.0)
                                       :one-over-x-deltas (new 'static 'vector :x 1.125 :y 0.5000002 :z 1.0 :w 1.0)
                                       )
          )
    )

(if #t
    (set! *curve-explo-door-scale-y* (new 'static 'curve2d-fast
                                       :xs (new 'static 'vector :y -0.8 :z -1.0 :w -2.0)
                                       :ys (new 'static 'vector :y 0.9 :z 1.0 :w 2.0)
                                       :one-over-x-deltas (new 'static 'vector :x 1.125 :y 0.5000002 :z 1.0 :w 1.0)
                                       )
          )
    )

(define *part-bomb-door-explosion-texture-curve-settings* (new 'static 'particle-curve-settings
                                                            :lifetime-base (seconds 0.5)
                                                            :lifetime-offset (seconds 0.6)
                                                            :flags (particle-curve-flags pcf0)
                                                            )
        )

(set! (-> *part-id-table* 2374 init-specs 16 initial-valuef)
      (the-as float *part-bomb-door-explosion-texture-curve-settings*)
      )

(set! (-> *part-bomb-door-explosion-texture-curve-settings* color-start) *range-explo-door-color*)

(set! (-> *part-bomb-door-explosion-texture-curve-settings* alpha-start) *range-explo-door-alpha*)

(set! (-> *part-bomb-door-explosion-texture-curve-settings* scale-x-start) *range-explo-door-scale-x*)

(set! (-> *part-bomb-door-explosion-texture-curve-settings* scale-y-start) *range-explo-door-scale-y*)

(set! (-> *part-bomb-door-explosion-texture-curve-settings* r-scalar) #f)

(set! (-> *part-bomb-door-explosion-texture-curve-settings* g-scalar) #f)

(set! (-> *part-bomb-door-explosion-texture-curve-settings* b-scalar) #f)

(set! (-> *part-bomb-door-explosion-texture-curve-settings* a-scalar) *curve-explo-door-alpha*)

(set! (-> *part-bomb-door-explosion-texture-curve-settings* scale-x-scalar) *curve-explo-door-scale-x*)

(set! (-> *part-bomb-door-explosion-texture-curve-settings* scale-y-scalar) *curve-explo-door-scale-y*)

(defpart 2372
  :init-specs ((:texture (glow level-default-sprite))
    (:num 1.0)
    (:scale-x (meters 100))
    (:rot-x (degrees 225))
    (:rot-z (degrees 0) (degrees 360))
    (:scale-y :copy scale-x)
    (:r 128.0)
    (:g 128.0)
    (:b 100.0)
    (:a 128.0)
    (:omega (degrees 18011.25))
    (:scalevel-x (meters -2))
    (:scalevel-y :copy scalevel-x)
    (:timer (seconds 0.135))
    (:flags (sp-cpuinfo-flag-0 sp-cpuinfo-flag-3 glow))
    (:userdata 40960.0)
    )
  )

(defpart 2375
  :init-specs ((:texture (laser-hit2-add level-default-sprite))
    (:num 1.0)
    (:scale-x (meters 10))
    (:rot-x (degrees 225))
    (:rot-z (degrees 0) (degrees 360))
    (:scale-y :copy scale-x)
    (:r 128.0)
    (:g 128.0)
    (:b 128.0)
    (:a 128.0)
    (:omega (degrees 18011.25))
    (:scalevel-x (meters 1.3333334))
    (:scalevel-y :copy scalevel-x)
    (:fade-b -1.7066667)
    (:fade-a -1.7066667)
    (:timer (seconds 0.25))
    (:flags (sp-cpuinfo-flag-3 glow))
    (:userdata 40960.0)
    )
  )

(defpart 2376
  :init-specs ((:texture (explosion-nebula level-default-sprite))
    (:birth-func 'birth-func-texture-group)
    (:num 16.0 10.0)
    (:y (meters -2.5))
    (:scale-x (meters 3) (meters 2))
    (:rot-z (degrees 0))
    (:scale-y (meters 3.4) (meters 0.6))
    (:r 255.0)
    (:g 255.0)
    (:b 255.0)
    (:a 32.0 32.0)
    (:vel-y (meters 0) (meters 0.13333334))
    (:scalevel-x (meters 0.06666667) (meters 0.13333334))
    (:rotvel-z (degrees -0.12) (degrees 0.24))
    (:scalevel-y :copy scalevel-x)
    (:fade-r 0.0)
    (:fade-g -0.36)
    (:fade-b -4.24)
    (:fade-a -0.32)
    (:friction 0.94)
    (:timer (seconds 3.335))
    (:flags (sp-cpuinfo-flag-2))
    (:userdata :data (new 'static 'boxed-array :type int32 40 1 0 #x400000 #x400700))
    (:next-time (seconds 0.085))
    (:next-launcher 2377)
    (:conerot-x (degrees 0) (degrees 360))
    (:rotate-y (degrees 90))
    (:conerot-radius (meters 0) (meters 8))
    )
  )

(defpart 2377
  :init-specs ((:fade-r 0.0) (:fade-g 0.0) (:fade-b 0.0) (:next-time (seconds 0.017) (seconds 0.065)) (:next-launcher 2378))
  )

(defpart 2378
  :init-specs ((:scalevel-x (meters 0.016666668) (meters 0.016666668))
    (:scalevel-y :copy scalevel-x)
    (:fade-r -0.44)
    (:fade-g -2.36)
    (:fade-b -2.64)
    (:next-time (seconds 0.117) (seconds 0.047))
    (:next-launcher 2379)
    )
  )

(defpart 2379
  :init-specs ((:scalevel-x (meters 0.008333334) (meters 0.008333334))
    (:scalevel-y :copy scalevel-x)
    (:fade-r -1.2)
    (:fade-g -0.7111111)
    (:fade-b -0.2)
    (:fade-a -0.06545454 -0.06545454)
    (:next-time (seconds 0.5) (seconds 0.097))
    (:next-launcher 2380)
    )
  )

(defpart 2380
  :init-specs ((:fade-r 0.0) (:fade-g 0.0) (:fade-b 0.0) (:fade-a -0.1125))
  )

(defpart 2381
  :init-specs ((:texture (specs level-default-sprite))
    (:num 6.0 8.0)
    (:x (meters 0.25))
    (:y (meters -2.5))
    (:scale-x (meters 3) (meters 5))
    (:rot-z (degrees 0) (degrees 360))
    (:scale-y :copy scale-x)
    (:r 255.0)
    (:g 255.0)
    (:b 255.0)
    (:a 16.0 48.0)
    (:vel-y (meters 0.06666667) (meters 0.4))
    (:scalevel-x (meters 0.013333334) (meters 0.013333334))
    (:rotvel-z (degrees -0.12) (degrees 0.24))
    (:scalevel-y :copy scalevel-x)
    (:fade-r 0.0)
    (:fade-g -0.18)
    (:fade-b -2.12)
    (:accel-y (meters -0.00033333333) (meters -0.0023333333))
    (:friction 0.88 0.02)
    (:timer (seconds 10))
    (:flags (sp-cpuinfo-flag-2))
    (:next-time (seconds 0.117) (seconds 0.047))
    (:next-launcher 2382)
    (:conerot-x (degrees 0) (degrees 360))
    (:rotate-y (degrees 90))
    (:conerot-radius (meters 3) (meters 5))
    )
  )

(defpart 2382
  :init-specs ((:scalevel-x (meters 0.0016666667))
    (:scalevel-y :copy scalevel-x)
    (:fade-r 0.0)
    (:fade-g 0.02)
    (:fade-b 0.23555556)
    (:next-time (seconds 0.15) (seconds 0.047))
    (:next-launcher 2383)
    )
  )

(defpart 2383
  :init-specs ((:fade-r -0.5543478) (:fade-g -0.5543478) (:fade-b -0.5543478) (:fade-a -0.10666667 -0.10666667))
  )

(defpart 2384
  :init-specs ((:texture (bigpuff level-default-sprite))
    (:num 4.0 8.0)
    (:x (meters 0) (meters 0.6))
    (:y (meters -2.5))
    (:scale-x (meters 8.5) (meters 8))
    (:rot-z (degrees 0) (degrees 360))
    (:scale-y :copy scale-x)
    (:r 70.0 20.0)
    (:g 70.0 20.0)
    (:b 70.0 20.0)
    (:a 0.0 40.0)
    (:vel-y (meters 0) (meters 0.2))
    (:scalevel-x (meters 0.033333335) (meters 0.086666666))
    (:rotvel-z (degrees -0.12) (degrees 0.24))
    (:scalevel-y :copy scalevel-x)
    (:fade-r 3.3)
    (:fade-g 3.12)
    (:fade-b 1.18)
    (:fade-a 1.76)
    (:friction 0.89)
    (:timer (seconds 2.367))
    (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3))
    (:next-time (seconds 0.117) (seconds 0.047))
    (:next-launcher 2385)
    (:conerot-x (degrees -1440) (degrees 2880))
    (:rotate-y (degrees 90))
    )
  )

(defpart 2385
  :init-specs ((:scalevel-x (meters 0.0033333334))
    (:scalevel-y :copy scalevel-x)
    (:fade-r -0.53333336)
    (:fade-g -1.9666667)
    (:fade-b -2.2)
    (:fade-a -0.41666666)
    (:next-time (seconds 0.15) (seconds 0.047))
    (:next-launcher 2386)
    )
  )

(defpart 2386
  :init-specs ((:scalevel-x (meters 0))
    (:scalevel-y :copy scalevel-x)
    (:fade-r -0.38833332)
    (:fade-g -0.21333334)
    (:fade-b -0.028333334)
    (:fade-a -0.38833332)
    )
  )

(defpart 2387
  :init-specs ((:texture (motion-blur-part level-default-sprite))
    (:num 9.0)
    (:y (meters -2.5))
    (:scale-x (meters 4) (meters 8))
    (:rot-x 4)
    (:rot-z (degrees 0) (degrees 360))
    (:scale-y (meters 1) (meters 0.5))
    (:r 128.0 128.0)
    (:g 96.0)
    (:b 64.0)
    (:a 64.0 64.0)
    (:scalevel-x (meters 0.13333334) (meters 0.4))
    (:fade-g 1.6)
    (:fade-b 3.2)
    (:fade-a -1.6)
    (:timer (seconds 0.3))
    (:flags (sp-cpuinfo-flag-2))
    )
  )

(defpartgroup group-min-door-trailer
  :id 610
  :duration (seconds 3)
  :linger-duration (seconds 2)
  :flags (sp0 sp4)
  :bounds (static-bspherem 0 0 0 2)
  :parts ((sp-item 2388 :flags (sp7) :period (seconds 30) :length (seconds 0.5)))
  )

(defpart 2388
  :init-specs ((:texture (bigpuff level-default-sprite))
    (:num 1.0)
    (:scale-x (meters 5))
    (:rot-z (degrees 0) (degrees 360))
    (:scale-y :copy scale-x)
    (:r 128.0)
    (:g 128.0)
    (:b 128.0)
    (:a 128.0)
    (:scalevel-x (meters -0.033333335))
    (:scalevel-y :copy scalevel-x)
    (:fade-g -1.28)
    (:fade-b -2.56)
    (:timer (seconds 0.335))
    (:flags (sp-cpuinfo-flag-0 sp-cpuinfo-flag-3 sp-cpuinfo-flag-14 left-multiply-quat))
    (:next-time (seconds 0.167))
    (:next-launcher 2389)
    (:rotate-y (degrees 0))
    )
  )

(defpart 2389
  :init-specs ((:fade-g 0.0) (:fade-b 0.0))
  )

(load-scene (new 'static 'scene
              :name "catacombs-travel-res"
              :extra #f
              :info #f
              :scene-flags (scene-flags scf1 scf2 scf3 scf4)
              :mask-to-clear (process-mask movie projectile)
              :entity "scene-stage-140"
              :art-group "scenecamera"
              :anim "catacombs-travel-res"
              :parts 6
              :command-list '((0 (fadein (frame-time-30 10)) (send-event "pecker-ingame-1" 'die))
                (620 (fadeout (frame-time-30 10)))
                (10000 (task-close! "mine-explore-introduction"))
                )
              :cut-list '(40 122 255 301 440 491)
              :wait-ground-time (seconds 1)
              :actor (new 'static 'boxed-array :type scene-actor
                (new 'static 'scene-actor
                  :name "scenecamera"
                  :level #f
                  :art-group "skel-scenecamera"
                  :prefix ""
                  :draw-frames '((min max))
                  :scissor-frames '()
                  :shadow-frames '((min max))
                  :cloth-reset-frames '()
                  :cloth-commands '()
                  :camera 4
                  :shadow-flags -1
                  :shadow-volume-joint #f
                  )
                (new 'static 'scene-actor
                  :name "jakc-highres"
                  :level 'minea
                  :art-group "skel-jakc-highres"
                  :prefix ""
                  :draw-frames '((min max))
                  :scissor-frames '()
                  :shadow-frames '((min max))
                  :cloth-reset-frames '()
                  :cloth-commands '()
                  :flags #x1
                  :shadow-flags -1
                  :shadow-volume-joint #f
                  :no-draw-seg #x3a0
                  )
                (new 'static 'scene-actor
                  :name "sidekick-highres"
                  :level 'minea
                  :art-group "skel-sidekick-highres"
                  :prefix ""
                  :draw-frames '((min max))
                  :scissor-frames '()
                  :shadow-frames '((min max))
                  :cloth-reset-frames '()
                  :cloth-commands '()
                  :flags #x1
                  :shadow-flags -1
                  :shadow-volume-joint #f
                  )
                (new 'static 'scene-actor
                  :name "pecker-ingame"
                  :level 'minea
                  :art-group "skel-pecker-ingame"
                  :prefix ""
                  :draw-frames '((min max))
                  :scissor-frames '()
                  :shadow-frames '((min max))
                  :cloth-reset-frames '()
                  :cloth-commands '()
                  :flags #x1
                  :shadow-flags -1
                  :shadow-volume-joint #f
                  )
                )
              :load-point "minec-start"
              :end-point "minec-intro"
              :borrow '()
              :sfx-volume -1.0
              :music-delay 1500.0
              :on-running '(sound-play-loop "mine-amb-mov")
              :on-complete #f
              )
            )

(load-scene (new 'static 'scene
              :name "mine-explore-res"
              :extra #f
              :info #f
              :scene-flags (scene-flags scf1 scf2 scf3 scf4 scf8)
              :mask-to-clear (process-mask movie projectile)
              :entity "scene-stage-195"
              :art-group "scenecamera"
              :anim "mine-explore-res"
              :parts 3
              :command-list '((0 (fadein (frame-time-30 10)) (kill "leggings-2"))
                (140 (send-event "jakc-highres" 'segment 32 0))
                (290 (fadeout (frame-time-30 10)))
                (10000
                  (send-event self 'user-data-set! (task-closed? "mine-explore-resolution"))
                  (task-close! "mine-explore-resolution")
                  )
                )
              :cut-list '(80 140)
              :wait-ground-time (seconds 1)
              :actor (new 'static 'boxed-array :type scene-actor
                (new 'static 'scene-actor
                  :name "scenecamera"
                  :level #f
                  :art-group "skel-scenecamera"
                  :prefix ""
                  :draw-frames '((min max))
                  :scissor-frames '()
                  :shadow-frames '((min max))
                  :cloth-reset-frames '()
                  :cloth-commands '()
                  :camera 4
                  :shadow-flags -1
                  :shadow-volume-joint #f
                  )
                (new 'static 'scene-actor
                  :name "jakc-highres"
                  :level 'minea
                  :art-group "skel-jakc-highres"
                  :prefix ""
                  :draw-frames '((min max))
                  :scissor-frames '()
                  :shadow-frames '((min max))
                  :cloth-reset-frames '(140)
                  :cloth-commands '()
                  :flags #x1
                  :shadow-flags -1
                  :shadow-volume-joint #f
                  :no-draw-seg #xa0
                  )
                (new 'static 'scene-actor
                  :name "sidekick-highres"
                  :level 'minea
                  :art-group "skel-sidekick-highres"
                  :prefix ""
                  :draw-frames '((min max))
                  :scissor-frames '()
                  :shadow-frames '((min max))
                  :cloth-reset-frames '()
                  :cloth-commands '()
                  :flags #x1
                  :shadow-flags -1
                  :shadow-volume-joint #f
                  )
                (new 'static 'scene-actor
                  :name "leggings-fma"
                  :level 'minea
                  :art-group "skel-leggings-fma"
                  :prefix ""
                  :draw-frames '((min max))
                  :scissor-frames '()
                  :shadow-frames '((min max))
                  :cloth-reset-frames '()
                  :cloth-commands '()
                  :flags #x1
                  :shadow-flags -1
                  :shadow-volume-joint #f
                  )
                )
              :load-point "mineb-elevator-room"
              :end-point "mineb-after-armor"
              :borrow '()
              :sfx-volume -1.0
              :music-delay 1500.0
              :scene-task #x72
              :on-running '(sound-play-loop "mine-amb-mov")
              :on-complete '(unless (send-event self 'user-data) (talker-spawn "powup005"))
              )
            )

(load-scene (new 'static 'scene
              :name "mine-train-intro"
              :extra #f
              :info #f
              :scene-flags (scene-flags scf1 scf2 scf3 scf4)
              :mask-to-clear (process-mask movie projectile)
              :entity "scene-stage-109"
              :art-group "scenecamera"
              :anim "mine-train-intro"
              :parts 3
              :command-list '((0 (kill "min-crane-8") (kill "min-bomb-train-1"))
                (335 (fadeout (frame-time-30 15)))
                (10000 (task-close! "mine-blow-introduction") (send-event "min-bomb-elevator-1" 'trigger))
                )
              :cut-list '(95 208)
              :wait-ground-time (seconds 1)
              :actor (new 'static 'boxed-array :type scene-actor
                (new 'static 'scene-actor
                  :name "scenecamera"
                  :level #f
                  :art-group "skel-scenecamera"
                  :prefix ""
                  :draw-frames '((min max))
                  :scissor-frames '()
                  :shadow-frames '((min max))
                  :cloth-reset-frames '()
                  :cloth-commands '()
                  :camera 4
                  :shadow-flags -1
                  :shadow-volume-joint #f
                  )
                (new 'static 'scene-actor
                  :name "jakc-highres"
                  :level 'minea
                  :art-group "skel-jakc-highres"
                  :prefix ""
                  :draw-frames '((min max))
                  :scissor-frames '()
                  :shadow-frames '((min max))
                  :cloth-reset-frames '()
                  :cloth-commands '()
                  :flags #x1
                  :shadow-flags -1
                  :shadow-volume-joint #f
                  :no-draw-seg #x3a0
                  )
                (new 'static 'scene-actor
                  :name "sidekick-highres"
                  :level 'minea
                  :art-group "skel-sidekick-highres"
                  :prefix ""
                  :draw-frames '((min max))
                  :scissor-frames '()
                  :shadow-frames '((min max))
                  :cloth-reset-frames '()
                  :cloth-commands '()
                  :flags #x1
                  :shadow-flags -1
                  :shadow-volume-joint #f
                  )
                (new 'static 'scene-actor
                  :name "min-crane"
                  :level 'mineb
                  :art-group "skel-min-crane"
                  :prefix ""
                  :draw-frames '((min max))
                  :scissor-frames '()
                  :shadow-frames '((min max))
                  :cloth-reset-frames '()
                  :cloth-commands '()
                  :flags #x1
                  :shadow-flags -1
                  :shadow-volume-joint #f
                  )
                (new 'static 'scene-actor
                  :name "min-bomb-train"
                  :level 'minea
                  :art-group "skel-min-bomb-train"
                  :prefix ""
                  :draw-frames '((min max))
                  :scissor-frames '()
                  :shadow-frames '((min max))
                  :cloth-reset-frames '()
                  :cloth-commands '()
                  :flags #x1
                  :shadow-flags -1
                  :shadow-volume-joint #f
                  )
                )
              :load-point "mineb-elevator-room"
              :end-point "mineb-on-elevator"
              :borrow '()
              :sfx-volume -1.0
              :ambient-volume -1.0
              :music-delay 1500.0
              :on-running #f
              :on-complete #f
              )
            )

(load-scene
  (new 'static 'scene
    :name "comb-exit"
    :extra #f
    :info #f
    :scene-flags (scene-flags scf1 scf2 scf3 scf4)
    :mask-to-clear (process-mask movie projectile)
    :entity "scene-stage-171"
    :art-group "scenecamera"
    :anim "comb-exit"
    :parts 6
    :command-list '((0
        (kill "comb-elevator-1")
        (kill "min-elevator-7")
        (send-event "pecker-ingame-2" 'die)
        (send-event "min-elevator-movie" 'segment 1 2)
        (want-display 'minea 'display)
        )
      (105 (send-event "min-elevator-movie" 'segment 3))
      (155 (want-load 'minea 'minec))
      (526 (want-display 'minec 'display))
      (609 (send-event "min-elevator-movie" 'segment 1 2))
      (10000 (restore "comb-elevator-1") (restore "min-elevator-7") (save) (task-close! "comb-travel-resolution"))
      )
    :cut-list '(155 526 571)
    :wait-ground-time (seconds 1)
    :actor (new 'static 'boxed-array :type scene-actor
      (new 'static 'scene-actor
        :name "scenecamera"
        :level #f
        :art-group "skel-scenecamera"
        :prefix ""
        :draw-frames '((min max))
        :scissor-frames '()
        :shadow-frames '((min max))
        :cloth-reset-frames '()
        :cloth-commands '()
        :camera 4
        :shadow-flags -1
        :shadow-volume-joint #f
        )
      (new 'static 'scene-actor
        :name "jakc-highres"
        :level 'minea
        :art-group "skel-jakc-highres"
        :prefix ""
        :draw-frames '((min max))
        :scissor-frames '()
        :shadow-frames '((min max))
        :cloth-reset-frames '((145 575))
        :cloth-commands '()
        :flags #x1
        :shadow-flags -1
        :shadow-volume-joint #f
        :no-draw-seg #x80
        )
      (new 'static 'scene-actor
        :name "sidekick-highres"
        :level 'minea
        :art-group "skel-sidekick-highres"
        :prefix ""
        :draw-frames '((min max))
        :scissor-frames '()
        :shadow-frames '((min max))
        :cloth-reset-frames '()
        :cloth-commands '()
        :flags #x1
        :shadow-flags -1
        :shadow-volume-joint #f
        )
      (new 'static 'scene-actor
        :name "min-elevator-movie"
        :level 'minea
        :art-group "skel-min-elevator-movie"
        :prefix ""
        :draw-frames '((min max))
        :scissor-frames '((min max))
        :shadow-frames '((min max))
        :cloth-reset-frames '()
        :cloth-commands '()
        :light-index #x2
        :flags #x1
        :shadow-flags -1
        :shadow-volume-joint #f
        )
      (new 'static 'scene-actor
        :name "pecker-ingame"
        :level 'minea
        :art-group "skel-pecker-ingame"
        :prefix ""
        :draw-frames '((min max))
        :scissor-frames '()
        :shadow-frames '((min max))
        :cloth-reset-frames '()
        :cloth-commands '()
        :flags #x1
        :shadow-flags -1
        :shadow-volume-joint #f
        )
      )
    :load-point "combn-start"
    :end-point "minec-start"
    :borrow '()
    :sfx-volume -1.0
    :ambient-volume -1.0
    :music-delay 1500.0
    :on-running '(sound-play-loop "tunnel-amb-mov")
    :on-complete #f
    )
  )

(load-scene (new 'static 'scene
              :name "mine-train-res"
              :extra #f
              :info #f
              :scene-flags (scene-flags scf1 scf2 scf3 scf4)
              :mask-to-clear (process-mask movie projectile)
              :entity "scene-stage-113"
              :art-group "scenecamera"
              :anim "mine-train-res"
              :parts 2
              :command-list '((0
                  (send-event "min-door-1" 'subtask-complete)
                  (kill "min-door-1")
                  (kill "manta-1")
                  (kill "manta-3")
                  (kill "manta-4")
                  (part-tracker
                    "group-bomb-train-sparks"
                    entity
                    "min-bomb-train"
                    joint
                    "sparks"
                    track
                    #t
                    duration
                    (seconds (new 'static 'bfloat :data 5.0))
                    )
                  (part-tracker
                    "group-bomb-train-smoke"
                    entity
                    "min-bomb-train"
                    joint
                    "sparks1"
                    track
                    #t
                    duration
                    (seconds (new 'static 'bfloat :data 5.0))
                    )
                  (part-tracker
                    "group-bomb-train-sparks"
                    entity
                    "min-bomb-train"
                    joint
                    "sparks2"
                    track
                    #t
                    duration
                    (seconds (new 'static 'bfloat :data 5.0))
                    )
                  (part-tracker
                    "group-bomb-train-smoke"
                    entity
                    "min-bomb-train"
                    joint
                    "sparks3"
                    track
                    #t
                    duration
                    (seconds (new 'static 'bfloat :data 5.0))
                    )
                  (part-tracker
                    "group-bomb-train-sparks"
                    entity
                    "min-bomb-train"
                    joint
                    "sparks4"
                    track
                    #t
                    duration
                    (seconds (new 'static 'bfloat :data 5.0))
                    )
                  (part-tracker
                    "group-bomb-train-light"
                    entity
                    "min-bomb-train"
                    joint
                    "light"
                    track
                    #t
                    duration
                    (seconds (new 'static 'bfloat :data 5.0))
                    )
                  (part-tracker
                    "group-bomb-train-light"
                    entity
                    "min-bomb-train"
                    joint
                    "light1"
                    track
                    #t
                    duration
                    (seconds (new 'static 'bfloat :data 5.0))
                    )
                  (part-tracker
                    "group-bomb-train-light"
                    entity
                    "min-bomb-train"
                    joint
                    "light2"
                    track
                    #t
                    duration
                    (seconds (new 'static 'bfloat :data 5.0))
                    )
                  )
                (78
                  (part-tracker
                    "group-min-door-explode"
                    entity
                    "min-bomb-train"
                    joint
                    "main"
                    track
                    #f
                    duration
                    (seconds (new 'static 'bfloat :data 5.0))
                    )
                  (send-event "min-bomb-train-3" 'doors-exploded)
                  )
                (80
                  (part-tracker
                    "group-min-door-trailer"
                    entity
                    "min-door-break"
                    joint
                    "h"
                    track
                    #t
                    duration
                    (seconds (new 'static 'bfloat :data 5.0))
                    )
                  (part-tracker
                    "group-min-door-trailer"
                    entity
                    "min-door-break"
                    joint
                    "i"
                    track
                    #t
                    duration
                    (seconds (new 'static 'bfloat :data 5.0))
                    )
                  (part-tracker
                    "group-min-door-trailer"
                    entity
                    "min-door-break"
                    joint
                    "k"
                    track
                    #t
                    duration
                    (seconds (new 'static 'bfloat :data 5.0))
                    )
                  (part-tracker
                    "group-min-door-trailer"
                    entity
                    "min-door-break"
                    joint
                    "l"
                    track
                    #t
                    duration
                    (seconds (new 'static 'bfloat :data 5.0))
                    )
                  (part-tracker
                    "group-min-door-trailer"
                    entity
                    "min-door-break"
                    joint
                    "n"
                    track
                    #t
                    duration
                    (seconds (new 'static 'bfloat :data 5.0))
                    )
                  (part-tracker
                    "group-min-door-trailer"
                    entity
                    "min-door-break"
                    joint
                    "o"
                    track
                    #t
                    duration
                    (seconds (new 'static 'bfloat :data 5.0))
                    )
                  (part-tracker
                    "group-min-door-trailer"
                    entity
                    "min-door-break"
                    joint
                    "s"
                    track
                    #t
                    duration
                    (seconds (new 'static 'bfloat :data 5.0))
                    )
                  (part-tracker
                    "group-min-door-trailer"
                    entity
                    "min-door-break"
                    joint
                    "t"
                    track
                    #t
                    duration
                    (seconds (new 'static 'bfloat :data 5.0))
                    )
                  (part-tracker
                    "group-min-door-trailer"
                    entity
                    "min-door-break"
                    joint
                    "u"
                    track
                    #t
                    duration
                    (seconds (new 'static 'bfloat :data 5.0))
                    )
                  (part-tracker
                    "group-min-door-trailer"
                    entity
                    "min-door-break"
                    joint
                    "v"
                    track
                    #t
                    duration
                    (seconds (new 'static 'bfloat :data 5.0))
                    )
                  (part-tracker
                    "group-min-door-trailer"
                    entity
                    "min-door-break"
                    joint
                    "x"
                    track
                    #t
                    duration
                    (seconds (new 'static 'bfloat :data 5.0))
                    )
                  (part-tracker
                    "group-min-door-trailer"
                    entity
                    "min-door-break"
                    joint
                    "y"
                    track
                    #t
                    duration
                    (seconds (new 'static 'bfloat :data 5.0))
                    )
                  (part-tracker
                    "group-min-door-trailer"
                    entity
                    "min-door-break"
                    joint
                    "ad"
                    track
                    #t
                    duration
                    (seconds (new 'static 'bfloat :data 5.0))
                    )
                  (part-tracker
                    "group-min-door-trailer"
                    entity
                    "min-door-break"
                    joint
                    "ag"
                    track
                    #t
                    duration
                    (seconds (new 'static 'bfloat :data 5.0))
                    )
                  )
                (81
                  (part-tracker
                    "group-min-door-trailer"
                    entity
                    "min-door-break"
                    joint
                    "m"
                    track
                    #t
                    duration
                    (seconds (new 'static 'bfloat :data 5.0))
                    )
                  (part-tracker
                    "group-min-door-trailer"
                    entity
                    "min-door-break"
                    joint
                    "w"
                    track
                    #t
                    duration
                    (seconds (new 'static 'bfloat :data 5.0))
                    )
                  (part-tracker
                    "group-min-door-trailer"
                    entity
                    "min-door-break"
                    joint
                    "z"
                    track
                    #t
                    duration
                    (seconds (new 'static 'bfloat :data 5.0))
                    )
                  )
                (82
                  (part-tracker
                    "group-min-door-trailer"
                    entity
                    "min-door-break"
                    joint
                    "g"
                    track
                    #t
                    duration
                    (seconds (new 'static 'bfloat :data 5.0))
                    )
                  (part-tracker
                    "group-min-door-trailer"
                    entity
                    "min-door-break"
                    joint
                    "zz"
                    track
                    #t
                    duration
                    (seconds (new 'static 'bfloat :data 5.0))
                    )
                  )
                (83 (part-tracker
                      "group-min-door-trailer"
                      entity
                      "min-door-break"
                      joint
                      "d"
                      track
                      #t
                      duration
                      (seconds (new 'static 'bfloat :data 5.0))
                      )
                    )
                (88 (part-tracker
                      "group-min-door-trailer"
                      entity
                      "min-door-break"
                      joint
                      "aa"
                      track
                      #t
                      duration
                      (seconds (new 'static 'bfloat :data 5.0))
                      )
                    )
                (93 (part-tracker
                      "group-min-door-trailer"
                      entity
                      "min-door-break"
                      joint
                      "ab"
                      track
                      #t
                      duration
                      (seconds (new 'static 'bfloat :data 5.0))
                      )
                    )
                (95
                  (part-tracker
                    "group-min-door-trailer"
                    entity
                    "min-door-break"
                    joint
                    "f"
                    track
                    #t
                    duration
                    (seconds (new 'static 'bfloat :data 5.0))
                    )
                  (part-tracker
                    "group-min-door-trailer"
                    entity
                    "min-door-break"
                    joint
                    "ac"
                    track
                    #t
                    duration
                    (seconds (new 'static 'bfloat :data 5.0))
                    )
                  )
                (98 (part-tracker
                      "group-min-door-trailer"
                      entity
                      "min-door-break"
                      joint
                      "e"
                      track
                      #t
                      duration
                      (seconds (new 'static 'bfloat :data 5.0))
                      )
                    )
                (10000 (kill "min-boss-elev-1") (task-close! "mine-blow-resolution"))
                )
              :cut-list '(95 208)
              :wait-ground-time (seconds 1)
              :actor (new 'static 'boxed-array :type scene-actor
                (new 'static 'scene-actor
                  :name "scenecamera"
                  :level #f
                  :art-group "skel-scenecamera"
                  :prefix ""
                  :draw-frames '((min max))
                  :scissor-frames '()
                  :shadow-frames '((min max))
                  :cloth-reset-frames '()
                  :cloth-commands '()
                  :camera 4
                  :shadow-flags -1
                  :shadow-volume-joint #f
                  )
                (new 'static 'scene-actor
                  :name "min-door-break"
                  :level 'minec
                  :art-group "skel-min-door-break"
                  :prefix ""
                  :draw-frames '((min max))
                  :scissor-frames '()
                  :shadow-frames '((min max))
                  :cloth-reset-frames '()
                  :cloth-commands '()
                  :flags #x1
                  :shadow-flags -1
                  :shadow-volume-joint #f
                  )
                (new 'static 'scene-actor
                  :name "min-bomb-train"
                  :level 'minea
                  :art-group "skel-min-bomb-train"
                  :prefix ""
                  :draw-frames '((min 88))
                  :scissor-frames '()
                  :shadow-frames '((min max))
                  :cloth-reset-frames '()
                  :cloth-commands '()
                  :flags #x1
                  :shadow-flags -1
                  :shadow-volume-joint #f
                  )
                )
              :load-point "minec-train"
              :end-point "minec-resolution"
              :borrow '()
              :sfx-volume 1.0
              :ambient-volume -1.0
              :music-delay 1500.0
              :on-running #f
              :on-complete #f
              )
            )

(deftype leggings (process-drawable)
  ((alt-actor  entity-actor)
   )
  (:state-methods
    idle
    die
    )
  )


(defskelgroup skel-leggings leggings leggings-lod0-jg leggings-idle-ja
              ((leggings-lod0-mg (meters 999999)))
              :bounds (static-spherem 0 0 0 4)
              )

(defstate idle (leggings)
  :virtual #t
  :code (behavior ()
    (ja :group! (ja-group) :num! min)
    (ja-post)
    (sleep-code)
    )
  )

(defstate die (leggings)
  :virtual #t
  :code (behavior ()
    (suspend)
    0
    )
  )

(defmethod init-from-entity! ((this leggings) (arg0 entity-actor))
  "Set up a newly created process from the entity that created it."
  (when (task-node-closed? (game-task-node mine-explore-resolution))
    (cleanup-for-death this)
    (return #f)
    )
  (logclear! (-> this mask) (process-mask actor-pause))
  (set! (-> this root) (new 'process 'trsqv))
  (process-drawable-from-entity! this arg0)
  (initialize-skeleton
    this
    (the-as skeleton-group (art-group-get-by-name *level* "skel-leggings" (the-as (pointer level) #f)))
    (the-as pair 0)
    )
  (set! (-> this alt-actor) (entity-actor-lookup arg0 'alt-actor 0))
  (if (or (kiosk?) (demo?))
      (go (method-of-object this die))
      (go (method-of-object this idle))
      )
  )
