mirror of
https://github.com/open-goal/jak-project
synced 2026-06-01 17:58:14 -04:00
720 lines
24 KiB
Common Lisp
Vendored
Generated
720 lines
24 KiB
Common Lisp
Vendored
Generated
;;-*-Lisp-*-
|
|
(in-package goal)
|
|
|
|
;; definition of type joint-anim
|
|
(deftype joint-anim (basic)
|
|
"Base class for all joint animations. These are animations that store joint transforms."
|
|
((name string)
|
|
(number int16)
|
|
(length int16)
|
|
)
|
|
)
|
|
|
|
;; definition for method 3 of type joint-anim
|
|
(defmethod inspect ((this joint-anim))
|
|
(when (not this)
|
|
(set! this this)
|
|
(goto cfg-4)
|
|
)
|
|
(format #t "[~8x] ~A~%" this (-> this type))
|
|
(format #t "~1Tname: ~A~%" (-> this name))
|
|
(format #t "~1Tnumber: ~D~%" (-> this number))
|
|
(format #t "~1Tlength: ~D~%" (-> this length))
|
|
(label cfg-4)
|
|
this
|
|
)
|
|
|
|
;; definition of type joint-anim-matrix
|
|
(deftype joint-anim-matrix (joint-anim)
|
|
"Joint animation which stores matrices directly. Not used."
|
|
((data matrix :inline :dynamic :offset 16)
|
|
)
|
|
)
|
|
|
|
;; definition of type joint-anim-transformq
|
|
(deftype joint-anim-transformq (joint-anim)
|
|
"Joint animation which stores transformq's directly. Not used."
|
|
((data transformq :inline :dynamic :offset 16)
|
|
)
|
|
)
|
|
|
|
;; definition for method 3 of type joint-anim-transformq
|
|
(defmethod inspect ((this joint-anim-transformq))
|
|
(when (not this)
|
|
(set! this this)
|
|
(goto cfg-7)
|
|
)
|
|
(format #t "[~8x] ~A~%" this (-> this type))
|
|
(format #t "~1Tname: ~A~%" (-> this name))
|
|
(format #t "~1Tnumber: ~D~%" (-> this number))
|
|
(format #t "~1Tlength: ~D~%" (-> this length))
|
|
(format #t "~1Tdata[0] @ #x~X~%" (-> this data))
|
|
(dotimes (s5-0 (-> this length))
|
|
(format #t "~T [~D]~1Tdata: ~`transformq`P~%" s5-0 (-> this data s5-0))
|
|
)
|
|
(label cfg-7)
|
|
this
|
|
)
|
|
|
|
;; definition of type joint-anim-drawable
|
|
(deftype joint-anim-drawable (joint-anim)
|
|
"Mysterious unused joint animation type."
|
|
((data drawable :dynamic)
|
|
)
|
|
)
|
|
|
|
;; definition for method 3 of type joint-anim-drawable
|
|
(defmethod inspect ((this joint-anim-drawable))
|
|
(when (not this)
|
|
(set! this this)
|
|
(goto cfg-4)
|
|
)
|
|
(format #t "[~8x] ~A~%" this (-> this type))
|
|
(format #t "~1Tname: ~A~%" (-> this name))
|
|
(format #t "~1Tnumber: ~D~%" (-> this number))
|
|
(format #t "~1Tlength: ~D~%" (-> this length))
|
|
(format #t "~1Tdata[0] @ #x~X~%" (-> this data))
|
|
(label cfg-4)
|
|
this
|
|
)
|
|
|
|
;; definition of type joint-anim-frame
|
|
(deftype joint-anim-frame (structure)
|
|
"Frame containing all joint transforms. Note that there are two special frames: align and prejoint.
|
|
The 'align' frame is used for the complicated animation alignment system, which allows the animation to move
|
|
a character, among other things. The prejoint is just the root of the skeleton.
|
|
The remaining transformq's are the joint transforms you'd expect."
|
|
((matrices matrix 2 :inline)
|
|
(data transformq :inline :dynamic)
|
|
)
|
|
(:methods
|
|
(new (symbol type int) _type_)
|
|
)
|
|
)
|
|
|
|
;; definition for method 3 of type joint-anim-frame
|
|
(defmethod inspect ((this joint-anim-frame))
|
|
(when (not this)
|
|
(set! this this)
|
|
(goto cfg-4)
|
|
)
|
|
(format #t "[~8x] ~A~%" this 'joint-anim-frame)
|
|
(format #t "~1Tmatrices[2] @ #x~X~%" (-> this matrices))
|
|
(format #t "~1Tdata[0] @ #x~X~%" (-> this data))
|
|
(label cfg-4)
|
|
this
|
|
)
|
|
|
|
;; definition for method 0 of type joint-anim-frame
|
|
;; WARN: Return type mismatch structure vs joint-anim-frame.
|
|
(defmethod new joint-anim-frame ((allocation symbol) (type-to-make type) (arg0 int))
|
|
(let ((v1-1 (max 0 (+ arg0 -2))))
|
|
(the-as
|
|
joint-anim-frame
|
|
(new-dynamic-structure allocation type-to-make (the-as int (+ (-> type-to-make size) (* 48 v1-1))))
|
|
)
|
|
)
|
|
)
|
|
|
|
;; definition of type joint-anim-compressed-hdr
|
|
(deftype joint-anim-compressed-hdr (structure)
|
|
"Header for the compressed joint animation format."
|
|
((control-bits uint32 14)
|
|
(num-joints uint32)
|
|
(matrix-bits uint32)
|
|
)
|
|
)
|
|
|
|
;; definition for method 3 of type joint-anim-compressed-hdr
|
|
(defmethod inspect ((this joint-anim-compressed-hdr))
|
|
(when (not this)
|
|
(set! this this)
|
|
(goto cfg-4)
|
|
)
|
|
(format #t "[~8x] ~A~%" this 'joint-anim-compressed-hdr)
|
|
(format #t "~1Tcontrol-bits[14] @ #x~X~%" (-> this control-bits))
|
|
(format #t "~1Tnum-joints: ~D~%" (-> this num-joints))
|
|
(format #t "~1Tmatrix-bits: ~D~%" (-> this matrix-bits))
|
|
(label cfg-4)
|
|
this
|
|
)
|
|
|
|
;; definition of type joint-anim-compressed-fixed
|
|
(deftype joint-anim-compressed-fixed (structure)
|
|
((hdr joint-anim-compressed-hdr :inline)
|
|
(offset-64 uint32)
|
|
(offset-32 uint32)
|
|
(offset-16 uint32)
|
|
(reserved uint32)
|
|
(data vector 133 :inline)
|
|
)
|
|
)
|
|
|
|
;; definition for method 3 of type joint-anim-compressed-fixed
|
|
(defmethod inspect ((this joint-anim-compressed-fixed))
|
|
(when (not this)
|
|
(set! this this)
|
|
(goto cfg-4)
|
|
)
|
|
(format #t "[~8x] ~A~%" this 'joint-anim-compressed-fixed)
|
|
(format #t "~1Thdr: #<joint-anim-compressed-hdr @ #x~X>~%" (-> this hdr))
|
|
(format #t "~1Toffset-64: ~D~%" (-> this offset-64))
|
|
(format #t "~1Toffset-32: ~D~%" (-> this offset-32))
|
|
(format #t "~1Toffset-16: ~D~%" (-> this offset-16))
|
|
(format #t "~1Treserved: ~D~%" (-> this reserved))
|
|
(format #t "~1Tdata[133] @ #x~X~%" (-> this data))
|
|
(label cfg-4)
|
|
this
|
|
)
|
|
|
|
;; definition of type joint-anim-compressed-frame
|
|
(deftype joint-anim-compressed-frame (structure)
|
|
((offset-64 uint32)
|
|
(offset-32 uint32)
|
|
(offset-16 uint32)
|
|
(reserved uint32)
|
|
(data vector 133 :inline)
|
|
)
|
|
)
|
|
|
|
;; definition for method 3 of type joint-anim-compressed-frame
|
|
(defmethod inspect ((this joint-anim-compressed-frame))
|
|
(when (not this)
|
|
(set! this this)
|
|
(goto cfg-4)
|
|
)
|
|
(format #t "[~8x] ~A~%" this 'joint-anim-compressed-frame)
|
|
(format #t "~1Toffset-64: ~D~%" (-> this offset-64))
|
|
(format #t "~1Toffset-32: ~D~%" (-> this offset-32))
|
|
(format #t "~1Toffset-16: ~D~%" (-> this offset-16))
|
|
(format #t "~1Treserved: ~D~%" (-> this reserved))
|
|
(format #t "~1Tdata[133] @ #x~X~%" (-> this data))
|
|
(label cfg-4)
|
|
this
|
|
)
|
|
|
|
;; definition of type joint-anim-compressed-control
|
|
(deftype joint-anim-compressed-control (structure)
|
|
((num-frames uint16)
|
|
(flags uint16)
|
|
(fixed-qwc uint32)
|
|
(frame-qwc uint32)
|
|
(fixed joint-anim-compressed-fixed)
|
|
(data joint-anim-compressed-frame :dynamic)
|
|
)
|
|
)
|
|
|
|
;; definition for method 3 of type joint-anim-compressed-control
|
|
(defmethod inspect ((this joint-anim-compressed-control))
|
|
(when (not this)
|
|
(set! this this)
|
|
(goto cfg-4)
|
|
)
|
|
(format #t "[~8x] ~A~%" this 'joint-anim-compressed-control)
|
|
(format #t "~1Tnum-frames: ~D~%" (-> this num-frames))
|
|
(format #t "~1Tflags: ~D~%" (-> this flags))
|
|
(format #t "~1Tfixed-qwc: ~D~%" (-> this fixed-qwc))
|
|
(format #t "~1Tframe-qwc: ~D~%" (-> this frame-qwc))
|
|
(format #t "~1Tfixed: #<joint-anim-compressed-fixed @ #x~X>~%" (-> this fixed))
|
|
(format #t "~1Tdata[0] @ #x~X~%" (-> this data))
|
|
(label cfg-4)
|
|
this
|
|
)
|
|
|
|
;; definition of type art
|
|
(deftype art (basic)
|
|
"Base class for anything considered `art`. This is typically foreground model data.
|
|
This can be either an art container containing more arts, or an actual art thing (art-element)."
|
|
((name string :offset 8)
|
|
(length int32)
|
|
(extra res-lump)
|
|
)
|
|
(:methods
|
|
(login (_type_) _type_)
|
|
(get-art-by-name-method (_type_ string type) basic)
|
|
(get-art-idx-by-name-method (_type_ string type) int)
|
|
(needs-link? (_type_) symbol)
|
|
)
|
|
)
|
|
|
|
;; definition for method 3 of type art
|
|
(defmethod inspect ((this art))
|
|
(when (not this)
|
|
(set! this this)
|
|
(goto cfg-4)
|
|
)
|
|
(format #t "[~8x] ~A~%" this (-> this type))
|
|
(format #t "~1Tname: ~A~%" (-> this name))
|
|
(format #t "~1Tlength: ~D~%" (-> this length))
|
|
(format #t "~1Textra: ~A~%" (-> this extra))
|
|
(label cfg-4)
|
|
this
|
|
)
|
|
|
|
;; definition of type art-element
|
|
(deftype art-element (art)
|
|
"Base class Art which is not a container of more art."
|
|
((pad uint8 12)
|
|
)
|
|
)
|
|
|
|
;; definition for method 3 of type art-element
|
|
(defmethod inspect ((this art-element))
|
|
(when (not this)
|
|
(set! this this)
|
|
(goto cfg-4)
|
|
)
|
|
(format #t "[~8x] ~A~%" this (-> this type))
|
|
(format #t "~1Tname: ~A~%" (-> this name))
|
|
(format #t "~1Tlength: ~D~%" (-> this length))
|
|
(format #t "~1Textra: ~A~%" (-> this extra))
|
|
(label cfg-4)
|
|
this
|
|
)
|
|
|
|
;; definition of type art-mesh-anim
|
|
(deftype art-mesh-anim (art-element)
|
|
"An unused mesh animation."
|
|
((data basic :dynamic)
|
|
)
|
|
)
|
|
|
|
;; definition of type art-joint-anim
|
|
(deftype art-joint-anim (art-element)
|
|
"Art for a joint animation. Also contains the eye animation."
|
|
((speed float :overlay-at (-> pad 0))
|
|
(artist-base float :overlay-at (-> pad 4))
|
|
(artist-step float :overlay-at (-> pad 8))
|
|
(eye-anim merc-eye-anim-block :offset 4)
|
|
(master-art-group-name string)
|
|
(master-art-group-index int32)
|
|
(blend-shape-anim (pointer int8))
|
|
(frames joint-anim-compressed-control)
|
|
)
|
|
)
|
|
|
|
;; definition for method 3 of type art-joint-anim
|
|
(defmethod inspect ((this art-joint-anim))
|
|
(when (not this)
|
|
(set! this this)
|
|
(goto cfg-4)
|
|
)
|
|
(format #t "[~8x] ~A~%" this (-> this type))
|
|
(format #t "~1Tname: ~A~%" (-> this name))
|
|
(format #t "~1Tlength: ~D~%" (-> this length))
|
|
(format #t "~1Textra: ~A~%" (-> this extra))
|
|
(format #t "~1Tspeed: ~f~%" (-> this speed))
|
|
(format #t "~1Tartist-base: ~f~%" (-> this artist-base))
|
|
(format #t "~1Tartist-step: ~f~%" (-> this artist-step))
|
|
(format #t "~1Teye-anim: ~A~%" (-> this eye-anim))
|
|
(format #t "~1Tmaster-art-group-name: ~A~%" (-> this master-art-group-name))
|
|
(format #t "~1Tmaster-art-group-index: ~D~%" (-> this master-art-group-index))
|
|
(format #t "~1Tblend-shape-anim: ~A~%" (-> this blend-shape-anim))
|
|
(format #t "~1Tframes: #<joint-anim-compressed-control @ #x~X>~%" (-> this frames))
|
|
(label cfg-4)
|
|
this
|
|
)
|
|
|
|
;; definition of type art-group
|
|
(deftype art-group (art)
|
|
((info file-info :offset 4)
|
|
(data art-element :dynamic :offset 32)
|
|
)
|
|
(:methods
|
|
(relocate (_type_ kheap (pointer uint8)) none :replace)
|
|
(link-art! (_type_) art-group)
|
|
(unlink-art! (_type_) int)
|
|
)
|
|
)
|
|
|
|
;; definition of type art-mesh-geo
|
|
(deftype art-mesh-geo (art-element)
|
|
"Unused art format for a mesh. This might have been for the renderer that came before merc."
|
|
((data basic :dynamic)
|
|
)
|
|
)
|
|
|
|
;; definition of type art-joint-geo
|
|
(deftype art-joint-geo (art-element)
|
|
"Collection of joints for an actor."
|
|
((data joint :dynamic)
|
|
)
|
|
)
|
|
|
|
;; definition of type art-joint-anim-manager-slot
|
|
(deftype art-joint-anim-manager-slot (structure)
|
|
"Record for an animation which is additionally compressed with LZO compression over the entire animation.
|
|
This is used for short, commonly used animations that always remain in RAM."
|
|
((anim art-joint-anim)
|
|
(comp-data uint32)
|
|
(time-stamp uint64)
|
|
)
|
|
)
|
|
|
|
;; definition for method 3 of type art-joint-anim-manager-slot
|
|
(defmethod inspect ((this art-joint-anim-manager-slot))
|
|
(when (not this)
|
|
(set! this this)
|
|
(goto cfg-4)
|
|
)
|
|
(format #t "[~8x] ~A~%" this 'art-joint-anim-manager-slot)
|
|
(format #t "~1Tanim: ~A~%" (-> this anim))
|
|
(format #t "~1Tcomp-data: #x~X~%" (-> this comp-data))
|
|
(format #t "~1Ttime-stamp: ~D~%" (-> this time-stamp))
|
|
(label cfg-4)
|
|
this
|
|
)
|
|
|
|
;; definition of type art-joint-anim-manager
|
|
(deftype art-joint-anim-manager (basic)
|
|
"Cache for LZO decompression of animations."
|
|
((kheap kheap :inline)
|
|
(free-index int32)
|
|
(slot art-joint-anim-manager-slot 64 :inline)
|
|
)
|
|
(:methods
|
|
(new (symbol type int) _type_)
|
|
(decompress (_type_ art-joint-anim) art-joint-anim)
|
|
(update-time-stamp (_type_ art-joint-anim) art-joint-anim)
|
|
(unload-from-slot (_type_ int) art-joint-anim)
|
|
(used-bytes-for-slot (_type_ int) int)
|
|
(unload-from-level (_type_ level) none)
|
|
)
|
|
)
|
|
|
|
;; definition for method 3 of type art-joint-anim-manager
|
|
(defmethod inspect ((this art-joint-anim-manager))
|
|
(when (not this)
|
|
(set! this this)
|
|
(goto cfg-7)
|
|
)
|
|
(format #t "[~8x] ~A~%" this (-> this type))
|
|
(format #t "~1Theap: #<kheap @ #x~X>~%" (-> this kheap))
|
|
(format #t "~1Tfree-index: ~D~%" (-> this free-index))
|
|
(format #t "~1Tslot[64] @ #x~X~%" (-> this slot))
|
|
(dotimes (s5-0 64)
|
|
(format #t "~T [~D]~1Tslot: ~`art-joint-anim-manager-slot`P~%" s5-0 (-> this slot s5-0))
|
|
)
|
|
(label cfg-7)
|
|
this
|
|
)
|
|
|
|
;; definition for method 0 of type art-joint-anim-manager
|
|
(defmethod new art-joint-anim-manager ((allocation symbol) (type-to-make type) (arg0 int))
|
|
(let ((gp-0 (object-new allocation type-to-make (the-as int (-> type-to-make size)))))
|
|
(let ((s4-0 (-> gp-0 kheap)))
|
|
(set! (-> s4-0 base) (kmalloc (the-as kheap (-> allocation value)) arg0 (kmalloc-flags) "heap"))
|
|
(set! (-> s4-0 current) (-> s4-0 base))
|
|
(set! (-> s4-0 top-base) (&+ (-> s4-0 base) arg0))
|
|
(set! (-> s4-0 top) (-> s4-0 top-base))
|
|
)
|
|
(dotimes (v1-6 64)
|
|
(set! (-> gp-0 slot v1-6 anim) #f)
|
|
)
|
|
(set! (-> gp-0 free-index) 0)
|
|
gp-0
|
|
)
|
|
)
|
|
|
|
;; definition of type skeleton-group
|
|
(deftype skeleton-group (art-group)
|
|
"Unlike other art types, the skeleton-groups are defined in GOAL code.
|
|
This stores settings like the name of the art-group, shadow/level-of-detail settings, etc."
|
|
((art-group-name string)
|
|
(jgeo int32)
|
|
(janim int32)
|
|
(bounds vector :inline)
|
|
(radius meters :overlay-at (-> bounds data 3))
|
|
(mgeo int16 6)
|
|
(max-lod int32)
|
|
(lod-dist float 6)
|
|
(longest-edge meters)
|
|
(texture-level int8)
|
|
(version int8)
|
|
(shadow int8)
|
|
(sort int8)
|
|
(origin-joint-index int8)
|
|
(shadow-joint-index int8)
|
|
(light-index uint8)
|
|
(pad uint8)
|
|
)
|
|
(:methods
|
|
(add-to-loading-level (_type_) skeleton-group)
|
|
)
|
|
)
|
|
|
|
;; definition for method 3 of type skeleton-group
|
|
(defmethod inspect ((this skeleton-group))
|
|
(when (not this)
|
|
(set! this this)
|
|
(goto cfg-4)
|
|
)
|
|
(format #t "[~8x] ~A~%" this (-> this type))
|
|
(format #t "~1Tname: ~A~%" (-> this name))
|
|
(format #t "~1Tlength: ~D~%" (-> this length))
|
|
(format #t "~1Textra: ~A~%" (-> this extra))
|
|
(format #t "~1Tinfo: ~A~%" (-> this info))
|
|
(format #t "~1Tdata[0] @ #x~X~%" (&-> this art-group-name))
|
|
(format #t "~1Tart-group-name: ~A~%" (-> this art-group-name))
|
|
(format #t "~1Tjgeo: ~D~%" (-> this jgeo))
|
|
(format #t "~1Tjanim: ~D~%" (-> this janim))
|
|
(format #t "~1Tbounds: ~`vector`P~%" (-> this bounds))
|
|
(format #t "~1Tradius: (meters ~m)~%" (-> this bounds w))
|
|
(format #t "~1Tmgeo[6] @ #x~X~%" (-> this mgeo))
|
|
(format #t "~1Tmax-lod: ~D~%" (-> this max-lod))
|
|
(format #t "~1Tlod-dist[6] @ #x~X~%" (-> this lod-dist))
|
|
(format #t "~1Tlongest-edge: (meters ~m)~%" (-> this longest-edge))
|
|
(format #t "~1Ttexture-level: ~D~%" (-> this texture-level))
|
|
(format #t "~1Tversion: ~D~%" (-> this version))
|
|
(format #t "~1Tshadow: ~D~%" (-> this shadow))
|
|
(format #t "~1Tsort: ~D~%" (-> this sort))
|
|
(format #t "~1Torigin-joint-index: ~D~%" (-> this origin-joint-index))
|
|
(format #t "~1Tshadow-joint-index: ~D~%" (-> this shadow-joint-index))
|
|
(format #t "~1Tlight-index: ~D~%" (-> this light-index))
|
|
(label cfg-4)
|
|
this
|
|
)
|
|
|
|
;; definition of type lod-group
|
|
(deftype lod-group (structure)
|
|
"A single level of detail mesh."
|
|
((geo merc-ctrl)
|
|
(dist meters)
|
|
)
|
|
:pack-me
|
|
)
|
|
|
|
;; definition for method 3 of type lod-group
|
|
(defmethod inspect ((this lod-group))
|
|
(when (not this)
|
|
(set! this this)
|
|
(goto cfg-4)
|
|
)
|
|
(format #t "[~8x] ~A~%" this 'lod-group)
|
|
(format #t "~1Tgeo: ~A~%" (-> this geo))
|
|
(format #t "~1Tdist: (meters ~m)~%" (-> this dist))
|
|
(label cfg-4)
|
|
this
|
|
)
|
|
|
|
;; definition of type lod-set
|
|
(deftype lod-set (structure)
|
|
"All the different level-of-detail meshes for an actor."
|
|
((lod lod-group 6 :inline)
|
|
(max-lod int8)
|
|
)
|
|
(:methods
|
|
(setup-lods! (_type_ skeleton-group art-group entity) _type_)
|
|
)
|
|
)
|
|
|
|
;; definition for method 3 of type lod-set
|
|
(defmethod inspect ((this lod-set))
|
|
(when (not this)
|
|
(set! this this)
|
|
(goto cfg-4)
|
|
)
|
|
(format #t "[~8x] ~A~%" this 'lod-set)
|
|
(format #t "~1Tlod[6] @ #x~X~%" (-> this lod))
|
|
(format #t "~1Tmax-lod: ~D~%" (-> this max-lod))
|
|
(label cfg-4)
|
|
this
|
|
)
|
|
|
|
;; definition of type draw-control
|
|
(deftype draw-control (basic)
|
|
"The draw-control is a collection of all the stuff that the foreground rendering system needs to draw something.
|
|
Each process-drawable has a draw-control."
|
|
((process process-drawable)
|
|
(status draw-control-status)
|
|
(data-format draw-control-data-format)
|
|
(global-effect draw-control-global-effect)
|
|
(art-group art-group)
|
|
(jgeo art-joint-geo)
|
|
(mgeo merc-ctrl)
|
|
(dma-add-func (function process-drawable draw-control symbol object none))
|
|
(skeleton skeleton)
|
|
(lod-set lod-set :inline)
|
|
(max-lod int8 :overlay-at (-> lod-set max-lod))
|
|
(force-lod int8)
|
|
(cur-lod int8)
|
|
(desired-lod int8)
|
|
(ripple ripple-control)
|
|
(longest-edge meters)
|
|
(longest-edge? uint32 :overlay-at longest-edge)
|
|
(light-index uint8)
|
|
(shadow-mask uint8)
|
|
(level-index uint8)
|
|
(death-draw-overlap uint8)
|
|
(death-timer uint8)
|
|
(death-timer-org uint8)
|
|
(death-vertex-skip uint16)
|
|
(death-effect uint32)
|
|
(shadow shadow-geo)
|
|
(shadow-ctrl shadow-control)
|
|
(distance meters)
|
|
(origin vector :inline)
|
|
(bounds vector :inline)
|
|
(radius meters :overlay-at (-> bounds data 3))
|
|
(color-mult rgbaf :inline)
|
|
(color-emissive rgbaf :inline)
|
|
(effect-mask uint64)
|
|
(seg-mask uint64)
|
|
(origin-joint-index uint8)
|
|
(shadow-joint-index uint8)
|
|
(force-fade uint8)
|
|
(default-texture-page uint8)
|
|
(shadow-values uint32)
|
|
)
|
|
(:methods
|
|
(new (symbol type process symbol) _type_)
|
|
(get-skeleton-origin (_type_) vector)
|
|
(lod-set! (_type_ int) none)
|
|
(lods-assign! (_type_ lod-set) none)
|
|
(setup-masks (_type_ int int) none)
|
|
(setup-cspace-and-add (_type_ art-joint-geo symbol) cspace-array)
|
|
(do-joint-math (_type_ cspace-array joint-control) none)
|
|
)
|
|
)
|
|
|
|
;; definition for method 3 of type draw-control
|
|
(defmethod inspect ((this draw-control))
|
|
(when (not this)
|
|
(set! this this)
|
|
(goto cfg-47)
|
|
)
|
|
(format #t "[~8x] ~A~%" this (-> this type))
|
|
(format #t "~1Tprocess: ~A~%" (-> this process))
|
|
(format #t "~1Tstatus: #x~X : (draw-control-status " (-> this status))
|
|
(let ((s5-0 (-> this status)))
|
|
(if (= (logand s5-0 (draw-control-status no-draw-temp)) (draw-control-status no-draw-temp))
|
|
(format #t "no-draw-temp ")
|
|
)
|
|
(if (= (logand s5-0 (draw-control-status lod-set)) (draw-control-status lod-set))
|
|
(format #t "lod-set ")
|
|
)
|
|
(if (= (logand s5-0 (draw-control-status no-draw-bounds2)) (draw-control-status no-draw-bounds2))
|
|
(format #t "no-draw-bounds2 ")
|
|
)
|
|
(if (= (logand s5-0 (draw-control-status math-skel)) (draw-control-status math-skel))
|
|
(format #t "math-skel ")
|
|
)
|
|
(if (= (logand s5-0 (draw-control-status force-vu1)) (draw-control-status force-vu1))
|
|
(format #t "force-vu1 ")
|
|
)
|
|
(if (= (logand s5-0 (draw-control-status warp-cross-fade)) (draw-control-status warp-cross-fade))
|
|
(format #t "warp-cross-fade ")
|
|
)
|
|
(if (= (logand s5-0 (draw-control-status disable-fog)) (draw-control-status disable-fog))
|
|
(format #t "disable-fog ")
|
|
)
|
|
(if (= (logand s5-0 (draw-control-status no-closest-distance)) (draw-control-status no-closest-distance))
|
|
(format #t "no-closest-distance ")
|
|
)
|
|
(if (= (logand s5-0 (draw-control-status hud)) (draw-control-status hud))
|
|
(format #t "hud ")
|
|
)
|
|
(if (= (logand s5-0 (draw-control-status no-draw)) (draw-control-status no-draw))
|
|
(format #t "no-draw ")
|
|
)
|
|
(if (= (logand s5-0 (draw-control-status on-screen)) (draw-control-status on-screen))
|
|
(format #t "on-screen ")
|
|
)
|
|
(if (= (logand s5-0 (draw-control-status close-to-screen)) (draw-control-status close-to-screen))
|
|
(format #t "close-to-screen ")
|
|
)
|
|
(if (= (logand s5-0 (draw-control-status force-fade)) (draw-control-status force-fade))
|
|
(format #t "force-fade ")
|
|
)
|
|
(if (= (logand s5-0 (draw-control-status no-draw-bounds)) (draw-control-status no-draw-bounds))
|
|
(format #t "no-draw-bounds ")
|
|
)
|
|
(if (= (logand s5-0 (draw-control-status uninited)) (draw-control-status uninited))
|
|
(format #t "uninited ")
|
|
)
|
|
)
|
|
(format #t ")~%")
|
|
(let ((t9-19 format)
|
|
(a0-35 #t)
|
|
(a1-19 "~1Tdata-format: #x~X : ~S~%")
|
|
(a2-3 (-> this data-format))
|
|
(v1-47 (-> this data-format))
|
|
)
|
|
(t9-19 a0-35 a1-19 a2-3 (cond
|
|
((= v1-47 (draw-control-data-format merc))
|
|
"merc"
|
|
)
|
|
((= v1-47 (draw-control-data-format pris))
|
|
"pris"
|
|
)
|
|
(else
|
|
"*unknown*"
|
|
)
|
|
)
|
|
)
|
|
)
|
|
(format #t "~1Tglobal-effect: #x~X : (draw-control-global-effect " (-> this global-effect))
|
|
(let ((s5-1 (-> this global-effect)))
|
|
(if (= (logand s5-1 (draw-control-global-effect title-light)) (draw-control-global-effect title-light))
|
|
(format #t "title-light ")
|
|
)
|
|
(if (= (logand s5-1 (draw-control-global-effect bit-1)) (draw-control-global-effect bit-1))
|
|
(format #t "bit-1 ")
|
|
)
|
|
(if (= (logand s5-1 (draw-control-global-effect disable-envmap)) (draw-control-global-effect disable-envmap))
|
|
(format #t "disable-envmap ")
|
|
)
|
|
(if (= (logand s5-1 (draw-control-global-effect bit-0)) (draw-control-global-effect bit-0))
|
|
(format #t "bit-0 ")
|
|
)
|
|
)
|
|
(format #t ")~%")
|
|
(format #t "~1Tart-group: ~A~%" (-> this art-group))
|
|
(format #t "~1Tjgeo: ~A~%" (-> this jgeo))
|
|
(format #t "~1Tmgeo: ~A~%" (-> this mgeo))
|
|
(format #t "~1Tdma-add-func: ~A~%" (-> this dma-add-func))
|
|
(format #t "~1Tskeleton: ~A~%" (-> this skeleton))
|
|
(format #t "~1Tlod-set: #<lod-set @ #x~X>~%" (-> this lod-set))
|
|
(format #t "~1Tlod[6] @ #x~X~%" (-> this lod-set))
|
|
(format #t "~1Tmax-lod: ~D~%" (-> this lod-set max-lod))
|
|
(format #t "~1Tforce-lod: ~D~%" (-> this force-lod))
|
|
(format #t "~1Tcur-lod: ~D~%" (-> this cur-lod))
|
|
(format #t "~1Tdesired-lod: ~D~%" (-> this desired-lod))
|
|
(format #t "~1Tripple: ~A~%" (-> this ripple))
|
|
(format #t "~1Tlongest-edge: (meters ~m)~%" (-> this longest-edge))
|
|
(format #t "~1Tlongest-edge?: ~D~%" (-> this longest-edge))
|
|
(format #t "~1Tlight-index: ~D~%" (-> this light-index))
|
|
(format #t "~1Tshadow-mask: ~D~%" (-> this shadow-mask))
|
|
(format #t "~1Tlevel-index: ~D~%" (-> this level-index))
|
|
(format #t "~1Tdeath-draw-overlap: ~D~%" (-> this death-draw-overlap))
|
|
(format #t "~1Tdeath-timer: ~D~%" (-> this death-timer))
|
|
(format #t "~1Tdeath-timer-org: ~D~%" (-> this death-timer-org))
|
|
(format #t "~1Tdeath-vertex-skip: ~D~%" (-> this death-vertex-skip))
|
|
(format #t "~1Tdeath-effect: ~D~%" (-> this death-effect))
|
|
(format #t "~1Tshadow: ~A~%" (-> this shadow))
|
|
(format #t "~1Tshadow-ctrl: ~A~%" (-> this shadow-ctrl))
|
|
(format #t "~1Tdistance: (meters ~m)~%" (-> this distance))
|
|
(format #t "~1Torigin: ~`vector`P~%" (-> this origin))
|
|
(format #t "~1Tbounds: ~`vector`P~%" (-> this bounds))
|
|
(format #t "~1Tradius: (meters ~m)~%" (-> this bounds w))
|
|
(format #t "~1Tcolor-mult: #<rgbaf @ #x~X>~%" (-> this color-mult))
|
|
(format #t "~1Tcolor-emissive: #<rgbaf @ #x~X>~%" (-> this color-emissive))
|
|
(format #t "~1Teffect-mask: #x~X~%" (-> this effect-mask))
|
|
(format #t "~1Tseg-mask: #x~X~%" (-> this seg-mask))
|
|
(format #t "~1Torigin-joint-index: ~D~%" (-> this origin-joint-index))
|
|
(format #t "~1Tshadow-joint-index: ~D~%" (-> this shadow-joint-index))
|
|
(format #t "~1Tforce-fade: ~D~%" (-> this force-fade))
|
|
(format #t "~1Tdefault-texture-page: ~D~%" (-> this default-texture-page))
|
|
(format #t "~1Tshadow-values: ~D~%" (-> this shadow-values))
|
|
(label cfg-47)
|
|
this
|
|
)
|
|
|
|
;; definition for method 9 of type draw-control
|
|
(defmethod get-skeleton-origin ((this draw-control))
|
|
(-> this skeleton bones 0 transform trans)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
0
|