jak-project/goal_src/jak3/engine/math/matrix-compose.gc
Hat Kid 93afb02cf4
decomp3: spawn target, add merc and particle buckets and some temporary hacks (#3445)
This includes all the collision stuff needed to spawn `target`,
decompiles the sparticle code and adds some of the PC hacks needed for
merc to run (it doesn't work quite right and looks bad, likely due to a
combination of code copied from Jak 2 and the time of day hacks).

There are a bunch of temporary hacks (see commits) in place to prevent
the game from crashing quite as much, but it is still extremely prone to
doing so due to lots of missing functions/potentially bad decomp.

---------

Co-authored-by: water <awaterford111445@gmail.com>
2024-04-05 00:07:39 -04:00

109 lines
3.3 KiB
Common Lisp

;;-*-Lisp-*-
(in-package goal)
;; name: matrix-compose.gc
;; name in dgo: matrix-compose
;; dgos: GAME
;; DECOMP BEGINS
(defun matrix-fur-compose ((arg0 matrix) (arg1 vector) (arg2 vector) (arg3 vector))
(set! (-> arg0 rvec quad) (-> arg3 quad))
(set! (-> arg0 uvec quad) (-> arg2 quad))
(set! (-> arg0 fvec quad) (-> arg1 quad))
arg0
)
(defun matrix-fu-compose ((arg0 matrix) (arg1 vector) (arg2 vector))
(set! (-> arg0 fvec quad) (-> arg1 quad))
(set! (-> arg0 uvec quad) (-> arg2 quad))
(vector-cross! (-> arg0 rvec) arg2 arg1)
arg0
)
(defun matrix-fr-compose ((arg0 matrix) (arg1 vector) (arg2 vector))
(set! (-> arg0 fvec quad) (-> arg1 quad))
(set! (-> arg0 rvec quad) (-> arg2 quad))
(vector-cross! (-> arg0 uvec) arg1 arg2)
arg0
)
(defun matrix-ur-compose ((arg0 matrix) (arg1 vector) (arg2 vector) (arg3 vector))
(set! (-> arg0 rvec quad) (-> arg2 quad))
(set! (-> arg0 uvec quad) (-> arg1 quad))
(vector-cross! (-> arg0 fvec) arg1 arg2)
arg0
)
(defun matrix-f-u-compose ((arg0 matrix) (arg1 vector) (arg2 vector))
(set! (-> arg0 fvec quad) (-> arg1 quad))
(vector-cross! (-> arg0 rvec) arg2 arg1)
(vector-normalize! (-> arg0 rvec) 1.0)
(vector-cross! (-> arg0 uvec) arg1 (-> arg0 rvec))
arg0
)
(defun matrix-f-r-compose ((arg0 matrix) (arg1 vector) (arg2 vector))
(set! (-> arg0 fvec quad) (-> arg1 quad))
(vector-cross! (-> arg0 uvec) arg1 arg2)
(vector-normalize! (-> arg0 uvec) 1.0)
(vector-cross! (-> arg0 rvec) (-> arg0 uvec) arg1)
arg0
)
(defun matrix-u-f-compose ((arg0 matrix) (arg1 vector) (arg2 vector))
(set! (-> arg0 uvec quad) (-> arg1 quad))
(vector-cross! (-> arg0 rvec) arg1 arg2)
(vector-normalize! (-> arg0 rvec) 1.0)
(vector-cross! (-> arg0 fvec) (-> arg0 rvec) arg1)
arg0
)
(defun matrix-u-r-compose ((arg0 matrix) (arg1 vector) (arg2 vector) (arg3 vector))
(set! (-> arg0 uvec quad) (-> arg1 quad))
(vector-cross! (-> arg0 fvec) arg2 arg1)
(vector-normalize! (-> arg0 fvec) 1.0)
(vector-cross! (-> arg0 rvec) arg1 (-> arg0 fvec))
arg0
)
(defun matrix-r-f-compose ((arg0 matrix) (arg1 vector) (arg2 vector) (arg3 vector))
(set! (-> arg0 rvec quad) (-> arg1 quad))
(vector-cross! (-> arg0 uvec) arg2 arg1)
(vector-normalize! (-> arg0 uvec) 1.0)
(vector-cross! (-> arg0 fvec) arg1 (-> arg0 uvec))
arg0
)
(defun matrix-r-u-compose ((arg0 matrix) (arg1 vector) (arg2 vector) (arg3 vector))
(set! (-> arg0 rvec quad) (-> arg1 quad))
(vector-cross! (-> arg0 fvec) arg1 arg2)
(vector-normalize! (-> arg0 fvec) 1.0)
(vector-cross! (-> arg0 uvec) (-> arg0 fvec) arg1)
arg0
)
(defun matrix-f-compose ((arg0 matrix) (arg1 vector) (arg2 float))
(set! (-> arg0 fvec quad) (-> arg1 quad))
(let ((a2-1 (vector-get-unique! (new 'stack-no-clear 'vector) arg1)))
(matrix-f-u-compose arg0 arg1 a2-1)
)
arg0
)
(defun matrix-u-compose ((arg0 matrix) (arg1 vector) (arg2 vector) (arg3 vector))
(set! (-> arg0 uvec quad) (-> arg1 quad))
(let ((a2-1 (vector-get-unique! (new 'stack-no-clear 'vector) arg1)))
(matrix-u-f-compose arg0 arg1 a2-1)
)
arg0
)
(defun matrix-r-compose ((arg0 matrix) (arg1 vector) (arg2 vector) (arg3 vector))
(set! (-> arg0 rvec quad) (-> arg1 quad))
(let ((a2-1 (vector-get-unique! (new 'stack-no-clear 'vector) arg1)))
(matrix-r-f-compose arg0 arg1 a2-1 arg3)
)
arg0
)