jak-project/goal_src/jak2/levels/stadium/racebike.gc
2023-02-18 15:45:00 -05:00

954 lines
35 KiB
Common Lisp

;;-*-Lisp-*-
(in-package goal)
;; name: racebike.gc
;; name in dgo: racebike
;; dgos: STD, STC, STB
;; DECOMP BEGINS
(defpartgroup group-race-bike-explode
:id 928
:duration (seconds 3)
:linger-duration (seconds 2)
:flags (use-local-clock)
:bounds (static-bspherem 0 0 0 2)
:parts ((sp-item 4126 :fade-after (meters 200) :falloff-to (meters 200) :period 9600 :length 25)
(sp-item 4127 :period 9600 :length 10 :offset 10)
(sp-item 4128 :fade-after (meters 120) :falloff-to (meters 120) :period 9600 :length 100 :offset 25)
(sp-item 4129 :fade-after (meters 60) :period 9600 :length 35 :offset 10)
(sp-item 4130 :period 9600 :length 50 :offset 15)
(sp-item 4131 :period 9600 :length 5)
(sp-item 4132 :period 9600 :length 50 :offset 15)
(sp-item 4133 :period 9600 :length 5)
)
)
(defpart 4131
:init-specs ((sp-tex spt-texture (new 'static 'texture-id :index #xbb :page #xc))
(sp-flt spt-num 1.0)
(sp-flt spt-y (meters -2.5))
(sp-flt spt-scale-x (meters 32))
(sp-flt spt-rot-x 8192.0)
(sp-copy-from-other spt-scale-y -4)
(sp-flt spt-r 255.0)
(sp-flt spt-g 255.0)
(sp-flt spt-b 255.0)
(sp-flt spt-a 96.0)
(sp-flt spt-scalevel-x (meters 0.5))
(sp-flt spt-rotvel-z (degrees 0.3))
(sp-copy-from-other spt-scalevel-y -4)
(sp-flt spt-fade-r 0.0)
(sp-flt spt-fade-g -1.28)
(sp-flt spt-fade-b -5.1)
(sp-flt spt-fade-a 0.0)
(sp-int spt-timer 65)
(sp-cpuinfo-flags sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 glow)
(sp-flt spt-userdata 40960.0)
(sp-int spt-next-time 30)
(sp-launcher-by-id spt-next-launcher 4134)
)
)
(defpart 4134
:init-specs ((sp-flt spt-scalevel-x (meters -0.2857143))
(sp-copy-from-other spt-scalevel-y -4)
(sp-flt spt-fade-r 0.0)
(sp-flt spt-fade-g -3.6571429)
(sp-flt spt-fade-b 0.0)
(sp-flt spt-fade-a -2.7428572)
)
)
(defpart 4133
:init-specs ((sp-tex spt-texture (new 'static 'texture-id :index #xca :page #xc))
(sp-flt spt-num 1.0)
(sp-flt spt-scale-x (meters 120))
(sp-flt spt-rot-x 8192.0)
(sp-copy-from-other spt-scale-y -4)
(sp-flt spt-r 255.0)
(sp-flt spt-g 255.0)
(sp-flt spt-b 255.0)
(sp-flt spt-a 24.0)
(sp-flt spt-scalevel-x (meters 0.13333334))
(sp-flt spt-rotvel-z (degrees 0.3))
(sp-copy-from-other spt-scalevel-y -4)
(sp-flt spt-fade-r 0.0)
(sp-flt spt-fade-g -4.266667)
(sp-flt spt-fade-b -4.266667)
(sp-flt spt-fade-a 0.0)
(sp-int spt-timer 150)
(sp-cpuinfo-flags sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 sp-cpuinfo-flag-14 glow)
(sp-flt spt-userdata 40960.0)
(sp-int spt-next-time 75)
(sp-launcher-by-id spt-next-launcher 4135)
)
)
(defpart 4135
:init-specs ((sp-flt spt-scalevel-x (meters 0))
(sp-copy-from-other spt-scalevel-y -4)
(sp-flt spt-fade-r -0.85333335)
(sp-flt spt-fade-g -1.7066667)
(sp-flt spt-fade-b -1.7066667)
(sp-flt spt-fade-a -0.64)
)
)
(defpart 4129
:init-specs ((sp-tex spt-texture (new 'static 'texture-id :index #x92 :page #xc))
(sp-flt spt-num 16.0)
(sp-rnd-flt spt-y (meters -3.5) (meters 2) 1.0)
(sp-flt spt-scale-x (meters 2.5))
(sp-int spt-rot-x 4)
(sp-rnd-flt spt-scale-y (meters 0.1) (meters 0.2) 1.0)
(sp-flt spt-r 255.0)
(sp-flt spt-g 255.0)
(sp-flt spt-b 255.0)
(sp-rnd-flt spt-a 64.0 32.0 1.0)
(sp-flt spt-omega 12.288)
(sp-rnd-flt spt-vel-y (meters 0.26666668) (meters 0.2) 1.0)
(sp-flt spt-fade-b -8.0)
(sp-rnd-flt spt-accel-y -13.653334 -6.826667 1.0)
(sp-rnd-flt spt-friction 0.9 0.08 1.0)
(sp-int-plain-rnd spt-timer 450 299 1)
(sp-cpuinfo-flags sp-cpuinfo-flag-2 sp-cpuinfo-flag-3)
(sp-func spt-func 'sparticle-motion-blur)
(sp-int spt-next-time 15)
(sp-launcher-by-id spt-next-launcher 4136)
(sp-rnd-flt spt-conerot-x (degrees 0.0) (degrees 140.0) 1.0)
(sp-rnd-flt spt-conerot-y (degrees 0.0) (degrees 10000.0) 1.0)
(sp-flt spt-rotate-y (degrees 90.0))
)
)
(defpart 4136
:init-specs ((sp-flt spt-r 255.0)
(sp-flt spt-g 255.0)
(sp-flt spt-b 0.0)
(sp-flt spt-fade-r 0.0)
(sp-flt spt-fade-g -2.6133332)
(sp-flt spt-fade-b -1.7066667)
(sp-rnd-flt spt-fade-a -0.096 -0.096 1.0)
(sp-int spt-next-time 75)
(sp-launcher-by-id spt-next-launcher 4137)
)
)
(defpart 4137
:init-specs ((sp-flt spt-fade-r 0.0) (sp-flt spt-fade-g 0.0) (sp-flt spt-fade-b 0.0))
)
(defpart 4132
:init-specs ((sp-tex spt-texture (new 'static 'texture-id :index #x34 :page #xc))
(sp-rnd-flt spt-num 5.0 5.0 1.0)
(sp-flt spt-y (meters -2.5))
(sp-rnd-flt spt-scale-x (meters 3) (meters 2) 1.0)
(sp-int spt-rot-x 4)
(new 'static 'sp-field-init-spec
:field (sp-field-id spt-rot-z)
:flags (sp-flag spflag7)
:random-rangef 65536.0
:random-multf 1.0
)
(sp-rnd-flt spt-scale-y (meters 8) (meters 4) 1.0)
(sp-flt spt-r 255.0)
(sp-flt spt-g 255.0)
(sp-flt spt-b 255.0)
(sp-rnd-flt spt-a 32.0 32.0 1.0)
(sp-rnd-flt spt-vel-y (meters 0.033333335) (meters 0.06666667) 1.0)
(sp-rnd-flt spt-scalevel-x (meters 0.033333335) (meters 0.13333334) 1.0)
(sp-copy-from-other spt-scalevel-y -4)
(sp-flt spt-fade-r 0.0)
(sp-flt spt-fade-g -0.36)
(sp-flt spt-fade-b -4.24)
(sp-flt spt-fade-a -0.26666668)
(sp-rnd-flt spt-friction 0.92 0.02 1.0)
(sp-int spt-timer 1000)
(sp-cpuinfo-flags sp-cpuinfo-flag-2)
(sp-func spt-func 'sparticle-motion-blur)
(sp-int spt-next-time 25)
(sp-launcher-by-id spt-next-launcher 4138)
(new 'static 'sp-field-init-spec
:field (sp-field-id spt-conerot-x)
:flags (sp-flag from-pointer)
:func '*sp-temp*
)
(sp-rnd-flt spt-conerot-y (degrees 0.0) (degrees 3600.0) 1.0)
(sp-flt spt-rotate-y (degrees 90.0))
(sp-rnd-flt spt-conerot-radius (meters 0) (meters 2) 1.0)
)
)
(defpart 4138
:init-specs ((sp-rnd-flt spt-scalevel-x (meters 0.016666668) (meters 0.016666668) 1.0)
(sp-copy-from-other spt-scalevel-y -4)
(sp-flt spt-fade-r -0.55)
(sp-flt spt-fade-g -2.95)
(sp-flt spt-fade-b -3.3)
(sp-int-plain-rnd spt-next-time 30 9 1)
(sp-launcher-by-id spt-next-launcher 4139)
)
)
(defpart 4139
:init-specs ((sp-rnd-flt spt-scalevel-x (meters 0.008333334) (meters 0.008333334) 1.0)
(sp-copy-from-other spt-scalevel-y -4)
(sp-flt spt-fade-r -1.2944444)
(sp-flt spt-fade-g -0.7111111)
(sp-flt spt-fade-b -0.2)
(sp-rnd-flt spt-fade-a -0.225 -0.225 1.0)
)
)
(defpart 4130
:init-specs ((sp-tex spt-texture (new 'static 'texture-id :index #x33 :page #xc))
(sp-func spt-birth-func 'birth-func-texture-group)
(sp-rnd-flt spt-num 16.0 10.0 1.0)
(sp-flt spt-y (meters -2.5))
(sp-rnd-flt spt-scale-x (meters 3) (meters 2) 1.0)
(sp-flt spt-rot-z (degrees 0.0))
(sp-rnd-flt spt-scale-y (meters 6.8) (meters 1.2) 1.0)
(sp-flt spt-r 255.0)
(sp-flt spt-g 255.0)
(sp-flt spt-b 255.0)
(sp-rnd-flt spt-a 32.0 32.0 1.0)
(sp-rnd-flt spt-vel-y (meters 0) (meters 0.13333334) 1.0)
(sp-rnd-flt spt-scalevel-x (meters 0.06666667) (meters 0.13333334) 1.0)
(sp-rnd-flt spt-rotvel-z (degrees -0.12) (degrees 0.24) 1.0)
(sp-copy-from-other spt-scalevel-y -4)
(sp-flt spt-fade-r 0.0)
(sp-flt spt-fade-g -0.36)
(sp-flt spt-fade-b -4.24)
(sp-flt spt-fade-a -0.32)
(sp-flt spt-friction 0.94)
(sp-int spt-timer 1000)
(sp-cpuinfo-flags sp-cpuinfo-flag-2)
(new 'static 'sp-field-init-spec
:field (sp-field-id spt-userdata)
:flags (sp-flag plain-v2)
:object (new 'static 'boxed-array :type int32 40 1 0 #xc00000 #xc03300)
)
(sp-int spt-next-time 25)
(sp-launcher-by-id spt-next-launcher 4140)
(sp-rnd-flt spt-conerot-x (degrees 0.0) (degrees 3600.0) 1.0)
(sp-rnd-flt spt-conerot-y (degrees 0.0) (degrees 3600.0) 1.0)
(sp-flt spt-rotate-y (degrees 90.0))
(sp-rnd-flt spt-conerot-radius (meters 0) (meters 8) 1.0)
)
)
(defpart 4140
:init-specs ((sp-flt spt-fade-r 0.0)
(sp-flt spt-fade-g 0.0)
(sp-flt spt-fade-b 0.0)
(sp-int-plain-rnd spt-next-time 5 19 1)
(sp-launcher-by-id spt-next-launcher 4141)
)
)
(defpart 4141
:init-specs ((sp-rnd-flt spt-scalevel-x (meters 0.016666668) (meters 0.016666668) 1.0)
(sp-copy-from-other spt-scalevel-y -4)
(sp-flt spt-fade-r -0.44)
(sp-flt spt-fade-g -2.36)
(sp-flt spt-fade-b -2.64)
(sp-int-plain-rnd spt-next-time 35 14 1)
(sp-launcher-by-id spt-next-launcher 4142)
)
)
(defpart 4142
:init-specs ((sp-rnd-flt spt-scalevel-x (meters 0.008333334) (meters 0.008333334) 1.0)
(sp-copy-from-other spt-scalevel-y -4)
(sp-flt spt-fade-r -1.2)
(sp-flt spt-fade-g -0.7111111)
(sp-flt spt-fade-b -0.2)
(sp-rnd-flt spt-fade-a -0.06545454 -0.06545454 1.0)
(sp-int-plain-rnd spt-next-time 150 29 1)
(sp-launcher-by-id spt-next-launcher 4143)
)
)
(defpart 4143
:init-specs ((sp-flt spt-fade-r 0.0) (sp-flt spt-fade-g 0.0) (sp-flt spt-fade-b 0.0) (sp-flt spt-fade-a -0.1125))
)
(defpart 4128
:init-specs ((sp-tex spt-texture (new 'static 'texture-id :index #x32 :page #xc))
(sp-rnd-flt spt-num 6.0 8.0 1.0)
(sp-flt spt-x (meters 0.25))
(sp-flt spt-y (meters -2.5))
(sp-rnd-flt spt-scale-x (meters 3) (meters 5) 1.0)
(sp-rnd-flt spt-rot-z (degrees 0.0) (degrees 360.0) 1.0)
(sp-copy-from-other spt-scale-y -4)
(sp-flt spt-r 255.0)
(sp-flt spt-g 255.0)
(sp-flt spt-b 255.0)
(sp-rnd-flt spt-a 16.0 48.0 1.0)
(sp-rnd-flt spt-vel-y (meters 0.06666667) (meters 0.4) 1.0)
(sp-rnd-flt spt-scalevel-x (meters 0.013333334) (meters 0.013333334) 1.0)
(sp-rnd-flt spt-rotvel-z (degrees -0.12) (degrees 0.24) 1.0)
(sp-copy-from-other spt-scalevel-y -4)
(sp-flt spt-fade-r 0.0)
(sp-flt spt-fade-g -0.18)
(sp-flt spt-fade-b -2.12)
(sp-rnd-flt spt-accel-y -1.3653333 -9.557333 1.0)
(sp-rnd-flt spt-friction 0.88 0.02 1.0)
(sp-int spt-timer 3000)
(sp-cpuinfo-flags sp-cpuinfo-flag-2)
(sp-int-plain-rnd spt-next-time 35 14 1)
(sp-launcher-by-id spt-next-launcher 4144)
(sp-rnd-flt spt-conerot-x (degrees 0.0) (degrees 3600.0) 1.0)
(sp-rnd-flt spt-conerot-y (degrees 0.0) (degrees 3600.0) 1.0)
(sp-flt spt-rotate-y (degrees 90.0))
(sp-rnd-flt spt-conerot-radius (meters 3) (meters 5) 1.0)
)
)
(defpart 4144
:init-specs ((sp-flt spt-scalevel-x (meters 0.0016666667))
(sp-copy-from-other spt-scalevel-y -4)
(sp-flt spt-fade-r 0.0)
(sp-flt spt-fade-g 0.02)
(sp-flt spt-fade-b 0.23555556)
(sp-int-plain-rnd spt-next-time 45 14 1)
(sp-launcher-by-id spt-next-launcher 4145)
)
)
(defpart 4145
:init-specs ((sp-flt spt-fade-r -0.5543478)
(sp-flt spt-fade-g -0.5543478)
(sp-flt spt-fade-b -0.5543478)
(sp-rnd-flt spt-fade-a -0.10666667 -0.10666667 1.0)
)
)
(defpart 4126
:init-specs ((sp-tex spt-texture (new 'static 'texture-id :page #xc))
(sp-rnd-flt spt-num 4.0 8.0 1.0)
(sp-rnd-flt spt-x (meters 0) (meters 0.6) 1.0)
(sp-flt spt-y (meters -2.5))
(sp-rnd-flt spt-scale-x (meters 8.5) (meters 8) 1.0)
(sp-rnd-flt spt-rot-z (degrees 0.0) (degrees 360.0) 1.0)
(sp-copy-from-other spt-scale-y -4)
(sp-rnd-flt spt-r 70.0 20.0 1.0)
(sp-rnd-flt spt-g 70.0 20.0 1.0)
(sp-rnd-flt spt-b 70.0 20.0 1.0)
(sp-rnd-flt spt-a 0.0 40.0 1.0)
(sp-rnd-flt spt-vel-y (meters 0) (meters 0.2) 1.0)
(sp-rnd-flt spt-scalevel-x (meters 0.033333335) (meters 0.086666666) 1.0)
(sp-rnd-flt spt-rotvel-z (degrees -0.12) (degrees 0.24) 1.0)
(sp-copy-from-other spt-scalevel-y -4)
(sp-flt spt-fade-r 3.3)
(sp-flt spt-fade-g 3.12)
(sp-flt spt-fade-b 1.18)
(sp-flt spt-fade-a 1.76)
(sp-flt spt-friction 0.89)
(sp-int spt-timer 710)
(sp-cpuinfo-flags sp-cpuinfo-flag-2 sp-cpuinfo-flag-3)
(sp-int-plain-rnd spt-next-time 35 14 1)
(sp-launcher-by-id spt-next-launcher 4146)
(sp-rnd-flt spt-conerot-x (degrees 0.0) (degrees 3600.0) 1.0)
(sp-rnd-flt spt-conerot-y (degrees 0.0) (degrees 3600.0) 1.0)
(sp-flt spt-rotate-y (degrees 90.0))
)
)
(defpart 4146
:init-specs ((sp-flt spt-scalevel-x (meters 0.0033333334))
(sp-copy-from-other spt-scalevel-y -4)
(sp-flt spt-fade-r -0.53333336)
(sp-flt spt-fade-g -1.9666667)
(sp-flt spt-fade-b -2.2)
(sp-flt spt-fade-a -0.41666666)
(sp-int-plain-rnd spt-next-time 45 14 1)
(sp-launcher-by-id spt-next-launcher 4147)
)
)
(defpart 4147
:init-specs ((sp-flt spt-scalevel-x (meters 0))
(sp-copy-from-other spt-scalevel-y -4)
(sp-flt spt-fade-r -0.38833332)
(sp-flt spt-fade-g -0.21333334)
(sp-flt spt-fade-b -0.028333334)
(sp-flt spt-fade-a -0.38833332)
)
)
(defpart 4127
:init-specs ((sp-tex spt-texture (new 'static 'texture-id :index #x31 :page #xc))
(sp-flt spt-num 9.0)
(sp-flt spt-y (meters -2.5))
(sp-rnd-flt spt-scale-x (meters 4) (meters 8) 1.0)
(sp-int spt-rot-x 4)
(sp-rnd-flt spt-rot-z (degrees 0.0) (degrees 3600.0) 1.0)
(sp-rnd-flt spt-scale-y (meters 1) (meters 0.5) 1.0)
(sp-rnd-flt spt-r 128.0 128.0 1.0)
(sp-flt spt-g 96.0)
(sp-flt spt-b 64.0)
(sp-rnd-flt spt-a 64.0 64.0 1.0)
(sp-rnd-flt spt-scalevel-x (meters 0.13333334) (meters 0.4) 1.0)
(sp-flt spt-fade-g 1.6)
(sp-flt spt-fade-b 3.2)
(sp-flt spt-fade-a -1.6)
(sp-int spt-timer 90)
(sp-cpuinfo-flags sp-cpuinfo-flag-2)
)
)
(defskelgroup skel-race-bike-d race-bike-b race-bike-b-lod0-jg race-bike-b-idle-ja
((race-bike-b-lod0-mg (meters 20)) (race-bike-b-lod1-mg (meters 999999)))
:bounds (static-spherem 0 0 0 5)
:shadow race-bike-b-shadow-mg
)
(defskelgroup skel-race-bike-e race-bike-c race-bike-c-lod0-jg race-bike-c-idle-ja
((race-bike-c-lod0-mg (meters 20)) (race-bike-c-lod1-mg (meters 999999)))
:bounds (static-spherem 0 0 0 5)
:shadow race-bike-c-shadow-mg
)
(define *race-bike-d-constants*
(new 'static 'rigid-body-vehicle-constants
:info (new 'static 'rigid-body-info
:mass 2.0
:inv-mass 0.5
:linear-damping 0.995
:angular-damping 0.995
:bounce-factor 0.25
:friction-factor 0.2516
:cm-offset-joint (new 'static 'vector :y -2048.0 :z -2048.0 :w 1.0)
:inertial-tensor-box (new 'static 'array meters 3 (meters 1.5) (meters 2) (meters 5))
)
:extra (new 'static 'rigid-body-object-extra-info
:max-time-step 0.033333335
:gravity (meters 40)
:idle-distance (meters 50)
:attack-force-scale 1.0
)
:name '*race-bike-d-constants*
:flags #x791
:object-type #xd
:guard-type #x7
:max-engine-thrust (meters 50)
:inv-max-engine-thrust 0.0000048828124
:engine-response-rate 32.0
:engine-intake-factor 1.0
:brake-factor 2.0
:turbo-boost-factor 1.0
:max-xz-speed (meters 100)
:ground-probe-distance (meters 5)
:ground-probe-offset (meters 0.5)
:cos-ground-effect-angle -0.00000004371139
:spring-lift-factor 0.35
:air-drag-factor 1.2
:steering-fin-angle 1820.4445
:steering-thruster-factor 6.0
:steering-thruster-max-gain 2.0
:steering-thruster-half-gain-speed (meters 80)
:tire-steering-angle 1274.3112
:tire-static-friction 0.5
:tire-static-friction-speed (meters 1)
:tire-dynamic-friction 0.25
:tire-dynamic-friction-speed (meters 3)
:tire-inv-max-friction-speed 0.000024414063
:airfoil-factor 8.0
:drag-force-factor 1.0
:speed-limiting-drag 0.5
:pitch-control-factor 0.5
:roll-control-factor 1.0
:roll-angle 7281.778
:jump-thrust-factor 0.625
:buoyancy-factor 1.0
:player-weight 163840.0
:player-shift-x (meters 0.6)
:player-shift-z (meters 0.125)
:target-speed-offset (meters 4)
:turning-accel (meters 20)
:toughness-factor 1.0
:damage-factor 4.0
:camera-string-min-height (meters 2.5)
:camera-string-max-height (meters 2.5)
:camera-string-min-length (meters 2.4)
:camera-string-max-length (meters 2.5)
:camera-min-fov 16384.0
:camera-max-fov 18204.445
:camera-head-offset 4096.0
:camera-foot-offset -4096.0
:camera-air-max-angle-offset 5461.3335
:camera-max-lookaround-speed 40960.0
:seat-count 1
:section-count 2
:rider-stance #x1
:grab-rail-array #f
:seat-array (new 'static 'inline-array vehicle-seat-info 4
(new 'static 'vehicle-seat-info
:position (new 'static 'vector :y -409.6 :z -4505.6 :w (the-as float #x10000))
)
(new 'static 'vehicle-seat-info)
(new 'static 'vehicle-seat-info)
(new 'static 'vehicle-seat-info)
)
:rider-hand-offset (new 'static 'inline-array vector 2
(new 'static 'vector :x 1433.6 :y -614.4 :z -2457.6 :w 1.0)
(new 'static 'vector :x -1433.6 :y -614.4 :z -2457.6 :w 1.0)
)
:section-bike-front (new 'static 'vehicle-section-info
:damage-seg-array (new 'static 'array uint64 3 #x10 #x4 #x2)
:damage-seg-count 3
)
:section-bike-rear (new 'static 'vehicle-section-info
:damage-seg-array (new 'static 'array uint64 3 #x20 #x8 #x0)
:damage-seg-count 3
)
:explosion #f
:engine-pitch-scale 0.25
:engine-pitch-mod-amp 0.025
:engine-sound-select 2
:engine-sound (static-sound-name "race-bike-engin")
:thrust-sound (static-sound-name "racebike-thrust")
:scrape-sound (static-sound-name "bike-scrape-stn")
:glance-sound (static-sound-name "bike-glance-stn")
:impact-sound (static-sound-name "bike-impact-stn")
:extra-sound (static-sound-name "car-by-1")
:explosion-part #x3a0
:thruster-flame-width (meters 0.5)
:thruster-flame-length (meters 2)
:thruster-local-pos (new 'static 'inline-array vector 2
(new 'static 'vector :y -409.6 :z -12288.0 :w 1.0)
(new 'static 'vector :y -409.6 :z -12288.0 :w 1.0)
)
:exhaust-local-pos (new 'static 'inline-array vector 2
(new 'static 'vector :x 1228.8 :y -1228.8 :z -9420.8 :w 1.0)
(new 'static 'vector :x -1228.8 :y -1228.8 :z -9420.8 :w 1.0)
)
:exhaust-local-dir (new 'static 'inline-array vector 2 (new 'static 'vector :z -1.0 :w 1.0) (new 'static 'vector :z -1.0 :w 1.0))
:smoke-local-pos (new 'static 'inline-array vector 2
(new 'static 'vector :y -1228.8 :z -3686.4 :w 1.0)
(new 'static 'vector :y -409.6 :z -11468.8 :w 1.0)
)
:smoke-local-vel (new 'static 'inline-array vector 2 (new 'static 'vector :w 1.0) (new 'static 'vector :w 1.0))
:lift-thruster-count 2
:roll-thruster-count 2
:steering-thruster-count 2
:stabilizer-count 4
:inv-lift-thruster-count 0.5
:lift-thruster-array (new 'static 'inline-array vehicle-control-point 2
(new 'static 'vehicle-control-point
:local-pos (new 'static 'vector :y -2048.0 :z 2867.2002 :w 1.0)
:normal (new 'static 'vector :y -1.0 :w 1.0)
)
(new 'static 'vehicle-control-point
:local-pos (new 'static 'vector :y -2048.0 :z -6963.2 :w 1.0)
:normal (new 'static 'vector :y -1.0 :w 1.0)
)
)
:roll-thruster-array (new 'static 'inline-array vehicle-control-point 2
(new 'static 'vehicle-control-point
:local-pos (new 'static 'vector :x 6963.2 :y -1228.8 :z -2048.0 :w 1.0)
:normal (new 'static 'vector :x 0.3 :y -0.6 :w 1.0)
)
(new 'static 'vehicle-control-point
:local-pos (new 'static 'vector :x -6963.2 :y -1228.8 :z -2048.0 :w 1.0)
:normal (new 'static 'vector :x -0.3 :y -0.6 :w 1.0)
)
)
:steering-thruster-array (new 'static 'inline-array vehicle-control-point 2
(new 'static 'vehicle-control-point
:local-pos (new 'static 'vector :y -2048.0 :z 5734.4 :w 1.0)
:normal (new 'static 'vector :x 1.0 :w 1.0)
)
(new 'static 'vehicle-control-point
:local-pos (new 'static 'vector :y -2048.0 :z -9830.4 :w 1.0)
:normal (new 'static 'vector :x -1.0 :w 1.0)
)
)
:stabilizer-array (new 'static 'inline-array vehicle-control-point 6
(new 'static 'vehicle-control-point
:local-pos (new 'static 'vector :y -2048.0 :z -10240.0 :w 1.0)
:normal (new 'static 'vector :x 1.0 :w 1.0)
)
(new 'static 'vehicle-control-point
:local-pos (new 'static 'vector :y -2048.0 :z 6144.0 :w 1.0)
:normal (new 'static 'vector :x 1.0 :w 0.25)
)
(new 'static 'vehicle-control-point
:local-pos (new 'static 'vector :y -2048.0 :z -2048.0 :w 1.0)
:normal (new 'static 'vector :x 1.0 :w 0.75)
)
(new 'static 'vehicle-control-point
:local-pos (new 'static 'vector :y -2048.0 :z -10240.0 :w 1.0)
:normal (new 'static 'vector :y 1.0 :w 0.25)
)
(new 'static 'vehicle-control-point)
(new 'static 'vehicle-control-point)
)
:engine-thrust-local-pos (new 'static 'vector :y -2048.0 :z -7782.4 :w 1.0)
:brake-local-pos (new 'static 'vector :y -2048.0 :z -7782.4 :w 1.0)
:color-option-count 1
:color-option-array (new 'static 'inline-array vector 1 (new 'static 'vector :x 1.0 :y 1.0 :z 1.0 :w 1.0))
)
)
(define *race-bike-e-constants*
(new 'static 'rigid-body-vehicle-constants
:info (new 'static 'rigid-body-info
:mass 2.0
:inv-mass 0.5
:linear-damping 0.995
:angular-damping 0.995
:bounce-factor 0.25
:friction-factor 0.2516
:cm-offset-joint (new 'static 'vector :y -2048.0 :z -2048.0 :w 1.0)
:inertial-tensor-box (new 'static 'array meters 3 (meters 1.5) (meters 2) (meters 5))
)
:extra (new 'static 'rigid-body-object-extra-info
:max-time-step 0.033333335
:gravity (meters 40)
:idle-distance (meters 50)
:attack-force-scale 1.0
)
:name '*race-bike-e-constants*
:flags #x791
:object-type #xd
:guard-type #x7
:max-engine-thrust (meters 50)
:inv-max-engine-thrust 0.0000048828124
:engine-response-rate 32.0
:engine-intake-factor 1.0
:brake-factor 2.0
:turbo-boost-factor 1.0
:max-xz-speed (meters 100)
:ground-probe-distance (meters 5)
:ground-probe-offset (meters 0.5)
:cos-ground-effect-angle -0.00000004371139
:spring-lift-factor 0.35
:air-drag-factor 1.2
:steering-fin-angle 1820.4445
:steering-thruster-factor 6.0
:steering-thruster-max-gain 2.0
:steering-thruster-half-gain-speed (meters 80)
:tire-steering-angle 1274.3112
:tire-static-friction 0.5
:tire-static-friction-speed (meters 1)
:tire-dynamic-friction 0.25
:tire-dynamic-friction-speed (meters 3)
:tire-inv-max-friction-speed 0.000024414063
:airfoil-factor 8.0
:drag-force-factor 1.0
:speed-limiting-drag 0.5
:pitch-control-factor 0.5
:roll-control-factor 1.0
:roll-angle 7281.778
:jump-thrust-factor 0.625
:buoyancy-factor 1.0
:player-weight 163840.0
:player-shift-x (meters 0.6)
:player-shift-z (meters 0.125)
:target-speed-offset (meters 4)
:turning-accel (meters 20)
:toughness-factor 1.0
:damage-factor 4.0
:camera-string-min-height (meters 2.5)
:camera-string-max-height (meters 2.5)
:camera-string-min-length (meters 2.4)
:camera-string-max-length (meters 2.5)
:camera-min-fov 16384.0
:camera-max-fov 18204.445
:camera-head-offset 4096.0
:camera-foot-offset -4096.0
:camera-air-max-angle-offset 5461.3335
:camera-max-lookaround-speed 40960.0
:seat-count 1
:section-count 2
:rider-stance #x1
:grab-rail-array #f
:seat-array (new 'static 'inline-array vehicle-seat-info 4
(new 'static 'vehicle-seat-info
:position (new 'static 'vector :y -409.6 :z -4505.6 :w (the-as float #x10000))
)
(new 'static 'vehicle-seat-info)
(new 'static 'vehicle-seat-info)
(new 'static 'vehicle-seat-info)
)
:rider-hand-offset (new 'static 'inline-array vector 2
(new 'static 'vector :x 1433.6 :y -614.4 :z -2457.6 :w 1.0)
(new 'static 'vector :x -1433.6 :y -614.4 :z -2457.6 :w 1.0)
)
:section-bike-front (new 'static 'vehicle-section-info
:damage-seg-array (new 'static 'array uint64 3 #x10 #x4 #x2)
:damage-seg-count 3
)
:section-bike-rear (new 'static 'vehicle-section-info
:damage-seg-array (new 'static 'array uint64 3 #x20 #x8 #x0)
:damage-seg-count 3
)
:explosion #f
:engine-pitch-scale 0.25
:engine-pitch-mod-amp 0.025
:engine-sound-select 2
:engine-sound (static-sound-name "race-bike-engin")
:thrust-sound (static-sound-name "racebike-thrust")
:scrape-sound (static-sound-name "bike-scrape-stn")
:glance-sound (static-sound-name "bike-glance-stn")
:impact-sound (static-sound-name "bike-impact-stn")
:extra-sound (static-sound-name "car-by-1")
:explosion-part #x3a0
:thruster-flame-width (meters 0.5)
:thruster-flame-length (meters 2)
:thruster-local-pos (new 'static 'inline-array vector 2
(new 'static 'vector :y -2048.0 :z -13516.8 :w 1.0)
(new 'static 'vector :y -2048.0 :z -13516.8 :w 1.0)
)
:exhaust-local-pos (new 'static 'inline-array vector 2
(new 'static 'vector :x 2048.0 :y -2457.6 :z -11468.8 :w 1.0)
(new 'static 'vector :x -2048.0 :y -2457.6 :z -11468.8 :w 1.0)
)
:exhaust-local-dir (new 'static 'inline-array vector 2 (new 'static 'vector :z -1.0 :w 1.0) (new 'static 'vector :z -1.0 :w 1.0))
:smoke-local-pos (new 'static 'inline-array vector 2
(new 'static 'vector :y -1228.8 :z -3686.4 :w 1.0)
(new 'static 'vector :y -409.6 :z -11468.8 :w 1.0)
)
:smoke-local-vel (new 'static 'inline-array vector 2 (new 'static 'vector :w 1.0) (new 'static 'vector :w 1.0))
:lift-thruster-count 2
:roll-thruster-count 2
:steering-thruster-count 2
:stabilizer-count 4
:inv-lift-thruster-count 0.5
:lift-thruster-array (new 'static 'inline-array vehicle-control-point 2
(new 'static 'vehicle-control-point
:local-pos (new 'static 'vector :y -2048.0 :z 2867.2002 :w 1.0)
:normal (new 'static 'vector :y -1.0 :w 1.0)
)
(new 'static 'vehicle-control-point
:local-pos (new 'static 'vector :y -2048.0 :z -6963.2 :w 1.0)
:normal (new 'static 'vector :y -1.0 :w 1.0)
)
)
:roll-thruster-array (new 'static 'inline-array vehicle-control-point 2
(new 'static 'vehicle-control-point
:local-pos (new 'static 'vector :x 6963.2 :y -1228.8 :z -2048.0 :w 1.0)
:normal (new 'static 'vector :x 0.3 :y -0.6 :w 1.0)
)
(new 'static 'vehicle-control-point
:local-pos (new 'static 'vector :x -6963.2 :y -1228.8 :z -2048.0 :w 1.0)
:normal (new 'static 'vector :x -0.3 :y -0.6 :w 1.0)
)
)
:steering-thruster-array (new 'static 'inline-array vehicle-control-point 2
(new 'static 'vehicle-control-point
:local-pos (new 'static 'vector :y -2048.0 :z 5734.4 :w 1.0)
:normal (new 'static 'vector :x 1.0 :w 1.0)
)
(new 'static 'vehicle-control-point
:local-pos (new 'static 'vector :y -2048.0 :z -9830.4 :w 1.0)
:normal (new 'static 'vector :x -1.0 :w 1.0)
)
)
:stabilizer-array (new 'static 'inline-array vehicle-control-point 6
(new 'static 'vehicle-control-point
:local-pos (new 'static 'vector :y -2048.0 :z -10240.0 :w 1.0)
:normal (new 'static 'vector :x 1.0 :w 1.0)
)
(new 'static 'vehicle-control-point
:local-pos (new 'static 'vector :y -2048.0 :z 6144.0 :w 1.0)
:normal (new 'static 'vector :x 1.0 :w 0.25)
)
(new 'static 'vehicle-control-point
:local-pos (new 'static 'vector :y -2048.0 :z -2048.0 :w 1.0)
:normal (new 'static 'vector :x 1.0 :w 0.75)
)
(new 'static 'vehicle-control-point
:local-pos (new 'static 'vector :y -2048.0 :z -10240.0 :w 1.0)
:normal (new 'static 'vector :y 1.0 :w 0.25)
)
(new 'static 'vehicle-control-point)
(new 'static 'vehicle-control-point)
)
:engine-thrust-local-pos (new 'static 'vector :y -2048.0 :z -7782.4 :w 1.0)
:brake-local-pos (new 'static 'vector :y -2048.0 :z -7782.4 :w 1.0)
:color-option-count 1
:color-option-array (new 'static 'inline-array vector 1 (new 'static 'vector :x 1.0 :y 1.0 :z 1.0 :w 1.0))
)
)
(set! (-> *race-bike-d-constants* explosion) *bike-explosion-info*)
(set! (-> *race-bike-e-constants* explosion) *bike-explosion-info*)
(deftype vehicle-race-bike (vehicle-racer)
((steering-wheel joint-mod :offset-assert 1016)
)
:heap-base #x380
:method-count-assert 156
:size-assert #x3fc
:flag-assert #x9c038003fc
)
;; WARN: Return type mismatch process-drawable vs vehicle-race-bike.
(defmethod relocate vehicle-race-bike ((obj vehicle-race-bike) (arg0 int))
(if (nonzero? (-> obj steering-wheel))
(&+! (-> obj steering-wheel) arg0)
)
(the-as
vehicle-race-bike
((the-as (function process-drawable int process-drawable) (find-parent-method vehicle-race-bike 7)) obj arg0)
)
)
(defmethod update-joint-mods vehicle-race-bike ((obj vehicle-race-bike))
(let ((f0-1 (* -5461.3335 (-> obj controls steering)))
(a1-0 (new 'static 'vector :z 1.0 :w 1.0))
)
(quaternion-vector-angle! (the-as quaternion (-> obj steering-wheel target)) a1-0 f0-1)
)
0
(none)
)
(deftype race-bike-d (vehicle-race-bike)
()
:heap-base #x380
:method-count-assert 156
:size-assert #x3fc
:flag-assert #x9c038003fc
)
(defmethod allocate-and-init-cshape race-bike-d ((obj race-bike-d))
(let ((s5-0 (new 'process 'collide-shape-moving obj (collide-list-enum usually-hit-by-player))))
(set! (-> s5-0 dynam) (copy *standard-dynamics* 'process))
(set! (-> s5-0 reaction) cshape-reaction-default)
(set! (-> s5-0 no-reaction)
(the-as (function collide-shape-moving collide-query vector vector object) nothing)
)
(set! (-> s5-0 penetrate-using) (penetrate vehicle))
(let ((s4-0 (new 'process 'collide-shape-prim-group s5-0 (the-as uint 4) 0)))
(set! (-> s5-0 total-prims) (the-as uint 5))
(set! (-> s4-0 prim-core action) (collide-action solid))
(set-vector! (-> s4-0 local-sphere) 0.0 0.0 0.0 14336.0)
(set! (-> s5-0 root-prim) s4-0)
)
(let ((v1-11 (new 'process 'collide-shape-prim-sphere s5-0 (the-as uint 1))))
(set! (-> v1-11 prim-core action) (collide-action solid))
(set! (-> v1-11 transform-index) 0)
(set-vector! (-> v1-11 local-sphere) 0.0 409.6 5324.8 4096.0)
)
(let ((v1-13 (new 'process 'collide-shape-prim-sphere s5-0 (the-as uint 0))))
(set! (-> v1-13 prim-core action) (collide-action solid))
(set! (-> v1-13 transform-index) 0)
(set-vector! (-> v1-13 local-sphere) 204.8 1638.4 -819.2 4096.0)
)
(let ((v1-15 (new 'process 'collide-shape-prim-sphere s5-0 (the-as uint 32))))
(set! (-> v1-15 prim-core action) (collide-action solid))
(set! (-> v1-15 transform-index) 0)
(set-vector! (-> v1-15 local-sphere) 0.0 2048.0 -6553.6 3686.4)
)
(let ((v1-17 (new 'process 'collide-shape-prim-sphere s5-0 (the-as uint 2))))
(set! (-> v1-17 prim-core action) (collide-action solid))
(set! (-> v1-17 transform-index) 0)
(set-vector! (-> v1-17 local-sphere) 0.0 -409.6 -9011.2 3686.4)
)
(set! (-> s5-0 nav-radius) (* 0.75 (-> s5-0 root-prim local-sphere w)))
(let ((v1-20 (-> s5-0 root-prim)))
(set! (-> s5-0 backup-collide-as) (-> v1-20 prim-core collide-as))
(set! (-> s5-0 backup-collide-with) (-> v1-20 prim-core collide-with))
)
(set! (-> obj root-override-2) s5-0)
)
0
(none)
)
(defmethod init-skel-and-rigid-body race-bike-d ((obj race-bike-d))
(race-vehicle-entity-hack)
(initialize-skeleton
obj
(the-as skeleton-group (art-group-get-by-name *level* "skel-race-bike-d" (the-as (pointer uint32) #f)))
(the-as pair 0)
)
(set! (-> obj rider-hand-joint) 4)
(set! (-> obj steering-wheel)
(the-as joint-mod (new 'process 'joint-mod-rotate-local obj (-> obj rider-hand-joint) #t))
)
(alloc-and-init-rigid-body-control obj *race-bike-d-constants*)
(set! (-> obj draw light-index) (the-as uint 30))
0
(none)
)
(deftype race-bike-e (vehicle-race-bike)
()
:heap-base #x380
:method-count-assert 156
:size-assert #x3fc
:flag-assert #x9c038003fc
)
(defmethod allocate-and-init-cshape race-bike-e ((obj race-bike-e))
(let ((s5-0 (new 'process 'collide-shape-moving obj (collide-list-enum usually-hit-by-player))))
(set! (-> s5-0 dynam) (copy *standard-dynamics* 'process))
(set! (-> s5-0 reaction) cshape-reaction-default)
(set! (-> s5-0 no-reaction)
(the-as (function collide-shape-moving collide-query vector vector object) nothing)
)
(set! (-> s5-0 penetrate-using) (penetrate vehicle))
(let ((s4-0 (new 'process 'collide-shape-prim-group s5-0 (the-as uint 4) 0)))
(set! (-> s5-0 total-prims) (the-as uint 5))
(set! (-> s4-0 prim-core action) (collide-action solid))
(set-vector! (-> s4-0 local-sphere) 0.0 0.0 0.0 14336.0)
(set! (-> s5-0 root-prim) s4-0)
)
(let ((v1-11 (new 'process 'collide-shape-prim-sphere s5-0 (the-as uint 1))))
(set! (-> v1-11 prim-core action) (collide-action solid))
(set! (-> v1-11 transform-index) 0)
(set-vector! (-> v1-11 local-sphere) 0.0 409.6 6144.0 4096.0)
)
(let ((v1-13 (new 'process 'collide-shape-prim-sphere s5-0 (the-as uint 0))))
(set! (-> v1-13 prim-core action) (collide-action solid))
(set! (-> v1-13 transform-index) 0)
(set-vector! (-> v1-13 local-sphere) 204.8 1638.4 -819.2 4096.0)
)
(let ((v1-15 (new 'process 'collide-shape-prim-sphere s5-0 (the-as uint 32))))
(set! (-> v1-15 prim-core action) (collide-action solid))
(set! (-> v1-15 transform-index) 0)
(set-vector! (-> v1-15 local-sphere) 0.0 2048.0 -6553.6 3686.4)
)
(let ((v1-17 (new 'process 'collide-shape-prim-sphere s5-0 (the-as uint 2))))
(set! (-> v1-17 prim-core action) (collide-action solid))
(set! (-> v1-17 transform-index) 0)
(set-vector! (-> v1-17 local-sphere) 0.0 0.0 -10649.6 3686.4)
)
(set! (-> s5-0 nav-radius) (* 0.75 (-> s5-0 root-prim local-sphere w)))
(let ((v1-20 (-> s5-0 root-prim)))
(set! (-> s5-0 backup-collide-as) (-> v1-20 prim-core collide-as))
(set! (-> s5-0 backup-collide-with) (-> v1-20 prim-core collide-with))
)
(set! (-> obj root-override-2) s5-0)
)
0
(none)
)
(defmethod init-skel-and-rigid-body race-bike-e ((obj race-bike-e))
(race-vehicle-entity-hack)
(initialize-skeleton
obj
(the-as skeleton-group (art-group-get-by-name *level* "skel-race-bike-e" (the-as (pointer uint32) #f)))
(the-as pair 0)
)
(set! (-> obj rider-hand-joint) 4)
(set! (-> obj steering-wheel)
(the-as joint-mod (new 'process 'joint-mod-rotate-local obj (-> obj rider-hand-joint) #t))
)
(alloc-and-init-rigid-body-control obj *race-bike-e-constants*)
(set! (-> obj draw light-index) (the-as uint 30))
0
(none)
)