Files
jak-project/goal_src/levels/training/training-part.gc
T
Tyler Wilding 5f1ed7ab60 decomp: decompile *-obs files (#856)
* decomp: mostly finish `cam-master`

* decomp/scripts: lots of work in cam-states

* stash

* Merge remote-tracking branch 'water111/master' into decomp/camera-master

Updated submodule third-party/googletest

* decompiler: Add support for non power of 2 offsets for inline arr access

* decomp: mostly finish `cam-states` need to fix a macro issue

* blocked: `cam-master` decompiler crash when adding casts

* decomp: finish `cam-states-dbg`

* decomp: mostly finish `pov-camera` with the exception of joint-related code

* decomp: `cam-debug` finished decompiling, no way does this compile yet though

* decomp: considerable work done in `cam-layout`

* decomp: `cam-layout` almost done!

* decomp: `pov-camera` finished, TC tests will fail for now

* decomp: working on resolving issues

* decomp: cam-layout decompiling

* fixing more issues in cam-master...one event handler remains

* skip problematic function in `cam-master` for now

* gsrc: update res macros

* decomp: finish `cam-states`

* decomp: giving up on `cam-debug`

* tests: allow skipping state handlers in ref tests

* decomp: working through cam-layout bugs

* decomp: allow for shifting non-integers

* decomp: finalize `cam-layout` and `cam-master`

* decomp: finalize `cam-states`

* cleanup: bi-annual formatting of the casting files

* formatting

* decomp: start working on beach-obs

* blocked: `beach-obs` mostly finished, but handle cast issues and unknown `prebind` func signature

* blocked: `villagep-obs` done, `s6` not being referred to as `self`

* decomp: finish `citadel-obs`

* decomp: finish `darkcave-obs`

* blocked: need to allow `hud-h` to decompile properly (#f as static pointer)

* decomp: finish `jungle-obs`

* decomp: finish `village-obs`

* blocked: `misty-obs` handle cast issues

* decomp: finish `village2-obs`

* decomp: 1 function left in `swamp-obs`, particle related -- maybe we know now?

* decomp: finish `swamp-obs`

* blocked: `maincave-obs` handle casts

* decomp: finish `sunken-obs`

* blocked: `rolling-obs` handle casts and hud-parts

* decomp: finish `firecanyon-obs`

* decomp: finish `ogre-obs`

* blocked: `village3-obs` gives up type analysis!

* blocked: `snow-obs` has hud-parts and handle casts code

* decomp: finish `snow-flutflut-obs`

* blocked: `lavatube-obs` has s6-1 issue

* blocked: `title-obs` handle cast issues

* fixed post merge problems

* decomp: finish `jungleb-obs`

* blocked: `training-obs` has `s6-1` issue

* fix type consistency

* scripts: Extend update script to handle the game-text-id enum as well

* git: Update git attributes to effectively halve PR burden

* fixed `sound-play-by-name` signature

* fix particle definitions in firecanyon-obs

* fix func signature in racer-states

* update ref tests

* tests: update current ref tests

* tests: add `joint` to ref-tests

* tests: add `process-drawable` to ref-tests

* updated gsrc

* add back manual fix

* address most feedback, update source files

* get rid of forward declarations in `darkcave-obs`

Co-authored-by: ManDude <7569514+ManDude@users.noreply.github.com>
2021-11-05 21:29:32 -04:00

1693 lines
62 KiB
Common Lisp

;;-*-Lisp-*-
(in-package goal)
;; name: training-part.gc
;; name in dgo: training-part
;; dgos: L1, TRA
;; DECOMP BEGINS
(deftype training-part (part-spawner)
()
:heap-base #x60
:method-count-assert 21
:size-assert #xd0
:flag-assert #x15006000d0
)
(set!
(-> *part-group-id-table* 146)
(new 'static 'sparticle-launch-group
:length 26
:duration #xbb8
:linger-duration #x5dc
:flags (sp-group-flag always-draw)
:name "group-training-geyser-2"
:launcher
(new 'static 'inline-array sparticle-group-item 26
(sp-item 752 :falloff-to (meters 500.0) :period 4800 :length 1200 :offset 4500)
(sp-item 752 :falloff-to (meters 500.0) :period 4800 :length 1140 :offset 4530)
(sp-item 752 :falloff-to (meters 500.0) :period 4800 :length 1080 :offset 4560)
(sp-item 752 :falloff-to (meters 500.0) :period 4800 :length 1020 :offset 4590)
(sp-item 752 :falloff-to (meters 500.0) :period 4800 :length 960 :offset 4620)
(sp-item 752 :falloff-to (meters 500.0) :period 4800 :length 900 :offset 4650)
(sp-item 753 :falloff-to (meters 500.0) :period 4800 :length 1200 :offset 4050)
(sp-item 753 :falloff-to (meters 500.0) :period 4800 :length 1140 :offset 4080)
(sp-item 753 :falloff-to (meters 500.0) :period 4800 :length 1080 :offset 4110)
(sp-item 753 :falloff-to (meters 500.0) :period 4800 :length 1020 :offset 4140)
(sp-item 753 :falloff-to (meters 500.0) :period 4800 :length 960 :offset 4170)
(sp-item 753 :falloff-to (meters 500.0) :period 4800 :length 900 :offset 3900)
(sp-item 754 :falloff-to (meters 500.0) :period 4800 :length 1200 :offset 4050)
(sp-item 754 :falloff-to (meters 500.0) :period 4800 :length 1140 :offset 4080)
(sp-item 754 :falloff-to (meters 500.0) :period 4800 :length 1080 :offset 4110)
(sp-item 754 :falloff-to (meters 500.0) :period 4800 :length 1020 :offset 4140)
(sp-item 754 :falloff-to (meters 500.0) :period 4800 :length 960 :offset 4170)
(sp-item 754 :falloff-to (meters 500.0) :period 4800 :length 900 :offset 3900)
(sp-item 757 :fade-after (meters 100.0) :falloff-to (meters 100.0) :period 4800 :length 3000 :offset 4050)
(sp-item 757 :fade-after (meters 100.0) :falloff-to (meters 100.0) :period 4800 :length 2100 :offset 4050)
(sp-item 757 :fade-after (meters 100.0) :falloff-to (meters 100.0) :period 4800 :length 1500 :offset 3750)
(sp-item 757 :fade-after (meters 100.0) :falloff-to (meters 100.0) :period 4800 :length 900 :offset 3450)
(sp-item 758 :fade-after (meters 100.0) :falloff-to (meters 100.0) :period 4800 :length 3000 :offset 4050)
(sp-item 758 :fade-after (meters 100.0) :falloff-to (meters 100.0) :period 4800 :length 2100 :offset 4050)
(sp-item 758 :fade-after (meters 100.0) :falloff-to (meters 100.0) :period 4800 :length 1500 :offset 3750)
(sp-item 758 :fade-after (meters 100.0) :falloff-to (meters 100.0) :period 4800 :length 900 :offset 3450)
)
:bounds
(new 'static 'sphere :y 131072.0 :w 286720.0)
)
)
(set!
(-> *part-group-id-table* 147)
(new 'static 'sparticle-launch-group
:length 26
:duration #xbb8
:linger-duration #x5dc
:flags (sp-group-flag always-draw)
:name "group-training-geyser-5"
:launcher
(new 'static 'inline-array sparticle-group-item 26
(sp-item 752 :falloff-to (meters 500.0) :period 4800 :length 1200 :offset 900)
(sp-item 752 :falloff-to (meters 500.0) :period 4800 :length 1140 :offset 930)
(sp-item 752 :falloff-to (meters 500.0) :period 4800 :length 1080 :offset 960)
(sp-item 752 :falloff-to (meters 500.0) :period 4800 :length 1020 :offset 990)
(sp-item 752 :falloff-to (meters 500.0) :period 4800 :length 960 :offset 1020)
(sp-item 752 :falloff-to (meters 500.0) :period 4800 :length 900 :offset 1050)
(sp-item 753 :falloff-to (meters 500.0) :period 4800 :length 1200 :offset 450)
(sp-item 753 :falloff-to (meters 500.0) :period 4800 :length 1140 :offset 420)
(sp-item 753 :falloff-to (meters 500.0) :period 4800 :length 1080 :offset 390)
(sp-item 753 :falloff-to (meters 500.0) :period 4800 :length 1020 :offset 360)
(sp-item 753 :falloff-to (meters 500.0) :period 4800 :length 960 :offset 330)
(sp-item 753 :falloff-to (meters 500.0) :period 4800 :length 900 :offset 300)
(sp-item 754 :falloff-to (meters 500.0) :period 4800 :length 1200 :offset 450)
(sp-item 754 :falloff-to (meters 500.0) :period 4800 :length 1140 :offset 420)
(sp-item 754 :falloff-to (meters 500.0) :period 4800 :length 1080 :offset 390)
(sp-item 754 :falloff-to (meters 500.0) :period 4800 :length 1020 :offset 360)
(sp-item 754 :falloff-to (meters 500.0) :period 4800 :length 960 :offset 330)
(sp-item 754 :falloff-to (meters 500.0) :period 4800 :length 900 :offset 300)
(sp-item 757 :fade-after (meters 100.0) :falloff-to (meters 100.0) :period 4800 :length 3000 :offset 450)
(sp-item 757 :fade-after (meters 100.0) :falloff-to (meters 100.0) :period 4800 :length 2100 :offset 450)
(sp-item 757 :fade-after (meters 100.0) :falloff-to (meters 100.0) :period 4800 :length 1500 :offset 150)
(sp-item 757 :fade-after (meters 100.0) :falloff-to (meters 100.0) :period 4800 :length 900 :offset 4650)
(sp-item 758 :fade-after (meters 100.0) :falloff-to (meters 100.0) :period 4800 :length 3000 :offset 450)
(sp-item 758 :fade-after (meters 100.0) :falloff-to (meters 100.0) :period 4800 :length 2100 :offset 450)
(sp-item 758 :fade-after (meters 100.0) :falloff-to (meters 100.0) :period 4800 :length 1500 :offset 150)
(sp-item 758 :fade-after (meters 100.0) :falloff-to (meters 100.0) :period 4800 :length 900 :offset 4650)
)
:bounds
(new 'static 'sphere :y 131072.0 :w 286720.0)
)
)
(set!
(-> *part-group-id-table* 149)
(new 'static 'sparticle-launch-group
:length 18
:duration #xbb8
:linger-duration #x5dc
:flags (sp-group-flag always-draw)
:name "group-training-geyser-6"
:launcher
(new 'static 'inline-array sparticle-group-item 18
(sp-item 752 :falloff-to (meters 500.0) :period 4800 :length 1200 :offset 2100)
(sp-item 752 :falloff-to (meters 500.0) :period 4800 :length 1140 :offset 2130)
(sp-item 752 :falloff-to (meters 500.0) :period 4800 :length 1080 :offset 2160)
(sp-item 752 :falloff-to (meters 500.0) :period 4800 :length 1020 :offset 2190)
(sp-item 752 :falloff-to (meters 500.0) :period 4800 :length 960 :offset 2220)
(sp-item 752 :falloff-to (meters 500.0) :period 4800 :length 900 :offset 2250)
(sp-item 753 :falloff-to (meters 500.0) :period 4800 :length 1200 :offset 1650)
(sp-item 753 :falloff-to (meters 500.0) :period 4800 :length 1140 :offset 1680)
(sp-item 753 :falloff-to (meters 500.0) :period 4800 :length 1080 :offset 1710)
(sp-item 753 :falloff-to (meters 500.0) :period 4800 :length 1020 :offset 1740)
(sp-item 753 :falloff-to (meters 500.0) :period 4800 :length 960 :offset 1770)
(sp-item 753 :falloff-to (meters 500.0) :period 4800 :length 900 :offset 1500)
(sp-item 754 :falloff-to (meters 500.0) :period 4800 :length 1200 :offset 1650)
(sp-item 754 :falloff-to (meters 500.0) :period 4800 :length 1140 :offset 1680)
(sp-item 754 :falloff-to (meters 500.0) :period 4800 :length 1080 :offset 1710)
(sp-item 754 :falloff-to (meters 500.0) :period 4800 :length 1020 :offset 1740)
(sp-item 754 :falloff-to (meters 500.0) :period 4800 :length 960 :offset 1770)
(sp-item 754 :falloff-to (meters 500.0) :period 4800 :length 900 :offset 1500)
)
:bounds
(new 'static 'sphere :y 131072.0 :w 286720.0)
)
)
(set!
(-> *part-group-id-table* 148)
(new 'static 'sparticle-launch-group
:length 26
:duration #xbb8
:linger-duration #x5dc
:flags (sp-group-flag always-draw)
:name "group-training-geyser-4"
:launcher
(new 'static 'inline-array sparticle-group-item 26
(sp-item 752 :falloff-to (meters 500.0) :period 4800 :length 1200 :offset 3300)
(sp-item 752 :falloff-to (meters 500.0) :period 4800 :length 1140 :offset 3330)
(sp-item 752 :falloff-to (meters 500.0) :period 4800 :length 1080 :offset 3360)
(sp-item 752 :falloff-to (meters 500.0) :period 4800 :length 1020 :offset 3390)
(sp-item 752 :falloff-to (meters 500.0) :period 4800 :length 960 :offset 3420)
(sp-item 752 :falloff-to (meters 500.0) :period 4800 :length 900 :offset 3450)
(sp-item 753 :falloff-to (meters 500.0) :period 4800 :length 1200 :offset 2850)
(sp-item 753 :falloff-to (meters 500.0) :period 4800 :length 1140 :offset 2880)
(sp-item 753 :falloff-to (meters 500.0) :period 4800 :length 1080 :offset 2910)
(sp-item 753 :falloff-to (meters 500.0) :period 4800 :length 1020 :offset 2940)
(sp-item 753 :falloff-to (meters 500.0) :period 4800 :length 960 :offset 2970)
(sp-item 753 :falloff-to (meters 500.0) :period 4800 :length 900 :offset 2700)
(sp-item 754 :falloff-to (meters 500.0) :period 4800 :length 1200 :offset 2850)
(sp-item 754 :falloff-to (meters 500.0) :period 4800 :length 1140 :offset 2880)
(sp-item 754 :falloff-to (meters 500.0) :period 4800 :length 1080 :offset 2910)
(sp-item 754 :falloff-to (meters 500.0) :period 4800 :length 1020 :offset 2940)
(sp-item 754 :falloff-to (meters 500.0) :period 4800 :length 960 :offset 2970)
(sp-item 754 :falloff-to (meters 500.0) :period 4800 :length 900 :offset 2700)
(sp-item 757 :fade-after (meters 100.0) :falloff-to (meters 100.0) :period 4800 :length 3000 :offset 2850)
(sp-item 757 :fade-after (meters 100.0) :falloff-to (meters 100.0) :period 4800 :length 2100 :offset 2850)
(sp-item 757 :fade-after (meters 100.0) :falloff-to (meters 100.0) :period 4800 :length 1500 :offset 2550)
(sp-item 757 :fade-after (meters 100.0) :falloff-to (meters 100.0) :period 4800 :length 900 :offset 2250)
(sp-item 758 :fade-after (meters 100.0) :falloff-to (meters 100.0) :period 4800 :length 3000 :offset 2850)
(sp-item 758 :fade-after (meters 100.0) :falloff-to (meters 100.0) :period 4800 :length 2100 :offset 2850)
(sp-item 758 :fade-after (meters 100.0) :falloff-to (meters 100.0) :period 4800 :length 1500 :offset 2550)
(sp-item 758 :fade-after (meters 100.0) :falloff-to (meters 100.0) :period 4800 :length 900 :offset 2250)
)
:bounds
(new 'static 'sphere :y 131072.0 :w 286720.0)
)
)
(set!
(-> *part-id-table* 752)
(new 'static 'sparticle-launcher
:init-specs
(new 'static 'inline-array sp-field-init-spec 23
(sp-tex spt-texture (new 'static 'texture-id :index #x19 :page #x2))
(sp-flt spt-num 0.2)
(new 'static 'sp-field-init-spec
:field (sp-field-id spt-sound)
:flags (sp-flag plain-v2)
:sound
(new 'static 'sound-spec
:mask #xc0
:num 0.1
:group #x1
:sound-name (static-sound-name "geyser")
:volume #x400
:fo-min 50
:fo-max #xc8
)
)
(sp-rnd-flt spt-x (meters 0.0) (meters 1.0) 1.0)
(sp-flt spt-y (meters -8.0))
(sp-flt spt-scale-x (meters 8.0))
(sp-flt spt-rot-z (degrees 180.0))
(sp-flt spt-scale-y (meters 16.0))
(sp-rnd-flt spt-r 200.0 55.0 1.0)
(sp-rnd-flt spt-g 200.0 55.0 1.0)
(sp-rnd-flt spt-b 200.0 55.0 1.0)
(sp-rnd-flt spt-a 32.0 32.0 1.0)
(sp-rnd-flt spt-vel-y (meters 0.36666667) (meters 0.033333335) 1.0)
(sp-flt spt-scalevel-x (meters 0.0033333334))
(sp-flt spt-accel-y -16.384)
(sp-int spt-timer 600)
(sp-cpuinfo-flags bit2 bit14)
(sp-int spt-next-time 510)
(sp-launcher-by-id spt-next-launcher 761)
(sp-rnd-flt spt-conerot-x (degrees 0.0) (degrees 1.0) 1.0)
(sp-rnd-flt spt-conerot-y (degrees 0.0) (degrees 360.0) 1.0)
(sp-rnd-flt spt-rotate-y (degrees 0.0) (degrees 360.0) 1.0)
(sp-end)
)
)
)
(set!
(-> *part-id-table* 761)
(new 'static 'sparticle-launcher
:init-specs
(new 'static 'inline-array sp-field-init-spec 3
(sp-flt spt-scalevel-x (meters 0.06666667))
(sp-flt spt-fade-a -1.0666667)
(sp-end)
)
)
)
(set!
(-> *part-id-table* 753)
(new 'static 'sparticle-launcher
:init-specs
(new 'static 'inline-array sp-field-init-spec 29
(sp-tex spt-texture (new 'static 'texture-id :index #x18 :page #x2))
(sp-flt spt-num 0.15)
(sp-rnd-flt spt-x (meters 0.0) (meters 1.0) 1.0)
(sp-rnd-flt spt-y (meters 85.0) (meters 10.0) 1.0)
(sp-flt spt-scale-x (meters 8.0))
(sp-rnd-flt spt-rot-z (degrees 0.0) (degrees 360.0) 1.0)
(sp-copy-from-other spt-scale-y -4)
(sp-rnd-flt spt-r 200.0 55.0 1.0)
(sp-rnd-flt spt-g 200.0 55.0 1.0)
(sp-rnd-flt spt-b 200.0 55.0 1.0)
(sp-flt spt-a 0.0)
(sp-flt spt-scalevel-x (meters 0.035555556))
(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-r -0.053333335)
(sp-flt spt-fade-g -0.053333335)
(sp-flt spt-fade-a 1.0666667)
(sp-rnd-flt spt-accel-x 0.0 1.3653333 1.0)
(sp-rnd-flt spt-accel-y -4.096 -1.3653333 1.0)
(sp-int spt-timer 1800)
(sp-cpuinfo-flags bit2 bit14)
(sp-flt spt-userdata 0.0)
(sp-func spt-func 'check-drop-level-training-mist)
(sp-int-plain-rnd spt-next-time 30 29 1)
(sp-launcher-by-id spt-next-launcher 762)
(sp-rnd-flt spt-conerot-x (degrees 0.0) (degrees 1.0) 1.0)
(sp-rnd-flt spt-conerot-y (degrees 0.0) (degrees 360.0) 1.0)
(sp-rnd-flt spt-rotate-y (degrees 0.0) (degrees 360.0) 1.0)
(sp-end)
)
)
)
(set!
(-> *part-id-table* 762)
(new 'static 'sparticle-launcher
:init-specs
(new 'static 'inline-array sp-field-init-spec 2
(sp-flt spt-fade-a -0.03678161)
(sp-end)
)
)
)
(defun
check-drop-level-training-mist
((arg0 sparticle-system) (arg1 sparticle-cpuinfo) (arg2 vector))
(when (< (-> arg2 y) (-> arg1 user-float))
(new 'stack-no-clear 'vector)
(sp-kill-particle arg0 arg1)
)
(none)
)
(set!
(-> *part-id-table* 754)
(new 'static 'sparticle-launcher
:init-specs
(new 'static 'inline-array sp-field-init-spec 29
(sp-tex spt-texture (new 'static 'texture-id :index #x18 :page #x2))
(sp-flt spt-num 0.035)
(sp-rnd-flt spt-x (meters 0.0) (meters 1.0) 1.0)
(sp-rnd-flt spt-y (meters 85.0) (meters 10.0) 1.0)
(sp-flt spt-scale-x (meters 8.0))
(sp-rnd-flt spt-rot-z (degrees 0.0) (degrees 360.0) 1.0)
(sp-copy-from-other spt-scale-y -4)
(sp-rnd-flt spt-r 200.0 55.0 1.0)
(sp-rnd-flt spt-g 200.0 55.0 1.0)
(sp-rnd-flt spt-b 200.0 55.0 1.0)
(sp-flt spt-a 0.0)
(sp-flt spt-scalevel-x (meters 0.035555556))
(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-r -0.053333335)
(sp-flt spt-fade-g -0.053333335)
(sp-flt spt-fade-a 1.0666667)
(sp-rnd-flt spt-accel-x 1.3653333 1.3653333 1.0)
(sp-rnd-flt spt-accel-y -4.096 -1.3653333 1.0)
(sp-int spt-timer 1800)
(sp-cpuinfo-flags bit2 bit14)
(sp-flt spt-userdata 0.0)
(sp-func spt-func 'check-drop-level-training-mist)
(sp-int-plain-rnd spt-next-time 30 29 1)
(sp-launcher-by-id spt-next-launcher 762)
(sp-rnd-flt spt-conerot-x (degrees 0.0) (degrees 1.0) 1.0)
(sp-rnd-flt spt-conerot-y (degrees 0.0) (degrees 360.0) 1.0)
(sp-rnd-flt spt-rotate-y (degrees 0.0) (degrees 360.0) 1.0)
(sp-end)
)
)
)
(set!
(-> *part-id-table* 763)
(new 'static 'sparticle-launcher
:init-specs
(new 'static 'inline-array sp-field-init-spec 16
(sp-tex spt-texture (new 'static 'texture-id :index #x9 :page #x2))
(sp-rnd-int spt-num 0 1 1.0)
(sp-rnd-flt spt-scale-x (meters 0.05) (meters 0.075) 1.0)
(sp-copy-from-other spt-scale-y -4)
(sp-rnd-flt spt-r 110.0 32.0 1.0)
(sp-rnd-flt spt-g 128.0 32.0 1.0)
(sp-rnd-flt spt-b 64.0 64.0 1.0)
(sp-rnd-flt spt-a 64.0 64.0 1.0)
(sp-rnd-flt spt-vel-y (meters 0.006666667) (meters 0.013333334) 1.0)
(sp-flt spt-fade-a -0.85333335)
(sp-flt spt-accel-y -2.7306666)
(sp-int spt-timer 150)
(sp-cpuinfo-flags bit2 bit3)
(sp-rnd-flt spt-conerot-x (degrees 25.000002) (degrees 40.0) 1.0)
(sp-rnd-flt spt-conerot-y (degrees 0.0) (degrees 360.0) 1.0)
(sp-end)
)
)
)
(set!
(-> *part-id-table* 764)
(new 'static 'sparticle-launcher
:init-specs
(new 'static 'inline-array sp-field-init-spec 17
(sp-tex spt-texture (new 'static 'texture-id :index #x1e :page #x2))
(sp-flt spt-num 1.0)
(sp-flt spt-y (meters 0.02))
(sp-rnd-flt spt-scale-x (meters 1.0) (meters 1.0) 1.0)
(sp-rnd-flt spt-rot-y (degrees 0.0) (degrees 360.0) 1.0)
(sp-copy-from-other spt-scale-y -4)
(sp-rnd-flt spt-r 110.0 32.0 1.0)
(sp-rnd-flt spt-g 128.0 32.0 1.0)
(sp-rnd-flt spt-b 96.0 32.0 1.0)
(sp-rnd-flt spt-a 16.0 32.0 1.0)
(sp-rnd-flt spt-scalevel-x (meters 0.006666667) (meters 0.006666667) 1.0)
(sp-copy-from-other spt-scalevel-y -4)
(sp-flt spt-fade-a -0.4)
(sp-int spt-timer 120)
(sp-cpuinfo-flags bit2 bit3)
(sp-rnd-flt spt-rotate-y (degrees 0.0) (degrees 360.0) 1.0)
(sp-end)
)
)
)
(defun
check-drop-level-training-spout-rain
((arg0 sparticle-system) (arg1 sparticle-cpuinfo) (arg2 vector))
(when (< (-> arg2 y) (-> arg1 user-float))
(let ((gp-0 (new 'stack-no-clear 'vector)))
(sp-kill-particle arg0 arg1)
(let* ((v1-1 (/ (the-as int (rand-uint31-gen *random-generator*)) 256))
(v1-2 (the-as number (logior #x3f800000 v1-1)))
)
(if (< (+ -1.0 (the-as float v1-2)) 0.25)
(sound-play-by-name
(static-sound-name "water-drop")
(new-sound-id)
1024
0
0
1
#t
)
)
)
(set-vector! gp-0 (-> arg2 x) (-> arg1 user-float) (-> arg2 z) 1.0)
(sp-launch-particles-var
*sp-particle-system-2d*
(-> *part-id-table* 763)
gp-0
(the-as sparticle-launch-state #f)
(the-as sparticle-launch-control #f)
1.0
)
(sp-launch-particles-var
*sp-particle-system-3d*
(-> *part-id-table* 764)
gp-0
(the-as sparticle-launch-state #f)
(the-as sparticle-launch-control #f)
1.0
)
)
)
(none)
)
(set!
(-> *part-id-table* 759)
(new 'static 'sparticle-launcher
:init-specs
(new 'static 'inline-array sp-field-init-spec 17
(sp-tex spt-texture (new 'static 'texture-id :index #x4 :page #x2))
(sp-flt spt-num 2.0)
(sp-rnd-flt spt-x (meters 0.0) (meters 40.0) 1.0)
(sp-rnd-flt spt-y (meters 10.0) (meters 20.0) 1.0)
(sp-rnd-flt spt-scale-x (meters 0.03) (meters 0.03) 1.0)
(sp-rnd-flt spt-scale-y (meters 0.5) (meters 0.5) 1.0)
(sp-flt spt-r 50.0)
(sp-rnd-flt spt-g 80.0 55.0 1.0)
(sp-rnd-flt spt-b 50.0 50.0 1.0)
(sp-rnd-flt spt-a 16.0 32.0 1.0)
(sp-rnd-flt spt-vel-y (meters -0.06666667) (meters -0.13333334) 1.0)
(sp-int spt-timer 240)
(sp-cpuinfo-flags bit2)
(sp-flt spt-userdata 66560.0)
(sp-func spt-func 'check-drop-level-training-spout-rain)
(sp-rnd-flt spt-rotate-y (degrees 0.0) (degrees 360.0) 1.0)
(sp-end)
)
)
)
(set!
(-> *part-id-table* 760)
(new 'static 'sparticle-launcher
:init-specs
(new 'static 'inline-array sp-field-init-spec 15
(sp-tex spt-texture (new 'static 'texture-id :index #x4 :page #x2))
(sp-flt spt-num 4.0)
(sp-rnd-flt spt-x (meters 0.0) (meters 40.0) 1.0)
(sp-rnd-flt spt-y (meters 10.0) (meters 20.0) 1.0)
(sp-rnd-flt spt-scale-x (meters 0.03) (meters 0.03) 1.0)
(sp-rnd-flt spt-scale-y (meters 0.5) (meters 0.5) 1.0)
(sp-flt spt-r 50.0)
(sp-rnd-flt spt-g 80.0 55.0 1.0)
(sp-rnd-flt spt-b 50.0 50.0 1.0)
(sp-rnd-flt spt-a 16.0 32.0 1.0)
(sp-rnd-flt spt-vel-y (meters -0.06666667) (meters -0.033333335) 1.0)
(sp-int spt-timer 240)
(sp-cpuinfo-flags bit2)
(sp-rnd-flt spt-rotate-y (degrees 0.0) (degrees 360.0) 1.0)
(sp-end)
)
)
)
(set!
(-> *part-id-table* 757)
(new 'static 'sparticle-launcher
:init-specs
(new 'static 'inline-array sp-field-init-spec 17
(sp-tex spt-texture (new 'static 'texture-id :index #x4 :page #x2))
(sp-flt spt-num 2.0)
(sp-rnd-flt spt-x (meters 0.0) (meters 40.0) 1.0)
(sp-rnd-flt spt-y (meters 4.0) (meters 8.0) 1.0)
(sp-rnd-flt spt-scale-x (meters 0.03) (meters 0.03) 1.0)
(sp-rnd-flt spt-scale-y (meters 0.5) (meters 0.5) 1.0)
(sp-flt spt-r 50.0)
(sp-rnd-flt spt-g 80.0 55.0 1.0)
(sp-rnd-flt spt-b 50.0 50.0 1.0)
(sp-rnd-flt spt-a 16.0 32.0 1.0)
(sp-rnd-flt spt-vel-y (meters -0.06666667) (meters -0.13333334) 1.0)
(sp-int spt-timer 240)
(sp-cpuinfo-flags bit2)
(sp-flt spt-userdata 0.0)
(sp-func spt-func 'check-drop-level-training-spout-rain)
(sp-rnd-flt spt-rotate-y (degrees 0.0) (degrees 360.0) 1.0)
(sp-end)
)
)
)
(set!
(-> *part-id-table* 758)
(new 'static 'sparticle-launcher
:init-specs
(new 'static 'inline-array sp-field-init-spec 15
(sp-tex spt-texture (new 'static 'texture-id :index #x4 :page #x2))
(sp-flt spt-num 4.0)
(sp-rnd-flt spt-x (meters 0.0) (meters 40.0) 1.0)
(sp-rnd-flt spt-y (meters 4.0) (meters 10.0) 1.0)
(sp-rnd-flt spt-scale-x (meters 0.03) (meters 0.03) 1.0)
(sp-rnd-flt spt-scale-y (meters 0.5) (meters 0.5) 1.0)
(sp-flt spt-r 50.0)
(sp-rnd-flt spt-g 80.0 55.0 1.0)
(sp-rnd-flt spt-b 50.0 50.0 1.0)
(sp-rnd-flt spt-a 16.0 32.0 1.0)
(sp-rnd-flt spt-vel-y (meters -0.06666667) (meters -0.033333335) 1.0)
(sp-int spt-timer 240)
(sp-cpuinfo-flags bit2)
(sp-rnd-flt spt-rotate-y (degrees 0.0) (degrees 360.0) 1.0)
(sp-end)
)
)
)
(set!
(-> *part-id-table* 755)
(new 'static 'sparticle-launcher
:init-specs
(new 'static 'inline-array sp-field-init-spec 17
(sp-tex spt-texture (new 'static 'texture-id :index #x4 :page #x2))
(sp-flt spt-num 2.0)
(sp-rnd-flt spt-x (meters 0.0) (meters 40.0) 1.0)
(sp-rnd-flt spt-y (meters 10.0) (meters 10.0) 1.0)
(sp-rnd-flt spt-scale-x (meters 0.03) (meters 0.03) 1.0)
(sp-rnd-flt spt-scale-y (meters 0.5) (meters 0.5) 1.0)
(sp-flt spt-r 50.0)
(sp-rnd-flt spt-g 80.0 55.0 1.0)
(sp-rnd-flt spt-b 50.0 50.0 1.0)
(sp-rnd-flt spt-a 16.0 32.0 1.0)
(sp-rnd-flt spt-vel-y (meters -0.06666667) (meters -0.13333334) 1.0)
(sp-int spt-timer 240)
(sp-cpuinfo-flags bit2)
(sp-flt spt-userdata 0.0)
(sp-func spt-func 'check-drop-level-training-spout-rain)
(sp-rnd-flt spt-rotate-y (degrees 0.0) (degrees 360.0) 1.0)
(sp-end)
)
)
)
(set!
(-> *part-id-table* 756)
(new 'static 'sparticle-launcher
:init-specs
(new 'static 'inline-array sp-field-init-spec 15
(sp-tex spt-texture (new 'static 'texture-id :index #x4 :page #x2))
(sp-flt spt-num 4.0)
(sp-rnd-flt spt-x (meters 0.0) (meters 40.0) 1.0)
(sp-rnd-flt spt-y (meters 10.0) (meters 20.0) 1.0)
(sp-rnd-flt spt-scale-x (meters 0.03) (meters 0.03) 1.0)
(sp-rnd-flt spt-scale-y (meters 0.5) (meters 0.5) 1.0)
(sp-flt spt-r 50.0)
(sp-rnd-flt spt-g 80.0 55.0 1.0)
(sp-rnd-flt spt-b 50.0 50.0 1.0)
(sp-rnd-flt spt-a 16.0 32.0 1.0)
(sp-rnd-flt spt-vel-y (meters -0.06666667) (meters -0.033333335) 1.0)
(sp-int spt-timer 240)
(sp-cpuinfo-flags bit2)
(sp-rnd-flt spt-rotate-y (degrees 0.0) (degrees 360.0) 1.0)
(sp-end)
)
)
)
(set!
(-> *part-group-id-table* 150)
(new 'static 'sparticle-launch-group
:length #xac
:duration #xbb8
:linger-duration #x5dc
:name "group-training-warpgate"
:launcher
(new 'static 'inline-array sparticle-group-item 172
(sp-item 767 :fade-after (meters 60.0) :falloff-to (meters 60.0))
(sp-item 768 :fade-after (meters 60.0) :falloff-to (meters 100.0) :binding 765)
(sp-item 765 :flags (bit1 start-dead launch-asap))
(sp-item 765 :flags (bit1 start-dead launch-asap))
(sp-item 765 :flags (bit1 start-dead launch-asap))
(sp-item 765 :flags (bit1 start-dead launch-asap))
(sp-item 765 :flags (bit1 start-dead launch-asap))
(sp-item 765 :flags (bit1 start-dead launch-asap))
(sp-item 765 :flags (bit1 start-dead launch-asap))
(sp-item 765 :flags (bit1 start-dead launch-asap))
(sp-item 765 :flags (bit1 start-dead launch-asap))
(sp-item 765 :flags (bit1 start-dead launch-asap))
(sp-item 765 :flags (bit1 start-dead launch-asap))
(sp-item 765 :flags (bit1 start-dead launch-asap))
(sp-item 765 :flags (bit1 start-dead launch-asap))
(sp-item 765 :flags (bit1 start-dead launch-asap))
(sp-item 765 :flags (bit1 start-dead launch-asap))
(sp-item 765 :flags (bit1 start-dead launch-asap))
(sp-item 765 :flags (bit1 start-dead launch-asap))
(sp-item 765 :flags (bit1 start-dead launch-asap))
(sp-item 765 :flags (bit1 start-dead launch-asap))
(sp-item 765 :flags (bit1 start-dead launch-asap))
(sp-item 765 :flags (bit1 start-dead launch-asap))
(sp-item 765 :flags (bit1 start-dead launch-asap))
(sp-item 765 :flags (bit1 start-dead launch-asap))
(sp-item 765 :flags (bit1 start-dead launch-asap))
(sp-item 765 :flags (bit1 start-dead launch-asap))
(sp-item 765 :flags (bit1 start-dead launch-asap))
(sp-item 765 :flags (bit1 start-dead launch-asap))
(sp-item 765 :flags (bit1 start-dead launch-asap))
(sp-item 765 :flags (bit1 start-dead launch-asap))
(sp-item 765 :flags (bit1 start-dead launch-asap))
(sp-item 765 :flags (bit1 start-dead launch-asap))
(sp-item 765 :flags (bit1 start-dead launch-asap))
(sp-item 765 :flags (bit1 start-dead launch-asap))
(sp-item 765 :flags (bit1 start-dead launch-asap))
(sp-item 765 :flags (bit1 start-dead launch-asap))
(sp-item 765 :flags (bit1 start-dead launch-asap))
(sp-item 765 :flags (bit1 start-dead launch-asap))
(sp-item 765 :flags (bit1 start-dead launch-asap))
(sp-item 765 :flags (bit1 start-dead launch-asap))
(sp-item 765 :flags (bit1 start-dead launch-asap))
(sp-item 765 :flags (bit1 start-dead launch-asap))
(sp-item 765 :flags (bit1 start-dead launch-asap))
(sp-item 765 :flags (bit1 start-dead launch-asap))
(sp-item 765 :flags (bit1 start-dead launch-asap))
(sp-item 765 :flags (bit1 start-dead launch-asap))
(sp-item 765 :flags (bit1 start-dead launch-asap))
(sp-item 765 :flags (bit1 start-dead launch-asap))
(sp-item 765 :flags (bit1 start-dead launch-asap))
(sp-item 765 :flags (bit1 start-dead launch-asap))
(sp-item 765 :flags (bit1 start-dead launch-asap))
(sp-item 765 :flags (bit1 start-dead launch-asap))
(sp-item 765 :flags (bit1 start-dead launch-asap))
(sp-item 765 :flags (bit1 start-dead launch-asap))
(sp-item 765 :flags (bit1 start-dead launch-asap))
(sp-item 765 :flags (bit1 start-dead launch-asap))
(sp-item 765 :flags (bit1 start-dead launch-asap))
(sp-item 765 :flags (bit1 start-dead launch-asap))
(sp-item 765 :flags (bit1 start-dead launch-asap))
(sp-item 765 :flags (bit1 start-dead launch-asap))
(sp-item 765 :flags (bit1 start-dead launch-asap))
(sp-item 765 :flags (bit1 start-dead launch-asap))
(sp-item 765 :flags (bit1 start-dead launch-asap))
(sp-item 765 :flags (bit1 start-dead launch-asap))
(sp-item 765 :flags (bit1 start-dead launch-asap))
(sp-item 765 :flags (bit1 start-dead launch-asap))
(sp-item 765 :flags (bit1 start-dead launch-asap))
(sp-item 765 :flags (bit1 start-dead launch-asap))
(sp-item 765 :flags (bit1 start-dead launch-asap))
(sp-item 765 :flags (bit1 start-dead launch-asap))
(sp-item 765 :flags (bit1 start-dead launch-asap))
(sp-item 765 :flags (bit1 start-dead launch-asap))
(sp-item 765 :flags (bit1 start-dead launch-asap))
(sp-item 765 :flags (bit1 start-dead launch-asap))
(sp-item 765 :flags (bit1 start-dead launch-asap))
(sp-item 765 :flags (bit1 start-dead launch-asap))
(sp-item 765 :flags (bit1 start-dead launch-asap))
(sp-item 765 :flags (bit1 start-dead launch-asap))
(sp-item 765 :flags (bit1 start-dead launch-asap))
(sp-item 765 :flags (bit1 start-dead launch-asap))
(sp-item 765 :flags (bit1 start-dead launch-asap))
(sp-item 765 :flags (bit1 start-dead launch-asap))
(sp-item 765 :flags (bit1 start-dead launch-asap))
(sp-item 765 :flags (bit1 start-dead launch-asap))
(sp-item 765 :flags (bit1 start-dead launch-asap))
(sp-item 765 :flags (bit1 start-dead launch-asap))
(sp-item 765 :flags (bit1 start-dead launch-asap))
(sp-item 765 :flags (bit1 start-dead launch-asap))
(sp-item 765 :flags (bit1 start-dead launch-asap))
(sp-item 765 :flags (bit1 start-dead launch-asap))
(sp-item 765 :flags (bit1 start-dead launch-asap))
(sp-item 765 :flags (bit1 start-dead launch-asap))
(sp-item 765 :flags (bit1 start-dead launch-asap))
(sp-item 765 :flags (bit1 start-dead launch-asap))
(sp-item 765 :flags (bit1 start-dead launch-asap))
(sp-item 765 :flags (bit1 start-dead launch-asap))
(sp-item 765 :flags (bit1 start-dead launch-asap))
(sp-item 765 :flags (bit1 start-dead launch-asap))
(sp-item 765 :flags (bit1 start-dead launch-asap))
(sp-item 765 :flags (bit1 start-dead launch-asap))
(sp-item 765 :flags (bit1 start-dead launch-asap))
(sp-item 765 :flags (bit1 start-dead launch-asap))
(sp-item 765 :flags (bit1 start-dead launch-asap))
(sp-item 765 :flags (bit1 start-dead launch-asap))
(sp-item 765 :flags (bit1 start-dead launch-asap))
(sp-item 765 :flags (bit1 start-dead launch-asap))
(sp-item 765 :flags (bit1 start-dead launch-asap))
(sp-item 765 :flags (bit1 start-dead launch-asap))
(sp-item 765 :flags (bit1 start-dead launch-asap))
(sp-item 765 :flags (bit1 start-dead launch-asap))
(sp-item 765 :flags (bit1 start-dead launch-asap))
(sp-item 765 :flags (bit1 start-dead launch-asap))
(sp-item 765 :flags (bit1 start-dead launch-asap))
(sp-item 765 :flags (bit1 start-dead launch-asap))
(sp-item 765 :flags (bit1 start-dead launch-asap))
(sp-item 765 :flags (bit1 start-dead launch-asap))
(sp-item 765 :flags (bit1 start-dead launch-asap))
(sp-item 765 :flags (bit1 start-dead launch-asap))
(sp-item 765 :flags (bit1 start-dead launch-asap))
(sp-item 765 :flags (bit1 start-dead launch-asap))
(sp-item 765 :flags (bit1 start-dead launch-asap))
(sp-item 765 :flags (bit1 start-dead launch-asap))
(sp-item 765 :flags (bit1 start-dead launch-asap))
(sp-item 765 :flags (bit1 start-dead launch-asap))
(sp-item 765 :flags (bit1 start-dead launch-asap))
(sp-item 765 :flags (bit1 start-dead launch-asap))
(sp-item 765 :flags (bit1 start-dead launch-asap))
(sp-item 765 :flags (bit1 start-dead launch-asap))
(sp-item 765 :flags (bit1 start-dead launch-asap))
(sp-item 765 :flags (bit1 start-dead launch-asap))
(sp-item 765 :flags (bit1 start-dead launch-asap))
(sp-item 765 :flags (bit1 start-dead launch-asap))
(sp-item 765 :flags (bit1 start-dead launch-asap))
(sp-item 765 :flags (bit1 start-dead launch-asap))
(sp-item 765 :flags (bit1 start-dead launch-asap))
(sp-item 765 :flags (bit1 start-dead launch-asap))
(sp-item 765 :flags (bit1 start-dead launch-asap))
(sp-item 769 :fade-after (meters 60.0) :falloff-to (meters 100.0) :binding 766)
(sp-item 766 :flags (bit1 start-dead launch-asap))
(sp-item 766 :flags (bit1 start-dead launch-asap))
(sp-item 766 :flags (bit1 start-dead launch-asap))
(sp-item 766 :flags (bit1 start-dead launch-asap))
(sp-item 766 :flags (bit1 start-dead launch-asap))
(sp-item 766 :flags (bit1 start-dead launch-asap))
(sp-item 766 :flags (bit1 start-dead launch-asap))
(sp-item 766 :flags (bit1 start-dead launch-asap))
(sp-item 766 :flags (bit1 start-dead launch-asap))
(sp-item 766 :flags (bit1 start-dead launch-asap))
(sp-item 766 :flags (bit1 start-dead launch-asap))
(sp-item 766 :flags (bit1 start-dead launch-asap))
(sp-item 766 :flags (bit1 start-dead launch-asap))
(sp-item 766 :flags (bit1 start-dead launch-asap))
(sp-item 766 :flags (bit1 start-dead launch-asap))
(sp-item 766 :flags (bit1 start-dead launch-asap))
(sp-item 766 :flags (bit1 start-dead launch-asap))
(sp-item 766 :flags (bit1 start-dead launch-asap))
(sp-item 766 :flags (bit1 start-dead launch-asap))
(sp-item 766 :flags (bit1 start-dead launch-asap))
(sp-item 766 :flags (bit1 start-dead launch-asap))
(sp-item 766 :flags (bit1 start-dead launch-asap))
(sp-item 766 :flags (bit1 start-dead launch-asap))
(sp-item 766 :flags (bit1 start-dead launch-asap))
(sp-item 766 :flags (bit1 start-dead launch-asap))
(sp-item 766 :flags (bit1 start-dead launch-asap))
(sp-item 766 :flags (bit1 start-dead launch-asap))
(sp-item 766 :flags (bit1 start-dead launch-asap))
(sp-item 766 :flags (bit1 start-dead launch-asap))
(sp-item 766 :flags (bit1 start-dead launch-asap))
(sp-item 766 :flags (bit1 start-dead launch-asap))
(sp-item 766 :flags (bit1 start-dead launch-asap))
(sp-item 770 :fade-after (meters 100.0) :flags (is-3d))
)
:bounds (new 'static 'sphere :w 32768.0)
)
)
(set!
(-> *part-id-table* 770)
(new 'static 'sparticle-launcher
:init-specs
(new 'static 'inline-array sp-field-init-spec 14
(sp-tex spt-texture (new 'static 'texture-id :index #x3 :page #x2))
(sp-flt spt-num 0.5)
(sp-flt spt-x (meters 0.0))
(sp-flt spt-scale-x (meters 5.0))
(sp-flt spt-rot-x 16384.0)
(sp-flt spt-rot-z (degrees 15.0))
(sp-copy-from-other spt-scale-y -4)
(sp-rnd-flt spt-r 0.0 32.0 1.0)
(sp-rnd-flt spt-g 0.0 32.0 1.0)
(sp-rnd-flt spt-b 64.0 64.0 1.0)
(sp-rnd-flt spt-a 0.0 64.0 1.0)
(sp-int spt-timer 10)
(sp-cpuinfo-flags bit3 bit14)
(sp-end)
)
)
)
(set!
(-> *part-id-table* 769)
(new 'static 'sparticle-launcher
:init-specs
(new 'static 'inline-array sp-field-init-spec 12
(sp-tex spt-texture (new 'static 'texture-id :index #xf :page #x2))
(sp-flt spt-num 0.25)
(sp-flt spt-x (meters -2.0))
(sp-flt spt-scale-x (meters 0.25))
(sp-copy-from-other spt-scale-y -4)
(sp-flt spt-g 128.0)
(sp-flt spt-a 0.0)
(sp-flt spt-vel-x (meters 0.0033333334))
(sp-int spt-timer 600)
(sp-cpuinfo-flags bit3 bit14)
(sp-flt spt-rotate-y (degrees -105.0))
(sp-end)
)
)
)
(set!
(-> *part-id-table* 766)
(new 'static 'sparticle-launcher
:init-specs
(new 'static 'inline-array sp-field-init-spec 20
(sp-tex spt-texture (new 'static 'texture-id :index #x4 :page #x2))
(sp-flt spt-num 1.0)
(sp-flt spt-x (meters -0.6666667))
(sp-flt spt-y (meters 4.0))
(sp-rnd-flt spt-z 22118.4 4096.0 1.0)
(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 0.0 32.0 1.0)
(sp-rnd-flt spt-g 0.0 32.0 1.0)
(sp-rnd-flt spt-b 64.0 196.0 1.0)
(sp-flt spt-a 0.0)
(sp-rnd-flt spt-omega 0.0 65536.0 1.0)
(sp-flt spt-vel-x (meters 0.0))
(sp-flt spt-vel-z (meters 0.0))
(sp-flt spt-fade-a 0.16)
(sp-flt spt-accel-x 1.2136296)
(sp-flt spt-accel-z -0.75093335)
(sp-int spt-timer 600)
(sp-cpuinfo-flags bit2 bit3 bit7 bit14)
(sp-end)
)
)
)
(set!
(-> *part-id-table* 767)
(new 'static 'sparticle-launcher
:init-specs
(new 'static 'inline-array sp-field-init-spec 14
(sp-rnd-flt spt-num 3.0 3.0 1.0)
(sp-flt spt-x (meters -0.5))
(sp-int spt-rot-x 5)
(sp-flt spt-r 4096.0)
(sp-flt spt-g 3481.6)
(sp-flt spt-b 3481.6)
(sp-rnd-flt spt-vel-y (meters -0.026666667) (meters -0.02) 1.0)
(sp-flt spt-fade-b 2.968116)
(sp-int spt-timer 69)
(sp-cpuinfo-flags aux-list)
(sp-rnd-flt spt-conerot-x (degrees 0.0) (degrees 360.0) 1.0)
(sp-rnd-flt spt-conerot-radius (meters 4.0) (meters 3.0) 1.0)
(sp-flt spt-rotate-y (degrees -105.0))
(sp-end)
)
)
)
(set!
(-> *part-id-table* 768)
(new 'static 'sparticle-launcher
:init-specs
(new 'static 'inline-array sp-field-init-spec 11
(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.25))
(sp-copy-from-other spt-scale-y -4)
(sp-flt spt-g 128.0)
(sp-flt spt-a 0.0)
(sp-flt spt-accel-x 0.06826667)
(sp-int spt-timer 690)
(sp-cpuinfo-flags bit3 bit14)
(sp-flt spt-rotate-y (degrees -105.0))
(sp-end)
)
)
)
(set!
(-> *part-id-table* 765)
(new 'static 'sparticle-launcher
:init-specs
(new 'static 'inline-array sp-field-init-spec 21
(sp-tex spt-texture (new 'static 'texture-id :page #x2))
(sp-flt spt-num 1.0)
(sp-flt spt-x (meters -0.6666667))
(sp-flt spt-y (meters 4.0))
(sp-flt spt-z 9830.4)
(sp-rnd-flt spt-scale-x (meters 1.1) (meters 0.6) 1.0)
(sp-rnd-flt spt-rot-z (degrees 0.0) (degrees 360.0) 1.0)
(sp-copy-from-other spt-scale-y -4)
(sp-rnd-flt spt-r 0.0 32.0 1.0)
(sp-rnd-flt spt-g 0.0 32.0 1.0)
(sp-rnd-flt spt-b 64.0 64.0 1.0)
(sp-rnd-flt spt-a 8.0 32.0 1.0)
(sp-rnd-flt spt-omega 0.0 65536.0 1.0)
(sp-flt spt-vel-x (meters -0.0044444446))
(sp-flt spt-vel-z (meters -0.0034999999))
(sp-rnd-flt spt-rotvel-z (degrees 0.0) (degrees 1.2) 1.0)
(sp-flt spt-fade-a 0.21333334)
(sp-flt spt-accel-x 4.247704)
(sp-int spt-timer 690)
(sp-cpuinfo-flags bit2 bit3 bit7 bit14)
(sp-end)
)
)
)
(set!
(-> *part-group-id-table* 151)
(new 'static 'sparticle-launch-group
:length 13
:duration #xbb8
:linger-duration #x5dc
:name "group-training-butterflies"
:launcher
(new 'static 'inline-array sparticle-group-item 13
(sp-item 773 :fade-after (meters 120.0) :period 4903 :length 5 :hour-mask #b111111100000000000111111 :binding 771)
(sp-item 773 :fade-after (meters 120.0) :period 6637 :length 5 :hour-mask #b111111100000000000111111 :binding 771)
(sp-item 773 :fade-after (meters 120.0) :period 9846 :length 5 :hour-mask #b111111100000000000111111 :binding 771)
(sp-item 771 :flags (start-dead launch-asap) :binding 772)
(sp-item 772 :flags (is-3d start-dead))
(sp-item 771 :flags (start-dead launch-asap) :binding 772)
(sp-item 772 :flags (is-3d start-dead))
(sp-item 771 :flags (start-dead launch-asap) :binding 772)
(sp-item 772 :flags (is-3d start-dead))
(sp-item 771 :flags (start-dead launch-asap) :binding 772)
(sp-item 772 :flags (is-3d start-dead))
(sp-item 771 :flags (start-dead launch-asap) :binding 772)
(sp-item 772 :flags (is-3d start-dead))
)
:bounds (new 'static 'sphere :w 122880.0)
)
)
(set!
(-> *part-id-table* 773)
(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 774)
(sp-rnd-flt spt-rotate-y (degrees 0.0) (degrees 360.0) 1.0)
(sp-end)
)
)
)
(set!
(-> *part-id-table* 774)
(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 775)
(sp-end)
)
)
)
(set!
(-> *part-id-table* 775)
(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* 771)
(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 776)
(sp-end)
)
)
)
(set!
(-> *part-id-table* 776)
(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 776)
(sp-end)
)
)
)
(set!
(-> *part-id-table* 772)
(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* 152)
(new 'static 'sparticle-launch-group
:length 9
:duration #xbb8
:linger-duration #x5dc
:name "group-training-birds"
:launcher
(new 'static 'inline-array sparticle-group-item 9
(sp-item 779 :fade-after (meters 120.0) :flags (bit1 launch-asap) :binding 777)
(sp-item 779 :fade-after (meters 120.0) :flags (bit1 launch-asap) :binding 777)
(sp-item 779 :fade-after (meters 120.0) :flags (bit1 launch-asap) :binding 777)
(sp-item 777 :flags (start-dead launch-asap) :binding 778)
(sp-item 778 :flags (is-3d start-dead))
(sp-item 777 :flags (start-dead launch-asap) :binding 778)
(sp-item 778 :flags (is-3d start-dead))
(sp-item 777 :flags (start-dead launch-asap) :binding 778)
(sp-item 778 :flags (is-3d start-dead))
)
:bounds
(new 'static 'sphere :y 32768.0 :w 184320.0)
)
)
(defun
tra-bird-bob-func
((arg0 sparticle-system) (arg1 sparticle-cpuinfo) (arg2 vector))
(set!
(-> arg2 y)
(+
(-> (the-as process-drawable (-> arg1 key proc)) root trans y)
(*
-2048.0
(sin (* 218.45334 (the float (mod (-> *display* base-frame-counter) 300))))
)
)
)
0
(none)
)
(set!
(-> *part-id-table* 779)
(new 'static 'sparticle-launcher
:init-specs
(new 'static 'inline-array sp-field-init-spec 15
(sp-tex spt-texture (new 'static 'texture-id :index #xf :page #x2))
(sp-func spt-birth-func 'birth-func-random-next-time)
(sp-flt spt-num 1.0)
(sp-rnd-flt spt-x (meters -15.0) (meters 30.0) 1.0)
(sp-rnd-flt spt-y (meters 0.0) (meters 16.0) 1.0)
(sp-rnd-flt spt-z -61440.0 122880.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-int spt-timer -1)
(sp-cpuinfo-flags bit3)
(sp-flt spt-userdata 199.98)
(sp-func spt-func 'tra-bird-bob-func)
(sp-end)
)
)
)
(defun
tra-sparticle-seagull-moon
((arg0 sparticle-system) (arg1 sparticle-cpuinfo) (arg2 matrix))
(set!
(-> arg2 vector 1 z)
(the float (sar (shl (the int (+ -16384.0 (-> arg1 omega))) 48) 48))
)
0
(none)
)
(set!
(-> *part-id-table* 777)
(new 'static 'sparticle-launcher
:init-specs
(new 'static 'inline-array sp-field-init-spec 22
(sp-tex spt-texture (new 'static 'texture-id :index #xf :page #x2))
(sp-func spt-birth-func 'birth-func-copy-omega-to-z)
(sp-flt spt-num 1.0)
(sp-flt spt-x (meters 0.0))
(sp-flt spt-y (meters 0.0))
(sp-flt spt-z 122880.0)
(sp-flt spt-scale-x (meters 0.0))
(sp-flt spt-rot-z (degrees 0.0))
(sp-flt spt-r 255.0)
(sp-flt spt-g 255.0)
(sp-flt spt-b 255.0)
(sp-flt spt-a 0.0)
(sp-rnd-flt spt-omega 0.0 65536.0 1.0)
(sp-flt spt-vel-x (meters 0.0044444446))
(sp-flt spt-vel-z (meters 0.0))
(sp-flt spt-scalevel-x (meters 0.04))
(sp-int spt-timer 600)
(sp-cpuinfo-flags bit3 bit7)
(sp-func spt-func 'tra-sparticle-seagull-moon)
(sp-int spt-next-time 199)
(sp-launcher-by-id spt-next-launcher 780)
(sp-end)
)
)
)
(set!
(-> *part-id-table* 780)
(new 'static 'sparticle-launcher
:init-specs
(new 'static 'inline-array sp-field-init-spec 6
(sp-flt spt-scale-x (meters 8.0))
(sp-flt spt-scalevel-x (meters -0.08))
(sp-int spt-timer 600)
(sp-int spt-next-time 100)
(sp-launcher-by-id spt-next-launcher 781)
(sp-end)
)
)
)
(set!
(-> *part-id-table* 781)
(new 'static 'sparticle-launcher
:init-specs
(new 'static 'inline-array sp-field-init-spec 6
(sp-flt spt-scale-x (meters 0.0))
(sp-flt spt-scalevel-x (meters -0.04))
(sp-int spt-timer 600)
(sp-int spt-next-time 199)
(sp-launcher-by-id spt-next-launcher 780)
(sp-end)
)
)
)
(set!
(-> *part-id-table* 778)
(new 'static 'sparticle-launcher
:init-specs
(new 'static 'inline-array sp-field-init-spec 9
(sp-tex spt-texture (new 'static 'texture-id :index #x1c :page #x2))
(sp-func spt-birth-func 'birth-func-copy2-rot-color)
(sp-flt spt-num 2.0)
(sp-flt spt-scale-x (meters 4.0))
(sp-flt spt-scale-y (meters 1.5))
(sp-flt spt-a 128.0)
(sp-int spt-timer 5)
(sp-cpuinfo-flags bit2 bit9 bit12)
(sp-end)
)
)
)
(set!
(-> *part-group-id-table* 153)
(new 'static 'sparticle-launch-group
:length 6
:duration #xbb8
:linger-duration #x5dc
:flags (sp-group-flag always-draw)
:name "group-training-waterfall-21"
:launcher
(new 'static 'inline-array sparticle-group-item 6
(sp-item 782 :fade-after (meters 160.0) :falloff-to (meters 160.0))
(sp-item 783 :fade-after (meters 160.0) :falloff-to (meters 160.0))
(sp-item 784 :fade-after (meters 160.0) :falloff-to (meters 160.0))
(sp-item 785 :fade-after (meters 80.0) :falloff-to (meters 80.0))
(sp-item 786 :fade-after (meters 160.0) :falloff-to (meters 160.0))
(sp-item 787 :fade-after (meters 160.0) :falloff-to (meters 160.0))
)
:bounds
(new 'static 'sphere :y 65536.0 :w 131072.0)
)
)
(set!
(-> *part-id-table* 789)
(new 'static 'sparticle-launcher
:init-specs
(new 'static 'inline-array sp-field-init-spec 2
(sp-flt spt-fade-a -0.10666667)
(sp-end)
)
)
)
(set!
(-> *part-id-table* 790)
(new 'static 'sparticle-launcher
:init-specs
(new 'static 'inline-array sp-field-init-spec 2
(sp-flt spt-fade-a -0.16)
(sp-end)
)
)
)
(set!
(-> *part-id-table* 791)
(new 'static 'sparticle-launcher
:init-specs
(new 'static 'inline-array sp-field-init-spec 2
(sp-flt spt-fade-a -2.6666667)
(sp-end)
)
)
)
(set!
(-> *part-id-table* 782)
(new 'static 'sparticle-launcher
:init-specs
(new 'static 'inline-array sp-field-init-spec 25
(sp-tex spt-texture (new 'static 'texture-id :index #x18 :page #x2))
(sp-flt spt-num 0.9)
(sp-rnd-flt spt-x (meters -9.0) (meters 1.0) 1.0)
(sp-flt spt-y (meters 47.0))
(sp-rnd-flt spt-z -4096.0 8192.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 32.0 16.0 1.0)
(sp-flt spt-vel-x (meters 0.05))
(sp-rnd-flt spt-vel-y (meters 0.013333334) (meters 0.013333334) 1.0)
(sp-rnd-flt spt-vel-z (meters -0.0016666667) (meters 0.0033333334) 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 384)
(sp-cpuinfo-flags bit2)
(sp-int spt-next-time 369)
(sp-launcher-by-id spt-next-launcher 791)
(sp-rnd-flt spt-launchrot-x (degrees -15.0) (degrees 30.0) 1.0)
(sp-flt spt-rotate-y (degrees 90.0))
(sp-end)
)
)
)
(set!
(-> *part-id-table* 783)
(new 'static 'sparticle-launcher
:init-specs
(new 'static 'inline-array sp-field-init-spec 25
(sp-tex spt-texture (new 'static 'texture-id :index #x18 :page #x2))
(sp-flt spt-num 0.9)
(sp-rnd-flt spt-x (meters -9.0) (meters 1.0) 1.0)
(sp-rnd-flt spt-y (meters 39.0) (meters 5.0) 1.0)
(sp-flt spt-z 0.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 32.0 16.0 1.0)
(sp-rnd-flt spt-vel-x (meters 0.05) (meters 0.013333334) 1.0)
(sp-rnd-flt spt-vel-y (meters 0.013333334) (meters 0.013333334) 1.0)
(sp-rnd-flt spt-vel-z (meters 0.011666667) (meters 0.01) 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 210)
(sp-cpuinfo-flags bit2)
(sp-int spt-next-time 369)
(sp-launcher-by-id spt-next-launcher 791)
(sp-rnd-flt spt-launchrot-x (degrees -15.0) (degrees 30.0) 1.0)
(sp-flt spt-rotate-y (degrees 90.0))
(sp-end)
)
)
)
(set!
(-> *part-id-table* 784)
(new 'static 'sparticle-launcher
:init-specs
(new 'static 'inline-array sp-field-init-spec 24
(sp-tex spt-texture (new 'static 'texture-id :index #x18 :page #x2))
(sp-flt spt-num 1.0)
(sp-rnd-flt spt-x (meters -2.0) (meters 3.0) 1.0)
(sp-rnd-flt spt-y (meters 24.0) (meters 6.0) 1.0)
(sp-flt spt-z 8192.0)
(sp-rnd-flt spt-scale-x (meters 2.4) (meters 1.6) 1.0)
(sp-rnd-flt spt-scale-y (meters 4.8) (meters 3.2) 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 32.0 16.0 1.0)
(sp-rnd-flt spt-vel-x (meters 0.0) (meters 0.026666667) 1.0)
(sp-rnd-flt spt-vel-y (meters -0.01) (meters 0.0033333334) 1.0)
(sp-rnd-flt spt-vel-z (meters -0.021666666) (meters 0.013333334) 1.0)
(sp-flt spt-scalevel-x (meters 0.0073242188))
(sp-flt spt-scalevel-y (meters 0.029296875))
(sp-rnd-flt spt-accel-y -15.018667 -2.7306666 1.0)
(sp-int spt-timer 270)
(sp-cpuinfo-flags bit2)
(sp-int spt-next-time 369)
(sp-launcher-by-id spt-next-launcher 791)
(sp-rnd-flt spt-launchrot-x (degrees -15.0) (degrees 30.0) 1.0)
(sp-flt spt-rotate-y (degrees 90.0))
(sp-end)
)
)
)
(set!
(-> *part-id-table* 785)
(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 1.0)
(sp-rnd-flt spt-x (meters -9.0) (meters 1.0) 1.0)
(sp-flt spt-y (meters 47.0))
(sp-rnd-flt spt-z -4096.0 8192.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 24.0)
(sp-rnd-flt spt-vel-x (meters 0.05) (meters 0.013333334) 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.8444445)
(sp-rnd-flt spt-accel-y -6.826667 -3.4133334 1.0)
(sp-int spt-timer 510)
(sp-cpuinfo-flags bit2 bit3)
(sp-rnd-flt spt-launchrot-x (degrees -20.0) (degrees 40.0) 1.0)
(sp-flt spt-rotate-y (degrees 90.0))
(sp-end)
)
)
)
(set!
(-> *part-id-table* 786)
(new 'static 'sparticle-launcher
:init-specs
(new 'static 'inline-array sp-field-init-spec 26
(sp-tex spt-texture (new 'static 'texture-id :page #x2))
(sp-rnd-flt spt-num 0.5 0.4 1.0)
(sp-rnd-flt spt-x (meters -7.0) (meters 3.5) 1.0)
(sp-flt spt-y (meters 47.0))
(sp-rnd-flt spt-z -4096.0 8192.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 16.0 1.0)
(sp-flt spt-vel-x (meters 0.021666666))
(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.096 -1.024 1.0)
(sp-int spt-timer 681)
(sp-cpuinfo-flags bit2)
(sp-int spt-next-time 666)
(sp-launcher-by-id spt-next-launcher 791)
(sp-flt spt-rotate-y (degrees 90.0))
(sp-end)
)
)
)
(set!
(-> *part-id-table* 787)
(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.133)
(sp-rnd-flt spt-x (meters 0.0) (meters 6.0) 1.0)
(sp-flt spt-y (meters -3.5))
(sp-rnd-flt spt-z -20480.0 40960.0 1.0)
(sp-flt spt-scale-x (meters 12.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-flt spt-a 0.0)
(sp-rnd-flt spt-vel-x (meters -0.006666667) (meters 0.02) 1.0)
(sp-flt spt-vel-y (meters 0.033333335))
(sp-rnd-flt spt-vel-z (meters -0.006666667) (meters 0.013333334) 1.0)
(sp-flt spt-scalevel-x (meters 0.006666667))
(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 1.28)
(sp-flt spt-accel-y 0.013653334)
(sp-flt spt-friction 0.99)
(sp-int spt-timer 900)
(sp-cpuinfo-flags bit2)
(sp-int-plain-rnd spt-next-time 45 29 1)
(sp-launcher-by-id spt-next-launcher 790)
(sp-flt spt-rotate-y (degrees 90.0))
(sp-end)
)
)
)
(set!
(-> *part-group-id-table* 154)
(new 'static 'sparticle-launch-group
:length 6
:duration #xbb8
:linger-duration #x5dc
:flags (sp-group-flag always-draw)
:name "group-training-waterfall-20"
:launcher
(new 'static 'inline-array sparticle-group-item 6
(sp-item 792 :fade-after (meters 160.0) :falloff-to (meters 160.0))
(sp-item 793 :fade-after (meters 160.0) :falloff-to (meters 160.0))
(sp-item 794 :fade-after (meters 160.0) :falloff-to (meters 160.0))
(sp-item 795 :fade-after (meters 160.0) :falloff-to (meters 160.0))
(sp-item 796 :fade-after (meters 160.0) :falloff-to (meters 160.0))
(sp-item 797 :fade-after (meters 160.0) :falloff-to (meters 160.0) :flags (is-3d))
)
:bounds
(new 'static 'sphere :y 49152.0 :w 49152.0)
)
)
(set!
(-> *part-id-table* 792)
(new 'static 'sparticle-launcher
:init-specs
(new 'static 'inline-array sp-field-init-spec 25
(sp-tex spt-texture (new 'static 'texture-id :index #x18 :page #x2))
(sp-flt spt-num 1.0)
(sp-rnd-flt spt-x (meters -6.0) (meters 1.0) 1.0)
(sp-flt spt-y (meters 15.5))
(sp-rnd-flt spt-z -24576.0 24576.0 1.0)
(sp-rnd-flt spt-scale-x (meters 3.4) (meters 1.6) 1.0)
(sp-rnd-flt spt-scale-y (meters 2.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 32.0 16.0 1.0)
(sp-flt spt-vel-x (meters 0.05))
(sp-rnd-flt spt-vel-y (meters 0.013333334) (meters 0.013333334) 1.0)
(sp-rnd-flt spt-vel-z (meters -0.0016666667) (meters 0.0033333334) 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 210)
(sp-cpuinfo-flags bit2)
(sp-int spt-next-time 369)
(sp-launcher-by-id spt-next-launcher 791)
(sp-rnd-flt spt-launchrot-x (degrees -15.0) (degrees 30.0) 1.0)
(sp-flt spt-rotate-y (degrees 120.0))
(sp-end)
)
)
)
(set!
(-> *part-id-table* 793)
(new 'static 'sparticle-launcher
:init-specs
(new 'static 'inline-array sp-field-init-spec 25
(sp-tex spt-texture (new 'static 'texture-id :index #x18 :page #x2))
(sp-flt spt-num 1.4)
(sp-rnd-flt spt-x (meters -4.0) (meters 1.0) 1.0)
(sp-flt spt-y (meters 15.5))
(sp-rnd-flt spt-z -12288.0 40960.0 1.0)
(sp-rnd-flt spt-scale-x (meters 3.4) (meters 1.6) 1.0)
(sp-rnd-flt spt-scale-y (meters 2.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 32.0 16.0 1.0)
(sp-flt spt-vel-x (meters 0.05))
(sp-rnd-flt spt-vel-y (meters 0.013333334) (meters 0.013333334) 1.0)
(sp-rnd-flt spt-vel-z (meters -0.0016666667) (meters 0.0033333334) 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 210)
(sp-cpuinfo-flags bit2)
(sp-int spt-next-time 369)
(sp-launcher-by-id spt-next-launcher 791)
(sp-rnd-flt spt-launchrot-x (degrees -15.0) (degrees 30.0) 1.0)
(sp-flt spt-rotate-y (degrees 190.0))
(sp-end)
)
)
)
(set!
(-> *part-id-table* 794)
(new 'static 'sparticle-launcher
:init-specs
(new 'static 'inline-array sp-field-init-spec 26
(sp-tex spt-texture (new 'static 'texture-id :page #x2))
(sp-rnd-flt spt-num 0.5 0.4 1.0)
(sp-rnd-flt spt-x (meters -6.0) (meters 1.0) 1.0)
(sp-flt spt-y (meters 15.5))
(sp-rnd-flt spt-z -24576.0 24576.0 1.0)
(sp-rnd-flt spt-scale-x (meters 2.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 2.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 16.0 1.0)
(sp-flt spt-vel-x (meters 0.021666666))
(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.096 -1.024 1.0)
(sp-int spt-timer 540)
(sp-cpuinfo-flags bit2)
(sp-int spt-next-time 360)
(sp-launcher-by-id spt-next-launcher 791)
(sp-flt spt-rotate-y (degrees 120.0))
(sp-end)
)
)
)
(set!
(-> *part-id-table* 795)
(new 'static 'sparticle-launcher
:init-specs
(new 'static 'inline-array sp-field-init-spec 26
(sp-tex spt-texture (new 'static 'texture-id :page #x2))
(sp-rnd-flt spt-num 0.5 0.4 1.0)
(sp-rnd-flt spt-x (meters -4.0) (meters 1.0) 1.0)
(sp-flt spt-y (meters 15.5))
(sp-rnd-flt spt-z -12288.0 40960.0 1.0)
(sp-rnd-flt spt-scale-x (meters 2.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 2.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 16.0 1.0)
(sp-flt spt-vel-x (meters 0.021666666))
(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.096 -1.024 1.0)
(sp-int spt-timer 540)
(sp-cpuinfo-flags bit2)
(sp-int spt-next-time 360)
(sp-launcher-by-id spt-next-launcher 791)
(sp-flt spt-rotate-y (degrees 190.0))
(sp-end)
)
)
)
(set!
(-> *part-id-table* 796)
(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.133)
(sp-rnd-flt spt-x (meters 0.0) (meters 6.0) 1.0)
(sp-flt spt-y (meters -3.5))
(sp-rnd-flt spt-z -20480.0 40960.0 1.0)
(sp-flt spt-scale-x (meters 12.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-flt spt-a 0.0)
(sp-rnd-flt spt-vel-x (meters -0.006666667) (meters 0.02) 1.0)
(sp-flt spt-vel-y (meters 0.033333335))
(sp-rnd-flt spt-vel-z (meters -0.006666667) (meters 0.013333334) 1.0)
(sp-flt spt-scalevel-x (meters 0.006666667))
(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 1.28)
(sp-flt spt-accel-y 0.013653334)
(sp-flt spt-friction 0.99)
(sp-int spt-timer 900)
(sp-cpuinfo-flags bit2)
(sp-int-plain-rnd spt-next-time 45 29 1)
(sp-launcher-by-id spt-next-launcher 790)
(sp-flt spt-rotate-y (degrees 90.0))
(sp-end)
)
)
)
(set!
(-> *part-id-table* 797)
(new 'static 'sparticle-launcher
:init-specs
(new 'static 'inline-array sp-field-init-spec 19
(sp-tex spt-texture (new 'static 'texture-id :index #x1e :page #x2))
(sp-flt spt-num 0.05)
(sp-rnd-flt spt-x (meters 0.0) (meters 5.0) 1.0)
(sp-rnd-flt spt-z -32768.0 32768.0 1.0)
(sp-rnd-flt spt-scale-x (meters 2.0) (meters 4.0) 1.0)
(sp-copy-from-other spt-scale-y -4)
(sp-flt spt-r 92.0)
(sp-flt spt-g 92.0)
(sp-flt spt-b 92.0)
(sp-flt spt-a 0.0)
(sp-rnd-flt spt-scalevel-x (meters 0.02) (meters 0.006666667) 1.0)
(sp-copy-from-other spt-scalevel-y -4)
(sp-flt spt-fade-a 0.2)
(sp-int spt-timer 900)
(sp-cpuinfo-flags bit2 bit3)
(sp-int spt-next-time 300)
(sp-launcher-by-id spt-next-launcher 789)
(sp-flt spt-rotate-y (degrees 90.0))
(sp-end)
)
)
)