mirror of
https://github.com/open-goal/jak-project.git
synced 2024-10-21 07:37:45 -04:00
2b6684aa5c
* clean up * before int to float stuff * before trying to eliminate the separate read and write maps * partial fix for register issues * add missing include
197 lines
5.8 KiB
Common Lisp
197 lines
5.8 KiB
Common Lisp
;;-*-Lisp-*-
|
|
(in-package goal)
|
|
|
|
;; name: subdivide-h.gc
|
|
;; name in dgo: subdivide-h
|
|
;; dgos: GAME, ENGINE
|
|
|
|
(deftype subdivide-settings (basic)
|
|
((dist float 5 :offset-assert 4)
|
|
(meters float 5 :offset-assert 24)
|
|
(close float 4 :offset-assert 44)
|
|
(far float 4 :offset-assert 60)
|
|
)
|
|
:method-count-assert 9
|
|
:size-assert #x4c
|
|
:flag-assert #x90000004c
|
|
(:methods
|
|
(new (symbol type meters meters) _type_ 0)
|
|
)
|
|
)
|
|
|
|
(defmethod new subdivide-settings ((allocation symbol) (type-to-make type) (arg0 meters) (arg1 meters))
|
|
(let ((v0-0 (object-new allocation type-to-make (the-as int (-> type-to-make size)))))
|
|
(dotimes (v1-2 3)
|
|
(set! (-> v0-0 close v1-2) arg0)
|
|
(set! (-> v0-0 far v1-2) arg1)
|
|
)
|
|
v0-0
|
|
)
|
|
)
|
|
|
|
(deftype subdivide-dists (structure)
|
|
((data uint32 32 :offset 0)
|
|
(vector vector 8 :inline :offset 0)
|
|
(k0s uint128 4 :offset 0)
|
|
(k1s uint128 4 :offset 64)
|
|
)
|
|
:method-count-assert 9
|
|
:size-assert #x80
|
|
:flag-assert #x900000080
|
|
)
|
|
|
|
(deftype gs-packed-rgba (structure)
|
|
((data int32 4 :offset-assert 0)
|
|
(red int32 :offset 0)
|
|
(green int32 :offset 4)
|
|
(blue int32 :offset 8)
|
|
(alpha int32 :offset 12)
|
|
)
|
|
:method-count-assert 9
|
|
:size-assert #x10
|
|
:flag-assert #x900000010
|
|
)
|
|
|
|
(deftype gs-packed-xyzw (structure)
|
|
((data int32 4 :offset-assert 0)
|
|
(x int32 :offset 0)
|
|
(y int32 :offset 4)
|
|
(z int32 :offset 8)
|
|
(w int32 :offset 12)
|
|
(quad uint128 :offset 0)
|
|
)
|
|
:method-count-assert 9
|
|
:size-assert #x10
|
|
:flag-assert #x900000010
|
|
)
|
|
|
|
(deftype gs-packed-stq (structure)
|
|
((data float 4 :offset-assert 0)
|
|
(tex-s float :offset 0)
|
|
(tex-t float :offset 4)
|
|
(tex-q float :offset 8)
|
|
(quad uint128 :offset 0)
|
|
)
|
|
:method-count-assert 9
|
|
:size-assert #x10
|
|
:flag-assert #x900000010
|
|
)
|
|
|
|
(deftype gs-packed-gt (structure)
|
|
((stq gs-packed-stq :inline :offset-assert 0)
|
|
(rgba gs-packed-rgba :inline :offset-assert 16)
|
|
(xyzw gs-packed-xyzw :inline :offset-assert 32)
|
|
)
|
|
:method-count-assert 9
|
|
:size-assert #x30
|
|
:flag-assert #x900000030
|
|
)
|
|
|
|
(deftype gs-packed-gt4 (structure)
|
|
((data gs-packed-gt 4 :inline :offset-assert 0)
|
|
)
|
|
:method-count-assert 9
|
|
:size-assert #xc0
|
|
:flag-assert #x9000000c0
|
|
)
|
|
|
|
(deftype terrain-bsp (structure)
|
|
((lev-index int32 :offset-assert 0)
|
|
(mood basic :offset-assert 4)
|
|
)
|
|
:method-count-assert 9
|
|
:size-assert #x8
|
|
:flag-assert #x900000008
|
|
)
|
|
|
|
(deftype terrain-stats (structure)
|
|
((pris tr-stat :inline :offset-assert 0)
|
|
(tie-generic tr-stat :inline :offset-assert 16)
|
|
(tie tr-stat :inline :offset-assert 32)
|
|
(tie-near tr-stat :inline :offset-assert 48)
|
|
(shrub-near tr-stat :inline :offset-assert 64)
|
|
(shrub tr-stat :inline :offset-assert 80)
|
|
(tfrag-near tr-stat :inline :offset-assert 96)
|
|
(tfrag tr-stat :inline :offset-assert 112)
|
|
(billboard tr-stat :inline :offset-assert 128)
|
|
(trans-tfrag tr-stat :inline :offset-assert 144)
|
|
(trans-tfrag-near tr-stat :inline :offset-assert 160)
|
|
(trans-pris tr-stat :inline :offset-assert 176)
|
|
(trans-shrub tr-stat :inline :offset-assert 192)
|
|
(ocean-mid tr-stat :inline :offset-assert 208)
|
|
(ocean-near tr-stat :inline :offset-assert 224)
|
|
(total tr-stat :inline :offset-assert 240)
|
|
)
|
|
:method-count-assert 9
|
|
:size-assert #x100
|
|
:flag-assert #x900000100
|
|
)
|
|
|
|
(deftype dma-area (structure)
|
|
((draw-node-dma draw-node-dma :inline :offset 0)
|
|
(tfrag-dma tfrag-dma :inline :offset 0)
|
|
(instance-shrub-dma instance-shrub-dma :inline :offset 0)
|
|
(instance-tie-dma instance-tie-dma :inline :offset 0)
|
|
(prototype-tie-dma prototype-tie-dma :inline :offset 0)
|
|
(time-of-day-dma time-of-day-dma :inline :offset 0)
|
|
(decomp-work decomp-work :inline :offset 0)
|
|
(ocean-vertex ocean-vertex 4 :inline :offset 0)
|
|
)
|
|
:method-count-assert 9
|
|
:size-assert #x38a0
|
|
:flag-assert #x9000038a0
|
|
)
|
|
|
|
(deftype background-area (structure)
|
|
((dma-area dma-area :inline :offset-assert 0)
|
|
(vis-list uint8 2048 :offset-assert 14496)
|
|
)
|
|
:method-count-assert 9
|
|
:size-assert #x40a0
|
|
:flag-assert #x9000040a0
|
|
)
|
|
|
|
(deftype foreground-area (structure)
|
|
((joint-work joint-work :inline :offset-assert 0)
|
|
(generic-work generic-work :inline :offset 0)
|
|
(bone-mem bone-memory :inline :offset 0)
|
|
(shadow-work shadow-work :inline :offset 0)
|
|
)
|
|
:method-count-assert 9
|
|
:size-assert #x3fd0
|
|
:flag-assert #x900003fd0
|
|
)
|
|
|
|
(deftype ambient-area (structure)
|
|
((ambient-list ambient-list :inline :offset-assert 0)
|
|
)
|
|
:method-count-assert 9
|
|
:size-assert #x2004
|
|
:flag-assert #x900002004
|
|
)
|
|
|
|
(deftype work-area (structure)
|
|
((background background-area :inline :offset-assert 0)
|
|
(foreground foreground-area :inline :offset 0)
|
|
(ambient ambient-area :inline :offset 0)
|
|
)
|
|
:method-count-assert 9
|
|
:size-assert #x40a0
|
|
:flag-assert #x9000040a0
|
|
)
|
|
|
|
(deftype terrain-context (structure)
|
|
((bsp terrain-bsp :inline :offset-assert 0)
|
|
(work work-area :inline :offset-assert 16)
|
|
)
|
|
:method-count-assert 9
|
|
:size-assert #x40b0
|
|
:flag-assert #x9000040b0
|
|
)
|
|
|
|
(define *terrain-stats* (new 'global 'terrain-stats))
|
|
|
|
(define *collide-stats* (new 'global 'collide-stats))
|
|
(define-extern *subdivide-settings* subdivide-settings)
|
|
(define-extern update-subdivide-settings! (function subdivide-settings math-camera int none))
|