jak-project/goal_src/levels/beach/beach-part.gc
Tyler Wilding f605b0ee38
decomp: generic-obs (#894)
* stash

* more

* and more

* like 80% done

* trying to update things

* refreshed work on generic-obs

* blocked: down to only decompiler issues!

* decomp: finish `generic-obs` skip over the failing functions for now

* `pair` -> `object`s and fix 2/4 of the functions i had skipped

* address feedback
2021-11-13 23:31:29 -05:00

1117 lines
32 KiB
Common Lisp

;;-*-Lisp-*-
(in-package goal)
;; name: beach-part.gc
;; name in dgo: beach-part
;; dgos: BEA, L1
;; DECOMP BEGINS
(deftype beach-part (part-spawner)
()
:heap-base #x60
:method-count-assert 21
:size-assert #xd0
:flag-assert #x15006000d0
)
(set!
(-> *part-id-table* 666)
(new 'static 'sparticle-launcher
:init-specs
(new 'static 'inline-array sp-field-init-spec 24
(sp-tex spt-texture (new 'static 'texture-id :index #x2 :page #x2))
(sp-flt spt-num 0.01)
(sp-flt spt-y (meters 1.0))
(sp-rnd-flt spt-scale-x (meters 15.0) (meters 5.0) 1.0)
(sp-int spt-rot-x 4)
(sp-rnd-flt spt-rot-z (degrees -110.0) (degrees 20.0) 1.0)
(sp-flt spt-scale-y (meters 5.0))
(sp-flt spt-r 192.0)
(sp-flt spt-g 192.0)
(sp-flt spt-b 128.0)
(sp-flt spt-a 0.0)
(sp-flt spt-scalevel-x (meters 0.0009765625))
(sp-rnd-flt spt-rotvel-z (degrees -0.0033333332) (degrees 0.0066666664) 1.0)
(sp-flt spt-scalevel-y (meters 0.0009765625))
(sp-flt spt-fade-a 0.02)
(sp-int spt-timer 2400)
(sp-cpuinfo-flags bit2 bit3 bit14)
(sp-int spt-next-time 1200)
(sp-launcher-by-id spt-next-launcher 667)
(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 8.0))
(sp-flt spt-rotate-y (degrees 0.0))
(sp-end)
)
)
)
(set!
(-> *part-id-table* 667)
(new 'static 'sparticle-launcher
:init-specs
(new 'static 'inline-array sp-field-init-spec 2
(sp-flt spt-fade-a -0.02)
(sp-end)
)
)
)
(set!
(-> *part-id-table* 668)
(new 'static 'sparticle-launcher
:init-specs
(new 'static 'inline-array sp-field-init-spec 19
(sp-tex spt-texture (new 'static 'texture-id :index #x9 :page #x2))
(sp-rnd-flt spt-num 0.03 0.2 1.0)
(sp-flt spt-y (meters -4.0))
(sp-flt spt-scale-x (meters 0.18))
(sp-copy-from-other spt-scale-y -4)
(sp-flt spt-r 192.0)
(sp-flt spt-g 192.0)
(sp-flt spt-b 128.0)
(sp-flt spt-a 0.0)
(sp-flt spt-fade-a 0.21333334)
(sp-int spt-timer 600)
(sp-cpuinfo-flags bit2 bit3)
(sp-flt spt-userdata 0.0)
(sp-int spt-next-time 150)
(sp-launcher-by-id spt-next-launcher 669)
(sp-flt spt-conerot-x (degrees 90.0))
(sp-rnd-flt spt-conerot-y (degrees 0.0) (degrees 360.0) 1.0)
(sp-rnd-flt spt-conerot-radius (meters 8.0) (meters 5.0) 1.0)
(sp-end)
)
)
)
(set!
(-> *part-id-table* 669)
(new 'static 'sparticle-launcher
:init-specs
(new 'static 'inline-array sp-field-init-spec 6
(sp-flt spt-scalevel-y (meters 0.0024414062))
(sp-flt spt-fade-a 0.0)
(sp-flt spt-accel-y -8.192)
(sp-int spt-next-time 210)
(sp-launcher-by-id spt-next-launcher 670)
(sp-end)
)
)
)
(set!
(-> *part-id-table* 670)
(new 'static 'sparticle-launcher
:init-specs
(new 'static 'inline-array sp-field-init-spec 4
(sp-flt spt-fade-a -0.16)
(sp-int spt-timer 150)
(sp-func spt-func 'check-water-level-drop)
(sp-end)
)
)
)
(defstate beach-part-grotto-1 (beach-part)
:code
(behavior ()
(while #t
(when (dummy-20 self)
(let* ((gp-0 (camera-pos))
(f0-0 (vector-vector-distance (-> self root trans) gp-0))
)
(if (or (< (-> gp-0 y) (-> self root trans y)) (< 122880.0 f0-0))
(sp-launch-particles-var
*sp-particle-system-2d*
(-> *part-id-table* 666)
(-> self root trans)
(the-as sparticle-launch-state #f)
(the-as sparticle-launch-control #f)
1.0
)
)
)
(sp-launch-particles-var
*sp-particle-system-2d*
(-> *part-id-table* 668)
(-> self root trans)
(the-as sparticle-launch-state #f)
(the-as sparticle-launch-control #f)
1.0
)
)
(suspend)
)
(none)
)
)
(set!
(-> *part-id-table* 671)
(new 'static 'sparticle-launcher
:init-specs
(new 'static 'inline-array sp-field-init-spec 20
(sp-tex spt-texture (new 'static 'texture-id :index #x9 :page #x2))
(sp-rnd-flt spt-num 0.3 0.4 1.0)
(sp-rnd-flt spt-x (meters -23.0) (meters 55.0) 1.0)
(sp-flt spt-z 2048.0)
(sp-flt spt-scale-x (meters 0.18))
(sp-copy-from-other spt-scale-y -4)
(sp-flt spt-r 192.0)
(sp-flt spt-g 192.0)
(sp-flt spt-b 128.0)
(sp-flt spt-a 0.0)
(sp-flt spt-fade-a 0.10666667)
(sp-int spt-timer 600)
(sp-cpuinfo-flags bit2 bit3)
(sp-flt spt-userdata 0.0)
(sp-int spt-next-time 300)
(sp-launcher-by-id spt-next-launcher 669)
(sp-rnd-flt spt-conerot-x (degrees -40.0) (degrees 80.0) 1.0)
(sp-flt spt-conerot-radius (meters 14.6))
(sp-flt spt-rotate-y (degrees 37.0))
(sp-end)
)
)
)
(set!
(-> *part-group-id-table* 161)
(new 'static 'sparticle-launch-group
:length 1
:duration #xbb8
:linger-duration #x5dc
:name "group-beach-grotto-2"
:launcher
(new 'static 'inline-array sparticle-group-item 1
(sp-item 671 :fade-after (meters 80.0) :falloff-to (meters 80.0))
)
:bounds
(new 'static 'sphere :y -20480.0 :w 61440.0)
)
)
(set!
(-> *part-id-table* 672)
(new 'static 'sparticle-launcher
:init-specs
(new 'static 'inline-array sp-field-init-spec 23
(sp-tex spt-texture (new 'static 'texture-id :index #x18 :page #x2))
(sp-rnd-flt spt-num 1.0 1.0 1.0)
(sp-rnd-flt spt-x (meters -10.0) (meters 4.0) 1.0)
(sp-flt spt-y (meters 103.0))
(sp-rnd-flt spt-z -34816.0 65536.0 1.0)
(sp-rnd-flt spt-scale-x (meters 2.4) (meters 1.6) 1.0)
(sp-rnd-flt spt-scale-y (meters 1.2) (meters 0.8) 1.0)
(sp-flt spt-r 192.0)
(sp-flt spt-g 192.0)
(sp-flt spt-b 192.0)
(sp-rnd-flt spt-a 24.0 16.0 1.0)
(sp-flt spt-vel-x (meters 0.06666667))
(sp-rnd-flt spt-vel-y (meters 0.013333334) (meters 0.013333334) 1.0)
(sp-rnd-flt spt-vel-z (meters -0.0033333334) (meters 0.006666667) 1.0)
(sp-flt spt-scalevel-x (meters 0.0073242188))
(sp-flt spt-scalevel-y (meters 0.029296875))
(sp-flt spt-accel-x -3.7304192)
(sp-rnd-flt spt-accel-y -15.018667 -2.7306666 1.0)
(sp-int spt-timer 495)
(sp-cpuinfo-flags bit2 bit12 bit14)
(sp-rnd-flt spt-launchrot-x (degrees -15.0) (degrees 30.0) 1.0)
(sp-flt spt-rotate-y (degrees -124.99999))
(sp-end)
)
)
)
(set!
(-> *part-id-table* 673)
(new 'static 'sparticle-launcher
:init-specs
(new 'static 'inline-array sp-field-init-spec 24
(sp-tex spt-texture (new 'static 'texture-id :page #x2))
(sp-rnd-flt spt-num 0.8 0.8 1.0)
(sp-rnd-flt spt-x (meters -9.0) (meters 3.5) 1.0)
(sp-flt spt-y (meters 103.0))
(sp-rnd-flt spt-z -34816.0 65536.0 1.0)
(sp-rnd-flt spt-scale-x (meters 1.2) (meters 0.8) 1.0)
(sp-rnd-flt spt-rot-z (degrees 0.0) (degrees 180.0) 1.0)
(sp-rnd-flt spt-scale-y (meters 1.2) (meters 0.8) 1.0)
(sp-flt spt-r 192.0)
(sp-flt spt-g 192.0)
(sp-flt spt-b 192.0)
(sp-rnd-flt spt-a 16.0 20.0 1.0)
(sp-flt spt-vel-x (meters 0.038333334))
(sp-rnd-flt spt-vel-y (meters 0.0033333334) (meters 0.01) 1.0)
(sp-rnd-flt spt-vel-z (meters -0.0033333334) (meters 0.006666667) 1.0)
(sp-flt spt-scalevel-x (meters 0.0146484375))
(sp-rnd-flt spt-rotvel-z (degrees -0.6) (degrees 1.2) 1.0)
(sp-flt spt-scalevel-y (meters 0.0146484375))
(sp-flt spt-accel-x -1.189495)
(sp-rnd-flt spt-accel-y -4.7786665 -1.024 1.0)
(sp-int spt-timer 855)
(sp-cpuinfo-flags bit2 bit12 bit14)
(sp-flt spt-rotate-y (degrees -124.99999))
(sp-end)
)
)
)
(set!
(-> *part-id-table* 674)
(new 'static 'sparticle-launcher
:init-specs
(new 'static 'inline-array sp-field-init-spec 23
(sp-tex spt-texture (new 'static 'texture-id :index #x4 :page #x2))
(sp-flt spt-num 0.9)
(sp-rnd-flt spt-x (meters -10.0) (meters 4.0) 1.0)
(sp-flt spt-y (meters 103.0))
(sp-rnd-flt spt-z -38912.0 73728.0 1.0)
(sp-rnd-flt spt-scale-x (meters 0.2) (meters 0.2) 1.0)
(sp-copy-from-other spt-scale-y -4)
(sp-flt spt-r 128.0)
(sp-flt spt-g 128.0)
(sp-flt spt-b 128.0)
(sp-flt spt-a 28.0)
(sp-rnd-flt spt-vel-x (meters 0.06) (meters 0.006666667) 1.0)
(sp-rnd-flt spt-vel-y (meters 0.0033333334) (meters 0.02) 1.0)
(sp-rnd-flt spt-vel-z (meters -0.006666667) (meters 0.013333334) 1.0)
(sp-flt spt-scalevel-x (meters -0.00024414062))
(sp-flt spt-scalevel-y (meters 0.001953125))
(sp-flt spt-accel-x -2.5600002)
(sp-rnd-flt spt-accel-y -6.826667 -3.4133334 1.0)
(sp-int spt-timer 660)
(sp-cpuinfo-flags bit2 bit3 bit12 bit14)
(sp-rnd-flt spt-launchrot-x (degrees -20.0) (degrees 40.0) 1.0)
(sp-flt spt-rotate-y (degrees -124.99999))
(sp-end)
)
)
)
(set!
(-> *part-id-table* 675)
(new 'static 'sparticle-launcher
:init-specs
(new 'static 'inline-array sp-field-init-spec 27
(sp-tex spt-texture (new 'static 'texture-id :index #x19 :page #x2))
(sp-flt spt-num 0.04)
(sp-rnd-flt spt-x (meters 6.0) (meters 6.0) 1.0)
(sp-flt spt-y (meters 6.5))
(sp-rnd-flt spt-z -34816.0 65536.0 1.0)
(sp-flt spt-scale-x (meters 18.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 128.0)
(sp-flt spt-g 128.0)
(sp-flt spt-b 128.0)
(sp-rnd-flt spt-a 0.0 32.0 1.0)
(sp-rnd-flt spt-vel-x (meters -0.006666667) (meters 0.026666667) 1.0)
(sp-rnd-flt spt-vel-y (meters 0.016666668) (meters 0.033333335) 1.0)
(sp-rnd-flt spt-vel-z (meters -0.006666667) (meters 0.013333334) 1.0)
(sp-flt spt-scalevel-x (meters 0.0044444446))
(sp-rnd-flt spt-rotvel-z (degrees -0.3) (degrees 0.6) 1.0)
(sp-copy-from-other spt-scalevel-y -4)
(sp-flt spt-fade-a 0.42666668)
(sp-flt spt-accel-y 0.13653333)
(sp-flt spt-friction 0.99)
(sp-int spt-timer 1050)
(sp-cpuinfo-flags bit2 bit12 bit14)
(sp-int-plain-rnd spt-next-time 90 59 1)
(sp-launcher-by-id spt-next-launcher 676)
(sp-flt spt-rotate-y (degrees -124.99999))
(sp-end)
)
)
)
(set!
(-> *part-id-table* 676)
(new 'static 'sparticle-launcher
:init-specs
(new 'static 'inline-array sp-field-init-spec 2
(sp-flt spt-fade-a -0.14222223)
(sp-end)
)
)
)
(set!
(-> *part-id-table* 677)
(new 'static 'sparticle-launcher
:init-specs
(new 'static 'inline-array sp-field-init-spec 25
(sp-tex spt-texture (new 'static 'texture-id :index #x29 :page #x2))
(sp-flt spt-num 0.2)
(sp-rnd-flt spt-x (meters 2.0) (meters 10.0) 1.0)
(sp-flt spt-y (meters 8.0))
(sp-rnd-flt spt-z -43008.0 81920.0 1.0)
(sp-flt spt-scale-x (meters 18.0))
(sp-copy-from-other spt-scale-y -4)
(sp-flt spt-r 128.0)
(sp-rnd-flt spt-g 150.0 42.0 1.0)
(sp-flt spt-b 192.0)
(sp-rnd-flt spt-a 32.0 32.0 1.0)
(sp-rnd-flt spt-vel-x (meters 0.0) (meters 0.06666667) 1.0)
(sp-flt spt-vel-y (meters 0.008333334))
(sp-rnd-flt spt-vel-z (meters -0.006666667) (meters 0.013333334) 1.0)
(sp-rnd-flt spt-scalevel-x (meters 0.01) (meters 0.01) 1.0)
(sp-rnd-flt spt-scalevel-y (meters 0.006666667) (meters 0.006666667) 1.0)
(sp-flt spt-fade-a 0.42666668)
(sp-flt spt-accel-y 0.13653333)
(sp-flt spt-friction 0.99)
(sp-int spt-timer 1050)
(sp-cpuinfo-flags bit2 bit12 bit14)
(sp-int-plain-rnd spt-next-time 90 59 1)
(sp-launcher-by-id spt-next-launcher 676)
(sp-flt spt-rotate-y (degrees -124.99999))
(sp-end)
)
)
)
(set!
(-> *part-group-id-table* 162)
(new 'static 'sparticle-launch-group
:length 8
:duration #xbb8
:linger-duration #x5dc
:flags
(sp-group-flag always-draw unknown-bit-01)
:name "group-beach-waterfall"
:launcher
(new 'static 'inline-array sparticle-group-item 8
(sp-item 677 :fade-after (meters 200.0) :falloff-to (meters 200.0))
(sp-item 675)
(sp-item 675 :fade-after (meters 200.0) :falloff-to (meters 200.0))
(sp-item 672)
(sp-item 672 :fade-after (meters 100.0) :falloff-to (meters 100.0))
(sp-item 672 :fade-after (meters 160.0) :falloff-to (meters 160.0))
(sp-item 673 :fade-after (meters 300.0) :falloff-to (meters 300.0))
(sp-item 674 :fade-after (meters 90.0) :falloff-to (meters 90.0))
)
:bounds
(new 'static 'sphere :y 225280.0 :w 225280.0)
)
)
(set!
(-> *part-group-id-table* 163)
(new 'static 'sparticle-launch-group
:length 1
:duration #xbb8
:linger-duration #x5dc
:name "group-beach-24"
:launcher
(new 'static 'inline-array sparticle-group-item 1
(sp-item 678 :fade-after (meters 50.0) :period 2400 :length 1500 :offset 1200)
)
:bounds
(new 'static 'sphere :y 12288.0 :w 204800.0)
)
)
(set!
(-> *part-group-id-table* 164)
(new 'static 'sparticle-launch-group
:length 1
:duration #xbb8
:linger-duration #x5dc
:name "group-beach-23"
:launcher
(new 'static 'inline-array sparticle-group-item 1
(sp-item 679 :fade-after (meters 50.0) :period 2400 :length 1500 :offset 600)
)
:bounds
(new 'static 'sphere :y 12288.0 :w 204800.0)
)
)
(set!
(-> *part-group-id-table* 165)
(new 'static 'sparticle-launch-group
:length 1
:duration #xbb8
:linger-duration #x5dc
:name "group-beach-22"
:launcher
(new 'static 'inline-array sparticle-group-item 1
(sp-item 680 :fade-after (meters 80.0) :period 2400 :length 1500)
)
:bounds
(new 'static 'sphere :y 12288.0 :w 204800.0)
)
)
(set!
(-> *part-group-id-table* 166)
(new 'static 'sparticle-launch-group
:length 1
:duration #xbb8
:linger-duration #x5dc
:name "group-beach-18"
:launcher
(new 'static 'inline-array sparticle-group-item 1
(sp-item 681 :fade-after (meters 100.0) :period 2400 :length 1500 :offset 1200)
)
:bounds
(new 'static 'sphere :y 12288.0 :w 204800.0)
)
)
(set!
(-> *part-group-id-table* 167)
(new 'static 'sparticle-launch-group
:length 1
:duration #xbb8
:linger-duration #x5dc
:name "group-beach-17"
:launcher
(new 'static 'inline-array sparticle-group-item 1
(sp-item 682 :fade-after (meters 50.0) :period 2400 :length 1500 :offset 600)
)
:bounds
(new 'static 'sphere :y 12288.0 :w 204800.0)
)
)
(set!
(-> *part-group-id-table* 168)
(new 'static 'sparticle-launch-group
:length 1
:duration #xbb8
:linger-duration #x5dc
:name "group-beach-16"
:launcher
(new 'static 'inline-array sparticle-group-item 1
(sp-item 683 :fade-after (meters 50.0) :period 2400 :length 1500)
)
:bounds
(new 'static 'sphere :y 12288.0 :w 204800.0)
)
)
(set!
(-> *part-group-id-table* 169)
(new 'static 'sparticle-launch-group
:length 1
:duration #xbb8
:linger-duration #x5dc
:name "group-beach-15"
:launcher
(new 'static 'inline-array sparticle-group-item 1
(sp-item 684 :fade-after (meters 50.0) :period 2400 :length 1500 :offset 64936)
)
:bounds
(new 'static 'sphere :y 12288.0 :w 204800.0)
)
)
(set!
(-> *part-group-id-table* 170)
(new 'static 'sparticle-launch-group
:length 1
:duration #xbb8
:linger-duration #x5dc
:name "group-beach-14"
:launcher
(new 'static 'inline-array sparticle-group-item 1
(sp-item 685 :fade-after (meters 50.0) :period 2400 :length 1500 :offset 64336)
)
:bounds
(new 'static 'sphere :y 12288.0 :w 204800.0)
)
)
(set!
(-> *part-id-table* 678)
(new 'static 'sparticle-launcher
:init-specs
(new 'static 'inline-array sp-field-init-spec 21
(sp-tex spt-texture (new 'static 'texture-id :index #x19 :page #x2))
(sp-rnd-flt spt-num 0.01 0.01 1.0)
(sp-rnd-flt spt-x (meters -85.0) (meters 60.0) 1.0)
(sp-flt spt-y (meters 13.0))
(sp-rnd-flt spt-z -122880.0 266240.0 1.0)
(sp-rnd-flt spt-scale-x (meters 10.0) (meters 20.0) 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 130.0)
(sp-flt spt-g 100.0)
(sp-flt spt-b 54.0)
(sp-flt spt-a 0.0)
(sp-flt spt-vel-x (meters 0.026666667))
(sp-flt spt-rotvel-z (degrees -0.15))
(sp-flt spt-fade-a 0.008888889)
(sp-int spt-timer 3600)
(sp-cpuinfo-flags bit2 bit12)
(sp-int spt-next-time 1800)
(sp-launcher-by-id spt-next-launcher 686)
(sp-flt spt-rotate-y (degrees 40.0))
(sp-end)
)
)
)
(set!
(-> *part-id-table* 686)
(new 'static 'sparticle-launcher
:init-specs
(new 'static 'inline-array sp-field-init-spec 2
(sp-flt spt-fade-a -0.07111111)
(sp-end)
)
)
)
(set!
(-> *part-id-table* 679)
(new 'static 'sparticle-launcher
:init-specs
(new 'static 'inline-array sp-field-init-spec 21
(sp-tex spt-texture (new 'static 'texture-id :index #x19 :page #x2))
(sp-rnd-flt spt-num 0.01 0.01 1.0)
(sp-rnd-flt spt-x (meters -65.0) (meters 60.0) 1.0)
(sp-flt spt-y (meters 8.0))
(sp-rnd-flt spt-z -122880.0 204800.0 1.0)
(sp-rnd-flt spt-scale-x (meters 10.0) (meters 20.0) 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 130.0)
(sp-flt spt-g 100.0)
(sp-flt spt-b 54.0)
(sp-flt spt-a 0.0)
(sp-flt spt-vel-x (meters 0.02))
(sp-flt spt-rotvel-z (degrees -0.15))
(sp-flt spt-fade-a 0.008888889)
(sp-int spt-timer 3600)
(sp-cpuinfo-flags bit2 bit12)
(sp-int spt-next-time 1800)
(sp-launcher-by-id spt-next-launcher 687)
(sp-flt spt-rotate-y (degrees 40.0))
(sp-end)
)
)
)
(set!
(-> *part-id-table* 687)
(new 'static 'sparticle-launcher
:init-specs
(new 'static 'inline-array sp-field-init-spec 2
(sp-flt spt-fade-a -0.07111111)
(sp-end)
)
)
)
(set!
(-> *part-id-table* 680)
(new 'static 'sparticle-launcher
:init-specs
(new 'static 'inline-array sp-field-init-spec 22
(sp-tex spt-texture (new 'static 'texture-id :index #x19 :page #x2))
(sp-rnd-flt spt-num 0.01 0.01 1.0)
(sp-rnd-flt spt-x (meters -50.0) (meters 20.0) 1.0)
(sp-flt spt-y (meters 0.0))
(sp-rnd-flt spt-z -163840.0 327680.0 1.0)
(sp-rnd-flt spt-scale-x (meters 10.0) (meters 20.0) 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 130.0)
(sp-flt spt-g 100.0)
(sp-flt spt-b 54.0)
(sp-flt spt-a 0.0)
(sp-flt spt-vel-x (meters 0.026666667))
(sp-flt spt-vel-z (meters 0.016666668))
(sp-flt spt-rotvel-z (degrees -0.15))
(sp-flt spt-fade-a 0.010666667)
(sp-int spt-timer 3600)
(sp-cpuinfo-flags bit2 bit12)
(sp-int spt-next-time 1500)
(sp-launcher-by-id spt-next-launcher 688)
(sp-flt spt-rotate-y (degrees 120.0))
(sp-end)
)
)
)
(set!
(-> *part-id-table* 688)
(new 'static 'sparticle-launcher
:init-specs
(new 'static 'inline-array sp-field-init-spec 2
(sp-flt spt-fade-a -0.08533333)
(sp-end)
)
)
)
(set!
(-> *part-id-table* 681)
(new 'static 'sparticle-launcher
:init-specs
(new 'static 'inline-array sp-field-init-spec 22
(sp-tex spt-texture (new 'static 'texture-id :index #x19 :page #x2))
(sp-rnd-flt spt-num 0.03 0.04 1.0)
(sp-rnd-flt spt-x (meters -40.0) (meters 20.0) 1.0)
(sp-flt spt-y (meters 1.0))
(sp-rnd-flt spt-z -163840.0 368640.0 1.0)
(sp-rnd-flt spt-scale-x (meters 10.0) (meters 20.0) 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 130.0)
(sp-flt spt-g 100.0)
(sp-flt spt-b 54.0)
(sp-flt spt-a 0.0)
(sp-flt spt-vel-x (meters 0.026666667))
(sp-flt spt-vel-z (meters -0.016666668))
(sp-flt spt-rotvel-z (degrees -0.15))
(sp-flt spt-fade-a 0.008888889)
(sp-int spt-timer 3600)
(sp-cpuinfo-flags bit2 bit12)
(sp-int spt-next-time 1800)
(sp-launcher-by-id spt-next-launcher 689)
(sp-flt spt-rotate-y (degrees -60.0))
(sp-end)
)
)
)
(set!
(-> *part-id-table* 689)
(new 'static 'sparticle-launcher
:init-specs
(new 'static 'inline-array sp-field-init-spec 2
(sp-flt spt-fade-a -0.07111111)
(sp-end)
)
)
)
(set!
(-> *part-id-table* 682)
(new 'static 'sparticle-launcher
:init-specs
(new 'static 'inline-array sp-field-init-spec 21
(sp-tex spt-texture (new 'static 'texture-id :index #x19 :page #x2))
(sp-rnd-flt spt-num 0.015 0.02 1.0)
(sp-flt spt-x (meters -10.0))
(sp-flt spt-y (meters 1.0))
(sp-rnd-flt spt-z -40960.0 92160.0 1.0)
(sp-rnd-flt spt-scale-x (meters 10.0) (meters 20.0) 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 130.0)
(sp-flt spt-g 100.0)
(sp-flt spt-b 54.0)
(sp-flt spt-a 0.0)
(sp-flt spt-vel-x (meters 0.026666667))
(sp-flt spt-rotvel-z (degrees -0.15))
(sp-flt spt-fade-a 0.017777778)
(sp-int spt-timer 3600)
(sp-cpuinfo-flags bit2 bit12)
(sp-int spt-next-time 900)
(sp-launcher-by-id spt-next-launcher 690)
(sp-flt spt-rotate-y (degrees -15.0))
(sp-end)
)
)
)
(set!
(-> *part-id-table* 690)
(new 'static 'sparticle-launcher
:init-specs
(new 'static 'inline-array sp-field-init-spec 2
(sp-flt spt-fade-a -0.017777778)
(sp-end)
)
)
)
(set!
(-> *part-id-table* 683)
(new 'static 'sparticle-launcher
:init-specs
(new 'static 'inline-array sp-field-init-spec 21
(sp-tex spt-texture (new 'static 'texture-id :index #x19 :page #x2))
(sp-rnd-flt spt-num 0.015 0.02 1.0)
(sp-flt spt-x (meters -25.0))
(sp-flt spt-y (meters 1.0))
(sp-rnd-flt spt-z -61440.0 204800.0 1.0)
(sp-rnd-flt spt-scale-x (meters 10.0) (meters 20.0) 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 130.0)
(sp-flt spt-g 100.0)
(sp-flt spt-b 54.0)
(sp-flt spt-a 0.0)
(sp-flt spt-vel-x (meters 0.026666667))
(sp-flt spt-rotvel-z (degrees -0.15))
(sp-flt spt-fade-a 0.013333334)
(sp-int spt-timer 3600)
(sp-cpuinfo-flags bit2 bit12)
(sp-int spt-next-time 1200)
(sp-launcher-by-id spt-next-launcher 691)
(sp-flt spt-rotate-y (degrees 0.0))
(sp-end)
)
)
)
(set!
(-> *part-id-table* 691)
(new 'static 'sparticle-launcher
:init-specs
(new 'static 'inline-array sp-field-init-spec 2
(sp-flt spt-fade-a -0.013333334)
(sp-end)
)
)
)
(set!
(-> *part-id-table* 684)
(new 'static 'sparticle-launcher
:init-specs
(new 'static 'inline-array sp-field-init-spec 21
(sp-tex spt-texture (new 'static 'texture-id :index #x19 :page #x2))
(sp-rnd-flt spt-num 0.015 0.015 1.0)
(sp-flt spt-x (meters -35.0))
(sp-flt spt-y (meters 1.0))
(sp-rnd-flt spt-z -143360.0 245760.0 1.0)
(sp-rnd-flt spt-scale-x (meters 10.0) (meters 20.0) 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 130.0)
(sp-flt spt-g 100.0)
(sp-flt spt-b 54.0)
(sp-flt spt-a 0.0)
(sp-flt spt-vel-x (meters 0.026666667))
(sp-flt spt-rotvel-z (degrees -0.15))
(sp-flt spt-fade-a 0.016410256)
(sp-int spt-timer 3600)
(sp-cpuinfo-flags bit2 bit12)
(sp-int spt-next-time 975)
(sp-launcher-by-id spt-next-launcher 692)
(sp-flt spt-rotate-y (degrees 45.0))
(sp-end)
)
)
)
(set!
(-> *part-id-table* 692)
(new 'static 'sparticle-launcher
:init-specs
(new 'static 'inline-array sp-field-init-spec 2
(sp-flt spt-fade-a -0.016410256)
(sp-end)
)
)
)
(set!
(-> *part-id-table* 685)
(new 'static 'sparticle-launcher
:init-specs
(new 'static 'inline-array sp-field-init-spec 21
(sp-tex spt-texture (new 'static 'texture-id :index #x19 :page #x2))
(sp-rnd-flt spt-num 0.015 0.015 1.0)
(sp-flt spt-x (meters -25.0))
(sp-flt spt-y (meters 14.0))
(sp-rnd-flt spt-z -61440.0 286720.0 1.0)
(sp-rnd-flt spt-scale-x (meters 10.0) (meters 20.0) 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 130.0)
(sp-flt spt-g 100.0)
(sp-flt spt-b 54.0)
(sp-flt spt-a 0.0)
(sp-flt spt-vel-x (meters 0.026666667))
(sp-flt spt-rotvel-z (degrees -0.15))
(sp-flt spt-fade-a 0.014222222)
(sp-int spt-timer 3600)
(sp-cpuinfo-flags bit2 bit12)
(sp-int spt-next-time 1125)
(sp-launcher-by-id spt-next-launcher 693)
(sp-flt spt-rotate-y (degrees 0.0))
(sp-end)
)
)
)
(set!
(-> *part-id-table* 693)
(new 'static 'sparticle-launcher
:init-specs
(new 'static 'inline-array sp-field-init-spec 2
(sp-flt spt-fade-a -0.014222222)
(sp-end)
)
)
)
(define
sound-beach-waterfall
(new 'static 'sound-spec
:num 1.0
:group #x1
:sound-name (static-sound-name "waterfall")
:volume #x400
)
)
(set!
(-> *part-group-id-table* 171)
(new 'static 'sparticle-launch-group
:length 13
:duration #xbb8
:linger-duration #x5dc
:name "group-beach-butterflies"
:launcher
(new 'static 'inline-array sparticle-group-item 13
(sp-item 696 :fade-after (meters 120.0) :period 4903 :length 5 :hour-mask #b111111100000000000111111 :binding 694)
(sp-item 696 :fade-after (meters 120.0) :period 6637 :length 5 :hour-mask #b111111100000000000111111 :binding 694)
(sp-item 696 :fade-after (meters 120.0) :period 9846 :length 5 :hour-mask #b111111100000000000111111 :binding 694)
(sp-item 694 :flags (start-dead launch-asap) :binding 695)
(sp-item 695 :flags (is-3d start-dead))
(sp-item 694 :flags (start-dead launch-asap) :binding 695)
(sp-item 695 :flags (is-3d start-dead))
(sp-item 694 :flags (start-dead launch-asap) :binding 695)
(sp-item 695 :flags (is-3d start-dead))
(sp-item 694 :flags (start-dead launch-asap) :binding 695)
(sp-item 695 :flags (is-3d start-dead))
(sp-item 694 :flags (start-dead launch-asap) :binding 695)
(sp-item 695 :flags (is-3d start-dead))
)
:bounds (new 'static 'sphere :w 122880.0)
)
)
(set!
(-> *part-id-table* 696)
(new 'static 'sparticle-launcher
:init-specs
(new 'static 'inline-array sp-field-init-spec 16
(sp-tex spt-texture (new 'static 'texture-id :index #xf :page #x2))
(sp-flt spt-num 1.0)
(sp-rnd-flt spt-x (meters 0.0) (meters 7.5) 1.0)
(sp-rnd-flt spt-y (meters 14.0) (meters 3.0) 1.0)
(sp-flt spt-scale-x (meters 1.0))
(sp-copy-from-other spt-scale-y -4)
(sp-flt spt-r 128.0)
(sp-flt spt-a 0.0)
(sp-flt spt-vel-y (meters -0.036666665))
(sp-flt spt-accel-y 1.3653333)
(sp-int spt-timer 6000)
(sp-cpuinfo-flags bit3)
(sp-int spt-next-time 555)
(sp-launcher-by-id spt-next-launcher 697)
(sp-rnd-flt spt-rotate-y (degrees 0.0) (degrees 360.0) 1.0)
(sp-end)
)
)
)
(set!
(-> *part-id-table* 697)
(new 'static 'sparticle-launcher
:init-specs
(new 'static 'inline-array sp-field-init-spec 4
(sp-flt spt-accel-y 0.0)
(sp-int-plain-rnd spt-next-time 2700 1499 1)
(sp-launcher-by-id spt-next-launcher 698)
(sp-end)
)
)
)
(set!
(-> *part-id-table* 698)
(new 'static 'sparticle-launcher
:init-specs
(new 'static 'inline-array sp-field-init-spec 2
(sp-flt spt-accel-y 1.3653333)
(sp-end)
)
)
)
(set!
(-> *part-id-table* 694)
(new 'static 'sparticle-launcher
:init-specs
(new 'static 'inline-array sp-field-init-spec 20
(sp-tex spt-texture (new 'static 'texture-id :index #xf :page #x2))
(sp-flt spt-num 1.0)
(sp-rnd-flt spt-x (meters 0.0) (meters 16.0) 1.0)
(sp-rnd-flt spt-y (meters 0.0) (meters 16.0) 1.0)
(sp-rnd-flt spt-z 12288.0 4096.0 1.0)
(sp-flt spt-scale-x (meters 0.1))
(sp-rnd-flt spt-rot-z (degrees 0.0) (degrees 360.0) 1.0)
(sp-copy-from-other spt-scale-y -4)
(sp-rnd-flt spt-g 0.0 256.0 1.0)
(sp-rnd-int spt-b 1124073472 1 128.0)
(sp-flt spt-a 0.0)
(sp-rnd-flt spt-omega 0.0 65536.0 1.0)
(sp-rnd-flt spt-vel-x (meters -0.017777778) (meters 0.035555556) 1.0)
(sp-rnd-flt spt-vel-y (meters -0.0074074077) (meters 0.0148148155) 1.0)
(sp-flt spt-vel-z (meters 0.0))
(sp-int spt-timer 6000)
(sp-cpuinfo-flags bit3 bit7)
(sp-int-plain-rnd spt-next-time 150 449 1)
(sp-launcher-by-id spt-next-launcher 699)
(sp-end)
)
)
)
(set!
(-> *part-id-table* 699)
(new 'static 'sparticle-launcher
:init-specs
(new 'static 'inline-array sp-field-init-spec 6
(sp-rnd-flt spt-vel-x (meters -0.017777778) (meters 0.035555556) 1.0)
(sp-rnd-flt spt-vel-y (meters -0.0074074077) (meters 0.0148148155) 1.0)
(sp-rnd-flt spt-rotvel-z (degrees -0.2) (degrees 0.4) 1.0)
(sp-int-plain-rnd spt-next-time 150 449 1)
(sp-launcher-by-id spt-next-launcher 699)
(sp-end)
)
)
)
(set!
(-> *part-id-table* 695)
(new 'static 'sparticle-launcher
:init-specs
(new 'static 'inline-array sp-field-init-spec 14
(sp-tex spt-texture (new 'static 'texture-id :index #x22 :page #x2))
(sp-func spt-birth-func 'birth-func-copy-rot-color)
(sp-flt spt-num 2.0)
(sp-flt spt-scale-x (meters 0.9))
(sp-rnd-flt spt-rot-x -10922.667 54613.332 1.0)
(sp-flt spt-scale-y (meters 1.3))
(sp-flt spt-r 255.0)
(sp-flt spt-g 255.0)
(sp-flt spt-b 255.0)
(sp-flt spt-a 128.0)
(sp-flt spt-fade-a -8.0)
(sp-int spt-timer 10)
(sp-cpuinfo-flags bit2 bit9 bit12)
(sp-end)
)
)
)
(set!
(-> *part-group-id-table* 172)
(new 'static 'sparticle-launch-group
:length 3
:duration #xbb8
:linger-duration #x5dc
:name "group-beach-moth"
:launcher
(new 'static 'inline-array sparticle-group-item 3
(sp-item 702 :fade-after (meters 120.0) :flags (bit1) :period 18030 :length 5 :hour-mask #b1111111110000000 :binding 700)
(sp-item 700 :flags (start-dead launch-asap) :binding 701)
(sp-item 701 :flags (is-3d start-dead))
)
:bounds (new 'static 'sphere :w 12288.0)
)
)
(set!
(-> *part-id-table* 702)
(new 'static 'sparticle-launcher
:init-specs
(new 'static 'inline-array sp-field-init-spec 10
(sp-tex spt-texture (new 'static 'texture-id :index #xf :page #x2))
(sp-flt spt-num 1.0)
(sp-flt spt-scale-x (meters 0.1))
(sp-copy-from-other spt-scale-y -4)
(sp-flt spt-r 128.0)
(sp-flt spt-a 0.0)
(sp-int spt-timer 18000)
(sp-cpuinfo-flags bit3)
(sp-rnd-flt spt-rotate-y (degrees 0.0) (degrees 360.0) 1.0)
(sp-end)
)
)
)
(set!
(-> *part-id-table* 700)
(new 'static 'sparticle-launcher
:init-specs
(new 'static 'inline-array sp-field-init-spec 20
(sp-tex spt-texture (new 'static 'texture-id :index #xf :page #x2))
(sp-flt spt-num 1.0)
(sp-rnd-flt spt-y (meters 0.0) (meters 16.0) 1.0)
(sp-flt spt-z 6144.0)
(sp-flt spt-scale-x (meters 0.1))
(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 128.0)
(sp-flt spt-g 128.0)
(sp-flt spt-b 128.0)
(sp-flt spt-a 0.0)
(sp-rnd-flt spt-omega 0.0 65536.0 1.0)
(sp-rnd-flt spt-vel-x (meters 0.0044444446) (meters 0.0044444446) 1.0)
(sp-rnd-flt spt-vel-y (meters 0.008888889) (meters 0.008888889) 1.0)
(sp-flt spt-vel-z (meters 0.0))
(sp-int spt-timer 18000)
(sp-cpuinfo-flags bit3 bit7)
(sp-int-plain-rnd spt-next-time 150 449 1)
(sp-launcher-by-id spt-next-launcher 703)
(sp-end)
)
)
)
(set!
(-> *part-id-table* 703)
(new 'static 'sparticle-launcher
:init-specs
(new 'static 'inline-array sp-field-init-spec 6
(sp-rnd-flt spt-vel-x (meters -0.035555556) (meters 0.07111111) 1.0)
(sp-rnd-flt spt-vel-y (meters -0.0148148155) (meters 0.029629631) 1.0)
(sp-rnd-flt spt-rotvel-z (degrees -0.4) (degrees 0.8) 1.0)
(sp-int-plain-rnd spt-next-time 150 449 1)
(sp-launcher-by-id spt-next-launcher 703)
(sp-end)
)
)
)
(set!
(-> *part-id-table* 701)
(new 'static 'sparticle-launcher
:init-specs
(new 'static 'inline-array sp-field-init-spec 13
(sp-tex spt-texture (new 'static 'texture-id :index #x22 :page #x2))
(sp-func spt-birth-func 'birth-func-copy-rot-color)
(sp-flt spt-num 2.0)
(sp-flt spt-scale-x (meters 0.4))
(sp-rnd-flt spt-rot-x -10922.667 54613.332 1.0)
(sp-flt spt-scale-y (meters 0.4))
(sp-flt spt-r 128.0)
(sp-flt spt-g 128.0)
(sp-flt spt-b 128.0)
(sp-flt spt-a 128.0)
(sp-int spt-timer 5)
(sp-cpuinfo-flags bit2 bit3 bit9 bit12)
(sp-end)
)
)
)