mirror of
https://github.com/open-goal/jak-project
synced 2026-06-17 23:21:41 -04:00
be74613332
* cleanup and bug fix * crashing * fix crash bug * fix tests
580 lines
20 KiB
Common Lisp
Vendored
Generated
580 lines
20 KiB
Common Lisp
Vendored
Generated
;;-*-Lisp-*-
|
|
(in-package goal)
|
|
|
|
;; failed to figure out what this is:
|
|
(defskelgroup *lrocklrg-sg* lrocklrg
|
|
0
|
|
2
|
|
((1 (meters 999999)))
|
|
:bounds (static-spherem 0 0 0 5)
|
|
:longest-edge (meters 11)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defpartgroup group-beach-rocks-start
|
|
:id 553
|
|
:duration 900
|
|
:flags (use-local-clock)
|
|
:bounds (static-bspherem 0 0 0 64)
|
|
:parts
|
|
((sp-item 2340 :period 75 :length 10)
|
|
(sp-item 2341 :period 75 :length 10)
|
|
(sp-item 2289 :period 75 :length 10)
|
|
)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defpart 2341
|
|
:init-specs
|
|
((sp-tex spt-texture (new 'static 'texture-id :index #x1d :page #x2))
|
|
(sp-rnd-flt spt-num 3.0 6.0 1.0)
|
|
(sp-rnd-flt spt-y (meters 0) (meters -4) 1.0)
|
|
(sp-rnd-flt spt-scale-x (meters 0.25) (meters 1) 1.0)
|
|
(sp-rnd-flt spt-rot-z (degrees 0.0) (degrees 360.0) 1.0)
|
|
(sp-rnd-flt spt-scale-y (meters 0.25) (meters 1) 1.0)
|
|
(sp-rnd-flt spt-r 96.0 64.0 1.0)
|
|
(sp-rnd-flt spt-g 96.0 64.0 1.0)
|
|
(sp-rnd-flt spt-b 0.0 32.0 1.0)
|
|
(sp-rnd-flt spt-a 64.0 64.0 1.0)
|
|
(sp-rnd-flt spt-vel-y (meters 0.053333335) (meters 0.053333335) 1.0)
|
|
(sp-flt spt-scalevel-x (meters 0))
|
|
(sp-rnd-flt spt-rotvel-z (degrees -1.2) (degrees 2.4) 1.0)
|
|
(sp-copy-from-other spt-scalevel-y -4)
|
|
(sp-rnd-flt spt-accel-y -11.605333 -8.874666 1.0)
|
|
(sp-flt spt-friction 0.97)
|
|
(sp-int spt-timer 1500)
|
|
(sp-cpuinfo-flags bit2 bit12 bit14)
|
|
(sp-rnd-flt spt-conerot-x (degrees 80.0) (degrees 200.00002) 1.0)
|
|
(sp-rnd-flt spt-conerot-y (degrees 0.0) (degrees 360.0) 1.0)
|
|
(sp-rnd-flt spt-conerot-radius (meters 0) (meters 5) 1.0)
|
|
)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defpart 2340
|
|
:init-specs
|
|
((sp-tex spt-texture (new 'static 'texture-id :index #x17 :page #x2))
|
|
(sp-rnd-flt spt-num 8.0 16.0 1.0)
|
|
(sp-rnd-flt spt-y (meters 0) (meters -4) 1.0)
|
|
(sp-rnd-flt spt-scale-x (meters 0.5) (meters 1) 1.0)
|
|
(sp-rnd-flt spt-rot-z (degrees 0.0) (degrees 360.0) 1.0)
|
|
(sp-rnd-flt spt-scale-y (meters 0.5) (meters 1) 1.0)
|
|
(sp-rnd-flt spt-r 64.0 128.0 1.0)
|
|
(sp-rnd-flt spt-g 128.0 128.0 1.0)
|
|
(sp-rnd-flt spt-b 0.0 64.0 1.0)
|
|
(sp-rnd-flt spt-a 64.0 64.0 1.0)
|
|
(sp-rnd-flt spt-vel-y (meters 0.053333335) (meters 0.053333335) 1.0)
|
|
(sp-flt spt-scalevel-x (meters 0))
|
|
(sp-rnd-flt spt-rotvel-z (degrees -1.2) (degrees 2.4) 1.0)
|
|
(sp-copy-from-other spt-scalevel-y -4)
|
|
(sp-flt spt-fade-a -0.08533333)
|
|
(sp-rnd-flt spt-accel-y -3.4133334 -8.874666 1.0)
|
|
(sp-flt spt-friction 0.93)
|
|
(sp-int spt-timer 1500)
|
|
(sp-cpuinfo-flags bit2 bit12 bit14)
|
|
(sp-rnd-flt spt-conerot-x (degrees 80.0) (degrees 200.00002) 1.0)
|
|
(sp-rnd-flt spt-conerot-y (degrees 0.0) (degrees 360.0) 1.0)
|
|
(sp-rnd-flt spt-conerot-radius (meters 0) (meters 5) 1.0)
|
|
)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defpart 2289
|
|
:init-specs
|
|
((sp-tex spt-texture (new 'static 'texture-id :page #x2))
|
|
(sp-rnd-flt spt-num 1.0 3.0 1.0)
|
|
(sp-rnd-flt spt-y (meters 0) (meters -4) 1.0)
|
|
(sp-rnd-flt spt-scale-x (meters 6) (meters 2) 1.0)
|
|
(sp-rnd-flt spt-rot-z (degrees 0.0) (degrees 360.0) 1.0)
|
|
(sp-copy-from-other spt-scale-y -4)
|
|
(sp-rnd-flt spt-r 192.0 64.0 1.0)
|
|
(sp-rnd-flt spt-g 128.0 64.0 1.0)
|
|
(sp-flt spt-b 64.0)
|
|
(sp-rnd-flt spt-a 16.0 32.0 1.0)
|
|
(sp-rnd-flt spt-vel-y (meters 0.053333335) (meters 0.053333335) 1.0)
|
|
(sp-flt spt-scalevel-x (meters 0.04))
|
|
(sp-rnd-flt spt-rotvel-z (degrees -0.2) (degrees 0.4) 1.0)
|
|
(sp-copy-from-other spt-scalevel-y -4)
|
|
(sp-flt spt-fade-r -0.042666666)
|
|
(sp-flt spt-fade-g -0.061333332)
|
|
(sp-flt spt-fade-b -0.042666666)
|
|
(sp-flt spt-fade-a -0.032)
|
|
(sp-rnd-flt spt-accel-y -2.048 -7.5093336 1.0)
|
|
(sp-flt spt-friction 0.95)
|
|
(sp-int spt-timer 1500)
|
|
(sp-cpuinfo-flags bit2 bit12 bit14)
|
|
(sp-rnd-flt spt-conerot-x (degrees 0.0) (degrees 360.0) 1.0)
|
|
(sp-rnd-flt spt-conerot-y (degrees 0.0) (degrees 360.0) 1.0)
|
|
(sp-rnd-flt spt-conerot-radius (meters 0) (meters 6) 1.0)
|
|
)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defpartgroup group-beach-rocks-fall
|
|
:id 554
|
|
:flags (use-local-clock)
|
|
:bounds (static-bspherem 0 0 0 8)
|
|
:parts
|
|
((sp-item 2290 :period 15 :length 5))
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defpart 2290
|
|
:init-specs
|
|
((sp-tex spt-texture (new 'static 'texture-id :page #x2))
|
|
(sp-rnd-flt spt-num 3.0 3.0 1.0)
|
|
(sp-rnd-flt spt-y (meters 0) (meters -4) 1.0)
|
|
(sp-rnd-flt spt-scale-x (meters 7) (meters 9) 1.0)
|
|
(sp-rnd-flt spt-rot-z (degrees 0.0) (degrees 360.0) 1.0)
|
|
(sp-copy-from-other spt-scale-y -4)
|
|
(sp-rnd-flt spt-r 192.0 64.0 1.0)
|
|
(sp-rnd-flt spt-g 128.0 64.0 1.0)
|
|
(sp-flt spt-b 64.0)
|
|
(sp-rnd-flt spt-a 16.0 48.0 1.0)
|
|
(sp-rnd-flt spt-vel-y (meters 0.013333334) (meters 0.006666667) 1.0)
|
|
(sp-flt spt-scalevel-x (meters 0.026666667))
|
|
(sp-rnd-flt spt-rotvel-z (degrees -0.2) (degrees 0.4) 1.0)
|
|
(sp-copy-from-other spt-scalevel-y -4)
|
|
(sp-flt spt-fade-r -0.10666667)
|
|
(sp-flt spt-fade-g -0.15333334)
|
|
(sp-flt spt-fade-b -0.10666667)
|
|
(sp-flt spt-fade-a -0.10666667)
|
|
(sp-rnd-flt spt-accel-y -2.048 -7.5093336 1.0)
|
|
(sp-flt spt-friction 0.98)
|
|
(sp-int spt-timer 1500)
|
|
(sp-cpuinfo-flags bit2 bit12 bit14)
|
|
(sp-rnd-flt spt-conerot-x (degrees 0.0) (degrees 360.0) 1.0)
|
|
(sp-rnd-flt spt-conerot-y (degrees 0.0) (degrees 360.0) 1.0)
|
|
(sp-rnd-flt spt-conerot-radius (meters 0) (meters 2) 1.0)
|
|
)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defpartgroup group-beach-rocks-land
|
|
:id 555
|
|
:duration 900
|
|
:flags (use-local-clock)
|
|
:bounds (static-bspherem 0 0 0 64)
|
|
:parts
|
|
((sp-item 2342 :period 900 :length 40)
|
|
(sp-item 2343 :period 900 :length 40)
|
|
(sp-item 2291 :period 900 :length 40)
|
|
)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defpart 2343
|
|
:init-specs
|
|
((sp-tex spt-texture (new 'static 'texture-id :index #xf :page #x2))
|
|
(sp-flt spt-num 32.0)
|
|
(sp-flt spt-y (meters -3))
|
|
(sp-rnd-flt spt-scale-x (meters 0.4) (meters 0.3) 1.0)
|
|
(sp-rnd-flt spt-rot-z (degrees 0.0) (degrees 180.0) 1.0)
|
|
(sp-rnd-flt spt-scale-y (meters 32) (meters 10) 1.0)
|
|
(sp-rnd-flt spt-r 192.0 64.0 1.0)
|
|
(sp-rnd-flt spt-g 128.0 64.0 1.0)
|
|
(sp-flt spt-b 64.0)
|
|
(sp-rnd-flt spt-a 32.0 64.0 1.0)
|
|
(sp-flt spt-scalevel-y (meters 3.4133334))
|
|
(sp-flt spt-fade-r -0.10666667)
|
|
(sp-flt spt-fade-g -0.15333334)
|
|
(sp-flt spt-fade-b -0.10666667)
|
|
(sp-flt spt-fade-a -3.2)
|
|
(sp-int spt-timer 30)
|
|
(sp-cpuinfo-flags bit2 bit3 bit14)
|
|
)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defpart 2342
|
|
:init-specs
|
|
((sp-tex spt-texture (new 'static 'texture-id :index #x17 :page #x2))
|
|
(sp-rnd-flt spt-num 64.0 64.0 1.0)
|
|
(sp-rnd-flt spt-y (meters 0) (meters -4) 1.0)
|
|
(sp-rnd-flt spt-scale-x (meters 0.5) (meters 1) 1.0)
|
|
(sp-rnd-flt spt-rot-z (degrees 0.0) (degrees 360.0) 1.0)
|
|
(sp-rnd-flt spt-scale-y (meters 0.5) (meters 1) 1.0)
|
|
(sp-rnd-flt spt-r 128.0 64.0 1.0)
|
|
(sp-rnd-flt spt-g 192.0 64.0 1.0)
|
|
(sp-rnd-flt spt-b 0.0 64.0 1.0)
|
|
(sp-rnd-flt spt-a 64.0 64.0 1.0)
|
|
(sp-rnd-flt spt-vel-y (meters 0.10666667) (meters 0.21333334) 1.0)
|
|
(sp-flt spt-scalevel-x (meters 0))
|
|
(sp-rnd-flt spt-rotvel-z (degrees -1.2) (degrees 2.4) 1.0)
|
|
(sp-copy-from-other spt-scalevel-y -4)
|
|
(sp-flt spt-fade-a -0.08533333)
|
|
(sp-rnd-flt spt-accel-y -3.4133334 -8.874666 1.0)
|
|
(sp-flt spt-friction 0.95)
|
|
(sp-int spt-timer 1500)
|
|
(sp-cpuinfo-flags bit2 bit12 bit14)
|
|
(sp-rnd-flt spt-conerot-x (degrees 60.0) (degrees 20.0) 1.0)
|
|
(sp-rnd-flt spt-conerot-y (degrees 0.0) (degrees 360.0) 1.0)
|
|
(sp-rnd-flt spt-conerot-radius (meters 0) (meters 5) 1.0)
|
|
)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defpart 2291
|
|
:init-specs
|
|
((sp-tex spt-texture (new 'static 'texture-id :page #x2))
|
|
(sp-rnd-flt spt-num 32.0 32.0 1.0)
|
|
(sp-rnd-flt spt-y (meters 0) (meters -4) 1.0)
|
|
(sp-rnd-flt spt-scale-x (meters 8) (meters 8) 1.0)
|
|
(sp-rnd-flt spt-rot-z (degrees 0.0) (degrees 360.0) 1.0)
|
|
(sp-copy-from-other spt-scale-y -4)
|
|
(sp-rnd-flt spt-r 192.0 64.0 1.0)
|
|
(sp-rnd-flt spt-g 128.0 64.0 1.0)
|
|
(sp-flt spt-b 64.0)
|
|
(sp-rnd-flt spt-a 16.0 48.0 1.0)
|
|
(sp-rnd-flt spt-vel-y (meters 0.10666667) (meters 0.32) 1.0)
|
|
(sp-rnd-flt spt-scalevel-x (meters 0.033333335) (meters 0.02) 1.0)
|
|
(sp-rnd-flt spt-rotvel-z (degrees -0.2) (degrees 0.4) 1.0)
|
|
(sp-copy-from-other spt-scalevel-y -4)
|
|
(sp-flt spt-fade-r -0.10666667)
|
|
(sp-flt spt-fade-g -0.15333334)
|
|
(sp-flt spt-fade-b -0.10666667)
|
|
(sp-flt spt-fade-a -0.10666667)
|
|
(sp-rnd-flt spt-accel-y -2.048 -7.5093336 1.0)
|
|
(sp-flt spt-friction 0.85)
|
|
(sp-int spt-timer 1500)
|
|
(sp-cpuinfo-flags bit2 bit12 bit14)
|
|
(sp-rnd-flt spt-conerot-x (degrees 0.0) (degrees 100.00001) 1.0)
|
|
(sp-rnd-flt spt-conerot-y (degrees 0.0) (degrees 360.0) 1.0)
|
|
(sp-rnd-flt spt-conerot-radius (meters 0) (meters 2) 1.0)
|
|
)
|
|
)
|
|
|
|
;; definition of type beach-rock
|
|
(deftype beach-rock (process-drawable)
|
|
((root-override collide-shape-moving :offset 112)
|
|
(trigger basic :offset-assert 176)
|
|
(movie-start time-frame :offset-assert 184)
|
|
(part-falling sparticle-launch-control :offset-assert 192)
|
|
(part-landing sparticle-launch-control :offset-assert 196)
|
|
(prev-frame float :offset-assert 200)
|
|
)
|
|
:heap-base #x60
|
|
:method-count-assert 24
|
|
:size-assert #xcc
|
|
:flag-assert #x18006000cc
|
|
(:methods
|
|
(idle () _type_ :state 20)
|
|
(loading () _type_ :state 21)
|
|
(falling () _type_ :state 22)
|
|
(fallen () _type_ :state 23)
|
|
)
|
|
)
|
|
|
|
;; definition for method 3 of type beach-rock
|
|
(defmethod inspect beach-rock ((obj beach-rock))
|
|
(let ((t9-0 (method-of-type process-drawable inspect)))
|
|
(t9-0 obj)
|
|
)
|
|
(format #t "~T~Ttrigger: ~A~%" (-> obj trigger))
|
|
(format #t "~T~Tmovie-start: ~D~%" (-> obj movie-start))
|
|
(format #t "~T~Tpart-falling: ~A~%" (-> obj part-falling))
|
|
(format #t "~T~Tpart-landing: ~A~%" (-> obj part-landing))
|
|
(format #t "~T~Tprev-frame: ~f~%" (-> obj prev-frame))
|
|
obj
|
|
)
|
|
|
|
;; definition for method 7 of type beach-rock
|
|
;; INFO: Return type mismatch none vs beach-rock.
|
|
(defmethod relocate beach-rock ((obj beach-rock) (arg0 int))
|
|
(if (nonzero? (-> obj part-falling))
|
|
(set! (-> obj part-falling) (the-as sparticle-launch-control (+ (the-as int (-> obj part-falling)) arg0)))
|
|
)
|
|
(if (nonzero? (-> obj part-landing))
|
|
(set! (-> obj part-landing) (the-as sparticle-launch-control (+ (the-as int (-> obj part-landing)) arg0)))
|
|
)
|
|
(the-as beach-rock ((the-as (function process-drawable int none) (find-parent-method beach-rock 7)) obj arg0))
|
|
)
|
|
|
|
;; definition for method 10 of type beach-rock
|
|
(defmethod deactivate beach-rock ((obj beach-rock))
|
|
(if (nonzero? (-> obj part-falling))
|
|
(kill-and-free-particles (-> obj part-falling))
|
|
)
|
|
(if (nonzero? (-> obj part-landing))
|
|
(kill-and-free-particles (-> obj part-landing))
|
|
)
|
|
((the-as (function process-drawable none) (find-parent-method beach-rock 10)) obj)
|
|
(none)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defstate idle (beach-rock)
|
|
:virtual #t
|
|
:event
|
|
(behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block))
|
|
(case arg2
|
|
(('trigger)
|
|
(set! (-> self trigger) #t)
|
|
(go-virtual falling)
|
|
)
|
|
(('loading)
|
|
(go-virtual loading)
|
|
)
|
|
)
|
|
)
|
|
:code
|
|
(behavior ()
|
|
(if (-> self trigger)
|
|
(go-virtual falling)
|
|
)
|
|
(ja-channel-set! 0)
|
|
(ja-post)
|
|
(while #t
|
|
(logior! (-> self mask) (process-mask sleep))
|
|
(suspend)
|
|
)
|
|
(none)
|
|
)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defstate loading (beach-rock)
|
|
:virtual #t
|
|
:event
|
|
(-> (the-as state (method-of-type beach-rock idle)) event)
|
|
:code
|
|
(behavior ()
|
|
(while #t
|
|
(spool-push *art-control* "lrocklrg-falling" 0 self -1.0)
|
|
(suspend)
|
|
)
|
|
(none)
|
|
)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defstate falling (beach-rock)
|
|
:virtual #t
|
|
:trans
|
|
(behavior ()
|
|
(set! (-> self draw bounds w) 819200.0)
|
|
(let ((f30-0 (ja-aframe-num 0)))
|
|
(when (and (< -50.0 f30-0) (< f30-0 158.0))
|
|
(let ((gp-0 (new 'stack-no-clear 'vector)))
|
|
(set! (-> gp-0 quad) (-> self root-override trans quad))
|
|
(spawn (-> self part) gp-0)
|
|
(set! (-> gp-0 x) (+ 122880.0 (-> gp-0 x)))
|
|
(set! (-> gp-0 z) (+ 102400.0 (-> gp-0 z)))
|
|
(spawn (-> self part) gp-0)
|
|
)
|
|
)
|
|
(if (and (< 200.0 f30-0) (< f30-0 275.0))
|
|
(spawn (-> self part-falling) (vector<-cspace! (new 'stack-no-clear 'vector) (-> self node-list data 3)))
|
|
)
|
|
(if (and (< 270.0 f30-0) (< f30-0 333.0))
|
|
(spawn (-> self part-falling) (vector<-cspace! (new 'stack-no-clear 'vector) (-> self node-list data 4)))
|
|
)
|
|
(if (and (< (-> self prev-frame) 333.0) (>= f30-0 333.0))
|
|
(spawn (-> self part-landing) (vector<-cspace! (new 'stack-no-clear 'vector) (-> self node-list data 4)))
|
|
)
|
|
(if (and (< 169.0 f30-0) (< f30-0 202.0))
|
|
(spawn (-> self part-falling) (vector<-cspace! (new 'stack-no-clear 'vector) (-> self node-list data 5)))
|
|
)
|
|
(if (and (< 240.0 f30-0) (< f30-0 270.0))
|
|
(spawn (-> self part-falling) (vector<-cspace! (new 'stack-no-clear 'vector) (-> self node-list data 6)))
|
|
)
|
|
(set! (-> self prev-frame) f30-0)
|
|
)
|
|
(none)
|
|
)
|
|
:code
|
|
(behavior ()
|
|
(local-vars (v1-3 symbol) (v1-49 symbol))
|
|
(until v1-3
|
|
(spool-push *art-control* "lrocklrg-falling" 0 self -1.0)
|
|
(suspend)
|
|
(set! v1-3 (or (not *target*) (process-grab? *target*)))
|
|
)
|
|
(logclear! (-> self draw status) (draw-status hidden))
|
|
(ja-channel-set! 1)
|
|
(let ((gp-0 (-> self skel root-channel 0)))
|
|
(joint-control-channel-group-eval!
|
|
gp-0
|
|
(the-as art-joint-anim (-> self draw art-group data 2))
|
|
num-func-identity
|
|
)
|
|
(set! (-> gp-0 frame-num) 0.0)
|
|
)
|
|
(let* ((gp-1 (get-process *default-dead-pool* othercam #x4000))
|
|
(gp-2 (ppointer->handle (when gp-1
|
|
(let ((t9-5 (method-of-type othercam activate)))
|
|
(t9-5 (the-as othercam gp-1) self 'othercam (the-as pointer #x70004000))
|
|
)
|
|
(run-now-in-process gp-1 othercam-init-by-other self 7 #f #t)
|
|
(-> gp-1 ppointer)
|
|
)
|
|
)
|
|
)
|
|
(s5-0 (get-process *default-dead-pool* fuel-cell #x4000))
|
|
(s5-1
|
|
(ppointer->handle
|
|
(when s5-0
|
|
(let ((t9-8 (method-of-type fuel-cell activate)))
|
|
(t9-8 (the-as fuel-cell s5-0) self 'fuel-cell (the-as pointer #x70004000))
|
|
)
|
|
(run-now-in-process s5-0 fuel-cell-init-as-clone (process->handle self) (-> self entity extra perm task))
|
|
(-> s5-0 ppointer)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
(close-specific-task! (-> self entity extra perm task) (task-status need-reminder))
|
|
(set! (-> self movie-start) (-> *display* base-frame-counter))
|
|
(spool-push *art-control* "lrocklrg-falling" 0 self -1.0)
|
|
(ja-play-spooled-anim
|
|
(new 'static 'spool-anim
|
|
:name "lrocklrg-falling"
|
|
:index 4
|
|
:parts 4
|
|
:command-list
|
|
'((-150 blackout 100) (-116 blackout 0))
|
|
)
|
|
(the-as art-joint-anim (-> self draw art-group data 2))
|
|
(the-as art-joint-anim (-> self draw art-group data 3))
|
|
(the-as (function process-drawable symbol) false-func)
|
|
)
|
|
(process-entity-status! self (entity-perm-status complete) #t)
|
|
(cond
|
|
((handle->process gp-2)
|
|
(deactivate (-> gp-2 process 0))
|
|
)
|
|
(else
|
|
)
|
|
)
|
|
(let ((a0-28 (handle->process s5-1)))
|
|
(if a0-28
|
|
(send-event a0-28 'stop-cloning)
|
|
)
|
|
)
|
|
)
|
|
(until v1-49
|
|
(suspend)
|
|
(set! v1-49 (or (not *target*) (process-release? *target*)))
|
|
)
|
|
(set! (-> self draw bounds w) 20480.0)
|
|
(go-virtual fallen)
|
|
(none)
|
|
)
|
|
:post
|
|
(the-as (function none :behavior beach-rock) transform-post)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defstate fallen (beach-rock)
|
|
:virtual #t
|
|
:code
|
|
(behavior ()
|
|
(level-hint-spawn
|
|
(game-text-id beach-seagulls-avalanche)
|
|
"sksp0025"
|
|
(the-as entity #f)
|
|
*entity-pool*
|
|
(game-task none)
|
|
)
|
|
(let ((v1-2 (-> self skel root-channel 0)))
|
|
(set! (-> v1-2 frame-group) (the-as art-joint-anim (-> self draw art-group data 3)))
|
|
)
|
|
(TODO-RENAME-9 (-> self align))
|
|
(let ((v1-6 (first-transform (-> self align))))
|
|
(set! (-> self root-override trans quad) (-> self entity extra trans quad))
|
|
(+! (-> self root-override trans y) (-> v1-6 trans y))
|
|
)
|
|
(suspend)
|
|
(update-transforms! (-> self root-override))
|
|
(logior! (-> self mask) (process-mask sleep))
|
|
(suspend)
|
|
0
|
|
(none)
|
|
)
|
|
:post
|
|
(the-as (function none :behavior beach-rock) ja-post)
|
|
)
|
|
|
|
;; definition for method 11 of type beach-rock
|
|
;; INFO: Return type mismatch object vs none.
|
|
(defmethod init-from-entity! beach-rock ((obj beach-rock) (arg0 entity-actor))
|
|
(set! (-> obj link) (new 'process 'actor-link-info obj))
|
|
(set! (-> obj align) (new 'process 'align-control obj))
|
|
(set! (-> obj trigger) #f)
|
|
(logclear! (-> obj mask) (process-mask actor-pause))
|
|
(set! (-> obj part) (create-launch-control (-> *part-group-id-table* 553) obj))
|
|
(set! (-> obj part-falling) (create-launch-control (-> *part-group-id-table* 554) obj))
|
|
(set! (-> obj part-landing) (create-launch-control (-> *part-group-id-table* 555) obj))
|
|
(set! (-> obj prev-frame) -1000.0)
|
|
(set! (-> obj draw origin-joint-index) (the-as uint 4))
|
|
(case (get-task-status (-> obj entity extra perm task))
|
|
(((task-status invalid))
|
|
(go (method-of-object obj fallen))
|
|
)
|
|
(((task-status need-resolution))
|
|
(let ((s5-0 (new 'stack-no-clear 'vector)))
|
|
(ja-post)
|
|
(vector<-cspace! s5-0 (-> obj node-list data 8))
|
|
(birth-pickup-at-point
|
|
s5-0
|
|
(pickup-type fuel-cell)
|
|
(the float (the-as int (-> obj entity extra perm task)))
|
|
#f
|
|
obj
|
|
(the-as fact-info #f)
|
|
)
|
|
)
|
|
(go (method-of-object obj fallen))
|
|
)
|
|
(else
|
|
(go (method-of-object obj idle))
|
|
)
|
|
)
|
|
(none)
|
|
)
|
|
|
|
;; definition of type lrocklrg
|
|
(deftype lrocklrg (beach-rock)
|
|
()
|
|
:heap-base #x60
|
|
:method-count-assert 24
|
|
:size-assert #xcc
|
|
:flag-assert #x18006000cc
|
|
)
|
|
|
|
;; definition for method 3 of type lrocklrg
|
|
(defmethod inspect lrocklrg ((obj lrocklrg))
|
|
(let ((t9-0 (method-of-type beach-rock inspect)))
|
|
(t9-0 obj)
|
|
)
|
|
obj
|
|
)
|
|
|
|
;; definition for method 11 of type lrocklrg
|
|
(defmethod init-from-entity! lrocklrg ((obj lrocklrg) (arg0 entity-actor))
|
|
(stack-size-set! (-> obj main-thread) 512)
|
|
(let ((s4-0 (new 'process 'collide-shape-moving obj (collide-list-enum hit-by-player))))
|
|
(set! (-> s4-0 dynam) (copy *standard-dynamics* 'process))
|
|
(set! (-> s4-0 reaction) default-collision-reaction)
|
|
(set! (-> s4-0 no-reaction)
|
|
(the-as (function collide-shape-moving collide-shape-intersect vector vector none) nothing)
|
|
)
|
|
(let ((s3-0 (new 'process 'collide-shape-prim-mesh s4-0 (the-as uint 0) (the-as uint 0))))
|
|
(set! (-> s3-0 prim-core collide-as) (collide-kind background))
|
|
(set! (-> s3-0 collide-with) (collide-kind target))
|
|
(set! (-> s3-0 prim-core action) (collide-action solid))
|
|
(set! (-> s3-0 prim-core offense) (collide-offense indestructible))
|
|
(set! (-> s3-0 transform-index) 4)
|
|
(set-vector! (-> s3-0 local-sphere) 0.0 0.0 0.0 24576.0)
|
|
(set-root-prim! s4-0 s3-0)
|
|
)
|
|
(set! (-> s4-0 nav-radius) (* 0.75 (-> s4-0 root-prim local-sphere w)))
|
|
(backup-collide-with-as s4-0)
|
|
(set! (-> obj root-override) s4-0)
|
|
)
|
|
(process-drawable-from-entity! obj arg0)
|
|
(initialize-skeleton obj *lrocklrg-sg* '())
|
|
((method-of-type beach-rock init-from-entity!) obj arg0)
|
|
(none)
|
|
)
|