;;-*-Lisp-*- (in-package goal) ;; definition of type sunken-elevator (deftype sunken-elevator (plat-button) ((play-at-top-going-up-camera? symbol :offset-assert 240) (teleport-if-below-y float :offset-assert 244) (teleport-if-above-y float :offset-assert 248) ) :heap-base #x90 :method-count-assert 33 :size-assert #xfc :flag-assert #x21009000fc ) ;; definition for method 3 of type sunken-elevator (defmethod inspect sunken-elevator ((obj sunken-elevator)) (let ((t9-0 (method-of-type plat-button inspect))) (t9-0 obj) ) (format #t "~T~Tplay-at-top-going-up-camera?: ~A~%" (-> obj play-at-top-going-up-camera?) ) (format #t "~T~Tteleport-if-below-y: ~f~%" (-> obj teleport-if-below-y)) (format #t "~T~Tteleport-if-above-y: ~f~%" (-> obj teleport-if-above-y)) obj ) ;; failed to figure out what this is: (let ((v1-1 (new 'static 'skeleton-group :art-group-name "sunken-elevator" :bounds (new 'static 'vector :y -4096.0 :w 27033.6) :version #x6 ) ) ) (set! (-> v1-1 jgeo) 0) (set! (-> v1-1 janim) 2) (set! (-> v1-1 mgeo 0) (the-as uint 1)) (set! (-> v1-1 lod-dist 0) 4095996000.0) (set! *sunken-elevator-sg* v1-1) ) ;; definition for method 30 of type sunken-elevator (defmethod should-teleport? sunken-elevator ((obj sunken-elevator)) (let ((f0-0 (-> (camera-pos) y))) (case (-> obj path-pos) ((0.0) (if (< f0-0 (-> obj teleport-if-below-y)) (return #t) ) ) ((1.0) (if (< (-> obj teleport-if-above-y) f0-0) (return #t) ) ) ) ) #f ) ;; failed to figure out what this is: (let ((gp-0 (new 'static 'state :name 'plat-button-pressed :next #f :exit #f :code #f :trans #f :post #f :enter #f :event #f ) ) ) (inherit-state gp-0 (the-as state (method-of-type plat-button plat-button-pressed)) ) (method-set! sunken-elevator 22 (the-as function gp-0)) (set! (-> gp-0 enter) (the-as (function object object object object object object object) (lambda :behavior sunken-elevator () (let ((t9-0 (the-as function (-> (the-as (state none) (method-of-type plat-button plat-button-pressed)) enter ) ) ) ) (if (the-as (function object object object object object object object) t9-0) ((the-as (function object) t9-0)) ) ) (case (-> self path-pos) ((0.0) (load-state-want-display-level 'sunken 'display) (let ((gp-0 (get-process *default-dead-pool* village2cam #x4000))) (set! (-> (the-as village2cam (-> (when gp-0 (let ((t9-3 (method-of-type village2cam activate ) ) ) (t9-3 (the-as village2cam gp-0) self 'village2cam (the-as pointer #x70004000) ) ) (run-function-in-process gp-0 pov-camera-init-by-other (-> self spawn-pos) *village2cam-sg* "elevator-at-top-going-down" 0 #f '() ) (-> gp-0 ppointer) ) 0 ) ) seq ) (the-as uint 0) ) ) 0 ) ((1.0) (let* ((gp-1 (get-process *default-dead-pool* village2cam #x4000)) (v1-10 (when gp-1 (let ((t9-6 (method-of-type village2cam activate))) (t9-6 (the-as village2cam gp-1) self 'village2cam (the-as pointer #x70004000) ) ) (run-function-in-process gp-1 pov-camera-init-by-other (-> self spawn-pos) *village2cam-sg* "elevator-at-top-going-down" 0 #f '() ) (-> gp-1 ppointer) ) ) (v0-5 1) ) (set! (-> (the-as village2cam (-> v1-10 0)) seq) (the-as uint v0-5)) v0-5 ) ) ) ) ) ) ) ;; failed to figure out what this is: (let ((gp-1 (new 'static 'state :name 'plat-button-move-upward :next #f :exit #f :code #f :trans #f :post #f :enter #f :event #f ) ) ) (inherit-state gp-1 (the-as state (method-of-type plat-button plat-button-move-upward)) ) (method-set! sunken-elevator 24 (the-as function gp-1)) (set! (-> gp-1 enter) (the-as (function object object object object object object object) (lambda :behavior sunken-elevator () (let ((t9-0 (the-as function (-> (the-as (state none) (method-of-type plat-button plat-button-move-upward) ) enter ) ) ) ) (if (the-as (function object object object object object object object) t9-0) ((the-as (function object) t9-0)) ) ) (let ((v0-1 #t)) (set! (-> self play-at-top-going-up-camera?) v0-1) v0-1 ) ) ) ) (set! (-> gp-1 trans) (lambda :behavior sunken-elevator () (let ((t9-0 (-> (the-as (state none) (method-of-type plat-button plat-button-move-upward) ) trans ) ) ) (if t9-0 (t9-0) ) ) (when (and (-> self play-at-top-going-up-camera?) (>= 0.14 (-> self path-pos))) (set! *teleport* #t) (set! (-> self play-at-top-going-up-camera?) #f) (load-state-want-display-level 'sunken 'special) (let* ((gp-0 (get-process *default-dead-pool* village2cam #x4000)) (v1-8 (when gp-0 (let ((t9-3 (method-of-type village2cam activate))) (t9-3 (the-as village2cam gp-0) self 'village2cam (the-as pointer #x70004000) ) ) (run-function-in-process gp-0 pov-camera-init-by-other (-> self spawn-pos) *village2cam-sg* "elevator-at-top-going-down" 0 #f '() ) (-> gp-0 ppointer) ) ) (v0-1 2) ) (set! (-> (the-as village2cam (-> v1-8 0)) seq) (the-as uint v0-1)) v0-1 ) ) ) ) ) ;; failed to figure out what this is: (let ((gp-2 (new 'static 'state :name 'plat-button-move-downward :next #f :exit #f :code #f :trans #f :post #f :enter #f :event #f ) ) ) (inherit-state gp-2 (the-as state (method-of-type plat-button plat-button-move-downward)) ) (method-set! sunken-elevator 23 (the-as function gp-2)) (set! (-> gp-2 trans) (lambda :behavior sunken-elevator () (let ((s5-0 (new 'stack-no-clear 'vector)) (gp-0 (new 'stack-no-clear 'vector)) ) (set! *teleport* #t) (set! (-> s5-0 quad) (-> self root-override trans quad)) (let ((t9-1 (-> (the-as (state none) (find-parent-method sunken-elevator 23)) trans) ) ) (if t9-1 (t9-1) ) ) (vector-! gp-0 (-> self root-override trans) s5-0) ) (when (< (-> self path-pos) 0.9) ((method-of-object (-> *target* control) dummy-28)) (let ((a1-2 (new 'stack-no-clear 'event-message-block))) (set! (-> a1-2 from) self) (set! (-> a1-2 num-params) 0) (set! (-> a1-2 message) 'reset-height) (send-event-function *target* a1-2) ) ) ) ) ) ;; definition for method 29 of type sunken-elevator (defmethod TODO-RENAME-29 sunken-elevator ((obj sunken-elevator)) (set! (-> obj play-at-top-going-up-camera?) #f) (let ((s5-0 (new 'stack-no-clear 'vector))) (eval-path-curve! (-> obj path) s5-0 0.4 'interp) (set! (-> obj teleport-if-above-y) (-> s5-0 y)) (eval-path-curve! (-> obj path) s5-0 0.6 'interp) (let ((f0-1 (-> s5-0 y))) (set! (-> obj teleport-if-below-y) f0-1) f0-1 ) ) ) ;; definition for method 27 of type sunken-elevator (defmethod TODO-RENAME-27 sunken-elevator ((obj sunken-elevator)) (ja-channel-set! 1) (cond (((method-of-object obj dummy-26)) (let ((s5-0 (-> obj skel root-channel 0))) (joint-control-channel-group-eval! s5-0 (the-as art-joint-anim (-> obj draw art-group data 2)) num-func-identity ) (set! (-> s5-0 frame-num) 0.0) ) ) (else (let ((s5-1 (-> obj skel root-channel 0))) (joint-control-channel-group-eval! s5-1 (the-as art-joint-anim (-> obj draw art-group data 2)) num-func-identity ) (set! (-> s5-1 frame-num) (the float (+ (-> (the-as art-joint-anim (-> obj draw art-group data 2)) data 0 length ) -1 ) ) ) ) ) ) (ja-post) (dummy-47 (-> obj root-override)) (none) ) ;; definition for method 31 of type sunken-elevator ;; INFO: Return type mismatch int vs none. (defmethod TODO-RENAME-31 sunken-elevator ((obj sunken-elevator)) (dummy-14 obj *sunken-elevator-sg* '()) 0 (none) )