Files

1319 lines
49 KiB
Common Lisp
Vendored
Generated

;;-*-Lisp-*-
(in-package goal)
;; definition of type surface
(deftype surface (basic)
"Definition of a bunch of parameters for different types of surfaces.
Parameters include values such as max speed, friction, callback functions that run
on impact, during touch, on exit, etc."
((name symbol)
(turnv float)
(turnvv float)
(tiltv float)
(tiltvv float)
(transv-max float)
(target-speed float)
(seek0 float)
(seek90 float)
(seek180 float)
(fric float)
(nonlin-fric-dist float)
(slip-factor float)
(slide-factor float)
(slope-up-factor float)
(slope-down-factor float)
(slope-slip-angle float)
(impact-fric float)
(bend-factor float)
(bend-speed float)
(alignv float)
(slope-up-traction float)
(align-speed float)
(slope-change-preserve float)
(turnvf float)
(turnvvf float)
(tiltvf float)
(tiltvvf float)
(vel-turn float)
(active-hook (function none) :offset 128)
(touch-hook (function none) :offset 132)
(impact-hook (function control-info (pointer float) vector none) :offset 136)
(mult-hook (function surface surface surface int none))
(exit-hook function)
(mode symbol)
(flags surface-flag)
(data float 30 :overlay-at turnv)
(hook function 4 :overlay-at active-hook)
(dataw uint32 2 :overlay-at mode)
)
)
;; definition for method 3 of type surface
(defmethod inspect ((this surface))
(when (not this)
(set! this this)
(goto cfg-62)
)
(format #t "[~8x] ~A~%" this (-> this type))
(format #t "~1Tname: ~A~%" (-> this name))
(format #t "~1Tdata[30] @ #x~X~%" (&-> this turnv))
(format #t "~1Tturnv: ~f~%" (-> this turnv))
(format #t "~1Tturnvf: ~f~%" (-> this turnvf))
(format #t "~1Tturnvv: ~f~%" (-> this turnvv))
(format #t "~1Tturnvvf: ~f~%" (-> this turnvvf))
(format #t "~1Ttiltv: ~f~%" (-> this tiltv))
(format #t "~1Ttiltvf: ~f~%" (-> this tiltvf))
(format #t "~1Ttiltvv: ~f~%" (-> this tiltvv))
(format #t "~1Ttiltvvf: ~f~%" (-> this tiltvvf))
(format #t "~1Tvel-turn: ~f~%" (-> this vel-turn))
(format #t "~1Ttransv-max: ~f~%" (-> this transv-max))
(format #t "~1Ttarget-speed: ~f~%" (-> this target-speed))
(format #t "~1Tseek0: ~f~%" (-> this seek0))
(format #t "~1Tseek90: ~f~%" (-> this seek90))
(format #t "~1Tseek180: ~f~%" (-> this seek180))
(format #t "~1Tfric: ~f~%" (-> this fric))
(format #t "~1Tnonlin-fric-dist: ~f~%" (-> this nonlin-fric-dist))
(format #t "~1Tslip-factor: ~f~%" (-> this slip-factor))
(format #t "~1Tslide-factor: ~f~%" (-> this slide-factor))
(format #t "~1Tslope-up-factor: ~f~%" (-> this slope-up-factor))
(format #t "~1Tslope-down-factor: ~f~%" (-> this slope-down-factor))
(format #t "~1Tslope-slip-angle: ~f~%" (-> this slope-slip-angle))
(format #t "~1Timpact-fric: ~f~%" (-> this impact-fric))
(format #t "~1Tbend-factor: ~f~%" (-> this bend-factor))
(format #t "~1Tbend-speed: ~f~%" (-> this bend-speed))
(format #t "~1Talignv: ~f~%" (-> this alignv))
(format #t "~1Tslope-up-traction: ~f~%" (-> this slope-up-traction))
(format #t "~1Talign-speed: ~f~%" (-> this align-speed))
(format #t "~1Tslope-change-preserve: ~f~%" (-> this slope-change-preserve))
(format #t "~1Thook[5] @ #x~X~%" (&-> this active-hook))
(format #t "~1Tactive-hook: ~A~%" (-> this active-hook))
(format #t "~1Ttouch-hook: ~A~%" (-> this touch-hook))
(format #t "~1Timpact-hook: ~A~%" (-> this impact-hook))
(format #t "~1Tmult-hook: ~A~%" (-> this mult-hook))
(format #t "~1Texit-hook: ~A~%" (-> this exit-hook))
(format #t "~1Tdataw[2] @ #x~X~%" (&-> this mode))
(format #t "~1Tmode: ~A~%" (-> this mode))
(format #t "~1Tflags: #x~X : (surface-flag " (-> this flags))
(let ((s5-0 (-> this flags)))
(if (= (logand (surface-flag gun-inactive) s5-0) (surface-flag gun-inactive))
(format #t "gun-inactive ")
)
(if (= (logand s5-0 (surface-flag momentum)) (surface-flag momentum))
(format #t "momentum ")
)
(if (= (logand (surface-flag no-board) s5-0) (surface-flag no-board))
(format #t "no-board ")
)
(if (= (logand s5-0 (surface-flag xz-local)) (surface-flag xz-local))
(format #t "xz-local ")
)
(if (= (logand s5-0 (surface-flag no-feet)) (surface-flag no-feet))
(format #t "no-feet ")
)
(if (= (logand (surface-flag gun-direct) s5-0) (surface-flag gun-direct))
(format #t "gun-direct ")
)
(if (= (logand s5-0 (surface-flag turn-to-vel)) (surface-flag turn-to-vel))
(format #t "turn-to-vel ")
)
(if (= (logand (surface-flag gun-strafe) s5-0) (surface-flag gun-strafe))
(format #t "gun-strafe ")
)
(if (= (logand (surface-flag gun-fast-exit) s5-0) (surface-flag gun-fast-exit))
(format #t "gun-fast-exit ")
)
(if (= (logand s5-0 (surface-flag attack)) (surface-flag attack))
(format #t "attack ")
)
(if (= (logand s5-0 (surface-flag turn-to-pad)) (surface-flag turn-to-pad))
(format #t "turn-to-pad ")
)
(if (= (logand (surface-flag spin) s5-0) (surface-flag spin))
(format #t "spin ")
)
(if (= (logand s5-0 (surface-flag no-jump)) (surface-flag no-jump))
(format #t "no-jump ")
)
(if (= (logand s5-0 (surface-flag look-around)) (surface-flag look-around))
(format #t "look-around ")
)
(if (= (logand (surface-flag gun-off) s5-0) (surface-flag gun-off))
(format #t "gun-off ")
)
(if (= (logand (surface-flag gun-turn-fast) s5-0) (surface-flag gun-turn-fast))
(format #t "gun-turn-fast ")
)
(if (= (logand s5-0 (surface-flag turn-when-centered)) (surface-flag turn-when-centered))
(format #t "turn-when-centered ")
)
(if (= (logand (surface-flag laser-hide) s5-0) (surface-flag laser-hide))
(format #t "laser-hide ")
)
(if (= (logand (surface-flag turn-to-alt) s5-0) (surface-flag turn-to-alt))
(format #t "turn-to-alt ")
)
(if (= (logand s5-0 (surface-flag no-attack)) (surface-flag no-attack))
(format #t "no-attack ")
)
(if (= (logand (surface-flag gun-no-twist) s5-0) (surface-flag gun-no-twist))
(format #t "gun-no-twist ")
)
(if (= (logand s5-0 (surface-flag air)) (surface-flag air))
(format #t "air ")
)
(if (= (logand s5-0 (surface-flag duck)) (surface-flag duck))
(format #t "duck ")
)
(if (= (logand s5-0 (surface-flag no-turn-around)) (surface-flag no-turn-around))
(format #t "no-turn-around ")
)
(if (= (logand s5-0 (surface-flag no-hands)) (surface-flag no-hands))
(format #t "no-hands ")
)
(if (= (logand (surface-flag gun-hide) s5-0) (surface-flag gun-hide))
(format #t "gun-hide ")
)
(if (= (logand s5-0 (surface-flag check-edge)) (surface-flag check-edge))
(format #t "check-edge ")
)
(if (= (logand (surface-flag super) s5-0) (surface-flag super))
(format #t "super ")
)
(if (= (logand s5-0 (surface-flag smooth-collision)) (surface-flag smooth-collision))
(format #t "smooth-collision ")
)
)
(format #t ")~%")
(label cfg-62)
this
)
;; definition for function calc-terminal-vel
(defun calc-terminal-vel ((arg0 float) (arg1 float) (arg2 float))
(- (* (/ (- (* 0.016666668 arg0) arg1) arg2) (- 1.0 arg2)) arg1)
)
;; definition for function calc-terminal2-vel
(defun calc-terminal2-vel ((arg0 float) (arg1 float) (arg2 float) (arg3 float))
(let ((f0-4 (sqrtf (/ (- (* 0.016666668 arg0) arg1) arg2))))
(- f0-4 (+ arg1 (* arg2 (* f0-4 f0-4))))
)
)
;; definition for function calc-terminal4-vel
(defun calc-terminal4-vel ((arg0 float) (arg1 float) (arg2 float))
(let ((f0-5 (sqrtf (sqrtf (/ (- (* 0.016666668 arg0) arg1) arg2)))))
(- f0-5 (+ arg1 (* arg2 (* f0-5 f0-5 f0-5 f0-5))))
)
)
;; definition for method 2 of type surface
;; ERROR: Function may read a register that is not set: t3
(defmethod print ((this surface))
(local-vars (t3-0 none))
(format
#t
"#<surface f0:~m f1:~f tf+:~f tf-:~f sf:~f tvv:~m"
(-> this turnv)
(-> this turnvv)
(-> this tiltv)
(-> this tiltvv)
(-> this transv-max)
t3-0
)
(format #t " tm:~m rv:~R rvv:~R @ #x~X>" (-> this target-speed) (-> this seek0) (-> this seek90) this)
this
)
;; definition for function surface-interp!
(defun surface-interp! ((arg0 surface) (arg1 surface) (arg2 surface) (arg3 float))
(dotimes (v1-0 30)
(set! (-> arg0 data v1-0) (+ (* (-> arg2 data v1-0) arg3) (* (-> arg1 data v1-0) (- 1.0 arg3))))
)
(dotimes (v1-3 5)
(set! (-> arg0 hook v1-3) (cond
((and (nonzero? (-> arg2 hook v1-3)) (!= (-> arg2 hook v1-3) nothing))
(-> arg2 hook v1-3)
)
((and (nonzero? (-> arg1 hook v1-3)) (!= (-> arg1 hook v1-3) nothing))
(-> arg1 hook v1-3)
)
(else
nothing
)
)
)
)
(dotimes (v1-6 2)
(set! (-> arg0 dataw v1-6) (-> arg2 dataw v1-6))
)
arg0
)
;; definition for function surface-mult!
(defun surface-mult! ((arg0 surface) (arg1 surface) (arg2 surface))
(dotimes (v1-0 30)
(set! (-> arg0 data v1-0) (* (-> arg2 data v1-0) (-> arg1 data v1-0)))
)
(dotimes (v1-3 5)
(set! (-> arg0 hook v1-3) (cond
((and (nonzero? (-> arg2 hook v1-3)) (!= (-> arg2 hook v1-3) nothing))
(-> arg2 hook v1-3)
)
((and (nonzero? (-> arg1 hook v1-3)) (!= (-> arg1 hook v1-3) nothing))
(-> arg1 hook v1-3)
)
(else
nothing
)
)
)
)
(dotimes (v1-6 2)
(set! (-> arg0 dataw v1-6) (-> arg2 dataw v1-6))
)
(set! (-> arg0 flags) (logior (-> arg1 flags) (-> arg2 flags)))
((-> arg0 mult-hook) arg0 arg1 arg2 1)
arg0
)
;; definition for function surface-clamp-speed
;; WARN: Return type mismatch float vs none.
(defun surface-clamp-speed ((arg0 surface) (arg1 surface) (arg2 surface) (arg3 int))
(when (= arg3 1)
(set! (-> arg0 transv-max) (fmin (-> arg0 transv-max) (-> arg1 transv-max)))
(set! (-> arg0 target-speed) (fmin (-> arg0 target-speed) (-> arg1 target-speed)))
)
(none)
)
;; definition for symbol *walk-mods*, type surface
(define *walk-mods* (new 'static 'surface
:name 'run
:turnv 131072.0
:turnvv 524288.0
:tiltv 65536.0
:tiltvv 262144.0
:transv-max 40960.0
:target-speed 40960.0
:seek0 1.0
:seek90 1.0
:seek180 1.0
:fric 1.0
:nonlin-fric-dist 1.0
:slip-factor 1.0
:slide-factor 1.0
:slope-up-factor 1.0
:slope-down-factor 1.0
:slope-slip-angle 1.0
:impact-fric 1.0
:bend-factor 1.0
:bend-speed 1.0
:alignv 1.0
:slope-up-traction 1.0
:align-speed 1.0
:turnvf 30.0
:turnvvf 30.0
:tiltvf 150.0
:tiltvvf 15.0
:flags (surface-flag look-around)
)
)
;; definition for symbol *walk-no-turn-mods*, type surface
(define *walk-no-turn-mods* (new 'static 'surface
:name 'run
:tiltv 65536.0
:tiltvv 262144.0
:transv-max 40960.0
:target-speed 40960.0
:seek0 1.0
:seek90 1.0
:seek180 1.0
:fric 1.0
:nonlin-fric-dist 1.0
:slip-factor 1.0
:slide-factor 1.0
:slope-up-factor 1.0
:slope-down-factor 1.0
:slope-slip-angle 1.0
:impact-fric 1.0
:bend-factor 1.0
:bend-speed 1.0
:alignv 1.0
:slope-up-traction 1.0
:align-speed 1.0
:tiltvf 150.0
:tiltvvf 15.0
)
)
;; definition for symbol *turn-around-mods*, type surface
(define *turn-around-mods* (new 'static 'surface
:name 'run
:tiltv 65536.0
:tiltvv 262144.0
:transv-max 40960.0
:target-speed 40960.0
:fric 0.1
:nonlin-fric-dist 1.0
:slip-factor 1.0
:slide-factor 1.0
:slope-up-factor 1.0
:slope-down-factor 1.0
:slope-slip-angle 1.0
:impact-fric 1.0
:bend-factor 1.0
:bend-speed 1.0
:alignv 1.0
:slope-up-traction 1.0
:align-speed 1.0
:tiltvf 150.0
:tiltvvf 15.0
)
)
;; definition for symbol *jump-mods*, type surface
(define *jump-mods* (new 'static 'surface
:name 'jump
:turnv 131072.0
:turnvv 18204.445
:tiltv 32768.0
:tiltvv 262144.0
:transv-max 40960.0
:target-speed 40960.0
:seek0 0.3
:seek90 0.3
:seek180 0.3
:fric 0.2
:nonlin-fric-dist 1.0
:slip-factor 1.0
:slide-factor 1.0
:slope-up-factor 1.0
:slope-down-factor 1.0
:slope-slip-angle 1.0
:impact-fric 1.0
:bend-factor 1.0
:bend-speed 1.0
:alignv 1.0
:slope-up-traction 1.0
:align-speed 1.0
:turnvf 30.0
:turnvvf 30.0
:tiltvf 150.0
:tiltvvf 15.0
:mode 'air
:flags (surface-flag check-edge air)
)
)
;; definition for symbol *double-jump-mods*, type surface
(define *double-jump-mods* (new 'static 'surface
:name 'jump-double
:turnv 131072.0
:turnvv 18204.445
:tiltv 32768.0
:tiltvv 262144.0
:transv-max 32768.0
:target-speed 32768.0
:seek0 0.3
:seek90 0.3
:seek180 0.3
:fric 0.2
:nonlin-fric-dist 1.0
:slip-factor 1.0
:slide-factor 1.0
:slope-up-factor 1.0
:slope-down-factor 1.0
:slope-slip-angle 1.0
:impact-fric 1.0
:bend-factor 1.0
:bend-speed 1.0
:alignv 1.0
:slope-up-traction 1.0
:align-speed 1.0
:turnvf 30.0
:turnvvf 30.0
:tiltvf 150.0
:tiltvvf 15.0
:mode 'air
:flags (surface-flag check-edge air)
)
)
;; definition for symbol *smack-jump-mods*, type surface
(define *smack-jump-mods* (new 'static 'surface
:name 'jump
:turnv 131072.0
:turnvv 18204.445
:tiltv 32768.0
:tiltvv 262144.0
:transv-max 40960.0
:target-speed 40960.0
:seek0 0.3
:seek90 0.3
:seek180 0.3
:fric 0.05
:nonlin-fric-dist 1.0
:slip-factor 1.0
:slide-factor 1.0
:slope-up-factor 1.0
:slope-down-factor 1.0
:slope-slip-angle 1.0
:impact-fric 1.0
:bend-factor 1.0
:bend-speed 1.0
:alignv 1.0
:slope-up-traction 1.0
:align-speed 1.0
:turnvf 30.0
:turnvvf 30.0
:tiltvf 150.0
:tiltvvf 15.0
:mode 'air
:flags (surface-flag check-edge air gun-inactive)
)
)
;; definition for symbol *high-jump-mods*, type surface
(define *high-jump-mods* (new 'static 'surface
:name 'high-jump
:turnv 131072.0
:turnvv 65536.0
:tiltv 32768.0
:tiltvv 262144.0
:transv-max 26624.0
:target-speed 26624.0
:seek0 0.9
:seek90 0.9
:seek180 0.9
:fric 0.3
:nonlin-fric-dist 1.0
:slip-factor 1.0
:slide-factor 1.0
:slope-up-factor 1.0
:slope-down-factor 1.0
:slope-slip-angle 1.0
:impact-fric 1.0
:bend-factor 1.0
:bend-speed 1.0
:alignv 1.0
:slope-up-traction 1.0
:align-speed 1.0
:turnvf 30.0
:turnvvf 30.0
:tiltvf 150.0
:tiltvvf 15.0
:mode 'air
:flags (surface-flag check-edge air)
)
)
;; definition for symbol *launch-jump-mods*, type surface
(define *launch-jump-mods* (new 'static 'surface
:name 'launch-jump
:turnv 131072.0
:turnvv 65536.0
:tiltv 32768.0
:tiltvv 262144.0
:transv-max 61440.0
:target-speed 61440.0
:seek0 0.9
:seek90 0.9
:seek180 0.9
:fric 0.3
:nonlin-fric-dist 1.0
:slip-factor 1.0
:slide-factor 1.0
:slope-up-factor 1.0
:slope-down-factor 1.0
:slope-slip-angle 1.0
:impact-fric 1.0
:bend-factor 1.0
:bend-speed 1.0
:alignv 1.0
:slope-up-traction 1.0
:align-speed 1.0
:turnvf 30.0
:turnvvf 30.0
:tiltvf 150.0
:tiltvvf 15.0
:mode 'air
:flags (surface-flag no-attack check-edge air)
)
)
;; definition for symbol *forward-high-jump-mods*, type surface
(define *forward-high-jump-mods* (new 'static 'surface
:name 'high-jump
:turnv 131072.0
:turnvv 65536.0
:tiltv 32768.0
:tiltvv 262144.0
:transv-max 45056.0
:target-speed 45056.0
:seek0 0.9
:seek90 0.9
:seek180 0.9
:fric 0.3
:nonlin-fric-dist 1.0
:slip-factor 1.0
:slide-factor 1.0
:slope-up-factor 1.0
:slope-down-factor 1.0
:slope-slip-angle 1.0
:impact-fric 1.0
:bend-factor 1.0
:bend-speed 1.0
:alignv 1.0
:slope-up-traction 1.0
:align-speed 1.0
:turnvf 30.0
:turnvvf 30.0
:tiltvf 150.0
:tiltvvf 15.0
:mode 'air
:flags (surface-flag check-edge air)
)
)
;; definition for symbol *flip-jump-mods*, type surface
(define *flip-jump-mods* (new 'static 'surface
:name 'high-jump
:turnv 131072.0
:turnvv 65536.0
:tiltv 32768.0
:tiltvv 262144.0
:transv-max 80281.6
:target-speed 51200.0
:seek0 0.9
:seek90 0.9
:seek180 0.9
:fric 0.3
:nonlin-fric-dist 1.0
:slip-factor 1.0
:slide-factor 1.0
:slope-up-factor 1.0
:slope-down-factor 1.0
:slope-slip-angle 1.0
:impact-fric 1.0
:bend-factor 1.0
:bend-speed 1.0
:alignv 1.0
:slope-up-traction 1.0
:align-speed 1.0
:turnvf 30.0
:turnvvf 30.0
:tiltvf 150.0
:tiltvvf 15.0
:mode 'air
:flags (surface-flag check-edge air)
)
)
;; definition for symbol *forward-jump-mods*, type surface
(define *forward-jump-mods* (new 'static 'surface
:name 'jump
:turnv 131072.0
:turnvv 18204.445
:tiltv 32768.0
:tiltvv 262144.0
:transv-max 65536.0
:target-speed 65536.0
:seek0 0.3
:seek90 0.3
:seek180 0.3
:fric 0.05
:nonlin-fric-dist 1.0
:slip-factor 1.0
:slide-factor 1.0
:slope-up-factor 1.0
:slope-down-factor 1.0
:slope-slip-angle 1.0
:impact-fric 1.0
:bend-factor 1.0
:bend-speed 1.0
:alignv 1.0
:slope-up-traction 1.0
:align-speed 1.0
:turnvf 30.0
:turnvvf 30.0
:tiltvf 150.0
:tiltvvf 15.0
:mode 'air
:flags (surface-flag check-edge air)
)
)
;; definition for symbol *forward-pole-jump-mods*, type surface
(define *forward-pole-jump-mods* (new 'static 'surface
:name 'jump
:turnv 131072.0
:turnvv 18204.445
:tiltv 32768.0
:tiltvv 262144.0
:transv-max 53248.0
:target-speed 53248.0
:seek0 0.3
:seek90 0.3
:seek180 0.3
:fric 0.05
:nonlin-fric-dist 1.0
:slip-factor 1.0
:slide-factor 1.0
:slope-up-factor 1.0
:slope-down-factor 1.0
:slope-slip-angle 1.0
:impact-fric 1.0
:bend-factor 1.0
:bend-speed 1.0
:alignv 1.0
:slope-up-traction 1.0
:align-speed 1.0
:turnvf 30.0
:turnvvf 30.0
:tiltvf 150.0
:tiltvvf 15.0
:mode 'air
:flags (surface-flag check-edge air gun-hide gun-fast-exit)
)
)
;; failed to figure out what this is:
(let ((v1-20 (copy *jump-mods* 'global)))
(set! (-> v1-20 flags) (surface-flag check-edge air super))
(set! (-> v1-20 name) 'high-jump)
(set! (-> v1-20 target-speed) 245760.0)
(set! (-> v1-20 transv-max) 245760.0)
(set! (-> v1-20 seek0) 0.9)
(set! *dark-jump-mods* v1-20)
)
;; definition for symbol *roll-mods*, type surface
(define *roll-mods* (new 'static 'surface
:name 'roll
:turnv 131072.0
:turnvv 5461.3335
:tiltv 32768.0
:tiltvv 262144.0
:transv-max 91750.4
:target-speed 11468.8
:seek0 1.0
:seek90 1.0
:seek180 1.0
:slip-factor 1.0
:slide-factor 1.0
:slope-up-factor 0.25
:slope-down-factor 1.0
:slope-slip-angle 1.0
:impact-fric 1.0
:bend-factor 1.0
:bend-speed 1.0
:alignv 1.0
:slope-up-traction 1.0
:align-speed 1.0
:turnvf 30.0
:turnvvf 30.0
:tiltvf 150.0
:tiltvvf 15.0
:mode 'attack
:flags (surface-flag no-turn-around attack gun-inactive gun-no-twist no-board)
)
)
;; definition for symbol *roll-flip-mods*, type surface
(define *roll-flip-mods*
(new 'static 'surface
:name 'roll-flip
:tiltv 32768.0
:tiltvv 262144.0
:transv-max 91750.4
:target-speed 103219.195
:seek90 0.5
:seek180 0.15
:slip-factor 1.0
:slide-factor 1.0
:slope-up-factor 0.25
:slope-down-factor 1.0
:slope-slip-angle 1.0
:impact-fric 1.0
:bend-factor 1.0
:bend-speed 1.0
:alignv 1.0
:slope-up-traction 1.0
:align-speed 1.0
:tiltvf 150.0
:tiltvvf 15.0
:mode 'attack
:flags (surface-flag no-turn-around check-edge air attack gun-inactive gun-no-twist no-board)
)
)
;; definition for symbol *flop-mods*, type surface
(define *flop-mods* (new 'static 'surface
:name 'flop
:tiltv 32768.0
:tiltvv 262144.0
:transv-max 40960.0
:target-speed 40960.0
:seek0 1.0
:seek90 0.3
:seek180 1.5
:slip-factor 1.0
:slide-factor 1.0
:slope-up-factor 0.25
:slope-down-factor 1.0
:slope-slip-angle 1.0
:impact-fric 1.0
:bend-factor 1.0
:bend-speed 1.0
:alignv 1.0
:slope-up-traction 1.0
:align-speed 1.0
:tiltvf 150.0
:tiltvvf 15.0
:mode 'attack
:flags (surface-flag air attack gun-inactive gun-no-twist)
)
)
;; failed to figure out what this is:
(let ((a0-9 (new 'static 'surface
:name 'flop
:turnv 9102.223
:turnvv 9102.223
:tiltv 32768.0
:tiltvv 262144.0
:transv-max 40960.0
:target-speed 40960.0
:seek0 0.3
:seek90 0.1
:seek180 0.15
:fric 0.2
:nonlin-fric-dist 1.0
:slip-factor 1.0
:slide-factor 1.0
:slope-up-factor 0.25
:slope-down-factor 1.0
:slope-slip-angle 1.0
:impact-fric 1.0
:bend-factor 1.0
:bend-speed 1.0
:alignv 1.0
:slope-up-traction 1.0
:align-speed 1.0
:turnvf 30.0
:turnvvf 30.0
:tiltvf 150.0
:tiltvvf 15.0
:mode 'air
:flags (surface-flag air gun-inactive gun-no-twist)
)
)
)
(set! (-> a0-9 mult-hook) surface-clamp-speed)
(set! *flop-land-mods* a0-9)
)
;; definition for symbol *wade-mods*, type surface
(define *wade-mods* (new 'static 'surface
:name 'wade
:turnv 131072.0
:turnvv 524288.0
:tiltv 65536.0
:tiltvv 262144.0
:transv-max 40960.0
:target-speed 40960.0
:seek0 1.0
:seek90 0.5
:seek180 0.5
:fric 1.0
:nonlin-fric-dist 1.0
:slip-factor 1.0
:slide-factor 1.0
:slope-up-factor 1.0
:slope-down-factor 1.0
:slope-slip-angle 1.0
:impact-fric 1.0
:bend-factor 1.0
:bend-speed 1.0
:alignv 1.0
:slope-up-traction 1.0
:align-speed 1.0
:turnvf 30.0
:turnvvf 30.0
:tiltvf 150.0
:tiltvvf 15.0
:mode 'wade
:flags (surface-flag look-around)
)
)
;; definition for symbol *swim-mods*, type surface
(define *swim-mods* (new 'static 'surface
:name 'swim
:turnv 49152.0
:turnvv 524288.0
:tiltv 65536.0
:tiltvv 262144.0
:transv-max 28672.0
:target-speed 28672.0
:seek0 0.75
:seek90 0.2
:seek180 0.2
:fric 0.05
:nonlin-fric-dist 1.0
:slip-factor 1.0
:slide-factor 1.0
:slope-up-factor 1.0
:slope-down-factor 1.0
:slope-slip-angle 1.0
:impact-fric 1.0
:bend-factor 1.0
:bend-speed 1.0
:alignv 1.0
:slope-up-traction 1.0
:align-speed 1.0
:turnvf 30.0
:turnvvf 30.0
:tiltvf 150.0
:tiltvvf 15.0
:mode 'swim
:flags (surface-flag gun-off)
)
)
;; definition for symbol *dive-mods*, type surface
(define *dive-mods* (new 'static 'surface
:name 'swim
:turnv 21845.334
:turnvv 32768.0
:tiltv 65536.0
:tiltvv 262144.0
:transv-max 20480.0
:target-speed 20480.0
:seek0 0.05
:seek90 0.05
:seek180 0.05
:fric 1.0
:nonlin-fric-dist 1.0
:impact-fric 1.0
:bend-factor 1.0
:bend-speed 1.0
:alignv 1.0
:align-speed 1.0
:turnvf 30.0
:turnvvf 30.0
:tiltvf 150.0
:tiltvvf 15.0
:mode 'dive
:flags (surface-flag xz-local gun-off gun-fast-exit)
)
)
;; definition for symbol *dive-bottom-mods*, type surface
(define *dive-bottom-mods* (new 'static 'surface
:name 'swim-bottom
:turnv 21845.334
:turnvv 32768.0
:tiltv 65536.0
:tiltvv 262144.0
:transv-max 20480.0
:target-speed 20480.0
:seek0 0.1
:seek90 0.05
:seek180 0.05
:fric 1.0
:nonlin-fric-dist 1.0
:slip-factor 1.0
:slide-factor 1.0
:slope-up-factor 1.0
:slope-down-factor 1.0
:slope-slip-angle 1.0
:impact-fric 1.0
:bend-factor 1.0
:bend-speed 1.0
:alignv 1.0
:slope-up-traction 1.0
:align-speed 1.0
:turnvf 30.0
:turnvvf 30.0
:tiltvf 150.0
:tiltvvf 15.0
:mode 'dive
:flags (surface-flag xz-local gun-off gun-fast-exit)
)
)
;; failed to figure out what this is:
(let ((v1-30 (copy *walk-mods* 'global)))
(set! (-> v1-30 name) 'pole)
(set! (-> v1-30 flags) (surface-flag gun-hide gun-fast-exit))
(set! *pole-mods* v1-30)
)
;; failed to figure out what this is:
(let ((a0-14 (copy *walk-mods* 'global)))
(set! (-> a0-14 name) 'grab)
(set! (-> a0-14 flags) (surface-flag))
(set! *grab-mods* a0-14)
)
;; failed to figure out what this is:
(let ((v1-34 (copy *walk-mods* 'global)))
(set! (-> v1-34 name) 'edge-grab)
(set! (-> v1-34 flags) (surface-flag gun-inactive gun-no-twist))
(set! *edge-grab-mods* v1-34)
)
;; definition for symbol *empty-mods*, type surface
(define *empty-mods* (new 'static 'surface
:name 'empty
:seek0 1.0
:seek90 1.0
:seek180 1.0
:fric 1.0
:flags (surface-flag gun-off)
)
)
;; definition for symbol *neutral-mods*, type surface
(define *neutral-mods* (new 'static 'surface
:name 'walk
:turnv 131072.0
:turnvv 524288.0
:tiltv 65536.0
:tiltvv 262144.0
:transv-max 40960.0
:target-speed 40960.0
:slip-factor 1.0
:slide-factor 1.0
:slope-up-factor 1.0
:slope-down-factor 1.0
:slope-slip-angle 1.0
:impact-fric 1.0
:bend-factor 1.0
:bend-speed 1.0
:slope-up-traction 1.0
:align-speed 1.0
:turnvf 30.0
:turnvvf 30.0
:tiltvf 150.0
:tiltvvf 15.0
)
)
;; failed to figure out what this is:
(let ((v1-37 (new 'static 'surface
:name '*stone-surface*
:turnv 1.0
:turnvv 1.0
:tiltv 1.0
:tiltvv 1.0
:transv-max 1.0
:target-speed 1.0
:seek0 153600.0
:seek90 153600.0
:seek180 256000.0
:fric 153600.0
:nonlin-fric-dist 5120.0
:slip-factor 1.0
:slope-down-factor 10240.0
:slope-slip-angle 8192.0
:impact-fric 1.0
:bend-factor 0.8
:bend-speed 4.0
:alignv 1.0
:slope-up-traction 1.0
:align-speed 1.0
:slope-change-preserve 1.0
:turnvf 1.0
:turnvvf 1.0
:tiltvf 1.0
:tiltvvf 1.0
:vel-turn 1.0
)
)
)
(set! *stone-surface* v1-37)
(set! (-> v1-37 exit-hook) nothing)
(set! (-> v1-37 mult-hook) (the-as (function surface surface surface int none) nothing))
(set! (-> v1-37 touch-hook) nothing)
(set! (-> v1-37 active-hook) nothing)
)
;; failed to figure out what this is:
(let ((v1-38 (new 'static 'surface
:name '*gravel-surface*
:turnv 1.0
:turnvv 1.0
:tiltv 1.0
:tiltvv 1.0
:transv-max 1.0
:target-speed 1.0
:seek0 153600.0
:seek90 153600.0
:seek180 256000.0
:fric 153600.0
:nonlin-fric-dist 5120.0
:slip-factor 1.0
:slide-factor 1.0
:slope-down-factor 32768.0
:slope-slip-angle 8192.0
:impact-fric 1.0
:bend-factor 0.8
:bend-speed 4.0
:alignv 1.0
:slope-up-traction 1.0
:align-speed 1.0
:slope-change-preserve 1.0
:turnvf 1.0
:turnvvf 1.0
:tiltvf 1.0
:tiltvvf 1.0
:vel-turn 1.0
)
)
)
(set! *gravel-surface* v1-38)
(set! (-> v1-38 exit-hook) nothing)
(set! (-> v1-38 mult-hook) (the-as (function surface surface surface int none) nothing))
(set! (-> v1-38 touch-hook) (lambda () (gravel-surface-touch) (none)))
(set! (-> v1-38 active-hook) nothing)
)
;; failed to figure out what this is:
(let ((v1-39 (new 'static 'surface
:name '*edge-surface*
:turnv 1.0
:turnvv 1.0
:tiltv 1.0
:tiltvv 1.0
:transv-max 1.0
:target-speed 1.0
:seek0 153600.0
:seek90 153600.0
:seek180 256000.0
:fric 30720.0
:nonlin-fric-dist 5120.0
:slip-factor 1.0
:slope-down-factor 18432.0
:slope-slip-angle 8192.0
:bend-factor 0.8
:bend-speed 4.0
:alignv 1.0
:align-speed 1.0
:turnvf 1.0
:turnvvf 1.0
:tiltvf 1.0
:tiltvvf 1.0
:vel-turn 1.0
)
)
)
(set! *edge-surface* v1-39)
(set! (-> v1-39 exit-hook) nothing)
(set! (-> v1-39 mult-hook) (the-as (function surface surface surface int none) nothing))
(set! (-> v1-39 touch-hook) nothing)
(set! (-> v1-39 active-hook) nothing)
)
;; failed to figure out what this is:
(let ((v1-40 (new 'static 'surface
:name '*wade-surface*
:turnv 1.0
:turnvv 1.0
:tiltv 1.0
:tiltvv 1.0
:transv-max 0.7
:target-speed 0.7
:seek0 153600.0
:seek90 153600.0
:seek180 256000.0
:fric 153600.0
:nonlin-fric-dist 5120.0
:slip-factor 1.0
:slope-down-factor 10240.0
:slope-slip-angle 8192.0
:impact-fric 1.0
:bend-factor 0.8
:bend-speed 4.0
:alignv 0.6
:slope-up-traction 1.0
:align-speed 0.6
:turnvf 1.0
:turnvvf 1.0
:tiltvf 1.0
:tiltvvf 1.0
:vel-turn 1.0
)
)
)
(set! *wade-surface* v1-40)
(set! (-> v1-40 exit-hook) nothing)
(set! (-> v1-40 mult-hook) (the-as (function surface surface surface int none) nothing))
(set! (-> v1-40 touch-hook) nothing)
(set! (-> v1-40 active-hook) nothing)
)
;; failed to figure out what this is:
(let ((v1-41 (new 'static 'surface
:name '*quicksand-surface*
:turnv 0.25
:turnvv 1.0
:tiltv 1.0
:tiltvv 1.0
:transv-max 0.5
:target-speed 0.5
:seek0 81920.0
:seek90 83968.0
:seek180 165888.0
:fric 329728.0
:nonlin-fric-dist 5120.0
:slip-factor 1.0
:slope-down-factor 10240.0
:slope-slip-angle 8192.0
:impact-fric 1.0
:bend-factor 0.8
:bend-speed 4.0
:alignv 0.5
:slope-up-traction 1.0
:align-speed 0.5
:turnvf 1.0
:turnvvf 1.0
:tiltvf 1.0
:tiltvvf 1.0
:vel-turn 1.0
)
)
)
(set! *quicksand-surface* v1-41)
(set! (-> v1-41 exit-hook) nothing)
(set! (-> v1-41 mult-hook) (the-as (function surface surface surface int none) nothing))
(set! (-> v1-41 touch-hook) nothing)
(set! (-> v1-41 active-hook) nothing)
)
;; failed to figure out what this is:
(let ((v1-42 (new 'static 'surface
:name '*tar-surface*
:turnv 0.25
:turnvv 1.0
:tiltv 1.0
:tiltvv 1.0
:transv-max 0.4
:target-speed 0.4
:seek0 81920.0
:seek90 83968.0
:seek180 165888.0
:fric 329728.0
:nonlin-fric-dist 5120.0
:slip-factor 1.0
:slope-down-factor 10240.0
:slope-slip-angle 8192.0
:impact-fric 1.0
:bend-factor 0.8
:bend-speed 4.0
:alignv 0.5
:slope-up-traction 1.0
:align-speed 0.5
:turnvf 1.0
:turnvvf 1.0
:tiltvf 1.0
:tiltvvf 1.0
:vel-turn 1.0
)
)
)
(set! *tar-surface* v1-42)
(set! (-> v1-42 exit-hook) nothing)
(set! (-> v1-42 mult-hook) (the-as (function surface surface surface int none) nothing))
(set! (-> v1-42 touch-hook) nothing)
(set! (-> v1-42 active-hook) nothing)
)
;; failed to figure out what this is:
(let ((v1-43 (new 'static 'surface
:name '*ice-surface*
:turnv 0.5
:turnvv 1.0
:tiltv 1.0
:tiltvv 1.0
:transv-max 1.5
:target-speed 1.5
:seek0 24576.0
:seek90 24576.0
:seek180 24576.0
:fric 23756.8
:nonlin-fric-dist 4091904.0
:slip-factor 0.7
:slope-slip-angle 16384.0
:bend-speed 4.0
:alignv 1.0
:slope-up-traction 1.0
:align-speed 1.0
:turnvf 1.0
:turnvvf 1.0
:tiltvf 1.0
:tiltvvf 1.0
:vel-turn 1.0
:flags (surface-flag no-turn-around turn-to-pad)
)
)
)
(set! *ice-surface* v1-43)
(set! (-> v1-43 exit-hook) nothing)
(set! (-> v1-43 mult-hook) (the-as (function surface surface surface int none) nothing))
(set! (-> v1-43 touch-hook) nothing)
(set! (-> v1-43 active-hook) nothing)
)
;; failed to figure out what this is:
(let ((v1-44 (new 'static 'surface
:name '*rail-surface*
:turnv 1.0
:turnvv 1.0
:tiltv 1.0
:tiltvv 1.0
:transv-max 1.0
:target-speed 1.0
:seek0 153600.0
:seek90 153600.0
:seek180 256000.0
:fric 153600.0
:nonlin-fric-dist 5120.0
:slip-factor 1.0
:slope-down-factor 10240.0
:slope-slip-angle 8192.0
:impact-fric 1.0
:bend-factor 0.8
:bend-speed 4.0
:alignv 1.0
:slope-up-traction 1.0
:align-speed 1.0
:slope-change-preserve 1.0
:turnvf 1.0
:turnvvf 1.0
:tiltvf 1.0
:tiltvvf 1.0
:vel-turn 1.0
:flags (surface-flag no-attack)
)
)
)
(set! *rail-surface* v1-44)
(set! (-> v1-44 exit-hook) nothing)
(set! (-> v1-44 mult-hook) (the-as (function surface surface surface int none) nothing))
(set! (-> v1-44 touch-hook) (lambda () (rail-surface-touch) (none)))
(set! (-> v1-44 active-hook) nothing)
)
;; definition for symbol *standard-ground-surface*, type surface
(define *standard-ground-surface* *stone-surface*)
;; definition for symbol *swim-surface*, type surface
(define *swim-surface* *stone-surface*)
;; failed to figure out what this is:
0