jak-project/goal_src/levels/beach/bird-lady-beach.gc

126 lines
3.8 KiB
Common Lisp
Raw Normal View History

;;-*-Lisp-*-
2020-09-04 14:44:23 -04:00
(in-package goal)
;; name: bird-lady-beach.gc
;; name in dgo: bird-lady-beach
;; dgos: BEA, L1
;; DECOMP BEGINS
(deftype bird-lady-beach (process-taskable)
((flutflut handle :offset-assert 384)
(egg handle :offset-assert 392)
)
:heap-base #x120
:method-count-assert 53
:size-assert #x190
:flag-assert #x3501200190
)
(defskelgroup *bird-lady-beach-sg* bird-lady-beach bird-lady-beach-lod0-jg bird-lady-beach-idle-ja
((bird-lady-beach-lod0-mg (meters 999999)))
:bounds (static-spherem 0 0 0 4)
:shadow bird-lady-beach-shadow-mg
)
(defstate idle (bird-lady-beach)
:virtual #t
:enter
(behavior ()
(when (not (should-display? self))
(let ((a0-2 (handle->process (-> self flutflut))))
(if a0-2
(deactivate a0-2)
)
)
(let ((a0-6 (handle->process (-> self egg))))
(if a0-6
(deactivate a0-6)
)
)
(go-virtual hidden)
)
((-> (method-of-type process-taskable idle) enter))
(none)
)
)
(defmethod play-anim! bird-lady-beach ((obj bird-lady-beach) (arg0 symbol))
(case (current-status (-> obj tasks))
(((task-status need-reward-speech))
(when arg0
(set! (-> obj cell-for-task) (current-task (-> obj tasks)))
(close-current! (-> obj tasks))
(let ((s5-1 (get-process *default-dead-pool* manipy #x4000)))
(set! (-> obj flutflut)
(ppointer->handle
(when s5-1
(let ((t9-4 (method-of-type manipy activate)))
(t9-4 (the-as manipy s5-1) obj 'manipy (the-as pointer #x70004000))
)
(run-now-in-process s5-1 manipy-init (-> obj root-override trans) (-> obj entity) *flutflut-naked-sg* #f)
(-> s5-1 ppointer)
)
)
)
)
(send-event (handle->process (-> obj flutflut)) 'anim-mode 'clone-anim)
(send-event (handle->process (-> obj flutflut)) 'blend-shape #t)
(let ((s5-2 (get-process *default-dead-pool* manipy #x4000)))
(set! (-> obj egg)
(ppointer->handle
(when s5-2
(let ((t9-9 (method-of-type manipy activate)))
(t9-9 (the-as manipy s5-2) obj 'manipy (the-as pointer #x70004000))
)
(run-now-in-process s5-2 manipy-init (-> obj root-override trans) (-> obj entity) *flutflutegg-sg* #f)
(-> s5-2 ppointer)
)
)
)
)
(send-event (handle->process (-> obj egg)) 'anim-mode 'clone-anim)
)
(new 'static 'spool-anim
:name "bird-lady-beach-resolution"
:index 4
:parts 10
:command-list
'((141 joint "cameraB") (535 joint "camera") (696 joint "cameraB") (758 joint "camera") (813 joint "cameraB"))
)
)
(else
(if arg0
(format
0
"ERROR: <GMJ>: ~S playing anim for task status ~S~%"
(-> obj name)
(task-status->string (current-status (-> obj tasks)))
)
)
(-> obj draw art-group data 3)
)
)
)
(defmethod get-art-elem bird-lady-beach ((obj bird-lady-beach))
(-> obj draw art-group data 3)
)
(defmethod should-display? bird-lady-beach ((obj bird-lady-beach))
(= (current-status (-> obj tasks)) (task-status need-reward-speech))
)
(defmethod init-from-entity! bird-lady-beach ((obj bird-lady-beach) (arg0 entity-actor))
(dummy-40 obj arg0 *bird-lady-beach-sg* 3 51 (new 'static 'vector :y 4096.0 :w 4096.0) 5)
(set! (-> obj tasks) (get-task-control (game-task beach-flutflut)))
(set! (-> obj sound-flava) (music-flava birdlady))
(dummy-42 obj)
(none)
)