mirror of
https://github.com/open-goal/jak-project.git
synced 2024-10-20 11:26:18 -04:00
58a5440c8a
Makes a bunch of missions mostly playable, including: - `arena-training-1` - `arena-fight-1` - `wascity-chase` - `arena-fight-2` - `arena-fight-3` - `volcano-darkeco` - `desert-hover` - `nest-eggs` - `temple-climb` - `temple-oracle` - `temple-tests` - `desert-beast-battle` - `desert-turtle-training` - `desert-course-race` - `desert-artifact-race1` - `wascity-leaper-race` - `wascity-pre-game` - `sewer-met-hum` - `forest-kill-plants` - `forest-ring-chase` - `temple-defend` - `tower-destroy` - `desert-glide` --- Files: - `ripple` - `waswide-mood` - `sig-rider` - `nst-tasks` - `nst-part` - `nst-gas` - `nst-eggs-h` - `nst-obs` - `nst-mood` - `egg-spider` - `wasdoors-init` - `wasall-tasks` - `wvehicle-race` - `wcar-marauder` - `wcar-marauder-b` - `turret-control` - `was-squad-control` - `turtle-training` - `kleever-rider` - `course-race` - `artifact-race` - `desert-hover` - `desbeast-path-h` - `des-beast` - `desertg-obs` - `desertf-obs` - `desertd-obs` - `desert-dust-storm` - `des-cactus` - `race-hud` - `race-info` - `race-manager` - `tizard` - `flyingsaw` - `hover-training` - `temple-mood` - `temple-obs` - `temple-obs2` - `temple-part` - `temple-scenes` - `templex-mood` - `templex-obs` - `templex-part` - `tomb-baby-spider` - `target-turret-shot` - `target-turret` - `beast-battle-path` - `des-beast-2` - `mh-flyer` - `scorpion-gun` - `hover-enemy-h` - `hover-enemy` - `hover-formation-h` - `hover-formation` - `hover-nav-control-h` - `hover-nav-control` - `flamer-hover` - `hover-nav-templea` - `robo-hover` - `hover-nav-sewb` - `hover-nav-sewg` - `hover-nav-sewj` - `hover-nav-sewl` - `hover-nav-sewo` - `hover-nav-towera` - `tower-mood` - `tower-obs` - `tower-scenes` - `tower-part` - `eco-green-collider` - `forest-bridges` - `forest-kill-plants` - `forest-mood` - `forest-ring-chase` - `forest-tasks` - `forest-part` - `foresta-obs` - `hover-nav-foresta` - `mh-plant` - `dp-bipedal-part` - `dp-bipedal-shot` - `dp-bipedal` - `neo-spawner` - `for-turret` - `for-turret-shot` - `neo-wasp` - `neo-wasp-part` - `volcanox-scenes` - `volcanox-mood` - `volcano-scenes` - `volcano-mood` - `volcano-obs` - `volcano-obs2` - `chain-physics` - `rigid-body-plat` - `volcano-part` - `flamer-lava` - `flitter` - `spiky-frog` - `flut-wild` - `target-indax` - `target-indax-hang` - `mantis` - `volcanox-obs` - `spyder` - `wcar-faccar` - `mhcity-obs2` - `mhcity-part` - `mhcity-obs` - `dm-mine-spider` - `rapid-gunner` - `stadium-mood` - `stadium-scenes` - `stadiuma-mood` - `stadiuma-part` - `kanga-lizard` - `marauder` - `arena-scenes` - `wasstada-mood` - `wasstada-obs` - `wasstada-part` - `wasstadb-obs` - `wasstadc-obs` - `dm-flyer` - `maker-part` - `maker-projectile` - `skeet-part` - `wascity-turret` - `wasgun-h` - `wasgun-hud` - `wasgun-manager` - `nav-graph-h` - `traffic-engine-h` - `waswide-init` - `cty-borrow-manager-h` - `cty-borrow-manager` - `desert-part` - `height-map-h` - `height-map` - `traffic-height-map` - `vehicle-control` - `hvehicle-h` - `hvehicle` - `hvehicle-effects` - `hvehicle-physics` - `hvehicle-util` - `glider-h` - `glider-hud` - `glider-manager` - `glider-ring` - `glider-ring-part` - `h-glider` - `hanga-init` - `was-pre-game` - `was-leaper-race` - `flut-racer` - `desert-scenes` - `desert-lizard-h` - `desert-lizard-task` - `desert-lizard` - `throne-scenes` - `waspal-mood` - `waspala-obs` - `waspala-part` - `deswalk-obs` - `deswalk-part` - `terraformer-drone` - `terraformer-head` - `terraformer-part` - `terraformer-setup`
1052 lines
34 KiB
Common Lisp
1052 lines
34 KiB
Common Lisp
;;-*-Lisp-*-
|
|
(in-package goal)
|
|
|
|
;; name: volcano-scenes.gc
|
|
;; name in dgo: volcano-scenes
|
|
;; dgos: VOCA
|
|
|
|
;; DECOMP BEGINS
|
|
|
|
(set! (-> *lightning-spec-id-table* 41) (new 'static 'lightning-spec
|
|
:name "volcano-fma-lightning"
|
|
:flags (lightning-spec-flags lsf0)
|
|
:start-color (new 'static 'rgba :r #x4f :g #x10 :b #x64 :a #x80)
|
|
:end-color (new 'static 'rgba :r #x4f :g #x10 :b #x64 :a #x80)
|
|
:fade-to-color (new 'static 'rgba :r #xbf :b #x8f :a #x5)
|
|
:fade-start-factor 0.2
|
|
:texture (new 'static 'texture-id :index #x8f :page #x4)
|
|
:reduction 0.42
|
|
:num-points 16
|
|
:box-size 8601.6
|
|
:merge-factor 0.5
|
|
:merge-count 2
|
|
:radius 1638.4
|
|
:duration 48.0
|
|
:sound (static-sound-spec "shock" :group 0)
|
|
)
|
|
)
|
|
|
|
(defskelgroup skel-monk-mummy monk-mummy monk-mummy-lod0-jg monk-mummy-idle-ja
|
|
((monk-mummy-lod0-mg (meters 999999)))
|
|
:bounds (static-spherem 0 0 0 10)
|
|
:shadow monk-mummy-shadow-mg
|
|
:origin-joint-index 3
|
|
:shadow-joint-index 3
|
|
)
|
|
|
|
(defskelgroup skel-monk-mummy-finger-explode monk-mummy-finger-explode monk-mummy-finger-explode-lod0-jg monk-mummy-finger-explode-idle-ja
|
|
((monk-mummy-finger-explode-lod0-mg (meters 999999)))
|
|
:bounds (static-spherem 0 0 0 20)
|
|
:origin-joint-index 2
|
|
)
|
|
|
|
(defskelgroup skel-dark-maker-idol-fma dark-maker-idol-fma dark-maker-idol-fma-lod0-jg dark-maker-idol-fma-idle-ja
|
|
((dark-maker-idol-fma-lod0-mg (meters 999999)))
|
|
:bounds (static-spherem 0 0 0 20)
|
|
:origin-joint-index 3
|
|
)
|
|
|
|
(defskelgroup skel-dark-maker-idol-break dark-maker-idol-break dark-maker-idol-break-lod0-jg dark-maker-idol-break-idle-ja
|
|
((dark-maker-idol-break-lod0-mg (meters 999999)))
|
|
:bounds (static-spherem 0 0 0 20)
|
|
)
|
|
|
|
(load-scene (new 'static 'scene
|
|
:name "volcano-indax-1-intro"
|
|
:extra #f
|
|
:info #f
|
|
:scene-flags (scene-flags scf1 scf2 scf3 scf4)
|
|
:mask-to-clear (process-mask movie enemy platform projectile)
|
|
:entity "scene-stage-186"
|
|
:art-group "scenecamera"
|
|
:anim "volcano-indax-1-intro"
|
|
:parts 4
|
|
:command-list '()
|
|
:cut-list '()
|
|
: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 "sidekick-highres"
|
|
:level 'volcanox
|
|
: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 "jakc-highres"
|
|
:level 'volcanox
|
|
: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 #x80
|
|
)
|
|
)
|
|
:load-point "volcano-movie"
|
|
:end-point "volcano-indax-1"
|
|
:borrow '()
|
|
:sfx-volume -1.0
|
|
:music-delay 1500.0
|
|
:on-running '(begin (sound-play-loop "volcano-mov-amb") (sound-play-loop "lava-mov-amb"))
|
|
:on-complete #f
|
|
)
|
|
)
|
|
|
|
(load-scene (new 'static 'scene
|
|
:name "volcano-indax-1-res"
|
|
:extra #f
|
|
:info #f
|
|
:scene-flags (scene-flags scf1 scf2 scf3)
|
|
:mask-to-clear (process-mask movie enemy platform projectile)
|
|
:entity "scene-stage-187"
|
|
:art-group "scenecamera"
|
|
:anim "volcano-indax-1-res"
|
|
:parts 3
|
|
:command-list '((0 (kill "vol-collapsing-rock-1") (fadein (frame-time-30 5)))
|
|
(200 (part-tracker
|
|
"group-volcano-rock-break-dust"
|
|
entity
|
|
"vol-collapsing-rock"
|
|
joint
|
|
"rockrubble_b"
|
|
track
|
|
#t
|
|
duration
|
|
(frame-range 200 210)
|
|
)
|
|
)
|
|
(218 (part-tracker
|
|
"group-fma-lava-splash"
|
|
entity
|
|
"vol-collapsing-rock"
|
|
joint
|
|
"lavasplash_b"
|
|
track
|
|
#f
|
|
duration
|
|
(frame-range 218 219)
|
|
)
|
|
)
|
|
(237 (part-tracker
|
|
"group-fma-lava-splash"
|
|
entity
|
|
"vol-collapsing-rock"
|
|
joint
|
|
"lavasplash_a"
|
|
track
|
|
#f
|
|
duration
|
|
(frame-range 237 238)
|
|
)
|
|
)
|
|
(244 (part-tracker
|
|
"group-fma-lava-splash"
|
|
entity
|
|
"vol-collapsing-rock"
|
|
joint
|
|
"lavasplash_c"
|
|
track
|
|
#f
|
|
duration
|
|
(frame-range 244 245)
|
|
)
|
|
)
|
|
(254 (part-tracker
|
|
"group-volcano-rock-land-dust"
|
|
entity
|
|
"vol-collapsing-rock"
|
|
joint
|
|
"rockrubble_a"
|
|
track
|
|
#f
|
|
duration
|
|
(frame-range 254 256)
|
|
)
|
|
)
|
|
(345 (fadeout (frame-time-30 5)))
|
|
)
|
|
:cut-list '(41 126 206 246)
|
|
: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 "sidekick-highres"
|
|
:level 'volcanox
|
|
: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 "vol-collapsing-rock"
|
|
:level 'volcanoa
|
|
:art-group "skel-vol-collapsing-rock"
|
|
:prefix ""
|
|
:draw-frames '((min 41) (81 max))
|
|
:scissor-frames '()
|
|
:shadow-frames '((min max))
|
|
:cloth-reset-frames '()
|
|
:cloth-commands '()
|
|
:flags #x1
|
|
:shadow-flags -1
|
|
:shadow-volume-joint #f
|
|
)
|
|
)
|
|
:load-point "volcano-movie"
|
|
:end-point "volcano-post-rock-collapse"
|
|
:borrow '()
|
|
:sfx-volume -1.0
|
|
:music-delay 1500.0
|
|
:on-running '(begin (sound-play-loop "volcano-mov-amb") (sound-play-loop "lava-mov-amb"))
|
|
:on-complete #f
|
|
)
|
|
)
|
|
|
|
(load-scene (new 'static 'scene
|
|
:name "volcano-indax-2-intro"
|
|
:extra #f
|
|
:info #f
|
|
:scene-flags (scene-flags scf1 scf2 scf3 scf4)
|
|
:mask-to-clear (process-mask movie enemy platform projectile)
|
|
:entity "scene-stage-188"
|
|
:art-group "scenecamera"
|
|
:anim "volcano-indax-2-intro"
|
|
:parts 6
|
|
:command-list '()
|
|
:cut-list '(81 192 232 566)
|
|
: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 "sidekick-highres"
|
|
:level 'volcanox
|
|
: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 "jakc-highres"
|
|
:level 'volcanox
|
|
: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 #x80
|
|
)
|
|
)
|
|
:load-point "volcano-movie"
|
|
:end-point "volcano-indax-2"
|
|
:borrow '()
|
|
:sfx-volume -1.0
|
|
:music-delay 1500.0
|
|
:on-running '(begin (sound-play-loop "volcano-mov-amb") (sound-play-loop "lava-mov-amb"))
|
|
:on-complete #f
|
|
)
|
|
)
|
|
|
|
(load-scene
|
|
(new 'static 'scene
|
|
:name "volcano-indax-2-res"
|
|
:extra #f
|
|
:info #f
|
|
:scene-flags (scene-flags scf1 scf2 scf3)
|
|
:mask-to-clear (process-mask movie enemy platform projectile)
|
|
:entity "scene-stage-188"
|
|
:art-group "scenecamera"
|
|
:anim "volcano-indax-2-res"
|
|
:parts 4
|
|
:command-list '((0 (kill "vol-stone-lid-3"))
|
|
(10000 (begin (send-event "vol-stone-lid-3" 'trigger) (task-close! "volcano-darkeco-indax-2")))
|
|
)
|
|
:cut-list '(87 121 147 174 224 271 297)
|
|
: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 "sidekick-highres"
|
|
:level 'volcanox
|
|
: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 "vol-stone-lid"
|
|
:level 'volcanoa
|
|
:art-group "skel-vol-stone-lid"
|
|
: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 "volcano-movie"
|
|
:end-point "volcano-post-rock-fall"
|
|
:borrow '()
|
|
:sfx-volume -1.0
|
|
:music-delay 1500.0
|
|
:on-running '(begin (sound-play-loop "volcano-mov-amb") (sound-play-loop "lava-mov-amb"))
|
|
:on-complete #f
|
|
)
|
|
)
|
|
|
|
(define *vol-invis-joint-list*
|
|
(new 'static 'boxed-array :type invis-particle-joint
|
|
(new 'static 'invis-particle-joint :joint 4 :distance 819.2 :size 1638.4 :spawn? #t)
|
|
(new 'static 'invis-particle-joint :joint 5 :distance 1228.8 :size 1228.8 :spawn? #t)
|
|
(new 'static 'invis-particle-joint :joint 7 :distance 1228.8 :size 1228.8 :spawn? #t)
|
|
(new 'static 'invis-particle-joint :joint 8 :distance 1638.4 :size 1228.8 :spawn? #t)
|
|
(new 'static 'invis-particle-joint :joint 14 :distance 1228.8 :size 1228.8 :spawn? #t)
|
|
(new 'static 'invis-particle-joint :joint 15 :distance 819.2 :size 1228.8 :spawn? #t)
|
|
(new 'static 'invis-particle-joint :joint 47 :distance 409.6 :size 409.6 :spawn? #t)
|
|
(new 'static 'invis-particle-joint :joint 18 :distance 1228.8 :size 1228.8 :spawn? #t)
|
|
(new 'static 'invis-particle-joint :joint 19 :distance 819.2 :size 1228.8 :spawn? #t)
|
|
(new 'static 'invis-particle-joint :joint 57 :distance 409.6 :size 409.6 :spawn? #t)
|
|
(new 'static 'invis-particle-joint :joint 26 :distance 614.4 :size 1228.8 :spawn? #t)
|
|
(new 'static 'invis-particle-joint :joint 27 :distance 409.6 :size 819.2 :spawn? #t)
|
|
(new 'static 'invis-particle-joint :joint 28 :distance 409.6 :size 819.2 :spawn? #t)
|
|
(new 'static 'invis-particle-joint :joint 29 :distance 409.6 :size 819.2 :spawn? #t)
|
|
(new 'static 'invis-particle-joint :joint 32 :distance 614.4 :size 1228.8 :spawn? #t)
|
|
(new 'static 'invis-particle-joint :joint 33 :distance 409.6 :size 819.2 :spawn? #t)
|
|
(new 'static 'invis-particle-joint :joint 34 :distance 409.6 :size 819.2 :spawn? #t)
|
|
(new 'static 'invis-particle-joint :joint 35 :distance 409.6 :size 819.2 :spawn? #t)
|
|
)
|
|
)
|
|
|
|
(load-scene
|
|
(new 'static 'scene
|
|
:name "volcano-darkeco-res"
|
|
:extra #f
|
|
:info #f
|
|
:scene-flags (scene-flags scf1 scf2 scf3 scf4)
|
|
:mask-to-clear (process-mask movie enemy platform projectile)
|
|
:entity "scene-stage-159"
|
|
:art-group "scenecamera"
|
|
:anim "volcano-darkeco-res"
|
|
:parts 17
|
|
:command-list '((861
|
|
(send-event
|
|
"monk-mummy"
|
|
'trans-hook
|
|
,(lambda :behavior scene-player () (setup-masks (-> self draw) 0 2) (none))
|
|
)
|
|
)
|
|
(917
|
|
(part-tracker
|
|
"group-fma-idol-eye-glow"
|
|
entity
|
|
"dark-maker-idol-fma"
|
|
joint
|
|
"main"
|
|
track
|
|
#t
|
|
duration
|
|
(frame-range 917 1020)
|
|
)
|
|
)
|
|
(950
|
|
(lightning-tracker
|
|
"volcanofma-lightning"
|
|
from-entity
|
|
"particleman"
|
|
to-entity
|
|
"jakc-highres"
|
|
from-joint
|
|
"particleA"
|
|
to-joint
|
|
"main"
|
|
duration
|
|
(frame-range 950 992)
|
|
)
|
|
(lightning-tracker
|
|
"volcano-fma-lightning"
|
|
from-entity
|
|
"particleman"
|
|
to-entity
|
|
"jakc-highres"
|
|
from-joint
|
|
"particleB"
|
|
to-joint
|
|
"main"
|
|
duration
|
|
(frame-range 950 992)
|
|
)
|
|
(lightning-tracker
|
|
"volcano-fma-lightning"
|
|
from-entity
|
|
"particleman"
|
|
to-entity
|
|
"jakc-highres"
|
|
from-joint
|
|
"particleC"
|
|
to-joint
|
|
"main"
|
|
duration
|
|
(frame-range 950 992)
|
|
)
|
|
(lightning-tracker
|
|
"volcano-fma-lightning"
|
|
from-entity
|
|
"particleman"
|
|
to-entity
|
|
"jakc-highres"
|
|
from-joint
|
|
"particleD"
|
|
to-joint
|
|
"main"
|
|
duration
|
|
(frame-range 950 992)
|
|
)
|
|
(lightning-tracker
|
|
"volcano-fma-lightning"
|
|
from-entity
|
|
"particleman"
|
|
to-entity
|
|
"jakc-highres"
|
|
from-joint
|
|
"particleE"
|
|
to-joint
|
|
"main"
|
|
duration
|
|
(frame-range 950 992)
|
|
)
|
|
)
|
|
(945
|
|
(send-event
|
|
"jakc-highres"
|
|
'trans-hook
|
|
,(lambda :behavior scene-player
|
|
()
|
|
(let* ((f0-0 (ja-aframe-num 0))
|
|
(f1-1 (fmax 0.0 (fmin 1.0 (* 0.06666667 (+ -945.0 f0-0)))))
|
|
)
|
|
(cond
|
|
((< f0-0 1100.0)
|
|
(logior! (-> self draw status) (draw-control-status force-fade))
|
|
(logior! (-> self draw global-effect) (draw-control-global-effect no-textures))
|
|
(set! (-> self draw force-fade) (the-as uint (the int (lerp-scale 128.0 16.0 f1-1 0.0 1.0))))
|
|
(let ((v1-13 (log2 (the-as int (-> self draw mgeo seg-table (log2 16))))))
|
|
(logand! (-> self draw mgeo effect v1-13 effect-usage) -9)
|
|
)
|
|
(let ((gp-1 (new 'stack-no-clear 'vector)))
|
|
(set! (-> gp-1 quad) (-> (camera-pos) quad))
|
|
(dotimes (s5-0 (-> *vol-invis-joint-list* length))
|
|
(when (-> *vol-invis-joint-list* s5-0 spawn?)
|
|
(let ((v1-26 (-> *vol-invis-joint-list* s5-0 joint))
|
|
(s4-0 (new 'stack-no-clear 'vector))
|
|
)
|
|
(let ((s3-0 (new 'stack-no-clear 'vector)))
|
|
(vector<-cspace! s4-0 (-> self node-list data v1-26))
|
|
(vector-! s3-0 gp-1 s4-0)
|
|
(vector-normalize! s3-0 (-> *vol-invis-joint-list* s5-0 distance))
|
|
(vector+! s4-0 s4-0 s3-0)
|
|
)
|
|
(set! (-> *part-id-table* 659 init-specs 2 initial-valuef) (-> *vol-invis-joint-list* s5-0 size))
|
|
(set! (-> *part-id-table* 659 init-specs 3 initial-valuef) (* 0.5 (-> *vol-invis-joint-list* s5-0 size)))
|
|
(set! (-> *part-id-table* 659 init-specs 4 initial-valuef) (* 0.5 (-> *vol-invis-joint-list* s5-0 size)))
|
|
(launch-particles (-> *part-id-table* 659) s4-0)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
(else
|
|
(logclear! (-> self draw status) (draw-control-status force-fade))
|
|
(logclear! (-> self draw global-effect) (draw-control-global-effect no-textures))
|
|
(set! (-> self draw force-fade) (the-as uint 128))
|
|
)
|
|
)
|
|
)
|
|
(none)
|
|
)
|
|
)
|
|
)
|
|
(1041 (part-tracker
|
|
"group-fma-idol-eye-glow"
|
|
entity
|
|
"dark-maker-idol-break"
|
|
joint
|
|
"glows"
|
|
track
|
|
#t
|
|
duration
|
|
(frame-range 1041 1100)
|
|
)
|
|
)
|
|
(1100 (part-tracker
|
|
"group-fma-idol-break"
|
|
entity
|
|
"dark-maker-idol-break"
|
|
joint
|
|
"glows"
|
|
track
|
|
#f
|
|
duration
|
|
(frame-range 1099 1110)
|
|
)
|
|
)
|
|
(1985 (fadeout (frame-time-30 15)))
|
|
(10000 (begin (task-close! "volcano-darkeco-resolution") (kill "vol-lava-plat-spawner-1")))
|
|
)
|
|
:cut-list '(1 91 156 224 296 374 546 601 622 797 850 860 871 886 893 917 993 1040 1140 1270 1331 1471 1770 1794)
|
|
: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 "sidekick-highres"
|
|
:level 'volcanox
|
|
:art-group "skel-sidekick-highres"
|
|
:prefix ""
|
|
:draw-frames '((min max))
|
|
:scissor-frames '()
|
|
:shadow-frames '((min max))
|
|
:cloth-reset-frames '()
|
|
:cloth-commands '()
|
|
:shadow-mask #x1e
|
|
:shadow-values #x88880
|
|
:flags #x1
|
|
:shadow-flags -1
|
|
:shadow-volume-joint #f
|
|
)
|
|
(new 'static 'scene-actor
|
|
:name "jakc-highres"
|
|
:level 'volcanox
|
|
:art-group "skel-jakc-highres"
|
|
:prefix ""
|
|
:draw-frames '((min max))
|
|
:scissor-frames '()
|
|
:shadow-frames '((min max))
|
|
:cloth-reset-frames '(194 224 296 546 886 893 1040 1130 1331 1770 1794)
|
|
:cloth-commands '()
|
|
:shadow-mask #x1e
|
|
:shadow-values #x88880
|
|
:flags #x1
|
|
:shadow-flags -1
|
|
:shadow-volume-joint #f
|
|
:no-draw-seg #x80
|
|
)
|
|
(new 'static 'scene-actor
|
|
:name "monk-mummy"
|
|
:level 'volcanox
|
|
:art-group "skel-monk-mummy"
|
|
:prefix ""
|
|
:draw-frames '((min max))
|
|
:scissor-frames '()
|
|
:shadow-frames '((min max))
|
|
:cloth-reset-frames '()
|
|
:cloth-commands '()
|
|
:shadow-mask #x1e
|
|
:shadow-values #x88880
|
|
:flags #x1
|
|
:shadow-flags -1
|
|
:shadow-volume-joint #f
|
|
)
|
|
(new 'static 'scene-actor
|
|
:name "dark-maker-idol-fma"
|
|
:level 'volcanox
|
|
:art-group "skel-dark-maker-idol-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
|
|
)
|
|
(new 'static 'scene-actor
|
|
:name "dark-maker-idol-break"
|
|
:level 'volcanox
|
|
:art-group "skel-dark-maker-idol-break"
|
|
:prefix ""
|
|
:draw-frames '((1040 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 "particleman"
|
|
:level 'volcanox
|
|
:art-group "skel-particleman"
|
|
:prefix ""
|
|
:draw-frames '((min max))
|
|
:scissor-frames '()
|
|
:shadow-frames '((min max))
|
|
:cloth-reset-frames '()
|
|
:cloth-commands '()
|
|
:shadow-flags -1
|
|
:shadow-volume-joint #f
|
|
)
|
|
(new 'static 'scene-actor
|
|
:name "monk-mummy-finger-explode"
|
|
:level 'volcanox
|
|
:art-group "skel-monk-mummy-finger-explode"
|
|
:prefix ""
|
|
:draw-frames '((861 max))
|
|
:scissor-frames '()
|
|
:shadow-frames '((min max))
|
|
:cloth-reset-frames '()
|
|
:cloth-commands '()
|
|
:flags #x1
|
|
:shadow-flags -1
|
|
:shadow-volume-joint #f
|
|
)
|
|
)
|
|
:load-point "volcano-movie"
|
|
:end-point "volcanoa-resolution"
|
|
:borrow '()
|
|
:sfx-volume -1.0
|
|
:music-delay 1500.0
|
|
:scene-task #x54
|
|
:on-running '(begin (sound-play-loop "volcano-mov-amb") (sound-play-loop "lava-mov-amb"))
|
|
:on-complete #f
|
|
)
|
|
)
|
|
|
|
(defpartgroup group-monk-mummy-finger-dust
|
|
:id 1399
|
|
:flags (sp0)
|
|
:bounds (static-bspherem 0 0 0 24)
|
|
:parts ((sp-item 4619))
|
|
)
|
|
|
|
(defpart 4619
|
|
:init-specs ((:texture (specs level-default-sprite))
|
|
(:birth-func 'birth-func-texture-group)
|
|
(:num 1.0 8.0)
|
|
(:scale-x (meters 0.1) (meters 0.1))
|
|
(:rot-z (degrees 0) (degrees 360))
|
|
(:scale-y :copy scale-x)
|
|
(:r 40.0 80.0)
|
|
(:g :copy r)
|
|
(:b :copy r)
|
|
(:a 16.0 64.0)
|
|
(:omega (degrees 0.0225))
|
|
(:scalevel-x (meters 0.00066666666))
|
|
(:scalevel-y :copy scalevel-x)
|
|
(:fade-a -0.32)
|
|
(:accel-y (meters -0.00033333333) (meters -0.00033333333))
|
|
(:friction 0.95 0.02)
|
|
(:timer (seconds 0.335))
|
|
(:flags (sp-cpuinfo-flag-2))
|
|
(:userdata :data (new 'static 'boxed-array :type int32 5 1 0 #x404a00 #x406500))
|
|
(:func 'sparticle-motion-blur)
|
|
)
|
|
)
|
|
|
|
(defpartgroup group-fma-idol-eye-glow
|
|
:id 1400
|
|
:flags (sp0 sp5)
|
|
:bounds (static-bspherem 0 0 0 15)
|
|
:parts ((sp-item 4620 :flags (sp7)) (sp-item 4621 :flags (sp7)) (sp-item 4622 :flags (sp7)))
|
|
)
|
|
|
|
(defpart 4620
|
|
:init-specs ((:texture (glow level-default-sprite))
|
|
(:num 2.0)
|
|
(:x (meters 0.25))
|
|
(:y (meters 0.1))
|
|
(:z (meters 0.1))
|
|
(:scale-x (meters 0))
|
|
(:rot-x (degrees 6.7500005))
|
|
(:rot-z (degrees 0) (degrees 20))
|
|
(:scale-y (meters 0))
|
|
(:r 178.0)
|
|
(:g 100.0 30.0)
|
|
(:b 155.0)
|
|
(:a 7.0)
|
|
(:vel-y (meters 0))
|
|
(:scalevel-x (meters 0.06) (meters 0.02))
|
|
(:rotvel-z (degrees 0))
|
|
(:scalevel-y :copy scalevel-x)
|
|
(:timer (seconds 0.067))
|
|
(:flags (sp-cpuinfo-flag-3 glow))
|
|
(:rotate-y (degrees 0))
|
|
)
|
|
)
|
|
|
|
(defpart 4621
|
|
:init-specs ((:texture (glow level-default-sprite))
|
|
(:num 2.0)
|
|
(:x (meters -0.25))
|
|
(:y (meters 0.1))
|
|
(:z (meters 0.1))
|
|
(:scale-x (meters 0))
|
|
(:rot-x (degrees 6.7500005))
|
|
(:rot-z (degrees 0) (degrees 20))
|
|
(:scale-y (meters 0))
|
|
(:r 178.0)
|
|
(:g 100.0 30.0)
|
|
(:b 155.0)
|
|
(:a 7.0)
|
|
(:vel-y (meters 0))
|
|
(:scalevel-x (meters 0.06) (meters 0.02))
|
|
(:rotvel-z (degrees 0))
|
|
(:scalevel-y :copy scalevel-x)
|
|
(:timer (seconds 0.067))
|
|
(:flags (sp-cpuinfo-flag-3 glow))
|
|
(:rotate-y (degrees 0))
|
|
)
|
|
)
|
|
|
|
(defpart 4622
|
|
:init-specs ((:texture (tinyspeck level-default-sprite))
|
|
(:num 1.0)
|
|
(:x (meters 2))
|
|
(:scale-x (meters 4))
|
|
(:scale-y :copy scale-x)
|
|
(:r 255.0)
|
|
(:g 55.0)
|
|
(:b 155.0)
|
|
(:a 0.0)
|
|
(:scalevel-x (meters -0.013333334))
|
|
(:scalevel-y :copy scalevel-x)
|
|
(:fade-a 0.12444445)
|
|
(:accel-x (meters -0.00033333333))
|
|
(:friction 0.98 0.01)
|
|
(:timer (seconds 1.5))
|
|
(:flags (sp-cpuinfo-flag-3 left-multiply-quat))
|
|
(:rotate-x (degrees 0) (degrees 36000))
|
|
(:rotate-y (degrees 0) (degrees 36000))
|
|
(:rotate-z (degrees 0) (degrees 36000))
|
|
)
|
|
)
|
|
|
|
(defpartgroup group-fma-idol-break
|
|
:id 1401
|
|
:flags (sp0 sp5)
|
|
:bounds (static-bspherem 0 0 0 15)
|
|
:parts ((sp-item 4623 :flags (is-3d sp3 sp7))
|
|
(sp-item 4624 :flags (sp3) :period (seconds 30) :length (seconds 0.017))
|
|
(sp-item 4625 :flags (sp3) :period (seconds 30) :length (seconds 0.017))
|
|
(sp-item 4626 :period (seconds 30) :length (seconds 0.035))
|
|
(sp-item 4627 :period (seconds 30) :length (seconds 0.035))
|
|
)
|
|
)
|
|
|
|
(defpart 4624
|
|
:init-specs ((:texture (colorflash level-default-sprite))
|
|
(:num 1.0)
|
|
(:y (meters 0.2))
|
|
(:scale-x (meters 15))
|
|
(:scale-y :copy scale-x)
|
|
(:r 255.0)
|
|
(:g 255.0)
|
|
(:b 255.0)
|
|
(:a 255.0)
|
|
(:scalevel-x (meters -0.6666667))
|
|
(:scalevel-y :copy scalevel-x)
|
|
(:timer (seconds 0.085))
|
|
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3))
|
|
)
|
|
)
|
|
|
|
(defpart 4625
|
|
:init-specs ((:texture (glow-soft level-default-sprite))
|
|
(:num 1.0)
|
|
(:y (meters 0.2))
|
|
(:scale-x (meters 4))
|
|
(:scale-y :copy scale-x)
|
|
(:r 100.0)
|
|
(:g 30.0)
|
|
(:b 255.0)
|
|
(:a 64.0)
|
|
(:fade-a -0.21333334)
|
|
(:timer (seconds 1))
|
|
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3))
|
|
)
|
|
)
|
|
|
|
(defpart 4626
|
|
:init-specs ((:texture (hotdot level-default-sprite))
|
|
(:num 50.0)
|
|
(:y (meters 0.2))
|
|
(:scale-x (meters 0.2) (meters 0.2))
|
|
(:scale-y :copy scale-x)
|
|
(:r 50.0 80.0)
|
|
(:g 0.0 30.0)
|
|
(:b 255.0)
|
|
(:a 128.0)
|
|
(:vel-y (meters 0.016666668) (meters 0.033333335))
|
|
(:scalevel-x (meters -0.0013333333))
|
|
(:scalevel-y :copy scalevel-x)
|
|
(:fade-a -0.28444445 -0.28444445)
|
|
(:accel-y (meters -0.0016666667))
|
|
(:friction 0.9)
|
|
(:timer (seconds 0.5))
|
|
(:flags (sp-cpuinfo-flag-0 sp-cpuinfo-flag-3))
|
|
(:conerot-x (degrees 0) (degrees 360))
|
|
(:rotate-y (degrees 0) (degrees 3600))
|
|
)
|
|
)
|
|
|
|
(defpart 4627
|
|
:init-specs ((:texture (specs level-default-sprite))
|
|
(:num 10.0 10.0)
|
|
(:y (meters 0.2))
|
|
(:scale-x (meters 0.5) (meters 1))
|
|
(:rot-z (degrees 0) (degrees 360))
|
|
(:scale-y :copy scale-x)
|
|
(:r 50.0 80.0)
|
|
(:g 0.0 30.0)
|
|
(:b 255.0)
|
|
(:a 128.0)
|
|
(:vel-y (meters 0.0033333334) (meters 0.033333335))
|
|
(:scalevel-x (meters 0.033333335))
|
|
(:rotvel-z (degrees -0.2) (degrees 0.4))
|
|
(:scalevel-y :copy scalevel-x)
|
|
(:fade-a -0.85333335 -0.85333335)
|
|
(:accel-y (meters -0.0016666667))
|
|
(:friction 0.75)
|
|
(:timer (seconds 0.5))
|
|
(:flags (sp-cpuinfo-flag-0 sp-cpuinfo-flag-3))
|
|
(:conerot-x (degrees 0) (degrees 360))
|
|
(:rotate-y (degrees 0) (degrees 3600))
|
|
)
|
|
)
|
|
|
|
(defpart 4623
|
|
:init-specs ((:texture (shockwave level-default-sprite))
|
|
(:num 2.0)
|
|
(:y (meters 0.3))
|
|
(:scale-x (meters 0.1))
|
|
(:scale-y :copy scale-x)
|
|
(:r 100.0)
|
|
(:g 40.0)
|
|
(:b 255.0)
|
|
(:a 255.0)
|
|
(:scalevel-x (meters 0.06666667))
|
|
(:scalevel-y :copy scalevel-x)
|
|
(:fade-a -1.7)
|
|
(:timer (seconds 0.5))
|
|
(:flags (sp-cpuinfo-flag-3))
|
|
(:rotate-y (degrees 0))
|
|
)
|
|
)
|
|
|
|
;; WARN: Return type mismatch float vs none.
|
|
(defun spt-birth-func-brightness-part-volcano-rock-break-dust ((arg0 sparticle-system) (arg1 sparticle-cpuinfo) (arg2 sparticle-launchinfo))
|
|
(let ((s5-0 (+ (mod (the-as int (rand-uint31-gen *random-generator*)) 71) 70))
|
|
(s3-0 (mod (the-as int (rand-uint31-gen *random-generator*)) 21))
|
|
(s4-0 (+ (mod (the-as int (rand-uint31-gen *random-generator*)) 21) 20))
|
|
(v1-7 (+ (mod (the-as int (rand-uint31-gen *random-generator*)) 21) 40))
|
|
)
|
|
(set! (-> arg2 rotate-x) (the float (- s5-0 s3-0)))
|
|
(set! (-> arg2 rotate-y) (the float (- s5-0 s4-0)))
|
|
(set! (-> arg2 rotate-z) (the float (- s5-0 v1-7)))
|
|
)
|
|
(none)
|
|
)
|
|
|
|
(defpartgroup group-volcano-rock-break-dust
|
|
:id 1402
|
|
:flags (sp0)
|
|
:bounds (static-bspherem 0 0 0 100)
|
|
:parts ((sp-item 4628))
|
|
)
|
|
|
|
(defpart 4628
|
|
:init-specs ((:texture (big-cloud level-default-sprite))
|
|
(:birth-func 'spt-birth-func-brightness-part-volcano-rock-break-dust)
|
|
(:num 5.0)
|
|
(:x (meters -4) (meters 8))
|
|
(:y (meters -4) (meters 30))
|
|
(:z (meters -8) (meters 8))
|
|
(:scale-x (meters 3) (meters 3))
|
|
(:rot-z (degrees 0) (degrees 360))
|
|
(:scale-y :copy scale-x)
|
|
(:r 128.0)
|
|
(:g 128.0)
|
|
(:b 128.0)
|
|
(:a 32.0 32.0)
|
|
(:scalevel-x (meters 0.0033333334) (meters 0.0033333334))
|
|
(:rotvel-z (degrees -0.2) (degrees 0.4))
|
|
(:scalevel-y :copy scalevel-x)
|
|
(:fade-a -0.042666666 -0.042666666)
|
|
(:accel-y (meters -0.00033333333) (meters -0.0013333333))
|
|
(:friction 0.95)
|
|
(:timer (seconds 5))
|
|
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-13))
|
|
(:rotate-y (degrees 0))
|
|
)
|
|
)
|
|
|
|
(defpartgroup group-volcano-rock-land-dust
|
|
:id 1403
|
|
:flags (sp0)
|
|
:bounds (static-bspherem 0 0 0 100)
|
|
:parts ((sp-item 4629))
|
|
)
|
|
|
|
(defpart 4629
|
|
:init-specs ((:texture (big-cloud level-default-sprite))
|
|
(:birth-func 'spt-birth-func-brightness-part-volcano-rock-break-dust)
|
|
(:num 20.0)
|
|
(:scale-x (meters 3))
|
|
(:rot-z (degrees 0) (degrees 360))
|
|
(:scale-y :copy scale-x)
|
|
(:r 128.0)
|
|
(:g 128.0)
|
|
(:b 128.0)
|
|
(:a 32.0 32.0)
|
|
(:vel-y (meters 0.06666667) (meters 0.016666668))
|
|
(:scalevel-x (meters 0.006666667) (meters 0.006666667))
|
|
(:rotvel-z (degrees -0.2) (degrees 0.4))
|
|
(:scalevel-y :copy scalevel-x)
|
|
(:fade-a -0.042666666 -0.042666666)
|
|
(:accel-y (meters 0) (meters 0.0001))
|
|
(:friction 0.9)
|
|
(:timer (seconds 5))
|
|
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-13))
|
|
(:conerot-x (degrees 80) (degrees 20))
|
|
(:rotate-y (degrees 0) (degrees 3600))
|
|
)
|
|
)
|
|
|
|
(defpartgroup group-fma-lava-splash
|
|
:id 1404
|
|
:flags (sp4 sp6)
|
|
:bounds (static-bspherem 0 -15 0 100)
|
|
:parts ((sp-item 4630 :flags (sp7)))
|
|
)
|
|
|
|
(defpart 4630
|
|
:init-specs ((:texture (lava-drop-01 volcanoa-sprite))
|
|
(:birth-func 'birth-func-texture-group)
|
|
(:num 20.0)
|
|
(:x (meters -0.5) (meters 1))
|
|
(:z (meters -0.5) (meters 1))
|
|
(:scale-x (meters 1) (meters 1))
|
|
(:rot-z (degrees 0) (degrees 360))
|
|
(:scale-y :copy scale-x)
|
|
(:r 255.0)
|
|
(:g 60.0 60.0)
|
|
(:b 0.0)
|
|
(:a 128.0)
|
|
(:vel-y (meters 0.033333335) (meters 0.033333335))
|
|
(:scalevel-x (meters 0.000033333334))
|
|
(:rotvel-z (degrees -2) (degrees 4))
|
|
(:scalevel-y :copy scalevel-x)
|
|
(:accel-y (meters -0.001))
|
|
(:timer (seconds 1.5))
|
|
(:flags (sp-cpuinfo-flag-3 launch-along-z))
|
|
(:userdata :data (new 'static 'boxed-array :type int32 5 1 0 -2145386496 -2145386240 -2145385984 -2145385728))
|
|
(:conerot-x (degrees 0) (degrees 50.000004))
|
|
(:rotate-y (degrees 0) (degrees 3600))
|
|
)
|
|
)
|