mirror of
https://github.com/open-goal/jak-project.git
synced 2024-10-20 21:27:52 -04:00
954 lines
35 KiB
Common Lisp
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)
|
|
)
|