mirror of
https://github.com/open-goal/jak-project
synced 2026-08-18 05:48:28 -04:00
a96396e140
* temp * add enums
283 lines
9.1 KiB
Common Lisp
Vendored
Generated
283 lines
9.1 KiB
Common Lisp
Vendored
Generated
;;-*-Lisp-*-
|
|
(in-package goal)
|
|
|
|
;; definition of type silostep
|
|
(deftype silostep (process-drawable)
|
|
((anim-limit float :offset-assert 176)
|
|
(cam-tracker uint64 :offset-assert 184)
|
|
)
|
|
:heap-base #x50
|
|
:method-count-assert 20
|
|
:size-assert #xc0
|
|
:flag-assert #x14005000c0
|
|
(:states
|
|
silostep-camera
|
|
silostep-idle
|
|
(silostep-rise symbol)
|
|
)
|
|
)
|
|
|
|
;; definition for method 3 of type silostep
|
|
(defmethod inspect silostep ((obj silostep))
|
|
(let ((t9-0 (method-of-type process-drawable inspect)))
|
|
(t9-0 obj)
|
|
)
|
|
(format #t "~T~Tanim-limit: ~f~%" (-> obj anim-limit))
|
|
(format #t "~T~Tcam-tracker: ~D~%" (-> obj cam-tracker))
|
|
obj
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defskelgroup *silostep-sg* silostep
|
|
0
|
|
2
|
|
((1 (meters 999999)))
|
|
:bounds (static-spherem 0 2 0 8)
|
|
:longest-edge (meters 0)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defstate silostep-idle (silostep)
|
|
:event
|
|
(behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block))
|
|
(case arg2
|
|
(('trigger)
|
|
(go silostep-camera)
|
|
)
|
|
(('trigger-rise)
|
|
(go silostep-rise #f)
|
|
)
|
|
)
|
|
)
|
|
:code
|
|
(behavior ()
|
|
(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)
|
|
)
|
|
(transform-post)
|
|
(while #t
|
|
(suspend)
|
|
)
|
|
(none)
|
|
)
|
|
:post
|
|
(the-as (function none :behavior silostep) ja-post)
|
|
)
|
|
|
|
;; definition for function misty-camera-view
|
|
;; INFO: Return type mismatch int vs handle.
|
|
(defbehavior misty-camera-view silostep ()
|
|
(let* ((gp-0 (get-process *default-dead-pool* camera-tracker #x4000))
|
|
(v1-1 (when gp-0
|
|
(let ((t9-1 (method-of-type camera-tracker activate)))
|
|
(t9-1 (the-as camera-tracker gp-0) self 'camera-tracker (the-as pointer #x70004000))
|
|
)
|
|
(run-now-in-process
|
|
gp-0
|
|
camera-tracker-init
|
|
(lambda :behavior camera-tracker
|
|
()
|
|
(while (not (process-grab? *target*))
|
|
(suspend)
|
|
)
|
|
(camera-change-to "camera-160" 150 #f)
|
|
(let ((gp-0 (-> *display* base-frame-counter)))
|
|
(until (>= (- (-> *display* base-frame-counter) gp-0) 900)
|
|
(suspend)
|
|
)
|
|
)
|
|
(while (not (process-release? (handle->process (-> self grab-target))))
|
|
(suspend)
|
|
)
|
|
(camera-change-to (the-as string 'base) 150 #f)
|
|
(none)
|
|
)
|
|
)
|
|
(-> gp-0 ppointer)
|
|
)
|
|
)
|
|
(v0-3 (logior (new 'static 'handle :pid (-> v1-1 0 pid)) (new 'static 'handle :process v1-1)))
|
|
)
|
|
(set! (-> self cam-tracker) (the-as uint v0-3))
|
|
(the-as handle v0-3)
|
|
)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defstate silostep-camera (silostep)
|
|
:code
|
|
(behavior ()
|
|
(misty-camera-view)
|
|
(let* ((gp-0 (get-task-control (game-task misty-warehouse)))
|
|
(v1-1 (get-reminder gp-0 0))
|
|
)
|
|
(save-reminder gp-0 (logior v1-1 2) 0)
|
|
)
|
|
(set! (-> self state-time) (-> *display* base-frame-counter))
|
|
(let ((gp-1 (-> *display* base-frame-counter)))
|
|
(until (>= (- (-> *display* base-frame-counter) gp-1) 300)
|
|
(suspend)
|
|
)
|
|
)
|
|
(sound-play-by-name (static-sound-name "arena-steps") (new-sound-id) 1024 0 0 1 #t)
|
|
(send-to-all-after (-> self link) 'trigger-rise)
|
|
(go silostep-rise #f)
|
|
(none)
|
|
)
|
|
:post
|
|
(the-as (function none :behavior silostep) ja-post)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defstate silostep-rise (silostep)
|
|
:code
|
|
(behavior ((arg0 symbol))
|
|
(process-entity-status! self (entity-perm-status complete) #t)
|
|
(when (not arg0)
|
|
(let ((a0-2 (-> self skel root-channel 0)))
|
|
(set! (-> a0-2 frame-group) (the-as art-joint-anim (-> self draw art-group data 2)))
|
|
(set! (-> a0-2 param 0) (-> self anim-limit))
|
|
(set! (-> a0-2 param 1) 1.0)
|
|
(set! (-> a0-2 frame-num) 0.0)
|
|
(joint-control-channel-group! a0-2 (the-as art-joint-anim (-> self draw art-group data 2)) num-func-seek!)
|
|
)
|
|
(until (ja-done? 0)
|
|
(rider-trans)
|
|
(rider-post)
|
|
(suspend)
|
|
(let ((a0-3 (-> self skel root-channel 0)))
|
|
(set! (-> a0-3 param 0) (-> self anim-limit))
|
|
(set! (-> a0-3 param 1) 1.0)
|
|
(joint-control-channel-group-eval! a0-3 (the-as art-joint-anim #f) num-func-seek!)
|
|
)
|
|
)
|
|
)
|
|
(let ((gp-1 (-> self skel root-channel 0)))
|
|
(joint-control-channel-group-eval!
|
|
gp-1
|
|
(the-as art-joint-anim (-> self draw art-group data 2))
|
|
num-func-identity
|
|
)
|
|
(set! (-> gp-1 frame-num) (-> self anim-limit))
|
|
)
|
|
(rider-post)
|
|
(while #t
|
|
(ja-post)
|
|
(suspend)
|
|
)
|
|
(none)
|
|
)
|
|
:post
|
|
(the-as (function none :behavior silostep) #f)
|
|
)
|
|
|
|
;; definition for method 11 of type silostep
|
|
;; INFO: Return type mismatch object vs none.
|
|
(defmethod init-from-entity! silostep ((obj silostep) (arg0 entity-actor))
|
|
(logior! (-> obj mask) (process-mask movie-subject))
|
|
(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)
|
|
)
|
|
(dummy-29 s4-0 1)
|
|
(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 ground-object))
|
|
(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 4096.0 0.0 18432.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) s4-0)
|
|
)
|
|
(process-drawable-from-entity! obj arg0)
|
|
(initialize-skeleton obj *silostep-sg* '())
|
|
(set! (-> obj anim-limit)
|
|
(* (res-lump-float arg0 'distance :default 1.0)
|
|
(the float (+ (-> (the-as art-joint-anim (-> obj draw art-group data 2)) data 0 length) -1))
|
|
)
|
|
)
|
|
(set! (-> obj link) (new 'process 'actor-link-info obj))
|
|
(if (and (-> obj entity) (logtest? (-> obj entity extra perm status) (entity-perm-status complete)))
|
|
(go silostep-rise #t)
|
|
(go silostep-idle)
|
|
)
|
|
(none)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defskelgroup *rounddoor-sg* rounddoor
|
|
0
|
|
3
|
|
((1 (meters 20)) (2 (meters 999999)))
|
|
:bounds (static-spherem 0 0 0 8)
|
|
:longest-edge (meters 0)
|
|
)
|
|
|
|
;; definition of type rounddoor
|
|
(deftype rounddoor (eco-door)
|
|
()
|
|
:heap-base #xa0
|
|
:method-count-assert 27
|
|
:size-assert #x104
|
|
:flag-assert #x1b00a00104
|
|
)
|
|
|
|
;; definition for method 3 of type rounddoor
|
|
(defmethod inspect rounddoor ((obj rounddoor))
|
|
(let ((t9-0 (method-of-type eco-door inspect)))
|
|
(t9-0 obj)
|
|
)
|
|
obj
|
|
)
|
|
|
|
;; definition for method 24 of type rounddoor
|
|
;; INFO: Return type mismatch int vs none.
|
|
(defmethod TODO-RENAME-24 rounddoor ((obj rounddoor))
|
|
(let ((s5-0 (new 'process 'collide-shape obj (collide-list-enum hit-by-others))))
|
|
(let ((s4-0 (new 'process 'collide-shape-prim-mesh s5-0 (the-as uint 0) (the-as uint 0))))
|
|
(set! (-> s4-0 prim-core collide-as) (collide-kind ground-object))
|
|
(set! (-> s4-0 collide-with) (collide-kind target))
|
|
(set! (-> s4-0 prim-core action) (collide-action solid))
|
|
(set! (-> s4-0 prim-core offense) (collide-offense indestructible))
|
|
(set! (-> s4-0 transform-index) 0)
|
|
(set-vector! (-> s4-0 local-sphere) -12288.0 0.0 0.0 40960.0)
|
|
(set-root-prim! s5-0 s4-0)
|
|
)
|
|
(set! (-> s5-0 nav-radius) (* 0.75 (-> s5-0 root-prim local-sphere w)))
|
|
(backup-collide-with-as s5-0)
|
|
(set! (-> obj root-override) s5-0)
|
|
)
|
|
0
|
|
(none)
|
|
)
|
|
|
|
;; definition for method 25 of type rounddoor
|
|
;; INFO: Return type mismatch int vs none.
|
|
;; Used lq/sq
|
|
(defmethod TODO-RENAME-25 rounddoor ((obj rounddoor))
|
|
(initialize-skeleton obj *rounddoor-sg* '())
|
|
(set! (-> obj open-distance) 69632.0)
|
|
(set! (-> obj close-distance) 81920.0)
|
|
(set! (-> obj open-sound) (static-sound-name "arenadoor-open"))
|
|
(set! (-> obj close-sound) (static-sound-name "arenadoor-close"))
|
|
(set! (-> obj speed) 1.5)
|
|
(set! (-> obj auto-close) #t)
|
|
(set! (-> obj one-way) #t)
|
|
(vector-x-quaternion! (-> obj out-dir) (-> obj root-override quat))
|
|
(set! (-> obj out-dir w) (- 8192.0 (vector-dot (-> obj out-dir) (-> obj root-override trans))))
|
|
(dummy-47 (-> obj root-override))
|
|
0
|
|
(none)
|
|
)
|