;;-*-Lisp-*- (in-package goal) ;; name: hud-classes.gc ;; name in dgo: hud-classes ;; dgos: GAME, ENGINE ;; DECOMP BEGINS (set! (-> *part-group-id-table* 75) (new 'static 'sparticle-launch-group :length 11 :duration #xbb8 :linger-duration #x5dc :flags (sp-group-flag screen-space) :name "group-part-hud-pickup" :launcher (new 'static 'inline-array sparticle-group-item 11 (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.0) :flags (start-dead)) (sp-item 307 :fade-after (meters 40.0) :flags (start-dead)) (sp-item 307 :fade-after (meters 40.0) :flags (start-dead)) (sp-item 307 :fade-after (meters 40.0) :flags (start-dead)) ) :bounds (new 'static 'sphere :w 8192.0) ) ) (set! (-> *part-id-table* 303) (new 'static 'sparticle-launcher :init-specs (new 'static 'inline-array sp-field-init-spec 10 (sp-tex spt-texture (new 'static 'texture-id :index #x12 :page #x2)) (sp-flt spt-num 1.0) (sp-flt spt-scale-x (meters 0.5)) (sp-copy-from-other spt-scale-y -4) (sp-rnd-flt spt-r 32.0 92.0 1.0) (sp-rnd-flt spt-g 128.0 128.0 1.0) (sp-flt spt-a 0.0) (sp-int spt-timer -1) (sp-cpuinfo-flags bit3 bit9) (sp-end) ) ) ) (set! (-> *part-id-table* 304) (new 'static 'sparticle-launcher :init-specs (new 'static 'inline-array sp-field-init-spec 18 (sp-tex spt-texture (new 'static 'texture-id :page #x2)) (sp-flt spt-num 1.0) (sp-rnd-flt spt-y (meters 0.0) (meters 16.0) 1.0) (sp-flt spt-z 122.88) (sp-flt spt-scale-x (meters 2.5)) (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 32.0 92.0 1.0) (sp-rnd-flt spt-g 128.0 128.0 1.0) (sp-flt spt-a 24.0) (sp-rnd-flt spt-omega 0.0 65536.0 1.0) (sp-rnd-flt spt-vel-x (meters 0.026666667) (meters 0.026666667) 1.0) (sp-flt spt-vel-y (meters 0.0014814815)) (sp-flt spt-vel-z (meters 0.0)) (sp-flt spt-rotvel-z (degrees 0.2)) (sp-int spt-timer -1) (sp-cpuinfo-flags bit7 bit9) (sp-end) ) ) ) (set! (-> *part-id-table* 305) (new 'static 'sparticle-launcher :init-specs (new 'static 'inline-array sp-field-init-spec 18 (sp-tex spt-texture (new 'static 'texture-id :page #x2)) (sp-flt spt-num 3.0) (sp-rnd-flt spt-y (meters 0.0) (meters 16.0) 1.0) (sp-flt spt-z 266.24) (sp-rnd-flt spt-scale-x (meters 1.5) (meters 0.4) 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 32.0 92.0 1.0) (sp-rnd-flt spt-g 128.0 128.0 1.0) (sp-flt spt-a 24.0) (sp-rnd-flt spt-omega 0.0 65536.0 1.0) (sp-rnd-flt spt-vel-x (meters 0.017777778) (meters 0.017777778) 1.0) (sp-flt spt-vel-y (meters 0.0)) (sp-flt spt-vel-z (meters 0.0)) (sp-rnd-int-flt spt-rotvel-z (degrees -0.4) 1 145.63556) (sp-int spt-timer -1) (sp-cpuinfo-flags bit3 bit7 bit9) (sp-end) ) ) ) (set! (-> *part-id-table* 306) (new 'static 'sparticle-launcher :init-specs (new 'static 'inline-array sp-field-init-spec 16 (sp-tex spt-texture (new 'static 'texture-id :index #xf :page #x2)) (sp-flt spt-num 1.0) (sp-rnd-flt spt-y (meters 0.0) (meters 16.0) 1.0) (sp-flt spt-z 491.52) (sp-flt spt-scale-x (meters 0.4)) (sp-copy-from-other spt-scale-y -4) (sp-flt spt-r 128.0) (sp-flt spt-g 255.0) (sp-flt spt-a 24.0) (sp-rnd-flt spt-omega 0.0 65536.0 1.0) (sp-rnd-flt spt-vel-x (meters 0.053333335) (meters 0.053333335) 1.0) (sp-flt spt-vel-y (meters 0.0)) (sp-flt spt-vel-z (meters 0.0)) (sp-int spt-timer -1) (sp-cpuinfo-flags bit2 bit3 bit7 bit9) (sp-end) ) ) ) (set! (-> *part-id-table* 307) (new 'static 'sparticle-launcher :init-specs (new 'static 'inline-array sp-field-init-spec 17 (sp-tex spt-texture (new 'static 'texture-id :index #xf :page #x2)) (sp-flt spt-num 0.25) (sp-flt spt-scale-x (meters 0.35)) (sp-copy-from-other spt-scale-y -4) (sp-flt spt-r 255.0) (sp-flt spt-g 255.0) (sp-flt spt-b 0.0) (sp-flt spt-a 96.0) (sp-flt spt-scalevel-x (meters -0.0012500001)) (sp-copy-from-other spt-scalevel-y -4) (sp-flt spt-fade-r -2.125) (sp-flt spt-accel-y -0.08192) (sp-int-plain-rnd spt-timer 30 239 1) (sp-cpuinfo-flags bit2 bit9) (sp-int spt-next-time 120) (sp-launcher-by-id spt-next-launcher 308) (sp-end) ) ) ) (set! (-> *part-id-table* 308) (new 'static 'sparticle-launcher :init-specs (new 'static 'inline-array sp-field-init-spec 2 (sp-flt spt-fade-r 0.0) (sp-end) ) ) ) (deftype hud-pickups (hud) () :heap-base #xb0 :method-count-assert 27 :size-assert #x118 :flag-assert #x1b00b00118 ) (defmethod dummy-15 hud-pickups ((obj hud-pickups)) (let ((t9-0 (method-of-type hud dummy-15))) (t9-0 obj) ) (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" (-> obj value)) (s4-0 *temp-string* s5-0 (+ (-> obj text-x) (* (-> obj x-sgn) (-> obj offset))) (/ (* (+ (-> obj text-y) (* (-> obj y-sgn) (-> obj offset)) (-> obj y-offset)) (the int (-> *video-parms* relative-y-scale)) ) 2 ) (font-color bright-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-draw0) gp-0 (the-as (pointer dma-tag) a3-7) ) ) ) 0 (none) ) (defmethod TODO-RENAME-19 hud-pickups ((obj hud-pickups)) (if *target* (TODO-RENAME-16 obj (the int (+ 0.5 (-> *target* fact-info-target eco-pill))) 0 ) ) 0 (none) ) (defmethod init-particles! hud-pickups ((obj hud-pickups) (arg0 int)) (when (< (-> obj nb-of-particles) (-> obj max-nb-of-particles)) (let ((s5-0 (-> obj nb-of-particles))) (set! (-> obj particles s5-0) (new 'static 'hud-particle)) (set! (-> obj particles s5-0 part) (create-launch-control (-> *part-group-id-table* 75) obj) ) (set! (-> obj particles s5-0 init-pos x) 110.0) (set! (-> obj particles s5-0 init-pos y) 55.0) (set! (-> obj particles s5-0 init-pos z) 1.0) (set! (-> obj particles s5-0 part matrix) -1) ) (+! (-> obj nb-of-particles) 1) ) (dotimes (s5-1 (-> obj nb-of-particles)) (if (= (-> obj particles s5-1 part matrix) -1) (set! (-> obj particles s5-1 part matrix) (sprite-allocate-user-hvdf)) ) ) (set! (-> obj text-x) 118) (set! (-> obj text-y) 45) (set! (-> obj x-sgn) -1) (set! (-> obj y-sgn) -1) (set! (-> obj friend) 3) 0 (none) ) (set! (-> *part-group-id-table* 76) (new 'static 'sparticle-launch-group :length 1 :duration #xbb8 :linger-duration #x5dc :flags (sp-group-flag screen-space) :name "group-part-hud-health-1" :launcher (new 'static 'inline-array sparticle-group-item 1 (sp-item 309 :flags (launch-asap)) ) :bounds (new 'static 'sphere :w 409600.0) ) ) (set! (-> *part-group-id-table* 77) (new 'static 'sparticle-launch-group :length 1 :duration #xbb8 :linger-duration #x5dc :flags (sp-group-flag screen-space) :name "group-part-hud-health-2" :launcher (new 'static 'inline-array sparticle-group-item 1 (sp-item 310 :flags (launch-asap)) ) :bounds (new 'static 'sphere :w 409600.0) ) ) (set! (-> *part-group-id-table* 78) (new 'static 'sparticle-launch-group :length 1 :duration #xbb8 :linger-duration #x5dc :flags (sp-group-flag screen-space) :name "group-part-hud-health-3" :launcher (new 'static 'inline-array sparticle-group-item 1 (sp-item 311 :flags (launch-asap)) ) :bounds (new 'static 'sphere :w 409600.0) ) ) (set! (-> *part-id-table* 309) (new 'static 'sparticle-launcher :init-specs (new 'static 'inline-array sp-field-init-spec 12 (sp-tex spt-texture (new 'static 'texture-id :index #x2d :page #x2)) (sp-flt spt-num 1.0) (sp-flt spt-scale-x (meters 1.7)) (sp-copy-from-other spt-scale-y -4) (sp-flt spt-r 128.0) (sp-flt spt-g 128.0) (sp-flt spt-b 128.0) (sp-flt spt-a 128.0) (sp-int spt-timer -1) (sp-cpuinfo-flags bit2 bit9) (sp-func spt-func 'part-hud-health-01-func) (sp-end) ) ) ) (set! (-> *part-id-table* 310) (new 'static 'sparticle-launcher :init-specs (new 'static 'inline-array sp-field-init-spec 12 (sp-tex spt-texture (new 'static 'texture-id :index #x2e :page #x2)) (sp-flt spt-num 1.0) (sp-flt spt-scale-x (meters 1.7)) (sp-copy-from-other spt-scale-y -4) (sp-flt spt-r 128.0) (sp-flt spt-g 128.0) (sp-flt spt-b 128.0) (sp-flt spt-a 128.0) (sp-int spt-timer -1) (sp-cpuinfo-flags bit2 bit9) (sp-func spt-func 'part-hud-health-03-func) (sp-end) ) ) ) (set! (-> *part-id-table* 311) (new 'static 'sparticle-launcher :init-specs (new 'static 'inline-array sp-field-init-spec 12 (sp-tex spt-texture (new 'static 'texture-id :index #x2f :page #x2)) (sp-flt spt-num 1.0) (sp-flt spt-scale-x (meters 1.7)) (sp-copy-from-other spt-scale-y -4) (sp-flt spt-r 128.0) (sp-flt spt-g 128.0) (sp-flt spt-b 128.0) (sp-flt spt-a 128.0) (sp-int spt-timer -1) (sp-cpuinfo-flags bit2 bit9) (sp-func spt-func 'part-hud-health-02-func) (sp-end) ) ) ) (deftype hud-health (hud) ((scale float :offset-assert 280) ) :heap-base #xb0 :method-count-assert 27 :size-assert #x11c :flag-assert #x1b00b0011c ) (defun part-hud-health-01-func ((arg0 basic) (arg1 basic) (arg2 hud-particle)) (let ((f0-0 (-> *hud-parts* health 0 scale))) (set! (-> arg2 init-pos x) f0-0) (set! (-> arg2 pos x) f0-0) ) (cond ((and *target* (< (-> *target* fact-info-target health) 1.0)) (set! (-> arg2 prev-pos x) 32.0) ) (else (let ((f0-3 128.0)) (when (and *target* (= (-> *target* fact-info-target health) 1.0)) (let ((v1-16 (logand (-> *display* integral-frame-counter) 7))) (set! f0-3 (if (zero? (logand (-> *display* integral-frame-counter) 8)) (+ 128.0 (* 18.142857 (the float v1-16))) (- 255.0 (* 18.142857 (the float v1-16))) ) ) ) ) (set! (-> arg2 pos y) f0-3) (set! (-> arg2 pos z) f0-3) (set! (-> arg2 pos w) f0-3) ) (set! (-> arg2 prev-pos x) 128.0) ) ) 0 (none) ) (defun part-hud-health-02-func ((arg0 basic) (arg1 basic) (arg2 hud-particle)) (let ((f0-0 (-> *hud-parts* health 0 scale))) (set! (-> arg2 init-pos x) f0-0) (set! (-> arg2 pos x) f0-0) ) (if (and *target* (< (-> *target* fact-info-target health) 2.0)) (set! (-> arg2 prev-pos x) 32.0) (set! (-> arg2 prev-pos x) 128.0) ) 0 (none) ) (defun part-hud-health-03-func ((arg0 basic) (arg1 basic) (arg2 hud-particle)) (let ((f0-0 (-> *hud-parts* health 0 scale))) (set! (-> arg2 init-pos x) f0-0) (set! (-> arg2 pos x) f0-0) ) (if (and *target* (< (-> *target* fact-info-target health) 3.0)) (set! (-> arg2 prev-pos x) 32.0) (set! (-> arg2 prev-pos x) 128.0) ) 0 (none) ) (defmethod dummy-15 hud-health ((obj hud-health)) ((method-of-type hud dummy-15) obj) 0 (none) ) (defmethod TODO-RENAME-19 hud-health ((obj hud-health)) (if *target* (TODO-RENAME-16 obj (the int (-> *target* fact-info-target health)) (the-as int (-> *target* fact-info-target health-pickup-time)) ) ) 0 (none) ) (defmethod init-particles! hud-health ((obj hud-health) (arg0 int)) (when (< (-> obj nb-of-particles) (-> obj max-nb-of-particles)) (let ((s5-0 (-> obj nb-of-particles))) (set! (-> obj particles s5-0) (new 'static 'hud-particle)) (set! (-> obj particles s5-0 part) (create-launch-control (-> *part-group-id-table* 76) obj) ) (set! (-> obj particles s5-0 init-pos x) 61.0) (set! (-> obj particles s5-0 init-pos y) 55.0) (set! (-> obj particles s5-0 init-pos z) 5.0) (set! (-> obj particles s5-0 part matrix) -1) ) (+! (-> obj nb-of-particles) 1) ) (when (< (-> obj nb-of-particles) (-> obj max-nb-of-particles)) (let ((s5-1 (-> obj nb-of-particles))) (set! (-> obj particles s5-1) (new 'static 'hud-particle)) (set! (-> obj particles s5-1 part) (create-launch-control (-> *part-group-id-table* 77) obj) ) (set! (-> obj particles s5-1 init-pos x) 98.0) (set! (-> obj particles s5-1 init-pos y) 55.0) (set! (-> obj particles s5-1 init-pos z) 5.0) (set! (-> obj particles s5-1 part matrix) -1) ) (+! (-> obj nb-of-particles) 1) ) (when (< (-> obj nb-of-particles) (-> obj max-nb-of-particles)) (let ((s5-2 (-> obj nb-of-particles))) (set! (-> obj particles s5-2) (new 'static 'hud-particle)) (set! (-> obj particles s5-2 part) (create-launch-control (-> *part-group-id-table* 78) obj) ) (set! (-> obj particles s5-2 init-pos x) 70.0) (set! (-> obj particles s5-2 init-pos y) 76.0) (set! (-> obj particles s5-2 init-pos z) 5.0) (set! (-> obj particles s5-2 part matrix) -1) ) (+! (-> obj nb-of-particles) 1) ) (dotimes (s5-3 (-> obj nb-of-particles)) (if (= (-> obj particles s5-3 part matrix) -1) (set! (-> obj particles s5-3 part matrix) (sprite-allocate-user-hvdf)) ) ) (animate! obj (= (get-aspect-ratio) 'aspect16x9) (= (get-video-mode) 'pal)) (set! (-> obj x-sgn) -1) (set! (-> obj y-sgn) -1) (set! (-> obj friend) 0) 0 (none) ) (defmethod animate! hud-health ((obj hud-health) (arg0 symbol) (arg1 symbol)) (cond (arg0 (set! (-> obj particles 0 init-pos x) 65.0) (set! (-> obj particles 0 init-pos y) 55.0) (set! (-> obj particles 1 init-pos x) 98.0) (set! (-> obj particles 1 init-pos y) 55.0) (set! (-> obj particles 2 init-pos x) 73.0) (set! (-> obj particles 2 init-pos y) 80.0) (set! (-> obj scale) 6144.0) ) (else (set! (-> obj particles 0 init-pos x) 61.0) (set! (-> obj particles 0 init-pos y) 55.0) (set! (-> obj particles 1 init-pos x) 98.0) (set! (-> obj particles 1 init-pos y) 55.0) (set! (-> obj particles 2 init-pos x) 70.0) (set! (-> obj particles 2 init-pos y) 76.0) (set! (-> obj scale) 6963.2) ) ) 0 (none) ) (set! (-> *part-group-id-table* 705) (new 'static 'sparticle-launch-group :length 1 :duration #xbb8 :linger-duration #x5dc :flags (sp-group-flag screen-space) :name "group-part-hud-orb-all" :launcher (new 'static 'inline-array sparticle-group-item 1 (sp-item 2964 :flags (launch-asap)) ) :bounds (new 'static 'sphere :w 409600.0) ) ) (set! (-> *part-id-table* 2964) (new 'static 'sparticle-launcher :init-specs (new 'static 'inline-array sp-field-init-spec 11 (sp-tex spt-texture (new 'static 'texture-id :index #x2c :page #x2)) (sp-flt spt-num 1.0) (sp-flt spt-scale-x (meters 2.4)) (sp-copy-from-other spt-scale-y -4) (sp-flt spt-r 128.0) (sp-flt spt-g 128.0) (sp-flt spt-b 128.0) (sp-flt spt-a 128.0) (sp-int spt-timer -1) (sp-cpuinfo-flags bit2 bit9) (sp-end) ) ) ) (deftype hud-money-all (hud) ((x-scale float :offset-assert 280) (y-scale float :offset-assert 284) (y-pos int32 :offset-assert 288) (total-orbs int32 :offset-assert 292) (level-index int32 :offset-assert 296) (start-time uint64 :offset-assert 304) ) :heap-base #xd0 :method-count-assert 27 :size-assert #x138 :flag-assert #x1b00d00138 ) (defmethod dummy-15 hud-money-all ((obj hud-money-all)) (let ((t9-0 (method-of-type hud dummy-15))) (t9-0 obj) ) 0 (let ((s5-0 0)) (when (>= (-> obj level-index) 0) (let ((s5-1 (new 'stack 'font-context *font-default-matrix* (+ (* (-> obj x-sgn) (-> obj offset)) -60 (-> obj text-x)) (+ (/ (* (+ (-> obj text-y) (* (-> obj y-sgn) (-> obj offset)) (-> obj y-offset) ) (the int (-> *video-parms* relative-y-scale)) ) 2 ) -17 ) 0.0 (font-color orange-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 left large)) (print-game-text (lookup-text! *common-text* (-> *level-task-data* (-> obj 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" (-> obj total-orbs) (-> obj total-orbs) ) (s2-0 *temp-string* s3-0 (+ (-> obj text-x) (* (-> obj x-sgn) (-> obj offset)) s1-0) (+ (/ (* (+ (-> obj text-y) (* (-> obj y-sgn) (-> obj offset)) (-> obj y-offset) ) (the int (-> *video-parms* relative-y-scale)) ) 2 ) s5-0 ) (font-color dark-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-draw0) s4-1 (the-as (pointer dma-tag) a3-12) ) ) ) ) 0 (none) ) (defmethod TODO-RENAME-19 hud-money-all ((obj hud-money-all)) (when *target* (hide-bottom-hud) (when (!= *master-mode* 'pause) (when (and (!= (-> obj icons 0) 0) (-> obj icons 0 icon)) (set! (-> obj icons 0 scale-x) (-> obj x-scale)) (set! (-> obj icons 0 scale-y) (-> obj y-scale)) (set! (-> obj icons 0 icon-y) (* (-> obj y-pos) (the int (-> *video-parms* relative-y-scale))) ) (let ((a0-6 (-> obj 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 (>= (+ (-> *display* base-frame-counter) -1500) (the-as int (-> obj start-time)) ) (set! (-> obj deactivate-when-hidden) #t) (TODO-RENAME-16 obj (-> *display* base-frame-counter) 0) ) ) 0 (none) ) (defmethod init-particles! hud-money-all ((obj hud-money-all) (arg0 int)) (when (< (-> obj nb-of-icons) 6) (let ((s4-0 (-> obj nb-of-icons))) (set! (-> obj icons s4-0) (new 'static 'hud-icon)) (let* ((s2-0 (get-process *default-dead-pool* manipy #x4000)) (s3-0 (when s2-0 (let ((t9-1 (method-of-type manipy activate))) (t9-1 (the-as manipy s2-0) obj 'manipy (the-as pointer #x70004000) ) ) (run-now-in-process s2-0 manipy-init (new 'static 'vector :w 1.0) #f *money-sg* #f ) (-> s2-0 ppointer) ) ) ) (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! (-> obj 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! (-> obj icons s4-0 icon-x) 170) (set! (-> obj icons s4-0 icon-y) 0) (set! (-> obj icons s4-0 icon-z) 0) (set! (-> obj icons s4-0 scale-x) 0.0095) (set! (-> obj icons s4-0 scale-y) -0.011) ) ) ) (+! (-> obj nb-of-icons) 1) ) (when (< (-> obj nb-of-particles) (-> obj max-nb-of-particles)) (let ((s4-1 (-> obj nb-of-particles))) (set! (-> obj particles s4-1) (new 'static 'hud-particle)) (set! (-> obj particles s4-1 part) (create-launch-control (-> *part-group-id-table* 705) obj) ) (set! (-> obj particles s4-1 init-pos x) 172.0) (set! (-> obj particles s4-1 init-pos y) 330.0) (set! (-> obj particles s4-1 init-pos z) 2.0) (set! (-> obj particles s4-1 part matrix) -1) ) (+! (-> obj nb-of-particles) 1) ) (animate! obj (= (get-aspect-ratio) 'aspect16x9) (= (get-video-mode) 'pal)) (dotimes (s4-3 (-> obj nb-of-particles)) (if (= (-> obj particles s4-3 part matrix) -1) (set! (-> obj particles s4-3 part matrix) (sprite-allocate-user-hvdf)) ) ) (set! (-> obj text-x) 251) (set! (-> obj text-y) 305) (set! (-> obj x-sgn) 0) (set! (-> obj 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) (game-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! (-> obj total-orbs) s4-4) (set! (-> obj total-orbs) s4-4) (set! (-> obj level-index) -1) ) ((begin (set! (-> obj total-orbs) s2-2) (< arg0 (length *level-task-data*)) ) (set! (-> obj level-index) arg0) ) (else (set! (-> obj level-index) -1) ) ) ) (set! (-> obj start-time) (the-as uint (-> *display* base-frame-counter))) (sound-play-by-name (static-sound-name "get-all-orbs") (new-sound-id) 1024 0 0 1 #t ) 0 (none) ) (defmethod animate! hud-money-all ((obj hud-money-all) (arg0 symbol) (arg1 symbol)) (cond (arg0 (set! (-> obj x-scale) 0.01845) (set! (-> obj y-scale) -0.02175) (set! (-> obj y-pos) (if arg1 374 373 ) ) ) (else (set! (-> obj x-scale) 0.013499999) (set! (-> obj y-scale) -0.01575) (set! (-> obj y-pos) 361) ) ) (when arg1 (set! (-> obj x-scale) (* 1.02 (-> obj x-scale))) (set! (-> obj y-scale) (* 1.2 (-> obj y-scale))) (set! (-> obj y-pos) (the int (* 1.21 (the float (-> obj y-pos))))) ) 0 (none) ) (set! (-> *part-group-id-table* 79) (new 'static 'sparticle-launch-group :length 1 :duration #xbb8 :linger-duration #x5dc :flags (sp-group-flag screen-space) :name "group-part-hud-orb" :launcher (new 'static 'inline-array sparticle-group-item 1 (sp-item 312 :flags (launch-asap)) ) :bounds (new 'static 'sphere :w 409600.0) ) ) (set! (-> *part-id-table* 312) (new 'static 'sparticle-launcher :init-specs (new 'static 'inline-array sp-field-init-spec 11 (sp-tex spt-texture (new 'static 'texture-id :index #x2c :page #x2)) (sp-flt spt-num 1.0) (sp-flt spt-scale-x (meters 1.6)) (sp-copy-from-other spt-scale-y -4) (sp-flt spt-r 128.0) (sp-flt spt-g 128.0) (sp-flt spt-b 128.0) (sp-flt spt-a 128.0) (sp-int spt-timer -1) (sp-cpuinfo-flags bit2 bit9) (sp-end) ) ) ) (deftype hud-money (hud) ((x-scale float :offset-assert 280) (y-scale float :offset-assert 284) (y-pos int32 :offset-assert 288) ) :heap-base #xc0 :method-count-assert 27 :size-assert #x124 :flag-assert #x1b00c00124 ) (defmethod dummy-15 hud-money ((obj hud-money)) (let ((t9-0 (method-of-type hud dummy-15))) (t9-0 obj) ) (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" (-> obj value)) (s4-0 *temp-string* s5-0 (+ (-> obj text-x) (* (-> obj x-sgn) (-> obj offset))) (/ (* (+ (-> obj text-y) (* (-> obj y-sgn) (-> obj offset)) (-> obj y-offset)) (the int (-> *video-parms* relative-y-scale)) ) 2 ) (font-color dark-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-draw0) gp-0 (the-as (pointer dma-tag) a3-7) ) ) ) 0 (none) ) (defmethod TODO-RENAME-19 hud-money ((obj hud-money)) (when *target* (when (!= *master-mode* 'pause) (when (and (!= (-> obj icons 0) 0) (-> obj icons 0 icon)) (set! (-> obj icons 0 scale-x) (-> obj x-scale)) (set! (-> obj icons 0 scale-y) (-> obj y-scale)) (set! (-> obj icons 0 icon-y) (* (-> obj y-pos) (the int (-> *video-parms* relative-y-scale))) ) (let ((a0-6 (-> obj 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)))) ) ) ) ) (TODO-RENAME-16 obj (the int (+ 0.5 (-> *target* game money))) 0) ) 0 (none) ) (defmethod init-particles! hud-money ((obj hud-money) (arg0 int)) (when (< (-> obj nb-of-icons) 6) (let ((s5-0 (-> obj nb-of-icons))) (set! (-> obj icons s5-0) (new 'static 'hud-icon)) (let* ((s3-0 (get-process *default-dead-pool* manipy #x4000)) (s4-0 (when s3-0 (let ((t9-1 (method-of-type manipy activate))) (t9-1 (the-as manipy s3-0) obj 'manipy (the-as pointer #x70004000) ) ) (run-now-in-process s3-0 manipy-init (new 'static 'vector :w 1.0) #f *money-sg* #f ) (-> s3-0 ppointer) ) ) ) (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! (-> obj 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! (-> obj icons s5-0 icon-x) 399) (set! (-> obj icons s5-0 icon-y) 79) (set! (-> obj icons s5-0 icon-z) 0) (set! (-> obj icons s5-0 scale-x) 0.0095) (set! (-> obj icons s5-0 scale-y) -0.011) ) ) ) (+! (-> obj nb-of-icons) 1) ) (when (< (-> obj nb-of-particles) (-> obj max-nb-of-particles)) (let ((s5-1 (-> obj nb-of-particles))) (set! (-> obj particles s5-1) (new 'static 'hud-particle)) (set! (-> obj particles s5-1 part) (create-launch-control (-> *part-group-id-table* 79) obj) ) (set! (-> obj particles s5-1 init-pos x) 400.0) (set! (-> obj particles s5-1 init-pos y) 58.0) (set! (-> obj particles s5-1 init-pos z) 2.0) (set! (-> obj particles s5-1 part matrix) -1) ) (+! (-> obj nb-of-particles) 1) ) (animate! obj (= (get-aspect-ratio) 'aspect16x9) (= (get-video-mode) 'pal)) (dotimes (s5-3 (-> obj nb-of-particles)) (if (= (-> obj particles s5-3 part matrix) -1) (set! (-> obj particles s5-3 part matrix) (sprite-allocate-user-hvdf)) ) ) (set! (-> obj text-x) 420) (set! (-> obj text-y) 45) (set! (-> obj x-sgn) 1) (set! (-> obj y-sgn) -1) (set! (-> obj increment-on-event) #t) 0 (none) ) (defmethod animate! hud-money ((obj hud-money) (arg0 symbol) (arg1 symbol)) (cond (arg0 (set! (-> obj x-scale) 0.0123) (set! (-> obj y-scale) -0.0145) (set! (-> obj y-pos) 86) ) (else (set! (-> obj x-scale) 0.0095) (set! (-> obj y-scale) -0.011) (set! (-> obj y-pos) 79) ) ) (when arg1 (set! (-> obj x-scale) (* 1.1 (-> obj x-scale))) (set! (-> obj y-scale) (* 1.2 (-> obj y-scale))) (set! (-> obj y-pos) (the int (* (the float (-> obj y-pos)) (if arg0 0.95 0.9 ) ) ) ) ) 0 (none) ) (defmethod first-icon-x hud-money ((obj hud-money)) (-> obj icons 0 icon-x) ) (defmethod first-icon-y hud-money ((obj hud-money)) (-> obj icons 0 icon-y) ) (defmethod inc-value hud-money ((obj hud-money)) 0.01 ) (defmethod dec-value hud-money ((obj hud-money)) -0.011 ) (defskelgroup *fuelcell-naked-sg* fuelcell-naked 0 2 ((1 (meters 999999))) :bounds (static-spherem 0 1 0 1.6) :longest-edge (meters 0) :texture-level 2 ) (set! (-> *part-id-table* 313) (new 'static 'sparticle-launcher :init-specs (new 'static 'inline-array sp-field-init-spec 13 (sp-tex spt-texture (new 'static 'texture-id :index #x31 :page #x2)) (sp-flt spt-num 1.0) (sp-flt spt-scale-x (meters 0.4)) (sp-copy-from-other spt-scale-y -4) (sp-flt spt-r 128.0) (sp-flt spt-g 128.0) (sp-flt spt-b 128.0) (sp-flt spt-a 128.0) (sp-int spt-timer -1) (sp-cpuinfo-flags bit9) (sp-flt spt-userdata 4.0) (sp-func spt-func 'fuel-cell-hud-orbit-callback) (sp-end) ) ) ) (set! (-> *part-id-table* 314) (new 'static 'sparticle-launcher :init-specs (new 'static 'inline-array sp-field-init-spec 13 (sp-tex spt-texture (new 'static 'texture-id :index #x31 :page #x2)) (sp-flt spt-num 1.0) (sp-flt spt-scale-x (meters 0.4)) (sp-copy-from-other spt-scale-y -4) (sp-flt spt-r 128.0) (sp-flt spt-g 128.0) (sp-flt spt-b 128.0) (sp-flt spt-a 128.0) (sp-int spt-timer -1) (sp-cpuinfo-flags bit9) (sp-flt spt-userdata 5.0) (sp-func spt-func 'fuel-cell-hud-orbit-callback) (sp-end) ) ) ) (set! (-> *part-id-table* 315) (new 'static 'sparticle-launcher :init-specs (new 'static 'inline-array sp-field-init-spec 13 (sp-tex spt-texture (new 'static 'texture-id :index #x31 :page #x2)) (sp-flt spt-num 1.0) (sp-flt spt-scale-x (meters 0.4)) (sp-copy-from-other spt-scale-y -4) (sp-flt spt-r 128.0) (sp-flt spt-g 128.0) (sp-flt spt-b 128.0) (sp-flt spt-a 128.0) (sp-int spt-timer -1) (sp-cpuinfo-flags bit9) (sp-flt spt-userdata 6.0) (sp-func spt-func 'fuel-cell-hud-orbit-callback) (sp-end) ) ) ) (set! (-> *part-id-table* 316) (new 'static 'sparticle-launcher :init-specs (new 'static 'inline-array sp-field-init-spec 13 (sp-tex spt-texture (new 'static 'texture-id :index #x31 :page #x2)) (sp-flt spt-num 1.0) (sp-flt spt-scale-x (meters 0.4)) (sp-copy-from-other spt-scale-y -4) (sp-flt spt-r 128.0) (sp-flt spt-g 128.0) (sp-flt spt-b 128.0) (sp-flt spt-a 128.0) (sp-int spt-timer -1) (sp-cpuinfo-flags bit9) (sp-flt spt-userdata 7.0) (sp-func spt-func 'fuel-cell-hud-orbit-callback) (sp-end) ) ) ) (set! (-> *part-id-table* 317) (new 'static 'sparticle-launcher :init-specs (new 'static 'inline-array sp-field-init-spec 13 (sp-tex spt-texture (new 'static 'texture-id :index #x31 :page #x2)) (sp-flt spt-num 1.0) (sp-flt spt-scale-x (meters 0.2)) (sp-copy-from-other spt-scale-y -4) (sp-flt spt-r 128.0) (sp-flt spt-g 128.0) (sp-flt spt-b 128.0) (sp-flt spt-a 128.0) (sp-int spt-timer -1) (sp-cpuinfo-flags bit9) (sp-flt spt-userdata 9.0) (sp-func spt-func 'fuel-cell-hud-orbit-callback) (sp-end) ) ) ) (set! (-> *part-id-table* 318) (new 'static 'sparticle-launcher :init-specs (new 'static 'inline-array sp-field-init-spec 12 (sp-tex spt-texture (new 'static 'texture-id :index #x30 :page #x2)) (sp-flt spt-num 1.0) (sp-flt spt-scale-x (meters 1.8)) (sp-copy-from-other spt-scale-y -4) (sp-flt spt-r 128.0) (sp-flt spt-g 128.0) (sp-flt spt-b 128.0) (sp-flt spt-a 128.0) (sp-int spt-timer -1) (sp-cpuinfo-flags bit2 bit9) (sp-func spt-func 'fuel-cell-hud-center-callback) (sp-end) ) ) ) (set! (-> *part-group-id-table* 80) (new 'static 'sparticle-launch-group :length 10 :duration #xbb8 :linger-duration #x5dc :flags (sp-group-flag use-local-clock screen-space) :name "group-part-hud-power-cell-whole" :launcher (new 'static 'inline-array sparticle-group-item 10 (sp-item 318 :flags (launch-asap)) (sp-item 319 :fade-after (meters 35.0)) (sp-item 320 :fade-after (meters 20.0)) (sp-item 321 :flags (launch-asap) :period 3600 :length 5) (sp-item 322 :flags (launch-asap) :period 3600 :length 5) (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)) ) :bounds (new 'static 'sphere :w 409600.0) ) ) (set! (-> *part-id-table* 323) (new 'static 'sparticle-launcher :init-specs (new 'static 'inline-array sp-field-init-spec 2 (sp-flt spt-fade-a -0.53333336) (sp-end) ) ) ) (set! (-> *part-id-table* 319) (new 'static 'sparticle-launcher :init-specs (new 'static 'inline-array sp-field-init-spec 20 (sp-tex spt-texture (new 'static 'texture-id :index #x2 :page #x2)) (sp-flt spt-num 0.5) (sp-flt spt-z 92160.0) (sp-rnd-flt spt-scale-x (meters 0.3) (meters 0.5) 1.0) (sp-int spt-rot-x 4) (sp-rnd-flt spt-rot-z (degrees 0.0) (degrees 360.0) 1.0) (sp-rnd-flt spt-scale-y (meters 0.1) (meters 0.8) 1.0) (sp-rnd-int spt-r 0 1 255.0) (sp-rnd-int spt-g 0 1 255.0) (sp-rnd-int spt-b 0 1 255.0) (sp-flt spt-a 0.0) (sp-flt spt-scalevel-x (meters 0.009765625)) (sp-rnd-flt spt-rotvel-z (degrees -0.15) (degrees 0.3) 1.0) (sp-flt spt-scalevel-y (meters 0.009765625)) (sp-flt spt-fade-a 0.35555556) (sp-int spt-timer -1) (sp-cpuinfo-flags bit2 bit3) (sp-int spt-next-time 90) (sp-launcher-by-id spt-next-launcher 232) (sp-end) ) ) ) (set! (-> *part-id-table* 320) (new 'static 'sparticle-launcher :init-specs (new 'static 'inline-array sp-field-init-spec 19 (sp-tex spt-texture (new 'static 'texture-id :index #x2 :page #x2)) (sp-flt spt-num 0.06) (sp-flt spt-z 92160.0) (sp-rnd-flt spt-scale-x (meters 1.5) (meters 0.5) 1.0) (sp-int spt-rot-x 4) (sp-rnd-flt spt-rot-z (degrees 0.0) (degrees 360.0) 1.0) (sp-flt spt-scale-y (meters 0.2)) (sp-rnd-int spt-r 0 1 255.0) (sp-rnd-int spt-g 0 1 255.0) (sp-rnd-int spt-b 0 1 255.0) (sp-flt spt-a 0.0) (sp-flt spt-scalevel-x (meters 0.009765625)) (sp-rnd-flt spt-rotvel-z (degrees -0.15) (degrees 0.3) 1.0) (sp-flt spt-fade-a 0.32) (sp-int spt-timer -1) (sp-cpuinfo-flags bit2 bit3) (sp-int spt-next-time 75) (sp-launcher-by-id spt-next-launcher 232) (sp-end) ) ) ) (set! (-> *part-id-table* 321) (new 'static 'sparticle-launcher :init-specs (new 'static 'inline-array sp-field-init-spec 15 (sp-tex spt-texture (new 'static 'texture-id :index #x12 :page #x2)) (sp-flt spt-num 1.0) (sp-flt spt-z 92160.0) (sp-flt spt-scale-x (meters 3.3)) (sp-flt spt-rot-z (degrees 0.0)) (sp-flt spt-scale-y (meters 2.8)) (sp-flt spt-r 192.0) (sp-flt spt-g 192.0) (sp-rnd-flt spt-b 0.0 128.0 1.0) (sp-flt spt-a 64.0) (sp-flt spt-rotvel-z (degrees -0.4)) (sp-int spt-timer -1) (sp-cpuinfo-flags bit2 bit3) (sp-func spt-func 'fuel-cell-hud-starburst-3-callback) (sp-end) ) ) ) (set! (-> *part-id-table* 322) (new 'static 'sparticle-launcher :init-specs (new 'static 'inline-array sp-field-init-spec 15 (sp-tex spt-texture (new 'static 'texture-id :index #x12 :page #x2)) (sp-flt spt-num 1.0) (sp-flt spt-z 92160.0) (sp-flt spt-scale-x (meters 3.8)) (sp-flt spt-rot-z (degrees 0.0)) (sp-flt spt-scale-y (meters 3.3)) (sp-flt spt-r 128.0) (sp-flt spt-g 128.0) (sp-flt spt-b 128.0) (sp-flt spt-a 64.0) (sp-flt spt-rotvel-z (degrees 0.3)) (sp-int spt-timer -1) (sp-cpuinfo-flags bit2 bit3) (sp-func spt-func 'fuel-cell-hud-starburst-4-callback) (sp-end) ) ) ) (deftype hud-fuel-cell (hud) ((scale-starburst-3-x float :offset-assert 280) (scale-starburst-3-y float :offset-assert 284) (scale-starburst-4-x float :offset-assert 288) (scale-starburst-4-y float :offset-assert 292) (scale-icon float :offset-assert 296) (scale-center float :offset-assert 300) (icon-pos-y int32 :offset-assert 304) ) :heap-base #xd0 :method-count-assert 27 :size-assert #x134 :flag-assert #x1b00d00134 ) (defmethod dummy-15 hud-fuel-cell ((obj hud-fuel-cell)) (let ((t9-0 (method-of-type hud dummy-15))) (t9-0 obj) ) (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" (-> obj value)) (s4-0 *temp-string* s5-0 (+ (-> obj text-x) (* (-> obj x-sgn) (-> obj offset))) (/ (* (+ (-> obj text-y) (* (-> obj y-sgn) (-> obj offset)) (-> obj y-offset)) (the int (-> *video-parms* relative-y-scale)) ) 2 ) (font-color dark-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-draw0) gp-0 (the-as (pointer dma-tag) a3-7) ) ) ) 0 (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) ) (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) ) (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) ) (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) ) (defmethod TODO-RENAME-19 hud-fuel-cell ((obj hud-fuel-cell)) (when *target* (when (!= *master-mode* 'pause) (let ((a0-2 (-> obj 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! (-> obj icons 0 icon-y) (-> obj icon-pos-y)) (TODO-RENAME-16 obj (the int (+ 0.5 (-> *target* game fuel))) 0) (let ((s5-1 (new 'stack-no-clear 'vector))) (vector<-cspace! s5-1 (-> obj icons 0 icon 0 node-list data 3)) (set! (-> obj particles 0 pos x) (-> s5-1 x)) (set! (-> obj particles 0 pos y) (* 0.5 (-> s5-1 y))) (set! (-> obj particles 0 pos z) (+ 2.0 (* 0.05 (+ -2048.0 (-> s5-1 z))))) ) ) 0 (none) ) (defmethod init-particles! hud-fuel-cell ((obj hud-fuel-cell) (arg0 int)) (when (< (-> obj nb-of-particles) (-> obj max-nb-of-particles)) (let ((s5-0 (-> obj nb-of-particles))) (set! (-> obj particles s5-0) (new 'static 'hud-particle)) (set! (-> obj particles s5-0 part) (create-launch-control (-> *part-group-id-table* 80) obj) ) (set! (-> obj particles s5-0 init-pos x) 256.0) (set! (-> obj particles s5-0 init-pos y) 224.0) (set! (-> obj particles s5-0 init-pos z) 1.0) (set! (-> obj particles s5-0 part matrix) -1) ) (+! (-> obj nb-of-particles) 1) ) (dotimes (s5-1 (-> obj nb-of-particles)) (if (= (-> obj particles s5-1 part matrix) -1) (set! (-> obj particles s5-1 part matrix) (sprite-allocate-user-hvdf)) ) ) (when (< (-> obj nb-of-icons) 6) (let ((s5-2 (-> obj nb-of-icons))) (set! (-> obj icons s5-2) (new 'static 'hud-icon)) (let* ((s3-0 (get-process *default-dead-pool* manipy #x4000)) (s4-0 (when s3-0 (let ((t9-3 (method-of-type manipy activate))) (t9-3 (the-as manipy s3-0) obj 'manipy (the-as pointer #x70004000) ) ) (run-now-in-process s3-0 manipy-init (new 'static 'vector :w 1.0) #f *fuelcell-naked-sg* #f ) (-> s3-0 ppointer) ) ) ) (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! (-> obj 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! (-> obj icons s5-2 icon-x) 256) (set! (-> obj icons s5-2 icon-y) 62) (set! (-> obj icons s5-2 icon-z) 0) (set! (-> obj icons s5-2 scale-x) 0.009) (set! (-> obj icons s5-2 scale-y) 0.009) ) ) ) (+! (-> obj nb-of-icons) 1) ) (set! (-> obj text-x) 276) (set! (-> obj text-y) 45) (set! (-> obj x-sgn) 0) (set! (-> obj y-sgn) -1) (set! (-> obj increment-on-event) #t) (set! (-> obj skip-particle) -2) (animate! obj (= (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*! (-> obj icons 0 icon 0 root quat) s5-4 (-> obj icons 0 icon 0 root quat) ) ) 0 (none) ) (defmethod animate! hud-fuel-cell ((obj hud-fuel-cell) (arg0 symbol) (arg1 symbol)) (cond (arg0 (set! (-> obj scale-starburst-3-x) 10240.0) (set! (-> obj scale-starburst-3-y) 9420.8) (set! (-> obj scale-starburst-4-x) 9420.8) (set! (-> obj scale-starburst-4-y) 8192.0) (set! (-> obj scale-icon) 0.007) (set! (-> obj scale-center) 6144.0) (set! (-> obj icon-pos-y) 62) ) (else (set! (-> obj scale-starburst-3-x) 12288.0) (set! (-> obj scale-starburst-3-y) 10240.0) (set! (-> obj scale-starburst-4-x) 12288.0) (set! (-> obj scale-starburst-4-y) 10240.0) (set! (-> obj scale-icon) 0.009) (set! (-> obj scale-center) 7372.8) (set! (-> obj icon-pos-y) 62) ) ) (if arg1 (set! (-> obj icon-pos-y) (the int (* (the float (-> obj icon-pos-y)) (if arg0 1.1 1.14 ) ) ) ) ) 0 (none) ) (set! (-> *part-group-id-table* 81) (new 'static 'sparticle-launch-group :length 2 :duration #xbb8 :linger-duration #x5dc :flags (sp-group-flag screen-space) :name "group-part-hud-buzzer" :launcher (new 'static 'inline-array sparticle-group-item 2 (sp-item 324 :flags (launch-asap) :binding 325) (sp-item 325 :flags (start-dead launch-asap)) ) :bounds (new 'static 'sphere :w 409600.0) ) ) (set! (-> *part-id-table* 324) (new 'static 'sparticle-launcher :init-specs (new 'static 'inline-array sp-field-init-spec 11 (sp-tex spt-texture (new 'static 'texture-id :index #x2a :page #x2)) (sp-flt spt-num 1.0) (sp-flt spt-scale-x (meters 2.2)) (sp-copy-from-other spt-scale-y -4) (sp-flt spt-r 128.0) (sp-flt spt-g 128.0) (sp-flt spt-b 128.0) (sp-flt spt-a 0.0) (sp-int spt-timer -1) (sp-cpuinfo-flags bit9) (sp-end) ) ) ) (set! (-> *part-id-table* 325) (new 'static 'sparticle-launcher :init-specs (new 'static 'inline-array sp-field-init-spec 18 (sp-tex spt-texture (new 'static 'texture-id :index #x2a :page #x2)) (sp-flt spt-num 1.0) (sp-flt spt-x (meters 0.0)) (sp-flt spt-y (meters 1.3333334)) (sp-flt spt-z 409.6) (sp-flt spt-scale-x (meters 1.8)) (sp-copy-from-other spt-scale-y -4) (sp-flt spt-r 128.0) (sp-flt spt-g 128.0) (sp-flt spt-b 128.0) (sp-flt spt-a 128.0) (sp-flt spt-omega 0.0) (sp-flt spt-vel-x (meters 0.053333335)) (sp-flt spt-vel-z (meters 0.0)) (sp-int spt-timer -1) (sp-cpuinfo-flags bit2 bit7 bit9) (sp-func spt-func 'part-hud-buzzer-func) (sp-end) ) ) ) (deftype hud-buzzers (hud) ((scale float :offset-assert 280) (text-y-offset int32 :offset-assert 284) ) :heap-base #xb0 :method-count-assert 27 :size-assert #x120 :flag-assert #x1b00b00120 ) (defun part-hud-buzzer-func ((arg0 basic) (arg1 basic) (arg2 hud-particle)) (let ((f0-0 (-> *hud-parts* buzzers 0 scale))) (set! (-> arg2 init-pos x) f0-0) (set! (-> arg2 pos x) f0-0) ) (none) ) (defmethod dummy-15 hud-buzzers ((obj hud-buzzers)) (let ((t9-0 (method-of-type hud dummy-15))) (t9-0 obj) ) (set! (-> obj text-y) (+ (if (nonzero? (-> obj next-y-offset)) (-> obj 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" (-> obj value)) (s3-0 *temp-string* s5-0 (+ (-> obj text-x) (* (-> obj x-sgn) (-> obj offset))) (/ (* (+ (-> obj text-y) (* (-> obj y-sgn) (-> obj offset)) (-> obj y-offset)) (the int (-> *video-parms* relative-y-scale)) ) 2 ) (font-color dark-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-draw0) gp-0 (the-as (pointer dma-tag) a3-7) ) ) ) 0 (none) ) (defmethod TODO-RENAME-19 hud-buzzers ((obj hud-buzzers)) (if *target* (TODO-RENAME-16 obj (the int (+ 0.5 (-> *target* fact-info-target buzzer))) 0 ) ) 0 (none) ) (defmethod init-particles! hud-buzzers ((obj hud-buzzers) (arg0 int)) (when (< (-> obj nb-of-particles) (-> obj max-nb-of-particles)) (let ((s5-0 (-> obj nb-of-particles))) (set! (-> obj particles s5-0) (new 'static 'hud-particle)) (set! (-> obj particles s5-0 part) (create-launch-control (-> *part-group-id-table* 81) obj) ) (set! (-> obj particles s5-0 init-pos x) 60.0) (set! (-> obj particles s5-0 init-pos y) 380.0) (set! (-> obj particles s5-0 init-pos z) 1.0) (set! (-> obj particles s5-0 part matrix) -1) ) (+! (-> obj nb-of-particles) 1) ) (dotimes (s5-1 (-> obj nb-of-particles)) (if (= (-> obj particles s5-1 part matrix) -1) (set! (-> obj particles s5-1 part matrix) (sprite-allocate-user-hvdf)) ) ) (animate! obj (= (get-aspect-ratio) 'aspect16x9) (= (get-video-mode) 'pal)) (set! (-> obj text-x) 85) (set! (-> obj text-y) 362) (set! (-> obj x-sgn) -1) (set! (-> obj y-sgn) 1) (set! (-> obj text-y-offset) 0) (set! (-> obj increment-on-event) #t) 0 (none) ) (defmethod first-icon-x hud-buzzers ((obj hud-buzzers)) (-> obj text-x) ) (defmethod first-icon-y hud-buzzers ((obj hud-buzzers)) (+ (if (= (-> *setting-control* current video-mode) 'pal) (+ (-> obj text-y) 120) (+ (-> obj text-y) 50) ) (-> obj next-y-offset) ) ) (defmethod inc-value hud-buzzers ((obj hud-buzzers)) 0.008 ) (defmethod dec-value hud-buzzers ((obj hud-buzzers)) -0.008 ) (defmethod animate! hud-buzzers ((obj hud-buzzers) (arg0 symbol) (arg1 symbol)) (cond (arg0 (set! (-> obj scale) 6553.6) (set! (-> obj text-y-offset) -40) ) (else (set! (-> obj scale) 7372.8) (set! (-> obj text-y-offset) 0) 0 ) ) 0 (none) ) (set! (-> *part-group-id-table* 82) (new 'static 'sparticle-launch-group :length 1 :duration #xbb8 :linger-duration #x5dc :flags (sp-group-flag screen-space) :name "group-part-hud-eco-timer" :launcher (new 'static 'inline-array sparticle-group-item 1 (sp-item 327 :flags (launch-asap)) ) :bounds (new 'static 'sphere :w 409600.0) ) ) (set! (-> *part-group-id-table* 83) (new 'static 'sparticle-launch-group :length 1 :duration #xbb8 :linger-duration #x5dc :flags (sp-group-flag screen-space) :name "group-part-hud-eco-timer-backing" :launcher (new 'static 'inline-array sparticle-group-item 1 (sp-item 328 :flags (launch-asap)) ) :bounds (new 'static 'sphere :w 409600.0) ) ) (set! (-> *part-id-table* 327) (new 'static 'sparticle-launcher :init-specs (new 'static 'inline-array sp-field-init-spec 12 (sp-tex spt-texture (new 'static 'texture-id :index #x2b :page #x2)) (sp-flt spt-num 1.0) (sp-flt spt-scale-x (meters 3.2)) (sp-copy-from-other spt-scale-y -4) (sp-flt spt-r 128.0) (sp-flt spt-g 128.0) (sp-flt spt-b 128.0) (sp-flt spt-a 128.0) (sp-int spt-timer -1) (sp-cpuinfo-flags bit2 bit9) (sp-func spt-func 'part-hud-eco-timer-func) (sp-end) ) ) ) (set! (-> *part-id-table* 328) (new 'static 'sparticle-launcher :init-specs (new 'static 'inline-array sp-field-init-spec 12 (sp-tex spt-texture (new 'static 'texture-id :index #x3 :page #x2)) (sp-flt spt-num 1.0) (sp-flt spt-scale-x (meters 2.5)) (sp-copy-from-other spt-scale-y -4) (sp-flt spt-r 128.0) (sp-flt spt-g 100.0) (sp-flt spt-b 63.0) (sp-flt spt-a 64.0) (sp-int spt-timer -1) (sp-cpuinfo-flags bit2 bit9) (sp-func spt-func 'part-hud-eco-timer-backing-func) (sp-end) ) ) ) (set! (-> *part-group-id-table* 84) (new 'static 'sparticle-launch-group :length 3 :duration #xbb8 :linger-duration #x5dc :flags (sp-group-flag use-local-clock screen-space) :name "group-part-hud-timer-blue" :launcher (new 'static 'inline-array sparticle-group-item 3 (sp-item 329 :flags (launch-asap)) (sp-item 330 :flags (launch-asap)) (sp-item 331 :flags (launch-asap)) ) :bounds (new 'static 'sphere :w 409600.0) ) ) (set! (-> *part-id-table* 329) (new 'static 'sparticle-launcher :init-specs (new 'static 'inline-array sp-field-init-spec 12 (sp-tex spt-texture (new 'static 'texture-id :index #x32 :page #x2)) (sp-flt spt-num 1.0) (sp-flt spt-scale-x (meters 2.0)) (sp-copy-from-other spt-scale-y -4) (sp-flt spt-r 0.0) (sp-flt spt-g 32.0) (sp-flt spt-b 128.0) (sp-flt spt-a 128.0) (sp-int spt-timer -1) (sp-cpuinfo-flags bit2 bit9) (sp-func spt-func 'part-hud-eco-timer-01-func) (sp-end) ) ) ) (set! (-> *part-id-table* 330) (new 'static 'sparticle-launcher :init-specs (new 'static 'inline-array sp-field-init-spec 12 (sp-tex spt-texture (new 'static 'texture-id :index #x32 :page #x2)) (sp-flt spt-num 1.0) (sp-flt spt-scale-x (meters 2.0)) (sp-copy-from-other spt-scale-y -4) (sp-flt spt-r 0.0) (sp-flt spt-g 32.0) (sp-flt spt-b 128.0) (sp-flt spt-a 128.0) (sp-int spt-timer -1) (sp-cpuinfo-flags bit2 bit9) (sp-func spt-func 'part-hud-eco-timer-02-func) (sp-end) ) ) ) (set! (-> *part-id-table* 331) (new 'static 'sparticle-launcher :init-specs (new 'static 'inline-array sp-field-init-spec 12 (sp-tex spt-texture (new 'static 'texture-id :index #x32 :page #x2)) (sp-flt spt-num 1.0) (sp-flt spt-scale-x (meters 2.0)) (sp-copy-from-other spt-scale-y -4) (sp-flt spt-r 0.0) (sp-flt spt-g 32.0) (sp-flt spt-b 128.0) (sp-flt spt-a 128.0) (sp-int spt-timer -1) (sp-cpuinfo-flags bit2 bit9) (sp-func spt-func 'part-hud-eco-timer-03-func) (sp-end) ) ) ) (deftype hud-power (hud) ((scale-timer float :offset-assert 280) (scale-backing float :offset-assert 284) (scale-blue float :offset-assert 288) ) :heap-base #xc0 :method-count-assert 27 :size-assert #x124 :flag-assert #x1b00c00124 ) (defun calculate-rotation-and-color-for-slice ((arg0 int) (arg1 float) (arg2 int) (arg3 int) (arg4 int) (arg5 hud-particle)) (cond ((>= 0.0 arg1) (set! (-> arg5 init-pos w) -16566.045) ) (else (let ((v1-1 arg0)) (cond ((zero? v1-1) (if (< 1.0 arg1) (set! (-> arg5 init-pos w) 910.2222) (set! (-> arg5 init-pos w) (* 182.04445 (+ 5.0 (* 263.0 (- 1.0 arg1))))) ) ) ((= v1-1 1) (if (< 0.6666667 arg1) (set! (-> arg5 init-pos w) 17294.223) (set! (-> arg5 init-pos w) (* 182.04445 (+ 95.0 (* 173.0 (- 1.0 (* 1.5 arg1))))) ) ) ) ((= v1-1 2) (if (< 0.33333334 arg1) (set! (-> arg5 init-pos w) 33678.223) (set! (-> arg5 init-pos w) (* 182.04445 (+ 185.0 (* 83.0 (- 1.0 (* 3.0 arg1))))) ) ) ) ) ) ) ) (if (and (< 0.0 arg1) (and (< arg1 0.2) (zero? (logand (-> *display* integral-frame-counter) 4))) ) (set! arg3 (* arg3 2)) ) (set! (-> arg5 pos y) (the float arg2)) (set! (-> arg5 pos z) (the float arg3)) (set! (-> arg5 pos w) (the float arg4)) 0 (none) ) (defun part-hud-eco-timer-01-func ((arg0 basic) (arg1 basic) (arg2 hud-particle)) (let ((f0-2 (/ (the float (the-as uint (- (-> *target* fact-info-target eco-timeout) (the-as uint (- (-> *display* game-frame-counter) (the-as int (-> *target* fact-info-target 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-info-target eco-type) ((1) (set! a2-1 128) (set! a3-0 96) (set! t0-0 0) ) ((2) (set! a2-1 128) (set! a3-0 32) (set! t0-0 0) ) ((4) (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 init-pos x) f0-3) (set! (-> arg2 pos x) f0-3) ) 0 (none) ) (defun part-hud-eco-timer-02-func ((arg0 basic) (arg1 basic) (arg2 hud-particle)) (let ((f0-2 (/ (the float (the-as uint (- (-> *target* fact-info-target eco-timeout) (the-as uint (- (-> *display* game-frame-counter) (the-as int (-> *target* fact-info-target 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-info-target eco-type) ((1) (set! a2-1 128) (set! a3-0 96) (set! t0-0 0) ) ((2) (set! a2-1 128) (set! a3-0 32) (set! t0-0 0) ) ((4) (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 init-pos x) f0-3) (set! (-> arg2 pos x) f0-3) ) 0 (none) ) (defun part-hud-eco-timer-03-func ((arg0 basic) (arg1 basic) (arg2 hud-particle)) (let ((f0-2 (/ (the float (the-as uint (- (-> *target* fact-info-target eco-timeout) (the-as uint (- (-> *display* game-frame-counter) (the-as int (-> *target* fact-info-target 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-info-target eco-type) ((1) (set! a2-1 128) (set! a3-0 96) (set! t0-0 0) ) ((2) (set! a2-1 128) (set! a3-0 32) (set! t0-0 0) ) ((4) (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 init-pos x) f0-3) (set! (-> arg2 pos x) f0-3) ) 0 (none) ) (defun part-hud-eco-timer-backing-func ((arg0 basic) (arg1 basic) (arg2 hud-particle)) (let ((f0-0 (-> *hud-parts* power 0 scale-backing))) (set! (-> arg2 init-pos x) f0-0) (set! (-> arg2 pos x) f0-0) ) 0 (none) ) (defun part-hud-eco-timer-func ((arg0 basic) (arg1 basic) (arg2 hud-particle)) (let ((f0-0 (-> *hud-parts* power 0 scale-timer))) (set! (-> arg2 init-pos x) f0-0) (set! (-> arg2 pos x) f0-0) ) 0 (none) ) (defmethod TODO-RENAME-19 hud-power ((obj hud-power)) (if *target* (TODO-RENAME-16 obj (max 0 (min (the-as int (- (-> *target* fact-info-target eco-timeout) (the-as uint (- (-> *display* game-frame-counter) (the-as int (-> *target* fact-info-target eco-pickup-time)) ) ) ) ) (the-as int (-> *target* fact-info-target eco-timeout)) ) ) (the-as int (-> *target* fact-info-target eco-timeout)) ) ) 0 (none) ) (defmethod init-particles! hud-power ((obj hud-power) (arg0 int)) (when (< (-> obj nb-of-particles) (-> obj max-nb-of-particles)) (let ((s5-0 (-> obj nb-of-particles))) (set! (-> obj particles s5-0) (new 'static 'hud-particle)) (set! (-> obj particles s5-0 part) (create-launch-control (-> *part-group-id-table* 83) obj) ) (set! (-> obj particles s5-0 init-pos x) 435.0) (set! (-> obj particles s5-0 init-pos y) 370.0) (set! (-> obj particles s5-0 init-pos z) 10.0) (set! (-> obj particles s5-0 part matrix) -1) ) (+! (-> obj nb-of-particles) 1) ) (when (< (-> obj nb-of-particles) (-> obj max-nb-of-particles)) (let ((s5-1 (-> obj nb-of-particles))) (set! (-> obj particles s5-1) (new 'static 'hud-particle)) (set! (-> obj particles s5-1 part) (create-launch-control (-> *part-group-id-table* 84) obj) ) (set! (-> obj particles s5-1 init-pos x) 432.0) (set! (-> obj particles s5-1 init-pos y) 368.0) (set! (-> obj particles s5-1 init-pos z) 3.0) (set! (-> obj particles s5-1 part matrix) -1) ) (+! (-> obj nb-of-particles) 1) ) (when (< (-> obj nb-of-particles) (-> obj max-nb-of-particles)) (let ((s5-2 (-> obj nb-of-particles))) (set! (-> obj particles s5-2) (new 'static 'hud-particle)) (set! (-> obj particles s5-2 part) (create-launch-control (-> *part-group-id-table* 82) obj) ) (set! (-> obj particles s5-2 init-pos x) 435.0) (set! (-> obj particles s5-2 init-pos y) 370.0) (set! (-> obj particles s5-2 init-pos z) 2.0) (set! (-> obj particles s5-2 part matrix) -1) ) (+! (-> obj nb-of-particles) 1) ) (dotimes (s5-3 (-> obj nb-of-particles)) (if (= (-> obj particles s5-3 part matrix) -1) (set! (-> obj particles s5-3 part matrix) (sprite-allocate-user-hvdf)) ) ) (animate! obj (= (get-aspect-ratio) 'aspect16x9) (= (get-video-mode) 'pal)) (set! (-> obj x-sgn) 1) (set! (-> obj y-sgn) 1) 0 (none) ) (defmethod animate! hud-power ((obj hud-power) (arg0 symbol) (arg1 symbol)) (cond (arg0 (set! (-> obj scale-blue) 7168.0) (set! (-> obj scale-timer) 11468.8) (set! (-> obj scale-backing) 8960.0) ) (else (set! (-> obj scale-blue) 8192.0) (set! (-> obj scale-timer) 13107.2) (set! (-> obj scale-backing) 10240.0) ) ) 0 (none) ) (defun activate-hud ((arg0 process)) (let ((s5-0 (get-process *default-dead-pool* hud-pickups #x4000))) (set! (-> *hud-parts* pickups) (the-as (pointer hud-pickups) (when s5-0 (let ((t9-1 (method-of-type hud-pickups activate ) ) ) (t9-1 (the-as hud-pickups s5-0 ) arg0 'hud-pickups (the-as pointer #x70004000 ) ) ) (run-now-in-process s5-0 hud-init-by-other 0 ) (-> s5-0 ppointer ) ) ) ) ) (let ((s5-1 (get-process *default-dead-pool* hud-money #x4000))) (set! (-> *hud-parts* money) (the-as (pointer hud-money) (when s5-1 (let ((t9-4 (method-of-type hud-money activate ) ) ) (t9-4 (the-as hud-money s5-1 ) arg0 'hud-money (the-as pointer #x70004000 ) ) ) (run-now-in-process s5-1 hud-init-by-other 0 ) (-> s5-1 ppointer) ) ) ) ) (let ((s5-2 (get-process *default-dead-pool* hud-fuel-cell #x4000))) (set! (-> *hud-parts* fuel-cell) (the-as (pointer hud-fuel-cell) (when s5-2 (let ((t9-7 (method-of-type hud-fuel-cell activate ) ) ) (t9-7 (the-as hud-fuel-cell s5-2 ) arg0 'hud-fuel-cell (the-as pointer #x70004000 ) ) ) (run-now-in-process s5-2 hud-init-by-other 0 ) (-> s5-2 ppointer ) ) ) ) ) (let ((s5-3 (get-process *default-dead-pool* hud-health #x4000))) (set! (-> *hud-parts* health) (the-as (pointer hud-health) (when s5-3 (let ((t9-10 (method-of-type hud-health activate ) ) ) (t9-10 (the-as hud-health s5-3 ) arg0 'hud-health (the-as pointer #x70004000 ) ) ) (run-now-in-process s5-3 hud-init-by-other 0 ) (-> s5-3 ppointer ) ) ) ) ) (let ((s5-4 (get-process *default-dead-pool* hud-buzzers #x4000))) (set! (-> *hud-parts* buzzers) (the-as (pointer hud-buzzers) (when s5-4 (let ((t9-13 (method-of-type hud-buzzers activate ) ) ) (t9-13 (the-as hud-buzzers s5-4 ) arg0 'hud-buzzers (the-as pointer #x70004000 ) ) ) (run-now-in-process s5-4 hud-init-by-other 0 ) (-> s5-4 ppointer ) ) ) ) ) (let ((s5-5 (get-process *default-dead-pool* hud-power #x4000))) (set! (-> *hud-parts* power) (the-as (pointer hud-power) (when s5-5 (let ((t9-16 (method-of-type hud-power activate ) ) ) (t9-16 (the-as hud-power s5-5 ) arg0 'hud-power (the-as pointer #x70004000 ) ) ) (run-now-in-process s5-5 hud-init-by-other 0 ) (-> s5-5 ppointer) ) ) ) ) (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) ) (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) ) (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) ) (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) ) (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) ) (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) ) (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) ) (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) (animate! (-> (the-as (pointer hud) (-> *hud-parts* parts s4-0)) 0) gp-0 s5-0 ) ) ) ) ) 0 (none) ) (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 (dummy-14 (-> (the-as (pointer hud) (-> *hud-parts* parts s5-0)) 0)) ) (set! gp-0 #f) ) ) ) ) (else (set! gp-0 #t) ) ) gp-0 ) (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 (dummy-14 (-> (the-as (pointer hud) (-> *hud-parts* parts (+ s5-0 4))) 0) ) ) (set! gp-0 #f) ) ) ) ) (else (set! gp-0 #t) ) ) gp-0 ) (defun activate-orb-all ((arg0 int)) (when (not (-> *hud-parts* money-all)) (let ((s5-0 (get-process *default-dead-pool* hud-money-all #x4000))) (set! (-> *hud-parts* money-all) (the-as (pointer hud-money-all) (when s5-0 (let ((t9-1 (method-of-type hud-money-all activate ) ) ) (t9-1 (the-as hud-money-all s5-0 ) *target* 'hud-money-all (the-as pointer #x70004000 ) ) ) (run-now-in-process s5-0 hud-init-by-other arg0 ) (-> s5-0 ppointer ) ) ) ) ) ) 0 ) (defbehavior convert-to-hud-object hud ((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) (inc-value arg1) (dec-value arg1) (inc-value arg1) 1.0 ) (set! (-> arg0 draw dma-add-func) dma-add-process-drawable-hud) (go hud-collecting (process->handle arg1)) ) 0 (none) )