mirror of
https://github.com/open-goal/jak-project
synced 2026-06-10 04:54:31 -04:00
2228 lines
67 KiB
Common Lisp
Vendored
Generated
2228 lines
67 KiB
Common Lisp
Vendored
Generated
;;-*-Lisp-*-
|
|
(in-package goal)
|
|
|
|
;; failed to figure out what this is:
|
|
(defpartgroup group-part-hud-pickup
|
|
:id 75
|
|
:flags (screen-space)
|
|
:bounds (static-bspherem 0 0 0 2)
|
|
:parts ((sp-item 303 :flags (launch-asap) :binding 304)
|
|
(sp-item 304 :flags (start-dead launch-asap) :binding 305)
|
|
(sp-item 305 :flags (start-dead launch-asap) :binding 306)
|
|
(sp-item 306 :flags (start-dead launch-asap) :binding 307)
|
|
(sp-item 306 :flags (start-dead launch-asap) :binding 307)
|
|
(sp-item 306 :flags (start-dead launch-asap) :binding 307)
|
|
(sp-item 306 :flags (start-dead launch-asap) :binding 307)
|
|
(sp-item 307 :fade-after (meters 40) :flags (start-dead))
|
|
(sp-item 307 :fade-after (meters 40) :flags (start-dead))
|
|
(sp-item 307 :fade-after (meters 40) :flags (start-dead))
|
|
(sp-item 307 :fade-after (meters 40) :flags (start-dead))
|
|
)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defpart 303
|
|
:init-specs ((:texture (new 'static 'texture-id :index #x12 :page #x2))
|
|
(:num 1.0)
|
|
(:scale-x (meters 0.5))
|
|
(:scale-y :copy scale-x)
|
|
(:r 32.0 92.0)
|
|
(:g 128.0 128.0)
|
|
(:a 0.0)
|
|
(:timer (seconds -0.005))
|
|
(:flags (bit3 bit9))
|
|
)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defpart 304
|
|
:init-specs ((:texture (new 'static 'texture-id :page #x2))
|
|
(:num 1.0)
|
|
(:y (meters 0) (meters 16))
|
|
(:z (meters 0.03))
|
|
(:scale-x (meters 2.5))
|
|
(:rot-z (degrees 0) (degrees 360))
|
|
(:scale-y :copy scale-x)
|
|
(:r 32.0 92.0)
|
|
(:g 128.0 128.0)
|
|
(:a 24.0)
|
|
(:omega 0.0 65536.0)
|
|
(:vel-x (meters 0.026666667) (meters 0.026666667))
|
|
(:vel-y (meters 0.0014814815))
|
|
(:vel-z (meters 0))
|
|
(:rotvel-z (degrees 0.2))
|
|
(:timer (seconds -0.005))
|
|
(:flags (bit7 bit9))
|
|
)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defpart 305
|
|
:init-specs ((:texture (new 'static 'texture-id :page #x2))
|
|
(:num 3.0)
|
|
(:y (meters 0) (meters 16))
|
|
(:z (meters 0.065))
|
|
(:scale-x (meters 1.5) (meters 0.4))
|
|
(:rot-z (degrees 0) (degrees 360))
|
|
(:scale-y :copy scale-x)
|
|
(:r 32.0 92.0)
|
|
(:g 128.0 128.0)
|
|
(:a 24.0)
|
|
(:omega 0.0 65536.0)
|
|
(:vel-x (meters 0.017777778) (meters 0.017777778))
|
|
(:vel-y (meters 0))
|
|
(:vel-z (meters 0))
|
|
(:rotvel-z (degrees -0.4) 1 (degrees 0.8))
|
|
(:timer (seconds -0.005))
|
|
(:flags (bit3 bit7 bit9))
|
|
)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defpart 306
|
|
:init-specs ((:texture (new 'static 'texture-id :index #xf :page #x2))
|
|
(:num 1.0)
|
|
(:y (meters 0) (meters 16))
|
|
(:z (meters 0.12))
|
|
(:scale-x (meters 0.4))
|
|
(:scale-y :copy scale-x)
|
|
(:r 128.0)
|
|
(:g 255.0)
|
|
(:a 24.0)
|
|
(:omega 0.0 65536.0)
|
|
(:vel-x (meters 0.053333335) (meters 0.053333335))
|
|
(:vel-y (meters 0))
|
|
(:vel-z (meters 0))
|
|
(:timer (seconds -0.005))
|
|
(:flags (bit2 bit3 bit7 bit9))
|
|
)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defpart 307
|
|
:init-specs ((:texture (new 'static 'texture-id :index #xf :page #x2))
|
|
(:num 0.25)
|
|
(:scale-x (meters 0.35))
|
|
(:scale-y :copy scale-x)
|
|
(:r 255.0)
|
|
(:g 255.0)
|
|
(:b 0.0)
|
|
(:a 96.0)
|
|
(:scalevel-x (meters -0.0012500001))
|
|
(:scalevel-y :copy scalevel-x)
|
|
(:fade-r -2.125)
|
|
(:accel-y (meters -0.00002))
|
|
(:timer (seconds 0.1) (seconds 0.797))
|
|
(:flags (bit2 bit9))
|
|
(:next-time (seconds 0.4))
|
|
(:next-launcher 308)
|
|
)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defpart 308
|
|
:init-specs ((:fade-r 0.0))
|
|
)
|
|
|
|
;; definition of type hud-pickups
|
|
(deftype hud-pickups (hud)
|
|
()
|
|
)
|
|
|
|
;; definition for method 3 of type hud-pickups
|
|
(defmethod inspect ((this hud-pickups))
|
|
(let ((t9-0 (method-of-type hud inspect)))
|
|
(t9-0 this)
|
|
)
|
|
this
|
|
)
|
|
|
|
;; definition for method 15 of type hud-pickups
|
|
;; INFO: Return type mismatch int vs none.
|
|
(defmethod draw-hud ((this hud-pickups))
|
|
(let ((t9-0 (method-of-type hud draw-hud)))
|
|
(t9-0 this)
|
|
)
|
|
(let* ((s5-0 (-> *display* frames (-> *display* on-screen) frame global-buf))
|
|
(gp-0 (-> s5-0 base))
|
|
)
|
|
(let ((s4-0 draw-string-xy))
|
|
(format (clear *temp-string*) "~D" (-> this value))
|
|
(s4-0
|
|
*temp-string*
|
|
s5-0
|
|
(+ (-> this text-x) (* (-> this x-sgn) (-> this offset)))
|
|
(/ (* (+ (-> this text-y) (* (-> this y-sgn) (-> this offset)) (-> this y-offset))
|
|
(the int (-> *video-parms* relative-y-scale))
|
|
)
|
|
2
|
|
)
|
|
(font-color green)
|
|
(font-flags shadow kerning large)
|
|
)
|
|
)
|
|
(let ((a3-7 (-> s5-0 base)))
|
|
(let ((v1-8 (the-as object (-> s5-0 base))))
|
|
(set! (-> (the-as (pointer int64) v1-8)) #x20000000)
|
|
(set! (-> (the-as dma-packet v1-8) vif0) (new 'static 'vif-tag))
|
|
(set! (-> (the-as dma-packet v1-8) vif1) (new 'static 'vif-tag))
|
|
(set! (-> s5-0 base) (&+ (the-as pointer v1-8) 16))
|
|
)
|
|
(dma-bucket-insert-tag
|
|
(-> *display* frames (-> *display* on-screen) frame bucket-group)
|
|
(bucket-id debug)
|
|
gp-0
|
|
(the-as (pointer dma-tag) a3-7)
|
|
)
|
|
)
|
|
)
|
|
0
|
|
(none)
|
|
)
|
|
|
|
;; definition for method 19 of type hud-pickups
|
|
;; INFO: Return type mismatch int vs none.
|
|
(defmethod hud-update ((this hud-pickups))
|
|
(if *target*
|
|
(tally-value this (the int (+ 0.5 (-> *target* fact eco-pill))) 0)
|
|
)
|
|
0
|
|
(none)
|
|
)
|
|
|
|
;; definition for method 20 of type hud-pickups
|
|
;; INFO: Return type mismatch int vs none.
|
|
(defmethod init-particles! ((this hud-pickups) (arg0 int))
|
|
(when (< (-> this nb-of-particles) (-> this max-nb-of-particles))
|
|
(let ((s5-0 (-> this nb-of-particles)))
|
|
(set! (-> this particles s5-0) (new 'static 'hud-particle))
|
|
(set! (-> this particles s5-0 part) (create-launch-control (-> *part-group-id-table* 75) this))
|
|
(set! (-> this particles s5-0 init-pos x) 110.0)
|
|
(set! (-> this particles s5-0 init-pos y) 55.0)
|
|
(set! (-> this particles s5-0 init-pos z) 1.0)
|
|
(set! (-> this particles s5-0 part matrix) -1)
|
|
)
|
|
(+! (-> this nb-of-particles) 1)
|
|
)
|
|
(dotimes (s5-1 (-> this nb-of-particles))
|
|
(if (= (-> this particles s5-1 part matrix) -1)
|
|
(set! (-> this particles s5-1 part matrix) (sprite-allocate-user-hvdf))
|
|
)
|
|
)
|
|
(set! (-> this text-x) 118)
|
|
(set! (-> this text-y) 45)
|
|
(set! (-> this x-sgn) -1)
|
|
(set! (-> this y-sgn) -1)
|
|
(set! (-> this friend) 3)
|
|
0
|
|
(none)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defpartgroup group-part-hud-health-1
|
|
:id 76
|
|
:flags (screen-space)
|
|
:bounds (static-bspherem 0 0 0 100)
|
|
:parts ((sp-item 309 :flags (launch-asap)))
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defpartgroup group-part-hud-health-2
|
|
:id 77
|
|
:flags (screen-space)
|
|
:bounds (static-bspherem 0 0 0 100)
|
|
:parts ((sp-item 310 :flags (launch-asap)))
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defpartgroup group-part-hud-health-3
|
|
:id 78
|
|
:flags (screen-space)
|
|
:bounds (static-bspherem 0 0 0 100)
|
|
:parts ((sp-item 311 :flags (launch-asap)))
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defpart 309
|
|
:init-specs ((:texture (new 'static 'texture-id :index #x2d :page #x2))
|
|
(:num 1.0)
|
|
(:scale-x (meters 1.7))
|
|
(:scale-y :copy scale-x)
|
|
(:r 128.0)
|
|
(:g 128.0)
|
|
(:b 128.0)
|
|
(:a 128.0)
|
|
(:timer (seconds -0.005))
|
|
(:flags (bit2 bit9))
|
|
(:func 'part-hud-health-01-func)
|
|
)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defpart 310
|
|
:init-specs ((:texture (new 'static 'texture-id :index #x2e :page #x2))
|
|
(:num 1.0)
|
|
(:scale-x (meters 1.7))
|
|
(:scale-y :copy scale-x)
|
|
(:r 128.0)
|
|
(:g 128.0)
|
|
(:b 128.0)
|
|
(:a 128.0)
|
|
(:timer (seconds -0.005))
|
|
(:flags (bit2 bit9))
|
|
(:func 'part-hud-health-03-func)
|
|
)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defpart 311
|
|
:init-specs ((:texture (new 'static 'texture-id :index #x2f :page #x2))
|
|
(:num 1.0)
|
|
(:scale-x (meters 1.7))
|
|
(:scale-y :copy scale-x)
|
|
(:r 128.0)
|
|
(:g 128.0)
|
|
(:b 128.0)
|
|
(:a 128.0)
|
|
(:timer (seconds -0.005))
|
|
(:flags (bit2 bit9))
|
|
(:func 'part-hud-health-02-func)
|
|
)
|
|
)
|
|
|
|
;; definition of type hud-health
|
|
(deftype hud-health (hud)
|
|
((scale float)
|
|
)
|
|
)
|
|
|
|
;; definition for method 3 of type hud-health
|
|
(defmethod inspect ((this hud-health))
|
|
(let ((t9-0 (method-of-type hud inspect)))
|
|
(t9-0 this)
|
|
)
|
|
(format #t "~T~Tscale: ~f~%" (-> this scale))
|
|
this
|
|
)
|
|
|
|
;; definition for function part-hud-health-01-func
|
|
;; INFO: Return type mismatch int vs none.
|
|
(defun part-hud-health-01-func ((arg0 sparticle-system) (arg1 sparticle-cpuinfo) (arg2 matrix))
|
|
(let ((f0-0 (-> *hud-parts* health 0 scale)))
|
|
(set! (-> arg2 vector 0 w) f0-0)
|
|
(set! (-> arg2 vector 1 w) f0-0)
|
|
)
|
|
(cond
|
|
((and *target* (< (-> *target* fact health) 1.0))
|
|
(set! (-> arg2 vector 2 w) 32.0)
|
|
)
|
|
(else
|
|
(let ((f0-3 128.0))
|
|
(when (and *target* (= (-> *target* fact health) 1.0))
|
|
(let ((v1-16 (logand (-> *display* integral-frame-counter) 7)))
|
|
(set! f0-3 (if (not (logtest? (-> *display* integral-frame-counter) 8))
|
|
(+ 128.0 (* 18.142857 (the float v1-16)))
|
|
(- 255.0 (* 18.142857 (the float v1-16)))
|
|
)
|
|
)
|
|
)
|
|
)
|
|
(set! (-> arg2 vector 2 x) f0-3)
|
|
(set! (-> arg2 vector 2 y) f0-3)
|
|
(set! (-> arg2 vector 2 z) f0-3)
|
|
)
|
|
(set! (-> arg2 vector 2 w) 128.0)
|
|
)
|
|
)
|
|
0
|
|
(none)
|
|
)
|
|
|
|
;; definition for function part-hud-health-02-func
|
|
;; INFO: Return type mismatch int vs none.
|
|
(defun part-hud-health-02-func ((arg0 sparticle-system) (arg1 sparticle-cpuinfo) (arg2 matrix))
|
|
(let ((f0-0 (-> *hud-parts* health 0 scale)))
|
|
(set! (-> arg2 vector 0 w) f0-0)
|
|
(set! (-> arg2 vector 1 w) f0-0)
|
|
)
|
|
(if (and *target* (< (-> *target* fact health) 2.0))
|
|
(set! (-> arg2 vector 2 w) 32.0)
|
|
(set! (-> arg2 vector 2 w) 128.0)
|
|
)
|
|
0
|
|
(none)
|
|
)
|
|
|
|
;; definition for function part-hud-health-03-func
|
|
;; INFO: Return type mismatch int vs none.
|
|
(defun part-hud-health-03-func ((arg0 sparticle-system) (arg1 sparticle-cpuinfo) (arg2 matrix))
|
|
(let ((f0-0 (-> *hud-parts* health 0 scale)))
|
|
(set! (-> arg2 vector 0 w) f0-0)
|
|
(set! (-> arg2 vector 1 w) f0-0)
|
|
)
|
|
(if (and *target* (< (-> *target* fact health) 3.0))
|
|
(set! (-> arg2 vector 2 w) 32.0)
|
|
(set! (-> arg2 vector 2 w) 128.0)
|
|
)
|
|
0
|
|
(none)
|
|
)
|
|
|
|
;; definition for method 15 of type hud-health
|
|
;; INFO: Return type mismatch int vs none.
|
|
(defmethod draw-hud ((this hud-health))
|
|
((method-of-type hud draw-hud) this)
|
|
0
|
|
(none)
|
|
)
|
|
|
|
;; definition for method 19 of type hud-health
|
|
;; INFO: Return type mismatch int vs none.
|
|
(defmethod hud-update ((this hud-health))
|
|
(if *target*
|
|
(tally-value this (the int (-> *target* fact health)) (the-as int (-> *target* fact health-pickup-time)))
|
|
)
|
|
0
|
|
(none)
|
|
)
|
|
|
|
;; definition for method 20 of type hud-health
|
|
;; INFO: Return type mismatch int vs none.
|
|
(defmethod init-particles! ((this hud-health) (arg0 int))
|
|
(when (< (-> this nb-of-particles) (-> this max-nb-of-particles))
|
|
(let ((s5-0 (-> this nb-of-particles)))
|
|
(set! (-> this particles s5-0) (new 'static 'hud-particle))
|
|
(set! (-> this particles s5-0 part) (create-launch-control (-> *part-group-id-table* 76) this))
|
|
(set! (-> this particles s5-0 init-pos x) 61.0)
|
|
(set! (-> this particles s5-0 init-pos y) 55.0)
|
|
(set! (-> this particles s5-0 init-pos z) 5.0)
|
|
(set! (-> this particles s5-0 part matrix) -1)
|
|
)
|
|
(+! (-> this nb-of-particles) 1)
|
|
)
|
|
(when (< (-> this nb-of-particles) (-> this max-nb-of-particles))
|
|
(let ((s5-1 (-> this nb-of-particles)))
|
|
(set! (-> this particles s5-1) (new 'static 'hud-particle))
|
|
(set! (-> this particles s5-1 part) (create-launch-control (-> *part-group-id-table* 77) this))
|
|
(set! (-> this particles s5-1 init-pos x) 98.0)
|
|
(set! (-> this particles s5-1 init-pos y) 55.0)
|
|
(set! (-> this particles s5-1 init-pos z) 5.0)
|
|
(set! (-> this particles s5-1 part matrix) -1)
|
|
)
|
|
(+! (-> this nb-of-particles) 1)
|
|
)
|
|
(when (< (-> this nb-of-particles) (-> this max-nb-of-particles))
|
|
(let ((s5-2 (-> this nb-of-particles)))
|
|
(set! (-> this particles s5-2) (new 'static 'hud-particle))
|
|
(set! (-> this particles s5-2 part) (create-launch-control (-> *part-group-id-table* 78) this))
|
|
(set! (-> this particles s5-2 init-pos x) 70.0)
|
|
(set! (-> this particles s5-2 init-pos y) 76.0)
|
|
(set! (-> this particles s5-2 init-pos z) 5.0)
|
|
(set! (-> this particles s5-2 part matrix) -1)
|
|
)
|
|
(+! (-> this nb-of-particles) 1)
|
|
)
|
|
(dotimes (s5-3 (-> this nb-of-particles))
|
|
(if (= (-> this particles s5-3 part matrix) -1)
|
|
(set! (-> this particles s5-3 part matrix) (sprite-allocate-user-hvdf))
|
|
)
|
|
)
|
|
(set-pos-and-scale this (= (get-aspect-ratio) 'aspect16x9) (= (get-video-mode) 'pal))
|
|
(set! (-> this x-sgn) -1)
|
|
(set! (-> this y-sgn) -1)
|
|
(set! (-> this friend) 0)
|
|
0
|
|
(none)
|
|
)
|
|
|
|
;; definition for method 24 of type hud-health
|
|
;; INFO: Return type mismatch int vs none.
|
|
(defmethod set-pos-and-scale ((this hud-health) (arg0 symbol) (arg1 symbol))
|
|
(cond
|
|
(arg0
|
|
(set! (-> this particles 0 init-pos x) 65.0)
|
|
(set! (-> this particles 0 init-pos y) 55.0)
|
|
(set! (-> this particles 1 init-pos x) 98.0)
|
|
(set! (-> this particles 1 init-pos y) 55.0)
|
|
(set! (-> this particles 2 init-pos x) 73.0)
|
|
(set! (-> this particles 2 init-pos y) 80.0)
|
|
(set! (-> this scale) 6144.0)
|
|
)
|
|
(else
|
|
(set! (-> this particles 0 init-pos x) 61.0)
|
|
(set! (-> this particles 0 init-pos y) 55.0)
|
|
(set! (-> this particles 1 init-pos x) 98.0)
|
|
(set! (-> this particles 1 init-pos y) 55.0)
|
|
(set! (-> this particles 2 init-pos x) 70.0)
|
|
(set! (-> this particles 2 init-pos y) 76.0)
|
|
(set! (-> this scale) 6963.2)
|
|
)
|
|
)
|
|
0
|
|
(none)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defpartgroup group-part-hud-orb-all
|
|
:id 705
|
|
:flags (screen-space)
|
|
:bounds (static-bspherem 0 0 0 100)
|
|
:parts ((sp-item 2964 :flags (launch-asap)))
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defpart 2964
|
|
:init-specs ((:texture (new 'static 'texture-id :index #x2c :page #x2))
|
|
(:num 1.0)
|
|
(:scale-x (meters 2.4))
|
|
(:scale-y :copy scale-x)
|
|
(:r 128.0)
|
|
(:g 128.0)
|
|
(:b 128.0)
|
|
(:a 128.0)
|
|
(:timer (seconds -0.005))
|
|
(:flags (bit2 bit9))
|
|
)
|
|
)
|
|
|
|
;; definition of type hud-money-all
|
|
(deftype hud-money-all (hud)
|
|
((x-scale float)
|
|
(y-scale float)
|
|
(y-pos int32)
|
|
(total-orbs int32)
|
|
(level-index int32)
|
|
(start-time time-frame)
|
|
)
|
|
)
|
|
|
|
;; definition for method 3 of type hud-money-all
|
|
(defmethod inspect ((this hud-money-all))
|
|
(let ((t9-0 (method-of-type hud inspect)))
|
|
(t9-0 this)
|
|
)
|
|
(format #t "~T~Tx-scale: ~f~%" (-> this x-scale))
|
|
(format #t "~T~Ty-scale: ~f~%" (-> this y-scale))
|
|
(format #t "~T~Ty-pos: ~D~%" (-> this y-pos))
|
|
(format #t "~T~Ttotal-orbs: ~D~%" (-> this total-orbs))
|
|
(format #t "~T~Tlevel-index: ~D~%" (-> this level-index))
|
|
(format #t "~T~Tstart-time: ~D~%" (-> this start-time))
|
|
this
|
|
)
|
|
|
|
;; definition for method 15 of type hud-money-all
|
|
;; INFO: Return type mismatch int vs none.
|
|
(defmethod draw-hud ((this hud-money-all))
|
|
(let ((t9-0 (method-of-type hud draw-hud)))
|
|
(t9-0 this)
|
|
)
|
|
0
|
|
(let ((s5-0 0))
|
|
(when (>= (-> this level-index) 0)
|
|
(let ((s5-1
|
|
(new
|
|
'stack
|
|
'font-context
|
|
*font-default-matrix*
|
|
(+ (* (-> this x-sgn) (-> this offset)) -60 (-> this text-x))
|
|
(+ (/ (* (+ (-> this text-y) (* (-> this y-sgn) (-> this offset)) (-> this y-offset))
|
|
(the int (-> *video-parms* relative-y-scale))
|
|
)
|
|
2
|
|
)
|
|
-17
|
|
)
|
|
0.0
|
|
(font-color red)
|
|
(font-flags shadow kerning)
|
|
)
|
|
)
|
|
)
|
|
(let ((v1-12 s5-1))
|
|
(set! (-> v1-12 width) (the float 228))
|
|
)
|
|
(let ((v1-13 s5-1))
|
|
(set! (-> v1-13 height) (the float 45))
|
|
)
|
|
(let ((v1-14 s5-1))
|
|
(set! (-> v1-14 scale) 0.6)
|
|
)
|
|
(set! (-> s5-1 flags) (font-flags shadow kerning middle middle-vert large))
|
|
(print-game-text
|
|
(lookup-text! *common-text* (-> *level-task-data* (-> this level-index) level-name-id) #f)
|
|
s5-1
|
|
#f
|
|
128
|
|
18
|
|
)
|
|
)
|
|
(set! s5-0 13)
|
|
)
|
|
(let* ((s1-0 50)
|
|
(s3-0 (-> *display* frames (-> *display* on-screen) frame global-buf))
|
|
(s4-1 (-> s3-0 base))
|
|
)
|
|
(let ((s2-0 draw-string-xy))
|
|
(format (clear *temp-string*) "~D/~D" (-> this total-orbs) (-> this total-orbs))
|
|
(s2-0
|
|
*temp-string*
|
|
s3-0
|
|
(+ (-> this text-x) (* (-> this x-sgn) (-> this offset)) s1-0)
|
|
(+ (/ (* (+ (-> this text-y) (* (-> this y-sgn) (-> this offset)) (-> this y-offset))
|
|
(the int (-> *video-parms* relative-y-scale))
|
|
)
|
|
2
|
|
)
|
|
s5-0
|
|
)
|
|
(font-color yellow)
|
|
(font-flags shadow kerning middle large)
|
|
)
|
|
)
|
|
(let ((a3-12 (-> s3-0 base)))
|
|
(let ((v1-32 (the-as dma-packet (-> s3-0 base))))
|
|
(set! (-> v1-32 dma) (new 'static 'dma-tag :id (dma-tag-id next)))
|
|
(set! (-> v1-32 vif0) (new 'static 'vif-tag))
|
|
(set! (-> v1-32 vif1) (new 'static 'vif-tag))
|
|
(set! (-> s3-0 base) (&+ (the-as pointer v1-32) 16))
|
|
)
|
|
(dma-bucket-insert-tag
|
|
(-> *display* frames (-> *display* on-screen) frame bucket-group)
|
|
(bucket-id debug)
|
|
s4-1
|
|
(the-as (pointer dma-tag) a3-12)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
0
|
|
(none)
|
|
)
|
|
|
|
;; definition for method 19 of type hud-money-all
|
|
;; INFO: Return type mismatch int vs none.
|
|
(defmethod hud-update ((this hud-money-all))
|
|
(when *target*
|
|
(hide-bottom-hud)
|
|
(when (!= *master-mode* 'pause)
|
|
(when (and (!= (-> this icons 0) 0) (-> this icons 0 icon))
|
|
(set! (-> this icons 0 scale-x) (-> this x-scale))
|
|
(set! (-> this icons 0 scale-y) (-> this y-scale))
|
|
(set! (-> this icons 0 icon-y) (* (-> this y-pos) (the int (-> *video-parms* relative-y-scale))))
|
|
(let ((a0-6 (-> this icons 0 icon 0 root)))
|
|
(set-yaw-angle-clear-roll-pitch!
|
|
a0-6
|
|
(- (y-angle a0-6) (* 182.04445 (* 4.0 (-> *display* time-adjust-ratio))))
|
|
)
|
|
)
|
|
)
|
|
)
|
|
(if (>= (+ (current-time) (seconds -5)) (-> this start-time))
|
|
(set! (-> this deactivate-when-hidden) #t)
|
|
(tally-value this (the-as int (current-time)) 0)
|
|
)
|
|
)
|
|
0
|
|
(none)
|
|
)
|
|
|
|
;; definition for method 20 of type hud-money-all
|
|
;; INFO: Return type mismatch int vs none.
|
|
(defmethod init-particles! ((this hud-money-all) (arg0 int))
|
|
(when (< (-> this nb-of-icons) 6)
|
|
(let ((s4-0 (-> this nb-of-icons)))
|
|
(set! (-> this icons s4-0) (new 'static 'hud-icon))
|
|
(let ((s3-0 (manipy-spawn (new 'static 'vector :w 1.0) #f *money-sg* #f :to this)))
|
|
(when s3-0
|
|
(set! (-> (the-as process-drawable (-> s3-0 0)) draw dma-add-func) dma-add-process-drawable-hud)
|
|
(set-vector! (-> (the-as process-drawable (-> s3-0 0)) root trans) 0.0 0.0 0.0 1.0)
|
|
(set-vector! (-> (the-as process-drawable (-> s3-0 0)) root scale) 0.0095 -0.011 0.0095 1.0)
|
|
(if #f
|
|
(send-event (ppointer->process s3-0) 'trans-hook #f)
|
|
)
|
|
)
|
|
(set! (-> this icons s4-0 icon) (the-as (pointer manipy) s3-0))
|
|
(when s3-0
|
|
(logior! (-> s3-0 0 mask) (process-mask pause))
|
|
(logclear! (-> s3-0 0 mask) (process-mask menu progress))
|
|
(set! (-> (the-as process-drawable (-> s3-0 0)) root trans z) 1024.0)
|
|
(set! (-> this icons s4-0 icon-x) 170)
|
|
(set! (-> this icons s4-0 icon-y) 0)
|
|
(set! (-> this icons s4-0 icon-z) 0)
|
|
(set! (-> this icons s4-0 scale-x) 0.0095)
|
|
(set! (-> this icons s4-0 scale-y) -0.011)
|
|
)
|
|
)
|
|
)
|
|
(+! (-> this nb-of-icons) 1)
|
|
)
|
|
(when (< (-> this nb-of-particles) (-> this max-nb-of-particles))
|
|
(let ((s4-1 (-> this nb-of-particles)))
|
|
(set! (-> this particles s4-1) (new 'static 'hud-particle))
|
|
(set! (-> this particles s4-1 part) (create-launch-control (-> *part-group-id-table* 705) this))
|
|
(set! (-> this particles s4-1 init-pos x) 172.0)
|
|
(set! (-> this particles s4-1 init-pos y) 330.0)
|
|
(set! (-> this particles s4-1 init-pos z) 2.0)
|
|
(set! (-> this particles s4-1 part matrix) -1)
|
|
)
|
|
(+! (-> this nb-of-particles) 1)
|
|
)
|
|
(set-pos-and-scale this (= (get-aspect-ratio) 'aspect16x9) (= (get-video-mode) 'pal))
|
|
(dotimes (s4-3 (-> this nb-of-particles))
|
|
(if (= (-> this particles s4-3 part matrix) -1)
|
|
(set! (-> this particles s4-3 part matrix) (sprite-allocate-user-hvdf))
|
|
)
|
|
)
|
|
(set! (-> this text-x) 251)
|
|
(set! (-> this text-y) 305)
|
|
(set! (-> this x-sgn) 0)
|
|
(set! (-> this y-sgn) 1)
|
|
(hide-bottom-hud)
|
|
(let ((s4-4 0)
|
|
(s3-2 0)
|
|
(s2-2 0)
|
|
)
|
|
(dotimes (s1-0 (length *level-task-data*))
|
|
(let ((v1-83 (-> *level-task-data* s1-0)))
|
|
(when (!= v1-83 #f)
|
|
(when (or (= *kernel-boot-message* 'play) (= (-> v1-83 level-name-id) (text-id misty-level-name)))
|
|
(if (= s1-0 arg0)
|
|
(set! s2-2 (the-as int (-> *game-info* money-per-level s1-0)))
|
|
)
|
|
(+! s3-2 (-> *game-info* money-per-level s1-0))
|
|
(+! s4-4 (-> (get-game-count s1-0) money-count))
|
|
)
|
|
)
|
|
)
|
|
)
|
|
(cond
|
|
((= s3-2 s4-4)
|
|
(set! (-> this total-orbs) s4-4)
|
|
(set! (-> this total-orbs) s4-4)
|
|
(set! (-> this level-index) -1)
|
|
)
|
|
((begin (set! (-> this total-orbs) s2-2) (< arg0 (length *level-task-data*)))
|
|
(set! (-> this level-index) arg0)
|
|
)
|
|
(else
|
|
(set! (-> this level-index) -1)
|
|
)
|
|
)
|
|
)
|
|
(set-time! (-> this start-time))
|
|
(sound-play "get-all-orbs")
|
|
0
|
|
(none)
|
|
)
|
|
|
|
;; definition for method 24 of type hud-money-all
|
|
;; INFO: Return type mismatch int vs none.
|
|
(defmethod set-pos-and-scale ((this hud-money-all) (arg0 symbol) (arg1 symbol))
|
|
(cond
|
|
(arg0
|
|
(set! (-> this x-scale) 0.01845)
|
|
(set! (-> this y-scale) -0.02175)
|
|
(set! (-> this y-pos) (if arg1
|
|
374
|
|
373
|
|
)
|
|
)
|
|
)
|
|
(else
|
|
(set! (-> this x-scale) 0.013499999)
|
|
(set! (-> this y-scale) -0.01575)
|
|
(set! (-> this y-pos) 361)
|
|
)
|
|
)
|
|
(when arg1
|
|
(set! (-> this x-scale) (* 1.02 (-> this x-scale)))
|
|
(set! (-> this y-scale) (* 1.2 (-> this y-scale)))
|
|
(set! (-> this y-pos) (the int (* 1.21 (the float (-> this y-pos)))))
|
|
)
|
|
0
|
|
(none)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defpartgroup group-part-hud-orb
|
|
:id 79
|
|
:flags (screen-space)
|
|
:bounds (static-bspherem 0 0 0 100)
|
|
:parts ((sp-item 312 :flags (launch-asap)))
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defpart 312
|
|
:init-specs ((:texture (new 'static 'texture-id :index #x2c :page #x2))
|
|
(:num 1.0)
|
|
(:scale-x (meters 1.6))
|
|
(:scale-y :copy scale-x)
|
|
(:r 128.0)
|
|
(:g 128.0)
|
|
(:b 128.0)
|
|
(:a 128.0)
|
|
(:timer (seconds -0.005))
|
|
(:flags (bit2 bit9))
|
|
)
|
|
)
|
|
|
|
;; definition of type hud-money
|
|
(deftype hud-money (hud)
|
|
((x-scale float)
|
|
(y-scale float)
|
|
(y-pos int32)
|
|
)
|
|
)
|
|
|
|
;; definition for method 3 of type hud-money
|
|
(defmethod inspect ((this hud-money))
|
|
(let ((t9-0 (method-of-type hud inspect)))
|
|
(t9-0 this)
|
|
)
|
|
(format #t "~T~Tx-scale: ~f~%" (-> this x-scale))
|
|
(format #t "~T~Ty-scale: ~f~%" (-> this y-scale))
|
|
(format #t "~T~Ty-pos: ~D~%" (-> this y-pos))
|
|
this
|
|
)
|
|
|
|
;; definition for method 15 of type hud-money
|
|
;; INFO: Return type mismatch int vs none.
|
|
(defmethod draw-hud ((this hud-money))
|
|
(let ((t9-0 (method-of-type hud draw-hud)))
|
|
(t9-0 this)
|
|
)
|
|
(let* ((s5-0 (-> *display* frames (-> *display* on-screen) frame global-buf))
|
|
(gp-0 (-> s5-0 base))
|
|
)
|
|
(let ((s4-0 draw-string-xy))
|
|
(format (clear *temp-string*) "~D" (-> this value))
|
|
(s4-0
|
|
*temp-string*
|
|
s5-0
|
|
(+ (-> this text-x) (* (-> this x-sgn) (-> this offset)))
|
|
(/ (* (+ (-> this text-y) (* (-> this y-sgn) (-> this offset)) (-> this y-offset))
|
|
(the int (-> *video-parms* relative-y-scale))
|
|
)
|
|
2
|
|
)
|
|
(font-color yellow)
|
|
(font-flags shadow kerning large)
|
|
)
|
|
)
|
|
(let ((a3-7 (-> s5-0 base)))
|
|
(let ((v1-8 (the-as dma-packet (-> s5-0 base))))
|
|
(set! (-> v1-8 dma) (new 'static 'dma-tag :id (dma-tag-id next)))
|
|
(set! (-> v1-8 vif0) (new 'static 'vif-tag))
|
|
(set! (-> v1-8 vif1) (new 'static 'vif-tag))
|
|
(set! (-> s5-0 base) (&+ (the-as pointer v1-8) 16))
|
|
)
|
|
(dma-bucket-insert-tag
|
|
(-> *display* frames (-> *display* on-screen) frame bucket-group)
|
|
(bucket-id debug)
|
|
gp-0
|
|
(the-as (pointer dma-tag) a3-7)
|
|
)
|
|
)
|
|
)
|
|
0
|
|
(none)
|
|
)
|
|
|
|
;; definition for method 19 of type hud-money
|
|
;; INFO: Return type mismatch int vs none.
|
|
(defmethod hud-update ((this hud-money))
|
|
(when *target*
|
|
(when (!= *master-mode* 'pause)
|
|
(when (and (!= (-> this icons 0) 0) (-> this icons 0 icon))
|
|
(set! (-> this icons 0 scale-x) (-> this x-scale))
|
|
(set! (-> this icons 0 scale-y) (-> this y-scale))
|
|
(set! (-> this icons 0 icon-y) (* (-> this y-pos) (the int (-> *video-parms* relative-y-scale))))
|
|
(let ((a0-6 (-> this icons 0 icon 0 root)))
|
|
(set-yaw-angle-clear-roll-pitch!
|
|
a0-6
|
|
(- (y-angle a0-6) (* 182.04445 (* 4.0 (-> *display* time-adjust-ratio))))
|
|
)
|
|
)
|
|
)
|
|
)
|
|
(tally-value this (the int (+ 0.5 (-> *target* game money))) 0)
|
|
)
|
|
0
|
|
(none)
|
|
)
|
|
|
|
;; definition for method 20 of type hud-money
|
|
;; INFO: Return type mismatch int vs none.
|
|
(defmethod init-particles! ((this hud-money) (arg0 int))
|
|
(when (< (-> this nb-of-icons) 6)
|
|
(let ((s5-0 (-> this nb-of-icons)))
|
|
(set! (-> this icons s5-0) (new 'static 'hud-icon))
|
|
(let ((s4-0 (manipy-spawn (new 'static 'vector :w 1.0) #f *money-sg* #f :to this)))
|
|
(when s4-0
|
|
(set! (-> (the-as process-drawable (-> s4-0 0)) draw dma-add-func) dma-add-process-drawable-hud)
|
|
(set-vector! (-> (the-as process-drawable (-> s4-0 0)) root trans) 0.0 0.0 0.0 1.0)
|
|
(set-vector! (-> (the-as process-drawable (-> s4-0 0)) root scale) 0.0095 -0.011 0.0095 1.0)
|
|
(if #f
|
|
(send-event (ppointer->process s4-0) 'trans-hook #f)
|
|
)
|
|
)
|
|
(set! (-> this icons s5-0 icon) (the-as (pointer manipy) s4-0))
|
|
(when s4-0
|
|
(logior! (-> s4-0 0 mask) (process-mask pause))
|
|
(logclear! (-> s4-0 0 mask) (process-mask menu progress))
|
|
(set! (-> (the-as process-drawable (-> s4-0 0)) root trans z) 1024.0)
|
|
(set! (-> this icons s5-0 icon-x) 399)
|
|
(set! (-> this icons s5-0 icon-y) 79)
|
|
(set! (-> this icons s5-0 icon-z) 0)
|
|
(set! (-> this icons s5-0 scale-x) 0.0095)
|
|
(set! (-> this icons s5-0 scale-y) -0.011)
|
|
)
|
|
)
|
|
)
|
|
(+! (-> this nb-of-icons) 1)
|
|
)
|
|
(when (< (-> this nb-of-particles) (-> this max-nb-of-particles))
|
|
(let ((s5-1 (-> this nb-of-particles)))
|
|
(set! (-> this particles s5-1) (new 'static 'hud-particle))
|
|
(set! (-> this particles s5-1 part) (create-launch-control (-> *part-group-id-table* 79) this))
|
|
(set! (-> this particles s5-1 init-pos x) 400.0)
|
|
(set! (-> this particles s5-1 init-pos y) 58.0)
|
|
(set! (-> this particles s5-1 init-pos z) 2.0)
|
|
(set! (-> this particles s5-1 part matrix) -1)
|
|
)
|
|
(+! (-> this nb-of-particles) 1)
|
|
)
|
|
(set-pos-and-scale this (= (get-aspect-ratio) 'aspect16x9) (= (get-video-mode) 'pal))
|
|
(dotimes (s5-3 (-> this nb-of-particles))
|
|
(if (= (-> this particles s5-3 part matrix) -1)
|
|
(set! (-> this particles s5-3 part matrix) (sprite-allocate-user-hvdf))
|
|
)
|
|
)
|
|
(set! (-> this text-x) 420)
|
|
(set! (-> this text-y) 45)
|
|
(set! (-> this x-sgn) 1)
|
|
(set! (-> this y-sgn) -1)
|
|
(set! (-> this increment-on-event) #t)
|
|
0
|
|
(none)
|
|
)
|
|
|
|
;; definition for method 24 of type hud-money
|
|
;; INFO: Return type mismatch int vs none.
|
|
(defmethod set-pos-and-scale ((this hud-money) (arg0 symbol) (arg1 symbol))
|
|
(cond
|
|
(arg0
|
|
(set! (-> this x-scale) 0.0123)
|
|
(set! (-> this y-scale) -0.0145)
|
|
(set! (-> this y-pos) 86)
|
|
)
|
|
(else
|
|
(set! (-> this x-scale) 0.0095)
|
|
(set! (-> this y-scale) -0.011)
|
|
(set! (-> this y-pos) 79)
|
|
)
|
|
)
|
|
(when arg1
|
|
(set! (-> this x-scale) (* 1.1 (-> this x-scale)))
|
|
(set! (-> this y-scale) (* 1.2 (-> this y-scale)))
|
|
(set! (-> this y-pos) (the int (* (the float (-> this y-pos)) (if arg0
|
|
0.95
|
|
0.9
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
0
|
|
(none)
|
|
)
|
|
|
|
;; definition for method 21 of type hud-money
|
|
(defmethod get-icon-pos-x ((this hud-money))
|
|
(-> this icons 0 icon-x)
|
|
)
|
|
|
|
;; definition for method 22 of type hud-money
|
|
(defmethod get-icon-pos-y ((this hud-money))
|
|
(-> this icons 0 icon-y)
|
|
)
|
|
|
|
;; definition for method 25 of type hud-money
|
|
(defmethod get-icon-scale-x ((this hud-money))
|
|
0.01
|
|
)
|
|
|
|
;; definition for method 26 of type hud-money
|
|
(defmethod get-icon-scale-y ((this hud-money))
|
|
-0.011
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defskelgroup *fuelcell-naked-sg* fuelcell-naked fuelcell-naked-lod0-jg fuelcell-naked-idle-ja
|
|
((fuelcell-naked-lod0-mg (meters 999999)))
|
|
:bounds (static-spherem 0 1 0 1.6)
|
|
:texture-level 2
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defpart 313
|
|
:init-specs ((:texture (new 'static 'texture-id :index #x31 :page #x2))
|
|
(:num 1.0)
|
|
(:scale-x (meters 0.4))
|
|
(:scale-y :copy scale-x)
|
|
(:r 128.0)
|
|
(:g 128.0)
|
|
(:b 128.0)
|
|
(:a 128.0)
|
|
(:timer (seconds -0.005))
|
|
(:flags (bit9))
|
|
(:userdata 4.0)
|
|
(:func 'fuel-cell-hud-orbit-callback)
|
|
)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defpart 314
|
|
:init-specs ((:texture (new 'static 'texture-id :index #x31 :page #x2))
|
|
(:num 1.0)
|
|
(:scale-x (meters 0.4))
|
|
(:scale-y :copy scale-x)
|
|
(:r 128.0)
|
|
(:g 128.0)
|
|
(:b 128.0)
|
|
(:a 128.0)
|
|
(:timer (seconds -0.005))
|
|
(:flags (bit9))
|
|
(:userdata 5.0)
|
|
(:func 'fuel-cell-hud-orbit-callback)
|
|
)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defpart 315
|
|
:init-specs ((:texture (new 'static 'texture-id :index #x31 :page #x2))
|
|
(:num 1.0)
|
|
(:scale-x (meters 0.4))
|
|
(:scale-y :copy scale-x)
|
|
(:r 128.0)
|
|
(:g 128.0)
|
|
(:b 128.0)
|
|
(:a 128.0)
|
|
(:timer (seconds -0.005))
|
|
(:flags (bit9))
|
|
(:userdata 6.0)
|
|
(:func 'fuel-cell-hud-orbit-callback)
|
|
)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defpart 316
|
|
:init-specs ((:texture (new 'static 'texture-id :index #x31 :page #x2))
|
|
(:num 1.0)
|
|
(:scale-x (meters 0.4))
|
|
(:scale-y :copy scale-x)
|
|
(:r 128.0)
|
|
(:g 128.0)
|
|
(:b 128.0)
|
|
(:a 128.0)
|
|
(:timer (seconds -0.005))
|
|
(:flags (bit9))
|
|
(:userdata 7.0)
|
|
(:func 'fuel-cell-hud-orbit-callback)
|
|
)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defpart 317
|
|
:init-specs ((:texture (new 'static 'texture-id :index #x31 :page #x2))
|
|
(:num 1.0)
|
|
(:scale-x (meters 0.2))
|
|
(:scale-y :copy scale-x)
|
|
(:r 128.0)
|
|
(:g 128.0)
|
|
(:b 128.0)
|
|
(:a 128.0)
|
|
(:timer (seconds -0.005))
|
|
(:flags (bit9))
|
|
(:userdata 9.0)
|
|
(:func 'fuel-cell-hud-orbit-callback)
|
|
)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defpart 318
|
|
:init-specs ((:texture (new 'static 'texture-id :index #x30 :page #x2))
|
|
(:num 1.0)
|
|
(:scale-x (meters 1.8))
|
|
(:scale-y :copy scale-x)
|
|
(:r 128.0)
|
|
(:g 128.0)
|
|
(:b 128.0)
|
|
(:a 128.0)
|
|
(:timer (seconds -0.005))
|
|
(:flags (bit2 bit9))
|
|
(:func 'fuel-cell-hud-center-callback)
|
|
)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defpartgroup group-part-hud-power-cell-whole
|
|
:id 80
|
|
:flags (use-local-clock screen-space)
|
|
:bounds (static-bspherem 0 0 0 100)
|
|
:parts ((sp-item 318 :flags (launch-asap))
|
|
(sp-item 319 :fade-after (meters 35))
|
|
(sp-item 320 :fade-after (meters 20))
|
|
(sp-item 321 :flags (launch-asap) :period (seconds 12) :length (seconds 0.017))
|
|
(sp-item 322 :flags (launch-asap) :period (seconds 12) :length (seconds 0.017))
|
|
(sp-item 317 :flags (launch-asap))
|
|
(sp-item 313 :flags (launch-asap))
|
|
(sp-item 314 :flags (launch-asap))
|
|
(sp-item 315 :flags (launch-asap))
|
|
(sp-item 316 :flags (launch-asap))
|
|
)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defpart 323
|
|
:init-specs ((:fade-a -0.53333336))
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defpart 319
|
|
:init-specs ((:texture (new 'static 'texture-id :index #x2 :page #x2))
|
|
(:num 0.5)
|
|
(:z (meters 22.5))
|
|
(:scale-x (meters 0.3) (meters 0.5))
|
|
(:rot-x 4)
|
|
(:rot-z (degrees 0) (degrees 360))
|
|
(:scale-y (meters 0.1) (meters 0.8))
|
|
(:r 0.0 1 255.0)
|
|
(:g 0.0 1 255.0)
|
|
(:b 0.0 1 255.0)
|
|
(:a 0.0)
|
|
(:scalevel-x (meters 0.009765625))
|
|
(:rotvel-z (degrees -0.15) (degrees 0.3))
|
|
(:scalevel-y (meters 0.009765625))
|
|
(:fade-a 0.35555556)
|
|
(:timer (seconds -0.005))
|
|
(:flags (bit2 bit3))
|
|
(:next-time (seconds 0.3))
|
|
(:next-launcher 232)
|
|
)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defpart 320
|
|
:init-specs ((:texture (new 'static 'texture-id :index #x2 :page #x2))
|
|
(:num 0.06)
|
|
(:z (meters 22.5))
|
|
(:scale-x (meters 1.5) (meters 0.5))
|
|
(:rot-x 4)
|
|
(:rot-z (degrees 0) (degrees 360))
|
|
(:scale-y (meters 0.2))
|
|
(:r 0.0 1 255.0)
|
|
(:g 0.0 1 255.0)
|
|
(:b 0.0 1 255.0)
|
|
(:a 0.0)
|
|
(:scalevel-x (meters 0.009765625))
|
|
(:rotvel-z (degrees -0.15) (degrees 0.3))
|
|
(:fade-a 0.32)
|
|
(:timer (seconds -0.005))
|
|
(:flags (bit2 bit3))
|
|
(:next-time (seconds 0.25))
|
|
(:next-launcher 232)
|
|
)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defpart 321
|
|
:init-specs ((:texture (new 'static 'texture-id :index #x12 :page #x2))
|
|
(:num 1.0)
|
|
(:z (meters 22.5))
|
|
(:scale-x (meters 3.3))
|
|
(:rot-z (degrees 0))
|
|
(:scale-y (meters 2.8))
|
|
(:r 192.0)
|
|
(:g 192.0)
|
|
(:b 0.0 128.0)
|
|
(:a 64.0)
|
|
(:rotvel-z (degrees -0.4))
|
|
(:timer (seconds -0.005))
|
|
(:flags (bit2 bit3))
|
|
(:func 'fuel-cell-hud-starburst-3-callback)
|
|
)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defpart 322
|
|
:init-specs ((:texture (new 'static 'texture-id :index #x12 :page #x2))
|
|
(:num 1.0)
|
|
(:z (meters 22.5))
|
|
(:scale-x (meters 3.8))
|
|
(:rot-z (degrees 0))
|
|
(:scale-y (meters 3.3))
|
|
(:r 128.0)
|
|
(:g 128.0)
|
|
(:b 128.0)
|
|
(:a 64.0)
|
|
(:rotvel-z (degrees 0.3))
|
|
(:timer (seconds -0.005))
|
|
(:flags (bit2 bit3))
|
|
(:func 'fuel-cell-hud-starburst-4-callback)
|
|
)
|
|
)
|
|
|
|
;; definition of type hud-fuel-cell
|
|
(deftype hud-fuel-cell (hud)
|
|
((scale-starburst-3-x float)
|
|
(scale-starburst-3-y float)
|
|
(scale-starburst-4-x float)
|
|
(scale-starburst-4-y float)
|
|
(scale-icon float)
|
|
(scale-center float)
|
|
(icon-pos-y int32)
|
|
)
|
|
)
|
|
|
|
;; definition for method 3 of type hud-fuel-cell
|
|
(defmethod inspect ((this hud-fuel-cell))
|
|
(let ((t9-0 (method-of-type hud inspect)))
|
|
(t9-0 this)
|
|
)
|
|
(format #t "~T~Tscale-starburst-3-x: ~f~%" (-> this scale-starburst-3-x))
|
|
(format #t "~T~Tscale-starburst-3-y: ~f~%" (-> this scale-starburst-3-y))
|
|
(format #t "~T~Tscale-starburst-4-x: ~f~%" (-> this scale-starburst-4-x))
|
|
(format #t "~T~Tscale-starburst-4-y: ~f~%" (-> this scale-starburst-4-y))
|
|
(format #t "~T~Tscale-icon: ~f~%" (-> this scale-icon))
|
|
(format #t "~T~Tscale-center: ~f~%" (-> this scale-center))
|
|
(format #t "~T~Ticon-pos-y: ~D~%" (-> this icon-pos-y))
|
|
this
|
|
)
|
|
|
|
;; definition for method 15 of type hud-fuel-cell
|
|
;; INFO: Return type mismatch int vs none.
|
|
(defmethod draw-hud ((this hud-fuel-cell))
|
|
(let ((t9-0 (method-of-type hud draw-hud)))
|
|
(t9-0 this)
|
|
)
|
|
(let* ((s5-0 (-> *display* frames (-> *display* on-screen) frame global-buf))
|
|
(gp-0 (-> s5-0 base))
|
|
)
|
|
(let ((s4-0 draw-string-xy))
|
|
(format (clear *temp-string*) "~D" (-> this value))
|
|
(s4-0
|
|
*temp-string*
|
|
s5-0
|
|
(+ (-> this text-x) (* (-> this x-sgn) (-> this offset)))
|
|
(/ (* (+ (-> this text-y) (* (-> this y-sgn) (-> this offset)) (-> this y-offset))
|
|
(the int (-> *video-parms* relative-y-scale))
|
|
)
|
|
2
|
|
)
|
|
(font-color yellow)
|
|
(font-flags shadow kerning large)
|
|
)
|
|
)
|
|
(let ((a3-7 (-> s5-0 base)))
|
|
(let ((v1-8 (the-as object (-> s5-0 base))))
|
|
(set! (-> (the-as (pointer int64) v1-8)) #x20000000)
|
|
(set! (-> (the-as dma-packet v1-8) vif0) (new 'static 'vif-tag))
|
|
(set! (-> (the-as dma-packet v1-8) vif1) (new 'static 'vif-tag))
|
|
(set! (-> s5-0 base) (&+ (the-as pointer v1-8) 16))
|
|
)
|
|
(dma-bucket-insert-tag
|
|
(-> *display* frames (-> *display* on-screen) frame bucket-group)
|
|
(bucket-id debug)
|
|
gp-0
|
|
(the-as (pointer dma-tag) a3-7)
|
|
)
|
|
)
|
|
)
|
|
0
|
|
(none)
|
|
)
|
|
|
|
;; definition for function fuel-cell-hud-orbit-callback
|
|
;; INFO: Return type mismatch int vs none.
|
|
(defun fuel-cell-hud-orbit-callback ((arg0 sparticle-system) (arg1 sparticle-cpuinfo) (arg2 matrix))
|
|
(let ((s3-0 (-> arg1 key proc))
|
|
(v1-1 (the int (-> arg1 user-float)))
|
|
(s5-0 (new 'stack-no-clear 'vector))
|
|
)
|
|
(let ((s4-0 (new 'stack-no-clear 'vector)))
|
|
(vector<-cspace! s5-0 (-> (the-as hud-fuel-cell s3-0) icons 0 icon 0 node-list data v1-1))
|
|
(vector<-cspace! s4-0 (-> (the-as hud-fuel-cell s3-0) icons 0 icon 0 node-list data 3))
|
|
(vector-! s5-0 s5-0 s4-0)
|
|
)
|
|
(set! (-> arg2 vector 0 x) (* 60.0 (-> s5-0 x)))
|
|
(set! (-> arg2 vector 0 y) (* 60.0 (-> s5-0 y)))
|
|
(set! (-> arg2 vector 0 z) (* 1024.0 (-> s5-0 z)))
|
|
)
|
|
0
|
|
(none)
|
|
)
|
|
|
|
;; definition for function fuel-cell-hud-starburst-3-callback
|
|
;; INFO: Return type mismatch int vs none.
|
|
(defun fuel-cell-hud-starburst-3-callback ((arg0 sparticle-system) (arg1 sparticle-cpuinfo) (arg2 matrix))
|
|
(set! (-> arg2 vector 0 w) (-> *hud-parts* fuel-cell 0 scale-starburst-3-x))
|
|
(set! (-> arg2 vector 1 w) (-> *hud-parts* fuel-cell 0 scale-starburst-3-y))
|
|
0
|
|
(none)
|
|
)
|
|
|
|
;; definition for function fuel-cell-hud-starburst-4-callback
|
|
;; INFO: Return type mismatch int vs none.
|
|
(defun fuel-cell-hud-starburst-4-callback ((arg0 sparticle-system) (arg1 sparticle-cpuinfo) (arg2 matrix))
|
|
(set! (-> arg2 vector 0 w) (-> *hud-parts* fuel-cell 0 scale-starburst-4-x))
|
|
(set! (-> arg2 vector 1 w) (-> *hud-parts* fuel-cell 0 scale-starburst-4-y))
|
|
0
|
|
(none)
|
|
)
|
|
|
|
;; definition for function fuel-cell-hud-center-callback
|
|
;; INFO: Return type mismatch int vs none.
|
|
(defun fuel-cell-hud-center-callback ((arg0 sparticle-system) (arg1 sparticle-cpuinfo) (arg2 matrix))
|
|
(let ((f0-0 (-> *hud-parts* fuel-cell 0 scale-icon))
|
|
(f1-0 (-> *hud-parts* fuel-cell 0 scale-center))
|
|
)
|
|
(set-vector! (-> *hud-parts* fuel-cell 0 icons 0 icon 0 root scale) f0-0 f0-0 f0-0 1.0)
|
|
(set! (-> arg2 vector 0 w) f1-0)
|
|
(set! (-> arg2 vector 1 w) f1-0)
|
|
)
|
|
0
|
|
(none)
|
|
)
|
|
|
|
;; definition for method 19 of type hud-fuel-cell
|
|
;; INFO: Return type mismatch int vs none.
|
|
(defmethod hud-update ((this hud-fuel-cell))
|
|
(when *target*
|
|
(when (!= *master-mode* 'pause)
|
|
(let ((a0-2 (-> this icons 0 icon 0 root)))
|
|
(set-yaw-angle-clear-roll-pitch!
|
|
a0-2
|
|
(+ (y-angle a0-2) (* 182.04445 (* 0.5 (-> *display* time-adjust-ratio))))
|
|
)
|
|
)
|
|
)
|
|
(set! (-> this icons 0 icon-y) (-> this icon-pos-y))
|
|
(tally-value this (the int (+ 0.5 (-> *target* game fuel))) 0)
|
|
(let ((s5-1 (new 'stack-no-clear 'vector)))
|
|
(vector<-cspace! s5-1 (-> this icons 0 icon 0 node-list data 3))
|
|
(set! (-> this particles 0 pos x) (-> s5-1 x))
|
|
(set! (-> this particles 0 pos y) (* 0.5 (-> s5-1 y)))
|
|
(set! (-> this particles 0 pos z) (+ 2.0 (* 0.05 (+ -2048.0 (-> s5-1 z)))))
|
|
)
|
|
)
|
|
0
|
|
(none)
|
|
)
|
|
|
|
;; definition for method 20 of type hud-fuel-cell
|
|
;; INFO: Return type mismatch int vs none.
|
|
(defmethod init-particles! ((this hud-fuel-cell) (arg0 int))
|
|
(when (< (-> this nb-of-particles) (-> this max-nb-of-particles))
|
|
(let ((s5-0 (-> this nb-of-particles)))
|
|
(set! (-> this particles s5-0) (new 'static 'hud-particle))
|
|
(set! (-> this particles s5-0 part) (create-launch-control (-> *part-group-id-table* 80) this))
|
|
(set! (-> this particles s5-0 init-pos x) 256.0)
|
|
(set! (-> this particles s5-0 init-pos y) 224.0)
|
|
(set! (-> this particles s5-0 init-pos z) 1.0)
|
|
(set! (-> this particles s5-0 part matrix) -1)
|
|
)
|
|
(+! (-> this nb-of-particles) 1)
|
|
)
|
|
(dotimes (s5-1 (-> this nb-of-particles))
|
|
(if (= (-> this particles s5-1 part matrix) -1)
|
|
(set! (-> this particles s5-1 part matrix) (sprite-allocate-user-hvdf))
|
|
)
|
|
)
|
|
(when (< (-> this nb-of-icons) 6)
|
|
(let ((s5-2 (-> this nb-of-icons)))
|
|
(set! (-> this icons s5-2) (new 'static 'hud-icon))
|
|
(let ((s4-0 (manipy-spawn (new 'static 'vector :w 1.0) #f *fuelcell-naked-sg* #f :to this)))
|
|
(when s4-0
|
|
(set! (-> (the-as process-drawable (-> s4-0 0)) draw dma-add-func) dma-add-process-drawable-hud)
|
|
(set-vector! (-> (the-as process-drawable (-> s4-0 0)) root trans) 0.0 0.0 0.0 1.0)
|
|
(set-vector! (-> (the-as process-drawable (-> s4-0 0)) root scale) 0.009 0.009 0.009 1.0)
|
|
(if #f
|
|
(send-event (ppointer->process s4-0) 'trans-hook #f)
|
|
)
|
|
)
|
|
(set! (-> this icons s5-2 icon) (the-as (pointer manipy) s4-0))
|
|
(when s4-0
|
|
(logior! (-> s4-0 0 mask) (process-mask pause))
|
|
(logclear! (-> s4-0 0 mask) (process-mask menu progress))
|
|
(set! (-> (the-as process-drawable (-> s4-0 0)) root trans z) 2048.0)
|
|
(set! (-> this icons s5-2 icon-x) 256)
|
|
(set! (-> this icons s5-2 icon-y) 62)
|
|
(set! (-> this icons s5-2 icon-z) 0)
|
|
(set! (-> this icons s5-2 scale-x) 0.009)
|
|
(set! (-> this icons s5-2 scale-y) 0.009)
|
|
)
|
|
)
|
|
)
|
|
(+! (-> this nb-of-icons) 1)
|
|
)
|
|
(set! (-> this text-x) 276)
|
|
(set! (-> this text-y) 45)
|
|
(set! (-> this x-sgn) 0)
|
|
(set! (-> this y-sgn) -1)
|
|
(set! (-> this increment-on-event) #t)
|
|
(set! (-> this skip-particle) -2)
|
|
(set-pos-and-scale this (= (get-aspect-ratio) 'aspect16x9) (= (get-video-mode) 'pal))
|
|
(let ((s5-4 (new 'stack-no-clear 'quaternion)))
|
|
(quaternion-axis-angle! s5-4 0.0 1.0 0.0 16384.0)
|
|
(quaternion*! (-> this icons 0 icon 0 root quat) s5-4 (-> this icons 0 icon 0 root quat))
|
|
)
|
|
0
|
|
(none)
|
|
)
|
|
|
|
;; definition for method 24 of type hud-fuel-cell
|
|
;; INFO: Return type mismatch int vs none.
|
|
(defmethod set-pos-and-scale ((this hud-fuel-cell) (arg0 symbol) (arg1 symbol))
|
|
(cond
|
|
(arg0
|
|
(set! (-> this scale-starburst-3-x) 10240.0)
|
|
(set! (-> this scale-starburst-3-y) 9420.8)
|
|
(set! (-> this scale-starburst-4-x) 9420.8)
|
|
(set! (-> this scale-starburst-4-y) 8192.0)
|
|
(set! (-> this scale-icon) 0.007)
|
|
(set! (-> this scale-center) 6144.0)
|
|
(set! (-> this icon-pos-y) 62)
|
|
)
|
|
(else
|
|
(set! (-> this scale-starburst-3-x) 12288.0)
|
|
(set! (-> this scale-starburst-3-y) 10240.0)
|
|
(set! (-> this scale-starburst-4-x) 12288.0)
|
|
(set! (-> this scale-starburst-4-y) 10240.0)
|
|
(set! (-> this scale-icon) 0.009)
|
|
(set! (-> this scale-center) 7372.8)
|
|
(set! (-> this icon-pos-y) 62)
|
|
)
|
|
)
|
|
(if arg1
|
|
(set! (-> this icon-pos-y) (the int (* (the float (-> this icon-pos-y)) (if arg0
|
|
1.1
|
|
1.14
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
0
|
|
(none)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defpartgroup group-part-hud-buzzer
|
|
:id 81
|
|
:flags (screen-space)
|
|
:bounds (static-bspherem 0 0 0 100)
|
|
:parts ((sp-item 324 :flags (launch-asap) :binding 325) (sp-item 325 :flags (start-dead launch-asap)))
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defpart 324
|
|
:init-specs ((:texture (new 'static 'texture-id :index #x2a :page #x2))
|
|
(:num 1.0)
|
|
(:scale-x (meters 2.2))
|
|
(:scale-y :copy scale-x)
|
|
(:r 128.0)
|
|
(:g 128.0)
|
|
(:b 128.0)
|
|
(:a 0.0)
|
|
(:timer (seconds -0.005))
|
|
(:flags (bit9))
|
|
)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defpart 325
|
|
:init-specs ((:texture (new 'static 'texture-id :index #x2a :page #x2))
|
|
(:num 1.0)
|
|
(:x (meters 0))
|
|
(:y (meters 1.3333334))
|
|
(:z (meters 0.1))
|
|
(:scale-x (meters 1.8))
|
|
(:scale-y :copy scale-x)
|
|
(:r 128.0)
|
|
(:g 128.0)
|
|
(:b 128.0)
|
|
(:a 128.0)
|
|
(:omega 0.0)
|
|
(:vel-x (meters 0.053333335))
|
|
(:vel-z (meters 0))
|
|
(:timer (seconds -0.005))
|
|
(:flags (bit2 bit7 bit9))
|
|
(:func 'part-hud-buzzer-func)
|
|
)
|
|
)
|
|
|
|
;; definition of type hud-buzzers
|
|
(deftype hud-buzzers (hud)
|
|
((scale float)
|
|
(text-y-offset int32)
|
|
)
|
|
)
|
|
|
|
;; definition for method 3 of type hud-buzzers
|
|
(defmethod inspect ((this hud-buzzers))
|
|
(let ((t9-0 (method-of-type hud inspect)))
|
|
(t9-0 this)
|
|
)
|
|
(format #t "~T~Tscale: ~f~%" (-> this scale))
|
|
(format #t "~T~Ttext-y-offset: ~D~%" (-> this text-y-offset))
|
|
this
|
|
)
|
|
|
|
;; definition for function part-hud-buzzer-func
|
|
;; INFO: Return type mismatch float vs none.
|
|
(defun part-hud-buzzer-func ((arg0 sparticle-system) (arg1 sparticle-cpuinfo) (arg2 matrix))
|
|
(let ((f0-0 (-> *hud-parts* buzzers 0 scale)))
|
|
(set! (-> arg2 vector 0 w) f0-0)
|
|
(set! (-> arg2 vector 1 w) f0-0)
|
|
)
|
|
(none)
|
|
)
|
|
|
|
;; definition for method 15 of type hud-buzzers
|
|
;; INFO: Return type mismatch int vs none.
|
|
(defmethod draw-hud ((this hud-buzzers))
|
|
(let ((t9-0 (method-of-type hud draw-hud)))
|
|
(t9-0 this)
|
|
)
|
|
(set! (-> this text-y) (+ (if (nonzero? (-> this next-y-offset))
|
|
(-> this text-y-offset)
|
|
0
|
|
)
|
|
362
|
|
)
|
|
)
|
|
(let* ((s5-0 (-> *display* frames (-> *display* on-screen) frame global-buf))
|
|
(gp-0 (-> s5-0 base))
|
|
)
|
|
(let ((s3-0 draw-string-xy))
|
|
(format (clear *temp-string*) "~2,' D" (-> this value))
|
|
(s3-0
|
|
*temp-string*
|
|
s5-0
|
|
(+ (-> this text-x) (* (-> this x-sgn) (-> this offset)))
|
|
(/ (* (+ (-> this text-y) (* (-> this y-sgn) (-> this offset)) (-> this y-offset))
|
|
(the int (-> *video-parms* relative-y-scale))
|
|
)
|
|
2
|
|
)
|
|
(font-color yellow)
|
|
(font-flags shadow kerning large)
|
|
)
|
|
)
|
|
(let ((a3-7 (-> s5-0 base)))
|
|
(let ((v1-11 (the-as object (-> s5-0 base))))
|
|
(set! (-> (the-as (pointer int64) v1-11)) #x20000000)
|
|
(set! (-> (the-as dma-packet v1-11) vif0) (new 'static 'vif-tag))
|
|
(set! (-> (the-as dma-packet v1-11) vif1) (new 'static 'vif-tag))
|
|
(set! (-> s5-0 base) (&+ (the-as pointer v1-11) 16))
|
|
)
|
|
(dma-bucket-insert-tag
|
|
(-> *display* frames (-> *display* on-screen) frame bucket-group)
|
|
(bucket-id debug)
|
|
gp-0
|
|
(the-as (pointer dma-tag) a3-7)
|
|
)
|
|
)
|
|
)
|
|
0
|
|
(none)
|
|
)
|
|
|
|
;; definition for method 19 of type hud-buzzers
|
|
;; INFO: Return type mismatch int vs none.
|
|
(defmethod hud-update ((this hud-buzzers))
|
|
(if *target*
|
|
(tally-value this (the int (+ 0.5 (-> *target* fact buzzer))) 0)
|
|
)
|
|
0
|
|
(none)
|
|
)
|
|
|
|
;; definition for method 20 of type hud-buzzers
|
|
;; INFO: Return type mismatch int vs none.
|
|
(defmethod init-particles! ((this hud-buzzers) (arg0 int))
|
|
(when (< (-> this nb-of-particles) (-> this max-nb-of-particles))
|
|
(let ((s5-0 (-> this nb-of-particles)))
|
|
(set! (-> this particles s5-0) (new 'static 'hud-particle))
|
|
(set! (-> this particles s5-0 part) (create-launch-control (-> *part-group-id-table* 81) this))
|
|
(set! (-> this particles s5-0 init-pos x) 60.0)
|
|
(set! (-> this particles s5-0 init-pos y) 380.0)
|
|
(set! (-> this particles s5-0 init-pos z) 1.0)
|
|
(set! (-> this particles s5-0 part matrix) -1)
|
|
)
|
|
(+! (-> this nb-of-particles) 1)
|
|
)
|
|
(dotimes (s5-1 (-> this nb-of-particles))
|
|
(if (= (-> this particles s5-1 part matrix) -1)
|
|
(set! (-> this particles s5-1 part matrix) (sprite-allocate-user-hvdf))
|
|
)
|
|
)
|
|
(set-pos-and-scale this (= (get-aspect-ratio) 'aspect16x9) (= (get-video-mode) 'pal))
|
|
(set! (-> this text-x) 85)
|
|
(set! (-> this text-y) 362)
|
|
(set! (-> this x-sgn) -1)
|
|
(set! (-> this y-sgn) 1)
|
|
(set! (-> this text-y-offset) 0)
|
|
(set! (-> this increment-on-event) #t)
|
|
0
|
|
(none)
|
|
)
|
|
|
|
;; definition for method 21 of type hud-buzzers
|
|
(defmethod get-icon-pos-x ((this hud-buzzers))
|
|
(-> this text-x)
|
|
)
|
|
|
|
;; definition for method 22 of type hud-buzzers
|
|
(defmethod get-icon-pos-y ((this hud-buzzers))
|
|
(+ (if (= (-> *setting-control* current video-mode) 'pal)
|
|
(+ (-> this text-y) 120)
|
|
(+ (-> this text-y) 50)
|
|
)
|
|
(-> this next-y-offset)
|
|
)
|
|
)
|
|
|
|
;; definition for method 25 of type hud-buzzers
|
|
(defmethod get-icon-scale-x ((this hud-buzzers))
|
|
0.008
|
|
)
|
|
|
|
;; definition for method 26 of type hud-buzzers
|
|
(defmethod get-icon-scale-y ((this hud-buzzers))
|
|
-0.008
|
|
)
|
|
|
|
;; definition for method 24 of type hud-buzzers
|
|
;; INFO: Return type mismatch int vs none.
|
|
(defmethod set-pos-and-scale ((this hud-buzzers) (arg0 symbol) (arg1 symbol))
|
|
(cond
|
|
(arg0
|
|
(set! (-> this scale) 6553.6)
|
|
(set! (-> this text-y-offset) -40)
|
|
)
|
|
(else
|
|
(set! (-> this scale) 7372.8)
|
|
(set! (-> this text-y-offset) 0)
|
|
0
|
|
)
|
|
)
|
|
0
|
|
(none)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defpartgroup group-part-hud-eco-timer
|
|
:id 82
|
|
:flags (screen-space)
|
|
:bounds (static-bspherem 0 0 0 100)
|
|
:parts ((sp-item 327 :flags (launch-asap)))
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defpartgroup group-part-hud-eco-timer-backing
|
|
:id 83
|
|
:flags (screen-space)
|
|
:bounds (static-bspherem 0 0 0 100)
|
|
:parts ((sp-item 328 :flags (launch-asap)))
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defpart 327
|
|
:init-specs ((:texture (new 'static 'texture-id :index #x2b :page #x2))
|
|
(:num 1.0)
|
|
(:scale-x (meters 3.2))
|
|
(:scale-y :copy scale-x)
|
|
(:r 128.0)
|
|
(:g 128.0)
|
|
(:b 128.0)
|
|
(:a 128.0)
|
|
(:timer (seconds -0.005))
|
|
(:flags (bit2 bit9))
|
|
(:func 'part-hud-eco-timer-func)
|
|
)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defpart 328
|
|
:init-specs ((:texture (new 'static 'texture-id :index #x3 :page #x2))
|
|
(:num 1.0)
|
|
(:scale-x (meters 2.5))
|
|
(:scale-y :copy scale-x)
|
|
(:r 128.0)
|
|
(:g 100.0)
|
|
(:b 63.0)
|
|
(:a 64.0)
|
|
(:timer (seconds -0.005))
|
|
(:flags (bit2 bit9))
|
|
(:func 'part-hud-eco-timer-backing-func)
|
|
)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defpartgroup group-part-hud-timer-blue
|
|
:id 84
|
|
:flags (use-local-clock screen-space)
|
|
:bounds (static-bspherem 0 0 0 100)
|
|
:parts ((sp-item 329 :flags (launch-asap)) (sp-item 330 :flags (launch-asap)) (sp-item 331 :flags (launch-asap)))
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defpart 329
|
|
:init-specs ((:texture (new 'static 'texture-id :index #x32 :page #x2))
|
|
(:num 1.0)
|
|
(:scale-x (meters 2))
|
|
(:scale-y :copy scale-x)
|
|
(:r 0.0)
|
|
(:g 32.0)
|
|
(:b 128.0)
|
|
(:a 128.0)
|
|
(:timer (seconds -0.005))
|
|
(:flags (bit2 bit9))
|
|
(:func 'part-hud-eco-timer-01-func)
|
|
)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defpart 330
|
|
:init-specs ((:texture (new 'static 'texture-id :index #x32 :page #x2))
|
|
(:num 1.0)
|
|
(:scale-x (meters 2))
|
|
(:scale-y :copy scale-x)
|
|
(:r 0.0)
|
|
(:g 32.0)
|
|
(:b 128.0)
|
|
(:a 128.0)
|
|
(:timer (seconds -0.005))
|
|
(:flags (bit2 bit9))
|
|
(:func 'part-hud-eco-timer-02-func)
|
|
)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defpart 331
|
|
:init-specs ((:texture (new 'static 'texture-id :index #x32 :page #x2))
|
|
(:num 1.0)
|
|
(:scale-x (meters 2))
|
|
(:scale-y :copy scale-x)
|
|
(:r 0.0)
|
|
(:g 32.0)
|
|
(:b 128.0)
|
|
(:a 128.0)
|
|
(:timer (seconds -0.005))
|
|
(:flags (bit2 bit9))
|
|
(:func 'part-hud-eco-timer-03-func)
|
|
)
|
|
)
|
|
|
|
;; definition of type hud-power
|
|
(deftype hud-power (hud)
|
|
((scale-timer float)
|
|
(scale-backing float)
|
|
(scale-blue float)
|
|
)
|
|
)
|
|
|
|
;; definition for method 3 of type hud-power
|
|
(defmethod inspect ((this hud-power))
|
|
(let ((t9-0 (method-of-type hud inspect)))
|
|
(t9-0 this)
|
|
)
|
|
(format #t "~T~Tscale-timer: ~f~%" (-> this scale-timer))
|
|
(format #t "~T~Tscale-backing: ~f~%" (-> this scale-backing))
|
|
(format #t "~T~Tscale-blue: ~f~%" (-> this scale-blue))
|
|
this
|
|
)
|
|
|
|
;; definition for function calculate-rotation-and-color-for-slice
|
|
;; INFO: Return type mismatch int vs none.
|
|
(defun calculate-rotation-and-color-for-slice ((arg0 int) (arg1 float) (arg2 int) (arg3 int) (arg4 int) (arg5 matrix))
|
|
(cond
|
|
((>= 0.0 arg1)
|
|
(set! (-> arg5 vector 1 z) -16566.045)
|
|
)
|
|
(else
|
|
(let ((v1-1 arg0))
|
|
(cond
|
|
((zero? v1-1)
|
|
(if (< 1.0 arg1)
|
|
(set! (-> arg5 vector 1 z) 910.2222)
|
|
(set! (-> arg5 vector 1 z) (* 182.04445 (+ 5.0 (* 263.0 (- 1.0 arg1)))))
|
|
)
|
|
)
|
|
((= v1-1 1)
|
|
(if (< 0.6666667 arg1)
|
|
(set! (-> arg5 vector 1 z) 17294.223)
|
|
(set! (-> arg5 vector 1 z) (* 182.04445 (+ 95.0 (* 173.0 (- 1.0 (* 1.5 arg1))))))
|
|
)
|
|
)
|
|
((= v1-1 2)
|
|
(if (< 0.33333334 arg1)
|
|
(set! (-> arg5 vector 1 z) 33678.223)
|
|
(set! (-> arg5 vector 1 z) (* 182.04445 (+ 185.0 (* 83.0 (- 1.0 (* 3.0 arg1))))))
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
(if (and (< 0.0 arg1) (and (< arg1 0.2) (not (logtest? (-> *display* integral-frame-counter) 4))))
|
|
(set! arg3 (* arg3 2))
|
|
)
|
|
(set! (-> arg5 vector 2 x) (the float arg2))
|
|
(set! (-> arg5 vector 2 y) (the float arg3))
|
|
(set! (-> arg5 vector 2 z) (the float arg4))
|
|
0
|
|
(none)
|
|
)
|
|
|
|
;; definition for function part-hud-eco-timer-01-func
|
|
;; INFO: Return type mismatch int vs none.
|
|
(defun part-hud-eco-timer-01-func ((arg0 sparticle-system) (arg1 sparticle-cpuinfo) (arg2 matrix))
|
|
(let ((f0-2
|
|
(/ (the float
|
|
(the-as uint (- (-> *target* fact eco-timeout)
|
|
(the-as uint (- (-> *display* game-frame-counter) (-> *target* fact eco-pickup-time)))
|
|
)
|
|
)
|
|
)
|
|
(the float (the-as uint (-> *FACT-bank* eco-full-timeout)))
|
|
)
|
|
)
|
|
(a2-1 0)
|
|
(a3-0 64)
|
|
(t0-0 128)
|
|
)
|
|
(case (-> *target* fact eco-type)
|
|
(((pickup-type eco-yellow))
|
|
(set! a2-1 128)
|
|
(set! a3-0 96)
|
|
(set! t0-0 0)
|
|
)
|
|
(((pickup-type eco-red))
|
|
(set! a2-1 128)
|
|
(set! a3-0 32)
|
|
(set! t0-0 0)
|
|
)
|
|
(((pickup-type eco-green))
|
|
(set! a2-1 0)
|
|
(set! a3-0 128)
|
|
(set! t0-0 32)
|
|
)
|
|
)
|
|
(calculate-rotation-and-color-for-slice 0 f0-2 a2-1 a3-0 t0-0 arg2)
|
|
)
|
|
(let ((f0-3 (-> *hud-parts* power 0 scale-blue)))
|
|
(set! (-> arg2 vector 0 w) f0-3)
|
|
(set! (-> arg2 vector 1 w) f0-3)
|
|
)
|
|
0
|
|
(none)
|
|
)
|
|
|
|
;; definition for function part-hud-eco-timer-02-func
|
|
;; INFO: Return type mismatch int vs none.
|
|
(defun part-hud-eco-timer-02-func ((arg0 sparticle-system) (arg1 sparticle-cpuinfo) (arg2 matrix))
|
|
(let ((f0-2
|
|
(/ (the float
|
|
(the-as uint (- (-> *target* fact eco-timeout)
|
|
(the-as uint (- (-> *display* game-frame-counter) (-> *target* fact eco-pickup-time)))
|
|
)
|
|
)
|
|
)
|
|
(the float (the-as uint (-> *FACT-bank* eco-full-timeout)))
|
|
)
|
|
)
|
|
(a2-1 0)
|
|
(a3-0 64)
|
|
(t0-0 128)
|
|
)
|
|
(case (-> *target* fact eco-type)
|
|
(((pickup-type eco-yellow))
|
|
(set! a2-1 128)
|
|
(set! a3-0 96)
|
|
(set! t0-0 0)
|
|
)
|
|
(((pickup-type eco-red))
|
|
(set! a2-1 128)
|
|
(set! a3-0 32)
|
|
(set! t0-0 0)
|
|
)
|
|
(((pickup-type eco-green))
|
|
(set! a2-1 0)
|
|
(set! a3-0 128)
|
|
(set! t0-0 32)
|
|
)
|
|
)
|
|
(calculate-rotation-and-color-for-slice 1 f0-2 a2-1 a3-0 t0-0 arg2)
|
|
)
|
|
(let ((f0-3 (-> *hud-parts* power 0 scale-blue)))
|
|
(set! (-> arg2 vector 0 w) f0-3)
|
|
(set! (-> arg2 vector 1 w) f0-3)
|
|
)
|
|
0
|
|
(none)
|
|
)
|
|
|
|
;; definition for function part-hud-eco-timer-03-func
|
|
;; INFO: Return type mismatch int vs none.
|
|
(defun part-hud-eco-timer-03-func ((arg0 sparticle-system) (arg1 sparticle-cpuinfo) (arg2 matrix))
|
|
(let ((f0-2
|
|
(/ (the float
|
|
(the-as uint (- (-> *target* fact eco-timeout)
|
|
(the-as uint (- (-> *display* game-frame-counter) (-> *target* fact eco-pickup-time)))
|
|
)
|
|
)
|
|
)
|
|
(the float (the-as uint (-> *FACT-bank* eco-full-timeout)))
|
|
)
|
|
)
|
|
(a2-1 0)
|
|
(a3-0 64)
|
|
(t0-0 128)
|
|
)
|
|
(case (-> *target* fact eco-type)
|
|
(((pickup-type eco-yellow))
|
|
(set! a2-1 128)
|
|
(set! a3-0 96)
|
|
(set! t0-0 0)
|
|
)
|
|
(((pickup-type eco-red))
|
|
(set! a2-1 128)
|
|
(set! a3-0 32)
|
|
(set! t0-0 0)
|
|
)
|
|
(((pickup-type eco-green))
|
|
(set! a2-1 0)
|
|
(set! a3-0 128)
|
|
(set! t0-0 32)
|
|
)
|
|
)
|
|
(calculate-rotation-and-color-for-slice 2 f0-2 a2-1 a3-0 t0-0 arg2)
|
|
)
|
|
(let ((f0-3 (-> *hud-parts* power 0 scale-blue)))
|
|
(set! (-> arg2 vector 0 w) f0-3)
|
|
(set! (-> arg2 vector 1 w) f0-3)
|
|
)
|
|
0
|
|
(none)
|
|
)
|
|
|
|
;; definition for function part-hud-eco-timer-backing-func
|
|
;; INFO: Return type mismatch int vs none.
|
|
(defun part-hud-eco-timer-backing-func ((arg0 sparticle-system) (arg1 sparticle-cpuinfo) (arg2 matrix))
|
|
(let ((f0-0 (-> *hud-parts* power 0 scale-backing)))
|
|
(set! (-> arg2 vector 0 w) f0-0)
|
|
(set! (-> arg2 vector 1 w) f0-0)
|
|
)
|
|
0
|
|
(none)
|
|
)
|
|
|
|
;; definition for function part-hud-eco-timer-func
|
|
;; INFO: Return type mismatch int vs none.
|
|
(defun part-hud-eco-timer-func ((arg0 sparticle-system) (arg1 sparticle-cpuinfo) (arg2 matrix))
|
|
(let ((f0-0 (-> *hud-parts* power 0 scale-timer)))
|
|
(set! (-> arg2 vector 0 w) f0-0)
|
|
(set! (-> arg2 vector 1 w) f0-0)
|
|
)
|
|
0
|
|
(none)
|
|
)
|
|
|
|
;; definition for method 19 of type hud-power
|
|
;; INFO: Return type mismatch int vs none.
|
|
(defmethod hud-update ((this hud-power))
|
|
(if *target*
|
|
(tally-value
|
|
this
|
|
(max
|
|
0
|
|
(min
|
|
(the-as int (- (-> *target* fact eco-timeout)
|
|
(the-as uint (- (-> *display* game-frame-counter) (-> *target* fact eco-pickup-time)))
|
|
)
|
|
)
|
|
(the-as int (-> *target* fact eco-timeout))
|
|
)
|
|
)
|
|
(the-as int (-> *target* fact eco-timeout))
|
|
)
|
|
)
|
|
0
|
|
(none)
|
|
)
|
|
|
|
;; definition for method 20 of type hud-power
|
|
;; INFO: Return type mismatch int vs none.
|
|
(defmethod init-particles! ((this hud-power) (arg0 int))
|
|
(when (< (-> this nb-of-particles) (-> this max-nb-of-particles))
|
|
(let ((s5-0 (-> this nb-of-particles)))
|
|
(set! (-> this particles s5-0) (new 'static 'hud-particle))
|
|
(set! (-> this particles s5-0 part) (create-launch-control (-> *part-group-id-table* 83) this))
|
|
(set! (-> this particles s5-0 init-pos x) 435.0)
|
|
(set! (-> this particles s5-0 init-pos y) 370.0)
|
|
(set! (-> this particles s5-0 init-pos z) 10.0)
|
|
(set! (-> this particles s5-0 part matrix) -1)
|
|
)
|
|
(+! (-> this nb-of-particles) 1)
|
|
)
|
|
(when (< (-> this nb-of-particles) (-> this max-nb-of-particles))
|
|
(let ((s5-1 (-> this nb-of-particles)))
|
|
(set! (-> this particles s5-1) (new 'static 'hud-particle))
|
|
(set! (-> this particles s5-1 part) (create-launch-control (-> *part-group-id-table* 84) this))
|
|
(set! (-> this particles s5-1 init-pos x) 432.0)
|
|
(set! (-> this particles s5-1 init-pos y) 368.0)
|
|
(set! (-> this particles s5-1 init-pos z) 3.0)
|
|
(set! (-> this particles s5-1 part matrix) -1)
|
|
)
|
|
(+! (-> this nb-of-particles) 1)
|
|
)
|
|
(when (< (-> this nb-of-particles) (-> this max-nb-of-particles))
|
|
(let ((s5-2 (-> this nb-of-particles)))
|
|
(set! (-> this particles s5-2) (new 'static 'hud-particle))
|
|
(set! (-> this particles s5-2 part) (create-launch-control (-> *part-group-id-table* 82) this))
|
|
(set! (-> this particles s5-2 init-pos x) 435.0)
|
|
(set! (-> this particles s5-2 init-pos y) 370.0)
|
|
(set! (-> this particles s5-2 init-pos z) 2.0)
|
|
(set! (-> this particles s5-2 part matrix) -1)
|
|
)
|
|
(+! (-> this nb-of-particles) 1)
|
|
)
|
|
(dotimes (s5-3 (-> this nb-of-particles))
|
|
(if (= (-> this particles s5-3 part matrix) -1)
|
|
(set! (-> this particles s5-3 part matrix) (sprite-allocate-user-hvdf))
|
|
)
|
|
)
|
|
(set-pos-and-scale this (= (get-aspect-ratio) 'aspect16x9) (= (get-video-mode) 'pal))
|
|
(set! (-> this x-sgn) 1)
|
|
(set! (-> this y-sgn) 1)
|
|
0
|
|
(none)
|
|
)
|
|
|
|
;; definition for method 24 of type hud-power
|
|
;; INFO: Return type mismatch int vs none.
|
|
(defmethod set-pos-and-scale ((this hud-power) (arg0 symbol) (arg1 symbol))
|
|
(cond
|
|
(arg0
|
|
(set! (-> this scale-blue) 7168.0)
|
|
(set! (-> this scale-timer) 11468.8)
|
|
(set! (-> this scale-backing) 8960.0)
|
|
)
|
|
(else
|
|
(set! (-> this scale-blue) 8192.0)
|
|
(set! (-> this scale-timer) 13107.2)
|
|
(set! (-> this scale-backing) 10240.0)
|
|
)
|
|
)
|
|
0
|
|
(none)
|
|
)
|
|
|
|
;; definition for function activate-hud
|
|
;; INFO: Return type mismatch int vs none.
|
|
(defun activate-hud ((arg0 process))
|
|
(set! (-> *hud-parts* pickups) (process-spawn hud-pickups :init hud-init-by-other 0 :to arg0))
|
|
(set! (-> *hud-parts* money) (process-spawn hud-money :init hud-init-by-other 0 :to arg0))
|
|
(set! (-> *hud-parts* fuel-cell) (process-spawn hud-fuel-cell :init hud-init-by-other 0 :to arg0))
|
|
(set! (-> *hud-parts* health) (process-spawn hud-health :init hud-init-by-other 0 :to arg0))
|
|
(set! (-> *hud-parts* buzzers) (process-spawn hud-buzzers :init hud-init-by-other 0 :to arg0))
|
|
(set! (-> *hud-parts* power) (process-spawn hud-power :init hud-init-by-other 0 :to arg0))
|
|
(set! (-> *hud-parts* bike-speed) (the-as (pointer hud-bike-speed) #f))
|
|
(set! (-> *hud-parts* bike-heat) (the-as (pointer hud-bike-heat) #f))
|
|
(set! (-> *hud-parts* money-all) (the-as (pointer hud-money-all) #f))
|
|
0
|
|
(none)
|
|
)
|
|
|
|
;; definition for function hide-hud
|
|
;; INFO: Return type mismatch int vs none.
|
|
(defun hide-hud ()
|
|
(when *target*
|
|
(dotimes (gp-0 9)
|
|
(if (-> *hud-parts* parts gp-0)
|
|
(send-event (ppointer->process (-> *hud-parts* parts gp-0)) 'hide)
|
|
)
|
|
)
|
|
)
|
|
0
|
|
(none)
|
|
)
|
|
|
|
;; definition for function hide-bottom-hud
|
|
;; INFO: Return type mismatch int vs none.
|
|
(defun hide-bottom-hud ()
|
|
(when *target*
|
|
(dotimes (gp-0 4)
|
|
(if (-> *hud-parts* parts (+ gp-0 4))
|
|
(send-event (ppointer->process (-> *hud-parts* parts (+ gp-0 4))) 'hide)
|
|
)
|
|
)
|
|
)
|
|
0
|
|
(none)
|
|
)
|
|
|
|
;; definition for function disable-hud
|
|
;; INFO: Return type mismatch int vs none.
|
|
(defun disable-hud ((arg0 int))
|
|
(when *target*
|
|
(dotimes (s5-0 9)
|
|
(when (-> *hud-parts* parts s5-0)
|
|
(if (or (!= (-> *hud-parts* parts s5-0) arg0)
|
|
(zero? (-> (the-as (pointer hud) (-> *hud-parts* parts s5-0)) 0 value))
|
|
)
|
|
(send-event (ppointer->process (-> *hud-parts* parts s5-0)) 'hide)
|
|
)
|
|
(if (!= (-> *hud-parts* parts s5-0) arg0)
|
|
(send-event (ppointer->process (-> *hud-parts* parts s5-0)) 'disable)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
0
|
|
(none)
|
|
)
|
|
|
|
;; definition for function enable-hud
|
|
;; INFO: Return type mismatch int vs none.
|
|
(defun enable-hud ()
|
|
(when *target*
|
|
(dotimes (gp-0 9)
|
|
(if (-> *hud-parts* parts gp-0)
|
|
(send-event (ppointer->process (-> *hud-parts* parts gp-0)) 'enable)
|
|
)
|
|
)
|
|
)
|
|
0
|
|
(none)
|
|
)
|
|
|
|
;; definition for function hide-hud-quick
|
|
;; INFO: Return type mismatch int vs none.
|
|
(defun hide-hud-quick ()
|
|
(when *target*
|
|
(dotimes (gp-0 9)
|
|
(if (-> *hud-parts* parts gp-0)
|
|
(send-event (ppointer->process (-> *hud-parts* parts gp-0)) 'hide-quick)
|
|
)
|
|
)
|
|
)
|
|
0
|
|
(none)
|
|
)
|
|
|
|
;; definition for function show-hud
|
|
;; INFO: Return type mismatch int vs none.
|
|
(defun show-hud ()
|
|
(when (and *target* (or (not *progress-process*) (hidden? (-> *progress-process* 0))))
|
|
(dotimes (gp-0 9)
|
|
(if (-> *hud-parts* parts gp-0)
|
|
(send-event (ppointer->process (-> *hud-parts* parts gp-0)) 'show)
|
|
)
|
|
)
|
|
)
|
|
0
|
|
(none)
|
|
)
|
|
|
|
;; definition for function set-hud-aspect-ratio
|
|
;; INFO: Return type mismatch int vs none.
|
|
(defun set-hud-aspect-ratio ((arg0 symbol) (arg1 symbol))
|
|
(let ((gp-0 (= arg0 'aspect16x9))
|
|
(s5-0 (= arg1 'pal))
|
|
)
|
|
(when *target*
|
|
(dotimes (s4-0 9)
|
|
(if (-> *hud-parts* parts s4-0)
|
|
(set-pos-and-scale (-> (the-as (pointer hud) (-> *hud-parts* parts s4-0)) 0) gp-0 s5-0)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
0
|
|
(none)
|
|
)
|
|
|
|
;; definition for function hud-hidden?
|
|
(defun hud-hidden? ()
|
|
(local-vars (gp-0 symbol))
|
|
(cond
|
|
(*target*
|
|
(set! gp-0 #t)
|
|
(dotimes (s5-0 9)
|
|
(when (-> *hud-parts* parts s5-0)
|
|
(if (not (hidden? (-> (the-as (pointer hud) (-> *hud-parts* parts s5-0)) 0)))
|
|
(set! gp-0 #f)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
(else
|
|
(set! gp-0 #t)
|
|
)
|
|
)
|
|
gp-0
|
|
)
|
|
|
|
;; definition for function bottom-hud-hidden?
|
|
(defun bottom-hud-hidden? ()
|
|
(local-vars (gp-0 symbol))
|
|
(cond
|
|
(*target*
|
|
(set! gp-0 #t)
|
|
(dotimes (s5-0 4)
|
|
(when (-> *hud-parts* parts (+ s5-0 4))
|
|
(if (not (hidden? (-> (the-as (pointer hud) (-> *hud-parts* parts (+ s5-0 4))) 0)))
|
|
(set! gp-0 #f)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
(else
|
|
(set! gp-0 #t)
|
|
)
|
|
)
|
|
gp-0
|
|
)
|
|
|
|
;; definition for function activate-orb-all
|
|
(defun activate-orb-all ((arg0 int))
|
|
(if (not (-> *hud-parts* money-all))
|
|
(set! (-> *hud-parts* money-all) (process-spawn hud-money-all :init hud-init-by-other arg0 :to *target*))
|
|
)
|
|
0
|
|
)
|
|
|
|
;; definition for function convert-to-hud-object
|
|
;; INFO: Return type mismatch int vs none.
|
|
(defbehavior convert-to-hud-object process-drawable ((arg0 process-drawable) (arg1 hud))
|
|
(when arg1
|
|
(logclear! (-> arg0 mask) (process-mask actor-pause))
|
|
(let ((s4-0 (new 'stack-no-clear 'vector)))
|
|
(transform-point-vector-scale! s4-0 (-> arg0 root trans))
|
|
(set! (-> arg0 root trans x) (+ -2048.0 (-> s4-0 x)))
|
|
(set! (-> arg0 root trans y) (* 2.0 (+ -2048.0 (-> s4-0 y))))
|
|
)
|
|
(set! (-> arg0 root trans z) 9999999.0)
|
|
(set! (-> arg0 root trans w) 1.0)
|
|
(set-vector! (-> arg0 root scale) (get-icon-scale-x arg1) (get-icon-scale-y arg1) (get-icon-scale-x arg1) 1.0)
|
|
(set! (-> arg0 draw dma-add-func) dma-add-process-drawable-hud)
|
|
(go hud-collecting (process->handle arg1))
|
|
)
|
|
0
|
|
(none)
|
|
)
|