jak-project/goal_src/jak2/engine/math/transform-h.gc
water111 f7bd0752f8
[decomp] Decompile first batch of files in engine (#1787)
* wip

* getting stuff set up so we can actually run test cases

* better handle block entry stuff

* types2 working on gstring

* comments

* math ref working

* up to first stack stuff

* stack fixes

* bounding box

* math stuff is working

* float fixes

* temp debug for (method 9 profile-array)

* stupid stupid bug

* debugging

* everything is broken

* some amount of type stuff works

* bitfield

* texture bitfields not working

* temp

* types

* more stuff

* type check

* temp

* float related fixes for light and res problems

* revisit broken files, fix bugs

* more types

* vector debug

* bug fixes for decompiler crashes in harder functions

* update goal_src
2022-08-24 00:29:51 -04:00

41 lines
1.1 KiB
Common Lisp

;;-*-Lisp-*-
(in-package goal)
;; name: transform-h.gc
;; name in dgo: transform-h
;; dgos: ENGINE, GAME
;; DECOMP BEGINS
;; Transformation. w components of vectors should be 1.0
;; This can represent any rotation, translation, and scaling.
;; Note that the scaling is applied before rotation (meaning it scales along the axes of the pre-transformed frame).
(deftype transform (structure)
((trans vector :inline :offset-assert 0)
(rot vector :inline :offset-assert 16)
(scale vector :inline :offset-assert 32)
)
:method-count-assert 9
:size-assert #x30
:flag-assert #x900000030
)
;; Like transform, but it's a basic.
;; note that the trsq child type overrides this rotation with a quaternion.
;; usage of the plain trs is very limited, at least in jak 1.
(deftype trs (basic)
((trans vector :inline :offset-assert 16)
(rot vector :inline :offset-assert 32)
(scale vector :inline :offset-assert 48)
)
(:methods
(new (symbol type) _type_ 0)
)
:method-count-assert 9
:size-assert #x40
:flag-assert #x900000040
)