Files
jak-project/test/decompiler/reference/jak3/levels/volcano/volcano-obs_REF.gc
T
water111 637990314b wip: better stack var support (#4222)
Closes #736

---------

Co-authored-by: Hat Kid <6624576+Hat-Kid@users.noreply.github.com>
2026-04-19 00:14:44 +02:00

2055 lines
73 KiB
Common Lisp
Vendored
Generated

;;-*-Lisp-*-
(in-package goal)
;; definition of type vol-rising-step
(deftype vol-rising-step (process-drawable)
((sync sync-paused :inline)
(idle-anim int32)
(amplitude float)
(init-y float)
(sound-id sound-id)
)
(:state-methods
inactive
pre-active
active
)
(:methods
(vol-rising-step-method-23 (_type_) none)
(vol-rising-step-method-24 (_type_) none)
)
)
;; definition for method 3 of type vol-rising-step
(defmethod inspect ((this vol-rising-step))
(when (not this)
(set! this this)
(goto cfg-4)
)
(let ((t9-0 (method-of-type process-drawable inspect)))
(t9-0 this)
)
(format #t "~2Tsync: #<sync-paused @ #x~X>~%" (-> this sync))
(format #t "~2Tidle-anim: ~D~%" (-> this idle-anim))
(format #t "~2Tamplitude: ~f~%" (-> this amplitude))
(format #t "~2Tinit-y: ~f~%" (-> this init-y))
(format #t "~2Tsound-id: ~D~%" (-> this sound-id))
(label cfg-4)
this
)
;; failed to figure out what this is:
(defstate inactive (vol-rising-step)
:virtual #t
:event (behavior ((proc process) (argc int) (message symbol) (block event-message-block))
(case message
(('trigger)
(go-virtual pre-active)
)
)
)
:enter (behavior ()
(set! (-> self root trans y) (- (-> self init-y) (-> self amplitude)))
(ja-no-eval :group! (-> self draw art-group data (-> self idle-anim)) :num! zero)
(transform-post)
)
:code sleep-code
)
;; failed to figure out what this is:
(defstate pre-active (vol-rising-step)
:virtual #t
:code (behavior ()
(let ((gp-0 (get-timeframe-offset! (-> self sync) 0)))
(while (< (current-time) gp-0)
(suspend)
)
)
(go-virtual active)
)
)
;; failed to figure out what this is:
(defstate active (vol-rising-step)
:virtual #t
:exit (behavior ()
(sound-stop (-> self sound-id))
)
:trans rider-trans
:code sleep-code
:post (behavior ()
(let ((f0-0 (cos (get-scaled-val! (-> self sync) 32768.0 0)))
(f1-1 (/ (-> self amplitude) 2))
)
(set! (-> self root trans y) (- (- (-> self init-y) f1-1) (* f0-0 f1-1)))
)
(sound-play-by-name
(static-sound-name "plat-move")
(-> self sound-id)
(the int (* 1024.0 (- 1.0 (square (square (fabs (* 2.0 (- 0.5 (get-norm! (-> self sync) 0)))))))))
0
0
(sound-group)
#t
)
(rider-post)
)
)
;; definition for method 10 of type vol-rising-step
(defmethod deactivate ((this vol-rising-step))
"Make a process dead, clean it up, remove it from the active pool, and return to dead pool."
(sound-stop (-> this sound-id))
(call-parent-method this)
(none)
)
;; definition for method 11 of type vol-rising-step
(defmethod init-from-entity! ((this vol-rising-step) (arg0 entity-actor))
"Set up a newly created process from the entity that created it."
(stack-size-set! (-> this main-thread) 32)
(vol-rising-step-method-24 this)
(process-drawable-from-entity! this arg0)
(vol-rising-step-method-23 this)
(set-vector! (-> this root scale) 1.3 1.0 1.3 1.0)
(let ((a1-3 (new 'stack-no-clear 'sync-info-params)))
(let ((v1-8 0))
(if #t
(set! v1-8 (logior v1-8 1))
)
(set! (-> a1-3 sync-type) 'sync-paused)
(set! (-> a1-3 sync-flags) (the-as sync-flags v1-8))
)
(set! (-> a1-3 entity) (-> this entity))
(set! (-> a1-3 period) (the-as uint 2400))
(set! (-> a1-3 percent) 0.0)
(set! (-> a1-3 pause-in) 0.05)
(set! (-> a1-3 pause-out) 0.3)
(initialize! (-> this sync) a1-3)
)
(set! (-> this root pause-adjust-distance) 327680.0)
(set! (-> this init-y) (-> this root trans y))
(set! (-> this sound-id) (new-sound-id))
(go (method-of-object this inactive))
)
;; definition of type vol-rising-step-a
(deftype vol-rising-step-a (vol-rising-step)
()
)
;; definition for method 3 of type vol-rising-step-a
(defmethod inspect ((this vol-rising-step-a))
(when (not this)
(set! this this)
(goto cfg-4)
)
(let ((t9-0 (method-of-type vol-rising-step inspect)))
(t9-0 this)
)
(label cfg-4)
this
)
;; failed to figure out what this is:
(defskelgroup skel-vol-rising-step-a vol-rising-step-a vol-rising-step-a-lod0-jg vol-rising-step-a-idle-ja
((vol-rising-step-a-lod0-mg (meters 999999)))
:bounds (static-spherem 0 -8 0 9.3)
)
;; definition for method 23 of type vol-rising-step-a
;; WARN: Return type mismatch int vs none.
(defmethod vol-rising-step-method-23 ((this vol-rising-step-a))
(initialize-skeleton
this
(the-as skeleton-group (art-group-get-by-name *level* "skel-vol-rising-step-a" (the-as (pointer level) #f)))
(the-as pair 0)
)
(set! (-> this idle-anim) 2)
(set! (-> this amplitude) (res-lump-float (-> this entity) 'y-offset :default 40960.0))
(+! (-> this root trans y) (res-lump-float (-> this entity) 'tunemeters :default 16384.0))
0
(none)
)
;; definition for method 24 of type vol-rising-step-a
;; WARN: Return type mismatch int vs none.
(defmethod vol-rising-step-method-24 ((this vol-rising-step-a))
(let ((s5-0 (new 'process 'collide-shape-moving this (collide-list-enum usually-hit-by-player))))
(set! (-> s5-0 dynam) (copy *standard-dynamics* 'process))
(set! (-> s5-0 reaction) cshape-reaction-default)
(set! (-> s5-0 no-reaction)
(the-as (function collide-shape-moving collide-query vector vector object) nothing)
)
(let ((v1-6 (new 'process 'collide-shape-prim-mesh s5-0 (the-as uint 0) (the-as uint 0))))
(set! (-> v1-6 prim-core collide-as) (collide-spec obstacle camera-blocker))
(set! (-> v1-6 prim-core collide-with) (collide-spec jak bot player-list))
(set! (-> v1-6 prim-core action) (collide-action solid rideable))
(set! (-> v1-6 transform-index) 0)
(set-vector! (-> v1-6 local-sphere) 0.0 -32768.0 0.0 38092.8)
(set! (-> s5-0 total-prims) (the-as uint 1))
(set! (-> s5-0 root-prim) v1-6)
)
(set! (-> s5-0 nav-radius) (* 0.75 (-> s5-0 root-prim local-sphere w)))
(let ((v1-9 (-> s5-0 root-prim)))
(set! (-> s5-0 backup-collide-as) (-> v1-9 prim-core collide-as))
(set! (-> s5-0 backup-collide-with) (-> v1-9 prim-core collide-with))
)
(set! (-> this root) s5-0)
)
0
(none)
)
;; definition of type vol-rising-step-b
(deftype vol-rising-step-b (vol-rising-step)
()
)
;; definition for method 3 of type vol-rising-step-b
(defmethod inspect ((this vol-rising-step-b))
(when (not this)
(set! this this)
(goto cfg-4)
)
(let ((t9-0 (method-of-type vol-rising-step inspect)))
(t9-0 this)
)
(label cfg-4)
this
)
;; failed to figure out what this is:
(defskelgroup skel-vol-rising-step-b vol-rising-step-b vol-rising-step-b-lod0-jg vol-rising-step-b-idle-ja
((vol-rising-step-b-lod0-mg (meters 999999)))
:bounds (static-spherem 0 -8 0 9.3)
)
;; definition for method 23 of type vol-rising-step-b
;; WARN: Return type mismatch int vs none.
(defmethod vol-rising-step-method-23 ((this vol-rising-step-b))
(initialize-skeleton
this
(the-as skeleton-group (art-group-get-by-name *level* "skel-vol-rising-step-b" (the-as (pointer level) #f)))
(the-as pair 0)
)
(set! (-> this idle-anim) 2)
(set! (-> this amplitude) (res-lump-float (-> this entity) 'y-offset :default 40960.0))
0
(none)
)
;; definition for method 24 of type vol-rising-step-b
;; WARN: Return type mismatch int vs none.
(defmethod vol-rising-step-method-24 ((this vol-rising-step-b))
(let ((s5-0 (new 'process 'collide-shape-moving this (collide-list-enum usually-hit-by-player))))
(set! (-> s5-0 dynam) (copy *standard-dynamics* 'process))
(set! (-> s5-0 reaction) cshape-reaction-default)
(set! (-> s5-0 no-reaction)
(the-as (function collide-shape-moving collide-query vector vector object) nothing)
)
(let ((v1-6 (new 'process 'collide-shape-prim-mesh s5-0 (the-as uint 0) (the-as uint 0))))
(set! (-> v1-6 prim-core collide-as) (collide-spec obstacle camera-blocker))
(set! (-> v1-6 prim-core collide-with) (collide-spec jak bot player-list))
(set! (-> v1-6 prim-core action) (collide-action solid rideable))
(set! (-> v1-6 transform-index) 0)
(set-vector! (-> v1-6 local-sphere) 0.0 -32768.0 0.0 38092.8)
(set! (-> s5-0 total-prims) (the-as uint 1))
(set! (-> s5-0 root-prim) v1-6)
)
(set! (-> s5-0 nav-radius) (* 0.75 (-> s5-0 root-prim local-sphere w)))
(let ((v1-9 (-> s5-0 root-prim)))
(set! (-> s5-0 backup-collide-as) (-> v1-9 prim-core collide-as))
(set! (-> s5-0 backup-collide-with) (-> v1-9 prim-core collide-with))
)
(set! (-> this root) s5-0)
)
0
(none)
)
;; definition of type vol-rising-step-c
(deftype vol-rising-step-c (vol-rising-step)
()
)
;; definition for method 3 of type vol-rising-step-c
(defmethod inspect ((this vol-rising-step-c))
(when (not this)
(set! this this)
(goto cfg-4)
)
(let ((t9-0 (method-of-type vol-rising-step inspect)))
(t9-0 this)
)
(label cfg-4)
this
)
;; failed to figure out what this is:
(defskelgroup skel-vol-rising-step-c vol-rising-step-c vol-rising-step-c-lod0-jg vol-rising-step-c-idle-ja
((vol-rising-step-c-lod0-mg (meters 999999)))
:bounds (static-spherem 0 -8 0 9.3)
)
;; definition for method 23 of type vol-rising-step-c
;; WARN: Return type mismatch int vs none.
(defmethod vol-rising-step-method-23 ((this vol-rising-step-c))
(initialize-skeleton
this
(the-as skeleton-group (art-group-get-by-name *level* "skel-vol-rising-step-c" (the-as (pointer level) #f)))
(the-as pair 0)
)
(set! (-> this idle-anim) 2)
(set! (-> this amplitude) (res-lump-float (-> this entity) 'y-offset :default 40960.0))
(+! (-> this root trans y) 10240.0)
0
(none)
)
;; definition for method 24 of type vol-rising-step-c
;; WARN: Return type mismatch int vs none.
(defmethod vol-rising-step-method-24 ((this vol-rising-step-c))
(let ((s5-0 (new 'process 'collide-shape-moving this (collide-list-enum usually-hit-by-player))))
(set! (-> s5-0 dynam) (copy *standard-dynamics* 'process))
(set! (-> s5-0 reaction) cshape-reaction-default)
(set! (-> s5-0 no-reaction)
(the-as (function collide-shape-moving collide-query vector vector object) nothing)
)
(let ((v1-6 (new 'process 'collide-shape-prim-mesh s5-0 (the-as uint 0) (the-as uint 0))))
(set! (-> v1-6 prim-core collide-as) (collide-spec obstacle camera-blocker))
(set! (-> v1-6 prim-core collide-with) (collide-spec jak bot player-list))
(set! (-> v1-6 prim-core action) (collide-action solid rideable))
(set! (-> v1-6 transform-index) 0)
(set-vector! (-> v1-6 local-sphere) 0.0 -32768.0 0.0 38092.8)
(set! (-> s5-0 total-prims) (the-as uint 1))
(set! (-> s5-0 root-prim) v1-6)
)
(set! (-> s5-0 nav-radius) (* 0.75 (-> s5-0 root-prim local-sphere w)))
(let ((v1-9 (-> s5-0 root-prim)))
(set! (-> s5-0 backup-collide-as) (-> v1-9 prim-core collide-as))
(set! (-> s5-0 backup-collide-with) (-> v1-9 prim-core collide-with))
)
(set! (-> this root) s5-0)
)
0
(none)
)
;; definition of type vol-rising-step-d
(deftype vol-rising-step-d (vol-rising-step)
()
)
;; definition for method 3 of type vol-rising-step-d
(defmethod inspect ((this vol-rising-step-d))
(when (not this)
(set! this this)
(goto cfg-4)
)
(let ((t9-0 (method-of-type vol-rising-step inspect)))
(t9-0 this)
)
(label cfg-4)
this
)
;; failed to figure out what this is:
(defskelgroup skel-vol-rising-step-d vol-rising-step-d 0 2
((1 (meters 999999)))
:bounds (static-spherem 0 -8 0 9.3)
)
;; definition for method 23 of type vol-rising-step-d
;; WARN: Return type mismatch int vs none.
(defmethod vol-rising-step-method-23 ((this vol-rising-step-d))
(initialize-skeleton
this
(the-as skeleton-group (art-group-get-by-name *level* "skel-vol-rising-step-d" (the-as (pointer level) #f)))
(the-as pair 0)
)
(set! (-> this idle-anim) 2)
(set! (-> this amplitude) (res-lump-float (-> this entity) 'y-offset :default 40960.0))
0
(none)
)
;; definition for method 24 of type vol-rising-step-d
;; WARN: Return type mismatch int vs none.
(defmethod vol-rising-step-method-24 ((this vol-rising-step-d))
(let ((s5-0 (new 'process 'collide-shape-moving this (collide-list-enum usually-hit-by-player))))
(set! (-> s5-0 dynam) (copy *standard-dynamics* 'process))
(set! (-> s5-0 reaction) cshape-reaction-default)
(set! (-> s5-0 no-reaction)
(the-as (function collide-shape-moving collide-query vector vector object) nothing)
)
(let ((v1-6 (new 'process 'collide-shape-prim-mesh s5-0 (the-as uint 0) (the-as uint 0))))
(set! (-> v1-6 prim-core collide-as) (collide-spec obstacle camera-blocker))
(set! (-> v1-6 prim-core collide-with) (collide-spec jak bot player-list))
(set! (-> v1-6 prim-core action) (collide-action solid rideable))
(set! (-> v1-6 transform-index) 0)
(set-vector! (-> v1-6 local-sphere) 0.0 -32768.0 0.0 38092.8)
(set! (-> s5-0 total-prims) (the-as uint 1))
(set! (-> s5-0 root-prim) v1-6)
)
(set! (-> s5-0 nav-radius) (* 0.75 (-> s5-0 root-prim local-sphere w)))
(let ((v1-9 (-> s5-0 root-prim)))
(set! (-> s5-0 backup-collide-as) (-> v1-9 prim-core collide-as))
(set! (-> s5-0 backup-collide-with) (-> v1-9 prim-core collide-with))
)
(set! (-> this root) s5-0)
)
0
(none)
)
;; definition of type lava-shoot
(deftype lava-shoot (process-drawable)
((root collide-shape-moving :override)
(sync sync-paused :inline)
(attack-id uint32)
(sound-id sound-id)
(no-collision-timer time-frame)
)
(:state-methods
idle
)
)
;; definition for method 3 of type lava-shoot
(defmethod inspect ((this lava-shoot))
(when (not this)
(set! this this)
(goto cfg-4)
)
(let ((t9-0 (method-of-type process-drawable inspect)))
(t9-0 this)
)
(format #t "~2Tsync: #<sync-paused @ #x~X>~%" (-> this sync))
(format #t "~2Tattack-id: ~D~%" (-> this attack-id))
(format #t "~2Tsound-id: ~D~%" (-> this sound-id))
(format #t "~2Tno-collision-timer: ~D~%" (-> this no-collision-timer))
(label cfg-4)
this
)
;; failed to figure out what this is:
(defstate idle (lava-shoot)
:virtual #t
:event (behavior ((proc process) (argc int) (message symbol) (block event-message-block))
(case message
(('touch 'attack)
(let ((gp-0 (as-type proc process-focusable)))
(when gp-0
(when (or (focus-test? (the-as process-focusable gp-0) mech)
(time-elapsed? (-> self no-collision-timer) (-> *TARGET-bank* hit-invulnerable-timeout))
)
(let ((s4-1 (vector-x-quaternion! (new 'stack-no-clear 'vector) (-> self root quat))))
(let* ((v1-10 (vector-z-quaternion! (new 'stack-no-clear 'vector) (-> (the-as process-focusable gp-0) root quat)))
(f0-1 (vector-dot s4-1 v1-10))
)
(if (< 0.0 f0-1)
(vector-float*! s4-1 s4-1 -1.0)
)
)
(when (send-event
gp-0
'attack
(-> block param 0)
(static-attack-info
:mask (vehicle-impulse-factor)
((id (-> self attack-id))
(damage 2.0)
(vehicle-damage-factor 1.0)
(vehicle-impulse-factor 1.0)
(mode 'burnup)
(vector s4-1)
(shove-back (meters 3))
(shove-up (meters 5))
(control (if (focus-test? (the-as process-focusable gp-0) board)
1.0
0.0
)
)
)
)
)
(let ((v0-0 (current-time)))
(set! (-> self no-collision-timer) v0-0)
v0-0
)
)
)
)
)
)
)
)
)
:exit (behavior ()
(sound-stop (-> self sound-id))
)
:code sleep-code
:post (behavior ()
(let ((f30-0 (get-norm! (-> self sync) 0)))
(set! (-> *part-id-table* 4601 init-specs 1 initial-valuef) (* 3.0 f30-0 f30-0))
(set! (-> *part-id-table* 4601 init-specs 11 initial-valuef) (* 109.22667 f30-0))
(sound-play-by-name
(static-sound-name "geyser-loop")
(-> self sound-id)
(the int (* 1024.0 f30-0))
0
0
(sound-group)
#t
)
(let* ((v1-13 (-> self root root-prim))
(a0-4 (the int (* f30-0 (the float (-> v1-13 specific 0)))))
)
(dotimes (a1-2 (the-as int (-> (the-as collide-shape-prim-group v1-13) num-children)))
(cond
((>= a1-2 a0-4)
(logclear! (-> (the-as collide-shape-prim-group v1-13) child a1-2 prim-core action) (collide-action solid))
(logclear!
(-> (the-as collide-shape-prim-group v1-13) child a1-2 prim-core collide-as)
(collide-spec obstacle)
)
)
(else
(logior! (-> (the-as collide-shape-prim-group v1-13) child a1-2 prim-core action) (collide-action solid))
(logior! (-> (the-as collide-shape-prim-group v1-13) child a1-2 prim-core collide-as) (collide-spec obstacle))
)
)
)
)
)
(let ((gp-0 (new 'stack-no-clear 'matrix)))
(quaternion->matrix gp-0 (-> self root quat))
(vector-copy! (-> gp-0 trans) (-> self root trans))
(spawn-from-mat (-> self part) gp-0)
)
0
)
)
;; definition for method 10 of type lava-shoot
(defmethod deactivate ((this lava-shoot))
"Make a process dead, clean it up, remove it from the active pool, and return to dead pool."
(sound-stop (-> this sound-id))
((method-of-type process-drawable deactivate) this)
(none)
)
;; definition for method 11 of type lava-shoot
(defmethod init-from-entity! ((this lava-shoot) (arg0 entity-actor))
"Set up a newly created process from the entity that created it."
(let ((s4-0 (new 'process 'collide-shape-moving this (collide-list-enum hit-by-player))))
(set! (-> s4-0 dynam) (copy *standard-dynamics* 'process))
(set! (-> s4-0 reaction) cshape-reaction-default)
(set! (-> s4-0 no-reaction)
(the-as (function collide-shape-moving collide-query vector vector object) nothing)
)
(let ((s3-0 (new 'process 'collide-shape-prim-group s4-0 (the-as uint 7) 0)))
(set! (-> s4-0 total-prims) (the-as uint 8))
(set! (-> s3-0 prim-core collide-as) (collide-spec obstacle))
(set! (-> s3-0 prim-core action) (collide-action solid))
(set! (-> s3-0 transform-index) -3)
(set-vector! (-> s3-0 local-sphere) 0.0 -32768.0 16384.0 40960.0)
(set! (-> s4-0 root-prim) s3-0)
)
(let ((v1-12 (new 'process 'collide-shape-prim-sphere s4-0 (the-as uint 0))))
(set! (-> v1-12 prim-core collide-as) (collide-spec obstacle))
(set! (-> v1-12 prim-core action) (collide-action solid))
(set! (-> v1-12 transform-index) -3)
(set-vector! (-> v1-12 local-sphere) 0.0 0.0 0.0 8192.0)
)
(let ((v1-14 (new 'process 'collide-shape-prim-sphere s4-0 (the-as uint 0))))
(set! (-> v1-14 prim-core collide-as) (collide-spec obstacle))
(set! (-> v1-14 prim-core action) (collide-action solid))
(set! (-> v1-14 transform-index) -3)
(set-vector! (-> v1-14 local-sphere) 0.0 -8192.0 8192.0 8192.0)
)
(let ((v1-16 (new 'process 'collide-shape-prim-sphere s4-0 (the-as uint 0))))
(set! (-> v1-16 prim-core collide-as) (collide-spec obstacle))
(set! (-> v1-16 prim-core action) (collide-action solid))
(set! (-> v1-16 transform-index) -3)
(set-vector! (-> v1-16 local-sphere) 0.0 -16384.0 10240.0 8192.0)
)
(let ((v1-18 (new 'process 'collide-shape-prim-sphere s4-0 (the-as uint 0))))
(set! (-> v1-18 prim-core collide-as) (collide-spec obstacle))
(set! (-> v1-18 prim-core action) (collide-action solid))
(set! (-> v1-18 transform-index) -3)
(set-vector! (-> v1-18 local-sphere) 0.0 -24576.0 13926.4 8192.0)
)
(let ((v1-20 (new 'process 'collide-shape-prim-sphere s4-0 (the-as uint 0))))
(set! (-> v1-20 prim-core collide-as) (collide-spec obstacle))
(set! (-> v1-20 prim-core action) (collide-action solid))
(set! (-> v1-20 transform-index) -3)
(set-vector! (-> v1-20 local-sphere) 0.0 -32768.0 14745.6 8192.0)
)
(let ((v1-22 (new 'process 'collide-shape-prim-sphere s4-0 (the-as uint 0))))
(set! (-> v1-22 prim-core collide-as) (collide-spec obstacle))
(set! (-> v1-22 prim-core action) (collide-action solid))
(set! (-> v1-22 transform-index) -3)
(set-vector! (-> v1-22 local-sphere) 0.0 -40960.0 16384.0 8192.0)
)
(let ((v1-24 (new 'process 'collide-shape-prim-sphere s4-0 (the-as uint 0))))
(set! (-> v1-24 prim-core collide-as) (collide-spec obstacle))
(set! (-> v1-24 prim-core action) (collide-action solid))
(set! (-> v1-24 transform-index) -3)
(set-vector! (-> v1-24 local-sphere) 0.0 -49152.0 18432.0 8192.0)
)
(set! (-> s4-0 nav-radius) (* 0.75 (-> s4-0 root-prim local-sphere w)))
(let ((v1-27 (-> s4-0 root-prim)))
(set! (-> s4-0 backup-collide-as) (-> v1-27 prim-core collide-as))
(set! (-> s4-0 backup-collide-with) (-> v1-27 prim-core collide-with))
)
(set! (-> this root) s4-0)
)
(process-drawable-from-entity! this arg0)
(let ((a1-31 (new 'stack-no-clear 'sync-info-params)))
(let ((v1-29 0))
(if #t
(set! v1-29 (logior v1-29 1))
)
(set! (-> a1-31 sync-type) 'sync-paused)
(set! (-> a1-31 sync-flags) (the-as sync-flags v1-29))
)
(set! (-> a1-31 entity) (-> this entity))
(set! (-> a1-31 period) (the-as uint 2400))
(set! (-> a1-31 percent) 0.0)
(set! (-> a1-31 pause-in) 0.05)
(set! (-> a1-31 pause-out) 0.3)
(initialize! (-> this sync) a1-31)
)
(let* ((v1-37 *game-info*)
(a0-50 (+ (-> v1-37 attack-id) 1))
)
(set! (-> v1-37 attack-id) a0-50)
(set! (-> this attack-id) a0-50)
)
(set! (-> this sound-id) (new-sound-id))
(set! (-> this part) (create-launch-control group-lava-shoot this))
(update-transforms (-> this root))
(go (method-of-object this idle))
)
;; definition of type vol-balance-plat-chain-physics
(deftype vol-balance-plat-chain-physics (chain-physics)
()
)
;; definition for method 3 of type vol-balance-plat-chain-physics
(defmethod inspect ((this vol-balance-plat-chain-physics))
(when (not this)
(set! this this)
(goto cfg-4)
)
(format #t "[~8x] ~A~%" this (-> this type))
(format #t "~1Tchain-joints[20] @ #x~X~%" (-> this chain-joints))
(format #t "~1Tnum-joints: ~D~%" (-> this num-joints))
(format #t "~1Troot-joint-index: ~D~%" (-> this root-joint-index))
(format #t "~1Tjoint-length: ~f~%" (-> this joint-length))
(format #t "~1Tgravity: #<vector @ #x~X>~%" (-> this gravity))
(format #t "~1Tgravity-target: #<vector @ #x~X>~%" (-> this gravity-target))
(format #t "~1Tstretch-vel: ~f~%" (-> this stretch-vel))
(format #t "~1Tstretch-vel-parallel: ~f~%" (-> this stretch-vel-parallel))
(format #t "~1Tcompress-vel: ~f~%" (-> this compress-vel))
(format #t "~1Tcompress-vel-parallel: ~f~%" (-> this compress-vel-parallel))
(format #t "~1Tnegate-y: ~A~%" (-> this negate-y))
(format #t "~1Taxial-slop: ~f~%" (-> this axial-slop))
(format #t "~1Tmaximum-stretch: ~f~%" (-> this maximum-stretch))
(format #t "~1Tturn-off-start: ~D~%" (-> this turn-off-start))
(format #t "~1Tturn-off-duration: ~D~%" (-> this turn-off-duration))
(label cfg-4)
this
)
;; definition for method 13 of type vol-balance-plat-chain-physics
;; WARN: Return type mismatch int vs none.
(defmethod apply-gravity ((this vol-balance-plat-chain-physics) (arg0 vector) (arg1 int) (arg2 process-drawable))
(with-pp
(vector-float*!
arg0
(-> this gravity)
(* 4096.0 (-> pp clock time-adjust-ratio) (lerp-scale 0.01 0.1 (the float arg1) 0.0 8.0))
)
(vector+float*! arg0 arg0 (the-as vector (+ (the-as uint (-> this chain-joints 0 velocity)) (* arg1 64))) 0.2)
0
(none)
)
)
;; definition for method 14 of type vol-balance-plat-chain-physics
;; WARN: Return type mismatch int vs none.
(defmethod chain-physics-method-14 ((this vol-balance-plat-chain-physics) (arg0 vector) (arg1 int))
(vector-float*!
arg0
(the-as vector (+ (the-as uint (-> this chain-joints 0 velocity)) (* (+ arg1 1) 64)))
0.4
)
0
(none)
)
;; definition for method 16 of type vol-balance-plat-chain-physics
(defmethod chain-physics-method-16 ((this vol-balance-plat-chain-physics) (arg0 int))
1820.4445
)
;; definition for method 12 of type vol-balance-plat-chain-physics
;; WARN: Return type mismatch int vs none.
(defmethod gravity-update ((this vol-balance-plat-chain-physics) (arg0 process-drawable))
((method-of-type chain-physics gravity-update) this arg0)
0
(none)
)
;; definition for method 17 of type vol-balance-plat-chain-physics
;; WARN: Return type mismatch int vs none.
(defmethod chain-physics-method-17 ((this vol-balance-plat-chain-physics) (arg0 vector) (arg1 int))
0
(none)
)
;; definition of type vol-balance-plat
(deftype vol-balance-plat (rigid-body-object)
((pivot-transform transformq :inline)
(init-pos vector :inline)
(force-pos vector :inline)
(rope vol-balance-plat-chain-physics)
(rope-initialized symbol)
)
)
;; definition for method 3 of type vol-balance-plat
(defmethod inspect ((this vol-balance-plat))
(when (not this)
(set! this this)
(goto cfg-4)
)
(let ((t9-0 (method-of-type rigid-body-object inspect)))
(t9-0 this)
)
(format #t "~2Tpivot-transform: #<transformq @ #x~X>~%" (-> this pivot-transform))
(format #t "~2Tinit-pos: #<vector @ #x~X>~%" (-> this init-pos))
(format #t "~2Tforce-pos: #<vector @ #x~X>~%" (-> this force-pos))
(format #t "~2Trope: ~A~%" (-> this rope))
(format #t "~2Trope-initialized: ~A~%" (-> this rope-initialized))
(label cfg-4)
this
)
;; failed to figure out what this is:
(defskelgroup skel-vol-balance-plat vol-balance-plat vol-balance-plat-lod0-jg vol-balance-plat-idle-ja
((vol-balance-plat-lod0-mg (meters 999999)))
:bounds (static-spherem 0 -12 0 14)
)
;; definition for symbol *vol-balance-plat-chain-setup*, type (array chain-physics-setup)
(define *vol-balance-plat-chain-setup* (new 'static 'boxed-array :type chain-physics-setup
(new 'static 'chain-physics-setup :joint-index 4)
(new 'static 'chain-physics-setup :joint-index 5)
(new 'static 'chain-physics-setup :joint-index 6)
(new 'static 'chain-physics-setup :joint-index 7)
(new 'static 'chain-physics-setup :joint-index 8)
(new 'static 'chain-physics-setup :joint-index 9)
(new 'static 'chain-physics-setup :joint-index 10)
(new 'static 'chain-physics-setup :joint-index 11)
(new 'static 'chain-physics-setup :joint-index 12)
)
)
;; definition for symbol *vol-balance-plat-rigid-body-constants*, type rigid-body-object-constants
(define *vol-balance-plat-rigid-body-constants*
(new 'static 'rigid-body-object-constants
:info (new 'static 'rigid-body-info
:mass 2.0
:inv-mass 0.5
:linear-damping 0.97
:angular-damping 0.97
:bounce-factor 0.8
:friction-factor 1.0
:cm-offset-joint (new 'static 'vector :y -24576.0 :w 1.0)
:inertial-tensor-box (new 'static 'array meters 3 (meters 15) (meters 30) (meters 15))
)
:extra (new 'static 'rigid-body-object-extra-info
:max-time-step 0.033333335
:gravity (meters 20)
:idle-distance (meters 200)
:attack-force-scale 0.2
)
:name '*vol-balance-plat-rigid-body-constants*
)
)
;; definition for method 53 of type vol-balance-plat
;; WARN: Return type mismatch int vs none.
(defmethod rigid-body-object-method-53 ((this vol-balance-plat) (arg0 float))
(when (logtest? (-> this flags) (rigid-body-object-flag player-impulse-force player-contact-force))
(when (logtest? (-> this flags) (rigid-body-object-flag player-impulse-force))
(logclear! (-> this flags) (rigid-body-object-flag player-impulse-force))
(vector-float*! (-> this player-force) (-> this player-force) (/ 1.0 arg0))
)
(apply-impact! (-> this rbody) (-> this player-force-position) (-> this player-force))
(apply-impact!
(-> this rbody)
(-> this init-pos)
(vector-normalize-copy! (new 'stack-no-clear 'vector) *y-vector* (vector-length (-> this player-force)))
)
)
0
(none)
)
;; definition for method 48 of type vol-balance-plat
;; WARN: Return type mismatch int vs none.
(defmethod on-impact ((this vol-balance-plat) (arg0 rigid-body-impact))
(sound-play "platform-swing")
0
(none)
)
;; definition for method 32 of type vol-balance-plat
(defmethod rigid-body-object-method-32 ((this vol-balance-plat))
(detect-riders! (-> this root))
((method-of-type rigid-body-object rigid-body-object-method-32) this)
(none)
)
;; definition for method 31 of type vol-balance-plat
;; WARN: Return type mismatch int vs none.
(defmethod apply-gravity! ((this vol-balance-plat) (arg0 float))
(let ((a1-1 (new 'stack-no-clear 'vector)))
(vector-! a1-1 (-> this init-pos) (-> this root trans))
(let ((f0-0 0.0))
(set! (-> a1-1 z) f0-0)
(set! (-> a1-1 x) f0-0)
)
(vector-float*! a1-1 a1-1 80.0)
(add-force! (-> this rbody) a1-1)
)
(let ((a0-5 (-> this init-pos)))
(set-vector! (new 'stack-no-clear 'vector) (-> a0-5 x) (+ 163840.0 (-> a0-5 y)) (-> a0-5 z) 1.0)
)
(let* ((f0-7 4.0)
(s4-0 (-> this node-list data 12))
(f30-0 (sin (* 65536.0 (/ (the float (mod (current-time) (the int (* 300.0 f0-7)))) (* 300.0 f0-7)))))
(s2-0 (new 'stack-no-clear 'vector))
(s3-0 (vector<-cspace! (new 'stack-no-clear 'vector) s4-0))
)
(let ((s1-0 (vector-normalize-copy! (new 'stack-no-clear 'vector) (-> s4-0 bone transform rvec) 1.0)))
(vector-float*!
s2-0
s1-0
(* f30-0 (if (= (res-lump-value (-> this entity) 'extra-id uint :time -1000000000.0) 1)
40960.0
8192.0
)
)
)
)
(apply-impact! (-> this rbody) s3-0 s2-0)
)
(let ((s4-3 (new 'stack-no-clear 'vector))
(a1-7 (-> this node-list data 12))
)
(new 'stack-no-clear 'vector)
(vector-float*! s4-3 *y-vector* (* -1.0 (-> this info extra gravity) (-> this rbody info mass)))
(apply-impact! (-> this rbody) (vector<-cspace! (new 'stack-no-clear 'vector) a1-7) s4-3)
)
(rigid-body-object-method-53 this arg0)
0
(none)
)
;; definition for method 39 of type vol-balance-plat
(defmethod rbody-post ((this vol-balance-plat))
(rigid-body-object-method-32 this)
(quaternion-copy! (-> this root quat) (the-as quaternion (-> this rbody rot)))
(rigid-body-control-method-25 (-> this rbody) (-> this root trans))
(when (not (-> this rope-initialized))
(set! (-> this rope-initialized) #t)
(initialize-chain-joints (-> this rope))
)
(update (-> this rope) this)
(rider-post)
(none)
)
;; definition for method 49 of type vol-balance-plat
(defmethod rbody-event-handler ((this vol-balance-plat) (arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block))
(case arg2
(('bonk)
(sound-play "platform-swing")
)
)
((method-of-type rigid-body-object rbody-event-handler) this arg0 arg1 arg2 arg3)
)
;; definition for method 7 of type vol-balance-plat
(defmethod relocate ((this vol-balance-plat) (offset int))
(if (nonzero? (-> this rope))
(&+! (-> this rope) offset)
)
(call-parent-method this offset)
)
;; definition for method 34 of type vol-balance-plat
;; WARN: Return type mismatch int vs none.
(defmethod init-collision! ((this vol-balance-plat))
(let ((s5-0 (new 'process 'collide-shape-moving this (collide-list-enum usually-hit-by-player))))
(set! (-> s5-0 dynam) (copy *standard-dynamics* 'process))
(set! (-> s5-0 reaction) cshape-reaction-default)
(set! (-> s5-0 no-reaction)
(the-as (function collide-shape-moving collide-query vector vector object) nothing)
)
(let ((s4-0 (new 'process 'collide-shape-prim-group s5-0 (the-as uint 2) 0)))
(set! (-> s5-0 total-prims) (the-as uint 3))
(set! (-> s4-0 prim-core collide-as) (collide-spec obstacle pusher))
(set! (-> s4-0 prim-core collide-with) (collide-spec jak bot player-list))
(set! (-> s4-0 prim-core action) (collide-action solid rideable))
(set-vector! (-> s4-0 local-sphere) 0.0 -49152.0 0.0 57344.0)
(set! (-> s5-0 root-prim) s4-0)
)
(pusher-init s5-0)
(let ((v1-14 (new 'process 'collide-shape-prim-mesh s5-0 (the-as uint 1) (the-as uint 0))))
(set! (-> v1-14 prim-core collide-as) (collide-spec obstacle pusher))
(set! (-> v1-14 prim-core collide-with) (collide-spec jak bot player-list))
(set! (-> v1-14 prim-core action) (collide-action solid))
(set! (-> v1-14 transform-index) 7)
(set-vector! (-> v1-14 local-sphere) 0.0 -16384.0 0.0 55296.0)
)
(let ((v1-16 (new 'process 'collide-shape-prim-mesh s5-0 (the-as uint 0) (the-as uint 0))))
(set! (-> v1-16 prim-core collide-as) (collide-spec obstacle pusher))
(set! (-> v1-16 prim-core collide-with) (collide-spec jak bot player-list))
(set! (-> v1-16 prim-core action) (collide-action solid rideable))
(set! (-> v1-16 transform-index) 12)
(set-vector! (-> v1-16 local-sphere) 0.0 0.0 0.0 28672.0)
)
(set! (-> s5-0 nav-radius) (* 0.75 (-> s5-0 root-prim local-sphere w)))
(let ((v1-19 (-> s5-0 root-prim)))
(set! (-> s5-0 backup-collide-as) (-> v1-19 prim-core collide-as))
(set! (-> s5-0 backup-collide-with) (-> v1-19 prim-core collide-with))
)
(set! (-> this root) s5-0)
)
0
(none)
)
;; definition for method 35 of type vol-balance-plat
;; INFO: Used lq/sq
;; WARN: Return type mismatch int vs none.
(defmethod init-rbody-control! ((this vol-balance-plat))
(initialize-skeleton
this
(the-as skeleton-group (art-group-get-by-name *level* "skel-vol-balance-plat" (the-as (pointer level) #f)))
(the-as pair 0)
)
(set! (-> this root pause-adjust-distance) 614400.0)
(let ((a0-3 (-> this skel root-channel 0)))
(set! (-> a0-3 frame-group) (the-as art-joint-anim (-> this draw art-group data 2)))
(set! (-> a0-3 frame-num) 0.0)
(joint-control-channel-group! a0-3 (the-as art-joint-anim (-> this draw art-group data 2)) num-func-identity)
)
(transform-post)
(set! (-> this rope) (new 'process 'vol-balance-plat-chain-physics))
(chain-physics-initialize this (-> this rope) 4 8192.0 *vol-balance-plat-chain-setup*)
(alloc-rbody-control! this *vol-balance-plat-rigid-body-constants*)
(vector-copy! (-> this init-pos) (-> this root trans))
(let ((a0-10 (-> this node-list data 4)))
(set! (-> a0-10 param0)
(lambda ((arg0 cspace) (arg1 transformq))
(let ((gp-0 (-> arg0 param1)))
(cspace<-parented-transformq-joint! arg0 arg1)
(vector-copy! (-> arg0 bone transform trans) (-> (the-as vol-balance-plat gp-0) init-pos))
)
(none)
)
)
(set! (-> a0-10 param1) this)
)
(rigid-body-object-method-42 this)
(apply-momentum! this)
0
(none)
)
;; definition of type vol-steam-explosion
(deftype vol-steam-explosion (process-drawable)
((root collide-shape-moving :override)
(sync sync-paused :inline)
(notify-actor entity-actor)
(attack-id uint32)
(lid-y float)
(extra-id int32)
(y-speed float)
(sound-id sound-id)
(stopped-up-by handle)
(no-collision-timer time-frame)
(trigger-count int32)
)
(:state-methods
idle
stopped-up
active
)
(:methods
(vol-steam-explosion-method-23 (_type_) none)
)
)
;; definition for method 3 of type vol-steam-explosion
(defmethod inspect ((this vol-steam-explosion))
(when (not this)
(set! this this)
(goto cfg-4)
)
(let ((t9-0 (method-of-type process-drawable inspect)))
(t9-0 this)
)
(format #t "~2Tsync: #<sync-paused @ #x~X>~%" (-> this sync))
(format #t "~2Tnotify-actor: ~A~%" (-> this notify-actor))
(format #t "~2Tattack-id: ~D~%" (-> this attack-id))
(format #t "~2Tlid-y: ~f~%" (-> this lid-y))
(format #t "~2Textra-id: ~D~%" (-> this extra-id))
(format #t "~2Ty-speed: ~f~%" (-> this y-speed))
(format #t "~2Tsound-id: ~D~%" (-> this sound-id))
(format #t "~2Tstopped-up-by: ~D~%" (-> this stopped-up-by))
(format #t "~2Tno-collision-timer: ~D~%" (-> this no-collision-timer))
(format #t "~2Ttrigger-count: ~D~%" (-> this trigger-count))
(label cfg-4)
this
)
;; definition for method 23 of type vol-steam-explosion
;; WARN: Return type mismatch int vs none.
(defmethod vol-steam-explosion-method-23 ((this vol-steam-explosion))
(let ((s5-0 (new 'process 'collide-shape-moving this (collide-list-enum hit-by-player))))
(set! (-> s5-0 dynam) (copy *standard-dynamics* 'process))
(set! (-> s5-0 reaction) cshape-reaction-default)
(set! (-> s5-0 no-reaction)
(the-as (function collide-shape-moving collide-query vector vector object) nothing)
)
(let ((s4-0 (new 'process 'collide-shape-prim-group s5-0 (the-as uint 6) 0)))
(set! (-> s5-0 total-prims) (the-as uint 7))
(set! (-> s4-0 prim-core collide-as) (collide-spec obstacle))
(set! (-> s4-0 prim-core action) (collide-action solid))
(set! (-> s4-0 transform-index) -3)
(set-vector! (-> s4-0 local-sphere) 0.0 20480.0 0.0 40960.0)
(set! (-> s5-0 root-prim) s4-0)
)
(let ((v1-12 (new 'process 'collide-shape-prim-sphere s5-0 (the-as uint 0))))
(set! (-> v1-12 transform-index) -3)
(set-vector! (-> v1-12 local-sphere) 0.0 8192.0 0.0 8192.0)
)
(let ((v1-14 (new 'process 'collide-shape-prim-sphere s5-0 (the-as uint 0))))
(set! (-> v1-14 transform-index) -3)
(set-vector! (-> v1-14 local-sphere) 0.0 16384.0 0.0 12288.0)
)
(let ((v1-16 (new 'process 'collide-shape-prim-sphere s5-0 (the-as uint 0))))
(set! (-> v1-16 transform-index) -3)
(set-vector! (-> v1-16 local-sphere) 0.0 32768.0 0.0 16384.0)
)
(let ((v1-18 (new 'process 'collide-shape-prim-sphere s5-0 (the-as uint 0))))
(set! (-> v1-18 transform-index) -3)
(set-vector! (-> v1-18 local-sphere) 0.0 49152.0 0.0 20480.0)
)
(set-vector!
(-> (new 'process 'collide-shape-prim-sphere s5-0 (the-as uint 1)) local-sphere)
0.0
-12288.0
0.0
12288.0
)
(let ((v1-22 (new 'process 'collide-shape-prim-sphere s5-0 (the-as uint 0))))
(set! (-> v1-22 prim-core collide-as) (collide-spec obstacle))
(set! (-> v1-22 prim-core action) (collide-action solid))
(set-vector! (-> v1-22 local-sphere) 0.0 -6144.0 0.0 4505.6)
)
(set! (-> s5-0 nav-radius) (* 0.75 (-> s5-0 root-prim local-sphere w)))
(let ((v1-25 (-> s5-0 root-prim)))
(set! (-> s5-0 backup-collide-as) (-> v1-25 prim-core collide-as))
(set! (-> s5-0 backup-collide-with) (-> v1-25 prim-core collide-with))
)
(set! (-> this root) s5-0)
)
0
(none)
)
;; failed to figure out what this is:
(defstate idle (vol-steam-explosion)
:virtual #t
:event (behavior ((proc process) (argc int) (message symbol) (block event-message-block))
(case message
(('trigger)
(+! (-> self trigger-count) 1)
(if (= (-> self trigger-count) 2)
(go-virtual active)
)
)
)
)
:code sleep-code
)
;; failed to figure out what this is:
(defstate stopped-up (vol-steam-explosion)
:virtual #t
:event (behavior ((proc process) (argc int) (message symbol) (block event-message-block))
(case message
(('in-hole)
(if (and (or (= (-> self extra-id) 1) (= (-> self extra-id) 2))
(< 9011.2 (the-as float (-> block param 0)))
(< 4096.0 (the-as float (-> block param 1)))
)
(go-virtual active)
)
#t
)
(('trans)
(-> self root trans)
)
(('occupied-by-other)
(or (not (-> block param 0)) (!= (handle->process (-> self stopped-up-by)) (-> block param 0)))
)
)
)
:enter (behavior ()
(let ((v1-1 (the-as collide-shape-prim-group (-> self root root-prim))))
(set! (-> v1-1 child 4 prim-core action) (collide-action))
(set! (-> v1-1 child 4 prim-core collide-as) (collide-spec))
)
0
)
:exit (behavior ()
(set! (-> self stopped-up-by) (the-as handle #f))
)
:code (behavior ()
(suspend-for (seconds 0.5)
)
(let ((a1-0 (new 'stack-no-clear 'event-message-block)))
(set! (-> a1-0 from) (process->ppointer self))
(set! (-> a1-0 num-params) 0)
(set! (-> a1-0 message) 'trigger)
(let ((t9-0 send-event-function)
(v1-7 (-> self notify-actor))
)
(t9-0
(if v1-7
(-> v1-7 extra process)
)
a1-0
)
)
)
(sleep-code)
)
)
;; failed to figure out what this is:
(defstate active (vol-steam-explosion)
:virtual #t
:event (behavior ((proc process) (argc int) (message symbol) (block event-message-block))
(case message
(('attack 'touch)
(let ((gp-0 (as-type proc process-focusable)))
(when gp-0
(when (or (focus-test? (the-as process-focusable gp-0) mech)
(time-elapsed? (-> self no-collision-timer) (-> *TARGET-bank* hit-invulnerable-timeout))
)
(let ((a0-7
(vector-! (new 'stack-no-clear 'vector) (-> (the-as process-focusable gp-0) root trans) (-> self root trans))
)
)
(vector-normalize! a0-7 1.0)
)
(when (send-event gp-0 'shove #f (static-attack-info :mask (vehicle-impulse-factor) ((id (new-attack-id))
(damage 2.0)
(vehicle-damage-factor 1.0)
(vehicle-impulse-factor 1.0)
(shove-back (meters 3))
(shove-up (meters 1))
)
)
)
(let ((v0-1 (the-as object (current-time))))
(set! (-> self no-collision-timer) (the-as time-frame v0-1))
v0-1
)
)
)
)
)
)
(('untrigger)
(go-virtual idle)
)
(('active?)
#t
)
(('get-norm)
(get-norm! (-> self sync) 0)
)
(('in-hole)
(when (and (or (= (-> self extra-id) 1) (= (-> self extra-id) 2))
(< (the-as float (-> block param 0)) 6144.0)
(< (the-as float (-> block param 1)) 2048.0)
)
(set! (-> self stopped-up-by) (process->handle proc))
(go-virtual stopped-up)
)
#f
)
(('set-y)
(if (-> block param 0)
(set! (-> self lid-y) (the-as float (-> block param 0)))
(set! (-> self lid-y) (+ 819200.0 (-> self root trans y)))
)
)
(('trans)
(-> self root trans)
)
)
)
:enter (behavior ()
(let ((a1-0 (new 'stack-no-clear 'event-message-block)))
(set! (-> a1-0 from) (process->ppointer self))
(set! (-> a1-0 num-params) 0)
(set! (-> a1-0 message) 'untrigger)
(let ((t9-0 send-event-function)
(v1-2 (-> self notify-actor))
)
(t9-0
(if v1-2
(-> v1-2 extra process)
)
a1-0
)
)
)
(let ((v1-6 (-> self root root-prim)))
(set! (-> (the-as collide-shape-prim-group v1-6) child 4 prim-core action) (collide-action solid))
(set! (-> (the-as collide-shape-prim-group v1-6) child 4 prim-core collide-as) (collide-spec obstacle))
)
)
:exit (behavior ()
(sound-stop (-> self sound-id))
)
:code sleep-code
:post (behavior ()
(let ((f30-0 (get-norm! (-> self sync) 0)))
(sound-play-by-name
(static-sound-name "steam-vent")
(-> self sound-id)
(the int (* 1024.0 f30-0))
0
0
(sound-group)
#t
)
(let ((f0-5 (lerp-scale 0.0 1.0 (- (-> self lid-y) (-> self root trans y)) 0.0 81920.0)))
(set! (-> *part-id-table* 4610 init-specs 1 initial-valuef) (* 3.0 f30-0 f30-0 f0-5))
(set! (-> *part-id-table* 4610 init-specs 9 initial-valuef) (* 13.653334 f30-0 (-> self y-speed) f0-5))
)
(let ((v1-15 (-> self root root-prim))
(a0-5 (the int (* 4.0 f30-0)))
)
(dotimes (a1-3 4)
(cond
((or (>= a1-3 a0-5)
(>= (+ (-> (the-as collide-shape-prim-group v1-15) child a1-3 prim-core world-sphere y)
(-> (the-as collide-shape-prim-group v1-15) child a1-3 prim-core world-sphere w)
)
(+ -4096.0 (-> self lid-y))
)
)
(logclear! (-> (the-as collide-shape-prim-group v1-15) child a1-3 prim-core action) (collide-action solid))
(logclear!
(-> (the-as collide-shape-prim-group v1-15) child a1-3 prim-core collide-as)
(collide-spec obstacle)
)
)
(else
(logior! (-> (the-as collide-shape-prim-group v1-15) child a1-3 prim-core action) (collide-action solid))
(logior! (-> (the-as collide-shape-prim-group v1-15) child a1-3 prim-core collide-as) (collide-spec obstacle))
)
)
)
)
)
(let ((gp-0 (new 'stack-no-clear 'matrix)))
(matrix-copy! gp-0 *identity-matrix*)
(matrix<-quat gp-0 (-> self root quat))
(vector-copy! (-> gp-0 trans) (-> self root trans))
(spawn-from-mat (-> self part) gp-0)
)
0
)
)
;; definition for method 10 of type vol-steam-explosion
(defmethod deactivate ((this vol-steam-explosion))
"Make a process dead, clean it up, remove it from the active pool, and return to dead pool."
(sound-stop (-> this sound-id))
(call-parent-method this)
(none)
)
;; definition for method 11 of type vol-steam-explosion
(defmethod init-from-entity! ((this vol-steam-explosion) (arg0 entity-actor))
"Set up a newly created process from the entity that created it."
(stack-size-set! (-> this main-thread) 128)
(vol-steam-explosion-method-23 this)
(process-drawable-from-entity! this arg0)
(let ((a1-3 (new 'stack-no-clear 'sync-info-params)))
(let ((v1-4 0))
(if #t
(set! v1-4 (logior v1-4 1))
)
(set! (-> a1-3 sync-type) 'sync-paused)
(set! (-> a1-3 sync-flags) (the-as sync-flags v1-4))
)
(set! (-> a1-3 entity) (-> this entity))
(set! (-> a1-3 period) (the-as uint 1200))
(set! (-> a1-3 percent) 0.0)
(set! (-> a1-3 pause-in) 0.05)
(set! (-> a1-3 pause-out) 0.7)
(initialize! (-> this sync) a1-3)
)
(let* ((v1-12 *game-info*)
(a0-10 (+ (-> v1-12 attack-id) 1))
)
(set! (-> v1-12 attack-id) a0-10)
(set! (-> this attack-id) a0-10)
)
(set! (-> this part) (create-launch-control group-steam-geyser-shoot this))
(set! (-> this lid-y) 4096000.0)
(set! (-> this extra-id) (res-lump-value (-> this entity) 'extra-id int :time -1000000000.0))
(set! (-> this notify-actor) (entity-actor-lookup arg0 'alt-actor 0))
(set! (-> this y-speed) (res-lump-float (-> this entity) 'y-speed :default 140.0))
(set! (-> this sound-id) (new-sound-id))
(set! (-> this stopped-up-by) (the-as handle #f))
(set! (-> this trigger-count) 0)
(update-transforms (-> this root))
(let ((v1-21 (-> this extra-id)))
(if (or (zero? v1-21) (= v1-21 1) (= v1-21 2))
(go (method-of-object this active))
(go (method-of-object this idle))
)
)
)
;; definition of type spinning-hole
(deftype spinning-hole (vol-steam-explosion)
()
)
;; definition for method 3 of type spinning-hole
(defmethod inspect ((this spinning-hole))
(when (not this)
(set! this this)
(goto cfg-4)
)
(let ((t9-0 (method-of-type vol-steam-explosion inspect)))
(t9-0 this)
)
(label cfg-4)
this
)
;; failed to figure out what this is:
(defskelgroup skel-vol-bouncer vol-bouncer vol-bouncer-lod0-jg vol-bouncer-idle-ja
((vol-bouncer-lod0-mg (meters 999999)))
:bounds (static-spherem 0 0 0 5)
)
;; definition of type vol-bouncer
(deftype vol-bouncer (bouncer)
()
)
;; definition for method 3 of type vol-bouncer
(defmethod inspect ((this vol-bouncer))
(when (not this)
(set! this this)
(goto cfg-4)
)
(let ((t9-0 (method-of-type bouncer inspect)))
(t9-0 this)
)
(label cfg-4)
this
)
;; failed to figure out what this is:
(defstate idle (vol-bouncer)
:virtual #t
:event (behavior ((proc process) (argc int) (message symbol) (block event-message-block))
(case message
(('bonk)
(when ((method-of-type touching-shapes-entry prims-touching?)
(the-as touching-shapes-entry (-> block param 0))
(-> self root)
(the-as uint 1)
)
(when (send-event proc 'jump (-> self spring-height) (-> self spring-height) (-> self mods))
(sound-play "bouncer")
(go-virtual fire)
)
)
)
(('touch)
(let ((gp-2 (-> block param 0)))
(cond
(((method-of-type touching-shapes-entry prims-touching-action?)
(the-as touching-shapes-entry gp-2)
(-> self root)
(collide-action solid)
(collide-action)
)
(when ((method-of-type touching-shapes-entry prims-touching?)
(the-as touching-shapes-entry gp-2)
(-> self root)
(the-as uint 1)
)
(if (not (and (-> self next-state) (let ((v1-21 (-> self next-state name)))
(or (= v1-21 'smush) (= v1-21 'fire))
)
)
)
(go-virtual smush)
)
)
)
(((method-of-type touching-shapes-entry prims-touching?)
(the-as touching-shapes-entry gp-2)
(-> self root)
(the-as uint 4)
)
(persist-with-delay
*setting-control*
(the-as symbol (process->ppointer self))
(seconds 0.05)
'double-jump
#f
0.0
0
)
)
)
)
)
(('attack)
(let ((v1-28 (the-as object (-> block param 1)))
(a0-16 (-> block param 0))
(a2-7 0)
)
(cond
((= (-> (the-as attack-info v1-28) mode) 'flop)
(set! a2-7 1)
)
((= (-> (the-as attack-info v1-28) mode) 'board)
(set! a2-7 9)
)
)
(when (and (nonzero? a2-7)
(and ((method-of-type touching-shapes-entry prims-touching?)
(the-as touching-shapes-entry a0-16)
(-> self root)
(the-as uint a2-7)
)
(send-event proc 'jump (-> self spring-height) (-> self spring-height) (-> self mods))
)
)
(sound-play "bouncer")
(go-virtual fire)
#f
)
)
)
)
)
:code (behavior ()
(ja :group! (get-art-by-name (-> self draw art-group) "idle" art-joint-anim) :num! min)
(transform-post)
(until #f
(logior! (-> self mask) (process-mask sleep))
(suspend)
)
#f
)
)
;; failed to figure out what this is:
(defstate fire (vol-bouncer)
:virtual #t
:code (behavior ()
(cpad-set-buzz! (-> *cpad-list* cpads 0) 1 178 (seconds 0.1))
(sound-play "bouncer-whoosh")
(ja-no-eval :group! (get-art-by-name (-> self draw art-group) "idle" art-joint-anim)
:num! (seek!)
:frame-num (ja-aframe 6.0 0)
)
(until (ja-done? 0)
(suspend)
(ja :num! (seek!))
)
(go-virtual idle)
)
:post transform-post
)
;; definition for method 23 of type vol-bouncer
;; WARN: Return type mismatch int vs none.
(defmethod init-skel! ((this vol-bouncer))
(initialize-skeleton
this
(the-as skeleton-group (art-group-get-by-name *level* "skel-vol-bouncer" (the-as (pointer level) #f)))
(the-as pair 0)
)
0
(none)
)
;; definition for method 24 of type vol-bouncer
;; WARN: Return type mismatch int vs none.
(defmethod init-collision! ((this vol-bouncer))
(let ((s5-0 (new 'process 'collide-shape this (collide-list-enum hit-by-player))))
(let ((v1-2 (new 'process 'collide-shape-prim-mesh s5-0 (the-as uint 0) (the-as uint 1))))
(set! (-> v1-2 prim-core collide-as) (collide-spec crate))
(set! (-> v1-2 prim-core collide-with) (collide-spec jak player-list))
(set! (-> v1-2 prim-core action) (collide-action solid))
(set! (-> v1-2 transform-index) 3)
(set-vector! (-> v1-2 local-sphere) -2128.2815 5212.979 223.6416 25526.682)
(set! (-> s5-0 total-prims) (the-as uint 1))
(set! (-> s5-0 root-prim) v1-2)
)
(set! (-> s5-0 nav-radius) (* 0.75 (-> s5-0 root-prim local-sphere w)))
(let ((v1-5 (-> s5-0 root-prim)))
(set! (-> s5-0 backup-collide-as) (-> v1-5 prim-core collide-as))
(set! (-> s5-0 backup-collide-with) (-> v1-5 prim-core collide-with))
)
(set! (-> this root) s5-0)
)
0
(none)
)
;; definition of type vol-lava-ball
(deftype vol-lava-ball (process-drawable)
((y-initial float)
(y-velocity float)
(y-acc float)
(attack-id uint32)
(no-collision-timer time-frame)
)
(:state-methods
idle
done
)
)
;; definition for method 3 of type vol-lava-ball
(defmethod inspect ((this vol-lava-ball))
(when (not this)
(set! this this)
(goto cfg-4)
)
(let ((t9-0 (method-of-type process-drawable inspect)))
(t9-0 this)
)
(format #t "~2Ty-initial: ~f~%" (-> this y-initial))
(format #t "~2Ty-velocity: ~f~%" (-> this y-velocity))
(format #t "~2Ty-acc: ~f~%" (-> this y-acc))
(format #t "~2Tattack-id: ~D~%" (-> this attack-id))
(format #t "~2Tno-collision-timer: ~D~%" (-> this no-collision-timer))
(label cfg-4)
this
)
;; failed to figure out what this is:
(defskelgroup skel-vol-lava-ball vol-lava-ball vol-lava-ball-lod0-jg -1
((vol-lava-ball-lod0-mg (meters 999999)))
:bounds (static-spherem 0 0 0 4)
)
;; definition for function vol-lava-ball-post
;; WARN: Return type mismatch int vs none.
(defbehavior vol-lava-ball-post vol-lava-ball ()
(+! (-> self y-velocity) (* (-> self y-acc) (seconds-per-frame)))
(set! (-> self y-velocity) (- (-> self y-velocity) (* 163840.0 (seconds-per-frame))))
(let ((f30-0 (+ (-> self root trans y) (-> self y-velocity)))
(f28-0 (-> self y-initial))
)
(if (and (< f30-0 f28-0) (< f28-0 (-> self root trans y)))
(sound-play "lava-splashdown")
)
(set! (-> self root trans y) (fmax f28-0 f30-0))
)
(set! (-> self y-velocity) (* 0.997 (seconds-per-frame) (-> self y-velocity)))
(let ((f0-12 (lerp-scale 1.0 2.0 (- (-> self root trans y) (-> self y-initial)) 0.0 20480.0)))
(set-vector! (-> self root scale) f0-12 f0-12 f0-12 1.0)
)
(let* ((gp-2
(vector-rotate-y! (new 'stack-no-clear 'vector) *x-vector* (* 182.04445 (rand-vu-float-range -180.0 180.0)))
)
(f0-21 (* 182.04445
(lerp-scale 0.0 1.0 (- (-> self root trans y) (-> self y-initial)) 16384.0 81920.0)
(rand-vu-float-range 100.0 250.0)
(seconds-per-frame)
)
)
(a2-5 (quaternion-vector-angle! (new 'stack-no-clear 'quaternion) gp-2 f0-21))
(gp-3 (-> self root quat))
)
(quaternion*! gp-3 gp-3 a2-5)
(quaternion-normalize! gp-3)
)
(spawn (-> self part) (-> self root trans))
(transform-post)
(none)
)
;; failed to figure out what this is:
(defstate idle (vol-lava-ball)
:virtual #t
:event (behavior ((proc process) (argc int) (message symbol) (block event-message-block))
(case message
(('trans)
(-> self root trans)
)
(('push)
(-> self root trans)
(let ((f0-0 (the-as float (-> block param 0))))
(set! (-> self y-acc) (* 2211840.0 f0-0))
)
)
(('done)
(go-virtual done)
)
(('touch)
(let ((gp-0 (as-type proc process-focusable)))
(when gp-0
(when (time-elapsed? (-> self no-collision-timer) (-> *TARGET-bank* hit-invulnerable-timeout))
(let ((s4-2
(vector-! (new 'stack-no-clear 'vector) (-> self root trans) (-> (the-as process-drawable gp-0) root trans))
)
)
(set! (-> s4-2 y) 0.0)
(vector-xz-normalize! s4-2 1.0)
(when (send-event
gp-0
'attack
(-> block param 0)
(static-attack-info
:mask (vehicle-impulse-factor)
((id (-> self attack-id))
(damage 2.0)
(vehicle-damage-factor 1.0)
(vehicle-impulse-factor 1.0)
(mode 'burnup)
(vector s4-2)
(shove-back (meters 8))
(shove-up (meters 10))
(control (if (focus-test? (the-as process-focusable gp-0) board)
1.0
0.0
)
)
)
)
)
(let ((v0-0 (the-as object (current-time))))
(set! (-> self no-collision-timer) (the-as time-frame v0-0))
v0-0
)
)
)
)
)
)
)
)
)
:enter (behavior ()
(set! (-> self no-collision-timer) 0)
(set! (-> self y-acc) 0.0)
(set! (-> self y-velocity) 0.0)
(logclear! (-> self mask) (process-mask actor-pause))
(ja-channel-set! 1)
(ja-no-eval :group! vol-lava-ball-idle-ja :num! zero)
)
:code sleep-code
:post vol-lava-ball-post
)
;; failed to figure out what this is:
(defstate done (vol-lava-ball)
:virtual #t
:trans (behavior ()
(if (>= (-> self y-initial) (-> self root trans y))
(go empty-state)
)
(seek! (-> self y-acc) 0.0 (* 204800.0 (seconds-per-frame)))
)
:code sleep-code
:post vol-lava-ball-post
)
;; definition for function vol-lava-ball-init-by-other
;; INFO: Used lq/sq
(defbehavior vol-lava-ball-init-by-other vol-lava-ball ((arg0 vector) (arg1 entity-actor))
(process-entity-set! self arg1)
(let ((s5-0 (new 'process 'collide-shape-moving self (collide-list-enum usually-hit-by-player))))
(set! (-> s5-0 dynam) (copy *standard-dynamics* 'process))
(set! (-> s5-0 reaction) cshape-reaction-default)
(set! (-> s5-0 no-reaction)
(the-as (function collide-shape-moving collide-query vector vector object) nothing)
)
(let ((v1-6 (new 'process 'collide-shape-prim-mesh s5-0 (the-as uint 0) (the-as uint 0))))
(set! (-> v1-6 prim-core collide-as) (collide-spec obstacle camera-blocker))
(set! (-> v1-6 prim-core action) (collide-action solid deadly))
(set! (-> v1-6 transform-index) 3)
(set-vector! (-> v1-6 local-sphere) 0.0 0.0 0.0 10240.0)
(set! (-> s5-0 total-prims) (the-as uint 1))
(set! (-> s5-0 root-prim) v1-6)
)
(set! (-> s5-0 nav-radius) (* 0.75 (-> s5-0 root-prim local-sphere w)))
(let ((v1-9 (-> s5-0 root-prim)))
(set! (-> s5-0 backup-collide-as) (-> v1-9 prim-core collide-as))
(set! (-> s5-0 backup-collide-with) (-> v1-9 prim-core collide-with))
)
(set! (-> self root) s5-0)
)
(vector-copy! (-> self root trans) arg0)
(initialize-skeleton
self
(the-as skeleton-group (art-group-get-by-name *level* "skel-vol-lava-ball" (the-as (pointer level) #f)))
(the-as pair 0)
)
(set! (-> self y-velocity) 0.0)
(set! (-> self y-initial) (-> self root trans y))
(let* ((v1-17 *game-info*)
(a0-15 (+ (-> v1-17 attack-id) 1))
)
(set! (-> v1-17 attack-id) a0-15)
(set! (-> self attack-id) a0-15)
)
(set! (-> self no-collision-timer) 0)
(set! (-> self part) (create-launch-control group-vol-lava-ball self))
(go-virtual idle)
)
;; definition of type vol-lava-ball-spout
(deftype vol-lava-ball-spout (process-drawable)
((sync sync-paused :inline)
(ball handle)
(ball-height float)
(sound-id sound-id)
(explode-time time-frame)
)
(:state-methods
idle
going-active
active
)
)
;; definition for method 3 of type vol-lava-ball-spout
(defmethod inspect ((this vol-lava-ball-spout))
(when (not this)
(set! this this)
(goto cfg-4)
)
(let ((t9-0 (method-of-type process-drawable inspect)))
(t9-0 this)
)
(format #t "~2Tsync: #<sync-paused @ #x~X>~%" (-> this sync))
(format #t "~2Tball: ~D~%" (-> this ball))
(format #t "~2Tball-height: ~f~%" (-> this ball-height))
(format #t "~2Tsound-id: ~D~%" (-> this sound-id))
(format #t "~2Texplode-time: ~D~%" (-> this explode-time))
(label cfg-4)
this
)
;; failed to figure out what this is:
(defstate idle (vol-lava-ball-spout)
:virtual #t
:trans (behavior ()
(if (< (vector-vector-xz-distance (target-pos 0) (-> self root trans)) 573440.0)
(go-virtual going-active)
)
)
:code sleep-code
)
;; failed to figure out what this is:
(defstate going-active (vol-lava-ball-spout)
:virtual #t
:code (behavior ()
(let ((gp-0 (get-timeframe-offset! (-> self sync) 0)))
(until (< gp-0 (current-time))
(suspend)
)
)
(go-virtual active)
)
)
;; failed to figure out what this is:
(defstate active (vol-lava-ball-spout)
:virtual #t
:enter (behavior ()
(logclear! (-> self mask) (process-mask actor-pause))
(set! (-> self ball)
(process->handle
(ppointer->process
(process-spawn vol-lava-ball (-> self root trans) (-> self entity) :name "vol-lava-ball" :to self)
)
)
)
(set! (-> self explode-time) (+ (get-timeframe-offset! (-> self sync) 0) (the int (-> self sync pause-in))))
(if (< (+ (current-time) (the-as time-frame (-> self sync period))) (-> self explode-time))
(set! (-> self explode-time) (- (-> self explode-time) (the-as int (-> self sync period))))
)
)
:exit (behavior ()
(sound-stop (-> self sound-id))
)
:trans (behavior ()
(when (< 655360.0 (vector-vector-xz-distance (target-pos 0) (-> self root trans)))
(send-event (handle->process (-> self ball)) 'done)
(go-virtual idle)
)
)
:code sleep-code
:post (behavior ()
(when (< 8192.0 (vector-vector-xz-distance (-> self root trans) (camera-pos)))
(when (< (-> self explode-time) (current-time))
(sound-play "geyser-start")
(set! (-> self explode-time) (+ (get-timeframe-offset! (-> self sync) 0) (the int (-> self sync pause-in))))
)
(let ((f30-1 (get-norm! (-> self sync) 0)))
(sound-play-by-name
(static-sound-name "geyser-loop")
(-> self sound-id)
(the int (* 1024.0 f30-1))
0
0
(sound-group)
#t
)
(let ((a1-5 (new 'stack-no-clear 'event-message-block)))
(set! (-> a1-5 from) (process->ppointer self))
(set! (-> a1-5 num-params) 0)
(set! (-> a1-5 message) 'trans)
(let ((v1-17 (the-as vector (send-event-function (handle->process (-> self ball)) a1-5))))
(when v1-17
(let ((f28-0 (lerp-scale 1.0 0.0 (- (-> v1-17 y) (-> self root trans y)) 0.0 (-> self ball-height))))
(send-event (handle->process (-> self ball)) 'push (* f28-0 f30-1))
(set! (-> *part-id-table* 4612 init-specs 2 initial-valuef) (* 10.0 f30-1 (- 1.0 f28-0)))
(set! (-> *part-id-table* 4612 init-specs 13 initial-valuef)
(+ (* 6826.6665 f30-1 f28-0) (* (/ (-> self ball-height) 500) f30-1 (- 1.0 f28-0)))
)
)
0
)
)
)
)
(let ((gp-2 (new 'stack-no-clear 'matrix)))
(matrix-copy! gp-2 *identity-matrix*)
(matrix<-quat gp-2 (-> self root quat))
(vector-copy! (-> gp-2 trans) (-> self root trans))
(spawn-from-mat (-> self part) gp-2)
)
)
)
)
;; definition for method 10 of type vol-lava-ball-spout
(defmethod deactivate ((this vol-lava-ball-spout))
"Make a process dead, clean it up, remove it from the active pool, and return to dead pool."
(sound-stop (-> this sound-id))
(call-parent-method this)
(none)
)
;; definition for method 11 of type vol-lava-ball-spout
(defmethod init-from-entity! ((this vol-lava-ball-spout) (arg0 entity-actor))
"Set up a newly created process from the entity that created it."
(set! (-> this root) (new 'process 'trsqv))
(process-drawable-from-entity! this arg0)
(let ((a1-3 (new 'stack-no-clear 'sync-info-params)))
(let ((v1-1 0))
(if #t
(set! v1-1 (logior v1-1 1))
)
(set! (-> a1-3 sync-type) 'sync-paused)
(set! (-> a1-3 sync-flags) (the-as sync-flags v1-1))
)
(set! (-> a1-3 entity) (-> this entity))
(set! (-> a1-3 period) (the-as uint 1800))
(set! (-> a1-3 percent) 0.0)
(set! (-> a1-3 pause-in) 0.7)
(set! (-> a1-3 pause-out) 0.05)
(initialize! (-> this sync) a1-3)
)
(set! (-> this ball-height) (res-lump-float (-> this entity) 'y-offset :default 81920.0))
(set! (-> this part) (create-launch-control group-lava-ball-spout this))
(set! (-> this ball) (the-as handle #f))
(set! (-> this sound-id) (new-sound-id))
(go (method-of-object this idle))
)
;; definition of type vol-collapsing-rock
(deftype vol-collapsing-rock (process-drawable)
()
(:state-methods
inactive
idle
(falling symbol)
)
)
;; definition for method 3 of type vol-collapsing-rock
(defmethod inspect ((this vol-collapsing-rock))
(when (not this)
(set! this this)
(goto cfg-4)
)
(let ((t9-0 (method-of-type process-drawable inspect)))
(t9-0 this)
)
(label cfg-4)
this
)
;; failed to figure out what this is:
(defskelgroup skel-vol-collapsing-rock vol-collapsing-rock vol-collapsing-rock-lod0-jg vol-collapsing-rock-idle-ja
((vol-collapsing-rock-lod0-mg (meters 999999)))
:bounds (static-spherem 0 20 -16 32)
:origin-joint-index 3
)
;; failed to figure out what this is:
(defstate inactive (vol-collapsing-rock)
:virtual #t
:enter (behavior ()
(ja-channel-push! 1 0)
(ja :group! vol-collapsing-rock-falling-ja :num! zero)
(transform-post)
)
:trans (behavior ()
(if (task-node-closed? (game-task-node volcano-darkeco-indax-1-introduction))
(go-virtual idle)
)
)
:code sleep-code
)
;; failed to figure out what this is:
(defstate idle (vol-collapsing-rock)
:virtual #t
:event (behavior ((proc process) (argc int) (message symbol) (block event-message-block))
(case message
(('trigger)
(go-virtual falling #f)
)
)
)
:trans (behavior ()
(gui-control-method-12
*gui-control*
self
(gui-channel art-load)
(gui-action queue)
"volcano-indax-1-res"
0
-99.0
(new 'static 'sound-id)
)
)
:code sleep-code
)
;; failed to figure out what this is:
(defstate falling (vol-collapsing-rock)
:virtual #t
:enter (behavior ((arg0 symbol))
(process-entity-status! self (entity-perm-status subtask-complete) #t)
)
:code (behavior ((arg0 symbol))
(cond
(arg0
(ja-no-eval :group! vol-collapsing-rock-falling-ja
:num! (identity (the float (+ (-> (the-as art-joint-anim vol-collapsing-rock-falling-ja) frames num-frames) -1)))
)
(ja-post)
(suspend)
(transform-post)
)
(else
(process-spawn scene-player :init scene-player-init "volcano-indax-1-res" #t #f :name "scene-player")
)
)
(sleep-code)
)
)
;; definition for method 11 of type vol-collapsing-rock
(defmethod init-from-entity! ((this vol-collapsing-rock) (arg0 entity-actor))
"Set up a newly created process from the entity that created it."
(let ((s4-0 (new 'process 'collide-shape this (collide-list-enum usually-hit-by-player))))
(set! (-> s4-0 penetrated-by) (penetrate))
(let ((s3-0 (new 'process 'collide-shape-prim-group s4-0 (the-as uint 3) 0)))
(set! (-> s4-0 total-prims) (the-as uint 4))
(set! (-> s3-0 prim-core collide-as) (collide-spec obstacle camera-blocker))
(set! (-> s3-0 prim-core action) (collide-action solid no-smack))
(set! (-> s3-0 transform-index) 3)
(set-vector! (-> s3-0 local-sphere) 0.0 81920.0 -65536.0 131072.0)
(set! (-> s4-0 root-prim) s3-0)
)
(let ((v1-8 (new 'process 'collide-shape-prim-mesh s4-0 (the-as uint 0) (the-as uint 1))))
(set! (-> v1-8 prim-core collide-as) (collide-spec obstacle camera-blocker))
(set! (-> v1-8 prim-core action) (collide-action solid no-smack))
(set! (-> v1-8 transform-index) 12)
(set-vector! (-> v1-8 local-sphere) -258.4576 55495.066 403.456 60998.043)
)
(let ((v1-10 (new 'process 'collide-shape-prim-mesh s4-0 (the-as uint 1) (the-as uint 0))))
(set! (-> v1-10 prim-core collide-as) (collide-spec obstacle))
(set! (-> v1-10 prim-core action) (collide-action solid))
(set! (-> v1-10 transform-index) 3)
(set-vector! (-> v1-10 local-sphere) -4071.424 21141.094 -3941.9905 49417.42)
)
(let ((v1-12 (new 'process 'collide-shape-prim-mesh s4-0 (the-as uint 2) (the-as uint 0))))
(set! (-> v1-12 prim-core collide-as) (collide-spec obstacle))
(set! (-> v1-12 prim-core action) (collide-action solid))
(set! (-> v1-12 transform-index) 3)
(set-vector! (-> v1-12 local-sphere) -963.3792 34254.027 -114976.36 62616.78)
)
(set! (-> s4-0 nav-radius) (* 0.75 (-> s4-0 root-prim local-sphere w)))
(let ((v1-15 (-> s4-0 root-prim)))
(set! (-> s4-0 backup-collide-as) (-> v1-15 prim-core collide-as))
(set! (-> s4-0 backup-collide-with) (-> v1-15 prim-core collide-with))
)
(set! (-> this root) s4-0)
)
(process-drawable-from-entity! this arg0)
(initialize-skeleton
this
(the-as skeleton-group (art-group-get-by-name *level* "skel-vol-collapsing-rock" (the-as (pointer level) #f)))
(the-as pair 0)
)
(if (or (and (-> this entity) (logtest? (-> this entity extra perm status) (entity-perm-status subtask-complete)))
(task-node-closed? (game-task-node volcano-darkeco-indax-1))
)
(go (method-of-object this falling) #t)
(go (method-of-object this inactive))
)
)