2023-10-10 09:41:05 -04:00
|
|
|
;;-*-Lisp-*-
|
|
|
|
(in-package goal)
|
|
|
|
|
|
|
|
;; name: aligner-h.gc
|
|
|
|
;; name in dgo: aligner-h
|
|
|
|
;; dgos: GAME
|
|
|
|
|
[jak3] More headers! (#3351)
Decomp aligner-h, joint-h, prim-h, debug-h, game-h, penetrate-h,
bones-h, foreground-h, scene-h, script-h.
Also, has a little bit of the joint-mod-h file, but it's not finished
yet.
2024-01-31 19:05:12 -05:00
|
|
|
(defenum align-flags
|
|
|
|
:bitfield #t
|
|
|
|
:type uint32
|
|
|
|
(disabled) ;; keep object velocity
|
|
|
|
(af01)
|
|
|
|
(af02)
|
|
|
|
(af03)
|
|
|
|
(af04)
|
|
|
|
(af05)
|
|
|
|
)
|
|
|
|
|
2024-02-15 06:16:07 -05:00
|
|
|
;; +++align-opts
|
|
|
|
(defenum align-opts
|
|
|
|
:bitfield #t
|
|
|
|
:type uint32
|
|
|
|
(adjust-x-vel)
|
|
|
|
(adjust-y-vel)
|
|
|
|
(adjust-xz-vel)
|
|
|
|
(keep-other-velocities)
|
|
|
|
(adjust-quat) ;; 16
|
|
|
|
(alop0)
|
|
|
|
(alop1)
|
|
|
|
(alop2)
|
|
|
|
(alop3)
|
|
|
|
(alop4)
|
|
|
|
(alop5)
|
|
|
|
(no-gravity)
|
|
|
|
(ignore-y-if-zero)
|
|
|
|
)
|
|
|
|
;; ---align-opts
|
|
|
|
|
|
|
|
|
|
|
|
;; +++align-flags
|
|
|
|
(defenum align-flags
|
|
|
|
:bitfield #t
|
|
|
|
:type uint32
|
|
|
|
(disabled) ;; keep object velocity
|
|
|
|
(af01)
|
|
|
|
(af02)
|
|
|
|
(af03)
|
|
|
|
(af04)
|
|
|
|
(af05)
|
|
|
|
)
|
|
|
|
;; ---align-flags
|
|
|
|
|
|
|
|
|
2023-10-10 09:41:05 -04:00
|
|
|
;; DECOMP BEGINS
|
|
|
|
|
[jak3] More headers! (#3351)
Decomp aligner-h, joint-h, prim-h, debug-h, game-h, penetrate-h,
bones-h, foreground-h, scene-h, script-h.
Also, has a little bit of the joint-mod-h file, but it's not finished
yet.
2024-01-31 19:05:12 -05:00
|
|
|
(deftype align-control (basic)
|
|
|
|
((flags align-flags)
|
|
|
|
(process process-drawable)
|
|
|
|
(frame-group art-joint-anim)
|
|
|
|
(frame-num float)
|
|
|
|
(matrix matrix 2 :inline)
|
|
|
|
(transform transform 2 :inline)
|
|
|
|
(delta transformq :inline)
|
|
|
|
(last-speed meters)
|
|
|
|
(align transformq :inline :overlay-at (-> transform 0 trans data 0))
|
|
|
|
)
|
|
|
|
(:methods
|
|
|
|
(new (symbol type process) _type_)
|
2024-03-03 15:15:27 -05:00
|
|
|
(compute-alignment! (_type_) transformq)
|
|
|
|
(align! (_type_ align-opts float float float) trsqv)
|
2024-03-30 10:28:02 -04:00
|
|
|
(align-vel-and-quat-only! (_type_ align-opts vector int float float) trsqv)
|
|
|
|
(first-transform (_type_) transform)
|
|
|
|
(second-transform (_type_) transform)
|
[jak3] More headers! (#3351)
Decomp aligner-h, joint-h, prim-h, debug-h, game-h, penetrate-h,
bones-h, foreground-h, scene-h, script-h.
Also, has a little bit of the joint-mod-h file, but it's not finished
yet.
2024-01-31 19:05:12 -05:00
|
|
|
)
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
;; WARN: Return type mismatch object vs align-control.
|
|
|
|
(defmethod new align-control ((allocation symbol) (type-to-make type) (arg0 process))
|
2024-03-03 15:15:27 -05:00
|
|
|
(let ((this (object-new allocation type-to-make (the-as int (-> type-to-make size)))))
|
|
|
|
(when (zero? this)
|
[jak3] More headers! (#3351)
Decomp aligner-h, joint-h, prim-h, debug-h, game-h, penetrate-h,
bones-h, foreground-h, scene-h, script-h.
Also, has a little bit of the joint-mod-h file, but it's not finished
yet.
2024-01-31 19:05:12 -05:00
|
|
|
(go process-drawable-art-error "memory")
|
|
|
|
(return (the-as align-control 0))
|
|
|
|
)
|
2024-03-03 15:15:27 -05:00
|
|
|
(set! (-> this process) (the-as process-drawable arg0))
|
|
|
|
(the-as align-control this)
|
[jak3] More headers! (#3351)
Decomp aligner-h, joint-h, prim-h, debug-h, game-h, penetrate-h,
bones-h, foreground-h, scene-h, script-h.
Also, has a little bit of the joint-mod-h file, but it's not finished
yet.
2024-01-31 19:05:12 -05:00
|
|
|
)
|
|
|
|
)
|