jak-project/goal_src/engine/camera/camera-h.gc
water111 0aa474f12b
[decomp] finish actor-link-h and a few more (#592)
* finish actor-link-h

* decompile files

* fix pp issue
2021-06-14 20:46:54 -04:00

525 lines
21 KiB
Common Lisp

;;-*-Lisp-*-
(in-package goal)
;; name: camera-h.gc
;; name in dgo: camera-h
;; dgos: GAME, ENGINE
;; definition of type camera-bank
(deftype camera-bank (basic)
((collide-move-rad float :offset-assert 4)
(joypad uint32 :offset-assert 8)
(min-detectable-velocity float :offset-assert 12)
(attack-timeout uint64 :offset-assert 16)
(default-string-max-y float :offset-assert 24)
(default-string-min-y float :offset-assert 28)
(default-string-max-z float :offset-assert 32)
(default-string-min-z float :offset-assert 36)
(default-string-push-z float :offset-assert 40)
(default-tilt-adjust float :offset-assert 44)
)
:method-count-assert 9
:size-assert #x30
:flag-assert #x900000030
)
;; definition for symbol *CAMERA-bank*, type camera-bank
(define *CAMERA-bank*
(new 'static 'camera-bank
:collide-move-rad 1638.4
:min-detectable-velocity 40.96
:attack-timeout #x4b
:default-string-max-y 12288.0
:default-string-min-y 4096.0
:default-string-max-z 51200.0
:default-string-min-z 20480.0
:default-string-push-z 40960.0
:default-tilt-adjust -1183.289
)
)
;; definition of type cam-index
(deftype cam-index (structure)
((flags uint32 :offset-assert 0)
(vec uint128 2 :offset-assert 16)
)
:method-count-assert 11
:size-assert #x30
:flag-assert #xb00000030
(:methods
(dummy-9 () none 9)
(dummy-10 () none 10)
)
)
;; definition of type tracking-point
(deftype tracking-point (structure)
((position vector :inline :offset-assert 0)
(direction vector :inline :offset-assert 16)
(tp-length float :offset-assert 32)
(next int32 :offset-assert 36)
(incarnation int32 :offset-assert 40)
)
:method-count-assert 9
:size-assert #x2c
:flag-assert #x90000002c
)
;; definition of type tracking-spline-sampler
(deftype tracking-spline-sampler (structure)
((cur-pt int32 :offset-assert 0)
(partial-pt float :offset-assert 4)
)
:method-count-assert 9
:size-assert #x8
:flag-assert #x900000008
)
;; definition of type tracking-spline
(deftype tracking-spline (structure)
((point tracking-point 32 :inline :offset-assert 0)
(summed-len float :offset-assert 1536)
(free-point int32 :offset-assert 1540)
(used-point int32 :offset-assert 1544)
(partial-point float :offset-assert 1548)
(end-point int32 :offset-assert 1552)
(next-to-last-point int32 :offset-assert 1556)
(max-move float :offset-assert 1560)
(sample-len float :offset-assert 1564)
(used-count int32 :offset-assert 1568)
(old-position vector :inline :offset-assert 1584)
(debug-old-position vector :inline :offset-assert 1600)
(debug-out-position vector :inline :offset-assert 1616)
(debug-last-point int32 :offset-assert 1632)
)
:method-count-assert 24
:size-assert #x664
:flag-assert #x1800000664
(:methods
(dummy-9 () none 9)
(dummy-10 () none 10)
(dummy-11 () none 11)
(dummy-12 () none 12)
(dummy-13 () none 13)
(dummy-14 () none 14)
(dummy-15 () none 15)
(dummy-16 () none 16)
(dummy-17 () none 17)
(dummy-18 () none 18)
(dummy-19 () none 19)
(dummy-20 () none 20)
(dummy-21 () none 21)
(dummy-22 () none 22)
(dummy-23 () none 23)
)
)
;; definition of type cam-float-seeker
(deftype cam-float-seeker (structure)
((target float :offset-assert 0)
(value float :offset-assert 4)
(vel float :offset-assert 8)
(accel float :offset-assert 12)
(max-vel float :offset-assert 16)
(max-partial float :offset-assert 20)
)
:pack-me
:method-count-assert 13
:size-assert #x18
:flag-assert #xd00000018
(:methods
(init-cam-float-seeker (_type_ float float float float) none 9)
(copy-cam-float-seeker (_type_ _type_) none 10)
(TODO-RENAME-11 (_type_ float) none 11)
(TODO-RENAME-12 (_type_ float) float 12)
)
)
;; definition for method 9 of type cam-float-seeker
;; INFO: Return type mismatch int vs none.
(defmethod init-cam-float-seeker cam-float-seeker ((obj cam-float-seeker) (arg0 float) (arg1 float) (arg2 float) (arg3 float))
(set! (-> obj target) arg0)
(set! (-> obj value) arg0)
(set! (-> obj vel) 0.0)
(set! (-> obj accel) arg1)
(set! (-> obj max-vel) arg2)
(set! (-> obj max-partial) arg3)
(none)
)
;; definition for method 10 of type cam-float-seeker
;; INFO: Return type mismatch int vs none.
(defmethod copy-cam-float-seeker cam-float-seeker ((obj cam-float-seeker) (arg0 cam-float-seeker))
(set! (-> obj target) (-> arg0 target))
(set! (-> obj value) (-> arg0 value))
(set! (-> obj vel) (-> arg0 vel))
(set! (-> obj accel) (-> arg0 accel))
(set! (-> obj max-vel) (-> arg0 max-vel))
(set! (-> obj max-partial) (-> arg0 max-partial))
(none)
)
;; definition for method 11 of type cam-float-seeker
;; INFO: Return type mismatch int vs none.
(defmethod TODO-RENAME-11 cam-float-seeker ((obj cam-float-seeker) (arg0 float))
(let ((f0-0 0.0))
)
(let ((f0-1 0.0))
)
(let* ((f1-2 (- (+ (-> obj target) arg0) (-> obj value)))
(f0-5 (* (-> obj max-partial) (fabs f1-2)))
)
(let ((f1-3 (* f1-2 (* (-> obj accel) (-> *display* time-adjust-ratio)))))
(set! (-> obj vel) (+ (-> obj vel) f1-3))
)
(let ((f1-6 (fabs (-> obj vel)))
(f0-6 (fmin f0-5 (-> obj max-vel)))
)
(if (< f0-6 f1-6)
(set! (-> obj vel) (* (-> obj vel) (/ f0-6 f1-6)))
)
)
)
(let ((f0-10 (* (-> obj vel) (-> *display* time-adjust-ratio))))
(set! (-> obj value) (+ (-> obj value) f0-10))
)
(none)
)
;; definition for method 12 of type cam-float-seeker
(defmethod TODO-RENAME-12 cam-float-seeker ((obj cam-float-seeker) (arg0 float))
(set! (-> obj value) (+ (-> obj target) arg0))
(let ((f0-2 0.0))
(set! (-> obj vel) f0-2)
f0-2
)
)
;; definition of type cam-vector-seeker
(deftype cam-vector-seeker (structure)
((target vector :inline :offset-assert 0)
(value vector :inline :offset-assert 16)
(vel vector :inline :offset-assert 32)
(accel float :offset-assert 48)
(max-vel float :offset-assert 52)
(max-partial float :offset-assert 56)
)
:method-count-assert 11
:size-assert #x3c
:flag-assert #xb0000003c
(:methods
(TODO-RENAME-9 (_type_ vector float float float) none 9)
(TODO-RENAME-10 (_type_ vector) none 10)
)
)
;; definition for method 9 of type cam-vector-seeker
;; INFO: Return type mismatch int vs none.
;; Used lq/sq
(defmethod TODO-RENAME-9 cam-vector-seeker ((obj cam-vector-seeker) (arg0 vector) (arg1 float) (arg2 float) (arg3 float))
(rlet ((vf0 :class vf))
(init-vf0-vector)
(cond
(arg0
(let ((v1-0 (-> obj target)))
(set! (-> v1-0 quad) (-> arg0 quad))
)
(let ((v1-1 (-> obj value)))
(set! (-> v1-1 quad) (-> arg0 quad))
)
)
(else
(.svf (&-> (-> obj target) quad) vf0)
(.svf (&-> (-> obj value) quad) vf0)
)
)
(.svf (&-> (-> obj vel) quad) vf0)
(set! (-> obj accel) arg1)
(set! (-> obj max-vel) arg2)
(set! (-> obj max-partial) arg3)
(none)
)
)
;; definition for method 10 of type cam-vector-seeker
;; INFO: Return type mismatch int vs none.
(defmethod TODO-RENAME-10 cam-vector-seeker ((obj cam-vector-seeker) (arg0 vector))
(rlet ((vf0 :class vf)
(vf1 :class vf)
(vf2 :class vf)
(vf4 :class vf)
(vf5 :class vf)
(vf6 :class vf)
)
(init-vf0-vector)
(let ((gp-0 (new 'stack-no-clear 'vector)))
(let ((f0-0 0.0))
)
(cond
(arg0
(let ((a0-1 gp-0))
(let ((v1-0 (-> obj target)))
(.mov.vf vf6 vf0 :mask #b1000)
(.lvf vf4 (&-> v1-0 quad))
)
(.lvf vf5 (&-> arg0 quad))
(.add.vf vf6 vf4 vf5 :mask #b111)
(.svf (&-> a0-1 quad) vf6)
)
(let ((a1-1 gp-0))
(let ((v1-1 gp-0)
(a0-2 (-> obj value))
)
(.lvf vf4 (&-> v1-1 quad))
(.lvf vf5 (&-> a0-2 quad))
)
(.mov.vf vf6 vf0 :mask #b1000)
(.sub.vf vf6 vf4 vf5 :mask #b111)
(.svf (&-> a1-1 quad) vf6)
)
)
(else
(let ((a1-2 gp-0))
(let ((v1-2 (-> obj target))
(a0-3 (-> obj value))
)
(.lvf vf4 (&-> v1-2 quad))
(.lvf vf5 (&-> a0-3 quad))
)
(.mov.vf vf6 vf0 :mask #b1000)
(.sub.vf vf6 vf4 vf5 :mask #b111)
(.svf (&-> a1-2 quad) vf6)
)
)
)
(let ((f30-1 (* (-> obj max-partial) (vector-length gp-0))))
(let ((v1-3 gp-0))
(let ((a0-5 gp-0)
(f0-3 (* (-> obj accel) (-> *display* time-adjust-ratio)))
)
(.lvf vf1 (&-> a0-5 quad))
(let ((a0-6 f0-3))
(.mov vf2 a0-6)
)
)
(.add.x.vf vf1 vf0 vf0 :mask #b1000)
(.mul.x.vf vf1 vf1 vf2 :mask #b111)
(.svf (&-> v1-3 quad) vf1)
)
(let ((a1-4 (-> obj vel)))
(let ((v1-4 (-> obj vel))
(a0-7 gp-0)
)
(.mov.vf vf6 vf0 :mask #b1000)
(.lvf vf4 (&-> v1-4 quad))
(.lvf vf5 (&-> a0-7 quad))
)
(.add.vf vf6 vf4 vf5 :mask #b111)
(.svf (&-> a1-4 quad) vf6)
)
(let ((f0-4 (vector-length (-> obj vel)))
(f1-2 (fmin f30-1 (-> obj max-vel)))
)
(when (< f1-2 f0-4)
(let ((v1-6 (-> obj vel)))
(let ((a0-9 (-> obj vel))
(f0-5 (/ f1-2 f0-4))
)
(.lvf vf1 (&-> a0-9 quad))
(let ((a0-10 f0-5))
(.mov vf2 a0-10)
)
)
(.add.x.vf vf1 vf0 vf0 :mask #b1000)
(.mul.x.vf vf1 vf1 vf2 :mask #b111)
(.svf (&-> v1-6 quad) vf1)
)
)
)
)
(let ((v1-7 gp-0))
(let ((a0-11 (-> obj vel))
(f0-6 (-> *display* time-adjust-ratio))
)
(.lvf vf1 (&-> a0-11 quad))
(let ((a0-12 f0-6))
(.mov vf2 a0-12)
)
)
(.add.x.vf vf1 vf0 vf0 :mask #b1000)
(.mul.x.vf vf1 vf1 vf2 :mask #b111)
(.svf (&-> v1-7 quad) vf1)
)
(let ((v1-8 (-> obj value)))
(let ((a0-13 (-> obj value)))
(.mov.vf vf6 vf0 :mask #b1000)
(.lvf vf4 (&-> a0-13 quad))
)
(.lvf vf5 (&-> gp-0 quad))
(.add.vf vf6 vf4 vf5 :mask #b111)
(.svf (&-> v1-8 quad) vf6)
)
)
(none)
)
)
;; definition of type cam-rotation-tracker
(deftype cam-rotation-tracker (structure)
((inv-mat matrix :inline :offset-assert 0)
(no-follow basic :offset-assert 64)
(follow-pt vector :inline :offset-assert 80)
(follow-off vector :inline :offset-assert 96)
(follow-blend float :offset-assert 112)
(tilt-adjust cam-float-seeker :inline :offset-assert 116)
(use-point-of-interest basic :offset-assert 140)
(point-of-interest vector :inline :offset-assert 144)
(point-of-interest-blend cam-float-seeker :inline :offset-assert 160)
(underwater-blend cam-float-seeker :inline :offset-assert 184)
)
:method-count-assert 9
:size-assert #xd0
:flag-assert #x9000000d0
)
;; definition of type camera-combiner
(deftype camera-combiner (process)
((trans vector :inline :offset-assert 112)
(inv-camera-rot matrix :inline :offset-assert 128)
(fov float :offset-assert 192)
(interp-val float :offset-assert 196)
(interp-step float :offset-assert 200)
(dist-from-src float :offset-assert 204)
(dist-from-dest float :offset-assert 208)
(flip-control-axis vector :inline :offset-assert 224)
(velocity vector :inline :offset-assert 240)
(tracking-status uint64 :offset-assert 256)
(tracking-options int32 :offset-assert 264)
(tracking cam-rotation-tracker :inline :offset-assert 272)
)
:heap-base #x170
:method-count-assert 14
:size-assert #x1e0
:flag-assert #xe017001e0
)
;; definition of type camera-slave
(deftype camera-slave (process)
((trans vector :inline :offset-assert 112)
(fov float :offset-assert 128)
(fov0 float :offset-assert 132)
(fov1 float :offset-assert 136)
(fov-index cam-index :inline :offset-assert 144)
(tracking cam-rotation-tracker :inline :offset-assert 192)
(view-off-param float :offset-assert 400)
(view-off vector :inline :offset-assert 416)
(min-z-override float :offset-assert 432)
(view-flat vector :inline :offset-assert 448)
(string-vel-dir uint32 :offset-assert 464)
(string-trans vector :inline :offset-assert 480)
(position-spline tracking-spline :inline :offset-assert 496)
(pivot-pt vector :inline :offset-assert 2144)
(pivot-rad float :offset-assert 2160)
(circular-follow vector :inline :offset-assert 2176)
(max-angle-offset float :offset-assert 2192)
(max-angle-curr float :offset-assert 2196)
(options uint32 :offset-assert 2200)
(cam-entity basic :offset-assert 2204)
(velocity vector :inline :offset-assert 2208)
(desired-pos vector :inline :offset-assert 2224)
(time-dist-too-far uint32 :offset-assert 2240)
(los-state uint32 :offset-assert 2244)
(good-point vector :inline :offset-assert 2256)
(los-tgt-spline-pt int32 :offset-assert 2272)
(los-tgt-spline-pt-incarnation int32 :offset-assert 2276)
(los-last-pos vector :inline :offset-assert 2288)
(intro-curve curve :inline :offset-assert 2304)
(intro-offset vector :inline :offset-assert 2336)
(intro-t float :offset-assert 2352)
(intro-t-step float :offset-assert 2356)
(outro-exit-value float :offset-assert 2360)
(spline-exists basic :offset-assert 2364)
(spline-curve curve :inline :offset-assert 2368)
(spline-offset vector :inline :offset-assert 2400)
(index cam-index :inline :offset-assert 2416)
(saved-pt vector :inline :offset-assert 2464)
(spline-tt float :offset-assert 2480)
(spline-follow-dist float :offset-assert 2484)
(change-event-from uint32 :offset-assert 2488)
(enter-has-run basic :offset-assert 2492)
(blend-from-type uint64 :offset-assert 2496)
(blend-to-type uint64 :offset-assert 2504)
(have-phony-joystick basic :offset-assert 2512)
(phony-joystick-x float :offset-assert 2516)
(phony-joystick-y float :offset-assert 2520)
(string-min-val vector :inline :offset-assert 2528)
(string-max-val vector :inline :offset-assert 2544)
(string-val-locked basic :offset-assert 2560)
)
:heap-base #x9a0
:method-count-assert 14
:size-assert #xa04
:flag-assert #xe09a00a04
)
;; definition of type camera-master
(deftype camera-master (process)
((master-options uint32 :offset-assert 112)
(num-slaves int32 :offset-assert 116)
(slave basic 2 :offset-assert 120)
(slave-options uint32 :offset-assert 128)
(view-off-param-save float :offset-assert 132)
(changer uint32 :offset-assert 136)
(cam-entity basic :offset-assert 140)
(stringMinLength float :offset-assert 144)
(stringMaxLength float :offset-assert 148)
(stringMinHeight float :offset-assert 152)
(stringMaxHeight float :offset-assert 156)
(string-min cam-vector-seeker :inline :offset-assert 160)
(string-max cam-vector-seeker :inline :offset-assert 224)
(string-push-z float :offset-assert 284)
(stringCliffHeight float :offset-assert 288)
(no-intro uint32 :offset-assert 292)
(force-blend uint32 :offset-assert 296)
(force-blend-time uint32 :offset-assert 300)
(local-down vector :inline :offset-assert 304)
(drawable-target uint64 :offset-assert 320)
(which-bone int32 :offset-assert 328)
(pov-handle uint64 :offset-assert 336)
(pov-bone int32 :offset-assert 344)
(being-attacked basic :offset-assert 348)
(attack-start uint64 :offset-assert 352)
(on-ground basic :offset-assert 360)
(under-water int32 :offset-assert 364)
(on-pole basic :offset-assert 368)
(tgt-rot-mat matrix :inline :offset-assert 384)
(tgt-face-mat matrix :inline :offset-assert 448)
(tpos-old vector :inline :offset-assert 512)
(tpos-curr vector :inline :offset-assert 528)
(target-height float :offset-assert 544)
(tpos-old-adj vector :inline :offset-assert 560)
(tpos-curr-adj vector :inline :offset-assert 576)
(tpos-tgt vector :inline :offset-assert 592)
(upspeed float :offset-assert 608)
(pitch-off vector :inline :offset-assert 624)
(foot-offset float :offset-assert 640)
(head-offset float :offset-assert 644)
(target-spline tracking-spline :inline :offset-assert 656)
(ease-from vector :inline :offset-assert 2304)
(ease-t float :offset-assert 2320)
(ease-step float :offset-assert 2324)
(ease-to vector :inline :offset-assert 2336)
(outro-curve curve :inline :offset-assert 2352)
(outro-t float :offset-assert 2372)
(outro-t-step float :offset-assert 2376)
(outro-exit-value float :offset-assert 2380)
(water-drip-time uint64 :offset-assert 2384)
(water-drip basic :offset-assert 2392)
(water-drip-mult float :offset-assert 2396)
(water-drip-speed float :offset-assert 2400)
)
:heap-base #x900
:method-count-assert 14
:size-assert #x964
:flag-assert #xe09000964
)