jak-project/goal_src/jak1/levels/citadel/citb-bunny.gc
2022-06-29 22:20:09 -04:00

143 lines
5.4 KiB
Common Lisp

;;-*-Lisp-*-
(in-package goal)
;; name: citb-bunny.gc
;; name in dgo: citb-bunny
;; dgos: CIT, L1
;; DECOMP BEGINS
(import "goal_src/jak1/import/citb-bunny-ag.gc")
(deftype citb-bunny (snow-bunny)
()
:heap-base #x190
:method-count-assert 77
:size-assert #x200
:flag-assert #x4d01900200
(:methods
(TODO-RENAME-48 (_type_ object) none :replace 48)
)
)
(defskelgroup *citb-bunny-sg* citb-bunny citb-bunny-lod0-jg citb-bunny-idle-ja
((citb-bunny-lod0-mg (meters 999999)))
:bounds (static-spherem 0 0.25 0 2)
)
(define *citb-bunny-nav-enemy-info* (new 'static 'nav-enemy-info
:idle-anim 3
:walk-anim 3
:turn-anim 3
:notice-anim 7
:run-anim 3
:jump-anim 5
:jump-land-anim 8
:victory-anim 7
:taunt-anim 7
:die-anim 9
:neck-joint 5
:player-look-at-joint 5
:run-travel-speed (meters 6)
:run-rotate-speed (degrees 2880.0)
:run-acceleration (meters 1)
:run-turn-time (seconds 0.1)
:walk-travel-speed (meters 4)
:walk-rotate-speed (degrees 720.0)
:walk-acceleration (meters 1)
:walk-turn-time (seconds 0.5)
:shadow-size (meters 2)
:notice-nav-radius (meters 1.2)
:nav-nearest-y-threshold (meters 10)
:notice-distance (meters 130)
:stop-chase-distance (meters 150)
:frustration-distance (meters 8)
:frustration-time (seconds 4)
:die-anim-hold-frame 31.0
:jump-anim-start-frame 11.0
:jump-land-anim-end-frame 10000000000.0
:jump-height-min (meters 1)
:jump-height-factor 0.6
:jump-start-anim-speed 1.0
:shadow-max-y (meters 0.25)
:shadow-min-y (meters -3.5)
:shadow-locus-dist (meters 150)
:use-align #f
:draw-shadow #t
:move-to-ground #t
:hover-if-no-ground #f
:use-momentum #f
:use-flee #f
:use-proximity-notice #f
:use-jump-blocked #f
:use-jump-patrol #f
:gnd-collide-with (collide-kind background)
:debug-draw-neck #f
:debug-draw-jump #f
)
)
(defmethod dummy-60 citb-bunny ((obj citb-bunny))
(initialize-skeleton obj *citb-bunny-sg* '())
(set! (-> obj draw origin-joint-index) (the-as uint 3))
0
(none)
)
(defmethod TODO-RENAME-48 citb-bunny ((obj citb-bunny) (arg0 object))
(dummy-60 obj)
(TODO-RENAME-45 obj *citb-bunny-nav-enemy-info*)
(logclear! (-> obj draw shadow-ctrl settings flags) (shadow-flags shdf03))
(cond
((zero? (res-lump-value (-> obj entity) 'mode uint128))
(set! (-> obj defense) (the-as uint 1))
(set! (-> obj retreat-timeout) 5.0)
)
(else
(set! (-> obj defense) (the-as uint 0))
(set! (-> obj retreat-timeout) 0.1)
)
)
(set! (-> obj last-nondangerous-time) (-> *display* base-frame-counter))
(set! (-> obj gnd-popup) 16384.0)
(set! (-> obj got-jump-event?) #f)
(set! (-> obj notice-land-anim) 8)
(set! (-> obj attack-anim) 4)
(set! (-> obj neck up) (the-as uint 1))
(set! (-> obj neck nose) (the-as uint 2))
(set! (-> obj neck ear) (the-as uint 0))
(set! (-> obj patrol-rand-distraction) (+ (nav-enemy-rnd-int-count 5) 1))
(set! (-> obj patrol-hop-failed?) #f)
(logclear! (-> obj mask) (process-mask actor-pause))
0
(none)
)
(defmethod set-jump-height-factor! citb-bunny ((obj citb-bunny) (arg0 int))
(let ((v1-0 arg0))
(cond
((zero? v1-0)
(set! (-> obj jump-anim) 6)
(set! (-> obj jump-height-min) 4096.0)
(set! (-> obj jump-height-factor) 0.6)
)
((= v1-0 1)
(set! (-> obj jump-anim) 5)
(set! (-> obj jump-height-min) 4096.0)
(set! (-> obj jump-height-factor) 0.6)
)
((= v1-0 2)
(set! (-> obj jump-anim) 5)
(set! (-> obj jump-height-min) 4096.0)
(set! (-> obj jump-height-factor) 0.4)
)
)
)
(none)
)