;;-*-Lisp-*- (in-package goal) ;; name: process-focusable.gc ;; name in dgo: process-focusable ;; dgos: ENGINE, GAME (defenum focus-status :bitfield #t :type uint32 (disable 0) ;; if set, all collide checks fail (dead 1) ;; if set, all collide checks fail (ignore 2) (inactive 3) (dangerous 4) (in-air 5) (hit 6) (grabbed 7) (in-head 8) (touch-water 9) (on-water 10) (under-water 11) (edge-grab 12) (pole 13) (pilot-riding 14) (flut 15) (tube 16) (ice 17) (board 18) (gun 19) (pilot 20) ;; also racer? (mech 21) (dark 22) (rail 23) (halfpipe 24) (carry 25) (super 26) (shooting 27) (indax 28) (arrestable 29) (teleporting 30) (fs31 31) ) ;; DECOMP BEGINS (deftype process-focusable (process-drawable) ((focus-status focus-status :offset-assert 200) ) :heap-base #x50 :method-count-assert 27 :size-assert #xcc :flag-assert #x1b005000cc (:methods (get-trans (_type_ int) vector 20) (get-quat (_type_ int) quaternion 21) (get-transv (_type_) vector 22) (process-focusable-method-23 (_type_) none 23) (process-focusable-method-24 (_type_) float 24) (process-focusable-method-25 (_type_) time-frame 25) (process-focusable-method-26 (_type_) float 26) ) ) ;; WARN: Return type mismatch structure vs vector. (defmethod get-trans process-focusable ((obj process-focusable) (arg0 int)) "@returns the `trans` [[vector]] from the process's `root` (typically either a [[trsqv]] or a [[collide-shape]]" (let ((gp-0 (-> obj root))) (the-as vector (cond ((zero? arg0) (-> gp-0 trans) ) ((and (= arg0 1) (type? gp-0 collide-shape-moving)) (-> (the-as collide-shape-moving gp-0) gspot-pos) ) ((and (or (= arg0 2) (= arg0 3)) (type? gp-0 collide-shape)) (-> (the-as collide-shape gp-0) root-prim prim-core) ) (else (-> gp-0 trans) ) ) ) ) ) (defmethod get-transv process-focusable ((obj process-focusable)) (-> obj root transv) ) (defmethod get-quat process-focusable ((obj process-focusable) (arg0 int)) (-> obj root quat) ) (defmethod process-focusable-method-23 process-focusable ((obj process-focusable)) 0 (none) ) (defmethod process-focusable-method-24 process-focusable ((obj process-focusable)) 0.0 ) (defmethod process-focusable-method-26 process-focusable ((obj process-focusable)) 0.0 ) ;; WARN: Return type mismatch int vs time-frame. (defmethod process-focusable-method-25 process-focusable ((obj process-focusable)) (the-as time-frame 0) )