Start setting up texture animation for jak 3. (#3524)

For now, this just adds sky (clouds and fog), darkjak, and skull gem.

There are some unknown issues with drawing the skull gems still, but I
think it's unrelated to texture animations.

Also fixes https://github.com/open-goal/jak-project/issues/3523
This commit is contained in:
water111
2024-05-18 11:23:48 -04:00
committed by GitHub
parent a61f24a168
commit 271007e552
20 changed files with 4238 additions and 633 deletions
+35 -28
View File
@@ -3,34 +3,41 @@
;; definition of type texture-anim-layer
(deftype texture-anim-layer (structure)
((extra vector :inline :offset 240)
(func (function dma-buffer uint int int texture-anim-layer float int))
(func-id symbol :overlay-at func)
(init-func (function texture-anim-layer int))
(init-func-id symbol :overlay-at init-func)
(tex texture)
(start-time float)
(end-time float)
(tex-name string)
(test gs-test)
(alpha gs-alpha)
(clamp gs-clamp)
(start-color vector :inline :offset 80)
(start-scale vector2 :inline :offset 96)
(start-offset vector2 :inline :offset 104)
(start-st-scale vector2 :inline :offset 112)
(start-st-offset vector2 :inline :offset 120)
(start-qs vector :inline :offset 128)
(start-rot degrees :offset 144)
(start-st-rot degrees :offset 148)
(end-color vector :inline :offset 160)
(end-scale vector2 :inline :offset 176)
(end-offset vector2 :inline :offset 184)
(end-st-scale vector2 :inline :offset 192)
(end-st-offset vector2 :inline :offset 200)
(end-qs vector :inline :offset 208)
(end-rot degrees :offset 224)
(end-st-rot degrees :offset 228)
((interpolated-color vector :inline)
(interpolated-scale-offset vector :inline)
(interpolated-st-scale-offset vector :inline)
(interpolated-qs vector :inline)
(interpolated-rot vector :inline)
(extra vector :inline :offset 240)
(func (function dma-buffer uint int int texture-anim-layer float int))
(func-id symbol :overlay-at func)
(init-func (function texture-anim-layer int))
(init-func-id symbol :overlay-at init-func)
(tex texture)
(start-time float)
(end-time float)
(tex-name string)
(test gs-test)
(alpha gs-alpha)
(clamp gs-clamp)
(start-vectors vector 5 :inline :offset 80)
(start-color vector :inline :overlay-at (-> start-vectors 0))
(start-scale vector2 :inline :offset 96)
(start-offset vector2 :inline :offset 104)
(start-st-scale vector2 :inline :offset 112)
(start-st-offset vector2 :inline :offset 120)
(start-qs vector :inline :overlay-at (-> start-vectors 3))
(start-rot degrees :offset 144)
(start-st-rot degrees :offset 148)
(end-vectors vector 5 :inline :offset 160)
(end-color vector :inline :overlay-at (-> end-vectors 0))
(end-scale vector2 :inline :offset 176)
(end-offset vector2 :inline :offset 184)
(end-st-scale vector2 :inline :offset 192)
(end-st-offset vector2 :inline :offset 200)
(end-qs vector :inline :overlay-at (-> end-vectors 3))
(end-rot degrees :offset 224)
(end-st-rot degrees :offset 228)
)
(:methods
(initialize-texture! (_type_) _type_)