Files
jak-project/test/decompiler/reference/jak3/engine/data/art-h_REF.gc
T
Hat Kid 36f1592b90 decomp3: lightning renderer, nav code, texture remap, fix progress menu crash (#3461)
Also adds:

- BLERC
- Minimap (with missing texture for the map, sprites work)
- Eco Mine files
- Precursor robot boss files
- Sewer files
- Vehicle files
2024-04-12 18:44:38 -04:00

787 lines
27 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)
)
)
;; 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_)
(art-method-10 (_type_) _type_)
(get-art-by-name-method (_type_ string type) basic)
(get-art-idx-by-name-method (_type_ string type) int)
(contains-art-for-other-group? (_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."
((master-art-group-name string)
(master-art-group-index int32)
(pad uint8 20)
)
)
;; 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))
(format #t "~1Tmaster-art-group-name: ~A~%" (-> this master-art-group-name))
(format #t "~1Tmaster-art-group-index: ~D~%" (-> this master-art-group-index))
(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."
((eye-anim merc-eye-anim-block :overlay-at (-> pad 0))
(blend-shape-anim (pointer int8) :overlay-at (-> pad 4))
(frames joint-anim-compressed-control :overlay-at (-> pad 8))
(speed float :offset 48)
(artist-base float)
(artist-step float)
)
)
;; 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 "~1Tmaster-art-group-name: ~A~%" (-> this master-art-group-name))
(format #t "~1Tmaster-art-group-index: ~D~%" (-> this master-art-group-index))
(format #t "~1Teye-anim: ~`merc-eye-anim-block`P~%" (-> this eye-anim))
(format #t "~1Tblend-shape-anim: ~A~%" (-> this blend-shape-anim))
(format #t "~1Tframes: #<joint-anim-compressed-control @ #x~X>~%" (-> this frames))
(format #t "~1Tspeed: ~f~%" (-> this speed))
(format #t "~1Tartist-base: ~f~%" (-> this artist-base))
(format #t "~1Tartist-step: ~f~%" (-> this artist-step))
(label cfg-4)
this
)
;; definition of type art-group
(deftype art-group (art)
"Art which is a list of more art. The -ag files are an art group with all the art needed for a
actor, like the mesh, animations, shadow mesh, skeleton, etc."
((info file-info :offset 4)
(data art-element :dynamic :offset 32)
)
(:methods
(relocate (_type_ kheap (pointer uint8)) none :replace)
(link-art-to-master (_type_) art-group)
(unlink-art-to-master (_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-cloth-geo
(deftype art-cloth-geo (art-element)
((anchor-transforms anchor-transform-array)
(sphere-transforms sphere-transform-array)
(disc-transforms disc-transform-array)
(cloth-thickness cloth-thickness-array)
(thickness-scalar float)
(num-points int32 :overlay-at length)
(mesh cloth-pt :inline :dynamic :offset 80)
)
)
;; definition for method 3 of type art-cloth-geo
(defmethod inspect ((this art-cloth-geo))
(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 "~1Tmaster-art-group-name: ~A~%" (-> this master-art-group-name))
(format #t "~1Tmaster-art-group-index: ~D~%" (-> this master-art-group-index))
(format #t "~1Tanchor-transforms: ~A~%" (-> this anchor-transforms))
(format #t "~1Tsphere-transforms: ~A~%" (-> this sphere-transforms))
(format #t "~1Tdisc-transforms: ~A~%" (-> this disc-transforms))
(format #t "~1Tcloth-thickness: ~A~%" (-> this cloth-thickness))
(format #t "~1Tthickness-scalar: ~f~%" (-> this thickness-scalar))
(format #t "~1Tnum-points: ~D~%" (-> this length))
(format #t "~1Tmesh[0] @ #x~X~%" (-> this mesh))
(label cfg-4)
this
)
;; definition for method 7 of type art-cloth-geo
(defmethod relocate ((this art-cloth-geo) (offset int))
this
)
;; 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."
((heap 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)
(mark-anim-in-use (_type_ art-joint-anim) art-joint-anim)
(unload-from-slot (_type_ int) art-joint-anim)
(used-bytes-for-slot (_type_ int) int)
(unload-from-heap (_type_ kheap) 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 heap))
(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 heap)))
(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 int16)
(janim int16)
(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 int16)
(shadow-joint-index int8)
(origin-joint-index int8)
(sort int8)
(light-index uint8)
(clothing (array cloth-params))
(global-effects 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 "~1Tshadow-joint-index: ~D~%" (-> this shadow-joint-index))
(format #t "~1Torigin-joint-index: ~D~%" (-> this origin-joint-index))
(format #t "~1Tsort: ~D~%" (-> this sort))
(format #t "~1Tlight-index: ~D~%" (-> this light-index))
(format #t "~1Tclothing: ~A~%" (-> this clothing))
(format #t "~1Tglobal-effects: ~D~%" (-> this global-effects))
(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)
)
:allow-misaligned
(: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)
(cloth-instances (array cloth-system))
)
(: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)
(draw-control-method-14 (_type_ cspace-array joint-control) none)
(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-57)
)
(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-bounds-check)) (draw-control-status no-bounds-check))
(format #t "no-bounds-check ")
)
(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-20 format)
(a0-37 #t)
(a1-20 "~1Tdata-format: #x~X : ~S~%")
(a2-3 (-> this data-format))
(v1-50 (-> this data-format))
)
(t9-20 a0-37 a1-20 a2-3 (cond
((= v1-50 (draw-control-data-format merc))
"merc"
)
((= v1-50 (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 rim-lights3)) (draw-control-global-effect rim-lights3))
(format #t "rim-lights3 ")
)
(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 rim-lights2)) (draw-control-global-effect rim-lights2))
(format #t "rim-lights2 ")
)
(if (= (logand s5-1 (draw-control-global-effect no-textures)) (draw-control-global-effect no-textures))
(format #t "no-textures ")
)
(if (= (logand s5-1 (draw-control-global-effect bit-0)) (draw-control-global-effect bit-0))
(format #t "bit-0 ")
)
(if (= (logand s5-1 (draw-control-global-effect rim-lights)) (draw-control-global-effect rim-lights))
(format #t "rim-lights ")
)
)
(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))
(format #t "~1Tcloth-instances: ~A~%" (-> this cloth-instances))
(label cfg-57)
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