;;-*-Lisp-*- (in-package goal) ;; definition of type cam-index (deftype cam-index (structure) ((flags cam-index-options) (vec vector 2 :inline) ) (:methods (cam-index-method-9 (_type_ symbol entity vector curve) symbol) (cam-index-method-10 (_type_ vector) float) ) ) ;; definition for method 3 of type cam-index (defmethod inspect ((this cam-index)) (when (not this) (set! this this) (goto cfg-4) ) (format #t "[~8x] ~A~%" this 'cam-index) (format #t "~1Tflags: ~D~%" (-> this flags)) (format #t "~1Tvec[2] @ #x~X~%" (-> this vec)) (label cfg-4) this ) ;; definition of type tracking-point (deftype tracking-point (structure) ((position vector :inline) (direction vector :inline) (tp-length float) (next int32) (incarnation int32) ) ) ;; definition for method 3 of type tracking-point (defmethod inspect ((this tracking-point)) (when (not this) (set! this this) (goto cfg-4) ) (format #t "[~8x] ~A~%" this 'tracking-point) (format #t "~1Tposition: #~%" (-> this position)) (format #t "~1Tdirection: #~%" (-> this direction)) (format #t "~1Ttp-length: ~f~%" (-> this tp-length)) (format #t "~1Tnext: ~D~%" (-> this next)) (format #t "~1Tincarnation: ~D~%" (-> this incarnation)) (label cfg-4) this ) ;; definition of type tracking-spline-sampler (deftype tracking-spline-sampler (structure) ((cur-pt int32) (partial-pt float) ) ) ;; definition for method 3 of type tracking-spline-sampler (defmethod inspect ((this tracking-spline-sampler)) (when (not this) (set! this this) (goto cfg-4) ) (format #t "[~8x] ~A~%" this 'tracking-spline-sampler) (format #t "~1Tcur-pt: ~D~%" (-> this cur-pt)) (format #t "~1Tpartial-pt: ~f~%" (-> this partial-pt)) (label cfg-4) this ) ;; definition of type tracking-spline (deftype tracking-spline (structure) ((point tracking-point 32 :inline) (summed-len float) (free-point int32) (used-point int32) (partial-point float) (end-point int32) (next-to-last-point int32) (max-move float) (sample-len float) (used-count int32) (old-position vector :inline) (debug-old-position vector :inline) (debug-out-position vector :inline) (debug-last-point int32) ) (:methods (tracking-spline-method-9 (_type_) none) (tracking-spline-method-10 (_type_ vector) none) (debug-point-info (_type_ int) none) (debug-all-points (_type_) none) (tracking-spline-method-13 (_type_ int) none) (tracking-spline-method-14 (_type_ tracking-spline-sampler) none) (tracking-spline-method-15 (_type_) none) (tracking-spline-method-16 (_type_ float) none) (tracking-spline-method-17 (_type_ vector float float symbol) int) (tracking-spline-method-18 (_type_ float vector tracking-spline-sampler) vector) (tracking-spline-method-19 (_type_ float vector tracking-spline-sampler) vector) (tracking-spline-method-20 (_type_ vector int) none) (tracking-spline-method-21 (_type_ vector float float float) vector) (tracking-spline-method-22 (_type_ float) symbol) (debug-draw-spline (_type_) none) ) ) ;; definition for method 3 of type tracking-spline (defmethod inspect ((this tracking-spline)) (when (not this) (set! this this) (goto cfg-4) ) (format #t "[~8x] ~A~%" this 'tracking-spline) (format #t "~1Tpoint[32] @ #x~X~%" (-> this point)) (format #t "~1Tsummed-len: ~f~%" (-> this summed-len)) (format #t "~1Tfree-point: ~D~%" (-> this free-point)) (format #t "~1Tused-point: ~D~%" (-> this used-point)) (format #t "~1Tpartial-point: ~f~%" (-> this partial-point)) (format #t "~1Tend-point: ~D~%" (-> this end-point)) (format #t "~1Tnext-to-last-point: ~D~%" (-> this next-to-last-point)) (format #t "~1Tmax-move: ~f~%" (-> this max-move)) (format #t "~1Tsample-len: ~f~%" (-> this sample-len)) (format #t "~1Tused-count: ~D~%" (-> this used-count)) (format #t "~1Told-position: #~%" (-> this old-position)) (format #t "~1Tdebug-old-position: #~%" (-> this debug-old-position)) (format #t "~1Tdebug-out-position: #~%" (-> this debug-out-position)) (format #t "~1Tdebug-last-point: ~D~%" (-> this debug-last-point)) (label cfg-4) this ) ;; definition of type cam-float-seeker (deftype cam-float-seeker (structure) ((target float) (value float) (vel float) (accel float) (max-vel float) (max-partial float) ) :pack-me (:methods (init (_type_ float float float float) none) (copy-to (_type_ _type_) none) (update! (_type_ float) none) (jump-to-target! (_type_ float) float) ) ) ;; definition for method 3 of type cam-float-seeker (defmethod inspect ((this cam-float-seeker)) (when (not this) (set! this this) (goto cfg-4) ) (format #t "[~8x] ~A~%" this 'cam-float-seeker) (format #t "~1Ttarget: ~f~%" (-> this target)) (format #t "~1Tvalue: ~f~%" (-> this value)) (format #t "~1Tvel: ~f~%" (-> this vel)) (format #t "~1Taccel: ~f~%" (-> this accel)) (format #t "~1Tmax-vel: ~f~%" (-> this max-vel)) (format #t "~1Tmax-partial: ~f~%" (-> this max-partial)) (label cfg-4) this ) ;; definition for method 9 of type cam-float-seeker ;; WARN: Return type mismatch int vs none. (defmethod init ((this cam-float-seeker) (arg0 float) (arg1 float) (arg2 float) (arg3 float)) (set! (-> this target) arg0) (set! (-> this value) arg0) (set! (-> this vel) 0.0) (set! (-> this accel) arg1) (set! (-> this max-vel) arg2) (set! (-> this max-partial) arg3) 0 (none) ) ;; definition for method 10 of type cam-float-seeker ;; WARN: Return type mismatch int vs none. (defmethod copy-to ((this cam-float-seeker) (arg0 cam-float-seeker)) (set! (-> this target) (-> arg0 target)) (set! (-> this value) (-> arg0 value)) (set! (-> this vel) (-> arg0 vel)) (set! (-> this accel) (-> arg0 accel)) (set! (-> this max-vel) (-> arg0 max-vel)) (set! (-> this max-partial) (-> arg0 max-partial)) 0 (none) ) ;; definition for method 11 of type cam-float-seeker ;; WARN: Return type mismatch int vs none. (defmethod update! ((this cam-float-seeker) (arg0 float)) (with-pp 0.0 0.0 (let* ((f1-2 (- (+ (-> this target) arg0) (-> this value))) (f0-5 (* (-> this max-partial) (fabs f1-2))) ) (let ((f1-3 (* f1-2 (* (-> this accel) (-> pp clock time-adjust-ratio))))) (+! (-> this vel) f1-3) ) (let ((f1-6 (fabs (-> this vel))) (f0-6 (fmin f0-5 (-> this max-vel))) ) (if (< f0-6 f1-6) (set! (-> this vel) (* (-> this vel) (/ f0-6 f1-6))) ) ) ) (let ((f0-10 (* (-> this vel) (-> pp clock time-adjust-ratio)))) (+! (-> this value) f0-10) ) 0 (none) ) ) ;; definition for method 12 of type cam-float-seeker (defmethod jump-to-target! ((this cam-float-seeker) (arg0 float)) (set! (-> this value) (+ (-> this target) arg0)) (set! (-> this vel) 0.0) 0.0 ) ;; definition of type cam-vector-seeker (deftype cam-vector-seeker (structure) ((target vector :inline) (value vector :inline) (vel vector :inline) (accel float) (max-vel float) (max-partial float) ) (:methods (init (_type_ vector float float float) none) (update! (_type_ vector) none) ) ) ;; definition for method 3 of type cam-vector-seeker (defmethod inspect ((this cam-vector-seeker)) (when (not this) (set! this this) (goto cfg-4) ) (format #t "[~8x] ~A~%" this 'cam-vector-seeker) (format #t "~1Ttarget: #~%" (-> this target)) (format #t "~1Tvalue: #~%" (-> this value)) (format #t "~1Tvel: #~%" (-> this vel)) (format #t "~1Taccel: ~f~%" (-> this accel)) (format #t "~1Tmax-vel: ~f~%" (-> this max-vel)) (format #t "~1Tmax-partial: ~f~%" (-> this max-partial)) (label cfg-4) this ) ;; definition for method 9 of type cam-vector-seeker ;; INFO: Used lq/sq ;; WARN: Return type mismatch int vs none. (defmethod init ((this cam-vector-seeker) (arg0 vector) (arg1 float) (arg2 float) (arg3 float)) (cond (arg0 (set! (-> this target quad) (-> arg0 quad)) (set! (-> this value quad) (-> arg0 quad)) ) (else (vector-reset! (-> this target)) (vector-reset! (-> this value)) ) ) (vector-reset! (-> this vel)) (set! (-> this accel) arg1) (set! (-> this max-vel) arg2) (set! (-> this max-partial) arg3) 0 (none) ) ;; definition for method 10 of type cam-vector-seeker ;; WARN: Return type mismatch int vs none. (defmethod update! ((this cam-vector-seeker) (arg0 vector)) (with-pp (let ((v1-0 (new 'stack-no-clear 'vector))) 0.0 (cond (arg0 (vector+! v1-0 (-> this target) arg0) (vector-! v1-0 v1-0 (-> this value)) ) (else (vector-! v1-0 (-> this target) (-> this value)) ) ) (let ((f0-2 (* (-> this max-partial) (vector-length v1-0)))) (vector-float*! v1-0 v1-0 (* (-> this accel) (-> pp clock time-adjust-ratio))) (vector+! (-> this vel) (-> this vel) v1-0) (let ((f1-3 (vector-length (-> this vel))) (f0-3 (fmin f0-2 (-> this max-vel))) ) (if (< f0-3 f1-3) (vector-float*! (-> this vel) (-> this vel) (/ f0-3 f1-3)) ) ) ) (vector-float*! v1-0 (-> this vel) (-> pp clock time-adjust-ratio)) (vector+! (-> this value) (-> this value) v1-0) ) 0 (none) ) ) ;; definition of type cam-rotation-tracker (deftype cam-rotation-tracker (structure) ((inv-mat matrix :inline) (no-follow basic) (follow-pt vector :inline) (follow-off vector :inline) (follow-blend float) (tilt-adjust cam-float-seeker :inline) (point-of-interest-blend cam-float-seeker :inline) (underwater-blend cam-float-seeker :inline) (looking-at vector :inline) (looking-interesting vector :inline) (old-cam-trans vector :inline) (follow-height-extra cam-float-seeker :inline) ) ) ;; definition for method 3 of type cam-rotation-tracker (defmethod inspect ((this cam-rotation-tracker)) (when (not this) (set! this this) (goto cfg-4) ) (format #t "[~8x] ~A~%" this 'cam-rotation-tracker) (format #t "~1Tinv-mat: ~`matrix`P~%" (-> this inv-mat)) (format #t "~1Tno-follow: ~A~%" (-> this no-follow)) (format #t "~1Tfollow-pt: ~`vector`P~%" (-> this follow-pt)) (format #t "~1Tfollow-off: ~`vector`P~%" (-> this follow-off)) (format #t "~1Tfollow-blend: ~f~%" (-> this follow-blend)) (format #t "~1Ttilt-adjust: #~%" (-> this tilt-adjust)) (format #t "~1Tpoint-of-interest-blend: #~%" (-> this point-of-interest-blend)) (format #t "~1Tunderwater-blend: #~%" (-> this underwater-blend)) (format #t "~1Tlooking-at: ~`vector`P~%" (-> this looking-at)) (format #t "~1Tlooking-interesting: ~`vector`P~%" (-> this looking-interesting)) (format #t "~1Told-cam-trans: ~`vector`P~%" (-> this old-cam-trans)) (format #t "~1Tfollow-height-extra: #~%" (-> this follow-height-extra)) (label cfg-4) this ) ;; definition of type camera-combiner (deftype camera-combiner (process) ((trans vector :inline) (inv-camera-rot matrix :inline) (fov float) (interp-val float) (interp-step float) (dist-from-src float) (dist-from-dest float) (flip-control-axis vector :inline) (velocity vector :inline) (tracking-status uint64) (tracking-options int32) (tracking cam-rotation-tracker :inline) (fast-rot basic) ) (:states cam-combiner-active ) ) ;; definition for method 3 of type camera-combiner (defmethod inspect ((this camera-combiner)) (when (not this) (set! this this) (goto cfg-4) ) (let ((t9-0 (method-of-type process inspect))) (t9-0 this) ) (format #t "~2Ttrans: ~`vector`P~%" (-> this trans)) (format #t "~2Tinv-camera-rot: ~`matrix`P~%" (-> this inv-camera-rot)) (format #t "~2Tfov: ~f~%" (-> this fov)) (format #t "~2Tinterp-val: ~f~%" (-> this interp-val)) (format #t "~2Tinterp-step: ~f~%" (-> this interp-step)) (format #t "~2Tdist-from-src: ~f~%" (-> this dist-from-src)) (format #t "~2Tdist-from-dest: ~f~%" (-> this dist-from-dest)) (format #t "~2Tflip-control-axis: #~%" (-> this flip-control-axis)) (format #t "~2Tvelocity: #~%" (-> this velocity)) (format #t "~2Ttracking-status: ~D~%" (-> this tracking-status)) (format #t "~2Ttracking-options: ~D~%" (-> this tracking-options)) (format #t "~2Ttracking: #~%" (-> this tracking)) (format #t "~2Tfast-rot: ~A~%" (-> this fast-rot)) (label cfg-4) this ) ;; definition of type camera-slave (deftype camera-slave (process) ((trans vector :inline) (fov float) (fov0 float) (fov1 float) (fov-index cam-index :inline) (tracking cam-rotation-tracker :inline) (view-off-param float) (view-off vector :inline) (joystick-saved-view-off vector :inline) (min-z-override float) (view-flat vector :inline) (string-vel-dir uint32) (string-trans vector :inline) (position-spline tracking-spline :inline) (pivot-pt vector :inline) (pivot-rad float) (circular-follow vector :inline) (max-angle-offset float) (max-angle-curr float) (options cam-slave-options-u32) (cam-entity entity) (butt-timer uint64) (butt-seek basic) (butt-vector vector :inline) (velocity vector :inline) (desired-pos vector :inline) (time-dist-too-far uint32) (los-state slave-los-state) (good-point vector :inline) (los-tgt-spline-pt int32) (los-tgt-spline-pt-incarnation int32) (los-last-pos vector :inline) (intro-curve curve :inline) (intro-offset vector :inline) (intro-t float) (intro-t-step float) (outro-exit-value float) (spline-exists basic) (spline-curve curve :inline) (spline-offset vector :inline) (index cam-index :inline) (saved-pt vector :inline) (spline-tt float) (spline-follow-dist float) (enter-has-run symbol) (blend-from-type uint64) (blend-to-type camera-blend-to-type) (have-phony-joystick basic) (phony-joystick-x float) (phony-joystick-y float) (string-min-val vector :inline) (string-max-val vector :inline) (string-val-locked basic) (relative-position vector :inline) (string-relative basic) ) (:states cam-bike cam-circular cam-decel cam-endlessfall cam-eye cam-fixed cam-fixed-read-entity cam-free-floating cam-launcher-longfall cam-launcher-shortfall cam-lookat cam-point-watch cam-pov cam-pov-track cam-pov180 cam-really-fixed cam-remote cam-robotboss cam-spline cam-standoff cam-standoff-read-entity cam-stick cam-string cam-turret ) ) ;; definition for method 3 of type camera-slave (defmethod inspect ((this camera-slave)) (when (not this) (set! this this) (goto cfg-4) ) (let ((t9-0 (method-of-type process inspect))) (t9-0 this) ) (format #t "~2Ttrans: ~`vector`P~%" (-> this trans)) (format #t "~2Tfov: ~f~%" (-> this fov)) (format #t "~2Tfov0: ~f~%" (-> this fov0)) (format #t "~2Tfov1: ~f~%" (-> this fov1)) (format #t "~2Tfov-index: #~%" (-> this fov-index)) (format #t "~2Ttracking: #~%" (-> this tracking)) (format #t "~2Tview-off-param: ~f~%" (-> this view-off-param)) (format #t "~2Tview-off: ~`vector`P~%" (-> this view-off)) (format #t "~2Tjoystick-saved-view-off: ~`vector`P~%" (-> this joystick-saved-view-off)) (format #t "~2Tmin-z-override: ~f~%" (-> this min-z-override)) (format #t "~2Tview-flat: ~`vector`P~%" (-> this view-flat)) (format #t "~2Tstring-vel-dir: ~D~%" (-> this string-vel-dir)) (format #t "~2Tstring-trans: ~`vector`P~%" (-> this string-trans)) (format #t "~2Tposition-spline: #~%" (-> this position-spline)) (format #t "~2Tpivot-pt: ~`vector`P~%" (-> this pivot-pt)) (format #t "~2Tpivot-rad: ~f~%" (-> this pivot-rad)) (format #t "~2Tcircular-follow: #~%" (-> this circular-follow)) (format #t "~2Tmax-angle-offset: ~f~%" (-> this max-angle-offset)) (format #t "~2Tmax-angle-curr: ~f~%" (-> this max-angle-curr)) (format #t "~2Toptions: ~D~%" (-> this options)) (format #t "~2Tcam-entity: ~A~%" (-> this cam-entity)) (format #t "~2Tbutt-timer: ~D~%" (-> this butt-timer)) (format #t "~2Tbutt-seek: ~A~%" (-> this butt-seek)) (format #t "~2Tbutt-vector: ~`vector`P~%" (-> this butt-vector)) (format #t "~2Tvelocity: ~`vector`P~%" (-> this velocity)) (format #t "~2Tdesired-pos: ~`vector`P~%" (-> this desired-pos)) (format #t "~2Ttime-dist-too-far: ~D~%" (-> this time-dist-too-far)) (format #t "~2Tlos-state: ~D~%" (-> this los-state)) (format #t "~2Tgood-point: ~`vector`P~%" (-> this good-point)) (format #t "~2Tlos-tgt-spline-pt: ~D~%" (-> this los-tgt-spline-pt)) (format #t "~2Tlos-tgt-spline-pt-incarnation: ~D~%" (-> this los-tgt-spline-pt-incarnation)) (format #t "~2Tlos-last-pos: ~`vector`P~%" (-> this los-last-pos)) (format #t "~2Tintro-curve: #~%" (-> this intro-curve)) (format #t "~2Tintro-offset: #~%" (-> this intro-offset)) (format #t "~2Tintro-t: ~f~%" (-> this intro-t)) (format #t "~2Tintro-t-step: ~f~%" (-> this intro-t-step)) (format #t "~2Toutro-exit-value: ~f~%" (-> this outro-exit-value)) (format #t "~2Tspline-exists: ~A~%" (-> this spline-exists)) (format #t "~2Tspline-curve: #~%" (-> this spline-curve)) (format #t "~2Tspline-offset: #~%" (-> this spline-offset)) (format #t "~2Tindex: #~%" (-> this index)) (format #t "~2Tsaved-pt: #~%" (-> this saved-pt)) (format #t "~2Tspline-tt: ~f~%" (-> this spline-tt)) (format #t "~2Tspline-follow-dist: ~f~%" (-> this spline-follow-dist)) (format #t "~2Tenter-has-run: ~A~%" (-> this enter-has-run)) (format #t "~2Tblend-from-type: ~D~%" (-> this blend-from-type)) (format #t "~2Tblend-to-type: ~D~%" (-> this blend-to-type)) (format #t "~2Thave-phony-joystick: ~A~%" (-> this have-phony-joystick)) (format #t "~2Tphony-joystick-x: ~f~%" (-> this phony-joystick-x)) (format #t "~2Tphony-joystick-y: ~f~%" (-> this phony-joystick-y)) (format #t "~2Tstring-min-val: #~%" (-> this string-min-val)) (format #t "~2Tstring-max-val: #~%" (-> this string-max-val)) (format #t "~2Tstring-val-locked: ~A~%" (-> this string-val-locked)) (format #t "~2Trelative-position: #~%" (-> this relative-position)) (format #t "~2Tstring-relative: ~A~%" (-> this string-relative)) (label cfg-4) this ) ;; definition of type camera-master (deftype camera-master (process) ((master-options cam-master-options-u32) (settings cam-setting-data) (slave (pointer camera-slave)) (decel (pointer camera-slave)) (slave-options uint32) (view-off-param-save float) (changer uint32) (string-min cam-vector-seeker :inline) (string-max cam-vector-seeker :inline) (string-push-z float) (local-down vector :inline) (focus focus :inline) (being-attacked symbol) (attack-start time-frame) (on-ground symbol) (under-water int32) (on-pole symbol) (tgt-rot-mat matrix :inline) (tgt-face-mat matrix :inline) (tpos-old vector :inline) (tpos-curr vector :inline) (tpos-old-adj vector :inline) (tpos-curr-adj vector :inline) (tpos-tgt vector :inline) (upspeed float) (pitch-off vector :inline) (target-spline tracking-spline :inline) (ease-from vector :inline) (ease-t float) (ease-step float) (ease-to vector :inline) (outro-curve curve :inline) (outro-t float) (outro-t-step float) (outro-exit-value float) (water-drip-time time-frame) (water-drip sparticle-launch-control) (water-drip-mult float) (water-drip-speed float) ) (:methods (camera-master-method-14 (_type_ vector) vector) (camera-master-method-15 (_type_ vector) vector) (camera-master-method-16 (_type_ symbol) int) ) (:states cam-master-active ) ) ;; definition for method 3 of type camera-master (defmethod inspect ((this camera-master)) (when (not this) (set! this this) (goto cfg-4) ) (let ((t9-0 (method-of-type process inspect))) (t9-0 this) ) (format #t "~2Tmaster-options: ~D~%" (-> this master-options)) (format #t "~2Tsettings: #~%" (-> this settings)) (format #t "~2Tslave: #x~X~%" (-> this slave)) (format #t "~2Tdecel: #x~X~%" (-> this decel)) (format #t "~2Tslave-options: ~D~%" (-> this slave-options)) (format #t "~2Tview-off-param-save: ~f~%" (-> this view-off-param-save)) (format #t "~2Tchanger: #x~X~%" (-> this changer)) (format #t "~2Tstring-min: #~%" (-> this string-min)) (format #t "~2Tstring-max: #~%" (-> this string-max)) (format #t "~2Tstring-push-z: ~f~%" (-> this string-push-z)) (format #t "~2Tlocal-down: ~`vector`P~%" (-> this local-down)) (format #t "~2Tfocus: #~%" (-> this focus)) (format #t "~2Tbeing-attacked: ~A~%" (-> this being-attacked)) (format #t "~2Tattack-start: ~D~%" (-> this attack-start)) (format #t "~2Ton-ground: ~A~%" (-> this on-ground)) (format #t "~2Tunder-water: ~D~%" (-> this under-water)) (format #t "~2Ton-pole: ~A~%" (-> this on-pole)) (format #t "~2Ttgt-rot-mat: ~`matrix`P~%" (-> this tgt-rot-mat)) (format #t "~2Ttgt-face-mat: ~`matrix`P~%" (-> this tgt-face-mat)) (format #t "~2Ttpos-old: ~`vector`P~%" (-> this tpos-old)) (format #t "~2Ttpos-curr: ~`vector`P~%" (-> this tpos-curr)) (format #t "~2Ttpos-old-adj: ~`vector`P~%" (-> this tpos-old-adj)) (format #t "~2Ttpos-curr-adj: ~`vector`P~%" (-> this tpos-curr-adj)) (format #t "~2Ttpos-tgt: ~`vector`P~%" (-> this tpos-tgt)) (format #t "~2Tupspeed: ~f~%" (-> this upspeed)) (format #t "~2Tpitch-off: ~`vector`P~%" (-> this pitch-off)) (format #t "~2Ttarget-spline: #~%" (-> this target-spline)) (format #t "~2Tease-from: #~%" (-> this ease-from)) (format #t "~2Tease-t: ~f~%" (-> this ease-t)) (format #t "~2Tease-step: ~f~%" (-> this ease-step)) (format #t "~2Tease-to: #~%" (-> this ease-to)) (format #t "~2Toutro-curve: #~%" (-> this outro-curve)) (format #t "~2Toutro-t: ~f~%" (-> this outro-t)) (format #t "~2Toutro-t-step: ~f~%" (-> this outro-t-step)) (format #t "~2Toutro-exit-value: ~f~%" (-> this outro-exit-value)) (format #t "~2Twater-drip-time: ~D~%" (-> this water-drip-time)) (format #t "~2Twater-drip: ~A~%" (-> this water-drip)) (format #t "~2Twater-drip-mult: ~f~%" (-> this water-drip-mult)) (format #t "~2Twater-drip-speed: ~f~%" (-> this water-drip-speed)) (label cfg-4) this ) ;; failed to figure out what this is: 0