;;-*-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: #~%" (-> 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: #~%" (-> 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 ) ;; type art-mesh-anim is defined here, but it is unknown to the decompiler ;; 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: #~%" (-> 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 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) ((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) (cur-lods int8 2 :offset 87) (effect-masks uint64 2) (prev-seg-mask uint64) (want-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)) (lights vu-lights) (envmap-override float) ) (:methods (new (symbol type) _type_) (get-skeleton-origin (_type_) vector) (draw-control-method-10 () none) (draw-control-method-11 () none) (draw-control-method-12 () none) (draw-control-method-13 () none) (draw-control-method-14 () none) (draw-control-method-15 () none) ) ) ;; definition for method 3 of type draw-control (defmethod inspect ((this draw-control)) (when (not this) (set! this this) (goto cfg-63) ) (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 (draw-control-status suppress-vport-1) s5-0) (draw-control-status suppress-vport-1)) (format #t "suppress-vport-1 ") ) (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 (draw-control-status disable-shadow) s5-0) (draw-control-status disable-shadow)) (format #t "disable-shadow ") ) (if (= (logand (draw-control-status suppress-vport-0) s5-0) (draw-control-status suppress-vport-0)) (format #t "suppress-vport-0 ") ) (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-23 format) (a0-46 #t) (a1-23 "~1Tdata-format: #x~X : ~S~%") (a2-3 (-> this data-format)) (v1-59 (-> this data-format)) ) (t9-23 a0-46 a1-23 a2-3 (cond ((= v1-59 (draw-control-data-format merc)) "merc" ) ((= v1-59 (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 disable-envmap)) (draw-control-global-effect disable-envmap)) (format #t "shield-lights ") ) (if (= (logand s5-1 (draw-control-global-effect shield-lights)) (draw-control-global-effect shield-lights)) (format #t "front-rear-lights ") ) (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 "disable-envmap ") ) (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: #~%" (-> 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 "~1Tcur-lods[2] @ #x~X~%" (-> this cur-lods)) (format #t "~1Teffect-masks[2] @ #x~X~%" (-> this effect-masks)) (format #t "~1Tprev-seg-mask: ~D~%" (-> this prev-seg-mask)) (format #t "~1Twant-lod: ~D~%" (-> this want-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: #~%" (-> this color-mult)) (format #t "~1Tcolor-emissive: #~%" (-> 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)) (format #t "~1Tlights: #~%" (-> this lights)) (format #t "~1Tenvmap-override: ~f~%" (-> this envmap-override)) (label cfg-63) 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